صابون

صابون
عائلةبروتوكول المراسلة
صمم بواسطة
ظهرت لأول مرةفي البداية كـ XML-RPC في يونيو 1998 ؛ منذ 26 عامًا (June 1998)
إصدار مستقر
1.2 / 27 أبريل 2007 ؛ منذ 17 عامًا (2007-04-27)

SOAP (اختصارًا لـ Simple Object Access Protocol ) هو مواصفات بروتوكول مراسلة لتبادل المعلومات المنظمة في تنفيذ خدمات الويب في شبكات الكمبيوتر . يستخدم مجموعة معلومات XML لتنسيق الرسائل ، ويعتمد على بروتوكولات طبقة التطبيق ، غالبًا بروتوكول نقل النص التشعبي (HTTP)، على الرغم من أن بعض الأنظمة القديمة تتواصل عبر بروتوكول نقل البريد البسيط (SMTP)، للتفاوض على الرسائل ونقلها.

صفات

يوفر بروتوكول SOAP طبقة بروتوكول المراسلة لمجموعة بروتوكولات خدمات الويب لخدمات الويب. وهو بروتوكول قائم على XML ويتكون من ثلاثة أجزاء:

  • مظروف، يحدد بنية الرسالة [1] وكيفية معالجتها
  • مجموعة من قواعد الترميز للتعبير عن حالات أنواع البيانات المحددة للتطبيق
  • اتفاقية لتمثيل نداءات الإجراءات والاستجابات

يتمتع بروتوكول SOAP بثلاث خصائص رئيسية:

  1. إمكانية التوسعة (الأمان وعنونة WS من بين التوسعات قيد التطوير)
  2. الحياد (يمكن لـ SOAP العمل عبر أي بروتوكول مثل HTTP و SMTP و TCP و UDP )
  3. الاستقلال (يسمح SOAP بأي نموذج برمجة )

كمثال على ما يمكن أن تفعله إجراءات SOAP، يمكن للتطبيق إرسال طلب SOAP إلى خادم تم تمكين خدمات الويب فيه - مثل قاعدة بيانات أسعار العقارات - مع المعلمات اللازمة للبحث. ثم يقوم الخادم بإرجاع استجابة SOAP (مستند بتنسيق XML) مع البيانات الناتجة، مثل الأسعار والموقع والميزات. نظرًا لأن البيانات الناتجة تأتي بتنسيق موحد يمكن تحليله بواسطة الآلة، فيمكن للتطبيق الذي يطلبها دمجها بشكل مباشر.

تتكون بنية SOAP من عدة طبقات من المواصفات من أجل:

  • تنسيق الرسالة
  • أنماط تبادل الرسائل (MEP)
  • روابط بروتوكول النقل الأساسية
  • نماذج معالجة الرسائل
  • إمكانية توسيع البروتوكول

تطور بروتوكول SOAP كخليفة لبروتوكول XML-RPC ، على الرغم من أنه يستعير حياد النقل والتفاعل من بروتوكول Web Service Addressing [2] والمغلف/الرأس/الجسم من مكان آخر (ربما من WDDX ). [ بحاجة لمصدر ]

تاريخ

تم تصميم SOAP كبروتوكول وصول إلى الكائنات وتم إصداره كـ XML-RPC في يونيو 1998 كجزء من Frontier 5.1 بواسطة Dave Winer و Don Box و Bob Atkinson و Mohsen Al-Ghosein لشركة Microsoft ، حيث كان Atkinson و Al-Ghosein يعملان. [3] لم يتم توفير المواصفات حتى تم تقديمها إلى IETF في 13 سبتمبر 1999. [4] [5] وفقًا لـ Don Box، كان هذا بسبب السياسة داخل Microsoft. [6] بسبب تردد Microsoft، قام Dave Winer بشحن XML-RPC في عام 1998. [7]

