REST को छोड़ने से, आप केवल HATEOAS से बहुत अधिक खो देते हैं। यदि आपकी माइक्रोसॉर्क्स सार्वजनिक हैं (और यह उनके लिए एक अच्छा विचार है कि सार्वजनिक होना चाहिए या कम से कम एक दिन सार्वजनिक होना चाहिए), तो REST और SOAP के अलावा किसी भी चीज़ का उपयोग समस्याग्रस्त होगा:
कुछ डेवलपर्स ने कभी भी एएमक्यूपी का इस्तेमाल नहीं किया,
कुछ ने AMQP का उपयोग किया है, लेकिन अक्सर REST और SOAP से अधिक परिचित हैं,
कुछ भाषाओं के लिए AMQP पुस्तकालय विशेष रूप से सीधे नहीं हैं,
सेवा के साथ मैनुअल प्रयोग बहुत सीमित है: मैं अमेज़न S3 के लिए किसी भी अनुरोध को करने के लिए CURL का उपयोग कर सकता हूं; अगर मुझे S3 के AMQP वेरिएंट के साथ खेलना है तो मुझे अपनी मशीन पर क्या स्थापित करना चाहिए ?
REST और SOAP को डीबग करना आसान है। मैं सिर्फ HTTP एक्सचेंजों को ट्रैक करता हूं और उनका विश्लेषण करता हूं। निश्चित नहीं है कि AMQP एक्सचेंजों को डीबग करने के लिए मुझे कौन से टूल का उपयोग करना चाहिए।
AMQP महान है, लेकिन यह घटनाओं के आधार पर एक्सचेंजों के एक बहुत ही विशिष्ट उद्देश्य के लिए किया जाता है। जबकि तकनीकी रूप से आरपीसी को एएमक्यूपी के साथ करना संभव है, यह इसका प्राथमिक उद्देश्य नहीं है।
अतुल्यकालिक पहलू भी महत्वपूर्ण है। कभी-कभी यह एक लाभ है: मैं सर्वरों के लिए अनुरोध करते समय किसी ऐप के उपयोगकर्ता इंटरफ़ेस को अवरुद्ध नहीं करना चाहता। कभी-कभी, यह सिर्फ उन चीज़ों को कठिन बना देता है जिनकी उन्हें आवश्यकता होती है: अगर मुझे अमेज़ॅन एस 3 से एक फ़ाइल बैकअप को पुनर्प्राप्त करने की आवश्यकता है, क्योंकि स्थानीय एक भ्रष्ट हो गया था, और फिर बैकअप को पुनर्स्थापित करें, तो मेरे बैच फ़ाइल को जारी रखने से पहले अपना काम पूरा करने के लिए CURL की आवश्यकता होती है, और एक तुल्यकालिक ऑपरेशन (एक विशिष्ट समय समाप्ति के साथ) सही अर्थों में करता है।
प्राथमिक कार्यों के लिए REST रखें:
एक उत्पाद प्राप्त करना,
चालान जमा करना,
और उन कार्यों के लिए AMQP का उपयोग करें जहां संदेश वास्तव में समझ में आता है:
सितंबर से सभी चालान संसाधित करना और रिपोर्ट दिखाए जाने के लिए तैयार होने पर एप्लिकेशन को सूचित करें (यह देखते हुए कि ऑपरेशन में आमतौर पर दो से दस मिनट लगते हैं,)
यहाँ AMQP का लाभ इसका अतुल्यकालिक पहलू है। दस मिनट के लिए लंबित एक HTTP अनुरोध में टाइमआउट और अन्य मुद्दों को पैदा करने का एक अच्छा मौका है।
इस जानकारी को प्रेषित करना कि बैकअप हर उस व्यक्ति को दूषित किया गया था, जो इच्छुक हो सकता है, जैसे कि समर्थन करने वाले लोग, डेटाबेस व्यवस्थापक, निगरानी टीम, एप्लिकेशन के डेवलपर्स जो इस डेटाबेस का उपयोग करते हैं, आदि।
एएमक्यूपी का लाभ यहां दूसरों के बीच, एप्लिकेशन को बदलने के बिना सब्सक्राइबर्स को जोड़ने की क्षमता है जो बैकअप ट्रैक करता है और एक भ्रष्ट होने पर अलर्ट को ट्रिगर करता है।
A एक सार्वजनिक वेब सेवा का उपयोग किसी कंपनी के बाहर के उपयोगकर्ताओं द्वारा आवश्यक रूप से नहीं किया जाता है। बड़े या मध्यम आकार की कंपनियों में, आपकी सेवा का उपयोग अक्सर एक ही कंपनी के अन्य प्रभागों द्वारा किया जाता है और इसमें वही आवश्यकताएं होती हैं जो किसी तीसरे पक्ष द्वारा उपयोग की जाती हैं: यह किसी भी कॉल का अविश्वास करना चाहिए (तथ्य यह है कि कुछ लोग जो आप कभी नहीं करते हैं जो आपकी सेवा के कामों को उसी कंपनी में कहता है, जिसका मतलब यह नहीं है कि वह इसके सुरक्षा मुद्दों का फायदा नहीं उठाएगा), इसे ठीक से प्रलेखित किया जाना चाहिए (क्योंकि वही भारतीय लड़का जरूरी नहीं कि आपका फोन नंबर जानता हो और जरूरी नहीं है अंग्रेजी जानते हैं), आदि।