پروتکل دسترسی آسان به اشیاء

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به ناوبری پرش به جستجو
SOAP.svg

با استفاده از پروتکل دسترسی آسان به اشیاء یا سُوپ (Simple Object Access Protocol - SOAP) می‌توان به ارسال و تبادل پیامهایی از جنس اکس‌ام‌ال بر روی شبکه‌های رایانه‌ای مبادرت کرد.

کاربرد[ویرایش]

این پروتکل برای تبادل پیغام‌های مبتنی بر اکس‌ام‌ال در میان شبکه‌های کامپیوتری است که معمولاً از HTTP/پروتکل امن انتقال ابرمتن استفاده می‌کند. سُوپ لایه زیر بنای پشته خدمات وب را تشکیل می‌دهد که یک چارچوب پیغام دهی ایجاد می‌کند که لایه‌های مجرد بیشتری می‌توانند بر روی آن ایجاد شوند.

طرحهای پیغام دهی مختلفی در سُوپ موجودند که معمول‌ترین آن‌ها طرح remote procedure call می‌باشد و بدین گونه‌است که یک گره شبکه (مشتری) یک پیغام درخواست را به گره دیگر (سرور) می‌فرستد و سرور به سرعت یک پیغام پاسخ را به مشتری می‌فرستد. SOAP جانشین XML-RPC می‌باشد که خنثی بودن در مورد انتقال و تبادل را از آن و پوشش/سرفصل/بدنه را از جای دیگر (معمولا WDDX) به عاریه گرفته‌است.

سُوپ توان استفاده از یک پروتکل لایه کاربرد اینترنت را به عنوان یک پروتکل انتقال، ایجاد می‌کند. به اعتقاد برخی چون این هدفی نبوده‌است که برایش در نظر گرفته شده باشد نمی‌تواند به خوبی از عهده این نقش برآید. اما طرفداران سُوپ تناسب را در استفاده موفق از پروتکل‌ها در سطوح مختلف برای tunneling سایر پروتکلها، گوشزد کرده‌اند.

قرارداد ساده نامه‌رسانی و HTTP هردو پروتکل‌های مجاز لایه کاربرد هستند که به عنوان انتقال برای SOAP استفاده شده‌اند اما از آنجا که HTTP بخوبی با زیر ساختهای امروزی اینترنت کار می‌کند، بیشتر مورد پذیرش قرار گرفته‌است، به ویژه اینکه سُوپ بخوبی با دیوارهای آتش کار می‌کند. سُوپ می‌تواند بر روی HTTPS نیز استفاده شود (چونکه آن هم دارای پروتکل مشابه HTTP در لایه کاربرد است ولی در زیر آن از پروتکل انتقال انکریپت شده‌استفاده می‌کند.) این متد مورد نظر WS-I برای ایجاد امنیت در سرویس‌های وب است. این یک پیشرفت بزرگ در برابر سایر پروتکل‌های منتشری چون GIOP/IIOP یا DCOM است که به‌طور طبیعی توسط firewallها فیلتر می‌شوند.

اکس‌ام‌ال به عنوان فرمت استاندارد پیغام‌ها انتخاب شده‌است چونکه به‌طور گسترده‌ای توسط موسسات بزرگ و موارد کد باز مورد استفاده قرار می‌گیرد. بعلاوه، تعداد زیادی از ابزارهایی که به‌طور رایگان در دسترس هستند، به‌طور مشهود سبب راحتی تبدیل به یک کاربری‌های مبتنی بر سُوپ می‌شود.

ترکیب نحوی عمدتا طولانی اکس‌ام‌ال می‌تواند هم حسن باشد و هم نقص. فرمت آن برای انسان‌ها قابل خواندن است اما می‌تواند پیچیده باشد و زمان پردازش آن آهسته باشد. به عنوان مثالCORBA، GIOP، ICE و DCOM از فرمتهای پیغام باینری کوتاهتر استفاده می‌کنند. از طرفی، وسایل سخت‌افزاری در دسترس هستند تا پردازش پیغام‌های اکس‌ام‌ال را تسهیل کنند.

نقاط قوت[ویرایش]

  • استفاده از سُوپ روی HTTP در مقایسه با تکنولوژی‌های اجرایی قبلی، سبب تسهیل ارتباط در پس پراکسی‌ها و فایروال‌ها می‌شود.
  • سُوپ به حدی فراگیر است که استفاده از پروتکل‌های انتقال مختلف را مقدور می‌سازد. Strackهای استاندارد از HTTP به عنوان یک پروتکل انتقال استفاده می‌کنند اما از سایر پروتکل‌ها نیز می‌توان استفاده نمود (TCP, SNMP).

نقاط ضعف[ویرایش]

  • به علت فرمت طولانی اکس‌ام‌ال، سُوپ می‌تواند به‌طور قابل ملاحظه‌ای نسبت به تکنولوژی‌های میان افزار رقیب مانند کوربا کندتر باشد. این مسئله هنگامی که پیغام‌های کوتاه تبادل می‌شوند، چندان قابل توجه نیست. از سوی دیگر، سُوپ دارای مکانیسم بهینه سازی انتقال پیغام می‌باشد.
  • بسیاری از کاربری‌های سُوپ مقدار داده‌هایی را که باید فرستاده شود، محدود می‌کنند.
  • اکثر استفاده‌ها از HTTP به عنوان یک پروتکل انتقال، با چشم پوشی از این مسئله که چگونه این عمل در HTTP مدل بندی می‌شود، انجام می‌گیرد. این چشم پوشی به عمد انجام می‌گیرد (با قیاس به اینکه چگونه پروتکل‌های مختلف در IP stack بر روی همدیگر می‌نشینند) اما این قیاس ناقص است (چون پروتکل‌های application استفاده شده به عنوان پروتکل‌های انتقال، در واقع پروتکل‌های انتقال نیستند). به همین دلیل راهی وجود ندارد که بدانیم آیا متد استفاده شد برای عمل مورد نظر مناسب است یا خیر. این مسئله، تحلیل درست عملیات را در سطح application-protocol با مشکل مواجه می‌سازد که در بهترین وجهش به سبب نتایج غیر بهینه‌است (اگر اتصالات مبتنی بر POST برای یک application استفاده شده‌است که در HTTP ممکن است به‌طور خنثی تر به عنوان عملیات GET مدل بندی شده باشد) و می‌تواند دارای باگ باشد (اگر به عنوان مثال اتصالات مبتنی بر GET برای عملیاتی استفاده شده باشد که دارای idempotency مورد نیاز GET نباشد.)

جستارهای وابسته[ویرایش]

منابع[ویرایش]

پیوندهای بیرونی[ویرایش]