आर्केस्ट्रा बनाम कोरियोग्राफी


182

इंट्रा-संगठन दृष्टिकोण से सर्विस ऑर्केस्ट्रेशन और सर्विस कोरियोग्राफी के बीच क्या अंतर हैं।

जवाबों:


334

बेसिक प्रौद्योगिकियाँ जैसे (XML, SOAP, WSDL) अपने आप में एक इकाई के रूप में सेवाओं का वर्णन, पता लगाने और इनवॉइस करने का साधन प्रदान करती हैं। हालांकि, ये प्रौद्योगिकियां अधिक जटिल सहयोग में सेवा की भूमिका के बारे में एक समृद्ध व्यवहारिक विवरण नहीं देती हैं। इस सहयोग में गतिविधियों के बीच गतिविधियों और संबंधों का एक क्रम शामिल है, जो व्यावसायिक प्रक्रिया का निर्माण करते हैं। इस प्रक्रिया को बनाने के दो तरीके हैं: सर्विस ऑर्केस्ट्रेशन और सर्विस कोरियोग्राफी।

सेवा आर्केस्ट्रा

सेवा ऑर्केस्ट्रेशन एक एकल केंद्रीकृत निष्पादन योग्य व्यवसाय प्रक्रिया (ऑर्केस्ट्रेटर) का प्रतिनिधित्व करता है जो विभिन्न सेवाओं के बीच बातचीत का समन्वय करता है। ऑर्केस्ट्रेटर सेवाओं को लागू करने और संयोजन करने के लिए जिम्मेदार है।

सभी भाग लेने वाली सेवाओं के बीच संबंध एकल समापन बिंदु (अर्थात, समग्र सेवा) द्वारा वर्णित हैं। ऑर्केस्ट्रेशन में व्यक्तिगत सेवाओं के बीच लेनदेन का प्रबंधन शामिल है। आर्केस्ट्रा सेवा संरचना के लिए एक केंद्रीकृत दृष्टिकोण को रोजगार देता है।

वाद्य-स्थान

सेवा कोरियोग्राफी

सेवा कोरियोग्राफी भाग लेने वाली सेवाओं का एक वैश्विक विवरण है, जो संदेशों के आदान-प्रदान, दो या अधिक अंत बिंदुओं के बीच बातचीत के नियमों और समझौतों द्वारा परिभाषित किया गया है। कोरियोग्राफी सेवा संरचना के लिए एक विकेन्द्रीकृत दृष्टिकोण को रोजगार देती है।

नृत्यकला

कोरियोग्राफी कई सेवाओं के बीच की बातचीत का वर्णन करती है, जहां ऑर्केस्ट्रेशन एक पार्टी के दृष्टिकोण से नियंत्रण का प्रतिनिधित्व करता है। इसका मतलब यह है कि कोरियोग्राफी एक ऑर्केस्ट्रेशन से अलग होती है, जहां संबंधित तर्क उन सेवाओं के बीच बातचीत को नियंत्रित करता है, जिनमें निवास करना चाहिए।


7
दोनों को दिखाने के लिए शानदार चित्र! तुम्हे यह कहा से मिला?
डेविड मान

6
@DavidMann आपकी टिप्पणी के लिए बहुत धन्यवाद, और अगर आपको लगता है कि यह आपके लिए उपयोगी था, तो कृपया अपवोट करें। मैंने इन आरेखों को विसिओ में बनाया, और प्रेरणा के रूप में मैंने कुछ साहित्य सेवा संरचना में उपयोग किए। हालांकि, मुझे एहसास हुआ कि यह जवाब 2 साल पहले था जब मैंने सिर्फ सेवा संरचना के बारे में पढ़ना शुरू किया था। मैं इस जवाब को संदर्भों के साथ अपडेट करूंगा और दोनों की प्रोप्राइटी पर विस्तार करूंगा
आंद्रेई

@Andrei: इससे अधिक सरल नहीं हो सकता था।
अंशुल निगम

