وب سرویس یک نوع رابط برنامه نویسی است که بر بستر وب پیاده سازی میشود. این رابطها با استفاده از پروتکلهای استاندارد مانند http، توابع و مکانیزمهای مختلفی در اختیار ما قرار میدهند تا بتوانیم به تبادل اطلاعات در بین سیستمهای مختلف بپردازیم. به عبارتی دیگر این رابطها ارتباط میان نرم افزار با نرم افزار و کلاینت با نرم افزار را امکان پذیر میکند.
وب سرویس مانند پلی ارتباطی است که به منظور تبادل اطلاعات میان نرم افزارهای مختلف توسط سازمان W3C توسعه یافته است. این رابطها میتوانند بدون وابستگی و پیش نیازی خاص بر روی سیستم عاملها و زبانهای برنامه نویسی مختلف، عملکردی یکسان داشته باشند.
بنابراین به صورت کلی میتوان کاربردها و ویژگیهای آنها را به صورت زیر در نظر گرفت :
وب سرویس به عنوان الگوی درخواست پاسخ کار می کند ، نهادی وجود دارد که برای برخی خدمات به همتای خاص خود یعنی نهاد ارائه دهنده خدمات درخواست می کند. در صورت درخواست ، ارائه دهنده خدمات با پیام پاسخ خواهد داد. بنابراین دو پیام وجود دارد که یک درخواست پیام (XML) و یک پیام پاسخ (XML) را بشنوید.
انواع مختلف وب سرویسها عبارتاند از XML-RPC، UDDI، SOAP و REST که در ادامه به تعریف هر کدام از آنها خواهیم پرداخت پس با ما همراه باشید.
ابتداییترین پروتکل XML برای تبادل داده بین طیف گستردهای از دستگاهها در یک شبکه است. از HTTP برای انتقال سریع و آسان دادهها و ارتباط سایر اطلاعات از مشتری به سرور استفاده میکند.
یک استاندارد مبتنی بر XML برای جزئیات، انتشار و کشف خدمات وب است. این اساسا یک رجیستری اینترنتی برای مشاغل در سراسر جهان است. هدف اصلی UDDI ساده کردن تراکنشهای دیجیتال و تجارت الکترونیک در بین سیستمهای شرکت است.
یک پروتکل سرویس وب مبتنی بر XML برای تبادل دادهها و اسناد از طریق HTTP یا SMTP (پروتکل انتقال نامه ساده) است. این پروتکل اجازه میدهد تا فرآیندهای مستقلی که بر روی سیستمهای متفاوت کار میکنند با استفاده از XML ارتباط برقرار کنند.
ارتباط و اتصال بین دستگاهها و اینترنت را برای وظایف مبتنی بر API فراهم میکند. اکثر سرویسهای RESTful از HTTP به عنوان پروتکل پشتیبانی استفاده میکنند.
برخی از وب سرویس های معروفی که از زبان های نشانه گذاری استفاده می کنند عبارتاند از:
استاندارهای مختلفی جهت استفاده و راه اندازی Web Service ها وجود دارد که به آنها پروتکل وب سرویس نیز میگویند.
پروتکل مبادله قابل انعطاف (BEEP) چارچوبی برای ایجاد پروتکل های برنامه شبکه است. BEEP شامل بلوک های ساختاری مانند کادربندی ، خطوط لوله ، مالتی پلکس ، گزارش دهی و احراز هویت برای اتصال و پیام های متصل به پروتکل های همتا به همتا (P2P) با پشتیبانی از ارتباطات دو طرفه ناهمزمان است.
تجارت الکترونیکی با استفاده از زبان نشانه گذاری eXtensible ، که معمولاً به عنوان تجارت الکترونیکی XML یا ebXML شناخته می شود ، خانواده ای از استانداردهای مبتنی بر XML است که توسط OASIS و UN / CEFACT حمایت مالی می شود و مأموریت آن ایجاد زیرساخت مبتنی بر XML است که امکان استفاده جهانی از اطلاعات کسب و کار الکترونیک را فراهم می کند.
یک پروتکل سرویس باینری وب است که وب سرویس ها را بدون نیاز به یک چارچوب بزرگ و بدون یادگیری مجموعه جدیدی از پروتکل ها ، قابل استفاده می کند.
پروتکل معاملات باز اینترنتی (IOTP) یک پروتکل مستقل از سیستم است که برای تجارت الکترونیکی یک چارچوب پرداخت متقابل و استاندارد را فراهم می کند ، که سعی می کند تا آنجا که ممکن است فرآیندهای تجارت در دنیای واقعی را تکرار کند.
پروتکل JSON-RPC یک پروتکل تماس رویه از راه دور است که در JSON رمزگذاری شده است. این پروتکل مشابه پروتکل XML-RPC است که فقط چند نوع داده و دستور را تعریف می کند. JSON-RPC اجازه می دهد تا اعلان ها (داده هایی که به سرور ارسال نمی شوند و نیازی به پاسخ ندارند) و چندین تماس برای سرور ارسال می شود که ممکن است به صورت غیرهمزمان پاسخ داده شوند.
این پروتکل یک پروتکل سرویس وب است که از JSON برای توصیف خدمات ، درخواست ها و پاسخ ها استفاده می کند. این از JSON-RPC الهام گرفته شده است ، اما فقدان مشخصات توصیف خدمات با اسناد موجود در JSON-RPC باعث طراحی JSON-WSP شد.
نام اختصاری Simple Protect Access Protocol مشخصات پروتکل پیام رسانی برای تبادل اطلاعات ساختاریافته در اجرای خدمات وب در شبکه های رایانه ای است. این از XML Information Set برای قالب پیام خود استفاده می کند و به پروتکل های لایه برنامه ، اغلب پروتکل انتقال متن (HTTP) متکی است ، اگرچه برخی از سیستم های قدیمی از طریق پروتکل انتقال ایمیل ساده (SMTP) برای مذاکره و انتقال پیام ارتباط برقرار می کنند.
این پروتکل نام اختصار Universal Description، Discovery and Integration است که یک پروتکل زبان نشانه گذاری قابل گسترش و مستقل از بسترهای نرم افزاری است که شامل یک رجیستری (مبتنی بر XML) است که توسط آن مشاغل مختلف در سراسر جهان می توانند خود را در اینترنت لیست کنند و مکانیزمی برای ثبت و قرارگیری برنامه های وب سرویس است. UDDI یک ابتکار صنعت باز است که توسط سازمان پیشرفت استانداردهای اطلاعاتی ساخت یافته (OASIS) حمایت مالی می شود ، برای اینکه مشاغل بتوانند لیست خدمات را منتشر کنند و یکدیگر را کشف کنند و نحوه تعامل سرویس ها یا برنامه های نرم افزاری از طریق اینترنت را تعریف کنند.
استاندارد رابط سرویس پردازش وب OGC (WPS) قوانینی را برای استاندارد سازی ورودی ها و خروجی ها (درخواست ها و پاسخ ها) برای فراخوانی خدمات پردازش فضایی ، مانند پوشش چند ضلعی ، به عنوان یک سرویس وب ارائه می دهد. استاندارد WPS چگونگی درخواست مشتری برای اجرای یک فرآیند و نحوه مدیریت خروجی را مشخص می کند. این یک رابط است که انتشار فرآیندهای فضایی و کشف و اتصال مشتری به آن فرآیندها را تسهیل می کند.
پیشنهاد زبان مکالمه سرویس وب (WSCL) توالی پیام ورودی و خروجی کلی یک وب سرویس را با استفاده از FSA اتومات حالت محدود روی الفبای انواع پیام تعریف می کند.
پروتکل Web Services Flow Language 1.0 یک زبان برنامه نویسی XML بود که برای توصیف ترکیبات خدمات وب توسط IBM در سال ۲۰۰۱ پیشنهاد شد. زبان دو نوع ترکیب را در نظر گرفت. نوع اول برای توصیف فرآیندهای تجاری به عنوان مجموعه ای از خدمات وب و نوع دوم برای توصیف تعاملات بین شرکا بود. WSFL به عنوان لایه لایه در بالای زبان توصیف سرویس های وب پیشنهاد شده است.
پروتکل WSDL یک قالب XML برای توصیف سرویس های شبکه به عنوان مجموعه ای از نقاط انتهایی است که بر روی پیام ها حاوی اطلاعات مدارک مدار یا روش گرا هستند. عملیات و پیام ها به صورت انتزاعی توصیف می شوند ، و سپس به یک پروتکل شبکه و قالب پیام متصل می شوند تا نقطه پایانی را تعریف کنند.
پروتکل یا استاندارد XML Interface for Network Services یک فناوری متن باز برای تعریف و پیاده سازی برنامه های اینترنتی است ، که یک رویکرد مشخصات گرا را اعمال می کند.
استاندارد XML-RPC یک پروتکل تماس از راه دور (RPC) است که از XML برای رمزگذاری تماس های خود و HTTP به عنوان مکانیزم انتقال استفاده می کند.
وب سرویسها به روشهای مختلفی میتوانند پیاده سازی شوند و هر کدام از این روشها دارای مزایا و معایب خاصی است. این روشها عبارتند از:
روش فراخوانی از راه دور (RPC) پروتکلی است که با استفاده از آن یک نرم افزار میتواند یک سرویس را از نرم افزاری در کامپیوتری دیگر به وسیله توابعی درخواست کند. این پروتکل ارتباط میان نرم افزارهای مختلف در شبکه را بدون نیاز به درک جزئیات آن شبکه امکان پذیر میکند.
معماری سرویس گرا (SOA) یک سبک طراحی نرم افزار است که در آن خدمات به کامپوننتهای (اجزای نرم افزاری) مجزا تقسیم میشوند. بنابراین برای تبادل اطلاعات میان سرویسهای مختلف از هر یک از این کامپوننتها استفاده میشود. تبادل اطلاعات بین سرویسها بر اساس یک پروتکل انتقال اطلاعات در بستر وب صورت میگیرد.
یک سبک معماری برای ایجاد نرم افزارهای تحت شبکه است که از پروتکلهای مختلف استفاده میکند. یکی از پرکاربردترین پروتکلها در این معماری، پروتکل HTTP است. این معماری با هدف برقراری ارتباطات نقطه به نقطه طراحی شده است و برای محیطهای توزیع شده قابل استفاده نیست. پیاده سازی این نوع رابطها از پیچیدگی کمتری نسبت به روشهای دیگر برخوردار است.
هنگامی که پلت فرم های مختلف قابلیت دسترسی به وب را از طرق جستجوگرهای وب (Web Browsers) دارند، می توانند با هم تعامل داشته باشند و برای این منظور Web-application ها توسعه یافتند.
Web-application ها به صورت ساده، نرم افزارهایی هستند که تحت وب عمل می کنند و با استانداردهای مرورگرهای وب و پلت فرم های مختلف همخوانی دارند. با استفاده از وب سرویس ها، عملکرد application های شما در سطح جهانی گسترش پیدا خواهد کرد. وب سرویس ها از XML برای کدگزاری و کد گشایی اطلاعات و از SOAP برای جابجایی آن استفاده می کنند.
به عنوان مثال با web service ها، سیستم صدور صورت حسابهای مالی بخش حسابداری شما که با ویندوز ۲۰۰۰ کار میکند می تواند با سیستم بخش IT که از سرور UNIX استفاده میکند ارتباط برقرار کند.
امروزه از خدمات وب به طور گسترده ای برای برقراری ارتباط و تبادل اطلاعات بین هرگونه برنامه یا سیستم عامل متفاوت استفاده میشود. فناوری با سرعت بیشتری رشد میکند و اتصال بیشتر و ادغام یکپارچه خدمات ، تجربه و ارزش بیشتری را برای کاربران تضمین می کند کسب و کارهایی مانند رزرو بلیط قطار، اطلاعات هواشناسی، خدمات بانکی و… نمونههایی از خدماتی هستند که بر پایه این رابطها پیاده سازی شده اند.
استفاده از وب سرویسها موجب شده توسعه دهندگان بتوانند به طور کلی مستقل از زبان برنامهنویسی و سیستم عامل با یک دیگر ارتباط برقرار کنند.