Choreographic programming
कंप्यूटर विज्ञान में, कोरियोग्राफिक प्रोग्रामिंग एक प्रोग्रामिंग प्रतिमान है जहाँ कार्यक्रम कई समवर्ती प्रतिभागियों के बीच बातचीत की रचनाएँ हैं। कोरियोग्राफिक प्रोग्रामिंग में, डेवलपर्स समवर्ती प्रतिभागियों के इच्छित संचार व्यवहार को परिभाषित करने के लिए एक कोरियोग्राफिक प्रोग्रामिंग भाषा का उपयोग करते हैं। इस प्रतिमान में कार्यक्रमों को नृत्य निर्देशन कहा जाता है। कोरियोग्राफिक भाषाएँ सुरक्षा प्रोटोकॉल संकेतन (जिसे "एलिस और बॉब" संकेतन के रूप में भी जाना जाता है) से प्रेरित होती हैं। इन भाषाओं की कुंजी संचार आदिम है, उदाहरण के लिए Alice.expr-> Bob.x में लिखा है "एलिस एक्सप्रेशन का मूल्यांकन करने के परिणाम को बॉब को बताती है, जो इसे अपने स्थानीय चर x में संग्रहीत करती है।" एलिस, बॉब आदि। इन्हें आम तौर पर भूमिकाएँ या प्रक्रियाएँ कहा जाता है। नीचे दिया गया उदाहरण केंद्रीय प्रमाणीकरण सेवा (सी. ए. एस.) पर आधारित एक सरलीकृत एकल साइन-ऑन (एस. एस. ओ.) प्रोटोकॉल के लिए एक कोरियोग्राफी दिखाता है जिसमें तीन भूमिकाएँ शामिल हैंः ग्राहक, जो सेवा के साथ बातचीत करने के लिए सी. ए. एस. से एक अभिगम टोकन प्राप्त करना चाहता है। सेवा, जिसे सी. ए. एस. से यह जानने की आवश्यकता है कि क्या ग्राहक को पहुँच दी जानी चाहिए। सी. ए. एस., जो केंद्रीय प्रमाणीकरण सेवा है जो ग्राहक की साख की जांच के लिए जिम्मेदार है। कोरियोग्राफी हैः क्लाइंट। (क्रेडेंशियल्स, सर्विस आई. डी.)-> CAS.authRequest अगर CAS.check (autRequest) तो CAS.token = जेनटोकेन (autRequest) 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 समवर्ती कंप्यूटिंग प्रोग्रामिंग प्रतिमान भी देखें।