مقدمه
جهان محاسباتي که امروز با آن روبرو هستيم روزبه روز در حال بزرگتر و پيچيده تر شدن است . محاسبات ابري در ادامه ساير سبک ها مانند محاسبات شبکه اي معرفي گرديده است .
محاسبات ابري به شما اجازه ميدهد به تمام برنامه هاي کاربردي و اسناد خود، از هر جايي از دنيا دسترسي پيدا کنيد به جاي قرار گرفتن برنامه هاي کاربردي و داده ها بر روي يک کامپيوتر شخصي منفرد، همه چيز بر روي ابر که مجموعه اي متشکل از چندين کامپيوتر و سرور است که از طريق اينترنت به آنها دسترسي مييابيم ميزباني ميشود[١].
در طول دهه هاي اخير روش ها و الگوريتم هاي تکاملي به – طور گسترده مورد استفاده قرار گرفته اند. مثال هايي از کاربرد اين تکنيک ها در حل مسائل مختلف از جمله چيدمان ، مسائل چندهدفي ، مسائل برنامه ريزي و مسائل فازي مي باشد. مدلسازي رفتار حشرات اجتماعي مانند مورچه ، زنبور و استفاده از اين مدل ها براي جستجو و حل مسائل نيز، از زمينه هاي مورد بحث در زندگي حشرات گروهي است که امروزه بسيار مورد توجه قرار گرفته است . کلوني زنبورها يک تکنيک کارا براي حل مسائل بهينه سازي است که بر مبناي رفتار کاوشگرانه زنبورهاي عسل در طبيعت عمل مي کند. الگوريتم زنبور عسل شامل گروهي مبتني بر الگوريتم جستجو است که اولين بار در سال ٢٠٠٥ توسعه يافت [٢]؛ اين الگوريتم شبيه سازي رفتار جستجوي غذاي گروه هاي زنبورهاي عسل است . الگوريتم زنبور هر نقطه را در فضاي پارامتري (متشکل از پاسخ هاي ممکن ) به عنوان منبع غذا تحت بررسي قرار مي دهد.
ترکيب سرويس هاي وب با آگاهي از کيفيت سرويس ، يک الزام کليدي در محاسبات سرويس گرا ميباشد زيرا انجام فعاليت – هاي پيچيده کاربر را با برآورده ساختن محدوديت هاي کيفيت سرويس مقدور ميسازد[٣]. از آنجائي که سرويس هاي وب با عملکرد يکسان و کيفيت سرويس متفاوت با ازدياد سرويس هاي وب در حال افزايش ميباشند، تصميم گيري براي انتخاب اين که از کدام سرويس در يک سرويس مرکب داده شده بر پايه ويژگي – هاي کيفيت سرويس بايد انتخاب شود که رضايت کاربر را به حداکثر برساند ايجاد ميشود. بنابراين انتخاب سرويس هاي وب با آگاهي از کيفيت سرويس ، نقش مهمي را در ترکيب سرويس هاي وب بازي مي کند. کيفيت سرويس براي سرويس هاي با وظيفه مندي يکسان به کار رفته و جنبه هاي غيروظيفه مندي سرويس را در نظر ميگيرد مانند: هزينه ، زمان پاسخ ، قابليت دسترسي، قابليت اطمينان ، توان عملياتي و غيره(جزئيات بيشتر را ميتوانيد در تز دکتراي کاردوسو بيابيد[٤]).
در ادامه ، در قسمت ٢، کارهاي پيشين را بررسي خواهيم نمود. در قسمت ٣، مسئله را بيان ميکنيم و در قسمت ٤ به بررسي روش کار ميپردازيم . در قسمت ٥ عملکرد روش پيشنهادي با الگوريتم ژنتيک مورد مقايسه قرار خواهد گرفت و بالاخره در قسمت ٦ نتيجه گيري ارائه خواهد شد.
٢- کارهاي پيشين
مسئله انتخاب سرويس وب مبتني بر کيفيت سرويس براي اولين بار توسط چانگ يو و همکارانش گزارش گرديد و سپس مورد استقبال محققان زيادي قرار گرفت . هافمن در سال ٢٠٠٧، يک فرماليسم برنامه ريزي براي نشان دادن ترکيب سرويس هاي وب ، و همچنين شناسايي يک مورد خاص از ترکيب سرويس وب به نام “اثر رو به جلو” معرفي کرد[٥]. در سال ٢٠٠٤ گرينر[٦]، در مورد کشف سرويس هاي پويا و ترکيب سرويس با آگاهي از کيفيت سرويس ، اعلام کرد که در معماري سرويس گرا، مجموعه محدوديت ها براي بيان خصوصيات عملکردي و غيرعملکردي سرويس ها براي جستجو استفاده ميشود و سرويس ممکن است با توجه به برخي از معيارهاي مطلوب کيفيت سرويس انتخاب شود. گراسمن در سال ٢٠٠٢، به جاي استفاده از الگوريتم ژنتيک براي يافتن ترکيب بهينه از سرويس ها، از تکنيک هاي برنامه – نويسي غيرخطي عدد صحيح استفاده کرد[٧].
مايکل جايگر و گرو مول نيز از کاربرد الگوريتم ژنتيک براي مسئله بهينه سازي در انتخاب سرويس هاي وب با آگاهي از کيفيت سرويس استفاده کرده اند و پياده سازي اين الگوريتم در محيط شبيه سازي آنها٣ به منظور مقايسه کارائي آن با روش هاي ديگر تست شده است [٨]. در سال ٢٠١٠، وي ژانگ و همکارانش تکنيک بهينه سازي کلوني مورچه ها را براي ترکيب پوياي سرويس هاي وب مبتني بر کيفيت سرويس ارائه نموده اند[٩].
ژانگ و ژو در سال ٢٠٠٩، در يک کنفرانس بين المللي در مورد سرويس هاي وب، يک معماري باز محاسبات ابري ٤ پيشنهاد دادند، و اشاره کردند که مجازيسازي و معماري سرويس گرا، دو کليد تکنيکي قدرتمند هستند[١٠]. وانگ در سال ٢٠٠٨، چندين تکنيک توانمند براي محاسبات ابري معرفي کرد[١١].
٣- بيان مسئله
محاسبات ابري در مفهوم ترکيب سرويس در سرويس هاي وب به معني به کارگيري قابليت هاي کامپيوتري برمبناي اينترنت مي – باشد. ترکيب سرويس هاي وب معمولا فرآيندي است که در آن مجموعه اي از سرويس هاي وب موجود به ترتيبي که مورد نياز است در کنار هم قرار ميگيرند تا پاسخگوي نياز کاربران باشند. به اين سرويس وب جديد، سرويس وب مرکب گفته ميشود.
هيچ کدام از سرويس هاي وب به کار گرفته شده در ترکيب به – تنهايي قابليت و کارآيي آن وبسرويس مرکب را ندارند. به اين فرآيند، ترکيب سرويس گفته ميشود. سرويس هاي مرکب به – عنوان راه کاري براي پاسخگويي به نيازهاي کاربران ميباشد.
ممکن است سرويس هاي موجود در سرويس هاي مرکب در مکان هاي مختلف پياده سازي شوند و در زمينه هاي مختلف اجرا شوند اما براي دست يابي به يک هدف بايد با يکديگر تعامل داشته باشند.
يک مبحث چالش برانگيز، انتخاب بهترين مجموعه از سرويس ها براي ترکيب بندي براساس معيارهاي کيفيت سرويس است که بتواند محدوديت هاي سراسري کيفيت سرويس اعمال شده توسط کاربر را برآورده نمايد، که اين ، به عنوان يک مسئله NP-Hard شناخته مي شود. در اين مقاله سعي شده است با استفاده از روش مبتني بر الگوريتم زنبورعسل ، يک سرويس مرکب بهينه را براساس معيارهاي کيفيت سرويس در محيط محاسبات ابري با توجه به محدوديت هاي سراسري کاربر پيدا کرد و با الگوريتم ژنتيک مقايسه و بررسي کرد. روش کار به اين – صورت ميباشد که يکسري وظيفه ٥ داريم که هر کدام از اين وظيفه ها شامل سرويس هاي متعددي ميباشند. براي اجراي هر کدام از وظيفه ها ميتوان يک سرويس ابر پيدا کرد. هر کدام از اين سرويس ها از نظر وظيفه مندي يکسان هستند. ترکيب سرويس همه وظيفه ها يک هدف خاصي را برآورده ميکند. ما در اين روش يکسري سرويس به صورت تصادفي انتخاب و سپس معيارهاي کيفيت سرويس آنرا محاسبه ميکنيم . بعد از آن بررسي ميکنيم که آيا محدوديت هاي کاربر برآورده شده است يا خير؟ اگر محدوديت هاي کاربر برآورده شده باشد شايستگي آنرا محاسبه خواهيم کرد. در آخر، سرويس هايي که بهينه ترين شايستگي را توليد ميکنند انتخاب مي شوند.
٤- شرح روش
در اين قسمت ، هدف يافتن يک سرويس مرکب بهينه با آگاهي از معيارهاي کيفيت سرويس در محيط محاسبات ابري است که براي اين کار از کلوني زنبور عسل استفاده شده است .
انتخاب از بين سرويس هاي موجود در يک وظيفه براساس معيارهاي کيفيت سرويس انجام ميپذيرد. به عنوان مثال اگر هزينه براي يک نفر مهمتر از ساير ويژگي هاي کيفيت سرويس باشد در اين صورت تصميم به انتخاب کم هزينه ترين سرويس گرفته ميشود يا اگر زمان براي او اهميت داشته باشد سريع ترين سرويس انتخاب خواهد شد. علاوه برآن کاربر ممکن است محدوديت هايي را براي برخي از ويژگي هاي کيفيت سرويس تعريف کرده باشد مثلا هزينه از يک مقدار مشخصي بالاتر نرود که در انتخاب سرويس ها نيز بايستي اين موضوع مدنظر قرار داده شود. اگر تمامي حالات ممکن براي ترکيب اين سرويس ها بررسي شود و در آخر از بين اين حالات بهينه ترين جواب انتخاب شود به طوريکه محدوديت هاي کاربر نيز برآورده شده باشد، درست است که جواب حاصل ، جواب قطعي خواهد بود اما نيازمند زمان زيادي خواهد بود که اين با افزايش تعداد وظايف ، بيشتر نيز خواهد شد. لذا براي اين کار از الگوريتم زنبور عسل استفاده شده است تا با انتخاب تصادفي سرويس ها، تعداد حالات علاوه براين که کم ميشود يک جواب بهينه نيز پيدا شود، هر چند که جواب بهينه ي حاصل ، جواب قطعي نخواهد بود. به منظور به کارگيري الگوريتم پيشنهادي براي مسئله موردنظر بايستي ابتدا يک مجموعه داده اوليه ايجاد کرد، سپس عملکرد زنبورها را بر روي مسئله پياده سازي ک د. مهمترين مواردي که بايستي در حل مسئله مدنظر قرار گيرند عبارتند از:
• معيارهاي کيفيت سرويس که شامل زمان پاسخ ، هزينه ، قابليت دسترسي و قابليت اطمينان است .
• برآورده شدن محدوديت هاي کاربر با توجه به معيارهاي کيفيت سرويس .
• بهينه سازي تابع شايستگي. براي بهينه کردن ميزان شايستگي بايستي پارامترهاي کيفيت سرويس و همچنين فاکتورهاي وزن در نظر گرفته شوند.
قبل از توضيح الگوريتم زنبور عسل براي يافتن راه حل بهينه ، چگونگي محاسبه معيارهاي کيفيت سرويس را مطرح خواهيم نمود.
٤-١ محاسبه معيارهاي کيفيت سرويس
روشي که براي محاسبه معيارهاي کيفيت سرويس کل در نظر گرفته شده است به اين صورت ميباشد که براي ساختار متوالي از وظايف قابليت اطمينان سرويس انتخاب شده از هر وظيفه و قابليت دسترسي سرويس انتخاب شده از هر وظيفه با هم ضرب خواهند شد و هزينه سرويس انتخاب شده از هر وظيفه و زمان پاسخ سرويس انتخاب شده از هر وظيفه با هم جمع خواهند شد. روابط ١، ٢، ٣ و ٤ چگونگي محاسبه معيارهاي کيفيت سرويس کل را نشان مي دهند.

