सेवा उन्मुख संरचना

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

सेवा उन्मुखीकरण सेवाओं और सेवा-आधारित विकास और सेवाओं के परिणामों के संदर्भ में सोचने की एक विधि है।

एसओए की कई परिभाषाओं में से एक के अनुसार एक सेवा में चार गुण होते हैं: बड़े सॉफ्टवेयर अनुप्रयोगों की कार्यक्षमता प्रदान करने के लिए विभिन्न सेवाओं का उपयोग सेवा जाल के संयोजन के रूप में किया जा सकता है, एक सिद्धांत एसओए अनुखंडीय प्रोग्रामन के साथ साझा करता है। सेवा-उन्मुख संरचना वितरित, अलग से बनाए रखा और प्रस्तरीय सॉफ्टवेयर घटकों को एकीकृत करता है। यह प्रौद्योगिकियों और मानकों द्वारा सक्षम है, जो विशेष रूप से आईपी नेटवर्क पर नेटवर्क पर घटकों के संचार और सहयोग की सुविधा प्रदान करते हैं।
 * 1) यह तार्किक रूप से एक निर्दिष्ट परिणाम के साथ दोहराने योग्य व्यावसायिक गतिविधि का प्रतिनिधित्व करता है।
 * 2) यह स्व-अंतर्विष्ट है।
 * 3) यह अपने उपभोक्ताओं के लिए एक काला कोष्ठ है, जिसका अर्थ है कि उपभोक्ता को सेवा के आंतरिक कार्यचालन के विषय में पता नहीं होना चाहिए।
 * 4) यह अन्य सेवाओं से बना हो सकता है।

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

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

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

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

रेफरी>
 * 1) तकनीकी रणनीति की तुलना में व्यावसायिक मूल्य को अधिक महत्व दिया जाता है।
 * 2) परियोजना-विशिष्ट लाभों की तुलना में रणनीतिक लक्ष्यों को अधिक महत्व दिया जाता है।
 * 3) कस्टम एकीकरण की तुलना में अंतस्थ अंतरप्रचालनीयता को अधिक महत्व दिया जाता है।
 * 4) विशिष्ट-उद्देश्य कार्यान्वयन की तुलना में साझा सेवाओं को अधिक महत्व दिया जाता है।
 * 5) अनुकूलन से अधिक नम्यता को महत्व दिया जाता है।
 * 6) प्रारंभिक पूर्णता की खोज की तुलना में विकासवादी शोधन को अधिक महत्व दिया जाता है।

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

