2012-02-29 9 views
27

के बीच क्या अंतर है वहां बहुत सारे What is the difference between... प्रश्न हैं लेकिन मुझे यह नहीं मिला।एपीआई और एसओए

विकिपीडिया एक API

एक एप्लीकेशन प्रोग्रामिंग इंटरफेस (एपीआई) के बारे में इस का कहना है एक दूसरे के साथ संवाद करने के लिए सॉफ्टवेयर घटक द्वारा एक अंतरफलक के रूप में इस्तेमाल किया जा करने का इरादा एक स्रोत कोड आधारित विनिर्देश है।

और इस बारे में SOA

एसओए भी आम तौर पर इस तरह के वेब आधारित अनुप्रयोगों के रूप में सेवाओं के उपभोक्ताओं, के लिए एक तरीका प्रदान करता, उपलब्ध SOA आधारित सेवाओं के बारे में पता किया जाना है।

दोनों तकनीकें नहीं हैं जहां आप अन्य सेवाओं के लिए सेवाएं पेश करते हैं?
कोई इस पर विस्तार कर सकता है?

उत्तर

36

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

उदाहरण के तौर पर, आपके पास ग्राहक आदेशों को कैप्चर करने के लिए ज़िम्मेदार एक सेवा हो सकती है, जो बस को ऑर्डर कैप्चर किए गए ईवेंट को प्रकाशित करता है; और ग्राहक के बिल के दौरान ट्रैकिंग के लिए जिम्मेदार एक अलग सेवा और कितना बकाया है, जो बस की सदस्यता लेता है और ऑर्डर कैप्चर किए गए ईवेंट का जवाब देता है। जिम्मेदारी को अलग करने के कारण पहली सेवा को बिलिंग के बारे में कुछ भी जानने की आवश्यकता नहीं है। और दोनों सेवाओं को केवल एक-दूसरे के बारे में जानने की आवश्यकता नहीं है, केवल उनके आसपास की घटनाओं के बारे में।

एक एपीआई एक इंटरफ़ेस है जो एक घटक/सेवा खुलासा करता है ताकि अन्य घटक इसके साथ संवाद कर सकें। उपर्युक्त उदाहरण में बस संचार करने के लिए कई सेवाओं के लिए एक आम एपीआई प्रदान कर रहा है।

सारांश में:

एपीआई = एक सॉफ्टवेयर घटक द्वारा उजागर संवाद का किसी भी तरह से।

एसओए = सेवाओं में जिम्मेदारी विभाजित करके स्केलेबिलिटी मुद्दों को हल करने के लिए उद्यम वास्तुशिल्प डिजाइन सिद्धांतों का एक सेट।

+1

तो एपीआई एसओए का हिस्सा है और दूसरी तरफ नहीं? – Niklas

+3

हां, हर वास्तुकला (छोटे से छोटे लोगों को छोड़कर) में एक या अधिक एपीआई होंगे ताकि उसके घटक संवाद कर सकें। और एसओए एक प्रकार का वास्तुकला पैटर्न/डिजाइन है। – perfectionist

+0

धन्यवाद, इससे मुझे एसओए पर स्पष्टीकरण लिखने में मदद मिली: http://stackoverflow.com/questions/2026523/what-is-soa-in-plain-english/9499594#9499594 – Niklas

4

दूसरे शब्दों में:

एसओए वास्तुकला पैटर्न है।

एक एपीआई एसओए पैटर्न को लागू करने या सक्षम करने के तरीकों में से एक है।

एसओए "योजना" {ब्लू प्रिंट} डिजाइन विधि है।

एपीआई डिजाइन का वास्तविक कार्यान्वयन है।

+1

>> तरीकों में से एक लागू या एसओए पैटर्न सक्षम करने के लिए << अन्य तरीकों क्या हो सकता है? – yathirigan

1

संक्षिप्त और संक्षिप्त संस्करण:

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

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

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

0

ऐसा लगता है कि इस बारे में बहुत सारी राय हैं; यह एक दिलचस्प पढ़ा है। मेरा लेना यहाँ है।

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

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

एसओए और एपीआई: एसओए सेवा के लिए एक एपीआई में सेवा के वैचारिक, प्रौद्योगिकी-अज्ञेय विनिर्देश शामिल हो सकते हैं (उदा: एक डेटा तत्व अंतिम नाम होगा एक ग्राहक), और साथ ही है कि SOA सेवा के प्रत्येक भौतिक इन्स्टेन्शियशन के लिए शारीरिक, प्रौद्योगिकी-विशिष्ट उपयोग विनिर्देशों के (पूर्व: दो instantiations उपलब्ध होगा, एक एक JSON लेआउट और अन्य एक एक्सएमएल लेआउट का उपयोग कर, प्रत्येक बराबर शारीरिक युक्त 'अंतिम नाम' डेटा तत्व के लिए विनिर्देश)।

गलतफहमी: शब्द API का उपयोग केवल RESTful या 'सरल, हल्के' या JSON- आधारित इंटरफेस (साइड नोट: रीस्टफुल 'सरल' या 'लाइटवेट' के बराबर नहीं है) के संदर्भ में किया जाना चाहिए। दरअसल, डब्ल्यूएस * आधारित सेवाओं सहित कई प्रकार की तकनीकों का उपयोग करके कई पैटर्नों के बाद एक एपीआई संरचित किया जा सकता है।

ग़लतफ़हमी: एसओए सख्ती से WS * या अन्य 'जटिल, दिग्गज' इंटरफ़ेस दृष्टिकोण इस प्रकार है। दरअसल, एसओए सेवाओं का निर्माण लगभग किसी भी आधुनिक सॉफ्टवेयर विकास प्रौद्योगिकी सेट का उपयोग करके किया जा सकता है, जिसमें रीस्टफुल दृष्टिकोण या जेएसओएन फाइलें शामिल हैं।

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

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

एक एसओए समाधान या समाधान पारिस्थितिकी तंत्र एसओए सिद्धांतों पर एक वास्तुशिल्प है; यह उन सेवाओं से बना है जो एसओए सिद्धांतों के बाद निर्मित और उपयोग किए जाते हैं, फिर से, डेवलपर्स जो भी तकनीक चुनते हैं उसका उपयोग करते हैं।

संबंधित मुद्दे