وب سرویس و 4 مورد از کارایی
یک وب سرویس (به انگلیسی: Web service) یا خدمت وب، از نگاه فناوری اطلاعات و بر اساس استانداردهای تعریف شده، سرویس یا خدمتی است که از طریق وب (اینترنت) توسط یک دستگاه الکترونیکی (سرور یا خادم) به دستگاه الکترونیکی دیگر (سرویس گیرنده یا Client)، ارائه میشود.
در وب سرویس، از فناوریهای وبی مانند HTTP – که به صورت پایه برای ارتباط انسان با سرور(Human-to-machine) طراحی شدهاست – برای ارتباط بین نرمافزار سرویس دهنده و نرمافزار سرویس گیرنده استفاده میشود.
وب سرویس از HTTP بیشتر برای انتقال اطلاعات و دادهها استفاده مینماید، این اطلاعات به صورت فایل و اغلب با دو استاندارد متداول XML و JSON رد و بدل میشوند.
در عمل و در بیشتر موارد وب سرویس به صورت رابط وب بین نرمافزارهای مختلف مانند نرمافزارهای موبایل یا وب سایتهای مختلف با پایگاه دادهها (Data Base) استفاده میشود. همچنین وب سرویس این امکان را فراهم مینمایند تا اطلاعات و دادههای مختلف از منابع مختلف، در یک صفحه نمایش داده شوند. به عنوان مثال؛ با استفاده از وب سرویسهای سازمان بورس و سازمانهای هواشناسی اطلاعات مربوط به بورس و پیشبینی وضع هوا در کنار هم نمایش داده میشود.
سازمان W3C واژهٔ وب سرویس را به صورت زیر ترجمه نمودهاست: «یک نرمافزار سیستمی که برای در خواست و پاسخ (فعل و انفعال) بین عناصر غیرانسانی (machine-to-machine) با قابلیت درک متقابل (interoperable) طراحی شدهاست».
معماریهای وب سرویس ها
برای بررسی معماری وب سرویس ها دو روش وجود دارد:
- اولین مورد بررسی نقش های فردی هر یک از عوامل web service است.
- دوم بررسی پشته پروتکل سرویس وب در حال ظهور است.
نقش های وب سرویس
سه نقش اصلی در معماری سرویس وب وجود دارد:
ارائه دهنده خدمات: این نقش ارائه دهنده خدمات وب است. ارائه دهنده خدمات این سرویس را پیاده سازی می کند و آن را در اینترنت در دسترس قرار می دهد.
درخواست کننده خدمات: این نقش هر مصرف کننده وب سرویس است. درخواست کننده با باز کردن اتصال شبکه و ارسال درخواست XML از یک سرویس وب موجود استفاده می کند.
ثبت خدمات: این نقش یک فهرست خدمات متمرکز منطقی است. رجیستری مکانی مرکزی را در اختیار شما قرار می دهد که توسعه دهندگان می توانند خدمات جدید را منتشر کنند یا خدمات موجود را پیدا کنند. بنابراین به عنوان یک مرکز تصفیه متمرکز برای شرکت ها و خدمات آنها عمل می کند.
پشته (Stack) پروتکل سرویس وب
دومین روش بررسی معماری وب سرویس بررسی پشته پروتکل سرویس وب است. پشته هنوز در حال تکامل است ، اما در حال حاضر دارای چهار لایه اصلی است.
حمل و نقل خدمات: این لایه وظیفه انتقال پیام بین برنامه ها را بر عهده دارد. در حال حاضر ، این لایه شامل Hyper Text Transport Protocol (HTTP) ، Simple Mail Transfer Protocol (SMTP) ، File Transfer Protocol (FTP) و پروتکل های جدیدتری مانند Blocks Extensible Exchange Protocol (BEEP) است.
پیام رسانی XML : این لایه وظیفه رمزگذاری پیام ها در قالب XML مشترک را دارد تا پیام ها در هر دو انتها قابل فهم باشند. در حال حاضر ، این لایه شامل XML-RPC و SOAP است.
شرح خدمات: این لایه وظیفه توصیف رابط عمومی برای یک وب سرویس خاص را دارد. در حال حاضر ، شرح خدمات از طریق زبان توصیف سرویس وب (WSDL) انجام می شود.
کشف سرویس: این لایه وظیفه متمرکز کردن خدمات در یک رجیستری مشترک و ارائه عملکرد انتشار / یافتن آسان را دارد. در حال حاضر ، کشف سرویس از طریق توصیف جهانی ، کشف و یکپارچه سازی (UDDI) انجام می شود.
با تکامل سرویس های وب ، ممکن است لایه های اضافی اضافه شده و فناوری های اضافی به هر لایه اضافه شوند.
استانداردهای مورد استفاده در Web Service ها
هدف اصلی وب سرویسها ایجاد راه ارتباطی میان سرور و کلاینت بر اساس استانداردهای مشخص است. برای اینکه این رابط ها، عملکردی یکسان در سیستمهای مختلف داشته باشند، باید از این استانداردها پیروی کنند. این رابطها از پروتکلهای استاندارد پرکاربرد در دنیای وب پیروی میکنند. این پروتکلها عبارتند از :
- (XML (eXtensible Markup Language : زبان XML نوعی زبان نشانه گذاری قابل گسترش است. از این زبان به منظور انتقال اطلاعات به صورت متن در بین وب سرویسها استفاده میشود.
- (SOAP (Simple Object Access Protocol : روشی برای انتقال اطلاعات در وب سرویسها است که از استانداردهای زیادی پیروی میکند. این پروتکل برای انتقال اطلاعات با سطح امنیتی بالا مناسب است و کاملا قابل اطمینان میباشد. پیاده سازی وب سرویسهای مبتنی بر پروتکل SOAP از پیچیدگی بیشتری برخوردارند. استفاده از این پروتکل در سرویسهای توزیع شده (distributed systems) کاربرد بیشتری دارد.
- (WSDL (Web Service Description Language : به منظور استاندارد سازی انتقال اطلاعات در وب سرویسها ایجاد و توسعه داده شد. همه رابط هایی که از این استاندارد استفاده میکنند، دارای یک فایل XML هستند که در آن روش به کارگیری این پروتکل شرح داده شده است. این استاندارد روش ارتباط بین وب سرویس و کلاینت را مشخص می کند.
- (UDDI (Universal Description, Discovery and Integration : این استاندارد امکان معرفی و ثبت وب سرویسها را برای برنامه نویسان و شرکتها فراهم میکند. این پروتکل یک فایل XML است که وب سرویسها به منظور اتصال به یکدیگر از طریق آن تعیین مکان میشوند. به عبارتی دیگر UDDI فهرستی از وب سرویسها است که در آن نوع و نحوه دسترسی آنها مشخص شده است.
وبسرویسها (Web Service) دقیقاً چه کاری انجام میدهند؟
بالاتر با تعریف وب سرویس و ساختار آن آشنا شدید. در ادامه مهمترین کاربردهای وب سرویس را بهطور خلاصه توضیح دادهایم:
وبسرویس به اپلیکیشنهای مختلف این اجازه را میدهد که همۀ اطلاعات را در چند قالب استاندارد مثل JSON یا XML منتقل کنند. این قابلیت به نرمافزارهای مختلف این امکان را میدهد که فارغ از پلتفرم و زبان برنامهنویسی، اطلاعات را ارسال، دریافت و پردازش کنند.
با استفاده از وب سرویسها، ادغام سرویسهای خدماتی و اپلیکیشنهای مختلف، خیلی سادهتر از قبل خواهد شد. یک وبسایت فروشگاه اینترنتی را تصور کنید که یک محصول از آن خریداری میکنید.
این فروشگاه اینترنتی برای بررسی موجودی انبار، دریافت پول از شما در درگاه پرداخت یا حتی رهگیری مرسوله در فرآِیند توزیع و اطلاع دادن موقعیت مکانی بسته به شما، در همه و همه، از وبسرویسها استفاده میکند.
حالا خرید کردن از این فروشگاه را بدون وجود وب سرویسها تصور کنید! خیلی سخت میشد! نه؟!
نرمافزارهای مختلف با استفاده از وب سرویسها میتوانند خدمات مورد نیاز خود را پیدا کرده و بهشکل ریموت (از راه دور) آنها را فراخوانی کنند؛ که این جستجو و فراخوانی میتواند بهشکل تلفیقی از چند ارائهدهنده متفاوت باشد.
یعنی اپلیکیشنها میتوانند چندین درخواست متفاوت برای خدمات مختلف به وب سرویسها ارسال کنند و اطلاعات دریافتی را بهشکل تجمیعی ارائه کنند.
در همان مثال فروشگاه اینترنتی، بهروزرسانی اطلاعات پرداخت شما برای خرید محصول و رهگیری لحظهای بسته هر دو ممکن است در یک صفحه به شما نمایش داده شود؛ در حالی که هر کدام از این اطلاعات از یک وبسرویس و طی درخواست جداگانه دریافت شده است.
وقتی صحبت از وقت و هزینه باشد، وبسرویس باز هم به کمک ما میآید! وب سرویس، سیستمهای بزرگ و پیچیده را به خدماتی کوچکتر و سادهتر تقسیم میکند.
وقتی اپلیکیشن شما نیاز به چند خدمت تحت وب دارد، هر کدام از این خدمتها را میتواند از یک ارائهدهنده در وب سرویس بگیرد و با ادغام آنها، بارها و بارها از کامپوننتهای موجود و کوچک استفاده کند؛ بدون این که نیازی به توسعه و راهاندازی سیستم اختصاصی یا یک نرمافزار برای رفع آن نیازها باشد.
وب سرویسها همچنین قابلیت نسخهسازی دارند. یعنی حتی با بهینهسازیهای مختلفی که ممکن است اتفاق بیفتد، وبسرویس میتواند برنامۀ شما را به همان نسخۀ قبلی که عملکرد خوبی داشته متصل کند.
نتیجه گیری
Web service یک سیستم نرم افزاری برای پشتیبانی از تعامل بین دستگاه و ماشین در شبکه است. وب سرویسها از طریق UDDI قابل جستجو هستند و پلتفرم اولیه وب سرویس HTTP و XML است. امروزه بیشتر کسب و کارها مبتنی بر وب برای ارائه خدمات بیشتر به مشتریان خود به نرم افزارهای مبتنی بر Web service روی آوردهاند.
بدون دیدگاه