پروتکل SOAP چیست؟

پروتکل SOAP چیست؟

امروزه زبان های برنامه نویسی زیادی وجود دارد که وب سرویس ها و برنامه های تحت وب متعددی با آن ها طراحی و ساخته می شوند. حال مسئله ای که به وجود می آید این است که اگر این سرویس ها یا برنامه ها بخواهند باهم در ارتباط باشند چگونه امکان پذیر است؟ در این مقاله به معرفی پروتکل SOAP پرداختیم که این امر را برای ما مهیا می کند.

SOAP یا Simple Object Access Protocol پروتکل یا به عبارت دیگر تعریفی است از اینکه وب سرویس ها چگونه با یکدیگر یا با کلاینت خود که انها را فراخوانی می کنند ارتباط برقرار می کنند؟ SOAP یک پروتکل مبتنی بر XML برای دسترسی به وب سرویس ها از طریق HTTP است. این تنها برخی از مشخصاتی است که می تواند در تمام برنامه ها استفاده شود.

این پروتکل به عنوان یک زبان واسطه به وجود آمده است به گونه ای که برنامه های نوشته شده با زبان های مختلف برنامه نویسی می توانند به راحتی با یکدیگر صحبت کنند.

در این مقاله شما با مطالب ذیل آشنا خواهید شد:

  • آشنایی با پروتکل SOAP
  • مزایای SOAP
  • ساختار بلوکی SOAP
  • ساختار پیام SOAP

معرفی پروتکل SOAP

امروزه برنامه های زیادی وجود دارد که با زبان های مختلف برنامه نویسی ساخته شده اند. به عنوان مثال ، می توانید یک برنامه وب در جاوا و دیگری در .Net و دیگری در PHP را طراحی کنید. تبادل داده بین برنامه ها در دنیای شبکه ای امروز بسیار مهم است. اما تبادل داده بین این برنامه های ناهمگن پیچیده خواهد بود. یکی از روش های استفاده شده برای مقابله با این پیچیدگی ، استفاده از XML (Extensionible Markup Language) به عنوان زبان واسطه برای تبادل داده بین برنامه ها است.

هر زبان برنامه نویسی می تواند زبان XML را درک کند. از این رو XML به عنوان واسطه اصلی برای تبادل داده استفاده می شود. اما هیچ استانداردی در مورد استفاده از XML در تمام زبان های برنامه نویسی برای تبادل داده وجود ندارد. اینجاست که SOAP وارد می شود. SOAP برای کار با XML بر روی HTTP طراحی شده است و مشخصاتی دارد که می تواند در تمام برنامه ها مورد استفاده قرار گیرد.

مزایای استفاده از SOAP

SOAP پروتکل مورد استفاده برای تبادل داده بین برنامه های مختلف است. در زیر برخی از دلایل استفاده از SOAP آورده شده است:

درهنگام توسعه وب سرویس ها، باید برخی از زبانهایی را داشته باشید که از آن برای صحبت با برنامه های کلاینت استفاده می شود. SOAP یک بستر مناسب برای دستیابی به این هدف است. این پروتکل همچنین توسط کنسرسیوم W3C توصیه می شود که سازمان حاکم بر کلیه استانداردهای وب است.

SOAP یک پروتکل سبک است که برای تبادل داده بین برنامه ها استفاده می شود. توجه داشته باشید به کلید واژه “سبک”. از آنجا که SOAP مبتنی بر زبان XML است ، که خود یک زبان تبادل داده سبک است ، از این رو SOAP به عنوان پروتکل که در همان دسته قرار می گیرد جزو پروتکل های سبک است.

SOAP به گونه ای طراحی شده است که مستقل از پلتفرم و سیستم عامل باشد. بنابراین پروتکل SOAP می تواند برنامه های مبتنی بر زبان برنامه نویسی مختلف را بر روی هر دو پلتفرم ویندوز و لینوکس اجرا کند.

SOAP بر روی پروتکل HTTP کار می کند. پروتکل HTTP پروتکل پیش فرض مورد استفاده همه برنامه های وب است. از این رو نیازی به هیچ نوع سفارشی سازی برای اجرای وب سرویس ها ساخته شده بر روی پروتکل SOAP برای کار در شبکه جهانی وب وجود ندارد.

ساختار بلوکی SOAP

مشخصات SOAP چیزی را که به عنوان “پیام SOAP ” شناخته می شود را تعریف می کند و این همان چیزی است که به وب سرویس ها و برنامه کلاینت ارسال می شود.

نمودار زیر بلوک های مختلف ساختار پیام SOAP را نشان می دهد.

