—d1215

زمان تکمیل آخرین کار را نشان میدهد. زمان تکمیل بیشینه Cmaxبیشترین انحراف زمانی از موعد تحویل را محاسبه میکند زمان تاخیر بیشینه Lmaxمجموع زمانهای تکمیل کارها را اندازهگیری میکند. زمان تکمیل کل Cjمجموع انحرافات زمانی از موعد تحویل را درنظر میگیرد. زمان دیرکرد کل Tjتعداد کارهای دارای دیرکرد زمانی را محاسبه میکند. تعداد کارهای با تاخیر کل Ujمجموع زمانهای زودکرد و دیرکرد را نشان میدهد. زمانهای زودکرد و دیرکرد کل Ej+Tjمجموع زمانهای تکمیل وزنی کارها را محاسبه میکند. زمان تکمیل وزنی کل wjCjمجموع انحرافات وزنی از موعد تحویل را محاسبه میکند. زمان دیرکرد وزنی کل wjTjتعداد وزنی کارهای دارای دیرکرد وزنی را نشان میدهد. تعداد کارهای با تاخیر وزنی کل wjUjمجموع زمانهای زودکرد و دیرکرد وزنی کارها را محاسبه میکند. زمانهای زودکرد و دیرکرد وزنی کل wj'Ej+wj"Tjسیستم تولید جریانی منعطف یکی از پرکاربردترین سیسستمهای تولیدی است که در واقع حالت کلیتر سیستم تولید جریانی و حالت خاصی از سیستم ماشینهای موازی است. از آنجا که چنین چیدمانی از ماشینها انعطاف پذیری خطوط تولیدی را تا حد زیادی افزایش میدهند، امروزه این حوزه توجه زیادی را به خود جلب کرده است.
از زمانی که اولین تحقیقات در زمینه سیستم تولید جریانی منعطف تاکنون انجام شده است، محدودیتهای بسیاری نظیر زمان نصب وابسته به توالی کارها، پردازش گروهی و … در این نحوه تولید مورد مطالعه قرار گرفتهاند. اما بررسی پردازش بدون انتظار نه تنها در حوزه سیستم تولید جریانی منعطف بلکه در سیستم تولید جریانی معمول نیز کمتر مورد بررسی قرار گرفته است. در این تحقیق، مسئله زمانبندی سیستم تولید جریانی بدون انتظار منعطف با در نظر گرفتن ظرفیت محدود تولید ماشینآلات، رد یا قبول سفارشات و زمان نصب وابسته به توالی کارها و با رویکرد مدیریتی ترکیبی تولید برای ذخیره و تولید برای سفارش با هدف به حداقل رساندن هزینهها(هزینههای ناشی از زودکرد و دیرکرد وزنی و رد کردن یا تحویل ناقص سفارش) مورد بررسی قرار میگیرد. به منظور مرور ادبیات تحقیق، اهم پژوهشهای انجام شده در این حوزه به تفکیک محدودیتها و تابع هدف مورد بررسی قرار میگیرند.
2-2. پردازش بدون انتظارپردازش بدون انتظار یک کار به این معنی است که از زمان شروع پرداش کار روی اولین ماشین تا زمان اتمام پرداش روی آخرین ماشین هیچ وقفه زمانی وجود نداشته باشد. با توجه به این شرایط، شروع پرداش یک کار روی اولین ماشین باید تا زمانی که شرایط پرداش بدون انتظار آن فراهم باشد به تعویق بیفتد [40]. یکی از رایجترین مثالها برای تولید بدن انتظار، صنایع فولاد است. فهرست کاملی از کاربردهای این روش تولیدی توسط هال و اسریسکاندراجاه (1996) [26]، فرامینان و ناگارو (2008) [18] و فرامینان و همکارانش (2010) [17] گرداوری شده است.
با نگاهی اجمالی، تحقیقات انجام شده در زمینه پردازش بدون انتظار را میتوان در سه دسته کلی جای داد که در این بخش اهم تحقیقات انجام شده در هر دسته ارائه میشوند.
2-2-1. سیستم تولید جریانی با دو ماشیندر این سیستم جریانی تنها دو ماشین وجود دارد. آلدوویزان (1998) [8] این مسئله را همراه با محدودیت زمان نصب جدا از زمان پردازش و با تابع هدف مجموع زمانهای تکمیل کارها مورد بررسی قرار داد. پس از آن آلدوویزان (2001) [9] همین مسئله را به کمک روش شاخه و کران حل کرد. بعدها هر دوی این محققان کار خود را برای همین مسئله در حالت سه ماشین تعمیم دادند. شیو(2004) [48] مسئله F2|nwt,sij|Ci را به کمک نمایش مسئله به فرم مسئله فروشنده دورهگرد به کمک الگوریتم کلونی مورچگان حل کرد و نشان داد که نتایج حاصل از آن بهتر از روشهای ابتکاری است که توسط اللهوردی و آلدوویزان بدست آمده بود.
2-2-2. سیستم تولید جریانی با بیش از دو ماشیندر این دسته پژوهشهای زیادی انجام شده است که از آن جمله میتوان به پژوهش انجام شده توسط توکلی مقدم و همکارانش(2008) [50] اشاره کرد که مسئله زمانبندی تولید جریانی بدون انتظار با توابع هدف مینیممسازی متوسط زمان تکمیل وزنی و متوسط دیرکرد وزنی را به کمک الگوریتم سیستم ایمنی مصنوعی حل کرد. بابک جوادی و همکارانش(2008) [27] مسئله چند هدفه سیستم جریانی بدون انتظار فازی را به کمک برنامهریزی خطی حل کرد. که پن و همکارانش(2009) [41] همین مسئله را با توابع هدف مینیممسازی بیشینه زمان تکمیل و مینیممسازی بیشینه دیرکرد به کمک الگوریتم دیفرانسیل تکاملی حل کرد. یوتسنگ و تای لین(2010) [52] مسئله مورد بحث را توسط الگوریتم ژنتیک ترکیبی حل کردند. ونگ و همکارانش نیز(2010) [55] روشی بر پایه الگوریتم جستجوی ممنوع به نام جستجوی ممنوع شتاب داده شده برای حل مسئله زمانبندی تولید جریانی بدون انتظار با تابع هدف مینیممسازی بیشینه دیرکرد ارائه کردند که در آن از سه روش ابتکاری جهت تولید جواب کاندیدا استفاده شده بود. در ادامه پژوهشهای انجام شده چینگ یینگ و همکارانش(2012) [58] مسئله تولید جریانی بدون انتظار را در شرایط تولید سلولی و با محدودیت زمان نصب وابسته به گروهبندی کارها مورد مطالعه قرار دادند. ناگانو و همکارانش(2013) [47] این مسئله را با در نظر گرفتن زمانهای نصب جدا از زمان پردازش بررس کرده و روش حلی با رویکرد جستجوی خوشهبندی تکاملی برای این مسئله با تابع هدف زمان درجریان ساخت نهایی ارائه کردند. داوندرا و همکارانش(2013) [12] با بهرهگیری از الگوریتم تاکید خود سازمانی گسسته جوابهای نسبتا خوبی برای مسئله تولید جریانی بدون انتظار با هدف مینیممسازی ماکزیمم زمان تکمیل بدست آوردند.
2-2-3. سیستم تولید جریانی منعطف تحقیقات انجام شده در این دسته خود به دو بخش سیستمهای تولید جریانی منعطف با دو ایستگاه کاری یا بیش از دو ایستگاه کاری تقسیمبندی میشوند. اما در کل پژوهشهای انجام شده در این دسته از نظر فراوانی بسیار کمتر از دو دسته قبل است. برای مثال، ونگ و لیو(2013) [56] مسئله تولید جریانی بدون انتظار را در محیطی مشتمل بر دو ایستگاه کاری مورد بررسی قرار دادند و روش حلی بر پایه الگوریتم ژنتیک برای این مسئله ارائه کردند. جولایی و همکارانش(2013) [28] این مسئله را با دو تابع هدف مینیممسازی بیشینه زمان تکمیل و مینیممسازی بیشینه دیرکرد بررسی کرده و به کمک رویکرد دو هدفه الگوریتم تبرید شبیهسازی شده به حل آن پرداختند. همچنین همین نویسنده به کمک همکارانش (2009) [29] به بررسی این مسئله در شرایط وجود بیش از دو ایستگاه کاری و وجود احتمال رد سفارشات پرداخته و با رویکرد پنجرههای زمانی مدل ریاضی این مسئله را ارائه کرده است همچنین با استفاده از الگوریتم ژنتیک روش حلی نیز برای آن ارائه داده است.
مقالات مورد بررسی در این بخش در جدول(2-4) آورده شدهاند.
جدول SEQ جدول * ARABIC 4 جدول 2-4. مسائل تولید جریانی با محدودیت پردازش بدون انتظارنویسنده مسئله رویکرد سال شماره ارجاع
آلدوویزان F2|nwt,sij|Cj- 1998 8
آلدوویزان F2|nwt,sij|Cjشاخه و کران 2001 9
شیو و همکاران F2|nwt,sij|Ciبا رویکرد تبدیل مسئله به فروشنده دورهگرد با الکوریتم کلونی مورچگان حل شد. 48
توکلی مقدم و همکاران FmnwtWiCiWi,WiTiWiرویکرد چند هدفه الگوریتم سیستم ایمنی مصنوعی 2008 50
جوادی و همکاران FmnwtWiCiWi,WiEiWiرویکرد چند هدفه فازی به کمک برنامهریزی خطی 2008 27
که پن و همکاران FmnwtCmax,Lmaxالگوریتم دیفرانسیل تکاملی 2009 41
تسنگ و تای لین FmnwtCmaxالگوریتم ترکیبی ژنتیک 2010 52
ونگ و همکاران FmnwtLmaxالگوریتم جستجوی ممنوع شتابدهی شده 2010 56
چینگ یینگ و همکاران Fmnwt,cellCmaxسه الگوریتم بر پایههای الگوریتمهای ژنتیک، تبرید شبیهسازی شده و تکرار حریصانه 2012 58
ناگانو و همکاران FmnwtCiرویکرد جدید جستجوی خوشهبندی تکاملی 2012 47
داوندرا و همکاران FmnwtCmaxالگوریتم تاکید خود سازمانی گسسته 2013 12
2-3. زمان نصب وابسته به توالی کارهابه زمان صرف شده جهت آمادهسازی ماشین برای انتقال کار روی آن زمان نصب میگویند. زمان نصب عموما صرف نصب ابزارهای لازم روی ماشین، تمیزکاری و … میشود. با نگاهی کلی به تاریخ پژوهشهای انجام شده در حوزه زمانبندی میتوان دریافت که تا دههها زمان نصب در ادبیات زمانبندی به کلی نادیده گرفته میشده است و عموما جزیی از زمان پرداش کار در نظر گرفته میشده است. این رویه شاید در برخی صنایع قابل توجیه باشد اما لزوم در نظر گرفتن زمان نصب بطور جداگانه در بسیاری از موارد غیر قابل انکار است.
به طور کلی مسائل زمانبندی از حیث در نظر گرفتن زمان نصب به دو دسته کلی تقسیم میشوند: در دسته اول که زمان نصب مستقل از توالی نامیده میشود و در آن زمان نصب یک کار بر روی ماشین تنها به خود آن کار بستگی دارد و به کار قبل از آن و یا اصطلاحا به توالی وابسته نیست. دسته دوم که آن را زمان نصب وابسته به توالی کارها مینامند به حالتی اطلاق میشود که زمان نصب یک کار روی ماشین به کار قبلی که روی آن ماشین نصب شده است نیز بستگی دارد. در این دسته حالت خاص دیگری نیز وجود دارد که آن را زمان نصب وابسته به گروههای کاری مینامند که به معنای این است که زمان نصب کارهای درون یک گروه کاری با گروه کاری دیگر متفاوت است و اگر دو کار از دو گروه متفاوت بلافاصله روی ماشین قرار بگیرند زمان نصب بزرگتری نسبت به حالتی دارد که کارهای یک گروه پشت سر هم قرار بگیرند.
اهمیت مدنظر قرار دادن زمان نصب به عنوان عاملی تاثیرگذار در بهرهوری سیستم تولیدی در تحقیقات متعددی مورد بحث قرار گرفته است. فلین [19] تاثیر زمانهای نصب وابسته به توالی را مورد تحقیق قرار داده است و ورتمن [57] فاکتورهایی که بیشترین تاثیر را در عملکرد سیستم دارند مورد بررسی قرار داد که در آن زمان نصب یکی از موثرترین راهها برای بهبود خدمات به مشتریان و کاهش هزینههای انبارداری معرفی شده است.
اگرچه محدودیت زمان نصب وابسته به توالی در اغلب چیدمانهای مسائل زمانبندی مورد مطالعه قرار گرفته است اما از آنجا که مسئله مورد بحث در حوزه تولید جریانی است در ادامه تنها به ارائه مهمترین مطالعات انجام شده در مسائل زمانبندی با محدودیت زمان نصب وابسته به توالی کارها در محیطهای مختلف سیستم تولید جریانی و به خصوص در سیستمهای تولید جریانی بدون انتظار اکتفا میشود.
2-3-1. سیستمهای تولید جریانیسیستم تولید جریانی مشتمل بر تعدادی ماشین است که به طور متوالی قرار گرفتهاند و کارها عموما با ترتیب یکسانی روی ماشینها پردازش میگردند. در نظر گرفتن محدودیت زمان نصب وابسته به توالی کارها میتواند معیارهای بهینهسازی را در چنین سیستمهایی تحت تاثیر قرار دهد. وانچیپورا و سریدهاران [54] برای مسئله Fm|sijk|Cmax دو الگوریتم جهت تخصیص زمانهای نصب تعریف کرده و سپس مسئله را با روشی ابتکاری بر پایه ساختن توالی حل کردهاند. میرابی [36] نیز همین مسئله را به کمک رویهای ترکیبی از الگوریتم ژنتیک حل کرده است.
سیستمهای تولید جریانی منعطف نیز ساختاری مشابه سیستم تولید جریانی ساده دارند، با این تفاوت که حداقل در یکی از ایستگاههای کاری بیش از یک ماشین وجود دارند. لذا مسئله مورد بحث تعمیمی از حالت مسئله ماشینهای موازی است. میرصانعی و همکارانش [37] این مسئله را با هدف بیشینه زمان تکمیل کارها مطالعه نموده و رویه حلی با رویکرد الگوریتم تبرید شبیهسازی شده برای آن ارائه نمودند. حکیمزاده و زندیه [25] مسئله فوق را با در نظر گرفتن دو تابع هدف و نیز وجود بافرهای محدود بین ایستگاههای کاری حل کردند.
2-3-2. سیستمهای تولید جریانی بدون انتظارسیستمهای تولید جریانی بدون انتظار از نظر نحوه چیدمان ماشینآلات تفاوتی با سیستمهای تولید جریانی بدون انتظار ندارند، تنها تفاوت در نحوه پردازش بدون انتظار کارها روی ماشینآلات است. در چنین شرایطی زمان نصب وابسته به توالی کارها میزان تاخیر احتمالی در شروع کار روی ماشین اول را که برای تامین شرایط پردازش بدون انتظار لازم است تحت تاثیر قرار میدهد.
عرب عامری و سلماسی(2013) [10] نیز روش حلی با رویکرد الگوریتم ترکیبی بهینهسازی تجمعی ذرات و جستجوی ممنوع برای مسئله Fm|nwt,sijk|wj'Ej+wj"Tj پیشنهاد دادند. گاوو و همکارانش [21] مسئله تولید جریانی بدون انتظار را با محدودیت زمان نصب وابسته به توالی و تابع هدف زمان در جریان کل بررسی نموده و چهار رویه ابتکاری برای حل آن پیشنهاد دادهاند. رمضانی و همکاران [43] مسئله سیستم تولید جریانی منعطف بدون انتظار را در حالتی که ماشینهای درون هر ایستگاه عملکرد مشابه و نسبتهای سرعت مشخص دارند مدنظر قرار داده و به کمک رویکرد ترکیبی فراابتکاری به حل آن پرداخته است.
پژوهشهای مرور شده در این بخش در جدول(2-5) خلاصه شدهاند.
جدول SEQ جدول * ARABIC 5 جدول 2-5. مسائل سیستم تولید جریانی با محدودیت زمان نصب وابسته به توالی کارهانویسنده مسئله رویکرد سال شماره ارجاع
وانچیپوراو سریدهاران Fm|sijk|Cmaxروش ابتکاری بر پایه ساختن جواب 2013 54
میرابی Fm|sijk|Cmaxرویه ترکیبی براساس الگوریتم ژنتیک 2014 36
میرصانعی و همکاران Fm|sijk|Cmaxالگوریتم شبیهسازی تبرید 2011 37
حکیم زاده و زندیه Fmsijk,bCmax,Tjچند رویه فراابتکاری 2012 25
عرب عامری و سلماسی Fm|nwt,sijk|wj'Ej+wj"Tjالگوریتم ترکیبی از بهینهسازس تجمعی ذرات و جستجوی ممنوع 2013 10
گاوو و همکاران Fm|nwt,sijk|Cjچهار رویه ابتکاری 2013 21
رمضانی و همکاران FFm|nwt,sijk|Cmaxسه روش فراابتکاری بر پایه الگوریتمهای ژنتیک، تبرید شبیهسازی شده و تکرار حریصانه 2013 43
2-4. محدودیت کاری ماشینآلاتمحدودیت کاری ماشینآلات به این معنی است که هر ماشین پس از انجام حجم مشخصی از کار از دسترس خارج میشود که این مسئله میتواند دلایل متعددی همچون انجام تعمیرات اساسی و … داشته باشد. برای مثال یک ماشین پرس عموما بعد از انجام تعداد مشخصی پرس جهت تنظیم، تعویض روغن و تعمیرات برای مدتی از دسترس خارج میگردد. پیادهسازی این محدودیت در مسائل بهینهسازی معمولا به دو صورت انجام میشود: در دسته اول مسائل، ماشینها پس از گذراندن تعداد یا حجم مشخصی از کار از دسترس خارج میگردند و در دسته دوم، ماشینها پس از سپری کردن زمان مشخصی از لحظه شروع به کار از دسترس خارج میشوند. به کار بردن هر کدام از این دو رویکرد به ویژگیهای ماشینآلات و محصول تولیدی بستگی دارد. محمدی و فاطمی قمی [38] مسئله محدودیت ساعات کاری ماشینآلات را با در نظر گرفتن زمان نصب وابسته به توالی کارها در محیط تولید جریانی مورد مطالعه قرار دادند و آن را با رویکردی ابتکاری بر پایه الگوریتم ژنتیک حل نمودند. همین نویسنده به کمک همکارانش [39] دو روش الگوریتمی جدید را نیز برای مسئله تولید جریانی همراه با محدودیت حجم کاری، زمان نصب وابسته به توالی و تولید بر مبنای تقاضا ارائه کردند. جورجیادیس و پولیتو [22] نیز همین محدودیت را در حالتی که تعداد کار پردازش شده در روز محدود باشد در سیستمهای تولید جریانی بررسی کردند. بابایی و همکاران [11] نیز مسئله بهینهسازی همزمان تولید محصولات بر پایه تقاضا و زمانبندی را در محیط تولیدی جریانی مطالعه نموده و برای آن به کمک الگوریتم ژنتیک جوابهای با کیفیتی بدست آوردند.
مقالات مروری در این بخش در جدول(2-6) خلاصه شدهاند.
جدول SEQ جدول * ARABIC 6 جدول 2-6. مسائل سیستم تولید جریانی با محدودیت حجم کاری ماشینآلاتنویسنده مسئله رویکرد سال شماره ارجاع
محمدی و فاطمی قمی Fm|sijk|MINcostالگوریتم ژنتیک 2011 38
محمدی و همکاران Fm|sijk|MINcostدو الگوریتم ترکیبی جدید 2011 39
جورجیادیس و پولیتو Fm||MINcostرویه فراابتکاری جدید 2013 22
بابایی و همکاران Fm||MINcostالگوریتم ژنتیک 2013 11
2-5. استراتژیهای مدیریت تولیدمدیریت تولید به معنای تعیین میزان تولید محصولات با استفاده از پیشبینیهای انجام شده از نیاز بازار، تعیین زمان مناسب تحویل و … است. همانطور که از تعریف برمیآید مدیریت تولید به دلیل مشخص نمودن تعداد کارها و موعد تحویل ارتباط تنگاتنگی با زمانبندی تولید محصولات دارد. یکی از مهمترین مسائل در مدیریت تولید این مسئله است که محصول با رویکرد تولید برای سفارش تولید شوند یا با استراتژی تولید برای ذخیره [24]. در استراتژی تولید برای سفارش، محصولات یک سفارش تنها از زمانی که سفارش به سیستم تولیدی ابلاغ میشود توانایی تولید شدن دارند. استراتژی تولید برای ذخیره نیز تعداد محصولات را با توجه به نیاز بازار و سهم محیط تولیدی از بازار پیشبینی مینماید. از اصلیترین اشکالات استراتژی تولید برای ذخیره هزینه نگهداری محصولات است. استراتژی تولید برای سفارش هم به دلیل متغیر بودن تعداد و حجم سفارشات و لزوم تحویل به موقع جهت کسب رضایت مشتری زمانبندی را مشکلتر خواهند کرد. از این رو در سالهای اخیر توجه به استراتژیهای ترکیبی مدیریت تولید رو به افزایش بوده است. یوسف و همکاران [24] تاثیر زمانبندی بر استراتژیهای ترکیبی تولید برای ذخیره و تولید برای سفارش را در زمانبندی تک ماشین در پروژه - ریسرچمفصلی مورد بحث قرار داده است. در این پروژه - ریسرچاو محصولات را به دو گروه تقسیم کرده است: تعداد زیادی از محصولات که تقاضای کمی دارند و تعداد کمی از محصولات که تقاضا برای آنها زیاد است. در نهایت محصولات با تقاضای زیاد را با استراتژی تولید برای ذخیره و محصولات با تقاضای کم را با رویه تولید برای سفارش به خط تولید میفرستد. همین رویکرد توسط آدان و وال [7] نیز مورد مطالعه قرار گرفته است. عیوضی و همکاران [16] نیز مدل توسعه یافتهای بر مبنای زمانبندی و کنترل تولید نیمههادیها ارائه کردند که در آن دو رویکرد برای اولویت دادن به کارهای تولید برای سفارش و تولید برای ذخیره وجود دارد. زائر پور و همکاران [59] نیز ساختار تصمیمگیری برای ترکیب استراتژیهای تولید را مورد بررسی قرار داده و با رویهای ترکیبی از رویکردهای ایاچپی و تاپسیس به اتخاذ تصمیم پرداخته است.
مقالات مروری در این بخش در جدول(2-7) خلاصه شدهاند.
جدول SEQ جدول * ARABIC 7 جدول 2-7. مسائل با محدودیت استراتژیهای ترکیبی مدیریت تولیدنویسنده مسئله رویکرد سال شماره ارجاع
یوسف و همکاران 1||Cmax- 2004 24
آدان و وان -- 1998 7
عیوضی و همکاران -- 2009 16
زائرپور و همکاران -AHP,TOPSIS 2009 59
2-6. تابع هدفگسترش مفاهیم تولید به موقع اهمیت زمانهای زودکرد را برای دانشمندان علم زمانبندی بیش از پیش روشن کرده است. پس از بکارگیری موفق این مفاهیم در صنعت و تاثیر قابل توجه آن بر عملکرد تولید و کاهش موجودی انبار تعداد پژوهشهای زمانبندی که به این مسئله توجه نشان داده بودند افزایش چشمگیری یافت. در عمل محصولاتی که زودتر از موعد ساخته میشوند باید به انبار بروند و محصولاتی که دیرتر از موعد تحویل میگردند نیز نارضایتی مشتریان را در پی دارند. از آنجا که بسته به شرایط اهمیت این دو هزینه برای هر کدام از کارها میتواند متفاوت باشد، ضرایب وزنی هزینهها برای هرکار متفاوت تعریف میگردد.
در کنار رشد تحقیقات زمانبندی که درآنها مفهوم تولید به موقع مدنظر قرار گرفته است، پژوهشهایی نیز انجام شده است که با حفظ مفهوم تولید به موقع به سایر هزینههای موجود در سیستم نیز پرداختهاند. در این تحقیقات هزینههایی نظیر عدم پذیرش کارها، هزینههای انبارداری و … نیز در نظر گرفته میشوند.
در این نمونههایی از تحقیقات انجام شده در زمینه تولید جریانی بدون انتظار که در آنها رویکرد تولید به موقع به عنوان تابع هدف در نظر گرفته شده است مرور میشوند.
عرب عامری و سلماسی [10] مسئله زمانبندی تولید جریانی بدون انتظار را با محدودیت زمان نصب وابسته به توالی کارها و با محدودیت مجموع زمانهای زودکرد و دیرکرد وزنی به کمک الگوریتم ترکیبی بهینهسازی تجمعی ذرات و جستجوی ممنوع حل کردند. جولایی و همکاران [29] نیز با حفظ مفهوم تولید به موقع تابع هدفی شامل مجموع وزنی زودکردها و دیرکردها و ضرر ناشی از رد سفارشات جهت رسیدن به بیشینه سود حاصل از پردازش کارها برای مسئله تولید جریانی بدون انتظار تعریف کردند.
در جدول(2-8) پژوهشهای مرور شده در این بخش به اختصار آورده شدهاند.
جدول SEQ جدول * ARABIC 8 جدول 2-8. مسائل سیستم تولید جریانی با تابع هدفهای تولید به موقعنویسنده مسئله رویکرد سال شماره ارجاع
عرب عامری و سلماسی Fm|nwt,sijk|wj'Ej+wj"Tjالگوریتم ترکیبی از بهینهسازس تجمعی ذرات و جستجوی ممنوع 2013 10
جولایی و همکاران FFm|nwt|MAXbenefitالگوریتم ژنتیک 2009 29
2-7. جمعبندیدر این فصل، ابتدا به کمک رویکرد سه نمادی به طبقهبندی مسائل زمانبندی پرداخته شد. پس از آن ادبیات سیستم تولید جریانی منعطف بدون انتظار تشریح گردید. در ادامه فصل جهت مرور ادبیات موضوع مورد بررسی مقالات و پژوهشهای انجام شده به تفکیک محدودیتها و تابع هدف تحقیق مورد بررسی قرار گرفت. با توجه به مطالب عنوان شده در این فصل تحقیق پیش رو از جنبه تابع هدف، کاربرد رویکردهای مدیریت تولید در زمانبندی و بکارگیری مسئله محدودیت ساعات کاری در محیط سیستم تولیدی تولیدی منعطف بدون انتظار نوآوری دارد.
فصل سوممدل ریاضی پیشنهادی3-1. مقدمهرویکردهایی همچون برنامهریزی خطی و غیرخطی، برنامهریزی عدد صحیح و … به عنوان رویکردهای دقیق برای بدست آوردن جواب از توانایی محدودی برخوردارند. با پیچیده شدن مسائل دنیای واقعی این واقعیت بیش از پیش برای دانشمندان روشن گردید که برای حل مسائل جدید به ابزارهایی کارآمدتر نیازمندند. از این رو امروزه تمرکز مطالعاتی از بدست آوردن جواب دقیق توسط این روشها به بدست آوردن جوابهای نزدیک به بهینه به کمک روشهای ابتکاری و فراابتکاری معطوف گردیده است. اگر چه روشهای دقیق امروزه بسیار کمتر مورد استفاده قرار میگیرند اما همچنان به عنوان ابزاری برای اعتبارسنجی روشها و مدلها بسیار سودمندند.
در این فصل، مسئله زمانبندی تولید جریانی منعطف با محدودیت ساعات کاری ماشینآلات و زمانهای نصب وابسته به توالی کارها و نیز با درنظر گرفتن رویکرد مدیریت تولید ترکیبی تولید برای سفارش و تولید برای ذخیره مورد بررسی قرار میگیرد. در ادامه مدل ریاضی ارائه شده برای این مسئله به طور کامل تشریح شده و اعتبارسنجی میگردد.
3-2. تعریف مسئلهمسئله زمانبندی تولید جریانی منعطف با محدودیت ساعات کاری ماشینآلات و زمانهای نصب وابسته به توالی کارها و نیز با درنظر گرفتن رویکرد مدیریت تولید ترکیبی تولید برای سفارش و تولید برای ذخیره به صورت زیر ارائه میگردد:
یک محیط صنعتی با قابلیت تولید N محصول متفاوت و مستقل در نظر گرفته میشود. چیدمان ماشینآلات در این محیط تولیدی به صورت سیستم جریانی منعطف است، به این معنی که حداقل در یکی از ایستگاههای کاری بیش از یک ماشین وجود دارد. ماشینهای موجود در هر ایستگاه کاری کاملا مشابه هستند و هر کدام مقدار زمان مشخصی میتوانند در حال کار باشند و پس از آن از دسترس خارج میشوند. هر سیستم تولیدی با توجه به پیشبینیهای انجام شده براساس فروش قبلی خود سهم مشخصی از بازار را برای خود متصور است. از طرفی سیستم تولیدی ممکن است سفارشاتی را نیز دریافت کند(برای مثال سفارشات صادراتی یا تولید محصول برای یک ارگان مشخص). این سفارشات در زمان خاصی به سیستم تولیدی ارائه شده و موعد تحویل مشخصی دارند. معیار بهینهسازی این مسئله به حداقل رساندن هزینههای ناشی از رد کردن سفارشات، تحویل ناقص سفارشات(به دلیل محدودیت ظرفیت تولید) و هزینههای ناشی از زودکرد و دیرکرد تحویل سفارشات است. برای هر کدام از هزینههای ذکر شده براساس اهمیتی که برای مدیریت دارد ضرایب وزنی مشخصی در نظر گرفته میشود. برای درک بهتر مسئله نمای کلی محیط تولیدی -241304619625شکل SEQ شکل * ARABIC 1 شکل 3-1. نمای کلی مسئله مورد بررسی0شکل SEQ شکل * ARABIC 1 شکل 3-1. نمای کلی مسئله مورد بررسی-2578723158170در شکل(3-1) نشان داده شده است.
3-2-1. مفروضات مسئلهمفروضات زیر بر مسئله مورد بررسی حاکم است:
هر ماشین در هر لحظه تنها توانایی پردازش یک کار را دارد و هر کار در هر ایستگاه تنها باید بر روی یک ماشین پردازش شود.
هر سفارش شامل تعداد مشخصی از هر کدام از محصولات قابل تولید است.
کارهایی که برای ذخیره در انبار و براورده کردن سهم بازار تولید میشوند از لحظه صفر در دسترس خواهند بود و تا پایان افق برنامهریزی برای تکمیل تولید فرصت دارند.
زمانهای پردازش، ضرایب انواع هزینهها، تعداد ماشینهای هر ایستگاه و ظرفیت تولید(مقدار ساعتی که هر ایستگاه در دسترس است) مشخص است.
بیکاری ماشینها مجاز است.
3-3. مدل پیشنهادیدر این بخش، مدل ریاضی عدد صحیح غیرخطی پیشنهادی برای مسئله مورد بحث ارائه میگردد. پیش از ارائه کامل مدل، پارامترهای ورودی، متغیرهای تصمیمگیری، تابع هدف و محدودیتها به طور مجزا تشریح میگردند.
3-3-1. پارامترهای ورودی مسئله:s تعداد ایستگاههای کاری s=1, …,S:k تعداد ماشینهای موجود در هر ایستگاه کاریs. s=1, …,S ، k=1, …,ms:i تعداد سفارشات (برای سهولت در مدلسازی، i=1 مجموع کارهای با رویکرد تولید برای سفارش را نمایندگی میکند) i=1, …, N:j تعداد کارهای (محصولات) قابل تولید در محیط تولیدی j=1, …, J:t شماره هر کار در هر سفارش (sumi مجموع تعداد کارهای هر سفارش)t=1, …, sumi, i=1, …, N
:q محل قرارگیری هر کار در توالی کلی کارها (Z مجموع تعداد کارهای سفارشات پذیرفته شده به علاوه کارهای رویکرد تولید برای ذخیره)q=1, …, Z:Ri زمان در دسترس قرار گرفتن سفارش i (کارهای تولید برای ذخیره از لحظه صفر در دسترس هستند) i=2, …, N:Di موعد تحویل سفارش i به مشتری (کارهای تولید برای ذخیره تا پایان افق برنامهریزی برای تحویل فرصت دارند) i=2, …, N:Wti وزن دیرکرد در تحویل سفارش i به ازای هر واحد زمانی i=2, …, N
:Wei وزن زودکرد در تحویل سفارش i به ازای هر واحد زمانی i=2, …, N
:Wni وزن هزینه ناشی از رد سفارش (کارهای تولید برای ذخیره همیشه پذیرفته شده هستند و رد کردن برای آنها متصور نیست) i=2, …, N
:Wgi وزن هزینه ناشی از تحویل ناقص سفارش i به مشتری به ازای هر کار تحویل نشده (به دلیل محدودیت ساعات کاری ممکن است یک سفارش به طور کامل پردازش نشود، کارهای تولید برای ذخیره هم در صورت تحویل ناکامل توانایی براورده کردن نیاز بازار را ندارند) i=1, …, N


