پادیوم بلاگ
وب‌سرویس چیست؟

وب‌سرویس چیست؟

رضا دهقان
تکنولوژی ، مقالات

پاسخ کوتاه این سوال را می‌توان به این صورت بیان کرد:

وب‌سرویس یک راهکار استانداردسازی‌شده برای تبادل اطلاعات بین کلاینت‌ها و سرور اپلیکیشن‌ها است.

وب‌سرویس در واقع یک ماژول نرم‌افزاری است که برای انجام یک‌سری از اعمال طراحی شده است. کلاینت یک درخواست به وب‌سرویس می‌دهد و وب‌سرویس با توجه به دستورالعمل‌های خود و پس از انجام اقدامات لازم، پاسخ کلاینت را ارسال می‌کند. وب‌سرویس‌ها می‌توانند از بسترهای ارتباطی مانند اینترنت برای برای تبادل اطلاعات بین نرم‌افزارهای مختلف با زبان‌های گوناگون بهره ببرند. هر نرم‌افزار، اپلیکیشن و کلاینتی که از از پروتکل‌های استاندارد وب (HTTP یا HTTPS) برای ارتباط، ترجمه و تبادل پیام‌هایی استفاده می‌کند که اغلب در قالب XML هستند، یک وب‌سرویس به شمار می‌رود.

کاربردهای وب‌سرویس:

  • دسترسی به آن از طریق اینترنت و شبکه های اینترنتی امکان‌پذیر است.
  • استفاده پروتکل XML برای تبادل پیام که استانداردسازی شده است.
  • مستقل از نوع سیستم عامل و زبان برنامه نویسی است.
  • به دلیل استفاده از XML، نیاز به تشریح و توضیح ندارد.
  • مکان‌یابی آن ساده است.

اجزای تشکیل‌دهنده وب‌سرویس

XML و HTTP اصلی‌ترین اجزای تشکیل‌دهنده وب‌سرویس هستند. قسمت‌هایی که در ادامه به توضیح آن می‌پردازیم، توسط بیشتر وب‌سرویس‌ها استفاده می‌شوند:

SOAP

SOAP مخفف عبارت Simple Object Access Protocol بوده و یک پروتکل تبادل پیام به شمار می‌رود. در این پروتکل فایل‌های XML در قالب SOAP ارسال می‌شوند. در این پروتکل یک سند XML به هر پیام ضمیمه می‌شود. در این شرایط تنها ساختار XML از یک الگی خاص پیروی می‌کند، نه محتوای پیام. و همه پیام‌ها بر بستر پروتکل HTTP ارسال می‌شوند.

یک المان اصلی به نام element در هر سند SOAP وجود دارد. در یک سند XML، المان اصلی در واقع اولین المان است. Envelope یا پیام به دو قسمت تقسیم می‌شود، هدر و بدنه. داده مسیریابی یا در واقع اطلاعاتی که به سند XML کمک می‌کند مسیر خود را به سمت کلاینت پیدا کند، درون هدر قرار دارد. پیام اصلی درون بدنه قرار گرفته است.

UDDI (Universal Description, Discovery, and Integration)

UDDI یک استاندارد برای تشخیص، انتشار و کشف سرویس‌های آنلاین یک سرویس‌دهنده است. UDDI تنظیماتی را ارائه می‌کند که به میزبانی داده‌ها توسط وب‌سرویس‌ها کمک می‌کند. این پروتکل یک مخزن حاوی فایل‌های WSDL ارائه می‌کند که کلاینت به آن‌ها برای یادگیری عمل‌های یک وب‌سرویس نیاز دارد. در نتیجه اپلیکیشن کلاینت به کل UDDI دسترسی دارد. UDDI مانند دفترچه تلفنی که اسم، شماره و آدرس یک شخص خاص را دارد، اطلاعات ضروری یک سرویس را در خود جای داده است.

WSDL (Web Services Description Language)

اگر نتوانیم وب‌سرویس را پیدا کنیم، نمی‌توانیم از آن استفاده کنیم. کلاینتی که درخواستی را ارسال می‌کند باید از محل وب‌سرویس آگاه باشد. همچنین اپلیکیشن کلاینت باید بداند که سرویس چه‌کار می‌کند تا به وب‌سرویس درست درخواست بفرستد. WSDLها فایل‌هایی مبتنی بر XML هستند که برای اپلیکیشن کلاینت کارهای وب‌سرویس را شرح می‌دهد. به این ترتیب کلاینت متوجه می‌شود که وب‌سرویس کجاست و چه خدماتی ارائه می‌دهد.

نحوه کار وب‌سرویس

کلاینت یک سری از درخواست‌ها را به سروری که وب‌سرویس در آن قرار دارد، ارسال می‌کند. از RPCها (Remote procedure calls) برای ارسال این درخواست‌ها استفاده می‌شود. فراخوانی متدهایی که توسط وب‌سرویس مربوطه میزبانی می‌شوند را با نام RPC می‌شناسند. داده‌های که بین کلاینت سرور تبادل میشود، مهم‌ترین بخش طراحی یک وب‌سرویس است. XML در واقع یک زبان ساده میانه است که توسط زبان‌های مختلف برنامه‌نویسی قابل درک است. XML را می‌توان در مقابل HTML قرار داد. در نتیجه وقتی برنامه‌های مختلف می‌خواهند با یکدیگر ارتباط برقرار کنند، از XML استفاده می‌کنند. 

ویژگی‌های یک وب‌سرویس

مبتنی بر XML

تمام اطلاعات لازم به وسیله فتیل‌های XML تبادل می‌شوند. به این ترتیب نیازی به سیستم عامل یا شبکه‌سازی نیست.

ارتباط آسان

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

قابلیت هم‌زمان یا نا‌هم‌زمان بودن

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

پشتیبانی از RPC) Supports Remote Procedure Call)

مشتریان می‌توانند از پروتکل مبتنی بر XML برای فراخوانی فرایند‌ها، فانکش‌ها و متدها در سیستم‌های ریموتی که از وب‌سرویس استفاده می کنند، بهره ببرند. یک وب‌سرویس باید از فریم‌ورک‌های ورودی و خروجی که توسط سیستم‌های ریموت ارسال می‌شوند، پشتیبانی کند.

پشتیبانی از تبادل اسناد

یکی از بهترین ویژگی‌های XML راهکار ساده آن برای ارائه و تبادل داده و اسناد پیچیده است. در واقع وب‌سرویس از انتقال شفاف اسناد برای پیاده‌سازی یکپارچگی کسب‌و‌کار پشتیبانی می‌کند؛ مهم نیست که این اسناد یک خط آدرس باشد یا یک کتاب بزرگ از داده‌های مختلف.

مزایای وب‌سرویس

استفاده از وب‌سرویس مزایای زیر را به همراه دارد:

  • ارائه سرویس‌ها بر بستر اینترنت
  • قابلیت تبادل اطلاعات بین اپلیکیشن‌های مختلف با زبان‌های گوناگون
  • هزینه بسیار پایین تبادل اطلاعات
  • استفاده از یک پروتکل استاندارد که همه آن را درک می‌کنند
  • قابلیت استفاده هم‌زمان توسط چندین کاربر

وب‌سرویس‌ها صنعت دیجیتال را متحول کرده‌اند

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