क्या आर्केस्ट्रा और कोरियोग्राफी को मिलाना उचित है? उदाहरण के लिए कोर सिंक्रोनस वर्कफ़्लो के लिए ऑर्केस्ट्रेशन है, लेकिन फिर कुछ कोरियोग्राफी को async घटनाओं को स्रोत क्षमताओं (माइक्रोसर्विस) में वापस स्ट्रीम करने के लिए। मेरे परिदृश्य में, यह दृष्टिकोण मुझे सागा / राज्य-मशीन और क्षतिपूर्ति तर्क करने से बचा सकता है।
रयान.बार्ट्स

1
कुछ पाठक आपके ऑर्केस्ट्रेशन आरेख से अनुमान लगा सकते हैं कि ऑर्केस्ट्रेशन का अर्थ है नियंत्रण सेवा से सिंक्रोनाइज़ करने के लिए सेवाएं प्रदान करना। मैं स्पष्ट करना चाहूंगा कि इनवोक-रिप्लाई संचार को एसिंक्रोनस विधियों, झुकाव का उपयोग करके भी पूरा किया जा सकता है। एक संदेश दलाल के माध्यम से।
क्रिस्टोफ

34

सेवा आर्केस्ट्रा : आप एक निश्चित तर्क द्वारा कई सेवाओं को एक साथ रखते हैं। यह तर्क एक ही स्थान पर वर्णित है। आप सूक्ष्म प्रबंधन करने वाले प्रबंधक के साथ लोगों की एक टीम की कल्पना कर सकते हैं। प्रबंधक पहले से बता देता है कि क्या, कब और किसे करना चाहिए। टीम के सदस्य नौकरी के पूरे लक्ष्य की परवाह नहीं करते हैं, प्रबंधक आउटपुट को एक एकल वितरण में जोड़ता है। एक व्यावहारिक उदाहरण एक BPEL प्रक्रिया है। BPEL प्रक्रिया में तर्क होते हैं, कई सेवाओं को लागू कर सकते हैं और अपनी प्रतिक्रियाओं को एक एकल सेवा प्रतिक्रिया में जोड़ सकते हैं।

सेवा कोरियोग्राफी : निर्णय तर्क वितरित किया जाता है, जिसमें कोई केंद्रीकृत बिंदु नहीं होता है। आप एक ऐसे घर की कल्पना कर सकते हैं, जहां हर कोई आम अच्छे के लिए काम करता है और सूक्ष्म प्रबंधन के बिना सक्रिय रूप से काम करता है। या आप एक मानव शरीर की कल्पना कर सकते हैं, जहां विभिन्न सदस्य अन्योन्याश्रित हैं और सामान्य लक्ष्य के लिए काम करते हैं। एक व्यावहारिक उदाहरण ईवेंट चालित प्रसंस्करण है, जहां एक एजेंट किसी घटना से सक्रिय होता है और अपना काम करता है। सभी एजेंट मिलकर एक सिस्टम बनाते हैं। कोई केंद्रीकृत तर्क नहीं है। नृत्यकला की संभावनाएं आर्केस्ट्रा से परे जा सकती हैं क्योंकि यह वास्तविक दुनिया के साथ अधिक संरेखित है।

मेरी राय है कि हमें इन दोनों के बीच बहुत अंतर करने की आवश्यकता नहीं है, क्योंकि हमें व्यापार तर्क पर ध्यान देने की आवश्यकता है। जहां तर्क का एक बिंदु काम करता है, हम आर्केस्ट्रा करते हैं। जहां एक समस्या को एक केंद्रीकृत तर्क द्वारा कवर नहीं किया जा सकता है, हम वैसे भी कोरियोग्राफी के लिए मजबूर हैं। यही कारण है कि हम अक्सर आईटी में ऑर्केस्ट्रेशन करते हैं, जबकि कोरोग्रैही एक अकादमिक अवधारणा और शोध के लिए एक विषय है। और बहुत बार हम इसे वास्तविक रूप में जाने बिना, वास्तविक दुनिया की तरह कोरियोग्राफी करते हैं।


21

सेवाओं को परमाणु सेवाओं और अन्य सेवाओं से बनी सेवाओं के बीच प्रतिष्ठित किया जा सकता है। ऐसी रचनाओं को "आर्केस्ट्रा" कहा जाता है। कभी वर्कफ़्लो, कभी बिज़नेस प्रोसेस। उदाहरण के लिए, बीपीईएल एक ऑर्केस्ट्रेशन भाषा है, लेकिन खुद को "व्यवसाय प्रक्रिया निष्पादन भाषा" कहता है।

