واژه ی Grid Computing در اواخر دهه نود در مورد ایجاد قابلیت دسترسی ساده به منابع محاسباتی مانند آنچه در مورد انرژی الکتریسیته در شبکه برق[1] وجود دارد توسط آقایانIan Foster وCarl Kesselman در کتاب “ The Grid : Blue print for new computing infrastructure ” مطرح شد . آنها در آن کتاب در مورد Grid این طور نوشتند :
" Grid محاسباتی یک زیر ساخت نرم افزاری و سخت افزاری است که قابلیت استفاده از تجهیزات محاسباتی را قابل اطمینان ، به صورت کم خرج ، فراگیر و سازگار فراهم می آورد .
در سال 2000 آنها با همکاری Steve Tuecke مقاله ای با عنوان “The anatomy of the grid” نوشتند و در آنجا هدف از Grid را اینگونه معرفی کردند :
" به اشتراک گذاری متوازن منابع برای حل مسئله در یک محیط پویا ، شامل یک سازمان مجازی تشکیل شده صنعت "
و بعد اضافه کردند که :
" به اشتراک گذاری منابع که ما از آن صحبت می کنیم ، مبادله ی فایل نیست . بلکه منظور ما دسترسی مستقیم به کامپیوترها ، نرم افزارها ، داده ها و دیگر منابع است . این به اشتراک گذاری تحت کنترل کامل صاحب منبع است . مجموعه ای از افراد و یا شرکت ها که این نوع به اشتراک گذاری را داشته باشند ، سازمان مجازی خوانده می شود "
بعداً آقای Foster در مقاله ی “ What is the grid ?”، Grid را سیستمی تعریف می کند
که سه ویژگی زیر را داشته باشد .
- مجموعه ای از منابع هماهنگ که دارای یک مدیریت مرکزی نیستند .
- از Interface ها و پروتکل های استاندارد ، باز و عام – منظوره بهره می برند .
- کیفیت سرویسی[2] که کل سیستم ارائه می دهد بزرگتر از کیفیت سرویس هر کدام از منابع است .
تمام مفاهیم بالا در واقع Grid را از زاویه دید مختلفی بررسی می کنند ولی بصورت ساده هدف Grid به اشتراک گذاری منابع بصورت هماهنگ در یک محیط ( احتمالاً ) ناهمگن و پویا است .
فصل یکم : Grid Computing چیست ؟
Grid Computing می تواند معنی های مختلفی برای افراد مختلف داشته باشد . تصور مشهور در مورد Grid ، چیزی شبیه شبکه ی برق ( Power Grid ) است که کاربران ( استفاده کنندگان از وسایل برقی ) بدون توجه به اینکه این برق از کجا می آید ، الکتریسیته را از پریز می گیرند .
با این دید در مورد Grid Computing ، می توان " Computing " را به عنوان قدرت ( انرژی برق در نظر گرفت و کاربران ( یا برنامه ها ) به منابع محاسباتی ( پردازنده ها ، ذخیره کننده ها ، داده ها ، برنامه ها و غیره ) دسترسی پیدا می کند و اهمیتی ندارد که این منابع از نظر فیزیکی کجا قرار گرفته اند و یا تکنولوژی مورد استفاده در آنها ، سخت افزار و نرم افزار آنها چیست .
این دید از Grid Computing می تواند خلاقیت کسی را برانگیزد و در نهایت این ایده به حقیقت بپیوندد ولی در این راه مشکلات تکنیکی زیادی وجود دارد که باید حل شود . اگر این هدف به عنوان هدف نهایی در نظر گرفته شود ، مراحل کوچکتر زیادی باید طی شود و هر کدام از این مراحل مزیت های خود را دارند و تا اندازه ای ما را به هدف نزدیک می کنند .
پسGrid Computing را می توان مانند یک مسیر جذاب از تکنولوژی ها و راهکار های مختلف دید که طی کردن این مسیر ما را به هدف نهایی نزدیکتر می کند . قسمت مهم این پیشرفت در محاسبات توزیع شده است که امکان پیاده سازی برنامه ها در سیستمی که از سازمان های مختلف تشکیل شده است برای به اشتراک گذاشتن منابع را فراهم می آورد . به طور خلاصه امکان" مجازی سازی" را فراهم می آورد . مجازی سازی در زمینه تکنولوژی ، Platform ها و سازمانها . این مجازی سازی فقط با استـاندارد های بـاز [3] امکان پذیر است . استـاندارد های بـاز کمک می کنند که مطمئن
برنامه ها می توانند بصورت شفاف سیستم حاوی منابع را ببینند . [kessel 2004] .
محیطی که می خواهد قابلیت استفاده از منابع بصورت شفاف در یک محیط توزیع شده و نامتجانس را فراهم کند ، نه فقط نیاز دارد که منابع را مجازی سازی کند ، بلکه تکنولوژی و استانداردهایی برای زمان بندی ، مدیریت ، امنیت و موارد دیگر نیاز دارد . Grid Computing می تواند در هر مرحله ای از مجازی سازی تعریف شود . اینکه مجازی سازی تا چه مرحله ای انجام شود ، به نظر استفاده کننده بستگی دارد ولی حتی در یک مرحله ی پایین مجازی سازی نیز می توان گفت که یک سیستم مبتنی بر Grid تولید شده است .
این مراحل در شکل 1-1 نشان داده شده است . از قسمت پایین سمت چپ ، مجازی سازی از ساختن چندین ماشین مجازی بر روی منحنی حرکت می کنیم به سیستم هایی شامل چند کامپیوتر متجانس و توزیع شده می رسیم . مجازی سازی فقط به سرورها و CPU ها محدود نمی شود . بلکه تا حافظه ها ، شبکه ها و یا حتب برنامه ها نیز گسترده می شود . وقتی بر روی منحنی حرکت را ادامه می دهیم به مجازی سازی بر روی منابع غیر مشابه می رسیم . مرحله ی بعد مجازی سازی شرکت ها ست ، نه فقط بر روی مراکز داده و دپارتمان ها ، بلکه بر روی سازمان های توزیع شده و بعد مجازی سازی در خارج از سازمان و در سطح اینترنت .
پیاده سازی های قبلی در زمینه Grid Computing به صورت داخل شرکتی وجود داشت ولی اکنون این پیاده سازی ها به سمت بیرونی شدن و در سطح چندین شرکت پیش می رود .
تفاوت Grid های درون شرکتی و Grid هایی که در سطح چندین شرکت وجود دارند مربوط به دامنه های امنیتی ، درجه ی ایزوله سازی ، نوع سیاست و حوزه ی آن می شود . اینگونه مسائل ، طبیعتاً مسائل بنیادی معماری نیستند بلکه مربوط به شرکت ها می شوند . آنها می خواهند مطمئن شوند که شکافی بین مدلهای محاسبات توزیع شده در بین شرکت های شرکت کننده و زیر ساختهای IT داخلی وجود ندارد .
Grid Computing استانداردهای باز ی وب سرویس ها را توسعه داده است تا با استفاده از آنها بتوان منابع محاسباتی را روی بستر اینترنت ارائه کرد . خیلی کم اتفاق می افتد که Grid بر روی یک محیط همگن پیاده سازی شود و معمولاً ما یک محیط ناهمگن سر و کار داریم .
اگر بیشتر بر روی راهکارهای محاسبات توزیع شده متمرکز شویم می توانیم Grid Computing را محاسبات توزیع شده بر روی منابع مجازی سازی شده تعریف کنیم . هدف ساختن یک کامپیوتر پر قدرت مجازی است . این کامپیوتر با استفاده از تعدادی منابع محاسباتی به هم پیوسته و احتمالاً ناهمگن ساخته شده است .
فصل دوم – مزیت های Grid Computing
در این فصل مزیت هایی که Grid Computing این است که برنامه ای که معمولاً روی ماشین خاصی اجرا می شود ، در شرایطی خاص به خاطر این که آن ماشین مشغول است ، در ماشین دیگری که کمتر مشغول است اجرا گردد .
برای این چندین سناریویی دو پیش نیاز وجود دارد . اول این که برنامه قابلیت اجرا در ماشین راه دور را داشته باشد . به عنوان مثال نباید به داده های روی ماشین اصلی وابسته باشد . دوم این که ماشین دوم ویژگی های سخت افزاری و نرم افزاری که در مورد نیاز آن برنامه است را داشته باشد .
برای مثال برنامه ای که بیشتر وقت خود را صرف محاسبه بر روی داده های ورودی می کند و خروجی تولید می کند احتمالاً ساده ترین و ایده آل ترین برنامه ای است که می توان با این Grid استفاده کرد . اگر مقدار ورودی و خروجی زیاد باشد ، باید فکر بیشتری شود که این برنامه بتواند به صورت مؤثر بر روی Grid اجرا شود . به نظر نمی رسد که از واژه ی " پردازنده ی راه دور " در Grid استفاده شود . چون معمولاً با تاخیر بسیار زیادی برای رساندن داده ها به پردازنده روبرو هستیم .
در بیشتر سازمان ها تعداد بسیار زیادی منابع محاسباتی وجود دارد که از توان آنها به درستی استفاده نمی شود . معمولاً بیشتر ماشین های رومیزی[1] در یک روز کاری ، کمتر از 5 درصد مشغول هستند . در برخی از سازمان ها ماشین های سرور نیز در بیشتر اوقات بی کار هستند .Grid Computing بستری برای استفاده مؤثر از این منابع به وجود می آورد .
منابع محاسباتی تنها منابعی نیستند که ممکن است از آنها کم استفاده شود . ممکن است ماشینها
مقدار زیادی فضای استفاده نشده بر روی دیسک خود داشته باشند . Grid Computing ( به طور خاص Data Grid ) این فضاها را به فضای مجازی بزرگ ، " مجازی سازی " می کند و در نتیجه بستری برای استفاده مؤثر از فضاهای استفاده نشده فراهم می آورد .
اگر یک پردازش دسته ای [2] به مقدار زیادی داده نیاز داشته باشد ، این داده ها می توانند در نقاط استـراتژیک مختلف پخش شوند و بنابـراین اگر این پردازش بخواهد در ماشین دیگری اجرا شود ، داده ها در آنجا هستند و نیازی نیست که به جای دیگری منتقل شود . این کار باعث افزایش کارایی می شود و نیز می توان از نسخه های گوناگون به عنوان نسخه ی پشتیبان برای وقتی که نسخه ی اصلی از بین رود استفاده کرد . این کار مزیت دیگر Grid ، متعادل کردن استفاده از منابع است .
ممکن است برای سازمانی یک پردازش غیر منتظره پیش آید و ماشینی که قرار است پردازش را انجام دهد بسیار مشغول باشد ، اگر این پردازش بتواند در بستر Grid اجرا شود ، می توان آن را به ماشین دیگری انتقال داد تا استفاده از منابع به صورت متعادل انجام گیرد . این متعادل سازی استفاده از منابع می تواند برای CPU ، حافظه و یا هر منبع دیگر موجود در Grid استفاده شود .
مقدمه
فصل یکم – Grid Computing چیست ؟
فصل دوم – مزیت های Grid Computing
2-1- استفاده مؤثر از منابع
2-2- قابلیت محاسبه موازی
2-3- منابع مجازی و سازمان های مجازی
2-4- دسترسی به منابع اضافه ................................................................................................................
2-5- متعادل سازی استفاده از منابع
2-6- قابلیت اطمینان
2-7- مدیریت فصل سوم- مفاهیم و معماری
3-1- سازمان های مجازی و Grid
3-1-1- چالش های تکنیکی در به اشتراک گذاشتن
3-1-2-سیر تکامل تکنولوژی Grid
3-2- معماری Gri
3-2-1- Fabric : رابط هایی برای کنترل های محلی
3-2-2- Connectivity : برقراری ارتباط ساده و امن
3-2-3 Resource : به اشتراک گذاشتن یک منبع
3-2-4- Collective : هماهنگی چندین منبع
3-2-5- Application
3-3- پیاده سازی معماری Grid
3-3-1-Globus Toolkit v2.0
3-3-1-1- Fabric
3-3-1-2- Connectivity
3-3-1-3- Resource
3-3-1-4- Collective
3-3-2- Open Grid Services Architecture
فصل چهارم – مدلی برای برنامه نویسی
4-1 تعریف محیط و هدف
4-2- المان ها
4-2-1- کار
4-2-2- قسمت کردن
4-2-3- ریزکار
4-2-4- منبع محاسباتی
4-2-5- زمانبند
4-2-6- ذخیره کننده
4-3- مدل برنامه نویسی ، به صورت شبه کد
4-3-1 – طرف منابع محاسباتی
4-3-2- طرف زمانبند
4-3-3- تقسیم کننده
4-4- فلوچارت و کمی از جزئیات برنامه نویسی
4-4-1- فلوچارت طرف زمانبند
4-4-2- فلوچارت طرف منبع محاسباتی
4-5- روشی برای تقسیم کردن در مسائل Back-track
4-5-1- ساختمان داده ی گره
4-5-2- درخت خاکستری
4-5-3- قطع کردن درخت
4-5-4 زمانبندی
4-5-5- نکات تکمیلیدانلود تحقیق Grid Computing