پیام SOAP چیزی نیست جز یک سند XML ساده که اجزای زیر را در خود دارد.

  • یک قسمت Envelope که سند XML را به عنوان یک پیام SOAP مشخص می کند – این قسمت حاوی پیام SOAP است و برای کپسوله کردن تمام جزئیات در پیام SOAP استفاده می شود. این عنصر اصلی در پیام SOAP است.
  • قسمت Header که حاوی اطلاعات مربوط به عنوان است – قسمت Header می تواند حاوی اطلاعاتی مانند تأیید اعتبار باشد که می تواند توسط برنامه فراخوانی استفاده شود. همچنین می تواند شامل تعریف انواع پیچیده ای باشد که می توانند در پیام SOAP مورد استفاده قرار گیرند. به طور پیش فرض ، پیام SOAP می تواند دارای پارامترهایی باشد که از انواع ساده ای مانند رشته ها و اعداد تشکیل شده باشد ، اما ممکن است یک نوع Object پیچیده باشد.

یک مثال ساده از یک نوع پیچیده در زیر نشان داده شده است.

فرض کنید می خواهیم یک نوع داده ساختاری که ترکیبی از “نام آموزش” و “توضیحات آموزش” است ارسال کنیم. سپس نوع پیچیده ای را تعریف خواهیم کرد. نوع پیچیده با برچسب عنصر <xsd: complexType> تعریف می شود. سپس کلیه عناصر مورد نیاز ساختار به همراه انواع داده های مربوطه در مجموعه نوع پیچیده تعریف می شوند.

&amp;lt;xsd:complexType&amp;gt;
 
&amp;lt;xsd:sequence&amp;gt;
 
&amp;lt;xsd:element name="Tutorial Name" type="string"/&amp;gt;
 
&amp;lt;xsd:element name="Tutorial Description"  type="string"/&amp;gt;
 
&amp;lt;/xsd:sequence&amp;gt;
 
&amp;lt;/xsd:complexType&amp;gt;

قسمت Body که شامل اطلاعات تماس و پاسخ می باشد – این قسمت همان چیزی است که شامل داده های واقعی است که باید بین وب سرویس و برنامه فراخوانی ارسال شود. در زیر مثالی از بادی SOAP وجود دارد که در واقع بر روی نوع پیچیده تعریف شده در بخش هدر کار می کند. در اینجا پاسخ نام آموزش و توضیحات آموزشی است که به برنامه فراخوانی ارسال شده توسط این وب سرویس ارسال می شود.

&lt;soap:Body&gt;
 
&lt;GetTutorialInfo&gt;
 
&lt;TutorialName&gt;Web Services&lt;/TutorialName&gt;
 
&lt;TutorialDescription&gt;All about web services&lt;/TutorialDescription&gt;
 
&lt;/GetTutorialInfo&gt;
 
/&gt;soap:Body&gt;

ساختار پیام SOAP

نکته مهم این است که پیام های SOAP هنگام فراخوانی توسط وب سرویس تولید می شوند. هر وقت یک برنامه کلاینت یک متد را در وب سرویس فراخوانی می کند ، وب سرویس به طور خودکار یک پیام SOAP تولید می کند که جزئیات لازم از داده هایی را که از وب سرویس به برنامه کلاینت ارسال می شود داشته باشد.

همانطور که در موضوع قبلی بحث شد ، یک پیام SOAP ساده دارای قسمت های زیر است :

  • المان Envelope
  • المان header
  • المان بدنه
  • المان خطا (اختیاری)

بیایید به مثال زیر که یک پیام ساده SOAP است نگاهی بیندازیم و ببینیم که هرعنصری چه کاری انجام می دهد.

  1. همانطور که از پیام SOAP فوق مشاهده شد ، قسمت اول پیام SOAP المان Envelope است که برای محاصره کردن کل پیام SOAP استفاده می شود.
  2. المان بعدی بدنه SOAP است که شامل جزئیات پیام است.
  3. پیام ما حاوی یک وب سرویس است که دارای نام  “Guru99WebService” است.
  4. “” Guru99Webservice پارامتري از نوع  “int”  را مي پذيرد و نام آموزش آن را دارد.

اکنون پیام SOAP فوق بین وب سرویس و برنامه کلاینت منتقل می شود.

می توانید ببینید اطلاعات فوق چقدر برای برنامه کلاینت مفید است. پیام SOAP به برنامه کلاینت می گوید که نام وب سرویس چیست و همچنین چه پارامترهایی و نوع هر پارامتر که توسط وب سرویس گرفته شده است چیست.

خلاصه

SOAP پروتکلی است که برای تبادل داده بین برنامه هایی که با زبان های برنامه نویسی مختلف ساخته شده اند، استفاده می شود. SOAP بر اساس مشخصات XML ساخته شده است و با پروتکل HTTP کار می کند. این باعث می شود که SOAP برای استفاده از برنامه های وب بسیار مناسب باشد.

ساختار بلوکی SOAP از یک پیام SOAP تشکیل شده است. هر پیام SOAP از یک Soap envelope ، یک هدر و یک بادی تشکیل شده است.

قسمت SOAP Envelope بسیار قسمت ضروری در پیام SOAP است و برای کپسوله کردن تمام داده های موجود در پیام SOAP استفاده می شود.

قسمت هدر می تواند برای شامل اطلاعاتی مانند اطلاعات تأیید اعتبار یا تعریف انواع پیچیده داده استفاده شود.

موفق باشید.

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.