—d1151

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].
69850069596000تصویری از این سیستم عامل را در شکل 2-10 مشاهده می کنید.

mex19

2-2-1- مفهوم کلی حالت اشاعه در حقوق موضوعه ایران و مصر28
2-2-1-1- مفهوم اشاعه در حقوق مصر 32
2-2-2- اسباب و عناصر تشکیل حالت اشاعه33
2-2-2-1- واقعۀ حقوقی33
2-2-2-1- 1- ارث33
2-2-2-1- 2- امتزاج34
2-2-2- 2- عمل حقوقی35


2-2-2- 2- 1- عقد35
2-2-2- 2- 2- عمل شرکاء36
2-2-2-3- سبب پیدایش شرکت در حقوق مصر36
2-3- شرایط عمومی و اختصاصی صحت عقد شرکت 37
2-3-1- شرایط عمومی صحت عقد شرکت مدنی در حقوق ایران38
2-3-1- 1- قصد39
2-3-1- 2- رضا 40
2-3-1- 3- اهلیت شرکاء40
2-3-1- 4- موضوع شرکت41
2-3-1- 5- مشروعیت جهت شرکت 41
2-3-2- شرایط اختصاصی صحت عقد شرکت مدنی در حقوق ایران42
2-3-2- 1- آورده های شرکاء42
2-3-2- 2-آورده های نقدی42
2-3-2- 3- آورده های غیر نقدی43
2-3-2- 4- سود و زیان شرکت44
2-3-3- شرایط عمومی صحت عقد شرکت در حقوق مصر46
2-3-3-1- قصد46
2-3-3-2- اهلیت شرکا47
2-3-3-3- موضوع شرکت47
2-3-4- شرایط اختصاصی صحت عقد شرکت در حقوق مصر48
2-3-4-1- رسیدن به سود 48
2-3-4-2- آورده نقدی48
2-3-4-3- آورده غیرنقدی49
2-3-4-4- عمل یا حرفه 49
فصل سوّم - شخصیت حقوقی و تنوع پذیری شرکت مدنیدر حقوق ایران و مصر
3-1- شخصیت حقوقی شرکت مدنی در ایران و مصر52
3-1-1- بررسی وجود شخصیت حقوقی شرکت مدنی در ایران52
3-1-1-1- مخالفان اعطای شخصیت حقوقی شرکت مدنی52
3-1-2- طرفداران اعطای شخصیت حقوقی به شرکت مدنی55
3-1-2-1- دیدگاه اوّل55
3-1-2-2- دیدگاه دوم 57
3-1-3- شخصیت حقوقی شرکت مدنی در حقوق مصر 61
3-2- تنوع پذیری شرکت مدنی در ایران و مصر61
3-2-1- تقسیمات فقهی شرکت مدنی62
3-2-2- تقسیمات حقوقی شرکت مدنی 65
3-2-2-1- شرکت غیر عقدی65
3-2-2-2- شرکت عقدی 65
3-2-3- تنوع پذیری براساس آورده شرکت66
3-2-3-1- شرکت در اموال67
3-2-3-2- شرکت در اعمال67
3-2-3-3- شرکت وجوه یا اعتبارات68
3-2-3-4- شرکت مفاوضه 69
3-2-4- تنوع پذیری شرکت مدنی در حقوق مصر70
فصل چهارم: حقوق و تکالیف شرکاء در اداره و انحلال شرکت مدنی
4-1- -حقوق و تکالیف شرکاء در ادارۀ امور شرکت مدنی در ایران :75
4-1-1- اداره شرکت مدنی75
4-1-2- شناسایی مرحله اداره شرکت مدنی76
4-1-3- حقوق شرکاء در اداره شرکت مدنی77
4-1-3-1- حق بهره مندی از منافع77
4-1-3-2- حق نظارت و کسب اطلاعات79
4-1-3-3- تملیک مال المشارکه79
4-1-3-4- اختیارات مدیران شرکت80
4-1-3-5- تکالیف شرکاء شرکت مدنی در حقوق ایران 81
4-1-4- حقوق شرکاء در اداره امور شرکت در حقوق مصر 83
4-1-4-1- تکالیف شرکاء شرکت مدنی در حقوق مصر 85
4-1-5- وضعیت اداره امور شرکت و تقسیم سود و زیان ها87
4-1-6- تقسیم اموال شرکت در حقوق مصر 89
4-1-7- انواع تقسیم در حقوق مصر 91
4-1-7-1- تقسیم سود و زیان، تابعیت از تناسب سرمایه ها92
4-1-7-2- تقسیم سود وزیان در حقوق مصر 92
4-1-7-3 بررسی قرارداد خصوصی در تقسیم سود و زیان اضافی از نظر فقهی93
4-1-7-4- اثر شرط عدم ورود خسارت و ضرر به برخی از شرکاء94
4-1-8- وضعیت تصرفات مادی و حقوقی شرکاء در مال مشاع در ایران 96
4-1-8-1- تصرفات حقوقی شرکاء97
4-1-8-2- تصرفات مادی شرکاء98
4-1-8-2-1- تصرفات مادی شرکاء در حقوق ایران98
4-1-8-2-1-1- تصرف مادی بدون اذن شرکاء دیگر98
4-1-8-2-1-2- تصرف مادی با اذن شرکاء دیگر100
4-1-8-3- وضعیت تصرفات مادی و حقوقی در حقوق مصر 101
4-1-8-3-1- تصرفات مادی شرکاء در حقوق مصر102
4-1-8-3-2- حق شریک نسبت به سهم خود102
4-1-8-3-3-حق شریک نسبت به سهم سایر شرکاء103
4-1-8-3-4- وضعیت حقوقی وثیقه مال مشاع104
4-1-8-3-5- تقاضای تقسیم، قبل از فک رهن105
4-1-8-3-6- تقسیم ملک و بازداشت سهم احدی از وراث109
4-2- حقوق و تکالیف شرکاء در تقسیم اموال مشترک ( انحلال)113
4-2-1- جهات کلی تقسیم و انحلال شرکت113
4-2-1-1- تصفیه شرکت و بررسی تعاریف، مفاهیم و قلمرو تقسیم 114
4-2-1-1-1- تعریف تقسیم116
4-2-1-1-2- ماهیت تقسیم117
4-2-1-1-3- قلمرو تقسیم و شرایط صحت آن118
4-2-1-1-3-1- شریک بودن118
4-2-1-1-3-2- مالکیت مشاعی118
4-2-1-1-3-3- قابلیت تفکیک مادی119
4-2-1-1-3-4- حفظ مالیت سهام119
4-2-1-1-3-5- عدم ورود ضرر120
4-2-1-1-3-6- طلق بودن مال مشاع120
4-2-1-2- بررسی موارد اشتباه در تقسیم و بطلان آن121
4-2-1-2-1- اشتباه در شریک121
4-2-1-2-2- اشتباه در موضوع122
4-2-1-2-3- اشتباه در حصه122
4-2-1-2-4- اشتباه در سلامت حصه122
4-2-2- چگونگی تقسیم اعیان، منافع، حقوق تبعی و مطالبات و سر قفلی و عوامل پایان مدت
شرکت126
4-2-2-1- تقسیم عین126
4-2-2-1-2- تقسیم منافع (مهایات) 127
4-2-2-1-3- تقسیم حقوق تبعی129
4-2-2-1-4- تقسیم مطالبات و سرقفلی130
4-2-2-1-5- وجود دین نسبت به مال مشاع130
4-2-2-2- عوامل پایان مدت شرکت131
4-2-2-2-1- فسخ و اقاله عقد شرکت132
4-2-2-2-2- انحلال عقد شرکت132
4-2-2-2-3- تلف مال الشرکه132
4-2-2-2-4- غیر مقدور شدن هدف مشترک133
4-2-2-2-5- انحلال اذن در اداره133
4-2-2-2-5-1- رجوع از اذن133
4-2-2-2-5-2- انحلال شرکت و انقضای مدت مأذونیت134
4-2-2-2-5-3- فوت و حجر یکی از شریکان134
نتیجه گیری138
منابع142

