یک **وب سرویس** (به انگلیسی: Web service) یا **خدمت وب**، از نگاه فناوری اطلاعات و بر اساس استانداردهای تعریف شده، سرویس یا خدمتی است که از طریق وب (اینترنت) توسط یک دستگاه الکترونیکی (سرور یا خادم) به دستگاه الکترونیکی دیگر (سرویس گیرنده یا Client)، ارائه می‌شود. در وب سرویس، از فناوری‌های وبی مانند HTTP - که به صورت پایه برای ارتباط انسان با سرور(Human-to-machine) طراحی شده‌است – برای ارتباط بین نرم‌افزار سرویس دهنده و نرم‌افزار سرویس گیرنده استفاده می‌شود. وب سرویس از HTTP بیشتر برای انتقال اطلاعات و داده‌ها استفاده می‌نماید، این اطلاعات به صورت فایل و اغلب با دو استاندارد متداول XML و JSON رد و بدل می‌شوند.

در عمل و در بیشتر موارد وب سرویس به صورت رابط وب بین نرم‌افزارهای مختلف مانند نرم‌افزارهای موبایل یا وب سایت‌های مختلف با پایگاه داده‌ها (Data Base) استفاده می‌شود. همچنین وب سرویس این امکان را فراهم می‌نمایند تا اطلاعات و داده‌های مختلف از منابع مختلف، در یک صفحه نمایش داده شوند. به عنوان مثال؛ با استفاده از وب سرویس‌های سازمان بورس و سازمان‌های هواشناسی اطلاعات مربوط به بورس و پیش‌بینی وضع هوا در کنار هم نمایش داده می‌شود.

سازمان W3C واژهٔ وب سرویس را به صورت زیر ترجمه نموده‌است: «یک نرم‌افزار سیستمی که برای در خواست و پاسخ (فعل و انفعال) بین عناصر غیرانسانی (machine-to-machine) با قابلیت درک متقابل (interoperable) طراحی شده‌است».

میزبانی صفحات وب
----------------

میزبانی یا وب هاستینگ همان چیزی است که وقتی می‌خواهید وب سایتتان روی شبکه بین‌المللی (اینترنت) برای همه قابل دیدن باشد به آن نیاز دارید. به زبان ساده، وب سایت شما باید روی یک سرویس دهنده میزبان قرار گیرد. کامپیوتر شخصی شما هم می‌تواند به صورت یک سرویس دهنده میزبان تنظیم و راه اندازی شود اما اگر قصدتان جذب ترافیک یا «بازدیدکننده» زیاد برای سایتتان است، این کار زیاد عاقلانه به نظر نمی‌رسد برای اینکه وب سایت شما در اینترنت در دسترس باشد لازم است کامپیوتر شما همیشه روشن و به اینترنت متصل باشد؛ به محض خاموش شدن کامپیوتر دیگر کسی سایت شما را نمی‌بیند. از طرف دیگر اگر با نرم‌افزارهای راه اندازی سرور آشنا نباشید، این کار می‌تواند برای شما پیچیده باشد در نتیجه اصلاح اشکالات و خرابی‌های احتمالی سرورتان وقت و انرژی زیادی می‌خواهد.

مزایای مربوط به خدمات وب
------------------------

بزرگ‌ترین مزیت روش نو از ناحیهٔ حضور اکس‌ام‌ال در اکثر ساختارهای مربوط به خدمات وب می‌آید. نیاز به XML به خاطر غلبه بر عدم مقیاس‌پذیری (scalability) شیوه‌های پیشین در مهندسی و ساخت اینترنت است. از آنجا که XML متن گراست (به انگلیسی: text-based)، شمه‌ای از نرمی و انعطاف‌پذیری شگفت‌آوری که در زبان انسان موجود است با سختی و شکنندگی روش‌های ماشینی ترکیب شده و ما را به ساخت سامانه‌های بسیار گسترش‌پذیر توانا می‌گرداند.

استانداردهای خدمات وب
---------------------

### پروتکل دسترسی ساده به شیء (SOAP)

بر اساس پروتکل دستیابی ساده به شیء است که تمامی خدمات وب به گردش در می‌آید. منظور از پروتکل، مجموعه شرح قواعد و فرمت‌های مربوط به ارسال پیامهای مخابراتی از یک ماشین به ماشین دیگر است. SOAP پروتکل ساده‌ای ست که به منظور سازگاری (compatibility) با سکوهای (platforms) مختلف و نیز سیستم‌های عامل (operating systems) گوناگون نوشته شده‌است. هدف اساسی این پروتکل را باید امکان‌پذیری مخابرات ماشین به ماشین در محیط‌های محاسباتی نامتجانس (heterogeneous) ذکر کرد.

