تارا فایل

تحقیق امنیت در سیستم های توزیع شده کلود




پایان نامه دوره کارشناسی کامپیوتر گرایش نرم افزار

موضوع:
امنیت در سیستم های توزیع شده کلود

استاد راهنما:
مهندس …..

تهیه کننده:
محمد رنجبر

زمستان 94

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

تقدیم به:
پروردگار مهربانم
کسی که در تمام لحظه های زندگی
از حمایت های بی دریغ او بهره مند بودم
تقدیم به استادان بزرگوارم
آنان که عاشقانه به باروری اندیشه های خلاق دانشجویان می اندیشند
تقدیم به پدرم و همچنین مادر عزیزم
که همه وجودم متعلق به آنهاست

چکیده
با فراگیرشدن استفاده از سیستم های توزیع شده ابری در ارائه خدمات، ایجاد، تغییر، و یا توزیع ماشین جدید برای کاربران بسیار راحت خواهد بود. در بسیاری از روشهای امن سازی ارائه شده تاکنون، به منظور بالابردن امنیت این فضا، سعی در بازنگری در نحوه ارائه سرویس در لایه های مختلف شده است. یکی از روشهای امن سازی، استفاده از SLA در ارتقا و یا حفظ این موضوع می باشد که چنین روشهایی، علاوه بر پیچیدگی فراوان، در بعضی مواقع بوجودآورنده چالش های امنیتی جدیدی نیز خواهد بود. با بهره گیری از ساختار امن سازی فرآیندی، می توان بسیاری از سرویس های ابری را بدون نگرانی و حتی با اعتماد به سیستم عامل و برنامه های موجود، ارائه کرد. در این پژوهش، بعد از بررسی اجمالی سیستم های توزیع شده و فضای رایانش ابری، یک روش امنیتی مبتنی بر ISMS ارائه شده است که بموجب آن، بدون اعمال تغییر در سیستم های موجود، اقدام به ارتقا سطح امنیت در ارائه خدمات مبتنی بر رایانش ابری می کند.

واژه های کلیدی: سیستم توزیع شده، رایانش ابری، مدیریت امنیت اطلاعات، مخاطرات، آستانه پذیرش.

فهرست مطالب
عنوان
صفحه
مقدمه ……………………………………………………………………………………………………………………………………………….
1
فصل اول: آشنایی با سیستم های توزیع شده ………………………………………………………………………………..
3
1-1-سیستم های توزیع شده ………………………………………………………………………………………………………………..
4
1-2-اصول سیستم های عامل توزیع شده ………………………………………………………………………………………………..
6
1-2-1-سیستم های جفت شده قوی ……………………………………………………………………………………………………….
7
1-2-2- سیستم های جفت شده ضعیف …………………………………………………………………………………………………..
7
1-3-سیر تکامل سیستم های عامل توزیع شده ………………………………………………………………………………………….
9
1-4-مدل های سیستم های محاسبات توزیع شده ……………………………………………………………………………………….
13
1-5-مدل مینی کامپیوتر ………………………………………………………………………………………………………………………
13
1-6-مدل ایستگاه کاری ……………………………………………………………………………………………………………………..
14
1-7-مدل ایستگاه کاری- سرویس دهنده ……………………………………………………………………………………………….
16
1-8-مدل اشتراک پردازنده یا ائتلاف پردازنده ……………………………………………………………………………………….
19
1-9-مدل ترکیبی ………………………………………………………………………………………………………………………………
20
1-10-چرا سیستم های محاسبات توزیع شده رفته رفته موارد استفاده زیادتری پیدا می کنند؟ ……………………………..
21
1-11-یک سیستم عامل توزیع شده چه است؟! ………………………………………………………………………………………..
22
1-12-مواردی که در طراحی یک سیستم عامل توزیع شده باید در نظر گرفت ………………………………………………
24
1-13- قوانینی برای سیستمهای توزیع شده ……………………………………………………………………………………………..
26
1-13-1- استقلال محلی ……………………………………………………………………………………………………………………..
26
1-13-2- عدم وابسته بودن به سایت مرکزی …………………………………………………………………………………………..
26
1-13-3- عملیات پیوسته …………………………………………………………………………………………………………………….
27
1-13-4- استقلال ………………………………………………………………………………………………………………………………
27
1-13-5- استقلال قطعات ……………………………………………………………………………………………………………………
28
1-13-6- پردازش توزیع شده جستجوها ………………………………………………………………………………………………..
28
1-13-7- مدیریت توزیع شده ………………………………………………………………………………………………………………
28
1-13-8- استقلال سخت افزاری …………………………………………………………………………………………………………..
29
1-13-9- استقلال سیستم عامل …………………………………………………………………………………………………………….
29
1-13-10- استقلال شبکه ……………………………………………………………………………………………………………………
29
1-14-پژوهشهای صورت گرفته …………………………………………………………………………………………………………..
30
1-15-چالشها ……………………………………………………………………………………………………………………………………
30
فصل دوم: رایانش ابری …………………………………………………………………………………………………………………
34
2-1-رایانش ابری ………………………………………………………………………………………………………………………………
35
2-2-تعریف ……………………………………………………………………………………………………………………………………..
36
2-3-مقایسه با مدل های دیگر رایانش …………………………………………………………………………………………………….
38
2-4-تاریخچه ……………………………………………………………………………………………………………………………………
38
2-5-اقتصاد رایانش ابری …………………………………………………………………………………………………………………….
40
2-6-ساختار مدل ……………………………………………………………………………………………………………………………….
41
2-6-1-معماری …………………………………………………………………………………………………………………………………
41
2-6-2-لایه ها ……………………………………………………………………………………………………………………………………
41
2-6-3-کاربر ……………………………………………………………………………………………………………………………………
42
2-6-4-برنامه های کاربردی …………………………………………………………………………………………………………………
42
2-6-5-بستر ……………………………………………………………………………………………………………………………………..
42
2-6-6-زیرساخت ……………………………………………………………………………………………………………………………..
43
2-6-7-سرور ……………………………………………………………………………………………………………………………………
43
2-6-8-ویژگی های کلیدی ………………………………………………………………………………………………………………….
43
2-7-مدل های پیاده سازی ……………………………………..
……………………………………………………………………………..
45
2-7-1-ابر عمومی ……………………………………………………………………………………………………………………………..
46
2-7-2-ابر گروهی …………………………………………………………………………………………………………………………….
46
2-7-3-ابر آمیخته ……………………………………………………………………………………………………………………………..
46
2-7-4-ابر خصوصی ………………………………………………………………………………………………………………………….
46
2-8-رسانه ذخیره سازی ابری ……………………………………………………………………………………………………………….
47
2-8-1-میان ابر ………………………………………………………………………………………………………………………………….
47
2-9-چالش ها ……………………………………………………………………………………………………………………………………
48
2-9-1-آسیب پذیری در برابر رکود اقتصادی ………………………………………………………………………………………..
48
2-10-شکل جدید نرم افزارها ……………………………………………………………………………………………………………….
48
2-11-پذیرش ……………………………………………………………………………………………………………………………………
48
2-12-کنترل ……………………………………………………………………………………………………………………………………..
49
2-13-هزینه های پهنای باند ………………………………………………………………………………………………………………….
49
2-14-محبوس شدن توسط ارائه دهندگان و استانداردها ……………………………………………………………………………
49
2-15-شفافیت دسترسی ………………………………………………………………………………………………………………………
50
2-16-قابلیت اطمینان ………………………………………………………………………………………………………………………….
50
2-17-حفظ حریم خصوصی ………………………………………………………………………………………………………………..
51
2-18-امنیت ……………………………………………………………………………………………………………………………………..
51
2-19-میزان در دسترس بودن و کارایی ………………………………………………………………………………………………….
51
2-20-انتقاد از واژه …………………………………………………………………………………………………………………………….
52
2-21-نگاهی به آینده …………………………………………………………………………………………………………………………
52
2-22-دولت ها و رایانش ابری ………………………………………………………………………………………………………………
54
فصل سوم: معماری سیستم توزیع شده …………………………………………………………………………………………..
55
3-1-معماریهای توزیع شده …………………………………………………………………………………………………………………
56
3-1-1-معماریهای چندپردازندهای ………………………………………………………………………………………………………
56
3-1-2-معماریهای مشتری-کارگزار ……………………………………………………………………………………………………..
56
3-1-3-معماریهای شیئ توزیع شده ……………………………………………………………………………………………………..
57
3-2-(Common Object Request Broker Architecture)CORBA معماری شیئ توزیع شده …………………………………………………………………………………………………………………………………………………
59
3-2-1- استاندارد های CORBA ……………………………………………………………………………………………………..
61
3-2-2- CORBA 3.0 ………………………………………………………………………………………………………………….
62
3-2-3- کاربردهای CORBA ………………………………………………………………………………………………………….
63
فصل چهارم: امنیت در سیستم های توزیع شده ……………………………………………………………….
64
4-1-تهدیدها و مکانیزم های تامین امنیت در سیستم های توزیع شده ……………………………………………………………
65
4-1-1-انواع تهدیدهای امنیتی ……………………………………………………………………………………………………………..
65
4-1-2-مکانیزم های تامین امنیت ………………………………………………………………………………………………………….
66
4-2-مسائل طراحی سیستم های امنیتی ……………………………………………………………………………………………………
67
4-2-1-تمرکز روی مفهوم کنترل دسترسی …………………………………………………………………………………………….
67
4-2-2-لایه بندی مکانیزم های امنیتی ……………………………………………………………………………………………………
68
4-2-2-1-توزیع مکانیزم های امنیتی ……………………………………………………………………………………………………..
69
4-2-3-مفهوم سادگی ………………………………………………………………………………………………………………………..
71
4-3-ساختار امنیتی Globus ……………………………………………………………………………………………………………..
71
4-3-1-پروتکل های ساختار امنیتی Globus ……………………………………………………………………………………….
74
فصل پنجم: بررسی و تحلیل امنیت در فضای رایانش ابری ……………………………………………….
75
5-1-معماری ماشینهای مجازی ……………………………………………………………………………………………………………
76
5-2-شناسایی سرویس و ارزیابی مخاطرات …………………………………………………………………………………………..
77

5-3-مسائل امنیتی ماشینهای مجازی ……………………………………………………………………………………………………..
79
نتیجه گیری ……………………………………………………………………………………………………………………………………….
81
منابع و ماخذ ……………………………………………………………………………………………………………
82

فهرست شکل ها
عنوان
صفحه
شکل 1-1: سیستم های جفت شده قوی ………………………………………………………………………………………………….
7
شکل 1-2: سیستم های جفت شده ضعیف ………………………………………………………………………………………………
8
شکل 1-3: مدل مینی کامپیوتر ………………………………………………………………………………………………………………
14
شکل 1-4: مدل ایستگاه کاری ……………………………………………………………………………………………………………..
16
شکل 1-5: شبکه ارتباطی …………………………………………………………………………………………………………………….
18
شکل 1-6: ائتلاف پردازنده ها ……………………………………………………………………………………………………………….
20
شکل 1-7: سه گانه امنیت …………………………………………………………………………………………………………………..
32
شکل 1-8: مدل مفهومی رایانش ابری CSA ……………………………………………………………………………………….
33
شکل 2-1: نمودار مفهومی رایانش ابری …………………………………………………………………………………………………
35
شکل 2-2:معماری نمونه رایانش ابری ……………………………………………………………………………………………………
41
شکل 2-3:پشتهٔ رایانش ابری ………………………………………………………………………………………………………………..
41
شکل 2-4:گونه های رایانش ابری ………………………………………………………………………………………………………….
45
شکل 3-1: معماری مشتری-کارگزار …………………………………………………………………………………………………….
57
شکل 3-2: معماریهای شیئ توزیع شده ………………………………………………………………………………………………….
59
شکل 3-3: معماری CORBA …………………………………………………………………………………………………………..
60
شکل 3-4: استاندارد های CORBA …………………………………………………………………………………………………..
62
شکل 4-1: تمرکز بر روی حفاظت از داده ها …………………………………………………………………………………………..
67
شکل 4-2:حفاظت در برابر فراخوانی های غیر …………………………………………………………………………………………
68
شکل 4-3:حفاظت در برابر کاربران غیرمجاز …………………………………………………………………………………………..
68
شکل 4-4:سازمان منطقی یک سیستم توزیع شده بر روی لایه های چندگانه ………………………………………………….
69
شکل 4-5:اصل RISSC برای سیستم های توزیع شده امن ………………………………………………………………………
70
شکل 4-6: ساختار امنیتی Globus در سیستم های توزیع شده ………………………………………………………………….
72
شکل 5-1:معماری ماشینهای مجازی مبتنی بر VMM …………………………………………………………………………….
77

مقدمه

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

فصل اول
آشنایی با سیستم های توزیع شده