कोई आवश्यकता नहीं है कि सेवाओं को श्रेणीबद्ध रूप से बनाए जाने की आवश्यकता है। इसका मतलब है, दो सेवाएं एक-दूसरे से बात कर सकती हैं। उनके बीच चल रहे प्रोटोकॉल को "कोरियोग्राफी" कहा जाता है। यह दो सेवाएं हो सकती हैं, लेकिन आमतौर पर, इसमें दो से अधिक सेवाएँ शामिल होती हैं। कोरियोग्राफी में प्रत्येक सेवा को भागीदार सेवाओं के ऑर्केस्ट्रेटर के रूप में देखा जा सकता है। कोरियोग्राफी में भाग लेने वाली प्रत्येक सेवा को ऑर्केस्ट्रेशन / वर्कफ़्लो / प्रक्रिया के रूप में महसूस किया जा सकता है।

एक आर्केस्ट्रा प्रत्येक सेवा के पूर्ण व्यवहार को दर्शाता है जबकि कोरियोग्राफी प्रत्येक सेवा के इंटरफ़ेस व्यवहार विवरण को जोड़ती है।

कोरियोग्राफी, इंटरफ़ेस व्यवहार, प्रदाता व्यवहार, और ऑर्केस्ट्रेशन को भेद करने वाला एक अच्छा वैज्ञानिक लेख निम्नलिखित है: डाइजमान, आर एंड डुमास, एम। सेवा-उन्मुख डिजाइन: एक बहु-दृष्टिकोण दृष्टिकोण इंटरनेशनल जर्नल ऑफ़ कोऑपरेटिव इन्फॉर्मेशन सिस्टम्स, 2004, 13, 337-368


19

चूंकि धागा पुराना है, लेकिन फिर भी उन लोगों के लिए इसे लिख रहा हूं, जो इस प्रश्न की तलाश में यहां ठोकर खाएंगे जैसा मैंने किया था। यह सेवा-उन्मुख वास्तुकला (SOA) में बहुत विवादित प्रश्न है, जिसे शुरुआती लोगों के लिए बहुत अधिक स्पष्टीकरण की आवश्यकता है।

ऑर्केस्ट्रेशन: निष्पादन योग्य प्रक्रिया

  • निजी व्यावसायिक प्रक्रियाओं में उपयोग किया जाता है
  • एक केंद्रीय प्रक्रिया (जो एक अन्य वेब सेवा हो सकती है) शामिल वेब सेवाओं पर नियंत्रण रखती है और ऑपरेशन में शामिल वेब सेवाओं पर विभिन्न कार्यों के निष्पादन का समन्वय करती है
  • शामिल वेब सेवाओं को "पता" नहीं है (और यह जानने की आवश्यकता नहीं है) कि वे एक रचना प्रक्रिया में शामिल हैं और वे एक उच्च-स्तरीय व्यवसाय प्रक्रिया में भाग ले रहे हैं।
  • ऑर्केस्ट्रेशन के केवल केंद्रीय समन्वयक को इस लक्ष्य के बारे में पता है, इसलिए ऑर्केस्ट्रेशन को संचालन की स्पष्ट परिभाषाओं और वेब सेवाओं के आह्वान के आदेश के साथ केंद्रीकृत किया गया है।

यहां छवि विवरण दर्ज करें

कोरियोग्राफी: बहु-पक्षीय सहयोग

  • इसके विपरीत कोरियोग्राफी केंद्रीय समन्वयक पर निर्भर नहीं करती है। बल्कि, कोरियोग्राफी में शामिल प्रत्येक वेब सेवा को ठीक से पता होता है कि कब अपने संचालन को निष्पादित करना है और किसके साथ बातचीत करनी है। कोरियोग्राफी सार्वजनिक व्यावसायिक प्रक्रियाओं में संदेशों के आदान-प्रदान पर केंद्रित एक सहयोगी प्रयास है।

  • कोरियोग्राफी में सभी प्रतिभागियों को व्यवसाय प्रक्रिया, निष्पादन के लिए संचालन, संदेशों को आदान-प्रदान करने और संदेश के आदान-प्रदान के समय के बारे में पता होना चाहिए।

