البروتوكول للوصول البسيط إلى الأجسام

البروتوكول للوصول البسيط إلى الأجسام يعتبر الرمز (SOAP) (اختصارا لبروتوكول الوصول البسيط إلى الأجسام) هو عبارة عن مواصفات لبروتوكول الرسائل لتبادل المعلومات المنظمة في تنفيذ خدمات الشبكة في الشبكات الحاسوبية. والغرض منه هو توفير القدرة على التمديد، والحيا، واللطف، والاستقلالية. فهو يستخدم مجموعة معلومات لغة الترميز القابلة للامتداد في شكل رسائله، ويعتمد على بروتوكولات طبقة التطبيقات، وفي أغلب الأحيان بروتوكول نقل النص الفائق (HTTP)، رغم أن بعض الأنظمة التراثية تتواصل عبر بروتوكول نقل البريد البسيط (SMTP)، من أجل التفاوض على الرسائل ونقلها.

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

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

ويتميز البرنامج بثلاث خصائص رئيسية:
 قابلية الامتداد (الأمن ومعالجة WS هي من بين الامتدادات قيد التطوير)
 (يمكن لنظام الحياد أن يعمل على أي بروتوكول من قبيل بروتوكول HTTP ، SMTP ، TCP ، UDP)
 الاستقلال (يسمح SOAP بأي نموذج للبرمجة)

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

تتكون الهندسة المعمارية SOAP من عدة طبقات من المواصفات لـ:
 تنسيق الرسالة أنماط تبادل الرسائل ربط بروتوكول النقل الأساسي نماذج معالجة الرسائل قابلية البروتوكول للتمديد

تطورت SOAP خلفا لـ XML-RPC ، على الرغم من أنها تقترض حيادها في النقل والتفاعل من خدمة الويب عناوين والمظروف/الرأس/الجسم من مكان آخر (ربما من WDDX).

تاريخ 
تم تصميم SOAP كبرتوكول للوصول إلى الأجسام وأصدر كبرتوكول XML-RPC في حزيران/يونيه 1998 كجزء من 5,1 الحدود من قبل ديف وينر، دون بوكس، بوب أتكينسون، ومحسن الغصين لمايكروسوفت، حيث يعمل أتكينسون والغصين. ولم تكن هذه المواصفات متاحة إلا بعد تقديمها إلى المعهد في 13 أيلول/سبتمبر 1999. وفقا لدون بوكس، كان هذا بسبب السياسة داخل مايكروسوفت. بسبب تردد مايكروسوفت، قام ديف وينر بشحن XML-RPC في عام 1998.

ولم تصل مسودة الإنترنت المقدمة إلى مركز RFC وبالتالي لا تعتبر «معيارا» في حد ذاتها. ونشرت النسخة 1,1 من المواصفات كمذكرة W3C في 8 أيار/مايو 2000. وبما أن الصيغة 1,1 لم تصل إلى W3C التوصية، فلا يمكن اعتبارها أيضا «معيارا». غير أن الصيغة 1,2 من المواصفات أصبحت توصية W3C في 24 حزيران/يونيو 2003.

وقد حافظ الفريق العامل المعني ببروتوكول XML التابع لاتحاد الشبكة العالمية على المواصفات المحددة لهذا النظام إلى أن أُغلق الفريق في 10 تموز/يوليو 2009. لكن النسخة 1,2 من المعيار أسقطت هذا الاختصار.

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

مصطلحات SOAP 
ويمكن تعريف مواصفات البرنامج على نطاق واسع بأنها تتألف من المكونات المفاهيمية 3 التالية: مفاهيم البروتوكول ومفاهيم التجميل ومفاهيم الشبكة.

مفاهيم البروتوكول 
 صابون
 وهذه مجموعة من القواعد التي تضفي الصبغة الرسمية على شكل المعلومات المتبادلة بين مرسل SOAP ومستقبل SOAP وتنظمها وقواعد تجهيز هذه المعلومات.
 عقد SOAP
 وهذه الآلات هي آلات مادية/منطقية ذات وحدات معالجة تستخدم لنقل/تقدم وتلقي ومعالجة رسائل SOAP. هذه هي مماثلة للعقود في الشبكة.
 أدوار SOAP
 على مسار رسالة SOAP ، كل العقد تأخذ دورا محددا. يحدد دور العقدة الفعل الذي تقوم به العقدة على الرسالة التي تتلقاها. على سبيل المثال، دور «لا شيء» يعني أن أي عقدة سوف معالجة رأس SOAP بأي شكل من الأشكال وببساطة نقل الرسالة على طول مسارها.
 بروتوكول SOAP الملزم
 يجب أن تعمل رسالة SOAP بالاقتران مع بروتوكولات أخرى لنقلها عبر شبكة. على سبيل المثال، يمكن لرسالة SOAP استخدام TCP كبروتوكول طبقة أدنى لنقل الرسائل. وتعرف هذه الترابط في إطار البروتوكول الملزم.
 ميزات SOAP
 ويوفر البرنامج إطارا للتراسل فقط. غير أنه يمكن توسيع نطاقه لإضافة سمات مثل الموثوقية والأمن وما إلى ذلك. وهناك قواعد ينبغي اتباعها عند إضافة سمات إلى إطار عمل البرنامج.
 وحدة SOAP
 مجموعة من المواصفات المتعلقة بمعاني رأس SOAP لوصف أي ميزات جديدة يتم توسيع نطاقها على SOAP. تحتاج الوحدة إلى تحقيق صفر أو أكثر من الخصائص. ويتطلب برنامج «سووب» من الوحدات أن تلتزم بالقواعد المقررة.

