soap چیست
به زبان ساده ، SOAP یک پروتکل برای دستیابی به یک سرویس ارایه شده در وب (Web Service) است مخفف Simple Object Access Protocol و یک پروتکل مبتنی بر XML برای رد و بدل کردن اطلاعات بین برنامه ها است حال مختصری باsoapچیست آشنا شدیم لطفا بقیه مطالب را جهت بدست اوردن اطلاعات کامل تر مطالعه بفرمائید .
اطلاعات در SOAP به صورت پیام (Message) و از طریق پروتکلهای موجود در اینترنت مانند HTTP منتقل میشود (SOAP در سایر پروتکل ها، مانند SMTP یا MIME نیز قابل استفاده است)
مخفف Simple Object Access Protocol و یک پروتکل مبتنی بر XML برای رد و بدل کردن اطلاعات بین برنامه ها است. اطلاعات در SOAP به صورت پیام (Message) و از طریق پروتکلهای موجود در اینترنت مانند HTTP منتقل میشود (SOAP در سایر پروتکل ها، مانند SMTP یا MIME نیز قابل استفاده است). به زبان ساده تر، SOAP یک پروتکل برای دستیابی به یک سرویس ارایه شده در وب (Web Service) است.
برخی از ویژگیهای SOAP عبارتند از :
• وابسته به محیط پیاده سازی و اجرا نیست. ( Platform Independent)
• یک پروتکل ارتباطی مبتنی بر XML است.
• از دیوارهای آتش (Firewall) گذر میکند ودیوارهای آتش مانع آنها نمی شوند (Block نمیشوند).
• برای ارسال پیام استفاده میشود.
• برای محیط اینترنت و شبکه طراحی شده اند.
یکی از مسایلی که در دهه اخیر از اهمیت خاصی برخوردار بوده، نحوه ارتباط برنامه های تحت اینترنت با یکدیگر بوده است. همانطور که میدانید برنامه های عادی از RPC که مخفف Remote Procedure Call یا فراخوانی روالهای از راه دور ، برای فراخوانی اشیاء DCOM یا CORBA، استفاده میکنند. اما مشکلی که در این نوع فراخوانیها در بستر اینترنت وجود دارد، مسدود شدن این روشها در Proxy Server ها و دیوارهای آتش (Firewall ها) است. در صورت استفاده از SOAP با این مشکل روبرو نخواهید بود. SOAP به راحتی شما را قادر خواهد کرد تا بین برنامه هایی که در بسترهای متفاوت طراحی شده اند و در بسترهای متفاوتی در حال سرویس دهی هستند، ارتباط برقرار کنید.
نقاط قوت
استفاده از سُوپ روی HTTP در مقایسه با تکنولوژیهای اجرایی قبلی، سبب تسهیل ارتباط در پس پراکسیها و فایروالها میشود.
سُوپ به حدی فراگیر است که استفاده از پروتکلهای انتقال مختلف را مقدور میسازد. Strackهای استاندارد از HTTP بعنوان یک پروتکل انتقال استفاده میکنند اما از سایر پروتکلها نیز میتوان استفاده نمود (TCP, SNMP).
نقاط ضعف
به علت فرمت طولانی اکسامال، سُوپ میتواند بطور قابل ملاحظهای نسبت به تکنولوژیهای میان افزار رقیب مانند کوربا کندتر باشد. این مسئله هنگامی که پیغامهای کوتاه تبادل میشوند، چندان قابل توجه نیست. از سوی دیگر، سُوپ دارای مکانیسم بهینه سازی انتقال پیغام میباشد.
بسیاری از کاربریهای سُوپ مقدار دادههایی را که باید فرستاده شود، محدود میکنند.
اکثر استفادهها از HTTP به عنوان یک پروتکل انتقال، با چشم پوشی از این مسئله که چگونه این عمل در HTTP مدل بندی میشود، انجام میگیرد. این چشم پوشی به عمد انجام میگیرد (با قیاس به اینکه چگونه پروتکلهای مختلف در IP stack بر روی همدیگر مینشینند) اما این قیاس ناقص است (چون پروتکلهای application استفاده شده بعنوان پروتکلهای انتقال، در واقع پروتکلهای انتقال نیستند). به همین دلیل راهی وجود ندارد که بدانیم آیا متد استفاده شد برای عمل مورد نظر مناسب است یا خیر. این مسئله، تحلیل درست عملیات را در سطح application-protocol با مشکل مواجه میسازد که در بهترین وجهش به سبب نتایج غیر بهینهاست (اگر اتصالات مبتنی بر POST برای یک application استفاده شدهاست که در HTTP ممکن است بطور خنثی تر بعنوان عملیات GET مدل بندی شده باشد) و میتواند دارای باگ باشد (اگر بعنوان مثال اتصالات مبتنی بر GET برای عملیاتی استفاده شده باشد که دارای idempotency مورد نیاز GET نباشد.)