به کوشش
شاهین چادرباف شوشتری
امروزه تعداد زیادی سرویسهای وب در شبکه های رایانهای عرضه میشوند، که امکان کشف و کلاسهبندی آنها بهطور موثر وجود ندارد. این موضوع باعث میشود، که درخواستکنندگان سرویسهای وب وقت زیادی را صرف پیدا کردن سرویس وب مورد نظر خود، نمایند. این موضوع در محیطهای محاسبات سیار و بهخصوص بر روی گوشیهای هوشمند، مشکلات و چالشهای مربوط به خود را دارد. در این پژوهش به ارائه روشی برای کشف و کلاسهبندی سرویسهای وب در محیطهای محاسبات فراگیر و مناسب برای گوشیهای هوشمند پرداخته شده است. روش ارائه شده برای کشف سرویسهای وب، بر پایه کشف سرویسها مبتنی بر DNS ارائه شده است. روشی که برای کلاسهبندی سرویسهای وب ارائه شده است از دو مرحله پردازش متنی و کلاسهبندی تشکیلشده است. مرحله کلاسهبندی با به کارگیری پایگاهداده واژگانی WordNet و eXtended WordNet Domain صورت میگیرد. برای ارزیابی روش پیشنهای دقت، مدت زمان اجرا و مقدار حافظه مصرفی آن اندازه گیری شده است و نتایج حاصل از اندازه گیری با روشی دیگری که برای کلاسهبندی سرویسها ارائه شده و مبتنی بر SVM است، مقایسه شده است. همچنین از نتایج حاصل از پژوهش برای پیادهسازی یک نرمافزار اندرویدی برای گوشیهای هوشمند استفاده شده است. این نرمافزار سرویسهای وب محیطهایی که گوشی هوشمند در آن قرار میگیرد را کشف و کلاسهبندی مینماید و این اطلاعات را در اختیار کاربر و سایر نرمافزارهای کاربردی که بر روی گوشی هوشمند قرار گرفتهاند، میگذارد.
واژگان کلیدی: سرویس وب، معماری سرویسگرا، کشف سرویس، کلاسهبندی سرویس
فهرست مطالب
عنوان صفحه
فصل 1- مقدمه 9
1-1- مقدمه 9
1-2- هدف و انگیزه 10
1-3- تعریف مسئله 11
1-4- ساختار مطالب پایان نامه 12
1-5- جمعبندی و نتیجهگیری 12
فصل 2- مروری بر ادبیات تحقیق و مبانی نظری 16
2-1- سرویسهای وب 16
2-1-1- Simple Object Access Protocol (SOAP) 18
2-1-2- WSDL (Web Service Description Language) 20
2-1-3- UDDI (Universal Description, Discovery and Integration) 22
2-1-4- RESTful (Representational State Transfer) 23
2-1-5- مقایسه SOAP و RESTfull 24
2-1-6- کشف سرویس مبتنی بر DNS 26
2-2- جمعبندی و نتیجهگیری 29
فصل 3- پیشینه پژوهشی 33
3-1- کلاسهبندی سرویسها مبتنی بر داده کاوی 33
3-1-1- تشکیل بردار خصوصیتها 34
3-1-2- اعمال روشهای کلاسهبندی داده کاوی 34
3-2- استفاده از تکنیکهای یادگیری ماشین 35
3-2-1- نمونههایی از کارهای پژوهشی پیشین 36
3-3- جمعبندی و نتیجهگیری 38
فصل 4- ارائه روش پشنهادی 41
4-1- کشف سرویسها 41
4-2- کلاسهبندی سرویسها 43
4-2-1- Feature Mining 44
4-2-2- Tokenization 44
4-2-3- Stemming 44
4-2-4- Stop List 45
4-2-5- معرفی WordNet Ontology 45
4-2-6- معرفی eXtended WordNet Domains 45
4-2-7- روش کلاسهبندی ارائه شده 46
4-3- جمعبندی و نتیجهگیری 47
فصل 5- پیادهسازی 50
5-1- مرور کلی پیادهسازی از دیدگاه مورد استفاده 50
5-1-1- مورد استفاده ثبت دامنه مورد نظر کاربر 51
5-1-2- مورد استفاده مشاهده لیست دامنههای مورد نظر برنامه های کاربردی 52
5-1-3- مورد استفاده مشاهده لیست سرویسهای هر دامنه 53
5-1-4- مورد استفاده ثبت دامنه مورد نظر نرمافزار گوشی 54
5-1-5- دریافت لیست سرویسهای مرتبط با یک دامنه توسط نرمافزارهای کاربردی 55
5-2- ساختار بستهها 55
5-2-1- ساختار کلاسهای بسته Activity 57
5-2-2- ساختار کلاسهای بستههای Broadcast Receiver و Service 59
5-2-3- ساختار کلاسهای بسته Business Component 61
5-2-4- ساختار کلاسهای بسته Classification 62
5-2-5- ساختار کلاسهای بسته Content Provider 65
5-2-6- ساختار کلاسهای بسته Data Source 67
5-2-7- ساختار کلاسهای بسته Discovery 70
5-2-8- ساختار کلاسهای بسته Entity 71
5-2-9- ساختار کلاسهای بسته ServiceDirectory 73
5-3- جمعبندی و نتیجهگیری 74
فصل 6- ارزیابی روش پیشنهادی 78
6-1- مجموعهداده 78
6-2- اجرای روش پیشنهادی 79
6-2-1- بررسی دقت روش پیشنهادی 80
6-2-2- مشخصات محیط اجرا 80
6-2-3- بررسی زمان اجرای روش پیشنهادی 80
6-2-4- میزان حافظه مصرفی روش پیشنهادی 81
6-3- اجرای روش مبتنی بر SVM 82
6-3-1- فاز آموزش 83
6-3-2- فاز تست 84
6-3-3- بررسی دقت روش مبتنی بر SVM 84
6-3-4- بررسی زمان اجرای روش مبتنی بر SVM 85
6-3-1- میزان حافظه مصرفی روش مبتنی بر SVM 85
6-4- ارزیابی و مقایسه روش پیشنهادی 86
6-4-1- مقایسه دقت 86
6-4-2- مشاهدات متناظر 87
6-4-3- مقایسه زمان اجرا 88
6-4-4- مقایسه حافظه مصرفی 89
6-4-5- تحلیل نتایج 90
6-5- جمعبندی و نتیجهگیری 92
فصل 7- بحث و نتیجهگیری 96
7-1- کشف سرویسها 96
7-2- کلاسهبندی سرویسها 97
7-3- جمعبندی و نتیجهگیری 98
فصل 8- پیشنهادها و فرصتهای پژوهشی آینده 102
8-1- جمعبندی و نتیجهگیری 104
فهرست شکلها
عنوان صفحه
شکل 2‑1- معماری سرویسهای وب 18
شکل 2‑2- تفاوت نسخههای WSDL نسخه 1.1 و نسخه 2.0 21
شکل 4‑1- فرآیند کلاسهبندی سرویسهای وب 43
شکل 5‑1-نمودار موردهای استفاده 51
شکل 5‑2- نمای دامنههای مورد نظر کاربر 52
شکل 5‑3-نمایی اصلی برنامه 54
شکل 5‑4- نمودار بستهها 56
شکل 5‑5- نمودار کلاسهای بسته Activity 58
شکل 5‑6- نمودار کلاس بستههای Broadcast Receiver و Service 60
شکل 5‑7- نمودار کلاس بسته Business Component و وابستگیها 62
شکل 5‑8- نمودار کلاس بسته Classification 64
شکل 5‑9- نمودار کلاس بسته Content Provider 66
شکل 5‑10-نمودار کلاس بسته Data Source 68
شکل 5‑11- کلاس Service 69
شکل 5‑12- نمودار کلاس بسته Discovery و بستههای وابسته 71
شکل 5‑13- نمودار کلاس بسته Entity 73
شکل 5‑14- نمودار کلاس بسته Directory 74
شکل 6‑1- بردار نمونه یک سرویس در روش متنی بر SVM 83
شکل 6‑2- نمودار مقایسه دقت روشها 87
فهرست جدولها
عنوان صفحه
جدول 3‑1- جدول مقایسه دقت کلاسهبندی برای انواع بردارها و روشها 35
جدول 6‑1- بررسی دقت روش پیشنهادی 80
جدول 6‑2- مشخصات گوشی که به عنوان محیط اجرا استفاده شده 80
جدول 6‑3- زمانی اجرای روش پیشنهادی 81
جدول 6‑4- حافظه مصرفی روش پیشنهادی 82
جدول 6‑5- بررسی دقت روش مبتنی بر SVM 84
جدول 6‑6- زمانی اجرای روش مبتنی بر SVM 85
جدول 6‑7- حافظه مصرفی روش مبتنی بر SVM 85
جدول 6‑8- مقایسه دقت روشها 86
جدول 6‑9- بازههای اطمینان مختلف به ازای سطوح اطمینان مختلف برای زمان اجرا 89
جدول 6‑10- بازههای اطمینان مختلف به ازای سطوح اطمینان مختلف برای حافظه مصرفی 90
1-1- مقدمه
امروزه در دسترس بودن اینترنت در اکثر مکانها یک تجربه روزمره است. از این رو برای کاربران سیار این انتظار ایجاد شده است، که دستگاهی که از آن استفاده مینمایند، در همه مکانها و زمانها قادر به پردازش باشد. پیشرفتهای اخیری که در تولید دستگاههای سیار صورت گرفته به همراه تحولات بسیاری که در فناروی شبکه های بیسیم رخ داده است، فناوری را به سمت محاسبات سیار و دسترسی مداوم و بدون وقفه به داده ها و اطلاعات میبرد. اگر چه مشکلاتی که در ارتباطات رخ میدهد و البته محدودیتهای دستگاههای سیار یک چالش مهم برای تحقق دسترسی مداوم و بدون وقفه در همه زمانها و مکانها محسوب میشود.
معماری سرویسگرا به عنوان یکی از سبکهای معماری پیشرو در محیطهای محاسبات فراگیر مطرح شده است. معماری سرویسگرا از قابلیت استفاده مجدد[1]، اتصال سست[2]، انعطافپذیری در طراحی و قابلیت همکاری[3] بین سیستمهای ناهمگون[4]، به صورت موثری پشتیبانی مینماید. معماری سرویسگرا دورنمایی از توسعه نرمفزارهایی در محیطهای محاسبات فراگیر ارائه میدهد که در آن نرمافزارها با به کارگیری قابلیتهای شبکه های رایانهای بتوانند به طور موثر و به صورت خودکار با یکدیگر وارد تعامل شوند.[1]
1-2- هدف و انگیزه
با ظهور و تکامل استفاده از شبکه های رایانهای و اینترنت بر روی گوشیهای هوشمند، دامنه استفاده از گوشیهای هوشمند از کاربردهایی که درون گوشی هوشمند تعبیه شدهاند، فراتر رفته و میتوان کارکردهایی در سطح شبکه های رایانهای و اینترنت را برای گوشی هوشمند در نظر گرفت. گوشیهای هوشمند برای اینکه بتوانند کارکردهایی در سطح شبکه های رایانهای و اینترنت داشته باشند، این نیازمندی وجود دارند که بتوانند از سرویسهایی که در اینترنت و شبکه های رایانهای وجود دارد استفاده نماید. اولین گام برای استفادهای موثر از سرویسهایی که ارائه میگردند، کشف و انتخاب سرویس مناسب میباشد. در حال حاضر تعداد زیادی سرویس در شبکه های رایانه و اینترنت برای استفاده عرضه میگردنند. ازدیاد سرویسهای عرضهشده، می تواند مشکل و مانعی بر سر استفاده موثر از سرویسهای وب به وجود آورد. از این رو نیازمند سازوکارهایی برای کشف و کلاسهبندی سرویسهای وب هستیم، تا استفاده کنندگان از سرویسهای وب بتوانند بهصورت موثر سرویس وب مورد نظر خود را انتخاب نمایند.
از سوی دیگر گوشیهای هوشمند با محدودیتهایی مواجه هستند که در ارائه روشهایی که برای کشف و کلاسهبندی سرویسهای وب بر روی آنها استفاده میشود، میبایست در نظر گرفته شوند. گوشیهای هوشمند از نظر منابع پردازشی و میزان حافظه با محدودیتهایی مواجه میباشند، که در روشهایی که برای کشف و کلاسهبندی سرویسهای وب به کار گرفته میشوند بسیار محدود کننده است. از این در این پژوهش قصد داریم به مطالعه این مسئله بپردازیم و روشی برای کشف و کلاسهبندی سرویسهای وب در محیطهای محاسبات فراگیر ارائه دهیم، که برای گوشیهای هوشمند مناسب باشد.
1-3- تعریف مسئله
در این پژوهش قصد داریم یک روش موثر برای کشف و کلاسهبندی سرویسهای وب ارائه دهیم که برای محیطهای سیار و برای اجرا روی گوشیهای هوشمند مناسب باشد. در ارائه روش پیشنهادی سعی خواهد شد، محدودیتهای محیطهای سیار و گوشیهای هوشمند در نظر گرفته شود.
سپس بر پایه روش پیشنهادی نرمافزاری برای گوشیهای هوشمند اندرویدی پیادهسازی خواهد شد. این نرمافزار سرویسهای محیطهایی که گوشی هوشمند در آن قرار میگیرد را شناسایی خواهد کرد و نسبت به کلاسهبندی سرویسهای کشف شده اقدام خواهد نمود. نرمافزار پیادهسازی شده، این قابلیت را خواهد داشت، که اطلاعات سرویسهایی را که جمعآوری کرده را در اختیار نرمافزارهای دیگر گوشی هوشمند قرار دهد. به این ترتیب نرمافزارهای دیگری گوشی هوشمند، میتوانند سرویسهای مد نظر خود را از طریق این