با سلام 

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

اما همگرایی تکنولوژی های مختلف باعث ظهور cloud computing شد. به تصویر زیر دقت کنین، این تصویر داره جنبه های مختلف cloud computing رو نشون میده:

 یکی از جنبه های cloud، بحث Grid هستش، یعنی یک سیستم خیلی بزرگ با کلی منابع. در پست گذشته راجب Grid صحبت کردیم. گفتیم که به علت وجود مسائلی از جمله ناهمگونی، این تکنولوژی چندان موفقیتی کسب نکرد و اینکه سه جنبه ی دیگه یعنی مجازی سازی، سرویس گرایی و خودمختاری بهش اضافه شد، تا زمینه برای ظهور cloud computing ایجاد بشه.

 همچنین بحث Utility computing که اشاره داره به فروش محاسبات، یعنی در ازای محاسبات، هزینه دریافت بشه. یا اگه بخوایم بهتر تعریف کنیم، میتونیم بگیم یه مدل کسب و کار که براساس اون یه شرکت پشتیبانی میاد تمامی یا بخشی از منابع محاسباتی(رایانه ای) خودش رو در اختیار افراد یا شرکتهای دیگه به عنوان مصرف کننده قرار میده و براساس میزان استفاده از این خدمات، مصرف کنندگان هزینه ای رو به شرکت پشتیبانی پرداخت میکنن.

جنبه ی دیگه ای از cloud computing بحث Hardware Virtualization هستش. قبلا گفتیم که Grid فقط براساس منابع فیزیکی سخت افزار کار میکرد. به این صورت که اگه شما یه سخت افزار داشته باشید، فقط میتونید روی این سخت افزار یه سیستم عامل داشته باشید و مسلما فقط برنامه هایی که روی این سیستم عامل میتونن اجرا بشن رو خواهید داشت. البته بحث مجازی سازی اختصاص به cloud نداره و خودش به صورت مجزا از قبل بوده. پس اگه بخواییم یه تعریف از مجازی سازی داشته باشیم، میتونیم بگیم که : مجازی سازی در سیستمهای کامپیوتری به معنی پیاده سازی یک طرح واقعی با شبیه سازی هستش و به طور کلی مجازی سازی امکان تخصیص منابع سخت افزاری را برای چندین سیستم عامل مختلف فرآهم می کنه. ما مجازی سازی رو در حوزه های مختلف داریم، مثل مجازیسازی شبکه، دسکتاپ، تجهیزات شبکه، سرور، دستگاههای ذخیره سازی و ... 

 بحث  Internet Technologies به سرویس گرایی اشاره داره، یعنی وقتی application ها روی وب قرار میگیرن، میشن سرویس. یعنی خدمات cloud به صورت سرویس در اختیار کاربران قرار میگیره. خب حالا SOA، web 2.0، web service و Mashups چیه؟ SOA مخفف عبارت service oriented architecture هستش، یعنی از یه نرم افزاری بدون دانستن جزیئات مربوط به پلت فرمش، زبانش، سخت افزاری که روش قرار داره، سیستم عاملی که داره روش اجرا میشه، استفاده کنیم. مثل زمانی که از سرویس ترجمه ی گوگل تو برنامه تون استفاده میکنین، نمیدونید این سرویس به چه زبانی نوشته شده، پلت فرمش چیه؟ روی چه سخت افزاری قرار داره و ... ولی دارید ازش استفاده میکنید.

خب web 2.0 هم نسخه ی ارتقاء یافته ی web 1.0 هستش، در نسخه ی اول، صفحات وب به صورت استاتیک در دسترس قرار داره، مثل صفحات فقط خواندنی، اما web 2.0 اومد و صفحات وب داینامیک رو معرفی کرد،به صورتی که کاربر بتونه با این صفحات ارتباط برقرار کنه، امکان نوشتن در این صفحات رو داشته باشه، مثل ویکی پدیا، فیسبوک و ....

web service هم مجموعه ای از متدها در زمان اجراست که متدهای اون از طریق شبکه، نه الزاما اینترنت در دسترس باشن. مثل وب سرویس گوگل.

و Mashups هم ترکیب وب سرویس ها باهم دیگه رو درنظر میگیره. 

یکی دیگه از جنبه های cloud computing، بحث خودمختاری یا Autonomic computing هستش، که از زندگی موجودات زنده الهام گرفته شده، چون سیستم عصبی اونا به طور مداوم از محیط اطرافشون اطلاعات میگیرن، این اطلاعات رو تجزیه و تحلیل میکنن و براساس آن تصمیم میگیرن. خب مشابه این رفتار در محاسبات هم وارد شده و  شرکت IBM اومده یک پلت فرم به نام MAPK رو معرفی کرده که یه سری سنسور هستن که از محیط اطلاعات رو دریافت میکنن، این اطلاعات رو تجزیه و تحلیل میکنن و براساس این یه طرحی داده میشه تا محاسبات طبق شرایط محیط سازگار بشن. به این مدل سیستم ها اصطلاحا self-* هم میگن، این * میتونه هر چیزی باشه، مثل self-configuration یا self-organization یا self-Health و .....