بروتوكول النفاذ إلى خدمة الوب

عودة للموسوعة

بروتوكول النفاذ إلى خدمة الوب

ساهم بشكل رئيسي في تحرير هذا الموضوع

بروتوكول النفاذ إلى خدمات الوب SOAP اختصار لـ "Simple Object Access Protocol"، مبني على الـ XML يسمح للتطبيقات بتبادل المعطيات فوق بروتوكول الـ HTTP .يرمّز هذا البروتوكول رسائل (طلبات وردود) خدمات الوب قبل حتى ترسل عبر الشبكة، وهذه الرسائل مستقلة عن أي نظام تشغيل أوبروتوكول آخر، ويمكن حتى تنقل عبر عدة بروتوكولات مثل : SMTP, MIME, HTTP.

خصائص SOAP

  • اختصار لـ Simple Object Access Protocol
  • بروتوكول للاتصال بين التطبيقات
  • صمم للتواصل عبر شبكة الانترنت
  • يوفر بنية واحدة لنقل الرسائل بين التطبيقات
  • بروتوكول مستقل عن بيئة العمل
  • بروتوكول مستقل عن لغة البرمجة
  • مبني على الـ XML
  • بروتوكول سهل وقابل للتوسع
  • يسمح هذا البروتول بالالتفاف حول الجدران النارية Firewalls
  • أحد توصيات الـ W3C


لماذا SOAP؟

يستخدم بروتوكول SOAP في تواصل تطبيقات الويب كبديل عن طريقة RPC (Remote Procedure Call)التي يتم حجبها في مخدمات الاتصال لأسباب امن المعلومات، وعليه تم بناء هذا البروتوكول كطبقة تستخدم بروتوكول HTTP المدعوم من قبل كافة أنواع المخدمات والمتصفحات، واستخدامه في تأمين التواصل بين تطبيقات تعمل ضمن بيئات عمل مختلفة.

بنية الـ SOAP:

بناء رسالة لـ SOAP

الهيكل الأساسي لرسالة SOAP:

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
...
</soap:Header>
<soap:Body>
...
  <soap:Fault>
  ...
  </soap:Fault>
</soap:Body>
</soap:Envelope>

رسالة البروتوكول SOAP هي تعبير عن ملف XML مرتب يتضمن العناصر التالية:

عنصر التغليف

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
  ...
  Message information goes here
  ...
</soap:Envelope>

ويعرِّف عنصر التغليف ملف الـ XML على أنه رسالة SOAP، ووجود هذا العنصر في الرسالة مطلوب بشكل أساسي لأنه العنصر المعرّف لرسالة SOAP، وهوالذي يحول ملف الـ XML إلى رسالة SOAP عن طريق الواصفة xmlns:soap والتي تملك القيمة التالية دائماً:

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

ويوجد في عنصر التغليف واصفة ثانية تدعى encodingStyle والتي تحدد أنماط المعطيات المستخدمة في المستند، وهذه الواصفة قد توجد في أي عنصر من عناصر SOAP، وتطبق على محتويات هذا العنصر وعلى العناصر الأبناء أيضاً.ولا تملك رسائل SOAP ترميز افتراضي، لذلك يعتبر ذكر نوع الترميز أساسياً أيضاً.

عنصر الترويسة

وهوعنصر يحوي معلومات محددة عن الرسالة وتهم التطبيق، كالشهادة الأمنية ومعلومات عن عمليات الدفع payment، يعتبر هذا العنصر اختياري ولكن طالما وجوده لا بد حتىقد يكون الابن الأول لعنصر التغليف.

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
  <m:Trans xmlns:m="http://www.w3schools.com/transaction/"
  soap:mustUnderstand="1">234
  </m:Trans>
</soap:Header>
...
...
</soap:Envelope>

يمثل المثال السابق عنصر الترويسة والذي يحوي واصفات مثل الـ "Trans" ، وواصفة الـ "mustUnderstand" ذات القيم "1" و"234"


واصفات عنصر الترويسة

يعهد SOAP ثلاث واصفات خاصة بعنصر الترويسة داخل عنصر التغليف بشكل افتراضي وهي:

  • actor
  • mustUnderstand
  • encodingStyle

والتي تحدد كيف من الممكن أن سيعالج المستقبل رسالة SOAP.

الواصفة actor:

تمر رسالة SOAP من المرسل إلى المستقبل عبر طريق طويل قد تمر خلاله بعدة محطات، ومهمة هذه الواصفة هي تحديد المحطة النهائية، أي المستقبل النهائي:

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
  <m:Trans xmlns:m="http://www.w3schools.com/transaction/"
  soap:actor="http://www.w3schools.com/appml/">234
  </m:Trans>