सिद्धांत
सेवा-उन्मुख संरचना की सटीक संरचना से संबंधित कोई उद्योग मानक नहीं हैं, हालांकि कई उद्योग स्रोतों ने अपने सिद्धांतों को प्रकाशित किया है। इनमें से कुछ निम्नलिखित को शामिल कीजिए:
 * मानकीकृत सेवा अनुबंध
 * सेवाएं एक मानक संचार समझौते का पालन करती हैं, जैसा कि सेवाओं के दिए गए सेट के भीतर एक या अधिक सेवा-विवरण दस्तावेजों द्वारा सामूहिक रूप से परिभाषित किया गया है।


 * सेवा संदर्भ स्वायत्तता (ढीला कपलिंग का एक पहलू)
 * सेवाओं के बीच संबंध को इस स्तर तक कम कर दिया जाता है कि वे केवल अपने अस्तित्व के विषय में जानते हैं।


 * सेवा स्थान पारदर्शिता (अल्प कपलिंग का एक पहलू)
 * सेवाओं को नेटवर्क के भीतर कहीं से भी कॉल किया जा सकता है कि यह स्थित है चाहे वह कहीं भी स्थित हो।


 * सेवा दीर्घायु
 * सेवाओं को लंबे समय तक रहने के लिए डिज़ाइन किया जाना चाहिए। जहां संभव हो सेवाओं को उपभोक्ताओं को बदलने के लिए बाध्य करने से बचना चाहिए यदि उन्हें नई सुविधाओं की आवश्यकता नहीं है, यदि आप आज किसी सेवा को कॉल करते हैं तो आप कल उसी सेवा को कॉल करने में सक्षम होंगे।


 * सेवा अमूर्त
 * सेवाएं काले कोष्ठ के रूप में कार्य करती हैं, यानी उनका आंतरिक तर्क उपभोक्ताओं से छिपा होता है।


 * सेवा स्वायत्तता सिद्धांत
 * सेवाएँ स्वतंत्र होती हैं और डिज़ाइन-टाइम और रन-टाइम के नज़रिए से उनके द्वारा एनकैप्सुलेट की जाने वाली कार्यक्षमता को नियंत्रित करती हैं।


 * सेवा स्टेटलेसनेस सिद्धांत
 * सेवाएँ स्टेटलेस हैं, जो या तो अनुरोधित मान लौटाती हैं या एक अपवाद देती हैं इसलिए संसाधन उपयोग को कम करती हैं।


 * सेवा ग्रैन्युलैरिटी सिद्धांत
 * यह सुनिश्चित करने का सिद्धांत कि सेवाओं का पर्याप्त आकार और दायरा हो। उपयोगकर्ता को सेवा द्वारा प्रदान की जाने वाली कार्यक्षमता प्रासंगिक होनी चाहिए।


 * सेवा सामान्यीकरण
 * अतिरेक को कम करने के लिए सेवाओं को विघटित या समेकित (सामान्यीकृत) किया जाता है। कुछ में, यह नहीं किया जा सकता है। ये ऐसे मामले हैं जहां प्रदर्शन अनुकूलन, पहुंच और एकत्रीकरण की आवश्यकता होती है।


 * सेवा रचना सिद्धांत
 * सेवाओं का उपयोग अन्य सेवाओं की रचना के लिए किया जा सकता है।


 * सेवा खोज
 * सेवाओं को संचारी मेटा डेटा के साथ पूरक किया जाता है जिसके द्वारा उन्हें प्रभावी रूप से खोजा और समझा जा सकता है।


 * सेवा पुन: प्रयोज्य सिद्धांत
 * कोड के पुन: उपयोग को बढ़ावा देने के लिए तर्क को विभिन्न सेवाओं में विभाजित किया गया है।


 * सेवा Encapsulation (कंप्यूटर विज्ञान)
 * कई सेवाएँ जो प्रारंभ में एसओए के तहत योजनाबद्ध नहीं थीं, संक्षिप्त हो सकती हैं या एसओए का भाग बन सकती हैं।

पैटर्न
प्रत्येक एसओए बिल्डिंग ब्लॉक तीन में से कोई भी भूमिका निभा सकता है:


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


 * सर्विस ब्रोकर, सर्विस रजिस्ट्री या सर्विस रिपॉजिटरी
 * इसकी मुख्य कार्यक्षमता किसी भी संभावित अनुरोधकर्ता को वेब सेवा से संबंधित सूचना उपलब्ध कराना है। जो भी दलाल को लागू करता है वह दलाल का दायरा तय करता है। सार्वजनिक दलाल कहीं भी और हर जगह उपलब्ध हैं, लेकिन निजी दलाल केवल सीमित मात्रा में जनता के लिए उपलब्ध हैं। UDDI एक प्रारंभिक, अब सक्रिय रूप से समर्थित प्रयास नहीं था, वेब सेवा खोज प्रदान करने का प्रयास था।


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

सेवा उपभोक्ता-प्रदाता संबंध एक मानकीकृत सेवा अनुबंध द्वारा नियंत्रित होता है, जिसमें एक व्यावसायिक भाग, एक कार्यात्मक भाग और एक तकनीकी भाग होता है।

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