لم يصل مشروع الإنترنت المقدم إلى حالة RFC وبالتالي لا يُعتبر "معيار ويب" بحد ذاته. نُشر الإصدار 1.1 من المواصفات كملاحظة من W3C في 8 مايو 2000. [8] نظرًا لأن الإصدار 1.1 لم يصل إلى حالة توصية W3C ، فلا يمكن اعتباره "معيار ويب" أيضًا. ومع ذلك، أصبح الإصدار 1.2 من المواصفات توصية من W3C في 24 يونيو 2003. كان SOAP في الأصل يرمز إلى "بروتوكول الوصول البسيط للكائنات" ولكن الإصدار 1.2 من المعيار أسقط هذا الاختصار. [9]

تم الحفاظ على مواصفات SOAP [10] بواسطة مجموعة عمل بروتوكول XML [11] التابعة لاتحاد شبكة الويب العالمية حتى تم إغلاق المجموعة في 10 يوليو 2009.

بعد تقديم بروتوكول SOAP لأول مرة، أصبح هذا البروتوكول بمثابة الطبقة الأساسية لمجموعة أكثر تعقيدًا من خدمات الويب ، استنادًا إلى WSDL و XSD و UDDI . وقد أثبتت هذه الخدمات المختلفة، وخاصة UDDI، أنها أقل أهمية بكثير، ولكن تقديرها يمنحنا فهمًا كاملاً للدور المتوقع لبروتوكول SOAP مقارنة بكيفية تطور خدمات الويب بالفعل.

مصطلحات SOAP

يمكن تعريف مواصفات SOAP على نطاق واسع بحيث تتكون من المكونات المفاهيمية الثلاثة التالية: مفاهيم البروتوكول ومفاهيم التغليف ومفاهيم الشبكة. [12]

مفاهيم البروتوكول

صابون
هذه مجموعة من القواعد التي تنظم وتنظم قواعد التنسيق والمعالجة للمعلومات المتبادلة بين مرسل SOAP ومستقبل SOAP.
عقد SOAP
هذه هي الأجهزة المادية/المنطقية التي تحتوي على وحدات معالجة تستخدم في إرسال/إعادة توجيه واستقبال ومعالجة رسائل بروتوكول SOAP. وهي تشبه العقد الموجودة في الشبكة.
أدوار SOAP
على طول مسار رسالة SOAP، تتولى جميع العقد دورًا محددًا. يحدد دور العقدة الإجراء الذي تقوم به العقدة على الرسالة التي تتلقاها. على سبيل المثال، يعني الدور " لا شيء" أنه لن تقوم أي عقدة بمعالجة رأس SOAP بأي طريقة وببساطة إرسال الرسالة على طول مسارها.
ربط بروتوكول SOAP
تحتاج رسالة SOAP إلى العمل جنبًا إلى جنب مع بروتوكولات أخرى ليتم نقلها عبر الشبكة. على سبيل المثال، يمكن لرسالة SOAP استخدام TCP كبروتوكول طبقة أدنى لنقل الرسائل. يتم تعريف هذه الارتباطات في إطار ربط بروتوكول SOAP. [13]
مميزات SOAP
يوفر بروتوكول SOAP إطار عمل للمراسلة فقط. ومع ذلك، يمكن توسيعه لإضافة ميزات مثل الموثوقية والأمان وما إلى ذلك. هناك قواعد يجب اتباعها عند إضافة ميزات إلى إطار عمل SOAP.
وحدة SOAP
مجموعة من المواصفات المتعلقة بدلالات رأس SOAP لوصف أي ميزات جديدة يتم توسيعها على SOAP. تحتاج الوحدة النمطية إلى تحقيق صفر أو أكثر من الميزات. يتطلب SOAP من الوحدات النمطية الالتزام بالقواعد المحددة. [14]

مفاهيم تغليف البيانات

