آشنایی با وب سرویس ها
وب سرویسها می توانند application های شما را به Web-Application تبدیل کنند، که در این صورت کارکردهای آنها در سطح جهانی گسترش پیدا خواهد کرد.
وب سرویس چیست؟
– وب سرویسها اجزای یک نرم افزار هستند.
– وب سرویسها از طریق پروتکل ارتباط برقرار می کنند.
– وب سرویسها نیازی به منابع بیرونی نداشته و اصطلاحا self-contained هستند.
– وب سرویسها از طریق UDDI قابل جستجو هستند.
– وب سرویسها توسط application های دیگر قابل استفاده اند.
– XML و HTTP پلت فرم اولیه وب سرویسهاست.
وب سرویس چگونه کار می کند؟
همانطور که گفته شد پلت فرم اولیه وب سرویس ها XML و HTTP است.
XML زبانی است که می تواند بین دو پلت فرم و زبان برنامه نویسی مختلف برای بیان و توضیح توابع پیچیده مورد استفاده قرار بگیرد.
HTTP یکی از پروتکل های رایج در اینترنت است.
عناصر پلت فرم وب سرویسها:
- SOAP (Simple Object Access Protocol)
- UDDI (Universal Description, Discovery and Integration)
- WSDL (Web Services Description Language)
این عناصر در ادامه توضیح داده خواهند شد.
در گذشته نزدیک وب سرویسها به علت کند بودن مورد توجه قرار نمی گرفتند.
ایجاد قابلیت همکاری
هنگامی که پلت فرم های مختلف قابلیت دسترسی به وب را از طرق جستجوگرهای وب (Web Browsers) دارند، می توانند با هم تعامل داشته باشند و برای این منظور Web-application ها توسعه یافتند.
Web-application ها به صورت ساده، نرم افزارهایی هستند که تحت وب عمل می کنند و با استانداردهای مرورگرهای وب و پلت فرم های مختلف همخوانی دارند.
Web Service ها نسل بعدی Web-application ها هستند
با استفاده از وب سرویسها، عملکرد application های شما در سطح جهانی گسترش پیدا خواهد کرد.
وب سرویسها از XML برای کدگزاری و کد گشایی اطلاعات و از SOAP برای جابجایی آن استفاده می کنند.
به عنوان مثال با وب سرویسها، سیستم صدور صورت حسابهای مالی بخش حسابداری شما که با ویندوز 2000 کار میکند می تواند با سیستم بخش IT که از سرور UNIX استفاده میکند ارتباط برقرار کند.
وب سرویسها دو نوع کاربرد دارند
_ استفاده مجدد از کامپوننت های نرم افزاری
Application هایی وجود دارند که اغلب از آنها استفاده می کنیم، حال این سئوال مطرح می شود که چرا باید دوباره و دوباره آنها را ایجاد کنیم؟!
وب سرویسها می توانند کامپوننت های نرم افزارهای مختلف را مانند: تبدیل ارز، گزارش آب و هوا و یا سرویس ترجمه زبانهای مختلف را به شما ارائه دهند.
_ اتصال به نرم افزارهای موجود
وب سرویسها می توانند با یک متد مشخص داده ها و اطلاعات application های مختلف را به هم پیوند داده و از این طریق مشکلات موجود در این همکاری ها را مرتفع کنند.
application های مختلف با پلت فرم های مختلف می توانند بوسیله وب سرویسها با یکدیگر تبادل اطلاعات کنند.
وب سرویسها سه جزء اولیه در پلت فرم خود دارند: SOAP، WSDL و UDDI.
SOAP چیست؟
SOAP یک پروتکل بر پایه XML است که اجازه می دهد تبادل اطلاعات از طریق HTTP انجام شود.
به صورت ساده تر: SOAP یک پروتکل برای دسترسی به وب سرویس است.
SOAP مخفف Simple Object Access Protocol است.
SOAP یک پروتکل ارتباطی است.
SOAP یک قالب ارسال پیام است.
SOAP برای ارتباط از طریق اینترنت طراحی شده است.
SOAP یک پلت فرم و یک زبان مستقل است.
SOAP بر پایه XML است.
SOAP یک پروتکل ساده و توسعه پذیر است.
SOAP به شما اجازه دور زدن فایروال را می دهد.
WSDL چیست؟
WSDL مخفف Web Services Description Language و یک زبان بر پایه XML است برای پیدا کردن و توصیف وب سرویس ها.
UDDI چیست؟
UDDI یک سرویس دایرکتوری است که شرکت های مختلف می توانند برای جستجوی وب سرویسها در آن ثبت نام کنند.
UDDI مخفف Universal Description, Discovery and Integration است.
UDDI یک دایرکتوری برای ذخیره اطلاعات در مورد وب سرویسهاست.
UDDI یک دایرکتوری از رابط های وب سرویس هاست که توسط WSDL شرح داده می شود.
UDDI از طریق SOAP ارتباط برقرار می کند.
UDDI در داخل پلت فرم Microsoft .Net ساخته شده است.
هر application می تواند جزئی از وب سرویس باشد.
وب سرویسها با هر زبان برنامه نویسی قابل پیاده سازی هستند.
یک مثال برای وب سرویس
در مثال پایین از ASP.Net برای ساخت یک وب سرویس ساده که درجه هوا را از فارنهایت به سلسیوس و بلعکس تبدیل می کند استفاده شده است.
<%@ WebService Language=”VBScript” %>
Imports System
Imports System.Web.Services
Public Class TempConvert :Inherits WebService
<WebMethod()> Public Function FahrenheitToCelsius
(ByVal Fahrenheit As String) As String
dim fahr
fahr=trim(replace(Fahrenheit,”,”,”.”))
if fahr=”” or IsNumeric(fahr)=false then return “Error”
return ((((fahr) – 32) / 9) * 5)
end function
<WebMethod()> Public Function CelsiusToFahrenheit
(ByVal Celsius As String) As String
dim cel
cel=trim(replace(Celsius,”,”,”.”))
if cel=”” or IsNumeric(cel)=false then return “Error”
return ((((cel) * 9) / 5) + 32)
end function
end class
توضیح مثال:
نکته: برای اجرای این مثال به یک سرور .Net احتیاج دارید.
اولین خط از مثال نشان می دهد که این یک وب سرویس است که بوسیله VBScript نوشته شده و از کلاس “TempConvert” استفاده کرده است:
<%@ WebService Language=”VBScript” %>
خط بعد وارد کردن namespace، “System.Web.Services” از .Net framework است.
Imports System
Imports System.Web.Services
خط بعد تعریف می کند که کلاس “TempConvert” یک نوع کلاس وب سرویس است.
Public Class TempConvert :Inherits WebService
مرحله بعدی بر پایه زبان برنامه نویسی VB است. این application داری دو عملکرد است، یکی تبدیل فارنهایت به سلسیوس و دیگری تبدیل سلسیوس به فارنهایت.
تنها فرق آن با یک application معمولی این است که عملکرد آن به عنوان “WebMethod()” تعریف شده است.
از “WebMethod()” برای تبدیل عملکرد application خود به عنوان یک وب سرویس استفاده نمایید:
<WebMethod()> Public Function FahrenheitToCelsius
(ByVal Fahrenheit As String) As String
dim fahr
fahr=trim(replace(Fahrenheit,”,”,”.”))
if fahr=”” or IsNumeric(fahr)=false then return “Error”
return ((((fahr) – 32) / 9) * 5)
end function
<WebMethod()> Public Function CelsiusToFahrenheit
(ByVal Celsius As String) As String
dim cel
cel=trim(replace(Celsius,”,”,”.”))
if cel=”” or IsNumeric(cel)=false then return “Error”
return ((((cel) * 9) / 5) + 32)
end function
در آخر با این دستور کلاس را ببندید.
end class
حال با آپلود فایل .asmx در یک سرور .Net اولین وب سرویس خود را خواهید داشت.