2012-06-23 30 views
7

Service Oriented Architecture Principles साइट और संबंधित विकिपीडिया article पढ़ने के बाद मैं एक सोचा था: Erlang/OTP मंच एक SOA मंच के रूप में माना जा सकता है और SOA अनुप्रयोगों उस पर बनाया जा सकता है।एसओए: सेवाओं के रूप में Erlang/OTP वेब सर्वर का उपयोग क्यों नहीं करते हैं?

केवल बात यह है कि एक ऐसी प्रणाली में प्रत्येक सेवा के लिए Service Contract बहुत विशिष्ट है: आदेश Erlang/OTP में एक सेवा को कॉल करने में orchestrating परत Erlang संदेश के माध्यम से कॉल करने के लिए होता है या gen_server करने के लिए कॉल (पर निर्भर करता है कार्यान्वयन)।

यह Erlang/OTP मंच दायरे के बाहर सेवाओं के लिए किसी भी कॉल करने नहीं जाने देंगे।

लेकिन क्या होगा यदि हम सभी संबंधित सेवा कार्यक्षमता को एर्लंग-आधारित वेबसर्वर में मोचीवेब की तरह ले जाकर प्रत्येक सेवा को बनाने का प्रयास करते हैं और अनिवार्य रूप से gen_server से प्रत्येक सेवा के इंटरफ़ेस को बदलते हैं: XML पर कॉल करें?

यह WSDL पर आधारित सार्वभौमिक सेवा अनुबंधों के साथ मानक 'ईंटों' से विभिन्न अनुप्रयोगों को लिखने की अनुमति देगा।

इसके अलावा, इस दृष्टिकोण हमें OTP पर्यवेक्षकों और अन्य OTP सुविधाओं का उपयोग कर, क्योंकि इस तरह के एक सेवा अभी भी OTP का आवेदन किया जाएगा जारी रखने के लिए अनुमति देता है।

तो सवाल यह है: क्या आपको लगता है कि सेवा के रूप में ओटीपी वेबसर्वर (मोचीवेब) का उपयोग करके सेवा उन्मुख वास्तुकला दृष्टिकोण के साथ एक सॉफ्टवेयर अनुप्रयोग बनाना एक अच्छा विचार है? क्या अतिरिक्त एक्सएमएल प्रसंस्करण परत इस तरह के दृष्टिकोण के सभी फायदे को नष्ट कर सकती है? क्योंकि तुम अपने आप को SOA के प्रोटोकॉल के सीमित हो जाएगी

SOA with Erlang/OTP

+1

वेबमाचिन (http://wiki.basho.com/Webmachine.html) आपके गैर-ओटीपी विशिष्ट वातावरण की तलाश के लायक हो सकता है। सिद्धांत रूप में ऐसा कोई कारण नहीं है कि ओटीपी आप जो खोज रहे हैं उसे प्रदान नहीं कर सकता - कम से कम सामान्यता के स्तर पर आप वर्णन करते हैं। – sfinnie

+0

मैं वही चीज़ सोच रहा हूं :-) –

+0

sfinnie, इस विशेष मामले में वेबमाचिन और मोचीवेब के बीच क्या अंतर है? – skanatek

उत्तर

4

प्राथमिक कारण ऐसा नहीं किया जाता है। Erlang कुछ अतिरिक्त अंक (पर नज़र रखता है) के साथ आईपी के प्रोटोकॉल लागू करता है। जबकि आप इसे कर सकते हैं, मुझे आश्चर्य है कि यह इसके लायक होगा।

सिद्धांत रूप में, Erlang पहले से ही विचार SOA के के लिए लेकिन सोप और डबल्यूएसडीएल के सभी ब्लोट बिना सभी टूलींग है :)

+0

क्या आप कृपया एसओएपी और डब्ल्यूएसडीएल के ब्लोट का एक सरल उदाहरण प्रदान कर सकते हैं? (मैं पूछ रहा हूं, क्योंकि मुझे इस ब्लोट के बारे में कुछ भी पता नहीं है) – skanatek

+0

मामले में ब्लोट का मतलब है "एक बहुत बड़ा मानक"। बड़े पैमाने पर बड़े पैमाने पर बड़े पैमाने पर लागू करना मुश्किल है। –

2

एसओए कई कार्यान्वयन प्रौद्योगिकियों के लिए लागू किया जा सकता है, न सिर्फ सोपी वेब सर्विसेज, और मैंने पाया है कि यह हमेशा फायदेमंद है। उदाहरण के लिए, आप अपने डेटाबेस दृश्यों और संग्रहीत प्रक्रियाओं को सेवाओं के रूप में मॉडल कर सकते हैं। आप अपने जावा एपीआई मॉडल कर सकते हैं मॉडल। आदि

अब, अपने वास्तविक सवालों के लिए हो रही:

तो, सवाल यह है: क्या आपको लगता है कि OTP वेबसर्वर (Mochiweb) के रूप में उपयोग करते हुए सेवा उन्मुखी वास्तुकला दृष्टिकोण के साथ एक सॉफ्टवेयर अनुप्रयोग निर्माण सेवाएं एक अच्छा विचार है?

नहीं। हर कोई एसओएपी और आरईएसटी से दूर जा रहा है; तथापि RESTful सेवा के रूप में OTP वेबसर्वर (Mochiweb) का उपयोग कर अच्छा विचार हो सकता द्वारा सेवा उन्मुखी वास्तुकला दृष्टिकोण के साथ एक सॉफ्टवेयर अनुप्रयोग का निर्माण।

क्या अतिरिक्त एक्सएमएल प्रसंस्करण परत इस तरह के दृष्टिकोण के सभी फायदे को नष्ट कर सकती है?

यह निर्भर करता है कि आपके उद्देश्य है। यदि आप केवल एक एक्सएमएल लेयर जोड़ रहे हैं क्योंकि आपको लगता है कि यह "द राइट थिंग टू डू ™" है, तो आपको हमेशा एक्सएमएल लेयर के साथ समस्याएं आती हैं क्योंकि यह हल करने में समस्या की तलाश में एक समाधान होगा। यदि आपका उद्देश्य decouple क्लाइंट कार्यान्वयन से सर्वर कार्यान्वयन तकनीक है, तो अपनी संस्थाओं के लिए सामान्य रूप से समझा प्रतिनिधित्व करके, अतिरिक्त एक्सएमएल (या JSON या जो भी सबसे उपयुक्त है) प्रसंस्करण परत इसके लायक है। वेब सेवाओं:

4

यह हमारे Erlang का मुख्य अनुप्रयोग है। हम आम तौर पर Yaws Appmods का उपयोग करते हैं और article here आपको यह दिखाता है कि यह कैसे किया जाता है। Erlang निम्नलिखित की वजह से, SOA के लिए एक अच्छा मंच रहा है:

1. साइड इफेक्ट मुक्त कोड बहुत easilly लिखा गया है और परीक्षण किया जाता है।
2. अलगाव: एरलांग में प्रक्रियाएं प्रत्येक सेवा अनुरोध को एक साफ तरीके से अलग करने में मदद करती हैं।
3. अधिकांश Erlang mochiweb, misultin और Chicago Boss तरह पुस्तकालय एसओए सिस्टम Erlang में लिखा समर्थन करने के लिए जमीन के लिए बनाया गया है।

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

इसे एक शॉट दें, महान विचार