Fahim 9563 اشتراک گذاری ارسال شده در 30 بهمن، ۱۳۸۹ نرمافزار به مثابه سرويس دنیایی آکنده از سرویسها کیومرث سلطانی اشاره: یکی از تأثیرگذارترین پدیدههای نرمافزاری اخیر بیشک مبحث نرمافزار به مثابه سرویس یا Software as a Service بوده است. رشد اینترنت و گسترش امکان دسترسی به این شبکه باعث شده تا مدل نرمافزار به مثابه سرویس به یکی از محبوبترین مدلهاي توسعه نرمافزار تبدیل شود. وب سرویس میتواند منابع محاسباتی را از طریق اینترنت برای شما فراهم سازد. همانطور که هنگام اتصال يك دوشاخه به پریز برق بدون توجه به اینکه در پشت صحنه چه اتفاقی میافتد، جریان الکتریکی به شما به صورت یک سرویس ارائه میشود، با استفاده از وب سرویسها نیز میتوانید بدون نگرانی درباره نحوه کار درونی یک سرویس از مزایای آن بهرهمند شوید. یکی از تأثیرگذارترین پدیدههای نرمافزاری اخیر بیشک مبحث نرمافزار به مثابه سرویس یا Software as a Service بوده است. رشد اینترنت و گسترش امکان دسترسی به این شبکه باعث شده تا مدل نرمافزار به مثابه سرویس به یکی از محبوبترین مدلهاي توسعه نرمافزار تبدیل شود. وب سرویس میتواند منابع محاسباتی را از طریق اینترنت برای شما فراهم سازد. همانطور که هنگام اتصال يك دوشاخه به پریز برق بدون توجه به اینکه در پشت صحنه چه اتفاقی میافتد، جریان الکتریکی به شما به صورت یک سرویس ارائه میشود، با استفاده از وب سرویسها نیز میتوانید بدون نگرانی درباره نحوه کار درونی یک سرویس از مزایای آن بهرهمند شوید. با استفاده از وب سرویسها میتوان مدلی از سیستمهای نرمافزاری را ارائه كرد که در آن کاربر به ازای استفاده از یک سرویس خاص هزینه پرداخت ميكند. درضمن سیستمهای جديد یا سنتی میتوانند از طریق وبسرویسها و با استفاده از رابطی جهانی به آسانی با یکدیگر ارتباط برقرار کنند. توزيع پذيري، سادگی و استاندارد جهانی، فاکتورهایی هستند که وب سرویسها را به یکی از محبوبترین حوزههاي نرمافزار در دهه اخیر تبدیل كردند. نخستين ظهور وب سرویسها به حدود سال ۱۹۹۷، یعنی زمانی که شركت سانمايكروسيستمز با پلتفرم Jini و اچپي با e-speak توانستند این بحث را در جامعه نرمافزاری مطرح كنند، برميگردد. در طول سالهای بعد، بازیگران دیگری مانند مایکروسافت و آیبیام نیز به طور جدی وارد این حوزه شدند. با این حال، اجماع بر سر استانداردی جهانی و هماهنگ، چند سالی به طول انجامید. "SOAP پروتکلی برای رد و بدل کردن اطلاعات در میان وبسرویسها است. فرمت پیامهای SOAP مبتني برXML بوده و برای انتقال پیام به طور معمول به پروتکلهاي لایه کاربرد مانند http و rpc تکیه دارد." وب سرویسها چگونه کار میکنند؟ مدل وب سرویسها از سه پارادایم انتشار، یافتن و پيوستگي تشکیل شده است. درگام نخست ارائه دهنده سرویس آن را روی یک Web Service Registry منتشر ميكند. در گام دوم کاربری که به دنبال سرویسی با مشخصات خاص میگردد، روی Registry آن را مییابد و در مرحله آخرکلاینت مشخصات سرویس را دریافت کرده و برای فراخوانی آن اقدام ميكند. برای حفظ فراعملیاتی بودن وب سرویس آنها از استانداردهای مبتني بر XML سود میبرند. SOAP مکانیزمی برپايه XML است که ارتباط با وب سرویسها از طریق آن صورت میگیرد. برای حل مشکلات ارتباطی نیز به طور معمول از HTTP برای انتقال پیامهای SOAP استفاده میشود. اینترنت از مجموعه عظیمی از سیستمهای ناهمگن و نامتجانس تشکیل شده که ایجاد یک پل ارتباطی استاندارد بین آنها درواقع بزرگترین هنری بوده است که این شبکه و مفهوم وب از خود نشان دادهاند. وب سرویس نیز باید توانایی کار در چنین محیط ناهمگنی را داشته باشد و به همین دلیل امروزه، استفاده از XML برای وبسرویسها، تا این اندازه جا افتاده است. شکل1 معماری وب سرویسها ر ا نشان میدهد. برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام شكل 1 SOAP، زبان ارتباطی وب سرویسها SOAP (سرنام Simple Object Access Protocol) پروتکلی برای رد و بدل کردن اطلاعات در میان وبسرویسها است. فرمت پیامهای SOAP مبتني برXML بوده و برای انتقال پیام به طور معمول به پروتکلهاي لایه کاربرد مانند http و rpc تکیه دارد. این پروتکل از سه بخش اصلی تشکیل شده است: یک پاكت يا envelope که شامل پیغام و شیوه پردازش آن میشود، شیوه كدگزاري يا Encoding و شیوه فراخوانی متدها. "یک رکورد دایرکتوری UDDI يك فایل XML است که یک کسب و کار و سرویسی را که ارائه كرده، مشخص میکند." یک پیغام درخواست مبتني بر XML در SOAP مانند فهرست 1 است.توضیحات ذکر شده پس از Envelope به تعریف Namespace و شِماها (Schemas) میپردازد و مشخص میسازد که سند از کجا میتواند این مفاهیم و تگهاي XMLای را که از آنها استفاده ميكند، معنا كند. xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”> SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”> 0385503954 فهرست 1 توجه داشته باشید، قسمت هایتيره شده درواقع متدی از وب سرویس فراخوانی شده را مشخص ميكند. این درخواست میتواند یک ارسال یا یک دریافت باشد. به این مدل از ارتباطات یکطرفه، Message پيغام میگویند که در بخش بعدی بیشتر آنها را معرفی ميكنيم. همچنین پس از تعریف نوع Message مقدار آن نیز(که دوباره میتواند ورودی یا خروجی متد باشد) تعریف میشود. درباره شیوههای مختلف تعریف Body پیغاممبتني بر SOAP در بخش بعد بیشتر صحبت میکنیم. یک پاسخ مبتني بر XML در SOAP نیز کم و بیش مانند فهرست 2 است. xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=”http://www.w3.org/1999/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/1999/XMLSchema”> SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”> 14.65 فهرست 2 بخش Envelope و تعریف Body تقریباً مانند پیغام ارسالی SOAP هستند. با این تفاوت که شمایی که سرور از آن استفاده میکند، قدیمیتر از شمایی است که کلاینت از آن سود میبرد. تنها تفاوت در تعریف message اين است که در اين مرحله باید ارتباط یکطرفه سرور به کلاینت مورد توجه قرار گیرد، پس نام message برابر نام پیغامي است که کارش ارتباط سرور به کلاینت است. توجه داشته باشید، كه در پیغام ارسالی نام message برابر پیغامي بود که کار آن ارسال اطلاعات از کلاینت به سرور است. پس بهطور مشخص باید بین این دو واحد تفاوت قائل شویم. همچنین هنگام تعریف مقدار برگشتی به جای نام فیلد که در پیغام ارسالی ذکر شده بود (isbn)، کلمه Response را ميآوریم. transport=”http://schemas.xmlsoap.org/soap/http” ... فهرست 3 به عنوان یک برنامهنویس ممکن است هیچگاه مجبور نشويد با یک پیغام SOAP كلنجار رويد، زیرا به طور معمول زبانهای برنامهنویسی خودشان این کار را انجام میدهند. اما با مشاهده فرمت این پیام میتوان مشاهده کرد که شیوه ارتباطی وب سرویسها چقدر ساده و هماهنگ با پلتفرمهاي دیگر است. UDDI: کتاب اول وب سرویسها UDDI (سرنام Universal Discovery Description and Integration) همان کاری را برای وب سرویسها انجام میدهد که کتاب اول برای مشاغل. با استفاده از این سرویس شما میتوانید به جستوجوی وب سرویسهايي با کارایی مورد نظرتان اقدامکرده و با سازنده یا ارائهکننده آن ارتباط برقرار کنید. البته، میتوانید وب سرویسهایتان را در UDDI رجیستر نکنید، همانطور که میتوانید کسبوکارتان را در کتاب اول نیاورده و به امید تبلیغ کلامی مردم بنشينيد. به هر ترتيب، اگر به دنبال یک بازار قوی هستید باید کاری کنید تا مشتری بتواند شما را بیابد. "WSDL زبانی XML محور است و با استفاده از همین ویژگی میتواند برای پلتفرمهاي مختلف مورد استفاده قرار گیرد." یک رکورد دایرکتوری UDDI يك فایل XML است که یک کسب و کار و سرویسی را که ارائه میکند، مشخص میکند. این رکورد سه بخش دارد: صفحه سفید که شامل اطلاعات شركتي است که سرویس را ارائه میکند، از جمله نام، آدرس، اطلاعات تماس و...، صفحه زرد که شامل دستهبندی صنعتی براساس اسناد استاندارد موجود در این زمینه است و در نهایت صفحه سبز که رابط وب سرویس را برای استفاده توسعه دهندگان تا حد نیاز توضیح میدهد. شیوه تعریف سرویسها در یک سند UDDI را Type Model یا به اختصار tModel مينامند. در بسیاری از موارد tModel تنها شامل یک فایل WSDL است که ساختار کلی وب سرویس را مشخص میسازد. با این اوصاف، بنا به خواست سازنده سرویس tModel میتواند سرویسهاي متنوع دیگری را نیز ارائه دهد. شیوههای جستوجو در دایرکتوری UDDI متفاوت است. به عنوان مثال، ممکن است تمام سرویسهاي ارائه شده در یک منطقه جغرافیایی خاص را جستوجو کنید یا سرویسهايي را که متعلق به یک صنعت خاص هستند. همچنین ممکن است شما ارائه کننده سرویس را بشناسید، اما ندانید که دقیقاً چه سرویسهايي را برای کاربران ارائه ميكند. WS-Inspection specification به شما این امکان را میدهد که به جستوجو در میان مجموعهای از وب سرویسهاي XML بپردازید که در یک سرور خاص ارائه شدهاند. WSDL زبانی برای توصیف وب سرویسها وب سرویسها با استفاده از زبان توصیفی WSDL (سرنام (Web Service Definition Language تعریف ميشوند. بهطور طبيعي WSDL زبانی XML محور است و با استفاده از همین ویژگی میتواند برای پلتفرمهاي مختلف مورد استفاده قرار گیرد. در این بخش به معرفی کوتاه عناصر مهم WSDL پرداخته و با استفاده از آن، وب سرویس نمونهاي را براي تبدیل تاریخ میسازیم. قبل از هر چیز، باید اعتراف کرد که تعریف اسناد WSDL کاری بسیار خستهکننده است. "دانستن ساختار WSDL قطعاً برای هر برنامهنویسی مفید خواهد بود، حتی اگر در عمل هیچگاه مجبور نباشد که به صورت دستی آن را بنویسد." در نتیجه، اگر ابزار گرافیکیاي برای ساخت آنها در اختیار دارید، در استفاده از آن لحظهای تردید نکنید. به عنوان مثال، چنین ابزاری برای Eclipse وجود دارد که به همراه جمعی دیگر از ابزارهای توسعه وب قابل نصب است. به هر ترتيب، اگر از دسته برنامه نویسان وسواسی یا تا حدی بدبین باشید، ممکن است به فکر مواقع بحرانی بيفتيد که بدون ابزارهای لازم برای توسعه جایی گیر افتادهاید و تنها راه کدنویسی از پايه است. دانستن ساختار WSDL قطعاً برای هر برنامهنویسی مفید خواهد بود، حتی اگر در عمل هیچگاه مجبور نباشد که به صورت دستی آن را بنویسد. المانهاي اصلی WSDL به ترتیب عبارتند از: Definitions : المان root سند wsdl. در این المان نام وب سرویس، namespace و اطلاعات کلی دیگر وارد میشوند. در ضمن بقیه المانهاي وب سرویس در درون definitions قرار ميگیرند. Types: تعریف المان types درواقع ضروری نیست. در صورتی که سند wsdl شما تنها از انواع داده عادی مانند string و int استفاده میکند، میتوانید این بخش را خالی بگذارید. اما در صورت نیاز به انواع پیچیدهتر میتوان آنها را در types تعریف كرد. برای تعریف انواع پیچیده، دست برنامهنویس به اندازه کار با یک سند XML عادی باز است و میتوان انواع داده اختصاصی را به این وسیله تولید كرد. Message: المان message به تعریف پیامهایی یکطرفه میپردازد که میتوانند یک درخواست، پاسخ یا خطا (fault) باشند. همچنین المان message میتواند شامل یک یا چند المان part باشد که به پارامترهاي ورودی یا مقادیر خروجی message اشاره دارند. PortType: المان portType با ترکیب چند المان message یک عملیات یکطرفه یا رفت و برگشتی را تعریف ميكند. به عنوان مثال، یک portType ممکن است با ترکیب یک message درخواست و یک message پاسخ به ایجاد یک عملیات درخواست و پاسخ بپردازد. توجه داشته باشید که یک portType میتواند شامل چندین operation باشد. Binding: المان binding برای توصیف نحوه پیادهسازی وب سرویس و قرار داده شدن آن روی شبکه به کار میرود. برای تعریف این المان حالتهای مختلفی وجود دارد. به فهرست 3 توجه كنيد. Focument Style: نشان دهنده این است که body شامل یک سند XML بوده و المان XML در آن قرار خواهد گرفت. به فهرست 4 توجه كنيد.خط سوم از كدنمايش داده شده در اين فهرست نشاندهنده اين است كه ارتباط با وبسرويس از طريق پروتكل http صورت ميگيرد.حال پیام SOAP به شكل كد فهرست 5 درخواهدآمد.مشاهده ميكنيد، در body، تایپهاي تعریف شده در بخش نخست قرار گرفته است. فهرست 4 5 5.0 فهرست 5 Rpc style: نشاندهنده این است که body شامل یک نمایش XML از متد مورد نظری است که به زودي فراخوانده ميشود.به فهرست 6 نگاه كنيد.در این حالت پیام soap مشابه فهرست 7 خواهد بود.مشاهده مي كنيد که در این حالت در body، متد و ورودیهایش قرار گرفتهاند.با تعریف use به Encoded تنها تغییری که حاصل میشود، نحوه قرارگیری ورودیهاي متد است(فهرست 8). لینک به دیدگاه
ارسال های توصیه شده