1-1-سیستم های توزیع شده
توسعه سیستم های توزیع شده از ابتدای ظهور شبکه های کامپیوتری مساله قابل توجهی بوده است. ولیکن این سیستم ها در کنار مزایای خود با مشکلاتی ناشی از توزیع شدگی روبرو بوده اند. یک روش غلبه بر این مشکلات استفاده از یک لایه واسط به نام میان افزار می باشد که با قرار گرفتن بین منابع توزیع شده و برنامه های کاربردی، پیچیدگی های لایه زیرین را مخفی کرده و دید یکپارچه ای از آن در اختیار لایه کاربردی قرار می دهد. لایه کاربردی با استفاده از واسط های ارائه شده توسط میان افزار به منابع توزیع شده دسترسی پیدا می کند. انواع گوناگونی از میان افزارها در سطوح مختلف تجرید وجود دارند. در این میان سیستم های بزرگ دارای نیازمندی های سطح بالایی می باشند که تامین آنها توسط این میان افزارها پیچیده و مشکل می باشد. بنابراین ارائه یک میان افزار با سطح تجرید بالاتر ضروری به نظر می رسد. با بررسی معماری مبتنی بر سرویس و همچنین ساختار وب سرویس ها، ملاحظه می شود که می توان از وب سرویس ها به عنوان یک میان افزار جهت تامین بخشی از نیازمندی های این سیستم بزرگ بهره گرفت. در مدل ارائه شده در این گزارش، این ایده با جزئیات بیشتر بیان شده است. از جمله سیستم های بزرگ، سیستم های مدیریت آموزشی می باشند که دارای نیازمندی های خاص خود هستند. بعلاوه با توسعه سیستم های مدیریت آموزشی متعدد، مساله قابلیت همکاری میان این سیستم ها دارای اهمیت می گردد. استاندارد SCORM محصول شرکت ADL تلاشی است که در این زمینه انجام گرفته است. این استاندارد که تجمیعی از استانداردهای ارائه شده توسط شرکت های مختلف درگیر با استانداردهای آموزش الکترونیکی می باشد، کوشیده تا با ارائه مدل های داده و متدهای یکسان، قابلیت همکاری میان سیستم های آموزش الکترونیکی را فراهم آورد. ولیکن این هدف همچنان در سطح تعریف استاندارد برای یک سیستم باقی مانده و روشی جهت همکاری میان سیستم های پشتیبان SCORM ارائه نمی دهد. در این پایان نامه با استفاده از مدل مبتنی بر وب سرویس ارائه شده، تغییراتی جهت اعمال در SCORM پیشنهاد شده است تا بدین وسیله سیستم های مدیریت آموزشی مبتنی بر SCORM با ارائه امکانات خود به صورت سرویس های وب آن را قابل دسترسی سیستم های آموزش الکترونیکی دیگر و سایر سیستم های علاقمند به این سرویس ها نمایند هر سیستمی که بر روی مجموعه ای از ماشین ها که دارای حافظه اشتراکی نیستند، اجرا شده و برای کاربران به گونه ای اجرا شود که گویا بر روی یک کامپیوتر می باشند ، یک سیستم توزیع شده است.
در یک سیستم توزیع شده یک نرم افزار یا مجموعه نرم افزاری واحد و متحد الشکل بر روی هر گره اجرا می شود. همه ماشینها یک کرنل مشابه را اجرا می کند. هر کرنل منابع خود را کنترل می کند مواردی که در طراحی سیستم توزیع شده باید در نظر گرفت:شفافیت انعطاف پذیری قابلیت اطمینان کارایی خوب قابلیت گسترش قابلیت اطمینان:در دسترس بودن یک فاکتور مهم مرتبط با این سیستم ها است. طراحی نباید به گونه ای باشد که نیاز به اجرای همزمان کامپوننت های اساسی باشد. افزونگی بیشتر داده هاه باعث افزایش در دسترس بودن شده اما ناسازگاری را بیشتر میکند. قدرت تحمل نقص(Fault tolerance) باعث پوشاندن خطاهای ایجاد شده توسط کاربر می شود. کارآیی:بدون کارآیی مناسب کلیه موارد استفاده نرم افزار بی فایده می باشد. اندازه گیری کارایی در سیستم های توزیع شده کار آسانی نیست. برای رسیدن به کارایی باید توازنی خاص در تعداد پیغامها و اندازه کامپوننهای توزیع شده بر قرار باشد.
قابلیت گسترش یک اصل کلی برای توسعه سیستمهای توزیع شده می باشد. برای رسیدن به این قابلیت باید از کامپوننتها، جداول و الگوریتمهای متمرکز دوری کرد. فقط باید از الگوریتمهای غیر متمرکز استفاده شود. خصوصیات الگوریتمهای غیرمتمرکز:هیچ ماشینی نباید اطلاعات کاملی در مورد وضعیت سیستم داشته باشد. ماشینها باید بر مبنای اطلاعات محلی خود تصمیم بگیرند. خرابی یک ماشین نباید تاثیری در اجرای الگوریتم داشته باشد. نباید تصوری ضمنی از وجود ساعتی عمومی وجود داشته باشد.
گونه های مختلف سیستمهای توزیع شده:سرور- ایستگاه کاری Processor pool هیبرید یکپارچه
مدل سرور – ایستگاه کاریمدل Processor Poolمدل هیبرید مدل یکپارچه سیستمهای توزیع شده متکی بر ارتباطات هستند و به طور کلی از دو سرویس زیر استفاده می کنند:انتقال پیام Message Passing فراخوانی از راه دور رویه ها Remote Procedure Call سیستم توزیع شده از دید لایه بندی هابرنامه های کاربردی DBMS,TPS, … سیستم عامل توزیع شده سخت افزار بخشهای اصلی سیستم عامل توزیع شده مدیریت فایل مدیریت منابع مدیریت حافظه مدیریت.
سیستم عامل توزیع شده باید امکانات Encapsulating منابع را مهیا سازد. کرنل و سرورها هر دو وظیفه مدیریت منابع را بر عهده دارند و چون شامل منابع نیز می باشند، باید موارد زیر را مهیا سازند: مجتمع سازی داده ها و سرویس ها Encapsulating پردازش همزمان محافظت داده ها نحوه دسترسی به منابع کلاینتها با مشخص سازی منابع در آرگومان عملیات (فراخوانی از راه دور رویه ها در سرور یا فراخوانی سیستم در کرنل)به آنها دسترسی پیدا می کنند.
1-2-اصول سیستم های عامل توزیع شده
در طول دو دهه اخیر، حصول پیشرفت در تکنولوژی میکروالکترونیک باعث در دسترس قرار گرفتن پردازنده های ارزان و سریع شده است. از سوی دیگر پیشرفت های موجود در تکنولوژی ارتباطات باعث به وجود آمدن شبکه های سریع تر و به صرفه تر شده است. از ترکیب پیشرفت ها در این دو میدان از تکنولوژی ها تکنولوژی ارزان تر و کاراتری به وجود آمده که در آن به جای این که از یک پردازنده خیلی سریع استفاده شود، از چند پردازنده معمولی که به هم متصل شده اند استفاده می شود.
از نظر معماری، کامپیوترهایی که از چندپردازنده متصل به هم تشکیل شده اند اساساً بر دو دسته تقسیم می شوند.
1- سیستم های جفت شده قوی
2- سیستم های جفت شده ضعیف
1-2-1-سیستم های جفت شده قوی
در این سیستم ها یک حافظه اولیه (فضای آدرس) عمومی وجود دارد که میان همه پردازنده ها به اشتراک گذاشته شده است. اگر برای مثال، پردازنده ای در محل × از حافظه مقدار 100 را بنویسد هر پردازنده دیگری که بلافاصله از همان آدرس × بخواند مقدار 100 را دریافت خواهد کرد. بنابراین در این سیستم ها هر نوع تبادل میان پردازنده ها از طریق حافظه مشترک صورت می گیرد.

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

شکل 1-2: سیستم های جفت شده ضعیف

معمولاً به سیستم های جفت شده قوی، سیستم های پردازش موازی اطلاق می گردد و به سیستم های جفت شده ضعیف "سیستم های محاسبات توزیع شده" یا به طور ساده تر "سیستم های توزیع شده" اطلاق می شود.
در این پژوهش منظور از جمله سیستم توزیع شده" همان سیستم های توزیع شده واقعی یا "سیستم های محاسبات توزیع شده" است که از سیستم عامل های توزیع شده استفاده می کنند.
در مقایسه با سیستم های جفت شده قوی، پردازنده های سیستم های محاسبات توزیع شده می توانند خیلی دور از هم قرار گرفته باشند تاحدی که یک ناحیه جغرافیایی را تحت پوشش قرار دهند. بعلاوه، در سیستم های جفت شده قوی، تعداد پردازنده هایی که به طور موثر می توانند مورد استفاده قرارگیرند مواجه با محدودیت ناشی از پهنای باند حافظه مشترک است، در حالی که در سیستم های محاسبات توزیع شده چنین حالتی وجود ندارد و تقریباً به طور کامل آزادی داریم که هر تعداد که دلمان خواست پردازنده داشته باشیم. یعنی محدودیتی در مورد تعداد پردازنده ها در "سیستم های محاسبات توزیع شده" وجود ندارد.
به طور خلاصه یک سیستم محاسبات توزیع شده اساساً مجموعه ای است از پردازنده هایی که توسط یک شبکه ارتباطی به هم متصل شده اند که هر پردازنده حافظه محلی و دستگاههای جانبی خود را دارد و ارتباط میان هر دو جفت پردازنده از سیستم از طریق عبور پیغام از شبکه ارتباطی صورت می گیرد. برای هر پردازنده، منابع آن "محلی" هستند و این در حالی است که پردازنده های دیگر و منابع آن ها "دور" هستند به پردازنده و منابع آن به طور معمول "گره"، "سایت" یا "ماشین" سیستم عامل توزیع شده اطلاق می شود.
1-3-سیر تکامل سیستم های عامل توزیع شده
در ابتدا کامپیوترها خیلی گران (در حد میلیون دلار) بودند و جای زیادی را اشغال می کردند (در حد یک اتاق بزرگ) تعداد کمی کامپیوتر وجود داشت و آنها در لابراتوارهای تحقیقاتی دانشگاه ها و مراکز صنعتی بود. این کامپیوترها از یک کنسول و بوسیله یک اپراتور قابل استفاده بودند وکاربران عادی نمی توانستند از آن استفاده کنند. برنامه نویسان، برنامه های خود را می نوشتند و آن را روی رسانه ی خاصی مثل کارت پانچ شده به مرکز کامپیوتر تحویل می دادند تا مورد پردازش قرار گیرند. قبل از پردازش یک برنامه، اپراتور باید محیط لازم برای پردازش را آماده سازی می کرد. این آماده سازی شامل سوار کردن نوارها و بارگذاری کارت های پانچ شده در کارت خوان و … بود. برنامه اجرا می شود و نتایج اجرای برنامه به صورت پرینت شده به برنامه نویس برگشت داده می شد.
آماده سازی کار در کامپیوترهای اولیه یک مشکل اساسی بود و بسیاری از وقت CPU را هدر می داد. در سالهای 1950 تا 1960 مفاهیم جدیدی برای بهینه سازی صرف وقت CPU ارائه شده که از میان آنها می توان به موارد زیر اشاره کرد:
1- دسته بندی کارهایی که نیازهای مشابهی دارند قبل از پردازش.
2- توالی اتوماتیک کارها.
3- پردازش غیر بر خط بر پایه مفاهیم با فرینگ و سرکشی
4- چند برنامگی
دسته بندی کارها اندکی استفاده از CPU را افزایش داد چرا که اپراتور تنها وقتی محیط پردازش را تغییر می داد که دسته جدیدی از کارها برای اجرا واگذار می شد. توالی اتوماتیک کارها توسط کارت های کنترل برای تعیین اغاز و انتهای هرکار مقدار استفاده از CPU را افزایش داد و این بهینه سازی به خاطر حذف توالی کارها توسط انسان بود.
پردازش غیر برخط هم استفاده از CPU را با اجازه روی هم افتادگی عملیات CPU و دستگاههای ورودی خروجی بهبود بخشید. در این روش این دو عمل روی دو ماشین مجزا از هم اجرا می شدند ( عملیات ورودی خروجی از عملیات CPU کندتر بود) در نهایت "چند برنامگی"به وجود آمد که در این روش همیشه CPU برای اجرا دستورالعملی دارد و بیکار نیست و به این طریق استفاده از CPU حداکثر می شد.
با این حال در هیچ یک از این متدها اجازه استفاده همزمان چند کاربر و تراکنش آنها با یک سیستم کامپیوتری مهیا نبود و کاربران نمی توانستند منابع خود را به صورت همزمان به اشتراک بگذارند. بنابراین اجرای کارهای تعاملی که متشکل از اعمال کوچکی است و عمل بعدی به اجرای عمل قبلی وابسته است تبدیل به یک عمل ملال آور و زمانبر شده بود. بسط و عیب یابی برنامه ها از نمونه های برنامه های تعاملی است. این عمل غیرممکن بود تا وقتی که در اوایل دهه 1970 که در کامپیوترها از مفهوم "اشتراک زمانی" برای قالب آمدن بر این مشکل بهره گرفته شد. سیستم های اشتراک زمانی اولیه دارای چند ترمینال بودند که به کامپیوتراصلی متصل بود.
این ترمینال ها در اطاقی متفاوت با اطاقی که کامپیوتر اصلی در آن بود قرار داشتند. حالا دیگر با استفاده از این ترمینال ها کاربران متعددی می توانستند کارهای خود را به طور همزمان اجرا کنند و منابع کامپیوتر را به اشتراک بگذارند. در یک سیستم اشتراک زمانی هر کاربر این طور تصور می کرد که برای خود یک کامپیوتر مجزا دارد چرا که سیستم با سرعت خیلی زیاد از کاریک کاربر دیگر در فاصله های زمانی کوتاه سویچ می کرد و در هر برهه زمانی که به یک کاربر اختصاص داده می شد مقداری از کار هر کار بر اجرا می شد. با این که نظریه اشتراک زمانی در اوایل دهه 1960 بیان گردید تا اوایل دهه 1970 سیستم های اشتراک زمانی زیاد مورد استفاده نبودند و علت هم این بود که پیاده سازی آنها خیلی سخت و هزینه بر بود.
پیشرفت های موجود در سخت افزارهای پردازش موازی باعث کاهش اندازه و افزیش سرعت پردازش کامپیوترها شد. در نتیجه این تغییر و تحولات، کامپیوترهای کوچک و ارزان که قابلیت پردازشی زیادتری هم داشتند جایگزین کامپیوترهای بزرگ شدند و این کامپیوترهای کوچک "مینی کامپیوتر" نام گرفتند.
ظهور سیستم های اشتراک زمانی اولین قدم به سوی سیستم های محاسبات توزیع شده بود چرا که در این نوع سیستم ها مفاهیم زیر تعریف شدند:
1- اشتراک منابع کامپیوتر میان چندکاربر به صورت همزمان
2- دسترسی به کامپیوترها از جایی متفاوت از اتاق کامپیوتر اصلی.
در ابتدا ترمینالهای سیستم های اشترک زمانی "ترمینال گنگ" بودند یعنی همه پردازش توسط سیستم کامپیوتری اصلی انجام می شد. پیشرفت های تکنولوژی ریزپردازنده در طول دهه 1970 این اجازه را داد تا ترمینال های گنگ با ترمینالهای هوشمند جایگزین شوند و با این کار مفاهیم پردازش غیر آنلاین و اشتراک زمانی با هم ادغام شدند تا مزایای هر دو تکنولوژی را روی یک سیستم بتوان به وجود آورد.
تکنولوژی میکروپروسسور به سرعت پیشرفت کرد تا جایی که در اوایل دهه 1980 کامپیوترهای تک کاربرده که "ایستگاه کاری" نام گرفته بودند به وجود آمدند و دارای قدرت پردازشی تقریباً برابر با "مینی کامپیوتر" بودند و با هزینه اندکی کاربر می توانست آن را خریداری کند.
این ایستگاه های کاری بعدها به عنوان ترمینالها در سیستم های اشتراک زمانی مورد استفاده قرار گرفتند. در این نوع از سیستم های اشتراک زمانی حجم زیادی از عملیات کاربر می توانست در ترمینال آن کاربر به خصوص اجرا نشود و در نتیجه این امکان به وجود می آمد که کامپیوتر اصلی میان تعداد زیادی کاربر به اشتراک گذاشته شود. در این سیستم ها منابع به اشتراک گذاشته شده مثل فایل ها، پایگاه داده ای، کتابخانه نرم افزار و … روی کامپیوتر اصلی قرار داشتند. به این سیستم ها، "سیستم های اشتراک زمانی مجتمع" اطلاق می شد.
سیستم های اشتراک زمانی مجتمع که در بالا به آنها اشاره گردید یک محدودیت داشتند و آن محدودیت این بود که ترمینال ها تا وقتی که از کابل های معمولی برای اتصال به کامپیوتر اصلی استفاده می شد، نمی توانست در فاصله خیلی زیادی از کامپیوتر اصلی قرار داشته باشند.
همزمان با این پیشرفت ها، در اواخر دهه 1960 در زمینه شبکه های کامپیوتری پیشرفت هایی حاصل شد و تا اوایل دهه 1970 ادامه داشت و دو تکنولوژی کلیدی در ساخت و طراحی شبکه های کامپیوتری معرفی گردید:
1- تکنولوژی (Local Area Network)LAN
2- تکنولوژی (Wide Area Network)WAN
با استفاده از تکنولوژی LAN، کامپیوترهای موجود در یک ساختمان و یا دانشکده به هم متصل می شوند و می توانستند اطلاعات را با سرعت تقریبی 10 Mbps با هم مبادله گنند. و در سوی دیگر تکنولوژی WAN قرار داشت که کامپیوترهای موجود در شهرهای متفاوت و یا کشورها و یا قاره های جدا از هم به هم متصل می شدند و می توانستند اطلعات را با سرعت 56kbps با هم مبادله کنند.
اولین نوع از شبکه های محلی پرسرعت، اترنت بود که در زیراکس پارک در سال 1973 به وجود آمد و اولین نمونه از شبکه های گسترده، آرپانت بود که توسط دپارتمان گسترش دفاع ایالات متحده در سال 1969 درست شد. سرعت انتقال اطلاعات در شبکه ها رفته رفته زیادتر می شد تا اینکه در سال 1960 برای شبکه های محلی سرعت Mbps100 و برای شبکه های گسترده سرعت kbps 64 فراهم بود.
اخیراً در اوایل دهه 1990 یک پیشرفت عمده دیگر هم در تکنولوژی شبکه پدیدار شد که ATM نام گرفت. با استفاده از این تکنولوژی می توان شبکه ای خیلی سریع را بنانهاد به طوری که می تواند در شبکه های محلی و گسترده اطلاعات را با سرعت 1.2 گیگابایت در ثانیه انتقال داد. وجود این گونه شبکه های انتقال داده ای پرسرعت به سیستم های محاسبات توزیع شده این اجازه را داده که از یک کلاس جدید از برنامه های کاربردی، پشتیبانی کنند. این کلاس جدید که برنامه های کاربردی چند رسانه ای نام گرفته اند، متشکل از ترکیبی از داده های معمولی، صدا و تصویر هستند. این مفهوم در شبکه های LAN و WAN غیرقابل تصور بود. ادغام تکنولوژی های کامپیوتر و شبکه، در اواخر دهه 1970 به سیستم های محاسبات توزیع شده اجازه تولد را داد.
1-4-مدل های سیستم های محاسبات توزیع شده
مدل های گوناگونی برای ساخت سیستم عامل های توزیع شده استفاده می شود. این مدل ها را می توان در حالت کلی به 5 دسته تقسیم کرد.
1- مینی کامپیوتر
2- ایستگاه کاری
3- ایستگاه کاری- سرویس دهنده
4- اشتراک پردازنده
5- ترکیبی
این پنج دسته را به طور خلاصه شرح می دهیم.
1-5-مدل مینی کامپیوتر
مدل مینی کامپیوتر یک بسط ساده از سیستم اشتراک زمانی مجتمع است. یک سیستم محاسبات توزیع شده که براساس این مدل پیاده شده است متشکل است از چند مینی کامپیوتر (می تواند سوپر کامپیوتر بزرگ هم باشد) که توسط یک شبکه ارتباطی به هم متصل شده اند. هر مینی کامپیوتر به طور معمول چند کاربر دارد که به طور همزمان در سیستم ثبت شده اند. در این نوع چندین ترمینال به مینی کامپیوتر متصل شده اند. هر کاربر که در یک میتی کامپیوتر ثبت شده است به مینی کامپیوترهای دیگر دسترسی دور دارد. شبکه به کاربر این اجازه را می دهد که به منابع دور که روی یک کامپیوتر جدا از کامپیوتری که کاربر در آن ثبت نام کرده، دسترسی داشته باشد. مدل مینی کامپیوتر در مواقعی استفاده می شود که نیاز به اشتراک منابع با کاربران دور مورد نیاز باشد. آرپانت جدید، یکی از نمونه هایی است که براساس مدل مینی کامپیوتر پیاده سازی شده است.

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

