سرويس هاي وب يکي از مهمترين تحولات اخير در زمينه نرم افزار بوده که قطعا" دستاوردهاي فراواني را در ارتباط با طراحي و پياده سازي نرم افزار ، بدنبال خواهد داشت . سرويس هاي وب ، تسهيلات لازم بمنظورايجاد نسل جديدي از برنامه هاي وب را ارائه مي نمايند. در مجموعه مقالاتي که ارائه گرديد با مفاهيم اوليه سرويس هاي وب آشنا شديم . در ادامه سلسله مباحث مربوط به سرويس هاي وب ، به بررسي معماري آنان خواهيم پرداخت .
مقدمه
بمنظور ايجاد برنامه هاي توزيع شده قدرتمند و انعطاف پذير ، موارد متعددي وجود دارد که مي بايست به آنها توجه گردد:
• در موارديکه قصد ارتبا ط بين منابع نرم افزاري وجود داشته باشد ، منابع مي بايست بدرستي و بخوبي با يکديگر مرتبط گردند( منابع مشخص و از يکديگر متمايز گردند).
• ارتباط بين برنامه ها مي بايست متکي بر استانداردهاي اينترنت باشد .
• اينترفيس هاي ( بخش هاي مرتبط با استفاده کننده ) منابع نرم افزاري ، مي بايست براي استفاده عموم منتشر و امکان دسترسي به تعاريف اينترفيس بهمراه مستندات مربوطه وجود داشته باشد .
برنامه هائي که با لحاظ نمودن موارد فوق ، طراحي و پياده سازي مي گردند ، مزاياي زير را بدنبال خواهند داشت :
• مي توان از سرويس هاي نرم افزاري و منابع خارجي بمنظور طراحي و پياده سازي نرم افزار مورد نظر خود استفاده کرد.
• امکان ايجاد منابع نرم افزاري بيشتري بصورت ماژولار ، وجود خواهد داشت ( کيت هاي نرم افزاري با قابليت استفاده مجدد ) .
• هزينه توليد نرم افزار کاهش و بهره وري افزايش خواهد يافت .
• مطرح شدن ايده عرضه نرم افزار بعنوان سرويس . بدين ترتيب در مقابل عرضه يک نرم افزار Stand-alone ، مي توان از رويکرد نرم افزار بعنوان سرويس ، استفاده نمود.
عناصر معماري مبتني بر سرويس
معماري مبتني بر سرويس براي پياده سازي برنامه هاي توزيع شده ،ايده آل مي باشد . معماري فوق ،امکان پياده سازي پويا ، آزاد و گسترده برنامه هاي توزيع شده را فراهم مي نمايد.
امروزه شاهد بکارگيري سيستم هاي متعددي مي باشيم که خود از چندين برنامه و يا زير سيستم استفاده مي نمايند. با توجه به ارتباط بين سيستمها با يکديگر ، ايجاد و اعمال يک تغيير در ارتباط با هر يک از زير سيستمها مي تواند باعث بروز اشکال در تعداد زيادي از عناصر وابسته و يا ساير برنامه ها گردد . رويکرد فوق ، افزايش هزينه نگهداري اين نوع سيستم ها را بدنبال خواهد داشت .
معماري مبتني بر سرويس ، وابسته به سه عنصر اساسي است که هر يک داراي جايگاه خاص خود مي باشند : Service Provider ( ارائه دهنده سرويس ) ، Service consumer ( مصرف کننده سرويس ) و Service broker ( کارگزار سرويس ) . شکل زير معماري فوق را نشان مي دهد .
ارائه دهنده سرويس ، گره اي در شبکه ( اينترانت و يا اينترنت ) است که امکان دستيابي به اينترفيس يک سرويس نرم افزاري را فراهم مي نمايد . گره ارائه دهنده سرويس ، امکان دستيابي به سرويس هاي يک سيستم تجاري ، يک زير سيستم و يا يک عنصر را بوجود مي آورد .مصرف کننده سرويس ، گره اي در شبکه است که به سرويس ارائه شده توسط يک ارائه دهنده سرويس مرتبط و از امکانات و پتانسيل هاي سرويس ارائه شده در جهت پياده سازي سيستم خود استفاده مي نمايد. مصرف کننده سرويس را مي توان بمنزله يک برنامه سرويس گيرنده بر روي يک گره در نظر گرفت . کارگزار سرويس ، گره اي در شبکه است که مسئول تشريح سرويس را برعهده داشته و مي توان آن را بمنزله يک دفترچه آدرس در نظر گرفت که براي جستجو و يافتن سرويس ، مورد استفاده قرار مي گيرد. مصرف کننده سرويس ( متقاضي ) ، درخواست خود را در ارتباط با سرويس موردنظر به کارگزار ارائه و کارگزار، سرويس درخواستي بهمراه ارائه دهنده مورد نظر را پيدا مي نمايد .
ارتبا ط بين وظايف سه گانه
عناصر سه گانه اشاره شده در معماري مبتني بر سرويس ، با يکديگر مرتبط تا زمينه تحقق عمليات زير فراهم گردد :
• عرضه سرويس . ارائه دهندگان سرويس ، سرويس ها ي خود را براي يک کارگزار سرويس ، عرضه مي نمايند ( ثبت در دفترچه آدرس ) . اطلاعات ارائه شده شامل : تعريف اينترفيس سرويس ، محل ارائه دهندگان سرويس ، ساير اطلاعات حمايتي و يا مستندات ضروري خواهد بود.
• يافتن سرويس . مصرف کنندگان ، سرويس ها ي مورد نياز خود را با کمک يک کارگزار ، پيدا خواهند کرد .
• ارتباط به سرويس . مصرف کنندگان سرويس به سرويس هاي خاصي که توسط يک ارائه دهنده سرويس ارائه شده است ، مرتبط و زمينه استفاده آنان از سرويس مورد نظر فراهم خواهد شد. فرآيند فوق ، شامل تائيد مصرف کنندگان خواهد بود.
عمليات يافتن و نسبت دهي سرويس ها مي تواند بصورت پويا انجام گيرد . بدين ترتيب برنامه ها قادر خواهند بود بصورت پويا خود را پيکربندي نمايند. مثلا" اگربرنامه اي تشخيص دهد که مدت زمان پاسخ از يک ارائه دهنده سرويس ، زماني غير معقول است ، مي تواند در زمان اجراء ، تصميم بر استفاده از يک ارائه دهنده سرويس ديگر نمايد .
معماري سرويس هاي وب و معماري مبتني بر سرويس
عناصر اساسي در معماري سرويس وب عبارتند از :
• ارائه دهنده سرويس وب .گره اي در شبکه که مسئوليت ميزبان نمودن يک سرويس وب را برعهده خواهد داشت .
• مصرف کننده سرويس . گره اي در شبکه که مسئوليت ميزبان نمودن هر سرويس گيرنده اي را که قادر به ارتباط با استفاده از HTTP باشد را برعهده مي گيرد. مرورگرها ، برنامه هاي کنسول و برنامه هائي با رابط کار گرافيکي سنتي ، نمونه هائي از برنامه هاي سرويس گيرنده مي باشند.
• کارگزار سرويس وب. گره اي در شبکه که مسئوليت ميزبان نمودن يک ريجستري سراسري از تمامي سرويس هاي وب در دسترس را برعهده خواهد داشت .( نظير يک کتاب آدرس جامع ) .
تمامي گره هاي فوق ، قادر به ارتباط با يکديگر از طريق شبکه هاي مبتني بر پروتکل TCP/IP مي باشند . در سرويس هاي وب ، سه گره تعريف شده در معماري مبتني بر سرويس ، متناظر با عناصر سرويس هاي وب خواهند بود:
کارگزار سرويس ، مسئوليت ميزبان نمودن UDDI)Universal Description,Discovery and Integration ) را برعهده خواهد داشت .
ارائه دهنده سرويس ، مسئوليت عرضه سرويس هاي وب از طريق صفحات ASP.NET با انشعاب asmx . را برعهده خواهد داشت .
مصرف کننده سرويس ، قابليت برقراري ارتباط از طريق HTTP ويا SOAP)Simple Object Access Protocol) را دارا مي باشد .
همانگونه که اشاره گرديد، در معماري يک سرويس وب از سه عنصر اساسي استفاده مي شود : ارائه دهنده سرويس وب ، استفاده کننده سرويس وب و کارگزار سرويس وب . در ادامه به تشريح هر يک از عناصر فوق خواهيم پرداخت . ( در اين بخش از مقاله به بررسي ارائه دهنده سرويس پرداخته و در بخش دوم اين مقاله ، مصرف کننده سرويس و کارگزار سرويس ، تشريح خواهند شد ) .
ارائه دهنده سرويس
يکي از مهمترين عناصر در معماري سرويس وب ، جايگاه و نقش ارائه دهنده سرويس است . زيرساخت ايجاد شده توسط ارائه دهنده سرويس ، امکانات لازم حمايتي و ميزبان نمودن سرويس هاي وب رافراهم مي نمايد. قابليت پردازش پروتکل HTTP و سرويس اعتبار سنجي ، نمونه هائي از زير ساخت ارائه شده توسط ارائه دهنده سرويس مي باشند. درصورتيکه ارائه دهنده سرويس قادر به ارائه چنين زيرساختي نباشد ، سرويس وب مي بايست خود اين زير ساخت را حمايت نمايد .وضعيت فوق، طراحي و پياده سازي سرويس هاي وب را با مشکل بيشتر مواجه خواهد کرد.
سرويس دهنده وب
يک ارائه دهنده سرويس مي بايست حداقل شامل يک گوش دهنده ( listener ) پروتکل باشد . براي سرويس هاي وبي که توسط فريمورک دات نت و يا ويژوال استوديو دات نت ، پياده سازي مي گردند ، گوش دهنده پروتکل مي بايست يک HTTP listener باشد . با توجه به اينکه يک ارائه دهنده سرويس قادر به ميزبان نمودن چندين سرويس وب خواهدبود ،ارائه دهنده سرويس ،مي بايست امکان هدايت مناسب يک درخواست به سرويس وب مناسب را دارا باشد . ( قابل مقايسه با سرويس RPCCC) Remote Procedure Call Subsystem)، که مسئوليت پاسخگوئي به درخواست هاي وارده DCOM وهدايت آنان به يک سرويس دهنده مناسب COM است) .مصرف کنندگان ناشناخته سرويس وب ، قادر به دستيابي به يک ارائه دهنده سرويس مي باشند . بنابراين لازم است ، سرويس دهنده وب سرويس هاي پايه امنيتي را حداقل در سطح پروتکل، ارائه نمايد. IIS ، که يک سرويس دهنده وب است ، سرويس هاي مورد نياز يک سرويس وب را ارائه مي نمايد :
• IIS يک HTTP listener است
• IIS با استفاده از معماري ISAPI ، مي تواند بعنوان يک gateway در رابطه با سرويس هاي وب رفتار نموده و علاوه بر ميزباني از سرويس هاي وب متعدد ، زمينه هدايت صحيح آنان را نيز فراهم نمايد.
• IIS زيرساخت قابل ملاحظه اي در رابطه با امنيت را ارائه مي نمايد .
IIS و سرويس هاي وب
يک سرويس دهنده وب نظير IIS ، قادر به فراخواني يک سرويس از جانب يک سرويس گيرنده با استفاده از گزينه هاي متعددي است . سرويس دهنده وب قادر به فعال نمودن ( اجراء ) يک برنامه CGI)Common Gateway Interface) ، اجراي يک مفسر اسکريپت بمنظور برخورد با صفحات ASP و يا فراخواني يک برنامه ISAPI است .زمانيکه IIS همراه با CLR فعاليت مي نمايد ، از يک فيلتر ISAPI بمنظوربررسي درخواست هائي در ارتباط با صفحات با انشعاب asmx استفاده و در ادامه يک ميزبان زمان اجراء را فعال مي نمايد . ميزبان زمان اجراء ، کد مربوط به سرويس وب را که توسط فريمورک دات نت پياده سازي شده است ، اجراء خواهد کرد.
در اين بخش به بررسي نقش و جايگاه مصرف کنندگان و کارگزاران سرويس ها ي وب ، خواهيم پرداخت .
مصرف کننده سرويس
در اين بخش با حداقل قابليت هاي موردنياز يک مصرف کننده سرويس وب بمنظور استفاده از يک سرويس وب ، نحوه يافتن يک سرويس وب توسط مصرف کننده سرويس وب ، نقش پروکسي ها در پياده سازي مصرف کنندگان سرويس وب ونحوه استفاده از پروکسي ها بمنظور فراخواني غيرهمزمان سرويس هاي وب ، آشنا خواهيم شد .
حداقل توانائي : بمنظور استفاده از سرويس وب ، يک مصرف کننده سرويس وب ، مي بايست متدهائي از سرويس وب را بهمراه پارامترهاي مورد نياز و بکمک استفاده از پروتکل هاي موجود ( مثلا" SOAP ) و حمايت شده توسط سرويس مورد نظر را فراخواني نمايد . فرمت دهي مناسب پيام ها قبل از ارسال براي يک سرويس وب ، آشنائي و برخورد مناسب با جزئيات پروتکل هائي که سرويس وب حمايت مي نمايد، از جمله مواردي مي باشند که مي تواند چالش هائي را در زمينه سرويس هاي وب بدنبال داشته باشد. فريمورک دات نت با ارائه کلاس هائي در اين زمينه ، اکثر جزئيات سطح پائين را کپسوله مي نمايد . کپسوله نمودن جزئيات سطح پائين ، ضرورت پياده سازي زيرساخت را از پياده کنندگان سلب و آنان را از اين فعاليت معاف مي نمايد .
مکان يابي سرويس : قبل از امکان استفاده از يک سرويس وب ،مصرف کننده مي بايست قادر به يافتن آن باشد . يکي از راهکارهاي موجود در اين زمينه درج کد بصورت دستي ( برخوردي کاملا" ايستا ) در مصرف کننده سرويس وب و در هنگام طراحي است .در چنين مواردي آدرس سرويس ارائه شده بصورت مستقيم در برنامه مصرف کننده سرويس درج خواهد شد . يکي ديگر از راهکارهاي موجود در اين زمينه ، امکان يافتن پوياي يک سرويس وب توسط مصرف کننده سرويس وب و در زمان اجراء است . بدين ترتيب ، مصرف کننده سرويس وب داراي انعطاف لازم در خصوص انتخاب بين سرويس هاي وب رقيب با عملکرد مشابه و بر اساس ويژگي هائي خاص نظير قيمت و کارآئي ، خواهد بود . روش استاندارد براي يافتن سرويس هاي وب ، تشريح سرويس و خدمات ارائه شده توسط آنان ، استفاده از يک ريجستري UDDI است . ( Universal Description,Discovery, and Integration )
پروکسي ها : در زمان پياده سازي يک مصرف کننده سرويس وب ، پياده کنندگان مي توانند زمان خود را صرف افزايش بهره وري نموده و خود را درگير موارد زير ننمايند .
• فعاليت و در گير شدن در ارتباط با پروتکل هاي زيربنائي
• پارسينگ بايت ها بمنظور استخراج داده
• بررسي صحت و اعتبار داده هاي ورودي ( دريافتي )
• ايجاد و ساخت بسته هاي اطلاعاتي بمنظور خروجي عليرغم توصيه هاي انجام شده ، اغلب پياده کنندگان بمنظور انجام عمليات فوق ، وقت خود را صرف انجام فعاليت هاي فوق مي نمايند ، چراکه در اين رابطه کد از قبل ايجاد شده اي وجود ندارد. يکي از رويکردهاي متداول در اين زمينه (هندل نمودن فعاليت ها ي فوق ) ، کپسوله سازي و يا پنهان نمودن جزئيات پياده سازي در کلاسي است که بعنوان يک پروکسي براي سرويس وب ، رفتار مي نمايد . کلاس هاي پروکسي علاوه بر پنهان سازي جزئيات پياده سازي ، يک مدل برنامه نويسي شناخته شده را بمنظور فراخواني متدهاي اشياء در اختيار پياده کنندگان قرار خواهند داد. تنها مسئله مرتبط با روش فوق ، پياده سازي يک کلاس پروکسي براي هر اينترفيس سرويس وبي خواهد بود که يک مصرف کننده سرويس وب از آن بمنظور ارتباط استفاده خواهد کرد . مايکروسافت در اين رابطه ابزاري با نام Wsdl.exe را ارائه که مي توان از آن بمنظور پياده سازي کلاس هاي پروکسي سرويس وب استفاده نمود. باتوجه به اينکه، يک اينترفيس سرويس وب با استفاده از XML تعريف مي گردد ، شايسته تر است که ابزارهائي را ايجاد که قادر به توليد اتوماتيک کلاس هاي پروکسي باشند .
فراخواني غيرهمزمان : با توجه به اينکه دستيابي به سرويس هاي وب عموما" از طريق شبکه ها ( نظير اينترنت ) که عمدتا" قابليت اطمينان و سرعت شبکه هاي محلي را ندارند ،ميسر مي گردد ، شايد مناسبتر باشد که مصرف کنندگان سرويس وب ، بگونه اي پياده سازي گردند که قادر به ايجاد فراخواني غيرهمزمان به سرويس هاي وب باشند . پروکسي ها ئي که با استفاده از Wsdl.exe توليد و ايجاد مي گردند ، اين امکان را به صدازنندگان سرويس خواهند داد که فراخواني غيرهمزمان به يک سرويس وب را داشته باشند. کلاس پروکسي با ترکيب RunTime ، مسئوليت برخورد با جزئيات مديريت Thread pool ، اتمام يک متد callback notification و ساير موارد مرتبط را برعهده خواهند داشت .
نمونه هائي از مصرف کنندگان سرويس وب : برنامه هاي تجاري ( زمينه هاي متعدد تجاري ) اولين کاربران و متقاضيان سرويس هاي وب مي باشند ولي تعداد زيادي فعاليت تجاري ديگر نيز وجود دارد که مي توانند بعنوان مصرف کنندگان سرويس وب مطرح گردند . روزنامه هاي Online و ASP :Application Service Provider ، دو نمونه در اين زمينه مي باشند . يک روزنامه Online ، ممکن است از جندين سرويس وب خبري بمنظور تامين اخبار نشريه خود استفاده نمايد . اخبار ورودي مي توانند قالب بندي و فيلتر شده و براي آنان فهرست توصيفي تهيه و قابليت جستجو بر روي آنان با توجه به خواست مصرف کننده ايجاد گردد . يک ASP ممکن است سرويس هاي وب متعددي را ميزبان و يا خود راسا" اقدام به توليد سرويس هاي وب مورد نياز و ارائه آنان به مشتريان مربوطه نمايد.
کارگزار سرويس وب
همانگونه که يک معماري مبتني بر سرويس نيازمند يک کارگزار سرويس است ، يک معماري سرويس وب ، نيز نيازمند يک کارگزار سرويس خواهد بود. بمنظور تسهيل در ارتباط ، بنگاههاي تجاري نيازمند يک راه حل جامع و فراگير بمنظور نشر اطلاعات خود به هر يک از مشتريان و يا شرکاء تجاري خود در سطح جهان مي باشند .يک کارگزار سرويس وب ، هم با ارائه دهنده سرويس وب و هم با مصرف کننده سرويس وب ارتباط تا زمينه استفاده از امکانات ارائه شده توسط ارائه دهندگان سرويس هاي وب و استفاده از سرويس هاي وب ارئه شده براي مصرف کنندگان سرويس هاي وب ، فراهم گردد. سازمان ها با نشر اطلاعات مرتبط با سرويس ها و خدمات تجاري خود ، به پتانسيل هاي زير دست خواهند يافت :
• امکان يافتن سريع همکاران تجاري از بين ميليون ها بنگاه تجاري Online
• تعريف نحوه مديريت فعاليت هاي تجاري پس از يافتن بنگاههاي تجاري مورد نظر
• ايجاد يک رويکرد گسترده صنعتي براي فعاليت هاي تجاري که ارتباط و همبستگي سريع و آسان با مشتريان و شرکاء تجاري بر روي اينترنت را بدنبال خواهد داشت .در اين رابطه ، سازمانها قادر به ارائه اطلاعات مشترک در ارتباط با محصولات و خدمات خود بوده و امکان حق انتخاب در رابطه با گزينش نوع ارتباط با ساير فرآيندهاي تجاري و سيستم ها نيز فراهم مي گردد .
ارتباط بين کارگزار سرويس وب و ارائه دهنده سرويس وب : کارگزاران بمنظور ارائه صحيح سرويس هاي وب از ارائه دهندگان سرويس هاي وب درخواست اطلاعات متنوعي در رابطه با سرويس ارائه شده را خواهند داشت . اطلاعات اخذ شده بمنزله شناسنامه يک سرويس وب خواهد بود که پس از ارائه و تائيد و طي مراحل مربوطه در ريجستري UDDI ذخيره تا امکان در اختيار قرار دادن آنان براي مصرف کنند گان سرويس هاي وب فراهم گردد .کارگزاران سرويس هاي وب ، اطلاعات عمومي زير را در ارتباط با يک سرويس وب منتشر خواهند کرد :
• اطلاعات طبقه بندي شده اي که امکان گروه بندي سرويس وب را فراهم نمايد .
• اطلاعات مورد نياز بمنظور ارتباط با سرويس وب
• شرح خدمات ارائه شده توسط سرويس هاي وب
• لينک هاي مورد نياز بمنظور استفاده از ساير مستندات که شامل اطلاعاتي در رابطه با سرويس وب است .
• آدرس ( مکان ) نهائي سرويس هاي وب . آدرس هاي فوق ، عموما" بصورت URL)Uniform Resource Locators) بوده و مکان و موقعيت سرويس هاي وب اعلام شده را مشخص مي نمايند . با توجه به عدم توانائي ذخيره سازي تمامي اطلاعات بر روي رسانه هاي ذخيره سازي کارگزار سرويس وب ، از اشاره گرهائي خاص در اين زمينه استفاده که باعث تسهيل در يافتن اطلاعات تکميلي و مورد نياز در ارتباط با سرويس وب خواهد بود. ماهيت برخي از اطلاعات مرتبط با يک سرويس وب نيز بگونه اي است که امکان استقرار آنان بر روي کارگزار وجود نداشته و مي بايست از لينک هاي مورد نظر و معرفي شده توسط کارگزار بمنظور اخذ اطلاعات تکميلي استفاده گردد (اطلاعات مرتبط با ملزومات مورد نياز براي تائيد اعتبار) .
ارتباط بين کارگزار و مصرف کننده سرويس : اولين و در عين حال مهمترين نوع ارتباط بين مصرف کنندگان سرويس وب و کارگزار سرويس وب ، جستجو براي يافتن سرويس وب است . کارگزاران مي بايست تسهيلات لازم در خصوص جستجوي سرويس هاي وب را فراهم تا امکان يافتن آنان بسادگي و با سرعت مناسب براي مصرف کنندگان ، فراهم گردد .
ريجسترهاي UDDI : کارگزاران ، بمنظور ارائه سرويس هاي وب از رويکردهاي متعددي استفاده مي شود . يکي از ساده ترين رويکردهاي موجود در اين زمينه ، استفاده از يک روش خاص با توجه به هدف مورد نظر براي مبادله اطلاعات و الزام تمامي همکاران تجاري براي تبعيت از آن است . در اين رويکرد ،عملا" به يک کارگزار نياز نخواهد بود . مثلا" برخي سازمانها از مبادله اطلاعات الکترونيکي ( EDI:Electronic Data Interchange ) استفاده و بسادگي مستندات EDI مورد نياز همکاران تجاري را بر روي سايت سازمان خود قرار مي دهند .در رابطه با رويکرد فوق ، مي بايست به اين نکته ( مسئله) اشاره نمود که روش فوق ، مکانيزم مناسب و ساده اي براي يافتن فعاليت هاي تجاري خارجي و سازگار با فعاليت تجاري سازمان مربوطه ، نخواهد بود .
يکي ديگر از رويکردهاي موجود در اين زمينه ، الزام تمامي همکاران تجاري براي استقرار يک فايل خاص بمنظور تشريح سرويس وب بر روي سايت هاي خود مي باشد . در ادامه جستجو کننده وب مي تواند بصورت اتوماتيک به يک URL ريجستر شده، دستيابي و ايندکس مناسبي از هر يک از فايل هاي تشريح سرويس هاي وب که بر روي هر يک از سايت ها پيدا مي نمايد ، ايجاد نمايد . يک کارگزار سرويس وب مي تواند در ادامه يک Portal را ايجاد که امکان دستيابي به ايندکس هائي که جستجو کننده وب آنها را ايجاد نموده است ، فراهم گردد. اتکاء و وابستگي به جستجو کنندگان وب براي ارائه ايندکس هاي سرويس هاي وب داراي مسائل مشابهي با روش استاندارد موتورهاي جستجو است که ما امروزه با آن سروکار داريم . مشکل اساسي رويکرد فوق ، عدم وجود مکانيزم لازم بمنظور اطمينان از انسجام و يکنواختي در فرمت تشريح سرويس و رديابي آسان و آگاهي از زمان مورد نظر دررابطه تغييرات اعمال شده است . همانگونه که ممکن است يک موتور جستجوي وب تعداد زيادي لينک غير معتبر را برگرداند ، استفاده از روش فوق در ارتباط با سرويس هاي وب نيز ممکن است نتايج غير معتبري در ارتباط با تشريح سرويس ها را ارائه نمايد.
رويکرد کارگزاري ، که در ارتباط با سرويس هاي وب انتخاب شده است ، مبتني بر يک ريجستري توزيع شده از بنگاههاي تجاري و تشريح سرويس هاي مربوطه آنان با فرمت XML است . راه حل ارائه شده بمنظور پياده سازي رويکرد فوق و برطرف نمودن مسئله يافتن سرويس هاي وب ، UDDI ) Universal Description,Discovery, and Integration ) ناميده مي شود .
UDDI ، مشخصه اي براي اطلاعات مبتني بر وب توزيع شده از سرويس هاي وب ريجستر شده است . با استفاده از UDDI ، بنگاه هاي تجاري قادر به ريجستر نمودن اطلاعات مرتبط با سرويس هاي خود بوده و بنگاه هاي تجاري متقاضي ، قادر به يافتن و استفاده از سرويس هاي وب خواهند بود . عنصر اساسي در يک ريجستري UDDI ، فايلي است که موجوديت يک بنگاه تجاري را بهمراه سرويس هاي وب مربوطه آن تشريح مي نمايد . اطلاعات مورد نظر بمنظور ريجستر نمودن يک فعاليت تجاري از سه بخش اساسي تشکيل شده است :
• آدرس بنگاه تجاري و اطلاعات لازم بمنظور ارتباط
• ليست طبقه بندي صنعتي منطبق بر استاندارد هاي موجود
• اطلاعات فني در رابطه با سرويس هاي وب عرضه شده توسط بنگاه تجاري . اطلاعات فوق ، شامل مرجع لازم به مشخصه هاي اينترفيس سرويس وب ، پتانسيل ها واشاره گرهائي به فايل هاي متعدد اطلاعاتي است.
مدل برنامه نويسي سرويس هاي وب
بمنظور پياده سازي و يا استفاده از يک سرويس وب ، لازم است با ويژگي هاي اساسي مدل برنامه نويسي سرويس هاي وب آشنا شويم .
پروتکل هاي وب : اولين ويژگي مدل برنامه نويسي سرويس هاي وب ، پروتکل ارتباطي است که معمولا" HTTP خواهد بود. پروتکل HTTP ، بطور ذاتي مفهوم استفاده از يک متد را حمايت نمي نمايد . با توجه به محدوديت فوق ، مصرف کنندگان سرويس هاي وب اغلب از XML-Based SOAP ، بر روي HTTP براي فراخواني ( صدا زدن ) متدهاي سرويس هاي وب استفاده مي نمايند . بنابراين ، لازم است پياده کنندگان داراي دانش مناسبي در ارتباط با پروتکل HTTP و SOAP باشند .
StateLess : اکثر پياده کنندگان با يک مدل شي Stateful آشنائي لازم را دارند. بعبارت ديگر ، نمونه اي از يک کلاس ايجاد و در ادامه عمليات متفاوتي بر روي شي انجام خواهدشد . بين هر فراخواني متد ، شي وضعيت خود را نگهداري مي نمايد . در يک محيط stateless ، شي وضعيت خود را بين فراخواني ها ، نگهداري نمي نمايد. هر وضعيتي که مي بايست بين فراخواني ها نگهداري گردد ، در يک بانک اطلاعاتي و يا کوکي ذخيره مي گردد . سرويس هاي وب اشيائي با رويکردهاي سنتي نمي باشند. زمانيکه از ASP.NET بمنظور پياده سازي يک سرويس وب استفاده مي گردد ، مي توان از يک کلاس سي شارپ بمنظور پياده سازي آن استفاده نمود. صفحات ASP.NET براي مراجعه به کلاس فوق ، از يک فايل با انشعاب asmx . استفاده مي نمايند. زمانيکه صفحه پردازش مي گردد ، يک نمونه از کلاس ايجاد مي گردد . مدت زمان حيات صفحه asmx . ، به عمر شي نتيجه محدود و يک نمونه شي متفاوت ديگر ساير فراخواني ها به متد را پاسخ خواهد داد بنابراين ، کلاس هائي که يک سرويس وب را پياده سازي مي نمايند ، Stateless خواهند بود . با اينکه طراحي سيستم هاي Stateless در مرحله اول مشکل تر بنظر مي آيد ولي همزمان با افزايش حجم عملياتي سيستم ، توان آنان در سرويس دهي افزايش خواهد يافت .
Loosely coupled . در يک برنامه غير توزيع شده ، اگر هر يک از منابع نرم افزاري مورد نياز، نظير يک تابع کتابخانه اي در يک DLL)Dynamic Link Library) ، زمانيکه يک برنامه فعال مي گردد در دسترس باشند ، امکان دستيابي به منابع فوق در مدت زمان حيات نرم افزار ، ميسر خواهد بود . براي برنامه هاي توزيع شده ، خصوصا" برنامه هاي توزيع شده اي که از منابع نرم افزاري بر روي اينترنت استفاده مي نمايند ، ممکن است منابع نرم افزاري مورد نياز همواره در دسترس نباشند. برنامه هاي توزيع شده که با استفاده از سرويس هاي وب پياده سازي مي گردند ، مي بايست داراي انعطاف لازم و بمراتب بيشتري در ارتباط با منابع نرم افزاري غيرقابل دسترس حتي در زمان اجراء باشند . بنابراين ، راه حل هاي مبتني بر سرويس هاي وب ، مي بايست داراي پتانسيل لازم بمنظور پيکربندي مجدد و پوياي خود باشند (در موارديکه منبع مورد نياز دردسترس نمي باشد ) .
فرمت عمومي داده
فرمت عمومي داده در سرويس هاي وب ، XML است . در اين رابطه ذکر نکات زير ضروري است :
• پروتکل SOAP مبتني بر XML است .
• داده برگردانده شده از يک سرويس وب ، يک سند XML است .
• سرويس هاي وب با استفاده از اسناد XML در يک ريجستري UDDI ريجستر مي گردند .
• برنامه هاي ASP.NET با استفاده از فايل هاي پيکربندي XML پيکربندي مي گردند .