:cas محدودیت زمانی هر ماشین k در ایستگاه کاری s. s=1, …, S:pjs زمان پردازش کار نوع j در ایستگاه کاری s. j=1, …, J , s=1, …,S:hji تعداد کار نوع j در سفارش i. i=1, …, N, j=1, …, J:sjj'sk زمان نصب کار نوع j' هنگامی که این کار دقیقا پس از کار نوع j در ایستگاه کاری s روی ماشین k انجام شود. j,j'=1, …, J, s=1, …,S, k=1, …,ms3-3-2. متغیرهای تصمیمگیری مسئله:xtiq 1 اگر کار شماره t از سفارش i در محل q از توالی کارها قرار بگیرد و 0 در غیر اینصورت. t=1, …, sumi, i=1, …, N, q=1, …, Z:yqsk 1 اگر کار قرار گرفته در موقعیت q از توالی کارها روی ماشین k در ایستگاه s پردازش شود و 0 در غیر اینصورت. q=1, …, Z, , s=1, …,S, k=1, …,ms:vqj 1 اگر کار قرار گرفته در موقعیت q از توالی کارها از نوع j باشد و 0 در غیر اینصورت. q=1, …, Z, j=1, …, J:fi 1 اگر سفارش i پذیرفته شود و 0 در غیر اینصورت. i=1, …, N:stqs زمان شروع کار قرار گرفته در موقعیت q از توالی کارها در ایستگاه کاری s. q=1, …, Z, s=1, …,S:cqs زمان تکمیل کار قرار گرفته در موقعیت q از توالی کارها در ایستگاه کاری s. q=1, …, Z, s=1, …,S:deq زمان تاخیر لازم برای برقراری شرایط پردازش بدون توقف برای کار قرار گرفته در موقعیت q از توالی کارها. q=1, …, Z:avqs زمان در دسترس قرار گرفتن ایستگاه کاری s برای پردازش کار قرار گرفته در موقعیت q توالی کارها. q=1, …, Z, s=1, …,S:gq 1 اگر کار قرار گرفته در موقعیت q از توالی کارها انجام شود و 0 در غیر اینصورت (به دلیل محدودیت ساعات کاری ایستگاهها ممکن است کار انجام نشود). q=1, …, Z3-3-3. تابع هدفminZ=i=2Ntardii× fi×wti+i=2Nearlii ×fi×wei+i=1Nwni×1-fi+i=1Nsumi-nondi×fi×wgiاز آنجا که در صنایع امروزی اهمیت تحویل به موقع محصولات به مشتریان از اهمیت ویژهای برخوردار است، تابع هدف این مسئله با رویکرد تولید به موقع تعیین شده است. در اکثر پژوهشهایی که تاکنون انجام شده است هزینه دیرکرد برای کارهای پردازش شده محاسبه میشود، اما در این تحقیق از آنجا که بستههای سفارش داده شده باید تحویل مشتری شوند، هزینههای مربوطه نیز برای سفارشات محاسبه میشوند. برای یک بسته سفارشی مفروض چهار هزینه متصور است که به شرح زیر هستند.
هزینه دیرکرد: هزینه دیرکرد برای هر سفارش برابر است با بیشینه دیرکرد کارهای آن سفارش ضرب در میزان اهمیت(وزن) دیرکرد آن سفارش. لازم به ذکر است چنانچه سفارش مربوطه پذیرفته شده باشد (fi=1) هزینه دیرکرد برای آن متصور است و در غیر این صورت هزینه رد سفارش که در ادامه خواهد آمد باید محاسبه گردد. به دلیل اینکه موعد تحویل محصولات تولید برای ذخیره پایان افق برنامهریزی است، محاسبه هزینه دیرکرد برای آنها معنی پیدا نمیکند به همین دلیل این هزینه تنها برای سفارشات تولید برای سفارش محاسبه میشود(i=2). عبارت هزینه دیرکرد در تابع هدف به صورت زیر است:
(3-1) i=2Ntardii× fi×wtiهزینه زودکرد: این هزینه نیز مانند هزینه دیرکرد برای بستههای سفارشی پذیرفته شده(fi=1) محاسبه میشود. برای یک بسته سفارشی مفروض مقدار زودکرد برابر است با بیشینه زودکرد هر کدام از کارهای سفارش ضرب در اهمیت(وزن) زودکرد آن سفارش. از آنجا که موعد تحویل محصولات با استراتژی تولید برای ذخیره پایان افق برنامهریزی است برای آنها هزینه زودکرد متصور نیست(i=2). عبارتی که محاسبه هزینه زودکرد را در تابع هدف نمایندگی میکند به صورت زیر است:
(3-2) i=2Nearlii ×fi×weiهزینه رد سفارش: عدم پذیرش سفارش به دلیل از دست دادن سود ناشی از تولید آن برای سیستم تولیدی دارای هزینه است. هزینه رد سفارش برابر است با اهمیت(وزن) آن سفارش. در این بخش وزن سفارش میتواند میزان سود از دست رفته را نمایندگی کند. عبارت مربوط به این هزینه در تابع هدف مطابق رابطه(3-3) است.
(3-3) i=1Nwni×1-fiهزینه تحویل ناقص سفارش: چنانچه یک یا چند کار در سفارشات پذیرفته شده به دلیل محدودیت ساعات کاری ماشینآلات نتوانند پردازش خود را کامل کنند، بسته سفارشی ناقص پردازش میگردد. در چنین شرایطی یا سفارش باید ناقص تحویل شود و یا از موجودی انبار که کالاهای تولید برای ذخیره است برای کامل کردن سفارش استفاده شود که در هر دو حالت هزینههایی را در پی دارد. هزینه تحویل ناقص سفارش به صورت شمارش تعداد کارهای پردازش نشده در یک سفارش پذیرفته شده ضرب در میزان اهمیت(وزن) آن سفارش محاسبه میشود. تعداد کارهای پردازش نشده برای هر سفارش(sumi-nondi) با استفاده از تعداد کارهای پردازش شده هر سفارش که در محدودیتها محاسبه میشود محاسبه میگردد. بدیهی است این هزینه نیز تنها برای سفارشات پذیرفته شده متصور است. عبارت مربوط به هزینه تحویل ناقص در تابع هدف مطابق عبارت(3-4) است.
(3-4) i=1Nsumi-nondi×fi×wgi3-3-4. محدودیتهاj=1Jhji fi≤mscas , s=1,…,Sاین محدودیت تضمین میکند که مجموع زمان پردازش کارهایی که پذیرفته میشوند از مجموع زمان در دسترس در هر ایستگاه بیشتر نباشد.
f1≥1این محدودیت وجود کارهایی که تحت استراتژی تولید برای ذخیره تولید میشوند را در توالی کارهای نهایی تضمین میکند.
sumi=j=1Jhji, i=1,…, Nاین محدودیت مجموع محصولات سفارش داده شده در هر بسته سفارشی را محاسبه میکند.
Z=i=1Nsumi fi, i=1,…,N
این محدودیت تعداد کل کارهایی که در اثر پذیرفته شدن سفارشات باید پردازش شوند را محاسبه میکند.
t=1Zxtiq=1, q=1,…,Z and i=1,…,Nq=1Zxtiq=1, t=1,…,Z and i=1,…,N این مجموعه محدودیتها تخصیص هر کار به یک مکان در توالی و تخصیص هر مکان در توالی به یک کار را تضمین میکنند.
k=1msyqsk=1, q=1,…,Z and s=1, …,Sاین محدودیت تخصیص یک ماشین در هر ایستگاه کاری به هر کار موجود در توالی را تضمین میکند.
deq=maxi=1Nt=1sumiri xqit,avqs-avqs-1,…, avq2-avq1, q=1,…,Zمحاسبه میزان تاخیر در شروع پردازش هر کار در توالی در ایستگاه اول برای تامین شرایط پردازش بدون انتظار توسط این محدودیت انجام میشود. میزان تاخیر لازم برای پردازش بدون انتظار برابر با بیشینه فاصله زمانهای در دسترس برای آن کار در هر دو ایستگاه کاری متوالی است.
st11=deq+avq1stq1=deq+avq1+j=1Jj'=1Jq'=1q-1k=1ms(vqj' vq-1j yq1k yq-11k) sjj'1k, q=2,…,Zstqs=cqs-1+ j=1Jj'=1Jq'=1q-1k=1ms(vqj' vq-1j yqsk yq-1sk) sjj'sk, s=2,…, S and q=2,…,Zاین مجموعه از محدودیتها زمان شروع پردازش هر کار را در هر ایستگاه کاری را محاسبه میکند. اگر هر دو کار متوالی روی یک ماشین در هر ایستگاه از دو نوع متفاوت باشند زمان نصب به کار دوم تعلق میگیرد.
cqs=stqs+j=1Jvqj pjs, s=1,…,Sاین محدودیت زمان تکمیل پردازش هر کار در هر ایستگاه کاری را تعیین میکند.
avqs=min1≤k≤msmax1≤q≤q'-1cq's yq'sk, s=1,…,S and q=1,…,Zمحاسبه زمان در دسترس قرار گرفتن هر ایستگاه کاری برای هر کار توسط این محدودیت محاسبه میگردد. همانطور که از محدودیت مشخص است زمان در دسترس قرار گرفتن هر ایستگاه کاری برای هر کار برابر است با کمینه زمان در دسترس قرار گرفتن ماشینهای درون آن ایستگاه. زمان در دسترس قرار گرفتن هر ماشین نیز برابر است با بیشینه زمانهای تکمیل کل کارهایی که تاکنون روی آن ماشین پردازش شده است.
tardii=max0, max1≤q≤zt=1zxtiq cqs-di, i=2,…,N and s=Searlii=max0,di-max1≤q≤zt=1zxtiq cqs, i=2,…,N and s=Sاین دو محدودیت میزان دیرکرد و زودکرد را برای هر بسته سفارشی محاسبه میکند. دیرکرد یک سفارش برابر است با بیشینه مقدار دیرکرد هر کدام از کارهای آن سفارش و مقدار زودکرد هر سفارش برابر است با بیشینه زودکرد هر کدام از کارهای آن سفارش.
gq-k=1msyqsk=0 q=1, …, Z , s=Sاین محدودیت انجام شدن یا نشدن هر کار را تعیین میکند. اگر هیچ یک از ماشینهای ایستگاه کاری آخر به کار در موقعیت q در توالی کارها به تخصیص پیدا نکنند، به این معنی است که کار به پایان پردازش خود نرسیده است.
gq-k=1msyqsk=nondi=sumi-t=1sumiq=1Zgqxtiq, i=1, …, N این محدودیت تعداد کارهای انجام شده در هر سفارش را محاسبه میکند.
با توجه به توضیحات ارائه شده مدل ریاضی پیشنهادی به صورت زیر خواهد بود:
minZ=i=2Ntardii× fi×wti+i=2Nearlii ×fi×wei+i=1Nwni×1-fi+i=1Nsumi-nondi×fi×wgi Subject to:
j=1Jhji fi pjs≤mscas, s=1,…,S f1≥1sumi=j=1Jhji, i=1,…, NZ=i=1Nsumi fi, i=1,…,Nt=1Zxtiq=1, q=1,…,Z and i=1,…,N
q=1Zxtiq=1, t=1,…,Z and i=1,…,N k=1msyqsk=1, q=1,…,Z and s=1, …,S deq=maxi=1Nt=1sumiri xqit,avqs-avqs-1,…, avq2-avq1, q=1,…,
st11=deq+avq1stq1=deq+avq1+j=1Jj'=1Jq'=1q-1k=1ms(vqj' vq-1j yq1k yq-11k) sjj'1k, q=2,…,Zstqs=cqs-1+ j=1Jj'=1Jq'=1q-1k=1ms(vqj' vq-1j yqsk yq-1sk) sjj'sk, s=2,…, S and q=2,…,Z
cqs=stqs+j=1Jvqj pjs, s=1,…,Savqs=min1≤k≤msmax1≤q≤q'-1cq's yq'sk, s=1,…,S and q=1,…,Ztardii=max0, max1≤q≤zt=1zxtiq cqs-di, i=2,…,N and s=Searlii=max0,di-max1≤q≤zt=1zxtiq cqs, i=2,…,N and s=Sgq-k=1msyqsk=nondi=sumi-t=1sumiq=1Zgqxtiq, i=1, …, N 3-4. اعتبارسنجی مدلاعتبارسنجی مدل گام مهمی در اطمینان از صحت یک مدل ریاضی است. از آنجا که طبق مطالعات پژوهشگر چنین تحقیقی تاکنون انجام نشده است و مدل ارائه شده از چند نظر جدید است لزوم انجام اعتبارسنجی کاملا روشن به نظر میرسد.
اعتبارسنجی به این معنی است که نتایج بدست آمده از حل مدل باید با واقعیت مطابقت داشته باشد. بر این اساس اعتبارسنجی مدل ریاضی ارائه شده در دو مرحله انجام میگردد. مرحله اول اعتبارسنجی مدل به کمک یک مسئله حل شده و مرحله دوم حل یک مسئله تولید شده و بررسی اعتبار مدل.
3-4-1. اعتبارسنجی مدل به کمک مسئله حل شدهدر این بخش تحقیق انجام شده توسط ونگ و لیو [56] که مسئله تولید جریانی بدون انتظار منعطف با دو ایستگاه کاری و تابع هدف بیشینه زمان تکمیل کارها که حاوی حل تعدادی مسئله جهت استفاده سایر پژوهشگران است به عنوان مسئله جهت اعتبارسنجی مدل ارائه شده مدنظر قرار گرفته است.
جهت انجام فرایند اعتبارسنجی لازم است پارامترهای مدل ارائه شده در این تحقیق طوری تعریف شوند که مسئله با نمونه ارائه شده در پروژه - ریسرچونگ و لیو [56] مشابه گردد. بر این اساس، تعداد کارهای موجود در هر سفارش یک تعریف شده است. زمانهای نصب صفر در نظر گرفته شده و نوع کارهای موجود در سفارش متفاوت تعریف شده است. همچنین ظرفیت کاری ماشینآلات نامتناهی تعریف شده و امکان رد سفارش حذف گردیده است. همچنین از آنجا که تابع هدف این پروژه - ریسرچبیشینه زمان تکمیل است، تابع هدف مدل ارائه شده را نیز بیشینه زمان تکمیل سفارشات قرار داده تا نتایج قابل مقایسه باشند. قابل ذکر است که تغییر تابع هدف تاثیری در صحت عملکرد محدودیتها ندارد. تغییرات انجام شده در مدل پیشنهادی به طور خلاصه در جدول(3-1) آمدهاند.
جدول SEQ جدول * ARABIC 9 جدول 3-1. تغییرات اعمال شده در مدل پیشنهادی جهت اعتبارسنجیفاکتور وضعیت اصلی وضعیت تغییر یافته
تابع هدف کمینه هزینهها بیشینه زمان تکمیل کارها
زمان نصب بزرگتر از صفر صفر
تعداد کارهای موجود در سفارش از انواع متفاوت و معمولا بیش از یک کار از انواع متفاوت و یک کار
قابلیت رد سفارش وجود دارد وجود ندارد
ظرفیت کاری ماشینآلات محدود نامحدود
در تحقیق مورد استفاده سیستم تولید جریانی بدون انتظار شامل دو ایستگاه کاری و هر ایستگاه شامل دو ماشین یکسان است. کوچکترین ابعاد مسئله مورد بررسی در این پروژه - ریسرچمسئلهای مشتمل بر ده کار است که بنابر توضیحات ارائه شده در بالا در مدل پیشنهادی ما به صورت ده سفارش که هر کدام شامل یک کار است تعبیر میشوند. زمان پردازش کارها روی ماشین نیز دارای توزیع یکنواخت بین [50 ،1] میباشد بر همین مبنا با استفاده از تابع تولید اعداد تصادفی یکنواخت در نرمافزار متلب اعداد زیر به عنوان زمانهای پردازش تولید شدهاند.
(3-5) pqs=41 7 32 14 48 8 48 48 22 4546 46 5 28 49 49 25 8 46 48این مسئله در نرمافزار لینگو 9 حل شده است که در نتیجه آن توالی سفارشات به صورت q7, q3, q9, q8, q1, q10, q5, q2, q4, q6 و مقدار تابع هدف برابر 326 است. این در حالی است که مقدار تابع هدف در تحقیق مورد استفاده برای این مسئله برابر 292.3 است. این تفاوت حدودا 11% میتواند به دلیل متفاوت بودن مقدار زمانهای پردازش بوده باشد.
3-4-2. اعتبار سنجی مدل به کمک مسئله تولیدیدر این روش، اعتبارسنجی به کمک یک مسئله تولید شده و بررسی درستی عملکرد محدودیتها صورت میگیرد. این روش به عنوان مکملی برای روش قبلی است چرا که در روش قبل به دلیل تفاوت توابع هدف تغییر آن ناگزیر بود. برای انجام این روش دادههای ارائه شده در جدول(3-2) مورد استفاده قرار میگیرند.
جدول SEQ جدول * ARABIC 10 جدول 3-2. دادههای لازم جهت پیادهسازی مدل ریاضیفاکتور مقدار
تعداد سفارش 5
تعداد کارهای موجود در هر سفارش 1
تعداد ایستگاه 2
تعداد ماشین در هر ایستگاه 2
زمانهای پردازش unif [1, 50]زمانهای نصب 0
موعدهای تحویل 50
وزنهای زودکرد و دیرکرد 10
وزن رد سفارش 20
امکان رد سفارش وجود دارد
ظرفیت ماشینآلات نامحدود
لازم به ذکر است که دلیل اصلی کوچک در نظر گرفتن ابعاد مسئله یا حذف فاکتوری همچون محدودیت ظرفیت ماشینآلات تنها به دلیل افزایش چشمگیر زمان حل مسئله در نرمافزار لینگو و امکان نرسیدن به جواب بهینه کلی بوده است و از آنجا که این تغییرات جزیی از دامنه تغییرات ممکن این فاکتورها است تاثیری در اعتبارسنجی مدل نخواهند داشت.
-241304295775شکل SEQ شکل * ARABIC 2 شکل 3-2. گانت چارت جواب بهینه مسئله طراحی شده جهت اعتبارسنجی مدل ریاضی.0شکل SEQ شکل * ARABIC 2 شکل 3-2. گانت چارت جواب بهینه مسئله طراحی شده جهت اعتبارسنجی مدل ریاضی.right10596120مسئله مورد بررسی در این بخش در نرمافزار لینگو 9 حل شد و جواب بهینه برابر 2830 بود. توالی کارها نیز به صورت q2, q3, q5, q1, q4 بدست آمد. جهت اطمینان از درستی عملکرد مدل گانت چارت جواب بهینه در شکل(3-2) رسم شده است.
3-5. تعیین پیچیدگی مسئلهانتخاب روش حل مناسب میتواند در دقت و کیفیت و زمان مورد نیاز برای حل یک مسئله تاثیر قابل توجهی داشته باشد. شاخهای از علوم کامپیوتر با نام نظریه پیچیدگی بر مطالعه این مبحث تمرکز دارد. به طور خلاصه پیچیدگی یک مسئله با میزان محاسبات لازم جهت حل آن ارتباط مستقیم دارد. این بدان معناست که با افزایش ابعاد مسئله طبیعتا زمان حل آن نیز افزایش مییابد. چنانچه زمان حل مسئله نسبت به ابعاد آن با تابعی چندجملهای افزایش یابد، زمان این مسئله را چندجملهای میگویند. چنین مسائلی عمدتا با روشهای دقیق قابل حل هستند.
دسته بزرگتر و مهمتری از مسائل بهینهسازی که عمدتا مسائل زمانبندی نیز در این دسته قرار میگیرند دارای تابع زمانی غیر چندجملهای هستند. چنین مسائلی را در علم پیچیدگی NP-hard مینامند. این دسته از مسائل با روشهای دقیق قابل حل نبوده و لذا از روشهای تقریبی جهت یافتن نزدیکترین جواب به بهینه کلی بهره گرفته میشود. در نتیجه شناخت مسئله از نقطه نظر پیچیدگی آن میتواند بر کیفیت جواب تاثیر مستقیم داشته باشد.
8426456118225شکل SEQ شکل * ARABIC 3 شکل 3-4. سلسله مراتب پیچیدگی در توابع هدف مسائل زمانبندی [6].00شکل SEQ شکل * ARABIC 3 شکل 3-4. سلسله مراتب پیچیدگی در توابع هدف مسائل زمانبندی [6].10096503163570شکل SEQ شکل * ARABIC 4 شکل 3-3. سلسله مراتب پیچیدگی در مسائل کارگاهی زمانبندی [6].00شکل SEQ شکل * ARABIC 4 شکل 3-3. سلسله مراتب پیچیدگی در مسائل کارگاهی زمانبندی [6].center17732300center567841500پیندو [6] در کتاب مفصل خود پیرامون موضوع زمانبندی سلسله مراتب مسائل پیچیدگی در مسائل زمانبندی را در گرافهایی تشریح میکند. این گرافها در شکلهای(3-3) و (3-4) آمدهاند.
همانطور که از این شکلها مشخص است میزان پیچدگی یک مسئله زمانبندی به نحوه چیدمان ماشینآلات و تابع هدف مسئله بستگی مستقیم دارد. نکته قابل تعمل در مسئله پیچیدگی آن است که پس از تشخیص میزان پیچیدگی یک مسئله به کمک این گرافها میتوان این میزان را به حالات خاص این مسائل نیز تعمیم داد. به عنوان مثال مقدار پیچیدگی مسئله 1||Cj که حالت خاصی از مسئله 1||WjCj است را میتوان معادل مقدار پیچیدگی مسئله 1||WjCj دانست. این مسئله را در علم پیچیدگی به صورت 1||Cj∝1||WjCj نشان میدهند.
در این تحقیق مسئله زمانبندی تولید جریانی منعطف بدون انتظار با محدودیت ساعات کاری ماشینآلات، زمان نصب وابسته به توالی کارها و استراتژی ترکیبی تولیید با هدف حداقل سازی هزینهها مورد بررسی قرار میگیرد. راک [45] نشان داد که مسئله تولید جریانی بدون انتظار با تابع هدف بیشینه زمانهای تکمیل NP-hard است. با توجه به نتایج مطرح شده در مورد میزان پیچیدگی مسئله پردازش بدون انتظار به یقین میتوان گفت که مسئله مورد بحث در این تحقیق نیز از میزان پیچیدگی NP-hard برخوردار است لذا حل این مسئله در ابعاد بزرگ را نمیتوان به طور کارایی با روشهای دقیق انجام داد. در فصل آینده روشهای حل کارایی با استفاده از رویکردهای فراابتکاری ارائه میگردند. ولید جریانی منعطف بدون انتظار با محدودیت ساعات کاری ماشین
3-6. جمعبندیدر این فصل، پس از بیان تعریف مسئله مورد بررسی و تشریح ویژگیهای آن، مدل ریاضی عدد صحیح غیر خطی جدیدی برای حل آن ارائه گردید. در ادامه فصل نیز اعتبار مدل ریاضی ارائه شده با استفاده از دو رویکرد سنجیده شد. در پایان فصل نیز دلایلی مبنی بر ناکارامدی روشهای حل دقیق برای مسئله مذکور بیان شده و میزان پیچیدگی آن مورد بررسی قرار گرفت.
فصل چهارمالگوریتمهای فراابتکاری پیشنهادی و نتایج محاسباتی
4-1. مقدمههدف از حل هر مسئله بهینهسازی یافتن بهترین ترکیب ممکن از متغیرهای جواب برای آن مسئله است. مسائل بهینهسازی از منظر ماهیت جواب شدنی برای آنها به دو دسته کلی مسائل پیوسته و مسائل گسسته تقسیم میشوند. مسائل حوزه زمانبندی به عنوان دستهای مهم از مسائل بهینهسازی ترکیبی یکی از شناخته شده ترین مسائل با ساختار گسسته هستند. فاکتورهای جواب این دسته از مسائل باید به صورت گسسته کدگذاری شوند. با توجه به اهمیت مسائل این حوزه تاکنون رویکردهای جواب متنوعی برای حل این مسائل ارائه گردیدهاند. با نگاهی کلی، روشهای حل ارائه شده را میتوان در دو گروه کلی روشهای دقیق و تقریبی جای داد. ساختار رویکردهای دقیق به گونهای است که عملکرد آنها را تنها به حل مسائل با پیچیدگی مشخص و ابعاد کوچک محدود میکند. این رویکردها برای مسائل با ابعاد بزرگ زمانهای حل بسیار ناکارامدی را ارائه میدهند. برهمین اساس، لزوم استفاده از رویکردهای تقریبی در حل مسائل پیچیده بدیهی به نظر میرسد. این رویکردها بسته به نوع آنها میتوانند جوابهای با کیفیت قابل قبول را در زمان منطقی ارائه دهند.
روشهای فراابتکاری دسته مهمی از روشهای تقریبی هستند که عموما با الگوبرداری از رفتار طبیعت تدوین گردیدهاند. وجه تمایز اصلی این روشها با روشهای تقریبی دیگر استفاده از متدهایی برای اجتناب از توقف فرایند جستجو در بهینه محلی است. براساس استراتژیهای بکار رفته در فرایند الگوریتم، امروزه طیف گستردهای از روشهای فراابتکاری به جامعه محققین ارائه شده است که برای مثال میتوان به الگوریتمهایی نظیر ژنتیک، جستجوی ممنوع، مورچگان، تبرید شبیهسازی شده، سیستم ایمنی مصنوعی و … اشاره کرد.
در ادامه فصل پیش رو، الگوریتمهای فراابتکاری ارائه شده به منظور حل مسئله مورد بررسی شامل الگوریتم سیستم ایمنی مصنوعی و تبرید شبیهسازی شده با رویکرد ابری به طور کامل تشریح میگردند. پس از آن با استفاده از رویکرد تنظیم پارامترها به روش تاگوچی الگوریتمهای ارائه شده کالیبره شده و به وسیله آزمایشات طراحی شده مورد سنجش قرار میگیرند. در نهایت نتایج استخراج شده از اجرای آزمایشات تشریح میگردند.
4-2. الگوریتم سیستم ایمنی مصنوعیالگوریتم سیستم ایمنی مصنوعی یکی از جدیدترین الگوریتمهای الگوبرداری شده از رفتارهای طبیعی پدیدهها است. همانگونه که از نام آن هویدا است، این الگوریتم از سیستم ایمنی بدن موجودات زنده و بالاخص پستانداران الگوبرداری شده است. روند کلی الگوریتم بسیار شبیه به الگوریتم ژنتیک بوده اما وجود تفاوتهایی تاثیرگذار باعث برتری نسبی این الگوریتم نسبت به الگوریتم ژنتیک در برخی مسائل بهینهسازی ترکیبی گردیده است.
سیستم ایمنی بدن انسان مجموعهای پیچیده است که وظیفه حفاظت بدن در مقابل خطرات و حفظ سلامتی آن را به عهده دارد [34]. این سیستم این وظیفه را با شناسایی عوامل مضر خارجی به نام پاتوژنها و تلاش جهت نابودسازی آنها انجام میدهد. این عوامل عموما به کمک فاکتور پروتئینی موجود در ساختارشان که آنتیژن نام دارد شناسایی میشوند. پس از شناسایی آنتیژن، بدن فاکتور پروتئینی مناسب جهت نابودسازی آنتیژن مربوطه را که آنتیبادی نام دارد ساخته و به جریان خون میفرستد و از این طریق عامل خارجی مضر را نابود میکند این فرایند را پاسخ اولیه ایمنی مینامند. پس از رفع خطر، بدن بهترین آنتیبادی ساخته شده را در حافظه خود نگه میدارد تا چنانچه این آنتیژن بار دیگر وارد بدن شد بتواند عملکرد سریعتری داشته باشد. دلیل علمی واکسیناسیون نیز همین است.

—d1151

2-14-1 شفافیت 33
2-14-2 قابلیت اطمینان 34
2-14-3 کارایی 34
2-14-4 مقیاس پذیری 35
2-15 سیستم عامل های توزیعی 35
2-15-1 الگوی مبتنی برپیام 36
2-15-2 الگوی مبتنی بر شیء 36
2-16 رویکرد سیستم عامل های ابری 36
2-17 الگوی سیستم عامل ابری 37
2-17-1 شیء ابری 37
2-17-2 نخ 39
2-17-3 تعامل میان شیء و نخ 39
2-18 برنامه نویسی در مدل شیء – نخ در ابرها 40
2-19 معماری سیستم عامل ابری 41
2-20 برخی سیستم عامل های ابری موجود 42
2-20-1 سیستم عامل iCloud 43
2-20-2 سیستم عامل GlideOS 44
2-20-3 سیستم عامل G.ho.st 45
2-20-4 سیستم عامل JoliCloud 46
2-20-5 سیستم عامل eyeOS 47
2-20-6 گوگل کروم، سیستم عامل اینترنت 47
2-21 مزایا و معایب سیستم عامل های ابری مبتنی بر وب 51
2-22 مطالعه مروری بر سایر پژوهش های مرتبط مهم 51
فصل سوم: روش تحقیق 54
3-1 چالش های رایج در زمینه سیستم عامل های ابری 55
3-1-1 مقیاس پذیری 55
3-1-1-1 تغییر مقیاس افقی و عمودی 56
3-1-1-2 مقیاس پذیری پایگاه داده ها 57
3-1-1-3 طراحی برای مقیاس پذیری 58
3-1-1-4 مقیاس پذیری در محاسبات ابری 59
3-1-1-5 تغییر مقیاس قوی و ضعیف 59
3-1-2 کشش تقاضا 60
3-1-3 خطاها 60
3-1-4 گره خوردن کاربران به یک سرویس دهنده خاص 61
3-1-5 وابستگی شدید بین مولفه ها 61
3-1-6 فقدان پشتیبانی چند مستاجری 62
3-1-7 فقدان پشتیبانی از SLA 62
3-1-7-1 تعریف توصیف SLA 62
3-1-7-2 فقدان SLA در ابرهای موجود 64
3-1-8 فقدان انعطاف پذیری لازم در واسط کاربری 64
3-2 ارائه راهکارها 64
فصل چهارم: محاسبات و یافته های تحقیق 68
4-1 پیاده سازی و شبیه سازی 69
4-2 شرایط محیط شبیه سازی 71
4-3 مقیاس پذیری با اندازه شبکه 72
فصل پنجم: نتیجه گیری و پیشنهادات 74
5-1 خلاصه و نتیجه گیری 75
5-2 مزایای تحقیق انجام شده 75
5-3 معایب تحقیق انجام شده 75
5-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 : سیستم عامل iCloud 43
شکل 2-11: تصویری از سیستم عامل GlideOS 44
شکل 2-12 : تصویری از سیستم عامل G.ho.st 45
شکل 2-13 : تصویری از سیستم عامل JoliCloud 46
شکل 2-14 : تصویری از سیستم عامل eyeOS 47
شکل 3-1 : بروز رسانی موقعیت گره در روش RNP 66
شکل 3-2 : درخواست موقعیت و ارسال بسته در روش RNP 66
شکل 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
فصل اول
مقدمه و کلیات تحقیق
مقدمه
در دهه های آینده ما شاهد رشد چشمگیر تکنولوژی در زمینه پردازنده ها خواهیم بود. ابرها که از پردازنده های چند هسته ای تشکیل شده اند منابع محاسباتی بی نظیری فراهم می سازند. باید توجه داشت که با افزایش وسعت دامنه های اطلاعاتی و محاسباتی نیاز به منابع این چنینی بیش از پیش احساس خواهد شد و با افزایش حجم منابع نیاز به مدیریتی کارا و شفاف الزام پیدا می کند. در اینجا ممکن است این سوال مطرح شود که: ابرها چه امکاناتی برای کاربران فراهم می آورند؟ ابرها در انجام محاسبات عظیم نقش مهمی را ایفا می کنند و به کاربران این امکان را می دهند که برنامه های خود را بر روی بستری قابل اطمینان و بسیار کارآمد که از اجزای صنعتی استاندارد تشکیل شده است اجرا کنند. همچنین ابرها مدل محاسباتی بسیار ساده ای را فراهم می آورند به این صورت که کاربران تنها خروجی مورد نظر را با کمترین هزینه برای کاربر تامین می نمایند. ابرها در کنار اینکه فرصت های فراوانی را برای کاربران فراهم می آورند، چالش هایی را نیز برای مدیریت این منابع پدید می آورند. برای مثال از این چالش ها می توان به نحوه هماهنگ ساختن میزان منابع با درخواست ها و یا وسعت زیاد منابع تحت مدیریت سیستم عامل اشاره نمود. در این تحقیق با چالش های موجود در این زمینه بیشتر آشنا می شویم و پیرامون هر کدام به تفضیل صحبت خواهیم کرد.
سوالات اصلی تحقیق
سیستم عامل های ابری که نوعی از سیستم عامل های توزیعی می باشند، می توانند مجموعه ای از گره ها را با هم یکپارچه ساخته و یک سیستم متمرکز را تولید کنند. با توجه به اینکه ابرها فرصت های فراوانی را برای کاربران فراهم می آورند، چالش هایی را نیز برای مدیریت این منابع پدید می آورند. به همین منظور سوالات زیر مطرح می شود:
چالش های موجود در سیستم عامل های ابری کدامند؟
آیا تا به حال این چالش ها مورد بررسی قرار گرفته اند؟
این چالش ها تا چه اندازه اهمیت دارند؟
آیا راهکاری برای این چالش ها در نظر گرفته شده است؟
هدف از اجراء
در دهه های اخیر شاهد رشد چشمگیر تکنولوژی در زمینه پردازنده ها بوده ایم و این تکنولوژی همچنان با سرعت قابل توجهی در حال پیشرفت است. دلیل این امر افزایش منابع اطلاعاتی و محاسباتی است که این نیاز را به وجود آورده است که با ساخت چنین تکنولوژی هایی به ویژه پردازنده های چند هسته ای، مدیریتی کارا و شفاف بر این اطلاعات حجیم و محاسبات عظیم صورت گیرد. مدیریت اطلاعات و محاسبات این چنینی در محیط هاو سیستم های توزیعی به مراتب آسان تر از محیط های دیگر است. یکی از سیستم های توزیعی ابرها می باشند که می توانند نقش مهمی را در محاسبات عظیم و ذخیره سازی اطلاعات حجیم، ایفا کنند. بنابراین لزوم بررسی چالش ها و موانع در این قبیل سیستم ها و رفع آنها می تواند گامی موثر در افزایش سرعت و کارایی این گونه سیستم ها داشته باشد.
توجیه ضرورت انجام طرح
همزمان با رشد چشمگیر تکنولوژی پردازنده ها، ابرها نیز گسترش روز افزونی پیدا کرده اند. به همین ترتیب تعداد کامپیوترهای افزوده شده به زیر ساخت ابرها نیز افزایش پیدا کرده است که البته قابل ذکر است این افزایش با توجه به تقاضای روزافزون کاربران برای میزبانی این منابع می باشد. منابع ابری برای کاربران نامحدود بوده و کاربران تنها محدودیت مالی برای خرید این منابع را پیش رو دارند. پس می توان نتیجه گرفت که یکی از مهم ترین چالش ها در این زمینه مقیاس پذیر بودن سیستم عامل های ابری می باشد. در ابرها پارامترهایی همچون تقاضا، حجم کار و منابع در دسترس در طول زمان پیوسته در حال تغییر می باشند. برای مثال هنگامی که کاربر محاسبات سنگین و پیچیده ای درخواست می کند منابع مورد نیاز وی افزایش پیدا می کند و در پایان منابع از کاربر تحویل گرفته می شوند، قابل ذکر است این افزایش و کاهش در منابع ممکن است از دید کاربر پنهان بماند. باید به این نکته توجه داشت که تقاضا هیچ گاه ثابت نمی ماند و میزان منابع مورد نیاز در گستره زیادی در حال تغییر می باشد. از طرفی برنامه های کاربردی مبتنی بر ابر معمولا منابع را بین کاربران و دیگر برنامه های کاربردی به اشتراک می گذارند. اگرچه برنامه کاربردی هر کاربر در لفاف مجازی جداگانه ای قرار گرفته است ولی کیفیت سرویسی که برای برنامه فراهم می شود را تحت تاثیر قرار می دهد. علاوه براین برنامه نویسی در این سیستم عامل نیز کاری مشکل و توام با خطا است. با توجه به مشکلات برنامه نویسی چند نخی و چند فرآیندی که در این نوع سیستم عامل ها استفاده می شود امکان وجود خطا افزایش می یابد. همچنین به دلیل کمبود ابزارهای اشکال زدایی و آنالیز سیستم های بزرگ فهمیدن خطاها سخت و برطرف سازی آنها چالش برانگیز است. برخی چالش های ذکر شده در این زمینه موجب به وجود آمدن مسیر تحقیقاتی گوناگون شده است که از آن جمله می توان به موارد زیر اشاره کرد که البته هر کدام از این مسیرها به بخش های دیگری می شکنند که زمینه جدیدی را فراهم می کند.
استفاده از اشیاء پایدار: یکی از زمینه های اصلی مدل ابری فراهم آوردن مخازن داده پایدار و قابل اشتراک می باشد. بنابراین محور اصلی برخی از تحقیقات در زمینه سیستم عامل های ابری، پشتیبانی کارامد و استفاده بهینه از حافظه پایدار می باشد. علاوه بر این عرصه دیگر تحت کنترل درآوردن منابع توزیع شده می باشد که منجر به افزایش سرعت برنامه های اجرایی بر روی ابرها می گردد.
اطمینان و امنیت در سیستم عامل های ابری: یکی از اهداف مهم این سیستم ها فراهم آوردن محیط محاسباتی امن برای کاربران است. این چالش از دو بخش اصلی تشکیل می شود: حفاظت از داده ها هنگام خرابی سیستم و تضمین انجام ادامه محاسبه از جایی که محاسبه قطع گردید. می توان به این نتیجه رسید یکی دیگر از زمینه های تحقیق پیرامون سیستم عامل های ابری افزایش اطمینان این سیستم عامل ها می باشد.
تحمل خطا: افزایش تحمل خطا زمینه ی تحقیقات دیگر حول این موضوع می باشد.
تعاریف واژه ها
سیستم های توزیعی
سیستم توزیعی در واقع مجموعه ای از کامپیوترهای مستقل است که برای کاربر خود مانند یک سیستم منسجم و منفرد به نظر می رسد[2].
سیستم عامل توزیع شده
این سیستم عامل ها خود را مانند سیستم عامل های تک پردازنده به کاربر معرفی می کنند اما در عمل از چندین پردازنده استفاده می کنند. این نوع سیستم عامل در یک محیط شبکه ای اجرا می شود و در حقیقت در این نوع سیستم جواب نهایی یک برنامه، پس از اجرا در کامپیوترهای مختلف به سیستم اصلی بر می گردد. سرعت پردازش در این نوع سیستم بسیار بالاست.
سیستم عامل ابری
سیستم عامل ابری نیز نوعی از سیستم عامل های توزیعی می باشند که مجموعه ای از گره ها را با هم یکپارچه می سازد و یک سیستم متمرکز تولید می کند.

فصل دوم
ادبیات و پیشینه تحقیق
در این فصل سعی شده قبل از آشنایی کامل با سیستم عامل های ابری در مورد محاسبات ابری، انواع سیستم عامل ها، سیستم های توزیعی و سیستم عامل های توزیعی آشنا شویم، سپس با برخی سیستم عامل های ابری موجود آشنا شده و در نهایت به تحقیقاتی که در این زمینه صورت گرفته می پردازیم.
محاسبات ابری
محاسبات ابری مدل محاسباتی بر پایه شبکه‌های بزرگ کامپیوتری مانند اینترنت است که الگویی تازه برای عرضه، مصرف و تحویل سرویس‌های فناوری اطلاعات (شامل سخت افزار، نرم افزار، اطلاعات، و سایر منابع اشتراکی محاسباتی) با به کارگیری اینترنت ارائه می‌کند. سیر تکاملی محاسبات به گونه ای است که می توان آن را پس از آب، برق، گاز و ‌تلفن به عنوان عنصر اساسی پنجم فرض نمود. در چنین حالتی، کاربران سعی می کنند بر اساس نیازهای خود و بدون توجه به اینکه یک سرویس در کجا قرار دارد و یا چگونه تحویل داده می شود، به آن دسترسی یابند. نمونه های متنوعی از سیستم های محاسباتی ارائه شده است که سعی دارند چنین خدماتی را به کاربران ارئه دهند. برخی از آنها عبارتند از: محاسبات کلاستری، محاسبات توری و اخیراً محاسبات ابری[15]. محاسبات ابری ساختاری شبیه یک توده ابر دارد که به واسطه آن کاربران می توانند به برنامه های کاربردی از هر جایی از دنیا دسترسی داشته باشند. بنابراین، محاسبات ابری می تواند با کمک ماشین های مجازی شبکه شده، بعنوان یک روش جدید برای ایجاد پویای نسل جدید مراکز داده مورد توجه قرار گیرد. بدین ترتیب، دنیای محاسبات به سرعت به سمت توسعه نرم‌افزارهایی پیش می رود که به جای اجرا بر روی کامپیوترهای منفرد، به عنوان یک سرویس در دسترس میلیون ها مصرف کننده قرار می گیرند.

شکل 2-1: تصویری از محاسبات ابری[33]
معرفی محاسبات ابری
دنیای فناوری اطلاعات و اینترنت که امروزه تبدیل به جزئی حیاتی از زندگی بشر شده، روز به روز در حال گسترش است. همسو با آن، نیازهای اعضای جوامع مانند امنیت اطلاعات، پردازش سریع، دسترسی پویا و آنی، قدرت تمرکز روی پروژه های سازمانی به جای اتلاف وقت برای نگه داری سرورها و از همه مهم تر، صرفه جویی در هزینه ها اهمیت زیادی یافته است. راه حلی که امروزه در عرصه فناوری برای چنین مشکلاتی پیشنهاد می شود تکنولوژی ای است که این روزها با نام محاسبات ابری شناخته می شود.
محاسبات ابری نمونه ای است که منابع بیرونی همه نیازهای IT را از قبیل ذخیره سازی، محاسبه و نرم افزارهایی مثل Office و ERP را در اینترنت تهیه می کند. محاسبات ابری همچنین، رشد و پیشرفت کاربرد های وسیع و تست برای شرکت های IT کوچکی را اجازه می دهد که نمی توانند سرمایه های بزرگ در سازمان داشته باشند. مهم ترین مزیت پیشنهاد شده توسط ابر در مفهوم اقتصاد مقیاس است و آن هنگامی است که هزاران کاربر، تسهیلات یکسان، هزینه یکسان برای هر کاربر و بهره برداری از سرور به اشتراک می گذارند. برای فعال سازی چنین تسهیلاتی، محاسبات ابری در برگیرنده تکنولوژی ها و مفاهیمی است مثل: مجازی سازی و محاسبات سودمند، پرداخت در ازای میزان استفاده، بدون سرمایه گذاری های کلان، انعطاف پذیری، مقیاس بندی، شرایط تقاضا و منابع بیرونی IT.
محاسبات ابری را ابر نیز می نامند چون یک سرور ابری دارای شکل بندی است که می تواند هر جایی در جهان قرار داشته باشد. ابر، تصویری است انتزاعی از شبکه‌ای عظیم؛ توده‌ای که حجم آن مشخص نیست، نمی‌دانیم از چه میزان منابع پردازشی تشکیل شده. ابعاد زمانی و مکانی یکایک اجزای آن نیز دانسته نیست، نمی‌دانیم سخت‌افزار‌ها و نرم‌افزارها کجای این توده قرار دارند، اما آن‌چه را که عرضه می‌کند، می‌شناسیم. درست مثل برق! شما برای اینکه از وسایل و تجهیزات برقی در خانه یا محل کارتان استفاده کنید لازم نیست یک ژنراتور یا کارخانه برق در خانه خود داشته باشید، بلکه به ازای هزینه مشخصی برق را اجاره می‌کنید. حالا اگر مصارف برقی شما بیشتر و متفاوت‌‌تر باشند مثلاً‌ می‌روید و از خدمات برق صنعتی استفاده می‌کنید. در محاسبات ابری هم شرکت‌ها و سازمان‌ها و افراد دیگر برای نرم‌افزار، سخت‌افزار یا شبکه پولی پرداخت نمی‌کنند، بلکه توان محاسباتی و سرویس‌های نرم‌افزاری مورد نیازشان را خریداری می‌کنند. این ایده در واقع صرفه‌جویی بزرگ و بهره‌وری زیادی در منابع IT را به همراه خواهد داشت. بدین ترتیب کافی است وسیله شما (پی‌سی، موبایل، تلویزیون، حتی یخچال!) یک رابط نرم‌افزاری (مرورگر) برای استفاده از سرویس‌های آنلاین و یک دسترسی به اینترنت داشته باشد،‌ خواهید دید که قادر هستید به راحتی از توان محاسباتی برای انجام کارهای دیجیتالی خود بهره بگیرید.
رشد و پیشرفت محاسبات ابری منجر به چندین تعریف پیشنهادی از خصوصیات آن می شود. برخی از این تعاریف توسط دانشمندان مشهور و سازمان ها ارائه شده است مثل:
الف) Buyya و همکارانش که محاسبات ابر را در مفهوم کاربری است برای کاربر نهایی بدین صورت تعریف می کنند: یک ابر سیستمی محاسباتی توزیع شده بازارگرا است که شامل جمع آوری کامپیوترهای مجازی و ارتباط داخلی هستند که از لحاظ دینامیکی به عنوان یک یا چند منبع محاسباتی متحد بر اساس توافق های سطح سرویس بین مصرف کنندگان و فراهم کنندگان خدمات مذاکره می کنند[14].
ب) موسسه ملی استانداردها و تکنولوژی محاسبات ابری را به صورت زیر تعریف می کند: محاسبه ابری، الگویی است برای اینکه شبکه های مبتنی بر تقاضا به منابع محاسباتی (مثل سرور، شبکه، ذخیره سازی، برنامه های کاربردی و خدمات) طوری دستیابی پیدا کنند که شامل حداقل تلاش مدیریت یا تعامل فراهم کننده سرویس است. این الگوی ابر، قابلیت دستیابی را ارتقا می دهد و شامل پنج تا از ویژگی های ضروری، سه تا از الگوهای سرویس و چهار تا الگوی استقرار است.
ویژگی های ابری شامل انتخاب سرویس مبتنی بر تقاضا، دسترسی وسیع به شبکه، ائتلاف منابع، انعطاف پذیری سریع و سرویس اندازه گیری شده است. الگوهای خدمات در دسترس به صورت نرم افزار به عنوان سرویس(SaaS)، سکو به عنوان سرویس (PaaS) و زیرساخت به عنوان سرویس (IaaS) تقسیم بندی می شوند. الگوی گسترش به ابرهای عمومی، خصوصی، اجتماعی و هیبرید تقسیم بندی می شود.
مشخصه اصلی محاسبات ابری
موسسه ملی استانداردها و فناوری، خصوصیات محاسبات ابری زیر را به صورت زیر تعریف می کند:
سرویس مبتنی بر تقاضا
مشتری می تواند به صورت یک طرفه امکانات و خدمات محاسباتی همچون سرور و فضای ذخیره سازی در شبکه را به هنگام نیاز از هر فراهم کننده ای به صورت خودکار و بدون نیاز به دخالت انسان به دست آورده و از آنها استفاده کند. به عبارت دیگر، برای مدیریت زیرساخت ابر نیازمند استخدام مدیران شبکه یا Admin به صورت تمام وقت نیستیم. بیشتر سرویس های ابر، پورتال های سلف سرویس دارند که به آسانی مدیریت می شوند.
دسترسی وسیع به شبکه
توانمندی های موجود بر روی شبکه، از طریق مکانیزم های استاندارد که استفاده از روش های ناهمگون پلتفرم های کلاینت، مانند تلفن های موبایل، لپ تاپ ها و PDA ها، را ترویج می کنند، قابل دسترسی هستند.
ائتلاف منابع
منابع محاسباتی فراهم کننده جمع آوری شده اند تا با به کارگیری مدل چند مشتری به چندین مشتری خدمت رسانی کنند. این کار به وسیله منابع فیزیکی یا مجازی مختلف که به شکلی پویا و بنابر درخواست مشتری واگذار و پس گرفته می شوند، صورت می گیرد. در اینجا حالتی از عدم وابستگی به مکان وجود دارد که در آن مشتری معمولاً کنترل یا دانشی درباره محل دقیق منابع فراهم شده ندارد ولی ممکن است در سطوح بالاتر انتزاعی بتواند محل را تعیین کند، مثل: کشور، استان یا مراکز داده. برای نمونه منابع شامل فضای ذخیره سازی، توان پردازشی، حافظه، پهنای باند شبکه و ماشین های مجازی می شود.
انعطاف پذیری سریع
می توان امکانات را به سرعت و با انعطاف، در بعضی موارد به صورت خودکار، به دست آورد تا به سرعت گسترش داده شده( از دید مقیاس) یا درجا آزاد شوند و خیلی سریع به مقیاس کوچکتری دست یابند. از دید مشتری امکاناتی که برای به دست آمدن در دسترس هستند اغلب نامحدود به نظر می آیند و می توانند به هر مقدار و در هر زمان خریداری شوند.
سرویس اندازه گیری شده
سیستم های ابری منابع را خودکار کنترل و بهینه می کنند. این کار با به کارگیری توانایی اندازه گیری در سطحی از تجرید که مناسب گونه آن خدمت ( مثل: فضای ذخیره سازی، توان پردازشی، پهنای باند و شمار کاربران فعال) است انجام می شود. میزان استفاده از منابع می تواند به شکلی شفاف هم برای مشتری و هم برای فراهم کننده زیر نظر گرفته، کنترل شده و گزارش داده شود.
معماری سرویس گرا
معماری مبتنی بر سرویس در واقع یک مجموعه ای از سرویس ها است که با یکدیگر ارتباط برقرار می کنند. حین این ارتباط ممکن است داده هایی را بین یکدیگر پاس کاری کنند و همچنین ترکیب دو یا چند سرویس با هم یک کار انجام دهد. در این جا چند مفهوم اتصال بین سرویس ها مورد نیاز است. برخلاف دهه های گذشته که نرم افزارها قائم به خود و انفرادی بودند، در حال حاضر روند تکامل نرم افزارها به سوی معماری مبتنی بر سرویس می رود. رشد انفجاری تکنولوژی های اینترنت و تعداد کاربران آن موجب شده که فروش نرم افزار جای خودش را به اجاره نرم افزار بدهد. شرکت های بزرگی مانند مایکروسافت، گوگل، سان و حتی آمازون به این سمت می روند که به جای فروش مستقیم نرم افزار به کاربر خدمات نرم افزاری را ارئه دهند. معماری مبتنی بر سرویس معماری نرم افزار یا سیستمی است که امکاناتی چون کامپوننت ها، استفاده مجدد، توسعه پذیری و راحتی را در اختیار ما قرار می دهد. این ویژگی ها برای شرکت هایی که به دنبال کاهش هزینه هستند و به جای فروش به اجاره سرویس های نرم افزار تاکید دارند، الزامی است[9].
مدلهای سرویس
در مدل سرویس، انواع گوناگون ابر بیانگر قالبی هستند که زیر ساختها در آن قرار میگیرد. اکنون محدوده شبکه، مدیریت و مسئولیتها به پایان میرسد و امور مربوط به بخش سرویسدهندهی ابر آغاز میشود. با پیشرفت محاسبات ابری فروشندگان، ابرهایی را با سرویس های مختلف مرتبط به کار خود عرضه مینمایند. با سرویسهایی که عرضه میشوند مجموعه دیگری از تعاریف به نام مدل سرویس در محاسبات ابری مطرح میشود. برای مدلهای سرویس، نامگذاریهای بسیاری صورت گرفته که همگی به فرم زیر تعریف شده اند:
XaaS,or "<something>as a Service"
در حال حاضر در جهان سه نوع سرویس به صورت متداول شناخته می شود:
زیر ساخت به عنوان سرویس
زیر ساخت به عنوان سرویس یا IaaS ماشینهای مجازی، فضای ذخیرهسازی مجازی، زیر ساخت های مجازی و سایر سخت افزارهای کاربردی را به عنوان منابع برای مشتریان فراهم میآورد. سرویسدهندهی IaaS تمامی زیر ساختها را مدیریت مینماید و در حالی که مشتریان مسئول باقی جنبههای استقرار میباشند. از جمله سیستم عامل، برنامهها و تعاملات سیستم با کاربر و غیره.
در جدول 2-1 تعدادی از سرویس دهندگان شناخته شده در حوزه IaaS به همراه توصیفی کوتاه از نوع سرویس ارائه شده آنها آورده شده است.
جدول2-1 : سرویس دهندگان زیر ساخت به عنوان سرویس
سازمان سرویس/ ابزار توصیف لایه-سطح
آمازون Elastic Compute Cloud سرور مجازی IaaS- سرویس منبع مجازی
Dynamo سیستم ذخیره سازی مبتنی بر کلید-ارزش IaaS- سرویس زیرساخت پیشرفته
Simple Storage Service سیستم ذخیره سازی دسته ای IaaS- سرویس زیر ساخت پایه
SimpleDB پایگاه داده به عنوان سرویس IaaS- سرویس زیر ساخت پیشرفته
CloudFront تحویل محتوا IaaS- سرویس زیر ساخت پیشرفته
SQS سرویس صف و زمانبندی IaaS- سرویس زیر ساخت پیشرفته
AppNexus AppNexus Cloud سرور مجازی IaaS- سرویس منبع مجازی
گوگل Google Big Table سیستم توزیع شده برای ذخیره سازی IaaS- سرویس زیر ساخت پیشرفته
Google File Sys-- سیستم- فایل توزیع شده IaaS- سرویس زیر ساخت پایه
اچ پی iLO مدیریت خاموشی سرور IaaS- سرویس منبع فیزیکی
Tycoon سیستم مدیریت منابع محاسباتی در کلاسترها IaaS- سرویس منبع مجازی
Joyent Accelerator سرور مجازی IaaS- سرویس منبع مجازی
Connector سرور مجازی از قبل تنظیم شده IaaS- سرویس زیر ساخت پیشرفته
BingoDisk دیسک ذخیره سازی IaaS- سرویس زیر ساخت پایه
Bluelock Bluelock Virtual Cloud Computing سرور مجازی IaaS- سرویس منبع مجازی
Bluelock Virtual Recovery بازیابی مصیبت و شکست IaaS- سرویس زیر ساخت پیشرفته
Emulab Emulab Network Testbed بستر آزمایش شبکه IaaS- سرویس منبع فیزیکی
ENKI ENKI Virtual Private Data Centers منابع دیتا سنتر مجازی بنابر تقاضا IaaS- سرویس منبع مجازی
EU Resevoir Project Open Nebula موتور مجازی زیرساخت(متن باز) IaaS- سرویس منبع مجازی
FlexiScale FlexiScale Cloud Computing سرور مجازی IaaS- سرویس منبع مجازی
GoGrid Cloud Hosting سرور مجازی IaaS- سرویس منبع مجازی
Cloud Storage فضای ذخیره سازی IaaS- سرویس زیر ساخت پایه
Nirvanix Nirvanix Storage Delivery Network دیسک ذخیره سازی IaaS- سرویس زیر ساخت پیشرفته
OpenFlow OpenFlow شبیه سازی شبکه IaaS- سرویس زیر ساخت پیشرفته
RackSpace Masso Cloud Sites سرور مجازی از پیش تنظیم شده IaaS- سرویس زیر ساخت
Masso Cloud Storage دیسک ذخیره سازی IaaS- سرویس زیر ساخت پایه
Masso Cloud Severs سرور مجازی IaaS- سرویس منبع مجازی
Skytap Skytap Virtual Lab محیط آزمایشگاه مجازی فناوری اطلاعات IaaS- سرویس زیر ساخت
Terremark Infinistructure سرور مجازی IaaS- سرویس منبع مجازی
UCSB Eucalyptus نسخه متن باز EC2 آمازون IaaS- سرویس منبع مجازی
10gen Mongo DB پایگاه داده برای ذخیره سازی ابری IaaS- سرویس زیر ساخت پیشرفته
Babble Application Server سرور برنامه های تحت وب برای استقرار ابری IaaS- سرویس زیر ساخت پیشرفته
سکو به عنوان سرویس
سکو به عنوان سرویس یاPaaS ، ماشینهای مجازی، سیستمهای عامل، برنامهها، سرویسها، چارچوبهای توسعه، تراکنشها و ساختارهای کنترلی را فراهم میآورد. مشتری میتواند برنامههای خود را بر روی زیر ساخت ابر قرار دهد و یا اینکه از برنامههایی استفاده کند که با استفاده از زبانها و ابزارها نوشته شدهاند و توسط سرویس دهندهیPaaS پشتیبانی می شوند. سرویسدهنده زیرساخت ابر، سیستمهای عامل و نرمافزارهای فعالسازی را فراهم میآورد. مشتری مسئول نصب و مدیریت برنامههایی که قرار داده است، میباشد.
در جدول 2-2 تعدادی از سرویس دهندگان شناخته شده در حوزه PaaS به همراه توصیفی کوتاه از نوع سرویس ارائه شده آنها آورده شده است.
جدول2-2 : سرویس دهندگان سکو به عنوان سرویس
سازمان سرویس/ابزار توصیف لایه-سطح
Akamai EdgePlatform تحویل برنامه کاربردی، محتوا و سایت PaaS
مایکروسافت Azure محیط توسعه و اجرا برای برنامه های کاربردی مایکروسافت PaaS
Live Mesh بستری برای به هنگام سازی، اشتراک و دسترسی به دامنه وسیعی از دستگاه هایی با سیستم عامل مایکروسافت PaaS
فیس بوک Facebook Platform بستر آزمایش شبکه PaaS
گوگل App Engine محیط اجرایی قابل گسترش برای برنامه های تحت وب نوشته شده در زبان پایتون PaaS
NetSuite SuiteFlex جعبه ابزاری برای سفارشی سازی برنامه های کاربردی کسب و کار آنلاین همین شرکت PaaS
Salesforce Force.com ساخت و تحویل برنامه های کاربردی در کلاس کسب و کار PaaS
Sun Caroline بستر قابل گسترش افقی برای توسعه و استقرار سرویس های تحت وب PaaS
Zoho Zoho Creator جعبه ابزاری برای ساخت و تحویل برنامه های کاربردی در کلاس کسب و کار و به شکل بنابر بر تقاضا PaaS
نرمافزار به عنوان سرویس
نرمافزار به عنوان سرویس یا SaaS یک محیط کاملاً عملیاتی برای مدیریت برنامهها و واسط کاربری است. در مدل SaaS برنامه از طریق یک برنامه واسط (معمولاً مرورگر) به مشتری سرویس میدهد و مسئولیت مشتری با ورود داده شروع و با مدیریت داده و تعاملات کاربری پایان مییابد. همه چیز مربوط به برنامه تا زیر ساخت در حوزهی مسئولیت فروشنده است.
در جدول 2-3 تعدادی از سرویس دهندگان شناخته شده در حوزه SaaS به همراه توصیفی کوتاه از نوع سرویس ارائه شده آنها آورده شده است.
جدول2-3 : سرویس دهندگان نرم افزار به عنوان سرویس
سازمان سرویس/ابزار توصیف لایه-سطح
گوگل Google Docs بسته نرم افزاری آفیس آنلاین SaaS
Google Maps API رابط برنامه نویس سرویس نقشه گوگل به توسعه دهندگان این امکان را می دهد تا نقشه گوگل را در سایت های خود جاسازی کنند SaaS- سرویس ساده
OpenID Foundation OpenSocial یک رابط برنامه نویسی کاربردی مشترک برای برنامه های شبکه های اجتماعی SaaS-سرویس مرکب
OpenID یک سیستم توزیع شده که به کاربران این اجازه را می دهد تا تنها با یک شناسه دیجیتال بتوانند از سایتها مختلف استفاده نمایند. SaaS- سرویس ساده
مایکروسافت Office Live بسته نرم افزاری آفیس آنلاین SaaS
Salesforce Salesforce.com بسته نرم افزاری مدیریت روابط مشتریان SaaS
این سه مدل متفاوت سرویس به نام مدل SPI محاسبات ابری شناخته میشوند. گرچه تاکنون از مدلهای سرویس بسیاری نام برده شد، staas فضای ذخیرهسازی به عنوان سرویس؛ idaas هویت به عنوان سرویس؛ cmaas توافق به عنوان سرویس؛ و غیره، با این وجود سرویس های SPI تمامی باقی سرویسهای ممکن را نیز در بر میگیرد. IaaS دارای حداقل سطوح عاملیت مجتمع شده و پایین ترین سطوح مجتمع سازی میباشد و SaaS دارای بیشترینها است. یک PaaS یا سکو به عنوان سرویس خصوصیات مجتمع سازی، میانافزارها و سایر سرویسهای هماهنگساز را به مدل IaaS یا زیر ساخت به عنوان سرویس میافزاید. هنگامی که که یک فروشندهی محاسبات ابری، نرمافزاری را بر روی ابر عرضه میکند، با استفاده از برنامه و پرداخت فوری، یک عملیات SaaS انجام می گیرد. با SaaS مشتری برنامه را در صورت نیاز استفاده میکند و مسئول نصب، نگهداری و تعمیر برنامه نیست.
مدل‌های پیاده‌سازی
در تعریف NIST (انستیتوی ملی استاندارد ها و فناوری ها) مدل های استقرار ابر به چهار صورت زیر است:

شکل 2-2 : الگوی استقرار ابر[29]
ابر عمومی
ابر عمومی یا ابر خارجی توصیف کننده محاسبات ابری در معنای اصلی و سنتی آن است. سرویس‌ها به صورت دینامیک و از طریق اینترنت و در واحدهای کوچک از یک عرضه کننده شخص ثالث تدارک داده می‌شوند و عرضه کننده منابع را به صورت اشتراکی به کاربران اجاره می‌دهد و بر اساس مدل محاسبات همگانی و مشابه صنعت برق و تلفن برای کاربران صورتحساب می‌فرستد. این ابر برای استفاده همگانی تعبیه شده و جایگزین یک گروه صنعتی بزرگ که مالک آن یک سازمان فروشنده ی سرویس های ابری می باشد.
ابر گروهی
ابر گروهی در جایی به وجود می‌آید که چندین سازمان نیازهای یکسان دارند و به دنبال این هستند که با به اشتراک گذاردن زیرساخت از مزایای محاسبات ابری بهره‌مند گردند. به دلیل اینکه هزینه‌ها بین کاربران کمتری نسبت به ابرهای عمومی تقسیم می‌شود، این گزینه گران‌تر از ابر عمومی است اما میزان بیشتری از محرمانگی، امنیت و سازگاری با سیاست‌ها را به همراه می‌آورد.
ابر ترکیبی
یک ابر ترکیبی متشکل از چندین ارائه دهنده داخلی و یا خارجی، گزینه مناسبی برای بیشتر مؤسسات تجاری می‌باشد. با ترکیب چند سرویس ابر کاربران این امکان را می‌یابند که انتقال به ابر عمومی را با دوری از مسائلی چون سازگاری با استانداردهای شورای استانداردهای امنیت داده‌های کارت های پرداخت آسان تر سازند.
ابر خصوصی
ابر خصوصی یک زیر ساخت محاسبات ابری است که توسط یک سازمان برای استفاده داخلی آن سازمان به وجود آمده‌است. عامل اصلی که ابرهای خصوصی را از ابرهای عمومی تجاری جدا می‌سازد، محل و شیوه نگهداری از سخت افزار زیرساختی ابر است. ابر خصوصی امکان کنترل بیشتر بر روی تمام سطوح پیاده سازی ابر (مانند سخت افزار، شبکه، سیستم عامل، نرم افزار) را فراهم می‌سازد. مزیت دیگر ابرهای خصوصی امنیت بیشتری است که ناشی از قرارگیری تجهیزات در درون مرزهای سازمان و عدم ارتباط با دنیای خارج ناشی می‌شود. اما بهره گیری از ابرهای خصوصی مشکلات ایجاد و نگهداری را به همراه دارد. یک راه حل میانه برای دوری از مشکلات ابرهای خصوصی و در عین حال بهره مند شدن از مزایای ابرهای خصوصی، استفاده از ابر خصوصی مجازی است. به عنوان نمونه می‌توان از ابر خصوصی مجازی آمازون نام برد.
مشخصات محاسبات ابری
مشخصات کلیدی توسط ابر در شکل 2-3 نشان داده شده است و در قسمت زیر مورد بحث و بررسی قرار گرفته است:

شکل 2-3 : مشخصات محاسبات ابری[28]
مجازی شده : منابع (یعنی محاسبه کردن، ذخیره سازی و ظرفیت شبکه) در ابرها تصور می شوند و این روش در سطوح مختلف مثل vm و سطوح بسته بدست می آید[9]. اصلی ترین آن در سطح ماشین مجازی است که در آن برنامه های کاربردی متفاوت در سیستم های عملکردی با همان ماشین فیزیکی اجرا می شوند. سطح سکو باعث نقشه برداری برنامه های کاربردی در یک یا چند منبع می شود که توسط فراهم آورندگان زیرساخت ابری پیشنهاد شده است.
سرویس گرا: ابر با استفاده از الگوی زیرساخت سرویس گرا به کار می رود که در آن همه اجزا در شبکه به عنوان یک سرویس در دسترس هستند، چه نرم افزار باشد، چه سکو یا هر زیرساختی که به عنوان سرویس پیشنهاد می کنند.
انعطاف پذیری : منابع (یعنی محاسبه کردن، ذخیره سازی و ظرفیت شبکه) برای برنامه های کاربردی ابر موردنیاز هستند که می توانند به صورت پویا و مختلف مقرر می شوند. یعنی افزایش یا کاهش در زمان اجرا بستگی به نیازهای QOS کاربر دارد. فراهم کنندگان ابر اصلی مثل آمازون حتی سرویس هایی را برای توسعه عمودی و توسعه افقی در براساس نیازهای برنامه های کاربردی میزبان دارد.
پویا و توزیع شده: گرچه منابع ابر، مجازی شده اند، آنها اغلب در عملکردهای بالا یا سرویس های ابر قابل اطمینان توزیع می شوند. این منابع انعطاف پذیر و می توانند بر طبق نیازهای مشتری سازگاری یابند مثل: نرم افزار، پیکربندی شبکه و غیره[10].
اشتراک (اقتصاد مقیاسی): زیرساخت ابرها هر جایی است که منابع های متعدد از خود کاربر بر طبق نیازهای برنامه کاربردی خود استفاده می کنند، مشترک می شوند. این الگوی اشتراکی به عنوان الگوی اجاره چندگانه نیز می باشد. به طور کلی، کاربران نه دارای کنترل مستقیم بر منابع فیزیکی هستند و نه از تخصیص منابع و اینکه با چه کسانی مشترک شده اند، خبر دارند.
بازارگرا (پرداخت - در ازای - میزان استفاده): در محاسبات ابری، کاربران براساس پرداخت - در ازای - میزان استفاده برای سرویس ها پرداخت می کنند. الگوی قیمت گذاری می تواند با توجه به انتظار برنامه های کاربردی در کیفیت سرویس متفاوت باشد. فراهم آورندگان ابر IaaS مثل منابع قیمت ها در آمازون از الگوهایی بازاری مثل الگوهای قیمت گذاری کالاها یا زمان پرداخت آنها استفاده می کنند. یک الگوی قیمت گذاری توسط Thualsiram و Allenofor برای منابع مجهز پیشنهاد شده است که می تواند به عنوان اساسی برای منابع ابر استفاده شوند. این خصوصیت، بعد بهره برداری از محاسبات ابری را بیان می کند. یعنی، سرویس های ابری به عنوان سرویس های سنجیده شده هستند که در آن فراهم کنندگان دارای الگوی محاسباتی برای اندازه گیری کاربردها از سرویس ها هستند که به توسعه برنامه های قیمت گذاری متفاوت کمک می کند. الگوی محاسباتی به کنترل و بهینه سازی از منابع کمک می کند.[16]
خودمختار : برای فراهم کردن سرویس های قابل اطمینان در حد بالا، ابرها رفتاری مستقل را با مدیریت خودشان در دگردیسی عملکرد یا شکست نشان می دهند.
مزایای محاسبات ابری
 
کارمان را با بیان مزایای متعددی که توسط محاسبات ابری ارائه می شود آغاز می کنیم. وقتی شما به سمت استفاده از ابر می روید، به چیزهای زیر دست پیدا می کنید:
 
هزینه های کامپیوتری کمتر: شما برای اجرای برنامه های کاربردی مبتنی بر وب، نیازی به استفاده از یک کامپیوتر قدرتمند و گران قیمت ندارید. از آن جائی که برنامه های کاربردی بر روی ابر اجرا می شوند، نه بر روی یک کامپیوتر رو میزی. کامپیوتر رومیزی شما نیازی به توان پردازشی زیاد یا فضای دیسک سخت که نرم افزارهای دسکتاپ محتاج آن هستند ندارد. وقتی شما یک برنامه کاربردی تحت وب را اجرا می کنید، کامپیوتر شما می تواند ارزان تر، با یک دیسک سخت کوچک تر، با حافظه کم تر و دارای پردازنده کارآمدتر باشد. در واقع، کامپیوتر شما در این سناریو حتی نیازی به یک درایو CD یا DVD هم ندارد زیرا هیچ نوع برنامه نرم افزاری بار نمی شود و هیچ سندی نیاز به ذخیره شدن بر روی کامپیوتر ندارد.
کارآیی توسعه یافته:  با وجود برنامه های کم تری که منابع کامپیوترشما، خصوصاً حافظه آن را به خود اختصاص می دهند، شما شاهد کارآیی بهتر کامپیوتر خود هستید. به عبارت دیگر کامپیوترهای یک سیستم محاسبات ابری، سریع تر بوت و راه اندازی می شوند زیرا آن ها دارای فرآیندها و برنامه های کم تری هستند که به حافظه بار می شود.
 
هزینه های نرم افزاری کم تر:  به جای خرید برنامه های نرم افزاری گران قیمت برای هر کامپیوتر، شما می توانید تمام نیازهای خود را به صورت رایگان برطرف کنید. بله درست است، اغلب برنامه های کامپیوتری محاسبات ابری که امروزه عرضه می شوند، نظیر Google Docs، کاملاً رایگان هستند. این، بسیار بهتر از پرداخت 200 دلار یا بیشتر برای خرید برنامه office مایکروسافت است که این موضوع به تنهایی می تواند یک دلیل قوی برای سوئیچ کردن به محاسبات ابری محسوب شود.
 


ارتقای نرم افزاری سریع و دائم:  یکی دیگر از مزایای مربوط به نرم افزار در  محاسبات ابری این است که شما دیگر نیازی به بروز کردن نرم افزارها و یا اجبار به استفاده از نرم افزارهای قدیمی، به دلیل هزینه زیاد ارتقای آن ها ندارید. وقتی برنامه های کاربردی، مبتنی بر وب باشند، ارتقاها به صورت اتوماتیک رخ می دهد و دفعه بعد که شما به ابر وارد شوید به نرم افزار اعمال می شوند. وقتی شما به یک برنامه کاربردی مبتنی بر وب دسترسی پیدا می کنید، بدون نیاز به پرداخت پول برای دانلود یا ارتقای نرم افزار، از آخرین نسخه آن بهره مند می شوید.
 
سازگاری بیشتر فرمت اسناد:  نیازی نیست که شما نگران مسئله سازگاری اسنادی که بر روی کامپیوتر خود ایجاد می کنید با سایر سیستم عامل ها یا سایر برنامه های کاربردی دیگران باشید. در دنیایی که اسناد 2007Word نمی تواند بر روی کامپیوتری که 2003Word را اجرا می کند باز شوند، تمام اسنادی که با استفاده از برنامه های کاربردی مبتنی بر وب ایجاد می شوند می تواند توسط سایر کاربرانی که به آن برنامه کاربردی دسترسی دارند خوانده شوند. وقتی همه کاربران اسناد و برنامه های کاربردی خود را بر روی ابر به اشتراک می گذارند، هیچ نوع ناسازگاری بین فرمت ها به وجود نخواهد آمد.
 
ظرفیت نامحدود ذخیره سازی:  محاسبات ابری ظرفیت نامحدودی برای ذخیره سازی در اختیار شما قرار می دهد. دیسک سخت 200 گیگابایتی فعلی کامپیوتر رومیزی شما در مقایسه با صدها پتابایت (یک میلیون گیگابایت) که از طریق ابر در دسترس شما قرار می گیرد اصلا چیزی به حساب نمی آید. شما هر چیزی را که نیاز به ذخیره کردن آن داشته باشید می توانید ذخیره کنید.
 
قابلیت اطمینان بیشتر به داده:  برخلاف محاسبات دسکتاپ، که در آن یک دیسک سخت می تواند تصادم کند و تمام داده های ارزشمند شما را از بین ببرد، کامپیوتری که بر روی ابر تصادم کند نمی تواند بر داده های شما تاثیر بگذارد. این همچنین بدان معنا است که اگر کامپیوترهای شخصی شما نیز تصادم کنند، تمام داده ها هنوز هم آن جا و برروی ابر وجود دارند و کماکان در دسترس شما هستند. در دنیایی که تنها تعداد اندکی از کاربران به طور مرتب و منظم از داده های مهم و حساس خود نسخه پشتیبان تهیه می کنند، محاسبات ابری حرف آخر در زمینه محافظت از داده ها به شمار می رود.
 
دسترسی جهانی به اسناد:  آیا تا به حال کارهای مهم خود را از محیط کار به منزل برده اید؟ و یا تاکنون به همراه بردن یک یا چند فایل مهم را فراموش کرده اید؟ این موضوع در محاسبات ابری رخ نمی دهد زیرا شما اسناد و فایل های مهم  خود را همراه خود حمل نمی کنید. در عوض، این اسناد و فایل ها بر روی ابر می مانند و شما می توانید از هرجایی که یک کامپیوتر و اتصال اینترنتی وجود داشته باشد به آن دسترسی پیدا کنید. شما در هر کجا که باشید به سرعت می توانید به اسناد خود دسترسی پیدا کنید و به همین دلیل، نیازی به همراه داشتن آن ها نخواهید داشت.
 
در اختیار داشتن آخرین و جدیدترین نسخه:  یکی دیگر از مزایای مرتبط با اسناد در محاسبات ابری این است که وقتی شما یک سند را در خانه ویرایش می کنید، این نسخه ویرایش شده همان چیزی است که وقتی در محل کار خود به آن دسترسی می یابید مشاهده می کنید. ابر همواره، آخرین نسخه از اسناد شما را میزبانی می کند و تا وقتی شما به اینترنت و ابر متصل باشید، هیچ گاه در معرض خطر استفاده از یک نسخه تاریخ گذشته نخواهید بود.
همکاری گروهی ساده تر:  به اشتراک گذاشتن اسناد، شما را مستقیماً به همکاری بر روی اسناد رهنمون می کند. برای بسیاری از کاربران، این یکی از مهم ترین مزایای استفاده از محاسبات ابری محسوب می شود زیرا چندین کاربر به طور همزمان می توانند برروی اسناد و پروژه ها کار کنند، به دلیل این که اسناد بر روی ابر میزبانی می شوند، نه بر روی کامپیوترهای منفرد، همه چیزی که شما نیاز دارید یک کامپیوتر با قابلیت دسترسی به اینترنت است.
 
مستقل از سخت افزار:  در نهایت، در این جا به آخرین و بهترین مزیت محاسبات ابری اشاره می کنیم. شما دیگر مجبور نیستید به یک شبکه یا یک کامپیوتر خاص محدود باشید. کافی است کامپیوتر خود را تغییر دهید تا ببینید برنامه های کاربردی و اسناد شما کماکان و به همان شکل قبلی، بر روی ابر در اختیار شما هستند. حتی اگر از ابزار پرتابل نیز استفاده کنید، باز هم اسناد به همان شکل در اختیار شما هستند. دیگر نیازی به خرید یک نسخه خاص از یک برنامه برای یک وسیله خاص، یا ذخیره کردن اسناد با یک فرمت مبتنی بر یک ابزار ویژه ندارید. فرقی نمی کند که شما از چه نوع سخت افزاری استفاده می کنید زیرا اسناد و برنامه های کاربردی شما در همه حال به یک شکل هستند.
محاسبات ابری که در اواخر سال 2007 پا به عرصه ظهور گذاشت، هم اکنون به دلیل توانایی اش در ارائه زیرساخت فن آوری پویا و بسیار منعطف، محیط های محاسباتی تضمین شده از نظر کیفیت و همچنین سرویس های نرم افزاری قابل پیکربندی به موضوع داغ مبدل شده است. در گزارش گوگل Trends و همانطور که در شکل 2-4 مشاهده می کنید، محاسبات ابری که از تکنولوژی مجازی سازی بهره می برد، محاسبات گریدی را پشت سر گذاشته است.

شکل2-4 : تمایل به سمت محاسبات ابری[35]
پروژه های متعددی در حوزه صنعت و دانشگاه بر روی محاسبات ابری آغاز شده است وشرکت های بسیار بزرگی با این موضوع درگیر شده اند و این نشان از توجه عمومی به سمت این پدیده نوین است.
نقاط ضعف محاسبات ابری
چند دلیل وجود دارد که ممکن است با استناد به آن ها شما نخواهید از محاسبات ابری استفاده کنید. در این جا به ریسک های مرتبط با استناد از محاسبات ابری اشاره می کنیم:
نیاز به اتصال دائمی به اینترنت دارد: در صورتی که شما نتوانید به اینترنت متصل شوید، محاسبات ابری غیر ممکن خواهد بود. از آن جائی که شما باید برای ارتباط با برنامه های کاربردی و اسناد خود به اینترنت متصل باشید، اگر یک ارتباط اینترنتی نداشته باشید نمی توانید به هیچ چیزی، حتی اسناد خودتان دسترسی پیدا کنید. نبود یک ارتباط اینترنتی، به معنای نبود کار است. وقتی شما آفلاین هستید، محاسبات ابری کار نمی کند.
با اتصال های اینترنتی کم سرعت کار نمی کند: به همان شکلی که در بالا اشاره شد، یک ارتباط اینترنتی کم سرعت نظیر نمونه ای که در سرویس های Dial-up دیده می شود، در بهترین حالت، استفاده از محاسبات ابری را با دردسرهای فوق العاده ای همراه می کند و اغلب اوقات، استفاده از آن را غیرممکن می سازد. برنامه های کاربردی تحت وب و همچنین اسنادی که بر روی ابر ذخیره شده اند برای دانلود شدن به پهنای باند بسیار زیادی نیاز دارند. اگر شما از یک اینترنت Dial-up استفاده می کنید، اعمال تغییر در یک سند یا رفتن از یک صفحه به صفحه دیگر همان سند ممکن است برای همیشه به طول بینجامد. و البته در مورد بار شدن یک سرویس غنی از امکانات حرفی نمی زنیم. به عبارت دیگر، محاسبات ابری برای افرادی که از اینترنت باند پهن استفاده نمی کنند، نیست.
می تواند کند باشد: حتی در یک ارتباط اینترنتی سریع نیز، برنامه های کاربردی تحت وب می توانند گاهی اوقات کندتر از دسترسی به همان برنامه نرم افزاری از طریق یک کامپیوتر رومیزی باشند. تمام جنبه های یک برنامه، از جمله اینترفیس و سند فعلی، باید بین کامپیوتر یا کامپیوترهای موجود بر روی ابر مبادله شود. اگر در آن لحظه، سرورهای ابر در معرض تهیه نسخه پشتیبان باشند یا اگر اینترنت یک روز کند را پشت سر بگذارد، شما نمی توانید به همان دسترسی سریعی که در یک برنامه دسک تاپ وجود دارد، برسید.
ویژگی ها ممکن است محدود باشند: این وضعیت در حال تغییر است اما بسیاری از برنامه های کاربردی مبتنی بر وب به اندازه همتای دسک تاپ خود دارای ویژگی ها و امکانات غنی نیستند. به عنوان مثال، شما می توانید کارهای بسیار زیاد با برنامه PowerPoint انجام دهید که امکان انجام همه آن ها توسط برنامه ارائه Google Docs وجود ندارد. اصول این برنامه ها یکسان هستند، اما برنامه کاربردی که بر روی ابر قرار دارد فاقد بسیاری از امکانات پیشرفته PowerPoint است. اگر شما یک کاربر با تجربه و حرفه ای هستید، ممکن است نخواهید از محاسبات ابری استفاده کنید.
داده های ذخیره شده ممکن است از امنیت کافی برخوردار نباشند: با استفاده از محاسبات ابری، تمام داده های شما بر روی ابر ذخیره می شوند. این داده ها تا چه حد ایمن هستند؟ آیا کاربران غیرمجاز می توانند به داده های مهم و محرمانه شما دسترسی پیدا کنند؟ کمپانی محاسبات ابری اظهار می کند که داده ها امن هستند اما هنوز برای اطمینان کامل از این موضوع خیلی زود است. از نظر تئوری، داده های ذخیره شده بر روی ابر ایمن هستند و بین چندین ماشین توزیع شده اند. اما در صورتی که داده های شما مفقود شوند، شما هیچ نسخه پشتیبان فیزیکی یا محلی در اختیار نخواهید داشت (مگر این تمام اسناد ذخیره شده بر روی ابر را بر روی دسک تاپ خود دانلود کنید که معمولاً کاربران کمی چنین کاری می کنند). به سادگی بگویم، اتکا به ابر، شما را در معرض خطر قرار می دهد.
بررسی وضعیت محاسبات ابری در جهان از نگاه آماری
وب سایت cloudehypermarket.com تصویری را منتشر کرده است که اطلاعات آماری جالبی را در مورد محاسبات ابری و اوضاع فعلی آن در جهان به تصویر می‌کشد.
1562101485900
شکل 2-5 : بررسی وضعیت محاسبات ابری در جهان[36]
برخی از مهمترین نکات موجود در شکل عبارتند از: (آمار مربوط به اواخر سال ۲۰۱۰ می‌باشد).
۱- در بخش اول تصویر میزان سرمایه‌گذاری جهانی در حوزه‌ی آی‌تی بررسی شده است. در سال ۲۰۰۸ مجموعاً ۳۶۷ میلیارد پوند صرف هزینه‌های معمول فناوری اطلاعات و ۱۶ میلیارد پوند صرف هزینه‌های مربوط به سرویس‌های محاسبات ابری شده است. پیش‌بینی می‌شود در سال ۲۰۱۲ مجموع سرمایه‌گذاری معمول در حوزه‌ی IT به رقم ۴۵۱ میلیارد پوند و سرمایه‌گذاری در حوزه‌ی محاسبات ابری به ۴۲ میلیارد پوند برسد. با این محاسبات، رشد سالانه‌ی سرمایه‌گذاری در حوزه‌ی محاسبات ابری از سال ۲۰۰۸ تا ۲۰۱۲ به عدد ۲۵ درصد نزدیک است.
۲- مؤسسه‌ی تحقیقات بازار IDC پیش‌بینی می کند که در چند سال آینده، علاوه بر رشد سرمایه گذاری در حوزه‌ی محاسبات ابری، شرکت‌ها نیز حوزه‌های فعالیت خود را تغییر خوهند داد و خدمات خود را به سمت محاسبات ابری سوق خواهند داد. پیش‌بینی می‌شود خدمات محاسبات ابری شرکت‌ها در سال ۲۰۱۲ اینگونه ارائه شود:
اپلیکیشن‌های تجاری: ۵۲ درصد
نرم افزارهای زیرساختی: ۱۸ درصد
خدمات ذخیره‌سازی اطلاعات: ۱۳ درصد
تولید و پیاده‌سازی نرم افزارها و اپلیکیشن‌ها: ۹ درصد
خدمات سرور: ۸ درصد
۳- آیا استفاده از محاسبات ابری فرآیند مدیریت فناوری اطلاعات را آسان تر کرده است؟
۷۰ درصد کارشناسان موافق این جمله هستند.
۲۰ درصد نظری در این باره نداشته اند.
۱۰ درصد مخالف این جمله هستند.
۴- آیا استفاده از محاسبات ابری، بهبودی در تجربه‌ی مصرف کننده‌ی نهایی ایجاد کرده است؟
۷۲ درصد کارشناسان موافق این جمله هستند.
۱۶ درصد نظری در این باره نداشته اند.
۱۲ درصد مخالف این جمله هستند.
۵- آیا استفاده از محاسبات ابری، چالش‌های مربوط به کارایی فناوری اطلاعات را کاهش داده است؟
۶۳ درصد کارشناسان موافق این جمله هستند.
۲۰ درصد نظری در این باره نداشته اند.
۱۷ درصد مخالف این جمله هستند.
۶- آیا استفاده از محاسبات ابری، هزینه‌های زیرساختی سازمان ها را کاهش داده است؟
۷۳ درصد کارشناسان موافق این جمله هستند.
۱۷ درصد نظری در این باره نداشته اند.
۱۰ درصد مخالف این جمله هستند.
۷- آیا استفاده از محاسبات ابری، فشارهای ناشی از تأمین منابع درون‌سازمانی بر روی سازمان را کاهش داده است؟
۷۴ درصد کارشناسان موافق این جمله هستند.
۱۸ درصد نظری در این باره نداشته اند.
۸ درصد مخالف این جمله هستند.
۸- امروزه ۵۰ میلیون سرور فیزیکی در سراسر جهان وجود دارد. ۲درصد از این تعداد سرور در اختیار گوگل است (یعنی ۱ میلیون سرور).
۹- امروزه ۳۳ هزار و ۱۵۷ مؤسسه‌ی خدمات مرکز داده در جهان وجود دارد که ایالات متحده‌ی امریکا به تنهایی ۲۳ هزار و ۶۵۶ عدد از این مراکز داده را در خود جای داده است. کانادا، انگلستان، آلمان و هلند با اختلاف فاحشی نسبت به آمریکا در جایگاه‌های بعدی این آمار هستند.
۱۰- پیش بینی می‌شود در سال ۲۰۱۳ حداقل ۱۰ درصد از این سرورهای فیزیکی فروخته شده بر روی سرورهای مجازی (Virtual Machine) مستقر باشند به طوری که بر روی هر سرور فیزیکی ۱۰ ماشین مجازی مشغول به کار است. این به معنای شکل گیری سالانه ۸۰ تا ۱۰۰ میلیون سرور مجازی در سراسر دنیاست.
۱۱- در سال ۲۰۱۳ تقریبا ۶۰ درصد از بار کاری سرورها به صورت مجازی خوهد بود.
۱۲- مالکین دنیای محاسبات ابری در حال حاضر ۴ شرکت (بدون در نظر گرفتن رشد ناگهانی آمازون در ۴ ماهه‌ی ابتدایی سال ۲۰۱۱) گوگل، مایکروسافت، زوهو (Zoho) و رک‌اسپیس (RackSpace) با در اختیار داشتن بازاری با مجموع ارزش بیش از ۱۰۰ میلیارد پوند هستند.
۱۳- این ۱۰۰ میلیارد پوند، درآمد ناشی از خدماتی به شرح زیر است:
۵۶ درصد از مردم از سرویس‌های پست الکترونیکی همانند Gmail، Ymail و Hotmail استفاده می‌کنند.
۳۴ درصد از مردم از خدمات ذخیره‌سازی تصاویر در وب استفاده می‌کنند.
۲۹ درصد از مردم از اپلیکیشن‌های آنلاین مثل Google Docs و Photoshop Express استفاده می‌کنند.
۷ درصد از مردم از سرویس‌های ذخیره‌سازی ویدئو در وب استفاده می‌کنند.
۵ درصد از مردم برای ذخیره‌سازی فایل های رایانه‌ای خود در وب پول پرداخت می‌کنند.
۵ درصد از مردم برای پشتیبان‌گیری از اطلاعات هارد دیسک خود بر روی وب‌سایت‌های اینترنتی هزینه می‌کنند.
یک نمونه قیمت در سیستم عامل Azure از شرکت مایکروسافت
هزینه های مربوط به پردازش:
معادل یک کامپیوتر شخصی ۱۲۰۰ ریال / ساعت
معادل یک سرویس دهنده ۳۰۰۰ ریال / ساعت
معادل یک ابر رایانه ۱۰۰۰۰ ریال / ساعت
هزینه های مربوط به فضای ذخیره سازی:
هر گیگابایت اجاره نگهداری ماهانه ۱۵۰۰ ریال
هر ده هزار تراکنش ذخیره سازی ۱۰ ریال
هزینه دریافت هر گیگابایت داده از ابر:
بسته به کشوری که در آن قرار دارید، از ۱۵۰ تا ۲۰۰ ریال
این سیستم عامل به نام Windows Azure درحال حاضر توسط شرکت مایکروسافت با قیمت هایی شبیه آنچه در بالا آمد، ارائه می گـردد. بـرای اجرای این سیستم عامل به رایانه ای با چند گیگابایت حافظه RAM و چندصد گیگابایت دیسک سخت نیاز نبوده و یک دستگاه نسبتاً قـدیـمی هم می تواند برای آن به کار رود.
بعد از اینکه با محاسبات ابری آشنا شدیم و آن را از نگاه آماری بررسی کردیم و به این نتیجه رسیدیم که محاسبات ابری می توانند نقش عمده ای در جهان امروزی داشته باشند به معرفی سیستم عامل های ابری که از پلتفرم های مربوط به محاسبات ابری هستند، می پردازیم. در ابتدا تعریفی از سیستم عامل.
تعریف سیستم عامل
سیستم عامل، نرم افزاری است که مدیریت منابع رایانه را به عهده گرفته، اجرای برنامه های کاربردی را کنترل نموده و به صورت رابط کاربر و سخت افزار عمل می نماید. سیستم عامل خدماتی به برنامه های کاربردی و کاربر ارائه می دهد. برنامه های کاربردی یا از طریق واسط های برنامه نویسی کاربردی و یا از طریق فراخوانی های سیستم به این خدمات دسترسی دارند. با فراخوانی این واسط ها، برنامه های کاربردی می توانند سرویسی را از سیستم عامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرم افزار مثل واسط خط فرمان یا یک واسط گرافیکی کاربر یا سیستم عامل تعامل کنند. برای کامپیوترهای دستی و رومیزی، عموماً واسط کاربری به عنوان بخشی از سیستم عامل در نظر گرفته می شود. در سیستم های بزرگ و چند کاربره مثل یونیکس، واسط کاربری معمولاً به عنوان یک برنامه کاربردی که خارج از سیستم عامل اجرا می شود پیاده سازی می شود (استالینگ، 1381).
انواع سیستم عامل
سیستم عامل تک پردازنده
این نوع سیستم عامل ها، سیستم عامل های نسل چهارم (نسل فعلی) هستند که بر روی یک پردازنده اجرا می شوند. از قبیل XP98، Me و Vista که بیشتر محصول شرکت مایکروسافت می باشند.
سیستم عامل شبکه ای
این نوع سیستم عامل ها، از کنترل کننده های واسط شبکه و نرم افزارهای سطح پایین به عنوان گرداننده استفاده می کنند و برنامه هایی برای ورود به سیستم های راه دور و دسترسی به فایل از راه دور در آنها به کار گرفته می شود[13].
سیستم عامل توزیع شده
این سیستم عامل ها خود را مانند سیستم عامل های تک پردازنده به کاربر معرفی می کنند اما در عمل از چندین پردازنده استفاده می کنند. این نوع سیستم عامل در یک محیط شبکه ای اجرا می شود و در حقیقت در این نوع سیستم جواب نهایی یک برنامه، پس از اجرا در کامپیوترهای مختلف به سیستم اصلی بر می گردد. سرعت پردازش در این نوع سیستم بسیار بالاست.
سیستم عامل بی درنگ
از این نوع سیستم عامل برای کنترل ماشین آلات صنعتی، تجهیزات علمی و سیستم های صنعتی استفاده می گردد. یک سیستم عامل بی درنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامه های کاربردی مختص کاربران می باشد. یکی از بخش های مهم این نوع سیستم های عامل، مدیریت منابع موجود کامپیوتری به گونه ای که عملیات خاصی در زمانی که بایستی اجرا شوند، اجرا گردند و مهم تر از همه اینکه مدیریت منابع به گونه ای است که این عملیات خاص در هر بار وقوع، مقدار زمان یکسانی بگیرد[1].
سیستم های توزیعی
در منابع مختلف تعاریف مختلفی برای سیستم های توزیعی ارائه شده است. اما هیچ یک نه کامل است و نه با دیگری همخوانی دارد. در این تحقیق تعریفی از این نوع سیستم ها که در کتاب سیستم های توزیعی آقای تانن باوم به آن اشاره شده را بیان می کنیم:
سیستم توزیعی در واقع مجموعه ای از کامپیوترهای مستقل است که برای کاربر خود مانند یک سیستم منسجم و منفرد به نظر می رسد[2].
از این تعریف می توان به این نتیجه رسید که اولاً یک سیستم توزیعی از کامپیوترهای خود مختار تشکیل شده است و ثانیاً کاربران تصور می کنند که با یک سیستم منفرد کار می کنند. پس با تعریفی که ذکر شد می توان یک سیستم توزیعی را اینگونه نیز تعریف کرد:
هر سیستمی که بر روی مجموعه ای از ماشین ها که دارای حافظه اشتراکی نیستند، اجرا شده و برای کاربران به گونه ای اجرا شود که گویا بر روی یک کامپیوتر می باشند ، یک سیستم توزیع شده است. اما نکته ای که در اینجا باید به آن توجه داشت این است که در سیستم های توزیعی تفاوت بین کامپیوترهای مختلف و نحوه ارتباط آنها با یکدیگر باید تا حدود زیادی از دید کاربران پنهان بماند. سیستم های توزیعی برای اینکه بتوانند از کامپیوترها و شبکه های ناهمگن پشتیبانی کنند و همگی سیستم ها را در غالب یک سیستم منفرد نمایش دهند، به عنوان یک لایه میانی به نام میان افزار بین یک لایه سطح بالایی شامل کاربران و برنامه های کاربردی و یک لایه پائینی شامل سیستم های عامل در نظر گرفته می شوند[12]. در شکل 2-6 لایه سیستم توزیعی یا به عبارتی میان افزاری را مشاهده می کنید که بین سیستم های عامل 1 تا 4 و چهار کامپیوتر شبکه که شامل سه برنامه کاربردی هستند قرار گرفته است. این لایه باعث می شود که تفاوت بین سخت افزار و سیستم های عامل از دید برنامه های کاربردی وکاربران مخفی بماند.

شکل 2-6 : سیستم توزیعی که به عنوان یک لایه میانی یا میان افزار بین برنامه های کاربردی و سیستم عامل ها قرار گرفته است[12].
و اما مواردی که باید در طراحی سیستم های توزیع شده در نظر گرفت و به نوعی اهداف سیستم های توزیع شده می باشند عبارتند از شفافیت، انعطاف پذیری، قابلیت اطمینان، کارآیی خوب و قابلیت گسترش.
شفافیت
یکی از اهداف مهم سیستم های توزیع شده این است که فرآیندها و منابعی که بین ماشین های متعدد توزیع شده اند، باید از دید کاربران مخفی بماند[17]. به سیستم توزیعی که از دید کاربران و برنامه های کاربردی خود به صورت یک سیستم کامپیوتری منفرد جلوه می کند را اصطلاحاً شفاف می گویند.
شفافیت انواع مختلفی دارد و در مورد هر یک طبق تعریفی که در کتاب سیستم های توزیعی آقای تانن باوم آمده توضیح می دهیم، شفافیت دسترسی که در مورد مخفی سازی تفاوت های ارائه داده و نحوه دسترسی به منابع به وسیله کاربران می باشد. شفافیت مکان یعنی اینکه کاربران نتوانند محل استقرار فیزیکی منبع در سیستم را شناسایی کنند. شفافیت مهاجرت یعنی اینکه بتوان منابع آنها را بدون تاثیرگذاری بر نحوه دسترسی به آنها انتقال داد. شفافیت مکان یابی مجدد هنگامی است که بتوان منابع را در حین دسترسی به آنها و بدون کوچکترین اطلاعی به کاربر یا برنامه کاربردی مجددا مکان یابی کرد. شفافیت تکثیر به مخفی سازی وجود چندین نسخه تکثیری از یک منبع می پردازد. شفافیت هم روندی زمانی است که مثلا دو کاربر مستقل فایل های خود را روی یک خدمتگذار فایل واحد ذخیره کرده و یا به جداول واحدی در پایگاه داده مشترک دسترسی داشته باشند. در این موارد هیچ یک از کاربران نباید کوچکترین اطلاعی از واقعیت استفاده کاربر دیگر از آن منبع داشته باشد. شفافیت خرابی به این معناست که کاربر متوجه خرابی و عملکرد نادرست یک منبع نشده و سپس سیستم اقدام به ترمیم آن خرابی کند[2].
قابلیت اطمینان
در دسترس بودن یک فاکتور مهم مرتبط با این سیستم ها است. طراحی نباید به گونه ای باشد که نیاز به اجرای همزمان کامپوننت های اساسی باشد. افزونگی بیشتر داده ها باعث افزایش در دسترس بودن شده اما ناسازگاری را بیشتر می کند. قدرت تحمل خطا باعث پوشاندن خطاهای ایجاد شده توسط کاربر می شود.
کارآیی
بدون کارآیی مناسب کلیه موارد استفاده نرم افزار بی فایده می باشد. اندازه گیری کارایی در سیستم های توزیع شده کار آسانی نیست. برای رسیدن به کارایی باید توازنی خاص در تعداد پیغام ها و اندازه کامپوننت های توزیع شده بر قرار باشد.
مقیاس پذیری
امروزه اتصال جهانی از طریق اینترنت، مانند امکان ارسال یک کارت پستال برای هر کسی در هر گوشه ای از جهان تبدیل به امر عادی شده است. به همین دلیل، مقیاس پذیری یکی از مهمترین اهداف طراحی برای سازندگان سیستم های توزیعی محسوب می شود. مقیاس پذیری یک سیستم را می توان حداقل در سه بعد مختلف اندازه گیری کرد(نیومان، 1994). اولاً، یک سیستم می تواند با توجه به اندازه خود مقیاس پذیر باشد. به این معنا که بتوان به راحتی کاربران و منابع دیگری را به سیستم اضافه نمود. ثانیاً، یک سیستم مقیاس پذیر جغرافیایی سیستمی است که ممکن است کاربران و منابع آن در فاصله های دوری از هم قرار گرفته باشند. ثالثا، یک سیستم ممکن است از نظر مدیریت اجرایی مقیاس پذیر باشد، به این معنا که حتی اگر سازمان هایی با مدیریت اجرایی مستقل را به هم پیوند دهد. باز به راحتی قابل مدیریت باشد. متاسفانه، اغلب سیستم هایی که از یک یا چند مقیاس پذیر هستند، با افزایش مقیاس پذیری سیستم، تاحدودی با افت عملکرد مواجه می شوند.
سیستم عامل های توزیعی
محیط های کامپیوتری تحت شبکه( شبکه های کامپیوتری) امروزه بسیار رایج شده اند و این محیط ها شامل مجموعه ای از ایستگاه های کاری و سرویس دهنده ها می باشند. واضح است که مدیریت این منابع کار آسانی نخواهد بود. استفاده از مجموعه ای از کامپیوترها که از طریق شبکه به هم متصل شده اند مشکلات بسیاری را در بر دارد، از جمله مشکلات تقسیم منابع و یکپارچه سازی محیط( که این مشکلات در سیستم های متمرکز وجود ندارد). علاوه بر این برای افزایش میزان کارآیی، توزیع بایستی از دید کاربر پنهان بماند. راه حل مناسب این است که سیستم عاملی طراحی شود که توزیعی بودن سخت افزار را در تمامی سطوح در نظر داشته باشد. به این صورت که سیستم عامل مجموعه را به صورت یک سیستم متمرکز نشان دهد و در کنار آن از مزیت های سیستم توزیعی استفاده کند. در ساختار سیستم عامل های توزیعی از دو الگوی مبتنی بر پیام و مبتنی بر شیء استفاده می شود[11].
الگوی مبتنی بر پیام
در این الگو سیستم عامل یک هسته مبتنی بر پیام در هر گره قرار می دهد و برای برقراری ارتباطات داخل فرآیند از ارسال پیام استفاده می کند. هسته از هر دو نوع ارتباط محلی( ارتباط بین فرآیندهای داخل هر گره) و غیر محلی(ارتباط از راه دور) پشتیبانی می کند. در یک سیستم عامل سنتی همانند یونیکس دسترسی به سرویس های سیستمی از طریق فراخوانی متدها صورت می پذیرفت در حالی که در سیستم عامل های مبتنی بر پیام، درخواست ها از طریق ارسال پیام مطرح می شوند. با این قرار می توان نتیجه گرفت سیستم عامل های مبتنی بر پیام ساخت جذاب تر و بهتری دارند، زیرا سیاست های موجود در فرآیند های سرویس دهنده از مکانیزم پیاده سازی هسته جدا می باشد.
الگوی مبتنی بر شیء
در این الگو سیستم عامل سرویس ها و منابع را به موجودیت هایی به نام شیء کپسوله می کند. این اشیاء همانند نمونه هایی از داده های انتزاعی می باشند و از ماژول های منحصر به فردی تشکیل شده اند. همچنین این ماژول ها نیز متشکل از متدهای به خصوصی می باشند که اینترفیس(واسط) ماژول را توصیف می کنند. عملکرد در این الگو این چنین است که کاربران درخواست سرویس را از طریق احضار شیء مورد نظر مطرح می سازند. این مکانیزم بسیار شبیه به فراخوانی پروسه ها در سیستم های معمولی می باشد. قابل ذکر است که اشیاء عملیات را کپسوله می کنند.
رویکرد سیستم عامل های ابری
سیستم عامل ابری نیز نوعی از سیستم عامل های توزیعی می باشند که مجموعه ای از گره ها را با هم یکپارچه می سازد و یک سیستم متمرکز تولید می کند. سیستم عامل ابری شامل سرویس دهنده های محاسباتی، سرویس دهنده های داده ای و ایستگاه های کاربر می باشد.
سرویس دهنده های محاسباتی: ماشینی است برای استفاده به عنوان موتور محاسباتی.
سرویس دهنده های داده ای: ماشینی است برای استفاده به عنوان مخرن داده های بلند مدت.
ایستگاه های کاربری: ماشینی است که محیطی برای توسعه دادن برنامه های کاربردی فراهم می کند و واسطی بین کاربر و سرویس دهنده های محاسباتی یا داده ای می باشد[3].
ساختار سیستم عامل های ابری بر پایه مدل شیء- نخ می باشد. این مدل از مدل برنامه نویسی معروف شیء گرا اقتباس شده است که نرم افزار سیستم را بر پایه مجموعه ای از اشیاء می سازد. هر شیء شامل تعدادی داده و عملیات بر روی آن داده ها می باشد. عملیات بر روی داده ها را متد می نامند و نوع شیء نیز با کلاس مشخص می گردد. هر کلاس می تواند صفر یا یک و یا چند نمونه داشته باشد ولی یک نمونه تنها از یک کلاس ناشی می شود. اشیاء به پیام ها پاسخ می دهند و ارسال پیام به یک شیء می تواند به داده های درون شیء دسترسی داشته باشد و آن ها را بروز رسانی کند و یا به اشیاء دیگر درون سیستم پیام ارسال کند. اشیاء ابر کپسولی از کد و داده می باشند که در یک فضای آدرس مجازی قرار دارند. هر شیء نمونه ای از یک کلاس است و هر کلاس ماژولی از برنامه. اشیاء ابرها به احضارها پاسخ می دهند و احضارها ( با استفاده از نخ ها) برای اجرای متد درون شیء ابر استفاده می گردند. ابرها از اشیاء برای تضمین انتزاع مخازن و از نخ ها برای اجرای متد درون شیء استفاده می نمایند. این موجب می شود که محاسبات و مخازن داده ای از یکدیگر تفکیک شوند. از دیگر ویژگی های مدل شیء- نخ می توان به این موارد اشاره کرد:
عملیات ورودی و خروجی
به اشتراک گذاری داده ها
ارتباط درون فرآیندها
ذخیره سازی بلند مدت داده ها در حافظه
الگوی سیستم عامل ابری
الگوی مورد استفاده در سیستم عامل های ابری همان الگوی شیء- نخ می باشد که در این بخش به توضیح اجزا و نحوه عملکرد این الگو می پردازیم.
شیء ابری
شیء ابری یک فضای آدرس مجازی پایدار می باشد. برخلاف فضاهای آدرس در سیستم های معمولی، محتویات اشیاء برای مدت طولانی باقی می مانند. به همین دلیل در هنگام خرابی سیستم از بین نمی روند، مگر اینکه عمدا از سیستم حذف شوند. همانطور که از تعریف برمی آید اشیاء ابری سنگین وزن هستند، به همین علت است که این اشیاء بهترین انتخاب برای مخازن داده ای و اجرای برنامه های بزرگ به حساب می آیند. داده های درون شیء فقط توسط خود شیء قابل دسترسی و بروزرسانی می باشند، زیرا محتویات یک فضای آدرس مجازی از بیرون از فضای مجازی قابل دست یابی نمی باشند.
یک شیء ابری شامل موارد زیر است:
کد مخصوص به خود ( متدهای اختصاصی )
داده های پایدار
حافظه ای زودگذر و سبک ( برای تخصیص حافظه موقت )
حافظه ای پایدار و دائمی ( برای تخصیص دادن حافظه ای که بخشی از ساختمان داده پایدار شیء می باشد )
داده با احضار متدها وارد شیء می شود و با پایان احضار از شیء خارج می گردد (شکل شماره 2-7 ). اشیاء ابری دارای یک نام در سطح سیستم می باشند که آن ها را از یکدیگر منحصر به فرد می سازد. این اشیاء درون سرویس دهنده های محاسباتی قابل استفاده می باشند که این کارآیی موجب می شود توزیعی بودن داده ها از دید کاربر مخفی باقی بماند.
4375151651000
شکل شماره 2-7 : ساختمان یک شیء ابری[5]
نخ
یک نخ عبارت است از مسیری اجرایی که وارد اشیاء شده و متدهای درون آن ها را اجرا می کند و محدود به یک فضای آدرس نمی شود. نخ ها توسط کاربران و یا برنامه های کاربردی ساخته می شوند. نخ ها با اجرای متدی از یک شیء می توانند به داده های درون شیء دسترسی یابند، آن ها را بروزرسانی کنند و یا اینکه متدهایی از شیء دیگر را احضار کنند. در این حالت، نخ به طور موقت شیء فعلی را رها می کند، از آن خارج شده و وارد شیء فراخوانی شده می گردد و متد مورد نظر آن را اجرا می کند، پس از پایان اجرای متد به شیء قبلی باز می گردد و نتیجه را برمی گرداند. نخ ها پس از پایان عملیات مورد نظر از بین می روند. علاوه بر این چند نخ می توانند به طور هم زمان وارد یک شیء شوند و به طور موازی به اجرا درآیند که در این صورت نخ ها محتویات فضای آدرس شیء را بین یکدیگر به اشتراک می گذارند. شکل شماره 2-8 نحوه اجرای نخ ها در اشیاء را نشان می دهد.

شکل شماره 2-8 : اجرای نخ ها در شیء ابری[5]
تعامل میان شیء و نخ ( مدل شیء- نخ )
ساختار یک سیستم عامل ابری متشکل از اشیاء و نخ ها می باشد. مکانیزم ذخیره سازی داده ها در سیستم عامل های ابری با سایر سیستم عامل های معمول تفاوت دارد. در سیستم عامل های معمولی از فایل ها برای ذخیره سازی داده ها استفاده می شود ولی در سیستم عامل های ابری اشیاء نقش مخازن داده را ایفا می کنند. برخی از سیستم ها برای برقراری ارتباط با داده های مشترک و هماهنگ سازی محاسبات از الگوی ارسال پیام استفاده می کنند. ابرها با قراردادن داده ها درون اشیاء آن ها را به اشتراک می گذارند. متدها در صورت نیاز به دسترسی داده ها شیء مورد نظر را که داده درون آن قرار دارد احضار می کنند. در یک سیستم مبتنی بر پیام، کاربر می بایست درجه هم زمانی را در هنگام نوشتن برنامه تعیین کند و برنامه را به تعدادی پروسه سیستمی بشکند. مدل شیء-نخ این احتیاجات را حذف می کند، به این صورت که در زمان اجرا درجه هم زمانی با ایجاد نخ های موازی مشخص می شود.
به طور خلاصه می توان گفت:
سیستم عامل ابری از فضاهای آدرس نام گذاری شده به نام شیء تشکیل شده است و این اشیاء قادرند:
مخازن داده پایدار فراهم کنند.
متدهایی برای دست یابی و دست کاری داده ها ایجاد نمایند.
داده ها را به اشتراک بگذارند.
هم زمانی را کنترل نمایند.
جریان کنترلی توسط نخ هایی که اشیاء را احضار می کنند انجام می شود.
جریان داده ای با ارسال پارامتر انجام می شود.
برنامه نویسی در مدل شیء- نخ در ابرها
مفاهیم مورد استفاده برنامه نویس در مدل شیء – نخ عبارتند از:
کلاس: ماژول های سیستم
نمونه: شیء ای از کلاس می باشد که می تواند توسط نخ ها احضار شود.
بنابراین برای نوشتن برنامه کاربردی در ابرها، برنامه نویس یک یا چند کلاس را تعریف می کند و داده ها و کدهای برنامه را درون این کلاس ها قرار می دهد. برنامه برای اجرا شدن نخی ایجاد می کند که متد اصلی شیء اجرا کننده برنامه را احضار می کند. اشیاء دارای نام هایی می باشند که برنامه نویس هنگام تعریف شیء برای آن ها مشخص کرده است و این نام ها بعدا به نام سیستمی شیء تبدیل می شوند.
معماری سیستم عامل ابری
دراین بخش معماری سیستم عامل های ابری را مورد بررسی قرار می دهیم. شکل شماره 2-9 مدلی منطقی از معماری یک سیستم عامل ابری را نمایش می دهد. یک پروسه ابری به مجموعه ای از اشیاء ابری اطلاق می شود که با هم یک برنامه کاربردی را تشکیل می دهند.

شکل شماره 2-9 : مدل منطقی از معماری یک سیستم عامل ابری[6]
فضای هسته ابر به تعدادی از پروسه های ابری که عملیات کنترل دسترسی ها، تخصیص حافظه و محاسبات مقدار منابع لازم را انجام می دهند گفته می شود. مابقی پروسه ها که مربوط به فضای هسته ابر نیستند، فضای کاربر را تشکیل می دهند. پروسه های ابری فضای کاربر که مستقیما توسط خود کاربر اجرا می شوند برنامه های کاربران نامیده می شوند و کتابخانه های ابری، پروسه های ابری می باشند که توسط برنامه های کاربران مورد استفاده قرار می گیرند. این برنامه ها از طریق مجموعه ای از واسط های استاندارد به نام فراخوانی های سیستمی ابر با کتابخانه ها و پروسه های هسته ارتباط برقرار می کنند. تمامی اشیاء موجود در فضای کاربر برای گرفتن دستورات از سیستم عامل از یک دستگیره فراخوانی استفاده می کنند، بدین معنی که برای مدیریت شدن از طریق یک واسط تحت شبکه قابل دسترسی می باشند که ارتباط میان اشیاء و آدرس آن ها در شبکه توسط پروسه های ابری «مدیریت پروژه» و «مدیریت ماشین مجازی» موجود در فضای هسته انجام می گیرند. اطلاعات نهایی نیز توسط پروسه ابری «کتابخانه نامگذاری» در دسترس قرار می گیرد. قابلیت دسترسی تمامی عملیات مدیریتی را پروسه ابری «اعتباردهی» مورد بررسی قرار می دهد و عملیات محاسبه میزان منابع مورد نیاز در هر لحظه نیز بر عهده پروسه ابری «اندازه گیری» می باشد. البته قابل ذکر است که مفروضات لحاظ شده در شکل شماره 2-4 تعداد اندکی از محدودیت های موجود در ابرها را در نظر گرفته است و کامل نمی باشد[6].
برخی سیستم عامل های ابری موجود(سیستم عامل های مبتنی بر وب)
سیستم عامل های وب روش بسیار مناسبی برای دستیابی به همه داده های شما در همه جای دنیا هستند (مشروط بر اینکه کامپیوتری با یک اتصال به اینترنت و یک مرورگر وب وجود داشته باشد). چنانچه تعدادی کامپیوتر داشته باشید، اما بخواهید همه اطلاعات را در یک جا نگهدارید و از برنامه های کاربردی مورد علاقه خود نیز استفاده کنید، این سیستم عامل ها بسیار سودمند هستند. اکنون در این مرحله ممکن است این سوال مطرح شود که چرا سیستم عامل وب؟. اساساً، یک سیستم عامل وب چیزی شبیه یک سیستم عامل روی اینترنت است. سیستم عامل وب، دسکتاپ مجازی شماست که به هیچ مکان فیزیکی متصل نیست و این امکان را به شما می دهد که در هر جایی از دنیا با کمک یک مرورگر به آن دستیابی داشته باشید. اجازه دهید تا از بین سیستم عامل های وبی که وجود دارد به بیان ویژگی های چند مورد از آنها بپردازیم.
سیستم عامل iCloud
سیستم عامل iCloud، مزایای بسیار زیادی دارد، علاوه بر اینکه هر برنامه ای که نیاز داریم در آن موجود است، 50 گیگابایت فضای ذخیره سازی آنلاین، به اشتراک گذاری آسان و ویژگی های افزایش برنامه های کاربردی را دارد. این سیستم عامل دارای ویژگی هایی مانند زیر است:

user8253

2-14-1 شفافیت 33
2-14-2 قابلیت اطمینان 34
2-14-3 کارایی 34
2-14-4 مقیاس پذیری 35
2-15 سیستم عامل های توزیعی 35
2-15-1 الگوی مبتنی برپیام 36
2-15-2 الگوی مبتنی بر شیء 36
2-16 رویکرد سیستم عامل های ابری 36
2-17 الگوی سیستم عامل ابری 37
2-17-1 شیء ابری 37
2-17-2 نخ 39
2-17-3 تعامل میان شیء و نخ 39
2-18 برنامه نویسی در مدل شیء – نخ در ابرها 40
2-19 معماری سیستم عامل ابری 41
2-20 برخی سیستم عامل های ابری موجود 42
2-20-1 سیستم عامل iCloud 43
2-20-2 سیستم عامل GlideOS 44
2-20-3 سیستم عامل G.ho.st 45
2-20-4 سیستم عامل JoliCloud 46
2-20-5 سیستم عامل eyeOS 47
2-20-6 گوگل کروم، سیستم عامل اینترنت 47
2-21 مزایا و معایب سیستم عامل های ابری مبتنی بر وب 51
2-22 مطالعه مروری بر سایر پژوهش های مرتبط مهم 51
فصل سوم: روش تحقیق 54
3-1 چالش های رایج در زمینه سیستم عامل های ابری 55
3-1-1 مقیاس پذیری 55
3-1-1-1 تغییر مقیاس افقی و عمودی 56
3-1-1-2 مقیاس پذیری پایگاه داده ها 57
3-1-1-3 طراحی برای مقیاس پذیری 58
3-1-1-4 مقیاس پذیری در محاسبات ابری 59
3-1-1-5 تغییر مقیاس قوی و ضعیف 59
3-1-2 کشش تقاضا 60
3-1-3 خطاها 60
3-1-4 گره خوردن کاربران به یک سرویس دهنده خاص 61
3-1-5 وابستگی شدید بین مولفه ها 61
3-1-6 فقدان پشتیبانی چند مستاجری 62
3-1-7 فقدان پشتیبانی از SLA 62
3-1-7-1 تعریف توصیف SLA 62
3-1-7-2 فقدان SLA در ابرهای موجود 64
3-1-8 فقدان انعطاف پذیری لازم در واسط کاربری 64
3-2 ارائه راهکارها 64
فصل چهارم: محاسبات و یافته های تحقیق 68
4-1 پیاده سازی و شبیه سازی 69
4-2 شرایط محیط شبیه سازی 71
4-3 مقیاس پذیری با اندازه شبکه 72
فصل پنجم: نتیجه گیری و پیشنهادات 74
5-1 خلاصه و نتیجه گیری 75
5-2 مزایای تحقیق انجام شده 75
5-3 معایب تحقیق انجام شده 75
5-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 : سیستم عامل iCloud 43
شکل 2-11: تصویری از سیستم عامل GlideOS 44
شکل 2-12 : تصویری از سیستم عامل G.ho.st 45
شکل 2-13 : تصویری از سیستم عامل JoliCloud 46
شکل 2-14 : تصویری از سیستم عامل eyeOS 47
شکل 3-1 : بروز رسانی موقعیت گره در روش RNP 66
شکل 3-2 : درخواست موقعیت و ارسال بسته در روش RNP 66
شکل 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
فصل اول
مقدمه و کلیات تحقیق
مقدمه
در دهه های آینده ما شاهد رشد چشمگیر تکنولوژی در زمینه پردازنده ها خواهیم بود. ابرها که از پردازنده های چند هسته ای تشکیل شده اند منابع محاسباتی بی نظیری فراهم می سازند. باید توجه داشت که با افزایش وسعت دامنه های اطلاعاتی و محاسباتی نیاز به منابع این چنینی بیش از پیش احساس خواهد شد و با افزایش حجم منابع نیاز به مدیریتی کارا و شفاف الزام پیدا می کند. در اینجا ممکن است این سوال مطرح شود که: ابرها چه امکاناتی برای کاربران فراهم می آورند؟ ابرها در انجام محاسبات عظیم نقش مهمی را ایفا می کنند و به کاربران این امکان را می دهند که برنامه های خود را بر روی بستری قابل اطمینان و بسیار کارآمد که از اجزای صنعتی استاندارد تشکیل شده است اجرا کنند. همچنین ابرها مدل محاسباتی بسیار ساده ای را فراهم می آورند به این صورت که کاربران تنها خروجی مورد نظر را با کمترین هزینه برای کاربر تامین می نمایند. ابرها در کنار اینکه فرصت های فراوانی را برای کاربران فراهم می آورند، چالش هایی را نیز برای مدیریت این منابع پدید می آورند. برای مثال از این چالش ها می توان به نحوه هماهنگ ساختن میزان منابع با درخواست ها و یا وسعت زیاد منابع تحت مدیریت سیستم عامل اشاره نمود. در این تحقیق با چالش های موجود در این زمینه بیشتر آشنا می شویم و پیرامون هر کدام به تفضیل صحبت خواهیم کرد.
سوالات اصلی تحقیق
سیستم عامل های ابری که نوعی از سیستم عامل های توزیعی می باشند، می توانند مجموعه ای از گره ها را با هم یکپارچه ساخته و یک سیستم متمرکز را تولید کنند. با توجه به اینکه ابرها فرصت های فراوانی را برای کاربران فراهم می آورند، چالش هایی را نیز برای مدیریت این منابع پدید می آورند. به همین منظور سوالات زیر مطرح می شود:
چالش های موجود در سیستم عامل های ابری کدامند؟
آیا تا به حال این چالش ها مورد بررسی قرار گرفته اند؟
این چالش ها تا چه اندازه اهمیت دارند؟
آیا راهکاری برای این چالش ها در نظر گرفته شده است؟
هدف از اجراء
در دهه های اخیر شاهد رشد چشمگیر تکنولوژی در زمینه پردازنده ها بوده ایم و این تکنولوژی همچنان با سرعت قابل توجهی در حال پیشرفت است. دلیل این امر افزایش منابع اطلاعاتی و محاسباتی است که این نیاز را به وجود آورده است که با ساخت چنین تکنولوژی هایی به ویژه پردازنده های چند هسته ای، مدیریتی کارا و شفاف بر این اطلاعات حجیم و محاسبات عظیم صورت گیرد. مدیریت اطلاعات و محاسبات این چنینی در محیط هاو سیستم های توزیعی به مراتب آسان تر از محیط های دیگر است. یکی از سیستم های توزیعی ابرها می باشند که می توانند نقش مهمی را در محاسبات عظیم و ذخیره سازی اطلاعات حجیم، ایفا کنند. بنابراین لزوم بررسی چالش ها و موانع در این قبیل سیستم ها و رفع آنها می تواند گامی موثر در افزایش سرعت و کارایی این گونه سیستم ها داشته باشد.
توجیه ضرورت انجام طرح
همزمان با رشد چشمگیر تکنولوژی پردازنده ها، ابرها نیز گسترش روز افزونی پیدا کرده اند. به همین ترتیب تعداد کامپیوترهای افزوده شده به زیر ساخت ابرها نیز افزایش پیدا کرده است که البته قابل ذکر است این افزایش با توجه به تقاضای روزافزون کاربران برای میزبانی این منابع می باشد. منابع ابری برای کاربران نامحدود بوده و کاربران تنها محدودیت مالی برای خرید این منابع را پیش رو دارند. پس می توان نتیجه گرفت که یکی از مهم ترین چالش ها در این زمینه مقیاس پذیر بودن سیستم عامل های ابری می باشد. در ابرها پارامترهایی همچون تقاضا، حجم کار و منابع در دسترس در طول زمان پیوسته در حال تغییر می باشند. برای مثال هنگامی که کاربر محاسبات سنگین و پیچیده ای درخواست می کند منابع مورد نیاز وی افزایش پیدا می کند و در پایان منابع از کاربر تحویل گرفته می شوند، قابل ذکر است این افزایش و کاهش در منابع ممکن است از دید کاربر پنهان بماند. باید به این نکته توجه داشت که تقاضا هیچ گاه ثابت نمی ماند و میزان منابع مورد نیاز در گستره زیادی در حال تغییر می باشد. از طرفی برنامه های کاربردی مبتنی بر ابر معمولا منابع را بین کاربران و دیگر برنامه های کاربردی به اشتراک می گذارند. اگرچه برنامه کاربردی هر کاربر در لفاف مجازی جداگانه ای قرار گرفته است ولی کیفیت سرویسی که برای برنامه فراهم می شود را تحت تاثیر قرار می دهد. علاوه براین برنامه نویسی در این سیستم عامل نیز کاری مشکل و توام با خطا است. با توجه به مشکلات برنامه نویسی چند نخی و چند فرآیندی که در این نوع سیستم عامل ها استفاده می شود امکان وجود خطا افزایش می یابد. همچنین به دلیل کمبود ابزارهای اشکال زدایی و آنالیز سیستم های بزرگ فهمیدن خطاها سخت و برطرف سازی آنها چالش برانگیز است. برخی چالش های ذکر شده در این زمینه موجب به وجود آمدن مسیر تحقیقاتی گوناگون شده است که از آن جمله می توان به موارد زیر اشاره کرد که البته هر کدام از این مسیرها به بخش های دیگری می شکنند که زمینه جدیدی را فراهم می کند.
استفاده از اشیاء پایدار: یکی از زمینه های اصلی مدل ابری فراهم آوردن مخازن داده پایدار و قابل اشتراک می باشد. بنابراین محور اصلی برخی از تحقیقات در زمینه سیستم عامل های ابری، پشتیبانی کارامد و استفاده بهینه از حافظه پایدار می باشد. علاوه بر این عرصه دیگر تحت کنترل درآوردن منابع توزیع شده می باشد که منجر به افزایش سرعت برنامه های اجرایی بر روی ابرها می گردد.
اطمینان و امنیت در سیستم عامل های ابری: یکی از اهداف مهم این سیستم ها فراهم آوردن محیط محاسباتی امن برای کاربران است. این چالش از دو بخش اصلی تشکیل می شود: حفاظت از داده ها هنگام خرابی سیستم و تضمین انجام ادامه محاسبه از جایی که محاسبه قطع گردید. می توان به این نتیجه رسید یکی دیگر از زمینه های تحقیق پیرامون سیستم عامل های ابری افزایش اطمینان این سیستم عامل ها می باشد.
تحمل خطا: افزایش تحمل خطا زمینه ی تحقیقات دیگر حول این موضوع می باشد.
تعاریف واژه ها
سیستم های توزیعی
سیستم توزیعی در واقع مجموعه ای از کامپیوترهای مستقل است که برای کاربر خود مانند یک سیستم منسجم و منفرد به نظر می رسد[2].
سیستم عامل توزیع شده
این سیستم عامل ها خود را مانند سیستم عامل های تک پردازنده به کاربر معرفی می کنند اما در عمل از چندین پردازنده استفاده می کنند. این نوع سیستم عامل در یک محیط شبکه ای اجرا می شود و در حقیقت در این نوع سیستم جواب نهایی یک برنامه، پس از اجرا در کامپیوترهای مختلف به سیستم اصلی بر می گردد. سرعت پردازش در این نوع سیستم بسیار بالاست.
سیستم عامل ابری
سیستم عامل ابری نیز نوعی از سیستم عامل های توزیعی می باشند که مجموعه ای از گره ها را با هم یکپارچه می سازد و یک سیستم متمرکز تولید می کند.

فصل دوم
ادبیات و پیشینه تحقیق
در این فصل سعی شده قبل از آشنایی کامل با سیستم عامل های ابری در مورد محاسبات ابری، انواع سیستم عامل ها، سیستم های توزیعی و سیستم عامل های توزیعی آشنا شویم، سپس با برخی سیستم عامل های ابری موجود آشنا شده و در نهایت به تحقیقاتی که در این زمینه صورت گرفته می پردازیم.
محاسبات ابری
محاسبات ابری مدل محاسباتی بر پایه شبکه‌های بزرگ کامپیوتری مانند اینترنت است که الگویی تازه برای عرضه، مصرف و تحویل سرویس‌های فناوری اطلاعات (شامل سخت افزار، نرم افزار، اطلاعات، و سایر منابع اشتراکی محاسباتی) با به کارگیری اینترنت ارائه می‌کند. سیر تکاملی محاسبات به گونه ای است که می توان آن را پس از آب، برق، گاز و ‌تلفن به عنوان عنصر اساسی پنجم فرض نمود. در چنین حالتی، کاربران سعی می کنند بر اساس نیازهای خود و بدون توجه به اینکه یک سرویس در کجا قرار دارد و یا چگونه تحویل داده می شود، به آن دسترسی یابند. نمونه های متنوعی از سیستم های محاسباتی ارائه شده است که سعی دارند چنین خدماتی را به کاربران ارئه دهند. برخی از آنها عبارتند از: محاسبات کلاستری، محاسبات توری و اخیراً محاسبات ابری[15]. محاسبات ابری ساختاری شبیه یک توده ابر دارد که به واسطه آن کاربران می توانند به برنامه های کاربردی از هر جایی از دنیا دسترسی داشته باشند. بنابراین، محاسبات ابری می تواند با کمک ماشین های مجازی شبکه شده، بعنوان یک روش جدید برای ایجاد پویای نسل جدید مراکز داده مورد توجه قرار گیرد. بدین ترتیب، دنیای محاسبات به سرعت به سمت توسعه نرم‌افزارهایی پیش می رود که به جای اجرا بر روی کامپیوترهای منفرد، به عنوان یک سرویس در دسترس میلیون ها مصرف کننده قرار می گیرند.

شکل 2-1: تصویری از محاسبات ابری[33]
معرفی محاسبات ابری
دنیای فناوری اطلاعات و اینترنت که امروزه تبدیل به جزئی حیاتی از زندگی بشر شده، روز به روز در حال گسترش است. همسو با آن، نیازهای اعضای جوامع مانند امنیت اطلاعات، پردازش سریع، دسترسی پویا و آنی، قدرت تمرکز روی پروژه های سازمانی به جای اتلاف وقت برای نگه داری سرورها و از همه مهم تر، صرفه جویی در هزینه ها اهمیت زیادی یافته است. راه حلی که امروزه در عرصه فناوری برای چنین مشکلاتی پیشنهاد می شود تکنولوژی ای است که این روزها با نام محاسبات ابری شناخته می شود.
محاسبات ابری نمونه ای است که منابع بیرونی همه نیازهای IT را از قبیل ذخیره سازی، محاسبه و نرم افزارهایی مثل Office و ERP را در اینترنت تهیه می کند. محاسبات ابری همچنین، رشد و پیشرفت کاربرد های وسیع و تست برای شرکت های IT کوچکی را اجازه می دهد که نمی توانند سرمایه های بزرگ در سازمان داشته باشند. مهم ترین مزیت پیشنهاد شده توسط ابر در مفهوم اقتصاد مقیاس است و آن هنگامی است که هزاران کاربر، تسهیلات یکسان، هزینه یکسان برای هر کاربر و بهره برداری از سرور به اشتراک می گذارند. برای فعال سازی چنین تسهیلاتی، محاسبات ابری در برگیرنده تکنولوژی ها و مفاهیمی است مثل: مجازی سازی و محاسبات سودمند، پرداخت در ازای میزان استفاده، بدون سرمایه گذاری های کلان، انعطاف پذیری، مقیاس بندی، شرایط تقاضا و منابع بیرونی IT.
محاسبات ابری را ابر نیز می نامند چون یک سرور ابری دارای شکل بندی است که می تواند هر جایی در جهان قرار داشته باشد. ابر، تصویری است انتزاعی از شبکه‌ای عظیم؛ توده‌ای که حجم آن مشخص نیست، نمی‌دانیم از چه میزان منابع پردازشی تشکیل شده. ابعاد زمانی و مکانی یکایک اجزای آن نیز دانسته نیست، نمی‌دانیم سخت‌افزار‌ها و نرم‌افزارها کجای این توده قرار دارند، اما آن‌چه را که عرضه می‌کند، می‌شناسیم. درست مثل برق! شما برای اینکه از وسایل و تجهیزات برقی در خانه یا محل کارتان استفاده کنید لازم نیست یک ژنراتور یا کارخانه برق در خانه خود داشته باشید، بلکه به ازای هزینه مشخصی برق را اجاره می‌کنید. حالا اگر مصارف برقی شما بیشتر و متفاوت‌‌تر باشند مثلاً‌ می‌روید و از خدمات برق صنعتی استفاده می‌کنید. در محاسبات ابری هم شرکت‌ها و سازمان‌ها و افراد دیگر برای نرم‌افزار، سخت‌افزار یا شبکه پولی پرداخت نمی‌کنند، بلکه توان محاسباتی و سرویس‌های نرم‌افزاری مورد نیازشان را خریداری می‌کنند. این ایده در واقع صرفه‌جویی بزرگ و بهره‌وری زیادی در منابع IT را به همراه خواهد داشت. بدین ترتیب کافی است وسیله شما (پی‌سی، موبایل، تلویزیون، حتی یخچال!) یک رابط نرم‌افزاری (مرورگر) برای استفاده از سرویس‌های آنلاین و یک دسترسی به اینترنت داشته باشد،‌ خواهید دید که قادر هستید به راحتی از توان محاسباتی برای انجام کارهای دیجیتالی خود بهره بگیرید.
رشد و پیشرفت محاسبات ابری منجر به چندین تعریف پیشنهادی از خصوصیات آن می شود. برخی از این تعاریف توسط دانشمندان مشهور و سازمان ها ارائه شده است مثل:
الف) Buyya و همکارانش که محاسبات ابر را در مفهوم کاربری است برای کاربر نهایی بدین صورت تعریف می کنند: یک ابر سیستمی محاسباتی توزیع شده بازارگرا است که شامل جمع آوری کامپیوترهای مجازی و ارتباط داخلی هستند که از لحاظ دینامیکی به عنوان یک یا چند منبع محاسباتی متحد بر اساس توافق های سطح سرویس بین مصرف کنندگان و فراهم کنندگان خدمات مذاکره می کنند[14].
ب) موسسه ملی استانداردها و تکنولوژی محاسبات ابری را به صورت زیر تعریف می کند: محاسبه ابری، الگویی است برای اینکه شبکه های مبتنی بر تقاضا به منابع محاسباتی (مثل سرور، شبکه، ذخیره سازی، برنامه های کاربردی و خدمات) طوری دستیابی پیدا کنند که شامل حداقل تلاش مدیریت یا تعامل فراهم کننده سرویس است. این الگوی ابر، قابلیت دستیابی را ارتقا می دهد و شامل پنج تا از ویژگی های ضروری، سه تا از الگوهای سرویس و چهار تا الگوی استقرار است.
ویژگی های ابری شامل انتخاب سرویس مبتنی بر تقاضا، دسترسی وسیع به شبکه، ائتلاف منابع، انعطاف پذیری سریع و سرویس اندازه گیری شده است. الگوهای خدمات در دسترس به صورت نرم افزار به عنوان سرویس(SaaS)، سکو به عنوان سرویس (PaaS) و زیرساخت به عنوان سرویس (IaaS) تقسیم بندی می شوند. الگوی گسترش به ابرهای عمومی، خصوصی، اجتماعی و هیبرید تقسیم بندی می شود.
مشخصه اصلی محاسبات ابری
موسسه ملی استانداردها و فناوری، خصوصیات محاسبات ابری زیر را به صورت زیر تعریف می کند:
سرویس مبتنی بر تقاضا
مشتری می تواند به صورت یک طرفه امکانات و خدمات محاسباتی همچون سرور و فضای ذخیره سازی در شبکه را به هنگام نیاز از هر فراهم کننده ای به صورت خودکار و بدون نیاز به دخالت انسان به دست آورده و از آنها استفاده کند. به عبارت دیگر، برای مدیریت زیرساخت ابر نیازمند استخدام مدیران شبکه یا Admin به صورت تمام وقت نیستیم. بیشتر سرویس های ابر، پورتال های سلف سرویس دارند که به آسانی مدیریت می شوند.
دسترسی وسیع به شبکه
توانمندی های موجود بر روی شبکه، از طریق مکانیزم های استاندارد که استفاده از روش های ناهمگون پلتفرم های کلاینت، مانند تلفن های موبایل، لپ تاپ ها و PDA ها، را ترویج می کنند، قابل دسترسی هستند.
ائتلاف منابع
منابع محاسباتی فراهم کننده جمع آوری شده اند تا با به کارگیری مدل چند مشتری به چندین مشتری خدمت رسانی کنند. این کار به وسیله منابع فیزیکی یا مجازی مختلف که به شکلی پویا و بنابر درخواست مشتری واگذار و پس گرفته می شوند، صورت می گیرد. در اینجا حالتی از عدم وابستگی به مکان وجود دارد که در آن مشتری معمولاً کنترل یا دانشی درباره محل دقیق منابع فراهم شده ندارد ولی ممکن است در سطوح بالاتر انتزاعی بتواند محل را تعیین کند، مثل: کشور، استان یا مراکز داده. برای نمونه منابع شامل فضای ذخیره سازی، توان پردازشی، حافظه، پهنای باند شبکه و ماشین های مجازی می شود.
انعطاف پذیری سریع
می توان امکانات را به سرعت و با انعطاف، در بعضی موارد به صورت خودکار، به دست آورد تا به سرعت گسترش داده شده( از دید مقیاس) یا درجا آزاد شوند و خیلی سریع به مقیاس کوچکتری دست یابند. از دید مشتری امکاناتی که برای به دست آمدن در دسترس هستند اغلب نامحدود به نظر می آیند و می توانند به هر مقدار و در هر زمان خریداری شوند.
سرویس اندازه گیری شده
سیستم های ابری منابع را خودکار کنترل و بهینه می کنند. این کار با به کارگیری توانایی اندازه گیری در سطحی از تجرید که مناسب گونه آن خدمت ( مثل: فضای ذخیره سازی، توان پردازشی، پهنای باند و شمار کاربران فعال) است انجام می شود. میزان استفاده از منابع می تواند به شکلی شفاف هم برای مشتری و هم برای فراهم کننده زیر نظر گرفته، کنترل شده و گزارش داده شود.
معماری سرویس گرا
معماری مبتنی بر سرویس در واقع یک مجموعه ای از سرویس ها است که با یکدیگر ارتباط برقرار می کنند. حین این ارتباط ممکن است داده هایی را بین یکدیگر پاس کاری کنند و همچنین ترکیب دو یا چند سرویس با هم یک کار انجام دهد. در این جا چند مفهوم اتصال بین سرویس ها مورد نیاز است. برخلاف دهه های گذشته که نرم افزارها قائم به خود و انفرادی بودند، در حال حاضر روند تکامل نرم افزارها به سوی معماری مبتنی بر سرویس می رود. رشد انفجاری تکنولوژی های اینترنت و تعداد کاربران آن موجب شده که فروش نرم افزار جای خودش را به اجاره نرم افزار بدهد. شرکت های بزرگی مانند مایکروسافت، گوگل، سان و حتی آمازون به این سمت می روند که به جای فروش مستقیم نرم افزار به کاربر خدمات نرم افزاری را ارئه دهند. معماری مبتنی بر سرویس معماری نرم افزار یا سیستمی است که امکاناتی چون کامپوننت ها، استفاده مجدد، توسعه پذیری و راحتی را در اختیار ما قرار می دهد. این ویژگی ها برای شرکت هایی که به دنبال کاهش هزینه هستند و به جای فروش به اجاره سرویس های نرم افزار تاکید دارند، الزامی است[9].
مدلهای سرویس
در مدل سرویس، انواع گوناگون ابر بیانگر قالبی هستند که زیر ساختها در آن قرار میگیرد. اکنون محدوده شبکه، مدیریت و مسئولیتها به پایان میرسد و امور مربوط به بخش سرویسدهندهی ابر آغاز میشود. با پیشرفت محاسبات ابری فروشندگان، ابرهایی را با سرویس های مختلف مرتبط به کار خود عرضه مینمایند. با سرویسهایی که عرضه میشوند مجموعه دیگری از تعاریف به نام مدل سرویس در محاسبات ابری مطرح میشود. برای مدلهای سرویس، نامگذاریهای بسیاری صورت گرفته که همگی به فرم زیر تعریف شده اند:
XaaS,or "<something>as a Service"
در حال حاضر در جهان سه نوع سرویس به صورت متداول شناخته می شود:
زیر ساخت به عنوان سرویس
زیر ساخت به عنوان سرویس یا IaaS ماشینهای مجازی، فضای ذخیرهسازی مجازی، زیر ساخت های مجازی و سایر سخت افزارهای کاربردی را به عنوان منابع برای مشتریان فراهم میآورد. سرویسدهندهی IaaS تمامی زیر ساختها را مدیریت مینماید و در حالی که مشتریان مسئول باقی جنبههای استقرار میباشند. از جمله سیستم عامل، برنامهها و تعاملات سیستم با کاربر و غیره.
در جدول 2-1 تعدادی از سرویس دهندگان شناخته شده در حوزه IaaS به همراه توصیفی کوتاه از نوع سرویس ارائه شده آنها آورده شده است.
جدول2-1 : سرویس دهندگان زیر ساخت به عنوان سرویس
سازمان سرویس/ ابزار توصیف لایه-سطح
آمازون Elastic Compute Cloud سرور مجازی IaaS- سرویس منبع مجازی
Dynamo سیستم ذخیره سازی مبتنی بر کلید-ارزش IaaS- سرویس زیرساخت پیشرفته
Simple Storage Service سیستم ذخیره سازی دسته ای IaaS- سرویس زیر ساخت پایه