شکل 1-4: مدل ایستگاه کاری

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

شکل 1-5: شبکه ارتباطی

1-8-مدل اشتراک پردازنده یا ائتلاف پردازنده
مدل اشتراک پردازنده نیازمند این ملاحظه است که در اکثر اوقات یک کاربر نیازی به قدرت پردازشی ندارد ولی در یک لحظه برای مدت کوتاهی ممکن است نیاز به قدرت پردازشی خیلی بالا پیدا کند. بنابراین برخلاف مدل ایستگاه کاری- سرویس دهنده که برای هر کاربری، یک پردازنده داشتیم در مدل اشتراک پردازنده، پردازنده های سیستم به هم پیوند می خورند تا میان کاربران وقتی که یکی از آنها نیازمند پردازش شد به اشتراک گذاشته شود.
این ائتلاف از پردازنده ها شامل تعداد زیادی از ریز کامپیوترها و مینی کامپیوترها هست که به شبکه پیوند خورده اند. هر پردازنده موجود در ائتلاف، دارای حافظه مخصوص به خود برای اجرا و بارگذاری یک برنامه سیستمی یا یک برنامه کاربردی و یا یک برنامه کاربردی از سیستم محاسبات توزیعی است.
همانگونه که در شکل قابل مشاهده است در مدل ساده ائتلاف پردازنده ها، پردازنده های موجود در ائتلاف هیچ ترمینالی ندارند که بطور مستقیم به آنها متصل شده باشد و کاربران از طریق ترمینال هایی که بوسیله دستگاههای خاصی به شبکه متصل هستند. به این پردازنده ها دسترسی دارند. مثل ترمینال های X.
یک سرور ویژه که سرور اجرا نام دارد، پردازنده های موجود در ائتلاف را در زمان نیاز اختصاص می دهد و در حالت کلی آنها را مدیریت می کند.
وقتی که کاربری، کاری را برای اجرا تسلیم می کند، سرور اجرا، تعداد لازم از پردازنده ها را بطور موقت برای اجرای کار این کاربر به وی اختصاص می دهد. در مقایسه با مدل ایستگاه کاری- سرویس دهنده، مدل ائتلاف پردازنده امکان استفاده بهتری از پردازنده های موجود در سیستم محاسبات توزیع شده را فراهم می آورد.
علت این است که در این مدل همه قدرت پردازشی سیستم برای کاربرانی که در حال حاضر ثبت نام کرده اند قابل استفاده است در حالی که در مدل ایستگاه کاری- سرور چنین چیزی صادق نیست چرا که در مدل فوق الذکر ممکن است در بعضی از اوقات بعضی از ایستگاهها بیکار باشند ولی نمی توان از آنها برای اجرای کارهای کاربران دیگر سیستم استفاده نمود.
مدل ائتلاف پردازنده برای برنامه هایی که تعامل زیادی دارند زیاد کارآیی ندارد مخصوصاً برنامه هایی که از سیستم های گرافیکی یا پنجره ای استفاده می کنند و این همه به خاطر پائین بودن سرعت رسانه های انتقالی شبکه است. و برای این کار مدل ایستگاه کاری- سرور مناسب تر است.

شکل 1-6: ائتلاف پردازنده ها
1-9-مدل ترکیبی
فراتر از این 4 مدل که تشریح شد، مدل ایستگاه کاری- سرویس دهنده، مدلی است که بیشتر از دیگران مورد استفاده قرار گرفته است. علت هم این است که بسیاری از کاربران کارهای تعاملی ساده ای را انجام می دهند. برای مثال :
1- ویرایش
2- ارسال نامه الکترونیکی
3- اجرای برنامه های کوچک
این مدل برای این نوع کارهای کوچک و ساده ایده آل می باشد. در محیط هایی مثل محیط های کاری که گروههای بزرگی از کاربران که اغلب کارهایی را اجرا می کنند که نیازمند محاسبات حجیمی می باشد، مدل ائتلاف پردازنده ایده آل می باشد و مناسب تر از دیگر مدل ها است.
با ترکیب این دو مدل یعنی مدل ایستگاه کاری- سرور و مدل ائتلاف پردازنده می توان یک مدل ترکیبی برای ساخت سیستم محاسبات توزیع شده استفاده کرد. مدل ترکیبی بر پایه مدل ایستگاه کاری- سرویس دهنده ساخته می شود ولی امکانات مدل ائتلاف پردازنده هم به آن اضافه می شود.
در مدل ترکیبی علاوه بر اجرای موثر کارهایی که محاسبات سنگینی دارند، به کارهای تعاملی تضمین پاسخ داده می شود و روشی که برای این کار پیش گرفته می شود این است که به این کارها اجازه داده می شود که روی ماشین ایستگاه کاری محلی کاربر اجرا شوند.
با این همه پیاده سازی سیستم عامل توزیع شده بر پایه این مدل، در مقایسه با مدل های ایستگاه کاری- سرور و مدل ائتلاف پردازنده، هزینه زیادی را لازم دارد.
1-10-چرا سیستم های محاسبات توزیع شده رفته رفته موارد استفاده زیادتری پیدا می کنند؟
برای این سوال می توان دلایل زیر را بیان کرد :
1- برنامه های کاربردی ذاتاً توزیع شده
2- اشتراک اطلاعات میان کاربران توزیع شده
3- اشتراک منابع
4- نسبت کارایی/ هزینه بهتر
5- زمان پاسخ کمتر و توان عملیاتی بالاتر
6- قابلیت اعتماد بیشتر
7- توسعه پذیری و رشد مضاعف
8- انعطاف پذیری بهتر در مشاهده نیاز کاربران
1-11-یک سیستم عامل توزیع شده چه است؟!
" تنن با وم" و "ون رنس" سیستم عامل را به این صورت تعریف کرده اند: برنامه ای که منابع یک کامپیوتر را کنترل می کند و برای کاربران یک رابط و یا یک ماشین مجازی را فراهم می آورد که با استفاده از این رابط استفاده از ماشین نسبت به حالتی که ماشین "لخت" است مهمتر می شود. بنابراین این تعریف دو وظیفه اصلی یک سیستم عامل به شرح زیر است:
1- فراهم آوردن یک ماشین مجازی برای کاربران که برنامه ریزی توسط آن راحت تراز تعامل با سخت افزار زیرین است.
2- مدیریت انواع منابع سیستم که شامل موارد و کارهای متفاوتی است. بنابراین دید کاربران یک کامپیوتر از سیستم، رفتاری که کاربران برای دسترسی به منابع مختلف سیستم دارند و راهی که درخواست های منابع مدیریت می شوند، بستگی دارد به وسعت حوزه سیستم عامل آن کامپیوتر.
سیستم های عاملی که بطور معمول برای سیستم های توزیع شده مورد استفاده قرار می گیرند در حالت کلی به دو دسته تقسیم شده اند:
1- سیستم های عامل شبکه
2- سیستم های عامل توزیع شده
سه مشخصه اصلی که برای تقسیم بندی این دو گروه مورد بحث قرار گرفته اند به شرح زیر هستند:
1- سیمای سیستم
2- استقلال داخلی
3- قابلیت تحمل کاستی
بطور مختصر این سه مشخصه را شرح می دهیم:
1- سیمای سیستم : مهمترین مشخصه ای که برای جداسازی میان این دو گروه به کار گرفته شده است سیمای سیستم از دیدگاه کاربران آن است.
2- استقلال داخلی : یک سیستم عامل شبکه بر پایه اجتماع سیستم عامل های موجود در شبکه به وجود می آید و کار آن حمل رابطه ها و تعاملات اعمال روی سیستم های دور و ایجاد ارتباط میان آنها است در سیستم های توزیع شده استقلال داخلی یکی از مزایای آن است و نباید وجود یکی از اجزا وابسته به وجود دیگری باشد و ارتباطات عامل به وجودآورنده هستند نه وابستگی ها.
3- قابلیت تحمل کاستی : یک سیستم عامل شبکه باید قابلیت تحمل کاستی را در حد صفر یا خیلی کم داشته باشد وقتی که 10% از ماشین های سیستم توزیعی در شبکه خاموش هستند و حداقل 10% از کاربران نمی توانند به کار خود ادامه دهند. تعریف زیر از سیستم عامل توزیع شده توسط تنن باوم و ون رنس ارائه شده و در برگیرنده موارد بالا هست.
یک سیستم عامل توزیع شده، سیستمی است که به کاربرانش مثل یک سیستم عامل مجتمع معمولی نگاه می کند با این تفاوت که روی چندین پردازنده مستقل از هم اجرا می شوند. مفهوم کلیدی در اینجا، شفافیت است. به عبارت دیگر استفاده از چندین پردازنده برای کاربر ممکن است غیرقابل مشاهده باشد (شفافیت). و باز هم به عبارت دیگر کاربر سیستم را به صورت یک سیستم "تک پردازنده مجازی" می بیند نه به صورت مجموعه ای از ماشین های مجزا. به سیستم های محاسبات توزیع شده که از یک سیستم عامل شبکه استفاده می کنند، "سیستم شبکه ای" اطلاق می گردد و از سوی دیگر به سیستم هایی که از یک سیستم عامل توزیع شده استفاده می کنند، "سیستم واقعاً توزیع شده" یا به عبارت ساده تر "سیستم توزیع شده" اطلاق می گردد.
1-12-مواردی که در طراحی یک سیستم عامل توزیع شده باید در نظر گرفت.
به دلایل مختلفی در حالت کلی طراحی یک سیستم عامل توزیع شده مشکل تر از طراحی یک سیستم عامل مجتمع است. در سیستم های مجتمع و در طراحی آنها چنین در نظر گرفته می شود که سیستم عامل دسترسی به همه اطلاعات در مورد محیط اجرایی را دارد. برخی از موارد کلیدی در مورد طراحی سیستم های توزیع شده را می توان به شرح زیر لیست کرد :
1- شفافیت :
– شفافیت دسترسی
– شفافیت موقعیت
– شفافیت پاسخ دهی
– شفافیت کاستی
– شفافیت مهاجرت
– شفافیت جریان
– شفافیت کارایی
– شفافیت پیمایش
2- قابلیت اعتماد :
– پرهیز از کاستی
– تحمل کاستی
– تشخیص و استرداد کاستی
3- قابلیت انعطاف :
– راحتی تغییر در ساختار
– راحتی در بهبود دادن
4- کارآیی :
– دسته بندی کردن در صورت امکان
– کاشه کردن هر موقع که ممکن بود
– کپی کمیته از داده ها
– ترافیک کمیته شبکه
– استفاده از روش موازی سازی بهینه برای چند پردازشی
5- قابلیت توازن :
– پرهیز از موجودیت های مجتمع
– پرهیز از الگوریتم های مجتمع
– اجرای اکثر اعمال روی ایستگاههای کاری مشتری
6- ناهمگن بودن
7- امنیت :
– حصول اطمینان از دریافت پیغام
– حصول اطمینان از مبدا پیغام
– تضمین صحت محتوای پیغام برای هر دو طرف
8- تشابه با سیستم های عامل موجود در حد معتدل
1-13- قوانینی برای سیستمهای توزیع شده
سیستمهای توزیع شده باید برای کاربر نهایی دقیقا به صورت سیستمهای متمرکز باشند. استقلال محلی عدم وابسته بودن به سایت مرکزی عملیات پیوسته استقلال Location استقلال قطعات(Fragmentation) استقلال Replication پردازش توزیع شده جستجوها مدیریت توزیع شده Transaction استقلال سخت افزاری استقلال سیستم عامل استقلال شبکه استقلال DBMS
1-13-1- استقلال محلی
سایتها باید تا حد امکان(بیشترین حد ممکن) مستقل باشند. داده های محلی باید در محل ذخیره و مدیریت شوند(با توجه به در نظر گرفتن یکپارچگی و امنیت) عملیات محلی باید حتما در خود محل اجرا شوند. تمام عملیات در یک سایت باید توسط همان سایت کنترل شود. این بدین معناست که سایت X نباید برای انجام موفقیت آمیز عملیات خود وابسته به سایت Y باشد. در برخی موارد، از دست دادن مقدار کمی از استقلال، اجتناب ناپذیر است: مشکل قطعه قطعه شدن(قانون 5)مشکل Replication(قانون 6) به روز رسانی رابطه Replicate شده(قانون 6)مشکل محدودیت یکپارچگی بین چند سایت
1-13-2- عدم وابسته بودن به سایت مرکزی
به هیچ عنوان نباید برای یک سرویس مرکزی به یک سایت وابسته بود. بعنوان مثال نباید دارای یک پردازشگر مرکزی(متمرکز) جستجوها یا مدیریت مرکزی(متمرکز) Transaction بود، چرا که کل سیستم به یک سایت خاصی وابسته می شوند. وابسته بودن به یک سایت خاص، حداقل به دو دلیل زیر غیر مطلوب می باشد: سایت مرکزی ممکن است یک گلوگاه(Bottleneck) باشد.سیستم ممکن است آسیب پذیر باشد.در یک سیستم توزیع شده، عملیات زیر (در میان سایر عملیات) حتما باید توزیع شده باشند: مدیریت دیکشنری پردازش جستجوکنترل همزمان کنترل بازیابی
1-13-3- عملیات پیوسته
هیچگاه نباید نیاز به خاموش کردن (از قبل پیش بینی شد)ه کل سیستم برای اعمال تغییرات داشته باشیم.اضافه کردن سایت جدید X به سیستم توزیع شده D، نباید باعث توقف کل سیستم شود.اضافه کردن سایت جدید X به سیستم توزیع شده D، نباید نیازمند تغییری در برنامه های کاربر یا فعالیتهای ترمینال باشد.حذف سایت X از سیستم توزیع شده، نباید ئقفه های غیر ضروری در سرویس ایجاد کند.ایجاد و حذف و تکثیر قطعات به صورت پویا باید در یک سیستم توزیع شده امکان پذیر باشد.باید بتوان بدون نیاز به خاموش کردن کل سیستم، DBMS یک سایت را به روز کرد.
1-13-4- استقلال
نه تنها کاربران نباید از محلی فیزیکی ذخیره داده ها مطلع باشند، بلکه از لحاظ منطقی باید به تصور کنند که داده ها در سایتهای محلی خودشان قرار دارد. ساده کردن برنامه های کاربر و فعالیتهای ترمینال اجازه تغییر سکو فراهم کردن استقلال Location برای عملیات ساده بازیابی ساده تر از عملیات به روز رسانی می باشد. داشتن طرحی برای نام گذاری داده توزیع شده(Distributed Data Naming Scheme) و ایجاد پشتیبانی مناسب از طریق زیر سیستم دیکشنری مواردی که باید در مورد کاربران پیاده سازی شود: کاربر U باید شناسه معتبری برای ورود در سایتهای مختلف داشته باشد.پروفایل هر کاربر برای هر شناسه مجاز باید در دیکشنری باشد.دسترسی های هر کاربر در هر سایت به وی اختصاص داده شود.