رسالة الصابون
يمثل المعلومات المتبادلة بين عقدتي SOAP.
مغلف الصابون
إنه العنصر المحيط برسالة XML والذي يحددها كرسالة SOAP.
كتلة رأس SOAP
يمكن أن يحتوي رأس SOAP على أكثر من كتلة واحدة من هذه الكتل، حيث تكون كل كتلة عبارة عن كتلة حسابية منفصلة داخل الرأس. بشكل عام، يتم استخدام معلومات دور SOAP لاستهداف العقد الموجودة على المسار. يُقال إن كتلة الرأس تستهدف عقدة SOAP إذا كان دور SOAP لكتلة الرأس هو اسم الدور الذي تعمل فيه عقدة SOAP. (على سبيل المثال: كتلة رأس SOAP ذات سمة الدور ultimateReceiver تستهدف فقط العقدة الوجهة التي لديها هذا الدور. يتم استهداف الرأس ذات سمة الدور next لكل وسيط بالإضافة إلى العقدة الوجهة.)
رأس SOAP
مجموعة مكونة من كتلة رأس واحدة أو أكثر تستهدف كل مستقبل SOAP.
جسم الصابون
يحتوي على نص الرسالة الموجهة إلى مستقبل SOAP. يتم تحديد تفسير ومعالجة نص SOAP بواسطة كتل الرأس.
خطأ SOAP
في حالة فشل عقدة SOAP في معالجة رسالة SOAP، فإنها تضيف معلومات الخطأ إلى عنصر خطأ SOAP. يوجد هذا العنصر داخل نص SOAP كعنصر فرعي.

مفهوم المرسل والمستقبل للرسالة

مُرسِل الصابون
العقدة التي ترسل رسالة SOAP.
مستقبل الصابون
العقدة التي تستقبل رسالة SOAP. (يمكن أن تكون وسيطًا أو عقدة الوجهة).
مسار رسالة SOAP
المسار الذي يتكون من جميع العقد التي عبرتها رسالة SOAP للوصول إلى العقدة الوجهة.
المرسل الأولي لـ SOAP
هذه هي العقدة التي نشأت منها رسالة SOAP المراد إرسالها. هذا هو جذر مسار رسالة SOAP.
وسيط SOAP
جميع العقد الموجودة بين مُنشئ SOAP ووجهة SOAP المقصودة. تقوم بمعالجة كتل رأس SOAP المستهدفة لها وتعمل على إعادة توجيه رسالة SOAP نحو مستقبل SOAP النهائي.
جهاز استقبال SOAP النهائي
المستقبل الوجهة لرسالة SOAP. هذه العقدة مسؤولة عن معالجة نص الرسالة وأي كتل رأسية مستهدفة لها.

مواصفة

هيكل SOAP

تعرف مواصفات SOAP إطار عمل المراسلة، والذي يتكون من:

  • نموذج معالجة SOAP ، الذي يحدد قواعد معالجة رسالة SOAP [15]
  • نموذج قابلية توسيع SOAP الذي يحدد مفاهيم ميزات SOAP ووحدات SOAP [15]
  • إطار عمل ربط بروتوكول SOAP الأساسي الذي يصف القواعد الخاصة بتحديد ربط لبروتوكول أساسي يمكن استخدامه لتبادل رسائل SOAP بين عقد SOAP [15]
  • بنية رسالة SOAP التي تحدد بنية رسالة SOAP [15]

كتل بناء الصابون

رسالة SOAP عبارة عن مستند XML عادي يحتوي على العناصر التالية:

عنصر وصف مطلوب
ظرف يقوم بتحديد مستند XML كرسالة SOAP. نعم
رأس الصفحة يحتوي على معلومات الرأس. لا
جسم يحتوي على معلومات الاتصال والاستجابة. نعم
عيب يوفر معلومات حول الأخطاء التي حدثت أثناء معالجة الرسالة. لا

طرق النقل

يعد كل من SMTP و HTTP بروتوكولين صالحين لطبقة التطبيق يستخدمان كوسيلة نقل لـ SOAP، ولكن HTTP اكتسب قبولًا أوسع لأنه يعمل بشكل جيد مع البنية الأساسية للإنترنت اليوم؛ على وجه التحديد، يعمل HTTP بشكل جيد مع جدران حماية الشبكة . يمكن أيضًا استخدام SOAP عبر HTTPS (وهو نفس بروتوكول HTTP على مستوى التطبيق، ولكنه يستخدم بروتوكول نقل مشفرًا أسفله) مع مصادقة بسيطة أو متبادلة؛ هذه هي طريقة WS-I الموصى بها لتوفير أمان خدمة الويب كما هو مذكور في ملف تعريف WS-I الأساسي 1.1.