نشانه های اختصاری
ق. م قانون مدنی
ق. ت قانون تجارت
ق. ا. ح قانون امور حسبی
ق. ا. د. د. ع. ا قانون آیین دادرسی دادگاه های عمومی و انقلاب
ق. م. م قانون مدنی مصر
ق. ش. ا. م قانون الشرکات المساهمه مصر
ق. م. و. ع. ل قانون موجبات و عقود لبنان
آ. ا. ق. ت. آ آئین نامه اجرایی قانون تملک و آپارتمانها
آ. ق. ع. ب. ب. ر آئین نامه قانون عملیات بانکی بدون ربا
ق. م. ف قانون مدنی فرانسه
ق. م. م. ا. ا. ب قانون منع مالکیت اراضی در ایران برای اتباع بیگانه

مقدمه:
با توسعه روابط تجاری خصوصاً تجارت بین الملل، این طرز تلقی امروزه باعث شده است که؛ شرکت های مدنی کمتر مورد توجه قرار بگیرند. این در حالی است که اکثر مشارکتهای مدنی در مبادلات اقتصادی جریان داشته و سعی در کاهش اختلافات اقتصادی از نوع مدنی آن برآمده است. تحقیق حاضر بعنوان تلاشی است در جهت کاستن اختلافات و یافتن وجوه اشتراک، شرکت های مدنی در حقوق ایران و مصر و نیز تبیین تکالیف و حقوق شرکاء اینگونه شرکتها در دو قانونگذاری مذکور می باشد. علاوه بر آن شرکت مدنی در کشور ایران و مصر دارای تاریخی به درازای تاریخ فقه اسلامی است و تقدم آن بر شرکت های گوناگون تجاری یکی از امور بدیهی حقوق موضوعه این دو کشور تلقی می شود، امروز در حقوق ایران در همه موارد اینگونه شرکت ها اتفاق نظر فقهی و حقوقی به چشم نمی خورد و اختلاف نظر در همه آثار فقها و حقوقدانان به روشنی مشهود است. اداره امور شرکت یکی از مهمترین مراحلی است که شرکای شرکت مدنی با دقت بسیار به رعایت نمودن حقوق خود از سوی دیگران توجه می کنند. چرا که اشاعه در مالکیت یک مال، که، شرکت مدنی بنابر تعریف ماده 571 ق. م از آن می کند ناشی از اشاعه چند مال است و در حقیقت به معنای اشتراک گذاشتن یک مال در مالکیت متعدد چند شخص است،و این مسئله باعث می شود که دارندگان حق مالکیت از نوع مشاع،در اداره امور شرکت مدنی، اراده خود را نیز کارساز بدانند و از این رو است که،احکام تصرفات مادی و حقوقی هر کدام از شرکاء در شرکت مدنی به گونه ای سنگین در کتب فقهی نگاشته شده است. شرکت مدنی دارای ویژگی مهمی است و آن اینکه با انعقاد عقد شرکت مدنی اموال مشاع دارای شخصیت حقوقی همانند اموال موقوفه یا آورده های شرکت های تجارتی نمی شوند. این مسئله را باید اینگونه شرح داد که زمانی که مالی به صورت شخصیت جداگانه مورد اداره قرار بگیرد و دارای دارایی جداگانه فرض شده باشد، حقوق و تکالیف هر کدام از دارندگان سهم الشرکه در اداره آن مال به گونه ی خاصی تنظیم شده است و کسی موظف به آن نیز می باشد. مالی که شخصیت جداگانه ندارد و به صورت مشاع مورد تملک دو یا چند نفر قرار بگیرد، بدیهی است که حقوق و تکالیف آنها در تصرفات مادی و حقوقی جهت اداره آن مال متفاوت خواهد بود. در حقوق برخی کشورها، خصوصاً حقوق مصر با تقنین مناسب، حداقل اجتهادات و اختلافات حقوق داخلی کاهش یافته و گاه نظریه های جدیدی در زمینه شرکت مدنی چهره قانونی پیدا کرده که پاسخگوی نیازهای جدید بوده و ضرورتاً در حقوق ما نیز باید مورد توجه قرار گیرد. تحقیق حاضر در جهت تبیین مسائل و اختلافات این چنین، تحت عنوان حقوق و تکالیف شرکاء شرکت مدنی در حقوق ایران و مصر نگاشته شده است که قاعدتاً مهمترین اهداف و موضوعاتی که در این تحقیق مورد توجه واقع شده، بررسی مفهوم شرکت مدنی و تأثیر آن بر حقوق و تکالیف شرکاء و شناسایی این حقوق در دوره اداره امور شرکت و نیز دوره انحلال آن است.
فصل اول
کلیات طرح
1-1 بیان مسئله
شرکت مدنی از جمله مهمترین تأسیسات حقوقی کشورهای مختلف بوده و دارای سابقه فقهی است که هم فقهای شیعه و هم فقهای اهل تسنن در خصوص حقوق و تکالیف شرکاء شرکت های مدنی بطور پراکنده مطالبی بیان داشته اند. شرکت مدنی هم در بین فقهاء و هم در بین حقوقدانان معاصر در زمینه شخصیت حقوقی آن و نیز بیشتر موضوعات آن شرکت اختلاف نظر وجود دارد.
از جمله مسئولیت های بحث برانگیز حقوق مدنی در زمینه شرکتهای مدنی، مسئولیت ناشی از امتزاج حقوق شرکاء در اموال مشاع بوده که یا ناشی از امتزاج قهری همانند ارث و یا ناشی از امتزاج اختیاری همانند اینکه،چند نفر دارایی خود را با اراده خود روی هم گذاشته تا بتوانند از طریق آن سودی حاصل شود. حال با توجه به مطالب بیان شده مهمترین موضوعی که در این مورد می توان به آن اشاره کرد این است که تأثیر این امتزاج بر حقوق و تکالیف شرکاء چه می تواند باشد؟ و شرکاء این شرکت در دوران اداره و انحلال شرکت چه تکالیفی نسبت به یکدیگر دارند؟ آیا قانون مدنی ایران با مقررات قانون مدنی مصر سیر یکنواختی را طی کرده است؟
1-2 هدف های تحقیق
هدف از نگارش متن پژوهش انجام مطالعه ای مفصل بر عقد شرکت مدنی در حقوق مدنی کشورمان و کشور مصر است.
تطبیق مسئولیت ها و حقوق و تکالیف شرکاء شرکت مدنی چه از لحاظ قانونگذار کشور ما و چه از لحاظ قانونگذاری کشور مصر و نیز بررسی دقیق نقاط ضعف و قوت این دو قانونگذاری در وضع مقررات و مواد قانونی مربوط به شرکت های مدنی هدف های دیگری هستند که در این پژوهش سعی در یافتن آنها و تطبیق آن دو بر یکدیگر شده است.
1-3 اهمیت موضوع تحقیق و انگیزش انتخاب آن
شرکت مدنی یا به تعبیر بهتر اشاعه در مالکیت ها خود بدین معناست که شرکاء در ذره ذره اموال، شریک یکدیگر هستند. بنابراین، شرکاء شرکت مدنی تکالیفی که در قبال سایر شرکاء خود دارند بیش از حقوق آنها نخواهد بود. این حقوق و تکالیف چه شرکت اختیاری باشد و چه به سبب مزج قهری به وجود آمده باشد مسئولیت های مختلفی را بر شرکاء این شرکت بار می نماید که طبیعتاً در نظام های حقوقی مختلف، متفاوت است که در پژوهش حاضر تطبیق اینگونه مسئولیت ها، خصوصاً از منظر قانونگذار مصر مورد بررسی واقع شده است.
1-4 سؤالات و فرضیه های تحقیق
- سؤالات تحقیق
مفهوم اشاعه و تأثیر آن بر حقوق و تکالیف شرکاء در اداره و انحلال شرکت در حقوق ایران و مصر چیست؟
تنوع پذیری شرکت مدنی از نظر قوانین جاری ایران و مصر و فقه اسلامی چگونه است؟
شرکای شرکت مدنی در فرایند اداره و انحلال شرکت در حقوق ایران و مصر از کدام حقوق و تکالیف برخوردارند؟
- فرضیه های تحقیق:
معمولاً مسئولیت شرکاء در مقررات موضوعه در شرکت مدنی بر میزان سرمایه یا سهم الشرکه است.
بطور کلی شرکت مدنی در حقوق موضوعه ایران و مصر به عنوان یک عقد مستقل شناخته شده است.
مقررات حقوق مدنی ایران در خصوص میزان حقوق و تکالیف شرکاء بصورت توازن نسبی میان شرکاء ایجاد می گردد.
1-5 مدل تحقیق
در پژوهش حاضر از مدل ها و روش های توصیفی، تحلیلی و نیز کتابخانه ای مورد استفاده واقع شده است.
1-6 تعاریف عملیاتی متغیرها و واژه های کلیدی
شرکت مدنی :
به عبارت ساده تر شرکت عبارت است از : تجمع و فراهم بودن حق مالکیت اشخاص مختلف در یک مال تقسیم نشده و غیر مجزا می باشد.و این یکی مال مشاع است که شرکاء در ذره ذره مال شریک هستند و هیچ قسمتی از مال به شخص خاصی متعلق نمی باشد.
تکالیف شرکاء :
تکالیف شرکاه در شرکت مدنی در غالب اداره نمو دن شرکت بیان شده است. و مطابق ماده 584 ق. م. شریکی که مال مشترک در ید اوست در حکم امین است.بنابرین یکی از تکالیف شرکاء در خصوص اموال شرکت حفظ و نگهداری از این اموال است.
حالت اشاعه :
حالت اشاعه که مرحله ناقص و تکامل نیافته اتحاد مالکیت هاست مالکیت هر یک از شریکان اصالت خود را از دست نمی دهد و در مالکیت جمعی منحل نمی شود.منتهی در عالم خارج امیخته با حق دیگران است.
حقوق :
مجموعه ای از اعلام اراده ازاد شرکاء مبنی بر تشکیل وانعقاد عقد شرکت است، و اثار حقوقی بوجود امده تابع اینگونه اراده ها میباشد.
1-7 روش تحقیق
آنچه در پژوهش حاضر مورد استفاده واقع گردید، مراجعه به کتابخانه، مقالات، و کتب و رویه قضایی و نظرات مشورتی بوده است و با بررسی قوانین دو کشور ایران و مصر نقاط ضعف و قوت و نیز تشابهات و تفاوتهای این دو قانون مورد تطبیق واقع شود.
1-8 محدودیت ها و مشکلات تحقیق
مهمترین مشکلات و محدودیت هایی که در طول نگارش تحقیق حاضر پیرامون موضوع پایان نامه با ان مواجه شدم ، کمبود منابع معتبر در حقوق مصر بوده است . هر چند که الوسیط فی شرح قانون المدنی استاد یزرگ حقوق مصر عبد الرزاق السنهوری و چند منبع دیگر کمک بزرگی بود لیکن منابع روز امد حقوق مصر در کتابخانه ها یافت نشد و در حقوق ایران هر چند اساتید عمدتا به مباحث حقوق شرکاء پرداخته اند لیکن در خصوص تکالیف شرکاء در شرکت مدنی کمتر محقق مطالب جامع و کامل نوشته است .
1-9 تقسیم بندی مطالب تحقیق
به منظور بحث و بررسی اهداف فوق الذکر این رساله در چهار فصل تدوین شده است .
فصل اول به بیان کلیات طرح پرداخته که در ان به بیان مسئله ، اهداف تحقیق ، سوالات و فرضیه ها مورد بحث واقع شده است .فصل دوم ان مشتمل بر مفهوم ، ویژگی ها ، شرایط عمومی و اختصاصی شرکت مدنی در حقوق ایران و مصر می باشد . فصل سوم به شخصیت حقوقی و تنوع پذیری شرکت مدنی در دو نظام حقوقی یاد شده اختصاص یافته ودر اخرین فصل این پایان نامه حقوق و تکالیف شرکاء اینگونه شرکتها در اداره و انحلال مورد بررسی واقع گردیده است و در خاتمه این پایان نامه اهم دستاوردهای ان در نتیجه گیری درج شده است .

