افرادی که در زمینه نرم افزار، طراحی وب سایت و برنامه نویسی فعالیت میکنند، احتمالا با مفهوم وب سرویس آشنا هستند. پاسخ وب سرویس چیست در یک جملهی ساده چنین است: ارتباط بین دو دستگاه از طریق شبکه یا همان (Client-Server) وب سرویس نام دارد.
برای توضیح کاملتر می توان گفت، وب سرویس یک حالت ارتباطی است، که شامل دو دستگاه الکترونیکی (گیرنده-سرور) از طریق یک شبکه است؛ که به آن سرویس اپلیکیشن نیز گفته میشود.
این یک برنامه نرم افزاری مبتنی بر وب است که اطلاعات را با سایر برنامههای وب تبادل میکند. در این مقاله به شما خواهیم گفت وب سرویس چیست، چگونه کار میکند و در ادامه با انواع آن آشنا خواهیم شد.
web service چیست؟
اینترنت اتصال جهانی صدها هزار کامپیوتر با انواع مختلف می باشد، که به چندین شبکه تعلق دارند. خدمات وب بر اساس استانداردهای باز مانند XML، HTTP ارائه می شود؛ بنابراین مستقل از سیستم عامل ها و زبان های برنامه نویسی بک اند عمل می کنند. خدمات وب را از طریق اینترنت می توان منتشر کرد تا توسط سایر برنامه های کاربردی وب وطراحی وب سایت استفاده شود.
در شبکه جهانی وب، وب سرویس یک روش استاندارد، برای انتشار پیام ها بین برنامه های کاربردی مشتری و سرور است. وب سرویس یک ماژول نرم افزاری است که برای انجام مجموعه خاصی از عملکردها استفاده می شود.
وب سرویس مجموعه ای از پروتکل ها و استانداردهای باز است که امکان تبادل دیتاها بین برنامه ها یا سیستم های مختلف را فراهم می کند. خدمات وب می تواند توسط برنامه های نرم افزاری مختلف برای تبادل اطلاعات از طریق شبکه های کامپیوتری مانند اینترنت به روشی مشابه برای ارتباطات روی یک کامپیوتر منفرد استفاده شود.
خدمات وب این مزیت را دارند که به برنامههای توسعهیافته به زبانهای مختلف اجازه میدهند تا با تبادل دیتاها از طریق یک وب سرویس بین مشتری و سرور، با یکدیگر ارتباط برقرار کنند. یک سرویس گیرنده با ارسال یک درخواست XML، یک سرویس وب را فراخوانی می کند، که سرویس با یک پاسخ XML پاسخ می دهد.
وب سرویس ها چگونه کار می کنند؟
وب سرویس بر اساس درخواست (Request) و پاسخ به درخواست (Response) عمل می کند. برای درک بهتر به این مثال دقت کنید. فرض کنید شما می خواهید یک وب سایت ورزشی را جستجو کنید. ابتدا شما بروزر را باز می کنید و عبارت دلخواه خود را سرچ میکنید، و در نهایت وب سایت موردنظر را مشاهده می کنید. اما در این حین چه اتفاقی می افتد؟ چه عملیاتی صورت می گیرد تا شما از وب سایت دیدن کنید؟
وب سرویس ها با هر یک از زبان های برنامه نویسی وب می توانند ارتباط بگیرند. ولی این درخواست ها معمولا به صورت Xml (زبان نشانه گذاری توسعه پذیر) به وب سرویس اعلام می شوند. این دیتاهایی که بین مشتری و سرور رد و بدل می شود که همان XML است، مهمترین بخش طراحی وب سرویس است. فراخوانی رویه از راه دور همان چیزی است که برای ایجاد این درخواست ها استفاده می شود.
تماسها با روشهایی که توسط وب سرویس مربوطه میزبانی میشوند، به عنوان تماسهای رویه از راه دور (RPC) شناخته میشوند. در نتیجه، زمانی که برنامه ها با یکدیگر ارتباط برقرار می کنند، این کار را با استفاده از XML انجام می دهند. این یک پلت فرم مشترک برای برنامه های کاربردی نوشته شده در زبان های برنامه نویسی مختلف ایجاد می کند تا با یکدیگر ارتباط برقرار کنند.
پيشنهاد سیتی سایت: سرور چیست
ویژگی web serviceها
همه خدمات وب دارای ویژگی هایی هستند. در بخش زیر به برخی از مزایا و ویژگی های وب سرویس ها خواهیم پرداخت.
۱- استفاده مجدد از کامپوننت های نرم افزاری
یک کامپوننت بخشی از کد برنامه نرم افزاری است که یک کار مستقل را در سیستم انجام می دهد. این می تواند خود یک ماژول کوچک یا زیر سیستم باشد. طراحی و ساخت نرم افزار با قابلیت استفاده مجدد رویکردی در طراحی و ساخت است که سعی بر آن دارد که استفاده مجدد از مولفه های نرم افزاری موجود را به حداکثر برساند.
یک مزیت بدیهی این رویکرد این است که هزینه های کلی طراحی و ساخت باید کاهش یابد. با این وجود تعیین کمیت کاهش های هزینه دشوار است در بعضی موارد هزینه های طراحی و ساخت ممکن است به طور قابل توجه کاهش پیدا نکند.
۲- اتصال به نرم افزارهای موجود
وب سرویس ها می توانند با یک تکنیک مشخص دیتا ها و اطلاعات اپلیکیشن های مختلف را به هم پیوند دهند، و از این طریق مشکلات موجود در این همکاری ها را برطرف کنند.
اپلیکیشن های مختلف با پلت فرم های مختلف می توانند به وسیله وب سرویس ها با یکدیگر تبادل اطلاعات کنند. وب سرویس ها سه جزء اولیه در پلتفرم خود دارند: SOAP، WSDL و UDDI
معماریهای Web service
همه ی نرم افزار ها و وب اپلیکیشن ها و وب سایت ها دارای یک ساختار و معماری منحصر به خودشان هستند؛ و معماری نرم افزار ها از ارکان اصلی هر نرم افزاری است. بنابراین، هر فریم ورک به نوعی معماری نیاز دارد تا مطمئن شود که کل فریم ورک به طور مشابه در وب سرویسها مطابق دلخواه عمل میکند.
معماری وب سرویس، چگونگی نمونه سازی عناصر و پیاده سازی عملیات را به شیوه ای متقابل توضیح می دهد. معماری خدمات وب شامل سه بخش متمایز است:
- روش فراخوانی از راه دور
- معماری سرویس گرا
- معماری رِست
۱- روش فراخوانی از راه دور
روش فراخوانی از راه دور (RPC) که مخفف کلمه ی (Remote Procedure Call) می باشد، پروتکلی است که در صورت استفاده از آن، یک نرم افزار می تواند یک سرویس را از نرم افزاری دیگر در یک سیستم به وسیله تابعی درخواست کند. این به این معناست که، اگر یک برنامه در یک سیستمی در حال اجرا باشد، اجازه می دهد رویه ای را روی سیستم دیگر فراخوانی کند، بی آنکه متوجه شود این رویه از روی سیستم دیگری در حال اجرا است.
به عبارتی روش فراخوانی از راه دور، بین نرم افزار های مختلف در یک شبکه ارتباط برقرار می کند، بدون آنکه جزئیات را درک کند. همچنین پروتکل RPC نوعی ارتباط بین کلاینت و سرور است که از تابع برای فراخوانی استفاده می کند. این تکنیک اولین بار توسط نلسون در سال 1976 معرفی شد.
۲- معماری سرویس گرا
معماری سرویس گرا (SOA) که مخفف کلمه ی (Service oriented Architecture) می باشد، نوعی از طراحی نرم افزاری است، که در تولید و ادغام برنامه های سازمانی مورد استفاده قرار می گیرد. این معماری سرویس گرا به طور مستقل و خود توصیف برای ارائه ی توانمندی های سازمان، عمل می کند.
از جمله ویژگی های این معماری سرویس گرا می توان به قابلیت ساخت سیستم های ترکیبی، انعطاف پذیری بالا در مقابل تغییرات فناوری، افزایش تعامل پذیری سازمان ها، ارائه سرویس با واسطه های مختلف و برخی موارد دیگر اشاره کرد.
۳- معماری رِست
معماری رِست (REST) مخفف کلمه ی (Representational State Transfer) می باشد؛ و در سال 1380 شمسی توسط روی فیلدینگ و گروهی از توسعه دهندگان معرفی شد. معماری REST مجموعه ای از قواعد و قوانینی است که جهت رد و بدل کردن اطلاعات در بستر شبکه ارتباطی صورت می گیرد؛ به عبارتی موجب ارتباط بین دو سیستم می شود.
برای برقراری این ارتباط، معماری رِست از پروتکل های مختلفی استفاده می کند؛ و یکی از این پروتکل ها HTTP می باشد. این سبک های معماری معمولا در اپلیکیشن ها و نرم افزارهایی که تحت وب هستند، استفاده می شود.
استانداردهای مورد استفاده (پروتکل وب سرویس)
در این بخش از مقاله قصد داریم به معرفی استاندارد های مورد استفاده وب یا همان پروتکل وب سرویس بپردازیم. همانطور که خواندیم، وب سرویس نرم افزار یا قطعه کدهایی است که در بستر وب کار می کند، و با پروتکل ها به ارسال و دریافت دیتا ها با نرم افزار های دیگر می پردازد.
همه ی پروتکل ها نرم افزارها را به وب سرویس متصل می کنند، اما معمولا کاربرد آنها با یکدیگر تفاوت دارد. علاوه بر این، هر وب سرویس استاندارد های مختلفی را پشتیبانی می کند. در بخش بعدی شما را با استاندارد های انتقال دهنده اطلاعات و پروتکل وب سرویس آشنا خواهیم کرد.
۱- BEEP
یکی از جایگزین های امیدوارکننده برای HTTP یا گواهینامه SSL، پروتکل تبادل توسعه پذیر بلوک (BEEP) است. BEEP یک چارچوب جدید IETF از بهترین شیوه ها برای ساخت پروتکل های جدید است.
پيشنهاد سیتی سایت: SSL چیست
به طور BEEP به طور مستقیم بر روی TCP لایه بندی شده است و شامل تعدادی ویژگی داخلی از جمله، پروتکل دست دادن اولیه، احراز هویت، امنیت و مدیریت خطا می باشد. با استفاده از BEEP می توان پروتکل های جدیدی را برای برنامه های مختلف از جمله پیام رسانی فوری، انتقال فایل، پخش محتوا و مدیریت شبکه ایجاد کرد.
۲- Hessian
Hessian یک پروتکل سرویس وب باینری است که خدمات وب را بدون نیاز به یک چارچوب بزرگ و بدون یادگیری مجموعه جدیدی از پروتکلها قابل استفاده میکند. از آنجا که یک پروتکل باینری است، برای ارسال داده های باینری بدون نیاز به گسترش پروتکل با پیوست ها مناسب است.
اگرچه Hessian اساساً برای سرویس های وب در نظر گرفته شده است، اما می توان آن را برای ترافیک TCP با استفاده از کلاس های HessianInput و HessianOutput در پیاده سازی جاوا Caucho تطبیق داد.
۳- Internet Open Trading Protocol
IOTP چارچوبی است که از تجارت در اینترنت با ارائه یک مدل تجاری آشنا و قابلیت همکاری جهانی پشتیبانی می کند. IOTP تلاش می کند، خرید و فروش و تجارت در دنیای واقعی را مجازی سازی کند. IOTP برای ترویج تجارت بین کسب و کار در اینترنت و تسهیل خرید آنلاین برای مصرف کنندگان طراحی شده است.
از تجارت الکترونیک در سراسر سایتها پشتیبانی میشود، مانند مواردی که سایتهای اینترنتی مختلف بخشهایی از تراکنشهای یکسان را انجام میدهند، مانند کاتالوگها و سبد خرید، کنترلکنندههای پرداخت، تحویل محصول و پشتیبانی مشتری.
۴- E-Business XML
EbXML (Electronic Business XML یا E-business XML) پروژه ای برای استفاده از زبان نشانه گذاری توسعه پذیر (XML) برای استاندارد کردن تبادل امن داده های تجاری است.
EbXML آخرین بار در سال 2007 به روز شد و در حال حاضر در نسخه 3.0 است. بنابراین، XML یک روش اصلی و استاندارد برای وب سرویس ها می باشد.
۵- JSON-RPC
JSON RPC یک پروتکل فراخوانی از راه دور است که در JSON کد گذاری می شود. پروتکل JSON این امکان را می دهد که پیام ها از طریق شبکه ها و API ها ارسال شوند و ارتباط بین برنامه ها پیاده سازی شود.
JSON یک فرمت پیام رسانی سبک است، که برای انتقال سریعتر اطلاعات مناسب می باشد. به همین دلیل است که در شرایط امروزی مورد استفاده قرار می گیرد.
۶- JSON-WSP
JSON-WSP یک پروتکل سرویس وب است که از JSON برای توضیحات سرویس، درخواست ها و پاسخ ها استفاده می کند. این پروتکل از JSON-RPC الهام میگیرد. فرمت توضیحات برای JSON-WSP همان هدفی را دارد که WSDL برای SOAP یا IDL برای CORBA دارد. که توصیف انواع و روش های مورد استفاده در یک سرویس معین است.
همچنین روابط بین نوع (یعنی انواع تودرتو) را توصیف می کند. همچنین تعریف می کند، که کدام نوع به عنوان آرگومان متد مورد انتظار است و کاربر می تواند انتظار داشته باشد کدام نوع را به عنوان مقادیر بازگشتی متد دریافت کند.
۷- UDDI
UDDI مخفف عبارت (Universal Description, Discovery, and Integration) می باشد، که توسط مایکروسافت، IBM و Ariba در سپتامبر 2000 معرفی شد. UDDI یک استاندارد مبتنی بر XML برای توصیف، انتشار و یافتن خدمات وب است.
این پروتکل یک چارچوب باز و مستقل از پلتفرم می باشد. UDDI می تواند از طریق SOAP، CORBA، پروتکل جاوا RMI ارتباط برقرار کند. همچنین این پروتکل از زبان تعریف وب سرویس (WSDL) برای توصیف رابط های وب سرویس ها استفاده می کند.
۸- وب سرویس SOAP
SOAP یک پروتکل پیام رسانی برای تبادل اطلاعات بین دو کامپیوتر مبتنی بر XML از طریق اینترنت است. پیامهای SOAP صرفاً در XML نوشته میشوند، به همین دلیل است که آنها مستقل از پلتفرم و زبان هستند.
یک پیام SOAP شامل مواردی مانند، ( پاکت نامه برای نمایش شروع و پایان پیام، نمایش عنوانی که شامل ویژگی هایی است که برای پردازش پیام استفاده می شود، بدنه ای که دیتا های XML ارسالی را نگه می دارد و نقصی که در هنگام پردازش پیام های خطا ارائه می دهد ) می باشد.
۹- WPS
راهاندازی محافظت شده از Wifi (WPS) یک استاندارد امنیتی شبکه بیسیم است که سعی میکند ارتباط بین روتر و دستگاههای بیسیم را به روشی سریعتر و آسانتر برقرار کند. WPS فقط برای شبکههای بیسیمی کار میکند که از گذرواژهای استفاده میکنند که با پروتکلهای امنیتی Wifi Protected Access Personal (WPA) یا Wifi Protected Access2 (WPA2) محافظت میشود.
WPS روی شبکه های بیسیم که از امنیت نامطلوب Wired Equivalent Privacy (WEP) استفاده می کنند، کار نمی کند، که می تواند به راحتی توسط هر هکری با مهارت های اولیه شکسته شود.
۱۰- WSFL
زبان جریان خدمات وب (WSFL) زبانی برای توصیف ترکیبات وب سرویس می باشد. WSFL دو نوع ترکیب خدمات وب را در نظر می گیرد:
- الگوی استفاده مناسب از مجموعه ای از خدمات وب، به گونه ای که ترکیب حاصل، چگونگی دستیابی به یک هدف تجاری خاص را شرح دهد. به طور معمول، نتیجه توصیف یک فرآیند تجاری است.
- الگوی تعامل مجموعه ای از خدمات وب. در این مورد، نتیجه توصیفی از تعاملات کلی شریک است.
WSFL از WSDL برای توصیف رابط های سرویس و اتصالات پروتکل آنها استفاده می کند. WSFL همچنین به زبان پایانی خدمات وب (WSEL) متکی است.
۱۱- WSCL
این سند زبان گفتگوی خدمات وب را مشخص می کند. WSCL اجازه می دهد تا رابط های انتزاعی سرویس های وب، یعنی مکالمات سطح کسب و کار یا فرآیندهای عمومی که توسط یک سرویس وب پشتیبانی می شوند، تعریف شوند.
WSCL اسناد XML در حال مبادله و توالی مجاز این مبادلات اسناد را مشخص می کند. تعاریف مکالمه WSCL خود اسناد XML هستند و بنابراین می توانند توسط زیرساخت های خدمات وب و ابزارهای توسعه تفسیر شوند. WSCL ممکن است همراه با سایر زبان های توصیف سرویس مانند WSDL استفاده شود.
۱۲- WSDL
WSDL یک فرمت XML برای توصیف خدمات شبکه به عنوان مجموعهای از نقاط پایانی است، که بر روی پیام هایی که حاوی اطلاعات سند محور یا رویه محور هستند، کار میکنند. عملیات و پیام ها به صورت انتزاعی توصیف می شوند و سپس به یک پروتکل شبکه مشخص و قالب پیام برای تعریف یک نقطه پایانی متصل می شوند.
WSDL قابل گسترش است تا امکان توضیح نقاط پایانی و پیام های آنها را بدون توجه به فرمت های پیام یا پروتکل های شبکه مورد استفاده برای برقراری ارتباط فراهم کند.
۱۳- XINS
XINS یک چارچوب برنامه کاربردی وب است و به گونه ای طراحی شده است که بتواند برنامه های تحت وب را بر اساس مشخصات تعریف شده ایجاد کند.
XINS بر اساس یک روش ساده برای ارسال درخواست (با استفاده از URL) و رسیدگی به نتیجه عمل می کند. در واقع فرمت ساده XML است. XINS کد جاوا را برای فراخوانی برنامه وب و توسعه آن تولید می کند. همچنین تشخیص می دهد که آیا پارامترها مطابق با مشخصات هستند یا خیر.
۱۴- XML-RPC
XML-RPC یکی از سادهترین و بیخطرترین روشهای خدمات وب است که فراخوانی رویهها را برای رایانهها در رایانههای دیگر آسان میکند. XML-RPC به برنامه ها اجازه می دهد تا فراخوانی عملکرد یا رویه را در یک شبکه انجام دهند.
XML-RPC از پروتکل HTTP برای انتقال اطلاعات از یک کامپیوتر مشتری به یک کامپیوتر سرور استفاده می کند. همچنین XML-RPC یک نام رویه و پارامترها را در درخواست XML مشخص می کند و سرور یک خطا یا یک پاسخ را در پاسخ XML برمی گرداند.
این سرویس گیرنده، هیچ مفهومی از اشیاء و مکانیسمی برای گنجاندن اطلاعاتی که از دیگر واژگان XML استفاده می کند ندارد. با این حال، با XML-RPC و وب سرویسها، وب به مجموعهای از اتصالات رویهای تبدیل میشود، که در آن رایانهها اطلاعات را در مسیرهای کاملاً محدود مبادله میکنند.
نقش وب سرویس در وب اپلیکیشنها
خدمات وب توسط نرمافزارها و سرویسهای مختلفی ارائه میشوند که افراد را قادر به تعامل و ارتباط در سراسر اینترنت میکنند. وب سرویس ها معمولاً از زبان های مختلفی تشکیل شده اند و همچنان می توانند با یکدیگر ارتباط برقرار کنند. یک سرویس گیرنده درخواستی را به یک وب سرویس می فرستد، که سپس با یک پاسخ XML پاسخ می دهد.
همچنین به توسعه دهندگان یا کاربران اجازه می دهد تا با استفاده از زبان های نشانه گذاری مختلف مانند HTML، XML و سایر موارد با یکدیگر ارتباط برقرار کنند. بنابراین، هنگامی که پلت فرم های مختلف امکان دسترسی به وب از طریق بروزر ها را دارند، می توانند با هم تعامل کنند. ار این جهت وب اپلیکیشن توسعه یافت.
وب اپلیکیشن ها نرم افزارهایی تحت وب می باشند، که با استاندارد های وب همخوانی دارند. در صورت استفاده از وب سرویس ها، عملکرد وب اپلیکیشن ها نیز گسترش می یابد. اما نکته ای که وجود دارد این است که، وب اپلیکیشنها وب سایتهای پویایی هستند که به طور مداوم نیاز به برقراری ارتباط با پایگاه دادهها یا خدمات پشتیبانی برای ارائه به کاربران را دارند. به طور مثال وب سایت آمازون نمونه ای از برنامه های وب می باشد.
وب سرویسها برنامهها را قادر میسازند تا در یک محیط بیطرف و مستقل از زبان، با یکدیگر از طریق وب تعامل داشته باشند. در یک سناریوی معمولی خدمات وب، یک برنامه کاربردی تجاری با استفاده از پروتکل HTTP درخواستی را به یک سرویس در یک URL معین ارسال می کند. سرویس درخواست را دریافت می کند، آن را پردازش می کند و پاسخی را برمی گرداند.
نتیجه گیری
همانطور که در این مقاله بررسی کردیم، وب سرویس یک رسانه استاندارد شده برای انتشار ارتباط بین برنامه های کاربردی سرویس گیرنده و سرور در WWW (وب جهانی) است. وب سرویس یک ماژول نرم افزاری است که برای انجام مجموعه خاصی از وظایف طراحی شده است.
وب سرویس ها انواع مختلفی دارند. برخی از انواع آن می توان به XML-RPC ، UDDI، وب سرویس SOAP و برخی موارد دیگر اشاره کرد. همچنین وب سرویس ها ویژگی های منحصر به خودشان را دارند.
به طور مثال: وب سرویس ها مستقل هستند، خود توصیفی هستند، دسترسی برنامه ای را فراهم می کنند و خیلی موارد دیگر که در مقاله به آن اشاره شد.