وزارت علوم، تحقيقات و فناوري
دانشگاه علوم و فنون مازندران
پايان نامه
مقطع کارشناسي ارشد
رشته: مهندسي فناوري اطلاعات
عنوان/ موضوع : ارائه راهکاري براي چالش هاي موجود در سيستم عامل هاي ابري
استاد راهنما : دکتر همايون موتمني
استاد مشاور : دکتر بابک شيرازي
دانشجو : هادي عباسي
فصل :زمستان 1391
تقديم به پدر و مادر و همسر عزيزم
تقديم به شهداي هشت سال دفاع مقدس
تقديم به شهداي هسته اي ايران

چکيده
نياز به سيستم عامل هاي توزيع شده از تغييرات مداوم محيط هاي سخت افزاري در سازمان هاي مختلف ناشي مي شود که با توجه به افزايش روز افزون کامپيوترهاي شخصي، شبکه هاي کامپيوتري، سرورها و ايستگاه هاي کاري نياز به مديريتي شفاف و کارا بر اين منابع توزيع شده بيش از پيش احساس مي گردد. سيستم عامل ابر، سيستم عاملي جهت مديريت محيط هاي توزيعي مي باشد. به عبارت ديگر يک برنامه کنترلي است که بر روي مجموعه اي از کامپيوترهاي درون يک شبکه اجرا مي شود. اين برنامه کنترلي کامپيوترهاي مختلف را يکپارچه سازي مي کند و به يک منبع محاسباتي و اطلاعاتي واحد تبديل مي نمايد. در اين تحقيق سعي شده به بيان راهکارهايي براي ساختار سيستم عامل هاي ابري بپردازيم. همچنين به ذکر توانايي هاي اين برنامه کنترلي، معماري و ساختار آن بپردازيم. سپس چالش هاي موجود در اين زمينه بررسي شده و راهکارهايي براي حل آن بيان شود.
فهرست مطالب
عنوانصفحهفصل اول: مقدمه وکليات تحقيق11-1 مقدمه21-2 سوالات اصلي تحقيق21-3 هدف از اجرا31-4 توجيه ضرورت انجام طرح31-5 تعاريف واژه ها4فصل دوم: ادبيات و پيشينه تحقيق62-1 محاسبات ابري72-2 معرفي محاسبات ابري82-3 مشخصه اصلي محاسبات ابري102-3-1 سرويس مبتني بر تقاضا102-3-2 دسترسي وسيع به شبکه102-3-3 ائتلاف منابع112-3-4 انعطاف پذيري سريع112-3-5 سرويس اندازه گيري شده112-4 معماري سرويس گرا112-5 مدل هاي سرويس122-5-1 زير ساخت به عنوان سرويس122-5-2 سکو به عنوان سرويس142-5-3 نرم افزار به عنوان سرويس152-6 مدل هاي پياده سازي172-6-1 ابر عمومي172-6-2 ابر گروهي182-6-3 ابر ترکيبي182-6-4 ابر خصوصي182-7 مشخصات محاسبات ابري192-8 مزاياي محاسبات ابري212-9 نقاط ضعف محاسبات ابري242-10 بررسي وضعيت محاسبات ابري درجهان از نگاه آماري252-11 يک نمونه قيمت در سيستم عامل Azure302-12 تعريف سيستم عامل312-13 انواع سيستم عامل312-13-1 سيستم عامل تک پردازنده312-13-2 سيستم عامل شبکه اي312-13-3 سيستم عامل توزيع شده312-13-4 سيستم عامل بي درنگ322-14 سيستم هاي توزيعي322-14-1 شفافيت332-14-2 قابليت اطمينان342-14-3 کارايي342-14-4 مقياس پذيري352-15 سيستم عامل هاي توزيعي352-15-1 الگوي مبتني برپيام362-15-2 الگوي مبتني بر شيء362-16 رويکرد سيستم عامل هاي ابري362-17 الگوي سيستم عامل ابري372-17-1 شيء ابري372-17-2 نخ392-17-3 تعامل ميان شيء و نخ392-18 برنامه نويسي در مدل شيء – نخ در ابرها402-19 معماري سيستم عامل ابري412-20 برخي سيستم عامل هاي ابري موجود422-20-1 سيستم عامل iCloud 432-20-2 سيستم عامل GlideOS442-20-3 سيستم عامل G.ho.st 452-20-4 سيستم عامل JoliCloud 462-20-5 سيستم عامل eyeOS 472-20-6 گوگل کروم، سيستم عامل اينترنت472-21 مزايا و معايب سيستم عامل هاي ابري مبتني بر وب512-22 مطالعه مروري بر ساير پژوهش هاي مرتبط مهم51فصل سوم: روش تحقيق543-1 چالش هاي رايج در زمينه سيستم عامل هاي ابري553-1-1 مقياس پذيري553-1-1-1 تغيير مقياس افقي و عمودي563-1-1-2 مقياس پذيري پايگاه داده ها573-1-1-3 طراحي براي مقياس پذيري583-1-1-4 مقياس پذيري در محاسبات ابري593-1-1-5 تغيير مقياس قوي و ضعيف593-1-2 کشش تقاضا603-1-3 خطاها603-1-4 گره خوردن کاربران به يک سرويس دهنده خاص613-1-5 وابستگي شديد بين مولفه ها613-1-6 فقدان پشتيباني چند مستاجري623-1-7 فقدان پشتيباني از SLA623-1-7-1 تعريف توصيف SLA623-1-7-2 فقدان SLA در ابرهاي موجود643-1-8 فقدان انعطاف پذيري لازم در واسط کاربري643-2 ارائه راهکارها64فصل چهارم: محاسبات و يافته هاي تحقيق684-1 پياده سازي و شبيه سازي694-2 شرايط محيط شبيه سازي714-3 مقياس پذيري با اندازه شبکه72فصل پنجم: نتيجه گيري و پيشنهادات745-1 خلاصه و نتيجه گيري755-2 مزاياي تحقيق انجام شده755-3 معايب تحقيق انجام شده755-4 کارهاي آتي76منابع و مآخذ77منابع فارسي78منابع غيرفارسي79
فهرست جداول
عنوانصفحهجدول 2-1 : سرويس دهندگان زيرساخت به عنوان سرويس13جدول2-2 : سرويس دهندگان سکو به عنوان سرويس15جدول 2-3 : سرويس دهندگان نرم افزار به عنوان سرويس16جدول 4-1 : شرايط محيط شبيه سازي72
فهرست شکل ها
عنوانصفحهشکل 2-1 : تصويري از محاسبات ابري8شکل2-2 : الگوي استقرار ابر17شکل 2-3 : مشخصات محاسبات ابري19شکل 2- 4: تمايل به سمت محاسبات ابري24شکل 2-5: بررسي وضعيت محاسبات ابري جهان26شکل 2-6: سيستم توزيع شده به عنوان ميان افزار33شکل 2-7 : ساختمان يک شي ابري38شکل 2-8 : اجراي نخ ها در شيء ابري39شکل 2-9 : مدل منطقي از يک معماري سيستم عامل ابري41شکل 2-10 : سيستم عامل iCloud43شکل 2-11: تصويري از سيستم عامل GlideOS44شکل 2-12 : تصويري از سيستم عامل G.ho.st45شکل 2-13 : تصويري از سيستم عامل JoliCloud46شکل 2-14 : تصويري از سيستم عامل eyeOS47شکل 3-1 : بروز رساني موقعيت گره در روش RNP66شکل 3-2 : درخواست موقعيت و ارسال بسته در روش RNP66شکل 3-3: شبه کد به روز رساني موقعيت گره67شکل 3-4: شبه کد درخواست موقعيت67شکل 4-1: مقايسه سرعت اجراي برنامه با افزايش تعداد پردازنده69شکل 4-2: مقايسه سرعت اجراي برنامه با افزايش تعداد ماشين مجازي70شکل 4-3: مقايسه اجاره بها با افزايش تعداد پردازنده70شکل 4-4: مقايسه اجاره بها با افزايش تعداد ماشين مجازي71شکل 4-5: نرخ موفقيت درخواست با افزايش تعداد گره ها72شکل 4-6: افزايش درصد بسته هاي تحويل داده شده با افزايش گره ها73شکل 4-7: کاهش سربار داده با افزايش تعداد گره ها73
فصل اول
مقدمه و کليات تحقيق

