जवाबों:
बेसिक प्रौद्योगिकियाँ जैसे (XML, SOAP, WSDL) अपने आप में एक इकाई के रूप में सेवाओं का वर्णन, पता लगाने और इनवॉइस करने का साधन प्रदान करती हैं। हालांकि, ये प्रौद्योगिकियां अधिक जटिल सहयोग में सेवा की भूमिका के बारे में एक समृद्ध व्यवहारिक विवरण नहीं देती हैं। इस सहयोग में गतिविधियों के बीच गतिविधियों और संबंधों का एक क्रम शामिल है, जो व्यावसायिक प्रक्रिया का निर्माण करते हैं। इस प्रक्रिया को बनाने के दो तरीके हैं: सर्विस ऑर्केस्ट्रेशन और सर्विस कोरियोग्राफी।
सेवा ऑर्केस्ट्रेशन एक एकल केंद्रीकृत निष्पादन योग्य व्यवसाय प्रक्रिया (ऑर्केस्ट्रेटर) का प्रतिनिधित्व करता है जो विभिन्न सेवाओं के बीच बातचीत का समन्वय करता है। ऑर्केस्ट्रेटर सेवाओं को लागू करने और संयोजन करने के लिए जिम्मेदार है।
सभी भाग लेने वाली सेवाओं के बीच संबंध एकल समापन बिंदु (अर्थात, समग्र सेवा) द्वारा वर्णित हैं। ऑर्केस्ट्रेशन में व्यक्तिगत सेवाओं के बीच लेनदेन का प्रबंधन शामिल है। आर्केस्ट्रा सेवा संरचना के लिए एक केंद्रीकृत दृष्टिकोण को रोजगार देता है।
सेवा कोरियोग्राफी भाग लेने वाली सेवाओं का एक वैश्विक विवरण है, जो संदेशों के आदान-प्रदान, दो या अधिक अंत बिंदुओं के बीच बातचीत के नियमों और समझौतों द्वारा परिभाषित किया गया है। कोरियोग्राफी सेवा संरचना के लिए एक विकेन्द्रीकृत दृष्टिकोण को रोजगार देती है।
कोरियोग्राफी कई सेवाओं के बीच की बातचीत का वर्णन करती है, जहां ऑर्केस्ट्रेशन एक पार्टी के दृष्टिकोण से नियंत्रण का प्रतिनिधित्व करता है। इसका मतलब यह है कि कोरियोग्राफी एक ऑर्केस्ट्रेशन से अलग होती है, जहां संबंधित तर्क उन सेवाओं के बीच बातचीत को नियंत्रित करता है, जिनमें निवास करना चाहिए।
सेवा आर्केस्ट्रा : आप एक निश्चित तर्क द्वारा कई सेवाओं को एक साथ रखते हैं। यह तर्क एक ही स्थान पर वर्णित है। आप सूक्ष्म प्रबंधन करने वाले प्रबंधक के साथ लोगों की एक टीम की कल्पना कर सकते हैं। प्रबंधक पहले से बता देता है कि क्या, कब और किसे करना चाहिए। टीम के सदस्य नौकरी के पूरे लक्ष्य की परवाह नहीं करते हैं, प्रबंधक आउटपुट को एक एकल वितरण में जोड़ता है। एक व्यावहारिक उदाहरण एक BPEL प्रक्रिया है। BPEL प्रक्रिया में तर्क होते हैं, कई सेवाओं को लागू कर सकते हैं और अपनी प्रतिक्रियाओं को एक एकल सेवा प्रतिक्रिया में जोड़ सकते हैं।
सेवा कोरियोग्राफी : निर्णय तर्क वितरित किया जाता है, जिसमें कोई केंद्रीकृत बिंदु नहीं होता है। आप एक ऐसे घर की कल्पना कर सकते हैं, जहां हर कोई आम अच्छे के लिए काम करता है और सूक्ष्म प्रबंधन के बिना सक्रिय रूप से काम करता है। या आप एक मानव शरीर की कल्पना कर सकते हैं, जहां विभिन्न सदस्य अन्योन्याश्रित हैं और सामान्य लक्ष्य के लिए काम करते हैं। एक व्यावहारिक उदाहरण ईवेंट चालित प्रसंस्करण है, जहां एक एजेंट किसी घटना से सक्रिय होता है और अपना काम करता है। सभी एजेंट मिलकर एक सिस्टम बनाते हैं। कोई केंद्रीकृत तर्क नहीं है। नृत्यकला की संभावनाएं आर्केस्ट्रा से परे जा सकती हैं क्योंकि यह वास्तविक दुनिया के साथ अधिक संरेखित है।
मेरी राय है कि हमें इन दोनों के बीच बहुत अंतर करने की आवश्यकता नहीं है, क्योंकि हमें व्यापार तर्क पर ध्यान देने की आवश्यकता है। जहां तर्क का एक बिंदु काम करता है, हम आर्केस्ट्रा करते हैं। जहां एक समस्या को एक केंद्रीकृत तर्क द्वारा कवर नहीं किया जा सकता है, हम वैसे भी कोरियोग्राफी के लिए मजबूर हैं। यही कारण है कि हम अक्सर आईटी में ऑर्केस्ट्रेशन करते हैं, जबकि कोरोग्रैही एक अकादमिक अवधारणा और शोध के लिए एक विषय है। और बहुत बार हम इसे वास्तविक रूप में जाने बिना, वास्तविक दुनिया की तरह कोरियोग्राफी करते हैं।
सेवाओं को परमाणु सेवाओं और अन्य सेवाओं से बनी सेवाओं के बीच प्रतिष्ठित किया जा सकता है। ऐसी रचनाओं को "आर्केस्ट्रा" कहा जाता है। कभी वर्कफ़्लो, कभी बिज़नेस प्रोसेस। उदाहरण के लिए, बीपीईएल एक ऑर्केस्ट्रेशन भाषा है, लेकिन खुद को "व्यवसाय प्रक्रिया निष्पादन भाषा" कहता है।
कोई आवश्यकता नहीं है कि सेवाओं को श्रेणीबद्ध रूप से बनाए जाने की आवश्यकता है। इसका मतलब है, दो सेवाएं एक-दूसरे से बात कर सकती हैं। उनके बीच चल रहे प्रोटोकॉल को "कोरियोग्राफी" कहा जाता है। यह दो सेवाएं हो सकती हैं, लेकिन आमतौर पर, इसमें दो से अधिक सेवाएँ शामिल होती हैं। कोरियोग्राफी में प्रत्येक सेवा को भागीदार सेवाओं के ऑर्केस्ट्रेटर के रूप में देखा जा सकता है। कोरियोग्राफी में भाग लेने वाली प्रत्येक सेवा को ऑर्केस्ट्रेशन / वर्कफ़्लो / प्रक्रिया के रूप में महसूस किया जा सकता है।
एक आर्केस्ट्रा प्रत्येक सेवा के पूर्ण व्यवहार को दर्शाता है जबकि कोरियोग्राफी प्रत्येक सेवा के इंटरफ़ेस व्यवहार विवरण को जोड़ती है।
कोरियोग्राफी, इंटरफ़ेस व्यवहार, प्रदाता व्यवहार, और ऑर्केस्ट्रेशन को भेद करने वाला एक अच्छा वैज्ञानिक लेख निम्नलिखित है: डाइजमान, आर एंड डुमास, एम। सेवा-उन्मुख डिजाइन: एक बहु-दृष्टिकोण दृष्टिकोण इंटरनेशनल जर्नल ऑफ़ कोऑपरेटिव इन्फॉर्मेशन सिस्टम्स, 2004, 13, 337-368
चूंकि धागा पुराना है, लेकिन फिर भी उन लोगों के लिए इसे लिख रहा हूं, जो इस प्रश्न की तलाश में यहां ठोकर खाएंगे जैसा मैंने किया था। यह सेवा-उन्मुख वास्तुकला (SOA) में बहुत विवादित प्रश्न है, जिसे शुरुआती लोगों के लिए बहुत अधिक स्पष्टीकरण की आवश्यकता है।
ऑर्केस्ट्रेशन: निष्पादन योग्य प्रक्रिया
कोरियोग्राफी: बहु-पक्षीय सहयोग
इसके विपरीत कोरियोग्राफी केंद्रीय समन्वयक पर निर्भर नहीं करती है। बल्कि, कोरियोग्राफी में शामिल प्रत्येक वेब सेवा को ठीक से पता होता है कि कब अपने संचालन को निष्पादित करना है और किसके साथ बातचीत करनी है। कोरियोग्राफी सार्वजनिक व्यावसायिक प्रक्रियाओं में संदेशों के आदान-प्रदान पर केंद्रित एक सहयोगी प्रयास है।
कोरियोग्राफी में सभी प्रतिभागियों को व्यवसाय प्रक्रिया, निष्पादन के लिए संचालन, संदेशों को आदान-प्रदान करने और संदेश के आदान-प्रदान के समय के बारे में पता होना चाहिए।
कोरियोग्राफी बनाम आर्केस्ट्रा
व्यावसायिक सेवाओं को निष्पादित करने के लिए वेब सेवाओं की रचना के दृष्टिकोण से, आर्केस्ट्रा एक अधिक लचीला प्रतिमान है और कोरियोग्राफी पर निम्नलिखित फायदे हैं:
घटक प्रक्रियाओं के समन्वय को केंद्र में एक ज्ञात समन्वयक द्वारा प्रबंधित किया जाता है।
वेब सेवाओं को उनकी जानकारी के बिना शामिल किया जा सकता है कि वे एक बड़ी व्यावसायिक प्रक्रिया में भाग ले रहे हैं।
आंद्रेई और अन्य ने यह समझाते हुए अच्छा काम किया कि ऑर्केस्ट्रेशन क्या है और कोरियोग्राफी क्या है। सॉफ्टवेयर आर्किटेक्ट के लिए इन दो विकल्पों के बीच चयन करना, विभिन्न गुणों के संबंध में उनकी तुलना करना भी महत्वपूर्ण है।
कोरियोग्राफी पर ऑर्केस्ट्रेशन प्लस
ऑर्केस्ट्रा पर कोरियोग्राफी का प्लस
प्रदर्शन: ऑर्केस्ट्रेशन वर्कफ़्लो स्क्रिप्ट की व्याख्या और ऑर्केस्ट्रेशन प्लेटफ़ॉर्म की अतिरिक्त परत के कारण एक प्रदर्शन ओवरहेड को बढ़ाता है।
लागत: कोरियोग्राफी में अतिरिक्त मिडलवेयर या भाषा की आवश्यकता नहीं होती है, जिसमें लर्निंग कर्व्स और गवर्नेंस का बोझ होता है।
यदि ऑर्केस्ट्रेटर तत्व उच्च उपलब्धता के लिए एक तंत्र को नियोजित नहीं करता है, तो एक ऑर्केस्ट्रेशन समाधान एक एसपीओएफ पेश कर सकता है। धन्यवाद @Deepak पोर एक टिप्पणी में इस ओर इशारा करते हुए।
मैं कहता हूं कि कोरियोग्राफी उच्च विकेन्द्रीकृत संगठनों के लिए आंतरिक रूप से अनुकूल है। आपको केंद्रीय व्यावसायिक प्रक्रिया निष्पादक की आवश्यकता नहीं होगी। यह संगठन उप-इकाइयों में से प्रत्येक द्वारा स्वतंत्र विकास और विकास की सुविधा प्रदान करता है।
(मैं आर्केस्ट्रा बनाम कोरियोग्राफी प्रश्न की इस व्याख्या की सदस्यता लेता हूं: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html )
जब आप किसी प्रक्रिया में सभी अभिनेताओं पर नियंत्रण रखते हैं, तो ऑर्केस्ट्रेशन उपयोगी होता है - जब वे सभी नियंत्रण के एक डोमेन में होते हैं और आप गतिविधियों के प्रवाह को निर्धारित कर सकते हैं। यह सबसे अधिक बार होता है जब आप एक व्यवसाय प्रक्रिया को निर्दिष्ट कर रहे हैं जिसे एक संगठन के अंदर लागू किया जाएगा जिस पर आपका नियंत्रण है।
कोरियोग्राफी यह निर्दिष्ट करने का एक तरीका है कि कैसे दो या दो से अधिक पार्टियां - जिनमें से किसी का भी अन्य पार्टियों की प्रक्रियाओं पर कोई नियंत्रण नहीं है, या शायद उन प्रक्रियाओं की कोई दृश्यता है - जानकारी और मूल्य साझा करने के लिए उनकी गतिविधियों और प्रक्रियाओं का समन्वय कर सकती है। नियंत्रण / दृश्यता के क्षेत्रों में समन्वय की आवश्यकता होने पर कोरियोग्राफी का उपयोग करें। आप नेटवर्क प्रोटोकॉल की तरह कोरियोग्राफी के बारे में एक साधारण परिदृश्य में सोच सकते हैं। यह पार्टियों के बीच अनुरोधों और प्रतिक्रियाओं के स्वीकार्य पैटर्न तय करता है।
ऑर्केस्ट्रेशन में, एक कंडक्टर होता है और साधन खिलाड़ी होते हैं। कंडक्टर कैसे आचरण करता है, उसके अनुसार खिलाड़ी खेलते हैं। यदि कंडक्टर को बदल दिया जाता है, तो हार्मोनिक अभिव्यक्ति अलग होगी यानी यह अभी भी एक ही नाटक (सेवा) है लेकिन एक अलग परिणाम के साथ। उदाहरण के लिए, एक वित्तीय व्यवस्था का प्रस्ताव प्रदान करने के लिए, ऑर्केस्ट्रेशन सेवा प्रत्येक खिलाड़ी (इकाई या उपयोगिता सेवा, उदाहरण के लिए क्रेडिट चेक) पूछकर (कंडक्टर के व्यापार के अनुसार वापसी परिणाम या उसके खेल को समायोजित / अपडेट करने के लिए) संचालित करेगी (व्यवसाय नियम)। कोरियोग्राफी में कोरियोग्राफर होता है और नर्तकियों के समूह होते हैं। कोरियोग्राफी एक दिशा है, लेकिन नर्तकियों का प्रत्येक समूह उस दिशा को महसूस करने के लिए स्वायत्त है।
एक ऑर्केस्ट्रेशन आमतौर पर निचले स्तर की सेवाओं को एक साथ जोड़ता है। यह एक मध्यस्थ की तरह है । एक कोरियोग्राफी आगे भी युग्मन को कम करने में मदद करती है। मैंने इसे यहां और अधिक विस्तार से समझाया है ।