দ্রুপাল in-এ কোনও ওয়েব সার্ভিসের মাধ্যমে তৃতীয় পক্ষের ডেটা স্ট্রাকচারকে সংহত করার সবচেয়ে নির্ভরযোগ্য এবং ফল্ট সহনশীল উপায় কী?


8

দ্রুপালে দূরবর্তী ডেটা স্ট্রাকচার একীকরণের জন্য আমি বেশ কয়েকটি কৌশল দেখেছি। কৌশলগুলি বিকশিত হয়েছে বলে মনে হচ্ছে যেহেতু নির্দিষ্ট মডিউলগুলি স্থিতিশীল হয়েছে এবং ব্যবহারের ক্ষেত্রে বিচার হয়েছে।

কল্পনা করুন যে আমাদের কাছে এমন একটি ডেটা স্ট্রাকচার আছে "ফার্মার্স মার্কেটস" যা বিভিন্ন তথ্য প্রকারের (বাজার, বাজার_ ঘন্টা, বিক্রেতা, স্টল, উত্পাদন) ইত্যাদি দ্বারা উপস্থাপিত হয় যা একটি REST এপিআই এর মাধ্যমে প্রকাশ করা হয়। বাহ্যিক পরিষেবার আইডিগুলির জন্য দ্রুপাল সম্পর্কিত হওয়া দরকার, অর্থাত্ একটি "বাজার" লোড করার সময় আমরা 'মার্কেট_হর্স' এবং 'স্টল' থেকে ডেটা ধরতে চাই। নিয়মিত ভিত্তিতে সিঙ্ক হওয়া দ্রুপাল-এ কেবল পঠনযোগ্য সামগ্রী হিসাবে উপস্থাপনের সর্বোত্তম উপায় কী হবে?

আমি নিম্নলিখিত মানদণ্ডের সাথে এটি মূল্যায়নের চেষ্টা করছি:

দ্রুপালে ডেটা স্ট্রাকচার:

নোড বনাম কাস্টম সত্তা

আমি কাস্টম সত্তা ব্যবহার দেখেছি ওয়েব পরিষেবাগুলির সাথে জড়িত বেশ কয়েকটি দৃশ্যাবলী। এটি সিআরইউডি অপসকে সহজতর করে। তবে, এই আইটেমগুলি "বিষয়বস্তু" হবে যাতে এগুলি সর্বজনীনভাবে দেখা হবে।

স্টোরেজ (স্থানীয় বনাম রিমোট):

আমি বেশ কয়েকটি উদাহরণ দেখেছি যেখানে পরিষেবাগুলি দূরবর্তী সত্তা হিসাবে লোড করা হয়, যা এই মডিউলটির জন্য একটি লাইব্রেরি তৈরি করে: https://drupal.org/project/wsdata । এটি সবচেয়ে আবেদনময়ী মনে হলেও প্রচুর ব্যবহারের ঘটনা দেখেনি। কাস্টম কোডেরও উদাহরণ রয়েছে: https://drupal.org/sandbox/fago/1493180

সিঙ্ক ডেটা:

ফিডস বনাম মাইগ্রেট বনাম গুজল বনাম 'ওয়েব সার্ভিস ক্লায়েন্ট' বনাম 'ওয়েব পরিষেবাদি ডেটা'

বিকল্প একটি সংখ্যা আছে। ফিডগুলি এখন সত্ত্বাকে সমর্থন করে। মাইগ্রেট করা ফিডগুলির চেয়ে অনেক বেশি পরিষ্কার মনে হয়, বিশেষত কাস্টম দৃশ্যের জন্য। : আমি একটি মদ্যপানোত্সব ক্লায়েন্ট ব্যবহার দূরবর্তী পরিষেবার সঙ্গে সিঙ্ক দখল করতে ভাবেন দেখা করেছি http://drupalcode.org/project/ckan.git/blob/refs/heads/ckan_dgu_7.x-1.x:/ckan.drush। Inc # l273 । আমি এটিও লক্ষ্য করেছি যে ডাব্লুএস ক্লায়েন্ট মডিউল https://drupal.org/project/wsclient একটি বিকল্প সরবরাহ করে যা বিশ্রাম ক্লায়েন্ট হিসাবে বিশেষত তৈরি করা হয়েছে। ওয়েব পরিষেবাদি ডেটা সরাসরি কোনও পরিষেবা থেকে লোড হয় এবং এটিকে স্থানীয়ভাবে ক্যাশে করে।

কোন চিন্তা জন্য ধন্যবাদ।


আমি নিশ্চিত নই যে আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে এটি সবচেয়ে নির্ভরযোগ্য এবং ফল্ট সহনীয় সমাধান কী তা সম্পর্কে একটি নির্দিষ্ট উত্তর দিতে পারে।
রোবীয়