### زبان توصیف خدمات وب (WSDL)

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

### شرح، کشف، و یکپارچه‌سازی جهانی (UDDI)

به وسیله فناوری *شرح، کشف، و یکپارچه‌سازی فراگیر* (Universal Description, Discovery, and Integration) می‌توان به انتشار و نیز جستجوی خدمات وب اقدام کرد. این فناوری، خدمات وب را سامان داده، و پس از شرح آن‌ها، اطلاعات بدست آمده را در یک جایگاه مرکزی قرار می‌دهد.

در اینجا بیشتر تأکیدمان بر تعامل با منابعی است که حالت پذیر (State-full) هستند به جای استفاده از پیغامها یا عملیات‌ها.

انواع سبک‌های استفاده از وب سرویس‌ها
------------------------------------

### روش فراخوانی از راه دور - RPC

وب سرویس‌های این نوع، توابع توزیع شده‌ای را اجرا می‌کنند که فراخوانی شان بسیار برای تولیدگرها آشناست، به‌طور معمول ساده‌ترین واحد این مدل فراخوانی یک عملیاتی است که یک wsdl در پی دارد روش‌های دیگری که با کارکرد مشابه به عنوان شیء RPC می‌توان نام برد، Object Management Group's (OMG) و Common Object Request Broker Architecture (CORBA) و Microsoft's Distributed Component Object Model (DCOM) یا سان مایکروسیستم جاوا ست که همان (RMI) نامیده می‌شود.

### معماری سرویس گرا - Service-oriented architecture

وب سرویس‌ها را برای پیاده‌سازی معماری با رویکرد به مفاهیم معماری سرویس گرا (SOA) می‌توان اجرا کرد که مبتنی است بر ساده‌ترین واحدهای ارتباطی که همان پیغام‌ها می‌باشند در تقابل با اعمال (operation)، به همین دلیل است که غالباً با نام سرویس‌های پیغام گرا نامیده می‌شوند. این دست از وب سرویس‌ها توسط اکثر تولیدکنندگان نرم‌افزار عمده در دنیا پشتیبانی می‌گردد، بر خلاف RPC در این مدل امکان اتصالات سست (loose coupling) محقق تر است به دلیل اینکه تأکید بر روی CONTRACT ی است که WSDL تولید کرده به جای اینکه بروی جزئیات زمینه اجرا باشد.

### نمایانگر حالت انتقال - Representational state transfer (REST)

این مدل تلاشی است در جهت توصیف یا ساخت معماری‌هایی که از http یا پروتکل‌های مشابه‌ای استفاده می‌کنند که هدفشان محدود کردن واسطه(interface) هاست به استفاده از اعمال شناخته شده و استاندارد (مثل GET, POST, PUT, DELETE بروی HTTP) دراینجا بیشتر تاکیدمان برتعامل با منابعی است که حالت پذیر(State-full) هستند به جای استفاده از پیغامها یا عملیات‌ها. یک معماری مبتنی بر REST که REST-full نامیده می‌شود می‌تواند برای تعریف یک پیغام سوپ از WSDL بروی HTTP استفاده کند یا می‌تواند یک کلاس انتزاعی باشد که صرفاً بروی سوپ بنا شده باشد، یا می‌تواند تماماً بدون هیچ استفاده‌ای از سوپ ساخته شود. WSDL ۲ نه تنها اتصال به همه متدهای ورژن یک را امکانپذیر می‌کند بلکه تمامی متدهای اتصال به http را پشتیبانی می‌کند، بنابراین به نظر می‌رسد که برای وب سرور‌هایی از نوع REST این اجرا بهترین باشد، هر جند که پشتیبانی از این مشخصات فنی معماری، درون کیت‌های برنامه‌نویسی روز دنیا هنوز ضعیف می‌باشد. این برنامه‌ها معمولاً به سمت تولید ابزارهایی برای WSDL ۱ تمایل دارند.

انواع وب سرویس‌ها از لحاظ کاربرد و پیشرفت تدریجی آن‌ها در ایران
---------------------------------------------------------------