कार्यान्वयन दृष्टिकोण
सेवा-उन्मुख संरचना को वेब सेवाओं या माइक्रोसर्विसेज के साथ लागू किया जा सकता है। यह कार्यात्मक बिल्डिंग-ब्लॉक्स को मानक इंटरनेट प्रोटोकॉल पर सुलभ बनाने के लिए किया जाता है जो प्लेटफॉर्म और प्रोग्रामन भाषाओं से स्वतंत्र हैं। ये सेवाएं या तो नए अनुप्रयोगों का प्रतिनिधित्व कर सकती हैं या उन्हें नेटवर्क-सक्षम बनाने के लिए वर्तमान लीगेसी सिस्टम के चारों ओर केवल आवरण। कार्यान्वयनकर्ता आमतौर पर वेब सेवा मानकों का उपयोग करके एसओएs का निर्माण करते हैं। एक उदाहरण एसओएP है, जिसने W3C के संस्करण 1.2 की सिफारिश के बाद व्यापक उद्योग स्वीकृति प्राप्त की है (वर्ल्ड वाइड वेब कंसोर्टियम) 2003 में। ये मानक (वेब ​​सेवा विनिर्देशों की सूची के रूप में भी संदर्भित) अधिक अंतर-क्षमता और लॉक-इन से मालिकाना विक्रेता सॉफ़्टवेयर के लिए कुछ सुरक्षा प्रदान करते हैं। हालाँकि, कोई अन्य सेवा-आधारित तकनीक, जैसे खून, कोरबा, इंटरनेट कम्युनिकेशंस इंजन, [[प्रतिनिधित्ववादी स्थिति में स्थानांतरण]] या जीआरपीसी का उपयोग करके भी एसओए को लागू कर सकता है।

संरचना विशिष्ट तकनीकों से स्वतंत्र रूप से काम कर सकते हैं और इसलिए तकनीकों की एक विस्तृत श्रृंखला का उपयोग करके कार्यान्वित किया जा सकता है, जिनमें निम्न शामिल हैं:
 * डब्ल्यूएसडीएल और सोप पर आधारित वेब सेवाएं
 * मैसेजिंग, उदाहरण के लिए ActiveMQ, JMS, RabbitMQ के साथ
 * रेस्टफुल एचटीटीपी, रिप्रेसेंटेशनल स्टेट ट्रांसफर (आरईएसटी) के साथ अपनी खुद की बाधा-आधारित स्थापत्य शैली का गठन करता है
 * ओपीसी यूनिफाइड संरचना | ओपीसी-यूए
 * इंटरनेट संचार इंजन
 * विंडोज संचार फाउंडेशन (माइक्रोसॉफ्ट की वेब सेवाओं का कार्यान्वयन, डब्ल्यूसीएफ का एक भाग)
 * अपाचे बचत
 * जीआरपीसी
 * जादूगर

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

ये सेवाएं एक औपचारिक परिभाषा (या अनुबंध, उदाहरण के लिए, डब्लूएसडीएल) के आधार पर अंतर-संचालित करती हैं जो अंतर्निहित प्लेटफॉर्म और प्रोग्रामन भाषा से स्वतंत्र है। अंतराफलक परिभाषा भाषा-विशिष्ट सेवा की सूचना छिपाना। इसलिए एसओए-आधारित प्रणालियाँ विकास तकनीकों और प्लेटफार्मों (जैसे Java, .NET, आदि) से स्वतंत्र रूप से कार्य कर सकती हैं। .NET प्लेटफॉर्म पर चलने वाली C# में लिखी गई सेवाएं और जावा प्लेटफॉर्म, एंटरप्राइज एडिशन प्लेटफॉर्म पर चलने वाली जावा में लिखी गई सेवाएं, उदाहरण के लिए, दोनों को एक सामान्य समग्र एप्लिकेशन (या क्लाइंट) द्वारा उपभोग किया जा सकता है। किसी भी प्लेटफ़ॉर्म पर चलने वाले एप्लिकेशन दूसरे पर चलने वाली सेवाओं का उपयोग वेब सेवाओं के रूप में भी कर सकते हैं जो पुन: उपयोग की सुविधा प्रदान करती हैं। प्रबंधित परिवेश COBOL लीगेसी सिस्टम को भी लपेट सकते हैं और उन्हें सॉफ़्टवेयर सेवाओं के रूप में प्रस्तुत कर सकते हैं।. बीपीईएल जैसी उच्च-स्तरीय प्रोग्रामन भाषाएं और डब्ल्यूएस-सीडीएल और डब्लूएस-समन्वय जैसे विनिर्देश सेवा अवधारणा का विस्तार करते हैं, जो ठीक-दाने वाली सेवाओं के ऑर्केस्ट्रेशन को अधिक मोटे अनाज वाली व्यावसायिक सेवाओं में परिभाषित करने और समर्थन करने की एक विधि प्रदान करते हैं, जो आर्किटेक्ट बदले में कर सकते हैं। समग्र अनुप्रयोगों या उद्यम पोर्टल में कार्यान्वित वर्कफ़्लोज़ और व्यावसायिक प्रक्रियाओं में शामिल करें।