"তথ্য" মডিউল অন্য সম্ভাবনা, যা ফিড মডিউল সাথে ব্যবহার করা যেতে পারে (- বর্তমানে এই সংখ্যায় সমাধান প্রয়োজন drupal.org/node/1033202 )
rooby

ডেটা মডিউলটি ব্যবহার করা আমাদের কেবলমাত্র পৃথক টেবিলগুলিতে ডেটা সংরক্ষণ করার অনুমতি দেয়। দর্শনের মাধ্যমে তালিকাগুলি তৈরি করার জন্য এটি সূক্ষ্ম হবে তবে সত্তা সিস্টেমের সুবিধাগুলি (নোড বা কাস্টম সত্তা হোক না কেন) ব্যবহারের অনুমতি দেয় না।
অচোচ

হ্যাঁ, ডেটা মডিউলটির একটি উপ-মডেল ডেটা_এনটিটি রয়েছে, যা আপনার সমস্ত ডেটা আইটেমের সত্তা তৈরি করে।
রোবি

উত্তর:


16

1. প্রশ্নের সংস্কার

আপনার উদাহরণটি পরামর্শ দেয় যে কেবলমাত্র একমুখী সিঙ্কের মাধ্যমে ডেটা কেবলমাত্র ড্রুপাল দিকেই পঠিত হয়। আমি মনে করি এটি এখানে বিবেচনা করা সবচেয়ে গুরুত্বপূর্ণ বিষয়, কারণ কার্যকরভাবে আপনি যে কোনও সমাধান প্রয়োগ করবেন তা দূরবর্তী স্টোরেজ, সিঙ্কিং এবং স্থানীয় ক্যাশেগের একটি বৈকল্পিক হবে - এমনকি যদি স্থানীয় ক্যাচিং ড্রুপাল ডাটাবেসে সত্তা হিসাবে শেষ হয়ে যায়।

সুতরাং প্রশ্নটি "স্থানীয় স্টোরেজ বনাম দূরবর্তী স্টোরেজ" হওয়ার পরিবর্তে হতে চলেছে:

  • আপনার স্থানীয়ভাবে ডেটা ক্যাশে করা উচিত;
  • আপনার যদি ডেটাটিকে প্রকৃত সত্তা হিসাবে ক্যাশে করা উচিত, এবং নিয়মিত ডেটা সিঙ্ক্রোনাইজ করতে ফিডস (বা অনুরূপ) ব্যবহার করা উচিত; অথবা
  • আপনার কিছু কাস্টম তৈরি মডিউল ব্যবহার করা উচিত যা সিঙ্কিং এবং ক্যাচিং সরবরাহ করে।

একটি প্রবন্ধ আপনি আগ্রহী হতে পারে "হয় Drupal এর 7 রিমোট সংস্থাগুলো "।

২. ডেটা ক্যাশে করা হচ্ছে

সাধারণভাবে, ডেটা ক্যাশে করা ভাল ধারণা:

  • আপনি অন্যান্য পরিষেবাদি বা সংযোগের সময়সীমার বিরুদ্ধে সুরক্ষিত;

  • আপনার ড্রুপাল ডাটাবেসে আপনার ডেটা উপস্থিত থাকায় ক্রিয়াকলাপ ত্বরান্বিত হবে;

  • আপনার ড্রুপাল ডাটাবেসে আপনার ডেটা উপস্থিত থাকার অর্থ হ'ল ভিউয়ের মতো অন্যান্য মডিউলগুলির সাথে আপনার সংহত হওয়ার সম্ভাবনা বেশি (যদিও এটি নিশ্চিত নয়)।

ডেটা ক্যাশে না করার একমাত্র সুবিধা হ'ল আপনি কখনই বাসি ডেটা পান না, যা কিছু ক্ষেত্রে পছন্দনীয় sometimes আপনি যে উদাহরণ দিয়েছেন তাতে আমি এটিকে কোনও উপকার হিসাবে দেখছি না, তাই আমি এই উত্তরটি স্থানীয় ক্যাশে জড়িত এমন একটি সমাধানের দিকে মনোযোগ দেব।

৩. স্থানীয় সত্ত্বা + সিঙ্ক হচ্ছে

যদি আপনি স্থানীয় সত্ত্বা থাকার এবং সেগুলি নিজেই সিঙ্ক করার বিকল্পের জন্য যান তবে আমরা আপনার মূল প্রশ্নগুলিতে ফিরে আসি:

  • আপনি নোড বা কাস্টম সত্তা ব্যবহার করা উচিত;

  • সিঙ্ক করার জন্য কোন মডিউলটি সেরা।