هذه ميزة رئيسية مقارنة بالبروتوكولات الموزعة الأخرى مثل GIOP/IIOP أو DCOM ، والتي يتم تصفيتها عادةً بواسطة جدران الحماية. يُعد بروتوكول SOAP عبر AMQP احتمالًا آخر تدعمه بعض التطبيقات. يتمتع بروتوكول SOAP أيضًا بميزة على بروتوكول DCOM تتمثل في عدم تأثره بحقوق الأمان المُهيأة على الأجهزة التي تتطلب معرفة كل من العقد المرسلة والمستقبلة. يتيح هذا لبروتوكول SOAP أن يكون مقترنًا بشكل فضفاض بطريقة غير ممكنة مع بروتوكول DCOM . هناك أيضًا معيار SOAP عبر UDP OASIS .

تنسيق الرسالة

تم اختيار مجموعة معلومات XML كتنسيق الرسائل القياسي بسبب استخدامها على نطاق واسع من قبل الشركات الكبرى وجهود تطوير المصدر المفتوح . عادةً ما يتم تسلسل مجموعة معلومات XML كـ XML . تسهل مجموعة واسعة من الأدوات المتاحة مجانًا الانتقال إلى تنفيذ قائم على SOAP بشكل كبير. يمكن أن يكون بناء الجملة الطويل إلى حد ما في XML مفيدًا وعيبًا في نفس الوقت. في حين أنه يسهل اكتشاف الأخطاء ويتجنب مشاكل التشغيل البيني مثل ترتيب البايتات ( endianness )، إلا أنه يمكن أن يبطئ سرعة المعالجة ويمكن أن يكون مرهقًا. على سبيل المثال، تستخدم CORBA و GIOP و ICE و DCOM تنسيقات رسائل ثنائية أقصر بكثير. من ناحية أخرى، تتوفر أجهزة مادية لتسريع معالجة رسائل XML . [16] [17] يتم أيضًا استكشاف XML الثنائي كوسيلة لتبسيط متطلبات الإنتاجية لـ XML. عادةً ما يكون للرسائل XML بطبيعتها الموثقة ذاتيًا "تكلفة إضافية" (على سبيل المثال، العناوين، والعلامات المتداخلة، والفواصل) أكثر من البيانات الفعلية على عكس البروتوكولات السابقة حيث كانت التكلفة الإضافية عادةً عبارة عن نسبة صغيرة نسبيًا من إجمالي الرسالة.

في المراسلة المالية، وجد أن بروتوكول SOAP ينتج رسالة أكبر بمقدار 2-4 مرات من البروتوكولات السابقة FIX (تبادل المعلومات المالية) و CDR (تمثيل البيانات المشترك). [18]

لا يلزم تسلسل مجموعة معلومات XML في XML. على سبيل المثال، توجد تمثيلات لمجموعة معلومات XML بتنسيق CSV و JSON . ولا توجد أيضًا حاجة لتحديد إطار عمل تحويل عام. يسمح مفهوم ارتباطات SOAP بارتباطات محددة لتطبيق معين. العيب هو أن كلًا من المرسلين والمستقبلين يجب أن يدعموا هذا الارتباط المحدد حديثًا.

رسالة نموذجية (مغلفة في HTTP)

تطلب الرسالة أدناه سعر سهم AT&T (رمز تداول الأسهم "T").

POST  /InStock  HTTP / 1.1 
المضيف :  www.example.org 
نوع المحتوى :  application/soap+xml؛ charset=utf-8 
طول المحتوى :  299 
SOAPAction :  "http://www.w3.org/2003/05/soap-envelope"