सेवा-उन्मुख मॉडलिंग एक एसओए ढांचा है जो विभिन्न विषयों की पहचान करता है जो एसओए चिकित्सकों को उनकी सेवा-उन्मुख संपत्ति की अवधारणा, विश्लेषण, डिजाइन और वास्तुकार करने के लिए मार्गदर्शन करता है। सेवा उन्मुख मॉडलिंग #सेवा उन्मुख मॉडलिंग फ्रेमवर्क|सेवा उन्मुख मॉडलिंग फ्रेमवर्क (SOMF) एक मॉडलिंग भाषा और एक कार्य संरचना या नक्शा प्रदान करता है जो एक सफल सेवा-उन्मुख मॉडलिंग दृष्टिकोण में योगदान करने वाले विभिन्न घटकों को दर्शाता है। यह उन प्रमुख तत्वों को दिखाता है जो सेवा विकास योजना के क्या करें पहलुओं की पहचान करते हैं। मॉडल चिकित्सकों को एक परियोजना योजना तैयार करने में सक्षम बनाता है and to identify the milestones of a service-oriented initiative. SOMF also provides a common modeling notation to address alignment between business and IT organizations.

संगठनात्मक लाभ
कुछ उद्यम वास्तुकारों का मानना ​​है कि एसओए व्यवसायों को बाजार की स्थितियों को बदलने के लिए अधिक तेज़ी से और अधिक लागत प्रभावी ढंग से प्रतिक्रिया करने में मदद कर सकता है। संरचना की यह शैली सूक्ष्म (कक्षाओं) स्तर के अतिरिक्त मैक्रो (सेवा) स्तर पर पुन: उपयोग को बढ़ावा देती है। यह वर्तमान आईटी (विरासत) संपत्तियों के साथ-और उनके उपयोग को भी आसान बना सकता है।

एसओए के साथ, विचार यह है कि एक संगठन किसी समस्या को समग्र रूप से देख सकता है। एक व्यवसाय का अधिक समग्र नियंत्रण होता है। सैद्धांतिक रूप से विकासक का एक समूह नहीं होगा जो भी टूल सेट उन्हें खुश कर सकता है। बल्कि इसके अतिरिक्त वे एक ऐसे मानक के अनुसार कोडिंग करेंगे जो व्यवसाय के भीतर निर्धारित है। वे उद्यम-व्यापी एसओए भी विकसित कर सकते हैं जो व्यवसाय-उन्मुख बुनियादी ढाँचे को समाहित करता है। एसओए को कार चालकों के लिए दक्षता प्रदान करने वाली राजमार्ग प्रणाली के रूप में भी चित्रित किया गया है। मुद्दा यह है कि अगर सभी के पास एक कार है, लेकिन कहीं भी कोई राजमार्ग नहीं है, तो चीजें सीमित और असंगठित होंगी, कहीं भी जल्दी या कुशलता से पहुंचने की कोशिश में। वेब सेवाओं के आईबीएम के उपाध्यक्ष माइकल लीबो का कहना है कि एसओए राजमार्गों का निर्माण करता है। कुछ मामलों में, एसओए को एक क्रांति के अतिरिक्त वास्तु विकास के रूप में माना जा सकता है। यह पिछले सॉफ़्टवेयर संरचना के कई सर्वोत्तम अभ्यासों को कैप्चर करता है। संचार प्रणालियों में, उदाहरण के लिए, नेटवर्क में अन्य उपकरणों से बात करने के लिए वास्तव में स्थिर बाइंडिंग का उपयोग करने वाले समाधानों का थोड़ा विकास हुआ है। एसओए दृष्टिकोण अपनाने से, ऐसी प्रणालियाँ ठीक रूप से परिभाषित, अत्यधिक अंतर-संचालनीय इंटरफेस के महत्व पर जोर देने के लिए खुद को स्थिति में ला सकती हैं। एसओए के अन्य पूर्ववर्तियों में घटक-आधारित सॉफ़्टवेयर इंजीनियरिंग और दूरस्थ वस्तुओं का ऑब्जेक्ट-उन्मुख विश्लेषण और डिज़ाइन (OOAD) शामिल हैं, उदाहरण के लिए, CORBA में।

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

