Port Type: این بخش در واقع به عنوان واسط وبسرویس عمل میکند. مجموعه ای از عملیات در یک Port Type قرار میگیرند و واسط دلخواه را ایجاد میکنند. هر وب سرویس ممکن است چندین واسط داشته باشد که هر کدام از Port Type ها با یک نام مشخص تعریف میشود.
WSDL چهار روش برای ارسال داده از نقاط انتهایی خود پشتیبانی میکند. نقاط انتهایی در فایل توصیفی WSDL در واقع همان عملیات موجود در Port Type ها هستند. بنابراین چهار نوع عملیات در فایل توصیفی خواهیم داشت که به شرح زیر میباشند.
عملیات یک طرفه[۳۵] : در این نوع عملیات فقط یک پیام به عنوان ورودی دریافت میگردد. فرمت کلی این نوع عملیات به صورت مقابل است
عملیات در خواست و پاسخ[۳۶] : ابتدا یک پیامی را دریافت میکند و در مرحلهی بعد پیام مرتبط با پیام دریافتی به مشتری بر میگرداند.
عملیات خواهش و پاسخ[۳۷] : پیامی را به مشتری میفرستد و انتظار دارد که مشتری پیامی به عنوان جواب برگرداند.
عملیات اطلاع[۳۸] :فقط پیامی را به عنوان اطلاع به مشتری میفرستد.
Binding: ظاهر بخش binding مشابه بخش Port Type است ولی نحوهی عملکرد آنها با هم متفاوت است. بخش Type Port تنها عملیاتی که وبسرویسها ارائه میدهند را به صورت انتزاعی نشان میدهد. در حالی که بخش Binding چگونگی ارتباط این عملیات با مشتریها را به صورت فیزیکی مشخص میکند. به عنوان مثال، اینکه هر کدام از عملیاتها با چه پروتکلی (TCP , SMTP ,HTTP) با محیط بیرون ارتباط بر قرار کند، در این بخش مشخص میگردد.
Service: آدرس مجموعه ای از پورتها را مشخص میکند.
۲-۳-۲ پروتکل SOAP
پروتکل SOAP یک مکانیزم ساده برای تبادل اطلاعات ساختیافته[۳۹] در بین محیطهای نامتمرکز[۴۰] و توزیع شده میباشد و همین سادگی مکانیزم باعث شده است که امروزه انواع مختلفی از سیستمها (از سیستمهای تبادل پیام تا سیستمهای فراخوانی راه دور) از این پروتکل برای تبادل اطلاعات استفاده کنند. هدف اصلی طراحان این بود که بتوانند پروتکلی ارائه دهند تا از یک طرف مشکلاتی که در سیستمهای تبادل پیام قبلی و سیستمهای توزیع شدهی شیءگرا وجود داشت را نداشته باشند (مشکلاتی مثل جمع آوری زباله های توزیع شده[۴۱]، دسته کردن پیامها[۴۲] و ارجاع به اشیاء[۴۳] ) و همچنین از سوی دیگر ساده، تطبیق پذیر و مقیاس پذیر[۴۴] باشد. با گذشت یک دهه از توسعه این پروتکل، امروزه میبینیم که سه ویژگی فوق به خوبی در پروتکل اعمال شده است به طوری که امروزه پروتکلهای انتقال مختلفی مثل[۴۵] JMS ، SMTP[46] و[۴۷]HTTP برای تبادل اطلاعات از این پروتکل استفاده میکنند.
۲-۳-۲-۱ ساختار کلی پیامهای SOAP
هر پیام[۴۸] SOAP در واقع یک سند XML است که شامل دو بخش اجباری و یک بخش اختیاری است که بخش اجباری آن به شرح زیر میباشد [۲۱] .
پاکت[۴۹] : وجود این عنصر در هر پیامی الزامی است. با اضافه کردن بعضی از ویژگیها به این عنصر، اطلاعات اضافی را میتوان در اختیار دیگران قرار داد مثل اینکه چه چیزی در پیام وجود دارد و یا اینکه پیام باید به دست چه کسی برسد. دو عنصر پیام، سربرگ و بدنه هستند که در داخل این عنصر قرار میگیرند:
سربرگ[۵۰] : این عنصر اختیاری مکانیزم سادهای را برای اضافه کردن ویژگیهای اضافی همچون اعتبارسنجی[۵۱]، مدیریت تراکنش[۵۲]، پرداخت[۵۳] و غیره، به پیام فراهم میآورد بدون اینکه توافقی بین طرفین ارتباط حاصل شود.
بدنه[۵۴] : عنصر بدنه شامل اطلاعات ساخت یافتهی ضروری است که باید به گیرندهی نهایی برسد. عنصر بدنه شامل یک عنصر دیگر به نام عنصر خطا است که برای گزارش خطاهای احتمالی به مبدأ به کار میرود.
۲-۳-۳ استاندارد UDDI
بعد از فراهم آوردن زیرساختها و پروتکلهای مختلف برای پیادهسازی نرمافزارها از طریق معماری سرویس گرا مشکلی در این زمینه به وجود آمد این است که باید راهکاری برای یافتن وبسرویسهای مناسب جهت استفاده در پیادهسازی نرمافزار اندیشیده شود. برای اولین بار در سال ۲۰۰۲ سازمان استانداردسازی اطلاعات ساختیافته[۵۵] یک پروژهی صنعتی به نام UDDI توسعه داد که می تواند استانداری را برای انتشار و کشف وبسرویسها ارائه دهد و یک شمای کلی را در اختیار پژوهشگران قرار دهد تا بتوانند الگوریتمهای کشف وب سرویس خود را با رعایت اصول اولیهای که در این پروژه رعایت شده است، توسعه دهند. امروزه الگوریتمهای مختلفی در این زمینه ارائه شده است که در فصل بعدی به طور مفصل مورد بحث قرار خواهند گرفت.
ساختار کلی اطلاعاتی که توسعه دهندگان وبسرویسها هنگام انتشار وبسرویس خود در مخازن UDDI ثبت میکنند، در سه صفحهی (دسته) متفاوت طبقه بندی میشود که هر صفحه شامل بخشی از اطلاعات ارائه داده شده میباشد [۲۲] .
صفحات سفید[۵۶] : توسعه دهندگان نرمافزارهای توزیع شده با بهره گرفتن از این اطلاعات میتوانند به وبسرویس مورد نظر دسترسی پیدا کنند و نیازهای خود را برآورده کنند. بعضی از این اطلاعات عبارتند از : نام و آدرس اینترنتی و شناسهی منحصر به فرد وب سرویس
صفحات زرد[۵۷] : در این صفحات وب سرویسها طبق طبقه بندیهای صنعتی استاندارد (مثل SIC [۵۸]، NAICS [۵۹] و UNSPSC [۶۰] ) در گروههای مختلفی قرار میگیرند تا کاربران را در پیدا کردن وبسرویس مورد نظر راهنمایی کنند.
صفحات سبز[۶۱] : شامل اطلاعات تکنیکی درباره توصیف عملکرد وبسرویسها و روالهای آنها است.
۲-۴ خوشهبندی[۶۲]
خوشهبندی اسناد، سازماندهی خودکار اسناد در داخل خوشههاست به طوری که اسناد داخل یک خوشه نسبت به اسناد دیگری که در خوشههای دیگری هستند، مشابهت بیشتری داشته باشند [۲۳] . این یک تعریف ساده و کامل از خوشهبندی است که امروزه در زمینه های مختلفی همانند داده کاوی[۶۳]، موتورهای جستجو[۶۴] و بازیابی اطلاعات[۶۵] مورد استفاده قرار میگیرد. در سیستمهای کشف وبسرویس، در واقع توصیفات وبسرویسها به عنوان اسناد متنی در نظر گرفته میشوند و الگوریتمهای کشف وبسرویس نیز یک نمونهی کوچکی از موتورهای جستجو میباشد که وب سرویسهای مناسب را به کاربر برمیگردانند. بنابراین در اغلب الگوریتمهای کشف وب سرویس از تکنیک خوشهبندی استفاده میشود که پیچیدگی زمانی الگوریتم را کاهش میدهد. با توجه به توضیحات داده شده، استفاده از این مفهوم در الگوریتم پیشنهادی یک امر ضروری است. در نتیجه در این قسمت مروری بر الگوریتمهای خوشهبندی میشود تا پیش زمینهای برای استفاده از آن در الگوریتم فراهم شود.
در کل الگوریتمهای خوشهبندی به دو زیر شاخه اصلی تقسیم میشوند [۲۴] که عبارتند از :
خوشهبندی سخت (گسسته[۶۶]) : در این روش هر سندی دقیقاً به یک خوشه انتساب داده میشود و در نتیجه یک مجموعه از خوشه های مجزا به وجود میآید.
خوشهبندی نرم (همپوشان[۶۷]) : در این روش هر سندی ممکن است به چندین خوشه انتساب داده شود. بنابراین یک مجموعه از خوشههای همپوشان به وجود میآید. این نوع خوشهبندی مجدداً به سه نوع پارتیشن بندی[۶۸]، سلسله مراتبی[۶۹] و تکرار مبتنی بر آیتم[۷۰] تقسیم میشود که به شرح زیر میباشند:
خوشهبندی پارتیشنی : در این نوع خوشهبندی، اسناد به تعداد ثابتی از خوشه ها تخصیص داده میشوند. شناختهشدهترین روشهای این نوع خوشهبندی، کامینز[۷۱] و مشتقات آن هستند. رویه کلی کامینز به این صورت است که ابتدا اشیاء به k خوشه به صورت تصادفی اختصاص داده میشود. در مراحل بعد، در هر تکرار میانگین هر خوشه محاسبه میشود و هر شیء دوباره به نزدیکترین میانگین انتساب داده میشود. این رویه تا زمانی ادامه دارد که هیچ تغییری در خوشهها ایجاد نشود.
خوشهبندی سلسله مراتبی : خوشهبندی سلسله مراتبی به صورت درختی ساخته میشود (درختی سلسله مراتبی از خوشهها) که هر نود[۷۲] برگ آن یک مجموعه از اسناد را نشان میدهند. الگوریتمهای خوشهبندی همچون سلسله مراتبی متراکم[۷۳] و روش جفت گروه وزن نشده با محاسبه متوسط[۷۴] جزء این نوع خوشهبندی به حساب میآیند. در الگوریتم سلسله مراتبی متراکم، در ابتدا هر شیءای یک خوشه تشکیل میدهد. در مرحله بعدی خوشههای جفت به جفت که بیشترین شباهت را با هم دارند، ترکیب میشوند و این کار تا زمانی ادامه مییابد که شرط پایانی حاصل شود که به این رویکرد روش پایین به بالا میگویند. در حالی که رویکرد بالا به پایین نیز وجود دارد که در آن، ابتدا همه اشیاء در یک خوشه قرار میگیرند. در مرحله بعدی اشیایی که شباهت زیادی با هم دارند خوشه جداگانه ایجاد میکنند و این کار تا زمانی که شرط پایانی حاصل شود ادامه مییابد.
خوشهبندی تکرار مبتنی بر آیتم: این نوع خوشهبندی به کمک قوانین کاوش انجمنی از مجموعه آیتمهای تکراری برای خوشهبندی اشیاء استفاده میکند. به دلیل کم کردن ابعاد مسئله برای مجموعه داده های خیلی بزرگ مفید است. الگوریتمهایی مانند خوشهبندی سلسله مراتبی اسناد با بهره گرفتن از مجموعه آیتمهای تکراری[۷۵]، خوشهبندی سلسله مراتبی مبتنی بر کلمات تکراری[۷۶] و خوشهبندی اسناد مبتنی بر مجموعه آیتم تکراری فازی[۷۷] جزء این نوع خوشهبندی به حساب میآیند.
یکی از موارد مشابه در الگوریتمهای خوشهبندی، وجود یک روشی برای مقایسه میزان مشابهت بین اشیاء در نظر گرفته شده برای خوشهبندی است. روشهای متفاوتی برای اندازه گیری میزان مشابهت وجود دارد که متناسب با نوع کاربرد الگوریتم استفاده میشوند که به شرح زیر میباشند:
فاصله اقلیدسی[۷۸] : یک معیار استاندارد برای مسائل هندسی است که ممکن است یک اندازه گیری ساده بین دو نقطه باشد. الگوریتم کامینز به صورت پیش فرض از این معیار برای اندازه گیری میزان مشابهت استفاده میکند.
رابطه ۲-۱ |
تشابه کسینوسی[۷۹] : از این معیار برای اندازه گیری میزان مشابهت اسناد استفاده میشود. به این صورت که برای هر سندی بردار چند بعدی ایجاد میشود و کسینوس زاویهای که دو بردار با هم میسازند، محاسبه می شود تا میزان مشابهت دو سند مشخص شود.
رابطه ۲-۲ |
ضریب جاکارد[۸۰] : ضریب جاکارد یک معیار تشابه دیگری است و در این معیار کامپوننتهایی که اطلاعات مفیدی ندارند، نادیده گرفته میشوند.