—d1193

4-2-2 تست چرخش64
4-2-3 تست تغییر مقیاس65
4-2-4 تست فیلتر گوسی66
4-2-5 تست نویز نمک و فلفل67
4-2-6 تست نویز گوسی68
4-2-7 تست تغییر کنتراست تصویر69
4-3 مقایسه با سایر روشها 70
5- فصل پنجم نتیجه گیری و پیشنهادات 72
منابع73
Abstract 76
فهرست جداول
جدول 2-1 نقاط قوت وضعف حوزه های مختلف جایگذاری20
جدول 4-1 مقایسه روش پیشنهادی با روش] [3870
فهرست تصاویر و نمودارها
شکل2-1 :روش نهان نگاری13
شکل2-2 :حذف تصویردرتایید صحت اثر15
شکل 2-3 :یک سیستم نهان نگاری16
شکل 2-4 :آشکارسازی واترمارک پس ازحمله17
شکل 2-5 :انواع نهان نگاری23
شکل 2-6: مزایای روش فضای فرکانسی سیگنال33
شکل 2-7 :محتوی فرکانسی سیگنال 34
شکل 2-8 :مفهوم گرافیکی توابع هارمونیک35
شکل 2-9 :عملکرد فیلترینگ در حوزه فرکانسی36
شکل 2-10 :فرآیند پایه فیلتر فرکانسی37
شکل 2-11 :شمایی از مراحل ا الگوریتم SIFT تا مرحله اکسترمم یابی40
شکل 2-12:نحوه مقایسه نقاط و بدست آوردن نقاط اکسترمم40
شکل 2-13:نحوه تعیین بردار مشخصه برای هر ویژگی42
شکل 3-1:واترمارک تولید شده48
شکل 3-2:تصویر میزبان50
شکل 3-3:نقاط استخراج شده توسط الگوریتم SIFT50
شکل 3-4:انتخاب فرکانس میانی در تبدیل فوریه تصویر51
شکل 3-5:مختصات نقاط استخراجی توسط الگوریتم SIFT51
شکل 3-6:بلاک دیاگرام فرآیند جایگذاری واترمارک52
شکل 3-7:تصویر نهایی Wm 55
شکل 3-8: قسمت حقیقی دامنه بعد از جایگذاری55
شکل 3-9:تصویر واترمارک شده56
شکل 3-10:بلاک دیاگرام فرآیند آشکارسازی57
شکل 3-11:نقاط استخراج شده توسط اSIFT در تصویرواترمارک شده58
شکل 4-1:تصویر میزبان62
شکل 4-2:تصویر واتر مارک شده63
شکل 4-3:تصویر واترمارک بعد از چرخش64
شکل 4-4:نمودار همبستگی مابین واترمارک و واترمارک استخراجی64
شکل 4-5:تصویر واترمارک شده با تغییر مقیاس 0.765
شکل4-6: نمودار همبستگی مابین واترمارک و واترمارک استخراجی65
شکل4-7:تصویرواترمارک شده پس از اعمال فیلتر گوسی66
شکل 4-8: نمودار همبستگی مابین واترمارک و واترمارک استخراجی66
شکل 4-9:تصویر واترمارک شده با نویز نمک و فلفل67
شکل 4-10: نمودار همبستگی مابین واترمارک و واترمارک استخراجی67
شکل 4-11:تصویر واترمارک شده با نویز گوسی68
شکل 4-12: نمودار همبستگی مابین واترمارک و واترمارک استخراجی68
شکل 4-13:تصویرواترمارک شده با تغییر کنتراست69
شکل 4-14: نمودار همبستگی مابین واترمارک و واترمارک استخراجی69
چکیده:
گسترش روز افزون فناوری دیجیتال و استفاده از آن، انسانها را به سوی جهان دیجیتال و ارتباطات از طریق داده های دیجیتالی سوق داده است. سهولت دسترسی به منابع دیجیتال و امکان توزیع و کپی برداری غیر مجاز آن یک چالش مهم در حفاظت ازحق مالکیت داده های دیجیتالی بوجود آورده است. نهان نگاری دیجیتالی بعنوان یک راه حل برای این مسئله مطرح می شود.نهان نگاری دیجیتالی یعنی قرار دادن یک سیگنال نامحسوس در بین داده های رسانه میزبان، بطوریکه هیچ گونه تغییر در دادههای اصلی نداشته باشد ولی در صورت نیاز بتوان آنرا استخراج کرده و بعنوان ادعا برای مالکیت اثر دیجیتالی استفاده نمود. دراین طرح یک الگوریتم ترکیبی برای نهان نگاری غیر قابل مشاهده تصاویر دیجیتال در حوزه تبدیل فوریه گسسته واستفاده از الگوریتم SIFT ارائه شده است این الگوریتم از اعداد تصادفی در تصویر نهان نگاری استفاده می کند.. روش پیشنهادی نا بینا می باشد، یعنی برای تشخیص وجود تصویر واترمارک نگاری به اطلاعات تصویر میزبان اصلی نیاز ندارد و فقط به تصویر واتر مارک اصلی احتیاج دارد .برای بررسی و ارزیابی روش پیشنهادی، پارامترهای PSNR و میانگین مربع خطا ها و ضریب همبستگی مورد مطالعه قرار گرفته است. بررسی تحلیلی نشان می دهدکه الگوریتم پیشنهادی در برابر حملات رایج و حملات هندسی در مقایسه توانمند ومقاوم است.
کلمات کلیدی: نهان نگاری ، حوزه تبدیل فوریه ، الگوریتم SIFT
فصل اول
مقدمه و کلیات تحقیق
در این فصل ابتدا نهان نگاری دیجیتالی و مساله حفاظت از حق مالکیت داه های دیجیتالی و اهمیت آن ذکر می شود سپس اهداف طرح توضیح داده میشود. در ادامه سوالات و فرضیه های تحقیق و نوآوریهای الگوریتم پیشنهادی بیان می شود و درباره کلمات کلیدی تحقیق توضیحاتی ارائه می شود. در پایان ساختار طرح ذکر شده است.
1-1)مقدمه
در طول تاریخ و از زمانی که انسانها قادر به ارتباط با یکدیگر شدند امکان بر قراری ارتباط مخفیانه یک خواسته مهم بشمار می آمد. گسترش روز افزون اینترنت و رشد سریع استفاده از آن، انسانها را به سوی جهان دیجیتال و ارتباطات از طریق داده های دیجیتالی سوق داده است. در این میان امنیت ارتباط یک نیاز مهم است و هر روزه نیاز به آن بیشتر احساس می شود.
به طور کلی دو روش برای ارتباط پنهانی وجود دارد. در روش اول که رمز نگاری است، اطلاعات به طریقی رمز نگاری می شوند تا برای شخص ثالث قابل فهم نباشند اما فرستنده و گیرنده با استفاده از کلید مشترک می توانند اطلاعات مورد نظر را رمزگشایی کنند. تصور می شود که با کد کردن پیام مورد مبادله، ارتباط امن است ولی در عمل تنها رمز کردن کافی نیست و به همین دلیل روش های دیگری برای پنهان کردن داده ها به جای کد کردن آن ارائه شدند. روش دوم استانوگرافی می باشد که در لغت به معنای "نوشتار استتار شده" است و در واقع پنهان کردن ارتباط بوسیله قرار دادن پیام در یک رسانه پوششی است بگونه ای که کمترین تغییر قابل کشف را در آن ایجاد نماید و نتوان موجودیت پیام پنهان در رسانه را حتی به صورت احتمالی کشف کرد. روش دیگر پنهان کردن داده ها، نهان نگاری از ترکیب دو کلمه واتر+ مارکینگ است و به معنی نشانه گذاری یا نقش بر آب می باشد استگانوگرافی را نباید با فرآیند واترمارکینگ یا نقشاب سازی داده ها اشتباه گرفت، با وجود آنکه اهداف اصلی آنها یکسان هستند.
افزایش ناگهانی علاقه به نهان نگاری بعلت نگرانی از حفظ کپی رایت آثار بوجود آمد.اینترنت با معرفی جستجوگر صفحات وب در سال 1993 بسیار کاربردی شده بود . به آسانی موزیک ، تصویر و ویدئو در دسترس بودند و دانلود می شدند . همانطور که می دانیم اینترنت یک سیستم توزیع پیشرو برای واسط های دیجیتال است زیرا هم ارزان است و هم با سهولت و آنی در دسترس می باشد .این سهولت دسترسی صاحبان اثر بخصوص استادیو های بزرگی مانند هالیوود را در معرض خطر نقض کپی رایت قرار داد.
خطر سرقت توسط سیستمهای ضبط دیجیتال با ظرفیت بالا شدت گرفته است .در زمانی تنها راه برای مشتریان کپی یک آهنگ یا فیلم بر روی نوارهای آنالوگ بود معمولا کپی محصول کیفیت کمتری داشت ولی امروزه کپی دیجیتال آهنگ و فیلم تقریبا بدون هیچ کاهش کیفیتی صورت می گیرد .و گستردگی اینترنت و این تجهیزات ضبط سرقت آثار بدون اجازه مالک اثر را افزایش داده است بهمین دلیل صاحبان اثر بدنبال تکنولوژی و راهی هستند که از حقوقشان حمایت نماید.دیگر روشهای قدیمی رمزنگاری برای جلوگیری از استفاده غیر مجاز حملات بداندیشانه کارایی لازم را نخواهند داشت. در این شرایط گنجاندن داده، به صورت غیرمحسوس، برای جلوگیری از استفاده های غیرمجاز از پتانسیل تجاری بالایی برخوردار است . لذا برای غلبه بر این مشکل، نهان نگاری دیجیتال مطرح شده است. نهان نگاری دیجیتال اهداف گوناگونی مانند اثبات حق مالکیت ، احراز اصالت محتوی و کنترل تعداد نسخه های چاپ شده از یک اثر را محقق ساخته است.
با توجه به اینکه نهان نگاری در طیف گسترده ای از رسانه های دیجیتالی و با اهداف خاصی طراحی می شوند لذا با توجه به موارد کاربردی در دسته های مختلفی طبقه بندی می شوند. با وجود تفاوت در اعمال روش های نهان نگاری دیجیتال، همه روش ها در داشتن امنیت بالا دارای نقطه اشتراک هستند. با توجه بهمی شوند لذا با توجه به موارد کاربردی در دسته های مختلفی طبقه بندی می شوند. با وجود تفاوت در اعمال روش های نهان نگاری دیجیتال، همه روش ها در داشتن امنیت بالا دارای نقطه اشتراک هستند. با توجه به دامنه وسیع کاربرد تکنیک های نهان نگاری، آنها را می توان به صورت زیر طبقه بندی نمود:
طبقه بندی با توجه به حوزه کاری (حوزه فرکانس یا حوزه مکان)، با توجه به نوع اثر (متن،صدا، تصویر) و با توجه به ادراک و آگاهی انسانی (سیستم بینایی و یا شنوایی) ؛ باتوجه به برنامه های کاربردی
تکنیک های نهان نگاری در حوزه فرکانس و حوزه مکان یکی از معروفترین روش های نهان نگاری می باشند. در روش های حوزه مکان برای گنجاندن شی دیجیتال مورد نظر مقادیر پیکسل ها بطور مستقیم دستکاری می شود. این روش پیچیدگی کمتری دارند، شکننده ترند و قوی نیستند، اما در روش های حوزه فرکانس ابتدا تصاویر به یکی از حوزه های فرکانسی انتقال یافته و سپس پنهان نگاری با دستکاری مقادیر درحوزه فرکانس انجام می گیرد و در نهایت تصویر به حوزه مکان باز گردانده می شود. روش های نهان نگاری حوزه فرکانس که عموماً در الگوریتم های نهان نگاری تصاویر دیجیتال مورد استفاده قرار می گیرد شامل انتقال های زیر است: دامنه تبدیل کسینوسی گسسته) (DCT ، تبدیل فوریه گسسته (DFT)، دامنه تبدیل موجک گسسته(DWT) از جمله معروفترین روش های نهان نگاری دیجیتالی است که بسیار پر کاربرد می باشد
در این پایان نامه ، یک الگوریتم جدید نهان نگاری تصاویر دیجیتال مبتنی بر استخراج ویژگی های محلی که در حوزه فرکانس کار میکند پیشنهاد شده است ابتدا بخش فرکانس تصویر توسط ی تبدیل فوریه بدست می اید و سپس یک الگوریتم استخراج ویژگی که نقاط کلیدی ویژگی را برای زیر تصویر در حوزه فرکانس محاسبه می کند استفاده می شود.این نقاط کلیدی انتخاب شده ناحیه قرار گیری نهان نگاری می باشند.این روش از مزایای روش انتخاب ویژگی ها محلی و تبدیل فوریه سود می برد .
1-2 )بیان مساله
امروزه با رشد سریع اینترنت و فناوریهای چندرسانهای دیجیتال، نسخه برداری از داده ها بدون هیچ افت کیفیت و با هزینه های بسیار اندک امکانپذیر شده است. بدین ترتیب بهره گیری از آثار دیجیتال بدون رعایت حق نشر، دستکاری اسناد به راحتی امکان پذیر می باشد. در همین راستا هر روز نیاز های امنیتی متنوعتری مطرح می شود. نهان نگاری یکی از روش هایی است که برای پاسخگویی به این نیاز بکار میرود. بعنوان مثال شما میتوانید برای جلوگیری از انتشار غیرقانونی محتوا و فایلهای دیجیتالی تولیدی تان از این روش استفاده کنید. فرض کنید که یک تصویر یا فایل متنی تولید کرده اید؛ با استفاده از این روش میتوانید کپی رایت اثر خود را در فایل مربوطه پنهان کنید، تا در صورت لزوم بعداً بتوانید از حق خود دفاع کنید. نهان نگاری زمینه های کاربردی فراوانی دارد، بیشترین کاربرد آن در حک کردن اسم ها و امضاها برروی تصاویر و ویدئو ها و صداها و... می باشد به طوری که مشخص نخواهد بود. در اینصورت هر گونه استفاده غیر مجاز از رسانه دیجیتالی واترمارک شده، مانند کپی غیر مجاز از آن و یا هرگونه تحریف و تغییر تصویر توسط افراد غیر مجاز، صاحب اصلی داده می تواند با استخراج سیگنال واترمارک، که تنها توسط اوامکان پذیر است، مالکیت خود را به اثبات برساند و یا محل تغییرات صورت گرفته بر روی داده دیجیتالی را مشخص کند.
سیستم های نهان نگاری دیجیتال بر اساس کاربردهایشان توسعه یافته اند. نمونه از موارد کاربردی نهان نگاری دیجیتالی عبارتست از : حفاظت از حق مالکیت، تایید محتوا، کنترل کپی و کنترل طریقه استفاده، توصیف محتوا، نهان کردن داده های مختلف با امکان رد گیری، ارتباطات مخفیانه و پنهان سازی داده و...حفاظت از حقوق مالکیت داده های دیجیتال یکی از مهم ترین کاربردهای نهان نگاری می باشد. در حیطۀ حفاظت حق مالکیت اثر دیجیتال و احراز اصالت اثر دیجیتال، تکنیکهای بسیاری به منظور تشخیص تغییرات غیر مجاز معرفی شده و توسعه یافته اند. استخراج علامت نهان نگاری از یک تصویر نهان نگاری شده برای اثبات حق مالکیت کافی نیست زیرا در کاربردهای مختلف همواره نیت های خرابکارانه برای تهدید امنیت روش های نهان نگاری وجود دارد لذا یک مسئله مهم برای طرح های نهان نگاری دیجیتال استحکام در برابر حملات است زیرا ممکن است یک خرابکار بوجود پیام مخفی در رسانه دیجیتالی پی ببرد و در صدد کشف و شناسایی آن بربیاید .در برخی موارد ممکن است خرابکار علامت نهان نگاری را از بین برده یا آنرا جعل نماید. به همین دلیل می توان میزان سودمندی داده نهان نگاری شده مورد حمله قرار گرفته را با روش های گوناگونی مورد بررسی قرار داد مثلا کیفیت ادراکی آنرا اندازه گیری نموده و مقدار از بین رفتن علامت نهان نگاری را می توان با معیارهای از قبیل احتمال از دست رفتن، احتمال خطای بیتی، یا ظرفیت کانال، اندازه گیری کرد. محققان نشان داده اند که روش های نهان نگاری موجود قادر به ارائه پاسخ روشنی به اثبات حقوق مالکیت نیستند و همچنین برای بسیاری از این روش ها، حمله جعل کردن وجود دارد
1-3 )ضرورت و اهمیت تحقیق
با گسترش استفاده از کامپیوتر و اینترنت، دسترسی و تبادل داده های دیجیتال کار بسیار آسانی شده است. یکی از مشکلات واقعی که در این زمینه مطرح شده است، بازتولید غیر قانونی اطلاعات دیجیتالی میباشد. این مشکل، پرسش ها و نگرانی هایی در رابطه با حقوق مالکیت مطرح می کند. نهان نگاری دیجیتالی یک راه حل برای این مشکل فراهم می کند
یکی از چالش های مهم در الگوریتم های نهان نگاری دیجیتالی اثبات حق مالکیت می باشد. اکثر الگوریتم های موجود نسبت به ارائه راهکار مناسب برای این مسئله عاجزند و این مسئله یک خلا تحقیقاتی را نمایان می کند. همچنین افزایش ضریب امنیت و توانمندی تصاویردیجیتالی نهان نگاری شده در برابر حملات تخریبی یکی دیگر از مسائل مورد بحث می باشد.
اکثر پژوهشگران با توجه به راه حل های پیشنهادی خود بر این باورند که سایر الگوریتم های نهان نگاری دارای ضعف هستند و اختلاف آرا در این زمینه وجود دارد. لذا مقایسه و بررسی الگوریتم پیشنهادی با سایر روش ها برای تحقیق در نظر گرفته شده است.
1-4 )اهداف تحقیق
در این پایان نامه ، یک الگوریتم جدید نهان نگاری تصاویر دیجیتال مبتنی بر استخراج ویژگی های محلی که در حوزه فرکانس کار میکند پیشنهاد شده است که برای محافظت از حق مالکیت اثر و احراز هویت مناسب است، ابتدا بخش فرکانس تصویر توسط تبدیل فوریه بدست می اید و سپس یک الگوریتم استخراج ویژگی که نقاط کلیدی ویژگی را برای زیر تصویر در حوزه فرکانس محاسبه می کند استفاده می شود.این نقاط کلیدی انتخاب شده ناحیه قرار گیری نهان نگاری می باشند.این روش از مزایای روش انتخاب ویژگی ها محلی و تبدیل فوریه سود می برد .
سوالات پژوهش
چگونه میتوان الگوریتم های نهان نگاری با استفاده از روش استخراج ویژگی های محلی در تصاویر دیجیتال را از نطر دقت و سرعت بهبود بخشید؟
چطور میتوان الگوریتم نهان نگاری مبتنی بر استخراج ویژگی های محلی پیشنهادی در تصاویر دیجیتال را در برابر حملات تخریب کننده اعوجاج هندسی توانمند و مقاوم کرد؟
1-5 ) فرضیه ها
الگوریتم نهان نگاری ارائه شده، یک الگوریتم بهبود یافته از نظر سرعت و دقت می باشد
الگوریتم نهان نگاری بمنظور حفاظت از حق مالکیت در برابر رایج ترین حملات و به طور خاص، در برابر حملات اعوجاج هندسی توانمند و ایمن می باشد
1-6 )پیشینه تحقیق
بهمراه مشکلات مختلفی که در نهان نگاری تصاویر دیجیتال می بایست حل شود .مساله مقاومت در مقابل تبدیل هندسی یکی از مشکلات چالش برانگیز و اکثر الگوریتمهای نهان نگاری در مقابل این نوع حمله دارای ضعف می باشند.
اخیرا طرحهای نهان نگاری مبتنی برویژگی ها [2-8] که بعنوان طرحهای نسل دوم شناخته می شوند مورد توجه قرار گرفته اند که یک رویکرد برای معرفی نهان نگار های مقاوم در برابر اعواج های هندسی می باشند چراکه ویژگی های تصویر یک مرجع پایدار برای جا گذاری نهان نگار و اشکار سازی آن می باشند. بس و همکاران[2] اشکار ساز هریس را برای استخراج نقاط ویژگی و استفاده از آنها برای ایجاد موزائیکهای مثلثی شکل بر روی تصویر که برای جایگذاری نهان نگار استفاده می شود را بکار برده است. تانگ و همکاران [3] از روش استخراج ویژگی کلاه مکزیکی برای استخراج نقاط ویژگی استفاده کردندکه نواحی محلی بر مبنا نقاط ویژگی ایجاد می شوند و نهان نگار در این زیر قطعه ها در حوزه DFT جایگذاری میشود . لیی و همکاران[4] نقاط ویژگی تصویر را توسط الگوریم SIFT استخراج نموده و از انها برای ایجاد تعدادی از نواحی دایرهایی شکل برای جایگذاری نهان نگار استفاده کردند. ونگو همکاران[5] از آشکار ساز هریس–لاپلاس برای استخراج نقاط ویژگی تصویر استفاده کردند ونواحی اختصاصی محلی ایجاد شده محل قرار گیری نهان نگار می باشند.سلیدو و همکاران[8] از الگوریتم SURFبرای استخراج نقاط ویژگی استفاده کردند و واتر مارک را در حوزه DFT جایگداری نمودند.
استراتژی پایه در این طرحهای نهان نگاری وابستگی واترمارک به ناحیه محلی است.بعبارت دیگر نواحی محلی نفش محوری برای موفقیت یا شکست طرح نهان نگاری دارند. بنابراین چند نقص در این روشها ی مبتنی بر ویژگی که باعث کاهش کارایی می شود وجود دارد[8].
بدلیل اینکه همه بیتهای رشته نهان نگار در یک ناحیه محلی جایگذاری می شوند ، مقاومت طرح نهان نگاری به مقاومت آن ناحیه بستگی دارد.
تعداد نقاط استخراجی برای جایگذاری نهان نگار کم است و اگر تعدادی از نواحی محلی در اثر خراب شوند ویا از دست روند کارایی طرح نهان نگاری دچار مشکل می شود
بدلیل کوچک بودن نواحی محلی ظرفیت بسیارکم است و افزایش ظرفیت منجر به نقص در مقاومت می شود.
1-7 )جنبه نوآوری
در این پایان نامه بدلیل اینکه ویژگی محلی نقطه ایی که واتر مارک را در آن قرار می دهیم دچار تغییرات در اشکار سازی نشود از یک واتر مارک حلقوی استفاده شده است .از الگوریتم SIFT برای استخراج نقاط بیشتر که اگر تعدادی از نقاط در اثر حمله از بین رفتند کارایی نهان نگار دچار مشکل نشود و همچنین برای کاهش پیچیدگی و بالا بردن سرعت الگوریتم پیشنهادی از مقیاس میانه الگوریتم SIFT استفاده شده همچنین جهت بالا بردن کیفیت تصویر واتر مارک شده ، سیگنال واتر مارک در فرکانسهای میانی تبدیل فوریه تصویر میزبان قرار گرفته است .
1-8 )کلمات کلیدی
نهان نگاری ، حوزه تبدیل فوریه ، الگوریتم SIFT
1-9 )نتیجه گیری
یکی از راهکارهای انجام نهان نگاری استفاده از استخراج ویژگی های محلی می باشد که نقاط استخراجی دارای سه ویزگی ، مشخص و متمایز هستند ، به آسانی استخراج می شوند و مستقل از مقیاس، دوران ، تغییر در روشنایی تصویر و میزان نویز تصویر هستند ،محل جایگداری واتر مارک را مشخص می نماید ، همچنین استفاده ازتبدیل فوریه گسسته که ذاتا در برابر اعوجاجات هندسی مقاوم است در این پایان نامه مورد استفاده قرار گرفته است که روش پیشنهادی موجب افزایش ضریب امنیت و توانمندی تصاویر دیجیتالی نهان نگاری شده در برابر حملات بخصوص حملات هندسی شده است .
1-10 )ساختار پایان نامه
در این پایان نامه در فصل اول کلیات تحقیق ارائه می شود، در ادامه بحث فصل دوم مروری بر ادبیات تحقیق و مفاهیم کلی نهان نگاری دیجیتالی و تبدیل فوریه گسسته و الگوریتم استخراج ویژگی محلی و نهان نگاری مبتنی بر الگوریتم SIFT ارائه می شود و در فصل سوم روش پیشنهادی برای نهان نگاری مبتنی بر الگوریتم SIFT و تبدیل فوریه گسسته ارائه شده است، در فصل چهارم پیاده سازی الگوریتم پیشنهادی و نتایج تجربی مقایسه الگوریتم پیشنهادی با سایر الگوریتمها آمده است و در سرانجام فصل پنجم نتیجه گیری و پیشنهادات بیان شده است .
فصل دوم


