وب سرویس چیست و چه کاربردی دارد؟


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