सेवाओं के कार्यान्वयन को बड़ी परियोजनाओं से अलग परियोजनाओं के रूप में मानने के कारणों में शामिल हैं:
 * 1) पृथक्करण व्यवसाय की अवधारणा को बढ़ावा देता है कि संगठन में आम तौर पर बड़ी और धीमी गति से चलने वाली परियोजनाओं से सेवाओं को जल्दी और स्वतंत्र रूप से वितरित किया जा सकता है। व्यवसाय सेवाओं पर कॉल करने वाले सिस्टम और सरलीकृत उपयोगकर्ता अंतराफलक को समझना शुरू करता है। यह चपलता की वकालत करता है। कहने का तात्पर्य यह है कि यह व्यावसायिक नवाचारों को बढ़ावा देता है और समय-समय पर बाजार को गति देता है।
 * 2) पृथक्करण उपभोग करने वाली परियोजनाओं से सेवाओं को अलग करने को बढ़ावा देता है। यह ठीक डिज़ाइन को प्रोत्साहित करता है क्योंकि सेवा को यह जाने बिना डिज़ाइन किया गया है कि इसके उपभोक्ता कौन हैं।
 * 3) सेवा के दस्तावेज़ीकरण और परीक्षण कलाकृतियों को बड़ी परियोजना के विवरण में एम्बेड नहीं किया गया है। यह महत्वपूर्ण है जब सेवा को बाद में पुन: उपयोग करने की आवश्यकता हो।

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

किसी सेवा को उस स्तर तक प्रलेखित करने में सहायता के लिए उदाहरण उपयोगी साबित हो सकते हैं जहां वह उपयोगी हो जाती है। जावा कम्युनिटी प्रोसेस के भीतर कुछ एपीआई के दस्तावेज ठीक उदाहरण प्रदान करते हैं। चूंकि ये संपूर्ण हैं, कर्मचारी आम तौर पर केवल महत्वपूर्ण उपसमुच्चय का उपयोग करेंगे। Java Platform, Standard Edition|JSR-89 के भीतर 'ossjsa.pdf' फ़ाइल ऐसी फ़ाइल का उदाहरण है।