<?xml version="1.0"?> 
<soap:Envelope xmlns:soap= "http://www.w3.org/2003/05/soap-envelope" xmlns:m= "http://www.example.org" > <soap:Header> </soap:Header> <soap:Body> <m:GetStockPrice> <m:StockName> T </m:StockName> </m:GetStockPrice> </soap:Body> </soap:Envelope>  
  
  
  
    
      
    
  

نقد فني

المزايا

  • تجعل خاصية حيادية بروتوكول SOAP من الممكن استخدامه مع أي بروتوكول نقل. غالبًا ما تستخدم التطبيقات HTTP كبروتوكول نقل، ولكن يمكن استخدام بروتوكولات نقل شائعة أخرى. على سبيل المثال، يمكن أيضًا استخدام بروتوكول SOAP عبر SMTP و JMS [19] [20] وطوابير الرسائل .
  • عندما يتم دمج SOAP مع تبادلات النشر/الاستجابة HTTP، فإنه ينتقل بسهولة عبر جدران الحماية ووكلاء البروكسي الحاليين، وبالتالي لا يتطلب تعديل البنية الأساسية للحوسبة والاتصالات المنتشرة الموجودة لمعالجة تبادلات النشر/الاستجابة HTTP.
  • يتوفر في SOAP جميع إمكانيات XML، بما في ذلك التدويل السهل وإمكانية التوسع باستخدام مساحات أسماء XML.

العيوب

  • عند استخدام التنفيذ القياسي وربط SOAP/HTTP الافتراضي، يتم تسلسل مجموعة معلومات XML كـ XML. لتحسين الأداء للحالة الخاصة لـ XML مع الكائنات الثنائية المضمنة، تم تقديم آلية تحسين نقل الرسائل .
  • عند الاعتماد على HTTP كبروتوكول نقل وعدم استخدام Web Services Addressing أو Enterprise Service Bus ، تكون أدوار الأطراف المتفاعلة ثابتة. يمكن لطرف واحد فقط (العميل) استخدام خدمات الطرف الآخر.
  • إن بروتوكول SOAP أقل "بساطة" مما يوحي به اسمه. فقد أدت كثرة استخدام البروتوكول، وبطء سرعة تحليل XML، والافتقار إلى نموذج تفاعل موحد إلى هيمنة الخدمات التي تستخدم بروتوكول HTTP بشكل أكثر مباشرة. انظر، على سبيل المثال، REST .
  • نظرًا لكونها مستقلة عن البروتوكول، فإن SOAP غير قادرة على الاستفادة من الميزات والتحسينات الخاصة بالبروتوكول مثل واجهة REST الموحدة أو التخزين المؤقت - بدلاً من ذلك يتعين عليها إعادة تنفيذها (كما هو الحال مع WS-Addressing ).

انظر أيضا

