خصوصاً در محیط گرید،باید تفاوت اساسی میان آنها قائل شد.
۱-۶ نگاهی دقیق به برنامه های کاربردی و کارها در محیط گرید۲۴
اگرچه ممکن است طیف وسیعی از منابع مختلف در گرید میان کاربران به اشتراک گذارده شده باشد،اما دسترسی به این منابع از طریق اجرای یک برنامه کاربردی یا یک کار خواهد بود.گاهی دو اصطلاح برنامه کاربردی و کار اشتباهاً به جای یکدیگر به کار برده می شوند.در سیستمهای گرید اصطلاح برنامه کاربردی به بالاترین واحد پردازشی گفته می شود که توسط کاربران جهت اجرا به گرید واگذار می گردد.هر برنامه کاربردی ممکن است به یک یا چند کار شکسته شود و سپس این کار(کارها)به روی ماشین(ماشینهای)پردازشگر توسط سرویس دهنده گرید جهت اجرا ارسال(واگذار)خواهد شد.پس در عمل برنامه کاربردی است که جهت اجرا توسط کاربر به گرید واگذار می شود،اما با شکسته شدن یک برنامه کاربردی به یک یا چند کار،در عمل،کار است که توسط سرویس دهنده گرید به ماشین پردازشگر جهت اجرا واگذار می گردد و کار است که بر روی ماشین پردازشگر در عمل اجرا خواهد شد.زمانبندی نیز در مورد کارها صورت می گیرد.
برنامه کاربردی را بالاترین سطح یک برنامه در گرید می دانیم که ممکن است به تعدادی کار توزیع شده ویا موازی شکسته شود.بنابراین،هر برنامه کاربردی به صورت مجموعه ای از کارها طوری سازماندهی می شود که کارها بتوانند به صورت توزیع شده ویا موازی بر روی ماشینهای مختلف اجرا شوند.برخی سیستمهای گرید این امکان را می دهند که کارها بتوانند در طول اجرا با یکدیگر تعاملهای چند باره آسنکرون یا سنکرون داشته باشند و مرتباً میان یکدیگر در طول اجرا داده هایی را رد و بدل کنند،اما گاهی اوقات سیستم گرید صرفاً این امکان را دارد که خروجی نهایی یک کار از یک برنامه کاربردی،بتواند ورودی کاردیگری از همان برنامه کاربردی باشد(به نوعی تعامل یک باره آن هم صرفاًدر انتها و خاتمه اجرای یک کار)و سپس با بررسی وابستگی کارها به یکدیگر،آنها را به ترتیبی اجرا می کنند که چنین اتفاقی بیافتد.با بررسی دقیق کارها،می توان کارهایی را که مستقل از یکدیگر هستند به صورت همزمان و موازی اجرا کرد ولی کارهایی که به نتایج یکدیگر نیازمندند،باید به ترتیب لازم،اجرا گردند.
واحد کاری را یک واحد اجرایی می دانیم که عملاً به یک ماشین پردازشگر جهت اجرا واگذار خواهد شد و همانطوری که گفتیم،یک واحد کاری تمامی اطلاعاتی را که جهت اجرای یک برنامه لازم است در بر می گیرد:خود برنامه اجرایی(یا اشاره گری به محل نگهداری ان بر روی یک محل مشترک)،کلیه داده های ورودی مورد نیاز برنامه(یا اشاره گرهایی به محل داده های ورودی)،اطلاعاتی در مورد اینکه خروجیهای برنامه چگونه و کجا باید ذخیره شوند،لیست کلیه نیازمندیهایی(منابع)که برای اجرای برنامه لازم است(پارامترهایی مانند معماری،سیستم عامل،مولفه های نرم افزاری،پردازنده،حافظه اصلی،ظرفیت دیسک سخت،پهنای باند و…)،پارامترهای کیفیت سرویس،اولویت برنامه و…همه و همه مواردی هستند که در واحد کاری وجود دارند.گاهی اوقات یک برنامه کاربردی در واحد کاری قرار می گیرد و توسط کاربر به زمانبند گرید ارسال می شود.در این حالت واحد کاری،حاوی اطلاعات کلیه زیربرنامه (کارها)و بیانگر نحوه ارتباط این کارها به یکدیگر و کلیه مواردی است که جهت اجرای توزیع شده تمامی کارها لازم است.گاهی منظور از واحد کاری،مفهومی سطح پایین تر از برنامه کاربردی است و در واقع یک کار به همراه کلیه اطلاعات مورد نیاز است که باید در نهایت بر روی ماشین پردازشگر اجرا شود و اسن واحد کاری،توسط زمانبند گرید به ماشین پردازشگر ارسال می شود.
کارها واحدهای اجرایی هستند که در نهایت بر روی یک ماشین پردازشگر گرید اجرا خواهند شد.آنها ممکن است محاسباتی انجام دهند،داده ها را از مکانی و شکلی به مکانی و شکل دیگر منتقل کنند،داده هایی را جمع آوری کنند،ارتباطاتی با سایر کارها در گرید یا با دنیای خارج گرید برقرار کنند،دستوراتی را بر روی سایر ماشینها اجرا و الی آخر.برخی از سیستمهای گرید،این امکان را می دهند که یک کار نیز بتواند به نوبه خود به چند زیر-کار(subjob)شکسته شود.به شکل زیر توجه کنید.

