دانلود پایان نامه

DiscoveryService یک کارکرد بلادرنگ و با زمان اجرای طولانی97 میباشد. برای پیادهسازی چنین کارکردهایی در سیستم عامل اندروید یکی از راهها پیادهسازی یک سرویس میباشد. برای این منظور میتوان از کلاس Service ارثبری نمود.
از ملزومات پیادهسازی کلاس WifiStateChangeReceiver این است که بتواند از تغییرات وضعیت Wi-Fi گوشی هوشمند مطلع شود. برای این منظور میبایست یک Broadcast Receiver پیادهسازی شود. از این رو این کلاس از کلاس BroadcastReceiver ارثبری شده است.
ساختار کلاسهای بسته Business Component
در شکل ‏57 نمودار کلاس بسته Business Component به همراه بستههایی که به آنها وابستگی دارد، نمایش داده شده است. در این بسته در کلاس DomainBusinessComponent منطقهای مرتبط با دامنه پیادهسازی شده است. در کلاس ServiceBusinessComponent منطقهای مرتبط با سرویس پیادهسازی شده است. در کلاسهای ApplicationBusinessComponent و EnvironmentBusinessComponent نیز به ترتیب منطقهای مرتبط با برنامههای کاربردی که از دایرکتوری استفاده مینماید و محیطهایی که گوشی هوشمند در آنها قرار میگیرد، پیادهسازی شدهاند.

شکل ‏57- نمودار کلاس بسته Business Component و وابستگیها
ساختار کلاسهای بسته Classification
در شکل ‏58 نمودار کلاس بسته Classification مشاهده میشود. کلاسهایی که دستاندرکار کلاسهبندی سرویسهای وب هستند در این بسته سازماندهی شدهاند. کلاس FeatureMiner وظیفهی بررسی فایلهای WSDL و استخراج خصوصیتها از آن را دارد. این کلاس به عنوان ورودی یک فایل WSDL دریافت کرده و مشخصاتی مانند نام سرویس، نام عملیات و نام پارامترهای ورودی و خروجی را از آن استخراج مینماید. این کلاس خصوصیتهای را که استخراج نموده در اختیار کلاس KeywordExtractor قرار میدهد. کلاس KeywordExtractor خصوصیتها را در اختیار کلاس Tokenizer قرار میدهد. این کلاس وظیفه دارد هر خصوصیت را به قسمتهای معنیداری تجزیه نماید. مثلا این کلاس یک خصوصیت با نام getProductPrice را به قسمتهای معنادار get، product و price تجزیه مینماید. سپس کلمات کلیدی استخراج شده را مجددا در اختیار کلاس KeywordExtractory قرار میدهد. کلاس KeywordExtractor نسبت به حذف کردن کلمات تکراری اقدام مینماید. سپس لیست کلمات کلیدی را در اختیار کلاس StopList قرار میدهد. کلاس StopList لیست کلمات کلیدی دریافتی را با لیستی که در اختیار دارد مقایسه مینماید و در صورتیکه وجود کلماتی که معنای خاصی نمیتوانند داشته باشند – مانند افعال ربطی و حروف اضافه – آنها را از میان کلمات کلیدی حذف مینماید و در نهایت خروجی در اختیار کلاس KeywordExtrator قرار میگیرد. کلاس KeywordExtractor لیست کلمات کلیدی را در اختیار کلاس Classifier قرار میدهد. این کلاس با استفاده از کتابخانه edu.mit.jwi به پایگاهداده واژگانی WordNet مراجعه کرده و کاربردهای مختلف هر کلمهکلیدی را به دست آورده و با استفاده از کلاس XwndApi از طریق مراجعه به منبعداده98 Extended WordNet Domain بردار ارتباط هر کاربرد کلمه کلیدی را با دامنههای کاربرد به دست میآورد و نسبت به انجام محاسبات مربوطه و تعیین دامنههای مرتبط با یک سرویس اقدام مینماید.

