سرویس های وب -اصول و ساختار

*بانو بهار*

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/08/15
ارسالی ها
3,937
امتیاز واکنش
10,965
امتیاز
804
محل سکونت
میان شکوفه‌ها
سرویس های وب (Web Services) را می توان گونه ای از پیاده سازی SOA یا Service Oriented Architecture انگاشت که به کمک آن ، سرویس های اطلاعاتی در محیط وب را می توان خودکار کرد. سرویس های وب سرویس های عملیاتی ای هستند که روی پروتکل ها و زیر ساخت اينترنت سوار می شوند. در بیشتر موارد، سرویس های وب، Componentهای نرم افزاری هستند که به کمک سرویس دهنده های برنامه های کاربردی (Application Servers) در فضای اینترنت قابل استفاده می شوند. برای تبادل اطلاعات از استانداردهای بر پایه XML استفاده می شود. Transaction ها هم می توانند به طور خودکار و بدون نیاز کنترل کردن انسان ميان سرویس های وب انجام بگیرند.
ایجاد ارتباط میان Componentها از طریق سرویس های وب به یک معماری SOA منتهی می شود که در آن، رابط ها و قوانین آنها باعث تقویت و يكپارچگي محصول پایانی می گردد. SOA در سرویس های وب می گوید که سرویس های وب می توانند منتشر(published) ، یافته(discovered) و فراخوانی (invoted) شوند.


نمونه هایی از سرویس های وب
پروتکل و استانداردهاي مرتبط با سرویس های وب مانند SOAP، WSDL و UDDI بستر فنی برای پیاده سازی برنامه های توزیع شده را فراهم می کنند. مجمع W3C یک کار گروه ویژه سازماندهی کرده که به ماهیت و ساختار سرویس های وب و مسائل پیرامون آن می پردازد. سرویس های وب مدت هاست که پایه گذاری شده اند و نه تنها برای حل مسائل بزرگ به کار می روند بلکه پای شان به سطح سخت افزار و دیگر برنامه های کاربردی نیز باز شده. در بخش ارتباط با دستگاه های سیار و همچنین سخت افزار ویژه(embedded devices) سرویس های ب نقش بسیار مهمی در حفظ يكپارچگي برنامه ها دارند.
از سال 2002 ، Google یک سرویس وب در اختیار کاربران گذاشته که با عملكردهايش همان امکانات وب سایت مانند رابط کاربری را فراهم می کند(
Please, ورود or عضویت to view URLs content!
). برنامه ها اکنون می توانند با ارتباط از طریق رابط ، به طور مستقیم در اينترنت اطلاعات مورد نیاز را جستجو کرده، به دست آورده و به کار ببرند.


نمونه های دیگر
به عنوان یک مثال دیگر می توان از ارتباط میان دفاتر خدمات مسافرتی و خطوط هوایی نام برد. شرکت های هواپيمايي می توانند امکانات خود را برای فروش یا رزرو از طریق سرویس های وب عرضه کنند. دفاتر مسافرتی هم از طریق سرویس UDDI برنامه های متفاوت پرواز را از شرکت های هواپيمايي مختلف دریافت می کنند. به این ترتیب مشتری می تواند همه اطلاعات گوناگون را در کنار هم روی سایت شرکت خدمات مسافرتی دیده و مطابق نیاز انتخاب کند.
البته سرویس های وب نخستین پیاده سازی SOA نیستند. مدتها پیش از سرویس های وب، راه حل هایی برای برطرف کردن اینگونه مشکلات وجود داشت. برای نمونه می توان از COM/DCOM محصول مایکروسافت ، RMI محصول سان و Corba محصول OMG نام برد. از این سه محصول تنها Corba به بستر اجرایی وابسته نیست و دو محصول دیگر دست کم به سیستم عامل های تولیدکنندگان شان وابسته اند. اما Corba هم نتوانست جای خود را باز کند ، چون در چاه ناهماهنگی استانداردها فرو افتاد.


ویژگی های سرویس وب
ارائه دادن یک تعریف کلی و يكتا درباره سرویس های وب کار دشواری است. با این همه، تعاریفی که W3C برای چیستی سرویس های وب دارد چنین است:
* سرویس های وب همواره از طریق رابط های قابل برنامه نویسی در دسترس اند و به کمک سرویس هایی مانند SOAP و WDSL که بر پایه ارسال پیغام های XML کار می کنند می توان آنها را فراخوانی کرد.
* یک سرویس وب بر پایه مجموعه پروتکل های اینترنتی کار می کند، مانند HTTP یا SMTP.
* سرویس های وب از برنامه های درون خود مستقل هستند.
* یک سرویس وب را می توان در چند سرویس وب دیگر پخش کرد یا از پیوند دادن آنها به یکدیگر یک سرویس وب تازه ساخت.
* سرویس های وب به مکان وابسته نیستند و کاربران می توانند در صورت مجوز دسترسی، از هر کجا و درهر زمان آنها را فراخوانی کنند. هر سرویس وب با Metadata همراهی می شود تا هنگام اجرا، دیگر سرویس های وب نیز بتوانند آن را ارزشدهي کنند. نام، شرح، نگارش و عملكرد، بخشی از اطلاعات Metadata است.
* افزون بر این، سرویس های وب می توانند ماهیتی اطلاعاتی یا تراکنشی داشته باشند. سرویس های وب تراکنشی می توانند بخشی از تراکنش های سازمان باشند.