با سوق یافتن و ورود به عصر فناوری‌های نوین، رابط‌های کاربری یا همان API‌ها نقش ویژه‌ای در سامانه‌های مختلف چه در بخش خصوصی و چه در بحش دولتی فراهم ساخته‌است. به‌طور مثال پیش از ورود فناوری‌های پرداخت همراه و صورتحساب‌های الکترونیکی، نیاز بود تا شما برای کلیه پرداخت‌های خود به شرکت‌ها و نهاد صادر کننده صورتحساب یا قبض مراجعه کنید؛ امّا با ورود رابط کاربری و وب سرویس‌های پرداخت قبض این مهم در اپلیکیشن‌های پرداخت موبایلی به راحتی به صورت کاملاً غیرحضوری قابل انجام است. امّا متأسفانه تا آنجا که باید اتفاق می‌افتاد، برخی شرکت‌ها معمولاً برای بحث‌هایی مانند حریم خصوصی مشترکین خود و قوانین عدم افشای اطلاعات، امکان ارائه وب سرویس‌ها و برون سپاری آن‌ها وجود نداشتند. به‌طور مثال در بحث‌هایی مانند احراز هویت، متأسفانه بسیاری از کسب و کارها و شرکت‌های خصوصی، هلدینگ‌ها و … مجبور به دریافت کپی کارت ملی اشخاص هستند. البته امتا، سامانه ای که توسط مرکز توسعه تجارت‌های الکترونیکی توسعه و برون سپاری شد، ولی به دلایلی مورد استقبال کسب و کارها قرار نگرفت و بسیاری از پلتفرم‌های بزرگ آگهی که طبق مصوبه دادستانی، ملزم به احراز هویت کاربران خود از طریق سامانه امتا می‌شدند، امکان استفاده از سامانه را با توجّه به برخی مشکلات، نداشتند؛ لذا مسئولین شیپور و دیوار اذعان داشتند که دلیل این مورد، احراز هویت سطح‌بندی شده‌است و اعتراض به خروج کاربر از پلتفرم و موارد این چنینی شدند. با پیشرفت داده‌های باز، سامانه‌های مختلفی به وجود آمدند از جمله بازارهای API، که دسترسی توسعه دهندگان را به این وب سرویس‌ها ایجاد کردند. یکی از این سامانه‌ها apieco است که مشابه طرح‌های خارجی خود، پنلی برای ارائه دهنده و دریافت کننده وب سرویس به وجود آمده‌است تا بتوانند به راحتی وب سرویس‌های خود را به اشتراک بگذارند و سرویس گیرندگان نیز آن‌ها را بنا بر رایگان بودن یا تعرفه داشتن آن‌ها، با یک کلید API key به آن دسترسی داشته باشند. امید است تا شرکت‌ها و سازمان‌های خصوصی نیز با در نظر گرفتن حریم خصوصی این مهم را برآورده کنند تا شرکت‌های خصوصی در یک بازار کاربردی از جمله **Apieco**، **پادیوم**، سامانه **PGSB** دولت بتوانند از آنها بهره‌مند شوند.

**شبکه PGSB** موسوم به Public Government Service Bus چند سالی است که توسط سازمان فناوری اطلاعات ایران در راستای تحقق دولت الکترونیک و تسهیل ارائه وب سرویس‌های دولتی به کسب و کارها تحت پلتفرم سروا را به وجود آورده‌است که کلیه کاربران می‌توانند با مکاتبه با این سازمان دسترسی به شبکه مذکور، سرویس‌های خود را دریافت کنند ولی مهم‌ترین مشکل این سامانه این است که کسب و کار باید به صورت جداگانه خود با مقام مسئول ارگان مورد نظر وارد مکاتبه شود و یک کلید اختصاصی از آن‌ها دریافت کنند؛ لذا دریافت مجوز برای بسیاری از سرویس‌های این سامانه، فرایند اخذ و دریافت این وب سرویس را برای کسب و کارها کمی دشوار ساخته‌است. با توجه به اینکه روال دریافت خدمات برای کسب و کارها خوشایند نبود سازمان فناوری اطلاعات ایران در شهریور 1401 ارائه خدمات PGSB را به دو اپراتور واگذار کرد و سیتاد به عنوان اپراتور اول و آستان به عنوان اپراتور دوم برای ارائه این خدمات انتخاب شدند.