مقدمه
در دهه هاي آينده ما شاهد رشد چشمگير تکنولوژي در زمينه پردازنده ها خواهيم بود. ابرها که از پردازنده هاي چند هسته اي تشکيل شده اند منابع محاسباتي بي نظيري فراهم مي سازند. بايد توجه داشت که با افزايش وسعت دامنه هاي اطلاعاتي و محاسباتي نياز به منابع اين چنيني بيش از پيش احساس خواهد شد و با افزايش حجم منابع نياز به مديريتي کارا و شفاف الزام پيدا مي کند. در اينجا ممکن است اين سوال مطرح شود که: ابرها چه امکاناتي براي کاربران فراهم مي آورند؟ ابرها در انجام محاسبات عظيم نقش مهمي را ايفا مي کنند و به کاربران اين امکان را مي دهند که برنامه هاي خود را بر روي بستري قابل اطمينان و بسيار کارآمد که از اجزاي صنعتي استاندارد تشکيل شده است اجرا کنند. همچنين ابرها مدل محاسباتي بسيار ساده اي را فراهم مي آورند به اين صورت که کاربران تنها خروجي مورد نظر را با کمترين هزينه براي کاربر تامين مي نمايند. ابرها در کنار اينکه فرصت هاي فراواني را براي کاربران فراهم مي آورند، چالش هايي را نيز براي مديريت اين منابع پديد مي آورند. براي مثال از اين چالش ها مي توان به نحوه هماهنگ ساختن ميزان منابع با درخواست ها و يا وسعت زياد منابع تحت مديريت سيستم عامل اشاره نمود. در اين تحقيق با چالش هاي موجود در اين زمينه بيشتر آشنا مي شويم و پيرامون هر کدام به تفضيل صحبت خواهيم کرد.
سوالات اصلي تحقيق
سيستم عامل هاي ابري که نوعي از سيستم عامل هاي توزيعي مي باشند، مي توانند مجموعه اي از گره ها را با هم يکپارچه ساخته و يک سيستم متمرکز را توليد کنند. با توجه به اينکه ابرها فرصت هاي فراواني را براي کاربران فراهم مي آورند، چالش هايي را نيز براي مديريت اين منابع پديد مي آورند. به همين منظور سوالات زير مطرح مي شود:
چالش هاي موجود در سيستم عامل هاي ابري کدامند؟
آيا تا به حال اين چالش ها مورد بررسي قرار گرفته اند؟
اين چالش ها تا چه اندازه اهميت دارند؟
آيا راهکاري براي اين چالش ها در نظر گرفته شده است؟
هدف از اجراء
در دهه هاي اخير شاهد رشد چشمگير تکنولوژي در زمينه پردازنده ها بوده ايم و اين تکنولوژي همچنان با سرعت قابل توجهي در حال پيشرفت است. دليل اين امر افزايش منابع اطلاعاتي و محاسباتي است که اين نياز را به وجود آورده است که با ساخت چنين تکنولوژي هايي به ويژه پردازنده هاي چند هسته اي، مديريتي کارا و شفاف بر اين اطلاعات حجيم و محاسبات عظيم صورت گيرد. مديريت اطلاعات و محاسبات اين چنيني در محيط هاو سيستم هاي توزيعي به مراتب آسان تر از محيط هاي ديگر است. يکي از سيستم هاي توزيعي ابرها مي باشند که مي توانند نقش مهمي را در محاسبات عظيم و ذخيره سازي اطلاعات حجيم، ايفا کنند. بنابراين لزوم بررسي چالش ها و موانع در اين قبيل سيستم ها و رفع آنها مي تواند گامي موثر در افزايش سرعت و کارايي اين گونه سيستم ها داشته باشد.
توجيه ضرورت انجام طرح
همزمان با رشد چشمگير تکنولوژي پردازنده ها، ابرها نيز گسترش روز افزوني پيدا کرده اند. به همين ترتيب تعداد کامپيوترهاي افزوده شده به زير ساخت ابرها نيز افزايش پيدا کرده است که البته قابل ذکر است اين افزايش با توجه به تقاضاي روزافزون کاربران براي ميزباني اين منابع مي باشد. منابع ابري براي کاربران نامحدود بوده و کاربران تنها محدوديت مالي براي خريد اين منابع را پيش رو دارند. پس مي توان نتيجه گرفت که يکي از مهم ترين چالش ها در اين زمينه مقياس پذير بودن سيستم عامل هاي ابري مي باشد. در ابرها پارامترهايي همچون تقاضا، حجم کار و منابع در دسترس در طول زمان پيوسته در حال تغيير مي باشند. براي مثال هنگامي که کاربر محاسبات سنگين و پيچيده اي درخواست مي کند منابع مورد نياز وي افزايش پيدا مي کند و در پايان منابع از کاربر تحويل گرفته مي شوند، قابل ذکر است اين افزايش و کاهش در منابع ممکن است از ديد کاربر پنهان بماند. بايد به اين نکته توجه داشت که تقاضا هيچ گاه ثابت نمي ماند و ميزان منابع مورد نياز در گستره زيادي در حال تغيير مي باشد. از طرفي برنامه هاي کاربردي مبتني بر ابر معمولا منابع را بين کاربران و ديگر برنامه هاي کاربردي به اشتراک مي گذارند. اگرچه برنامه کاربردي هر کاربر در لفاف مجازي جداگانه اي قرار گرفته است ولي کيفيت سرويسي که براي برنامه فراهم مي شود را تحت تاثير قرار مي دهد. علاوه براين برنامه نويسي در اين سيستم عامل نيز کاري مشکل و توام با خطا است. با توجه به مشکلات برنامه نويسي چند نخي و چند فرآيندي که در اين نوع سيستم عامل ها استفاده مي شود امکان وجود خطا افزايش مي يابد. همچنين به دليل کمبود ابزارهاي اشکال زدايي و آناليز سيستم هاي بزرگ فهميدن خطاها سخت و برطرف سازي آنها چالش برانگيز است. برخي چالش هاي ذکر شده در اين زمينه موجب به وجود آمدن مسير تحقيقاتي گوناگون شده است که از آن جمله مي توان به موارد زير اشاره کرد که البته هر کدام از اين مسيرها به بخش هاي ديگري مي شکنند که زمينه جديدي را فراهم مي کند.
استفاده از اشياء پايدار: يکي از زمينه هاي اصلي مدل ابري فراهم آوردن مخازن داده پايدار و قابل اشتراک مي باشد. بنابراين محور اصلي برخي از تحقيقات در زمينه سيستم عامل هاي ابري، پشتيباني کارامد و استفاده بهينه از حافظه پايدار مي باشد. علاوه بر اين عرصه ديگر تحت کنترل درآوردن منابع توزيع شده مي باشد که منجر به افزايش سرعت برنامه هاي اجرايي بر روي ابرها مي گردد.
اطمينان و امنيت در سيستم عامل هاي ابري: يکي از اهداف مهم اين سيستم ها فراهم آوردن محيط محاسباتي امن براي کاربران است. اين چالش از دو بخش اصلي تشکيل مي شود: حفاظت از داده ها هنگام خرابي سيستم و تضمين انجام ادامه محاسبه از جايي که محاسبه قطع گرديد. مي توان به اين نتيجه رسيد يکي ديگر از زمينه هاي تحقيق پيرامون سيستم عامل هاي ابري افزايش اطمينان اين سيستم عامل ها مي باشد.
تحمل خطا: افزايش تحمل خطا زمينه ي تحقيقات ديگر حول اين موضوع مي باشد.
تعاريف واژه ها
سيستم هاي توزيعي1
سيستم توزيعي در واقع مجموعه اي از کامپيوترهاي مستقل2 است که براي کاربر خود مانند يک سيستم منسجم3 و منفرد4 به نظر مي رسد[2].

