وب سرویس SOAP
SOAP چیست؟
SOAP پروتکل دسترسی آسان به اشیاء و مخفف عبارت Simple Object Access Protocol می باشد
این پروتکل برای رد و بدل کردن اطلاعات بین برنامه ها استفاده می شود. اطلاعات در SOAP به صورت پیام (Message) و از طریق پروتکل های موجود در اینترنت مانند HTTP منتقل میشود. به زبان ساده تر، SOAP یک پروتکل برای دستیابی به یک سرویس ارایه شده در وب (Web Service) می باشد. پروتکل SOAP یکی از عمومی ترین استاندارد هایی است که در وب سرویس ها استفاده می شود.
وقتی یک برنامه شروع به ارتباط با وب سرویس می کند، پیغام های SOAP وسیله ای برای ارتباط و انتقال دیتا بین آن دو هستند. یک پیغام SOAP به وب سرویس فرستاده می شود و یک تابع را در آن به اجرا در می آورد، وب سرویس نیز از محتوای پیغام SOAP استفاده کرده و عملیات خود را آغاز می کند و در انتها نیز نتایج را با یک پیغام SOAP دیگر به برنامه اصلی می فرستد.
یکی از مسایلی که در دهه اخیر از اهمیت خاصی برخوردار بوده، چگونگی ارتباط برنامه های تحت اینترنت با یکدیگر می باشد.
برنامه های عادی از RPC) Remote Procedure Call) برای فراخوانی اشیاء DCOM یا CORBA، استفاده میکنند. اما مشکلی که در این نوع فراخوانی ها در بستر اینترنت وجود دارد، مسدود شدن این نوع ترافیکها در Proxy Server ها و دیوارهای آتش (Firewall ها) می باشد.
در صورت استفاده از SOAP با این مشکل روبرو نخواهید بود. SOAP به راحتی شما را قادر خواهد کرد تا بین برنامه هایی که در بسترهای متفاوت طراحی شده اند و در بسترهای متفاوتی در حال سرویس دهی هستند، ارتباط برقرار کنید.
ویژگی های SOAP
-
یک پروتکل ارتباطی است.
-
برای ارسال پیام استفاده میشود.
-
برای محیط اینترنت و شبکه طراحی شده است.
-
وابسته به محیط پیاده سازی و اجرا نیست. ( Platform Independent)
-
مبتنی بر XML است.
-
از دیوارهای آتش (Firewall) گذر میکند ودیوارهای آتش مانع آنها نمی شوند (Block نمیشوند).
ساختار SOAP
پیام ها در SOAP یک فایل XML هستند که از ساختار زیر پیروی میکنند:
-
یک بخش ضروری که به آن Envelope (پاکت نامه) گفته میشود که مشخص میکند که این XML یک پیام SOAP است.
-
قسمت Header که اختیاری است. این بخش شامل اطلاعاتی در مورد خود برنامه است. در صورتی که از Header استفاده شود، باید اولین عنصر در ساختار Envelope باشد.
-
قسمت Body که ضروری است. این بخش شامل Call یا Response است. در واقع مشخص کننده درخواست برنامه سرویس گیرنده یا پاسخ برنامه سرویس دهنده است.
-
قسمت Fault یا خطا که اختیاری است. این بخش اطلاعاتی درباره خطاهای بوجود آمده در هنگام پردازش پیام در خود دارد.
قوانین مهم در ساختار پیام
-
پیام حتماً باید در قالب XML باشد.
-
باید از Namespace تعریف شده در Envelope پیروی کند.
-
فقط باید از نوع داده های تعریف شده و مجاز استفاده کند.
-
نباید شامل دستورات پردازشی باشد.
-
در قالب پیام، نباید از DTD استفاده شود. DTD برای یک XML ، مانند Design View یک جدول در Database است و مشخص میکند که فیلدهای آمده در XML از چه نوع هستند و با چه ترتیبی میآیند. برای مثال:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
قالب کلی پیام
قالب کلی پیام را در تصویر زیر مشاهده میکنید. توجه کنید encodingStyle مشخص کننده قالب نامه است که به طور استاندارد مقدار مشخص شده در کد زیر را دارد.
درخواست و پاسخ با SOAP
هنگام استفاده از پروتکل HTTP، در هر درخواست باید Content-Type و Content-Length مشخص شود. که برای SOAP، موارد ارسالی در مثال زیر، به طور معمول مورد استفاده قرار میگیرند.
در این مثال ، درخواست قیمت سیب و پاسخ آن آورده شده است. مشتری (Client) یک XML را به کارگزار می فرستد که در آن قالب مشخص شده توسط برنامه کارگزار (Server) رعایت شده است و در خواست مشتری در آن قرار دارد.
در این مثال، قیمت سیب، موردنظر است که در برچسب m:GetPrice آمده است. در صورتی که قالب تعیین شده توسط سرور این اجازه را به شما بدهد که چند مورد را در یک در خواست بفرستید، می توانید این کار را انجام دهید.
برنامه کارگزار (Server) نیز، با استفاده از یک فایل XML پاسخ مشتری (Client) را می دهد و قیمت را در یک برچسب با عنوان m:GetPriceResponse به مشتری تحویل می دهد.
معایب SOAP
همانطور که میدانید اولین حرف از حروف تشکیل دهنده SOAP حرف S و اول کلمه Simple است. همین مورد، باعث شده است تا در این سیستم سادگی مقدم بر هرچیز باشد. برای همین در SOAP بسیاری از کاستی ها دیده میشود، که یکی از مهمترین آنها امنیت و قابلیت اعتماد پایین است.
همین کاستی باعث شده است که تولیدکنندگان نرم افزار به این فکر بیفتند تا SOAP را توسعه دهند و استانداردهای جدیدتری با امکانات بیشتری تولید کنند.
استاندارد تولید شده توسط مایکروسافت با نام GXA) Global XML Web Services Architecture) ارائه شد. که یک پیاده سازی از آن WSE) Web Services Enhancements) است. WSE یک ابزار قدرتمند است که شما با استفاده از DotNet Framework و WSE می توانید وب سرویس های امن و قدرتمند بنویسید. به بیان ساده تر WSE ابزار شما برای طراحی و ساخت وب سرویس ها با .NET می باشد. WSE را می توانید از سایت Microsoft بارگیری کرده و نصب کنید.
برای استفاده از تمامی امکانات پنل پیشرفته پارس گرین می توانید ثبت نام کنید و یا برای راهنمایی بیشتر با ما در ارتباط باشید.