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)۔ ہم بقیہ میں اس کوریوگرافی کو "ایس ایس او کوریوگرافی" کہتے ہیں۔ اینڈ پوائنٹ پروجیکشن کوریوگرافک پروگرامنگ کی ایک کلیدی خصوصیت تقسیم شدہ نفاذ کے لیے کوریوگرافیوں کو مرتب کرنے کی صلاحیت ہے۔ یہ نفاذ سافٹ ویئر کے لیے لائبریریاں ہو سکتی ہیں جن کو پروٹوکول، یا اسٹینڈ لون ڈسٹری بیوٹڈ پروگراموں پر عمل کرتے ہوئے کمپیوٹر نیٹ ورک میں حصہ لینے کی ضرورت ہوتی ہے۔ تقسیم شدہ پروگراموں میں کوریوگرافی کا ترجمہ اینڈ پوائنٹ پروجیکشن (مختصر طور پر ای پی پی) کہلاتا ہے۔ اینڈ پوائنٹ پروجیکشن ماخذ کوریوگرافی میں بیان کردہ ہر کردار کے لیے ایک پروگرام واپس کرتا ہے۔ مثال کے طور پر، اوپر کی کوریوگرافی کو دیکھتے ہوئے، اینڈ پوائنٹ پروجیکشن تین پروگرام واپس کرے گا: ایک کلائنٹ کے لیے، ایک سروس کے لیے، اور ایک سی اے ایس کے لیے۔ انہیں ذیل میں فرضی کوڈ کی شکل میں دکھایا گیا ہے، جہاں دوسرے کرداروں کو پیغامات بھیجنے اور وصول کرنے کے لیے بھیجنا اور وصول کرنا ابتدائی ہیں۔ ہر کردار کے لیے، اس کے کوڈ میں وہ اقدامات ہوتے ہیں جو کردار کو دوسروں کے ساتھ مل کر کوریوگرافی کو صحیح طریقے سے نافذ کرنے کے لیے انجام دینے چاہئیں۔ ترقی کوریوگرافک پروگرامنگ کا نمونہ اس کے ٹائٹلر پی ایچ ڈی تھیسس سے نکلتا ہے۔ کوریوگرافک پروگرامنگ زبانوں کے نحو کی تحریک کا سراغ حفاظتی پروٹوکول نوٹیشن سے لگایا جا سکتا ہے، جسے "ایلس اور باب" نوٹیشن بھی کہا جاتا ہے۔ کوریوگرافک پروگرامنگ سروس کوریوگرافی اور انٹرایکشن ڈائیگرام کے معیارات کے ساتھ ساتھ تھیوری آف پروسیس کیلکولی کی پیشرفت سے بھی بہت زیادہ متاثر ہوا ہے۔ کوریوگرافک پروگرامنگ تحقیق کا ایک فعال شعبہ ہے۔ یہ نمونہ معلومات کے بہاؤ، متوازی کمپیوٹنگ، سائبر فزیکل سسٹم، رن ٹائم موافقت، اور سسٹم انضمام کے مطالعہ میں استعمال کیا گیا ہے۔ زبانیں AIOCJ (ویب سائٹ)۔ موافقت پذیر نظاموں کے لیے ایک کوریوگرافک پروگرامنگ زبان جو جولی میں کوڈ تیار کرتی ہے۔ چور (ویب سائٹ)۔ ایک سیشن ٹائپ شدہ کوریوگرافک پروگرامنگ زبان جو جولی میں مائیکرو سروسز کو مرتب کرتی ہے۔ کورل (ویب سائٹ)۔ ایک اعلی درجے کی، آبجیکٹ پر مبنی کوریوگرافک پروگرامنگ زبان جو جاوا میں لائبریریوں میں مرتب ہوتی ہے۔ بنیادی کوریوگرافی۔ کوریوگرافک پروگرامنگ کے لیے ایک بنیادی نظریاتی ماڈل۔ ایک میکانائزڈ نفاذ CoQ میں دستیاب ہے۔ کلاز۔ کیک ایم ایل کے تصدیق شدہ مرتب کے ساتھ ایک کوریوگرافک پروگرامنگ زبان۔ پیرویٹ۔ اعلی ترتیب کے طریقہ کار کے ساتھ ایک میکانائزڈ کوریوگرافک پروگرامنگ زبان کا نظریہ۔ سیکیورٹی پروٹوکول نوٹیشن سیکوینس ڈائیگرام سروس کوریوگرافی اسٹرکچرڈ کنکرنسی ملٹی ٹائر پروگرامنگ حوالہ جات بیرونی لنکس www.choral-lang.org کنکرنٹ کمپیوٹنگ پروگرامنگ پیراڈائمز بھی دیکھیں۔