SimpleDB پایگاه داده به عنوان سرویس IaaS- سرویس زیر ساخت پیشرفته
CloudFront تحویل محتوا IaaS- سرویس زیر ساخت پیشرفته
SQS سرویس صف و زمانبندی IaaS- سرویس زیر ساخت پیشرفته
AppNexus AppNexus Cloud سرور مجازی IaaS- سرویس منبع مجازی
گوگل Google Big Table سیستم توزیع شده برای ذخیره سازی IaaS- سرویس زیر ساخت پیشرفته
Google File Sys-- سیستم- فایل توزیع شده IaaS- سرویس زیر ساخت پایه
اچ پی iLO مدیریت خاموشی سرور IaaS- سرویس منبع فیزیکی
Tycoon سیستم مدیریت منابع محاسباتی در کلاسترها IaaS- سرویس منبع مجازی
Joyent Accelerator سرور مجازی IaaS- سرویس منبع مجازی
Connector سرور مجازی از قبل تنظیم شده IaaS- سرویس زیر ساخت پیشرفته
BingoDisk دیسک ذخیره سازی IaaS- سرویس زیر ساخت پایه
Bluelock Bluelock Virtual Cloud Computing سرور مجازی IaaS- سرویس منبع مجازی
Bluelock Virtual Recovery بازیابی مصیبت و شکست IaaS- سرویس زیر ساخت پیشرفته
Emulab Emulab Network Testbed بستر آزمایش شبکه IaaS- سرویس منبع فیزیکی
ENKI ENKI Virtual Private Data Centers منابع دیتا سنتر مجازی بنابر تقاضا IaaS- سرویس منبع مجازی
EU Resevoir Project Open Nebula موتور مجازی زیرساخت(متن باز) IaaS- سرویس منبع مجازی
FlexiScale FlexiScale Cloud Computing سرور مجازی IaaS- سرویس منبع مجازی
GoGrid Cloud Hosting سرور مجازی IaaS- سرویس منبع مجازی
Cloud Storage فضای ذخیره سازی IaaS- سرویس زیر ساخت پایه
Nirvanix Nirvanix Storage Delivery Network دیسک ذخیره سازی IaaS- سرویس زیر ساخت پیشرفته
OpenFlow OpenFlow شبیه سازی شبکه IaaS- سرویس زیر ساخت پیشرفته
RackSpace Masso Cloud Sites سرور مجازی از پیش تنظیم شده IaaS- سرویس زیر ساخت
Masso Cloud Storage دیسک ذخیره سازی IaaS- سرویس زیر ساخت پایه
Masso Cloud Severs سرور مجازی IaaS- سرویس منبع مجازی
Skytap Skytap Virtual Lab محیط آزمایشگاه مجازی فناوری اطلاعات IaaS- سرویس زیر ساخت
Terremark Infinistructure سرور مجازی IaaS- سرویس منبع مجازی
UCSB Eucalyptus نسخه متن باز EC2 آمازون IaaS- سرویس منبع مجازی
10gen Mongo DB پایگاه داده برای ذخیره سازی ابری IaaS- سرویس زیر ساخت پیشرفته
Babble Application Server سرور برنامه های تحت وب برای استقرار ابری IaaS- سرویس زیر ساخت پیشرفته
سکو به عنوان سرویس
سکو به عنوان سرویس یاPaaS ، ماشینهای مجازی، سیستمهای عامل، برنامهها، سرویسها، چارچوبهای توسعه، تراکنشها و ساختارهای کنترلی را فراهم میآورد. مشتری میتواند برنامههای خود را بر روی زیر ساخت ابر قرار دهد و یا اینکه از برنامههایی استفاده کند که با استفاده از زبانها و ابزارها نوشته شدهاند و توسط سرویس دهندهیPaaS پشتیبانی می شوند. سرویسدهنده زیرساخت ابر، سیستمهای عامل و نرمافزارهای فعالسازی را فراهم میآورد. مشتری مسئول نصب و مدیریت برنامههایی که قرار داده است، میباشد.
در جدول 2-2 تعدادی از سرویس دهندگان شناخته شده در حوزه PaaS به همراه توصیفی کوتاه از نوع سرویس ارائه شده آنها آورده شده است.
جدول2-2 : سرویس دهندگان سکو به عنوان سرویس
سازمان سرویس/ابزار توصیف لایه-سطح
Akamai EdgePlatform تحویل برنامه کاربردی، محتوا و سایت PaaS
مایکروسافت Azure محیط توسعه و اجرا برای برنامه های کاربردی مایکروسافت PaaS
Live Mesh بستری برای به هنگام سازی، اشتراک و دسترسی به دامنه وسیعی از دستگاه هایی با سیستم عامل مایکروسافت PaaS
فیس بوک Facebook Platform بستر آزمایش شبکه PaaS
گوگل App Engine محیط اجرایی قابل گسترش برای برنامه های تحت وب نوشته شده در زبان پایتون PaaS
NetSuite SuiteFlex جعبه ابزاری برای سفارشی سازی برنامه های کاربردی کسب و کار آنلاین همین شرکت PaaS
Salesforce Force.com ساخت و تحویل برنامه های کاربردی در کلاس کسب و کار PaaS
Sun Caroline بستر قابل گسترش افقی برای توسعه و استقرار سرویس های تحت وب PaaS
Zoho Zoho Creator جعبه ابزاری برای ساخت و تحویل برنامه های کاربردی در کلاس کسب و کار و به شکل بنابر بر تقاضا PaaS
نرمافزار به عنوان سرویس
نرمافزار به عنوان سرویس یا SaaS یک محیط کاملاً عملیاتی برای مدیریت برنامهها و واسط کاربری است. در مدل SaaS برنامه از طریق یک برنامه واسط (معمولاً مرورگر) به مشتری سرویس میدهد و مسئولیت مشتری با ورود داده شروع و با مدیریت داده و تعاملات کاربری پایان مییابد. همه چیز مربوط به برنامه تا زیر ساخت در حوزهی مسئولیت فروشنده است.
در جدول 2-3 تعدادی از سرویس دهندگان شناخته شده در حوزه SaaS به همراه توصیفی کوتاه از نوع سرویس ارائه شده آنها آورده شده است.
جدول2-3 : سرویس دهندگان نرم افزار به عنوان سرویس
سازمان سرویس/ابزار توصیف لایه-سطح
گوگل Google Docs بسته نرم افزاری آفیس آنلاین SaaS
Google Maps API رابط برنامه نویس سرویس نقشه گوگل به توسعه دهندگان این امکان را می دهد تا نقشه گوگل را در سایت های خود جاسازی کنند SaaS- سرویس ساده
OpenID Foundation OpenSocial یک رابط برنامه نویسی کاربردی مشترک برای برنامه های شبکه های اجتماعی SaaS-سرویس مرکب
OpenID یک سیستم توزیع شده که به کاربران این اجازه را می دهد تا تنها با یک شناسه دیجیتال بتوانند از سایتها مختلف استفاده نمایند. SaaS- سرویس ساده
مایکروسافت Office Live بسته نرم افزاری آفیس آنلاین SaaS
Salesforce Salesforce.com بسته نرم افزاری مدیریت روابط مشتریان SaaS
این سه مدل متفاوت سرویس به نام مدل SPI محاسبات ابری شناخته میشوند. گرچه تاکنون از مدلهای سرویس بسیاری نام برده شد، staas فضای ذخیرهسازی به عنوان سرویس؛ idaas هویت به عنوان سرویس؛ cmaas توافق به عنوان سرویس؛ و غیره، با این وجود سرویس های SPI تمامی باقی سرویسهای ممکن را نیز در بر میگیرد. IaaS دارای حداقل سطوح عاملیت مجتمع شده و پایین ترین سطوح مجتمع سازی میباشد و SaaS دارای بیشترینها است. یک PaaS یا سکو به عنوان سرویس خصوصیات مجتمع سازی، میانافزارها و سایر سرویسهای هماهنگساز را به مدل IaaS یا زیر ساخت به عنوان سرویس میافزاید. هنگامی که که یک فروشندهی محاسبات ابری، نرمافزاری را بر روی ابر عرضه میکند، با استفاده از برنامه و پرداخت فوری، یک عملیات SaaS انجام می گیرد. با SaaS مشتری برنامه را در صورت نیاز استفاده میکند و مسئول نصب، نگهداری و تعمیر برنامه نیست.
مدل‌های پیاده‌سازی
در تعریف NIST (انستیتوی ملی استاندارد ها و فناوری ها) مدل های استقرار ابر به چهار صورت زیر است:

شکل 2-2 : الگوی استقرار ابر[29]
ابر عمومی
ابر عمومی یا ابر خارجی توصیف کننده محاسبات ابری در معنای اصلی و سنتی آن است. سرویس‌ها به صورت دینامیک و از طریق اینترنت و در واحدهای کوچک از یک عرضه کننده شخص ثالث تدارک داده می‌شوند و عرضه کننده منابع را به صورت اشتراکی به کاربران اجاره می‌دهد و بر اساس مدل محاسبات همگانی و مشابه صنعت برق و تلفن برای کاربران صورتحساب می‌فرستد. این ابر برای استفاده همگانی تعبیه شده و جایگزین یک گروه صنعتی بزرگ که مالک آن یک سازمان فروشنده ی سرویس های ابری می باشد.
ابر گروهی
ابر گروهی در جایی به وجود می‌آید که چندین سازمان نیازهای یکسان دارند و به دنبال این هستند که با به اشتراک گذاردن زیرساخت از مزایای محاسبات ابری بهره‌مند گردند. به دلیل اینکه هزینه‌ها بین کاربران کمتری نسبت به ابرهای عمومی تقسیم می‌شود، این گزینه گران‌تر از ابر عمومی است اما میزان بیشتری از محرمانگی، امنیت و سازگاری با سیاست‌ها را به همراه می‌آورد.
ابر ترکیبی
یک ابر ترکیبی متشکل از چندین ارائه دهنده داخلی و یا خارجی، گزینه مناسبی برای بیشتر مؤسسات تجاری می‌باشد. با ترکیب چند سرویس ابر کاربران این امکان را می‌یابند که انتقال به ابر عمومی را با دوری از مسائلی چون سازگاری با استانداردهای شورای استانداردهای امنیت داده‌های کارت های پرداخت آسان تر سازند.
ابر خصوصی
ابر خصوصی یک زیر ساخت محاسبات ابری است که توسط یک سازمان برای استفاده داخلی آن سازمان به وجود آمده‌است. عامل اصلی که ابرهای خصوصی را از ابرهای عمومی تجاری جدا می‌سازد، محل و شیوه نگهداری از سخت افزار زیرساختی ابر است. ابر خصوصی امکان کنترل بیشتر بر روی تمام سطوح پیاده سازی ابر (مانند سخت افزار، شبکه، سیستم عامل، نرم افزار) را فراهم می‌سازد. مزیت دیگر ابرهای خصوصی امنیت بیشتری است که ناشی از قرارگیری تجهیزات در درون مرزهای سازمان و عدم ارتباط با دنیای خارج ناشی می‌شود. اما بهره گیری از ابرهای خصوصی مشکلات ایجاد و نگهداری را به همراه دارد. یک راه حل میانه برای دوری از مشکلات ابرهای خصوصی و در عین حال بهره مند شدن از مزایای ابرهای خصوصی، استفاده از ابر خصوصی مجازی است. به عنوان نمونه می‌توان از ابر خصوصی مجازی آمازون نام برد.
مشخصات محاسبات ابری
مشخصات کلیدی توسط ابر در شکل 2-3 نشان داده شده است و در قسمت زیر مورد بحث و بررسی قرار گرفته است:

شکل 2-3 : مشخصات محاسبات ابری[28]
مجازی شده : منابع (یعنی محاسبه کردن، ذخیره سازی و ظرفیت شبکه) در ابرها تصور می شوند و این روش در سطوح مختلف مثل vm و سطوح بسته بدست می آید[9]. اصلی ترین آن در سطح ماشین مجازی است که در آن برنامه های کاربردی متفاوت در سیستم های عملکردی با همان ماشین فیزیکی اجرا می شوند. سطح سکو باعث نقشه برداری برنامه های کاربردی در یک یا چند منبع می شود که توسط فراهم آورندگان زیرساخت ابری پیشنهاد شده است.
سرویس گرا: ابر با استفاده از الگوی زیرساخت سرویس گرا به کار می رود که در آن همه اجزا در شبکه به عنوان یک سرویس در دسترس هستند، چه نرم افزار باشد، چه سکو یا هر زیرساختی که به عنوان سرویس پیشنهاد می کنند.
انعطاف پذیری : منابع (یعنی محاسبه کردن، ذخیره سازی و ظرفیت شبکه) برای برنامه های کاربردی ابر موردنیاز هستند که می توانند به صورت پویا و مختلف مقرر می شوند. یعنی افزایش یا کاهش در زمان اجرا بستگی به نیازهای QOS کاربر دارد. فراهم کنندگان ابر اصلی مثل آمازون حتی سرویس هایی را برای توسعه عمودی و توسعه افقی در براساس نیازهای برنامه های کاربردی میزبان دارد.
پویا و توزیع شده: گرچه منابع ابر، مجازی شده اند، آنها اغلب در عملکردهای بالا یا سرویس های ابر قابل اطمینان توزیع می شوند. این منابع انعطاف پذیر و می توانند بر طبق نیازهای مشتری سازگاری یابند مثل: نرم افزار، پیکربندی شبکه و غیره[10].
اشتراک (اقتصاد مقیاسی): زیرساخت ابرها هر جایی است که منابع های متعدد از خود کاربر بر طبق نیازهای برنامه کاربردی خود استفاده می کنند، مشترک می شوند. این الگوی اشتراکی به عنوان الگوی اجاره چندگانه نیز می باشد. به طور کلی، کاربران نه دارای کنترل مستقیم بر منابع فیزیکی هستند و نه از تخصیص منابع و اینکه با چه کسانی مشترک شده اند، خبر دارند.
بازارگرا (پرداخت - در ازای - میزان استفاده): در محاسبات ابری، کاربران براساس پرداخت - در ازای - میزان استفاده برای سرویس ها پرداخت می کنند. الگوی قیمت گذاری می تواند با توجه به انتظار برنامه های کاربردی در کیفیت سرویس متفاوت باشد. فراهم آورندگان ابر IaaS مثل منابع قیمت ها در آمازون از الگوهایی بازاری مثل الگوهای قیمت گذاری کالاها یا زمان پرداخت آنها استفاده می کنند. یک الگوی قیمت گذاری توسط Thualsiram و Allenofor برای منابع مجهز پیشنهاد شده است که می تواند به عنوان اساسی برای منابع ابر استفاده شوند. این خصوصیت، بعد بهره برداری از محاسبات ابری را بیان می کند. یعنی، سرویس های ابری به عنوان سرویس های سنجیده شده هستند که در آن فراهم کنندگان دارای الگوی محاسباتی برای اندازه گیری کاربردها از سرویس ها هستند که به توسعه برنامه های قیمت گذاری متفاوت کمک می کند. الگوی محاسباتی به کنترل و بهینه سازی از منابع کمک می کند.[16]
خودمختار : برای فراهم کردن سرویس های قابل اطمینان در حد بالا، ابرها رفتاری مستقل را با مدیریت خودشان در دگردیسی عملکرد یا شکست نشان می دهند.
مزایای محاسبات ابری
 