نمای یک برنامه کاربردی گرید که به صورت مجموعه ای از کارها و زیر کارها سازماندهی شده است.۲۴

ذکر چند نکته در مورد برنامه های کاربردی گرید ضروری است:
۱.برخی سیستمهای گرید،صرفاً از سازماندهی و شکستن دو سطحی پشتیبانی می کنند:برنامه کاربردی می تواند به تعدادی کار شکسته شود و هر کار نیز ممکن به تعدادی زیر-کار شکسته شود.اما برخی دیگر از سیستمها امکان شکستن در بیش از دو سطح را می دهند.به این طریق برنامه کاربردی می تواند به تعدادی کار شکسته شود(کار در این حالت موجودیت اجرایی نیست).هر کار ممکن است به تعدادی کار ویا task شکسته شود و در نهایت برگهای درخت،taskها هستند که برنامه های اجرایی هستند که به ماشینهای پردازشگر جهت اجرا واگذار خواهند شد.
۲.سازماندهی برنامه کاربردی به تعدادی کار توزیع شده ویا موازی،ممکن است به دو صورت اتوماتیک و غیر اتوماتیک صورت گیرد.در سازماندهی اتوماتیک،برنامه کاربردی به صورت یک برنامه ترتیبی غول پیکر نوشته می شود(در یک زبان رویه ای یا شی گرا)و سپس متن این برنامه در اختیار سوپر کامپایلر پیشرفته گریدی گذارده می شود.سوپر کامپایلر،خود برنامه را تجزیه و تحلیل می کند و با تکنیک ه
ا
ی فوق پیشرفته کامپایلر،آن را به تعدادی زیربرنامه طوری می شکند که این زیربرنامه ها،به صورت موازی و توزیع شده بر روی ماشینهای مختلف در گرید قابل اجرا باشند.در این حالت،خروجی سوپر کامپایلر،حالت سازماندهی شده برنامه کاربردی اولیه در قالب محموعه ای از کارهای توزیع پذیر و موازی است.البته،تولید چنین کامپایلر هایی بسیار دشوار است و متخصصان بسیاری بر روی آن هنوز به عنوان مبحثی در دست تحقیق،کار می کنند.در حالت غیر اتوماتیک،سیستم گرید در سطح انتزاعی بالا این امکان را می دهد که تولید کنندگان برنامه های کاربردی گرید،نتوانید به صورت ویژوال چنین درختی را(معمولاً در محیط مرورگرهای سبک وب)تولید کنند.در این سیستمها،ابتدا درخت برنامه کاربردی در قالب کلیه نودها(کارها و زیر کارها یا کارها و taskها،بسته به معماری مجاز قابل پشتیبانی توسط سیستم)و لبه ها(که معرف نحوه ارتباط باشند)رسم می شود.سپس نحوه ارتباط نودها(به لحاظ ارتباطات سنکرون و آسنکرون و یا به لحاظ وابستگیها)مشخص می شود.در ادامه نسخه اجرایی یا Source code مربوط به هر نود اجرایی(برگ درخت)مشخص می شود.کلیه اطلاعات و نیازمندیهای لازم آن،در قالب واحدهای کاری مجزا ذکر خواهد شد.ممکن است لازم باشد اطلاعات دیگری نیز،بسته به خود سیستم گرید،ارائه شود.در نهایت،کلیه این اطلاعات جهت زمانبندی و اجرا به زمانبند گرید داده خواهد شد.
اکنون که دید دقیقی نسبت به یک برنامه کاربردی در گرید به دست آوردیم،مشخص می شود زمانبندی و اجرای چنین برنامه هایی،خصوصاً در گرید های گسترده باچه مشکلات و معضلاتی روبرو است.به طور مثال،در سیستمهای گریدی که امکان ارتباط چند باره سنکرون وآسنکرون به کارهای یک برنامه کاربردی را می دهند،باید دقت شود کارهایی که نیاز به تعامل با یکدیگر دارند،به ماشینهایی که از لحاظ جغرافیایی فاصله زیادی دارند و یا بستر ارتباطی شبکه ای ضعیف میان آنها وجود دارد،واگذار نشوند.در سیستمهای گریدی که امکان ارتباطات فوق را به کارها نمی دهند ولی در عوض وابستگیهای آنها را در نظر می گیرند و خروجیهای آنها را در اختیار یکدیگر می گذارند،زمانبند گرید باید با رعایت ترتیب لازم،کارها را اجرا کند.به علاوه باید کارهای مستقلی را که می توانند با یکدیگر موازی اجرا شوند شناسایی کند تا برنامه در بهترین حالت خود اجرا شود و نیز اگر خروجی یک کار،ورودی کار دیگر است،منطقی این است که هر دو به ترتیب بر روی یک ماشین پردازشگر واحد اجرا شوند تا از نقل و انتقالات بی مورد داده های احتمالاً حجیم،در سیستم تا حد ممکن جلوگیری شود.نکته دیگر این که،در زمانبندیها،باید دقت شود اگر داده های ورودی یک کار،به همراه خود کار در واحد کاری قرار نگرفته اند(صرفاً اشاره گرهایی به محل آنها در واحد کاری آمده است)،حتی الامکان باید کار بر روی ماشین نزدیک(به لحاظ سرعت و ارتباطات شبکه ای)به ماشین نگهداری کننده داده های ورودی اجرا شود.همین مطلب در مورد داده های خروجی زمانی که باید بر روی یک ماشین راه دور ذخیره شوند نیز صدق می کند.در واقع در تشخیص بهترین ماشین جهت واگذاری یک کار،به علاوه بر سرعت پردازنده،میزان بار روی ماشین پردازشگر و…باید چنین مواردی نیز کاملاً توسط زمانبند لحاظ شود.با ذکر تمامی نکات فوق،می توان دریافت زمانبندی و مدیریت منابع در محیط گرید،چه کار دشواری(مثلاً در قیاس با سیستمهای کلاستر عادی)است.