در راستای تحقق بانکداری الکترونیک نیز شرکت‌هایی از جمله **شرکت تجارت الکترونیک پاسارگاد موسوم به پککو، شرکت تجارت الکترونیک پارسیان (تاپ)، شرکت تجارت الکترونیک آسان پرداخت، شرکت تجارت الکترونیک ارتباط فردا (متعلق به بانک آینده)**، **هلدینگ فناپ** چند سالی است ارائه خدماتی تحت عنوان بانکداری باز را در حیطه وظایف خود قرار دارند بدین شکل که وب سرویس‌های انتقال وجه، استعلام کارت، استعلام شبا، آخرین گردش حساب و … را در قالب وب سرویس پس از انعقاد قراردادی به کسب و کارهای حوزه پرداخت الکترونیک ارائه می‌کنند. به‌طور مثال **فینوتک، کاسپین، بوم و فرابوم** مدتی است در این حوزه فعالیت می‌کنند و تاکنون موفق به ایجاد نوآوری‌های زیادی شدند.

جستارهای وابسته
---------------

* محاسبات توزیع‌شده
* معماری سرویس‌گرا
* خدمات معنایی وب

منابع
-----

1. ↑  Stover, Mark; Zink, Steven D. (1996-03). "World Wide Web home page design: Patterns and anomalies of higher education library home pages". *Reference Services Review*. **24** (3): 7–20. doi:10.1108/eb049284. ISSN 0090-7324. `{{cite journal}}`: Check date values in: `|date=` (help)
2. ↑  «Web Services Architecture». *www.w3.org*. دریافت‌شده در ۲۰۲۳-۰۸-۱۴.
3. ↑  «WWW2008». *www2008.org*. دریافت‌شده در ۲۰۲۳-۰۸-۱۴.
4. ↑  انواع وب سرویس‌های موجود در ایران از لحاظ کاربرد و پیشرفت تدریجی آن ها (۲۰۲۱-۱۱-۰۷). «کی خوبه». *kikhobe*. دریافت‌شده در ۲۰۲۳-۰۸-۱۴.
5. ↑  پرداخت، راه (۲۰۲۲-۰۸-۳۱). «سیتاد از سوی سازمان فناوری اطلاعات به عنوان خدمت‌رسان کسب‌وکارها انتخاب شد». *راه پرداخت*. دریافت‌شده در ۲۰۲۳-۰۸-۱۴.

* .NET Web Services, Architectures and Implementation, by Keith Ballinger, Pearson Education, Inc. ، ۲۰۰۳

| * ن
* ب
* و
رابط‌های وب |
| --- |
| سمت سرور | 

|  |  |
| --- | --- |
| پروتکلها | 
* HTTP
* CGI
* SCGI
* FCGI
* AJP
* WSRP
* وب‌سوکت

 |
| رابط برنامه‌نویسی وب | 
* C NSAPI
* C ASAPI
* C ISAPI
* COM ASP
* جاوا سرولت
	+ container
* CLI OWIN
* ASP.NET Handler
* Python WSGI
* Ruby Rack
* JavaScript JSGI
* Perl PSGI
* Lua WSAPI
* Portlet

 |
| Apache modules | 
* mod\_jk
* mod\_lisp
* mod\_mono
* mod\_parrot
* mod\_perl
* mod\_php
* mod\_proxy
* mod\_python
* mod\_wsgi
* mod\_ruby
* Phusion Passenger

 |
| موضوعات | 
* منبع وب در برابر خدمات وب
* Open API
* Webhook
* سرور کاربردی
	+ comparison
* اسکریپت‌نویسی

 |

 |
| سمت کاربر | 

|  |  |
| --- | --- |
| رابط‌های مرورگر | 
* C NPAPI
	+ LiveConnect
	+ XPConnect
* C NPRuntime
* C PPAPI
	+ NaCl
* اکتیوایکس
* BHO
* XBAP

 |
| رابطه برنامه‌نویسی وب | 

|  |  |
| --- | --- |
| W3C | 
* Audio
* کانواس
* CORS
* DOM
* DOM events
* EME
* File
* Geolocation
* IndexedDB
* MSE
* SSE
* SVG
* Video
* وب‌آرتی‌سی
* وب‌سوکت
* Web Messaging
* Web storage
* Web worker
* XMLHttpRequest
* وب‌اسمبلی

 |
| Khronos | 
* WebCL
* وب‌جی‌ال

 |
| دیگر | 
* Gears
* Web SQL Database (پیشتر با نام W3C)
* WebUSB

 |

 |
| موضوعات | 
* ایجکس در برابر اچ‌تی‌ام‌ال پویا
* Mashup
* Web IDL
* اسکریپت‌نویسی

 |

 |
| شرکتهای خدمات وب | 
* بهسازان هاست

 |
| موضوعات | 
* صفحه وب پویا
* Open Web Platform
* برنامه‌های غنی اینترنتی
* برنامه کاربردی وب

 |