وب سرویسها (Web Service) یکی از کلیدیترین عناصر اینترنت هستند. اینترنت، یک اتصال جهانی است که از هزاران و میلیونها دستگاه مختلف که به شبکههای مختلف تعلق دارند، تشکیل شده است. در این شبکهی جهانی، Web Serviceها، یک ماژول نرم افزاری هستند که برای عملکردهای خاصی طراحی شدهاند و پیام بین برنامههای کاربردی سرور و کلاینت را منتشر میکنند. در رایانش ابری، میتوان Web Serviceها را از طریق شبکه پیدا و سپس فراخوانی کرد.
در این مقاله، میخواهیم دربارهی اینکه وب سرویس چه مزایایی دارد و چطور کار میکند صحبت کنیم. در ادامه، به بررسی مزایا و جنبههای مختلف این ابزار فوقالعاده میپردازیم.
وب سرویس چیست؟
در این قسمت، به بررسی این موضوع میپردازیم که وب سرویس چیست؟ Web Service از مجموعهای از پروتکلها و استانداردهای باز که امکان تبادل دادهها بین سیستمها و برنامههای مختلف را فراهم میکنند، تشکیل شده است. شما میتوانید از طریق برنامههای نرم افزاری مختلف، Web Serviceها را بر روی پلتفرمهای مختلف اجرا کرده و از طریق شبکههای کامپیوتری (مثل اینترنت) دادهها را بین سیستمها ارسال کنید.
در دنیای اینترنت، تمام نرم افزارها، فناوریهای ابری و یا اپلیکیشنهای کاربردیای که از پروتکلهای HTTP یا HTTPS برای اتصال به اینترنت و تبادل داده استفاده میکنند را یک وب سرویس در نظر میگیریم.
یکی از مهمترین مزایای Web Serviceها این است که به برنامههای توسعه یافتهای که به زبانهای مختلف نوشته شدهاند، اجازه میدهد تا از طریق یک Web Service، دادهها را بین کلاینت و سرور مجازی ردوبدل کنند. بهطور خلاصه در این فرآیند، کلاینت یک درخواست XML را ارسال میکند تا Web Service را فراخوانی کند. سرویس نیز با یک پاسخ XML، جواب را برمیگرداند.
کاربردهای وب سرویس
- میتوانید از طریق اینترنت یا شبکههای اینترانت به آن دسترسی داشته باشید.
- پروتکل استاندارد پیامرسانی XML است.
- با استفاده از XML قابلیت خود-توصیفی (self-describing) را دارد.
- یک سیستمعامل یا زبان برنامهنویسی مستقل است. میتوانید از رویکرد مکانیابی ساده برای مکانیابی آن استفاده کنید.
اجزای وب سرویس
از اصلیترین و اساسیترین پلتفرمهای وب سرویس میتوان به XML و HTML اشاره کرد. در قسمت زیر، 3 پروتکل وب سرویسهای معمولی را معرفی کردهایم:
SOAP (پروتکل دسترسی آسان به اشیاء)
SOAP مخفف عبارت “Simple Object Access Protocol” و یک پروتکل پیامرسانی مستقل از ترانسپورت است. این پروتکل براساس سیستم ارسال دادههای XML ساخته شده است و در هر پیام، یک سند به نام XML document پیوست میشود. ساختار این سند از یک الگو پیروی میکند و همهچیز از طریق HTML ارسال میشود.
در هر سند SOAP، به یک عنصر ریشه که به عنصر (element) معروف است و اولین عنصر سند است، نیاز دارید. همچنین، envelope در هر سند به دو نیمه تقسیم میشود. هدر در اول سند و بقیهی پیام (پیام واقعی) در بدنهی سند درج میشود. بهعبارتی دیگر، در قسمت هدر، دادههای مسیریابی یا همان اطلاعاتی که سند XML را به سمت کلاینت موردنظر هدایت میکنند، وجود دارد.
UDDI (توصیف جهانی، کشف و ادغام)
UDDI یک استاندارد برای مشخصکردن، انتشار و یافتن ارائه دهندهی سرویس خدمات آنلاین است. با استفاده از این پروتکل، میتوانید از طریق وب سرویس، میزبانی دادهها را انجام دهید. مخزنی که در UDDI وجود دارد، محیطی برای میزبانی فایلهای WSDL است و کلاینتها با استفاده از آن میتوانند فایل WSDL را پیدا کرده تا از خدمات مختلف یک web service مطلع شوند. با استفاده از این قابلیت، اپلیکیشن کلاینت میتواند دسترسی کاملی به UDDI داشته باشد.
رجیستری UDDI را میتوانید شبیه به دفترچه تلفنی که نام، آدرس و شماره تلفن افراد را نگهداری میکند فرض کنید. این پروتکل، اطلاعات موردنیاز سرویسهای آنلاین را نگهداری میکند و برنامهی کلاینت میتواند بفهمد که این سرویسها در کجا قرار دارند.
WSDL (زبان توصیف خدمات وب)
در صورتی که نتوانید یک وب سرویس را پیدا کنید، قاعدتا نمیتوانید از آن استفاده کنید! بهعبارتی دیگر، کلاینتی که پروتکل وب سرویس را فراخوانی میکند باید مکان آن را بداند. از طرف دیگر، برنامهی کلاینت باید بفهمد که web service چه کاری انجام میدهد تا بتواند استاندارد درست را فراخوانی کند. در چنین مواقعی از WSDL استفاده میشود. WSDL یک فایل مبتنی بر XML است که نحوهی تعامل web service با برنامهی کلاینت را توضیح میدهد. اپلیکیشن کلاینت با کمک WSDL میتواند بفهمد که web service کجاست و چطور میتوان از آن استفاده کرد.
وب سرویسها چطور کار میکنند؟
تصویر زیر، نحوهی عملکرد یک پروتکل وب سرویس را به صورت خیلی ساده نشان میدهد. همان طور که در تصویر مشاهده میکنید، کلاینت از درخواستها برای ارسال دنبالهای از فراخوانی web service به سرور استفاده میکند. این سرور، میزبان web service واقعی است.
این درخواستها با فراخوانی رویه از راه دور (RPC) ارسال میشوند. به عنوان مثال، Flipkart یک وب سرویس دارد که قیمت اقلام خرده فروشی وبسایت Flipkart.com را نشان میدهد. فرانت-اند یا لایهی جلویی را میتوان به صورت جاوا یا .Net نوشت. اما برای نوشتن web service دستتان باز است و میتوانید از هر یک از زبانهای برنامه نویسی موجود استفاده کنید.
مهمترین بخش طراحی web service، دادههایی هستند که بین مشتری و کلاینت ردوبدل میشوند. خوبی زبان XML این است که شباهت زیادی با HTML دارد و توسط زبانهای برنامه نویسی دیگر قابل درک است. به همین خاطر، زمانی که برنامهها میخواهند با یکدیگر ارتباط برقرار کنند از XML استفاده میکنند. XML برای اپلیکیشنهای کاربردی نوشته شده به زبانهای مختلف، یک پلتفرم مشترک ایجاد میکند تا بتوانند با یکدیگر ارتباط برقرار کنند.
وب سرویسها برای انتقال دادههای XML بین اپلیکیشنها از SOAP استفاده میکنند. در این رویکرد، دادهها با استفاده از HTTP ارسال میشوند و پیام SOAP شامل دادههایی است که از web service به اپلیکیشن ارسال میشود. تنها چیزی که در پیام SOAP وجود دارد، سند XML است. از آنجایی که محتوا به زبان XML نوشته شده است، اپلیکیشن کلاینت میتواند به هر زبان برنامه نویسیای ایجاد شود.
ویژگیهای وب سرویس
برخی از مهمترین ویژگیهای وب سرویسها عبارتنداز:
-
مبتنی بر XML بودن
در web serviceها، لایهی نمایش اطلاعات و لایهی انتقال رکورد از XML استفاده میکنند. در زمان استفاده از XML نیازی به پلتفرم، سیستم عامل یا شبکه نیست و اپلیکیشنهای مبتنی بر ارائهی وب (offering-based) در سطح متوسط دارای قابلیت همکاری بالایی هستند.
-
وابستگی ضعیف کلاینت به سرور
مشتریان ارائهدهندهی خدمات اینترنت، الزاما بهطور مستقیم با آن ارائهدهندهی خدمات در ارتباط نیستند. ممکن است رابط کاربری پروتکل وب سرویس درطول زمان تغییر کند. این تغییر تاثیری بر روی توانایی کاربر در تعامل با ارائه دهندهی خدمات ندارد. وابستگی قوی به این معنی است که تصمیمات کلاینت و سرور کاملا به هم مرتبطاند و اگر یکی از رابطها تغییر کند، رابط دیگری نیز باید بروزرسانی شود.
اگر میخواهید بدانید api چیست از شما دعوت می کنیم بر روی لینک آبی کلیک کنید.
وابستگی ضعیف به سیستمهای نرم افزاری کمک میکند تا مدیریت و ادغام راحتتری داشته باشند.
-
قابلیت همزمان یا ناهمزمان بودن
به اتصال کلاینت برای اجرای فانکشنها، همزمانی میگویند. زمانی که کلاینت مسدود میشود، باید منتظر بماند تا سرویس قبل از اینکه به فراخوانی همزمان ادامه دهد، عملیات خود را کامل کند. ناهمزمان بودن عملیات به کلاینت کمک میکند تا یک وظیفه را فراخوانی کرده و به کارهای دیگرش ادامه دهد.
نتایج در کلاینتهای ناهمزمان دیرتر دریافت میشوند، اما در کلاینتهای همزمان، نتایج بلافاصله پس از تکمیل سرویس دریافت میشوند. همچنین، کلاینتهای ناهمزمان قابلیت فعالکردن سیستمهای پیوند ضعیف را دارند.
-
استراتژی درشت دانه (Coarse-Grained)
سیستمهای شیگرا مانند جاوا، خدماتشان را از طریق روشهای تکی ارائه میدهند. چنین تکنیکهایی در سطح شرکتی چندان مفید نیستند. برای ساختن یک اپلیکیشن جاوا از ابتدا، باید چندین استراتژی ریزدانه (fine-grained) را توسعه دهید. این استراتژیها با یک ارائهدهندهی rough-grained (توسط خریدار یا سرویس مصرف میشود) ترکیب میشوند.
رابطهای شرکتها باید دارای استراتژی باشند. تولید وب سرویسها، رویکردی آسان برای تعریف سرویسهای درشتدانه است و به دسترسی بهتر به منطق تجاری کمک میکند.
-
پشتیبانی از فراخوانی رویهای ریموت (Remote Procedural Call)
مصرفکنندگان برای فراخوانی رویهها، فانکشنها و روشها بر روی اشیا ریموت با استفاده از web service، میتوانند از یک پروتکل مبتنی بر XML استفاده کنند. یکی از وظایف وب سرویس، پشتیبانی از چارچوب ورودی و خروجی است. این چارچوب توسط سیستمهای ریموت در معرض دید قرار میگیرد.
در چند سال اخیر، با توسعهی مولفهها، استفاده از مولفههای JavaBeans (EJBs) و .NET در استقرار معماری و سازمانی بیشتر از قبل دیده میشود. برخی از تکنیکهای RPC از هر دو مولفه برای دسترسی و تخصیص استفاده میکنند.
تابع وب میتواند با ارائهی خدمات خاص و یا با ترجمهی فراخوانیهای دریافتی به فراخوانی مولفههای EJB یا .NET از قابلیت RPC پشتیبانی کند.
-
پشتیبانی از ردوبدل کردن اسناد
XML برای برقراری ارتباط با دادهها و موجودیتهای پیچیده، از رویکرد سادهای استفاده میکند. رکودها میتوانند به سادگی صحبت با یک آدرس فعلی و یا به پیچیدگی صحبت با یک کتاب کامل باشند. برای سادهسازی ردوبدل کردن بایگانیها از مدیریت وب استفاده میشود.
مزایای وب سرویس چیست؟
برخی از رایجترین مزایای استفاده از وب سرویسها عبارتنداز:
-
قابلیت انتشار فانکشن های تجاری از طریق اینترنت
web service یک مولفهی کد کنترل شده است که از طریق پروتکل HTTP، عملکردهای مشخصی را در اختیار برنامههای کلاینت یا کاربران نهایی قرار میدهد. درنتیجه، کاربران میتوانند در هر کجایی که هستند از طریق اینترنت به این قابلیتها دسترسی داشته باشند. از آنجایی که در حال حاضر اپلیکیشنها از طریق اینترنت در دسترس عموم قرار دارند، اهمیت web serviceها روزبهروز بیشتر میشود.
-
قابلیت همکاری
با استفاده از پروتکل وب سرویسها، برنامههای مختلف میتوانند با یکدیگر ارتباط برقرار کرده و از اطلاعات و خدمات یکدیگر استفاده کنند. همچنین، این برنامهها میتوانند از web serviceها به نحو خاصی استفاده کنند. به عنوان مثال، یک اپلیکیشن .NET و Java web administrations میتوانند با یکدیگر ارتباط برقرار کنند. از مدیریت وب برای اضافه کردن قابلیتهای کاربردی و نوآوری به یک اپلیکیشن استفاده میشود.
-
برقراری ارتباط با هزینهی کم
همانطور که قبلا عنوان کردیم، web service از SOAP بر روی پروتکل HTTP استفاده میکنند. در نتیجه، میتوانید از یک اتصال اینترنتی کم هزینه برای پیادهسازی web service استفاده کنید. برای توسعهی وب سرویس نیز میتوانید علاوه بر SOAP و HTTP، از پروتکلهای ترانسپورت قابل اعتماد مانند FTP (پروتکل انتقال فایل) استفاده کنید.
-
یک پروتکل استاندارد و قابل فهم برای همه
web serviceها برقراری ارتباط را از طریق یک پروتکل صنعتی تعریف شده انجام میدهند. در پشتهی پروتکل این سرویسها، هر چهار لایهی Service Transport، XML Messaging، Service Description و Service Discovery از پروتکلهای کاملا تعریف شده استفاده میکنند.
-
قابلیت استفادهی مجدد
شما میتوانید به صورت هم زمان یک web service را توسط چندین برنامه استفاده کنید.
سوالات متداول
چرا به وب سرویس نیاز داریم؟
اغلب اپلیکیشنهای مبتنی بر وب برای کارکردن با یکدیگر، نیاز به ابزاری برای برقراری ارتباط دارند. از آنجاییکه این اپلیکیشنها معمولا به زبانهای برنامه نویسی مختلفی نوشته میشوند، برقراری ارتباط بینشان کاری دشوار و در برخی مواقع نشدنی است. اینجاست که وب سرویسها میتوانند مشکل گشا باشند. Web service از یک پلتفرم مشترک برای برقراری ارتباط بین اپلیکیشنهای کاربردی که به زبانهای برنامه نویسی مختلف نوشته شدهاند، استفاده میکنند.
آپلود فایل در اینترنت به چه معنی است و از چه پروتکلی برای اینکار استفاده میشود؟
در فرآیند آپلود فایل در اینترنت، فایل موردنظر از کامپیوتر شما به سرور منتقل میشود. پروتکلی که برای این کار استفاده میشود، FTP یا پروتکل انتقال فایل نام دارد. یک اپلیکیشن FTP کلاینت با اپلیکیشن FTP سرور ارتباط برقرار میکند تا به دادهها و خدمات موجود در سرور دسترسی پیدا کند. برای اینکه کاربر بتواند به اپلیکیشن FTP سرور متصل شود، باید به اینترنت متصل شود.
آیا وب سرویسها به امنیت نیاز دارند؟
بله. وب سرویسها باید از سطح امنیتی بالایی نسبت به SSL برخوردار باشند. پلتفرم Entrust Secure Transaction تنها راه برای امنسازی web service است و کمک میکند تا تراکنشها قابل اعتماد باشند و محرمانگی اطلاعات حفظ شود.