۱-۷ نگاهی دقیق به گرید از دیدگاه کاربران استفاده کننده۲۴
اگر بدانیم کاربر سیستم گرید چگونه کار می کند،چگونه برنامه هایش را جهت اجرا به گرید واگذار می کند،چگونه ممکن است از منابع مختلف تحت پوشش گرید مطلع شود و مسائلی از این قبیل،می توانیم دید نسبتاً بهتری نسبت به زمانبندها،واسطه گرها و سیستمهای مدیریت منابع گرید به دست آوریم.در ابتدا باید گفت کاربری که تمایل به استفاده از گرید دارد،باید در ابتدا در گرید ثبت نام شود.با انجام این عمل،یک نام کاربری منحصربفرد به کاربرل در کل سیستم داده خواهد شد که مستقل از ماشین،محل یا حتی ناحیه ثبت نام کردن کاربر است.بعد از این کار،کاربر باید نرم افزاری تحت عنوان نرم افزاری واگذاری را دریافت و بر روی کامپیوتر خود نصب کند.کاربر از این نرم افزار برای تعامل با گرید استفاده خواهد کرد.در ادامه تک تک امکاناتی که این نرم افزار باید داشته باشد را معرفی خواهیم کرد.اما نکته مهم این است مه هر سیستم گرید،ممکن است نرم افزار واگذاری منحصر بفرد خود با قابلیت ها و امکانات خود را داشته باشد.
در عمل هدف اصلی نرم افزار واگذاری این است که کاربر بتواند از امکانات و سرویسهای مختلف گرید استفاده کند.حداقل نیاز هر کاربر(صرف نظر از نوع نرم افزار واگذاری که یک سیستم گرید در اختیار ما قرار داده است)،به ترتیب شامل موارد زیر است:
۱-اتصال و ورود به گرید
۲-کاربر باید بتواند برنامه های کاربردی اش را تعریف کند(به لحاظ ساختار خود خود برنامه از نظر کارها،زیر کارها یا taskها و بیان نحوه ارتباط انها با یکدیگر،داده های ورودی یا اشاره گرهایی به محل آنها،نحوه و محل ذخیره داده های خروجی و…)،نیازمندیهای فنی لازم جهت اجرای برنامه را مشخص کند(مانند معماری،سیستم عامل،نرم افزارها،مولفه های مورد نیاز و…)،نیازمندیهای کیفیت سرویس را در صورت نیاز مشخص کند(مانند حداقل نیازمندیهای سخت افزاری،شبکه ای و ارتباطی،اولویت برنامه کاربردی،ماکزیمم مهلت زمانی جهت شروع وخاتمه پرداز
ش و …)و نیازمندیهای غیر فنی را در صورت وجود مشخص کند(مانند حداکثر هزینه ای که می تواند بپردازد و …).
۳-واگذاری برنامه کاربردی به سیستم گرید جهت اجرا.
۴-واسطه گری یا زمانبندی:شناسایی بهترین ماشین(ماشینها)جهت اجرای برنامه کاربردی و واگذاری برنامه به آن(آنها).
۵-امکان مونیتور کردن روند پیشرفت اجرای برنامه کاربردی بر روی ماشینهای مختلف.
۶-امکان مشاهده هر گونه خرابی که ممکن است در اجرای کارها به وجود آید.
۷-مشاهده و دریافت نتایج حاصل از اجرا.
موارد فوق،حداقل نیاز یک کاربر نهایی از یک سیستم گرید است.سوالی که مطرح می شود این است که مرحله چهارم(زمانبندی ویا واسطه گری)چیست؟د جواب باید گفت سیستمهای گرید محاسباتی را در حالت کلی می توان به دوم دسته تقسیم کرد:
سیستمهای گریدی که به کاربران،منابع مختلف تحت پوشش گرید را نمایش می دهند و کاربر حق انتخاب دارد.
سیستمهای گریدی که ماشینهای موجود تحت پوشش گرید را از دید کاربر نهایی پنهان می کنند و در این زمینه شفافیت دارند.