سيستم عامل توزيع شده5
اين سيستم عامل ها خود را مانند سيستم عامل هاي تک پردازنده به کاربر معرفي مي کنند اما در عمل از چندين پردازنده استفاده مي کنند. اين نوع سيستم عامل در يک محيط شبکه اي اجرا مي شود و در حقيقت در اين نوع سيستم جواب نهايي يک برنامه، پس از اجرا در کامپيوترهاي مختلف به سيستم اصلي بر مي گردد. سرعت پردازش در اين نوع سيستم بسيار بالاست.
سيستم عامل ابري6
سيستم عامل ابري نيز نوعي از سيستم عامل هاي توزيعي مي باشند که مجموعه اي از گره ها را با هم يکپارچه مي سازد و يک سيستم متمرکز توليد مي کند.
فصل دوم
ادبيات و پيشينه تحقيق
در اين فصل سعي شده قبل از آشنايي کامل با سيستم عامل هاي ابري در مورد محاسبات ابري، انواع سيستم عامل ها، سيستم هاي توزيعي و سيستم عامل هاي توزيعي آشنا شويم، سپس با برخي سيستم عامل هاي ابري موجود آشنا شده و در نهايت به تحقيقاتي که در اين زمينه صورت گرفته مي پردازيم.
محاسبات ابري7
محاسبات ابري مدل محاسباتي بر پايه شبکه‌هاي بزرگ کامپيوتري مانند اينترنت است که الگويي تازه براي عرضه، مصرف و تحويل سرويس‌هاي فناوري اطلاعات (شامل سخت افزار، نرم افزار، اطلاعات، و ساير منابع اشتراکي محاسباتي) با به کارگيري اينترنت ارائه مي‌کند. سير تکاملي محاسبات به گونه اي است که مي توان آن را پس از آب، برق، گاز و ‌تلفن به عنوان عنصر اساسي پنجم فرض نمود. در چنين حالتي، کاربران سعي مي کنند بر اساس نيازهاي خود و بدون توجه به اينکه يک سرويس در کجا قرار دارد و يا چگونه تحويل داده مي شود، به آن دسترسي يابند. نمونه هاي متنوعي از سيستم هاي محاسباتي ارائه شده است که سعي دارند چنين خدماتي را به کاربران ارئه دهند. برخي از آنها عبارتند از: محاسبات کلاستري، محاسبات توري و اخيراً محاسبات ابري[15]. محاسبات ابري ساختاري شبيه يک توده ابر دارد که به واسطه آن کاربران مي توانند به برنامه هاي کاربردي از هر جايي از دنيا دسترسي داشته باشند. بنابراين، محاسبات ابري مي تواند با کمک ماشين هاي مجازي شبکه شده، بعنوان يک روش جديد براي ايجاد پوياي نسل جديد مراکز داده مورد توجه قرار گيرد. بدين ترتيب، دنياي محاسبات به سرعت به سمت توسعه نرم‌افزارهايي پيش مي رود که به جاي اجرا بر روي کامپيوترهاي منفرد، به عنوان يک سرويس در دسترس ميليون ها مصرف کننده قرار مي گيرند.
شکل 2-1: تصويري از محاسبات ابري[33]
معرفي محاسبات ابري
دنياي فناوري اطلاعات و اينترنت که امروزه تبديل به جزئي حياتي از زندگي بشر شده، روز به روز در حال گسترش است. همسو با آن، نيازهاي اعضاي جوامع مانند امنيت اطلاعات، پردازش سريع، دسترسي پويا و آني، قدرت تمرکز روي پروژه هاي سازماني به جاي اتلاف وقت براي نگه داري سرورها و از همه مهم تر، صرفه جويي در هزينه ها اهميت زيادي يافته است. راه حلي که امروزه در عرصه فناوري براي چنين مشکلاتي پيشنهاد مي شود تکنولوژي اي است که اين روزها با نام محاسبات ابري شناخته مي شود.
محاسبات ابري نمونه اي است که منابع بيروني همه نيازهاي IT را از قبيل ذخيره سازي، محاسبه و نرم افزارهايي مثل Office و ERP را در اينترنت تهيه مي کند. محاسبات ابري همچنين، رشد و پيشرفت کاربرد هاي وسيع و تست براي شرکت هاي IT کوچکي را اجازه مي دهد که نمي توانند سرمايه هاي بزرگ در سازمان داشته باشند. مهم ترين مزيت پيشنهاد شده توسط ابر در مفهوم اقتصاد مقياس است و آن هنگامي است که هزاران کاربر، تسهيلات يکسان، هزينه يکسان براي هر کاربر و بهره برداري از سرور به اشتراک مي گذارند. براي فعال سازي چنين تسهيلاتي، محاسبات ابري در برگيرنده تکنولوژي ها و مفاهيمي است مثل: مجازي سازي و محاسبات سودمند، پرداخت در ازاي ميزان استفاده، بدون سرمايه گذاري هاي کلان، انعطاف پذيري، مقياس بندي، شرايط تقاضا و منابع بيروني IT.
محاسبات ابري را ابر نيز مي نامند چون يک سرور ابري داراي شکل بندي است که مي تواند هر جايي در جهان قرار داشته باشد. ابر، تصويري است انتزاعي از شبكه‌اي عظيم؛ توده‌اي كه حجم آن مشخص نيست، نمي‌دانيم از چه ميزان منابع پردازشي تشكيل شده. ابعاد زماني و مكاني يكايك اجزاي آن نيز دانسته نيست، نمي‌دانيم سخت‌افزار‌ها و نرم‌افزارها كجاي اين توده قرار دارند، اما آن‌چه را كه عرضه مي‌كند، مي‌شناسيم. درست مثل برق! شما براي اينکه از وسايل و تجهيزات برقي در خانه يا محل کارتان استفاده کنيد لازم نيست يک ژنراتور يا کارخانه برق در خانه خود داشته باشيد، بلکه به ازاي هزينه مشخصي برق را اجاره مي‌کنيد. حالا اگر مصارف برقي شما بيشتر و متفاوت‌‌تر باشند مثلاً‌ مي‌رويد و از خدمات برق صنعتي استفاده مي‌کنيد. در محاسبات ابري هم شرکت‌ها و سازمان‌ها و افراد ديگر براي نرم‌افزار، سخت‌افزار يا شبکه پولي پرداخت نمي‌کنند، بلکه توان محاسباتي و سرويس‌هاي نرم‌افزاري مورد نيازشان را خريداري مي‌کنند. اين ايده در واقع صرفه‌جويي بزرگ و بهره‌وري زيادي در منابع IT را به همراه خواهد داشت. بدين ترتيب کافي است وسيله شما (پي‌سي، موبايل، تلويزيون، حتي يخچال!) يک رابط نرم‌افزاري (مرورگر) براي استفاده از سرويس‌هاي آنلاين و يک دسترسي به اينترنت داشته باشد،‌ خواهيد ديد که قادر هستيد به راحتي از توان محاسباتي براي انجام کارهاي ديجيتالي خود بهره بگيريد.
رشد و پيشرفت محاسبات ابري منجر به چندين تعريف پيشنهادي از خصوصيات آن مي شود. برخي از اين تعاريف توسط دانشمندان مشهور و سازمان ها ارائه شده است مثل:
الف) Buyya و همکارانش که محاسبات ابر را در مفهوم کاربري است براي کاربر نهايي بدين صورت تعريف مي کنند: يک ابر سيستمي محاسباتي توزيع شده بازارگرا8 است که شامل جمع آوري کامپيوترهاي مجازي و ارتباط داخلي هستند که از لحاظ ديناميکي به عنوان يک يا چند منبع محاسباتي متحد بر اساس توافق هاي سطح سرويس بين مصرف کنندگان و فراهم کنندگان خدمات مذاکره مي کنند[14].
ب) موسسه ملي استانداردها و تکنولوژي9 محاسبات ابري را به صورت زير تعريف مي کند: محاسبه ابري، الگويي است براي اينکه شبکه هاي مبتني بر تقاضا به منابع محاسباتي (مثل سرور، شبکه، ذخيره سازي، برنامه هاي کاربردي و خدمات) طوري دستيابي پيدا کنند که شامل حداقل تلاش مديريت يا تعامل فراهم کننده سرويس است. اين الگوي ابر، قابليت دستيابي را ارتقا مي دهد و شامل پنج تا از ويژگي هاي ضروري، سه تا از الگوهاي سرويس و چهار تا الگوي استقرار است.
ويژگي هاي ابري شامل انتخاب سرويس مبتني بر تقاضا10، دسترسي وسيع به شبکه11، ائتلاف منابع12، انعطاف پذيري سريع13 و سرويس اندازه گيري شده14 است. الگوهاي خدمات در دسترس به صورت نرم افزار به عنوان سرويس(SaaS)، سکو به عنوان سرويس (PaaS) و زيرساخت به عنوان سرويس (IaaS) تقسيم بندي مي شوند. الگوي گسترش به ابرهاي عمومي، خصوصي، اجتماعي و هيبريد تقسيم بندي مي شود.
مشخصه اصلي محاسبات ابري
موسسه ملي استانداردها و فناوري، خصوصيات محاسبات ابري زير را به صورت زير تعريف مي کند:
سرويس مبتني بر تقاضا
مشتري مي تواند به صورت يک طرفه امکانات و خدمات محاسباتي همچون سرور و فضاي ذخيره سازي در شبکه را به هنگام نياز از هر فراهم کننده اي به صورت خودکار و بدون نياز به دخالت انسان به دست آورده و از آنها استفاده کند. به عبارت ديگر، براي مديريت زيرساخت ابر نيازمند استخدام مديران شبکه يا Admin به صورت تمام وقت نيستيم. بيشتر سرويس هاي ابر، پورتال هاي سلف سرويس دارند که به آساني مديريت مي شوند.
دسترسي وسيع به شبکه
توانمندي هاي موجود بر روي شبکه، از طريق مکانيزم هاي استاندارد که استفاده از روش هاي ناهمگون پلتفرم هاي کلاينت، مانند تلفن هاي موبايل، لپ تاپ ها و PDA ها، را ترويج مي کنند، قابل دسترسي هستند.
ائتلاف منابع
منابع محاسباتي فراهم کننده جمع آوري شده اند تا با به کارگيري مدل چند مشتري به چندين مشتري خدمت رساني کنند. اين کار به وسيله منابع فيزيکي يا مجازي مختلف که به شکلي پويا و بنابر درخواست مشتري واگذار و پس گرفته مي شوند، صورت مي گيرد. در اينجا حالتي از عدم وابستگي به مکان وجود دارد که در آن مشتري معمولاً کنترل يا دانشي درباره محل دقيق منابع فراهم شده ندارد ولي ممکن است در سطوح بالاتر انتزاعي بتواند محل را تعيين کند، مثل: کشور، استان يا مراکز داده. براي نمونه منابع شامل فضاي ذخيره سازي، توان پردازشي، حافظه، پهناي باند شبکه و ماشين هاي مجازي مي شود.
انعطاف پذيري سريع
مي توان امکانات را به سرعت و با انعطاف، در بعضي موارد به صورت خودکار، به دست آورد تا به سرعت گسترش داده شده( از ديد مقياس) يا درجا آزاد شوند و خيلي سريع به مقياس کوچکتري دست يابند. از ديد مشتري امکاناتي که براي به دست آمدن در دسترس هستند اغلب نامحدود به نظر مي آيند و مي توانند به هر مقدار و در هر زمان خريداري شوند.
سرويس اندازه گيري شده
سيستم هاي ابري منابع را خودکار کنترل و بهينه مي کنند. اين کار با به کارگيري توانايي اندازه گيري در سطحي از تجريد که مناسب گونه آن خدمت ( مثل: فضاي ذخيره سازي، توان پردازشي، پهناي باند و شمار کاربران فعال) است انجام مي شود. ميزان استفاده از منابع مي تواند به شکلي شفاف هم براي مشتري و هم براي فراهم کننده زير نظر گرفته، کنترل شده و گزارش داده شود.
معماري سرويس گرا15
معماري مبتني بر سرويس در واقع يک مجموعه اي از سرويس ها است که با يکديگر ارتباط برقرار مي کنند. حين اين ارتباط ممکن است داده هايي را بين يکديگر پاس کاري کنند و همچنين ترکيب دو يا چند سرويس با هم يک کار انجام دهد. در اين جا چند مفهوم اتصال بين سرويس ها مورد نياز است. برخلاف دهه هاي گذشته که نرم افزارها قائم به خود و انفرادي بودند، در حال حاضر روند تکامل نرم افزارها به سوي معماري مبتني بر سرويس مي رود. رشد انفجاري تکنولوژي هاي اينترنت و تعداد کاربران آن موجب شده که فروش نرم افزار جاي خودش را به اجاره نرم افزار بدهد. شرکت هاي بزرگي مانند مايکروسافت، گوگل، سان و حتي آمازون به اين سمت مي روند که به جاي فروش مستقيم نرم افزار به کاربر خدمات نرم افزاري را ارئه دهند. معماري مبتني بر سرويس معماري نرم افزار يا سيستمي است که امکاناتي چون کامپوننت ها، استفاده مجدد، توسعه پذيري و راحتي را در اختيار ما قرار مي دهد. اين ويژگي ها براي شرکت هايي که به دنبال کاهش هزينه هستند و به جاي فروش به اجاره سرويس هاي نرم افزار تاکيد دارند، الزامي است[9].
مدلهاي سرويس
در مدل سرويس، انواع گوناگون ابر بيانگر قالبي هستند که زير ساختها در آن قرار ميگيرد. اکنون محدوده شبکه، مديريت و مسئوليتها به پايان ميرسد و امور مربوط به بخش سرويسدهندهي ابر آغاز ميشود. با پيشرفت محاسبات ابري فروشندگان، ابرهايي را با سرويس هاي مختلف مرتبط به کار خود عرضه مينمايند. با سرويسهايي که عرضه ميشوند مجموعه ديگري از تعاريف به نام مدل سرويس در محاسبات ابري مطرح ميشود. براي مدلهاي سرويس، نامگذاريهاي بسياري صورت گرفته که همگي به فرم زير تعريف شده اند:
XaaS,or “<something>as a Service”
در حال حاضر در جهان سه نوع سرويس به صورت متداول شناخته مي شود:
زير ساخت به عنوان سرويس16
زير ساخت به عنوان سرويس يا IaaS ماشينهاي مجازي، فضاي ذخيرهسازي مجازي، زير ساخت هاي مجازي و ساير سخت افزارهاي کاربردي را به عنوان منابع براي مشتريان فراهم ميآورد. سرويسدهندهي IaaS تمامي زير ساختها را مديريت مينمايد و در حالي که مشتريان مسئول باقي جنبههاي استقرار ميباشند. از جمله سيستم عامل، برنامهها و تعاملات سيستم با کاربر و غيره.
در جدول 2-1 تعدادي از سرويس دهندگان شناخته شده در حوزه IaaS به همراه توصيفي کوتاه از نوع سرويس ارائه شده آنها آورده شده است.
جدول2-1 : سرويس دهندگان زير ساخت به عنوان سرويس
سازمانسرويس/ ابزارتوصيفلايه-سطحآمازونElastic Compute Cloudسرور مجازيIaaS- سرويس منبع مجازيDynamoسيستم ذخيره سازي مبتني بر کليد-ارزش17IaaS- سرويس زيرساخت پيشرفتهSimple Storage Serviceسيستم ذخيره سازي دسته ايIaaS- سرويس زير ساخت پايهSimpleDBپايگاه داده به عنوان سرويسIaaS- سرويس زير ساخت پيشرفتهCloudFrontتحويل محتواIaaS- سرويس زير ساخت پيشرفتهSQSسرويس صف و زمانبنديIaaS- سرويس زير ساخت پيشرفتهAppNexusAppNexus Cloudسرور مجازيIaaS- سرويس منبع مجازيگوگلGoogle Big Tableسيستم توزيع شده براي ذخيره سازيIaaS- سرويس زير ساخت پيشرفتهGoogle File Systemسيستم- فايل توزيع شدهIaaS- سرويس زير ساخت پايهاچ پيiLOمديريت خاموشي سرورIaaS- سرويس منبع فيزيکيTycoonسيستم مديريت منابع محاسباتي در کلاسترهاIaaS- سرويس منبع مجازيJoyentAcceleratorسرور مجازيIaaS- سرويس منبع مجازيConnectorسرور مجازي از قبل تنظيم شدهIaaS- سرويس زير ساخت پيشرفتهBingoDiskديسک ذخيره سازيIaaS- سرويس زير ساخت پايهBluelockBluelock Virtual Cloud Computingسرور مجازيIaaS- سرويس منبع مجازيBluelock Virtual Recoveryبازيابي مصيبت و شکستIaaS- سرويس زير ساخت پيشرفتهEmulabEmulab Network Testbedبستر آزمايش شبکهIaaS- سرويس منبع فيزيکيENKIENKI Virtual Private Data Centersمنابع ديتا سنتر مجازي بنابر تقاضاIaaS- سرويس منبع مجازيEU Resevoir ProjectOpen Nebulaموتور مجازي زيرساخت(متن باز)IaaS- سرويس منبع مجازيFlexiScaleFlexiScale Cloud Computingسرور مجازيIaaS- سرويس منبع مجازيGoGridCloud Hostingسرور مجازيIaaS- سرويس منبع مجازيCloud Storageفضاي ذخيره سازيIaaS- سرويس زير ساخت پايهNirvanixNirvanix Storage Delivery Networkديسک ذخيره سازيIaaS- سرويس زير ساخت پيشرفتهOpenFlowOpenFlowشبيه سازي شبکهIaaS- سرويس زير ساخت پيشرفتهRackSpaceMasso Cloud Sitesسرور مجازي از پيش تنظيم شدهIaaS- سرويس زير ساختMasso Cloud Storageديسک ذخيره سازيIaaS- سرويس زير ساخت پايهMasso Cloud Seversسرور مجازيIaaS- سرويس منبع مجازيSkytapSkytap Virtual Labمحيط آزمايشگاه مجازي فناوري اطلاعاتIaaS- سرويس زير ساختTerremarkInfinistructureسرور مجازيIaaS- سرويس منبع مجازيUCSBEucalyptusنسخه متن باز EC2 آمازونIaaS- سرويس منبع مجازي10genMongo DBپايگاه داده براي ذخيره سازي ابريIaaS- سرويس زير ساخت پيشرفتهBabble Application Serverسرور برنامه هاي تحت وب براي استقرار ابريIaaS- سرويس زير ساخت پيشرفته
سکو به عنوان سرويس18
سکو به عنوان سرويس ياPaaS ، ماشينهاي مجازي، سيستمهاي عامل، برنامهها، سرويسها، چارچوبهاي توسعه، تراکنشها و ساختارهاي کنترلي را فراهم ميآورد. مشتري ميتواند برنامههاي خود را بر روي زير ساخت ابر قرار دهد و يا اينکه از برنامههايي استفاده کند که با استفاده از زبانها و ابزارها نوشته شدهاند و توسط سرويس دهندهيPaaS پشتيباني مي شوند. سرويسدهنده زيرساخت ابر، سيستمهاي عامل و نرمافزارهاي فعالسازي را فراهم ميآورد. مشتري مسئول نصب و مديريت برنامههايي که قرار داده است، ميباشد.
در جدول 2-2 تعدادي از سرويس دهندگان شناخته شده در حوزه PaaS به همراه توصيفي کوتاه از نوع سرويس ارائه شده آنها آورده شده است.
جدول2-2 : سرويس دهندگان سکو به عنوان سرويس
سازمانسرويس/ابزارتوصيفلايه-سطحAkamaiEdgePlatformتحويل برنامه کاربردي، محتوا و سايتPaaSمايکروسافتAzureمحيط توسعه و اجرا براي برنامه هاي کاربردي مايکروسافتPaaSLive Meshبستري براي به هنگام سازي، اشتراک و دسترسي به دامنه وسيعي از دستگاه هايي با سيستم عامل مايکروسافتPaaSفيس بوکFacebook Platformبستر آزمايش شبکهPaaSگوگلApp Engineمحيط اجرايي قابل گسترش براي برنامه هاي تحت وب نوشته شده در زبان پايتونPaaSNetSuiteSuiteFlexجعبه ابزاري براي سفارشي سازي برنامه هاي کاربردي کسب و کار آنلاين همين شرکتPaaSSalesforceForce.comساخت و تحويل برنامه هاي کاربردي در کلاس کسب و کارPaaSSunCarolineبستر قابل گسترش افقي براي توسعه و استقرار سرويس هاي تحت وبPaaSZohoZoho Creatorجعبه ابزاري براي ساخت و تحويل برنامه هاي کاربردي در کلاس کسب و کار و به شکل بنابر بر تقاضاPaaS
نرمافزار به عنوان سرويس19
نرمافزار به عنوان سرويس يا SaaS يک محيط کاملاً عملياتي براي مديريت برنامهها و واسط کاربري است. در مدل SaaS برنامه از طريق يک برنامه واسط (معمولاً مرورگر) به مشتري سرويس ميدهد و مسئوليت مشتري با ورود داده شروع و با مديريت داده و تعاملات کاربري پايان مييابد. همه چيز مربوط به برنامه تا زير ساخت در حوزهي مسئوليت فروشنده است.
در جدول 2-3 تعدادي از سرويس دهندگان شناخته شده در حوزه SaaS به همراه توصيفي کوتاه از نوع سرويس ارائه شده آنها آورده شده است.
جدول2-3 : سرويس دهندگان نرم افزار به عنوان سرويس
سازمانسرويس/ابزارتوصيفلايه-سطحگوگلGoogle Docsبسته نرم افزاري آفيس آنلاينSaaSGoogle Maps APIرابط برنامه نويس سرويس نقشه گوگل به توسعه دهندگان اين امکان را مي دهد تا نقشه گوگل را در سايت هاي خود جاسازي کنندSaaS- سرويس سادهOpenID FoundationOpenSocialيک رابط برنامه نويسي کاربردي مشترک براي برنامه هاي شبکه هاي اجتماعيSaaS-سرويس مرکبOpenIDيک سيستم توزيع شده که به کاربران اين اجازه را مي دهد تا تنها با يک شناسه ديجيتال بتوانند از سايتها مختلف استفاده نمايند.SaaS- سرويس سادهمايکروسافتOffice Liveبسته نرم افزاري آفيس آنلاينSaaSSalesforceSalesforce.comبسته نرم افزاري مديريت روابط مشتريانSaaS
اين سه مدل متفاوت سرويس به نام مدل SPI 20 محاسبات ابري شناخته ميشوند. گرچه تاکنون از مدلهاي سرويس بسياري نام برده شد، staas 21 فضاي ذخيرهسازي به عنوان سرويس؛ idaas 22 هويت به عنوان سرويس؛ cmaas 23 توافق به عنوان سرويس؛ و غيره، با اين وجود سرويس هاي SPI تمامي باقي سرويسهاي ممکن را نيز در بر ميگيرد. IaaS داراي حداقل سطوح عامليت مجتمع شده و پايين ترين سطوح مجتمع سازي ميباشد و SaaS داراي بيشترينها است. يک PaaS يا سکو به عنوان سرويس خصوصيات مجتمع سازي، ميانافزارها و ساير سرويسهاي هماهنگساز را به مدل IaaS يا زير ساخت به عنوان سرويس ميافزايد. هنگامي که که يک فروشندهي محاسبات ابري، نرمافزاري را بر روي ابر عرضه ميکند، با استفاده از برنامه و پرداخت فوري، يک عمليات SaaS انجام مي گيرد. با SaaS مشتري برنامه را در صورت نياز استفاده ميکند و مسئول نصب، نگهداري و تعمير برنامه نيست.
مدل‌هاي پياده‌سازي
در تعريف NIST (انستيتوي ملي استاندارد ها و فناوري ها) مدل هاي استقرار ابر به چهار صورت زير است:
شکل 2-2 : الگوي استقرار ابر[29]
ابر عمومي24
ابر عمومي يا ابر خارجي توصيف کننده محاسبات ابري در معناي اصلي و سنتي آن است. سرويس‌ها به صورت ديناميک و از طريق اينترنت و در واحدهاي کوچک از يک عرضه کننده شخص ثالث تدارک داده مي‌شوند و عرضه کننده منابع را به صورت اشتراکي به کاربران اجاره مي‌دهد و بر اساس مدل محاسبات همگاني و مشابه صنعت برق و تلفن براي کاربران صورتحساب مي‌فرستد. اين ابر براي استفاده همگاني تعبيه شده و جايگزين يک گروه صنعتي بزرگ که مالک آن يک سازمان فروشنده ي سرويس هاي ابري مي باشد.
ابر گروهي25
ابر گروهي در جايي به وجود مي‌آيد که چندين سازمان نيازهاي يکسان دارند و به دنبال اين هستند که با به اشتراک گذاردن زيرساخت از مزاياي محاسبات ابري بهره‌مند گردند. به دليل اينکه هزينه‌ها بين کاربران کمتري نسبت به ابرهاي عمومي تقسيم مي‌شود، اين گزينه گران‌تر از ابر عمومي است اما ميزان بيشتري از محرمانگي، امنيت و سازگاري با سياست‌ها را به همراه مي‌آورد.
ابر ترکيبي26
يک ابر ترکيبي متشکل از چندين ارائه دهنده داخلي و يا خارجي، گزينه مناسبي براي بيشتر مؤسسات تجاري مي‌باشد. با ترکيب چند سرويس ابر کاربران اين امکان را مي‌يابند که انتقال به ابر عمومي را با دوري از مسائلي چون سازگاري با استانداردهاي شوراي استانداردهاي امنيت داده‌هاي کارت هاي پرداخت آسان تر سازند.
ابر خصوصي27
ابر خصوصي يک زير ساخت محاسبات ابري است که توسط يک سازمان براي استفاده داخلي آن سازمان به وجود آمده‌است. عامل اصلي که ابرهاي خصوصي را از ابرهاي عمومي تجاري جدا مي‌سازد، محل و شيوه نگهداري از سخت افزار زيرساختي ابر است. ابر خصوصي امکان کنترل بيشتر بر روي تمام سطوح پياده سازي ابر (مانند سخت افزار، شبکه، سيستم عامل، نرم افزار) را فراهم مي‌سازد. مزيت ديگر ابرهاي خصوصي امنيت بيشتري است که ناشي از قرارگيري تجهيزات در درون مرزهاي سازمان و عدم ارتباط با دنياي خارج ناشي مي‌شود. اما بهره گيري از ابرهاي خصوصي مشکلات ايجاد و نگهداري را به همراه دارد. يک راه حل ميانه براي دوري از مشکلات ابرهاي خصوصي و در عين حال بهره مند شدن از مزاياي ابرهاي خصوصي، استفاده از ابر خصوصي مجازي است. به عنوان نمونه مي‌توان از ابر خصوصي مجازي آمازون نام برد.
مشخصات محاسبات ابري
مشخصات کليدي توسط ابر در شکل 2-3 نشان داده شده است و در قسمت زير مورد بحث و بررسي قرار گرفته است:
شکل 2-3 : مشخصات محاسبات ابري[28]
مجازي شده28 : منابع (يعني محاسبه کردن، ذخيره سازي و ظرفيت شبکه) در ابرها تصور مي شوند و اين روش در سطوح مختلف مثل 29vm و سطوح بسته بدست مي آيد[9]. اصلي ترين آن در سطح ماشين مجازي است که در آن برنامه هاي کاربردي متفاوت در سيستم هاي عملکردي با همان ماشين فيزيکي اجرا مي شوند. سطح سکو باعث نقشه برداري برنامه هاي کاربردي در يک يا چند منبع مي شود که توسط فراهم آورندگان زيرساخت ابري پيشنهاد شده است.
سرويس گرا: ابر با استفاده از الگوي زيرساخت سرويس گرا به کار مي رود که در آن همه اجزا در شبکه به عنوان يک سرويس در دسترس هستند، چه نرم افزار باشد، چه سکو يا هر زيرساختي که به عنوان سرويس پيشنهاد مي کنند.
انعطاف پذيري30 : منابع (يعني محاسبه کردن، ذخيره سازي و ظرفيت شبکه) براي برنامه هاي کاربردي ابر موردنياز هستند که مي توانند به صورت پويا و مختلف مقرر مي شوند. يعني افزايش يا کاهش در زمان اجرا بستگي به نيازهاي 31QOS کاربر دارد. فراهم کنندگان ابر اصلي مثل آمازون حتي سرويس هايي را براي توسعه عمودي و توسعه افقي در براساس نيازهاي برنامه هاي کاربردي ميزبان دارد.
پويا و توزيع شده: گرچه منابع ابر، مجازي شده اند، آنها اغلب در عملکردهاي بالا يا سرويس هاي ابر قابل اطمينان توزيع مي شوند. اين منابع انعطاف پذير و مي توانند بر طبق نيازهاي مشتري سازگاري يابند مثل: نرم افزار، پيکربندي شبکه و غيره[10].
اشتراك (اقتصاد مقياسي)32: زيرساخت ابرها هر جايي است که منابع هاي متعدد از خود کاربر بر طبق نيازهاي برنامه کاربردي خود استفاده مي کنند، مشترك مي شوند. اين الگوي اشتراکي به عنوان الگوي اجاره چندگانه33 نيز مي باشد. به طور کلي، کاربران نه داراي کنترل مستقيم بر منابع فيزيکي هستند و نه از تخصيص منابع و اينکه با چه کساني مشترك شده اند، خبر دارند.
بازارگرا (پرداخت – در ازاي – ميزان استفاده): در محاسبات ابري، کاربران براساس پرداخت – در ازاي – ميزان استفاده براي سرويس ها پرداخت مي کنند. الگوي قيمت گذاري مي تواند با توجه به انتظار برنامه هاي کاربردي در کيفيت سرويس متفاوت باشد. فراهم آورندگان ابر IaaS مثل منابع قيمت ها در آمازون از الگوهايي بازاري مثل الگوهاي قيمت گذاري کالاها يا زمان پرداخت آنها استفاده مي کنند. يک الگوي قيمت گذاري توسط Thualsiram و Allenofor براي منابع مجهز پيشنهاد شده است که مي تواند به عنوان اساسي براي منابع ابر استفاده شوند. اين خصوصيت، بعد بهره برداري از محاسبات ابري را بيان مي کند. يعني، سرويس هاي ابري به عنوان سرويس هاي سنجيده شده34 هستند که در آن فراهم کنندگان داراي الگوي محاسباتي براي اندازه گيري کاربردها از سرويس ها هستند که به توسعه برنامه هاي قيمت گذاري متفاوت کمک مي کند. الگوي محاسباتي به کنترل و بهينه سازي از منابع کمک مي کند.[16]
خودمختار35 : براي فراهم کردن سرويس هاي قابل اطمينان در حد بالا، ابرها رفتاري مستقل را با مديريت خودشان در دگرديسي36 عملکرد يا شکست نشان مي دهند.
مزاياي محاسبات ابري