यहां छवि विवरण दर्ज करें

कोरियोग्राफी बनाम आर्केस्ट्रा

  • व्यावसायिक सेवाओं को निष्पादित करने के लिए वेब सेवाओं की रचना के दृष्टिकोण से, आर्केस्ट्रा एक अधिक लचीला प्रतिमान है और कोरियोग्राफी पर निम्नलिखित फायदे हैं:

  • घटक प्रक्रियाओं के समन्वय को केंद्र में एक ज्ञात समन्वयक द्वारा प्रबंधित किया जाता है।

  • वेब सेवाओं को उनकी जानकारी के बिना शामिल किया जा सकता है कि वे एक बड़ी व्यावसायिक प्रक्रिया में भाग ले रहे हैं।

  • वैकल्पिक दोष होने की स्थिति में वैकल्पिक परिदृश्य रखे जा सकते हैं।

1
दरअसल, कोरियोग्राफी आमतौर पर एक केंद्रीय समन्वयक पर निर्भर करती है - और आमतौर पर समन्वयक वितरित संदेश दलाल का कुछ रूप है। एक संदेश ब्रोकर की तरह कुछ का उपयोग नहीं करने से आपकी सेवाओं को बहुत ही अनम्य तरीके से एक साथ भंगुरता और कम पुन: प्रयोज्यता की ओर ले जाएगा।
रॉडनी पी। बारबाती

8

आंद्रेई और अन्य ने यह समझाते हुए अच्छा काम किया कि ऑर्केस्ट्रेशन क्या है और कोरियोग्राफी क्या है। सॉफ्टवेयर आर्किटेक्ट के लिए इन दो विकल्पों के बीच चयन करना, विभिन्न गुणों के संबंध में उनकी तुलना करना भी महत्वपूर्ण है।

कोरियोग्राफी पर ऑर्केस्ट्रेशन प्लस

  • विश्वसनीयता: ऑर्केस्ट्रेशन प्लेटफार्मों में त्रुटि हैंडलिंग और लेनदेन प्रबंधन (लेनदेन की क्षतिपूर्ति) के लिए अंतर्निहित समर्थन है। कोरियोग्राफी में, कस्टम-विकसित वर्कफ़्लो और त्रुटि हैंडलिंग अधिक त्रुटि-प्रवण होते हैं।
  • मोडिफ़िबिलिटी: वर्कफ़्लो और जटिल सेवा रचनाओं को बनाना और बदलना ऑर्केस्ट्रेशन प्लेटफार्मों में पाए जाने वाले विज़ुअल बीपीएम टूल्स में आसान है।

ऑर्केस्ट्रा पर कोरियोग्राफी का प्लस

  • प्रदर्शन: ऑर्केस्ट्रेशन वर्कफ़्लो स्क्रिप्ट की व्याख्या और ऑर्केस्ट्रेशन प्लेटफ़ॉर्म की अतिरिक्त परत के कारण एक प्रदर्शन ओवरहेड को बढ़ाता है।

  • लागत: कोरियोग्राफी में अतिरिक्त मिडलवेयर या भाषा की आवश्यकता नहीं होती है, जिसमें लर्निंग कर्व्स और गवर्नेंस का बोझ होता है।

संपादित करें

यदि ऑर्केस्ट्रेटर तत्व उच्च उपलब्धता के लिए एक तंत्र को नियोजित नहीं करता है, तो एक ऑर्केस्ट्रेशन समाधान एक एसपीओएफ पेश कर सकता है। धन्यवाद @Deepak पोर एक टिप्पणी में इस ओर इशारा करते हुए।


3
कोरियोग्राफी को छोड़कर अतिरिक्त मिडलवेयर की आवश्यकता होती है। आवश्यकताओं (कार्यों) को विभिन्न नोड्स से मेल खाना चाहिए। बाद में कोरियोग्राफी तैनात, अधिनियमित, निगरानी और अनुकूलित होती है। इस सभी प्रबंधन के लिए ऐसे उपकरणों की आवश्यकता होती है जो आमतौर पर एक मिडलवेयर द्वारा प्रदान किए जाते हैं।
आंद्रेई