ادبیات و پیشینه تحقیق
در این فصل مروری بر ادبیات تحقیق ارایه شده است. برای این منظور در بخش اول اصول نهان نگاری دیجیتال بیان شده و سپس مفاهیم مربوط به انواع نهان نگاری، ساختار و نحوه عملکرد آنها بیان و روشهای مختلف انجام نهان نگاری مورد بررسی قرار می گیرند. در انتها خصوصیات نهان نگاری دیجیتال و حملات مختلف بر نهان نگاری دیجیتال وسپس به بیان مزایا و معایب آن پرداخته می شود .در بخش دوم مفاهیم مربوط به تبدیل فوریه گسسته را ارائه شده است و در بخش سوم الگوریتم SIFT که جهت استخراج ویژگی های تصویر بکار می رود را معرفی و سپس در بخش چهارم به پیشینه تحقیق و الگوریتمهای نسل دوم نهان نگاری اشاره گردیده است.
2-1 ) پنهان سازی اطلاعات ،استانوگرافی و نهان نگاری
اینها سه موضوع با ارتباط نزدیک می باشند که در بسیاری از رویکردهای تکنیکی همپوشانی دارند. هرچند که مفهوم وجودی آنها متفاوت است و تفاوت موجود نیازمندیها، طراحی و راه حلهای تکنیکی برای انجام و اعمال آنها را تحت تاثیر قرار می دهد[1].
پنهان سازی اطلاعات (پنهان سازی داده) یک مفهوم کلی است که شامل گستره ایی از روشها برای قرار دادن و جایگذاری پیغام در متن می باشد .منظور از پنهان کردن ممکن است مانند بعضی از انواع نهان نگاری روشی نامحسوس باشدکه با وجود اطلاعات، آن را مخفی نگهدارد. بعضی از مثالهای تحقیقاتی در این حوزه را می توان در کارگاههای بین المللی تحقیقاتی پنهان سازی اطلاعات یافت .که شامل مقالاتی بطور مثال با عنوان ناشناس ماندن در هنگام استفاده از شبکه و یا مخفی نگه داشتن بخشی از پایگاه داده از کاربران غیر مجاز می باشد. مخترع کلمه استانوگرافی ترتیمیوس ، نویسنده اولین مقالات رمزنگاری می باشد.که بخش تکنیکی آن از کلمه یونانی steganos بمعنای پوشیده شده و graphia به معنای نوشتن مشتق شده است .استانوگرافی هنر ارتباط پنهان است. سیستمها برای قراردادن پیغام در اثر می تواند تقسیم به سیستم نهان نگاری که پیغام وابسته به تصویرمیزبان می شود. سیستمهای غیرنهان نگاری که پیغام وابسته به تصویر میزبان نمی باشد.همچنین می توان سیستمها را به سیستمهای استانوگرافی که پیام در آنها مخفی است و غیر استانوگرافی تقسیم کرد که وجود پیام نیاز به مخفی بودن ندارد[1].
2-1-1 ) اهمیت نهان نگاری دیجیتال
افزایش ناگهانی علاقه به نهان نگاری بعلت نگرانی از حفظ کپی رایت آثار بوجود آمد.اینترنت با معرفی جستجوگر صفحات وب در سال 1993 بسیار کاربردی شده بود . به آسانی موزیک ، تصویر و ویدئو در دسترس بودند و دانلود می شدند . همانطور که می دانیم اینترنت یک سیستم توزیع پیشرو برای واسط های دیجیتال است زیرا هم ارزان است و هم با سهولت و آنی در دسترس می باشد. این سهولت دسترسی صاحبان اثر بخصوص استادیو های بزرگی مانند هالیوود را در معرض خطر نقض کپی رایت قرار داد.
خطر سرقت توسط سیستمهای ضبط دیجیتال با ظرفیت بالا شدت گرفته است .در زمانی تنها راه برای مشتریان کپی یک آهنگ یا فیلم بر روی نوارهای آنالوگ بود معمولا کپی محصول کیفیت کمتری داشت ولی امروزه کپی دیجیتال آهنگ و فیلم تقریبا بدون هیچ کاهش کیفیتی صورت می گیرد .و گستردگی اینترنت و این تجهیزات ضبط، سرقت آثار بدون اجازه مالک اثر را افزایش داده است بهمین دلیل صاحبان اثر بدنبال تکنولوژی و راهی هستند که از حقوقشان حمایت نماید.
اولین تکنولوژی که صاحبان اثر بسمتش رفتند رمز نگاری بود .رمز نگاری احتمالا مشهور ترین روش در حفظ آثار دیجیتال است و یقینا به بهترین نحو توسعه یافته است. در رمز نگاری اثر پیش از تحویل رمز می شود و کلید رمزگشایی فقط به کسانی داده میشود که اثر را بطور قانونی خریده باشند. فابل رمز شده قادر به حضور در اینترنت خواهد بود و بدون کلید مناسب قابل سرقت نمی باشد. متاسفانه رمز نگاری قادر به کمک به فروشنده برای نظارت بر چگونگی استفاده خریدار از اثر بعد از رمز نگاری نخواهد بود. یک سارق ادبی می تواند بطور قانونی محصول را خریده باشد ، از کلید رمز گشایی استفاده کند و به کپی محصول محافظت نشده دست یابد و بعد از آن کپی های غیر مجاز را توزیع نماید . به عبارت دیگر رمز نگاری از اثر در حین انتقال محافظت می کند ولی وقتی که اثر یکبار رمز گشایی شد دیگر حفاظتی برای آن وجود ندارد. بنابراین یک نیاز شدید برای جایگزینی یا تکمیل رمز نگاری وجود دارد.تکنولوژیی که بتواند محصول را حتی بعد از رمز نگاری حفاظت کند نهان نگاری است زیرا که اطلاعات را در اثر قرار می دهد که در حین استفاده معمولی از بین نمی رود .آشکار سازی ، مجددا رمزنگاری ،فشرده سازی تبدیل دیجیتال به آنالوگ و تغییر فرمت فایل نمی تواند واتر مارک طراحی شده را ازبین ببرند.
نهان نگاری در بسیاری از کاربردهای برای جلوگیری از کپی غیر مجاز وحفظ کپی رایت در نظر گرفته شده است .در جلوگیری از کپی غیر مجاز ممکن است برای اعلام کپی ممنوع به سخت افزار و نرم افزار بکار رود و در کاربرد حفظ کپی رایت ممکن است برای شناسایی صاحب کپی و اطمینان از صحت پرداخت استفاده شود .
هرچند جلوگیری از کپی و حفظ کپی رایت علت تحقیقات بر روی نهان نگاری است کاربردهای دیگری نیز برای نهان نگاری پیشنهاد شده است که شامل نظارت بر انتشار،پیگیری تعاملات ،تصدیق صحت ،کنترل کپی و کنترل ابزار بکار می رود که در ادامه توزیع داده می شوند[1].
2-1-2 ) اهمیت استاگونوگرافی
ارتباطات الکترونیکی بطور گسترده ایی در معرض استراق سمع و مداخله های بد خواهانه می باشند .موضوع امنیت و حریم خصوصی دلیلی برای استفاده از ابزار رمز نگاری. یک پیغام را می توان به یک پیغام تایید صحت الحاق کرد که فقط گیرنده واقعی قادر به تایید و خواندن آن باشد. رمز نگاری مدرن یک حوزه کارآمد است که تکیه زیادی بر ریاضیات پیشرفته دارد.
پیغامهای رمز شده واضح می باشند و وقتی در حال ارسال هستند آشکار است که گیرنده و فرستنده دارند محرمانه ارتباط برقرار می کنند. استانوگرافی خواهر جوانتر و کوچکتر رمز نگاری بوده و یک ابزار جایگزین برای حفظ حریم شخصی و امنیت می باشد. بر خلاف پیغام رمز شده می توان آنها را در موضوعات نامحسوس دیگری قرار دادکه حضور آنها را نا پیدا می سازند. بنابراین ، می توان از استاگونوگرافی بعنوان یک جایگزین عملی در کشورهایی که رمزنگاری غیر قانونی است یا ممکن است منجر به جلب توجه نا خواسته شود استفاده نمود.
همانطور که می دانیم کشف رمز روی دیگر سکه رمزنگاری می باشد بهمین خاطر رمزگشایی یک بخش جدایی ناپذیر از استانوگرافی است .حقیقتا ،یک روش استانوگرافی بدون در نظر گرفتن وقت کافی برای چگونگی شکستن آن ممکن نمی باشد.
بدلیل اینکه امروزه استانوگرافی توسط تروریستها و توزیع کنندگان تصاویر غیرمجاز کودکان بکار می رود،نیاز برای یک ابزار رمزگشا که توانایی مشخص نمودن پیغامهای مخفی را داشته باشد افزایش یافته است[1].
2-1-3 ) واترماکینگ یا نهان نگاری چیست؟
بطور کلی روش پنهان کردن داده ها، مخفی سازی اطلاعات، جاسازی داده های دیجیتال اغلب در یک واژه کلی تحت عنوان نهان نگاری مورد استفاده قرار می گیرند. نهان نگاری از ترکیب دو کلمهWater به معنی "آب" وMarking به معنی "نشانه گذاری" است و به معنی نشانه گذاری یا نقش بر آب می باشد؛ اما این روش بخشی از مطلب کلی تری به نام استگانوگرافی هست و برای روشن شدن مطلب توجه کنید اگر یک چوبی را در دست خود بگیرید و بر روی آب نقشی حک کنید می بینید بعد از مدتی محو می شود ولی این نوشته وجود داشته است. همان طور که گفته شد نهان نگاری دیجیتال رابطه نزدیکی با پنهان نگاری و پنهان سازی داده دارد. ولی با این حال، بسته به کاربردهایی که دارد، تفاوتهایی نیز مشاهده میشود. در تکنیک های نهان نگاری ، یک سیگنال پنهانی به نام واترمارک ، مستقیما در داخل داده میزبان جایگذاری می شود و همواره در آن باقی می ماند. برای استفاده از داده نهان نگاری شده، نیازی به برداشتن سیگنال واترمارک نیست زیرا این سیگنال طوری در داده میزبان قرار داده می شود که هیچ تأثیر نامطلوبی بر داده اصلی نمی گذارد. به عنوان مثال در نهان نگاری داده در تصویر، چشم انسان نباید تفاوت بین تصویر اصلی و تصویر واترمارک شده را حس کند. دو مساله اساسی در نهان نگاری مقاومت (جداناپذیری واترمارک از تصویر) و مشاهده ناپذیری واتر مارک است. یک بده بستان بین مقاومت و غیر قابل مشاهده بودن وجود دارد بطوری که هر چه مقاومت روش نهان نگاری بیشتر باشد مشاهده پذیری آن بیشتر و بالعکس.
هر یک از حوزه های پنهان نگاری و نهان نگاری کاربردهای متنوع و خاص خود را دارند. امروزه نهان نگاری قابل مشاهده و پنهان در شاخه های مختلف کاربردی شده و یک نیاز جدی به حساب میآید و از الگوریتمهای متنوع با هدف دستیابی به امنیت، مقاومت و ظرفیتهای مورد نظر بهره گرفته شده تا کاربردهای مختلفی ازنهان نگاری و پنهان نگاری پوشش داده شود[1].

