وب سرویس چیست ؟
اشاره :
کسانی که با صنعت IT آشنایی دارند حتما ً نام وب سرویس را شنیده اند . برای مثال ، بیش از 66 درصد کسانی که در نظر سنجی مجله InfoWorld شرکت کرده بودند بر این توافق داشتند که وب سرویس ها مدل تجاری بعدی اینترنت خواهند بود . به علاوه گروه گارتنر پیش بینی کرده است که وب سرویس ها کارآیی پروژه های IT را تا 30 در صد بالا می برد . اما وب سرویس چیست و چگونه شکل تجارت را در اینترنت تغییر خواهد داد ؟
برای ساده کردن پردازش های تجاری ، برنامه های غیر متمرکز (Enterprise) باید با یکدیگر ارتباط داشته باشند و از داده های اشتراکی یکدیگر استفاده کنند . قبلا ً این کار بوسیله ابداع استاندارد های خصوصی و فرمت داده ها به شکل مورد نیاز هر برنامه انجام می شد . اما دنیای وب و XML – تکنولوژی آزاد برای انتقال دیتا – انتقال اطلاعات بین سیستم ها را افزایش داد . وب سرویس ها نرم افزارهایی هستند که از XML برای انتقال اطلاعات بین نرم افزارهای دیگر از طریق پروتوکول های معمول اینترنتی استفاده می کنند .
به شکل ساده یک وب سرویس از طریق وب اعمالی را انجام می دهد (توابع یا سابروتین ها ) و نتایج را به برنامه دیگری می فرستد . این یعنی برنامه ای در یک کامپیوتر در حال اجراست ، اطلاعاتی را به کامپیوتری می فرستد و از آن درخواست جواب می کند ، برنامه ای که در آن کامپیوتر دوم است کارهای خواسته شده را انجام می دهد و نتیجه را بر روی ساختارهای اینترنتی به برنامه اول بر می گرداند . وب سرویس ها می توانند از پروتکول های زیادی در اینترنت استفاده کنند اما بیشتر از HTTP که مهم ترین آنهاست استفاده می شود .
وب سرویس هر توع کاری می تواند انجام دهد . برای مثال در یک برنامه می تواند آخرین عنوان های اخبار را از وب سرویس Associated Press بگیرد یا یک برنامه مالی می تواند آخرین اخبار و اطلاعات بورس را از وب سرویس بگیرد . کاری که وب سرویس انجام می دهد می تواند به سادگی ضرب 2 عدد یا به پیچیدگی انجام کلیه امور مشترکین یک شرکت باشد .
وب سرویس دارای خواصی است که آن را از دیگر تکنولوژی و مدل های کامپیوتری جدا می کند ، Paul Flessner ، نایب رییس مایکروسافت در dot NET Enterprise Server چندین مشخصه برای وب سرویس در یکی از نوشته هایش ذکر کرده است ، یک ، وب سرویس ها قابل برنامه ریزی هستند . یک وب سرویس کاری که می کند را در خود مخفی نگه می دارد وقتی برنامه ای به آن اطلاعات داد وب سرویس آن را پردازش می کند و در جواب آن اطلاعاتی را به برنامه اصلی بر می گرداند . دوم ، وب سرویس ها بر پایه XML بنا نهاده شده اند . XML
و XML های مبتنی بر SOAP یا Simple Object Access Protocol تکنولوژی هایی هستند که به وب سرویس این امکان را می دهند که با دیگر برنامه ها ارتباط داشته باشد حتی اگر آن برنامه ها در زبانهای مختلف نوشته شده و بر روی سیستم عامل های مختلفی در حال اجرا باشند . همچین وب سرویس ها خود ، خود را توصیف می کنند . به این معنی که کاری را که انجام می دهند و نحوه استفاده از خودشان را توضیح می دهند . این توضیحات به طور کلی در WSDL یا Web Services Description Language نوشته می شود . WSDL یک استاندارد بر مبنای XML است . به علاوه وب سرویس ها قابل شناسایی هستند به این معنی که یرنامه نویس می تواند به دنبال وب سرویس مورد علاقه در دایرکتوری هایی مثل UDDI یا Universal Description , Discovery and Integration جستجو کند . UDDI یکی دیگر از استاندارد های وب سرویس است .
نکات تکنولوژی وب سرویس :
همانطور که در ابتدا توضیح داده شد یکی از دلایل اینکه وب سرویس از دیگر تکنولوژی های موجود مجزا شده است استفاده از XML و بعضی استاندارد های تکنیکی دیگر مانند SOAP ، WSDL و UDDI است . این تکنولوژی های زمینه ارتباط بین برنامه ها را ایجاد می کند به شکلی که مستقل از زبان برنامه نویسی ، سیستم عامل و سخت افزار است .
SOAP یک مکانیزم ارتباطی را بین نرم افزار و وب سرویس ایجاد می کند . WSDL
یک روش یکتا برای توصیف وب سرویس ایجاد می کند و UDDI یک دایرکتوری قابل جستجو برای وب سرویس می سازد . وقتی اینها با هم در یک جا جمع می شود این تکنولوژی ها به برنامه نویس ها اجازه می دهد که برنامه های خود را به عنوان سرویس آماده کنند و بر روی اینترنت قرار دهند .
شکل زیر نقش هر کدام از استاندارد ها را در ساختار وب سرویس نمایش می دهد . در قسمت های بعدی هر کدام از این تکنولوژی ها را بررسی می کنیم .
آدرس شکل :
http://www.1.ir/articles/webservicedesc.htm
XML یا eXtensible Markup Language :
XML یک تکنولوژی است که به شکل گسترده از آن پشتیبانی می شود ، همچنین این تکنولوژی Open است به این معنی که تعلق به شرکت خاصی ندارد . اولین بار در کنسرسیوم WWW یا W3C در سال 1996 برای ساده کردن انتقال دیتا ایجاد شده است . با گسترده شدن استفاده از وب در دهه 90 کم کم محدودیت های HTML مشخص شد .
ضعف HTML در توسعه پذیری ( قابلیت اضافه و کم کردن خواص ) و ضعف آن در توصیف دیتاهایی که درون خود نگهداری می کند برنامه نویسان را از آن نا امید کرد . همچنین مبهم بودن تعاریف آن باعث شد از توسعه یافتن باز بماند . در پاسخ به این اشکالات W3C یک سری امکانات را در جهت توسعه HTML به آن افزود که امکان تغییر ساختار متنهای HTML مهم ترین آن است . این امکان را CSS یا Cascade Style Sheet می نامند .
این توسعه تنها یک راه موقتی بود . باید یک روش استاندارد شده ، توسعه پذیر و داری ساختار قوی ایجاد می شد .
در نتیجه W3C XML را ساخت . XML دارای قدرت و توسعه پذیری SGML یا Standard Generalized Markup Language و سادگی که در ارتباط در وب به آن نیاز دارد است
استقلال اطلاعات یا جدا بودن محتوا از ظاهر یک مشخصه برای XML به حساب می آید . متنهای XML فقط یک دیتا را توصیف می کنند و برنامه ای که XML برای آن قابل درک است – بدون توجه به زبان و سیستم عامل – قادر است به اطلاعات درون فایل XML هر گونه شکلی که مایل است بدهد . متنهای XML حاوی دیتا هستند بدون شکل خاص بنابراین برنامه ای که از آن می خواهد استفاده کند باید بداند که چگونه می خواهد آن اطلاعات را نمایش دهد .
بنابراین نحوه نمایش یک فایل XML در یک PC با PDA و تلفن همراه می تواند متفاوت باشد .
وقتی یک برنامه با متن XML مواجه می شود باید مطمئن باشد که آن متن حاوی دیتای مورد نظر خود است . این اطمینان توسط برنامه هایی با نام XML Parser حاصل می شود . تجزیه کننده ها دستورات متن XML را بررسی می کنند .
همچنین آنها به برنامه کمک می کنند تا متن های XML را تفسیر کند . به صورت اختیاری هر متن XML می تواند به متن دیگری اشاره کند که حاوی ساختار فایل XML اصلی باشد . به آن متن XML دوم DTD یا Document Type Definition گفته می شود .
وقتی فایل XML به DTD اشاره می کند برنامه تجزیه کننده فایل اصلی را با DTD بررسی می کند که آیا به همان ساختاری که در DTD توصیف شده شکل گرفته است یا خیر . اگر یک تجزیه کننده XML بتواند یک متن را به درستی پردازش کند متن XML نیز به شکل صحیحی فرمت شده است .
وقتی که اکثر نرم افزار ها امکانات وبی خود را افزایش دادند این طور به نظر می آید که XML به عنوان یک تکنولوژی جهانی برای فرستادن اطلاعات بین برنامه های انتخاب شود . تمامی برنامه هایی که از XML استفاده می کنند قادر خواهند بود که XML ِ همدیگر را بفهمند . این سطح بالای تطابق بین برنامه ها باعث می شود که XML یک تکنولوژی مناسب برای وب سرویس باشد ، چون بدون اینکه احتیاج به سیستم عامل و سخت افزار یکسان باشد می تواند اطلاعات را جابجا کند .
SOAP یا Simple Object Access Protocol :
SOAP یکی از عمومی ترین استاندارد هایی است که در وب سرویس ها استفاده می شود . طبق شواهد اولین بار توسط DeveloperMentor ، شرکت UserLand و مایکروسافت در سال 1998 ساخته شده و نسخه اول آن در سال 1999 ارایه شده است . آخرین نسخه SOAP ، نسخه 1.2 بود که در دسامبر سال 2001 در W3C ارایه شد . نسخه 1.2 نشان دهنده کار زیاد بر روی آن و نمایانگر اشتیاق زیاد صنعت IT برای استفاده از SOAP و وب سرویس است .
هدف اصلی SOAP ایجاد روش برای فرستادن دیتا بین سیستم هایی است که بر روی شبکه پخش شده اند . وقتی یک برنامه شروع به ارتباط با وب سرویس می کند ، پیغام های SOAP وسیله ای برای ارتباط و انتقال دیتا بین آن دو هستند .
یک پیغام SOAP به وب سرویس فرستاده می شود و یک تابع یا ساب روتین را در آن به اجرا در می آورد به این معنی که این پیغام از وب سرویس تقاضای انجام کاری می کند . وب سرویس نیز از محتوای پیغام SOAP استفاده کرده و عملیات خود را آغاز می کند . در انتها نیز نتایج را با یک پیغام SOAP دیگر به برنامه اصلی می فرستد .
به عنوان یک پروتکول مبتنی بر XML ، SOAP تشکیل شده از یک سری الگو های XMLی است . این الگو ها شکل پیغام های XML را که بر روی شبکه منتقل می شود را مشخص می کند ، مانند نوع دیتا ها و اطلاعاتی که برای طرف مقابل تفسیر کردن متن را آسان کند .
در اصل SOAP برای انتقال دیتا بر روی اینترنت و از طریق پروتکول HTTP طراحی شده است ولی از آن در دیگر مدلها مانند LAN نیز می توان استفاده کرد . وقتی که وب سرویس ها از HTTP استفاده می کنند به راحتی می توانند از Firewall عبور کنند .
یک پیغام SOAP از سه بخش مهم تشکیل شده است : پوشش یا Envelope ، Header ، بدنه یا Body . قسمت پوشش برای بسته بندی کردن کل پیغام به کار می رود . این بخش محتوای پیغام را توصیف و گیرنده آن را مشخص می کند .
بخش بعدی پیغام های SOAP ، Header آن است که یک بخش اختیاری می باشد و مطالبی مانند امنیت و مسیریابی را توضیح می دهد . بدنه پیغام SOAP بخشی است که دیتاهای مورد نظر در آن جای می گیرند .
دیتاها بر مبنای XML هستند و از یک مدل خاص که الگوها (Schemas) آن را توضیح می دهند تبعیت می کنند . این الگو ها به گیرنده کمک می کنند تا متن را به درستی تفسیر کند .
پیغام های SOAP نوسط سرور های SOAP گرفته و تفسیر می شود تا در نتیجه آن ، وب سرویس ها فعال شوند و کار خود را انجام دهند .
برای اینکه از SOAP در وب سرویس استفاده نکنیم از تعداد زیادی پروتکول باید استفاده شود . برای مثال XML-RPC تکنولوژی قدیمی تری بود که همین امکانات را ایجاد می کرد . به هر حال ، خیلی از سازندگان بزرگ نرم افزار SOAP را بر تکنولوژی های دیگر ترجیح دادند .
دلایل زیادی برای انتخاب SOAP وجود دارد که خیلی از آنها درباره پروتکول آن است که فراتر از این متن می باشد . 3 برتری مهم SOAP نسبت به تکنولوژی های دیگر : Simplicity , Extensibility و Interoperability است .
پیغام های SOAP معمولا ً کدهای زیادی ندارند و برای فرستادن و گرفتن آن به نرم افزار های پیچیده نیاز نیست .