आलोचना
एसओए को वेब सेवाओं के साथ मिला दिया गया है; हालाँकि, एसओए शैली को शामिल करने वाले पैटर्न को लागू करने के लिए वेब सेवाएँ केवल एक विकल्प हैं। दूरस्थ प्रक्रिया कॉल (RPC) के देशी या बाइनरी रूपों की अनुपस्थिति में, अनुप्रयोग अधिक धीमी गति से चल सकते हैं और अधिक प्रसंस्करण शक्ति की आवश्यकता होती है, बढ़ती लागत। अधिकांश कार्यान्वयन इन ओवरहेड्स को लागू करते हैं, लेकिन एसओए को प्रौद्योगिकियों (उदाहरण के लिए, जावा बिजनेस एकीकरण (JBI), विंडोज कम्युनिकेशन फाउंडेशन (WCF) और डेटा वितरण सेवा (DDS)) का उपयोग करके लागू किया जा सकता है, जो दूरस्थ प्रक्रिया कॉल या अनुवाद पर निर्भर नहीं होते हैं। एक्सएमएल या जेएसओएन। इसी समय, उभरती ओपन-सोर्स एक्सएमएल पार्सिंग टेक्नोलॉजीज (जैसे वीटीडी-एचएमएल ) और विभिन्न एक्सएमएल-संगत बाइनरी प्रारूपों ने एसओए प्रदर्शन में काफी सुधार करने का वादा किया है। स्टेटफुल सेवाओं के लिए उपभोक्ता और प्रदाता दोनों को समान उपभोक्ता-विशिष्ट संदर्भ साझा करने की आवश्यकता होती है, जो या तो प्रदाता और उपभोक्ता के बीच आदान-प्रदान संदेशों में शामिल या संदर्भित होता है। इस बाधा में यह कमी है कि यदि सेवा प्रदाता को प्रत्येक उपभोक्ता के लिए साझा संदर्भ बनाए रखने की आवश्यकता होती है तो यह सेवा प्रदाता की समग्र मापनीयता को कम कर सकता है। यह एक सेवा प्रदाता और एक उपभोक्ता के बीच युग्मन को भी बढ़ाता है और सेवा प्रदाताओं को बदलने को और अधिक कठिन बना देता है। अंतत:, कुछ आलोचकों का मानना ​​है कि एसओए सेवाएं अभी भी उन अनुप्रयोगों द्वारा सीमित हैं जिनका वे प्रतिनिधित्व करते हैं। सेवा-उन्मुख संरचना द्वारा सामना की जाने वाली प्राथमिक चुनौती मेटाडेटा का प्रबंधन है। एसओए पर आधारित वातावरण में कई सेवाएँ शामिल हैं जो कार्य करने के लिए एक दूसरे के बीच संचार करती हैं। इस तथ्य के कारण कि डिज़ाइन में संयोजन में काम करने वाली कई सेवाएँ शामिल हो सकती हैं, एक एप्लिकेशन लाखों संदेश उत्पन्न कर सकता है। आगे की सेवाएं विभिन्न संगठनों या यहां तक ​​कि प्रतिस्पर्धी फर्मों से संबंधित हो सकती हैं जो एक विशाल भरोसे का मुद्दा बना रही हैं। इस प्रकार एसओए शासन चीजों की योजना में आता है। एसओए द्वारा सामना की जाने वाली एक और बड़ी समस्या एक समान परीक्षण ढांचे की कमी है। ऐसे कोई उपकरण नहीं हैं जो सेवा-उन्मुख संरचना में इन सेवाओं के परीक्षण के लिए आवश्यक सुविधाएँ प्रदान करते हों। कठिनाई के प्रमुख कारण हैं:
 * विषमता और समाधान की जटिलता।
 * स्वायत्त सेवाओं के एकीकरण के कारण परीक्षण संयोजनों का विशाल समूह।
 * विभिन्न और प्रतिस्पर्धी विक्रेताओं से सेवाओं का समावेश।
 * नई सुविधाओं और सेवाओं की उपलब्धता के कारण एक सेवा के रूप में प्लेटफॉर्म लगातार बदल रहा है।

एप्लिकेशन प्रोग्रामन इंटरफेस
एप्लिकेशन प्रोग्रामन इंटरफेस (एपीआई) ऐसे ढांचे हैं जिनके माध्यम से विकासक वेब एप्लिकेशन के साथ बातचीत कर सकते हैं।

वेब 2.0
टिम ओ'रेली ने वेब 2.0 शब्द को वेब-आधारित अनुप्रयोगों के कथित, तेजी से बढ़ते सेट का वर्णन करने के लिए गढ़ा। एक विषय जिसने व्यापक कवरेज का अनुभव किया है, उसमें वेब 2.0 और सेवा-उन्मुख संरचना के बीच संबंध शामिल है।