شکل ‏58- نمودار کلاس بسته Classification
Domain در برگیرنده کلیه دامنههایی است که در پروژه Extended WordNet Domain به عنوان دامنه شناخته میشود. رابط99 IDomainMapper این قابلیت را ایجاد مینماید که در صورتیکه استفادهکننده کلاس Classifier نیاز داشت، تا فرآیند کلاسهبندی را برای دامنههایی غیر از دامنههای Extended WordNet Domain انجام دهد، با پیادهسازی این رابط برای دامنههای مدنظر خود، عمل کلاسهبندی را انجام دهد.
ساختار کلاسهای بسته Content Provider
در شکل ‏59 نمودار کلاس بسته Content Provider به همراه وابستگیهای مربوطه نمایش داده شده است. کلاس ServiceDirectoryContentProvider وظیفه پیادهسازی کلیه تعاملات دایرکتوری سرویس با سایر نرمافزارهای کاربری روی گوشی را بر عهده دارد. به عنوان مثال نرمافزارهای کاربردی گوشی هوشمند از طریق استفاده از واسط برنامهنویسی کاربری100 که توسط این کلاس فراهم میشود، میتوانند دامنههایی که مورد نظر آنها است در دایرکتوری ثبت نمایند. همچنین لیست سرویسهای متعلق به هر دامنه را دریافت نمایند.
در سیستم عامل اندروید یکی از ساز و کارهایی که برای ارتباط بین نرمافزارهای کاربردی روی گوشی هوشمند وجود دارد استفاده از Content Provider میباشد. از این رو میبایست یک Content Provider پیادهسازی شود. برای این منظور میبایست از کلاس Content Provider ارثبری شود.

شکل ‏59- نمودار کلاس بسته Content Provider
ساختار کلاسهای بسته Data Source
در شکل ‏510 نمودار کلاس بسته Data Source مشاهده میشود. کلاسهای این بسته را در سه دسته میتوان بررسی نمود. دسته اول شامل کلاسهایی میشود که اطلاعات ساختار101 جداول اقلام دادهای را که در پایگاهداده نگهداری میشوند را در خود نگهمیدارند. این دسته شامل کلاسهای ذیل میشود:
Domain
UserDomain
Application
ApplicationDomain
Environment
Service
ServiceRelevancy

شکل ‏510-نمودار کلاس بسته Data Source
برای مثال کلاس Service با جزئیات بیشتری در شکل ‏511 نمایش داده شده است. همانگونه که مشاهده میشود، این کلاس اطلاعاتی را درباره جدولی که در پایگاه داده اطلاعات سرویسها را ذخیره مینماید در خود دارد. برای مثال نشان میدهد نام این جدول چیست، شامل چه ستونهایی میشود و دستور SQL که برای ایجاد جدول استفاده میشود به چه صورت است.

شکل ‏511- کلاس Service
دسته دومی کلاسهایی که در این بسته قرار دارند، کلاسهایی میباشند که عملیات مربوط به خواندن و نوشتن اطلاعات در پایگاهداده را به عهده دارند. این گروه شامل کلاسهای ذیل میباشد:
D
omainDataSource
UserDomainDataSource
EnvironmentDataSource
ApplicationDataSource
ApplicationDomainDataSource
ServiceDataSource
ServiceRelevancyDataSource
دسته سوم کلاسهایی که در این بسته وجود دارند، کلاسهایی هستند که وظیفه سهولتبخشی به کارکردن با پایگاهداده SQLite را بر عهده دارند. این دسته شامل کلاسهای ذیل میشود:
AppSQLiteHelper
Boolean
Date
ساختار کلاسهای بسته Discovery
در شکل ‏512 نمودار کلاس بسته Discovery به همراه بستههای وابسته نمایش داده شده است. کلاس EnvironmentServiceChecker در برگیرنده پیادهسازی منطقهای مرتبط با کشف سرویسها میباشد.

شکل ‏512- نمودار کلاس بسته Discovery و بستههای وابسته
ساختار کلاسهای بسته Entity
در شکل ‏513 نمودار کلاس بسته Entity نمایش داده شده است. این بسته شامل کلیه کلاسهای اقلام دادهای میباشد. توضیح هر یک از کلاسها به قرار ذیل میباشد:
Domain: این کلاس اطلاعات یک دامنه را درون خود نگهداری مینماید.
UserDomain: این کلاس اطلاعات یک دامنه که توسط کاربر ثبت شده را نگهداری مینماید.
Application: این کلاس اطلاعات یک برنامه کاربردی را نگهداری مینماید.
ApplicationDomain: این کلاس اطلاعات یک دامنه را که توسط یک برنامه کاربری ذخیرهشده را نگهداری مینماید.
Environment: این کلاس اطلاعات یک محیط را نگهداری مینماید.
Service: این کلاس اطلاعات یک سرویس را ذخیره مینماید.
ServiceRelevancy: این کلاس اطلاعات ارتباط یک سرویس با یک دامنه خاص را نگهداری مینماید.