٤-٢ تابع شايستگي
تابع شايستگي مطابق رابطه ٥ تعريف ميشود که شامل معيارهاي کيفيت سرويس يعني قابليت اطمينان ، قابليت دسترسي، هزينه و زمان پاسخ و همچنين شامل فاکتورهاي وزن مي باشد. همان طور که ميدانيد مقادير ممکن براي قابليت اطمينان و قابليت دسترسي عددي مابين ٠ تا ١ ميباشد، لذا مقادير ممکن براي هزينه و زمان پاسخ را نيز نرمال سازي مي کنيم تا اثر فاکتورهاي وزن برروي هر يک از معيارهاي کيفيت سرويس يکسان باشد فاکتورهاي وزن ميباشند. فاکتورهاي وزن اهميت معيارهاي کيفيت سرويس را نشان ميدهند. کم يا زياد کردن مقادير فاکتورهاي وزن در مقدار شايستگي تأثير خواهد گذاشت . در مسئله ما مقادير تمامي فاکتورهاي وزن برابر ١ در نظر گرفته شده است . تابع شايستگي در مسئله ما زماني بهينه خواهد بود که مقدار آن مينيمم باشد.

٤-٣ يافتن راه حل با استفاده از الگوريتم زنبور عسل
براي يافتن راه حل با استفاده از الگوريتم زنبور عسل ، تعدادي منابع غذايي نياز است . براي ايجاد منابع غذايي اوليه که شامل n
وظيفه ميباشد، از هر وظيفه به صورت تصادفي يک سرويس انتخاب ميشود در نتيجه يک منبع غذايي شامل n سرويس از n
وظيفه ميباشد. پس از ايجاد منابع غذايي اوليه با استفاده از توابع تجمعي گفته شده در قسمت ٤-١ معيارهاي کيفيت سرويس هر منبع غذايي محاسبه ميشود. در اين مسئله مقدار هزينه کمتر از ١٥٠ و مقدار زمان پاسخ کمتر از ١٠٠ و مقادير قابليت اطمينان و قابليت دسترسي عددي مابين ٠ تا ١ در نظر گرفته شده است . بعد از ايجاد منابع غذايي اوليه و محاسبه معيارهاي کيفيت سرويس ، بررسي ميشود که آيا محدوديت هاي کاربر برآورده شده است يا خير؟ اگر محدوديت هاي کاربر برآورده نشده باشد دوباره به صورت تصادفي سرويس هاي ديگري از هر وظيفه انتخاب ميشود و پس از محاسبه معيارهاي کيفيت سرويس ، اگر محدوديت هاي کاربر برآورده شده باشد مقدار بدست آمده جايگزين منبع غذايي مورد نظر ميشود. پس از اينکه منابع غذايي اوليه ايجاد شد ميزان شايستگي منابع غذايي محاسبه ميشود. مقدار شايستگي با توجه به رابطه ٥ به دست مي آيد.