فصل دوم:
مفاهیم کلی اشاعه و شرکت مدنی
در حقوق ایران و مصر

الف : در حقوق ایران
بنابر تعریف ماده 571 قانون مدنی که از شرکت های مدنی دارد: «شرکت عبارت است از اجتماع حقوق مالکین متعدد در شیء واحد به نحو اشاعه »، منظور این است که این ماده در جهت تبیین مالکیت های مشاع است.
با توجه به تعریف فوق می توان گفت: که مال مشاع مالی است که دارای مالکین متعدد است بدون آنکه مورد مالکیت آنان مشخص باشد و هر ذره و هر فرض از این مال متعلق به کلیه مالکین می باشد و در نتیجه اگر دو نفر هر یک مالک یک طبقه از یک ساختمان دو طبقه باشند چنین مالکیتی مشاع محسوب نمی شود و به آن مالکیت مفروز که مالکیت مربوط به شخص واحد است اطلاق می گردد.
از جمله مهمترین موارد اشاعه در مالکیت ها، اسباب و عناصر اشاعه است که دارای جنبه های استثنایی و بر اثر موجبات خاص بوجود می آید. این اسباب عبارتند از:
الف- ارث:
که بر اثر فوت، اموال شخص متوفی به ورثه منتقل می شود که مالکیت همگی ورثه در صورت تعدد در ترکه به صورت مشاع خواهد بود.
ب- عقد:
بر اثر عقد مالکیت مشاع به وجود می آید مثل اینکه دو نفر متفقاً هبه ای را قبول کنند.
ج- مزج:
در این مورد بر اثر امتزاج دو مال به صورتی که قابل تفکیک و تمیز نباشند شرکت بوجود می آید و امتزاج اعم از اینکه به صورت ارادی یا قهری باشد سبب پیدایش شرکت خواهد بود. (مواد 572 و 573 قانون مدنی).
امواع مشاع خصوصیت دیگری را نیز واجد هستند که در واقع از مهمترین خصایص اینگونه اموال نیز به شمار می آید و آن اینست که احکام و چگونگی تصرف در اموال مشاع و منافع حاصل از آنها است همانگونه که مواد 30 و 538 و 582 و ماده 475 قانون مدنی در خصوص تصرفات و اجاره و منافع اینگونه اموال بیان داشته اند.
اما در خصوص شرکت مدنی، می توان اذعان نمود که شرکت عقدی یا مدنی یکی از عقود معینه و به همین جهت قانون مدنی بحث شرکت را در باب عقد آورده است و باید علاوه بر کلیه شرایط اساسی برای صحت معامله (قصد و رضای طرفین و اهلیت، موضوع معین و مشروعیت جهت معامله)، دارای شرایط خاصه ای باشند که با اجتماع آن شرایط عقد شرکت حاصل می گردد. شرکت مدنی یا در اثر عمل حقوقی و یا واقعه حقوقی بوجود می آید.
در قوانین پاره ای از کشورها تعریف دقیقی از این عقد کرده اند از جمله ماده 1832 قانون فرانسه در تعریف آن بیان می دارد؛ شرکت عقدی است که به موجب آن دو یا چند شخص توافق می کنند اموال و یا صنعت خود را به منظور تقسیم سود و یا بهره مند شدن از وضعیت اقتصادی ناشی از آن به اشتراک گذارند، شرکاء متعهد می شوند که در زیان حاصله نیز مشارکت کنند.
موضوع شرکت نیز دارای حالت های مختلفی است که ممکن است آورده شرکاء وجه نقد باشد و یا اینکه شرکاء کالا و اموال غیرنقدی را موضوع عقد شرکت قرار داده باشند.
در مورد اداره شرکت مدنی و بر طبق قواعد حاکم بر اشاعه هیچ یک از شرکاء نمی تواند بدون اذن دیگران در حال مشترک تصرف کند، زیرا انتشار حق مالکیت شریکان در تمام اجزای مال مشاع باعث می شود تا هر تصرف بی اذن تجاوز به حقوق دیگران تلقی گردد.
بحث مهمی که در خصوص شرکت مدنی قابلیت طرح را داشت و هم در زمینه فقهی و هم در بین حقوقدانان معاصر اختلاف نظر وجود دارد بررسی این مطلب است که، آیا عقد مستقلی به نام عقد شرکت وجود دارد یا خیر؟ که همانگونه که بیان شد قانونگذار بحث مربوط به شرکت را در میان عقود معین ذکر کرده که در متن این پژوهش سعی بر آن شده این اختلاف نظرها را تحلیل و مورد بررسی قرار داده و نتیجه قابل قبولی در زمینه این موضوع و پاسخ مناسبی به این پرسش داده شود.
در این فصل ضمن بیان مفهوم و اسباب و عناصر اشاعه به مفاهیم لغوی، اصطلاحی، فقهی و حقوقی و تعریف عقد شرکت نیز پرداخته شده است و همچنین وضعیت عقد تلقی کردن شرکت مدنی و مفاهیم سه گانه شرکت عقدی یا حاصل از عقد، ویژگی های شرکت مدنی و اختلاف نظرهایی که در زمینه جایز یا لازم بودن عقد شرکت وجود دارد نیز مورد بررسی واقع گردیده است.
شرایط صحت عقد شرکت که علاوه بر شرایط عمومی، شرایط اختصاصی صحت این عقد از اهداف دیگری است که در این فصل مورد تحلیل واقع گردیده است.
2-1- مفهوم شرکت مدنی :
از مفاهیم جوهری و توصیفی شرکت مدنی، حالت اشاعه است و یکی از مفاهیم اساسی ایجاد شرکت مدنی نیز به شمار می آید.
با توجه به تعریف ماده 571 ق. م. که در تعریف شرکت بیان داشته است: «شرکت عبارت از اجتماع حقوق مالکین متعدد در شیء واحد به نحو اشاعه». مقصود از حقوق مالکین، قاعدتاً، حق مالکیت آنها است که در ذره ذره مال یا سهم الشرکه ی اموال مشاع که روی هم گذاشته اند مستقر است. یعنی مالکان در آن واحد مالک یک شیء می باشند.
در این مبحث ضمن بیان مفهوم لغوی شرکت به مفاهیم اصطلاحی آن و نیز به انواع شرکت مدنی از نظر فقهی و حقوقی نیز خواهیم پرداخت.»
که از لحاظ فقهی شرکت به شرکت املاک و شرکت عقود تقسیم می شود و در حقوق کنونی بنابر عقد دانستن شرکت مدنی که با توجه به تعریف شرکت در قانون و اینکه قانونگذار از آن بعنوان عقدی از عقود معین نام می برد و با توجه به بررسی و تحلیل های بعمل آمده در متن، شرکت مدنی را حاصل از عقد باید دانست، اینگونه شرکت را تحت سه مفهوم، شرکت عقدی به معنای شرکت حاصل از عقد و شناسایی شرکت عقدی به عنوان عقدی مستقل و شرکت عقدی به معنای اداره مال مشاع مورد بررسی قرار خواهیم داد.
2-1-1- مفهوم لغوی شرکت:
شرکت در لغت به کسرِ شین و سکونِ راء، مصدر فعلِ شرک و اَشرک به معنای نصیب، قسمت و سهم و جمع آن اشتراک است. البته نظر دیگری وجود دارد که می گوید: شرکت در لغت از ریشهُ « شرک » به معنای شریک شدن، انباز شدن، همدست شدن در کاری، انبازی، مشارکت، آمیزش و اختلاط است. اما در فقه به سهم و نصیب هر کس در مالِ مشاع و یا مشترک شرک گفته می شود ( سهم و سهم الشرکه و شرکت ). گاهی اوقات این واژه به معنای مشارک نیز آمده است.
2-1-2- مفهوم اصطلاحی شرکت:
مفهوم اصطلاحی شرکت برگرفته از مفهوم فقهی است که عبارت است از اینکه دو یا چند نفر سرمایه خود را معین نموده و روی هم گذاشته با این هدف که سودی عاید آنها گردد.در فقه اصطلاح شرکت از اصطلاحات عرفی آن بدور نمانده است و نصوصی دال بر اینگونه شرکت ها در فقه موجود می باشد.در قران کریم نیز ایاتی وجود دارد که خود مشروعیت شرکت مدنی از دیر زمان بر کتب فقهی نیز می افزاید.اصطلاحات فقهی شرکت که عبارتند از : شرکت املاک و شرکت عقود است .در ذیل ضمن بیان اصطلاحات فقهی به اصطلاحات حقوقی آن نیز خواهیم پرداخت.
2-1-2-1- در فقه اسلامی:
شرکت یکی از تأسیسات حقوقی ملل مختلف است و مبنای اصلی شرکت مرسوم بودنِ عرفی آن در میان ملل مختلف از دیر زمان می باشد، در قرآن کریم و در سنت نیز نصوصی دال بر مشروعیت شرکت وجود دارد و اجماع امت اسلامی نیز بر این تعلق گرفته است و حکم اسلام در اینِ زمینه امضایی است.
در خصوص پیشینه شرکت در اسلام و به ویژه در قرآن کریم از معمول بودن شرکت در زمان حضرت داود سخن می گوید : « و آن کثیراً من الخلطاء لیبغی بعضهم علیَ بعضِ إلاّ الذیّن آمنو و عملوا الصالحات و قلیلٌ ما هم... » که بسیاری از شریکان به همدیگر ستم می کنند مگر آنان که ایمان آورده اند و کارهای شایسته کرده اند و اینان اندک شمارند... در مورد برخی از میراث بران، در قرآن کریم نیز آمده است :« فإن کانوا اکثر من ذلک فهم شرکاءُ فی الثلث.../ و اگر بیشتر از این باشند، آنان در یک سوم شریکند » در حدیث نیز آمده است که رسول اکرم ( ص ) فرموده است. « یدالله علی الشریکین ما لهم یتخاونا. دست رحمت خداوند با شریکان است تا وقتی که دست خود را به خیانت نیالوده اند.» در تعلیق بر این حدیث نیز محقق حلی شرکت را چنین تعریف کرده است: شرکت فراهم آمدن حقهای چند مالک است، در یک چیز، بطریق مشاع بودن آنها. و چیز مشترک گاهی عین می باشد و گاهی منفعت، و گاهی حق غیر مالی. مانند قصاص و جنایت. از نظر فقهی عقد شرکت، عقدی است مستقل در میان سایر عقود پذیرفته شده است و فقها عقد شرکت را و انواع آن را بر دو نوع تقسیم وتعریف کرده اند: شرکت املاک و شرکت عقود.
2-1-2-1- 1- شرکت املاک:
شرکت املاک عبارت از شرکتی است که دو نفر یا بیشتر بدون عقد شرکت مالک مالی می شوند. که در واقع دو نفر مالک بدون اینکه عقد شرکتی منعقد نمایند سرمایه خود را روی هم گذاشته به این قصد که با آن کاسبی نموده وسودی حاصل گردد و در آن سود شریک شوند. که به نوبه خود این نوع شرکت بر دو نوع است ؛
الف) شرکت اختیاری : که خاستگاهِ آن عمل ( فعل ) شرکاست.
ب) شرکت جبر که منشأ آن فعلِ شرکا نیست مانند مالی که به طور مشترک به دو نفر به ارث می رسد، این نوع شرکت و انواع آن در حقوق مصر نیز اشاره شده است و در واقع حقوق مصر در زمینه شرکت مدنی بیشتر متکی و بر گرفته از نظرات فقها و اقدامات صورت گرفته درباره این نوع شرکت است. البته قانونگذار مصر شرکت ناشی از جبر که ناشی از اراده آزاد شرکاء تشکیل نیافته را، بعنوان عقد مستقل شرکت مدنی نمی داند و کمتر پیش می آید که شرکاء یا وراث بر بقاء اموالی که به آنها به ارث رسیده است را بصورت یک عقد شرکت اداره نمایند و بیشتر به دنبال تقسیم آن می باشند. در مقام مقایسه در خصوص شرکت جبر یا ناشی از ارث ماده 574 قانون مدنی ایران مقرر می دارد ؛شرکت قهری ، اجتماع حقوق مالکین است که در نتیجه امتزاج یا ارث حاصل می شود . قانونگذار مصر در خصوص اینگونه شرکت از تعبیر مالکیت مشاع خانواده نام می برد و در ماده 851 قانون مدنی بیان می دارد ؛اعضای خانواده واحدی که حرفه یا مال یا منافع مشترک دارند می توانند به طور کتبی (بصورت عقد شرکت)توافق و مالکیت مشترک خانوادگی ایجاد کنند. این مالکیت مشترک ، شامل ترکه ای که به ارث می برند و توافق می کنند کلا یا جزئا در مالکیت مشترک باقی بمانند یا هر مال دیگر متعلق به انان که توافق می کنند در مالکیت مشترک خانواده ، داخل شود، خواهد بود .
همچنین قانونگذار مصر در زمینه مقررات شرکت قهری یا ناشی از ارث را برای مدتی که بیش از پانزده سال نباشد را می توان ضمن توافق وراث ، ایجاد نمود . معهذا ، هر یک از وراث یا شرکاء می تواند در صورتی که دلیل موجهی داشته باشد از دادگاه اجازه خارج کردن سهم خود را از مال مشترک ، پیش از پایان مدت مقرر بخواهد .و در صورتی که برای این نوع مالکیت مشترک ، مدت تعیین نشده باشد ، هر یک از شرکاء می تواند پس از شش ماه از تاریخ اعلام قصد خود را به سایر شرکاء ، سهم خود را از شرکت خارج کند .و در مورد تقسیم اموال این نوع شرکت قانون مدنی مصر در ماده 853 بیان داشته است که ؛ شرکاء نمی توانند مادام که مالکیت مشترک خانوادگی ادامه دارد درخواست تقسیم کنند و هیچ شریکی نمی توانند حصه خود را به شخصی که عضو خانواده نیست ، بدون رضایت سایر شرکاء منتقل کند . هر گاه شخصی که عضو خانواده نیست در نتیجه انتقال اختیاری یا قهری ، سهم یکی از شرکاء را تحصیل نماید ، تنها در صورتی شریک خانواده خواهد سد که او و سایر شرکاء راضی باشند .
2-1-2-1- 2- شرکت عقود:
شرکت عقود عبارت از شرکتی است که منشأ آن عقد باشد، با این توضیح که با اراده و توافق شرکاء بوجود می آید. و اما از نظر حقوقی و آنچه که در قانون مدنی در خصوص تعریف شرکت آمده است باید گفت که ماده 571 قانون مدنی بیان می دارد : « شرکت عبارت است از اجتماع حقوق مالکین متعدد در شیء واحد به نحو اشاعه ». این تعریف به نوعی از فقه و قواعد فقهی گرفته شده است و بطور مطلق و به عبارت کلی است که شامل همه امور اشاعه از جمله دیوار مشترک و شرکت در حق عبور و غیره نیز میشود، ولی باید توجه کرد که همه، این موارد اشاعه دارای مشخصات مخصوص به خود بوده که علاوه بر وجود تشابه با عقد شرکت دارای تمایزاتی نیز می باشند.
2-1-2-2- در حقوق موضوعه ایران و مصر:
در حقوق ایران و مصر تعاریف مختلفی برای عقد شرکت بیان شده است که هم از لحاظ حقوقی و هم از لحاظ فقهی بین صاحب نظران و علمای حقوق اختلاف نظر بوده است. در حقوق مصر نیز در این خصوص علاوه بر وجود تعاریف مختلف از عقد شرکت حقوقدانان و خصوصاً قانونگذار مصر از اصطلاحات فقهی عقد شرکت استفاده کرده و به نوعی می توان گفت که در حقوق مصر عقد شرکت برگرفته از اقوال و نظرات فقها است که در ذیل ضمن بیان تعاریف شرکت مدنی در حقوق ایران به تعاریف آن در حقوق مصر نیز پرداخته می شود.
2-1-2-2-1- در حقوق موضوعه ایران:
شریک شدن در مالکیت که همان ملک شائع ( مشاع ) را گویند و در حقوق به هر یک از مالکان ملک مشاع به شریک در مالکیت تعبیر می شود. برخی در تعریف شرکت در اصطلاح فقهاء می نویسند: شرکت اصطلاحاً عبارت است از ؛ اینکه دو نفر یا بیشتر سرمایۀ تعیین و روی هم گذارند، که با آن کاسبی کنند.در حقوق چنانکه ماده 571 قانون مدنی در تعریف شرکت می گوید: « شرکت عبارت است از اجتماع حقوق مالکین متعّدد در شیء واحد به نحو اشاعه». حقوقدانان در تعریف شرکت بیان می دارند که شرکت عبارت از؛ « عقدی است که به موجب آن دو یا چند شخص، به منظور تصرف مشترک و تقسیم سود و زیان و گاه مقصد دیگر، حقوق خود را در میان می نهند تا به جای آن مالک سهمی مشاع از این مجموعه شوند. در این تعریف عمدتاً بر جهت شرکت و انگیزه شرکاء تکیه شده است، در حالی که جهت یا انگیزه نمی تواند مُعرَّف ماهیت حقوقی باشد، بلکه اثر ذاتی و اصلی هر عقدی می تواند ماهیت آن را تعریف کند.
حقوقدانی دیگر شرکت را چنین تعریف کرده است: مطابق تعریفی که ماده 571 ق.م. از شرکت می کند، شرکت، حقوق مالکین متعدد در شیئی واحد به نحو اشاعه جمع می گردد. واضح است که مقصود از حقوق مالکین متعدد، حقوق مالکیت ایشان است یعنی چند نفر در آن واحد، مالک یک شیء هستند. اجتماع حقوق در یک شیء به دو صورت قابل تصور است.
صورت اول آن است که هر یک از دو نفر، مالک یک قسمت مشخص از یک شیء باشند، مانند آنکه دو نفر مالک یک باغ محصور باشند به نحوی که هر یک از ایشان مالکیت قسمت مشخصی از آن را دارا باشد. این صورت از اجتماع حقوق مالکیت شرکت نخواهد بود، زیرا درست است که موضوع مالکیت همۀ شرکاء عرفاً، شییء واحد محسوب می شود، ولی در حقیقت هر یک نسبت به قسمت معینی از اجزاء آن شیء واحد، مالکیت دارند و ملک هر یک از دیگری جدا است.
صورت دوم، آن است که موضوع مالکیت هیچ یک از مالکان شیء واحد، مشخص نباشد بطوری که هر جزئی از اجزاء شیئی واحد در عین حال متعلق حق مالکیت هر یک از ایشان باشد. این صورت از مالکیت را در اصطلاح اشاعه می گویند که سبب پیدایش شرکت خواهد بود. شرکت عقدی مستقل، مانند سایر عقود معین است و در نتیجه یک عمل و ماهیت حقوقی است که در فقه به عقدی تعریف شده که نتیجه یا اثر ذاتی آن، جواز یا اباحه مالکین مال مشاع در آن می باشد.
به نظر می رسد که این تعریف تا حدود زیادی با قرار داد مدیریت شرکت در حقوق معاصر منطبق است، زیرا اثر ذاتی و اصلی قرارداد مدیریت، جواز تصرف مدیر در امور شرکت یا مال الشرکه می باشد. بنابراین، نباید عقد شرکت را با قرارداد اداره خلط نمود. البته در حقوق نیز بعضی تحت تأثیر این تعریف، معتقدند: « شرکت عقدی، عبارت از عقدی است بین دو یا چند نفر بر معامله نمودن به مالی که بین آنان مشترک می باشد... اثر عقد مزبور آن است که هر یک از شرکاء به نمایندگی از طرف دیگران می تواند به وسیله کسب سود و معامله نمودن در مال الشرکه تصرف کند. »لازم به ذکر است که این تعریف از دو دیدگاه فقهی و حقوقی، با ماهیت شرکت سازگار نیست، زیرا از دیدگاه فقهی، تصرف شریک مأذون، یعنی مدیر، محدود در انجام معامله نیست و شرکاء می توانند بر هر نوع تصرفی، اعم از معاملی یا حقوقی و مادی توافق کنند. در نتیجه، تعریف شرکت به تصرف حقوقی به نمایندگی از سایر شرکاء با نظریات فقهی مطابق نیست.
از دیدگاه حقوقی نیز، انجام معامله بوسیله مال مشاع توسط شریک مأذون، یعنی مدیر، غالباً به قصد فروش است و طبق بند 1 ماده 2 ق.ت. کسب هر نوع مال به قصد فروش یا اجاره عمل تجاری محسوب می شود. بنابراین، این شرکت از دیدگاه حقوقی تجاری است. از طرف دیگر طبق ماده 220 ق.ت. اگر شرکتی تشکیل شود ولی مطابق با تشکل های هفت گانه مذکور در ماده 20 ق.ت. نباشد، شرکت تضامنی محسوب می شود. بنابراین، اگر شرکتی مطابق با تعریف مذکور تشکیل شود، چنین شرکتی، از دیدگاه حقوقی، شرکت مدنی نیست، بلکه تضامنی محسوب می شود.
بنابراین، با توجه به اثر ذاتی و اصلی شرکت مدنی؛ « شرکت عبارت از تعهد دو یا چند نفر در قبال همدیگر جهت همکاری برای رسیدن به هدف مشترک با آورده معلوم می باشد. » در این تعریف سه رکن اصلی شرکت در نظر گرفته شده است : اولاً شرکت عقدی است عهدی که در نتیجه آن شرکاء تعهد می کنند تا با هم همکاری کنند. ثانیاً همکاری شرکاء مهمل و بی جهت نیست، بلکه آنان برای رسیدن به هدفی مشترک فعالیت می کنند. ثالثاً آورده و مال الشرکه لازم است، چون شخص تا زمانی که چیزی را به مشارکت نیاورده عرفاً عنوان شریک بر او صدق نمی کند.
2-1-2-2-2- در حقوق موضوعه مصر:
در حقوق مصر از شرکت مدنی تحت عنوان شرکت ملکی یاد می کنندکه: «عبارتست از مالکیت مشترکی بین اشخاص متعدد در مورد یک شیء واحد است.» به گونه ای که هر کدام از آنها سهامی معلوم داشته باشند که بیانگر سهم یا آورده آنها است و با دیگران در جزء جزء این سهام برابر است این نوع شرکت، اجازه مشترک را به هر شریکی نسبت به حقی که در آن شرکت دارد را داده است به شرط اینکه این شیوه تصرف مخالف ماهیت مشترک و یا هدف مشترک دیگر شرکاء نباشد و همچنین نباید متناقض با منافع شرکت و حقوق شرکاء باشد.
همچنین در حقوق مصر قصد و نیت شرکاء از تشکیل شرکت نیز که همانا کسب سود و منفعت است باید در قرارداد شرکت منجز باشد. بنابراین می توان گفت که: در حقوق مصر وجود دو رکن اساسی را لازم و ضروری برای انعقاد شرکت می داند؛
یکی از آنها آورده یا سهم الشرکه شرکاء در شرکت است و دیگری هدف و نیت از انعقاد شرکت، که همانا کسب منفعت است، در قانون مدنی مصر منظور از نیت و هدف شرکاء از کسب سود و منفعت که یکی از ارکان اساسی تشکیل شرکت عنوان شده این است که: این قصد و نیت همان عنصر روانی تشکیل عقد شرکت است که در واقع در پی این عنصر، سود یا بهره ای نصیب شرکاء شود.
بنابراین قانونگذار مصر در ماده 505 ق.م. شرکت را چنین تعریف نموده است؛( شرکت عبارت است از عقدی است که به موجب ان،دو یا چند شخص متهد می شوند با هم در یک طرح مالی، با تا مین حصه ای از مال یا کار، با هدف تقسیم منافع یا زیان حاصل از این کار،سهیم شوند.
2-1-2-3- اثبات عقد شرکت و مفاهیم سه گانه شرکت عقدی
در خصوص عقد تلقی نمودن شرکت مدنی در بین فقهاء و صاحبنظران علم حقوق اختلاف نظر موجود است.
در فقه، معدودی از فقهاء با انکار عقد شرکت به عنوان عقدی مستقل در کنار سایر عقود، معتقدند که حصول شرکت، تنها به سبب امتزاج بوجود می اید. خواه امتزاج اختیاری باشد و خواه قهری، اما برخی دیگر برای عقد شرکت، اصالت قائل شده و آن را برای ایجاد اشاعه در مالکیت ها مؤثر می دانند. به عقیده این گروه اراده طرفین عقد، بدون نیاز به مزج ، توان ایجاد شرکت را دارد. در حقوق نیز صاحبنظران علم حقوق برای عقد شرکت، اصالت قائل شده اند. چرا که چنانچه قصد مشترک طرفین عقد و هر آنچه که اطراف عقد اراده بکنند، مخالف روح و مفاد قوانین و نظم حقوقی و اخلاق حسنه نباشد. توان تبدیل مالکیت شخصی به مالکیت جمعی و مشترک را دارد. (ماده 10 ق. م)
قانونگذار مصر نیز در خصوص عقد تلقی کردن شرکت مدنی بر این نظر است که اراده آزاد طرفین عقد شرکت و قصد مشترک آنها اگر این باشد که سرمایه ای روی هم گذاشته و سودی حاصل آید و این سود را بین خود،تقسیم نمایند قطعاً،عقد شرکت مدنی محقق می شود. همچنین با توجه به تعریف شرکت در ماده 505 ق. م. مصر دیگر در عقد تلقی کردن شرکت مدنی از نظر قانونگذار مصر تردیدی باقی نمی ماند.
در ذیل ضمن بیان مفاهیم سه گانه شرکت به عقد شرکت و اینکه آیا عقد مستقلی به نام عقد شرکت در بین عقود معین قانون مدنی پذیرفته شده است یا خیر؟ نیز می پردازیم.
2-1-2-3-1- مفاهیم سه گانه شرکت عقدی:
برای روشن شدن تعاریف و ماهیت شرکت مدنی، لازم است ابتدا مفهوم شرکت عقدی بیان شود که با بررسی کتب حقوقدانان و فقهای عظام، می توان سه مفهوم جداگانه از شرکت عقدی به دست آورد. شرکت عقدی یا شرکت عقود که از تقسیمات فقهی شرکت است، عبارت از شرکتی است که منشأ آن عقد باشد، با این توضیح که به توافق شرکاء حاصل آید، چنانکه دو یا چند نفر به موجب عقدی که میان همدیگر منعقد می کنند، به این توافق می رسند، در این شرکت باید اندازه سودِ هر شخص ( شریک ) معلوم باشد و نیز سود باید جزء شایع و نه معینباشد و موضوع شرکت نیز از موارد قابل وکالت باشد که در ذیل به شرح و تفسیر بیشتر شرکت عقدی می پردازیم.
2-1-2-3-2- شناسایی شرکت عقدی به عنوان عقدی مستقل:
همانگونه که در مقدمه فصل بیان شد در این خصوص اختلاف نظر وجود دارد ؛ از یک سو این نزاع مطرح است که آیا اساساً در عقود معین، عقدی مستقل به نام عقد شرکت وجود دارد یا خیر،؟ و از سوی دیگر در این مسئله اختلاف است که آیا عقد شرکت به خودی خود توان ایجاد اشاعه را دارد یا لزوماً شرکت عقدی است که باید مسبوق به اختلاط و امتزاج اموال شرکا باشد؟
معدودی از فقها با انکار عقد شرکت به عنوان عقدی مستقل در کنار سایر عقود معتقدند: صرف انعقاد عقد، موجب اشاعه و ممزوج شدن اموال شرکا نمی شود بلکه شرکت با مزج و اختلاط اموال مالکین حاصل می گردد، خواه سبب امتزاج اختیاری باشد یا قهری. مقتضای تحقیق در کلام فقهای قدیم شیعه این است که از نظر آنها عقدی به نام شرکت در کنار سایر عقود وجود ندارد بلکه تنها سبب برای حصول شرکت، امتزاج است، چون مقتضای شراکت عدم جواز تصرف هر یک از شرکا بدون اذن شریک دیگر است و از طرفی هم هدف از شرکت این است که هر یک از شرکا با خرید و فروش و تحصیل سود در آن تصرف کند، پس لازم است هر یک از دو شریک دیگری را نسبت به جمیع تصرفات تجاری وکیل کند، و لفظ « تشارکنا » دخالتی در حصول شراکت ندارد.
به نظر می رسد از آن جا که، فقها در آثار خود انواع شرکت ها، از جمله شرکت در اعمال، وجوه، مفاوضه و اموال را بیان نموده و تنها نوع اخیر را صحیح دانسته اند، این امر خود دلیلی بر شناسایی عقد شرکت می باشد، علاوه بر این فقهاء نیز به عقد شرکت تصریح نموده اند، در باب شرکت از نوعی تراضی سخن به میان می آورند که موضوع آن اشاعه در مالکیت اموال و شرکت در منافع است. همچنین برخی از فقهاء دیگر می گویند: «شرکت صحیح نیست مگر در اموال، البته ایشان شرکت را تعریف نمی کند ولی ظاهراً مرادشان عقد شرکت است.» زیرا در چند سطر بعد می گوید: شرکت به صورت مدت معین و مؤجل باطل است و هر یک از دو شریک هر وقت خواست می تواند از شریکش جدا شود و وقتی یکی از دو شریک فوت نمود شرکت باطل خواهد شد. بنابراین بطلان به دلیل تأجیل یا معلوم کردن مدت یا فوت شریک به معنای اجتماع حقوق مالکین در شیء واحد به نحو اشاعه معنا ندارد، مگر این که، سبب این شراکت عقد باشد؛ به عبارت دیگر، شرکت به معنای اجتماع حقوق مالکین در شیء واحد به نحو اشاعه، قابل اتصاف به صحت و بطلان نمی باشد. بر موارد فوق می توان نظریات مشابه فقیهان دیگر را افزود. از استقرای در مجموع آرا و نظریات فقهای عظام چنین بر می آید که شرکت به عنوان یک عقد مستقل، در کنار دیگر عقود معین پذیرفته شده است. حال این سئوال مطرح است که آیا عقد شرکت به خودی خود می تواند سبب اشاعه شود؟ اکثر فقها می گویند: شرکت عقدی است که به صرف ایجاب و قبول بوجود نمی آید، بلکه شرط تحقق آن این است که مال دو شریک قبل یا بعد از عقد ممزوج شود. بنابراین مثل قبض و اقباض در وقف و رهن، در این عقد نیز امتزاج مؤثر است حال یا به عنوان علت تامه یا جزء اسباب تشکیل دهندۀ عقد.4
صاحب عروه نیز در این زمینه می گوید: در شرکت عقدی علاوه بر شرایطی نظیر ایجاب و قبول، بلوغ، عقل، اختیار و عدم حجر، شرط دیگری نیز وجود دارد که عبارت است از : امتزاج در مال یا اموال به نحوی که قابل تمیز از همدیگر نباشند و این امتزاجیا باید قبل از عقد صورت بگیرد یا بعد از عقد.5
اما برخی دیگر، برای عقد شرکت اصالت قائل شده و آن را برای ایجاد اشاعه مؤثر دانسته اند؛ اینان معتقدند که حاکمیت اراده توان ایجاد شراکت بین اموال شرکا بدون احتیاج به مزج را دارد. از جمله این دسته از فقها معتقدند: اشاعه و اشتراک در اموال با عقد شرکت حاصل می گردد و می گویند: مزج در شرکت عقدی زمانی ایجاد شراکت می کند که شرکت قبلاً انشاء نشده باشد، پس اگر اشاعه به واسطه عقد محقق شد، دیگر به عامل مزج نیازی نیست. اینان در این زمینه اجماعی را که از سوی بعضی از فقها ابراز شده است و مبنی بر این که مزج شرط صحت شراکت است. صراحتاً رد می کنند و بیان می دارد که شرکت عقدی بر دو مفهوم حمل می شود: یک مفهوم دیگر آن همان اذن در تصرف است که در این معنا امتزاج در اموال شرکا معتبر است که در آن اراده شرکا به تنهایی توان ایجاد اشاعه و اشتراک را دارد. بدون این که امتزاج در آن اعتبار داشته باشد.
مفهوم دیگر آن بر مبنای امتزاج قهری است که یا ناشی از ارث می باشد و یا ناشی از امتزاج، همانگونه که ماده 574 ق. م بیان می دارد تشکیل می گردد.
از متأخرین نیز که نظریه های فقهی وی مورد استفاده مراجع و فقهای اخیر قرار گرفته است در خصوص شرط امتزاج می فرمایند: این شرط، ثبوتاً و اثباتاً شرط انعقاد عقد لغو و بیهوده است چرا که اشاعه از قبل ایجاد شده است، ایشان بر خلاف برخی از علما، در اثبات شرط امتزاج برای عقد شرکت قائل به اجماع نیستند. از علما و نویسندگان حقوق نیز عده ای برای عقد شرکت، اصالت قائل شده اند و در این زمینه می گویند: « اگر بخواهیم از یک طرف به روح و مفاد عمومی قانون مدنی استناد کنیم که چون نص صریحی تحقق عقد مستقل شرکت را متوقف به مزج واقعی سهم الشرکه ها ننموده اند لذا باید حصول شرکت اختیاری را نتیجه عقد مستقل شرکت دانست، در هر حال اگر متابعت قصد اطراف معامله و قائل شدن به نص ماده 10 قانون مدنی قبول افتد، دیگر برای حصول شرکت در نتیجه عقد مستقل عایقی وجود نخواهد بود. ». در نهایت ایشان عقد شرکت را چنین تعریف می کنند: « شرکت، عقدی است که به موجب آن هر یک از اطراف معامله مقداری از مال خود را به شرکت می گذارد و در مجموع، آن ها پس از مزج ، هر یک نسبت به سهم الشرکه خود به نحواشاعه مالک می شود.»
با توجه به مطالب یاد شده امروزه باید این عقیده را تقویت نمود که هیچ مانعی برای نفوذ این خواست مشترک، یعنی تبدیل مالکیت انفرادی به مالکیت اشتراکی ( انشای مفهوم شرکت به وسیله عقد) به صرف ایجاب و قبول وجود ندارد، زیرا در حقوق ما ملاک انعقاد هر قراردادی، قصد مشترک متعاقدین و اراده باطنی آن ها است. بنابراین آن چه را طرفین اراده کنند ، در صورتی که خلاف قوانین آمره و نظم عمومی و اخلاق حسنه نباشد، می توان به حکم مواد 10 و 975 قانون مدنی انشاء و ایجاد کرد و قالب ها و صورت ها جنبه شکلی دارند.درقوانین بعد از انقلاب نیز مشارکت مدنی به عنوان یک عقد مستقل پذیرفته شده است؛ مقنن در فصل سوم آیین نامه قانون عملیات بانکی بدون ربا ( مصوب 8/12/1362 هیأت وزیران ) یکی از مهمترین عقود بانکی را مشارکت مدنی دانسته و آن را در کنار دیگر عقود مشارکتی ( مضاربه، مزارعه، مساقات ) پذیرفته است. ماده 18 مصوبه مذکور در این خصوص مقرر می دارد : « مشارکت مدنی عبارت است از در آمیختن سهم الشرکه که نقدی و غیر نقدی به اشخاص حقیقی با حقوقی متعدد به نحو مشاع به منظور انتفاع طبق قرارداد». با تصویب این قانون و قراردادهای متنوعی که امروزه بانک ها منعقد می نمایند، دیگر تردیدی در عقد بودن مشارکت مدنی به عنوان یک عقد مستقل وجود ندارد. از نظر حقوق تطبیقی نیز در قوانین مدنی اکثر کشورهای عربی مبحث جداگانه ای به عقد شرکت، به عنوان عقدی مستقل، اختصاص داده شده است.
2-1-2-3-3- شرکت عقدی به معنای شرکت حاصل از عقد :
قانون مدنی در ماده 573 عقد شرکت را یکی از اسباب اشاعه دانسته است؛ بدین معنا که می توان به وسیله یکی از عقود ناقله مثل بیع، صلح و هبه، اشاعه در مالکیت را ایجاد نمود. از این رو، برای تحقق شرکت لازم است دو یا چند حق مالکیت از طریق انعقاد یکی از عقود ناقله با هم به نحوی درآمیزند که تمیز آن از یکدیگر ممکن نباشد؛ به دیگر سخن، شرکاء توافق می کنند که مالکیت انفرادی خود را به مالکیت اشتراکی تبدیل نمایند به گونه ای که حق هر کدام در عین حال که به صورت عینی موجود و اصالت دارد، منتشر در مجموع باشد.
در این مفهوم، عقد شرکت جنبه معاوضی و تملیکی دارد؛ یعنی برای ایجاد اشاعه در مالکیت لازم است هر شریک به وسیله یکی از عقود ناقله سهم مشاع از ملک خود را به صورت معاوضی به دیگران تملیک کند و با این مفهوم، عقد شرکت عقدی لازم خواهد بود، زیرا شریک در مالی نمی تواند به دلخواه خود اشاعه را به هم زده و آورده خود را مطالبه کند؛ هر چند هر شریک بر مبنای قواعد حاکم بر مالکیت مشاع و طبق ماده 589 قانون مدنی می تواند تقاضای تقسیم مال مشترک را بنماید.
2-1-2-3-4- شرکت عقدی به معنای اداره مال مشاع:
بعضی از فقهای امامیه عقد شرکت را چنین بیان نموده اند: «عقدی است که ثمرۀ آن جواز تصرف هر کدام از مالکین است بر شیء واحد به صورت مشاع. برخی از حقوقدانان نیز در این زمینه می گویند: شرکت عقدی است که ثمره آن جواز تصرف مالکین متعدد شیء واحد، در مال مشترک است»؛ به عبارت دیگر، قراردادی است که تصرف مالکان مشاع در یک مال را ممکن می سازد. در این مفهوم، سمت شرکاء بعد از تحقق شرکت، وکالت و عاملیت است و بر مبنای این تعریف، شرکت عقدی اذنی و جزء عقود جایز محسوب می شود. حقوقدانان مصری شرکت را اختلاطی از یک مبادله می دانند که سبب آن اشاعه در مالکیت است. آنها با تلقی اعطای نیابت در تصرف به عنوان چهره ای دیگر از عقد، معتقدند: توکیل در تصرف و اداره و تقسیم سود و زیان، عقدی فرعی است که ضمیمه اشاعه در مالکیت می شود، بدون این که با عقد اصلی ترکیب گردد. بنابراین هیچ مانعی ندارد که هر کدام از این دو عقد آثار و طبیعت خاص خود را حفظ کند، یکی جایز باشد دیگری لازم.
به نظر می رسد اثر عقد شرکت، ایجاد اشاعه در مالکیت باشد که نتیجه آن اذن در تصرف است، زیرا شرکت در زمره عقود لازم است ولی اشاعه را می توان از طریق تقسیم مال مشاع زایل نمود ( ماده 589 قانون مدنی) البته شرکا می توانند ضمن عقد شرکت، اعطای نیابت در تصرف را برای یکدیگر شرط نمایند.
2-1-2-3-5- مفهوم شرکت عقدی در حقوق مصر
در حقوق مصر نیز قانون مدنی در ماده 505 در تعریف عقد شرکت بیان داشته است: « شرکت عقدی است که به موجب آن دو نفر یا بیش تر با پرداخت حصه ای از مال یا عملی ملزم می شوند که هر کدام در این مال سهمی داشته باشند و آن چه از سود یا زیان آن به دست می آید، بین خود تقسیم نمایند. هم چنین ماده 844 قانون « موجبات و عقود » لبنان در تعریف عقد شرکت می گوید: « شرکت عقد مبادله ای است که به موجب آن دو نفر یا تعدادی در یک چیز شریک می شوند، بااین قصد که آن چه از سود به دست می آید، بین خود تقسیم کنند.
شبیه این تعریف را می توان در مواد 494 قانون مدنی لیبی، 473 قانون مدنی سوریه، 626 قانون مدنی عراق و 582 قانون مدنی اردن ملاحظه کرد. در حقوق مصر قانونگذار بر این عقیده است که اراده متعاملین و قصد مشترک آنها مبنای ایجاد اشاعه است و این وجه رایج و متداول و به نوعی شایع از منظر قانونی است. اما برخی از حقوقدانان مصری بر این عقیده اند که عقد قرارداد شرکت با حالت اشاعه متفاوت است، چرا که انعقاد قرارداد بر مبنای قصد و اراده طرفین متعاملین و همراه با آثار قانونی حاکم بر آن منعقد می شود، در حالی که حالت اشاعه بدون اراده طرفین است. این نظر حقوقدانان مصری بیشتر شرکت قهری یا ناشی از ارث را تعبیر می نماید.
2-1-3- ویژگی های شرکت مدنی در حقوق ایران
با توجه به بیان مصادیق شرکت و اینکه شرکت یک واقعه حقوقی نیست بلکه عمل حقوقی است، بنابراین مانند سایر اعمال حقوقی باید ناشی از اراده طرف های آن باشد. بنابراین لازم است مورد بررسی واقع شود که این عقد چه خصوصیاتی و ویژگی هایی دارد که آن را از سایر اعمال حقوقی متمایز می کند.
2-1-3-1- عقد:
یکی از خصوصیات شرکت مدنی این است که عقدی از عقود معیّن است، یعنی ماهیت و عمل حقوقی آن در کنار سایر عقود معین ، پذیرفته شده است. پس برای تحقق و انعقاد آن نیاز به ایجاب و قبول شرکاء دارد. بسیاری از صاحبنظران، به این خصوصیت تصریح کرده اند. در نتیجه، برای صحت آن قصد انشاء شرکاء طبق ماده 191 ق.م. ضروری است. علاوه بر این، ایقاع نیست که با اراده شخص واحد محقق شود، بلکه برای انعقاد آن، حداقل توافق دو اراده لازم است تا چنین ماهیتی ایجاد شود.
2-1-3-2- معوض: