—d1151

2-7 مشخصات محاسبات ابری 19
2-8 مزایای محاسبات ابری 21
2-9 نقاط ضعف محاسبات ابری 24
2-10 بررسی وضعیت محاسبات ابری درجهان از نگاه آماری 25
2-11 یک نمونه قیمت در سیستم عامل Azure 30
2-12 تعریف سیستم عامل 31
2-13 انواع سیستم عامل 31
2-13-1 سیستم عامل تک پردازنده 31
2-13-2 سیستم عامل شبکه ای 31
2-13-3 سیستم عامل توزیع شده 31
2-13-4 سیستم عامل بی درنگ 32
2-14 سیستم های توزیعی 32
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- سرویس زیر ساخت پیشرفته

دانلود پایان نامه ارشد- مقاله تحقیق

 برای دانلود فایل کامل به سایت منبع مراجعه کنید  : homatez.com

یا برای دیدن قسمت های دیگر این موضوع در سایت ما کلمه کلیدی را وارد کنید :

 

سکو به عنوان سرویس
سکو به عنوان سرویس یا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 گیگابایت فضای دیسک مجازی
ابزار آفیس- شامل واژه پرداز، نمایش ساز، ماشین حساب، تقویم

user8253

2-3-4 انعطاف پذیری سریع 11
2-3-5 سرویس اندازه گیری شده 11
2-4 معماری سرویس گرا 11
2-5 مدل های سرویس 12
2-5-1 زیر ساخت به عنوان سرویس 12
2-5-2 سکو به عنوان سرویس 14
2-5-3 نرم افزار به عنوان سرویس 15
2-6 مدل های پیاده سازی 17
2-6-1 ابر عمومی 17
2-6-2 ابر گروهی 18
2-6-3 ابر ترکیبی 18
2-6-4 ابر خصوصی 18
2-7 مشخصات محاسبات ابری 19
2-8 مزایای محاسبات ابری 21
2-9 نقاط ضعف محاسبات ابری 24
2-10 بررسی وضعیت محاسبات ابری درجهان از نگاه آماری 25
2-11 یک نمونه قیمت در سیستم عامل Azure 30
2-12 تعریف سیستم عامل 31
2-13 انواع سیستم عامل 31
2-13-1 سیستم عامل تک پردازنده 31
2-13-2 سیستم عامل شبکه ای 31
2-13-3 سیستم عامل توزیع شده 31
2-13-4 سیستم عامل بی درنگ 32
2-14 سیستم های توزیعی 32
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

دانلود پایان نامه ارشد- مقاله تحقیق

 برای دانلود فایل کامل به سایت منبع مراجعه کنید  : homatez.com

یا برای دیدن قسمت های دیگر این موضوع در سایت ما کلمه کلیدی را وارد کنید :

 

فصل اول
مقدمه و کلیات تحقیق
مقدمه
در دهه های آینده ما شاهد رشد چشمگیر تکنولوژی در زمینه پردازنده ها خواهیم بود. ابرها که از پردازنده های چند هسته ای تشکیل شده اند منابع محاسباتی بی نظیری فراهم می سازند. باید توجه داشت که با افزایش وسعت دامنه های اطلاعاتی و محاسباتی نیاز به منابع این چنینی بیش از پیش احساس خواهد شد و با افزایش حجم منابع نیاز به مدیریتی کارا و شفاف الزام پیدا می کند. در اینجا ممکن است این سوال مطرح شود که: ابرها چه امکاناتی برای کاربران فراهم می آورند؟ ابرها در انجام محاسبات عظیم نقش مهمی را ایفا می کنند و به کاربران این امکان را می دهند که برنامه های خود را بر روی بستری قابل اطمینان و بسیار کارآمد که از اجزای صنعتی استاندارد تشکیل شده است اجرا کنند. همچنین ابرها مدل محاسباتی بسیار ساده ای را فراهم می آورند به این صورت که کاربران تنها خروجی مورد نظر را با کمترین هزینه برای کاربر تامین می نمایند. ابرها در کنار اینکه فرصت های فراوانی را برای کاربران فراهم می آورند، چالش هایی را نیز برای مدیریت این منابع پدید می آورند. برای مثال از این چالش ها می توان به نحوه هماهنگ ساختن میزان منابع با درخواست ها و یا وسعت زیاد منابع تحت مدیریت سیستم عامل اشاره نمود. در این تحقیق با چالش های موجود در این زمینه بیشتر آشنا می شویم و پیرامون هر کدام به تفضیل صحبت خواهیم کرد.
سوالات اصلی تحقیق
سیستم عامل های ابری که نوعی از سیستم عامل های توزیعی می باشند، می توانند مجموعه ای از گره ها را با هم یکپارچه ساخته و یک سیستم متمرکز را تولید کنند. با توجه به اینکه ابرها فرصت های فراوانی را برای کاربران فراهم می آورند، چالش هایی را نیز برای مدیریت این منابع پدید می آورند. به همین منظور سوالات زیر مطرح می شود:
چالش های موجود در سیستم عامل های ابری کدامند؟
آیا تا به حال این چالش ها مورد بررسی قرار گرفته اند؟
این چالش ها تا چه اندازه اهمیت دارند؟
آیا راهکاری برای این چالش ها در نظر گرفته شده است؟
هدف از اجراء
در دهه های اخیر شاهد رشد چشمگیر تکنولوژی در زمینه پردازنده ها بوده ایم و این تکنولوژی همچنان با سرعت قابل توجهی در حال پیشرفت است. دلیل این امر افزایش منابع اطلاعاتی و محاسباتی است که این نیاز را به وجود آورده است که با ساخت چنین تکنولوژی هایی به ویژه پردازنده های چند هسته ای، مدیریتی کارا و شفاف بر این اطلاعات حجیم و محاسبات عظیم صورت گیرد. مدیریت اطلاعات و محاسبات این چنینی در محیط هاو سیستم های توزیعی به مراتب آسان تر از محیط های دیگر است. یکی از سیستم های توزیعی ابرها می باشند که می توانند نقش مهمی را در محاسبات عظیم و ذخیره سازی اطلاعات حجیم، ایفا کنند. بنابراین لزوم بررسی چالش ها و موانع در این قبیل سیستم ها و رفع آنها می تواند گامی موثر در افزایش سرعت و کارایی این گونه سیستم ها داشته باشد.
توجیه ضرورت انجام طرح
همزمان با رشد چشمگیر تکنولوژی پردازنده ها، ابرها نیز گسترش روز افزونی پیدا کرده اند. به همین ترتیب تعداد کامپیوترهای افزوده شده به زیر ساخت ابرها نیز افزایش پیدا کرده است که البته قابل ذکر است این افزایش با توجه به تقاضای روزافزون کاربران برای میزبانی این منابع می باشد. منابع ابری برای کاربران نامحدود بوده و کاربران تنها محدودیت مالی برای خرید این منابع را پیش رو دارند. پس می توان نتیجه گرفت که یکی از مهم ترین چالش ها در این زمینه مقیاس پذیر بودن سیستم عامل های ابری می باشد. در ابرها پارامترهایی همچون تقاضا، حجم کار و منابع در دسترس در طول زمان پیوسته در حال تغییر می باشند. برای مثال هنگامی که کاربر محاسبات سنگین و پیچیده ای درخواست می کند منابع مورد نیاز وی افزایش پیدا می کند و در پایان منابع از کاربر تحویل گرفته می شوند، قابل ذکر است این افزایش و کاهش در منابع ممکن است از دید کاربر پنهان بماند. باید به این نکته توجه داشت که تقاضا هیچ گاه ثابت نمی ماند و میزان منابع مورد نیاز در گستره زیادی در حال تغییر می باشد. از طرفی برنامه های کاربردی مبتنی بر ابر معمولا منابع را بین کاربران و دیگر برنامه های کاربردی به اشتراک می گذارند. اگرچه برنامه کاربردی هر کاربر در لفاف مجازی جداگانه ای قرار گرفته است ولی کیفیت سرویسی که برای برنامه فراهم می شود را تحت تاثیر قرار می دهد. علاوه براین برنامه نویسی در این سیستم عامل نیز کاری مشکل و توام با خطا است. با توجه به مشکلات برنامه نویسی چند نخی و چند فرآیندی که در این نوع سیستم عامل ها استفاده می شود امکان وجود خطا افزایش می یابد. همچنین به دلیل کمبود ابزارهای اشکال زدایی و آنالیز سیستم های بزرگ فهمیدن خطاها سخت و برطرف سازی آنها چالش برانگیز است. برخی چالش های ذکر شده در این زمینه موجب به وجود آمدن مسیر تحقیقاتی گوناگون شده است که از آن جمله می توان به موارد زیر اشاره کرد که البته هر کدام از این مسیرها به بخش های دیگری می شکنند که زمینه جدیدی را فراهم می کند.
استفاده از اشیاء پایدار: یکی از زمینه های اصلی مدل ابری فراهم آوردن مخازن داده پایدار و قابل اشتراک می باشد. بنابراین محور اصلی برخی از تحقیقات در زمینه سیستم عامل های ابری، پشتیبانی کارامد و استفاده بهینه از حافظه پایدار می باشد. علاوه بر این عرصه دیگر تحت کنترل درآوردن منابع توزیع شده می باشد که منجر به افزایش سرعت برنامه های اجرایی بر روی ابرها می گردد.
اطمینان و امنیت در سیستم عامل های ابری: یکی از اهداف مهم این سیستم ها فراهم آوردن محیط محاسباتی امن برای کاربران است. این چالش از دو بخش اصلی تشکیل می شود: حفاظت از داده ها هنگام خرابی سیستم و تضمین انجام ادامه محاسبه از جایی که محاسبه قطع گردید. می توان به این نتیجه رسید یکی دیگر از زمینه های تحقیق پیرامون سیستم عامل های ابری افزایش اطمینان این سیستم عامل ها می باشد.
تحمل خطا: افزایش تحمل خطا زمینه ی تحقیقات دیگر حول این موضوع می باشد.
تعاریف واژه ها
سیستم های توزیعی
سیستم توزیعی در واقع مجموعه ای از کامپیوترهای مستقل است که برای کاربر خود مانند یک سیستم منسجم و منفرد به نظر می رسد[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 مشاهده می کنید.