1 چیست ؟
برای ساده کردن پردازش ها برنامه های غیر متمرکز ( Enterprise ) باید با یکدیگر ارتباط داشته باشند و از داده های اشتراکی یکدیگر استفاده کنند . قبلا ً این کار بوسیله ابداع استاندارد های خصوصی و فرمت داده ها به شکل مورد نیاز هر برنامه انجام می شد . اما دنیای وب و XML ( تکنولوژی آزاد برای انتقال دیتا ) انتقال اطلاعات بین سیستم ها را افزایش داد . وب سرویس ها در واقع نرم افزارهایی هستند که از XML برای انتقال اطلاعات بین نرم افزارهای دیگر از طریق پروتوکول های معمول اینترنتی استفاده می کنند . به شکل ساده یک وب سرویس از طریق وب اعمالی را انجام می دهد (توابع یا سابروتین ها ) و نتایج را به برنامه دیگری می فرستد . این یعنی برنامه ای در یک کامپیوتر در حال اجراست ، اطلاعاتی را به کامپیوتری می فرستد و از آن درخواست جواب می کند ، برنامه ای که در آن کامپیوتر دوم است کارهای خواسته شده را انجام می دهد و نتیجه را بر روی ساختارهای اینترنتی به برنامه اول بر می گرداند . وب سرویس ها می توانند از پروتکول های زیادی در اینترنت استفاده کنند .
در سیستم های قدیمی تر و حتی شاید در بیش از نود درصد سیتم های فعلی, اصول client - server - programing بر مبنای request - response از طریق یک سری port ها , protocol ها واستانداردهای مشخص browser ها نهاده شده است . بدین ترتیب که درخواست شما از طریق یک browser به server ارسال می گردد web server آن را بنا به نیاز بهapplication Server واگذار می کند . app server آن را پردازش می کند و از طریق web server ان را به client بر می گرداند . مثلا اگر درخواست شما یک request به صفحات دینامیکی مثل .NETیا PHP باشد web server که در اینجا یک IIS یا Apacheمی باشد request را به app server واگذار می کند که پس از تفسیر , این اطلاعات به فرمت html در اختیار client قرار می گیرد . این سیستم جوابگوی بسیاری از نیازها نیست برای مثال request ها فقط از طریق browser ها انجام می شود ویا همه
اطلاعات روی یک server ویا روی سرورهای تحت اختیار موجود می باشد که این در عمل ممکن نیست بسیاری ازبرنامه ها تنها روی بعضی از سرورها قرار دارند وامکان دسترسی با نصب آنها روی سرورهای دیگر نیست به علاوه به دلیل مشکلات امنیتی نمی توان به همه اجازه ی
دسترسی به database ها را داد و از همه مهمتر برنامه های تحت سرور هر کدام در یک platform و با زبانی خاص نوشته شده اند که امکان دسترسی به آنها وجود ندارد.
با ایجاد وسایل گوناگون مثل pda ها , گوشی های تلفن , تلویزیون ها ی دیجیتال و ... که قابلیت اتصال به شبکه را دارا هستند و همچنین نیاز application های desktopبرای ارتباط با سرور این نیاز بیشتر احساس شد که با شکل گیری plattform های بسیار قوی مانند J2EE درسمت سرور اصول web - services رقم زده شد.
یک وب سرویس نوعی کامپوننت تحت وب است که به application هایی که از ان استفاده می کنند این امکان را می دهد تا بتوانند از متدهای این وب سرویس استفاده کنند بهتر است وب سرویس را با یک مثال توضیح دهم :
فرض کنید شما در وب سرویس خود می خواهید آب و هوای مناطق جغرافیای مختلف را داشته باشید برای پیاده سازی چنین کاری شما دو روش در پیش دارید خودتان وضعیت آب وهواهای مختلف را از سایت های گوناگون جمع اوری ور در web application خود قرار دهید یا از یک وب سرویس که اب و هوای مناطق مختلف را می دهد استفاده کنید البته وب سرویس ها توانایی های بسیار گسترده ای در ارتباط با data base ها دارند که بعدا به ان خواهیم پرداخت
1-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 یکی دیگر از استاندارد های وب سرویس است .
عدم نیاز به کد نویسی مجدد امکانات و امتیازات بزرگی را در کار با وب سرویس ها فراهم می کند .البته شاید بعضی از دوستان که با مفاهیم کلاس کار کرده اند بگویند که این کار در کلاس ها هم امکان پذیر است اما در برنامه نویسی با کلاس شما برای استفاده از هرکلاس باید تک تک کلاس ها را add کنید اما در اینجا فقط کافیست متدها را بنویسید. درنوشتن کلاس شما ممکن است در کار باapplication ها ی مختلف به روش های مختلف با کلاس های متفاوتی کارکنید یعنی کار شما هربار متفاوت از کار قبلی است که این خوانایی برنامه را پایین می اورد و همچنین توسعه را مشکل می سازد اما در این سیستم ما در یک وب سرویس و با متدهای خاص همان وب سرویس کار می کنیم حالا در هرجا و در هر application ی که قرار داریم .
وقتی با وب سرویس کار می کنیم یک سری استانداردها نیز وجود دارند که همه ی application های موجود با ان کار می کنند و در نتیجه reusability بالا می رود . که این خود مزیت بزرگی به شمار می رود .
بعنوان نمونه از وب سرویس هایی که در طول روز به چند صد هزار درخواست پاسخ می دهند می توان به عناوین زیر اشاره کرد:
1- کل نرم افزار yahoo messenger از طریق web service های ایجاد شده توسط weblogic پیاده سازی شده است.
2- وب سرویس راهبردی گزارش وضعیت ترافیکی راهها در ایالت متحده موسوم به (wfb = ways finder base) که افراد می توانند از طریق اتومبیل های خود با آن تماس برقرار کنند.
3- وب سرویس موسوم به شخص الکترونیکی یا eletronical whose که در بازارهای سهام برای به روز کردن قیمت ها جریان دارد .
و . . .
1-3 مفاهیم کاربردی در وب سرویس ها
XML 1-3-1 یا 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 یک تکنولوژی مناسب برای وب سرویس باشد ، چون بدون اینکه احتیاج به سیستم عامل و سخت افزار یکسان باشد می تواند اطلاعات را جابجا کند .
فهرست منابع
Using Google Search Web Services by Axis
برگردان : پدرام حیاتی
Visual Basic . Net 2005
نویسنده : حامد بنایی – امیر احسانی
ASP.NET 2.0: A Developer’s Notebook
نویسنده : Wei-Meng Lee
برگردان : محمد قاسمپور – علی دهقان
توسعه یک وب سرویس امن با استفاده از RupSec
نویسنده : سیدمهدی حسینی نژاد، گلناز الهی و پویا جافریان
مرجع : نشریه مهندسی برق و مهندسی کامپیوتر ایران، سال 5، شماره 2، تابستان 1386
Transactional Support of Web Service Orchestration
نویسنده : فاطمه چیت فروش زاده