۱-۸ سیستمهایی که منابع مختلف تحت پوشش گرید را به کاربر نمایش می دهند:۲۴
در این سیستمها،ماشینهای تحت پوشش گرید نه تنها از دید کاربر نهایی پنهان نمی شوند بلکه لیستی از آنها نیز در اختیار کاربر قرار می گیرد تا کاربر بتواند ماشین(یا ماشینهای)اجرا کننده برنامه کاربردیش از میان لیست انتخاب کند.این سیستمهای گرید لزوماً واسطه گر دارند،اما ممکن است زمانبند هم داشته باشند.حتی گاهی ممکن است عمل واسطه گری و زمانبندی در یک ماجول واحد با یکدیگر ترکیب نیز شده باشند.اما تفاوت واسطه با زمانبند در چیست؟این سوال یکی از مراجع ترین سوالات می باشد. که گاهاً، ممکن است این اصطلاحات به جای یکدیگر بکار روند.
مفهومواسطهگریدرگرید:واسطهگریبهمعنایایناستکهسیستمگرید،لیستیازمنابعوبالاخصماشینهایپردازشگررابهکاربرنمایشدهدوکاربربتواندازمیان این ماشینها،ماشین(ماشینهای)مورد نظرش را جهت اجرای برنامه کاربردی انتخاب کند و سپس از طریق واسطه گر،کاربر می تواند برنامه را به آن ماشین(ماشینها)واگذار کند،آنها را اجرا کند و نتایج را از ماشینهای پردازشگر دریافت کند.
مفهومزمانبندیدرگرید:زمانبندیدرگرید به این معناست که یک زمانبند هوشمند وجود داشته باشد که از میان تمامی ماشینها،بهترین ماشین(ماشینها)را طوری جهت اجرا برنامه کاربردی انتخاب کند که از یک طرف نیازمندیهای برنامه کاربردی تامین گردد و از طرف دیگر،سیاست های مالکین منابع تضمین شود و از لحاظ مسائل فنی،خود گرید(خصوصاً عمل تقسیم