شکل ‏513- نمودار کلاس بسته Entity
ساختار کلاسهای بسته ServiceDirectory
در شکل ‏514 نمودار کلاس بسته Directory و بستههای وابسته نمایش داده شده است. این بسته ریشه اصلی بستهها در برنامه میباشد. و کلیه کلاسهایی که در درون آن قرار داده شدهاند، کلی میباشند و در سطح کل برنامه کاربرد دارند و منحصر به بسته خاصی نمیشوند. کلاس ServiceDirectory وظیفه نگهداری از متغیرهای کلی را در سطح برنامه بر عهده دارد. کلاس AppIntializer وظیفه راهاندازی اولیه برنامه را بر عهده دارد. کلاس AppUtility در برگیرنده مجموعهای از کارکردهای کمکی کلی در سطح برنامه میباشد.

شکل ‏514- نمودار کلاس بسته Directory
جمعبندی و نتیجهگیری
از نظر دیدگاه مورد استفاده، بازیگران نرمافزار دایرکتوری “کاربر گوشی هوشمند” و “برنامه کاربردی” میباشند. بازیگر “کاربر گوشی هوشمند” با مورد استفادههای “ثبت دامنه مورد نظر کاربر”، “مشاهده لیست سرویسها” و “مشاهده لیست دامنههای برنامههای کاربردی” در ارتباط میباشد. بازیگر “برنامه کاربردی” با موردهای استفاده “ثبت دامنه مورد نظر برنامه کاربردی” و “دریافت لیست سرویسها” در ارتباط میباشد.
در پیادهسازی از دو کتابخانه خارجی edu.mit.jwi و javax.jmdns استفاده شده است. کتابخانه edu.mit.jwi برای کار کردن با پایگاهداده واژگانی WordNet به کار گرفته شده است. کتابخانه javax.jmdns برای کشف سرویسها مبتنی بر DNS استفاده شده است.
با استفاده از سازوکارهایی که ContentProvider در سیستم عامل اندروید در اختیار میگذارد، کارکردهایی که برای ارتباط سایر نرمافزارهای کاربردی با دایرکتوری سرویسها مدنظر بود، پیادهسازی گردیده است.
با استفاده از امکاناتی که Service در سیستم عامل اندروید در اختیار قرار میدهد. کارکردهای مربوط به کشف سرویسها به صورت بلادرنگ پیادهسازی شده است.

فصل ششم
ارزیابی روش پیشنهای

ارزیابی روش پیشنهادی
در این فصل قصد داریم نحوهی ارزیابی روش پیشنهای برای کلاسهبندی سرویسهای وب را بررسی نماییم. به این منظور یک مجموعه داده102 آماده نمودهایم و روش پیشنهادی را بر روی آن مجموعه داده اجرا کردیم. نتایج حاصل از اجرا را که شامل دقت، مصرف حافظه و زمان اجرا میشود، اندازهگیری نمودیم. در نهایت مقادیر اندازهگیری شده را با روش دیگری که در این زمینه ارائهشده مقایسه کردیم.
مجموعهداده
در بعضی پژوهشها در حوزه کلاسهبندی سرویسهای وب، مجموعهدادههای مورد استفاده، توسط خود پژوهشگر تهیه میشود. به این صورت که با پیادهسازی یک spider و اجرای آن بر روی سایتهایی در اینترنت که سرویسهای وب را جمعآوری مینمایند، مجموعه دادههای مورد استفاده به دست میآید.
در مقالات دیگر در حوزه کلاسهبندی و خوشهبندی سرویسهای وب از مجموعه دادههای از پیش تهیه شده استفاده میشود. در این پژوهش از یک مجموعهدادههای از پیش تهیه شده به نام SAWSDL-TC3_WSDL11 استفاده شده است. ما از این مجموعهداده برای اجرای روش پیشنهادی و مقایسه با روشهای دیگر استفاده نمودهایم.
این مجموعه داده در برگیرنده 1088 تعریف سرویس وب به صورت WSDL103 میباشد. این سرویسهای وب متعلق به 9 دامنه میباشند. دامنههایی که این سرویسهای وب به آنها تعلق دارند عبارتند از: ارتباطات، اقتصاد، آموزش، غذا، جغرافیا، پزشکی، شبیهسازی، مسافرت و سلاح.
برای انجام ارزیابی دقت روش پیشنهادی و روش مبتنی بر SVM مجموعهداده را به دو قسمت تقسیم نمودیم. نسبت قسمتها برابر با 70 درصد و 30 درصد میباشد. در روش مبتنی بر SVM که شامل دو فاز آموزش و تست است، از قسمت 70 درصدی مجموعهداده برای فاز آموزش و از قسمت 30 درصد برای فاز تست استفاده نمودیم. در روش پیشنهادی که نیاز به فاز آموزش ندارد، از قسمت 30 درصدی برای تست روش استفاده شده است.
برای ارزیابی زمان اجرا و میزان حافظه مصرفی روش پیشنهادی و روش مبتنی بر SVM مجموعهداده را به 5 قسمت مساوی تقسیم نمودیم و هر یک از روشها را یکبار با هر یک از 5 قسمت اجرا کردیم و میانگین نتیجه به دست آمده از اجرای 5 بار را به عنوان نتیجهای نهایی ملاک قر
ار دادیم.
اجرای روش پیشنهادی
ابتدا از مجموعهدادهها، سرویسهای وب به همراه دامنههای مربوط با آنها استخراج گردید. دامنههای مورد استفاده در روش پیشنهادی از پروژه WordNet Domain استخراج شده بود. از این رو برای استفاده از مجموعه داده لازم بود نگاشت بین دامنههای مجموعهداده و دامنههای پروژه WordNet Domain مشخص شود.
بررسی دقت روش پیشنهادی
در این قسمت به بررسی دقت روش پیشنهادی میپردازیم. نتیجهای که از بررسی دقت روش پیشنهادی بهدست آمده است در جدول ‏61 مشاهده میشود.