کارمان را با بیان مزایای متعددی که توسط محاسبات ابری ارائه می شود آغاز می کنیم. وقتی شما به سمت استفاده از ابر می روید، به چیزهای زیر دست پیدا می کنید:
 
هزینه های کامپیوتری کمتر: شما برای اجرای برنامه های کاربردی مبتنی بر وب، نیازی به استفاده از یک کامپیوتر قدرتمند و گران قیمت ندارید. از آن جائی که برنامه های کاربردی بر روی ابر اجرا می شوند، نه بر روی یک کامپیوتر رو میزی. کامپیوتر رومیزی شما نیازی به توان پردازشی زیاد یا فضای دیسک سخت که نرم افزارهای دسکتاپ محتاج آن هستند ندارد. وقتی شما یک برنامه کاربردی تحت وب را اجرا می کنید، کامپیوتر شما می تواند ارزان تر، با یک دیسک سخت کوچک تر، با حافظه کم تر و دارای پردازنده کارآمدتر باشد. در واقع، کامپیوتر شما در این سناریو حتی نیازی به یک درایو CD یا DVD هم ندارد زیرا هیچ نوع برنامه نرم افزاری بار نمی شود و هیچ سندی نیاز به ذخیره شدن بر روی کامپیوتر ندارد.
کارآیی توسعه یافته:  با وجود برنامه های کم تری که منابع کامپیوترشما، خصوصاً حافظه آن را به خود اختصاص می دهند، شما شاهد کارآیی بهتر کامپیوتر خود هستید. به عبارت دیگر کامپیوترهای یک سیستم محاسبات ابری، سریع تر بوت و راه اندازی می شوند زیرا آن ها دارای فرآیندها و برنامه های کم تری هستند که به حافظه بار می شود.
 
