web service 1-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 که در بازارهای سهام برای به روز کردن قیمت ها جریان دارد .
و . . .