اجزای بنیادین سرویس های وب
استاندارد سازي و خودکار کردن سرویس های وب در بخش خاصی انجام می شود. مجمع World Wide Web یا همان W3C ، OASIS و برخی دیگر مجمع های مستقل، پایه گذاری استانداردها در این بخش را بر عهده دارند. W3C بیشتر روی استانداردهای افقی یا استانداردهاي فنی متمرکز شده که در صنعت کاربرد دارند. اما OASIS بیشتر به استانداردهای عمودی می پردازد و در این کار تا جای ممکن از استاندارهاي فنی استفاده می کند.


SOAP
SOAP یا Simple Object Access Protocol یک بافت داده ای بر پایه XML برای ارتباط و تبادل پیغام هاست. این استاندارد، قواعد کلی برای تبادل پیغام ها میان برنامه های کاربردی را تعریف می کند. SOAP بدون وابستگی به معماری نرم افزار و تنها با تکیه بر پروتکل های اینترنتی ارتباط میان اجزای معماری توزیع شده (distributed) و تبادل داده ها را فراهم می کند.


WSDL
WSDL یا Web Service Description Language یک زبان توصیفی بر پایه XML است که سرویس های وب و توانایی های آنها را شرح می دهد. به عبارت دقیق تر تنها رابط های سرویس های وب و نه خود سرویس ها شرح داده می شوند. با نگاه ساختار گرايانه ، هر سند WSDL از یک سری توضيحات XML تشکیل می گردد. در این توضیحات گرامر ویژه ای وجود دارد که با قراردادها(Contracts) فرمول بندی می شود. این قراردادها هنگام ارتباط میان دو نقطه، اعتبار دارند.


UDDI
UDDI یا Universal Description, Discovery and Integration یک Directory Service برای سرویس های وب است. این سرویس برای مدیریت Metadata ها در وب سرویس یک ساختار فهرست (Directory) فراهم می کند. این سرویس را می توان گونه ای Yellow Page به شمار آورد که سرویس های وب و رابط های آنها در آن ثبت شده اند. نیازهای کلی، ویژگی های سرویس وب و اطلاعات لازم برای یافتن یک سرویس وب از جمله اطلاعات درون Metadata هاست.
اگرچه UDDI برای استفاده از سرویس های وب لازم نیست ، اما در قالب زیرساخت، یک SOA است.
شکل زیر چگونگی ارتباط میان UDDI، برنامه های XML و WSDL را نشان می دهد.


نقش ها و عملكردها
هر ساختمان بنا شده بر پایه SOA سه پیش فرض دارد:
کاربر سرویس : کاربر سرویس به کمک پیام های XML و پروتکل های انتقال به سرویس وب واکنش نشان می دهد. از فهرست سرویس وب(Web Service Directory) برای ارتباط میان دو سرویس وب که با هم گفتگو می کنند ، استفاده می شود.
فراهم ساز سرویس : این بخش یک سرویس را از طریق رابط های قابل برنامه نویسی به محیط بیرون عرضه می کند.
سرویس فهرست: این سرویس یک شرح منطقی درباره فراهم ساز سرویس وب در خود دارد.
کاربر، فراهم ساز و فهرست قابل جابجا شدن هستند. یک کاربر می تواند گاهی فراهم ساز یک سرویس وب باشد. چگونگی ارتباط دو سرویس وب در ساده ترین حالت به شکل زیر است:
1- یک کاربر سرویس وب درخواست جستجوی خود را به سرویس فهرست می فرستد.
2- پس از پیدا شدن سرویس مورد نظر، جزئیات دیگر آن دریافت می شود.
4- بسته به تعریف سرویس، دو سرویس می توانند با یکدیگر ارتباط برقرار کنند.


اما از نگاه فنی، این روند به ترتیب زیر است: یک فراهم ساز که می خواهد سرویسی در قالب سرویس وب ارائه کند، نخست یک شرح ارتباط WSDL را با بافت XML می سازد. این فایل WSDL با انتقال از طریق سرویس فهرست بر پایه UDDI، منتشر می شود. سپس فراهم ساز سرویس منتظر می ماند تا یک کاربر سرویس خاصی را جستجو کند. براساس استانداردها، برنامه های UDDI باید برای این منظور یک رابط SOAP داشته باشند.
پس از آنکه کاربر ، سرویس مورد نظر خود را پیدا کرد، به دنبال شرح یک رابط یا همان فایل WSDL خواهد گشت. سرویس فهرست یا همان Directory Service برای فایل WSDL یک مرجع (URI) ارائه می کند. در پایان ، کاربر از طریق رابط SOAP با فراهم ساز سرویس ارتباط برقرار می کند.