2-1 روش نهان نگاری
2-1-3-1 )کاربردهایی از نهان نگاری
در اینجا سعی شده به بعضی از کاربردهای واقعی و مد نظر این تکنیک ، که عبارتند از :شناسایی مالک اثر ،پیگیری تراکنشها ، تایید صحت وکنترل انتشار نسخه اشاره نماییم. در ادامه بحث به آنها می پردازیم برای هر کدام از این موارد کاربردی سعی می کنیم نشان دهیم که کدام یک از مشکلات موجود در سایر تکنیکها استفاده از واتر مارک را مناسب می سازد. بهمین دلیل بدقت نیازمندیهای کاربرد را درنظر می گیریم و محدودیتها و روشهای جایگزین را می سنجیم.
شناسایی مالک اثر
طبق قوانین خالق هر اثری مانند داستان ، نقاشی ،آهنگ یا هر کار اصلی دیگری بطور خودکار حق مالکیت برای هر نمونه ایی از اثر، که به هر شکلی کپی شده است دارد. صاحبان آثار خواهان انتشار آنها بدون از دست دادن حقوق خود می باشند. شکل دقیق نمایش کپی رایت آثار مهم است برای آثار دیداری استفاده از علامت © و آثار شنیداری ℗ میبایست در سطح رسانه بعنوان اینکه این اثر تحت قانون کپی رایت است قرار داده شود.
علامت متنی محدودیت چندگانه برای شناسایی مالک دارد. یک از آنها اینست که به سادگی از روی اثر با کپی کردن آن برداشته می شود. یک دیگر نازیبا کردن تصویر است با پوشاندن بخشی از آن است و موارد دیگر. بدلیل اینکه واتر مارک می تواند هم محسوس و هم نامحسوس باشد برتری زیادی نسبت به علامتهای متنی دارد. و مالک اثر با آشکار سازی واتر مارک حتی بعد از دستکاری اثر قابل شناسایی است .
اثبات مالکیت
جذابیت استفاده از واتر مارک فقط در شناسایی مالکیت کپی رایت نیست بلکه در حقیقت در اثبات مالکیت است. بعلت اینکه علامتهای متنی و نوشتاری براحتی برداشته می شوند، نمی توان از آنها استفاده کرد. یک راه اینست که ابتدا تصویری که مثلا بر روی صفحه وب قرارمیگیرد ابتدا به مراجع قانونی برای ثبت مالکیت فرستاده شود و در آنجا ثبت شود ولی معمولا این روش هزینه دارد که ممکن است عهده مالک اثر بر نیاید. میتوان با استفاده از واتر مارک براین مشکل غلبه کرد که مالک اثر بطور مستقیم علامت خود را جایگذاری کند. این مانند اینست که عکاس نگاتیو تصویری را که گرفته است برای اثبات مالکیت نزد خود نگهدارد.
پیگیری تراکنشها
در این کاربرد واترمارک، یک یا تعداد بیشتری از واترمارک که در سابقه اثر وجود دارد را ثبت می کند.مثلا واتر مارک می بایست در هر فروش یا توزیع قانونی اثر را ثبت شود مالک یا تولید کننده اثر می بایست در هر نسخه یک واتر مارک متفاوت قرار دهد و اگر ترتیب و شکل واتر مارک تغییر کرد مالک می تواند مسوول آن را پیدا نماید. پیگری تراکنش اغلب اثر انگشت نامیده می شود. هر نسخه از اثر با واتر مارک منحصر بفرد شناسایی می شود. همانند اثر انگشت انسان وبه این عمل شناسایی غیر فعال نیز گفته می شود
تایید صحت اثر
دستکاری و تقلب در آثار دیجیتال هر روز آسانتر و آسانتر می شود.برای مثال تصویر زیر(1-2) دستکاری تصویر توسط فتوشاپ را نشان می دهد که تصویر سمت راست تصویر اصلی و تصویر سمت چپ نسخه دستکاری شده آنست .اگر این تصویر بخشی از یک شواهد مهم در یک مورد حقوقی یا تحقیقات پلیس باشد این نوع جعل ممکن منجر به مشکلات عدیده ایی گردد.این عمل ممکن است در تصاویر ویدئویی نیز صورت پذیرد.

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

شکل(2-3 ) یک سیستم نهان نگاری
شکل) 2-2) یک سیستم نهان نگاری معمولی مربوط به ژنگ و همکاران 1 [9] 1شامل جایگذار واترمارک و آشکارساز علامت واترمارک را نشان می دهد. ورودی مربوط به بخش جایگذار واترمارک عبارتند از واترمارک، اطلاعات تصویر میزبان و کلید امنیتی می باشد. علامت نهان نگاری می تواند یک دنباله عددی، یک دنباله بیتی باینری و یا ممکن است یک تصویر باشد. به منظور افزایش امنیت کل سیستم نهان نگاری از کلید امنیتی استفاده می شود. خروجی واحد جایگذار واتر مارک، دیتای نهان نگاری شده است. ورودی مربوط به واحد آشکارساز واترمارک ؛ دیتای واترمارک شده، کلید امنیتی، و بسته به نوع روش، داده های اصلی و یا علامت نهان نگاری اصلی می باشد. عملیات واحد آشکارساز علامت واتر مارک شامل دو مرحله می باشد. مرحله ای شامل استخراج علامت واتر مارک است که خود شامل چند پردازش جداگانه می باشد. در این مرحله تصویر اصلی واترمارک نشده ممکن استفاده شود و یا اینکه استفاده نشود که البته به روش نهان نگاری بستگی دارد. اگر واحد آشکارساز برای استخراج علامت نهان نگاری به نسخه اصلی تصویر نیاز نداشته باشد، به آن طرح نهان نگاری عمومی یا نابینا گفته می شود، اگر واحد آشکارساز به تصویر اصلی نیاز داشته باشد، طرح نهان نگاری خصوصی یا نهان نگاری بینا نامیده می شود.
اگر تصویر اصلی استفاده شود، علامت واترمارک را می توان به شکل دقیقتر استخراج نمود(در صورتی که تصویر خراب شود) اگر روش تشخیص نابینا باشد، ما می توانیم وجود سیگنال واتر مارک را در تصویر تعیین کنیم. پس از آن، مرحله دوم است، در این مرحله باید مشخص گردد که آیا علامت استخراج شده همان سیگنال نهان نگاری اصلی هست یا نه. مرحله دوم معمولا شامل مقایسه علامت استخراج شده با علامت واترمارک اصلی هست و برای نتیجه گیری می توان از روش های مختلف اندازه گیری استفاده شود. معمولا از روش همبستگی برای این منظور استفاده می شود. تابع همبستگی مقدار همبستگی را محاسبه میکند و همبستگی محاسبه شده را با یک مقدار آستانه مقایسه می کند. اگر مقدار همبستگی بیش از مقدار آستانه باشد، یعنی این که علامت استخراج شده همان سیگنال نهان نگاری شده می باشد. در برخی الگوریتم های نهان نگاری، علامت استخراج شده را می توان برای دریافت پیام های جاسازی شده رمزگشایی نمود تا برای مقاصد مختلف مانند حفاظت از کپی رایت استفاده شوند.
همانطور که گفته شد یک رویه نهان نگاری معمولا دو قسمت دارد بخش جایگذاری و حک کردن واتر مارک در اثر داده شده و بخش آشکار ساز که واتر مارک را استخراج می نماید.
در هنگام فرایند جایگذاری واتر مارک، تصویر واتر مارک نشده اصلی ابتدا به حوزه ایی که می خواهیم واتر مارک را در آن جایگذاری کنیم انتقال داده و سپس واتر مارکی که از یک کلید نهان استفاده می کند و یا می تواند یک تصویر باشد ایجاد وبعد از آن ما واتر مارک را درون حوزه مورد نظر جایگذاری می کنیم و تبدیل معکوس برا ی بدست آوردن تصویر واتر مارک شده انجام می گیرد.
وقتی که واتر مارک x درون تصویر اصلی v حک می شود ،تصویر واتر مارک شده v’ بدست می آید. ما قدرت جایگذاری α رابرای مشخص نمودن اینکه چه مقدار واتر مارک تصویر اصلی را تغییر می دهد بکار می رود. فرمولی که معمولا برای محاسبه v’ استفاده می شود عبارتند از :
(1)
(2)
(3)
فرمول شماره (1) جایگذاری افزایشی نامیده می شود و به آسانی مقدار حاضل ضرب قدرت جایگذاری و واتر مارک را به تصویر اصلی اضافه می کند و زمانی که مقدار v تغییرات گسترده ایی دارد ممکن است مناسب نباشد بطور مثال اگر vi=105 اضافه نمودن 100 ممکن است برای تشخیص و آشکار سازی واتر مارک مناسب نباشد، برعکس اگر vi=10 باشد سپس اضافه کردن 100 منجر به تخریب اصالت تصویر می گردد. فرمول شماره(2) جایگذاری بکمک اضافه کردن با ضرب نامیده می شود. و وابسته به تصویر است زیرا مقداری که تصویر اصلی را تغییر می دهیم بستگی بهv دارد. این روش مقاومت بیشتری در مقابل تغییر مقیاسهای چنینی دارد. فرمول شماره(3) نتایجی مشابه فرمول 2 دارد وقتی کوچک است ، بعنوان نسخه لگاریتمی فرمول شماره (1) در نظر گرفته می شود.
انتخاب حوزه جایگذاری واتر مارک بسیار مهم است .روشهای نهان نگاری اولیه بسادگی واتر مارک را در حوزه مکانی جایگذاری می کردند. مطمئنا دستیابی به نامرئی بودن و ظرفیت بالا به سادگی قابل دستیابی می باشد، اما مقاومت آنها بسیارکم است و واتر مارک قادر به مقاومت در برابر هیچ تحریف و اعوجاج عمدی یا غیر عمدی نمی باشد.بعد ها نهان نگاری در حوزه فرکانس مد نظر قرار گرفت که با استفاده از برخی از انتقالهای گسسته و بهره برداری از خواص آنها صورت پذیرفت. بنابراین بعد از اجراء تبدیل و معکوس آن به حوزه مکانی، انرژی واتر مارک در تمامی تصویر توزیع می گردد. که نامریی بودن و مقاومت را بطور همزمان بهبود می بخشد.
2-1-4) تقابل امنیت، ظرفیت و مقاومت
به صورت کلی در سیستمهای پنهان سازی اطلاعات سه عنصر اصلی ظرفیت، امنیت و مقاومت دخیل هستند. در روشهای نهان نگاری عناصر ظرفیت و امنیت اهمیت اصلی را دارند. در دنیای امروز، جوهر نامرئی و کاغذ که در گذشته برای برقراری ارتباط پنهانی به کار برده میشد به وسیله رسانه های عملی تر مثل تصویر ویدئو و فایل های صوتی جایگزین شده اند. به دلیل اینکه این رسانه های دیجیتال دارای افزونگی اطلاعاتی زیادی هستند می توانند به عنوان یک پوشش مناسب برای پنهان کردن پیام استفاده شوند. تصاویر مهمترین رسانه مورد استفاده به خصوص در اینترنت می باشند و درک تصویری انسان از تغییرات در تصاویر محدود است. تصاویر نوعی رسانه میزبان مناسب در پنهان نگاری محسوب می شوند و الگوریتمهای نهان نگاری متعددی برای ساختارهای مختلف تصاویر ارائه شده است. هیچ یک از این الگوریتمها تاکنون امنیت را به طور کامل تأمین نکرده اند. به طور کلی رو شهای نهان نگاری در تصویر از الگوریتم جاسازی و الگوریتم استخراج بیت ها تشکیل شده اند. به تصویر مورد استفاده برای نهان نگاری پوشش و به تصویری که در اثر قرار دادن پیام به وسیله الگوریتم جایگذاری به دست می آید تصویر میزبان می گوییم. الگوریتمهای نهان نگاری به صورت عمومی از افزونگی در فضای مکانی یا افزونگی در فضای تبدیل استفاده می کنند. در هر کدام از این فضاها به شیوه های گوناگونی می توان داده ها را پنهان کرد که یکی از ساده ترین روشها، استفاده از بیت های کم ارزش فضای مورد نظر است.
2-1-5 ) تکنیک های نهان نگاری در حوزه مکان یا فرکانس
تکنیک های نهان نگاری همانطور که گفته شد می توانند به دو دسته تقسیم شوند: تکنیک های حوزه مکان و تکنیکهای حوزه فرکانس. در روش های حوزه مکان برای گنجاندن شی دیجیتال مورد نظر مقادیر پیکسل ها بطور مستقیم دستکاری می شود. این روش پیچیدگی کمتری دارند، شکننده ترند و قوی نیستند، اما در روش های حوزه فرکانس ابتدا تصاویر به یکی از حوزه های فرکانسی انتقال یافته و سپس نهان نگاری با دستکاری مقادیر در حوزه فرکانس انجام می گیرد و در نهایت تصویر به حوزه مکان باز گردانده می شود. در مقایسه با تکنیک های حوزه مکان ثابت شده است که تکنیک های حوزه فرکانس در دست یافتن به الگوریتم های نهان نگاری دیجیتال از لحاظ غیر قابل مشاهده بودن و استحکام بهتر می باشد
حوزه های فرکانسی که عموما استفاده می شوند عبارتند از تبدیل کسینوسی گسسته(DCT) ، تبدیل موجک گسسته (DWT) و تبدیل فوریه گسسته(DFT)همچنین بعضی از روشها وجود دارند که از تبدیل فوریه ملین برای عدم تغییر در مقابل چرخش و تغییر مقیاس بکار می روند. هر روش قوت و ضعفهای خود را دارد. رویکرد های مبتنی بر (DCT)یک مقاومت مناسب در مقابل فشرده سازی JPEG دارند زیرا که این نوع فشرده سازی خودش در حوزه) (DCT جای می گیرد همچنین این تبدیل در مقابل کمی سازی HVSنیز مقاومت می کند، هر چند در مقابل تحریف هندسی مقاوم نیست. رویکرد مبتنی بر DWT در مقابل فشرده سازی JPEG، فیلتر های پایین گذر و بالا گذر مقاوم است ولی نمی تواند در مقابل تحریف و اعوجاج هندسی مقاومت کندو منطبق با سیستم بینایی انسان HVS نمی باشد. رویکرد مبتنی بر DFT در مقابل تبدیلات هندسی بسیار مقاوم است زیرا در مقابل چرخش و انتقال ثابت است همچنین برای مدل HVS مناسب می باشد. هرچند خطای گرد کردن را ایجاد می نماید که ممکن است منجر به از دست دادن کیفیت و خطای استخراج واترمارک شود. رویکرد فوریه ملین در مقابل چرخش و انتقال بدون تغییر است و در مقابل تحریف هندسی بسیار مقاوم، اما در مقابل فشرده سازی با اتلاف ضعیف می باشد و پیچیدگی محاسباتی زیادی دارد. معایب و مزایای تبدیلات مختلف جایگذاری در جدول زیر آمده است
حوزه جایگذاری مزیت معایب
حوزه مکانی -به آسانی نامریی
-ظرفیت بالا مقاومت ضعیف
حوزه کسینوسی -مقاومت در برابر فشرده سازی JPEG
-مقاومت در برابر چندی کردن سیستم بینایی انسان عدم مقاومت در برابر اعوجاج هندسی
حوزه موجک -مقاومت در برابر فشرده سازی JPEG
مقاومت در برابر فیلتر های مینگین و پایین گذر عدم مقاومت در برابر تحریفات هندسی
عدم تطبیق با سیستم بینایی انسان
حوزه فوریه مقاومت در اعوجاج هندسی
مناسب برای سیستم بینایی انسان کاهش کیفیت و خطا در آشکارسازی واتر مارک
حوزه فوریه-ملین ثابت بودن در چرخش و انتقال
مقاوم در برابر اعوجاج هندسی ضعف در برابر فشرده سازی
پیچیدگی زیاد محاسباتی
جدول 2-1 نقاط قوت و ضعف حوزه های مختلف جایگذاری
بدلیل اینکه هدف ما طراحی یک واتر مارک مقاوم در مقابل اعوجاج و تحریفات هندسی می باشد لذا عمل جایگذاری واتر مارک در حوزه DFT انجام می پذیرد.
بعد از اینکه واتر مارک جایگذاری شد ،کیفیت تصویر واترمارک شده می بایست ارز یابی شود.متر هایی که برای اندازه گیری عمومیت دارند peak to noise ratio(PSNR) ، visual information fiedelity(VIF) ،visual to noise ratio(VSNR) و structure similarity(SSIM) . هر چند که اغلب از PSNRویا SSIM استفاده می شود. در اینجا ما از PSNR استفاده میکنیم قابل بذکر است که در بعضی از شرایط خوب کار نمی کند با این حال بعنوان یک سنجه برای رتبه بندی کیفیت بکار می رود.مقدار PSNR اغلب یصورت دسی بل نمایش داده می شود معمولا مقدار بالای 40db کاهش کم کیفیت را نشان می دهد و مقدار کمتر از 30db مشخص کنند کیفیت پایین است . بنابراین اگر مقدار PSNR یک تصویر واتر مارک شده بالای 40db باشد ما واتر مارک را کاملا نامریی در نظر می گیریم.
بعد از جایگذاری، فرایند آشکار سازی اعمال می شود که مشخص نماید آیا واتر مارک در تصویرپس از اعمال حمله وجود دارد یا خیر. در حین آشکار سازی، تصویر واتر مارک شده و مورد حمله قرار گرفته ابتدا به حوزه ایی که واتر مارک جایگداری شده انتقال می یابد. سپس واتر مارک را استخراج و با واتر مارک اصلی مقایسه می شود که آیا واتر مارک قادر به بازیابی بعد از حمله می باشد یا خیر. بلاک دیاگرام این فرایند در زیر نشان داده شده است شکل (2-3) .

شکل 2-4 آشکار سازی واتر مارک پس از حمله
بخش خط چین در بلاک دیاگرام تفاوت بین دو نوع آشکار ساز را مشخص می کند.آشکار ساز نابینا و آشکار ساز بینا. در بعضی از کاربردها تصویر اصلی واتر مارک نشده در حین آشکار سازی در دسترس می باشد. که کارایی آشکار سازی را بطور موثری افزایش می دهد. در کاربرد های دیگر ،تصویر اصلی در دسترس نیست که آشکار سازی بدون استفاده از تصویر اصلی انجام می پذیرد.
آشکار ساز بینا، اشکار سازی تعریف می شود که نیاز به دسترسی به تصویر اصلی واتر مارک نشده یا بعضی از اطلاعات تصویر اصلی بجای همه تصویردر فرایند آشکار سازی دارد. در مقابل اشکار ساز بینا، اشکار ساز نابینا بعنوان آشکارسازی تعریف می شود که نیاز به هیچ اطلاعاتی مربوط تصویر اصلی واتر مارک نشده ندارد. اینکه از کدام واتر مارک استفاده کنیم بر اساس کاربرد مشخص می شود. از واتر مارک بینا فقط در کاربردهایی که تصویر اصلی موجود است استفاده می شود. بطور کلی سند اصلی فقط در کاربرد های خصوصی موجود است و بنابراین آشکار سازهای بینا را نمی توان در کاربردهای عمومی بکار برد.
در این پایان نامه از آشکار ساز نابینا به جای آشکار ساز بینا جهت افزایش انطباق پذیری استفاده شده است.
2-1-6 ) نهان نگاری در تصاویر:
امروزه , پرکاربردترین روش نهان نگاری , مخفی کردن اطلاعات در تصاویر دیجیتالی است ؛ این تکنیک، از ضعف سیستم بینایی انسان(HVS) بهره می گیرد. با توجه به اینکه درک تصویری انسان از تغییرات در تصاویر محدود است، تصاویر نوعی رسانه پوششی مناسب در نهان نگاری محسوب می شوند والگوریتم های نهان نگاری متعددی برای ساختارهای مختلف تصاویر ارائه شده است. به طور کلی با استفاده از استگانوگرافی می توان هر چیزی در درون هرچیزی پنهان کرد، اما باید به این نکته توجه کرد که در هرتصویری نمی توان به یک میزان اطلاعات مخفی کرد و بستگی به شرایط تصاویر و الگوریتم مورد استفاده دارد. تغییر کم ارزش ترین بیت در ساختار بیتی داده ی پوششی و استفاده از روش 2LSBبرای تغییر کسینوسی گسسته ی (DCT) تصویر پوششی از جمله ی متداولترین روشهای نهان نگاری در تصاویر می باشد.
2-1-6-1 )نهان نگاری دیجیتالی بر پایه ادراک و آگاهی انسان
در این بخش می خواهیم ادراک تجزیه و تحلیل تکنیک های مختلف نهان نگاری بر اساس بینایی انسانی را مورد بررسی قرار دهیم. بر اساس ادراک بینایی انسان سیستم نهان نگاری به دو دسته اصلی یعنی قابل رویت و غیرقابل رویت طبقه بندی می شود.
در نهان نگاری قابل رویت علامت نهان نگاری بر روی یک تصویر میزبان تعبیه شده و توسط انسان قابل مشاهده است. نهان نگاری قابل رویت یک نوع ساده از نهان نگاری دیجیتال می باشد، آرم ها نمونه هایی از نهان نگاری قابل مشاهده است که مالکیت صاحب محتوا را نشان می دهند[10]. یکی از راه های معمول نهان نگاری تصویر قابل مشاهده، چاپ علامت " © تاریخ ، صاحب " بر روی تصویر می باشد. مثلا متنی که جایی از فایل های تصویری یا word، pdf و یا .... به منظور حفاظت از حق نشر قرار می گیرد. نهان نگاری قابل رویت نه تنها استفاده غیر مجاز جلوگیری مینماید بلکه شناسائی سریع کپی رایت داده های چند رسانه ای را نیز فراهم میکند. یکی از نقطه ضعف های نهان نگاری قابل مشاهده این است که می توان آن را به راحتی از روی تصویر دیجیتال حذف کرد.
در نهان نگاری غیر قابل رویت علامت نهان نگاری درون یک تصویر میزبان پنهان شده و به همین دلیل توسط انسان قابل مشاهده نمی باشد. نهان نگاری دیجیتال غیر قابل رویت، روشی است برای قرار دادن برخی بیت ها در درون رسانه دیجیتال، به طوری که کمترین اثر را داشته باشد و توسط چشم انسان قابل دیدن نباشد. در طرح های نهان نگاری غیر قابل رویت تصاویر دیجیتال ویژگیهای مهمی برای نهان نگاری وجود دارد. اولین ویژگی این است که درج واترمارک نبایدکیفیت و ظاهر تصویر میزبان را تغییر زیادی دهد و دوم اینکه باید از لحاظ ادراکی غیر قابل رویت باشد. علاوه بر دو ویژگی فوق سوم اینکه نهان نگاری باید در مقابل اعمال پردازش تصویر معمول نظیر فیلتر کردن، فشرده سازی، اعمال نویز و حذف قسمتی از تصویر مقاومت داشته باشد. در ادامه با انواع نهان نگاری قابل رویت و غیرقابل رویت آشنا خواهیم شد شکل(2-4).