1-13-5- استقلال قطعات
سیستمهای توزیع شده از قطعه قطعه شدن داده ها پشتیبانی می کنند، منوط به اینکه یک رابطه خاص قابلیت تقسیم به قسمتهای مختلف برای ذخیره در محلهای فیزیکی گوناگون را داشته باشد. سیستمی که این قابلیت را داشته باشد، از استقلال قطعات نیز پشتیبانی می کند. کاربران باید از لحاظ منطقی به گونه ای تصور کنند که گویا اصلا داده ها در قسمتهای مختلف ذخیره نشده اند. از دلایل قطعه قطعه شدن داده ها، می توان به افزایش کارآیی اشاره کرد. قطعه قطعه شدن افقی(Select) قطعه قطعه شدن عمودی(Project) قطعه قطعه شدن باید در متن یک پایگاه داده توزیع شده تعریف شود. استقلال قطعات همانند استقلال Location باعث ساده تر شدن برنامه های کاربر و فعالیتهای ترمینال می شود. داده هایی که به کاربران نمایش داده می شود، از ترکیب منطقی قطعات مختلف (به واسطه الحاقها(Joins) و اجتماعات(Unions) مناسب)به دست می آید.
1-13-6- پردازش توزیع شده جستجوها
یکی از مهمترین و حیاتی ترین نکات در مرود سیستمهای پایگاه داده توزیع شده، انتخاب استراتژی مناسب برای پردازش توزیع شده جستجو می باشد. پردازش جستجو در سیستم های توزیع شده شامل موارد زیر می باشد: عملیات محلی ورودی و خروجی و CPU در سایتهای مجزا، تبادل اطلاعات میان سایتهای فوق الذکر.
1-13-7- مدیریت توزیع شده
دو نکته مهم برای مدیریتon، کنترل بازیابی و کنترل سازگاری می باشد که نیاز به اعمال و دقت بیشتری در محیط های توزیع شده دارند.
در یک سیستم توزیع شده، یک Transaction می تواند باعث اجرای کد در چندین سایت شده که همین امر خود می تواند باعث عملیات به روز رسانی در سایتهای مختلف شود. هر Transaction را می توان شامل چندید Agent در نظر گرفت که هر Agent، فرآیندی است که از طرفTransaction در سایت به خصوصی اجرا می شود. بن بست عمومی: هیچ سایتی نمی تواند با استفاده از اطلاعات داخلی خود، آن را تشخیص دهد.
1-13-8- استقلال سخت افزاری
صرفه نظر از اینکه چه Platform سخت افزاری استفاده می شود، کاربران باید تصویر واحدی از سیستم داشته باشند.بهتر است بتوان یک DBMS را بر روی سیستمهای سخت افزاری مختلف اجرا کرد. بهتر است سیستم های مختلف سخت افزاری سهم یکسانی در یک سیستم توزیع شده داشته باشند.نمی توان به راحتی فرض کرد که همواره می توان از سیستمهای همگن استفاده کرد، به همین دلیل هنوز باید یک DBMS بر روی سیستمهای مختلف سخت افزاری قابل اجرا باشد.
1-13-9- استقلال سیستم عامل
بهتر است که علاوه بر استقلال سخت افزاری، قادر به راه اندازی DBMS بر روی سیستم عاملهای مختلف (حتی سیستم عاملهای مختلف بر روی یک سخت افزار) باشیم.حداقل سیستم عاملهای مهمی که باید DBMS پشتیبانی کند.
1-13-10- استقلال شبکه
مطلوب آن است که بتوانیم شبکه های نامتجانس مختلف را پشتیبانی نماییم.از دید یک DBMS توزیع شده، شبکه یک سرویس مطمئن انتقال پیغام می باشد.مفهموم مطمئن در عبارت فوق را می توان بدین صورت توصیف نمود که به طور مثال اگر شبکه پیغامی را از سایت X برای تحویل به سایت Yدریافت کرد، سرانجام آن پیغام را به سایت Y تحویل دهد.نباید در محتوای پیغامها خللی ایجاد شده و پیغامها باید به ترتیب فرستاده شدن ارسال شده و بیش از یکبار نیز تحویل مقصد نشوند.شبکه مسئول تایید سایت(Site Authentication) نیز می باشد.یک سیستم ایده آل باید هم از شبکه های محلی(LAN) و هم از شبکه های گسترده(WAN) پشتیبانی نماید.سیتمهای توزیع شده باید معماریهای مختلف شبکه را پشتیبانی نمایند.
1-14-پژوهشهای صورت گرفته
تاکنون مطالعات و پژوهشهای زیادی در زمینه ارتقا امنیت در فضای رایانش ابری صورت گرفته است که همگی از چند روش رایج و دائمی برای حل این مساله استفاده کردهاند، به عنوان نمونه :
-در مقاله ای با عنوان مدیریت امنیت سیستم های رایانش ابری سه چالش مدیریت دسترسی، احراز هویت و حسابرسی کاربران، به عنوان مشکل مطرح شده است و سپس راهکار مدیریت دسترسی هویت مطرح شده است.
-در پژوهشی دیگر در همین زمینه نگرانیها و نیازمندیهای امنیتی را صرفا با شناسایی آنها و رعایت یک سری الزامات و استانداردهای امنیتی پاسخ داده است.
-در نمونه ای دیگر با عنوان امنیت مجازی برای سرویسهای رایانش ابری با ارائه یک معماری جدید و همچنین شناسایی دقیق تعدادی از تهدیدات و حملات این حوزه اقدام به ارائه راهکار فنی کرده است که این پیشنهاد مشمول استفاده سامانه ابر از دیواره های آتش و سامانه های تشخیص و جلوگیری از نفوذ مجازی می باشد.
1-15-چالشها
از امنیت به عنوان یکی از چالشهای اصلی در رایانش ابری یاد می شود. استفاده از سرویسهای ابری هم از این قاعده مستثنی نیستند به عنوان نمونه، اجرای تمام برنامه ها بر روی ماشین مجازی به دلیل وجود سربار ناشی از اجرا و نمایش، به کارایی سیستم آسیب وارد می کند. برای مثال، توابع فراخوان سیستم در ماشین مجازی توسط مانیتور ماشین مجازی گرفته شده و سپس به طرف سیستم عامل میهمان ارسال می شود. عملیات سخت افزاری برآمده از سیستم عامل میهمان، توسط مانیتور ماشین مجازی گرفته شده و پس از تفسیرشدن دوباره ارسال میشوند. برخی از سربارها در ماشین مجازی اجتناب ناپذیر هستند؛ سرویسهای فعال شده توسط ماشین مجازی باید به این هزینه )کاهش کارایی( بچربند. نمایش تصویر، در ماشینهای مبتنی بر x86 سربار اضافی را موجب میشود زیرا پردازنده های x86 برخی از دستورالعملهائی که باید مصورشوند را به تله نمیاندازند)مثل خواندن برخی از رجیسترهای سیستم(. یکی از راه های پیاده سازی ماشین مجازی مجهز به این دستورالعملهای غیر مصور، بازنویسی باینریها در زمان اجرا برای مجبور ساختن این دستورالعملها جهت تله افتادن می باشد، اما این امر مقدار قابل توجهی سربار ایجاد می کند.
چالش بعدی برای سرویسهای ماشین مجازی، وجود یک شکاف معنایی بین ماشین مجازی و سرویس است. سرویسهای ماشین مجازی در زیر سیستم عامل میهمان و برنامه ها عمل می کنند. این امر می تواند موجب دشواری در ارائه سرویس و نهایتا مواجه شدن با تهدیدهای امنیتی شود. به طور کلی امنیت به سه مقوله مهم که به سه گانه امنیت شهرت دارد و دربردارنده محرمانگی، یکپارچگی و صحت داده ها و قابلیت دسترسی است، معطوف می شود. اما آیا این کافی است؟
مساله قابل بحث دیگر، ناپایداری می باشد. در محیط های کامپیوتری متعارف مثل یک شبکه، کاربران دارای یک یا چند ماشین هستند که در بیشتر زمانها روشن می باشد. در مقابل، مجموعه ای از ماشینهای مجازی خاص که در برابر برخی از پدیده ها فعال می شوند، این حالت را در شبکه ایجاد می کنند که تعداد زیادی از ماشینها به صورت تصادفی در شبکه ظاهر شده و یا از دید آن پنهان شوند. شبکه های مرسوم به سرعت می توانند به یک حالت خوب شناخته شده برسند، با حضور ماشینهای ناپایدار در شبکه، رسیدن به حالت شناخته شده ناممکن خواهد بود. برای مثال، وقتی یک کرم الکترونیکی وارد شبکه می شود بطور معمول تمام ماشینهای آسیب پذیر به سرعت آلوده خواهند شد. در زمان وقوع این اتفاق، مدیر به راحتی می تواند ماشینهای آلوده را شناسایی کند، سپس با پاک کردن کرم و نصب بسته های امنیتی لازم به سرعت، شبکه را به حالت ثابت برساند. در محیط های مجازی کنترل نشده، به چنین حالت پایداری هرگز نمی توانیم دسترسی پیداکنیم. ماشینهای آلوده در مدت کوتاه ظاهر می شوند و ماشین های دیگر را آلوده می کنند و سپس قبل از شناسایی شان از دید شبکه پنهان می شوند.
در مثلث سه گانه امنیت نشان داده شده در شکل 5، به هر میزان که خدمات و داده به ضلع در دسترس بودن نزدیک شود از وجهی دیگر فاصله معناداری پیدا می کند. در رایانش ابری سعی به نزدیک شدن به قابلیت دردسترس بودن شده است که این مهم با بکارگیری انواع روش_های افزونگی و نسخ پشتیبان گیری تقریبا محقق شده است. بدیهی است این دست آورد به قیمت کاهش سطح محرمانگی منجر خواهدشد. اما این انتخاب در مورد سیستم های ارائه خدمت سنتی کاملا متفاوت است؛ به این معنا که بسته به نوع خدمت، بستر ارائه می تواند به راحتی به هر ضلعی نزدیک و یا دور شود. اما چالشی که می توان در اینجا از آن یاد کرد، استفاده از منابع مشترک در رایانش ابری است که این مهم عملا در سیستمهای سنتی یا وجود ندارد و یا بسیار خفیف تر خواهد بود.

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

شکل 1-8: مدل مفهومی رایانش ابری CSA

فصل دوم
رایانش ابری

2-1-رایانش ابری

شکل 2-1: نمودار مفهومی رایانش ابری
رایانش ابری (به انگلیسی: Cloud Computing) مدل رایانشی بر پایهٔ شبکه های رایانه ای مانند اینترنت است که الگویی تازه برای عرضه، مصرف و تحویل خدمات رایانشی (شامل زیرساخت، نرم افزار، بستر، و سایر منابع رایانشی) با به کارگیری شبکه ارائه می کند "رایانش ابری" از ترکیب دو کلمه رایانش و ابر ایجاد شده است. ابر در اینجا استعاره از شبکه یا شبکه ای از شبکه های وسیع مانند اینترنت است که کاربر معمولی از پشت صحنه و آنچه در پی آن اتفاق می افتد اطلاع دقیقی ندارد (مانند داخل ابر) در نمودارهای شبکه های رایانه ای نیز از شکل ابر برای نشان دادن شبکهٔ اینترنت استفاده می شود. دلیل تشبیه اینترنت به ابر در این است که اینترنت همچون ابر جزئیات فنی اش را از دید کاربران پنهان می سازد و لایه ای از انتزاع را بین این جزئیات فنی و کاربران به وجود می آورد. به عنوان مثال آنچه یک ارائه دهندهٔ خدمت نرم افزاری رایانش ابری ارائه می کند، برنامه های کاربردی تجاری برخط است که از طریق مرورگر وب یا نرم افزارهای دیگر به کاربران ارائه می شود. نرم افزارهای کاربردی و اطلاعات، روی سرورها ذخیره می گردند و براساس تقاضا در اختیار کاربران قرار می گیرد. جزئیات از دید کاربر مخفی می مانند و کاربران نیازی به تخصص یا کنترل در مورد فناوری زیرساخت ابری که از آن استفاده می کنند ندارند. رایانش ترجمه کلمه " Computing" است که در بعضی متون به جای رایانش از محاسبات و پردازش استفاده شده است. البته محاسبات و پردازش معادل کاملی از این کلمه نیست. زیرا بر اساس تعریف واژه نامه های معتبر مانند آکسفورد، لانگمن این واژه به معنای استفاده از رایانه و عملیات رایانه ها یا اموری است که یک رایانه انجام می دهد و محاسبه و پردازش تنها یکی از این امور است. به طور نمونه یک رایانه همانطور که برای اجرای فرامین به محاسبه و پردازش می پردازد، به همین ترتیب مدارک و فایل ها را در هارد دیسک یا صفحه سخت خود ذخیره می کند، امکان ایجاد ارتباط میان افراد را فرآهم می آورد که این امور چیزی بیش از یک محاسبه و پردازش صرف است. به علاوه در معنای علوم رایانه معادل های دیگری برای کلمات "محاسبه" و "پردازش" وجود دارند، مانند" calculation" و" processing "، که عدم تمایز این کلمات با یکدیگر می تواند منشاء اشتباه در درک این مفاهیم شود. رایانش ابری راهکارهایی برای ارائهٔ خدمات فناوری اطلاعات به شیوه های مشابه با صنایع همگانی (آب، برق، تلفن و …) پیشنهاد می کند. این بدین معنی است که دسترسی به منابع فناوری اطلاعات در زمان تقاضا و بر اساس میزان تقاضای کاربر به گونه ای انعطاف پذیر و مقیاس پذیر از راه اینترنت به کاربر تحویل داده می شود. همانطور که کاربر تنها هزینه برق یا آب مصرفی خود را می پردازد. در صورت استفاده از رایانش ابری نیز کاربر تنها هزینه خدمات رایانشی مورد استفاده خود (اگر هزینه از کاربر دریافت شود) را پرداخت خواهد کرد.
رایانش ابری را گروهی تغییر الگوواره ای می دانند که دنباله روی تغییری است که در اوایل دهه ۱۹۸۰ از مدل رایانه بزرگ به مدل کارخواه-کارساز صورت گرفت.
2-2-تعریف
با پیشرفت فناوری اطلاعات نیاز به انجام کارهای محاسباتی در همه جا و همه زمان به وجود آمده است. همچنین نیاز به این هست که افراد بتوانند کارهای محاسباتی سنگین خود را بدون داشتن سخت افزارها و نرم افزارهای گران، از طریق خدماتی انجام دهند. رایانش ابری آخرین پاسخ فناوری به این نیازها بوده است. از آنجا که اکنون این فناوری دوران طفولیت خود را می گذراند، هنوز تعریف استاندارد علمی که مورد قبول عام باشد برای آن ارائه نشده است اما بیشتر صاحبنظران بر روی قسمتهایی از تعریف این پدیده هم رای هستند. موسسه ملی فناوری و استانداردها (NIST) رایانش ابری را اینگونه تعریف می کند:
"رایانش ابری مدلی است برای فراهم کردن دسترسی آسان بر اساس تقاضای کاربر از طریق شبکه به مجموعه ای از منابع رایانشی قابل تغییر و پیکربندی (مثل: شبکه ها، سرورها، فضای ذخیره سازی، برنامه های کاربردی و سرویس ها) که این دسترسی بتواند با کمترین نیاز به مدیریت منابع و یا نیاز به دخالت مستقیم فراهم کننده سرویس به سرعت فراهم شده یا آزاد (رها) گردد".
عموماً مصرف کننده های رایانش ابری مالک زیر ساخت فیزیکی ابر نیستند، بلکه برای اجتناب از هزینه سرمایه ای آن را از عرضه کنندگان شخص ثالث اجاره می کنند. آنها منابع را در قالب سرویس مصرف می کنند و تنها بهای منابعی که به کار می برند را می پردازند. بسیاری از سرویسهای رایانش ابری ارائه شده، با به کار گیری مدل رایانش همگانی امکان مصرف این سرویسها را به گونه ای مشابه با صنایع همگانی (مانند برق) فراهم می سازند. این در حالی است که سایر گونه های عرضه کنندگان بر مبنای اشتراک سرویسهای خود را عرضه می کنند. به اشتراک گذاردن قدرت رایانشی "مصرف شدنی و ناملموس" میان چند مستاجر می تواند باعث بهبود نرخ بهره وری شود؛ زیرا با این شیوه دیگر کارسازها (سرور) بدون دلیل بیکار نمی مانند (که سبب می شود هزینه ها به میزان قابل توجهی کاهش یابند در عین حال که سرعت تولید و توسعه برنامه های کاربردی افزایش می یابد). یک اثر جانبی این شیوه این است که رایانه ها به میزان بیشتری مورد استفاده قرار می گیرند زیرا مشتریان رایانش ابری نیازی به محاسبه و تعیین حداکثری برای بار حداکثر (Peak Load) خود ندارند.

2-3-مقایسه با مدل های دیگر رایانش
رایانش ابری اگرچه برخی از ویژگیهایش را از مدل های رایانشی دیگر به ارث می برد؛ اما خود متفاوت از آنهاست. برخی از این مدل ها عبارتند از:
1-رایانش شبکه ای- شکلی از رایانش توزیع شده و رایانش موازی که در آن یک رایانه مجازی بزرگ از رایانه هایی تشکیل شده است که با جفتگری ضعیف به هم شبکه شده اند و با هماهنگی با یکدیگر کار می کنند تا وظایف سنگین را به انجام برسانند.
2-رایانش خودمختار-سامانه های رایانه ای با قابلیت خود-مدیریت.
3-مدل مشتری/سرور- رایانش مشتری/سرور به صورت گسترده به هر برنامه کاربردی توزیع یافته ای گفته می شود که بین ارائه دهنده سرویس (سرور) و درخواست کننده سرویس (مشتری) تمایز قایل می شود.
4-رایانه بزرگ-رایانه های قدرتمند توسط سازمانهای بزرگ برای کاربردهای بحرانی بکار برده می شوند. این کاربردها نوعاً شامل پردازش حجم زیاد داده می باشد. به طور نمونه می توان از سرشماری، آمار مصرف کننده و صنعت، برنامه ریزی منابع سازمانی و پردازش تراکنشهای مالی نام برد
5-رایانش همگانی-عبارت است از بسته بندی منابع رایانشی مانند منابع محاسباتی و دخیره سازی، در قالب سرویس های قابل اندازه گیری، به گونه ای مشابه با صنایع همگانی (آب، برق، تلفن و …)
6-نظیر به نظیر-گونه ای از معماری توزیع شده بدون هماهنگی مرکزی است که در آن شرکت کنندگان می توانند در آن واحد عرضه کننده و نیز مصرف کننده منابع باشند. (بر خلاف مدل کارخواه-کارساز سنتی)
2-4-تاریخچه
پیدایش مفاهیم اساسی رایانش ابری به دهه ۱۹۶۰ بازمی گردد. زمانی که جان مک کارتی اظهار داشت که "رایانش ممکن است روزی به عنوان یکی از صنایع همگانی سازماندهی شود". تقریباً تمام ویژگیهای امروز رایانش ابری (تدارک الاستیک، ارائه به صورت یک صنعت همگانی، برخط بودن و توهم دسترسی به عرضه نامحدود) به همراه مقایسه با صنعت برق و شکل های مصرف عمومی وخصوصی و دولتی وانجمنی را پارک هیل داگلاس در کتابی که با عنوان "مشکل صنعت همگانی رایانه" در سال ۱۹۶۶ مورد بررسی قرار داد. واژهٔ ابر در واقع بر گرفته از صنعت تلفن است به این گونه که کمپانیهای ارتباطات راه دور که تا دهه ۱۹۹۰ تنها خطوط نقطه به نقطهٔ اختصاصی ارائه می کردند، شروع به ارائه شبکه های خصوصی مجازی با کیفیتی مشابه و قیمتهای کمتر نمودند. نماد ابر برای نمایش نقطه مرزی بین بخشهایی که در حیطه مسئولیت کاربرند و آنهایی که در حیطه مسئولیت عرضه کننده بکار گرفته می شد. رایانش ابری مفهوم ابر را به گونه ای گسترش می دهد که سرورها را نیز علاوه برزیر ساخت های شبکه در بر گیرد.
سایت آمازون با مدرن سازی مرکز داده خود نقش مهمی در گسترش رایانش ابری ایفا کرد. بعد از حباب دات-کام آنها دریافتند که با تغییر مرکز داده های خود – که ماننداغلب شبکه های رایانه ای در بیشتر اوقات تنها از ۱۰٪ ظرفیت آن استفاده می شدو مابقی ظرفیت برای دوره های کوتاه اوج مصرف در نظر گرفته شده بود – به معماری ابر می توانند بازده داخلی خود را بهبود بخشند. آمازون از سال ۲۰۰۶ امکان دسترسی به سامانه خود از طریق وب سرویسهای آمازون را بر پایه رایانش همگانی ارائه کرد. در سال ۲۰۰۷، گوگل و آی بی ام به همراه چند دانشگاه پروژه ای تحقیقاتی در مقیاسی بزرگ را در زمینه رایانش ابری آغاز نمودند.
در اواسط سال ۲۰۰۸ شرکت گارتنر متوجه وجود موقعیتی در رایانش ابری شد که برای "شکل دهی ارتباط بین مصرف کنندگان خدمات فناوری اطلاعات، بین آنهایی که این سرویسها را مصرف می کنند و آنها که این سرویسها را می فروشند" بوجود می آید.

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

شکل 2-2:معماری نمونه رایانش ابری
معماری سامانه های نرم افزاری دست اندر کار در ارائهٔ رایانش ابری عموماً شامل اجزایی است که با یکدیگر از طریق رابط برنامه نویسی نرم افزار و معمولاً وب سرویس ارتباط برقرار می کنند.
این طراحی شباهتی با فلسفه یونیکس دارد که در آن چند برنامهٔ مختلف که هر یک کاری را به خوبی انجام می دهند، با یکدیگر از طریق واسط های جهانی کار می کنند. سامانه های حاصل مدیریت پذیرتر از همتاهای یکپارچه نبوده وبه پیچیدگی کنترل می شود.
2-6-2-لایه ها

شکل 2-3:پشتهٔ رایانش ابری
2-6-3-کاربر
کاربر رایانش ابری متشکل از سخت افزار و نرم افزاری است که برای تحویل برنامه های کاربردی از ابر استفاده می کند و یا آنکه به طورویژه تنها برای تحویل سرویسهای ابر طراحی شده است که در هر دوی موارد بدون وجود ابر بی استفاده باشد. مثال: رایانه ها، تلفن ها و سایر دستگاهها، سیستم عاملها و مرورگرهای وب.
2-6-4-برنامه های کاربردی
سرویس های برنامه کاربردی ابری یا "نرم افزار به عنوان سرویس"، نرم افزار را به صورت سرویس روی اینترنت تحویل می دهند و بدین وسیله نیاز به نصب نرم افزار روی رایانه های مشتریان را ازبین می برند و نگهداری و پشتیبانی را ساده تر می سازد. ویژگیهای اصلی این سرویسها عبارتند از:
-دسترسی و مدیریت نرم افزار تجاری از طریق شبکه
-فعالیتها از سرور مرکزی اداره می شوند و نه در مکان هریک از مشتریان و در نتیجه مشتریان می توانند از راه دور و از طریق وب به برنامه ها دسترسی داشته باشند.
-مدل تحویل نرم افزار به مدل یک-به-چند (یک نسخه در حال اجرا از برنامه – مدل چند مستاجری) نزدیک تر است تا مدل یک-به-یک.
-به روز رسانی و ارتقای نرم افزار به صورت مرکزی اداره می شود و نیاز به بارگیری (دانلود) وصله ها یا ارتقا دهنده ها را برطرف می سازد.
2-6-5-بستر
سرویس های بستر ابری یا "بستر به عنوان سرویس"(PaaS) بستر رایانشی ویا پشتهٔ راهکار -که اغلب روی زیرساخت ابری اجرا شده و برنامه کاربردی ابری را تغذیه می کند- را به صورت سرویس ارایه می دهد. سرویس بستر ابری استقرار برنامه های کاربردی را بدون هزینه و پیچیدگی خرید و مدیریت لایه های نرم افزاری و سخت افزاری زیرین آسان می سازد.
2-6-6-زیرساخت
سرویس های زیرساخت ابری یا "زیرساخت به عنوان سرویس"(IaaS) زیرساخت رایانه ای را که عموماً یک بستر مجازی است را به صورت سرویس ارائه می دهند. کاربران به جای خرید سخت افزار و نرم افزار و فضای مرکز داده (دیتا سنتر) ویا تجهیزات شبکه، همهٔ این زیر ساخت ها را به صورت یک سرویس کاملاً برونسپاری(Outsource) شده می خرند. صورتحساب سرویس معمولاً بر اساس مدل رایانش همگانی (Utility Computing) و میزان منابع مصرف شده صادر می شود و بنابر این هزینه منعکس کننده میزان فعالیت است. این شیوه در واقع تکامل یافته مدل عرضه سرورهای خصوصی مجازی است.
2-6-7-سرور
لایه سرورها متشکل از سخت افزار و نرم افزاری است که مخصوصاً برای تحویل سرویسهای ابر طراحی شده اند. به عنوان مثال می توان از پردازنده های چند هسته ای و سیستم عامل های ویژه ابر نام برد.
2-6-8-ویژگی های کلیدی
از دیدگاه سخت افزاری رایانش ابری در مقایسه با فناوری های مشابه قبلی سه جنبه جدید دارد:
-ایجاد تصور و توهم دسترسی به منابع نامحدود فناوری اطلاعات در زمان تقاضا و درنتیجه، از بین بردن نیاز کاربر به برنامه ریزی تدارک منابع فناوری اطلاعات برای مصارف آینده
-از بین بردن نیاز به سرمایه گذاری پیشاپیش برای منابع فناوری اطلاعات. شرکتهای تجاری می توانند در اندازه کوچکتر کارشان را آغاز کنند و بر اساس نیاز در زمان دلخواه منابع سخت افزاری مورد نیاز خود را افزایش یا کاهش دهند.
-امکان پرداخت برای استفاده از منابع فناوری اطلاعات در واحدهای زمانی کوتاه مدت مورد نیاز آن منبع. (مثال: برای پردازشگر در واحد ساعت؛ یا برای رسانه های ذخیره سازی در واحد روز) مزایای اصلی رایانش ابری عبارتند از:
-چابکی: کاربر می تواند در زمان نیاز میزان منابع مورد استفاده را کاهش یا افزایش دهد.
-هزینه: ادعا می شود که این فناوری هزینه ها را به میزان زیادی کاهش می دهد و هزینه سرمایه ای را به هزینه عملیاتی تبدیل می کند. این به ظاهر موانع ورود به بازار را کاهش می دهد، زیرا رایانش ابر، مشتریان را از مخارج سخت افزار، نرم افزار و خدمات و همچنین از درگیری با نصب و نگهداری نرم افزارهای کاربردی به شکل محلی می رهاند. همچنین هزینهٔ توسعهٔ نرم افزاری را کاهش داده و فرایند را مقیاس پذیرتر می نماید
-نابستگی به دستگاه و مکان:کاربران می توانند در هر مکانی و با هر دستگاهی (مثل PC یا تلفن همراه) به وسیلهٔ یک مرورگر وب از راه اینترنت به سامانه ها دسترسی داشته باشند.
-چند مستاجری: این ویژگی امکان به اشتراک گذاری منابع و هزینه ها بین گروهی از کاربران را به وجود می آورد و بدین وسیله موارد زیر را امکان پذیر می سازد:
-متمرکز سازی زیر ساختها در مکانهایی با هزینه کمتر (مثل مکانهایی با هزینه برق یا قیمت زمین کمتر)
-افزایش بکارگیری و کارایی برای سامانه هایی که در اغلب مواقع بیش از ۱۰ تا ۲۰ درصد بکارگیری نمی شوند
-قابلیت اطمینان: در صورتی که از سایتهای چندگانه استفاده شود قابلیت اطمینان افزایش می یابد.
-سنجش پذیری: کاربران می توانند در زمان تقاضا و به صورت دینامیک منابع را تدارک ببینند و نیازی به تدارک پیشین برای زمانهای حداکثر بار مصرف منابع نیست. منابع در رایانش ابری باید قابل اندازه گیری باشند و لازم است که میزان مصرف منابع برای هر کاربر و هر منبع بر اساس واحدهای ساعتی، روزانه، هفتگی، ماهانه اندازه گرفت.
-امنیت: به دلیل تمرکز داده ها و منابع امنیتی بیشتر و پیچیده تر امنیت افزایش می یابد، اما نگرانی ها به دلیل از دست دادن کنترل روی داده های حساس همچنان پابرجاست. امنیت در رایانش ابری اغلب بیشتر یا برابر با سیستمهای سنتی می باشد، زیرا ارائه دهندگان رایانش ابری به منابع اختصاصی امنیتی دسترسی دارند که بیشتر مشتریان از عهده خرید این منابع بر نمی آیند.
-نگهداری: به دلیل عدم نیاز به نصب برنامه های کاربردی برای هر کاربر نگهداری آسانتر و با هزینه کمترانجام می شود. شرکت هایی که سکوهای خودشان را پیاده سازی و اجرا می کنند، باید زیرساخت های سخت افزاری و نرم افزاری خودشان را خریداری و نگهداری نمایند و کارمندانی را برای مراقبت از سیستم استخدام کنند، همهٔ اینها می تواند پر هزینه و زمان بر باشد. درحالیکه رایانش ابر نیاز به انجام این کارها را از میان می برد. هر دستگاه ساده که توانایی اتصال و برقراری ارتباط با سرور را داشته باشد، برای استفاده از خدمات رایانش ابر کافی است و می تواند نتایج را با دیگران به تشریک مساعی بگذارد.
2-7-مدل های پیاده سازی

شکل 2-4:گونه های رایانش ابری
در تعریف NIST (انستیتوی ملی استانداردها و فناوری ها) مدل های استقرار ابر به چهار صورت زیر است:
2-7-1-ابر عمومی
ابر عمومی یا ابر خارجی توصیف کننده رایانش ابری در معنای اصلی و سنتی آن است. سرویس ها به صورت پویا و از طریق اینترنت و در واحدهای کوچک از یک عرضه کنندهٔ شخص ثالث تدارک داده می شوند و عرضه کننده منابع را به صورت اشتراکی به کاربران اجاره می دهد(Multi-tenancy) و بر اساس مدل رایانش همگانی و مشابه صنعت برق و تلفن برای کاربران صورتحساب می فرستد. این ابری برای استفاده همگانی تعبیه شده و جایگزین یک گروه صنعتی بزرگ که مالک آن یک سازمان فروشندهٔ سرویس های ابری می باشد.
2-7-2-ابر گروهی
ابر گروهی در جایی به وجود می آید که چندین سازمان نیازهای یکسان دارند و به دنبال این هستند که با به اشتراک گذاردن زیرساخت از مزایای رایانش ابری بهره مند گردند. به دلیل اینکه هزینه ها بین کاربران کمتری نسبت به ابرهای عمومی تقسیم می شود، این گزینه گران تر از ابر عمومی است اما میزان بیشتری از محرمانگی، امنیت و سازگاری با سیاست ها را یه همراه می آورد. نمونهٔ یک ابر انجمنی، "ابر گو گوگل"(Gov Cloud) است.
2-7-3-ابر آمیخته
یک ابر آمیخته متشکل از چندین ارائه دهندهٔ داخلی و یا خارجی، گزینهٔ مناسبی برای بیشتر موسسات تجاری می باشد. با ترکیب چند سرویس ابر کاربران این امکان را می یابند که انتقال به ابر عمومی را با دوری از مسائلی چون سازگاری با استانداردهای شورای استانداردهای امنیت داده های کارتهای پرداخت آسانتر سازند.
2-7-4-ابر خصوصی
ابر خصوصی یک زیر ساخت رایانش ابری است که توسط یک سازمان برای استفاده داخلی آن سازمان به وجود آمده است. عامل اصلی که ابرهای خصوصی را از ابرهای عمومی تجاری جدا می سازد، محل و شیوه نگهداری از سخت افزار زیرساختی ابر است. ابر خصوصی امکان کنترل بیشتر بر روی تمام سطوح پیاده سازی ابر (مانند سخت افزار، شبکه، سیستم عامل، نرم افزار) را فراهم می سازد. مزیت دیگر ابرهای خصوصی امنیت بیشتری است که ناشی از قرارگیری تجهیزات در درون مرزهای سازمان و عدم ارتباط با دنیای خارج ناشی می شود. اما بهره گیری از ابرهای خصوصی مشکلات ایجاد و نگهداری را به همراه دارد. یک راه حل میانه برای دوری از مشکلات ابرهای خصوصی و در عین حال بهره مند شدن از مزایای ابرهای خصوصی، استفاده از ابر خصوصی مجازی است. ابر خصوصی مجازی بخشی از زیر ساخت یک ابر عمومی است که برای استفاده اختصاصی یک سازمان کنار گذارده می شود و دسترسی به آن تنها از راه شبکه خصوصی مجازی آی پی سک امکانپذیر است. به عنوان نمونه می توان از ابر خصوصی مجازی آمازون نام برد.
2-8-رسانه ذخیره سازی ابری
رسانه ذخیره سازی ابری مدلی از ذخیره سازی بر پایهٔ شبکه است که در آن داده ها بر روی چندین سرور (کارساز) مجازی ذخیره می شود. معمولاً این سرویس توسط شرکتهای میزبانی ارائه می شود که مراکز داده بزرگی را در اختیار دارند. افرادی که بخواهند داده هایشان توسط این شرکتها میزبانی شود می توانند فضای ذخیره سازی را از آنها بخرند و یا اجاره کنند. از سوی دیگر گردانندگان مراکز داده ها منابع خود را، مطابق نیازهای مشتریان، مجازی سازی می کنند و سرویس را به صورت سرورهای مجازی ارائه می دهند که قابل مدیریت توسط کاربران است. در عمل داده های ذخیره شده روی یک سرور مجازی ممکن است بر روی چندین سرور فیزیکی مختلف ذخیره شده باشند.
2-8-1-میان ابر
میان ابر ابری جهانی از ابرهای به هم پیوسته است که از گسترش مفهوم اینترنت به عنوان شبکه شبکه ها نتیجه می شود. این واژه نخستین بار در سال ۲۰۰۷ توسط کوین کلی بکار رفت که نظر خود را اینگونه بیان کرد که" ما سرانجام به میان ابر خواهیم رسید که ابر ابرهاست. این میان ابر ابعادی به اندازه یک ماشین متشکل از تمام سرورها و شرکت کننده های روی زمین است. این واژه در سال ۲۰۰۹ مقبولیت عام یافت و همچنین برای توصیف مراکز داده آینده بکار رفته است.
2-9-چالش ها
2-9-1-آسیب پذیری در برابر رکود اقتصادی
مدل خدمات رایانه ای، در مقابل رکود اقتصادی بسیار آسیب پذیر است. همانگونه که شرکت ها در طی یک رکود محتاطانه عمل می کنند، هزینه های صرف شده برای خدمات رایانه ای را نیز کاهش می دهند. البته به دلیل اینکه استفاده از سرویس های پردازش ابری هزینه راه اندازی اولیه زیادی برای شرکت ها در بر ندارند، در این دوران رکود اقتصادی شرکت ها به استفاده از نرم افزارها به عنوان خدمت علاقه مند شده اند. بطوری که بر اساس گزارش Forbes در سال ۲۰۱۲ حدود ۴۰ درصد از بازار نرم افزارهای CRM در سطح دنیا متعلق به سیستم های مبتنی بر پردازش ابری بوده است.
2-10-شکل جدید نرم افزارها
متخصصین نرم افزار در راه ایجاد نرم افزاری که میلیون ها کاربر به جای اجرای آن بر روی کامپیوترهای شخصی خود، بتوانند از آن مانند یک سرویس استفاده کنند، با چالش های متعدد جدیدی مواجه شده اند.
2-11-پذیرش
این رویکرد نسبتاً تازه است ودر بسیاری موارد هنوز پذیرفته نشده است. دپارتمان های IT هنوز نسبت به آن بسیار محتاط عمل می کنند زیرا سکوی رایانش ابر توسط آنها کنترل نخواهد شد. تاکنون سرمایه گذارانی که جرات سرمایه گذاری در پروژه های مخاطره آمیز را دارند، پول زیادی در رایانش ابر سرمایه گذاری نکرده اند. توانایی کنترل هزینه ها و تهیه و تدارک زیرساخت ها بهنگام نیاز، به ویژه باعث جذب کسب و کارهای جدیدی که منابع کمتری در اختیار داشتند، شد. همچنین شرکت های Web 2.۰ که در حالت عادی منابع کمتری دارند و بدنبال کسب توانایی افزایش یا کاهشِ آسان تقاضا، بهنگام نیاز هستند. شرکت های بزرگتر، که عموماً صبر می کنند تا تکنولوژی های جدید پذیرفته شوند، از برای پروژه های موقت و گاه وبیگاهی استفاده می کنند که منابع اضافی زیادی را می طلبند. مثل همهٔ رویکردهای تازه پدیدار شده، میزانی از بیم، عدم اطمینان و قطعیت، و نگرانی هایی دربارهٔ بالندگی این تکنولوژی وجود دارد.
2-12-کنترل
ارائه دهندگان خدمات، معمولاً سکوها را برای پشتیبانی از شیوه های تجاری و ITی یک شرکت خاص طراحی نمی کنند. همچنین، کاربران قادر به تغییر تکنولوژی سکوها به هنگام نیاز نخواهند بود. گرچه ارائه دهندگان می توانند با توجه به اینکه چه تکنولوژی ای به بهترین نحو نیازها را پاسخ می دهد و بهنگام نیاز آن را تغیییر دهند که این کار بدون موافقت یا رضایت مشتریان انجام می گیرد.
2-13-هزینه های پهنای باند
به لطف پهنای باند بالای شبکه، کاربر حتی هنگامی که در حال استفاده از وب به عنوان یک کامپیوتر فراگیر است، احساسِ کار بر روی سیستم محلی را دارد. با اینحال مشکل زیر پیش می آید:
در حالیکه شرکت ها به کمک رایانش ابر، می توانند در هزینهٔ تجهیزات و نرم افزارها صرفه جویی کنند، اما باید متحمل هزینهٔ شارژ بالاتری برای پهنای باند بشوند. احتمالاً هزینهٔ پهنای باند باید برای نرم افزارهای کاربردی مبتنی بر وب کوچک که داده-متمرکز نیستند کمتر خواهد بود، اما هنگامی که مثلاً یک شرکت، پایگاه داده ای چند ترابایتی را از طریق رایانش ابر اجرا می کند، این هزینه می تواند بسیار بالا باشد.
2-14-محبوس شدن توسط ارائه دهندگان و استانداردها
نیاز به استانداردهای باز برای تمام شیوه های استفاده از وب به عنوان یک کامپیوتر فراگیر وجود دارد. با افزایش تعداد ارائه دهندگان خدمات ابری، اهمیتِ قابلیت جابجایی بیشتر خواهد شد. اگر شرکتی از خدمات یکی از ارائه کنندگان ناراضی باشد – یا اگر فروشنده از این کسب و کار کنار بکشد – نمی تواند لزوماً آسان و با هزینه ای کم، به ارائه دهندهٔ دیگر منتقل شود و یا اینکه خدمات مذکور را دوباره به درون شرکت برگرداند. در عوض، شرکت باید داده ها و نرم افزارهای کاربردی اش را قالب بندی مجدد نموده و آنها را به یک ارائه دهندهٔ جدید منتقل کند، که فرایندی بالقوه پیچیده است؛ و اگر بخواهد خدمات را بدرون شرکت بیاورد، باید کارمندانی را که واجد مهارت های لازم برای کار با این تکنولوژی هستند، استخدام کند. کاربران به طور روزافزون به وب و ارائه دهندگان آن وابسته خواهند شد. به این ترتیب، هنگامیکه ارائه دهندگان خدمات شرایط استفاده از خدمات و یا روش های عملیاتی خود را بعد از مدتی تغییر بدهند، کاربران آنها احساس به دام افتادن و درماندگی می کنند. برای مثال، تحمیل محدودیت های جدید بر استفاده از یک قابلیت و یا از کار انداختن آن به مدت چند ماه بمنظور بهبود بخشیدن به آن. همچنین ممکن است ارائه دهندگان تصمیم به حذف یک قابلیت که سال ها در سایت رایگان ارائه می شد، اما در مقابل بخش بهادار خود را حفظ کند و حتی افزایش قیمت بدهد.
2-15-شفافیت دسترسی
اگر شرکت ها نتوانند نشان دهند که چه کسی به داده های مشتریان دسترسی دارد و چگونه مانع دستیابی کارمندان غیر مجاز به اطلاعات می شوند، نخواهند توانست از حسابرسی ظرفیت های خود، به وسیلهٔ مشتریانِ آینده با موفقیت بیرون بیایند. ارائه دهندگان رایانش ابر این نگرانی را به کمک نظارت قبلی third partyها بر سیستم ها و به وسیلهٔ مستندسازی رویه های طراحی شده برای پاسخگویی به نیازهای امنیتِ داده برای مشتریان رفع می کنند.
2-16-قابلیت اطمینان
رایانش ابر همیشه قابلیتِ اعتمادِ مستمری را ارائه نکرده است. مثلاً، مشتریان Salesforce.com در تاریخ ۱۲ فوریه ۲۰۰۸، به مدت ۶ ساعت قادر به دریافت خدمات نبودند؛ و سه روز بعد خدمات Amazon's S۳ و EC۲ به مدت ۳ ساعت دچار وقفه شدند. البته بروز مشکلاتی که موجب عدم توانایی کاربران در استفاده از نرم افزارها شود در مواردی که نرم افزار داخل شرکت نصب شده باشد نیز ممکن است اتفاق افتد و این امر تنها مختص به سرویس های پردازش ابری نمی باشد. لازم است ذکر شود که شرکت های ارائه دهنده خدمات ابری در قراردادهای خود ضریب اطمینان دسترسی به سرویس را عنوان می کنند. این ضریب مشخص می کند که ممکن است در بازه های زمانی تعریف شده به چه مدت سرویس از دسترس مشتری خارج باشد.
2-17-حفظ حریم خصوصی
طرفداران حفظ حریم خصوصی ها مدل ابر را مورد انتقاد قرار می دهند، زیرا ارائه دهندگان سرویسهای ابر می توانند کنترل و نظارت کامل قانونی ویا غیر قانونی بر روی داده ها و ارتباطات بین کاربران سرویس و میزبان ابر داشته باشند. رویدادهایی همچون برنامه مخفی آژانس امنیت ملی ایالات متحده آمریکا به همراه شرکتهای AT&T و ورایزون که بیش از ده میلیون مکالمه تلفنی شهروندان امریکایی را ضبط نمودند، باعث بوجود آمدن بی اعتمادی میان طرفداران حفظ حریم خصوصی شده است.
2-18-امنیت
امنیت نسبی رایانش ابری موضوعی بحث انگیز است که ممکن است پذیرش رایانش ابری را به تاخیر بیندازد. گروهی بر این باورند که امنیت داده ها وقتی که در داخل سازمان اداره شوند بالاتر است، در حالی که گروهی دیگر عقیده دارند که ارائه دهندگان سرویس انگیزه ای قوی برای حفظ اعتماد دارند و از این رو سطح امنیت بالاتری را بکار می گیرند.
2-19-میزان در دسترس بودن و کارایی
علاوه بر امنیت داده ها، میزان در دسترس بودن و کارایی برنامه های کاربردی که روی ابر میزبانی می شوند برای کاربران از اهمیت بالایی برخوردار است.
2-20-انتقاد از واژه
لری الیسون مدیر ارشد اجرایی شرکت اوراکل گفته است که رایانش ابری چیزی است که "در حال حاضر ما از آن استفاده می کنیم" و هیچ تاثیری در آن نگذاشته است به جز "تغییر کلمات در تبلیغات ما".
ریچارد استالمن گفته است که رایانش ابری فقط یک حیلهٔ ساده است که مردم مجبور شوند از سیستم های انحصاری استفاده کنند که هزینهٔ آن بیشتر و بیشتر از قبل است. او به گاردین گفت: "این احمقانه است، این چیزی بدتر از احمقانه است، این فقط بزرگ نمایی در بازاریابی است".
2-21-نگاهی به آینده
رایانش ابری در نمودار دوره محبوبت گروه گارتنر در راس دوره محبوبت قرار دارد، در این مقطع رایانش ابری در مرکز توجهات است اما هنوز کاملاً پتانسیل های خود را بلفعل نکرده است. طبق پیش بینی های گارتنر طی سه تا چهار سال آینده رایانش ابری پتانسیل واقعی خود را نمایان می کند. رایانش ابری بطور چشمگیری موانع ورود به تجارت نرم افزاری را کاهش می دهد و برای شرکت ها روش های جدیدِ کسب سود را می نمایاند. ارائه دهندگان خدمات ابر از طریق تسهیم، بهبود دادن و سرمایه گذاری بیشتر در نرم افزار و سخت افزار به سود دست میابند- یکبار نصب نرم افزار می تواند نیازهای کاربران متعددی را پوشش دهد.
نیرو محرکه های اصلی ای که پشت سر رایانش ابر قرار دارند عبارتند از فراگیری شبکهٔ بیسیم و پهن باند، کاهش هزینه های ذخیره سازی، و بهبود تصاعدی در نرم افزارهای پردازشگر اینترنتی. مشتریان خدمات ابر قادر خواهند بود تا ظرفیت بیشتری را در هنگام اوج تقاضا به سیستم خود تزریق کنند، هزینه ها را کاهش داده، خدمات نوینی را تجربه کنند، و ظرفیت های بلا استفاده را حذف کنند. بدین ترتیب، وب از منابع محاسباتی قدرتمند با قیمت هایی قابل پرداخت، میزبانی می کند و سازمان ها بسته به شرایط اقتصادی وضعیت موجود خود- یعنی اینکه خرید نرم افزار و زیرساخت ها ارزان تر است یا خرید سرویس بر حسب نیاز- از امکانات رایانشی درون سازمانی یا خدمات ابر خارجی استفاده می کنند. در قرن ۲۱ شاهد افزایش تمایل استفاده از وسایل قابل حمل سبک برای دسترسی به خدمات اینترنت بجای کامپیوترهای شخصی هستیم. از آنجاییکه چنین وسایلی، امکانات پردازشی قوی ندارند (بعبارتی علاقه ای به داشتنِ چنین امکاناتی ندارند)، پس چه کسی قدرت پردازشی را تامین خواهد کرد؟ پاسخ به این سوال در رایانش ابر نهفته است.
این تصوّر که در ۲۰۱۹، همهٔ پردازش های خود را از طریق لپ تاپ ها با هزینه ای کمتر از ۱۰۰ دلار انجام خواهیم داد، در حالیکه هیچ مشکلی در زمینهٔ خدمات و سطوح امنیتی نخواهیم داشت، مسلماً فراتر از واقعیت است اما مطمئناً در آینده ازابرها بشکل بسیار گسترده ای استفاده خواهیم کرد. پتانسیل رشد این تکنولوژی بسیار بالا برآورد شده است. رایانش ابری در طی دَه سال آتی به اشکال زیر بر زندگی ما تاثیر خواهد گذاشت:
-برنامه های درون ابر جایگزین برنامه هایی خواهند شد که هم اکنون به صورت محلی در دستگاه هایتان نصب شده اند. مانند برنامهٔ آفیس.
-اطلاعات ارزان تر و دسترسی و یافتنش آسان تر می گردد، زیرا ابر توسعهٔ برنامه و اتصال به شبکه های آنلاین را ارزان می کند. مانند دائرهالمعارف های آنلاین و سرویس های ذخیره سازی اطلاعات آنلاین.
-ابر سرویس های اجتماعی نوین را با اتصال کاربران از طریق شبکه های اجتماعی که خود ترکیبی از چند سرویس مختلف ابرند، میسر می سازد. مانند شبکهٔ اجتماعی فیسبوک، توییتر، گوگل پلاس و …
-ساخت برنامه های جدید آسان تر خواهد شد و مبتنی بر بخش های ماژولار استاندارد خواهد بود. مانند سرویس PaaS گوگل (GAE)
-نقش سیستم های عامل اختصاصی در پردازش ها و رایانش های روزمره تقلیل می یابد. با ظهور سیستم عامل هایی مانند کروم برای شرکت گوگل و آزور برای شرکت مایکروسافت؛ و همواره
-و قادر خوهید بود در تمام اوقات از هرجایی به ابر متصل شوید.
2-22-دولت ها و رایانش ابری
حمایت از توسعه فناوری یکی از مهمترین وظایف و دغدغه های دولت هاست؛ که درخصوص رایانش ابری شاید دولت ها باید این نقش را ایفا کنند. چراکه دولت ها به طور بالقوه یکی از بزرگ ترین ذینفعان رایانش ابری خواهند بود. امکانات رایانش ابری (به ویژه در بخش زیرساخت به عنوان خدمت) می تواند در توسعه دولت الکترونیکی مستقل و یکپارچه نقش اساسی ایفا کند. خبرگان برخی دولت ها مانند دولت هند توسعه رایانش ابری را راهی برای پر کردن شکاف دیجیتالی و در پی آن کاهش تبعیض و نابرابری اجتماعی در جامعه خود یافته اند. کشورها همچنین می توانند به رایانش ابری به مثابه یکی از ارکان توسعه صادرات دانش مبنا بنگرند. سیاستگذاران کشورهای توسعه یافته توانایی خود در حفظ سلطه را در توفق در این عرصه جستجو می کنند. پروژه های نظامی و دولتی بسیاری در کشورهای پیشرو در جریان است که در راس آنها پروژهای دولت ایالات متحده آمریکا قرار دارد. دولت ها در کشورهای مختلف در زمینه تشویق به پذیرش رایانش ابری و تسهیل استفاده از خدمات مبتنی بر ابر توسط محققان و بخش کسب وکار و بخش های مختلف دولت نقش مهمی ایفا می کنند. برای نمونه، در ایالات متحده موسسه علوم ملی طبق برنامه ای که در سال ۲۰۰۸ آغاز شد، استفاده از خدمات ابر توسط محققان را ترویج می کند. دولت ها در انگلستان، ژاپن و سوئد نیز استفاده از ابر توسط محققان و کسب وکار را تسهیل و تشویق می کنند.

فصل سوم
معماری سیستم توزیع شده

3-1-معماریهای توزیع شده
3-1-1-معماریهای چندپردازندهای
ساده ترین مدل سیستم توزیع شده سیستم چند پردازندهای است که سیستم از تعدادی فرایند تشکیل شده است که ممکن است بر روی پردازنده های جداگانهای اجرا شوند. این مدل در سیستمهای Real time متداول است. این سیستمها اطلاعات را جمع آوری می کنند، با استفاده از این اطلاعات تصمیم گیری می کنند و سپس سیگنالهایی را به محرکهایی می فرستند که محیط سیستم را اصلاح می نمایند. از نظر منطقی فرایندهای مرتبط با جمع آوری اطلاعات، تصمیم گیری و کنترل محرک می توانند تحت کنترل زمانبند بر روی یک پردازنده اجرا شوند. استفاده از چند پردازنده کارایی و انعطاف پذیری سیستم را بهبود می بخشد. توزیع فرایندها به پردازنده ها ممکن است از قبل تعیین شده باشد یا ممکن است تحت کنترل یک توزیع کننده ای باشد که تصمیم می گیرد کدام فرایند به هر پردازنده تخصیص داده شود.
3-1-2-معماریهای مشتری-کارگزار
در این معماری سیستم به صورت مجموعه ای از سرویسها و مشتریان مدلسازی می شوند. کارگزاران سرویسها را ارائه می کنند و مشتریان آنها را به مصرف می رسانند.
طراحی سیستمهای مشتری-کارگزار باید ساختار منطقی کاربرد در حال توسعه را منعکس سازد. در شکل زیر یک Application با سه لایه نمایش داده شده است. لایه نمایش اطلاعات را به کاربران نمایش می دهد و با انها تعامل دارد. لایه پردازش کاربرد با پیاده سازی منطق کاربرد و لایه داده ها با عملیات بانک اطلاعاتی سروکار دارد.
ساده ترین معماری مشتری – کارگزار، معماری مشتری – کارگزار دو ردیفی نام دارد.که در آن هر کاربرد به صورت یک کارگزار و مجموعه ای از مشتریان تشکیل می شود.

شکل 3-1: معماری مشتری-کارگزار
1-مدل Thin Client: در این مدل تمام پردازشها و مدیریت داده ها در کارگزار انجام می شود. مشتری مسئول اجرای نرم افزار نمایش است.
2-مدل Fat Client : در این مدل کارگزار مسئول مدیریت داده ها است. نرم افزار مشتری، منطق کاربرد و تعامل با کاربران سیستم را بر عهده دارد.
3-1-3-معماریهای شیئ توزیع شده
چالش های مربوط به طراحان سیستم های توزیعی ، طراحی نرم افزار و سخت افزار برای ارائه ویژگیهای مطلوب سیستم توزیعی و کمینه کردن مشکلات این سیستمهاست.
روش کلی تری برای طراحی سیستم توزیع شده ، حذف تمایز بین مشتری و کارگزار و طراحی معماری سیستم به صورت معماری شیء توزیعی است. در ساختار معماری شیء توزیعی قطعات اساسی سیستم اشیایی هستند که واسطی را برای مجموعه ای از سرویس ها فراهم می نمایند. اشیاء دیگر این سرویس ها را بدون هیچگونه توزیع منطقی بین مشتری و سرویس دهنده فراخوانی می کنند. اشیا ممکن است در تعدادی از کامپیوترهای شبکه توزیع شوند و از طریق میان افزار با هم ارتباط داشته باشند. این میان افزار را می توان گذرگاه نرم افزار در نظر گرفت که مجموعه ای از سرویس ها را ارائه می کند که به اشیا اجازه می دهد با هم ارتباط برقرار کنند و به سیستم اضافه یا از آن حذف شوند.این میان افزار کارگذار درخواست شیئ نام دارد. نقش آن برقراری واسط پیوسته بین اشیا است.
– Middleware، روش های اثبات شده ای را برای اتصال کامپوننت های نرم افزاری مختلف در یک Application فراهم می کند برای اینکه آنها بتوانند به راحتی با هم تبادل اطلاعات داشته باشند.
– Middleware . ها می توانند برای پوشش دهی تعداد زیادی از کامپوننت ها با هم در توپولوژیها استفاده شوند. Connection ها می توانند Many to many ،One to many ،One to One باشند.
– از دید کاربر Middleware ها کاملا مخفی هستند. و کاری به چگونگی تبادل داده ها ندارند.
– تنها زمانی که کاربران Application از نقشی که Middleware ها بازی می کنند آگاه می شوند، وقتی است که آنها Fail می شوند.و این البته خیلی شبیه سیستمهای Wiring و Real plumbing می باشد.
معماری های شیئ توزیع شده به دو صورت در طراحی سیستم به کار گرفته می شود:
1-به عنوان مدل منطقی که اجازه تعیین ساختار و سازمان سیستم را می دهد. در این سطح اشیایی که طراحی می شوند اشیاء بزرگی اند که سرویس های ویژه در دامنه کاربرد را رائه می کنند. این مدل منطقی به عنوان مدل پیاده سازی تلقی می گردد.
2-یک روش قابل انعطاف برای سیستم های مشتری – کارگذار است. در این مورد مدل منطقی سیستم یک مدل مشتری -کارگزار است اما مشتریان و کارگزاران به عنوان اشیاء توزیعی منظور می شوند که از طریق گذرگاه نرم افزار ارتباط برقرار می کنند. در این صورت اعمال تغییرات به سیستم آسان خواهد بود.
مثالی از نوع سیستمی که معماری شیء توزیعی برای آن مناسب باشد سیستم داده کاوی است که روابط بین داده های موجود در بانکها اطلاعاتی مختلف را جستجو می کند.
در این مثال هر بانک اطلاعاتی می تواند به صورت شیء توزیع شده بسته بندی شود به طوری که حاوی واسطی باشد که فقط می تواند داده ها را بخواند.

شکل 3-2: معماریهای شیئ توزیع شده
اشیای ترکیب کننده با انواع خاصی از رابطه سروکار دارند و اطلاعاتی را از تمام بانک های اطلاعاتی به دست می آورند تا روابط را استنتاج کنند.
اشیاء آشکار ساز با اشیاء ترکیب کننده تعامل دارند که گزارشی از روابط کشف شده ارائه دهند. به دلیل اینکه حجم زیادی از داده ها اداره می شوند ، اشیاء آشکارساز ، روابط کشف شده را به صورت گرافیکی نمایش می دهد.
3-2-(Common Object Request Broker Architecture)CORBA معماری شیئ توزیع شده
میان افزار برای اینکه محاسبات شیئ های توزیع شده را پشتیبانی کند نیاز به دو سطح دارد:
1-در سطح ارتباط منطقی، میان افزار اجازه می دهد تا شیئ ها روی کامپیوتر های مختلف داده ها و اطلاعات کنترلی شان را با هم مبادله کنند.استاندارد هایی مثل COM و CORBA برای سهولت ارتباط بین کامپیوترهای مختلف ایجاد شدند.
2-در سطح قطعه، میان افزار مبنایی برای توسعه ی قطعات سازگار فراهم می نماید. که ما اینجا در مورد میان افزاری که مربوط به ارتباط منطقی اشیا هست تمرکز می کنیم و اینکه این ارتباطات منطقی چگونه به وسیله ی استاندارد های CORBA پشتیبانی می شود. این استاندارد ها توسط (Object Management OMG Group) تعریف می شوند، که این گروه استاندارد هایی را برای توسعه ی شی گرایی تعریف می کنند. دیدگاه OMG نسبت به application های توزیع شده در شکل 4 آمده است. این دیدگاه پیشنهاد می کند کاربرد توزیع شده باید از چندین بخش تشکیل شده باشد:

شکل 3-3: معماری CORBA
1-اشیای کاربردی که برای این کاربرد طراحی و پیاده سازی شده اند.
2-اشیای استانداردی که توسط OMG برای دامنه خاصی تعریف شده است.
3-سرویس های پایه ای CORBA که سرویس های پایه ای محیط توزیع شده مثل دایرکتوری ها ومدیریت امنیت را فراهم می کند.
4-امکانات افقی CORBA که مثل امکانات user interface و امکانات مدیریت سیتم را فراهم می کند.
3-2-1- استاندارد های CORBA
استانداردهای CORBA تمام جنبه های این دیدگاه را در بر می گیرند. 4 عنصر مهم این استاندارد عبارتند از:
1-مدل شیئ :مدل شیئی برای اشیای کاربردی که در آنها یک شی encapsulate ،CORBA هست. Interface های شی CORBA با استفاده از یک زبان تعریف واسط (IDL)تعریف شده اند. اگر شی بخواهد از سرویس هایی که به وسیله ی object های دیگر ارائه می شود استفاده نماید از طریق همین IDL این کار را می کند.
2- (Object Request Broker) ORB واسط در خواست اشیا: که درخواست های مربوط به سرویس Object را مدیریت می کند. ORB شیئ ارائه دهنده سرویس را پیدا می کند و آن را برای در خواست اماده می کند و سرویس های در خواستی را می فرستد و نتیجه را به در خواست کننده بر می گرداند. ORB ارتباط بین اشیا را اداره می کند اشیایی که با هم ارتباط برقرار می کنند لازم نیست محل یکدیگر را بدانند و از پیاده سازی یکدیگر خبر داشته باشند.در شکل 2 دو شیئ O1 و O2 از طریق ORB با یکدیگر ارتباط برقرار می کنند، شیئ که سرویسی را فراخوانی می کند IDL stub دارد وشیئ که سرویس را ارائه می دهد یک IDL skeleton دارد.

شکل 3-4: استاندارد های CORBA
3-سرویس های CORBA: مجموعه ای از سرویس های object که یکسری سرویس های کلی هستند که ممکن است اغلب application ها آنها را در خواست کنند. سرویس های CORBA را می توان مانند امکاناتی فرض کرد که مورد نیاز اغلب سیستم های توزیع شده است، تقریبا 15 سرویس متداول را تعریف می کنند که بعضی از این سرویس های کلی عبارتند از:
– سرویس های اطلاع رسانی که اشیا می توانند به اشیا دیگر خبر دهند که رویدادی رخ داده است
– سرویس های نام گذاری که اشیا می توانند به اشیای دیگر شبکه مراجعه کنند
– سرویس های transaction که atomic transaction و rollback را در هنگام خطا پشتیبانی می کند.
4-قطعات CORBA: مجموعه ای از قطعات متداول که توسط application ها درخواست می شود.
3-2-2- CORBA 3.0
CORBA 3.0 چند ین امکان جدید دارد از جمله POA (Portable Object Adapter)، پیام رسانی در CORBA، شیئ های با مقدار POA این امکان را فراهم می آورد که application ها و خدماتی که ارائه می دهند قابل انتقال باشند در بین ORB های مختلفی که ایجاد می شوند. پیام رسانی در CORBA دو تکنیک در خواست همگام جدید اضافه می کند: polling و callback. این دو تکنیک جدید یک نقطه ی قوت مهمی را در اکثر زبان های برنامه نویسی ایجاد می کنند.در objects by value این امکان وجود دارد که اشیا با مقدار در CORBA وجود داشته باشند.
3-2-3- کاربردهای CORBA
1- Embedded Systems CORBA Application in Real-Time Distributed: در سالهای اخیر سیستم های Embedded بیشتر به سمت توزیع شدگی و real time بودن پیشرفته اند و از آنجایی که CORBA به صورت موفقیت آمیزی این مشکلات را رفع کرده است در نتیجه CORBA به عنوان یک راه حل مناسب برای سیستم های Embedded مطرح می شود.
2- Real-Time CORBA: RT-CORBA بامحدودیت ها و و اجباراتی که در سیستم های real time روی وجوددارد سرو کار دارد. Client باید در محدوده ی زمانی مشخصی در خواست ها را جواب دهد پس CORBA باید ORB و شی ارائه دهنده سرویس را طوری پشتیبانی کند که در همان زمان محدود سرویس در خواست شده ارائه شود.

فصل چهارم
امنیت در سیستم های توزیع شده

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

4-2-مسائل طراحی سیستم های امنیتی
در پیاده سازی سرویس های امنیتی توزیع شده، چند مساله مورد توجه قرار می گیرد.
4-2-1-تمرکز روی مفهوم کنترل دسترسی
یک سیستم توزیع شده شی گرا را در نظر می گیریم، زمانی که حفاظت از یک کاربرد مدنظر باشد، سه حالت مختلف می تواند وجود داشته باشد:
روش اول، تمرکز مستقیم بر روی داده های همراه برنامه است. منظور از تمرکز مستقیم روی داده ها، این است که صرف نظر از عملیات مختلفی که می توانند روی داده ها اجرا شوند. نگرانی اصلی حفظ صحت داده های مورد نظر است. بررسی صحت داده ها، یکی از ویژگی های سیستم های مدیریت پایگاه داده است.

شکل 4-1: تمرکز بر روی حفاظت از داده ها

روش دوم، تمرکز بر کنترل دسترسی با تعیین دقیق اینکه کدام عملیات فراخوانی شده و همچنین داده ها با منابع در چه زمانی و توسط چه کسی مورد دسترسی قرار گرفته است. در سیستم توزیع شده شی گرایی مفروض، تعیین اینکه چه کسانی اجازه فراخوانی توابع درون اشیاء را دارند.

شکل 4-2:حفاظت در برابر فراخوانی های غیر

روش سوم، تمرکز مستقیم بر روی کاربران به وسیله اتخاذ تدابیری که توسط آن فقط افراد خاص می توانند به برنامه دسترسی داشته باشند، صرف نظر از عملیاتی که می خواهند انجام دهند.

شکل 4-3:حفاظت در برابر کاربران غیرمجاز

4-2-2-لایه بندی مکانیزم های امنیتی
یکی از مسائل مهم در طراحی سیستم های امنیتی این است که تصمیم بگیریم مکانیزم های امنیتی در کدام لایه باید قرار گیرند. مفهوم لایه، با سازمان منطقی یک سیستم چند لایه مرتبط است. برای مثال شبکه های کامپیوتری به صورت لایه ای پیاده سازی می شوند و از چند مدل مرجع استفاده می کنند.
ترکیب شبکه های کامپیوتری لایه ای و سیستم های توزیع شده، تقریبا منجر به تولید مدلی مانند شکل زیر می شود.

شکل 4-4:سازمان منطقی یک سیستم توزیع شده بر روی لایه های چندگانه

در واقع این مدل سرویس های همه منظوره را از سرویس های ارتباطی جدا کرده است. این جداسازی برای درک مفهوم لایه بندی مکانیزم های امنیتی و بخصوص در مفهوم قابلیت اطمینان، مهم است.
همچنین درک تفاوت بین دو مفهوم امنیت و قابلیت اطمینان بسیار مهم است. یکی سیستم می توان امن و یا ناامن باشد. اما این مورد که یک مشتری به امن بودن سیستم اعتقاد داشته باشد. همان مفهوم قابلیت اطمینان است. در حقیقت می توان گفت امنیت یک مبحث فنی ولی قابلیت اطمینان یک مفهوم روانی یا احساسی است. اینکه مکانیزم های امنیتی در کدام لایه قرار گیرند، وابسته به اعتماد مشتری به امن بودن سرویس هایی است که در لایه های مختلف جای گرفته اند.
4-2-2-1-توزیع مکانیزم های امنیتی
مجموعه ی مکانیزم های امنیتی که در یک سیستم توزیع شده، برای اجرای سیاست های امنیتی مورد نیاز هستند، اصل محاسبات قابل اطمینان TCB نامیده می شود. اگر یک سیستم توزیع شده به عنوان میان افزار بر روی سیستم عامل شبکه موجود پیاده سازی شود، امنیت آن وابسته به امنیت سیستم عامل های محلی آن شبکه است.
سرور فایلی را در یک سیستم فایل توزیع شده در نظر می گیریم. چنین سروری احتمالا به مکانیزم های امنیتی مختلفی که توسط سیستم عامل های نصب شده بر روی کامپیوترهای محلی آن سیستم، ارائه شده اند متکی باشد. مکانیزم های امنیتی ارائه شده توسط این سیستم عامل های محلی، فایل ها را از دسترسی پردازش های غیر مجاز محافظت می کند و همچنین باعث می شوند عملکرد فایل سرور بهبود یابد. اگر بین سرور فایل و مکانیزم های امنیتی محلی اعتماد وجود نداشته باشد، باید مکانیزم های حفاظتی محلی نیز در درون سرور سیستم فایل توزیع شده، گنجانیده شود.
روش دیگر برای توزیع مکانیزم های امنیتی جدا کردن سرویس های امنیتی از سرویس های دیگر به وسیله توزیع سرویس ها بر روی ماشین های موجود در سیستم است. توزیع سرویس ها بسته به مقدار امنیتی که مورد نیاز است صورت می گیرد.
در روش دیگر، سیستم فایل توزیع شده امن، سرور فایل را از دسترسی مشتری ها، به وسیله قرار دادن آن بر روی یک ماشین با سیستم عامل مطمئن، ایزوله می کند.

شکل 4-5:اصل RISSC برای سیستم های توزیع شده امن

در این روش از مفهوم واسط های کاهش یافته برای اجزای سیستم امن (RISSC) برای جلوگیری از دسترسی مشتری ها و سرویس های آن ها، به سرویس های مهم، استفاده می شود. مشتری ها و پروسس های آنها بر روی ماشین های با قابلیت اطمینان پایین قرار داده می شوند. این جداسازی، باعث می شود که TCB به طور موثری کاهش یابد. یعنی کاربران و پروسس های آنها فقط از طریق این واسط های شبکه ای می توانند به سرور حفاظت شده دسترسی داشته باشند.
4-2-3-مفهوم سادگی
یک طراح سیستم امن باید از مکانیزم هایی استفاده کند که قابل اعتماد و به سادگی قابل فهم باشند. متاسانه مکانیزم های ساده همواره برای پیاده سازی سیاست های امنیتی کارآمد نیستند. باید در نظر بگیریم که بسیاری از سرویس های امنیتی، کاملا اتوماتیک و پنهان از دید کاربران اجرا می شوند. سادگی و قابل درک بودن مکانیزم های امنیتی به کاربران نهایی کمک می کند که به سرویس های امنیتی سیستم اعتماد کنند و همچنین طراحان سیستم های امن را نیز در تشخیص اینکه سیستم حفره امنیتی ندارد، یاری می رساند.
4-3-ساختار امنیتی Globus
Globus Toolkit یک نرم افزار متن باز محیط گرید است که بسیاری از مشکلات مربوط به امنیت اشتراک منابع در سیستم های توزیع شده را مرتفع می سازد. این معماری، سیستمی با حجم گسترده محاسبات را پشتیبانی می کند که می تواند شامل هر تعداد میزبان، کاربر، فایل و منابع دیگر که به طور هم زمان برای انجام محاسبات استفاده می شود. چنین سیستم هایی به عنوان محاسبات گرید نیز مطرح می شوند. ساختار امنیتی Globus چند ویژگی دارد.
-سیستم توزیع شده باید شامل چندین حوزه مدیریتی باشد.
-اجرای عملیات محلی، مشمول سیاست امنیتی حوزه محلی است.
-اجرای عملیات به صورت عمومی مستلزم تعریف عملیات در همه حوزه های محلی است.
-عملیاتی که بین موجودیت های مختلف انجام می شود، در حوزه های مختلف نیازمند احراز هویت متقابل هستند.
-احراز هویت عمومی می تواند جایگزین احراز هویت محلی باشد.
-کنترل دسترسی به منابع تنها وابسته به سیاست امنیتی حوزه محلی است.
-کاربران می توانند وظایف خود را به نماینده ی خود محول کنند.
-گروهی از فرایندها می توانند اختیارات خود را به اشتراک بگذارند.
ساختار امنیتی Globus الزاما شامل اجزای زیر است. کاربران، پراکسی کاربر، پراکسی منبع و فرایندهای عمومی که این اجزاء در حوزه های مختلفی قرار دارند و با هم ارتباط متقابل دارند.

شکل 4-6: ساختار امنیتی Globus در سیستم های توزیع شده
سیاست های امنیتی محلی در هر زمان دلخواه نمی توانند تغییر کنند و همچنین سیاست های امنیتی کلی نمی توانند تدابیر اتخاذ شده توسط سیاست امنیتی محلی را نادیده بگیرند. در نتیجه امنیت در معماری Globus محدود به عملیاتی خواهد شد که بر روی حوزه های محلی تاثیر می گذارند.
در این معماری درخواست ها برای اجرای عملیات می توانند هم به صورت محلی و هم به صورت عمومی آغاز شوند. درخواست کننده که می تواند کاربر یا نماینده او باشد ابتدا باید به صورت محلی در حوزه ای که قصد اجرای عملیات در آن را دارد، احراز هویت شود.
زمانی که کاربری (یا نماینده وی) در یک حوزه احراز هویت شد، حسابرسی می شود که آیا حق دسترسی به منابع را دارد یا نه؟ برای مثال وقتی کاربری پس از آنکه در یک سیستم احراز هویت شد، بخواهد فایلی را تغییر دهد، سیستم باید چک کند که او حق چنین تغییری را دارد.
با توجه به اینکه در معماری امنیتی Globus هر حوزه سیاست های امنیتی خود را اجرا می کند، می توان بر روی تهدیدات امنیتی مربوط به چند حوزه متصل به هم، تمرکز کرد. در نتیجه چیزی که معماری امنیتی Globus در درجه اول نیاز دارد، مکانیزم هایی برای احراز هویت متقابل در حوزه های ارتباطی و ساخت یک نماینده کاربر احراز هویت شده در حوزه های راه دور (پراکسی کاربر) برای درخواست منبع راه دور است.
نماینده یا پراکسی کاربر فرایندی است که از طرف کاربر اجازه دارد در بازه زمانی محدودی فعالیت کند. در معماری امنیتی Globus همچنین منابع نیز می توانند نماینده یا پراکسی داشته باشند. پراکسی منبع یک فرایند در حال اجرا، درون یک حوزه خاص است که به منظور معادل سازی عملیات عمومی که روی یک منبع انجام می شود، با عملیات محلی، مطابق با سیاست های امنیتی حوزه محلی، اجرا می شود. یک پراکسی کاربر معمولا زمانی که می خواهد به منابع دسترسی پیدا کند با پراکسی منبع ارتباط برقرار می کند.

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

فصل پنجم
بررسی و تحلیل امنیت در فضای رایانش ابری

5-1-معماری ماشینهای مجازی
امروزه ماشینهای مجازی از جایگاه مهمی در حوزه امنیت برخوردارند. چرا که بدنه اصلی و شالوده سیستمهای رایانش ابری، مجازی سازی می باشد.
استفاده از چنین سیستمهایی در حوزه امنیتی، مسائل تحقیقاتی جدیدی را پیش روی محققین قرار داده است. از این رو بررسی معماری این سیستم از دیدگاه امنیتی نیز حائز اهمیت می باشد.
به طورکلی دو نوع ماشین مجازی داریم. در نوع اول ناظر ماشین مجازی مستقیما روی سخت افزار اجرا می شود یعنی روی حلقه صفر( 0) واقعی و هیچ سیستم عاملی زیر آن اجرا نمی گردد. سیستم عاملهای مهمان در سطح بالاتری در بالای سخت افزار اجرا می شوند. در این مدل ناظر ماشین مجازی مسئول زمانبندی و تخصیص منابع بین ماشین های مجازی است که Xen و VMWare از این مدل هستند.
در نوع دوم، ناظر ماشین مجازی مثل یک برنامه روی سیستم عامل اجرا می شود. در این مدل سیستم عاملی به نام سیستم عامل میزبان مسئول کنترل منابع سخت افزاری است که Hyper-V و KVM از این دسته اند. به دلیل اینکه در نوع دوم، ناظر ماشین مجازی در داخل یک سیستم عامل استاندارد اجرا می گردد، هرگونه ضعف امنیتی که منجر به آسیب دیدن سیستم عامل میزبان گردد، می تواند کنترل کامل سیستم عامل های مهمان را نیز بدست گیرد. در حال حاضر اساس کار ماشین های مجازی تجاری بزرگ در دنیا بر اساس معماری نوع اول می باشد. همانطور که در شکل 5-1 نشان داده شده است، بخش ناظر ماشین مجازی، وظیفه مدیریت محلی سیستم را به عهده دارد.

شکل 5-1:معماری ماشینهای مجازی مبتنی بر VMM
5-2-شناسایی سرویس و ارزیابی مخاطرات
اساس کار در روش پیشهادی، استفاده کاربران از سامانه های قدیمی و سنتی در کنار سامانه رایانش ابری می باشد. و همچنین معیار مورد استفاده در این شیوه استاندارد سیستم مدیریت امنیت اطلاعات یا همان ISMS می باشد.
در این روش به هر سرویس به عنوان یک دارایی نگاه می شود؛ هر دارایی می تواند دارای یک یا چند خطر، تهدید، آسیب پذیری و پیامد حاصل از آسیب باشد؛ همچنین هر دارایی دارای یک ارزش برای صاحب آن است؛ این بدان معناست که تا سقف ارزش آن دارایی، صاحب آن حاضر به سرمایه گذاری است و نه بیشتر که از این خصیصه با عنوان آستانه پذیرش ریسک درسیستم مدیریت امنیت اطلاعات یاد می شود. اگر به هر کدام از موارد، احتمال وقوع خطر و پیامد حاصل، ارزشی را اختصاص دهیم به سادگی به عدد آستانه پذیرش خطر دست پیدا می کنیم؛ این عدد به عنوان معیار کلیدی ما در انتخاب بستر سرویس خواهد بود. درهمین راستا صاحب دارایی با انتخاب خط مرزی خود به عنوان مرز پذیرش خطر به راحتی می تواند میزبان سرویس خود را انتخاب نماید که در اینجا منظور از میزبان، بستر رایانش ابری و یا سیستمهای سنتی میزبانی سرویس ها می باشد. به عنوان مثال در سرویسی بعد از انجام اعمال فوق به عدد 30 میرسیم؛ این بدان معناست که تا 30 % احتمال خطر، قابل پذیرش است و نه بیشتر؛ به همین روش، آستانه پذیرش خطر توسط بسترهای مبتنی بر ابر و سنتی نیز محاسبه می شود و در نهایت با مقایسه این عدد و معیار بدست آمده می توان به راحتی تشخیص داد که بهترین بستر و ارتباط برای ارائه و دریافت این سرویس کجاست.
نکته ای که در تکمیل این موضوع می تواند مفید باشد این است که گاهی در مدیریت مخاطرات شما باید بین سه گانه امنیت اولویت بندی کنید و یکی را بر دیگری ترجیح دهید. به عنوان مثال در مورد سرویس پست الکترونیک، بطور نسبی ترجیح اول حفظ محرمانگی است؛ یا در مورد سرویس های مبتنی بر پایگاه داده، عموما اولویت به ترتیب حفظ محرمانگی، مقیاس پذیری و دردسترس بودن است که در اینجا به وضوح امر نسبی بودن امنیت دیده می شود. جدول 5-1 نمونه ای از موارد بیان شده در بالا و همچنین ارزشگذاری آن ها را نشان می دهد.
جدول 5-1: جدول ارزیابی ریسک یک دارایی

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

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

منابع و ماخذ
1- سایت آقای ویلیام استالینگ http://www.stallings.com/
2-سیستم های عامل پیشرفته، دکتر مهرداد فهیمی، انتشارات جلوه.
[3] T. Fraser, L. Badger, and M. Feldman. Hardening COTS Software with Generic Software Wrappers. In Proceedings of the 1999 IEEE Symposium on Security and Privacy, pages 2-16, Berkeley, California, May 1999.
[4] I. Goldberg, D. Wagner, R. Thomas, and E. Brewer. A Secure Environment for Untrusted Helper Applications. In Proceedings of the 6th USENIX Security Symposium, pages 1-13, San Jose, California, July 1996.
[5] T. Mitchem, R. Lu, and R. O'Brien. Using Kernel Hypervisors to Secure Applications. In Proceedings of the 13th Annual Computer Security Applications Conference, San Diego, California, December 1997.
[6] H. Xie and P. Biondi. LIDS. http://www.lids.org.
[7] M. Beattie. MAC. http://users.ox.ac.uk/ mbeattie/linux.
[8] M. Zelem, M. Pikula, and M. Ockajak. Medusa DS9.http://medusa.fornax.sk.
[9] Argus Systems Inc. Pitbull LX. http://www.argussystems. com/products/ white paper/lx/.
[10] A. Ott. Regel-basierte Zugriffskontrolle nach dem Generalized Framework for Access Control-Ansatz am Beispiel Linux. Master's thesis, Universitat Hamburg, Fachbereich Informatik, 1997.
[11] SAIC. SAIC DTE. http://research-cistw.saic.com/ cace/dte.html.
[12] P. A. Loscocco and S. D. Smalley. Integrating Flexible Support for Security Policies into the Linux Operating System. In Proceedings of the FREENIX Track: USENIX Annual Technical Conference, June 2001.
[13] C. Cowan, S. Beattie, G. Kroah-Hartman, C. Pu, P. Wagle, and V. Gligor. SubDomain: Parsimonious Server Security. In Proceedings of the 14th USENIX Systems Administration Conference (LISA 2000), New Orleans, LA, December 2000.
[14] Sameera Abdulrahman Almulla, Chan Yeob Yeun " Cloud Computing Security Management 2010.
[15] Ramgovind S, Eloff MM, Smith E " The Management of Security in Cloud Computing 2010.
[16] Zhuolin Yang, Jianyong Chen " Virtualization security for cloud computing service 2011.
[17] Kevin Lawton. Running multiple operating systems concurrently on an IA32 PC using virtualization techniques, 1999. http://plex86.org/research/paper.txt.
[18] Cloud Security Alliance. "Security Guidance for Critical Areas of Focus in Cloud Computing" V2.1; 2009, https://cloudsecurityalliance.org/csaguide.pdf
[17] S.Tanenbaum, Andrew, Distributed Systems: principles and paradigms, Second Edition, American, Pearson Prentice Hall, 2007.
[19] Abhijit Belapurkar, Anirban Chakrabarti, Harigopal Ponnapalli, Distributed systems security: issues, processes and solutions, 2009.
[20] Andrew S. Tanenbaum, Maarten van Steen, Distributed systems: principles and paradigms,2007.
[21] An Coulouris and Dollimore and Kindberg, George F. Coulouris, Jean Dollimore, Distributed systems concept and design 2006.
[22]IBM corporation, Introduction to Grid Computing with Globus, September 2003.
[23] Andrew S. Tanenbaum, Computer networks,2003.
[24]Zare, zohre, Security in grid computing.5th SASTech, Iran, mashhad, May2011.
19


تعداد صفحات : 103 | فرمت فایل : WORD

بلافاصله بعد از پرداخت لینک دانلود فعال می شود