৩.১ নোড বনাম কাস্টম সত্তা

  • নোডটি ঠিক কী এর সংজ্ঞাটি হ'ল এটি বেশ উন্মুক্ত। নোড উপর ডকুমেন্টেশন পৃষ্ঠা দাড়ায় যে নোড "পোস্টিং" যে "সঞ্চিত" হয় আপনার সাইটে রয়েছে - তন্ন তন্ন করে আপনার ডেটা ক্ষেত্রে প্রযোজ্য হয়;

  • একজন ড্রুপাল বিকাশকারী হিসাবে আমি আশা করব যে যদি কিছু নোড হয় তবে আমার নিজেরাই এটি সাইটে চালিত করতে সক্ষম হওয়া উচিত;

  • দ্রুপাল ব্যবহারকারী হিসাবে, আমি একইভাবে আশা করব যে নোডগুলি সম্পাদনা করা যেতে পারে;

  • এই ড্রুপাল 8 ইস্যুটি https://drupal.org/node/2019031 পরামর্শ দেয় যে "কেবল পঠনযোগ্য" ধারণাটি বান্ডিল স্তরের পরিবর্তে সত্তা স্তরে প্রযোজ্য। এটি যদি কখনও বাস্তবায়িত হয় তবে আপনি এই রাস্তায় নেমে এটি থেকে উপকৃত হবেন।

সংক্ষিপ্তসার হিসাবে: আপনার ডেটা কেবল পঠিত এবং দূরবর্তীভাবে সঞ্চিত হচ্ছে এটি আপনার ডেটা উপস্থাপনের জন্য একটি কাস্টম সত্তা টাইপ ব্যবহার করা আরও বোধগম্য।

৩.২ সিঙ্ক হচ্ছে

দ্বিতীয় অংশের জন্য, এর জন্য দুটি প্রধান মডিউল হ'ল আপনার পরামর্শ হিসাবে, ফিড এবং মাইগ্রেট করুন

ফিডস এবং মাইগ্রেটের মধ্যে পার্থক্য হ'ল ফিডগুলি নিয়মিত সামগ্রী আমদানির জন্য নির্মিত হয়, অন্যদিকে মাইগ্রেট এক স্থান থেকে অন্য স্থানে সামগ্রীর এক-অফ পোর্টিংয়ের জন্য নির্মিত হয়। মাইগ্রেট বিদ্যমান ডেটা আপডেট করার পক্ষে সমর্থন করে, তবে উভয় মডিউলই যথাযথভাবে সমর্থিত এটি মডিউলটি যে টাস্কটির জন্য তৈরি হয়েছিল তা ব্যবহার করতে আরও বুদ্ধিমান হয় - ফিড একটি ভাল মিল।

দুটি মডিউল নিজেই ব্যবহার করা হয়েছে (সিঙ্কের জন্য ফিডস, মাইগ্রেশনের জন্য স্থানান্তরিত করা) আমি ফিডগুলি মাইগ্রেটের চেয়ে বেশি অগোছালো বলে মনে করি না। আমার অভিজ্ঞতায় মাইগ্রেটের জন্য আরও কাস্টম কোডের প্রয়োজন রয়েছে, যদিও পুরো সাইটগুলিতে স্থানান্তর করা একক সামগ্রীর ধরণের আমদানির চেয়ে জটিল, তাই এটি তুলনা করা শক্ত।

৪. রিমোট স্টোরেজ, সিঙ্কিং + ক্যাশে করার জন্য কাস্টম মডিউল

এখানে অনেকগুলি মডিউল রয়েছে যা এই কার্যে সহায়তা করতে পারে।