شکل 2-5 انواع نهان نگاری
2-1-6-2 )نهان نگاری قابل مشاهده
نهان نگاری قابل مشاهده، روند جاسازی کردن علامت نهان نگاری در تصویر میزبان است. برای این روش نهان نگاری نرخ بیتی و قدرت سیگنال بالا می باشد. نهان نگاری قابل مشاهده به دو دسته سیستم بینایی انسان و نهان نگاری برگشت پذیر طبقه بندی می شوند.
سیستم بینایی انسان(HVS)
فرآیند نهان نگاری از نظر سیستم بینایی انسان، مدل حساس به وضوح می باشد. روش های زیر متعلق به نهان نگاری قابل مشاهده در سیستم بینایی انسان است بیائو بینگ و شائو شیان [11] با توسعه ضرایب ترکیبی تصویر میزبان و تصویر واترمارک، ویژگی های محلی و عمومی را محاسبه کردند و مورد استفاده قرار دادند. با استفاده از تابع حساسیت به وضوح و دامنه تبدیل موجک گسسته (DWT) تصویر میزبان و علامت واترمارک به بلوک های بیشتر تقسیم می شوند. بلوکها بر اساس ابعاد تصویر)طرح ، لبه و بافت( طبقه بندی می شوند. باید توجه داشته باشید که حساسیت فضایی انسان با توجه به وضوح تصویر نهان نگاری متفاوت است. یانگ و همکاران[12] ، روش بازیابی تصویر اصلی بدون درج هیچ گونه جزئیات فرآیند نهان نگاری در سمت گیرنده را پیشنهاد دادند. با توجه به عوامل تغییر اندازه HVS فرآیند نهان نگاری با تنظیم مقدار پیکسل انجام می شود. بر اساس تفاوت بین تصویر میزبان و نسخه تقریبی آن)با استفاده از روش بازیابی تصویر)یک بسته بازسازی تصویر برای برگشت پذیری ایجاد می شود. ویژگی های HVSبا توجه به فاکتور مقیاس بزرگتر و فاکتور مقیاس کوچکتر محاسبه شده است. سپس عوامل مقیاس بزرگتر و کوچکتربه ترتیب مناطق درخشندگی میانی و بافت اختصاص داده می شوند. مین جن [13] با استفاده از DWT یک روش نهان نگاری را توسعه داد. در حوزه DWT، تصویر اصلی و علامت نهان نگاری از ویژگی های محلی و عمومی بهره می برند. این روش برای پیدا کردن بهترین موقعیت جایگذاری واترمارک و وضوح جاسازی کردن علامت واترمارک استفاده می شود. عملیات جایگذاری بصورت پیکسل به پیکسل بین علامت واترمارک و تصویر میزبان انجام می شود. پیکسل نهان نگاری بسته به میزان روشنایی آن به دو دسته تقسیم می شود
نهان نگاری قابل مشاهده برگشت پذیر
نهان نگاری قابل مشاهده برگشت پذیر، عملیات جایگذاری علامت واترمارک قابل مشاهده درتصویر میزبان و استخراج علامت واترمارک بدون از دست دادن داده ی اصلی می باشد. این روش امکان بازیابی تصویر اصلی را فراهم می کند. همچنین این نوع نهان نگاری، برگشت پذیر و یا بازیابی بدون اتلاف واترمارک نامیده می شود. بر اساس روش بازیابی مورد نیاز ، دوباره این روش به دو نوع نهان نگاری نابینا و بینا طبقه بندی می شود.
نهان نگاری قابل مشاهده برگشت پذیر نابینا (خصوصی):
در نهان نگاری نابینا، اطلاعات تصویر میزبان برای بازیابی تصویر اصلی مورد نیاز نمی باشد و فرایند بازیابی تصویر اصلی با استفاده از واترمارک و بدون از دست دادن اطلاعات انجام می شود. یونگ جین و بیونگ وو [14] یک سیستم نهان نگاری قابل مشاهده که در آن علامت نهان نگاری قابل مشاهده به عنوان یک برچسب یا حقوق شناسه می باشد و همچنین برای بازیابی تصویر و استخراج کامل تصویر اصلی حذف می شود، را پیشنهاد دادند. در این مطلب، دو روش ارائه میگردد. در روش اول مخفی کردن داده ها، بخش خاصی از تصویر اصلی که قرار است کشف شود، در تصویرعلامت نهان نگاری قابل رویت ذخیره شده است. برای کاهش عملیات محاسباتی، برنامه نویسی مبتنی برکدگزاری ریاضی استفاده می شود. در روش دوم جاسازی کردن یک کلید که توسط کاربر ساخته شده بهمراه علامت نهان نگاری در بخش رزرو شده تصویر پوشش تعبیه می گردد. حذف علامت نهان نگاری با استفاده از کلید کاربر انجام می شود. کلید کاربر نه تنها برای حذف کامل نهان نگاری استفاده می شود و بلکه برای کمک به مخفی کردن اطلاعات کاربران مجاز استفاده می شود. این روش نهان نگاری قابل مشاهده امنیت را بخوبی فراهم می کند.
نهان نگاری قابل مشاهده برگشت پذیر بینا (عمومی)
در این روش برای بازیابی تصویر اصلی در سمت گیرنده، تصویر اصلی یا سیگنال نهان نگاری موردنیاز می باشد. تسونگ یوان و ون هسیانگ [15]روش نهان نگاری برگشت پذیر قابل مشاهده بصورت نگاشت یک به یک بین علامت نهان نگاری قابل مشاهده و تصویر میزبان را پیشنهاد دادند. این روش تصویر علامت نهان نگاری سیاه-سفید و یا رنگی را به تصویر میزبان رنگی اضافه می کند. همچنین برای بازیابی تصویر اصلی از کلید کاربر و سیگنال نهان نگاری استفاده می شود. یونگ جین و بیونگ وو [16]نهان نگاری قابل رویت قابل جابجایی با استفاده از کلید کاربر در حوزه DWT را پیشنهاد داد.برای بدست آوردن اطلاعات نهان نگاری شده، ابتدا قالب علامت نهان نگاری قبل از پردازش با استفاده از کلید کاربر مشخص می شود، سپس این الگو با تصویر میزبان و ضرایب تصویر میزبان نهان نگاری تعبیه می گردد. حذف علامت نهان نگاری معکوس روند جاسازی کردن بدون تصویر میزبان است.
2-1-6-3 ) نهان نگاری غیرقابل مشاهده
در نهان نگاری غیر قابل مشاهده که برای حمل اطلاعات کپی رایت و یا دیگر پیامهای مخفی استفاده می شود، علامت واترمارک در یک تصویر میزبان پنهان می گردد. یک علامت واترمارک غیر قابل مشاهده، تغییر بسیار جزئی در وضوح مناطق واتر مارک شده تصویر دارد که برای چشم انسان غیرقابل مشاهده است.برای روش نهان نگاری غیر قابل مشاهده، نرخ بیت و قدرت سیگنال باید پایین باشد. علامت نهان نگاری غیرقابل مشاهده را نمی توان از رسانه های دیجیتالی حذف نمود، زیرا این سیگنال پس از جاسازی کردن، یک جزء جدایی ناپذیر از محتوای رسانه دیجیتال شده است. با این حال، می توان بوسیله برخی از روش های دستکاری و تحریف آنها را دچار تغییر کرد و غیر قابل کشف نمود که به آن حملات 3گفته می شود. یک علامت نهان نگاری، ایده آل، باید در برابر تمام حملات ممکن انعطاف پذیر باشد. اثبات مالکیت اثر حوزه کاربردی دیگر از نهان نگاری های دیجیتال غیر قابل مشاهده می باشد، که به سطح بالاتر امنیت از شناسایی مالک اثر نیازمند است. در این بررسی نهان نگاری غیرقابل مشاهده بر اساس نیرومندی در دو نوع قوی و شکننده (همانطور که در شکل نشان داده شده است)، طبقه بندی می شود
نهان نگاری غیرقابل مشاهده مقاوم (قوی):
در این گروه حذف علامت نهان نگاری توسط کاربر غیر مجاز بسیار دشوار است و بهمین ترتیب این روش در برابر حملات نهان نگاری مقاومت بالایی را داراست، و حملات هرگز بر روی تصویر نهان نگاری تاثیر نمی گذارند. هدف از الگوریتم های قوی استقامت علامت نهان نگاری در برابر تحریف ها و حملات ممکن مانند فشرده سازی ، فیلتر کردن و ایجاد نویز می باشد. ایمن و دوایت [16]یک روش نهان نگاری غیرقابل مشاهده قوی را برای محافظت از علامت نهان نگاری در برابر حملات پردازش هندسی و سیگنال پیشنهاد دادند. در این روش با استفاده از تبدیل متعامد میانی، علامت واترمارک در تصویر اصلی جایگذاری شده است. تبدیل محافظ طبیعی (NPT) به عنوان یک تبدیل واسط در بین دامنه فرکانس و دامنه فضایی مورد استفاده قرار می گیرد. دو فرم مختلف NPT بر اساس تبدیل کسینوسی گسسته و تبدیل هارتلی6 برای بهبود کیفیت تصویر شده اند. در این روش تصویر اصلی و تصویر واترمارک شده برای استخراج علامت نهان نگاری مورد نیاز می باشند. ساراجو و همکاران [17]برای مدیریت حقوق دیجینال (DRM) یک روش نهان نگاری غیر قابل مشاهده پیاده سازی نمودند. در این روش دامنه نهان نگاری غیرقابل مشاهده قوی از تبدیل کسینوس گسسته(DCT) بهمراه رمزنگاری برای محفاظت در برابر حملات استفاده شده است. برای اینکار در داخل یک تصویر رنگی یک تصویر باینری غیر قابل رویت بهمراه کلید خصوصی که برای احراز هویت ایجاد شد، جاسازی شده است.
نهان نگاری غیرقابل مشاهده شکننده:
در این روش نهان نگاری علامت نهان نگاری چندان قدرتمند نیست و ممکن است در هنگام برقراری ارتباط تصویر نهان نگاری توسط برخی حملات نهان نگاری تحت تاثیر قرار بگیرد و یا حذف شود. صبا و همکاران [18] نهان نگاری غیر قابل مشاهده در هر دو حوزه دامنه مکانی و دامنه فرکانس را ارائه دادند. روش نهان نگاری در حوزه مکانی در مقابل حملات نهان نگاری شکننده است و اطلاعات نهان نگاری را در اختیار کاربران غیر مجاز قرار می دهد. در این تکنیک از جایگذاری یک تصویر و متن با استفاده از روش جایگزینی حداقل بیت(LSB) استفاده می شود. استخراج علامت نهان نگاری غیرقابل مشاهده با استفاده از مقدار کلید انجام می شود. سومیک و همکاران [19] یک روش جدیدی را برای جایگذاری علامت نهان نگاری در تصویر میزبان با استفاده از محل های مختلف ارائه دادند. تصویر میزبان به تعدادی بلوک تقسیم شده است و تصویر علامت واترمارک در همه بلوک های موقعیت LSB جا سازی می شود. در این روش احراز هویت کاربر مجاز با استفاده از کلید پنهان و تابع هش صورت می گیرد. با ترکیب مقادیر تمام بلوک های LSB ، برای استخراج تصویر علامت نهان نگاری ، تکنیک شکننده مورد نظر توسعه داده شده است.
نهان نگاری با توجه به برنامه کاربردی
با توجه به برنامه های کاربردی، نهان نگاری می تواند به دو گروه نهان نگاری مبتنی بر منبع و نهان نگاری مبتنی بر مقصد طبقه بندی شود. در الگوریتم های نهان نگاری مبتنی بر منبع، تمامی نسخه های نهان نگاری شده تنها با یک علامت واترمارک منحصر به فرد نهان نگاری می شوند و همان سیگنال واترمارک منحصر بفرد برای شناسایی مالکیت و یا تصدیق هویت استفاده می شود. این علامت نهان نگاری صاحب محتوای دیجیتالی را شناسایی می کند. با این حال، نهان نگاری های مبتنی بر مقصد (اثر انگشت) به صورت جداگانه در هر یک از نسخه های نهان نگاری شده، علامت واترمارک مجزایی را جاسازی می کند و برای مشخص کردن خریدار یک محصول خاص و جلوگیری از یک عمل غیر قانونی(انتشار غیر قانونی) مورداستفاده قرار بگیرد. روش اثر انگشت می تواند برای نظارت بر پخش محصول دیجیتالی استفاده شود. قبل ازپخش، علامت نهان نگاری منحصر به فرد در هر فایل ویدئویی یا صوتی و یا کلیپ جاسازی می گردد. کامپیوتر های خودکار بر پخش و شناسایی زمان و جایی که هر فایل دیجیتالی ظاهر شده است نظارت می کنند[3].
2-1-7 ) خواص و ویژگی نهان نگاری دیجیتال
خواص اصلی نهان نگاری شامل نیرومندی، وفاداری، هزینه محاسباتی و نرخ مثبت-کاذب هستند.[3]با این حال، ممکن است طرح نهان نگاری تمامی این خواص را تامین نکند همچنین شاید برخی از انواع نهان نگاری ها به همه ویژگی ها نیاز نداشته باشند. برای نهان نگاری قابل مشاهده، برآورده نشدن خصوصیت وفاداری، نگران کننده نیست، اما، این ویژگی یکی از مهم ترین مسائل برای نهان نگاری غیر قابل مشاهده می باشد. برای پاسخگویی به خواص مورد نیاز نهان نگاری، طراحی نهان نگاری باید با توجه به نوع کاربرد انجام بگیرد. بعبارت دیگر، ممکن است یک خصوصیت با خصوصیت دیگر تناقض داشته باشد. مثلا افزایش قدرت و صلابت علامت نهان نگاری باعث افزایش استحکام و نیرومندی نهان نگاری می شود، اما همچنین باعث کاهش ویژگی وفاداری هم می شود. بنابراین با توجه به برنامه های کاربردی می توان بین الزامات و خواص طرح نهان نگاری تعادل برقرار نمود. در این بخش، این خواص مورد بررسی قرار می گیرند.
استحکام
در بسیاری از برنامه های نهان نگاری، انتظار می رود داده های نهان نگاری شده قبل از آنکه به گیرنده برسند، در بین راه توسط سایر کاربران پردازش شوند. برای مثال، در پخش تلویزیونی و رادیویی، رسانه نهان نگاری شده باید نسبت به فشرده سازی با اتلاف تبدیل به کار رفته در فرستنده و طرف گیرنده گیرنده ، و برخی از انتقال های افقی و عمودی انعطاف پذیر باشد. علاوه بر این، با توجه به رسانه انتقال نویز هم می تواند به داده اصلی اضافه شود. گاهی اوقات تکنیک های فشرده سازی بر روی تصاویر و فیلم ها در محیط وب استفاده می شود، بنابراین اگر علامت نهان نگاری در این فایل ها وجود دارد، باید در برابر فشرده سازی مقاوم باشد. گاهی اوقات، ممکن است بخشی از محتوای چند رسانه ای نیاز باشد، و به این ترتیب بخواهند همان بخش را از تصویر جدا کنند، که در اینصورت نیاز به استحکام در برابر حذف کردن یا یا برداشتن نیز احساس می شود. ممکن است بعدا این تصاویر چاپ و توزیع شوند. ممکن است در این مورد، اعمال برخی نویز و اصلاح هندسی بر روی تصویر رخ دهد. نسخه های کپی توزیع شده در پخش رادیویی و تلویزیونی دارای نهان نگاری های مختلفی می باشند. ممکن است فردی بوسیله متوسط نسخه های کپی، نسخه کپی موجود را برای فراهم کردن کپی نهان نگاری نشده استفاده کند، که به نام "حمله تبانی" نامگذاری می شود. علامت نهان نگاری قوی باید پس از حملات ممکن، ثابت و قابل تشخیص باقی بماند. بهر حال، این مطلب که علامت نهان نگاری در برابر تمامی حملات ممکن بدون تغییر باقی بماند غیر ممکن است و این فرضیه تا حدودی غیر ضروری و افراطی است. معیار نیرومندی برای کاربرد خاص مورد استفاده قرار می گیرد. از سوی دیگر، مفهوم نهان نگاری شکننده با معیارهای نیرومندی چالش ایجاد می کند. در این نوع از کاربردها، پس از هر حمله اعمال شده، باید بتوان علامت نهان نگاری را تغییر داد و یا از بین برد. در بسیاری از موارد کاربردی، تغییرات و پردازش بر روی سیگنال نهان نگاری بین زمان تعبیه کردن سیگنال و زمان تشخیص آن در مقصد، غیر قابل پیش بینی است، بنابر این لازم است تا علامت نهان نگاری در برابر حملات اعوجاج احتمالی مقاوم باشد. این مورد بخصوص برای شناسایی مالک ، اثبات مالکیت ، انگشت نگاری و کنترل کپی ضروری می باشد. در ضمن این مطلب برای هر برنامه ای که در آن هکرها ممکن است بخواهند علامت نهان نگاری را از بین ببرند، هم درست است.
وفاداری
ویژگی وفاداری یک نگرانی عمده را برای انواع مختلف نهان نگاری غیر قابل مشاهده ایجاد کرده است. وفاداری بالا یعنی اینکه میزان تخریب ناشی از جاسازی کردن علامت نهان نگاری درکیفیت تصویر پوشش(میزبان) برای فرد بیننده محسوس نیست. با این حال، در اکثر برنامه های کاربردی برای افزایش نیرومندی، یک سیگنال واترمارک قوی تر را در تصویر اصلی جاسازی می کنند که این امر باعث از دست دادن وفاداری نهان نگاری می گردد. در این مورد با توجه به سطح اولویت ویژگی وفاداری یا نیرومندی در فرآیند نهان نگاری باید تصمیم گیری مناسب را انجام داد. برخی از الگوریتم های نهان نگاری که از سیستم بینایی انسان استفاده می کنند، علامت نهان نگاری را در مناطق غیر قابل مشاهده از شی پوشش جاسازی می کنند. برای نهان نگاری های قابل مشاهده، صحبت در مورد وفاداری بی ارزش است. با این حال، در این مورد، به منظور جلوگیری از حذف علامت نهان نگاری، آنرا در یک منطقه بزرگ یا مهم تصویر جاسازی نمایند.
هزینه محاسباتی
سرعت فرآیند جاسازی کردن علامت نهان نگاری، یک مسئله بسیار مهم به ویژه در برنامه های کاربردی نظارت بر پخش است. به این صورت که همزمان که نظارت بر پخش انجام می گیرد سرعت تولید رسانه ها نباید کاهش یابد و آشکارسازی علامت نهان نگاری در زمان واقعی باید کار کند. این امر نیاز به طرح نهان نگاری عملی دارد که بسیاری از کارهای محاسباتی را نمی تواند تولید کند. از سوی دیگر، برای یک تابع آشکارسازی که برای اثبات مالکیت مورد استفاده قرار می گیرد چندان اهمیتی ندارد، چون تنها در صورت اختلافات بر سر مالکیت اثر از این تابع آشکار ساز استفاده می شود
میزان تشخیص مثبت-کاذب

—d1151

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

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

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

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

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

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

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

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

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

user8253

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