</soap:Header>
...
...
</soap:Envelope>

الواصفة mustUnderstand:

وتستخدم هذه الواصفة لتحدّد للمستقبل فيما اذا كانت معالجة عنصر الترويسة عملية اختيارية أوإجبارية، فإذا كانت قيمة هذه الواصفة هي "1" هذا يعني حتى المستقبل مجبر على معالجة عنصر الترويسة.

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
  <m:Trans xmlns:m="http://www.w3schools.com/transaction/"
  soap:mustUnderstand="1">234
  </m:Trans>
</soap:Header>
...
...
</soap:Envelope>

الواصفة encodingStyle:

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

عنصر جسم الرسالة

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

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
  <m:GetPrice xmlns:m="http://www.w3schools.com/prices">
    <m:Item>Apples</m:Item>
  </m:GetPrice>
</soap:Body>
</soap:Envelope>

وسيكون الرد على الطلب السابق شبيها بمايلي:

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
  <m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices">
    <m:Price>1.90</m:Price>
  </m:GetPriceResponse>
</soap:Body>
</soap:Envelope>

عنصر الخطأ

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

ولعنصر الخطأ عدة عناصر جزئية هي :

العنصر الجزئي الوصف
<faultcode> رمز لتحديد نوع الخطأ
<faultstring> شرح مشروح عن ماهية الخطأ، وهذا الشرح قابل للقراءة من قبل المستخدم
<faultactor> معلومات عن مسببات وقوع الخطأ
<detail> يحوي معلومات عن الخطأ وهذه المعلومات خاصة بالتطبيق ولها علاقة بجسم الرسالة


رموز تحديد الخطأ :

رمز الخطأ الوصف
VersionMismatch أحد عناصر الـ SOAP يحمل قيمة خاطئة
MustUnderstand لم يتم معالجة ترويسة الرسالة، مع حتى الواصفة mustUnderstand تحمل القيمة "1"
Client تم تشكيل الرسالة بشكل خاطئ، أوحتى الرسالة تحوي على معلومات خاطئة
Server هناك معضلة في المخدم، ولذلك لن تواصل الرسالة مرورها

قواعد خاصة ببنية SOAP

  • يجب ترميز الرسائل باستخدام الـ XML
  • يجب حتى تستخدم الرسائل الغلاف الخاص بـ SOAP وهوsoap-envelope
  • يجب حتى تستخدم الرسائل الترميز الخاص بـ SOAP وهوsoap-encoding
  • يجب حتى لا تحوي الرسائل على مرجع للـ DTD Document Type Definition
  • يجب حتى لا تحوي الرسائل على أي تفهمية من تعليمات معالجة الـ XML

ربط البروتوكول SOAP مع البروتوكول HTTP

البروتوكول HTTP

يعمل هذا البروتوكول فوق الـ TCP/IP، حيث يقوم زبون الـ HTTP بالاتصال مع مخدم الـHTTP باستخدام الـ TCP، وبعد حتى يتم الاتصال يستطيع الزبون حتى يرسل للمخدم طلب من نوع HTTP:

POST /item HTTP/1.1
Host: 189.123.345.239
Content-Type: text/plain
Content-Length: 200

وبعدها يعالج المخدم هذا الطلب ويرسل استجابة من نوع HTTP إلى الزبون، وتحوي هذه الاستجابة على رمز الحالة الذي يكشف حالة الطلب:

200 OK
Content-Type: text/plain
Content-Length: 200

في المثال السابق يرسل المخدم رمز الحالة وهو"200" إلى الزبون، والذي يعبر عن نجاح عملية استقبال الطلب ومعالجته، أما طالما كان هذا الرمز "400" فهويعبر عن فشل في فك ترميز الطلب، أي حتى المخدم لم يفهم الطلب:

400 Bad Request
Content-Length: 0

ربط SOAP مع HTTP

توابع SOAP هي تعبير عن طلبات وردود من نمط HTTP، ولكن تتوافق مع قواعد ترميز SOAP، فيكون لدينا :

HTTP + XML = SOAP

فهماً حتى طلبات SOAP ممكن حتى تكون إما من نوع HTTP POST أومن نوع HTTP GET.

ويحوي الطلب من نمط HTTP POST على الأقل ترويستين للـ HTTP هما: Content-Type ,Content-Length.

حيث تحدد ترويسة الـ Content-Type نمط الـ MIME الخاص بالرسالة، وتحدد أيضا نوع الترميز المستخدم لجسم الـXML سواءً بالطلب أوبالاستجابة، وبشكل اختياري:

