مقدمه
Computing Grid یا شبکههای متصل کامپیوتری مدل شبکه ای جدیدی است که با استفاده از پردازشگرهای متصل به هم امکان انجامدادن عملیات حجیم محاسباتی را میسر میسازد. Gridها در واقع از منابع کامپیوترهای متصل به شبکه استفاده میکنند و میتوانند با استفاده از برآیند نیروی این منابع، محاسبات بسیار پیچیده را بهراحتی انجام دهند. آنها این کار را با قطعه قطعه کردن این عملیات و سپردن هر قطعه بهکامپیوتری در شبکه انجام میدهند. به عنوان مثال وقتی شما از کامپیوترتان برای مدتی استفاده نمیکنید و کامپیوتر شما به اصطلاح بهوضعیت محافظ نمایشگر یا Screensaver میرود، از پردازشگر کامپیوتر شما هیچ استفادهای نمیشود. اما با استفاده از شبکههای Grid میتوان از حداکثر تواناییهای پردازشگرها استفاده نمود و برنامهای را در کامپیوتر قرار داد که وقتی از سیستم استفادهای نمیشود، این برنامه بتواند از نیروی بلااستفاده دستگاه بهره بگیرد و قسمتی از محاسبات بزرگ عملیاتی را انجام دهد. در این مقاله این پدیده در فناوری اطلاعات مورد بحث قرار میگیرد و اهمیت استفاده از این فناوری، پیچیدگیها، اجزای تشکیل دهنده و استانداردهای این مدل بررسی میشود و نشان داده خواهد شد که با استفاده از این مدل چگونه در وقت و زمان شما صرفهجویی میشود. گفتنی است در حال حاضر بزرگترین شبکه Grid جهان در خدمت پروژه SETI@home برای یافتن حیات هوشمند فرازمینی قرار دارد. امروزه فناوری جدیدی به نام Grid به عرصه ارتباطات الکترونیک قدم نهاده است که براساس آن با دانلود کردن یک محافظ نمایشگر مخصوص میتوانیم بهکامپیوترهای شخصی خود اجازه دهیم که وقتی از آن استفاده نمیکنیم، به شبکه جهانی متصل شوند و به سیستمهای بزرگ تحقیقاتی اجازه دهند از منابع آزاد و بلااستفاده سیستم ما استفاده نمایند.
فصل اول
مبانی گرید
Grid computing 1-1 چیست ؟
حدود 33 سال از به وجود آمدن اینترنت میگذرد و از سال 1989 که وب پدید آمد، بیشتر مردم از آن استفاده میکنند و بهصورت بخشی از زندگی ایشان در آمده است. شاید علت این استفاده زیاد از اینترنت، استاندارد باز آن بوده است که امکان ارتباط کامپیوترهای مختلف را با یکدیگر مهیا میسازد. با استفاده از اینترنت میتوانید از هر کامپیوتری که بهآن متصل است، ایمیل بفرستید و شخصی در آن طرف دنیا با کامپیوتری کاملاً متفاوت با کامپیوتر شما، آن ایمیل را به راحتی بخواند و به شما ایمیل دیگری بفرستد. امروزه تقریباً تمامی شرکتها و سازمانهای بزرگ، برای تبادل اطلاعات و فرستادن ایمیل بهمشتریان خود از اینترنت استفاده میکنند. پرسش این است که آیا بهراستی امکاناتی که اینترنت در اختیار ما قرار میدهد، فقط در فرستادن ایمیل و داشتن وبسایت خلاصه میشود؟ آیا اینترنت امکان استفاده از منابع سختافزاری سیستمهای دیگر را نیز به ما میدهد؟ پس از اینترنت چه ابزار یا بستری خواهد آمد؟
امروزه فناوری جدیدی به نام Grid به عرصه ارتباطات قدم نهاده است که براساس آن با دانلودکردن یک محافظ نمایشگر مخصوص میتوانیم بهکامپیوترهای شخصی خود اجازه دهیم که وقتی از آن استفاده نمیکنیم، به شبکه جهانی متصل شوند و به سیستمهای بزرگ تحقیقاتی اجازه دهند از منابع آزاد و بلااستفاده سیستم ما استفاده نماید. کامپیوترهای امروزی مانند مغز انسان معمولا از بخش کوچکی از تواناییهای خود استفاده میکنند و اغلب به صورت غیرفعالند و منتظر اطلاعات ورودی میمانند. تصور کنید که اگر از منابع سختافزاری این همه کامپیوتر غیرفعال استفاده شود و همه در یک کامپیوتر جمع شود، چه دستگاه پرقدرتی خواهیم داشت. Grid Computing با کمک به اینترنت زمینهای را فراهم آورده است که بتوان با استفاده از آن، از منابع سختافزاری سیستمهای دیگر نیز استفاده نماییم.
ممکن است Grid برای افراد مختلف معانی متفاوتی داشته باشد، اما اگر بخواهیم تعریف سادهای از آن داشته باشیم، میتوانیم بگوییم Computing Grid در واقع بهشما اجازه میدهد با استفاده از منابع سیستمهای متصل به شبکه و ایجاد یک منبع بزرگ از سرویسها و امکانات این سیستمها، مرکزی بزرگ و قدرتمند به وجود آوریم که توانایی انجامدادن عملیات بسیار پیچیدهای را داشته باشد که یک سیستم بهتنهایی نمیتواند انجام دهد. بهنحوی که از دید استفادهکنندگان این سیستمهای بزرگ، این عملیات تنها از طریق یک سیستم انجام میشود.
Grid Computing در حقیقت نسل جدیدی از شبکههای توزیع یافته است و همانند اینترنت به کاربران خود اجازه میدهد فایلها را به اشتراک بگذارند. بهعلاوه، منابع مشترکی از اطلاعات را برای استفادهکنندگان فراهم میکند. با استفاده از این سیستمها میتوان منابع کامپیوترهای ناهمگون را بهاشتراک گذاشت. هدف اصلی Grid استفاده از این منابع مشترک مانند قدرت پردازنده، پهنای باند، پایگاه اطلاعاتی و در اختیار گذاردن آن برای کامپیوتر مرکزی است.
2-1 انواع Grid
سیستمهای Grid با توجه به نیازهای کاربران میتوانند در انواع مختلف مورداستفاده قرار گیرند. اغلب این سیستمها بر اساس نوع کاری که انجام میدهند، طبقه بندی میشوند. از سه نوع اصلی این سیستم میتوان از Gridهای اطلاعاتی، Gridهای جوینده منابع و Gridهای محاسباتی نام برد.
Gridهای اطلاعاتی یا Data Grid موظفند اطلاعات را ذخیره کنند و آنها را در اختیار کاربران قرار دهند. کاربران این سیستمها بدون آنکه از موقعیت جغرافیایی و مکانی این اطلاعات آگاه باشند، به اطلاعات دسترسی دارند. مثلاً تصور کنید که دو دانشگاه در دو سوی دنیا یکی در ایران و دیگری در انگلستان روی یک مطلب علمیمشترک تحقیق میکنند و هر یک از آنها اطلاعات خاص خود را ذخیره میکند و میخواهد دانشگاه دیگر نیز به برخی از این اطلاعات (نه تمامیآن) دسترسی داشته باشد. این دانشگاهها میتوانند از یک Data Grid استفاده کنند و اطلاعات خود را با ضریب امنیتی بالایی با هم بهاشتراک بگذارند.
در این نوع Grid دستگاههای متصل بهسیستم نیاز بهقدرت زیاد ندارند و فقط مسئول به اشتراک گذاشتن اطلاعات هستند. از طرف دیگر Grid های محاسباتی یا Grid Computational از آن جا که نیاز زیادی به قدرت پردازندهها دارند، باید از ماشینهایی با قدرت بسیار بالا استفاده نمایند.
یکی دیگر از انواع Gridها، سیستمهای جوینده منابع یا Scavenging Grid است. این سیستمها از تعداد زیادی کامپیوتر شخصی استفاده میکنند و بهصورت مداوم بهدنبال ظرفیتها، منابع آزاد و چرخه پردازنده (CPU cycle) کامپیوترهای متصل به Grid هستند و از این منابع استفاده مینمایند. البته صاحبان این کامپیوترهای شخصی باید قبلاً اجازه استفاده از منابع بدون استفاده خود را بدهند.
3-1 اهمیت Grid Computing
تقریبا در همه سازمانها و شرکتهای بزرگ تعدادی کامپیوتر بدون استفاده وجود دارد. مثلاً سرورهای یونیکس از تقریباً ده تا بیست درصد از ظرفیت حقیقی خود استفاده میکنند و کامپیوترهای شخصی حدوداً از 95 درصد از ظرفیت خود اصلاً استفاده نمیکنند. با استفاده از Grid Computing در یک سازمان یا شرکت بزرگ میتوان از منابع بلااستفاده کامپیوترهای سازمان کمال استفاده را برد و سرعت پردازش اطلاعات در سیستمهایی که با کمبود حافظه مواجهند را جبران نمود. از طرف دیگر، سرعت نرمافزارهایی که از این منبع بزرگ سختافزاری استفاده میکنند، بسیار بالاتر خواهد بود و در نتیجه میتوانیم به فکر درست کردن نرمافزارهایی با قابلیتهای بالاتر باشیم و منابع بیشتری را در اختیار استفادهکنندگان قرار دهیم.
Grid Computing میتواند مزایای زیادی برای مدیران و برنامهنویسان داشته باشد. مثلاً با آن میتوان برنامههایی که نیاز بهحافظه زیادی دارند را اجرا نمود و به اطلاعات، دسترسی آسانتری پیدا کرد. اصولا ًGrid Computingمیتواند بهسازمانها و شرکتهای بزرگی که سرمایه هنگفتی را در IT هزینه کردهاند، کمک کند از سیستمهای خود حداکثر استفاده را ببرند.
فناوری های Grid در واقع میتوانند از منابع و سیستمهای غیرمتمرکز پشتیبانی کنند و امکان ارتباط سیستمها را با هم فراهم سازند. وقتی برای اولین بار فناوری Grid ابداع شد، هدف آن تنها بهاشتراک گذاشتن منابع سیستم و در اختیارداشتن سیستمیقدرتمند بود و بهطور کلی بیشتر در اختیار مؤسسات تحقیقاتی قرار داشت. اما امروزه از Grid توقع بیشتری میرود و اهمیت بیشتری پیدا کرده است؛ بهویژه در تجارت الکترونیک و سیستمهای تجاری غیرمتمرکز و توزیعیافته. به عنوان نمونه، مدل تجارت الکترونیک B2B را در نظر بگیرید که دو مؤسسه تجاری اطلاعات خود را از طریق اینترنت با هم مبادله میکنند. Grid نیز میتواند کاری مشابه را انجام دهد و دو یا چند سیستم تجاری را بههم مرتبط سازد. بهطوری که بتوانند اطلاعات خود را بهاشتراک بگذارند. فناوری Grid همچنین میتواند راهحل مناسبی برای افزایش دسترسی، قابلیت اطمینان و امنیت سیستمهای غیرمتمرکز نیز باشد.
4-1 ابزار قدرتمند Globus
یکی از قدرتمندترین ابزارهای ایجاد، کنترل و مدیریت سیستمهای Grid، ابزار Globus است. پروژه Globus حدود سال 2003 بهصورت عملی درآمد. این پروژه حاصل تلاش مشترک محققان و برنامهنویسان Grid در سرتاسر دنیاست که بر حول چهار محور بنا شده است: تحقیق، ابزارهای نرمافزاری، آزمون و نرمافزارها. این ابزار در نسخه 2.2 خود خدمات بسیاری بهمدیران سیستمهای Grid ارائه میکند که میتوان به امنیت، مدیریت منابع و مدیریت دقیق اطلاعات اشاره کرد. Globus با در اختیار گذاشتن API ها و فایلهای Header زبان C برای ساختن و کامپایل برنامهها به برنامهنویسان اجازه میدهد سیستمهای خود را به Grid متصل نمایند و به مدیران امکان میدهد منابع متصل به Grid را بهراحتی مدیریت کنند.