هزینه های نرم افزاری کم تر:  به جای خرید برنامه های نرم افزاری گران قیمت برای هر کامپیوتر، شما می توانید تمام نیازهای خود را به صورت رایگان برطرف کنید. بله درست است، اغلب برنامه های کامپیوتری محاسبات ابری که امروزه عرضه می شوند، نظیر Google Docs، کاملاً رایگان هستند. این، بسیار بهتر از پرداخت 200 دلار یا بیشتر برای خرید برنامه office مایکروسافت است که این موضوع به تنهایی می تواند یک دلیل قوی برای سوئیچ کردن به محاسبات ابری محسوب شود.
 
ارتقای نرم افزاری سریع و دائم:  یکی دیگر از مزایای مربوط به نرم افزار در  محاسبات ابری این است که شما دیگر نیازی به بروز کردن نرم افزارها و یا اجبار به استفاده از نرم افزارهای قدیمی، به دلیل هزینه زیاد ارتقای آن ها ندارید. وقتی برنامه های کاربردی، مبتنی بر وب باشند، ارتقاها به صورت اتوماتیک رخ می دهد و دفعه بعد که شما به ابر وارد شوید به نرم افزار اعمال می شوند. وقتی شما به یک برنامه کاربردی مبتنی بر وب دسترسی پیدا می کنید، بدون نیاز به پرداخت پول برای دانلود یا ارتقای نرم افزار، از آخرین نسخه آن بهره مند می شوید.
 
سازگاری بیشتر فرمت اسناد:  نیازی نیست که شما نگران مسئله سازگاری اسنادی که بر روی کامپیوتر خود ایجاد می کنید با سایر سیستم عامل ها یا سایر برنامه های کاربردی دیگران باشید. در دنیایی که اسناد 2007Word نمی تواند بر روی کامپیوتری که 2003Word را اجرا می کند باز شوند، تمام اسنادی که با استفاده از برنامه های کاربردی مبتنی بر وب ایجاد می شوند می تواند توسط سایر کاربرانی که به آن برنامه کاربردی دسترسی دارند خوانده شوند. وقتی همه کاربران اسناد و برنامه های کاربردی خود را بر روی ابر به اشتراک می گذارند، هیچ نوع ناسازگاری بین فرمت ها به وجود نخواهد آمد.
 
ظرفیت نامحدود ذخیره سازی:  محاسبات ابری ظرفیت نامحدودی برای ذخیره سازی در اختیار شما قرار می دهد. دیسک سخت 200 گیگابایتی فعلی کامپیوتر رومیزی شما در مقایسه با صدها پتابایت (یک میلیون گیگابایت) که از طریق ابر در دسترس شما قرار می گیرد اصلا چیزی به حساب نمی آید. شما هر چیزی را که نیاز به ذخیره کردن آن داشته باشید می توانید ذخیره کنید.
 
قابلیت اطمینان بیشتر به داده:  برخلاف محاسبات دسکتاپ، که در آن یک دیسک سخت می تواند تصادم کند و تمام داده های ارزشمند شما را از بین ببرد، کامپیوتری که بر روی ابر تصادم کند نمی تواند بر داده های شما تاثیر بگذارد. این همچنین بدان معنا است که اگر کامپیوترهای شخصی شما نیز تصادم کنند، تمام داده ها هنوز هم آن جا و برروی ابر وجود دارند و کماکان در دسترس شما هستند. در دنیایی که تنها تعداد اندکی از کاربران به طور مرتب و منظم از داده های مهم و حساس خود نسخه پشتیبان تهیه می کنند، محاسبات ابری حرف آخر در زمینه محافظت از داده ها به شمار می رود.
 
دسترسی جهانی به اسناد:  آیا تا به حال کارهای مهم خود را از محیط کار به منزل برده اید؟ و یا تاکنون به همراه بردن یک یا چند فایل مهم را فراموش کرده اید؟ این موضوع در محاسبات ابری رخ نمی دهد زیرا شما اسناد و فایل های مهم  خود را همراه خود حمل نمی کنید. در عوض، این اسناد و فایل ها بر روی ابر می مانند و شما می توانید از هرجایی که یک کامپیوتر و اتصال اینترنتی وجود داشته باشد به آن دسترسی پیدا کنید. شما در هر کجا که باشید به سرعت می توانید به اسناد خود دسترسی پیدا کنید و به همین دلیل، نیازی به همراه داشتن آن ها نخواهید داشت.
 
در اختیار داشتن آخرین و جدیدترین نسخه:  یکی دیگر از مزایای مرتبط با اسناد در محاسبات ابری این است که وقتی شما یک سند را در خانه ویرایش می کنید، این نسخه ویرایش شده همان چیزی است که وقتی در محل کار خود به آن دسترسی می یابید مشاهده می کنید. ابر همواره، آخرین نسخه از اسناد شما را میزبانی می کند و تا وقتی شما به اینترنت و ابر متصل باشید، هیچ گاه در معرض خطر استفاده از یک نسخه تاریخ گذشته نخواهید بود.
همکاری گروهی ساده تر:  به اشتراک گذاشتن اسناد، شما را مستقیماً به همکاری بر روی اسناد رهنمون می کند. برای بسیاری از کاربران، این یکی از مهم ترین مزایای استفاده از محاسبات ابری محسوب می شود زیرا چندین کاربر به طور همزمان می توانند برروی اسناد و پروژه ها کار کنند، به دلیل این که اسناد بر روی ابر میزبانی می شوند، نه بر روی کامپیوترهای منفرد، همه چیزی که شما نیاز دارید یک کامپیوتر با قابلیت دسترسی به اینترنت است.
 
مستقل از سخت افزار:  در نهایت، در این جا به آخرین و بهترین مزیت محاسبات ابری اشاره می کنیم. شما دیگر مجبور نیستید به یک شبکه یا یک کامپیوتر خاص محدود باشید. کافی است کامپیوتر خود را تغییر دهید تا ببینید برنامه های کاربردی و اسناد شما کماکان و به همان شکل قبلی، بر روی ابر در اختیار شما هستند. حتی اگر از ابزار پرتابل نیز استفاده کنید، باز هم اسناد به همان شکل در اختیار شما هستند. دیگر نیازی به خرید یک نسخه خاص از یک برنامه برای یک وسیله خاص، یا ذخیره کردن اسناد با یک فرمت مبتنی بر یک ابزار ویژه ندارید. فرقی نمی کند که شما از چه نوع سخت افزاری استفاده می کنید زیرا اسناد و برنامه های کاربردی شما در همه حال به یک شکل هستند.
محاسبات ابری که در اواخر سال 2007 پا به عرصه ظهور گذاشت، هم اکنون به دلیل توانایی اش در ارائه زیرساخت فن آوری پویا و بسیار منعطف، محیط های محاسباتی تضمین شده از نظر کیفیت و همچنین سرویس های نرم افزاری قابل پیکربندی به موضوع داغ مبدل شده است. در گزارش گوگل Trends و همانطور که در شکل 2-4 مشاهده می کنید، محاسبات ابری که از تکنولوژی مجازی سازی بهره می برد، محاسبات گریدی را پشت سر گذاشته است.

شکل2-4 : تمایل به سمت محاسبات ابری[35]
پروژه های متعددی در حوزه صنعت و دانشگاه بر روی محاسبات ابری آغاز شده است وشرکت های بسیار بزرگی با این موضوع درگیر شده اند و این نشان از توجه عمومی به سمت این پدیده نوین است.
نقاط ضعف محاسبات ابری
چند دلیل وجود دارد که ممکن است با استناد به آن ها شما نخواهید از محاسبات ابری استفاده کنید. در این جا به ریسک های مرتبط با استناد از محاسبات ابری اشاره می کنیم:
نیاز به اتصال دائمی به اینترنت دارد: در صورتی که شما نتوانید به اینترنت متصل شوید، محاسبات ابری غیر ممکن خواهد بود. از آن جائی که شما باید برای ارتباط با برنامه های کاربردی و اسناد خود به اینترنت متصل باشید، اگر یک ارتباط اینترنتی نداشته باشید نمی توانید به هیچ چیزی، حتی اسناد خودتان دسترسی پیدا کنید. نبود یک ارتباط اینترنتی، به معنای نبود کار است. وقتی شما آفلاین هستید، محاسبات ابری کار نمی کند.
با اتصال های اینترنتی کم سرعت کار نمی کند: به همان شکلی که در بالا اشاره شد، یک ارتباط اینترنتی کم سرعت نظیر نمونه ای که در سرویس های Dial-up دیده می شود، در بهترین حالت، استفاده از محاسبات ابری را با دردسرهای فوق العاده ای همراه می کند و اغلب اوقات، استفاده از آن را غیرممکن می سازد. برنامه های کاربردی تحت وب و همچنین اسنادی که بر روی ابر ذخیره شده اند برای دانلود شدن به پهنای باند بسیار زیادی نیاز دارند. اگر شما از یک اینترنت Dial-up استفاده می کنید، اعمال تغییر در یک سند یا رفتن از یک صفحه به صفحه دیگر همان سند ممکن است برای همیشه به طول بینجامد. و البته در مورد بار شدن یک سرویس غنی از امکانات حرفی نمی زنیم. به عبارت دیگر، محاسبات ابری برای افرادی که از اینترنت باند پهن استفاده نمی کنند، نیست.
می تواند کند باشد: حتی در یک ارتباط اینترنتی سریع نیز، برنامه های کاربردی تحت وب می توانند گاهی اوقات کندتر از دسترسی به همان برنامه نرم افزاری از طریق یک کامپیوتر رومیزی باشند. تمام جنبه های یک برنامه، از جمله اینترفیس و سند فعلی، باید بین کامپیوتر یا کامپیوترهای موجود بر روی ابر مبادله شود. اگر در آن لحظه، سرورهای ابر در معرض تهیه نسخه پشتیبان باشند یا اگر اینترنت یک روز کند را پشت سر بگذارد، شما نمی توانید به همان دسترسی سریعی که در یک برنامه دسک تاپ وجود دارد، برسید.
ویژگی ها ممکن است محدود باشند: این وضعیت در حال تغییر است اما بسیاری از برنامه های کاربردی مبتنی بر وب به اندازه همتای دسک تاپ خود دارای ویژگی ها و امکانات غنی نیستند. به عنوان مثال، شما می توانید کارهای بسیار زیاد با برنامه PowerPoint انجام دهید که امکان انجام همه آن ها توسط برنامه ارائه Google Docs وجود ندارد. اصول این برنامه ها یکسان هستند، اما برنامه کاربردی که بر روی ابر قرار دارد فاقد بسیاری از امکانات پیشرفته PowerPoint است. اگر شما یک کاربر با تجربه و حرفه ای هستید، ممکن است نخواهید از محاسبات ابری استفاده کنید.
داده های ذخیره شده ممکن است از امنیت کافی برخوردار نباشند: با استفاده از محاسبات ابری، تمام داده های شما بر روی ابر ذخیره می شوند. این داده ها تا چه حد ایمن هستند؟ آیا کاربران غیرمجاز می توانند به داده های مهم و محرمانه شما دسترسی پیدا کنند؟ کمپانی محاسبات ابری اظهار می کند که داده ها امن هستند اما هنوز برای اطمینان کامل از این موضوع خیلی زود است. از نظر تئوری، داده های ذخیره شده بر روی ابر ایمن هستند و بین چندین ماشین توزیع شده اند. اما در صورتی که داده های شما مفقود شوند، شما هیچ نسخه پشتیبان فیزیکی یا محلی در اختیار نخواهید داشت (مگر این تمام اسناد ذخیره شده بر روی ابر را بر روی دسک تاپ خود دانلود کنید که معمولاً کاربران کمی چنین کاری می کنند). به سادگی بگویم، اتکا به ابر، شما را در معرض خطر قرار می دهد.
بررسی وضعیت محاسبات ابری در جهان از نگاه آماری
وب سایت cloudehypermarket.com تصویری را منتشر کرده است که اطلاعات آماری جالبی را در مورد محاسبات ابری و اوضاع فعلی آن در جهان به تصویر می‌کشد.
1562101485900
شکل 2-5 : بررسی وضعیت محاسبات ابری در جهان[36]
برخی از مهمترین نکات موجود در شکل عبارتند از: (آمار مربوط به اواخر سال ۲۰۱۰ می‌باشد).
۱- در بخش اول تصویر میزان سرمایه‌گذاری جهانی در حوزه‌ی آی‌تی بررسی شده است. در سال ۲۰۰۸ مجموعاً ۳۶۷ میلیارد پوند صرف هزینه‌های معمول فناوری اطلاعات و ۱۶ میلیارد پوند صرف هزینه‌های مربوط به سرویس‌های محاسبات ابری شده است. پیش‌بینی می‌شود در سال ۲۰۱۲ مجموع سرمایه‌گذاری معمول در حوزه‌ی IT به رقم ۴۵۱ میلیارد پوند و سرمایه‌گذاری در حوزه‌ی محاسبات ابری به ۴۲ میلیارد پوند برسد. با این محاسبات، رشد سالانه‌ی سرمایه‌گذاری در حوزه‌ی محاسبات ابری از سال ۲۰۰۸ تا ۲۰۱۲ به عدد ۲۵ درصد نزدیک است.
۲- مؤسسه‌ی تحقیقات بازار IDC پیش‌بینی می کند که در چند سال آینده، علاوه بر رشد سرمایه گذاری در حوزه‌ی محاسبات ابری، شرکت‌ها نیز حوزه‌های فعالیت خود را تغییر خوهند داد و خدمات خود را به سمت محاسبات ابری سوق خواهند داد. پیش‌بینی می‌شود خدمات محاسبات ابری شرکت‌ها در سال ۲۰۱۲ اینگونه ارائه شود:
اپلیکیشن‌های تجاری: ۵۲ درصد
نرم افزارهای زیرساختی: ۱۸ درصد
خدمات ذخیره‌سازی اطلاعات: ۱۳ درصد
تولید و پیاده‌سازی نرم افزارها و اپلیکیشن‌ها: ۹ درصد
خدمات سرور: ۸ درصد
۳- آیا استفاده از محاسبات ابری فرآیند مدیریت فناوری اطلاعات را آسان تر کرده است؟
۷۰ درصد کارشناسان موافق این جمله هستند.
۲۰ درصد نظری در این باره نداشته اند.
۱۰ درصد مخالف این جمله هستند.
۴- آیا استفاده از محاسبات ابری، بهبودی در تجربه‌ی مصرف کننده‌ی نهایی ایجاد کرده است؟
۷۲ درصد کارشناسان موافق این جمله هستند.
۱۶ درصد نظری در این باره نداشته اند.
۱۲ درصد مخالف این جمله هستند.
۵- آیا استفاده از محاسبات ابری، چالش‌های مربوط به کارایی فناوری اطلاعات را کاهش داده است؟
۶۳ درصد کارشناسان موافق این جمله هستند.
۲۰ درصد نظری در این باره نداشته اند.
۱۷ درصد مخالف این جمله هستند.
۶- آیا استفاده از محاسبات ابری، هزینه‌های زیرساختی سازمان ها را کاهش داده است؟
۷۳ درصد کارشناسان موافق این جمله هستند.
۱۷ درصد نظری در این باره نداشته اند.
۱۰ درصد مخالف این جمله هستند.
۷- آیا استفاده از محاسبات ابری، فشارهای ناشی از تأمین منابع درون‌سازمانی بر روی سازمان را کاهش داده است؟
۷۴ درصد کارشناسان موافق این جمله هستند.
۱۸ درصد نظری در این باره نداشته اند.
۸ درصد مخالف این جمله هستند.
۸- امروزه ۵۰ میلیون سرور فیزیکی در سراسر جهان وجود دارد. ۲درصد از این تعداد سرور در اختیار گوگل است (یعنی ۱ میلیون سرور).
۹- امروزه ۳۳ هزار و ۱۵۷ مؤسسه‌ی خدمات مرکز داده در جهان وجود دارد که ایالات متحده‌ی امریکا به تنهایی ۲۳ هزار و ۶۵۶ عدد از این مراکز داده را در خود جای داده است. کانادا، انگلستان، آلمان و هلند با اختلاف فاحشی نسبت به آمریکا در جایگاه‌های بعدی این آمار هستند.
۱۰- پیش بینی می‌شود در سال ۲۰۱۳ حداقل ۱۰ درصد از این سرورهای فیزیکی فروخته شده بر روی سرورهای مجازی (Virtual Machine) مستقر باشند به طوری که بر روی هر سرور فیزیکی ۱۰ ماشین مجازی مشغول به کار است. این به معنای شکل گیری سالانه ۸۰ تا ۱۰۰ میلیون سرور مجازی در سراسر دنیاست.
۱۱- در سال ۲۰۱۳ تقریبا ۶۰ درصد از بار کاری سرورها به صورت مجازی خوهد بود.
۱۲- مالکین دنیای محاسبات ابری در حال حاضر ۴ شرکت (بدون در نظر گرفتن رشد ناگهانی آمازون در ۴ ماهه‌ی ابتدایی سال ۲۰۱۱) گوگل، مایکروسافت، زوهو (Zoho) و رک‌اسپیس (RackSpace) با در اختیار داشتن بازاری با مجموع ارزش بیش از ۱۰۰ میلیارد پوند هستند.
۱۳- این ۱۰۰ میلیارد پوند، درآمد ناشی از خدماتی به شرح زیر است:
۵۶ درصد از مردم از سرویس‌های پست الکترونیکی همانند Gmail، Ymail و Hotmail استفاده می‌کنند.
۳۴ درصد از مردم از خدمات ذخیره‌سازی تصاویر در وب استفاده می‌کنند.
۲۹ درصد از مردم از اپلیکیشن‌های آنلاین مثل Google Docs و Photoshop Express استفاده می‌کنند.
۷ درصد از مردم از سرویس‌های ذخیره‌سازی ویدئو در وب استفاده می‌کنند.
۵ درصد از مردم برای ذخیره‌سازی فایل های رایانه‌ای خود در وب پول پرداخت می‌کنند.
۵ درصد از مردم برای پشتیبان‌گیری از اطلاعات هارد دیسک خود بر روی وب‌سایت‌های اینترنتی هزینه می‌کنند.
یک نمونه قیمت در سیستم عامل Azure از شرکت مایکروسافت
هزینه های مربوط به پردازش:
معادل یک کامپیوتر شخصی ۱۲۰۰ ریال / ساعت
معادل یک سرویس دهنده ۳۰۰۰ ریال / ساعت
معادل یک ابر رایانه ۱۰۰۰۰ ریال / ساعت
هزینه های مربوط به فضای ذخیره سازی:
هر گیگابایت اجاره نگهداری ماهانه ۱۵۰۰ ریال
هر ده هزار تراکنش ذخیره سازی ۱۰ ریال
هزینه دریافت هر گیگابایت داده از ابر:
بسته به کشوری که در آن قرار دارید، از ۱۵۰ تا ۲۰۰ ریال
این سیستم عامل به نام Windows Azure درحال حاضر توسط شرکت مایکروسافت با قیمت هایی شبیه آنچه در بالا آمد، ارائه می گـردد. بـرای اجرای این سیستم عامل به رایانه ای با چند گیگابایت حافظه RAM و چندصد گیگابایت دیسک سخت نیاز نبوده و یک دستگاه نسبتاً قـدیـمی هم می تواند برای آن به کار رود.
بعد از اینکه با محاسبات ابری آشنا شدیم و آن را از نگاه آماری بررسی کردیم و به این نتیجه رسیدیم که محاسبات ابری می توانند نقش عمده ای در جهان امروزی داشته باشند به معرفی سیستم عامل های ابری که از پلتفرم های مربوط به محاسبات ابری هستند، می پردازیم. در ابتدا تعریفی از سیستم عامل.
تعریف سیستم عامل
سیستم عامل، نرم افزاری است که مدیریت منابع رایانه را به عهده گرفته، اجرای برنامه های کاربردی را کنترل نموده و به صورت رابط کاربر و سخت افزار عمل می نماید. سیستم عامل خدماتی به برنامه های کاربردی و کاربر ارائه می دهد. برنامه های کاربردی یا از طریق واسط های برنامه نویسی کاربردی و یا از طریق فراخوانی های سیستم به این خدمات دسترسی دارند. با فراخوانی این واسط ها، برنامه های کاربردی می توانند سرویسی را از سیستم عامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرم افزار مثل واسط خط فرمان یا یک واسط گرافیکی کاربر یا سیستم عامل تعامل کنند. برای کامپیوترهای دستی و رومیزی، عموماً واسط کاربری به عنوان بخشی از سیستم عامل در نظر گرفته می شود. در سیستم های بزرگ و چند کاربره مثل یونیکس، واسط کاربری معمولاً به عنوان یک برنامه کاربردی که خارج از سیستم عامل اجرا می شود پیاده سازی می شود (استالینگ، 1381).
انواع سیستم عامل
سیستم عامل تک پردازنده
این نوع سیستم عامل ها، سیستم عامل های نسل چهارم (نسل فعلی) هستند که بر روی یک پردازنده اجرا می شوند. از قبیل XP98، Me و Vista که بیشتر محصول شرکت مایکروسافت می باشند.
سیستم عامل شبکه ای
این نوع سیستم عامل ها، از کنترل کننده های واسط شبکه و نرم افزارهای سطح پایین به عنوان گرداننده استفاده می کنند و برنامه هایی برای ورود به سیستم های راه دور و دسترسی به فایل از راه دور در آنها به کار گرفته می شود[13].
سیستم عامل توزیع شده
این سیستم عامل ها خود را مانند سیستم عامل های تک پردازنده به کاربر معرفی می کنند اما در عمل از چندین پردازنده استفاده می کنند. این نوع سیستم عامل در یک محیط شبکه ای اجرا می شود و در حقیقت در این نوع سیستم جواب نهایی یک برنامه، پس از اجرا در کامپیوترهای مختلف به سیستم اصلی بر می گردد. سرعت پردازش در این نوع سیستم بسیار بالاست.
سیستم عامل بی درنگ
از این نوع سیستم عامل برای کنترل ماشین آلات صنعتی، تجهیزات علمی و سیستم های صنعتی استفاده می گردد. یک سیستم عامل بی درنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامه های کاربردی مختص کاربران می باشد. یکی از بخش های مهم این نوع سیستم های عامل، مدیریت منابع موجود کامپیوتری به گونه ای که عملیات خاصی در زمانی که بایستی اجرا شوند، اجرا گردند و مهم تر از همه اینکه مدیریت منابع به گونه ای است که این عملیات خاص در هر بار وقوع، مقدار زمان یکسانی بگیرد[1].
سیستم های توزیعی
در منابع مختلف تعاریف مختلفی برای سیستم های توزیعی ارائه شده است. اما هیچ یک نه کامل است و نه با دیگری همخوانی دارد. در این تحقیق تعریفی از این نوع سیستم ها که در کتاب سیستم های توزیعی آقای تانن باوم به آن اشاره شده را بیان می کنیم:
سیستم توزیعی در واقع مجموعه ای از کامپیوترهای مستقل است که برای کاربر خود مانند یک سیستم منسجم و منفرد به نظر می رسد[2].
از این تعریف می توان به این نتیجه رسید که اولاً یک سیستم توزیعی از کامپیوترهای خود مختار تشکیل شده است و ثانیاً کاربران تصور می کنند که با یک سیستم منفرد کار می کنند. پس با تعریفی که ذکر شد می توان یک سیستم توزیعی را اینگونه نیز تعریف کرد:
هر سیستمی که بر روی مجموعه ای از ماشین ها که دارای حافظه اشتراکی نیستند، اجرا شده و برای کاربران به گونه ای اجرا شود که گویا بر روی یک کامپیوتر می باشند ، یک سیستم توزیع شده است. اما نکته ای که در اینجا باید به آن توجه داشت این است که در سیستم های توزیعی تفاوت بین کامپیوترهای مختلف و نحوه ارتباط آنها با یکدیگر باید تا حدود زیادی از دید کاربران پنهان بماند. سیستم های توزیعی برای اینکه بتوانند از کامپیوترها و شبکه های ناهمگن پشتیبانی کنند و همگی سیستم ها را در غالب یک سیستم منفرد نمایش دهند، به عنوان یک لایه میانی به نام میان افزار بین یک لایه سطح بالایی شامل کاربران و برنامه های کاربردی و یک لایه پائینی شامل سیستم های عامل در نظر گرفته می شوند[12]. در شکل 2-6 لایه سیستم توزیعی یا به عبارتی میان افزاری را مشاهده می کنید که بین سیستم های عامل 1 تا 4 و چهار کامپیوتر شبکه که شامل سه برنامه کاربردی هستند قرار گرفته است. این لایه باعث می شود که تفاوت بین سخت افزار و سیستم های عامل از دید برنامه های کاربردی وکاربران مخفی بماند.