مفاهيم تغليف البيانات 
 رسالة SOAP
 تمثل المعلومات التي يتم تبادلها بين 2 SOAP.
 مغلف SOAP
 وهو العنصر المرفق لرسالة XML التي تعرفها على أنها رسالة 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 الموجهة إليها وتعمل على توجيه رسالة SOAP إلى جهاز استقبال SOAP في نهاية المطاف.
 مستقبل الصابون النهائي
 الوجهة المستقبلة لرسالة SOAP. هذه العقدة هي المسؤولة عن معالجة هيئة الرسالة وأي كتل رئيسية موجهة إليها.

تحدد مواصفات SOAP إطار الرسائل، الذي يتألف من:

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

لبنات بناء SOAP 
رسالة SOAP هي وثيقة عادية XML تحتوي على العناصر التالية:

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

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

تنسيق الرسالة 
واختيرت مجموعة معلومات XML كشكل موحد للرسائل بسبب استخدامها الواسع النطاق من قبل الشركات الكبرى وجهود تطوير المصادر المفتوحة. عادة، XML معلومات Set هو تسلسل XML. وتؤدي طائفة واسعة من الأدوات المتاحة مجانا إلى زيادة كبيرة في الانتقال إلى التنفيذ القائم على النظام. يمكن أن يكون الترادف الطويل بعض الشيء من XML فائدة وعيوبا في نفس الوقت. وفي حين يعمل على تعزيز قابلية القراءة للبشر، وتسهيل اكتشاف الأخطاء، وتجنب مشاكل التشغيل التبادلي مثل نظام بايت، إلا أنه قد يؤدي إلى إبطاء سرعة المعالجة، وقد يكون مرهقاً. على سبيل المثال، CORBA ، GIOP ، ICE ، وDCOM تستخدم أقصر بكثير، وأشكال الرسائل الثنائية. ومن ناحية أخرى، تتوفر الأجهزة لتسريع معالجة رسائل XML. كما يجري استكشاف XML الثنائي كوسيلة لتبسيط متطلبات إنتاج XML. عادة ما يكون لرسائل XML بطبيعتها الموثقة ذاتياً «النفقات العامة» (على سبيل المثال، الرؤوس، العلامات المقطوعة، والحدود) أكثر من البيانات الفعلية على النقيض من البروتوكولات السابقة حيث كانت النفقات العامة عادة نسبة مئوية صغيرة نسبياً من الرسالة الإجمالية.

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

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

مثال على رسالة (مغلفة في HTTP) 
إن الرسالة الواردة أدناه تطلب سعر أسهم شركة إيه تي آند تي (رمز الأسهم «ت»).POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 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>

النقد الفني

المزايا 

 فالخاصية الحيادية التي تتسم بها الوكالة تجعلها صريحة مناسبة للاستخدام مع أي بروتوكول نقل. وغالبا ما يستخدم التنفيذ بروتوكول HTTP كبروتوكول نقل، ولكن يمكن استخدام بروتوكولات نقل شعبية أخرى. على سبيل المثال، يمكن أيضا استخدام SOAP على SMTP ، JMS وصف الرسائل. (SOAP)، عندما يقترن ذلك بتبادل البريد/الاستجابة عن طريق HTTP ، الأنفاق بسهولة من خلال جدران الحماية والوكالة القائمة، وبالتالي لا تتطلب تعديل الهياكل الأساسية للحوسبة والاتصالات على نطاق واسع الموجودة لتجهيز تبادل البريد/الاستجابة عن طريق HTTP. وتتوفر لها شركة SOAP جميع مرافق XML ، بما في ذلك التدويل السهل وقابلية الامتداد مع XML Namespaces.

العيوب 

 عند استخدام التنفيذ المعياري والربط الافتراضي SOAP/HTP ، يتم ترتيب معلومات XML على أنها XML. ولتحسين الأداء للحالة الخاصة من XML مع الأجسام الثنائية المدمجة، أدخلت آلية التحويل الأمثل لنقل الرسائل. وعند الاعتماد على HTTP كبروتوكول نقل وعدم استخدام خدمة الإنترنت أو حافلة خدمات المؤسسات، تكون أدوار الأطراف المتفاعلة ثابتة. ولا يستطيع إلا حزب واحد (العميل) أن يستخدم خدمات الطرف الآخر. SOAP هو أقل «بسيطة» مما يوحي الاسم. أدى لبطء البروتوكول، وبطء سرعة XML ، وعدم وجود نموذج تفاعل موحد إلى هيمنة الخدمات باستخدام بروتوكول HTTP بشكل مباشر أكثر. انظر، على سبيل المثال، ريست.

انظر أيضا 
 بروتوكول حجز الموارد

مراجع

قراءة متعمقة 
 Benoît Marchal ، " Soapbox: Why I using SOAP "، IBM
 Uche Ogbuji ، " Tutorial: XML messaging with SOAP "، مستشار رئيسي، Four Thinkt، Inc.

روابط خارجية 

 صفحة W3C SOAP
 مواصفات الإصدار 1.2 من SOAP
 إنشاء رسالة SOAP بجافا

بروتوكولات طبقة التطبيق
معايير رابطة الشبكة العالمية
نداء الإجراء البعيد