एसओए समान रूप से परिभाषित इंटरफेस के साथ सेवाओं में एप्लिकेशन लॉजिक को एनकैप्सुलेट करने और डिस्कवरी मैकेनिज्म के माध्यम से इन्हें सार्वजनिक रूप से उपलब्ध कराने का दर्शन है। जटिलता-छिपाने और पुन: उपयोग की धारणा, लेकिन शिथिल युग्मन सेवाओं की अवधारणा ने भी शोधकर्ताओं को दो दर्शन, एसओए और वेब 2.0, और उनके संबंधित अनुप्रयोगों के बीच समानता पर विस्तार करने के लिए प्रेरित किया है। कुछ लोगों का तर्क है कि वेब 2.0 और एसओए में महत्वपूर्ण रूप से भिन्न तत्व हैं और इस प्रकार समानांतर दर्शन नहीं माना जा सकता है, जबकि अन्य दो अवधारणाओं को पूरक मानते हैं और वेब 2.0 को वैश्विक एसओए मानते हैं। वेब 2.0 और एसओए के दर्शन अलग-अलग उपयोगकर्ता की जरूरतों को पूरा करते हैं और इस प्रकार डिजाइन और वास्तविक दुनिया के अनुप्रयोगों में उपयोग की जाने वाली तकनीकों के संबंध में मतभेदों को उजागर करते हैं। हालाँकि,, उपयोग-मामलों ने वेब 2.0 और एसओए दोनों की तकनीकों और सिद्धांतों के संयोजन की क्षमता का प्रदर्शन किया।

माइक्रोसर्विसेज
माइक्रोसर्विसेज वितरित कंप्यूटिंग के निर्माण के लिए उपयोग की जाने वाली सेवा-उन्मुख संरचना की एक आधुनिक व्याख्या है। माइक्रोसर्विस संरचना में सेवाएं प्रक्रिया (कंप्यूटिंग) हैं जो एक लक्ष्य को पूरा करने के लिए संगणक संजाल पर एक दूसरे के साथ संवाद करती हैं। ये सेवाएं प्रौद्योगिकी अज्ञेय संचार प्रोटोकॉल का उपयोग करती हैं, जो भाषा और ढांचों के चुनाव को समाहित करने में सहायता करते हैं, जिससे उनकी पसंद सेवा के लिए एक आंतरिक चिंता बन जाती है। माइक्रोसर्विसेज एसओए के लिए एक नया अहसास और कार्यान्वयन दृष्टिकोण है, जो 2014 से (और DevOps की शुरुआत के बाद) लोकप्रिय हो गया है, और जो निरंतर प्रस्तरीयी और अन्य चुस्त कार्यप्रणाली पर भी जोर देता है। माइक्रोसर्विसेज की कोई एक सामान्य रूप से स्वीकृत परिभाषा नहीं है। निम्नलिखित विशेषताओं और सिद्धांतों को साहित्य में पाया जा सकता है:
 * ठीक-ठाक इंटरफेस (स्वतंत्र रूप से प्रस्तरीयी योग्य सेवाओं के लिए),
 * व्यवसाय-संचालित विकास (जैसे डोमेन-संचालित डिज़ाइन),
 * आदर्श क्लाउड एप्लिकेशन संरचना,
 * बहुभाषाविद प्रोग्रामन और दृढ़ता,
 * हल्के कंटेनर परिनियोजन,
 * विकेंद्रीकृत निरंतर वितरण, और
 * समग्र सेवा निगरानी के साथ DevOps।

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

यह भी देखें

 * अप्लिकेशन प्रोग्रामन अंतरफलक
 * लूस कपलिंग
 * ओएसिस एसओए संदर्भ मॉडल
 * सेवा ग्रैन्युलैरिटी सिद्धांत
 * एसओए शासन
 * सॉफ़्टवेयर वास्तुशिल्प
 * सेवा उन्मुख संचार (एसओसी)
 * अनुप्रयोगों का सेवा-उन्मुख विकास
 * सेवा-उन्मुख वितरित अनुप्रयोग
 * वेब एप्लिकेशन विवरण भाषा