SOAP
مخفف Simple Object Access Protocol است. SOAP یک پادمان مبتنی بر XML
است، برای رد و بدل کردن اطلاعات بین برنامه ها. اطلاعات در SOAP به صورت
پیام (Message) و از طریق پادمانهای موجود در اینترنت مانند HTTP منتقل
میشود (SOAP در سایر پادمان ها، مانند SMTP یا MIME نیز قابل استفاده
است). به زبان سادهتر، SOAP یک پادمان است برای دستیابی به یک سرویس
ارایه شده در وب (Web Service). آخرین نسخه SOAP، نسخه 1.2 میباشد.
ویژگی های SOAP
یکی
از مسایلی که در دهه اخیر از اهمیت خاصی برخوردار بوده، چگونگی ارتباط
برنامه های تحت اینترنت با یکدیگر بوده است. همانطور که میدانید برنامه
های عادی از RPC (Remote Procedure Call) برای فراخوانی اشیاء DCOM یا
CORBA، استفاده میکنند. اما مشکلی که در این نوع فراخوانیها در بستر
اینترنت وجود دارد، مسدود شدن این نوع ترافیکها در Proxy Server ها و
دیوارهای آتش (Firewall ها) است.
در صورت استفاده از SOAP با این مشکل روبرو نخواهید بود. SOAP به راحتی
شما را قادر خواهد کرد تا بین برنامه هایی که در بسترهای متفاوت طراحی
شده اند و در بسترهای متفاوتی در حال سرویس دهی هستند، ارتباط برقرار
کنید.
ساختار SOAP
پیام ها (Message ها) در SOAP یک فایل XML هستند که از ساختار زیر پیروی میکنند:
قوانین مهم در ساختار پیام
قالب کلی پیام
قالب پیام به صورت زیر است:
برای مشاهده جزئیات بیشتر و ساختار کامل پیام آدرس زیر را کلیک کنید.
http://www.w3.org/2001/12/soap-envelope
نوع داده های مجاز را نیز در آدرس زیر میتوانید مشاهده کنید:
http://www.w3.org/2001/12/soap-encoding
توجه: encodingStyle مشخص کننده قالب نامه است که به طور استاندارد مقدار مشخص شده در مثال را دارد.
یک درخواست و پاسخ آن با SOAP
هنگام استفاده از پادمان HTTP، در هر درخواست باید Content-Type و
Content-Length مشخص شود. که برای SOAP، موارد ارسالی در مثال زیر، به طور
معمول مورد استفاده قرار میگیرند.
در این مثال ، درخواست قیمت سیب و پاسخ آن آورده شده است. مشتری (Client)
یک XML را به کارگزار می فرستد که در آن قالب مشخص شده توسط برنامه
کارگزار (Server) رعایت شده است و در خواست مشتری در آن قرار دارد. در این
مثال، قیمت سیب، موردنظر است که در برچسب m:GetPrice ، آمده است. در صورتی
که قالب تعیین شده توسط سرور این اجازه را به شما بدهد که چند مورد را در
یک در خواست بفرستید، می توانید این کار را انجام دهید.
برنامه کارگزار نیز، با استفاده از یک فایل XML پاسخ مشتری را می دهد و
قیمت را در یک برچسب با عنوان m:GetPriceResponse به مشتری تحویل می دهد.
معایب SOAP
همانطور که میدانید اولین حرف از حروف تشکیل دهنده یSOAP ، S است که
حرف اول Simple است. همین مورد، باعث شده است تا سادگی بر هرچیز در این
سیستم، مقدم باشد. برای همین در SOAP بسیاری از کاستی ها دیده میشود، که
یکی از مهمترین آنها امنیت و قابلیت اعتماد پایین در SOAP است.
همین کاستی باعث شده است که تولیدکنندگان نرمافزار به این فکر بیفتند تا
SOAP را توسعه دهند و استانداردهای جدیدتری با امکانات بیشتری تولید کنند.
استاندارد تولید شده توسط مایکروسافت با نام GXA (Global XML Web Services
Architecture) ارایه شد. که یک پیادهسازی ازآن WSE (Web Services
Enhancements) است. WSE یک ابزار قدرتمند است که شما با استفاده از DotNet
Framework و WSE می توانید وب سرویس های امن و قدرتمند بنویسید. به بیان
سادهتر WSE ابزار شما برای طراحی و ساخت وب سرویس ها با .NET می باشد.
WSE را می توانید از سایت Microsoft بارگیری کرده و نصب کنید.