پروتکل های سرویس گرایی – SOAP

SOAP که سر واژه کلمات Simple Object Access Protocol هست ، فرمت تبادل پیام در قالب XML می باشد که در تعاملات وب سرویس ها استفاده می شود. غالب پیام های SOAP بر بستر HTTP یا JMS انتقال می یابند با این وجود دیگر پروتکل های انتقال هم می توانند استفاده شوند. استفاده از SOAP خاصه در وب سرویس ها توسط WSDL – (Web Service Definition Language) تعریف می شود.

SOAP
SOAP

SOAP در مستندات زیر توسط کنسرسیوم وب جهانی W3C به خوبی تشریح شده است :

برای کسب اطلاعات بیشتر اینجا را ببینید.

پیام های SOAP همچون نامه های پستی در قالب یک Envelope (پاکت) در بستر اینترنت ارسال می شوند. همانطور که بالاتر هم اشاره شد SOAP یک استاندارد از سوی W3C می باشد. در واقع SOAP به عنوان جایگزینی برای REST , JSON می باشد. (پیش تر در مقاله معماری وب گرا در رابطه با تفاوت های SOAP , REST توضیحاتی نوشتم که می توانید در اینجا آنها را بخوانید)

ساختار SOAP بدین شکل هست :

ساختار پیام SOAP
ساختار پیام SOAP

پاکت نامه SOAP حاوی دو بخش است :

  • سرآیند اختیاری (Optional Header) که اطلاعاتی رو به منظور احراز هویت ، کدینگ داده ها ، یا چگونگی پردازش این پیام توسط گیرنده اشاره دارد.
  • بدنه محتوی که حاوی پیام هست. این پیام توسط WSDL تعریف می شود.

تو شکل بالا هم که کشیدم اشاره کردم که SOAP غالبا از HTTP بهره می بره ولی می تونه از پروتکل های دیگه مثل SMTP (Simple Mail Transfer Protoco)l هم استفاده کنه.

نکته : زمانی که SOAP شروع به کار کرد حروفش مخفف Simple Object Access Protocol بودند ولی از زمانی که ورژن ۱٫۰۲ استارت خورد این حروف دیگر معنای خاصی را القاء نمی کنند.

پس SOAP شامل سه بخش است :

  • Envelope
    • Packet Local Name
    • zero or more Quality Attribute
    • Body (Not Optional)1
  • Header
    • استایل رمزنگاری
    • نقش (Role)
  • Body
    • A Local name
    • A Namespace name
    • zero or more Attribute
    • zero or more Elements

توجه شود که Envelope اجباری است بر خلاف سرآیند که اختیاری است ،

ارتباط پروتکل SOAP و وب سرویس ها هم اینطوره :

پروتکل SOAP و وب سرویس ها
پروتکل SOAP و وب سرویس ها

اینجا رو هم ببینید که بخشی از مطالب از اینجا به قلم Douglas K Barry برگرفته شده است.