Choreographic programming
কম্পিউটার বিজ্ঞানে, কোরিওগ্রাফিক প্রোগ্রামিং একটি প্রোগ্রামিং দৃষ্টান্ত যেখানে প্রোগ্রামগুলি একাধিক সমবর্তী অংশগ্রহণকারীদের মধ্যে মিথস্ক্রিয়ার রচনা। কোরিওগ্রাফিক প্রোগ্রামিং-এ, ডেভেলপাররা একযোগে অংশগ্রহণকারীদের উদ্দেশ্যমূলক যোগাযোগ আচরণ সংজ্ঞায়িত করতে একটি কোরিওগ্রাফিক প্রোগ্রামিং ভাষা ব্যবহার করে। এই দৃষ্টান্তের প্রোগ্রামগুলিকে কোরিওগ্রাফি বলা হয়। কোরিওগ্রাফিক ভাষাগুলি নিরাপত্তা প্রটোকল নোটেশন ("অ্যালিস এবং বব" নোটেশন নামেও পরিচিত) দ্বারা অনুপ্রাণিত হয়। এই ভাষাগুলির মূল চাবিকাঠি হল আদিম যোগাযোগ, উদাহরণস্বরূপ Alice.expr-> Bob.x পড়ে "অ্যালিস ববের কাছে এক্সপ্রেশন এক্সপ্রেশনের মূল্যায়নের ফলাফল যোগাযোগ করে, যা এটিকে তার স্থানীয় পরিবর্তনশীল x-এ সংরক্ষণ করে।" অ্যালিস, বব ইত্যাদি। এগুলিকে সাধারণত ভূমিকা বা প্রক্রিয়া বলা হয়। নীচের উদাহরণটি একটি কেন্দ্রীয় প্রমাণীকরণ পরিষেবা (সিএএস)-এর উপর ভিত্তি করে একটি সরলীকৃত একক সাইন-অন (এসএসও) প্রোটোকলের জন্য একটি কোরিওগ্রাফি দেখায় যার মধ্যে তিনটি ভূমিকা রয়েছেঃ ক্লায়েন্ট, যা পরিষেবার সাথে যোগাযোগের জন্য সিএএস থেকে একটি অ্যাক্সেস টোকেন পেতে চায়। পরিষেবা, যা গ্রাহককে প্রবেশাধিকার দেওয়া উচিত কিনা তা সিএএস-এর কাছ থেকে জানতে হবে। সিএএস, যা ক্লায়েন্টের পরিচয়পত্র পরীক্ষা করার জন্য দায়বদ্ধ কেন্দ্রীয় প্রমাণীকরণ পরিষেবা। কোরিওগ্রাফি হলোঃ ক্লায়েন্ট। (শংসাপত্র, সার্ভিসআইডি)-> CAS.authRequest যদি CAS.check (অথরিক্বেস্ট) হয় তবে CAS.token = জেনটোকন (অথরিক্বেস্ট) CAS.Success (টোকেন)-> Client.result CAS.Success (টোকেন)-> Service.result অন্যথায় CAS.Failure-> Client.result CAS.Failure-> Service.result কোরিওগ্রাফি লাইন 1 থেকে শুরু হয়, যেখানে ক্লায়েন্ট কিছু শংসাপত্র এবং সিএএস-এ অ্যাক্সেস করতে চায় এমন পরিষেবার সনাক্তকারী সমন্বিত একটি জোড়া যোগাযোগ করে। সিএএস এই জুটিকে তার স্থানীয় পরিবর্তনশীল অথরিক্বেস্টে (প্রমাণীকরণ অনুরোধের জন্য) সংরক্ষণ করে। লাইন 2-এ, সিএএস একটি প্রমাণীকরণ টোকেন পাওয়ার জন্য অনুরোধটি বৈধ কিনা তা পরীক্ষা করে। যদি তাই হয়, এটি একটি টোকেন তৈরি করে এবং ক্লায়েন্ট এবং পরিষেবা (লাইন 3-5) উভয়ের কাছে টোকেন সহ একটি সাফল্যের বার্তা প্রেরণ করে। অন্যথায়, সিএএস একটি ব্যর্থ বার্তা (লাইন 7-8) পাঠিয়ে ক্লায়েন্ট এবং পরিষেবাকে অবহিত করে যে প্রমাণীকরণ ব্যর্থ হয়েছে। বাকি অংশে আমরা এই কোরিওগ্রাফিকে "এসএসও কোরিওগ্রাফি" হিসাবে উল্লেখ করি। এন্ডপয়েন্ট প্রজেকশন কোরিওগ্রাফিক প্রোগ্রামিংয়ের একটি মূল বৈশিষ্ট্য হল বিতরণকৃত বাস্তবায়নের জন্য কোরিওগ্রাফি সংকলন করার ক্ষমতা। এই বাস্তবায়নগুলি সফ্টওয়্যারের জন্য গ্রন্থাগার হতে পারে যা একটি প্রোটোকল অনুসরণ করে একটি কম্পিউটার নেটওয়ার্কে অংশগ্রহণ করতে হবে, বা স্বতন্ত্রভাবে বিতরণ করা প্রোগ্রাম। ডিস্ট্রিবিউটেড প্রোগ্রামে কোরিওগ্রাফির অনুবাদকে এন্ডপয়েন্ট প্রজেকশন (সংক্ষেপে ইপিপি) বলা হয়। এন্ডপয়েন্ট প্রজেকশন উৎস কোরিওগ্রাফিতে বর্ণিত প্রতিটি ভূমিকার জন্য একটি প্রোগ্রাম প্রদান করে। উদাহরণস্বরূপ, উপরের কোরিওগ্রাফি দেওয়া হলে, এন্ডপয়েন্ট প্রজেকশন তিনটি প্রোগ্রাম ফিরিয়ে দেবেঃ একটি ক্লায়েন্টের জন্য, একটি সার্ভিসের জন্য এবং একটি সিএএসের জন্য। এগুলি নীচে সিউডোকোড আকারে দেখানো হয়েছে, যেখানে অন্যান্য ভূমিকায়/থেকে বার্তা প্রেরণ এবং গ্রহণের জন্য প্রেরণ এবং পুনরুদ্ধার করা হয়। প্রতিটি ভূমিকার জন্য, এর কোডে এমন ক্রিয়া রয়েছে যা অন্যদের সাথে সঠিকভাবে কোরিওগ্রাফি বাস্তবায়নের জন্য ভূমিকাটি কার্যকর করা উচিত। উন্নয়ন কোরিওগ্রাফিক প্রোগ্রামিংয়ের দৃষ্টান্তটি এর নামমাত্র পিএইচডি থিসিস থেকে উদ্ভূত হয়েছে। কোরিওগ্রাফিক প্রোগ্রামিং ভাষাগুলির বাক্যবিন্যাসের অনুপ্রেরণা সুরক্ষা প্রোটোকল স্বরলিপি থেকে পাওয়া যায়, যা "অ্যালিস এবং বব" স্বরলিপি নামেও পরিচিত। কোরিওগ্রাফিক প্রোগ্রামিং পরিষেবা কোরিওগ্রাফি এবং মিথস্ক্রিয়া চিত্রের মানগুলির পাশাপাশি প্রক্রিয়া গণনার তত্ত্বের বিকাশ দ্বারাও ব্যাপকভাবে প্রভাবিত হয়েছে। কোরিওগ্রাফিক প্রোগ্রামিং গবেষণার একটি সক্রিয় ক্ষেত্র। তথ্য প্রবাহ, সমান্তরাল কম্পিউটিং, সাইবার-ফিজিক্যাল সিস্টেম, রানটাইম অভিযোজন এবং সিস্টেম ইন্টিগ্রেশন অধ্যয়নে এই দৃষ্টান্তটি ব্যবহার করা হয়েছে। ভাষা এ. আই. ও. সি. জে (ওয়েবসাইট)। অভিযোজিত সিস্টেমের জন্য একটি কোরিওগ্রাফিক প্রোগ্রামিং ভাষা যা জোলিতে কোড তৈরি করে। চোর (ওয়েবসাইট)। একটি সেশন-টাইপ করা কোরিওগ্রাফিক প্রোগ্রামিং ভাষা যা জোলির মাইক্রোসার্ভিসেস-এ সংকলিত হয়। কোরাল (ওয়েবসাইট)। একটি উচ্চ-ক্রমের, অবজেক্ট-ওরিয়েন্টেড কোরিওগ্রাফিক প্রোগ্রামিং ভাষা যা জাভার গ্রন্থাগারগুলিতে সংকলন করে। মূল কোরিওগ্রাফি। কোরিওগ্রাফিক প্রোগ্রামিংয়ের জন্য একটি মূল তাত্ত্বিক মডেল। সিওকিউ-তে একটি যান্ত্রিক বাস্তবায়ন পাওয়া যায়। কালাস। কেকএমএল-এর একটি যাচাইকৃত সংকলক সহ একটি কোরিওগ্রাফিক প্রোগ্রামিং ভাষা। পিরোয়েট। উচ্চ-ক্রম পদ্ধতি সহ একটি যান্ত্রিক কোরিওগ্রাফিক প্রোগ্রামিং ভাষা তত্ত্ব। আরও দেখুন নিরাপত্তা প্রটোকল নোটেশন সিকোয়েন্স ডায়াগ্রাম সার্ভিস কোরিওগ্রাফি স্ট্রাকচার্ড কনকারেন্সি মাল্টিটিয়ার প্রোগ্রামিং রেফারেন্স এক্সটার্নাল লিঙ্ক www.choral-lang.org কনকারেন্ট কম্পিউটিং প্রোগ্রামিং প্যারাডাইম