وب سرویس (Web Service ) یکی از رایجترین اصطلاحات در دنیای برنامه نویسی است. شاید این سوال برای شما پیش بیاید که وب سرویس چیست؟ و چه کاربردی دارد؟ چه کاربر عادی باشید و چه برنامه نویس، روزانه در حال استفاده از این رابطها هستید. شاید ندانید که دنیای اطراف ما پر از وب سرویسها است. در واقع زمانی که یک بلیط قطار خرید میکنید، اطلاعات بانکی خود را از موبایل بانک دریافت میکنید و... از وب سرویسها استفاده کرده اید. پس اگر میخواهید بیشتر با وب سرویسها آشنا شوید، تماشای ویدئوی زیر را از دست ندهید.
وب سرویس چیست؟
وب سرویس یک نوع رابط برنامه نویسی است که بر بستر وب پیاده سازی میشود. این رابطها با استفاده از پروتکلهای استاندارد مانند http، توابع و مکانیزمهای مختلفی در اختیار ما قرار میدهند تا بتوانیم به تبادل اطلاعات در بین سیستمهای مختلف بپردازیم. به عبارتی دیگر این رابطها ارتباط میان نرم افزار با نرم افزار و کلاینت با نرم افزار را امکان پذیر میکند.
وب سرویس مانند پلی ارتباطی است که به منظور تبادل اطلاعات میان نرم افزارهای مختلف توسط سازمان W3C توسعه یافته است. این رابطها میتوانند بدون وابستگی و پیش نیازی خاص بر روی سیستم عاملها و زبانهای برنامه نویسی مختلف، عملکردی یکسان داشته باشند. بنابراین به صورت کلی میتوان کاربردها و ویژگیهای آنها را به صورت زیر در نظر گرفت :
وابسته نبودن به سیستم عامل
وابسته نبودن به زبانهای برنامه نویسی
آسان کردن ارتباط میان بخشهای نرم افزاری مختلف
آسان کردن ارتباط میان نرم افزار با کلاینت
یکپارچه سازی اطلاعات در میان پلتفرمهای مختلف
استانداردهای مورد استفاده در 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 فهرستی از وب سرویسها است که در آن نوع و نحوه دسترسی آنها مشخص شده است.
معماریهای وب سرویس ها
وب سرویسها به روشهای مختلفی میتوانند پیاده سازی شوند و هر کدام از این روشها دارای مزایا و معایب خاصی است. این روشها عبارتند از:
روش فراخوانی از راه دور - (Remote procedure call) : روش فراخوانی از راه دور (RPC) پروتکلی است که با استفاده از آن یک نرم افزار میتواند یک سرویس را از نرم افزاری در کامپیوتری دیگر به وسیله توابعی درخواست کند. این پروتکل ارتباط میان نرم افزارهای مختلف در شبکه را بدون نیاز به درک جزئیات آن شبکه امکان پذیر میکند.
معماری سرویس گرا - (Service-oriented architecture) : معماری سرویس گرا (SOA) یک سبک طراحی نرم افزار است که در آن خدمات به کامپوننتهای (اجزای نرم افزاری) مجزا تقسیم میشوند. بنابراین برای تبادل اطلاعات میان سرویسهای مختلف از هر یک از این کامپوننتها استفاده میشود. تبادل اطلاعات بین سرویسها بر اساس یک پروتکل انتقال اطلاعات در بستر وب صورت میگیرد.
معماری رِست - (Representational state transfer - REST API) : یک سبک معماری برای ایجاد نرم افزارهای تحت شبکه است که از پروتکلهای مختلف استفاده میکند. یکی از پرکاربردترین پروتکلها در این معماری، پروتکل HTTP است. این معماری با هدف برقراری ارتباطات نقطه به نقطه طراحی شده است و برای محیطهای توزیع شده قابل استفاده نیست. پیاده سازی این نوع رابطها از پیچیدگی کمتری نسبت به روشهای دیگر برخوردار است.
شیوه عملکرد وب سرویس ها
برای درک بهتر شیوه عملکرد یک وب سرویس تصور کنید شما یک واحد نرم افزاری در اختیار دارید که در نقطه ی X است. همه افراد و بخشهای نرم افزاری که در نقطه X نیستند، اگر بخواهند از خدماتی که آن واحد نرم افزاری در نقطه X ارائه میدهد استفاده کنند باید از این رابطها استفاده کنند. بنابراین باید رابطی وجود داشته باشد که بتواند خدمات ارائه شده در آن نقطه را در اختیار سایر نقاط قرار دهد. اطلاعاتی که با استفاده از این رابطها در بین نرم افزارهای مختلف رد و بدل میشوند به صورت فایل و معمولا بر اساس یکی از دو استاندارد XML و JSON انتقال داده میشوند.
نتیجه گیری
امروزه کسب و کارهای مبتنی بر وب برای ارائه خدمات بیشتر به مشتریان و کاربران خود، به نرم افزارهای مبتنی بر وب سرویسها روی آورده اند. کسب و کارهایی مانند رزرو بلیط قطار، اطلاعات هواشناسی، خدمات بانکی و... نمونه هایی از خدماتی هستند که بر پایه این رابطها پیاده سازی شده اند. آیا تا کنون از اینگونه نرم افزارها استفاده کرده اید؟
۲۲ دیدگاه
کاربر۱۵ مهر ۱۴۰۲، ۱۱:۳۱
عالی بود. چند تا ویدیو دیدم که هیچ کدوم به اندازه ی شماکامل و خلاصه، وب سرویس رو توضیح نداده بود. ممنوووون
mohsen nabavi۱۲ خرداد ۱۴۰۲، ۰۵:۲۳
کاربردی و کامل
۱۶ خرداد ۱۴۰۱، ۱۵:۰۱
با سلام . خیلی ساده و روان توضیح دادید . من سایتهای اینترنتی فارسی زیادی رو گشتم ولی خب توضیحاتی به این شکل ندیدم که مفید واقع بشه . دستتون درد نکنه
۲۴ بهمن ۱۴۰۰، ۲۲:۱۶
سلام من میخوام سایت رو با داشتن مستندات وب سرویس به اداره پست و سی ار ام و پنل پیامکی یکپارچه سازی کنم , شما انجام میدید؟ و هزینه اش؟
نازنین کریمی مقدم۲۵ بهمن ۱۴۰۰، ۱۴:۳۷
سلام
لطفا درخواستتون رو با پشتیبانی سایت و تلگرام مطرح کنید.
۰۶ بهمن ۱۴۰۰، ۱۸:۵۴
چطور وب سرویس یک سایت را پیدا کنیم؟
نازنین کریمی مقدم۰۹ بهمن ۱۴۰۰، ۱۱:۳۶
درود
برای این کار شما باید آدرس یکی از وب سرویسها رو داشته باشید. این آدرس شامل دو بخشه:
1. آدرس اصلی وب سرویس
2. متدی که در حال فراخوانی شدنه (GET-POST و ...)
در حالت کلی ممکنه امکان پذیر نباشه و بسته به امنیت سایت داره، اما اگر یک وبسایت معمولی باشه و با soap نوشته شده باشه، میتونید قسمت اصلی آدرس رو در نرم افزار soapUI کپی کنید و بهتون میگه چه وب سرویس هایی در این آدرس قرار داره.
باز اگه سایر دوستان راه بهتری میشناسید دست یاری برسونید :)
اردلان۱۶ بهمن ۱۳۹۸، ۱۸:۱۸
ببخشید تو یه مقاله دیگه اموزش ساخت وبسرویس رو اختصاص به رباتهای تلگرام بیان کنید
مثلا ربات سین زن که وبسرویس عامل تامین سینش میشه
عبدالرزاق۲۲ آبان ۱۳۹۸، ۲۰:۵۴
سلام خسته نباشید میشه بگید فرق وب سرویس با REST چیه یا هر دو یک چیز هستن
سمیه۱۰ آبان ۱۳۹۸، ۱۱:۰۲
عالی و تشکر
احسان۱۷ مرداد ۱۳۹۸، ۰۸:۵۵
سلام یه سوال؟ اون وب سرویسی که ما مینویسیم کجا بارگزاری میشه ؟ که بعدا بهش از هر جایی دسترسی داشته باشیم ؟
نیلوفر۰۷ مرداد ۱۳۹۸، ۱۰:۵۲
بسیار عالی بود ممنونم
مهدی علامه۰۷ مرداد ۱۳۹۸، ۱۳:۳۰
خیلی خوشحالم که این مطلب و دوست داشتین
Mahmoud Haji Seyed Javadi۲۴ فروردین ۱۳۹۸، ۱۲:۰۳
تفاوت وب سرویس و API چیست؟
مهدی علامه۲۶ فروردین ۱۳۹۸، ۰۴:۴۹
سلام محمد عزیز
وب سرویس همانطور که در مقاله بهش اشاره شد یک رابط کاربری است که بر بستر وب و با استفاده از پروتکلهای مختلف خدماتی را ارائه میکنند.
ولی api درحقیقت الزاما در بستر وب نیست و به آن بخش نرم ازفراری میگویند که رابطه ای بین دو نرم افزار یا سیستم و... برقرار میکند.
تشکر
مجتبی شهریور۱۲ فروردین ۱۳۹۸، ۱۷:۴۱
سلام
سال نو مبارک
تشکر از سایت خوب و پر محتوای سون لرن
مهدی علامه۱۲ فروردین ۱۳۹۸، ۲۰:۰۶
سلام دوست عزیز
همچنین، سال نو شما هم مبارک
❤?
علی عمرایی۰۸ فروردین ۱۳۹۸، ۰۹:۵۷
سلام خدمت استاد آوندخسته نباشین واقعا بهترین سایت و بهترین دوره هارو تو سطح وب دارین
استاد من میتونم با خودتون در ارتباط باشم جنتا سوال کوچیک دارم در حد انتخاب ی مسیر برای یاد گیریی راهنمایی کوچیک میخوام ازم کنین
لطفا اگه میشه یا به ایمیلم پیام بدین یا ایمیلتونو بدین لطفا اگه امکانش هست
چون واقعا تو گروهها همه شما رو قبول دارن خواستم که از شما راهنمایی بگیرم قبل اینکه اموزش اشتباهی تهیه کنم لطف میکنین ممنونم