بخشی از مقاله
چکیده: باگسترش به کارگیری معماری سرویسگرا در سازمانها، برای پیادهسازی جریانهای کاری پیچیده به صورت الکترونیکی استفاده از سرویسهای مرکب ابری رواج یافته است. هنگامی که هیچ سرویسی به تنهایی برای برآوردن نیاز یک درخواستکننده سرویس توانایی ندارد، ترکیب سرویس، به منظور تحقق هدف درخواستکننده سرویس میتواند مفید باشد. بنابراین، مساله چگونگی ترکیب مؤثر و کارآمد سرویسهای ابری، زمینههای پژوهشی بسیاری را به خود جلب کرده است وجه تمایز این سرویسها از لحاظ کاربر، ویژگیهای کیفی آنها میباشد. از اینرو دستیابی به ترکیب بهینه از سرویس-ها براساس کیفیت از مسائل مهم در زمینه کار با سرویسها است. در این مقاله برای مساله ترکیب سرویس با آگاهی از کیفیت سرویس در محاسبات ابری، یک روش جدید با استفاده الگوریتم خفاش ارائه شده است. نتایج آزمایشات نشان میدهد که الگوریتم پیشنهادی از کارایی بهتری نسبت به بهینه-سازی الگوریتمهای ژنتیک و کلونی مورچه برخوردار است.
.1 مقدمه1
محاسبات ابری به عنوان یکی از عرصههای در حال ظهور علم کامپیوتر در سالهای اخیر به شمار میآید . مزیت محاسبات ابری این است که سرویسهای نرمافزاری همواره روی اینترنت برای همه کاربران موجود بوده و در دسترس میباشند. یکی از مسائل چالش برانگیز و دانشبنیان خدمات محور مهندسی نرمافزار، ترکیب سرویس با آگاهی از کیفیت سرویس است. هدف، یافتن یک مجموعه بهینه از سرویسها براساس معیارهای کیفیت سرویس است که سرویسها با هم ترکیب شده و از ترکیب این سرویسها هدف مشخصی برآورده شود. در سالهای اخیر، علاقه به ترکیب سرویس با توجه به اهمیت آن در کاربردهای علمی افزایش یافته است.
هنگامیکه هیچ سرویسی به تنهایی برای برآوردن نیاز یک درخواستکننده سرویس توانایی ندارد، ترکیب سرویس، به منظور تحقق هدف درخواستکننده سرویس میتواند مفید باشد. بنابراین، مسئله چگونگی ترکیب مؤثر و کارآمد سرویسهای ابری، زمینههای پژوهشی بسیاری را به خود جلب کرده است. در سالهای اخیر، علاقه به ترکیب سرویسهای ابری با توجه به اهمیت آن در کاربردهای عملی افزایش یافته است. همچنین، محاسبات ابری بهتدریج به عنوان یک پلتفرم محاسباتی بهطور گسترده استفاده شد که در آن بسیاری از سرویسهای ابری منتشر شد و در دسترس مراکز داده ابر در حال تحول قرار گرفت.
امروزه برای انجام برخی از کارهای کامپیوتری که مثلا نیاز به نصب برنامه-های حجیم و گرانقیمت است میتوان به راحتی با استفاده از یک سرویس مبتنی بر اینترنت همان کار را، بدون نیاز به خرید و نصب برنامه انجام داد که این، بخشی از رایانش ابری است در واقع رایانش ابری در مفهوم ترکیب خدمات در سرویسهای ابری به معنی به کارگیری قابلیتهای کامپیوتری بر مبنای اینترنت میباشد از آنجا که برنامههای کاربردی همواره در شبکه باقی میمانند بنابراین داده-ها را میتوان همواره بهروز نگه داشت و از آنها بهسادگی و بهطور همزمان استفاده کرد. یک سرویس میتواند توسط ارائهدهنده سرویس منتشر شده و توسط درخواستکننده سرویس از طریق اینترنت استناد شود. در سالهای اخیر، مردم به سرویسهای ابری به دلیل قدرت بالقوه آن در برنامههای واقعی بیشتر علاقهمند شدند.
بنابراین تعدادی از شرکتها و سازمانها، سرویسهای کاربردی از طریق اینترنت را ترجیح میدهند. امروزه انواع مختلفی از سرویس-های ابری منتشر شده که برای کاربران شخصی و سازمانها در دسترس قرار گرفته است. تعداد زیادی از کارهای پژوهشی به بخشهایی مثل کشف سرویس اختصاص داده شده است. نتیجه تکنیکها به حد کافی برای کمک به متقاضیان سرویس برای یافتن یک سرویس مستقل، قدرتمند است. با اینحال، در بسیاری از موارد، داشتن یک سرویس مستقل کافی نیست. هنگامیکه هیچ سرویسی بهتنهایی برای برآوردن نیاز یک درخواستکننده سرویس توانایی ندارد، ترکیب سرویس نیاز به انتخاب چندین سرویس وابسته به یکدیگر به منظور تحقق هدف درخواستکننده سرویس دارد.
بنابراین، مسئله چگونگی ترکیب موثر و کارآمد سرویسهای ابری موجود، زمینههای پژوهشی بسیاری را به خود جلب کرده است. ممکن است سرویسهای موجود در سرویسهای مرکب در مکانهای مختلف پیادهسازی شوند و در زمینههای مختلف اجرا شوند اما برای دستیابی به یک هدف باید با یکدیگر تعامل داشته باشند در بخش 2 کارهای پیشین در زمینه ترکیب سرویس های ابری ارائه شده است،در بخش 3 روش پیشنهادی با جزئیات کامل شامل بیان مساله،مدل کیفیت سرویس،نرمال سازی مقادیر پارامترهای کیفیت سرویس و مقداردهی اولیه و تابع هدف و مراحل روش پیشنهادی توضیح داده شده است،در بخش 4 شبیه سازی و تحلیل نتایج الگوریتم پیشنهادی توضیح داده شده است،بخش 5 مربوط به آزمایش کیفیت ،بخش 6 نتیجه گیری و بخش 7 مربوط به منابع استفاده شده در مقاله می باشد.
.2 الگوریتم ژنتیک
الگوریتم ژنتیک که الگوریتمی تصادفی و هوشمند میباشد بر مبنای یک نظریه زیستشناسی به نام داروین بنیانگذاری شده است. این روش با ایده اصلی مجموعهای از کروموزم ها که جمعی ت اولیه نامیده می شوند شروع به کار می کند. کروموزمهایی از این جمعیت انتخاب شده و نسل بعدی را بوجود میآورند. در انتخاب این کروموزمها از تابع برازش استفاده میشود. این تابع یک مقداری را به عنوان خروجی برای هر کروموزوم بر میگرداند که می زان توانایی آن کروموزم در حل مسأله را نشان میدهد. کروموزمهایی که توانایی بالاتری داشته باشند شانس بیشتری برای بقاء در نسل بعد خواهند داشت. این کروموزمها تحت عمل تزویج با یکدیگر ترکیب شده و کروموزومهای نسل بعد را تشکیل میدهند.
عملگر جهش باعث عدم یکنواختی در تولید نسل جدید شده و سبب ایجاد تغییراتی هر چند کوچک در فرزندان حاصل می شود .[1] اما در کاری دیگردر این روش ساختار ژنوم بصورت آرایه ای در نظر گرفته شده که هر مدخل آن به جای اشاره به یک سرویس به یک ویژگی کیفی اشاره دارد عملگر تقاطع در اینجا یک نقطه ای در نظر گرفته شده است.[2]به عنوان نمونه مولفان در [3] خاطر نشان کردهاند که انتخاب پارامترهای الگوریتم مورچگان تأثیر زیادی در راندمان آن دارد بنابراین الگوریتم ژنتیک را برای قراردادن پارامترهای کلیدی استفاده کرده و از یک الگوریتم ترکیبی بر پایه ژنتیک و کلونی مورچگان برای ترکیب سرویسها بهره بردهاند.
نتایج نشان داده که این الگوریتم ترکیبی میتواند سرعت انتخاب سرویسها را تسریع کند و باعث راندمان بهتر و همگرایی سریعتر شود.در این روش مولفان پیشنهاد استفاده از چند نوع فرمن را با فرض اینکه یک نوع فرمن نمیتواند جوابگوی ویژگیهای کیفی چندگانه باشد مطرح کردهاند. .[4]در این روش برای حل مسأله ترکیب سرویسها براساس ویژگیهای کیفی نسخه بهبود یافته الگوریتم رقابت استعماری ارائه شده است. در این روش عملگر انقلاب برای فرار از تله مینیمم محلی به الگوریتم پایه اضافه شده است.
اضافه نمودن عملگرهایی دیگر مثل عملگرهای تقاطع و جهش از الگوریتم ژنتیک به الگوریتم رقابت استعماری نیز راهحلهای دیگری جهت افزایش کارایی و رفع معایب این الگوریتم میباشند. به عنوان مثال عملگر تقاطع باعث میشود محیط کاملتر جستجو شود و یا عملگر جهش به جلوگیری از تکرار الگوریتم در حلقه کمک میکند. . [5]این الگوریتم برای حل مسأله ترکیب سرویسها ارائه شده است.
مولفان در این تحقیق اثر پارامترهای مختلف مثل نرخ جهش و تابع برازندگی را روی توانایی بهینهسازی الگوریتم ژنتیک بررسی کرده و نشان داده اند که پارامترهای مختلف در کارآیی این روش تأثیرهای متفاوتی را دارند[6] .از دیگر تفاوتها میان پیادهسازیهای مختلف الگوریتم ژنتیک بحث روش کدگذاری این الگوریتم میباشد. برخی-ها روش رمزگذاری یک کروموزوم تکبعدی را اتخاذ کردهاند که البته در صورت افزایش تعداد سرویسهای کاندید قابلیت اطمینان کروموزومها در این روش خیلی ضعیف میباشد؛ از طرفی دیگر این متد نمیتواند اطلاعات معنایی را نشان دهد. بنابراین برخی از روش-ها بر پایه الگوریتم رمزگذاری ماتریس روابط بنا نهاده شدهاند. .[7]
.3 بیان مساله
در این مقاله برای یافتن سرویس مرکب نزدیک بهینه، یک رویکرد جدید با استفاده از الگوریتم خفاش پیشنهاد شده است . الگوریتم خفاش یک الگوریتم الهام گرفته از رفتار جمعی خفاش ها در محیط طبیعی است که در سال 2002 توسط یانگ ارائه شد. این الگوریتم برمبنای استفاده از خاصیت انعکاس صدا توسط خفاشها است. خفاشها مسیر و محل دقیق طعمه خود را بوسیله فرستادن امواج صوتی و دریافت بازتاب آن، پیدا میکنند.
زمانی که امواج صوتی به سمت فرستنده امواج خفاش باز میگردد، این پرنده میتواند یک تصویر صوتی از موانع روبرو و محیط اطراف خود رسم کرده و محیط اطراف را به خوبی ببیند. با استفاده از این سیستم، خفاشها می توانند اجسام متحرک مثل حشرات و اجسام بی حرکت مثل درختان را تشخیص دهند. با بررسی و بهینه سازی این الگوریتم در سیستمهای کامپیوتری و تطبیق آن با سیستمهای خبره و هوشمند میتوان از آن برای حل مسائل بهینهسازی مختلف استفاده کرد. انتظار میرود که استفاده از الگوریتم خفاش موجب افزایش کیفیت سرویس مرکب ابری تولید شده گردد. روش پیشنهادی از بخشهای مختلفی تشکیل شده که در ادامه ارائه خواهد شد.
.1-3 مدل کیفیت سرویس
مجموعه دادهای که در مدل پیشنهادی برای آموزش ساختار و پارامتر شبکه بیزی استفاده شده، مجموعه داده ارائهشده توسط المَصری5 و سایر همکارانش تهیه شده است. این مجموعه داده که QWS6 نام دارد، یک پایه و اساس برای محققین سرویسها پیشنهاد میکند.7 مجموعه داده QWS شامل یک مجموعه از 2507 سرویس وب و اندازهگیریهای کیفیت سرویس آنها میباشد.