আপনি ওয়েব পরিষেবাদির ডেটা মডিউলটি উল্লেখ করেছেন এবং অন্যরা ডেটা মডিউলটি উল্লেখ করেছেন । বিবেচনা করার জন্য অন্য বিকল্পটি হ'ল রিমোট সত্তা এপিআই মডিউল । মনে রাখবেন যে আমি যাদের অভিজ্ঞতা পেয়েছি তাদের মধ্যে একটি হ'ল ডেটা মডিউল।

  • ওয়েব পরিষেবাদি ডেটা মডিউলটির এখনও একটি রিলিজ নেই - যা কোডটি এখনও স্থিতিশীল নয় বলে নির্দেশ করতে পারে, এপিআই পরিবর্তন হতে পারে এবং আরও অনেক কিছু। এটি সত্তা ফিল্ড ক্যোয়ারী সমর্থন করে না (এটির প্রকল্প পৃষ্ঠা অনুসারে), এবং কোড ভান্ডারগুলির একটি দ্রুত ব্রাউজ এ এর ​​ভিউ সমর্থন সমর্থন করার কোনও প্রমাণ দেখায় না - যাতে আপনি আপনার সত্তাগুলি প্রদর্শনের জন্য ভিউগুলি ব্যবহার করতে সক্ষম হবেন না;

  • আমার অভিজ্ঞতায় ডেটা মডিউলটি আরও অরিয়েন্টেড, নন-বিকাশকারীদের দিকে, যাদের টেবিলে ডেটা রয়েছে এবং এটি দর্শনে প্রকাশ করতে চায়। আমি ড্রুপাল 6 সংস্করণটি ব্যবহার করতে বেশ হতাশাবস্থায় পেয়েছি - যদিও এটি তখন থেকেই পরিবর্তিত হতে পারে;

  • রিমোট সত্তা এপিআই মডিউলটি বেশ প্রতিশ্রুতিবদ্ধ শোনায় - এটি রিমোট সত্তাগুলি আনতে এবং ক্যাশে করতে সহায়তা করে এবং এতে ভিউজ সমর্থন রয়েছে। এটি কেবল আলফা রিলিজে রয়েছে - সুতরাং এপিআই এখনও পরিবর্তন হতে পারে। প্রথম নজরে এটি সত্তা ফিল্ড ক্যোয়ারী সমর্থন হয় না বলে মনে হয় না এবং এটি কেবল একধরণের দূরবর্তী পরিষেবা সমর্থন করে যাতে আপনাকে নিজের প্রয়োগ করতে হবে।

উপসংহার

প্রদত্ত যে রিমোট স্টোরেজ মডিউলগুলির কোনওটিই সত্তা ফিল্ড ক্যোয়ারিকে সমর্থন করে না, প্রকৃত সত্ত্বা + ফিড ব্যবহার করা এমন সমাধান যা আপনাকে আপনার ড্রুপাল সাইটের সাথে সেরা একীকরণ দেয়।

যদি ভিউজ সমর্থনটি যথেষ্ট হয় এবং আপনি সত্তা ক্ষেত্র অনুসন্ধানগুলির মাধ্যমে অন্যান্য মডিউলগুলির সাথে সম্ভাব্য সংহতকরণ সম্পর্কে উদ্বিগ্ন না হন, তবে রিমোট সত্তা এপিআই ব্যবহার করা উপায় হতে পারে - তবে আপনাকে নিজের রিমোট ইন্টারফেসটি প্রয়োগ করতে হবে।


দুর্দান্ত উত্তর! ফিড বনাম মাইগ্রেট সম্পর্কিত একটি জিনিস আমি যুক্ত করব যে হ'ল মাইগ্রেটের ডেটাসেটের মধ্যে এবং ডেটাসেটের জুড়ে আইটেমগুলির মধ্যে রেফারেন্স পরিচালনা করার একটি দুর্দান্ত উপায় রয়েছে। drupal.org/node/1013506
milesw

1
আমি কেবল ভিউ সমর্থন সহ রিমোট সত্তা এপিআই দিয়ে জিনিসগুলি সেট আপ করার জন্য একটি নিবন্ধ লিখেছি। দেখুন Drupal এর 7 মধ্যে দূরবর্তী তথ্য একীভূত ও দৃশ্যগুলিতে তা প্রকাশিত
কোলান

0

আপনার মতামত, নিয়ম, টোকেন, ক্রুড হুকস, অনুসন্ধান এপিআই এবং সুনির্দিষ্টভাবে শক্তিশালী সিস্টেমের সমন্বয় আমার মতে এগুলি নোড হিসাবে বিবেচনা করা যায় না তবে তারা অবশ্যই "সত্তা আইডি" এবং ডাটাবেসে তাদের নিজস্ব আইডিয়াসক্র্যাসি সংরক্ষণ করে কাস্টম সত্তা হতে হবে the "বাহ্যিক আইডি" সম্পর্ক এবং "সত্তা বৈশিষ্ট্য" এ এনক্যাপুলেটেড তথ্য কলগুলি পুনরুদ্ধার করার সাথে। পরিশেষে, ডেটা সিঙ্ক করার জন্য আপনি যে সরঞ্জামটি চয়ন করুন না কেন, আমি ক্রোন ক্যুয়েস দিয়ে এটি প্রক্রিয়া করব।

আপনার যদি কেবলমাত্র সময়োপযোগে তথ্য পুনরুদ্ধার এবং প্রকাশের প্রয়োজন হয় তবে আমি মনে করি বাহ্যিক তথ্য পুনরুদ্ধার করার জন্য একটি ইন্টারফেস ক্লাস তৈরি করা এবং আপনার "ফার্মার মার্কেটস" কাঠামো থেকে তথ্য পুনরুদ্ধার করে এমন একটি শ্রেণীর সাথে এই ইন্টারফেসটি বাস্তবায়ন করা আরও ভাল বিকল্প হতে পারে।

শুভেচ্ছা সহ


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.