پشته سرویس وب
برای پیاده سازی یک ماجول نرم افزاری کامل بر پایه SOA باید استانداردهای زیادی رعایت شود. این استانداردها معمولاً در قالب یک پشته (Stack) با نام پشته سرویس وب طرح می شوند. پشته ای که در این بخش به نمایش درآمده تنها یکی از آنهاست. با توجه به نوع کاربرد و حساسیت ها می توان پشته های گوناگونی طراحی کرد. معمولاً یک پشته در پائین ترین لایه با لایه انتقال (Transport) آغاز می شود. اینجا می توان گفت که سرویس های وب برای انتقال به پروتکل خاصی وابسته نیستند و همه پروتکل ها مانند http یا SMTP را می توان برای انتقال پیغام های XML به کار برد.
لایه بعدی که سنگ بنای مدل داده ای ما به شمار می رود ، فناوری هایی هستند مانند Namespaces که با XML قرابت دارند. این پروتکل های انتقال پیام ها مانند خود پیام ها بر XML بنا شده اند. از همین رو در لایه بعدی که به پروتکل مربوط می شود، SOAP را می بینیم. این لایه چگونگی ساختار و محتوای پیغام ها را شرح می دهد. اما لایه پنجم با نام Federation and Routing با شرح دقیق تر، جزئیات کار در یک سیستم توزیع شده(distributed) و چگونگی ارتباط بخش ها با یکدیگر را بیان می کند.
نحوه همکاری چند سرویس در لایه بعدی شرح داده می شود که Integration and Coordination نام دارد. در اینجا می توان از BPEL یا Business Process Execution Language نام برد که برای مدل کردن پردازش ها در برنامه های پیچیده به کار می رود.
در سرویس های وب چگونگی تراکنش ها همواره نقش مهمی دارند. تراکنش ها را می توان با ویژگی های مناسب تعریف کرد. اینگونه اطلاعات اضافی نیز در پشته و در قالب یک Metadataی عمودی قرار دارند. آخرین لایه به Componentهای Grid و Enterprise مربوط می شود که در اینجا مجال پرداختن به آنها را نداریم.


مدل ها و ساختارها
در استانداردها و تعاریف W3C، سرویس های وب از جنبه های گوناگون تشریح شده اند که در مباحث Policy Model، Resource Oriented Model، Message Oriented Model ، Services Orinted Model دسته بندی شده اند. مدلی که در این بخش به تصویر کشیده شده ، Message Oriented Model نام دارد و به پیغام های سرویس های وب می پردازد. این مدل ساختار پیغام های یک سرویس وب را شرح می دهد. به عنوان بافت پیغام از SOAP استفاده شده که البته این کار ضرورتی ندارد و تنها به منظور سازگاری بهتر، انجام گرفته.
مدل شماره 2 ، سرویس های وب را با تاکید بر Service Orientation نشان می دهد. سرویس ها ، همان عملكردهاي یک سرویس وب هستند و به کمک Agent ها پیاده سازی می شوند. مدل شماره 3 هم وضعیت Resourceها را در ساختار سرویس وب نشان می دهد. در اینجا هم هر Resource خودش یک سرویس وب است. با این مدل روشن می شود که هر Resource به طور يكتا با یک URI یا Uniform Resource Identifier شناسایی می شود و برای یک سرویس وب که با http باید به آن متصل شد، URI همان URL است.
آخرین تصویر هم Policy-Model و وضعیت Policy را در ساختار سرویس وب نشان می دهد. منظور از Policy همه آن چیزهایی است که محدودیت ها و شرط ها را مشخص می کند. ملاحظات امنیتی یا فراهم سازی کیفیت، نمونه هایی از Policyها هستند. Policyها اغلب تعاریف XML به سرویس های وب اضافه می شوند.


خلاصه
سرويسهاي وب اکنون به بلوغ رسیده اند. شرکت ها و سازمان های بسیاری با سرویس های وب کار می کنند یا در حال نوشتن آنها هستند. استانداردها و تعاریف لازم برای ایجاد هماهنگی در ادامه کار نیز پایه گذاری شده. XML هم بستر بسیار مناسبی برای فراهم کردن يكپارچگي و انعطاف میان آنهاست.
با اين همه، سرویس های وب مشكلاتي نیز پیش رو دارند. برای نمونه استانداردهای زیادی تعریف شده که یا همپوشانی دارند یا در برخي موارد با هم متضادند. بنابراین کاربران همواره از انتخاب نادرست نگرانند.
 

برخی موضوعات مشابه

بالا