پیشنهاد یک دامنه
پیشنهاد دو دامنه
پیشنهاد سه دامنه
صحیح
211
263
283
کل
325
325
325
دقت
65%
81%
87%
جدول ‏61- بررسی دقت روش پیشنهادی
ستون پیشنهاد یک کلاس مربوط به حالتی میشود که برای هر سرویس وب تنها یک کلاس پیشنهاد داده شده است. ستونهای پیشنهاد دو کلاس و پیشنهاد سه کلاس به ترتیب مربوط به حالتهایی میشوند که برای هر سرویس وب به ترتیب 2 و 3 کلاس پیشنهاد داده شده است.
مشخصات محیط اجرا
در این بررسی به عنوان محیط اجرا، یک گوشی root شده Samsung Galaxy Note 3 N9002 انتخاب شده است. مشخصات سخت افزاری این گوشی در جدول ‏62 آمده است.
Android 4.3 (Jelly Bean)
OS
Qualcomm Snapdragon 800
Chipset
Quad-core 2.3 GHz Krait 400
CPU
Adreno 330
GPU
3 GB
RAM
16 GB
Internal Memory
جدول ‏62- مشخصات گوشی که به عنوان محیط اجرا استفاده شده
بررسی زمان اجرای روش پیشنهادی
برای ارزیابی زمان اجرای روش پیشنهادی مجموعه داده را به 5 قسمت مساوی تقسیم نمودیم و برای هر قسمت به طور جداگانه عملیات کلاسهبندی صورت گرفت و زمان مربوط به هر اجرا ثبت گردید. در نهایت میانگین زمانهای اجرا را به عنوان نتیجه اصلی مورد نظر قرار دادیم. نتایج حاصل از اجرا در جدول ‏63 آمده است.

اجرای اول
اجرای دوم
اجرای سوم
اجرای چهارم
اجرای پنجم
زمان اجرا
49
59
51
47
63
میانگین
54 ثانیه
جدول ‏63- زمانی اجرای روش پیشنهادی
میزان حافظه مصرفی روش پیشنهادی
برای بررسی میزان حافظه مصرفی روش پیشنهادی مجموعه داده را به 5 قسمت مساوی تقسیم نمودیم و برای هر قسمت به طور جداگانه عملیات کلاسهبندی صورت گرفت و میزان حافظه مصرفی هر اجرا ثبت گردید. در نهایت میانگین حافظههای مصرفی ثبتشده را به عنوان نتیجه اصلی مورد نظر قرار دادیم. نتایج حاصل از اجرا در جدول ‏64 آمده است.

اجرای اول
اجرای دوم
اجرای سوم
اجرای چهارم
اجرای پنجم
حافظه مصرفی
15.414
15.412
15.515
15.534
15.426
میانگین
15.460 کیلوبایت
جدول ‏64- حافظه مصرفی روش پیشنهادی
اجرای روش مبتنی بر SVM104
در این قسمت به ارزیابی روش مبتنی بر SVM میپردازیم. روش مبتنی بر SVM شامل دو مرحله پردازش متنی105 و کلاسهبندی سرویسها106


پاسخی بگذارید