1
क्या आर्केस्ट्रा विफलता के एकल बिंदु का नुकसान नहीं लाता है जो कोरियोग्राफी के साथ नहीं है?
15:14

6

मैं कहता हूं कि कोरियोग्राफी उच्च विकेन्द्रीकृत संगठनों के लिए आंतरिक रूप से अनुकूल है। आपको केंद्रीय व्यावसायिक प्रक्रिया निष्पादक की आवश्यकता नहीं होगी। यह संगठन उप-इकाइयों में से प्रत्येक द्वारा स्वतंत्र विकास और विकास की सुविधा प्रदान करता है।

(मैं आर्केस्ट्रा बनाम कोरियोग्राफी प्रश्न की इस व्याख्या की सदस्यता लेता हूं: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html )


6

जब आप किसी प्रक्रिया में सभी अभिनेताओं पर नियंत्रण रखते हैं, तो ऑर्केस्ट्रेशन उपयोगी होता है - जब वे सभी नियंत्रण के एक डोमेन में होते हैं और आप गतिविधियों के प्रवाह को निर्धारित कर सकते हैं। यह सबसे अधिक बार होता है जब आप एक व्यवसाय प्रक्रिया को निर्दिष्ट कर रहे हैं जिसे एक संगठन के अंदर लागू किया जाएगा जिस पर आपका नियंत्रण है।

कोरियोग्राफी यह निर्दिष्ट करने का एक तरीका है कि कैसे दो या दो से अधिक पार्टियां - जिनमें से किसी का भी अन्य पार्टियों की प्रक्रियाओं पर कोई नियंत्रण नहीं है, या शायद उन प्रक्रियाओं की कोई दृश्यता है - जानकारी और मूल्य साझा करने के लिए उनकी गतिविधियों और प्रक्रियाओं का समन्वय कर सकती है। नियंत्रण / दृश्यता के क्षेत्रों में समन्वय की आवश्यकता होने पर कोरियोग्राफी का उपयोग करें। आप नेटवर्क प्रोटोकॉल की तरह कोरियोग्राफी के बारे में एक साधारण परिदृश्य में सोच सकते हैं। यह पार्टियों के बीच अनुरोधों और प्रतिक्रियाओं के स्वीकार्य पैटर्न तय करता है।


5

सेवा आर्केस्ट्रा बनाम कोरियोग्राफी देखने का दूसरा तरीका:

- सेवा आर्केस्ट्रा: एक व्यावसायिक डोमेन के आसपास।
- सेवा कोरियोग्राफी: कई व्यावसायिक डोमेन के बीच।


1

ऑर्केस्ट्रेशन में, एक कंडक्टर होता है और साधन खिलाड़ी होते हैं। कंडक्टर कैसे आचरण करता है, उसके अनुसार खिलाड़ी खेलते हैं। यदि कंडक्टर को बदल दिया जाता है, तो हार्मोनिक अभिव्यक्ति अलग होगी यानी यह अभी भी एक ही नाटक (सेवा) है लेकिन एक अलग परिणाम के साथ। उदाहरण के लिए, एक वित्तीय व्यवस्था का प्रस्ताव प्रदान करने के लिए, ऑर्केस्ट्रेशन सेवा प्रत्येक खिलाड़ी (इकाई या उपयोगिता सेवा, उदाहरण के लिए क्रेडिट चेक) पूछकर (कंडक्टर के व्यापार के अनुसार वापसी परिणाम या उसके खेल को समायोजित / अपडेट करने के लिए) संचालित करेगी (व्यवसाय नियम)। कोरियोग्राफी में कोरियोग्राफर होता है और नर्तकियों के समूह होते हैं। कोरियोग्राफी एक दिशा है, लेकिन नर्तकियों का प्रत्येक समूह उस दिशा को महसूस करने के लिए स्वायत्त है।


-1

एक ऑर्केस्ट्रेशन आमतौर पर निचले स्तर की सेवाओं को एक साथ जोड़ता है। यह एक मध्यस्थ की तरह है । एक कोरियोग्राफी आगे भी युग्मन को कम करने में मदद करती है। मैंने इसे यहां और अधिक विस्तार से समझाया है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.