Content-Type: MIMEType; charset=character-encoding

أما ترويسة Content-Length فتحدد عدد البايتات في كلٍ من جسم الطلب أوالاستجابة:

Content-Length: bytes

مثال:

POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 250

مثال عن SOAP بشكل عام

الطلب

POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
----------------------
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
----------------------
<soap:Body xmlns:m="http://www.example.org/stock">
  <m:GetStockPrice>
    <m:StockName>IBM</m:StockName>
  </m:GetStockPrice>
</soap:Body>
---------------------
</soap:Envelope>

الاستجابة

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
------------------------
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
-----------------------
<soap:Body xmlns:m="http://www.example.org/stock">
  <m:GetStockPriceResponse>
    <m:Price>34.5</m:Price>
  </m:GetStockPriceResponse>
</soap:Body>
----------------------
</soap:Envelope>

المصادر

http://www.w3schools.com/soap/default.asp

http://www.alepposoft.net

تاريخ النشر: 2020-06-04 09:08:17
التصنيفات:

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

تخدم السياحة وهذا موعد الافتتاح .. محطة مترو المتحف الكبير| صور

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:14
مستوى الصحة: 57% الأهمية: 68%

المغرب يعتزم بناء 2500 محطة تزود بالطاقة خاصة بالسيارات الكهربائية

المصدر: الأيام 24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:23
مستوى الصحة: 62% الأهمية: 84%

منتخب رفع الأثقال الباراليمبي يحضر منافسات دوري قصار القامة

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:12
مستوى الصحة: 47% الأهمية: 50%

تدشين الصالون الرمضاني الأول للنشء بمركز شباب ميت سويد بالدقهلية

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:20
مستوى الصحة: 52% الأهمية: 50%

السيطرة على حريق محول كهرباء أمام مبنى ماسبيرو

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:25
مستوى الصحة: 49% الأهمية: 58%

قصور الثقافة تطلق فعاليات ليالي رمضان بجنوب سيناء.. السبت  

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:17
مستوى الصحة: 59% الأهمية: 61%

مصرع وإصابة 4 أشخاص إثر وقوع حادث مرورى فى البحيرة

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:21
مستوى الصحة: 57% الأهمية: 53%

التعادل السلبي يحسم مباراة أسوان وفاركو في الدوري

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:14
مستوى الصحة: 52% الأهمية: 56%

الأمم المتحدة: استمرار الاستجابة لتداعيات الزلازل في سوريا وتركيا

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:09
مستوى الصحة: 45% الأهمية: 50%

“لبؤات الأطلس” يخضن مباراتين وديتين أمام منتخبي التشيك ورومانيا

المصدر: الأيام 24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:25
مستوى الصحة: 73% الأهمية: 76%

القطار السريع «الهرم الرابع» .. ننشر أبرز المناطق التي يخدمها

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:06
مستوى الصحة: 54% الأهمية: 69%

العبادي لـ”الأيام24″: سعر الجاموس أقل ثمنا وجودة من الأبقار

المصدر: الأيام 24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:21
مستوى الصحة: 67% الأهمية: 85%

وزير الرياضة يهنئ أوناش مصر بصدارة التصنيف العالمي ببطولة العالم

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:13
مستوى الصحة: 52% الأهمية: 50%

مغاربة المهجر يحوّلون أزيد من 17 ملايير درهم في ظرف شهرين

المصدر: الأيام 24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:18
مستوى الصحة: 66% الأهمية: 70%

الفدائي عبد المنعم قناوي يروى مشاركته من حرب الاستنزاف إلى النصر

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:20
مستوى الصحة: 45% الأهمية: 53%

غزل المحلة يهزم الاتحاد السكندرى بثنائية فى الدورى

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:12
مستوى الصحة: 45% الأهمية: 53%

بالأسماء.. إصابة 7 في انقلاب سيارة ملاكي بالسويس

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:23
مستوى الصحة: 59% الأهمية: 52%

حبس المتهم بالاتجار فى النقد الأجنبى بمدينة نصر

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:24
مستوى الصحة: 57% الأهمية: 50%

قائمة أسعار السلع التموينية لشهر أبريل 2023.. مفأجاة رمضان

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:04
مستوى الصحة: 52% الأهمية: 63%

الصحفيين: فتح باب تلقي طلبات تشكيل اللجان الفرعية بالمحافظات غدًا

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2023-04-01 00:22:04
مستوى الصحة: 55% الأهمية: 55%

تحميل تطبيق المنصة العربية