مراجع

  1. ^ هيرش، فريدريك؛ كيمب، جون؛ إيلكا، جاني (11 يناير 2007). خدمات الويب المحمولة: الهندسة المعمارية والتنفيذ. جون وايلي وأولاده (نُشر عام 2007). ص. 27. رقم ISBN  9780470032596. تم الاسترجاع في 2014-09-15 . يحدد بروتوكول الوصول إلى الكائنات البسيطة (SOAP) بنية مغلف الرسائل المصممة لحمل حمولة التطبيق في جزء واحد من المغلف (نص الرسالة) ومعلومات التحكم في جزء آخر (رأس الرسالة).
  2. ^ "Web Services Addressing (WS-Addressing)". www.w3.org . مؤرشف من الأصل في 2016-09-25 . تم الاسترجاع في 2016-09-15 .
  3. ^ "مقابلة حصرية مع دون بوكس ​​من مايكروسوفت في مجلة "Indigo" لمطوري .NET". Dotnet.sys-con.com. مؤرشف من الأصل في 2019-01-06 . تم الاسترجاع في 2012-10-04 .
  4. ^ "صفحات غلاف XML حول تاريخ SOAP". Coverpages.org. مؤرشف من الأصل في 2001-03-03 . تم الاسترجاع في 2003-07-22 .
  5. ^ "SOAP: Simple Object Access Protocol". Ietf Datatracker . سبتمبر 1999. مؤرشف من الأصل في 2021-02-25 . تم الاسترجاع في 2015-09-20 .
  6. ^ "دون بوكس ​​يتحدث عن تاريخ بروتوكول SOAP". XML.com. 2001-04-04. مؤرشف من الأصل في 2015-06-18 . تم استرجاعه في 2015-09-20 .
  7. ^ "XML-RPC للمبتدئين". 14 يوليو 1998. مؤرشف من الأصل في 12 أكتوبر 1999.
  8. ^ "W3C Note on Simple Object Access Protocol (SOAP) 1.1". W3C. 2000-05-08. مؤرشف من الأصل في 2021-03-04 . تم الاسترجاع في 2015-09-20 .
  9. ^ "SOAP الإصدار 1.2 الجزء 1: إطار عمل المراسلة (الإصدار الثاني)". W3C . 27 أبريل 2007. مؤرشف من الأصل في 2012-06-19 . تم الاسترجاع في 2012-06-15 . ملاحظة: في الإصدارات السابقة من هذه المواصفات كان اسم SOAP اختصارًا. لم يعد هذا هو الحال. (تحت القسم 1. المقدمة)
  10. ^ "مواصفات بروتوكول SOAP". W3C. مؤرشف من الأصل في 2021-04-15 . تم الاسترجاع في 2014-03-29 .
  11. ^ "W3C XML Protocol Working Group". W3C. مؤرشف من الأصل في 2018-12-25 . تم الاسترجاع 2014-03-29 .
  12. ^ "SOAP الإصدار 1.2 الجزء 1: إطار عمل المراسلة (الطبعة الثانية)". www.w3.org . مؤرشف من الأصل في 2016-09-20 . تم الاسترجاع في 2016-09-14 .
  13. ^ "اقتراح الإطار الملزم". www.w3.org . مؤرشف من الأصل في 2017-07-11 . تم استرجاعه في 2016-09-14 .
  14. ^ "SOAP الإصدار 1.2 الجزء 1: إطار عمل المراسلة (الطبعة الثانية)". www.w3.org . مؤرشف من الأصل في 2016-09-20 . تم الاسترجاع في 2016-09-14 .
  15. ^ abcd "SOAP Version 1.2 Part 1: Messaging Framework (Second Edition)". www.w3.org . مؤرشف من الأصل في 2017-04-02 . تم الاسترجاع في 2020-06-24 .
  16. ^ "IBM Datapower". 306.ibm.com. 2011-11-30. مؤرشف من الأصل في 2008-06-22 . تم الاسترجاع في 2012-10-04 .
  17. ^ "IBM Zurich XML Accelerator Engine" (PDF) . مؤرشف من الأصل (PDF) في 2012-09-30 . تم الاسترجاع في 2012-10-04 .
  18. ^ "تقييم بروتوكول SOAP لتطبيقات الأعمال عالية الأداء: أنظمة التداول في الوقت الفعلي". Tenermerx Pty Ltd، جامعة التكنولوجيا، سيدني. 2011-11-30. مؤرشف من الأصل في 2013-08-10 . تم الاسترجاع في 2013-03-14 .
  19. ^ "SOAP over JMS protocol". IBM. مؤرشف من الأصل في 22 مارس 2020. تم الاسترجاع في 22 مارس 2020 .
  20. ^ "SOAP-JMS FAQ". مجموعة عمل ربط SOAP-JMS. مؤرشف من الأصل في 17 يوليو 2017. تم الاسترجاع في 22 مارس 2020 .

قراءة إضافية

  • بينوا مارشال، "Soapbox: لماذا أستخدم SOAP"، IBM
  • أوتشي أوغبوجي، "برنامج تعليمي: المراسلة باستخدام XML باستخدام SOAP"، المستشار الرئيسي، Fourththought، Inc.
  • صفحة W3C SOAP
  • مواصفات SOAP الإصدار 1.2
  • إنشاء رسالة SOAP في Java
Retrieved from "https://en.wikipedia.org/w/index.php?title=SOAP&oldid=1241628456"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate