প্রসঙ্গ
বিশ্রামের আর্কিটেকচারাল স্টাইলের স্থবিরতার কারণে যে প্রতিটি অনুরোধ সম্পূর্ণ একা দাঁড়িয়ে থাকে, যার ফলে সার্ভার ক্লায়েন্ট সম্পর্কে কোনও তথ্য সংরক্ষণ করে না।
সুতরাং, হতাশাবাদী একচেটিয়া নিয়ন্ত্রণ উপযুক্ত নয় কারণ এর জন্য সেই সার্ভার স্টোরের প্রয়োজন হবে যা ক্লায়েন্ট কোনও সংস্থানটিতে লক পায়। আশাবাদী সম্মতি নিয়ন্ত্রণটি তখন Etag
শিরোলেখের সাহায্যে ব্যবহার করা হয় । (বিটিডব্লিউ, যেমন আমি সেখানে জিজ্ঞাসা করেছি /programming/30080634/concurrency-in-a-rest-api )
সমস্যা
একটি আশাবাদী সম্মতি নিয়ন্ত্রণ ব্যবস্থাটি সহ প্রধান সমস্যাটি হ'ল আপনি যে কোনও ক্রিয়াকলাপ চালানোর জন্য সর্বদা, সমস্ত ক্লায়েন্টকে অনুমতি দিন।
এবং আমি এটিকে রেস্টের রাষ্ট্রহীনতার নীতিটি ভঙ্গ না করে এড়াতে চাই। আমি বোঝাতে চাইছি যে সমস্ত ক্লায়েন্টরা কোনও সময়ে কোনও ক্রিয়াকলাপ করতে পারে না।
প্রশ্ন
আমার মনে, এটি যেমন একটি আধা-আশাবাদী সম্মতি নিয়ন্ত্রণ ব্যবস্থা দিয়ে সম্ভব হবে :
- ক্লায়েন্টরা একটি টোকেনের জন্য অনুরোধ করতে পারে
- কেবলমাত্র একটি টোকেন উত্পন্ন হতে পারে এবং এর মেয়াদ সীমিত রয়েছে
- সংস্থানসমূহ (যেমন POST বা PUT ) এ অপারেশন করার জন্য , ক্লায়েন্টকে অনুরোধের শরীরের (বা শিরক?) অংশ হিসাবে অবশ্যই এই টোকেন দিতে হবে। টোকেন নেই এমন ক্লায়েন্ট এই ক্রিয়াকলাপগুলি করতে পারে না।
এটি আশাবাদী সমঝোতা নিয়ন্ত্রণের সাথে খুব মিল, কেবলমাত্র একজন ক্লায়েন্ট কিছু অপারেশন করতে পারে (যেটি টোকেন পেয়েছিল) ... "সমস্ত ক্লায়েন্ট সমস্ত ক্রিয়াকলাপ করতে পারে" এর বিপরীতে।
এই প্রক্রিয়াটি কি কোনও বিশ্রামের স্থাপত্য শৈলীর সাথে সামঞ্জস্যপূর্ণ? এটি কি তার কোনও বাধা ভঙ্গ করে? আমি এসও জিজ্ঞাসা করার জন্য ভাবছিলাম, তবে এটি সফ্টওয়্যার ডিজাইনের সাথে সম্পর্কিত, একটি উচ্চ-স্তরের প্রশ্ন বলে মনে হচ্ছে।
Etag
? সঙ্গে Etag
আপনি কি নিশ্চিত যে আপনার অপারেশন সম্পূর্ণ হবে না, আপনি একটি অবস্থা যেখানে আপনি কোন কাজগুলি কখনো হবে না থাকতে পারে। একটি লক সহ, আপনি কমপক্ষে আপনার ক্রিয়াকলাপটি সম্পাদন করবেন তা নিশ্চিত। সুতরাং একটি সাধারণ লক থাকা এমন একটি পরিবেশের মধ্যবর্তী যেখানে যেখানে "উচ্চ দ্বন্দ্ব" এবং "বিরল বিরোধ" ঘটতে পারে between
Transaction
উত্স হিসাবে স্পষ্টভাবে মডেল করতে হবে ।