شکل 2-6 : سیستم توزیعی که به عنوان یک لایه میانی یا میان افزار بین برنامه های کاربردی و سیستم عامل ها قرار گرفته است[12].
و اما مواردی که باید در طراحی سیستم های توزیع شده در نظر گرفت و به نوعی اهداف سیستم های توزیع شده می باشند عبارتند از شفافیت، انعطاف پذیری، قابلیت اطمینان، کارآیی خوب و قابلیت گسترش.
شفافیت
یکی از اهداف مهم سیستم های توزیع شده این است که فرآیندها و منابعی که بین ماشین های متعدد توزیع شده اند، باید از دید کاربران مخفی بماند[17]. به سیستم توزیعی که از دید کاربران و برنامه های کاربردی خود به صورت یک سیستم کامپیوتری منفرد جلوه می کند را اصطلاحاً شفاف می گویند.
شفافیت انواع مختلفی دارد و در مورد هر یک طبق تعریفی که در کتاب سیستم های توزیعی آقای تانن باوم آمده توضیح می دهیم، شفافیت دسترسی که در مورد مخفی سازی تفاوت های ارائه داده و نحوه دسترسی به منابع به وسیله کاربران می باشد. شفافیت مکان یعنی اینکه کاربران نتوانند محل استقرار فیزیکی منبع در سیستم را شناسایی کنند. شفافیت مهاجرت یعنی اینکه بتوان منابع آنها را بدون تاثیرگذاری بر نحوه دسترسی به آنها انتقال داد. شفافیت مکان یابی مجدد هنگامی است که بتوان منابع را در حین دسترسی به آنها و بدون کوچکترین اطلاعی به کاربر یا برنامه کاربردی مجددا مکان یابی کرد. شفافیت تکثیر به مخفی سازی وجود چندین نسخه تکثیری از یک منبع می پردازد. شفافیت هم روندی زمانی است که مثلا دو کاربر مستقل فایل های خود را روی یک خدمتگذار فایل واحد ذخیره کرده و یا به جداول واحدی در پایگاه داده مشترک دسترسی داشته باشند. در این موارد هیچ یک از کاربران نباید کوچکترین اطلاعی از واقعیت استفاده کاربر دیگر از آن منبع داشته باشد. شفافیت خرابی به این معناست که کاربر متوجه خرابی و عملکرد نادرست یک منبع نشده و سپس سیستم اقدام به ترمیم آن خرابی کند[2].
قابلیت اطمینان
در دسترس بودن یک فاکتور مهم مرتبط با این سیستم ها است. طراحی نباید به گونه ای باشد که نیاز به اجرای همزمان کامپوننت های اساسی باشد. افزونگی بیشتر داده ها باعث افزایش در دسترس بودن شده اما ناسازگاری را بیشتر می کند. قدرت تحمل خطا باعث پوشاندن خطاهای ایجاد شده توسط کاربر می شود.
کارآیی
بدون کارآیی مناسب کلیه موارد استفاده نرم افزار بی فایده می باشد. اندازه گیری کارایی در سیستم های توزیع شده کار آسانی نیست. برای رسیدن به کارایی باید توازنی خاص در تعداد پیغام ها و اندازه کامپوننت های توزیع شده بر قرار باشد.
مقیاس پذیری
امروزه اتصال جهانی از طریق اینترنت، مانند امکان ارسال یک کارت پستال برای هر کسی در هر گوشه ای از جهان تبدیل به امر عادی شده است. به همین دلیل، مقیاس پذیری یکی از مهمترین اهداف طراحی برای سازندگان سیستم های توزیعی محسوب می شود. مقیاس پذیری یک سیستم را می توان حداقل در سه بعد مختلف اندازه گیری کرد(نیومان، 1994). اولاً، یک سیستم می تواند با توجه به اندازه خود مقیاس پذیر باشد. به این معنا که بتوان به راحتی کاربران و منابع دیگری را به سیستم اضافه نمود. ثانیاً، یک سیستم مقیاس پذیر جغرافیایی سیستمی است که ممکن است کاربران و منابع آن در فاصله های دوری از هم قرار گرفته باشند. ثالثا، یک سیستم ممکن است از نظر مدیریت اجرایی مقیاس پذیر باشد، به این معنا که حتی اگر سازمان هایی با مدیریت اجرایی مستقل را به هم پیوند دهد. باز به راحتی قابل مدیریت باشد. متاسفانه، اغلب سیستم هایی که از یک یا چند مقیاس پذیر هستند، با افزایش مقیاس پذیری سیستم، تاحدودی با افت عملکرد مواجه می شوند.
سیستم عامل های توزیعی
محیط های کامپیوتری تحت شبکه( شبکه های کامپیوتری) امروزه بسیار رایج شده اند و این محیط ها شامل مجموعه ای از ایستگاه های کاری و سرویس دهنده ها می باشند. واضح است که مدیریت این منابع کار آسانی نخواهد بود. استفاده از مجموعه ای از کامپیوترها که از طریق شبکه به هم متصل شده اند مشکلات بسیاری را در بر دارد، از جمله مشکلات تقسیم منابع و یکپارچه سازی محیط( که این مشکلات در سیستم های متمرکز وجود ندارد). علاوه بر این برای افزایش میزان کارآیی، توزیع بایستی از دید کاربر پنهان بماند. راه حل مناسب این است که سیستم عاملی طراحی شود که توزیعی بودن سخت افزار را در تمامی سطوح در نظر داشته باشد. به این صورت که سیستم عامل مجموعه را به صورت یک سیستم متمرکز نشان دهد و در کنار آن از مزیت های سیستم توزیعی استفاده کند. در ساختار سیستم عامل های توزیعی از دو الگوی مبتنی بر پیام و مبتنی بر شیء استفاده می شود[11].
الگوی مبتنی بر پیام
در این الگو سیستم عامل یک هسته مبتنی بر پیام در هر گره قرار می دهد و برای برقراری ارتباطات داخل فرآیند از ارسال پیام استفاده می کند. هسته از هر دو نوع ارتباط محلی( ارتباط بین فرآیندهای داخل هر گره) و غیر محلی(ارتباط از راه دور) پشتیبانی می کند. در یک سیستم عامل سنتی همانند یونیکس دسترسی به سرویس های سیستمی از طریق فراخوانی متدها صورت می پذیرفت در حالی که در سیستم عامل های مبتنی بر پیام، درخواست ها از طریق ارسال پیام مطرح می شوند. با این قرار می توان نتیجه گرفت سیستم عامل های مبتنی بر پیام ساخت جذاب تر و بهتری دارند، زیرا سیاست های موجود در فرآیند های سرویس دهنده از مکانیزم پیاده سازی هسته جدا می باشد.
الگوی مبتنی بر شیء
در این الگو سیستم عامل سرویس ها و منابع را به موجودیت هایی به نام شیء کپسوله می کند. این اشیاء همانند نمونه هایی از داده های انتزاعی می باشند و از ماژول های منحصر به فردی تشکیل شده اند. همچنین این ماژول ها نیز متشکل از متدهای به خصوصی می باشند که اینترفیس(واسط) ماژول را توصیف می کنند. عملکرد در این الگو این چنین است که کاربران درخواست سرویس را از طریق احضار شیء مورد نظر مطرح می سازند. این مکانیزم بسیار شبیه به فراخوانی پروسه ها در سیستم های معمولی می باشد. قابل ذکر است که اشیاء عملیات را کپسوله می کنند.
رویکرد سیستم عامل های ابری
سیستم عامل ابری نیز نوعی از سیستم عامل های توزیعی می باشند که مجموعه ای از گره ها را با هم یکپارچه می سازد و یک سیستم متمرکز تولید می کند. سیستم عامل ابری شامل سرویس دهنده های محاسباتی، سرویس دهنده های داده ای و ایستگاه های کاربر می باشد.
سرویس دهنده های محاسباتی: ماشینی است برای استفاده به عنوان موتور محاسباتی.
سرویس دهنده های داده ای: ماشینی است برای استفاده به عنوان مخرن داده های بلند مدت.
ایستگاه های کاربری: ماشینی است که محیطی برای توسعه دادن برنامه های کاربردی فراهم می کند و واسطی بین کاربر و سرویس دهنده های محاسباتی یا داده ای می باشد[3].
ساختار سیستم عامل های ابری بر پایه مدل شیء- نخ می باشد. این مدل از مدل برنامه نویسی معروف شیء گرا اقتباس شده است که نرم افزار سیستم را بر پایه مجموعه ای از اشیاء می سازد. هر شیء شامل تعدادی داده و عملیات بر روی آن داده ها می باشد. عملیات بر روی داده ها را متد می نامند و نوع شیء نیز با کلاس مشخص می گردد. هر کلاس می تواند صفر یا یک و یا چند نمونه داشته باشد ولی یک نمونه تنها از یک کلاس ناشی می شود. اشیاء به پیام ها پاسخ می دهند و ارسال پیام به یک شیء می تواند به داده های درون شیء دسترسی داشته باشد و آن ها را بروز رسانی کند و یا به اشیاء دیگر درون سیستم پیام ارسال کند. اشیاء ابر کپسولی از کد و داده می باشند که در یک فضای آدرس مجازی قرار دارند. هر شیء نمونه ای از یک کلاس است و هر کلاس ماژولی از برنامه. اشیاء ابرها به احضارها پاسخ می دهند و احضارها ( با استفاده از نخ ها) برای اجرای متد درون شیء ابر استفاده می گردند. ابرها از اشیاء برای تضمین انتزاع مخازن و از نخ ها برای اجرای متد درون شیء استفاده می نمایند. این موجب می شود که محاسبات و مخازن داده ای از یکدیگر تفکیک شوند. از دیگر ویژگی های مدل شیء- نخ می توان به این موارد اشاره کرد:
عملیات ورودی و خروجی
به اشتراک گذاری داده ها
ارتباط درون فرآیندها
ذخیره سازی بلند مدت داده ها در حافظه
الگوی سیستم عامل ابری
الگوی مورد استفاده در سیستم عامل های ابری همان الگوی شیء- نخ می باشد که در این بخش به توضیح اجزا و نحوه عملکرد این الگو می پردازیم.
شیء ابری
شیء ابری یک فضای آدرس مجازی پایدار می باشد. برخلاف فضاهای آدرس در سیستم های معمولی، محتویات اشیاء برای مدت طولانی باقی می مانند. به همین دلیل در هنگام خرابی سیستم از بین نمی روند، مگر اینکه عمدا از سیستم حذف شوند. همانطور که از تعریف برمی آید اشیاء ابری سنگین وزن هستند، به همین علت است که این اشیاء بهترین انتخاب برای مخازن داده ای و اجرای برنامه های بزرگ به حساب می آیند. داده های درون شیء فقط توسط خود شیء قابل دسترسی و بروزرسانی می باشند، زیرا محتویات یک فضای آدرس مجازی از بیرون از فضای مجازی قابل دست یابی نمی باشند.
یک شیء ابری شامل موارد زیر است:
کد مخصوص به خود ( متدهای اختصاصی )
داده های پایدار
حافظه ای زودگذر و سبک ( برای تخصیص حافظه موقت )
حافظه ای پایدار و دائمی ( برای تخصیص دادن حافظه ای که بخشی از ساختمان داده پایدار شیء می باشد )
داده با احضار متدها وارد شیء می شود و با پایان احضار از شیء خارج می گردد (شکل شماره 2-7 ). اشیاء ابری دارای یک نام در سطح سیستم می باشند که آن ها را از یکدیگر منحصر به فرد می سازد. این اشیاء درون سرویس دهنده های محاسباتی قابل استفاده می باشند که این کارآیی موجب می شود توزیعی بودن داده ها از دید کاربر مخفی باقی بماند.
4375151651000
شکل شماره 2-7 : ساختمان یک شیء ابری[5]
نخ
یک نخ عبارت است از مسیری اجرایی که وارد اشیاء شده و متدهای درون آن ها را اجرا می کند و محدود به یک فضای آدرس نمی شود. نخ ها توسط کاربران و یا برنامه های کاربردی ساخته می شوند. نخ ها با اجرای متدی از یک شیء می توانند به داده های درون شیء دسترسی یابند، آن ها را بروزرسانی کنند و یا اینکه متدهایی از شیء دیگر را احضار کنند. در این حالت، نخ به طور موقت شیء فعلی را رها می کند، از آن خارج شده و وارد شیء فراخوانی شده می گردد و متد مورد نظر آن را اجرا می کند، پس از پایان اجرای متد به شیء قبلی باز می گردد و نتیجه را برمی گرداند. نخ ها پس از پایان عملیات مورد نظر از بین می روند. علاوه بر این چند نخ می توانند به طور هم زمان وارد یک شیء شوند و به طور موازی به اجرا درآیند که در این صورت نخ ها محتویات فضای آدرس شیء را بین یکدیگر به اشتراک می گذارند. شکل شماره 2-8 نحوه اجرای نخ ها در اشیاء را نشان می دهد.

شکل شماره 2-8 : اجرای نخ ها در شیء ابری[5]
تعامل میان شیء و نخ ( مدل شیء- نخ )
ساختار یک سیستم عامل ابری متشکل از اشیاء و نخ ها می باشد. مکانیزم ذخیره سازی داده ها در سیستم عامل های ابری با سایر سیستم عامل های معمول تفاوت دارد. در سیستم عامل های معمولی از فایل ها برای ذخیره سازی داده ها استفاده می شود ولی در سیستم عامل های ابری اشیاء نقش مخازن داده را ایفا می کنند. برخی از سیستم ها برای برقراری ارتباط با داده های مشترک و هماهنگ سازی محاسبات از الگوی ارسال پیام استفاده می کنند. ابرها با قراردادن داده ها درون اشیاء آن ها را به اشتراک می گذارند. متدها در صورت نیاز به دسترسی داده ها شیء مورد نظر را که داده درون آن قرار دارد احضار می کنند. در یک سیستم مبتنی بر پیام، کاربر می بایست درجه هم زمانی را در هنگام نوشتن برنامه تعیین کند و برنامه را به تعدادی پروسه سیستمی بشکند. مدل شیء-نخ این احتیاجات را حذف می کند، به این صورت که در زمان اجرا درجه هم زمانی با ایجاد نخ های موازی مشخص می شود.
به طور خلاصه می توان گفت:
سیستم عامل ابری از فضاهای آدرس نام گذاری شده به نام شیء تشکیل شده است و این اشیاء قادرند:
مخازن داده پایدار فراهم کنند.
متدهایی برای دست یابی و دست کاری داده ها ایجاد نمایند.
داده ها را به اشتراک بگذارند.
هم زمانی را کنترل نمایند.
جریان کنترلی توسط نخ هایی که اشیاء را احضار می کنند انجام می شود.
جریان داده ای با ارسال پارامتر انجام می شود.
برنامه نویسی در مدل شیء- نخ در ابرها
مفاهیم مورد استفاده برنامه نویس در مدل شیء – نخ عبارتند از:
کلاس: ماژول های سیستم
نمونه: شیء ای از کلاس می باشد که می تواند توسط نخ ها احضار شود.
بنابراین برای نوشتن برنامه کاربردی در ابرها، برنامه نویس یک یا چند کلاس را تعریف می کند و داده ها و کدهای برنامه را درون این کلاس ها قرار می دهد. برنامه برای اجرا شدن نخی ایجاد می کند که متد اصلی شیء اجرا کننده برنامه را احضار می کند. اشیاء دارای نام هایی می باشند که برنامه نویس هنگام تعریف شیء برای آن ها مشخص کرده است و این نام ها بعدا به نام سیستمی شیء تبدیل می شوند.
معماری سیستم عامل ابری
دراین بخش معماری سیستم عامل های ابری را مورد بررسی قرار می دهیم. شکل شماره 2-9 مدلی منطقی از معماری یک سیستم عامل ابری را نمایش می دهد. یک پروسه ابری به مجموعه ای از اشیاء ابری اطلاق می شود که با هم یک برنامه کاربردی را تشکیل می دهند.

شکل شماره 2-9 : مدل منطقی از معماری یک سیستم عامل ابری[6]
فضای هسته ابر به تعدادی از پروسه های ابری که عملیات کنترل دسترسی ها، تخصیص حافظه و محاسبات مقدار منابع لازم را انجام می دهند گفته می شود. مابقی پروسه ها که مربوط به فضای هسته ابر نیستند، فضای کاربر را تشکیل می دهند. پروسه های ابری فضای کاربر که مستقیما توسط خود کاربر اجرا می شوند برنامه های کاربران نامیده می شوند و کتابخانه های ابری، پروسه های ابری می باشند که توسط برنامه های کاربران مورد استفاده قرار می گیرند. این برنامه ها از طریق مجموعه ای از واسط های استاندارد به نام فراخوانی های سیستمی ابر با کتابخانه ها و پروسه های هسته ارتباط برقرار می کنند. تمامی اشیاء موجود در فضای کاربر برای گرفتن دستورات از سیستم عامل از یک دستگیره فراخوانی استفاده می کنند، بدین معنی که برای مدیریت شدن از طریق یک واسط تحت شبکه قابل دسترسی می باشند که ارتباط میان اشیاء و آدرس آن ها در شبکه توسط پروسه های ابری «مدیریت پروژه» و «مدیریت ماشین مجازی» موجود در فضای هسته انجام می گیرند. اطلاعات نهایی نیز توسط پروسه ابری «کتابخانه نامگذاری» در دسترس قرار می گیرد. قابلیت دسترسی تمامی عملیات مدیریتی را پروسه ابری «اعتباردهی» مورد بررسی قرار می دهد و عملیات محاسبه میزان منابع مورد نیاز در هر لحظه نیز بر عهده پروسه ابری «اندازه گیری» می باشد. البته قابل ذکر است که مفروضات لحاظ شده در شکل شماره 2-4 تعداد اندکی از محدودیت های موجود در ابرها را در نظر گرفته است و کامل نمی باشد[6].
برخی سیستم عامل های ابری موجود(سیستم عامل های مبتنی بر وب)
سیستم عامل های وب روش بسیار مناسبی برای دستیابی به همه داده های شما در همه جای دنیا هستند (مشروط بر اینکه کامپیوتری با یک اتصال به اینترنت و یک مرورگر وب وجود داشته باشد). چنانچه تعدادی کامپیوتر داشته باشید، اما بخواهید همه اطلاعات را در یک جا نگهدارید و از برنامه های کاربردی مورد علاقه خود نیز استفاده کنید، این سیستم عامل ها بسیار سودمند هستند. اکنون در این مرحله ممکن است این سوال مطرح شود که چرا سیستم عامل وب؟. اساساً، یک سیستم عامل وب چیزی شبیه یک سیستم عامل روی اینترنت است. سیستم عامل وب، دسکتاپ مجازی شماست که به هیچ مکان فیزیکی متصل نیست و این امکان را به شما می دهد که در هر جایی از دنیا با کمک یک مرورگر به آن دستیابی داشته باشید. اجازه دهید تا از بین سیستم عامل های وبی که وجود دارد به بیان ویژگی های چند مورد از آنها بپردازیم.
سیستم عامل iCloud
سیستم عامل iCloud، مزایای بسیار زیادی دارد، علاوه بر اینکه هر برنامه ای که نیاز داریم در آن موجود است، 50 گیگابایت فضای ذخیره سازی آنلاین، به اشتراک گذاری آسان و ویژگی های افزایش برنامه های کاربردی را دارد. این سیستم عامل دارای ویژگی هایی مانند زیر است:
سیستم فایل آنلاین برای ذخیره سازی انواع فایل ها.
پشتیبان DAV وب از طریق ویندوز اکسپلورر امکان دستیابی مستقیم به انباره icloud شما را فراهم می کند.
برنامه های بهره وری- نوشتن، پست الکترونیکی ( که با همه حساب های پست الکترونیکی شما به اضافه یک حساب icloud رایگان هماهنگی دارد)، تماس ها، ToDo، ماشین حساب، دفترچه یادداشت، آنزیپ (فایل های حاوی داده های فشرده را از هم باز می کند).
عکس ساز با قابلیت به اشتراک گذاری، مدیا پلیر iplay، مووی پلیر، و حتی رادیو.
IM و یک مرورگر وب[8].
69850069596000تصویری از این سیستم عامل را در شکل 2-10 مشاهده می کنید.
شکل شماره 2-10: نمایی از سیستم عامل icloud
سیستم عامل GlideOS
سیستم عامل GlideOS، هم از طریق کامپیوتر و هم تلفن همراه قابل دسترسی می باشد. 10 گیگابایت فضای ذخیره سازی رایگان را در اختیار شما قرار می دهد، همچنین در این سیستم عامل می توانید شش حساب کاربری برای اعضاء خانواده ایجاد کنید( که می تواند شامل حساب کودک باشد). علاوه براین، این سیستم عامل دارای ویژگی هایی زیر می باشد که عبارتند از:
10 گیگابایت فضای دیسک مجازی
ابزار آفیس- شامل واژه پرداز، نمایش ساز، ماشین حساب، تقویم
ویرایشگر عکس