کارمان را با بيان مزاياي متعددي که توسط محاسبات ابري ارائه مي شود آغاز مي کنيم. وقتي شما به سمت استفاده از ابر مي رويد، به چيزهاي زير دست پيدا مي کنيد:

هزينه هاي کامپيوتري کمتر: شما براي اجراي برنامه هاي کاربردي مبتني بر وب، نيازي به استفاده از يک کامپيوتر قدرتمند و گران قيمت نداريد. از آن جائي که برنامه هاي کاربردي بر روي ابر اجرا مي شوند، نه بر روي يک کامپيوتر رو ميزي. کامپيوتر روميزي شما نيازي به توان پردازشي زياد يا فضاي ديسک سخت که نرم افزارهاي دسکتاپ محتاج آن هستند ندارد. وقتي شما يک برنامه کاربردي تحت وب را اجرا مي کنيد، کامپيوتر شما مي تواند ارزان تر، با يک ديسک سخت کوچک تر، با حافظه کم تر و داراي پردازنده کارآمدتر باشد. در واقع، کامپيوتر شما در اين سناريو حتي نيازي به يک درايو CD يا DVD هم ندارد زيرا هيچ نوع برنامه نرم افزاري بار نمي شود و هيچ سندي نياز به ذخيره شدن بر روي کامپيوتر ندارد.
کارآيي توسعه يافته: با وجود برنامه هاي کم تري که منابع کامپيوترشما، خصوصاً حافظه آن را به خود اختصاص مي دهند، شما شاهد کارآيي بهتر کامپيوتر خود هستيد. به عبارت ديگر کامپيوترهاي يک سيستم محاسبات ابري، سريع تر بوت و راه اندازي مي شوند زيرا آن ها داراي فرآيندها و برنامه هاي کم تري هستند که به حافظه بار مي شود.

هزينه هاي نرم افزاري کم تر: به جاي خريد برنامه هاي نرم افزاري گران قيمت براي هر کامپيوتر، شما مي توانيد تمام نيازهاي خود را به صورت رايگان برطرف کنيد. بله درست است، اغلب برنامه هاي کامپيوتري محاسبات ابري که امروزه عرضه مي شوند، نظير Google Docs، کاملاً رايگان هستند. اين، بسيار بهتر از پرداخت 200 دلار يا بيشتر براي خريد برنامه office مايکروسافت است که اين موضوع به تنهايي مي تواند يک دليل قوي براي سوئيچ کردن به محاسبات ابري محسوب شود.

ارتقاي نرم افزاري سريع و دائم: يکي ديگر از مزاياي مربوط به نرم افزار در محاسبات ابري اين است که شما ديگر نيازي به بروز کردن نرم افزارها و يا اجبار به استفاده از نرم افزارهاي قديمي، به دليل هزينه زياد ارتقاي آن ها نداريد. وقتي برنامه هاي کاربردي، مبتني بر وب باشند، ارتقاها به صورت اتوماتيک رخ مي دهد و



قیمت: تومان


پاسخ دهید