عنوان صفحه
جدول ۴-۱ : اطلاعات وب سرویس ۶۴
جدول ۴-۲ : اطلاعات درخواست کاربر ۶۴
جدول ۴-۳ : بردار فضای حالت درخواست کاربر ۶۴
جدول ۴- ۴ : بردار فضای حالت وبسرویس ۶۴
جدول ۵-۱ : دسته بندی مجموعه داده سیستم پیشنهادی ۷۹
جدول ۵-۲ : پارامترهای ارزیابی شده الگوریتم مبتنی بر بردار فضای حالت ۸۱
جدول ۵-۳ : پارامترهای ارزیابی شدهی الگوریتم پیشنهادی ۸۳
فصل اول: مقدمه
۱-۱ مقدمه
در طی سالهای اخیر، برای هر مرحله از توسعه نرم افزار (تحلیل و پیادهسازی) امکانات و ابزارهای گوناگونی به وجود آمدهاند که توسعه دهندگان نرم افزار با توجه به علاقه و آشنایی که با هر کدام از این ابزارها دارند، مناسبترین ابزار را برای توسعه نرم افزار خود انتخاب میکنند. این امر باعث شده است امروزه ناهمگونی زیادی بین نرم افزارهای توسعه داده شده به وجود آید به طوری که در یک سازمان ممکن است برای پیادهسازی هر بخش از نرم افزار از ابزارهای متفاوتی استفاده شود. از سوی دیگر در بسیاری از موارد جهت تبادل داده نیاز است بین بخشهای مختلف نرم افزار یا بین دو نرم افزار مجزا، ارتباط برقرار شود. در چنین مواقعی به دلیل ناهمگن بودن بخشهای مختلف نرم افزارها، برقراری ارتباط و تبادل داده به سختی صورت میپذیرد.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
معماری سرویسگرا و وب سرویسها (به عنوان ابزاری برای پیادهسازی اصلیترین جزء معماری سرویسگرا) با فراهم کردن پروتکلهایی مثل[۱] SOAP، [۲]UDDI و[۳] WSDL تا حد زیادی مشکل ناهمگنی را حل کردهاند. امروزه برای پیادهسازی نرم افزارهای توزیع شده و نرم افزارهایی که بخشهای مختلف آنها با زبانهای گوناگونی پیادهسازی شدهاند، معماری سرویسگرا مورد استفاده قرار میگیرد. هر چند که حل مشکل فوق یکی از اهداف معماری سرویسگرا میباشد ولی هدف اصلی توسعه معماری سرویسگرا این است که توسعه دهندگان نرم افزارها به جای پیادهسازی بخشهای نرم افزار، از سرویسهای آماده و مناسبی که توسط توسعه دهندگان یا شرکتها پیادهسازی شدهاند، استفاده کنند که این هدف نیز به سادگی با وجود وب سرویسها تحقق یافته است. وب سرویسها به دلیل فراهم ساختن ویژگیهایی همچون محدود نبودن سرویس به محیط جغرافیایی و قابلیت پیادهسازی سرویسها با زبانهای مختلف به ابزاری رایج برای ایجاد سرویس تبدیل شده است به طوری که طراحان با بهره گرفتن از این ابزار به آسانی میتوانند سرویسهای خود را با زبان مورد علاقه خود پیادهسازی کنند و از طریق اینترنت در اختیار طراحان دیگر قرار دهند.
۱-۲ طرح مسئله
همان طور که بحث شد معماری سرویسگرا روش مناسبی برای پیادهسازی برنامههای توزیع شده میباشد و اگر طراح بتواند سرویسهای مورد نظر خود را به آسانی پیدا کند، خیلی سریع میتواند برنامهی خود را پیادهسازی کند. ولی امروزه مشکلی که در زمینه وب سرویسها وجود دارد، پیدا کردن وبسرویس مناسب از بین هزاران وبسرویس که در کل شبکهی اینترنتی توزیع شدهاند، کار سادهای نیست که همین مشکل ویژگیهای خوب این معماری را تحت تأثیر قرار داده است و آن را از جایگاه واقعی خود در بحث پیادهسازی نرمافزار دور کرده است [۱ ، ۲ ، ۳ ، ۴]. پژوهشهای زیادی در زمینه کشف وبسرویس[۴] انجام شده است که هر چند برخی از آنها نتایج امیدوار کنندهای ارائه میدهند ولی با این حال هر کدام از آنها کمبودها و نقصانهایی در زمینه کشف وب سرویس دارند. قبل از ادامهی بحث، باید یک شمای کلی از نحوهی عملکرد معماری سرویس بر اساس وب سرویسها شرح داده شود تا تشریح مسئله به شکل وضوحی بیان گردد.
همان طور که در شکل ۱-۱ مشاهده میشود معماری سرویس سه مؤلفهی اصلی دارد که عبارتند از : فراهم کنندهی وبسرویس، تقاضا کنندهی وبسرویس و مخازن ثبت وبسرویس (البته مؤلفهی مخازن ثبت سرویس یک واحد دیگری به نام واحد کشف وبسرویس دارد که به UDDI[5] مشهور شده است]۱ ، ۴ ، ۹[). نحوهی عملکرد هر کدام از این مؤلفهها به صورت مستقیم بر فرایند کشف وب سرویس تأثیر خواهند گذاشت و در هر کدام از پژوهشهای انجام شده نیز سعی شده است که عملکرد یک یا دو مورد از این مؤلفهها را بهبود دهند تا نتایج حاصله از عمل کشف وبسرویس بهبود پیدا کند.
عملکرد کلی معماری سرویسگرا به این صورت است که :
در مرحلهی اول تولیدکنندگان وبسرویسها، وب سرویسهای خود را از طریق یک فایل توصیفی با فرمت WSDL در مخازن ثبت وبسرویس انتشار میدهند که امروزه بعضی از پژوهشگران سعی میکنند قالب فایل توصیفی را در جهت بهبود کشف وبسرویس تغییر دهند [۵].
در مرحلهی دوم تقاضاکنندگان وبسرویسها برای یافتن وبسرویس مورد نظر خود، درخواستهای خود را به صورت متنی که شامل کلمات کلیدی به مخازن ثبت سرویس است، به واحد کشف وبسرویس ارائه میدهند. بیشتر پژوهشها در زمینهی کشف وبسرویس در این بخش انجام شده است و آنها سعی کرده اند با افزودن اطلاعاتی به درخواست کاربران، عمل کشف سرویس را بهبود دهند که هدف اصلی این پژوهش نیز ارائه یک روش جدید برای افزودن این اطلاعات به درخواست کاربران است [۴ ، ۵].
در مرحله سوم، واحد کشف وبسرویس بعد از دریافت درخواست کاربران، یک مجموعه وبسرویس مناسب را به عنوان نتیجه به تقاضاکنندگان پیشنهاد میدهد و هر اندازه الگوریتم پیادهسازی شده در واحد کشف وبسرویس کارآمدتر باشد، به همان اندازه نتایج بازگشتی نیز مناسبتر خواهد بود.
در مرحله چهارم، تقاضا دهنده وبسرویس مورد نظر خود را از بین وبسرویسهای پیشنهاد شده انتخاب می کند و در برنامه خود مورد استفاده قرار میدهد.
مخازن ثبت وبسرویس
تقاضا کنندهی وبسرویس
فراهم کنندهی وبسرویس
انتشار وبسرویس
کشف وبسرویس
درخواست / پاسخ
درخواست
UDDI
شکل ۱-۱ : شمای کلی از نحوهی عملکرد معماری سرویس [۴]
ایدهی اصلی الگوریتمهای کشف وبسرویس اولیه این است که درخواستهای کاربران را به صورت چند کلمهی کلیدی[۶] به عنوان ورودی میگیرند و با یک تابع تشابه[۷]، این کلمات کلیدی را با توصیفهای متنی موجود در فایل WSDL مقایسه میکنند و اگر نتیجه مقایسه رضایت بخش باشد، وبسرویس متناظر با فایل WSDL را به عنوان نتیجه به کاربر بر میگردانند [۶]. البته در برخی پژوهشها علاوه بر استفاده از بخشهای توصیفی فایل WSDL، از بخشهای دیگر فایل مثل عملیات وب سرویسها و ورودی و خروجیهای این عملیات نیز برای بهتر کردن کارایی استفاده میکردند [۷]. تنها مزیت این نوع الگوریتمها آسان بودن پیادهسازی آنها است که به همین دلیل، امروزه بیشتر واحدهای کشف وبسرویس در حال اجرا از این نوع الگوریتمها استفاده میکنند. از طرفی آسان بودن پیادهسازی باعث بروز مشکلات اساسی شده است. یکی از مشکلات این است که اگر کاربر اطلاعات کافی از وبسرویس مورد جستجوی خود نداشته باشد، به سختی میتواند وبسرویس مورد نظر را پیدا کند زیرا الگوریتمهای مزبور برای مقایسه از توابع همانندی استفاده میکنند که در این صورت لازم است کلمات کلیدی استفاده شده در درخواست کاربران عیناً در فایل توصیفی وجود داشته باشند تا وبسرویس مورد نظر به عنوان نتیجه برگردانده شود. مشکل دیگری که در این زمینه وجود دارد این است که بیشتر کاربران نمیتوانند هدف اصلی خود را با چند کلمهی کلیدی بیان کنند و بنابراین مجبورند برای پیدا کردن نتیجهی دلخواه خود از روش سعی و خطا استفاده کنند که در این صورت وقت زیادی از کاربر بدین شکل هدر [۲ ، ۴ ، ۸] . کم بودن اطلاعات ذخیره شده در فایل WSDL نیز یکی از مشکلات اساسی است که باعث محدود شدن این نوع الگوریتمها میگردند[۹]. با وجود این مشکلات نتیجه میگیریم که این الگوریتمها از لحاظ کارایی عملکرد خوبی ندارند.
بعد از آشکار شدن مشکلات موجود در الگوریتمهای کشف وبسرویس «بر اساس کلمات کلیدی»، پژوهشگران برای رفع مشکلات فوق از متدها و تکنیکهایی که در دیگر حوزههای علوم کامپیوتری مورد استفاده قرار گرفته بودند، استفاده کردند که معناشناسی[۸] یکی از این موارد است. پژوهشگران با بهره گرفتن از این تکنیک توانستند اطلاعات بیشتری را نسبت به حالت قبلی در فایلهای توصیفی WSDL ذخیره کنند و این کار را با حاشیه نویسی[۹] در قسمتهای مختلف فایلهای WSDL انجام دادند. استانداردهای متنوعی برای حاشیه نویسی وجود دارند که DAML-S , OWL-S ,WSDL-S , WSML از مهمترین آنها به شمار میروند [۳ ، ۱۰ ، ۱۱ ، ۱۲] . مزیت اصلی این نوع الگوریتمها برگرداندن نتایج (مجموعه وب سرویسهای مورد انتظار کاربران) دقیقتر و امیدوارکنندهتر نسبت به الگوریتمهای ایجاد شده در این زمینه است ولی یکی از مشکلات عمدهی این الگوریتمها این است که کاربران باید برای ایجاد یک درخواست مناسب از استانداردهای حاشیهنویسی استفاده شده در این نوع الگوریتمها، اطلاعات کافی داشته باشند، در حالی که یادگیری نحوهی عملکرد این استانداردها برای عموم کاربران نه تنها کار سادهای نیست بلکه به نظر یک کار تحمیلی به کاربر است هر چند که با یادگیری این اصول میتواند از مزیت این نوع الگوریتمها نسبت به الگوریتمهای دیگر استفاده کند و سریعتر به نتایج دلخواه خود برسد[۴، ۸ ، ۹] . علاوه بر این مشکل، سخت بودن پیادهسازی، یکی دیگر از معایب این نوع الگوریتمها است که در این پژوهش مورد توجه قرار نمیگیرد.
پژوهشگران دیگری نیز در راستای بهبود عملکرد الگوریتمهای قبلی، از تکنیکهای دیگری مثل طبقهبندی[۱۰] وب سرویسها استفاده کرده اند[۸ ، ۱۲]. ولی مسئلهای که باید در هر الگوریتم کشف وبسرویسی به آن توجه داشت، این است که باید بین کارایی و شفافیت الگوریتم تعادل برقرار شود. در حالی که بیشتر الگوریتمهای قبلی به این دو پارامتر به صورت همزمان نپرداختند. همانگونه که بررسی شد، الگوریتمهای کشف وبسرویس «بر اساس کلمات کلیدی» نه نتایج امیدوارکنندهای به کاربران بر میگردانند (کارایی پایین) و نه کار کردن با آنها برای کاربر آسان است (از شفافیت کافی برخوردار نیست). در الگوریتمهای کشف وبسرویس «بر اساس معنا» تنها جنبهی کارایی الگوریتمها مورد توجه قرار گرفته است به طوری که شفافیت این الگوریتمها نسبت به الگوریتمهای قبلی کمتر است. البته پژوهشهایی در زمینهی کمک به کاربران برای ایجاد درخواست انجام شده است[۱ ، ۴] .
۱-۳ اهداف تحقیق
هدف این تحقیق ارائه یک الگوریتم کشف وبسرویس با رویکرد آگاه از زمینه برای کمک به کاربران برای پیدا کردن وبسرویس مناسب و مورد نظر است. به این صورت که الگوریتم از اطلاعات زمینهای موجود در محیط کاربر استفاده کند و به کاربر در ایجاد درخواست مناسب برای یافتن وبسرویس مورد نظر آن کمک کند.
یکی از اهداف فرعی این الگوریتم این است که اگر الگوریتم به خوبی طراحی شود و کاربر به اندازه کافی از اطلاعات فوق در محیط خود برخوردار باشد، سیستم نیز خود وبسرویسهایی را به کاربر پیشنهاد میدهد و این یکی از موارد ایدهآل در حوزهی کشف وبسرویس است، اینکه سیستمی بتواند به صورت پویا نیازهای کاربران خود را تشخیص دهد و در صدد رفع آنها برآید.
۱-۴ روش تحقیق
روش انجام تحقیق از طریق مطالعه و بررسی کتب، مقالات، پایان نامه های انجام شده داخلی و خارجی، پروژه های تحقیقاتی صورت گرفته و اینترنت میباشد.
۱-۵ جنبه نوآوری تحقیق
استفاده از شبکه اجتماعی تخصصی جهت ایجاد محیطی مناسب برای ثبت اطلاعات کاربران سیستم
استفاده از رویکرد آگاه زمینه جهت جمعآوری اطلاعات زمینهای کاربران برای کمک به آنها در پیدا کردن وب سرویسهای مناسب
استفاده از خوشهبندی برای گروهبندی کردن وب سرویسها بعد از انتشار آنها
۱-۶ ساختار پایان نامه
ساختار این پایان نامه شامل هفت فصل است.
فصل اول در خصوص تعریف صورت مسئله و تعیین حوزه و ساختار تحقیق است.
فصل دوم به مفاهیم پایه اختصاص دارد. مفاهیمی همانند معماری سرویسگرا، وبسرویسها و استانداردهای مرتبط با آنها، خوشهبندی و رویکرد آگاه از زمینه بررسی میشوند و اطلاعات لازم برای پرداختن به الگوریتم پیشنهادی این تحقیق فراهم می شود.
فصل سوم به پیشینه تحقیق اختصاص دارد. در این فصل الگوریتمهای کشف وب سرویس به سه گروه تقسیم بندی میشوند. در گروه اول الگوریتمهایی بررسی میشوند که بر اساس کلمات کلیدی پیادهسازی شده اند. در گروه دوم الگوریتمهایی قرار میگیرند که بر اساس تحلیل نحوی پیادهسازی شده اند و در گروه سوم نیز الگوریتمهایی مورد بحث قرار میگیرند که بر اساس معنا پیادهسازی شده اند. مزایا و معایب هر کدام از گروه های مختلف در فصل سوم بیان میشوند و در الگوریتم پیشنهادی در جهت رفع آنها ارائه می شود.
در فصل چهارم الگوریتم پیشنهادی بررسی میشود. معماری الگوریتم پیشنهادی و بخشهای مختلف آن با جزئیات تشریح میشود.
در فصل پنجم به صورت خلاصه محیط و ابزارهای پیاده سازی الگوریتم بیان میشود. سپس در ادامه آن به ارزیابی الگوریتم پیشنهادی پرداختیم.
سرانجام فصل ششم به نتیجه گیری این تحقیق اختصاص دارد.