کلاسترينگ

کلاسترينگ

فهرست:

چرا به high availability  نیاز داریم؟

روش های مختلف برای رسیدن بهhigh availability  کدامند؟ (فصل 5 از منبع شماره 2)

¨             NLB (Network Load Balancing)

¨             MSCS (Microsoft Clustering Service)

 

0-Terminology

1-Quick Setup

2-Advanced Setup

3-Background Processes

4-Resources & Articles (English & Farsi)

5-Multimedia Learning

 

 بعد از چندین سال مطالعه و تجربه و نوشتن و ثبت ِ امانتی که خدا توفیق کسب شان در آی.تی[1] نصیبم کرده، در امتداد هدف کسب علم و نشر آن، و تلاش در زمینه به اشتراک گذاشتن تمام تجربه هایم در وبلاگ[2]و جمع آوری آنها، هنوز هم که موضوعی را برای نوشتن بر میگزینم، دغدغه های عجیبی برای هر چه دقیق تر بودن و ارائه ای بهتر تمام ذهنم را پر می کند.

این بار برای استفاده بهینه تر، از تمام اندک قوای فکری و تجربه ام، برای مقاله ای بهتر از قبل، از حداوند متعال استمداد بجویم.

همین جا از دوستان و همکارانی که دیری نیست با آنها آشنا شده ام، از اینکه در چنین محیطی برای کسب در آمد و تجربه مرا پزیرفتند از ایشان تشکر می کنم و خدا را شاکرم.

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

به هر حال به نظرم رسید که ساده ترین و موثر ترین مقاله ها و روش هایی که برایم سودمند بوده اند استفاده کنم و امید وارم که برای خواننده نیر سودمند باشد. به نظرم رسید روش های مختلف را باهم و یکجا تدوین کنم. یعنی روش های مختلفی که برای ارائه و آموزش چه نوشتاری و چه چندرسانه ای[3]و با کمک عکس و توضیحات[4]، متنی متنوع تر و و داخل حوصله و وقت خواننده ارائه شود.

1-         برای خوانندگانی که کم حوصله اند و می خواهند ابتدا برنامه را نصب کنند و نتیچه را ببینند و سپس تصمیم بگیرند که از زیر و بم کار با خبر شوند.

2-         برای خواننندگانی که بعد از انجام تنظبمات می خواهند خود را برای انواع دیگری که می توان تنظیمات را انجام داد و به نتیجه ای دیگر رسید و یا بر حسب نیاز از دیگر امکانات موجود آن، استفاده کرد، استفاده کنند. (یا بسته به محیط های بزرگ تر چگونه می توان از قابلیت های آن استفاده کرد)

3-         برای کسانی که از لمس کردن اتفاقاتی که در پشت صحنه رخ می دهد لذت می برند و یا نیاز به چنین دانشی را برای اشکالزدایی در خود حس می کنند.

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


 

موضوع: کلاسترینگ[5] و لود بلنسینگ[6]

مقدمه:

1-      انواع مختلف نسخه های ویندوز[7]سرور و تفاوت و توانایی آنها برای میزبانی سرویس Clustering

2-      انواع مختلف از سرویس ها که می بایست با کلاسترینگ هماهنگ باشند. در حقیقت توضیحی اجمالی در باره برنامه نویسی و خاصیتی است که باید سرویس آنگونه نوشته شده باشد و حتی طراح نرم افزار زمان طراحی موارد را لحاظ کرده باشد.

3-      مراحل نصب و اعمال تنظیمات در ویندوز 2000[8]

4-      مراحل پیکر بندی در ویندوز 2003 در محیط مجهز به اکتیو دایرکتوری[9]

5-      تنظیم دسترسی و موارد امنیتی[10]

6-      تجهیز (سخت افزاری) و تنظیم (نرم افزاری) منابع لازم برای ایجاد و پیکر بندی سرویس مربوطه

7-      راه اندازی و انواع نصب به صورت Active-Passive  و Active-Active و تشریح تفاوت ها و نقاط ضعف و قوت هر کدام.

8-      اجرا

9-      تست

10-   اشکالزدایی[11]


 

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

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

1)      UPS(Uninterrupted Power Supply): مهمترین و اساسی ترین نیاز قبل از هر چیز برای یک شبکه کامپیوتری، تامین برق سرور هاست به گونه ای که هم همیشه برق داشته باشیم و هم نوسانات برق نامطلوب نباشد و از بروز صدمات احتمالی به تجهیزاتی که بابت آنها هزینه زیادی شده است، جلوگیری شود. برای این کار مدیران شبکه علاوه بر تجهیزاتی که مستقیما کامپیوتری هستند، نیاز به تجهیزات پیشرفته ای هستند که برق را با کیفیتی که گفته شد در اختیار تجهیزات کامپیوتری قرار گیرد "پشتیبان بی وقفه برق"[12]

2)      سرور های خریداری شده از لحاظ مورد اعتماد بودن و قدرت سخت افزاری و عمر تجهیزات و گارانتی و خدمات پس از فروش به گونه ای باشد که مدیران شبکه گرفتار مشکلات پیش پا افتاده که قبلا حل شده اند نشود. همیشه استفاده از بهترین تجهیزات، برای یک مدیر شبکه به منزله ابزاری مثل اره ی خوب و خوشدست برای یک نجار و یا جنس مناسب است برای یک مجسمه ساز و ... وقتی ابزار ها پیشرفته تر باشند، تخصص ها بیشتر هویدا می شود. و متخصص بیشتر به کار حرفه ای اش مشغول می شود و هزینه های ما یقینا پایین می آید.

3)      سرویسی که قرار است  توسط تیم نرم افزاری ارائه شود. یعنی ما می خواهیم سرویسی بنویسیم و طراحی کنیم که بر روی مجموعه ای از سرور ها که کلاستر شده اند، انجام وظیفه کنند.

4)      برای ایجاد دسترسی این سرور از طریق دامنه [13]نیاز به تعیین و تامین دسترسی لازم برای سرویس مزبور داریم. اصولا در اکتیو دایرکتوری هر سرویسی باید از مجوز دهی شده باشد تا در زمان تعیین هویت اقدامات لازم برای اجازه و کنترل دقیق دسترسی انجام شود تا به منابع درون شبکه آنگونه که مدیر دسترسی ها را تنظیم کرده در اختیار داشته باشد (نه بیشتر از آن محدوه).


 

مباحثی که می خواهیم توضیح دهیم دوباره لیستی از آنها ارائه می دهیم.

1-      نسخه هایی از ویندوز 2003 که سرویس کلاسترینگ را پشتیبانی می کند، کدامند؟

2-      سرویسی که بر روی مجموعه سرور های کلاستر شده انجام وظیفه می کند چیست؟

3-      در ویندوز 2000 چگونه است.(برای آگاهی از تفاوت ساختاری با ویندوز 2003)

4-      مراحل پیکر بندی در ویندوز 2003 در محیط مجهز به اکتیو دایرکتوری

5-      تنظیم دسترسی و موارد امنیتی

6-      تجهیز (سخت افزاری) و تنظیم (نرم افزاری) منابع لازم پیش نیاز

7-      راه اندازی و انواع نصب به صورت Active-Passive  و Active-Active

8-      اجرا چگونه است

9-      تست باید چگونه باشد؟

10-   رفع مشکلات

 

  1. نسخه هایی از ویندوز 2003 که سرویس کلاسترینگ را پشتیبانی می کند، کدامند؟

نسخه هایی از سیستم عامل ویندوز باید اسن سرویس را پشتیبانی کند. یادآوری می کنیم که سرویسی که از مجموعه ی سرویس های کلاسترینگ برای دادن سرویس استفاده می کند، باید خصوصیات لازم را داشته باشد تا بر روی کلاسترینگ قادر به پیاده سازی شان باشیم. نسخه ای از ویندوز که قادر به نصب کلاسترینگ بر روی آن باشیم، (طبق اطلاعات موجود در سایت مایکروسافت و کتب مربوطه[14])دو نسخه ی  Datacenter Edition و Enterprise Edition می باشد.

 

  1. سرویسی که بر روی مجموعه سرور های کلاستر شده انجام وظیفه می کند چیست؟

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

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

برای مثال، با توجه به شکل بالا، بر روی سرور هایی که سرویس می دهند هیچ اطلاعات خاصی مربوط به سرویس ارائه شده نیست و همه چیز یا بر روی SAN هستند و یا بر روی دیتابیسی که معمولا سیکوئل سرور هستند و تمام تراکنش ها رو آنلاین لاگ می کند. اگر هم اطلاعات بر روی حافظه اصلی کامپیوتر مزبور به نحوی پاک شد( مثلا سرور رستارت شود) سروری دیگر بتواند آناً از روی اطلاعاتی که بر روی SAN هستند، قادر به ادامه و یا پیگیری سرویس نیمه تمام باشد. پس مجموعه کلاستر شده سرورهایِ ایمیل، صندوق های پستی[15]را بر روی SAN که از طریق تمام سرویس ها در دسترس هستند، در اختیار دارند و در صورت از کار افتادن یکی از آنها، دیگران کارشان را ادامه می دهند.

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

  1. در ویندوز 2000 چگونه است.(برای آگاهی از تفاوت ساختاری با ویندوز 2003)

فقط بدانید که متفاوت است. برای اطلاعات بیشتر باید به کسی مراجعه کنیم که مدارک قدیمی تر دارد.

  1. مراحل پیکر بندی در ویندوز 2003 در محیط مجهز به اکتیو دایرکتوری

 

  1. تنظیم دسترسی و موارد امنیتی

 

  1. تجهیز (سخت افزاری) و تنظیم (نرم افزاری) منابع لازم پیش نیاز

 

  1. راه اندازی و انواع نصب به صورت Active-Passive  و Active-Active

 

  1. اجرا چگونه است

 

  1. تست باید چگونه باشد؟

 

  1. رفع مشکلات

 

 

منابع:

1-Training Guide MCSE Windows Server 2003 Network Infrastructure (فصل پنجم)

2-Windows 2000 Server Professional Reference (صفحه 1244)

3- دانش و تجارب قبلی در رمینه Clustering  در Exchange 2003

4-Learn key



[1] IT

[2] Weblog

[3] Multimedia

[4] Illustration

 

[5] MSCS (Microsoft Clustering Service

[6] NLB (Network Load Balancing)

[7] Windows Server Edition

[8] از روی منبع شماره 2 مقاله در صفحه انتهایی

[9]از روی منبع شماره 1 مقاله در صفحه انتهایی

[10] ساختن کاربر با مجوز لازم

[11] Troubleshooting

[12] Uninterrupted Power Supply

[13] Domain  Controllers in Active Directory - Directory Service

[14] کتاب ویندوز 2003 سرور – انتشارات ناقوس – فصل اول

[15] که فضای ذخیره سازی مربوط به داده ها هستند

منبع : http://kanoon-e-soorati.persianblog.ir

 

برنامه نویسی چند سر نخی(Multi Thread Programming)

برنامه نویسی چند سر نخی(Multi Thread Programming)

 چنانچه با این مبحث برنامه نویسی تحت ویندوز آشنایی نداشته باشید احتمالا قبلا با مشکلاتی در این زمینه روبرو شده اید.اکثر برنامه ها ونرم افزارهای تحت ویندوز اعمال خود را در سرنخ(Thread)های جدا انجام می دهند.در واقع هرThreadمحل انجام قسمتی از برنامه است که با برنامه اصلی تلاقی ندارد.به این معنی که برنامه اصلی قسمتی از وظایف خود را به یک Threadواگذار می کندتا خودش به اجرای وظایف دیگری بپردازد.به این ترتیب هم برنامه اصلی و هم Threadهای آن همزمان به اجرای برنامه خود ادامه می دهند.این قابلیت به برنامه شما اجازه می دهد که درآن واحدبه انجام چندین وظیفه بپردازد.

فرض کنید بخواهیم فرمی طراحی کنیم که دارای دو دکمهButton1وButton2باشد.قرار بر این است که با کلیک کردن بر روی دکمهButton1،پس از 10ثانیه کپشن(Caption)دکمهButton1بهOK تغییر کند.همچنین با کلیک کردن روی دکمهButton2،کپشن این دکمه نیز"OK"شود.تا اینجا مشکلی وجود ندارد.کارهای خواسته شده را می توان در رویداد کلیک دکمه ها نوشت.برای ایجاد تاخیر هم می توان از تابع Sleepکه از توابع API ویندوزدر کتابخانه kernel32.dll است استفاده کرد.اما مشکل آنجا پیش می آید که بخواهیم در طول 10 ثانیه تاخیرمربوط بهButton1دکمهButton2را کلیک کنیم.این عمل با راه حل قبل امکانپذیر نیست.چرا که در طول این 10ثانیه،برنامه مشغول اجرای رویدادکلیکButton1است.بنابراین به کلیکButton2پاسخ نمی دهد.برای حل این مشکل می توان کد برنامه مربوط بهButton1رادریکThreadاجرا کرد تاازبرنامه اصلی پروسس نگیرد.

اکثر زبانهای برنامه نویسی تحت ویندوزامکان ایجادThreadرا دراختیاربرنامه نویس قرارمی دهند.من خودم چون با C++ Builderکار می کنم،برای برنامه نویسان دلفی وC++ Builderعرض کنم که می توانند برای ایجادThreadدر برنامه از طریق File|New|Thread Objectاقدام کنند.توضیحات تکمیلی را نیز می توانند ازHelpنرم افزار بگیرند.

منبع : http://aminelec.persianblog.ir

 

جنگ جهانی ابر رایانه ها !

جنگ جهانی ابر رایانه ها !

بیست و نهمین کنفرانس بین المللی ابررایانه ها که در شهر "درسدا" در آلمان برگزار شد، 500 ابر رایانه پرقدرت دنیا را به مبارزه فرا خواند تا هریک توانمندی های خود را در بوته آزمایش بگذارند.

به گزارش خبرگزاری مهر، در این کنفرانس جنگ اصلی میان شرکت "سان میکروسیستم" و "آی بی ام" درگرفت و ژاپن هم اعلام کرد که به زودی وارد میدان میدان مبارزه خواهد شد.

سان میکروسیستم در این چالش بزرگ اعلام کرد که به فناوری ساخت پرقدرت ترین و سریعترین ابررایانه دنیا دست یافته است.
سان در خصوص این ابررایانه که "صورت فلکی" (Constellation) نام دارد توضیح داد که "صورت فلکی" را با همکاری دانشگاه تکزاس ساخته است. این ابررایانه مجهز به پردازشگرهای چهارهسته ای مدل " اپترون" ساخت شرکت "ای ام دی" است.

وی تاکید کرد که این ابررایانه دارای بخش های استانداردی چون تیغه سرور، ذخیره سازی " سان فایر 4500x" و سیستم عامل های منابع متن آزاد "سولاریز" یا " لینوکس" است.

براساس گزارش پایگاه خبری سیلیکون، "صورت فلکی" در مجموع از 131هزارو 72 هسته برخوردار است که تا 08/1 پتافلاپ عمل می کند.

یک پتافلاپ برابر با هزار تریلیون فلاپ است. ممیز شناور در ثانیه  را فلاپ می گویند. در حقیقت فلاپ مخفف عبارت (Floating Point Operations Per Second ) واحد اندازه گیری تعداد عملیاتی است که یک دستگاه محاسبه گر یا ماشین حساب در هرثانیه انجام می دهد.

همچنین این ابررایانه 100 ترابایت حافظه دارد و سرعت ورودی - خروجی این رایانه پرقدرت 3 ترابات برثانیه است. هر ترابایت معادل یک تریلیون بایت است.

از سوی دیگر "آی بی ام " نیز نسل دوم ابررایانه های پرقدرت خود را در این کنفرانس معرفی کرد. این ابررایانه که Blue – Gene/P نام دارد، دارای چهار پردازشگر "پاور پی سی 450" (850 مگاهرتز) با بسامد پایین است. هر چیپ توانایی انجام 6/13 میلیارد عملیات را درثانیه دارد و یک کیت 60 در 60 سانتی متری محتوی 32 چیپ از این نوع ، 435 میلیارد عملیات را درهر ثانیه محاسبه می کند.

هر کمد این ابررایانه که 80/1 متر ارتفاع دارد، محتوی 32 کیت است. بنابراین هر کمد می تواند 9/13 تریلیون عملیات را درهر ثانیه انجام دهد. هر کمد این ابررایانه هزار و300 برابر سریعتر از پرسرعت ترین رایانه های شخصی خانگی است. درمجموع این ابررایانه از 72 کمد و 294 هزارو 912 پردازشگر تشکیل شده است.

آی بی ام با ارائه این ابررایانه جدید موفق شد رتبه خود را در طبقه بندی 500 ابررایانه پرقدرت دنیا که همه ساله در این کنفرانس معرفی می شوند، ارتقا بخشد.

درحال حاضر این رایانه که از سری رایانه های پرسرعت Big Blue است در جایگاه نود و سوم قراردارد. یکی از چالش های بزرگ برای تولیدکنندگان این رایانه ها، انتقال اطلاعات و داده ها در یک لحظه است.

آندراس بچول استین، شریک بنیانگذار "سان" مشکل اصلی در انتقال اطلاعات را در معماری "سوئیچینگ" می داند. معماری سوئیچینگ درحقیقت روند انتخاب داده های استفاده شده در شبکه های انفورماتیکی است که "مگنوم" نامیده می شود.

مگنوم به تنهایی ترافیک داده ها را با سرعت بالای 3هزارو 456 ریزپردازشگر شکل می دهد.

این درحالی است که رایانه جدید آی بی ام برپایه توانایی محاسبه "سیستم پشتیبان گیری" عمل می کند. به طوری که این ابررایانه در همان لحظه که داده ها وارد می شوند، آنها را روی آلگوریتم ها تحلیل می کند.

بنابراین گزارش، اولین ابررایانه قرن بیستم " Earth Simulator" نام دارد. این ابررایانه برای اهداف علمی بویژه مطالعه درخصوص تکامل آب و هوایی زمین در ژاپن متولد شد.

این ابررایانه بین سالهای 2002 تا 2004 به عنوان پرقدرت ترین و سریعترین رایانه دنیا شناخته می شد. Earth Simulator با 86/35 ترافلاپ ، یعنی تقریبا برابر با 36 هزار میلیارد فلاپ عمل می کرد. این ابررایانه با هزینه مالی 58 میلیون دلار ساخته شد.

در سال 2004 "آی بی ام"  ابررایانه پر سرعت خود را معرفی کرد. Blue Gene/L اولین ابررایانه ای است که 01/36 ترافلاپ محاسبه را انجام می دهد. در مدت یکسال بعد آی بی ام ، چهارمین سری از Blue Gene را عرضه کرد. این ابررایانه تا 6/280 ترافلاپ را انجام می داد.

درهرحال تا نوامبر گذشته Blue Gene/L مقام خود را به عنوان پرقدرت ترین ابررایانه دنیا حفظ کرد.

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

منبع " خبرگزاری مهر "

 

تاریخچه و پیشینه Corba

تاریخچه و پیشینه Corba


درسال 1989(object management group) OMGبا 8 عضو تشکیل شدو شامل بیش از 760 سازمان و بخش بود که وظیفه آنها ”فراهم کردن یک قالب کاری و ساختاری برای نرم افزارهای شیءگرا که بطور گسترده استفاده می شد“ بود.در حقیقت این سازمانها و شرکتها از شرکتهای مهم در زمینه هایی چون سیستم عامل ، پایگاه داده ،نرم افزارهای کاربردی ، ابزارهای تولید نرم افزار و... بودند که منشور آنها فراهم کردن یک قالب کاری معماری گونه متعارف برای نرم افزارهای کاربردی شئ گرا بود.این هدف بسیار بزرگی بود ولیOMG با طرح معماری مدیریت اشیاءOMA به این هدف رسید و corba نیزجزئی از این ساختار است. این مجموعه از استانداردها یک قالب کاری را بوجود آوردند که نرم افزارها بر پایه آن ساخته می شوند به طور خلاصهOMG شامل بخشهای زیر بود:

  • ORB(Object Request Broker)
  • Object services
  • Commen faeilities
  • Domain interfaces
  • Application object

با تشکیلOMG در سال 1989 اولین نسخه معماری متعارف دلال تقاضای اشیاء ( Common Object Request Broker Architecture )که بطور خلاصهcorba نامیده می شد، در سال 1990 معرفی شدو corba فقط یک سری مشخصات و ویژگیها بود و به تولید کننده گان نرم افزار اجازه میداد تا این مشخصات را با هر راهی پیاده سازی کنند.تکمیل شده آن در سال 1991 با نام corba1.1 به بازار عرضه شد و مهمترین ویژگی این نسخه تعریف زبانی با نامIDL بود که بعنوانAPI در این نرم افزارها برای ارتباط باORB تعبیه شده اند.

کلاً در نسخه های corba 1.X گامی برای ارتباط و عملکرد داخلی اشیاء برداشته شده بود و اشیاء در ماشینهای مختلف و در معماریهای مختلف و در زبانهای مختلف با یکدیگر ارتباط برقرار می کنند مهمترین محدودیت نسخه corba 1.X این بود که پروتکل استانداردی برای ارتباط با ORB های مختلف تحت شبکه وجود نداشت.

در نتیجه ORB از یک شرکت نمی توانند باORB از یک شرکت دیگر ارتباط برقرار کنند ولیcorba 2 که در دسامبر 1994 ایجاد شداین مسئله را حل کرد و پروتکلی بنام IIOP(internet- inter-orb-protocol) بوجود آمد و استفاده از این پروتکل برای تمام شرکتها ضروری شد. با استفاده از این پروتکل دیگر نرم افزارهای که از آن از تکنولوژی corba استفاده می شود مستقل از سخت افزار و مستقل از شرکت تولید کننده نرم افزاراست.
سیر تکاملی corba همین گونه ادامه یافت تا در سال 2000corba 3 به بازار عرضه شد و کاملترین نسخه corba می باشد.
این مروری بر سیر تکاملی و پیشینه corba بود و در بخشهای بعدی ساختار و کاربردهای آن بررسی خواهد شد.

2.معماریCORBA

اجزای مختلف معماری corba بشرح زیر است:
1.ORB یا دلال تقاضای اشیاءکه یکی از قستمهای اساسی معماری corba است.
2.IDL. یا زبان تعریف واسط که یکی دیگر از قسمتهای اساسی معماری corba است.
3.مدل اشیاءcorba که شامل ارجاعات اشیاء و سازگار کننده پایه ای اشیاء(BOA) است.
4. مدل ارتباطی corba.یعنی اشیاءcorba چگونه در داخل یک شبکه با هم هماهنگ می شوند.
5.تعریف و نقش مشتری وخدمتگزار در معماری CORBA

دلال تقاضای شیء ORB-object request broker
مفهوم یکORB چنین شرح داده میشود :وقتی یکی از اجزا یکی از نرم افزارها بخواهد از سرویسهای فراهم شده توسط شیء دیگری استفاده کند.ابتدا باید یک ارجاع از شیی که سرویس را فراهم می کند بدست آورد. بعد اینکه این اشاره گر را بدست آورد آن قسمت میتواند متدهای فراهم شده توسط آن شیء را فراخوانی کند وبه سرویس مورد نظر خود برسد.وظیفه اصلیORB تصمیم گیری در مورد مراجعه به شی مورد نظر است وهمچنین نرم افزارها را قادر می کند تا با یکدیگر ارتباط برقرار کنند.این مهمترین مسئولیتORB است.

مارشالینگ

بعد از اینکه یک جزء نرم افزاری از شیی که می خواهد از متدهای آن استفاده یک ارجاع
کسب کرد، میتواند متد مورد نظر را فراخوانی کند این متدها پارامترهایی را به عنوان ورودی می گیرد و همچنین پارامترهایی را به عنوان خروجی می فرستد مسئولیت دیگر ORBدریافت پارامترهای ورودی از جزء فراخواننده ومارشال کردن آنها به شیئ فراهم کننده متد است همچنین پارامترهای خروجی از متدها را آنمارشال می کند.
مارشالینگ پروسه ای است که پارامترهای ورودی را به شکلی که قابل انتقال توسط شبکه باشد تبدیل می کند.
آنمارشالینگ: عمل معکوس مارشالینگ است و داده های آمده از شبکه را به شکل پارامترهای ورودی تبدیل می کند.
برای اینکه ORB بتواند داده ها را در شبکه رد وبدل کند آنها را به فرمت خاصی
تبدیل می کند که این فرمت را one-the-wire می گویند

نتیجه مارشالینگ و آنمارشالینگ استقلال سخت افزاری است. بدلیل اینکه پارامترها هنگام انتقال از شبکه به یک شکل مستقل از سخت افزار تبدیل می شود و هنگام دریافت به یک شکل وابسته به سخت افزار تبدیل می گردد.در نتیجه ارتباط بین اجزاءیک رابطه مستقل از سخت افزار است.برای مثال یک سیستم مکینتاش می تواند متدی را در سروری که یونیکس است اجرا کند.تمام اعمال مارشالینگ و آنمارشالینگ توسطORB اداره می شود.
ORBدارای چند بخش می باشد که مهمترین آنها موارد زیر هست:

1.انبار واسط
انبار واسط (IR) یک بخش خیلی مهم ازORB است که شامل اطلاعات در مورد نوع واسط است ونیازمند نوعی از حافظه دائمی برای نگهداری و ذخیره واسط است .اطلاعات موجود در فایل IDL برای ذخیره شدن درIR مناسب هستند.

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


Interface Definition Language- IDL

اگر یکی از پایه های corba ،ORB باشد، پایه دیگر آن IDLاست. IDLزبانی است که به منظور تعریف واسط بین اجزاء نرم افزارها استفاده میشود.IDL یک زبان رویه ای نیست. آن فقط می تواند واسط را تعریف کند و پیاده سازی وظیفه آن نیست.برنامه نویسانC++ تعریف را مشابه سرفایلها و کلاسها فکر می کنند. در حقیقتIDL زبانی استاندارد برای تعریف واسط است.خصوصیات IDL ها از این مطمئن می سازد که داده ها بدون هیچ مشکلی بین دو زبان برنامه نویسی غیر مشابه ردو بدل شوند.

استقلال از زبان
زبانIDL یک بخشی از استاندارد corba است و از هر زبانی مستقل است این استقلال نتیجه مفهوم نگاشت زبان است .OMG تعدادی از نگاشتهای زبان استانداردرا برای زبانهای محبوب تعریف کرده است.

مدل ارتباطات corba
برای فهم corba‚ابتدا باید نقش شبکه را در سیستمهای محاسبه ای تشریح شود .معمولا‏ً یک شبکه کامپیوتری شامل سیستمهایی است که بطور فیزیکی بهم پیوسته اند. این لایه فیزیکی یک وسیله ای را برای ایجاد ارتباط فراهم می کند.این وسیله ارتباط می تواند خط تلفن و... باشد.این لایه که لایه حمل و نقل نامیده می شود شامل پروتکلهایی است که مسئول انتقال بسته های داده هستند. مهمترین پروتکل امروزTCP/IP است.

پروتکلهایinter_ORB

حال باید این مسئله بررسی شود که corba چگونه در مدل شبکه ای عمل می کند.نکته این است خصوصیات corba جدای پروتکلهای شبکه است. استاندارد corba پروتکلی را مشخص کرده است که بعنوانGoip شناخته می شود.که در سطح بالا، استانداردی برای ارتباطات بینORB های مختلف و اجزاء مختلف فراهم می کند.
General Inter-ORB Protocol) Goip )همانطور که نامش مشخص می کند یک پروتکل کلی است. استاندارد corba پروتکلهای دیگری را مشخص می کند که موجب می شودGoip بعنوان پروتکلهای انتقال خاص نیز مورد استفاده قرار گیرد.بخاطر اینکهGoip یک پروتکل کلی است از آن مستقیماً استفاده نمی شود بجای آن از پروتکلهای خاص استفاده می شود که ویژگیهایGoip در آنها قرار داده شده است و میشود از آنها مستقیماً استفاده کرد.برای مثال یکی از مهمترین پروتکلهای شبکه های تحتTCP/IP که بر مبنایGoip استInternet Inter-ORB Protocol) IIOP (است. IIOPیک نوع خاص ازGoip است. IIOP پروتکل استانداردی برای ارتباطات بینORB های تحت شبکه های مبتنی برTCP/IP است.

Corba و مدل شبکه ای
حال باید جایگاهcorba در مدل شبکه ای بررسی شود.نرم افزارهایcorba روی لایه پروتکل IIOP نوشته می شوند.این پروتکلها خودشان نیز رویTCP/IP قرار دارند.نرم افزارهای تحتcorba محدود نیستند که فقط از این پروتکلها استفاده کنند.

مدل شیءcorba

هر معماری شیء گرا یک مدل شیءای ارائه می دهدکه چگونگی ارائه شدن اشیاءرا در سیستم تشریح می کند. corbaنیز یک سیستم شئ گرا ست در نتیجه دارای یک مدل شئ است.بدلیل اینکهcorba یک معماری توزیع شده است بهر حال ممکن است مدل شیئ آن با مدل شیئ سیستمهای دیگر مانند C++وjavaتفاوت داشته باشد. سه تفاوت عمده بین مدل شیئcorba و مدل شیئ سیستمهای تجاری دیگر وجود دارد که بشرح زیر است:
- حالت نیمه نمایش به منظور حمایت از توزیع اشیاء
- رفتار آن با ارجاعات اشیاء
- استفاده از سازگار دهنده اشیاء.

مشتریها وخدمتگزارها در corba
تعاریف خدمتگزار ومشتری در corba دقیقا مانند تعاریف اینها در سیستم مشتری- خدمتگزار است ومیتوان اینگونه تشریح کرد که هر شیئ که یک متد را فراخوانی کند نقش مشتری را خواهد داشت.وهر شیی که دارای متد درخوا ست شده باشد نقش خدمتگزار را خواهد داشت.

پیکر بندیها وریشه ها Stubs and Skeletons

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

 

اهمیت استفاده از تکنولوژی‌های مبتنی بر web برای تولید نرم‌افزار

اهمیت استفاده از تکنولوژی‌های مبتنی بر web برای تولید نرم‌افزار

سیستم‌های توزیع شده (System Distributed) آنهایی هستند که محیط اجرایی فراتر از یک PC را شامل می‌شوند. به عنوان مثال یک وب سایت نوع خاصی از این نوع سیستم‌هاست، چرا که روی چندین کامپیوتر در حال اجراست. به عنوان مثالی دیگر می‌توان از نرم‌افزارهایی که برای انجام امور مالی و اداری طراحی شده‌اند و روی شبکه در دسترس چندین کاربر قرار می‌گیرند، نام برد. مثالهایی که مطرح شد را سیستمهای سرویس‌گیر-سرویس‌دهنده (Client-Server) می‌گویند که نوع خاصی از توزیع را در بر دارند و طیف وسیعی از نرم‌افزارهای تحت شبکه را شامل می‌شوند. نرم‌افزار این سیستم‌ها به دو بخش کلی تقسیم می‌شوند: سرویس‌دهنده (Server) و سرویس‌گیر(Client). بخش سرویس‌دهنده که خود ممکن است از قسمت‌های مختلف تشکیل شده باشد معمولا روی کامپیوترهای قوی‌تری قرار می‌گیرد و وظیفه‌ی ذخیره‌سازی، به روز رسانی و پردازش داده‌ها را به عهده دارد. بخش دیگر که تمام یا قسمتهایی از آن روی هریک از کامپیوترهای سرویس‌گیر نصب می‌شود ارتباط بین کاربران و سرور را فراهم می‌آورد و با توجه به حق دسترسی کاربر فرمان‌های او را برای اجرا به سرور می‌فرستد و نتیجه را دریافت کرده نمایش می‌دهد. وسیله‌ی ارتباط بین سرویس‌گیرها و سرویس‌دهنده‌ها از طریق یک شبکه‌ی کامپیوتری که ممکن است یک شبکه‌ی محلی (LAN) یا جهانی (مثلا اینترنت) و یا نوع دیگری از شبکه باشد، صورت می‌گیرد.

به طور کلی دو روش برای پیاده‌سازی این‌‌گونه نرم‌افزارها وجود دارد. در روش اول که مورد توجه تولید‌کنندگان داخلی است و در کشور ما مرسوم است، تمام بخش های نرم‌افزار به علاوه‌ی قسمت‌های ارتباطی توسط ابزارهایی مانند Visual C++، Delphi یا Java پباده‌سازی می‌شوند. به این ‌ترتیب که نرم‌افزارهای مستقلی برای بخش سرویس‌دهنده و سرویس گیر طراحی شده و وظیفه‌ی ارتباط بین این دو بخش هم باید توسط نرم‌افزار تامین شود. روش دوم استفاده از تکنولوژی‌های مبتنی بر وب می‌باشد. به این ترتیب که بخش سریس‌گیر با استفاده ابزارهایی مانند: HTML، JavaScript و Flash پیاده‌سازی می‌شود و قسمت سرور هم با استفاده از تکنولوژی‌هایی مانند PHP، ASP.Net و JSP که مخصوص تولید کاربردهای وب هستند، پیاده‌سازی می‌شود. ارتباط بین بخش‌های سرویس‌گیر و سریس‌دهنده توسط یک مرورگر وب (Web Browser) مثلا Internet Explorer روی کامپیوتر سرویس‌گیر و یک سرویس‌دهنده‌ی وب (Web Server) بر روی کامپیوتر سرویس‌دهنده، تأمین می‌شود.

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

با توجه به اینکه در اغلب سیستم‌های اتوماسیون و مالی و اداری که در کشور ما درصد بالایی از تولید نرم‌افزار را شامل می‌شوند، حجم محاسبات بسیار پایین و انتقال داده‌ها زیاد است، استفاده از روش دوم که در بالا مطرح شد بسیار به صرفه خواهد بود. از نظر نصب و دسترسی نیز به علت وجود مرورگرها در تمام کامپیوترهای شخصی و سهولت استفاده از نرم‌افزارهای سرویس‌دهنده‌ی وب، استفاده از سیستم ساده‌تر می‌شود. در نهایت، استفاده از تکنولوژی‌های منبع‌باز موجب کاهش دردسرهای ناشی از پیوستن کشورمان به سازمان تجارت جهانی و رعایت حق تألیف به دلیل استفاده نکردن از ابزارهای گران‌قیمت می‌شود.


 

نبردی دیگر بر سر سرورهای تیغه‌ای‌

نبردی دیگر بر سر سرورهای تیغه‌ای‌

اشاره :
دامنه کاربرد‌ سرورهای تیغه‌ای (Blade) بسیار گسترده شده است. به‌طوری که در اَبَر رایانه‌های مورد استفاده برای ایجاد تصاویر سه بعدی فیلم‌های سینمایی گرفته تا وب‌سایت‌ها و مراکز داده به کار می‌روند. به جرات می‌توان آن‌ها را جایگزینی برای رایانه‌های دسکتاپ کنونی دانست. بسیاری از کاربران از سرورهای تیغه‌ای مجزایی استفاده می‌کنند که تا حد و ‌اندازه‌های یک پی سی واقعی تعدیل شده‌اند. جان همفریز، از کارشناسان شرکت پژوهشی IDC، معتقد است که سرورهای تیغه‌ای مجموعه‌های گسترده‌تری از مشتریان را پوشش می‌دهند و اکنون پلتفرم سرورهای تیغه‌ای تنها ویژه مراکزداده‌ای بزرگ و غول‌آسا نیست.


منبع: بیزنس ویک

جادوی جدید
‌Blade به سرعت به عنوان جزئی از صنعت سخت افزار رایانه‌ای شناخته می‌شود. مجموع درآمدهای سرورهای تیغه‌ای در سال گذشته به  2/1 میلیارد دلار رسید. اما برآورد IDC برای سال جاری حدودا دوبرابر‌ این میزان است.‌در حالی که هدف آن است که تا سال 2009 درآمدی ده میلیارد دلاری داشته‌ باشند. سرورهای تیغه‌ای در سال 2004 تنها دودرصد از مجموع درآمدهای فروش سرور و پنج درصد از کل تعداد سرورها را در  جهان به خود اختصاص داده بودند. ‌حال آن‌که ظرف  چهار سال و با تحقق پیش‌بینی‌ها، سرورهای تیغه‌ای پا را فراتر می‌نهند و به جایگاهی می‌رسند که پانزده درصد از مجموع درآمدهای سرور و 25 درصد از کل تعداد سرورهای جهان را در اختیار خویش خواهند گرفت و بدون شک این رشد سریع، در میان تمام ادوات رایانه‌ای بی‌نظیر است.

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

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

‌تغییرپذیری
آنچه صنعت تاکنون از سرورهای تیغه‌ای دیده، تازه آغاز ماجراست. داوگ بالوگ، نایب رئیس مرکز سرورهای تیغه‌ای در شرکت آی‌بی‌ام، براین باور است که پردازشگر چند رسانه‌ای سل (Cell) در ابتدای عرضه تنها مختص کنسول‌های بازی ویدیویی پلی استیشن 3 خواهد بود. اما به زودی برای کارهایی از قبیل تصویربرداری پزشکی، روی سرورهای تیغه‌ای نیز نصب می‌شود. مسلما این‌گونه کارکردهای سنگین و پرطرفدار، تنها نیازمند چند دستگاه سرور تیغه‌ای خواهد بود؛ نه یک ابر رایانه! بالوگ می‌افزاید: <تحقق‌این امر چندان دور نیست.>

سرورهای تیغه‌ای در واقع تخته مدارهایی با حدود دوازده ‌اینچ پهنا و چهارده ‌اینچ عمق هستند که به صورت افقی یا عمودی روی یک شاسی فلزی  درون رک مربوط به خود قرار می‌گیرند. زمانی که یک سرور تیغه‌ای خراب می‌شود، به راحتی می‌توان آن را با دیگری تعویض کرد. درباره این قضیه در محافل رایانه‌ای لطیفه‌ای هم شنیده می‌شود مبنی بر‌این که از‌این پس حتی بزرگ‌ترین مراکز داده‌ هم تنها شامل چند ردیف سرور تیغه‌ای، یک تکنسین و یک سگ خواهد بود؛ وجود تکنسین برای آن است که سرورهای تیغه‌ای‌ خراب را تعویض نماید و حضور سگ هم به این خاطر است که اگر تکنسین به کار دیگری مشغول شد، گازش بگیرد!

در حال حاضر، فیلم کینگ‌کنگ بزرگ‌ترین شاهکار سرورهای تیغه‌محسوب می‌شود. شرکت نیوزیلندی weta پردازش نهایی کینگ کنگ را انجام داده‌است. این شرکت در عرصه جلوه‌های ویژه فعال است و شهرت خود را بیشتر مدیون کار در فیلم‌های سه گانه <ارباب حلقه‌ها> است. 1900 سرور تیغه‌ای‌ این شرکت، چنان قدرت رایانشی‌ ایجاد کرده‌اند که آن را در رتبه‌ای معادل یکصد و نهمین ابرکامپیوتر سریع جهان جای داده است.

‌بازنگری
میلتن نگان، رئیس بخش فناوری شرکت وتا، می‌گوید: در اختیار داشتن پردازشگرهای بیشتر کمک می‌کند کارها سریع‌تر انجام شوند و‌این امر ما را یاری می‌دهد تا نسبت به مجموع کار بازنگری سریع‌تری داشته باشیم و در نتیجه، کار بی‌نهایت بهبود خواهد یافت. برای اطلا‌ع از پیشرفت روزافزون و مهیج سرورهای تیغه‌ای لازم است بدانید که سرورهای تیغه‌ای هیجان و واقعیت را در جلوه‌های ویژه فیلم‌ها به ‌وجود می‌آورند.

اکنون این توان رایانشی در بخش‌های کوچک‌تر آماده است برنامه‌های کاربردی را بسیار ساده‌تر نماید. آناکوندا اسپورتز، تولیدکننده و خرده‌فروش کالاهای ورزشی و یونیفرم مدارس، اکنون از سرورهای تیغه‌ای‌ برای اداره وب‌سایت تجاری خود بهره می‌گیرد.‌این شرکت دویست نفره قبلا برای این امر از سرورهای معمولی استفاده می‌کرد. لیکن دریافت که خرابی مکرر سرورها باعث ایجاد وقفه در تجارت الکترونیکی شرکت می‌شود.

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

مؤسسه مالی - اعتباری تگزاس، مثال خوبی برای مقایسه قیمت و فضای مورد نیاز سرورها است.‌این موسسه در ساختمان دفتر مرکزی شلوغ خود واقع در سن آنتونیو با کمبود فضا مواجه بود. به‌همین خاطر سرورهای ویندوز و لینوکس خود را مثل جعبه پیتزا روی هم انباشته بود. اما در حال حاضر آن‌ها چهارده سرور تیغه‌ای را در فضایی معادل دو سرور معمولی جای داده‌اند. به گفته پت تول، نایب رئیس فناوری اطلاعات‌این موسسه، از زمان ورود سرورهای تیغه‌ای، در هزینه‌های مربوط به خرید ادوات جدید، کاهشی 30 درصدی داشته‌اند. 

‌همه منظوره
ایده سرورهای تیغه‌ای حاصل رونق شدید دات کام‌ها بود. شرکت‌های نوپا یا غول‌آسای ‌اینترنتی، کارهای روزمره وب سایت‌های خود را به شرکت‌هایی واگذار کرده بودند که در اداره مراکز داده عظیم تخصص داشتند. ابتدا تنها معدودی شرکت نوپا بودند که برای نخستین بار از سرورهای تیغه‌ای‌ استفاده کردند. اما آن‌ها هم همراه با سایر دات کام‌ها از صحنه روزگار محو شدند. اچ‌پی و کامپک پیش از ادغام‌، نخستین غول‌های فناوری بودند که در سال‌های 2000 و 2001 به این عرصه پا نهادند.

تلقی اولیه آی‌بی‌ام ‌این بود که سرورهای تیغه‌ای می‌تواند تقریبا یک فناوری همه منظوره باشد. لذا با آن‌که کمی دیر وارد بازار شد، به یمن همان تلقی اولیه بود که آبی بزرگ توانست پیشرو بازار باشد. طبق برآوردهای موسسه گارتنر، در سه ماهه سوم سال 2005، سهم‌این شرکت از بازار‌ سرورهای تیغه‌ای 37.2 درصد بود. ضمن آن که طی همین مدت، سهمی 45.1 درصدی از مجموع درآمدهای‌این تجارت را به دست آورد. پس از‌این شرکت، اچ‌پی در جایگاه دوم قرار دارد و دل نیز بعد از آن‌ها صاحب مقام سوم است.

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

‌شمشیرهای آخته
آینده‌نگری‌های آی بی‌ام سرورهای تیغه‌ای را با چنان مفهوم تازه وآینده روشنی مطرح ساخت که رسما به عنوان یک فرصت تجاری نمایان شد و سرمایه‌گذاری‌های بزرگی را در منابع مالی و نیروی مهندسی به سمت خود جلب نمود. از سال 2002 که نخستین سرورهای تیغه‌ای آی‌بی‌ام کارشان را شروع کردند، آبی بزرگ نیز پرواز بلند خود را آغاز نمود.

جدیدترین راهبرد آی‌بی‌ام در‌این زمینه، بسته‌بندی اولیه سرورهای تیغه‌ای روی شاسی جهت صنایع خاص است. آی بی‌ام ‌ایده‌های بسیاری از‌این دست دارد که برای نمونه می‌توان به محصولی برای بانکداری شعبه‌ای تحت عنوان <بانک در جعبه> اشاره نمود که سرورهای شبکه، یک سرور‌ایمیل، مراقبت ویدیویی و کارهای دیگر را در یک مجموعه مجزا جمع کرده بود.‌این شرکت قصد دارد در ادامه سیاست‌های خود یک بسته محصول را جهت خرده فروشی‌ها تا اوایل سال‌آینده عرضه کند.

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

بررسی معماری سرویس گرا

بررسی معماری سرویس گرا
 
منبع : ماهنامه شبکه 
 

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



معرفی
تعاريف گوناگوني از معماري سرويس گرا ارائه شده است كه از جمله آنها مي توان به تعاريف زير اشاره كرد:
مجموعه قوانين ، سياستها و چهارچوبهايي كه نرم افزارها را قادر مي سازد تا عملكرد خود را از طريق مجموعه سرويسهاي مجزا و در عين حال مربوط به هم در اختيار ساير درخواست كنندگان قرار دهند تا بتوانند بدون اطلاع از نحوه پياده سازي و تنها از طريق رابطهاي استاندارد و تعريف شده ، این سرويسها را پيدا كرده و فراخواني نمايند.و یا معماری سرویس گرا روشي برای ساخت سیستمهای توزیع شده اي است که در آنها عملکرد سیستم بصورت سرویس در اختیار کاربران و یا سایر سرویسها قرار می گیرد.
از ديگرتعاريف ارائه شده مي توان به "واحدهاي نرم افزاري آماده در شبكه (Network-available Software Unit) " يا "سرويسهاي سطح حرفه (Business-level services) " اشاره كرد.
در حال حاضر ، تکنولوژی سرويسهاي وب(Web Services)  و پیاده سازی نمونه های موفق از آن، نشان داده است که SOA می تواند به عنوان راه حلی عملی و دست یافتنی در طراحی سیستمهای جدید و یکپارچه-سازی سیستمهای بزرگ موجود ، مطرح گردد. البته ذکر تفاوت سرويسهاي وب و SOA در اینجا لازم به نظر می رسد.
سرويسهاي وب  مجموعه ای از تکنولوژیهایی همچون XML,SOAP,WSDL و UDDI می باشد که امکان ارائه راه حل و برنامه نويسي جهت رفع مشکلی خاص را فراهم مي نمايد.
در حالی که SOA یک معماریست و از مجموعه مشخصی از تکنولوژیها فراتر مي باشد. اگرچه SOA بر اساس این تکنولوژیها راه حل ارائه می نماید ، اما در عین حال مستقل از هر یک از آنها است.
آنچه اهمیت دارد تعریف سرویس به عنوان مهمترین عنصر این معماری می باشد.
سرویس ، رفتار قرادادی تعریف شده ایست که هر قطعه ای می تواند آنرا جهت استفاده سایر قطعات در سیستم تهیه و پیاده سازی نماید.
در این معماری ، همه توابع به عنوان سرویس تعریف می گردند. این توابع شامل توابع حرفه (Business functions)  و تراكنشهاي حرفه‌اي (Business transactions)می باشند كه تراكنشهاي حرفه خود شامل توابع سطح پايين (Low-level functions) و توابع سيستمي سرويسها(System service functions) هستند.
سرویسها بصورت مستقل طراحی و پیاده سازی شده و به عنوان جعبه سياه عمل می نمایند. قطعات دیگر در خارج از این قطعه نیازی به دانستن نحوه انجام کار در این سرویس را ندارند و تنها به نتیجه آن نیازمندند.
قطعات، سرویسهای خود را از طریق رابطها (interface) در اختیار قطعات دیگر قرار میدهند که این رابطها قابل دستیابی و فراخوانی هستند، بدون اینکه محل قرار گیری آنها اهمیت داشته باشد (رابطهاي محلي يا دور ) . در ضمن این رابطها می توانند به همان نرم افزار كاربردي  یا به آدرسی در محل دیگری از شبکه مرتبط باشند .
رابطها به عنوان کلیدی در برقراری این ارتباطها هستند و از طریق آنها نوع پارامترهای ورودی و نتایج (خروجی) مشخص می گردد.
بعلاوه ، با ایجاد قابلیت توزیع شدگی به شكلي مناسب و بدون وابستگی زیاد ، می توان سرویسها را در قسمتهای مختلف شبکه و بصورت بعضا تکراری ( مخصوصا برای سرویسهای مهم ) قرار داد تا این سرویسها همیشه در دسترس بوده و در صورت زیاد شدن درخواستها بتوان با استفاده از تکنیکهای Load Balancing به تمامي آنها به‌خوبی پاسخ داد.

ویژگیهای سرویس و محاسبات سرویس گرا
محاسبات سرویس گرا (SOC) ، نمونه ای از محاسبات است که در آن طراحی و توسعه سیستم های کاربردی بر پايه سرویس به عنوان عنصر اساسی ، انجام می گیرد. سرویس ها عناصری هستند که مستقل از پلتفرم بوده و در ساخت سیستمهای توزیع شده سریع و ارزان قیمت کمک می نمایند. همچنین سازمانها را قادر می- سازند تا توابع خود را از طریق زبانها و پروتکلهای بر پایه XML پیاده سازی و بر روی اینترنت یا اینترانت ارائه نمایند.
از آنجا که سرویسها از طریق سازمانها و شرکتهای گوناگون تهیه می شوند و جهت دسترسي كاربران مختلف می بایست همواره در دسترس باشند ، رعایت ویژگیهای زیر ضروری می باشد:

- مستقل از تکنولوژی باشند؛ به این معنا که بکارگیری و مکانیزم فراخوانی و پیدا کردن سرویسها به راحتی و از تمام محیطها ( سیستمهای عامل مختلف و زبانهای برنامه سازی گوناگون ) میسر بوده و وابسته به پلتفرم خاصی نباشد.

- وابستگی بسیار پایینی بین درخواست کننده و ارائه دهنده سرویس وجود داشته باشد و یا بعبارتی Loosly Coupled باشد. به این معنا که درخواست کننده نباید هیچ نیازی به دانستن ساختار داخلی و نحوه پیاده سازی سرویس داشته باشد. برای این منظور ، فراخوانی سرویس از طریق بکار گیری مکانیزم پیغام (Message) بجای فراخوانی API انجام می گردد.

- درخواست کننده نباید نیازی به دانستن محل قرارگیری سرویس داشته باشد و بعبارتی معماری سرویس گرا می بایست Location Transparency  را پشتیبانی نماید. به این ترتیب که محل قرارگیری سرویس و مشخصات آن در مخزنی (Repository) قرار می گیرد و درخواست کننده ، محل و اطلاعات لازم را از طریق بازیابی آن از این مخزن بدست می آورد.

سرویس ها می توانند به دو شکل ساده و ترکیبی ارائه شوند. سرویسهای ترکیبی ، سرویسهایی هستند که بر اساس بکارگیری چند سرویس ساده ( یا ترکیبی) ایجاد می شوند. برای مثال ، ممکن است سیستم توزیع شده ای  بر اساس چند سرویس ساده صدور صورتحساب ، ثبت سفارش ، مدیریت روابط مشتری و ... سرویسهای ترکیبی گسترده تری در ارتباط با حرفه اي خاص ایجاد نماید.
سیستمهای ساخته شده بر اساس سرویس ، ترکیبی از سرویسهای مستقل هستند که عملکردهای خود را از طریق رابطهای تعریف شده ای در اختیار کاربران (بالقوه ) خود  قرار میدهند.  (Web Service Description Language)WSDL از جمله راههایی است که بطور گسترده برای تعریف این رابطها بکار می رود تا بوسیله آن جزئیات لازم برای اتصال درخواست کننده به ارائه دهنده سرویس تعریف شود.

نرم افزار به‌عنوان سرویس
اصل ارائه شده " نرم افزار- بعنوان- سرویس" از محاسبات سرویس گرا ، بر اساس مدل ASP مطرح گشته است. ASP هویت سوم شخصیست که بكارگيري سرويسهاي نرم افزاري و دسترسی مشتری را به بسته نرم افزاری از طریق شبكه، مدیریت و میزبانی می نماید.به‌عبارتی ASP ها راهی برای رفع نیازهای IT شرکتها از طریق واگذاری بخشي از این نيازها  یا تمامی آنها به بیرون از سازمان می باشند.
برای این منظور ASP با استفاده از زیر ساختهای خود ، ارتباط بین مشتری و نرم افزار ارائه شده را برقرار کرده و دسترسی وی به داده ها و توابع موجود را بصورت در دسترس (online)، مدیریت می نماید.
اگرچه نظریه "نرم افزار بعنوان سرویس" اولین بار توسط ASP ارائه شد ، اما مشكلات این روش باعث ایجاد کدهایی می شد که معمولا قابل استفاده مجدد نبوده و محدود به مشتری خاص می بود ، بعبارتی وابستگی زیادی بین سرویس ارائه شده و سیستم استفاده کننده بوجود می آمد.
معماری سرویس گرا اجازه میدهد تا نظریه "نرم افزار بعنوان سرویس"، گسترش یافته  تا از طریق آن بتوان پردازشها و تراکنشهای پیچیده را بعنوان سرویسهايی با قابلیت استفاده مجدد ارائه کرد و به این ترتیب سیستمها را مستقل از سرویسها طراحی و تولید نمود.

معماری سرویس گرای مقدماتی

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

شکل 1 (براي مشاهده نماي بزرگتر، روي تصوير کليک کنيد)

در یک سناریو بر پایه سرویس ، تهیه کننده ، سرویس را پیاده سازی کرده و از طریق شبکه به ارائه توضیحات آن سرویس برای درخواست کننده یا عامل کشف سرویس می پردازد. در خواست کننده معمولا درخواست پیدا کردن سرویس را به عامل کشف سرویس میدهد تا از طریق آن به توضیحات ارائه شده سرویس و محل آن دسترسی پیدا کند. سپس با بکارگیری این اطلاعات به تهیه کننده سرویس متصل شده و از سرویس ارائه شده استفاده می نماید.
بدین ترتیب ، سرویس بعنوان قطعه نرم افزاری پیاده سازی شده ای که توسط یک رابط تعریف شده مستند گرديده است و نه تنها بوسیله خود تهیه کننده بلکه توسط سایر عواملی که از نحوه پیاده سازی آن خبر ندارند ، نیز قابل استفاده و فراخوانی است. این ویژگی جعبه سیاه بودن سرویس از اصل ماژولاریتی در مهندسی نرم افزار به ارث رسیده است. البته سرویس با تعاریفي مانند ماژول ، قطعه نرم افزاری یا شی تفاوت دارد ، زیرا نه تنها در سطح برنامه ها و نرم افزارهاي کاربردی ، بلکه در سطح حرفه و حتی مابین سازمانها نیز قابل بكارگيري و استفاده مجدد مي باشد.
در واقع سرویسها، نمایش عملکرد معنی داری از حرفه هستند که می توانند بنا به نیاز مشتری در سرویسها و توابع بزرگتر یا جدید بکار گرفته شوند.
رابطها به سادگی مکانیزمی جهت برقراری ارتباط بین سرویس و نرم افزارها یا سایر سرویسها ایجاد می نمایند. از لحاظ تکنیکی، رابط سرویسها ، توضیحاتی در مورد نام و امضاء متدهای یک سرویس هستند که توسط درخواست کننده ، قابل فراخوانی می باشند.

معماری سرویس گرای توسعه یافته
معماری سرویس گرای مقدماتی به برخی از مسائل موجود در یک معماری مبتنی بر سرویس نمی پردازد. از جمله این مسائل، مدیریت، هماهنگ سازی سرویسها ، متناسب کردن آنها ، امنیت ، مدیریت تراکنشها و ... می باشد.این نکات که در شکل 2 نمایش داده شده است ، در معماری سرویس گرای توسعه یافته در نظر گرفته شده است.

شکل 2 (براي مشاهده نماي بزرگتر، روي تصوير کليک کنيد)

معماری مقدماتی در لايه پاييني این معماری لایه ای قرار گرفته است. لایه ترکیب سرویس در معماری توسعه یافته ، شامل توابع و نقشهای لازم برای یکپارچه کردن چند سرویس بعنوان سرویس ترکیبی می باشد. سرویس ترکیبی بدست آمده ، توسط Service Aggregator بعنوان یک سرویس مقدماتی استفاده می گردد و یا توسط درخواست کنندگان سرویس بکارگرفته می شود.
Service Aggregator تهیه کننده سرویسی است که سرویسهای ارائه شده توسط سایر تهیه کنندگان را یکپارچه می نماید تا از آنها سرویسهای جدید بسازد، همچنین مشخصات و کدهایی را تهیه می کند تا در مورد سرویسهای ترکیبی عملیات زیر را انجام دهد:

متناسب کردن : کنترل اجرای سرویسهای ترکیب شده و مدیریت گردش داده ها در بین آنها و انتقال آن به خروجی.

کنترل کردن : مجوز دادن به رخدادها و اطلاعات تولید شده توسط سرویسهای ترکیبی جهت به اشتراک گذاشتن و منتشر کردن رخدادهای ترکیبی سطح بالاتر ( برای مثال از طریق فیلتر کردن و خلاصه سازی)

مطابقت دادن : حصول اطمینان از حفظ جامعیت سرویسهای ترکیبی از طريق تطبیق دادن محدودیتها و نوع پارامترهای سرویسهای بکار رفته.

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

استانداردهای جدید ارائه شده با عنوان زبان اجرای پردازشهای حرفه برای سرویسهای وب ، تلاشی است که بر اساس XML ، تعریف سرویسهای وب جدید را که از ترکیب سرویسهای موجود بدست می آیند ، ارائه دهد.یک پردازش BPEL بصورت انتزاعي با ارجاع و اتصال به portTypeهای تعیین شده در WSDL اي ايجاد مي شود كه در سرویسهای وب موجود در یک پردازش ، تعريف شده است.
مدیریت نرم افزارهای کاربردی مهم و بحرانی تجارت الکترونیک ، مي بايست نظارت عمیق و جامعی در محیطهای توزیع شده داشته باشد. خارج از دسترس بودن یک عنصر کلیدی در سیستمهای توزیع شده، تاثیر منفی زیادی بر کل چرخه گذاشته و باعث بیرون رانده شدن ارائه کننده سرویس از بازار می شود.
برای رويارويي با چنین موقعیتهایی ، سازمانها نیاز به کنترل دائم سرویس و حصول اطمینان از سلامتی سیستم دارند. کارایی می بایست همیشه ، در هر شرایطی و با هر بار کاری ، در سطح قابل قبولی باشد.
برای مدیریت قسمتهای مهم و بحرانی و سرویسهای ویژه ، معماری توسعه یافته ، در لایه مدیریت سرویس بعنوان بالاترین سطح ، سرویسهای مدیریت شده را ارائه کرده است.
این لایه شامل دو قسمت مدیریت عملکرد و مدیریت بازار می باشد. کارکرد مدیریت عملکرد بدین صورت است که قسمتهای مهم سیستم را پشتیبانی می نماید. این لایه جزئیاتی از کارایی سیستم را جهت  ارزیابی آن ارائه میدهد و بدین صورت سازمان را قادر می سازد تا بر اساس وضعیت نرم افزار و تکمیل شدن تراکنشهای حرفه ، تصمیم گیری نماید. اپراتور سرویس ، مسئول انجام امور مربوط به این واحد است.
مدیریت عملکرد ، قابلیت بسیار مهم و کلیدی است که می تواند صحت و کارایی کلی سیستم را کنترل نماید و بدین ترتیب از بروز مشکلات شدید و خطا در سرویسها جلوگیری کند.
این خطاها ممکن است بر اثر اجتماع و هماهنگ سازی سرویسها و بخاطر عدم رعایت توافقهای در سطح سرویس (SLA) اتفاق بیافتد.
مدیریت و کنترلهای مناسب باعث کاهش احتمال بروز چنین خطاهایی می شود؛ بدین ترتیب که صحت ، پایداری و همچنين مناسب بودن ارتباط بین توابع بکار رفته در سرویسهای ورودی و خروجی را بررسی و کنترل می نماید.
قسمت دیگر در لایه مدیریت ، مدیریت بازار می باشد. مسئولیت این واحد ارائه پروتکلها و قوانین استاندارد در سطح حرفه می باشد تا از این طریق امکان استفاده از سرویسهای تعبیه شده در بازارهای مختلف بوجود آيد.
در ضمن برخی از تسهیلات و سرویسهای پایه برای امور مالی ، تضمین کیفیت و ... در این لایه قرار می گیرد تا از این طریق بازارهای مختلف بتوانند در کمترین زمان به سرویسها دسترسی یابند.
این قسمت از لایه مدیریت ، توسط سازندگان بازار که کنسرسیومی از شرکتهای فعال در این عرصه هستند ، کنترل و نگهداری می گردد.
درنهايت ، با توجه به نكات مذكور مي توان معماري سرويس گرا را روشي در جهت بهبود طراحي و استفاده از سيستمهاي نرم افزاري دانست ، اگرچه مشكلات و چالشهاي پيش روي آن همچنان نيازمند بررسي تجارب گذشته و نيز ارائه راه حل مناسب پيرامون مسائل مطرح در این معماري مي باشند.

منابع:

1- Channabasavaiah. Kishore, et al., Migrating to a service-oriented architecture, Part 1, IBM official web site, 16 December 2003.

2- Bieber .guy , Carpenter.Jeff , Introduction to Service-Oriented Programming , Motorola ISD , 2003

3- Zimmermann.Olaf, et al., Elements of Service Oriented Analysis and Design, IBM official web site, 2 June 2004.

4- Papazoglou Mike, Service-Oriented Computing :Concepts, Characteristics and Directions, Tilburg University ,  Proceeding of  the forth international conference on web information system engineering , IEEE , 2003

5- Hao Ding, Exploiting Extended Service-Oriented Architecture for Federated Digital Libraries, Information Management Group, Norwegian Univ. of  Sci.& Tech, 2004

6- Andrew Yang , Critical Infrastructure for Service-Oriented Architecture, Westbridge Technology ,2004

7- Mark Colan , Service-Oriented Architecture Expands the Vision of Web Services , Part 1 , IBM official web site , 21 April 2004

 

     

تاخير در عرضه ويندوز HPC

تاخير در عرضه ويندوز HPC

ماهنامه شبکه


مايکروسافت اعلام کرد که ويندوز ويژه محاسبات با کارايي بالا تا نيمه نخست سال آينده عرضه نخواهد شد.


شرکت مايکروسافت اعلام کرد که ويندوزويژه محاسبات با کارايي بالا(Windows Server for high performance computing :HPC) تا نيمه نخست سال آينده عرضه نخواهد شد. همچنين عرضه نهايي  نگارش نخست ويندوز ويژه کلاسترها که با نام Windows Server 2003 Compute Cluster Edition (CCE) شناخته مي‌شود نيزبه نيمه دوم سال جاري موکول شده است.
همچنين در گزارش ديگري مايکروسافت اعلام نموده است که کيت توسعه نرم‌افزاري  (SDK) براي ويندوز سرور2003 که در ماه نوامبر به بازار عرضه شده بود، تغييراتي خواهد داشت و نسخه جديد آن در اواسط سال جاري ميلادي آماده خواهد شد.
ناظران در انتظار عرضه ويندوز HPC هستند تا ببينند مايکروسافت در عرصه رقابت با يونيکس و لينوکس در سکوهاي 64 بيتي چگونه خواهد بود.
در همين رابطه شرکت مايکروسافت نگارش نخست Windows Server 2003 CCE را براي پشتيباني از پردازنده‌هاي خانواده x86 (64 بيتي) بدون امکان پشتيباني از Itanium 2 اينتل عرضه نمود. زيرا مايکروسافت معتقد بود که Itanium 2 هنوزبسيارگران و فوق پيشرفته است و زيادتر از حد نياز کاربردهاي کلاسرينگ معمولي مي‌باشد.

 

Terracotta for Spring - محاسبات توزیع شده آسان

Terracotta for Spring - محاسبات توزیع شده آسان

کلاسترینگ بهترین روش توزیع پردازش ها و محاسبات در مقایسه با CORBA, RMI, COM و … است. مزیت اصلی کلاسترینگ ساده سازی مدل برنامه نویسی است. کلاسترینگ و به طور کلی توزیع باید از دید برنامه ساز پنهان باشد، اما روش های موجود این امکان را فراهم نمی کنند و منطق نرم افزار تحت تاثیر توزیع قرار می گیرد. به عنوان مثال برای استفاده از کلاسترینگی که Application server هایی چون BEA Weblogic ارائه می دهد، برنامه ساز باید به serializable بودن اشیا (به منظور جابه جایی بر روی ندهای کلاستر در هنگام نیاز) توجه داشته باشد. ساده ترین راه حل برای ارائه ظرفیت قابل پیش بینی، دسترس پذیری بالا و قابلیت توسعه ، بدون اثرگذاری بر منطق نرم افزار، بیرون بردن موارد مربوط به کلاسترینگ از لایه application به JVM است. Terracotta for Spring یک Framework برای سیستم های مبتنی بر Spring framework است که کلاسترینگ با کارایی بالا و شفاف، بدون نیاز به کوچکترین تغییری در کد را فراهم می کند. به وسیله آن می توان یک Single node application ایجاد کرده و سپس اشیای مورد نظر برای توزیع در کلاستر را در فایل تنظیمات معرفی نمود. Terracotta خود ادامه پروسه را هندل خواهد کرد.

منبع | بررسی ویژگی های محصول | دانلود نرم افزار

 

مقدمه ای بر Grid Computing

مقدمه ای بر Grid Computing

Grid Computing :

بک شبکه از کلیه قابلیتهای سخت افزاری و نرم افزاری موجود که به صورت یک سیستم جامع و کامل در خدمت مؤسسات تجاری و سازمانهاست تا بدین وسیله حداکثر استفاده را از این منابع ببرند.

Grid Computing بک تکنولوژی جدید IT است که عکس العمل سریعتر با هزینه کمتری را در مورد سیستمهای اطلاعات مؤسسات تجاری و حرفه ای ارائه می کند.

با وجود Grid Computing بنا به تقاضا و جهت برآورده ساختن تغییرات مورد نیاز مؤسسات تجاری و سازمانها ، گروهای مستقل از سخت افزارها و اجزاء نرم افزاری می توانند به این شبکه متصل شده و به ارائه سرویسهای مورد نظر کمک کنند.

شیوه و روش Grid Computing هدفگیری و حل مشکلات معمول IT در مؤسسات تجاری و سازمانهاست از قبیل :

* انباری از برنامه های کاربردی بلا استفاده

* منابع سخت افزاری مستقل برای آنها

* مشکل یکپارچه سازی آنها

* سیستهای سنگینی که هم نگهداری آنها گران است و هم اعمال تغییرات در آنها در بعضی اوقات خیلی مشکل است

* مسئله تکه تکه شدن و از هم پاشیده شدن اطلاعات که مؤسسه نمی تواند اطلاعات جامع و کامل را بهره برداری کند

مزایای Grid Computing :

در مقایسه با دیگر مدلهای Computing ازقبیل Mainframe ، Client/Server یا چند لایه ای (Multi-tier)، هدف سیستمهای طراحی شده و پیاده سازی شده در روش -Grid Computing(در حوزه IT) ، کیفیت بالای سرویسها ، هزینه کمتر و انعطاف پذیری بیشتر است.

کیفیت بالای سرویسها نتیجه نداشتن نقاط خطای منفرد ، زیرساخت امنیت مستحکم و متمرکز و مدیریت سیاستهای اعمال شده می باشد. هزینه پایین نیز ناشی از افزایش بهره وری از منابع و به طور قابل توجه کاهش هزینهای مدیریت و پشتیبانی است.

تخصیص منابع سخت افزاری و نرم افزاری به یک وظیفه خاص ، منجر به از بین رفتن ظرفیتهای بهره وری و قابلیتها می گردد.Grid Computing امکان استفاده از اجزاء سخت افزاری خاص کوچکتر را فراهم می سازد.بدین وسیله هزینه هر جزء خاص کاهش یافته و انعطاف پذیری بیشتری جهت تخصیص منابع بر مبنای تغییر نیازها را فراهم می کند.

تعیین و تعریف Grid Computing :

شیوه و روش Grid Computing رفتارکردن با مجموعه ای از منابعIT یکسان در حالت کلی به عنوان یک مخزن و انبار واحد ، و بهره برداری کردن از هر یک از این منابع به عنوان یک نوع مجزا و متمایز می باشد.

برای رفع مسائل و مشکلات سیستمهای یکپارچه بهمراه منابع پراکنده ، Grid Computing بک تعادل بین مزایای مدیریت منابع در دید کلی از یک سو و کنترل هر یک از منابع بطور انعطاف پذیر از سوی دیگر، برقرار می کند.

که این منابع مدیریت شده در Grid Computing عبارتند از :

* زیرساخت : مجموعه ای از سخت افزارها و نرم افزارها که محیطی را جهت ذخیره داده ها و اجرای برنامه ها فراهم می کنند.

* برنامه های کاربردی : که منطق و جرایان فرآیندهای خاص مؤسسات را تعریف می کنند.

* اطلاعات : مفاهیم اصلی در مدیریت تجارت.

اصول هسته Grid Computing :

دو اصل در هسته Grid Computing آنرا به طور منحصربفردی از دیگر روشهای Computing ازقبیل Mainframe ، Client/Server یا چند لایه ای (Multi-tier) متمایز می سازد : مجازی سازی و تأمین.

* با مجازی سازی ، منابع خاص (مانند رایانه ها ، دیسکها ، اجراء نرم افزاری و منابع اطلاعاتی) به عنوان منابع درهم آمیخته و مشترک جهت دسترسی مصرف کنندگان (از قبیل افراد و برنامه های نرم افزاری) بطور انتزاعی در نظر گرفته می شود.مجازی سازی یعنی شکستن اتصالاتی که بسختی بین ارائه کننده و مصرف کننده (مشتری) منابع برقرار شده است و مهیا ساختن منابع برای سرویس دهی به نیازهای خاص ، بدون اینکه مشتری نگران چگونگی انجام آن باشد.

* تأمین یعنی اینکه ، وقتی مشتری از طریق لایه مجازی سازی نیاز به منبع خاصی دارد ، در پشت پرده ، آن منبع جهت انجام در خواست ،شناسایی شده و به مشتری تخصیص داده شود.تأمین بعنوان بخشی از Grid Computing به این معنی است که سیستم تعیین می کند چگونه نیاز مشتری را برآورده سازد در حالیکه عملیات در کل ، به صورت بهینه انجام شود.

برای نمونه می توان از Oracle 10g به عنوان تنها DBMS پیشتاز در این زمینه یاد کرد.

 

بررسی سیستم عامل Windows Server 2003

بررسی سیستم عامل Windows Server 2003

همانطور که میدانید نسخه بعدی سیستم عامل سرور مایکروسافت که Windows Server 2003 نام دارد تولید و به بازار عرضه شده است. خیلی از کاربران از نسخه بتای این سیستم عامل با نام Windows .NET Server 2003 استفاده کرده بودند. مایکروسافت از چندی پیش نسخه نهایی را برای تست، در اختیار شرکتهای معتبر قرار داده بود. مایکروسافت در دو زمینه سیستم عامل های سرور و خانگی فعالیت دارد و پروژه ویندوز Longhorn (برای استفاده خانگی) به قوت خود باقیست. گویا انتخاب نام برای این سیستم عامل از طریف مایکروسافت بسیار دشوار بود زیرا ابتدا به اسم Whilstler معرفی شد و سپس به Windows 2002 Server تغییر نام داده شد ولی با ایجاد تکنولوژی .NET مایکروسافت به فکر استفاده از این نام تجاری در سیستم عامل خود افتاد و نام آن به Windows .NET Server 2003 تغییر یافت، که نسخه بتا نیز به همین نام به بازار عرضه شد، ولی در نهایت با تغییر نام به Windows Server 2003 به زودی به بازار جهانی ارائه خواهد شد. البته مایکروسافت اعلام کرده که با تغییر مکرر نام این محصول، هیچ تغییری در ساختار آن ایجاد نشده است.

حداقل سیستم مورد نیاز برای نصب:
سیستم عامل Windows Server 2003 در 4 نسخه به نامهای Standard – Enterprise – DataCenter و Web ارائه خواهد شد. در ادامه به بررسی خصوصیات و حداقل سخت افزار مورد نیاز برای هر نسخه از این سیستم عامل میپردازیم، در ضمن توجه داشته باشید که هیچگاه به حداقل ها بسنده نکنید و همیشه برای کارایی بهتر سیستم از قطعات مناسب تر و قویتری استفاده نمایید.

نسخه Web :
این نسخه برای مصارف سرورهای کوچک و همچنین خانگی به کار میرود و هدف اصلی آن فراهم نمودن Web Hosting برای وب سایتها و سرویس های وب با استفاده از IIS 6 میباشد. حداقل قطعات مورد نیاز برای نصب آن به شرح زیر میباشد :
1- حداقل CPU مورد نیاز 133 MHz میباشد ولی پیشنهاد میشود از 550 MHz کمتر نباشد.
2- حداقل Ram مورد نیاز 128 MB میباشد ولی پیشنهاد برای کارایی بهتر 256 MB میباشد و حداکثر Ram قابل پشتیبانی در این نسخه 2 GB است.
3- مقدار فضای خالی لازم بر روی هارددیسک 1.5 GB است.
4- قابلیت پشتیبانی تا 2 عدد CPU بطور همزمان بصورت (Multi Processor).
نسخه Web این سیستم عامل 32 بیتی میباشد و قیمت آن 397$ است.

نسخه Standard :
این نسخه نیز 32 بیتی میباشد. برای استفاده از Client ها در این سیستم عامل Lincense های مختلفی وجود دارد. در صورتی که مایل به نصب 5 کامپیوتر Client در شبکه ای باشید که Server آن، این نسخه است میبایست نسخه ای به مبلغ 999$ پرداخت نمایید. مبلغ برای 10 عدد License نیز 1199$ میباشد. برای دریافت License بالاتر از این مقدار برای هر 5 عدد میبایست مبلغ 199$ پرداخت شود. در نظر داشته باشید که ممکن است کسی در کشور ما مبالغی برای License این سیستم عامل پرداخت نکند ولی توجه داشته باشید که سرورهای معتبر روی اینترنت در کشورهای صنعتی قرار دارند و قانون Copy Right برای همه آنها به دقت رعایت میشود. حداقل قطعات مورد نیاز برای نصب نسخه Standard ، دقیقا شبیه نسخه Web میباشد، با این تفاوت که در این نسخه قادر به استفاده از 4 عدد CPU بطور همزمان میباشید.

نسخه Enterprise :
این نسخه حرفه ای، برای سرورهای بزرگ در نظر گرفته شده که قیمت آن 3999$ و دارای 25 عدد License میباشد که به آن CALs (Client Access Lincences) نیز گفته میشود. این نسخه در دو سری 32 و 64 بیتی عرضه میشود و نکته مهم این است که نسخه 64 بیتی این سیستم عامل فقط با CPU های Intel Itanium و Athlon 64 (که به زودی ارائه خواهد شد) سازگار است و در سیستمهایی با CPU های 32 بیتی بطور کامل نصب نخواهند شد و کاربران را دچار مشکل خواهد کرد. حداقل قطعات مورد نیاز برای نصب آن به شرح زیر میباشد :
1- حداقل CPU مورد نیاز 133 MHz در نسخه 32 بیتی و 733 MHz در نسخه 64 بیتی میباشد.
2- حداقل Ram مورد نیاز 128 MB میباشد ولی پیشنهاد برای کارایی بهتر 256 MB میباشد و حداکثر Ram قابل پشتیبانی در این نسخه 32 بیتی 32 GB و در نسخه 64 بیتی 64 GB است.
3- مقدار فضای خالی لازم بر روی هارددیسک در نسخه 32 بیتی 1.5 GB و در نسخه 64 بیتی 2.0 GB است.
4- قابلیت پشتیبانی تا 8 عدد CPU بطور همزمان.

نسخه DataCenter :
این نسخه کارآمدترین و پرقدرت ترین نسخه این سیستم عامل میباشد که مانند Enterprise دارای 2 سری 32 بیتی و 64 بیتی میباشد. حداقل قطعات مورد نیاز برای نصب آن به شرح زیر میباشد :
1- حداقل CPU مورد نیاز 400 MHz در نسخه 32 بیتی و 733 MHz در نسخه 64 بیتی میباشد.
2- حداقل Ram مورد نیاز 512 MB میباشد ولی پیشنهاد برای کارایی بهتر 1 GB میباشد و حداکثر Ram قابل پشتیبانی در این نسخه 32 بیتی 64 GB و در نسخه 64 بیتی 128 GBاست.
3- مقدار فضای خالی مانند نسخه Enterprise میباشد.
4- برای استفاده از این نسخه حداقل میبایست از 8 عدد CPU بطور همزمان استفاده شود و حداکثر تا 32 عدد CPU را نیز پشتیبانی میکند.

مشکلاتی در پشتیبانی Multi Processer :
طبق گزارش شرکتهای تست کننده این سیستم عامل ، سیستمهایی که بصورت Multi Processor باشند و یکی از CPU های این سیستمها از نوع Pentium II یا Pentium Pro باشد، سیستم دچار مشکلاتی خواهد شد و تنها قادر به استفاده از یک CPU میباشد.
مایکروسافت با تایید این مشکل اعلام کرد که تنها راه حل در جهت رفع آن ارتقای CPU میباشد. پس بهتر است قبل و بعد از نصب این سیستم عامل، تمامی قطعات سیستم را مورد بررسی قرار دهید. هنگام نصب در اولین صفحه Setup ، گزینه ای با عنوان Check System Compatibility وجود دارد که با انتخاب این گزینه و سپس گزینه Check my system automaticaly میتوانید قبل از نصب، سیستم خود را از نظر حداقل سخت افزار مورد نیاز مورد بررسی قرار دهید.

بررسی اجزای داخلی :
مراحل نصب این سیستم عامل شبیه Windows 2000 میباشد، البته گزینه های کاربردی زیادی از جمله Dynamic Update که قادر است Update این ویندوز و Driver های مورد نیاز را بصورت Online از سایت مایکروسافت دریافت کند وجود دارد. بر روی تمام نسخه های این سیستم عامل .NET Framework نسخه 1.1 و همچنین وب سرور IIS 6.0 که ASP .NET را بطور کامل پشتیبانی میکند قرار دارد (در ادامه همین مقاله به بررسی بیشتر IIS خواهیم پرداخت). با رشد Web Service ها در دنیای امروزه و نیاز شدید به آنها در آینده ای نه چندان دور، مایکروسافت ابزارهای مختلفی برای گسترش دادن این سرویس ها در Windows Server 2003 قرار داده است. سرویسهای وب در محصولات مایکروسافت با ایجاد .NET گسترش یافته و بطور کل از طریق پروتوکول SOAP ارتباط برقرار میکنند. از جمله ابزار اضافه شده به این سیستم عامل Enterprise UDDI Services میباشد که در نسخه Web این سیستم عامل قرار داده نشده است. این ابزار مربوط به گسترش دادن Web Service های مختلف میباشد و تعامل بین آنها را فراهم میکند.
امکان دیگری با عنوان VPN (Virtual Private Network) نیز در تمامی نسخه های این سیستم عامل قرار دارد، البته در نسخه Web بصورت ناقص پشتیبانی میشود، این امکان قبلا در ویندوز XP ارائه شده بود. از دیگر تغییراتی که در این سیستم عامل قرار گرفته، آمادگی برای تغییر نسخه IP از 4 به 6 میباشد که در ادامه همین مقاله به بررسی نسخه های IP و تفاوت این دو خواهیم پرداخت. برای بررسی امنیت کاربران از راه دور نیز، Microsoft Passport در داخل سیستم عامل قرار گرفته است. Firewall یکی از ابزارهای الزامی در ارتباطات اینترنتی امروزه میباشد. برای امنیت داده ها ابزاری با نام ICF (Internet Connection Firewall) در تمامی نسخه های این سیستم عامل به غیر نسخه DataCenter قرار داده شده که این ابزار در Windows XP نیز وجود داشت که البته از کارایی چندانی برخوردار نبود ولی در ICF موجود در Windows Server 2003 تمامی مشکلات مربوط به این ابزار رفع شده و از کارایی بالایی برخوردار است. همانطور که میدانید Active Directory که یکی از اصلی ترین قسمتهای ویندوز سرور میباشد که در این نسخه از ویندوز تغییرات زیادی داشته که در ادامه همین مقاله بطور مختصر به بررسی مزایا و قسمتهای اضافی جدید آن خواهیم پرداخت. از جمله امکانات دیگر اضافه شده به Windows Server 2003 میتوان به این موارد اشاره کرد: پشتیبانی از استاندار 802.1x که مربوط به شبکه های بی سیم و یکی اس استانداردهای IEEE میباشد. تنظیمات خودکار در ارتباط چندین شبکه و همچنین پشتیبانی از Kerberos نسخه 5 و قابلیتی برای نصب سیستم عامل از راه دور.

تفاوت IP 4 و IP 6 :
ساختار اینترنت در حال تغییر است. اینترنتی که ما امروزه مصرف میکنیم Internet 1 میباشد ولی به زودی نسل جدید اینترنت که Internet 2 یا Grid Technology نام دارد جای آن را خواهد گرفت. پروژه اینترنت 2 در اختیار چندین کشور و شرکتهای بزرگی میباشد. اولین تغییری که در این دو نسل اینترنت مشاهده میشود تغییر ساختار IP است. همانطور که میدانید نسخه IP های فعلی در اینترنت 4 است و از نوع 32 بیتی (4 عدد 8 بیتی) میباشد، ولی IP های نسل جدید نسخه 6 (IPv6) میباشند که در حال حاضر Windows Server 2003 در تمام نسخه های خود آن را پشتیبانی میکند. همانطور که میدانید هر کامپیوتر در اینترنت میبایست دارای یک IP یکتا و منحصر بفرد باشد که در حال حاضر با رشد اینترنت تعداد IP هایی که IP نسخه 4 پشتیبانی میکند رو به اتمام است، از طرف دیگر Ipv4 تمام مقاصد امنیتی مورد نیاز را پوشش نمیدهد از این رو IPv6 که 128 بیتی میباشد به زودی جای IPv4 را خواهد گرفت.

مشکلاتی در استفاده از SQL Server :
نکته قابل توجه در استفاده از بانک اطلاعاتی SQL Server وجود دارد. هنگام Upgrade ویندوز 2000 به Windows Server 2003 در نظر داشته باشید که حتما میبایست SQL Server 2000 و همچنین MSDE 2000 به همراه Service Pack 3 قبلا نصب شده باشد و سپس اقدام به Upgrade سیستم عامل نمایید، در غیر اینصورت SQL Server دچار مشکل خواهد شد.
همچنین SQL Server 7 و MSDE 1.0 در این سیستم عامل پشتیبانی نمیشود. توجه داشته باشید که MSDE 2000 به همراه نرم افزارهای بسته Visual Studio و حتی خود SQL Server 2000 قابل نصب میباشد. اگر از سیستم عامل ویندوز 2000 که دارای SQL Server میباشد ولی SP3 به روی آن نصب نشده است اقدام به Upgrade ننمایید.

مزایای Active Directory در Windwos Server 2003 :
Active Directory در نسخه جدید ویندوز، 2 هدف اصلی را به شرح زیر دنبال میکند :

1- مدیریت و گسترش راحتتر :
2- در نسخه جدید ویندوز ، قابلیت و مدیریت Administrator ها حتی در محیطهای خیلی بزرگ توزیع شده با درختها ، دامنه ها و سایتهای فراوان، آسان شده است. یکی از ابزارهای مفید در این بخش، ADMT 2.0 (Active Directory Migration Tool) نام دارد که اجازه انتقال پسوردها از ویندوز NT یا 2000 به Windows Server 2003 را به شما میدهد. همچنین مدیران سرور قادر به تغییراتی در درختها ، دامنه ها و همچنین NetBios و DNS میباشند. مدیران سیستم به راحتی میتوانند ساختار Active Directory را که گسترش داده اند به دلخواه خود و بدون بروز مشکلی تغییر دهند.

3- امنیت بالاتر :
4- امنیت Active Directory نیز به مراتب، از ویندوز 2000 قویتر شده است. در نسخه جدید، مدیریت آسان بر اعتماد چندین درخت به یکدیگر به راحتی فراهم میشود که با استفاده از آن عمل Authentication به راحتی انجام خواهد شد. در این روش کاربران به راحتی و بدون نگرانی از عمل Login و وارد کردن ID و پسورد، قادر به استفاده از منابع درختهای دیگر در یک ساختار درختی Active Directory میباشند. این کار از طریق Kerberos و یا NTLM انجام میگیرد. همچنین نرم افزار Restriction Policies در بخش امنیت Active Directory وجود دارد که Admin را قادر میسازد که از نصب نرم افزارهای ناشناخته و غیراعتماد جلوگیری به عمل آورد و فقط برنامه های خاصی به روی سرور قابل نصب و اجرا باشند.

Windows Server Catalog چیست ؟
با استفاده از این ابزار در Windows Server 2003 ، کاربران با متصل شدن از طریق اینترنت به سایت مایکروسافت، قادر به ارسال مشخصات قطعات سخت افزاری دستگاه خود و همچنین نرم افزارهایی که به خوبی با ویندوز سازگار است میباشند. این ابزار شباهت زیادی به Windows XP Catalog دارد. این عمل دارای مزایای زیادی میباشد که به بررسی آن میپردازیم.
همانطور که میدانید خیلی از نرم افزارها و سخت افزارهای مختلف در دنیا با سیستم عاملهای گوناگون سازگار نیست. با این حرکت هر زمان که مشکلی در ویندوز و یا نرم افزار خاصی به وجود آید، مایکروسافت تمامی اطلاعات مربوط به دلایل Crash شدن را در فایلی ذخیره میکند و به محض اولین تماس با اینترنت به سایت خود ارسال خواهد کرد. شما با نصب Windows Server Catalog قادر به ملاحظه لیستی از تمامی گزارشها و مشکلات ویندوز خواهید شد.
این لیست توسط افراد مختلف در سراسر جهان به سایت مایکروسافت ارسال شده است. مایکروسافت نیز برای رضایت مشتری، مشکل مورد نظر را بررسی کرده و در Service Pack ها و یا نسخه های بعدی ویندوز رفع خواهد کرد، زیرا مایکروسافت به تنهایی نمیتواند تمام نرم افزارها و سخت افزارهای دنیا را در محصولاتش تست نماید و این عمل باعث رشد کیفیت سیستم عاملهای این شرکت خواهد شد. برای دستیابی به لیست نرم افزارها و سخت افزارهای ناسازگار با ویندوز XP و Windows Server 2003 یا میتوانید مستقیما به سایت مایکروسافت مراجعه نمایید و یا از طریق منو Start در خود ویندوز به این ابزار دسترسی داشته باشید.

 

سل پروسسور، با 9 هسته، سوپرکامپیوتری روی چیپ

سل پروسسور، با 9 هسته، سوپرکامپیوتری روی چیپ

سه شرکت آی بی ام، سونی و توشیبا بعد از چهار سال کار تحقیقاتی و آزمایشگاهی موفق به ساخت میکروپروسسوری شدند که با قابلیت داشتن چندین هسته میتواند گوی رقابت را از غولهای این صنعت یعنی اینتل و ای ام دی با پروسسورهایی فقط با دو هسته، ربوده و جای خود را در دستگاههای بازی پلی استیشن 3 باز نماید.

محققین شرکتهای IBM و Sony Computer Entertainment Incorporated یا همان SCEI و Toshiba بعد از مدتها انتظار برای پروسسور سل یا Cell Processor بالاخره آنرا با قابلیت چند هسته ای بعنوان موتور بازیهای مالتی ترید و سوپرکامپیوتری روی یک چیپ ارائه کردند.

این شرکتها میگویند که سل Cell، همان پروسسوری است که قرار است در کنسول بازی کامپیوتری پلی استیشن بکار گرفته شود. قابلیت این پروسسور ده بار از پروسسور کامپیوترهای امروزی بالاتر است.

چیپ نمونه ای که بعنوان سل معرفی شد شامل یک هسته از پروسسور پاورپی سی PowerPC و تعداد هشت هسته مجزای پردازشی است که شرکتهای فوق بدان نام SPEs و یا Synergistic Processing elements داده اند.

 

 

GRID آرمانی فراتر از دهکده جهانی

GRID آرمانی فراتر از دهکده جهانی

با توجه به اين که در حال حاضر سوپر رايانه ها جزو فناوري هايي محسوب مي شوند که ما از آنها محروم هستيم بنابراين گريد گزينه بسيار خوبي براي پژوهشگران ما محسوب مي شود. به اين ترتيب و با شرکت در طرحهاي مختلف حتي مي توان از سوپررايانه هاي متعدد استفاده کنيم.

استفاده از اين سيستم تا به حال در دنيا شروع شده است؟
در حال حاضر ، هر کشوري در اروپا و بعضي کشورهاي آسيايي مانند چين درصدد توسعه گريد داخلي و اتصال به دهکده جهاني گريد هستند و ايران هم بايد به طراحي نرم افزار و زيرساختار گريد داخلي خود اقدام کند. در حال حاضر ، اگر چه تنها يک شبکه اينترنت در سطح جهان مطرح است گريدهاي مختلف ملي ، بين کشوري و يا قاره اي وجود دارند و در حال رشد هستند و در اين شرايط وجود سازمان هاي مجازي مطرح مي شود که براي حل مساله از منابع انساني ، رايانه ها ، داده هايي که از طريق آزمايشگاه ها توليد مي شوند ، استفاده مي کنند. بيشتر کشورهاي   امريکا ، چين ، پاکستان ، تايلند ، سنگاپور و... تاکنون به صورت ملي و يا طرحي در گريدهاي مختلف شرکت داشته اند.

چه تفاوت و شباهتهايي ميان شبکه اينترنت و سيستم گريد وجود دارد؟
شبکه اينترنت اطلاعات پردازش شده را در اختيار مردم مي گذارد ولي گريد اطلاعات خام و توان محاسباتي ، سنسورها و دستگاه هاي آزمايشگاهي را و در واقع گريد اينترنت را از يک محيط ساکن به يک محيط قابل برنامه ريزي و پويا تبديل مي کند. به عبارتي ديگر، فناوري گريد بر خلاف وب که سرويسي براي مبادله اطلاعات در اينترنت است ، سرويس نرم افزاري براي به اشتراک گذاردن توان محاسباتي و فضاي ذخيره داده ها بين رايانه هاي متصل به اينترنت است و هدف نهايي آن هم ايجاد يک شبکه وسيع جهاني محاسباتي و اطلاعاتي است.
گريد در واقع سرويسي جديد است که روي اينترنت سوار مي شود و به اين ترتيب مي توان اطلاعات خامي را که تنها دانشمندان براي تبادل اطلاعات به آن نيازمند هستند در بستر اينترنت انتقال داد.

aa

پس تنها متخصصان و دانشمندان از گريد استفاده مي کنند. آيا ممکن است در آينده اي نزديک مردم عادي هم از محاسن آن بهره مند شوند؟
پيش بيني مي شود همان طور که اينترنت در زندگي مردم نقش داشته ، گريد هم نقش بسزايي داشته باشد.در واقع در آينده و در جهت پيامدهاي اين فناوري مردم مي توانند از طريق اينترنت ، توان محاسباتي رايانه خود را از طريق شرکتهاي کارگزار در معرض اجاره قرار دهند و افرادي که نياز به اين توان محاسباتي دارند آنها را اجاره کنند. به اين ترتيب ، سرويس هاي گريد که روي اينترنت قرار مي گيرند ، تا چند سال آينده يکي از تکنولوژي هاي مطرح دنيا خواهند شد.

شما براي گسترش سيستم گريد در کشور چه اقداماتي را انجام داده ايد و آيا مي توان از اين طريق بخشهاي ديگر تجاري ، اقتصادي و... از مزاياي آن استفاده کنند.
بايد در ابتدا گريد در داخل کشور معرفي شود و در انتها پس از جاافتادن اهميت مساله گريد ملي راه اندازي شود. با اتصال دانشگاه هاي کشور به گريد از طريق پژوهشگاه دانشهاي بنيادي به نوعي به گريد ملي دست خواهيم يافت.
البته اقدامات ما همگي در خصوص e-science و در جهت گسترش ارتباطات علمي و پژوهشي است. در واقع ما تنها سرويس هاي اينچنيني را به کاربران مي دهيم.

da

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

منبع : www.jamejamonline.com

 

سونى و آى بى ام ، ساخت تراشه ۴ گيگاهرتزى را آغاز مى کنند

سونى و آى بى ام ، ساخت تراشه ۴ گيگاهرتزى را آغاز مى کنند

به نظر مى رسد، سونى و آى بى ام به زودى ساخت تراشه ۴ گيگاهرتزى خود را پس از سه سال همکارى و تحقيق آغاز خواهند کرد.

، سونى، آى بى ام و توشيبا قرار دادى چند ساله در رابطه با توسعه فناورى نيمه رساناها براى دستيابى به سرعت بالاتر و مصرف انرژى کمتر امضا کردند که حاصل آن ، همين تراشه ۶۴ بيتى Cell(باطرى) مى باشد.
سونى اعلام کرده است که از Cellدر سيستم هاى تلويزيونى پيشرفته و نيزسرورهاى خانگى استفاده خواهد کرد. نام Cellاز طرح جديد آى بى ام يعنى Grid computingيا پردازش شبکه اى مشتق شده است ، هدف اين طرح ، حداکثر استفاده از قابليت هاى زياد و البته نامتمرکز پردازش در اينترنت است و سرورهاى خانگى در واقع يکى از همين راهکارهاى استفاده از قدرت نامتمرکز مى باشند.
آى بى ام و سونى اظهار داشته اند که آماده سازى اين تراشه براى پلى استيشن ۳ ، حدود۴۰۰ ميليون دلار هزينه در بردارد اما در عوض ، پلى استيشن ۳ ديگر نيازى به خواندن اطلاعات از دى وى دى نداشته و بازى هاى خود را از شبکه دانلود خواهد کرد.
بدين ترتيب دستگاه هاى الکترونيکى به کمک اين تراشه قادر خواهند بود تا ابر رايانه Blue IBM Deepرا نيز پشت سر بگذارند.

 

Multithreading در VB

Multithreading در VB

برای پیاده سازی چند ریسمانی در ویژوال بیسیک می توانید از مقاله زیر استفاده نمایید

لینک دانلود : >>>     http://salimipour.ir/Multithreading.pdf

 

سايت‌های مربوط به برنامه‌نويسی در محيط لينوكس

سايت‌های مربوط به برنامه‌نويسی در محيط لينوكس

در اين پست برخی منابع آنلاين برنامهنويسی در لينوكس را معرفی میكنيم. اين منابع بر اساس موضوعات مختلف برنامهنويسی دستهبندی شدهاند.

مطالب عمومی در مورد برنامهنويسی در لينوكس

http://www.tldp.org/LDP/lpg/index.html

راهنمای برنامهنويسی در لينوكس.

 

http://www.newriders.com/books/opl/ebooks/0735710430.html

يك كتاب جامع و مفيد برای برنامهنويسان حرفهای لينوكس.

http://www.luv.asn.au/overheads/prog

 مقدماتی در مورد برنامهنويسی در محيطهای لينوكس و يونيكس.

http://members.tripod.com/rpragana

 يادداشتهای يك برنامهنويس لينوكس با عنوان رويدادهای برنامهنويسی لينوكس.

http://tldp.org

مجموعهای از لينكها به منابع برنامهنويسی در لينوكس.

 

برنامهنويسی به زبان اسمبلی

http://linuxassembly.org

مجموعهای از منابع و راهنماها برای نوشتن برنامههای اسمبلی در محيط سيستمعاملهای خانواده يونيكس.

 

http://x86.ddj.com/secrets/intelsecrets.htm

دانستنیهايی در مورد پردازندههای اينتل و برنامهنويسی اسمبلی روی آنها.

 

http://tldp.org/HOWTO/Assembly-HOWTO/index.html

 راهنمای برنامهنويسی اسمبلی در محيط لينوكس.

http://burks.bton.ac.uk/burks/language/asm/asmtut/asm1.htm

راهنمايی برای اسمبلی ماشينهای 80x86

http://www.xs4all.nl/~smit/asm01001.htm

راهنمای برنامهنويسی اسمبلی 8086

 

برنامهنويسی در زمينه رمزنگاری

http://www.kerneli.org

يك API برای رمزنگاری اطلاعات در لينوكس.

http://www.openssl.org

برنامه سورس-آزاد OpenSSL برای انتقال امن اطلاعات.

 

پايگاههای داده

http://www.sleepycat.com

 پايگاهداده سورسآزاد دانشگاه بركلی.

http://www.mysql.com

پايگاهداده معروف و پرطرفدار mysql .

http://www.postgresql.org

 پايگاهداده PostgreSQL .

 

برنامهنويسی توزيعشده (Distributed)

http://linas.org/linux/corba.html

منابعی در مورد پيادهسازی استاندارد CORBA در لينوكس.

http://www.mico.org

پيادهسازی MICO از استاندارد CORBA .

http://www.dotgnu.org

ديدن اين سايت را به علاقهمندان تكنولوژی .NET توصيف میكنيم.

http://www.go-mono.org

اين سايت نيز تلاش دارد يك زيرساخت برای توليد برنامههای .NET ايجاد كند.

 

ويرايشگرهای با پشتيبانی زبانهای برنامهنويسی

http://www.gnu.org/software/emacs

ويرايشگر معروف Emacs. در مورد اين ويرايشگر در شمارههای آينده مطلبی خواهيم داشت.

http://nedit.org

يك ويرايشگر گرافيكی برای ويرايش فايلها در محيط لينوكس.

http://www.vim.org

ويرايشگر بینظير VIM. اين ويرايشگر را نيز در آينده بيشتر معرفی خواهيم كرد.

 

برنامهنويسی بازیها

http://lgdc.sunsite.dk

سايتی برای برنامهنويسان بازیها در لينوكس.

http://game.ncl.ac.uk

صفحهای متعلق به بازینويسان در محيط X11 .

 

برنامهنويسی در محيط GNOME

http://developer.gnome.org

سايت اصلی برنامهنويسان در محيط Gnome

 

برنامهنويسی KDE در لينوكس

http://developer.kde.org

سايت برنامهنويسان KDE

http://www.ph.unimelb.edu.au/~ssk/kde/devel

سايتی ديگر برای برقراری ارتباط ميان برنامهنويسان KDE

 

برنامهنويسی گرافيكی در لينوكس

http://www.faqs.org/faqs/graphics/fileformats-faq

منبعی در مورد فرمت فايلهای گرافيكی.

http://www.mesa3d.org

سايت پروژه Mesa كه در شمارههای گذشته معرفی شد.

http://www.inria.fr/koala/lehors/xpm.html

اطلاعاتی در مورد فرمت XPM و كتابخانهای برای كار با اين فرمت.

 

برنامهنويسی روی سختافزارها

http://en.tldp.org/HOWTO/mini/IO-Port-Programming.html

معرفی روشهای برنامهنويسی پورتهای I/O در لينوكس.

http://en.tldp.org/HOWTO/SCSI-Programming-HOWTO.html

روشهای برنامهنويسی SCSI (اسكازي) در محيط لينوكس.

http://en.tldp.org/HOWTO/Serial-Programming-HOWTO/index.html

روشهای برنامهنويسی روی پورت سريال در لينوكس.

 

برنامهنويسی IPC: InterProcess Communication

http://www.ecst.csuchico.edu/~beej/guide/ipc

منبعی خوب برای برنامهنويسی IPC

 

IDEهای لينوكس

http://anjuta.sourceforge.net

پروژه Anjuta كه در شمارههای بعدی بيشتر معرفی خواهد شد.

http://www.kdevelop.org

محيط برنامهنويسی ويژوال كه در آينده به تفصيل معرفی خواهد شد.

http://starship.python.net/crew/zack/ptui

واسط كاربری برای برنامهنويسی Python/Tkinter

http://www.rhide.com

يك IDE برای نوشتن برنامه به زبانهای C، C++ و پاسكال.

http://www.neuron.com/stewart/vtcl

يك IDE ويژوال برای برنامهنويسی TCL .

 

برنامهنويسی جاوا

http://leb.net/freebuilder

يك پروژه برای ايجاد يك IDE برای برنامهنويسی جاوا در محيط لينوكس.

http://www.japhar.org

اين پروژه در پی ايجاد يك مفسر مستقل از محيط (Portable Interpreter) برای بايتكدهای جاوا است. .

http://developer.java.sun.com/developer

سايتی برای برقراری ارتباط ميان برنامهنويسان جاوا.

http://www.blackdown.org

منبعی برای برنامهنويسی جاوا در محيط لينوكس.

http://www.kaffe.org

يك پيادهسازی سورسآزاد از ماشين مجازی جاوا.

 

زبانهای برنامهنويسی

http://www.vaxxine.com/pegasoft/homes/book.html

يك كتاب آنلاين كامل درباره زبان برنامهنويسی Ada

http://gcc.gnu.org

سايت اصلی كامپايلر GCC (در شمارههای بعد معرفی خواهد شد).

http://gnu-pascal.de

سايت زبان پاسكال در محيط لينوكس

http://www-aig.jpl.nasa.gov/public/home/decoste/HTMLS/GNU/smalltalk/mst_toc.html

راهنمای برنامهنويسی SmallTalk در محيط لينوكس

 

كتابخانههای برنامهنويسی

http://www.gnu.org/manual/glibc-2.2.3/libc.html

راهنمای استفاده از GNU libc

http://www.imaxx.net/~thrytis/glibc/glibc-FAQ.html

در مورد كتابخانه GNU libc

http://en.tldp.org/HOWTO/NCURSES-Programming-HOWTO/index.html

راهنمای برنامهنويسی با استفاده از كتابخانه Ncurses كه در شمارههای بعدی بيشتر معرفی خواهد شد.

http://www.s-lang.org

يك كتابخانه برای كمك به برنامهنويسان در نوشتن برنامههای قابل انتقال

http://pauillac.inria.fr/~xleroy/linuxthreads

كتابخانهای برای برنامهنويسی Thread در لينوكس

 

برنامهنويسی مولتیمديا در لينوكس

http://leapster.org/linux/cdrom

برنامهنويسی روی CD Drive در لينوكس.

http://www.libsdl.org

كتابخانه SDL كه در شمارههای قبل معرفی شد.

 

برنامهنويسی شبكه

http://www.lowtek.com/sockets

 سايتی مناسب برای يادگيری برنامهنويسی شبكه در سيستمعاملهای مختلف.

http://www.ecst.csuchico.edu/~beej/guide/net

راهنمای برنامهنويسی شبكه.

http://www.landfield.com/faqs/unix-faq/socket

FAQ در مورد سوكتهای يونيكسی كه روشی پركاربرد برای برنامهنويسی شبكه در لينوكس است.

 

برنامهنويسی سيستمعامل

http://en.tldp.org/LDP/lki/index.html

دانستنیهايی در مورد پيادهسازی نگارش 2.4 از هسته لينوكس.

http://www.ora.com/catalog/linuxdrive

: Device Driverهای نوشته شده برای محيط لينوكس.

http://www.linuxhq.com/guides/TLK/tlk.html

كتابی خواندنی و ساده در مورد هسته لينوكس.

http://www.linuxhq.com/guides/LPG/lpg.html

راهنمايی برای برنامهنويسی در محيط لينوكس.

http://en.tldp.org/LDP/lkmpg/mpg.html

راهنمايی برای نوشتن ماجولهای هسته در لينوكس. در مورد ماجولها و نحوه نوشتن آنها در شمارههای آينده بيشتر خواهيم گفت.

http://leapster.org/linux/kernel

پروژه مستندسازی هسته لينوكس كه میتواند به برنامهنويسان هسته لينوكس در فهم كد آن كمك كند.

 

سايتهای مخصوص برنامهنويسان لينوكس

http://programmers.luv.asn.au

سايت برنامهنويسان LUV

http://www.pm.org

سايت برنامهنويسان Perl

 

قالبهای برنامهنويسی (Coding Style)

http://www.coker.com.au/~russell/ccode

 توصيههای در مورد قالب نوشتن برنامههای C .

http://www.purists.org/linux

معرفی قالب به كار رفته برای نوشتن كد هسته لينوكس .

http://www.ee.ryerson.ca:8080/~elf/hack/The10.html

ده توصيف برای برنامهنويسان زبان C .

 

ايجاد برنامههای امن (Security Programming)

 

http://www.whitefang.com/sup/secure-faq.html

: FAQ در مورد نوشتن برنامههای امن در سيستمعاملهای مبتنی بر يونيكس.

 

توسعه نرمافزار

http://ant.apache.org

برنامهای برای كامپايل كردن برنامهها و ايجاد كد اجرايي.

http://sources.redhat.com/autobook

منبعی در مورد برنامههای autoconf، automake و libtool كه در شمارههای بعدی بيشتر معرفی خواهند شد.

http://nis-www.lanl.gov/~rosalia/mydocs/autoconf_tutorial_toc.html

منبعی ديگر در مورد برنامه autoconf

http://www.eng.auburn.edu/grasp

يك محيط توليد و نگهداری نرمافزار.

http://www.gnu.org/software/make/make.html

منبعی در مورد برنامه make كه در شمارههای بعدی بيشتر معرفی خواهد شد.

 

ارائه نرمافزار به ديگران

http://www.rpm.org

سايت اختصاصی برنامه RPM برای ايجاد بستههای نرمافزاري.

http://www.openpkg.org

يك ابزار برای تبديل برنامهها به بسته نرمافزاری كه مبتنی بر RPM نگارش 4 ايجاد شده است و سعی در ارائه قابليتهای بيشتری نسبت به آن دارد.

 

نبشتهنويسی

http://en.tldp.org/LDP/abs/html/index.html

راهنمای برنامهنويسی Bash .

http://www.sektorn.mooo.com/era/unix/shell.html

معرفی shellهای سيستمعاملهای مبتنی بر يونيكس .

http://steve-parker.org/sh/sh1.shtml

خودآموز برنامهنويسی shell

 

برنامهنويسی صوتی

http://www.alsa-project.org/api.php3

: ALSA API برای برنامهنويسی صوتي.

http://www.4front-tech.com/pguide

راهنمای برنامهنويسان پروژه Open Sound System

 

برنامهنويسی واسط كاربر

http://www.cs.cmu.edu/afs/cs.cmu.edu/project/amulet/www

يك كتابخانه برای توليد واسط كاربر در محيطهای مبتنی بر يونيكس، ويندوز و مكينتاش.

http://www.fox-toolkit.org/fox.html

يك كتابخانه برنامهنويسی مبتنی بر C++ برای توليد واسط كاربر گرافيكي.

http://www.gtk.org

كتابخانه توليد واسط كاربر گرافيكی در محيط Gnome

http://www.troll.no

كتابخانهای برای توليد واسط كاربر برای محيط KDE

http://world.std.com/~xforms

كتابخانهای مبتنی بر Xlib برای توليد واسط كاربر گرافيكي

 

برنامهنويسی XML

http://www.jclark.com/xml/expat.html

يك كتابخانه برنامهنويسی برای ايجاد پارسر XML

http://xmlsoft.org

كتابخانه زبان C برای محيط Gnome به نام libxml .

 

برنامهنويسی X Window

http://www.rahul.net/kenton/xsites.html

سايتهای فنی در مورد سيستم X Window .

http://www.users.cts.com/crash/s/slogan

اطلاعات مفيد در مورد محيط X Window .

 

CORBA ؛ استانداردي براي سيستم‌هاي توزيع‌يافته

CORBA ؛ استانداردي براي سيستم‌هاي توزيع‌يافته

 

 
ماهنامه شبکه


اشاره :

CORBA سرنام واژه‌هايCommon Object Request Broker Architecture استانداردي براي نرم‌افزارهاي تركيبي (componentry) است كه توسط شركت object managementgroup) OMG)طراحي شده و پشتيباني مي‌گردد. اين استاندارد API، پروتكل‌هاي رابطه‌اي ومدل‌هاي اطلاعاتي object/service را تعريف مي‌كند كه مي‌تواند نرم‌افزارهاي ناهمگون (نوشته شده به زبان‌هاي متفاوت) را به هم مرتبط‌سازد. بنابراين با استفاده از ‌CORBA مي‌توانيم ازشي ‌(object) در پلتفرم‌هاي توزيع‌‌يافته‌ ‌(distributed)، به صورت مشترك استفاده كنيم؛ بدون نگراني از اين كه شي در چه موقعيت مكاني قرارگرفته يا به چه پلتفرمي متعلق است. CORBA مي‌تواند كدهاي نوشته شده (در برخي زبان‌هاي برنامه‌نويسي) را بسته بندي و به آن اطلاعاتي از قبيل توانايي اجرايي كدها و چگونگي اجراي آن‌ها را اضافه نمايد. به‌طوري كه اين كدهاي بسته بندي‌شده (يا شي‌ها) بتوانند از برنامه‌هاي ديگر (يا حتي شي‌هاي ‌CORBA) كه تحت شبكه قرار دارند، اجرا شود. CORBA براي تعيين‌كردن اينترفيس‌هايي كه به ديگران ارائه مي‌كند، از يك زبان رابطه‌اي به نام IDL استفاده مي‌كند و از طريق اين زبان مي‌تواند كدهاي اجرايي (مثلا جاوا يا ‌++‌C) را بشناسد. امروزه مي‌توان زبان‌هاي معروفي مثل ‌‌جاوا، Smalltalk ،C++ ،Python، آدا، سي و ليسپ را با استفاده از اين زبان ‌‌(IDL) به هم مرتبط ساخت و از توانايي‌هاي آن‌ها استفاده نمود. ‌ قسمت اول اين مقاله در آغاز نرم‌افزارهاي توزيع يافته را معرفي كرده و دلايل نياز به آن را مشخص مي‌نمايد. سپس اين نرم‌افزارها را با سيستم‌هاي متمركز يا توزيع يافته مقايسه مي‌كند و در ادامه با طرح اين سؤال كه چرا به‌‌ CORBA نياز داريم، ‌‌CORBA را معرفي و ساختار آن را تشريح مي‌كند و بعد چگونگي كار اين استاندارد را توضيح مي‌دهد. درپايان نيز مزايا و ضعف‌هاي آن را به اختصار بيان مي‌نمايد.


نرم افزارهاي توزيع‌يافته (Distributed) 
همان‌طور كه اشاره شد، كار اصلي CORBA ارائه استانداردي براي ايجاد و اجراي نرم افزارهاي توزيع‌يافته مي‌باشد. اگرچه‌ ‌توزيع‌‌‌‌يافته ‌بودن نرم‌افزارها مي تواند مشكلاتي براي توليد كنندگان و كاربران آن داشته باشد، ولي به‌دليل غيرمتمركز بودن اطلاعات نرم‌افزارها، پراكندگي كاربران، و نياز به اجراي برخي برنامه‌ها با استفاده از بيش از يك پردازنده ، راه ديگري جز استفاده از اين نرم‌افزارها نيست.
 
برخي از نرم‌افزارها به دليل اين كه كاربران آن بايد از طريق اين نرم افزارها با هم در ارتباط باشند،  بر روي چند كامپيوتر اجرا مي شوند. بدين ترتيب كه هر كاربر قسمتي از اين نرم افزار را برروي كامپيوتر خود اجرا مي‌كند و شي‌هاي مشترك بر روي يك چند سرور اجرا مي شوند.  شكل 1 نشان مي دهد كه دو كاربر از شي‌هاي به اشتراك گذاشته شده استفاده مي كنند. همان‌طور كه در اين شكل مشخص شده‌است، دو كاربر يكي در ناحيه 1 و ديگري در ناحيه 2  بدون در نظر گرفتن موقعيت جغرافيايي، به شي‌هاي گوناگوني دسترسي‌دارند و در برخي موارد، بر حسب نياز به يك شي (object A) دسترسي خواهند داشت.  

همان‌طور كه قبلا اشاره شد، يكي ديگر از دلايل نياز به نرم‌افزارهاي توزيع‌يافته، پراكندگي اطلاعات مي‌باشد. برخي از نرم‌افزارها، از آنجايي كه به  اطلاعاتي نياز دارند كه برروي چند كامپيوتر است (به‌دلايل امنيتي و حفاظت اطلاعات شخصي) و صاحب اطلاعات فقط اجازه دسترسي از راه دور را به كاربران مي‌دهد، بايد درچند كامپيوتر اجرا شوند. از طرف ديگر، نياز به نرم‌افزارهاي توزيع‌يافته در سيستم‌هايي كه مي‌خواهند از مزاياي استفاده از چند پردازنده (به‌صورت موازي) استفاده كنند، محسوس به نظر مي رسد.

شكل 1- استفاده مشترك از شي‌ها
(براي مشاهده تصاوير مقاله در ابعاد بزرگتر روي آنها كليك كنيد)

تا اين جا دلايل نياز دنياي امروز به نرم افزارهاي غيرمتمركز توضيح داده شد. ممكن است از خود سؤال كنيد چه فرقي بين سيستم‌هاي متمركز و توزيع‌يافته وجود‌‌دارد؟ جدول‌‌1 برخي از اين تفاوت‌ها  را نشان مي‌دهد.

دلا‌يل نياز به‌‌ CORBA 
دلا‌يل نياز به CORBA را مي‌توان در پنج‌مورد زير فهرست كرد:
1‌- گوناگوني سيستم‌عامل‌ها‌ 
2- تنوع پلتفرم‌هاي سخت افزاري
3- گوناگوني پروتكل‌هاي شبكه ‌(براي مثال ‌‌TCP/IP ،ATM و ‌‌Ethernet)
4- گوناگوني زبان‌هاي برنامه‌نويسي
 (C ,C++ ,Java ,COBOL ,Basic ,Perl ,Smalltalk)
5- نياز ارتباط يافتن‌ سيستم‌هاي جديد با سيستم‌هاي قديمي

ويژگي
سيستم هاي متمركز
سيستم هاي توزيع‌يافته‌
امنيت
زياد
كم
در سيستم‌هاي توزيع‌يافته كه ‌object‌ها درسيستم‌هاي مختلفي قرار دارند، به  امنيت بيشتري نسبت به سيستم هاي محلي نياز است.
مشكلات و ازكارافتادگي شي‌ها‌
 همه شي ها با هم خراب مي‌شوند
شي‌ها جداگانه خراب مي‌شوند
اگر پردازنده‌اي كه دو ‌‌object را اجرا مي‌كند دچار مشكل شود، هر دو object دچار مشكل خواهند شد.
دسترسي همزمان‌
فقط با استفاده از با چند Thread
دارد
برنامه‌ها بر روي سيستم‌هاي متمركز، به‌صورت پيش فرض از يك thread استفاده مي‌كنند. ولي در سيستم‌هاي توزيع‌يافته به‌صورت پيش فرض از thread استفاده مي‌شود.
ارتباط بين سيستم ها
سريع
آهسته
از آن‌جايي كه ارتباط بين ‌‌object‌ها دريك پردازنده سريع تر از ارتباط بين ‌‌object‌ها درچند پردازنده مي باشد، پيشنهاد مي‌شود اگر ارتباط تنگاتنگي بين شي‌ها وجود دارد، از سيستم‌هاي متمركز استفاده شود.
جدول 1- جدول مقايسه‌اي سيستم‌هاي متمركز و توزيع‌يافته

‌با استفاده از ‌‌CORBA، ديگر دليلي براي نگراني در مورد اين‌كه از چه زبان برنامه‌نويسي، سيستم‌عامل يا پلتفرمي  استفاده مي‌كنيد، وجود ندارد. از آن‌جايي كه CORBA با مكانيزم ساده‌اي مي‌تواند سيستم‌هاي مختلف از هر نوع و هراندازه  را به هم متصل كند، درخيلي از موقعيت‌ها بسيار مفيد به نظر مي‌رسد.  يكي از مصارف CORBA در سرورهايي است كه با تعداد زيادي كلاينت  و ترافيك سنگين اطلاعاتي بايد به خوبي كاركنند. استفاده از ‌‌CORBA  فقط محدود به نرم‌افزارهاي بزرگ نمي‌شود و حتي درسيستم‌هاي ‌‌ بلا‌درنگ‌  نيز كاربرد دارد. 

CORBA و ساختار آن
گروه OMG در سال 1989 با هدف ايجاد و پشتيباني استاندارد برنامه‌هاي شي‌گراي غير متمركز به‌وجود آمد. البته، اين گروه در واقع  توليد كننده هيچ نرم‌افزاري نيست، بلكه مشخصات ‌‌(Specification) اين برنامه‌ها را با استفاده از فناوري و نظرات اعضا مشخص مي‌كند.

اين گروه شامل بيش از 700 شركت و سازمان توليد‌كننده فناوري سيستم‌هاي‌ توزيع‌يافته، بانك‌هاي اطلاعاتي‌، پلتفرم‌ها و سازندگان بزرگ نرم‌افزار مي‌باشد. تلاش اصلي اين گروه در راستاي تعريف امكانات و ساختار لا‌زم براي سيستم‌هاي شي‌گراي غير‌متمركزاست و يكي ازمكانيزم‌هاي اصلي در اين رابطه كه هسته مركزي اين گروه نيز مي‌باشد، Object Request Broker) ORB) نام دارد. سال 1991 را مي‌توان سال تولد اولين نسخه CORBA
(Common Object Request Broker Architecture) توسط اين گروه ناميد.
 
CORBA ساختار استانداردي براي سيستم‌هاي توزيع‌يافته شي‌گراست كه مي‌تواند سيستم‌هاي ناهمگون و پراكنده را به هم مرتبط سازد. ‌همان‌طور كه گفته شد، CORBA ‌ساختاري براي ‌‌object‌هاي توزيع‌يافته مشخص مي‌كند. محوراصلي اين ساختار بر اساس درخواست سرويس  از شي‌هاي توزيع‌يافته مي‌باشد. اين شي‌ها سرويس‌ها را از طريق اينترفيس‌هايشان كه به زبان ‌(Interface Definition Language (IDL مشخص شده‌اند، ارائه‌ مي‌دهند. Object‌هاي غير متمركز را مي توان از object referencesها كه توسط اينترفيس‌هاي‌ IDL تايپ شده اند، شناسايي كرد.

همان‌طور‌كه در شكل 2 مي‌بينيد، درخواست‌كننده سرويس ‌(كلاينت) شماره مرجع‌ object شي سرويس‌دهنده را از طريق اينترفيس آن در اختيار‌دارد (Interface A) و‌ ORB درخواست كلاينت را به شي سرويس‌دهنده و جواب درخواست را به شي درخواست كننده مي رساند.

ORB درواقع يك سرويس توزيع‌يافته است كه به درخواست شي‌هاي  دوردست ‌‌(remote object) رسيدگي مي‌كند. بدين ترتيب كه اين شي‌ها را در شبكه قرار مي دهد، با شي‌ها ارتباط  برقرار كرده، و درخواست  سرويس را مطرح مي‌كند. سپس براي جواب سرويس درخواستي صبر مي‌كند و  سرويس موردنظر را به كلاينت درخواست كننده منتقل مي‌كند. ORB اين كار را بدون توجه به موقعيت مكاني سرويس‌دهنده و زبان برنامه درخواست‌كننده انجام مي‌دهد. نيازي نيست كه كلاينت درخواست كننده به زبان ‌‌CORBA تقاضاي خود را مطرح كند. ‌ORB زبان برنامه درخواست‌كننده را شناسايي كرده (براي اكثر زبان‌هاي برنامه نويسي) و اين زبان را ترجمه مي كند.

كاركرد ‌‌‌CORBA
نرم‌افزارهايي كه از ‌‌CORBA استفاده مي كنند، حاوي شي‌هايي‌‌هستند. البته معمولا از يك شي چندين نمونه(Instances)  از يك نوع وجود دارد. مثلا در يك سايت تجارت الكترونيك، نمونه سبدهاي خريد زيادي وجود دارد كه با وجودي كه همه آن‌ها كاري يكسان انجام مي‌دهند، هر كدام به مشتريان متفاوتي تعلق دارد و اطلاعات خريد آن مشتري را ذخيره مي كنند.

براي هر نوع از شي‌ها، مثلا سبد خريد‌ مي‌بايد يك اينترفيس در‌ OMG IDL تعريف كنيم كه نشانگر سرويس‌هايي است كه شي سرور در اختيار كلاينت‌هاي تقاضا‌كننده  قرار‌مي‌دهد. هر كلاينت كه تقاضاي اجراي عملياتي از شي را دارد، بايد از اين اينترفيس‌ها استفاده و آرگومان ها را كنار هم چيده و ارسال‌‌نمايد. وقتي كه اين تقاضا به شي سرويس‌دهنده مي‌رسد، اين شي با استفاده ازاينترفيس مشابه آن، عمليات درخواستي كلاينت را انجام مي دهد و آرگومان ها را جدا سازي مي كند. پس از انجام  عمليات درخواستي، جواب درخواست، بسته بندي شده و با استفاده از تعريف اينترفيس  از همان مسيري كه آمده بود، بر مي گردد. چنان كه گفته شد، اينترفيس IDL براي اكثر زبان‌هاي برنامه‌نويسي از جمله ‍IDLscript , Python, Lisp, Ada , Smalltalk , COBOL, java, C++, C و از طريق استاندارد OMG تعريف شده است.

‌جداسازي اينترفيس و قسمت اجرايي كه توسط ‌OMG IDL مهيا شده است،  يكي از مهم‌ترين پايه‌هاي اصولي CORBA مي باشد و ايجاد اينترفيس براي هر شي در CORBA ضروري است. ازطرف ديگر قسمت اجرايي هر شي از ديد سيستم مخفي مي‌ماند و كلاينت از آن چيزي نمي‌داند.

در نتيجه كلاينت‌ها فقط مي‌توانند از طريق اينترفيس‌ها به سرويس‌ها دسترسي داشته و تنها سرويسي را اجرا كنند كه توسط اينترفيس‌هاي ‌IDL معرفي شده اند.

شكل 2-  ساختار ساده ‌CORBA

همان‌طور كه در شكل 3 نشان داده شده‌است، يك كلاينت توسط اينترفيس IDL تقاضاي سرويس مي‌كند. براي اين كار IDL بايد به كلاينت stubs و ‌‌object skeletons كامپايل شود. ‌stubs و ‌skeletonsها درواقع نقش نمايندگان‌‌ كلاينت و سرور را بازي مي‌كنند و از آن جايي كه IDL تعريف مشخصي براي اينترفيس ها دارد، اگر حتي اين دو نماينده به دو زبان متفاوت يا حتي برروي دو ‌‌ORB از دو شركت مختلف اجرا شوند، مي‌توانند بدون مشكل به هم مرتبط شوند.



همان‌طور كه اشاره شد، در CORBA هر نمونه ازاشيا داراي يك كد يكتا (‌‌unique) به نام object reference هستند. كلاينت‌ها از اين اشيا براي هدايت درخواست‌هايشان و شناساندن خود به ‌‌ORB‌ها استفاده مي‌كنند. اگرچه كلاينت‌ها درخواست‌هايشان را به نماينده سرور يا IDL stub منتقل مي‌كنند نه به خود سرور، چنين به نظر مي‌رسد كه كلاينت مستقيما به سرور دسترسي دارد.  اين درخواست سپس از طريق ORB و skeleton به قسمت اجرايي مي‌رسد و اين قسمت به اين درخواست رسيدگي مي‌كند. شكل 4 مكانيزم درخواست سرويس ازراه دور را نشان مي دهد.

شكل 3- درخواست از كلاينت به‌
object implementation منتقل مي‌شود.

براي ايجاد ارتباط و درخواست از شي دوردست، در اولين قدم، كلاينت object reference شي مورد‌نظر را از راه‌هاي گوناگوني مثل Naming Service به‌دست‌‌ميآورد و با استفاده از مكانيزم ‌‌‌درخواست محلي،‌ درخواست خود را مطرح مي كند. وقتي كه ORB متوجه مي‌شود object reference موجود، مخصوص يك شي دوردست است، مسيرخود را عوض كرده و از طريق شبكه‌‌ ‌‌(پروتكل ‌‌‌IIOP) به‌دنبال ORB شي دوردست مي‌گردد‌ و درخواست خود را مطرح مي كند.

چگونگي اين مكانيزم از اين قرار است كه ‌‌ ‌گروه ‌‌OMG استانداردي دو مرحله‌اي براي اين رويه دارد. در مرحله اول كلاينت از نوع شي‌اي كه درخواست مي كند، اطلاع دارد (مثلا سبد خريد) و ‌‌stub  كلاينت ‌‌(A) و ‌‌skeleton شي  توسط ‌‌IDL يكسان توليد شده است.  اين بدين معني است كه كلاينت دقيقا مي‌داند كه چه عملياتي (وبا چه پارامترهاي ورودي) مي‌تواند درخواست كند و چه زماني درخواست به شي مقصد مي‌رسد. در مرحله دوم بايد‌
ORB‌هاي كلاينت و شي مورد نظر، هر دو از يك پروتكل يكسان تبعيت كنند. اين پروتكل حاوي تمامي اطلاعات مورد نياز (ازجمله تمامي پارامترهاي ورودي/خروجي) براي دسترسي به شي مقصد مي‌باشد. اگرچه ‌ORB‌ها مي‌توانند شي‌هاي محلي را از دوردست تشخيص دهند، از آن جايي كه كلاينت حاوي هيچ objec treferenceي در موقع درخواست نيست،  قادر به تمايز شي‌هاي دوردست و محلي نمي‌باشد و همان‌طور كه قبلا ذكر شد، اين از اصول اصلي ‌‌CORBA مي‌باشد (بدون اهميت بودن موقعيت مكاني‌ Object).

شكل 4-  ارتباط ‌‌ORB به ORB (مكانيزم درخواست سرويس از راه دور)

‌مزايا و معايب ‌CORBA 
با توجه به آنچه گذشت، اكنون‌‌به‌نظر مي‌رسد بحث درباره مزايا و معايب اين استاندارد، ضروري باشد. از اين‌رو به پاره‌اي از مزايا و معايب CORBA اشاره مي‌شود:

- ‌‌كلاينت نيازي به دانستن موقعيت مكاني شي  ندارد. يك شي مي‌تواند هر جا باشد، به كلاينت متصل باشد يا برروي سروري در آن سوي كره زمين، هيچ فرقي نمي‌كند.

- موقعيت مكاني شي مي‌تواند بدون بروز اشكال در نرم افزار تغيير يابد.

- ‌كلاينت نيازي به دانستن اين‌كه سروري براي جواب دادن به درخواست وجود دارد يا نه، ندارد. ‌

- كلاينت و سرور مي‌توانند به دو زبان كاملا متفاوت نوشته شوند و اين مزيت مهم ‌‌CORBA اجازه استفاده ازقدرت زبان‌هاي مختلف را ازطريق ‌‌(IDL ) براي تهيه نرم‌افزارهاي بزرگ مي‌دهد.

-  كلاينت نمي‌داند يك شي چگونه عمل مي‌كند. به همين خاطر يك سرور مي‌تواند بدون اين كه كلاينت اطلاع پيدا كند يك بار از فايل ساده و بار ديگر از پايگاه اطلاعاتي شي‌گرا براي ذخيره اطلاعات استفاده نمايد.

- سرعت و كارايي سيستم‌هايي كه از‌ CORBA استفاده مي كنند بسيار بالا است.
- ‌سيستم‌هاي عامل و پروتكل سرور و كلاينت مي تواند متفاوت باشد.‌

‌‌اگرچه همان‌طوركه‌ ‌مي‌بينيد استفاده از ‌‌CORBA مي‌تواند مزاياي زيادي داشته باشد، اما داراي نقاط ضعف زير نيز هست:
- از انتقال و جابه‌جايي شي (objectها) پشتيباني نمي كند.‌

- CORBA به‌IDL ‌هايي نياز‌‌ ‌دارد كه هنوز براي برخي از زبان‌ها تعريف نشده است و وقت زيادي براي يادگيري آن‌ها نياز است.‌

- اگر CORBA نتواند نيازهاي صنايع امروز را برآورده سازد و رواج نيابد، آينده مبهمي در انتظار خواهد‌داشت و ممكن است به جمع سيستم‌هاي قديمي بپيوندد‌.

- از آنجايي كه خصوصيات ‌‌CORBA هر چند وقت يك‌بار عوض مي‌شود، نياز به آموزش و بروزآوري بيشتري دارد.‌
- از آن جايي كه ‌شعار CORBA، سرعت و كارايي بيشتر نسبت به سيستم‌هاي توزيع‌يافته جاوا مثل ‌‌RMI است و همه نرم‌افزارهاي كاربردي نيازي به سرعت بالاي آن ندارند، شايد بتوان گفت اگر بخواهيم فقط با جاوا كار كنيم آساني و كاربرد سيستم‌هايي مثل ‌‌RMI از ‌‌CORBA بيشتر است. ‌

جمع‌بندي
البته نمي‌توان ادعا كرد با اين مطالب همه مسائل مربوط به ‌CORBA شرح داده‌شد. هرچند سعي شد بسياري از مطالب مهم مربوط به آن در حد امكان توضيح داده شود. بااين حال پاره‌اي ازاين موارد  دربخش دوم اين مقاله خواهد آمد كه به معرفي  سرويس‌ها و محصولات CORBA مي‌پردازد و با طرح مثال‌هاي ساده و مقايسه اين فناوري با RMI ‌و‌‌COM، اين بحث را پيگيري مي‌كند.‌

منابع :
1-Orfali Harkey-Client/Server Programming with Java and CORBA  

2-Vogel, Andreas-Java Programming with CORBA

‌3-
http://www.omg.org  

 4-
Reilly, D-Java RMI CORBA, A comparison of two competing technologies 

    

چالش های برنامه های توزيع شده

چالش های برنامه های توزيع شده

همزمان با رشد وب ، عموميت يافتن استفاده از کامپيوترهای شخصی و پيشرفت های مهم در زمينه دستيابی به شيکه های با سرعت بالا ، پردازش های توزيع شده بشدت مورد توجه قرار گرفته است . در اين نوع پردازش ها ، همواره می بايست بر دو اصل مهم تاکيد و راهکارهای مناسب را دنبال کرد. اولين مسئله توجه به معماری مبتنی بر Component ( عنصر) برای توليد نرم افزار و دومين مسئله نحوه تبين ارتباط بين عناصر ذيربط و تشکيل دهنده يک نرم افزا ر در محيط هائی با پردازش های توزيع شده است . همانگونه که قبلا" اشاره گرديد، برنامه های مبتنی بر وب که خود نمونه ای از پردازش های توزيع شده می باشند از مدل N-Tier پيروی می کنند. کليد طلائی طراحی اين نوع نرم افزارها ، توانائی نوشتن عناصر ( اجزاء) بگونه ای است كه از يكطرف امكان بكارگيری آنها  بسادگی در لايه ها و حتی  چندين برنامه فراهم شده و از طرف ديگر امكان ارتباط اين عناصر با يكديگر صرفنظر از زبان برنامه نويسی استفاده شده و ساير موارد ذيربط ،  فراهم گردد. ما مي بايست جعبه های سياهی را طراحي كنيم كه صرفنظر از ماهيت درون هر يك ، قادر به استفاده از توان آنها در بخش يا بخش های از يك و يا چندين نرم افزار باشيم . 


سير تکامل پردازش های توزيع شده
از گذشته تا کنون دو مدل اساسی  در پردازش های توزيع شده مورد توجه قرار گرفته است . RPC(Remote Procedure Call) و Client Server  . ارتباطا ت مبتنی بر RPC ، نسبت به Client Server دارای قدمت بيشتری بوده و بعنوان شاه كليد برنامه هاي توزيع شده در محيط يونيكس مطرح بوده است . يونيكيس يكی از اولين سيستم های عامل در زمينه استفاده كامل از امكانات ارتباطي پروتكل TCP/IP است . پروتكل فوق بهمراه استانداردهای مربوطه آن بعنوان ستون فقرات شبكه هاي مبتني بر يونيكس مطرح بوده است . مثلا؛ استاندارد DNS(Domain Name System) جهت همترازی آدرس يك كامپيوتر و نام آن ، FTP(File Transfer Protocol)، امكاني جهت تبادل فايل ها و پروتكل TelNet ، ارائه دهنده تسهيلات لازم  جهت دستابی به ترمينال ها . اگر امروز ما در دنيائی زندگی مي كنيم كه پروتكل TCP/IP  محور اساسي گفتمان در  شبكه های كامپيوتری   است ، بيش از بيست سال قبل يونيكيس چنين وضعيتی را دارا بوده  است . برنامه نويسان تحت يونيكيس بخوبی از توانائي های آن برای نوشتن برنامه های توزيع شده استفاده كرده اند. برنامه نويسان فوق از ارتباطات مبتني بر Socket جهت نيل به اهداف خود استفاده مي كردند. بر اساس رويكرد فوق ، اگر برنامه ای قصد ارتباط با برنامه ديگری را داشت ، بر اساس آدرس TCP/IP و يك شماره پورت ، يك لينك با آن برنامه ايجاد مي كرد.اين رويكرد تا مدت ها بعنوان يك راه حل مناسب جهت طراحی و اجرای برنامه های توزيع شده حضوری موفق  در عرصه برنامه های توزيع شده داشت .پس از مدت زمانی رويكرد فوق با دو چالش جدی مواجه گرديد : 1 برنامه نويسان مجبور بودند كه نام و يا آدرس سرويس دهنده و شماره پورت مورد نياز جهت برقراری ارتباط را در Source  برنامه ها مستقيما" مشخص نمايند . 2 برنامه نويسان گوناگون مي توانستند از پورت های يكسان برای برنامه های متفاوت استفاده نمايند .بديهی است در چنين حالتی Conflict ( تعارض ) بين شماره پورت ها امری اجتناب ناپذير بود. بمنظور برخورد با دو چالش فوق ، كميته يونيكيس مفهوم ارتباطات مبتنی بر RPC را مطرح كرد. بر اساس رويكرد فوق برنامه ای با نام Portmapper بر روی هر سرويس دهنده اجرا و بين برنامه های اجرائی بر روی سيستم ها ی متفاوت ، حكميت خواهد كرد. بر اين اساس هر برنامه بجای تلاش جهت ايجاد يك ارتباط با يك پورت خاص بر روي يك سيستم ، درخواست خود را برای Portmapper ارسال و وی مسئول ايجاد اطلاعات لازم جهت برقراری ارتباط خواهد بود. راه حل فوق با اينكه مسئله ارتباطات بين پردازه های توزيع شده را بگونه ای حل كرده بود ، ولي در رابطه با فورمت داده های مبادله شده بين برنامه ها سكوت اختيار كرده بود.در اين راستا تكنولوژی ديگری با نام XDR(eXternal Data Representation)، روشی را جهت تشريح داده های يك برنامه برای برنامه ديگر تعريف نمود. مي توان گفت كه XDR پيش كسوت XML است . RPC يك روش نسبتا" ساده ، انعطاف پذير برای پردازش های توزيع شده را ارائه كرد. شايد اين سوال مطرح شود كه چرا تكنولوژی فوق نتوانست تسلط و چيرگی خود را بر روی پردازش های مبتنی بر Client/Server ادامه و مستمر نمايد؟

  1. مدل ارتباطي RPC تسلط مقتدر  خود را در دنيای يونيكس بخوبي ادامه داد  ولي با پيدايش و نياز به ارتباطات مبتني بر Client Server ( PC-to-server ) با يك مانع جدی مواجه گرديد. مشكل اساسی پروتكل هائی بوند كه در اغلب سيستم های Client Server  استفاده مي گرديد.پروتكل TCP/IP استاندارد تمامی توليدكنندگان نبود و هر توليدكننده پروتكل های اختصاصي خود را داشت مثلا؛ شركت ناول از IPX و شركت ماكروسافت از NetBEUI استفاده می كردند.چون پروتكل TCP/IP بعنوان استاندارد در دنياي سرويس دهندگان مبتني بر PC ، هنوز مطرح نشده بود و ارتباطات مبتنی بر RPC گزينه ای مناسب در اين زمينه نبودند، چراكه ستون فقرات تكنولوژی فوق بر پروتكل TCP/IP استوار بود. بنابراين در مقطعي با رشد شديد روش های ارتباطي نظير ODBC  براي دستيابي به بانك های اطلاعاتي ، صف بندی پيامها برای تبادل همزمان ، IPC و مواجه شديم . پس از اينكه پروتكل TCP/IP به ميدان Client Server قدم گذاشت ، مجددا" ارتباطات مبتنی بر RPC مورد توجه قرار گرفت . در اين راستا تكنولوژيهای ارتباطی متفاوتی نظير : OLE ، Com ، Dcom ، Corba ، J2EE ،‌Java Enterprise ، Tuxedo و مطرح گرديدنند. تمامی تكنولوژيهای فوق بدنبال ارائه تسهيلات ، انعطاف پذيری و اعتماد سازی بيشتر در برنامه های توزيع شده بودند.  مطلب فوق شايد مهمترين دليل رويكرد شركت های عظيم نرم افزاري جهت  ارائه يك ساختار استاندارد براي توليد اين عناصر باشد.
    دو مدل استاندارد عمده تاکنون ، در اين زمينه مطرح و ارائه شده است .(DCOM(Distributed Component Object Model و CORBA Common Object Request Broker Architecture ، مدل های استاندارد شده در اين زمينه می باشند.

تعاريف و اصطلاحات

  • Interface . مجموعه ای از متدها که مسئوليت ارائه عمليات وارائه  قابليت ها را برعهده خواهند داشت .

  • Object class or class . نام مورد نظر  برای پياده سازی يک و يا چندين اينترفيس

  • Object (or object instance . نمونه ئی از برخی کلاس ها

  • Object server . پردازه ای که مسئوليت ايجاد و ميزبانی نمونه هائی از برخی کلاس ها را برعهده دارد.

  • Client . پردازه ای است که  متدی ازيک شی را فرا می خواند

مقايسه DCOM و CORBA
دو استاندارد فوق از مدل سرويس گيرنده / سرويس دهنده برای ارتباطات خود استفاده می نمايند. در اين راستا سرويس گيرنده بمنظور اخذ يک سرويس ، متدی را  توسط يک شی راه دور که بعنوان يک سرويس دهنده در مدل سرويس گيرنده / سرويس دهنده رفتار می نمايد ، فرا می خواند.سرويس ارائه شده توسط سرويس دهنده بصورت يک شی کپسوله می گردد. اينترفيس مربوط به شی توسط يک زبان تعريف اينترفيس (IDL) مشخص خواهد شد. اينترفيس های تعريف شده در يک فايل IDL بعنوان يک پيمان ارتباطی بين سرويس دهنده و سرويس گيرنده  ايفای وظيفه می نمايد.سرويس گيرندگان با فراخوانی متدهای تشريح شده در IDL با سرويس دهنده ارتباط برقرار می نمايند.در اين راستا مدل و نحوه پياده سازی شی از ديدگاه سرويس گيرنده مخفی نگاه داشته می گردد. برخی از مفاهيم برنامه نويسی شی گراء نظير : Encapsulation,Polymorphism,Single inheritance در سطح IDL ارائه شده است . تکنولوژی CORBA در سطح IDL از ويژگی Multiple inheritance حمايت می کند.

مدل ارتباطی بين يک پردازه  سرويس گيرنده ويک شی سرويس دهنده در تکنولوژي های CORBA,DCOM ، تابع مدل مبتنی بر شی RPC است . شکل زير ساختار RPC را نشان می دهد.

 مشاهده تصوير با ابعاد بزرگتر

 برای فراخوانی يک تابع راه دور ، سرويس گيرنده يک فراخوانی به Client Stub را انجام خواهد داد. Stub پارامترهای مربوط به فراخوانی تابع را در يک پيام درخواستی بسته بندی و يک Wire Protocol را بمنظور حمل پيام برای سرويس دهنده فرا می خواند. پس از حمل  ، در سرويس دهنده ، پيام در اختيار Server stub گذاشته شده تا عمليات بازگشائی بسته ارسالی انجام و زمينه فراخوانی متدهای مربوط به شی مورد نظر فراهم گردد.در تکنولوژی DCOM ،  وClient Stub بعنوان Proxy و Server Stub بعنوان Stub ناميده می شوند. در تکنولوژی CORBA  ، و Client stub بعنوان stub و Server stub بعنوان Skeleton ناميده می گردد.


تكنولوژی COM . مهمترين ويژگی تكنولوژی فوق قابليت استفاده مجدد و ارتباط متقابل براي عناصر( اشياء) توزيع شده است . بدين ترتيب پياده كنندگان نرم افزار اين امكان را پيدا خواهند كرد تا با در كنار هم قرار دادن اين عناصر و استفاده متعدد از آنان (حتي اگر توليدكنندگان آنها متفاوت باشند) ، قادر به خلق آثار ماندگار  در سريعترين زمان ممكن و متكی بر اصول مهندسی نرم افزار باشند. تكنولوژی Com  بصورت ناگهاني مطرح نگرديد و ريشه در تلاش هائی دارد كه از مدت ها قبل بعنوان يك نياز مطرح  شده بود ، معرفي  تكنولوژی OLE(Object Linking & Embedding)  در سال ،1991 اولين تلاش در اين زمينه بود كه توسط شركت مايكروسافت برای ارتباط و پيوستگی بين مستندات  مجموعه برنامه های آفيس مطرح گرديد. حوزه عملكرد تكنولوژی فوق بر روی مستندات ( Documents ) متمركزاست. در ادامه شركت مايكروسافت به اين نكته پی برد كه تكنولوژی فوق نبايد صرفا" متمركز بر روی مستندات باشد و مي تواند عملكردی جامع تر را داشته باشد.  بدين منظور نسخه شماره 2 ، OLE  در سال1995 مطرح گرديد و اين نسخه در ادامه تمامي عناصر و اجزای موجود در محيط ويندوز را شامل گرديد و بدين ترتيب COM  مطرح شد. در اوايل ، تكنولوژی فوق  در رابطه با عناصر و اجزای توزيع شده امكانات قابل توجه ای ارائه نكرده بود .شايد يكي از مهمترين دلايل آن ، عدم عرضه يك سيستم عامل شبكه ای از طرف مايكروسافت تا آن زمان بود.همزمان با عرضه ويندوز 95 و ويندوز NT  در سال 1996 و مطرح شدن امكانات شبكه ای و ضرورت توزيع ، اجراء و ارتباط بين عناصر توزيع شده، تكنولوژی DCOM(Distributed COM)  مطرح گرديد.سرانجام در سال 1997 نسخه توسعه يافته اين تكنولوژی با نام COM+  توسط شركت مايكروسافت ارائه گرديد.شکل زير معماری بکارگرفته شده درتکنولوژی DCOM را نشان می دهد.

 مشاهده تصوير با ابعاد بزرگتر

 

تكنولوژي CORBA . همزمان با گرايش بسمت طراحي و پياده سازی نرم افزارهاي  متكي بر مدل N-Tier  از يكطرف و نياز شديد به پياده سازي نرم افزار هاي متكی بر وب ، ضرورت توجه و بازنگری در نحوه طراحی و پياده سازی عناصر توزيع شده مورد اهتمام جدی شركت های بزرگ نرم افزاري قرار گرفت . شركت ماكروسافت در اين زمينه منادی تكنولوژی های   COM/DCOM/COM+ ، Internet Explorer و ActiveX   و  ساير شرکت ها " کوربا" را   مطرح كردند . اولين نسخه تکنولوژی فوق درسال 1992 توسط   OMG   كه بالغ بر ششصد عضو دارد، ارائه گرديد. آخرين نسخه آن ( نسخه شماره 2 ) در سال 1996 عرضه شده است . عملکرد تکنولوژی فوق شباهت زيادی به DCOM دارد. شکل زير معماری بکارگرفته شده در تکنولوژی فوق را نشان می دهد.

 مشاهده تصوير با ابعاد بزرگتر

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

سرويس های وب : رويکرد جديد در برنامه های توزيع شده

 برای برنامه نويسی توزيع شده تاكنون متدلوژی های متفاوتی مطرح بوده است . سرويس های وب جديدترين رويکرد در اين زمينه می باشند. چرا با اين همه تنوع ، ما مجددا؛ به يك معماری جديد برای پردازش برنامه های توزيع شده نياز داريم ؟ چرا ما به سرويس های وب نياز داريم ؟ چرا خودمان را با يكی از متدهای موجود نظير RPC ، DCOM ، CORBA  تطبيق نمی دهيم ؟ پاسخ به تمام سوالات فوق و موارد مشابه ظهور و رشد سريع اينترنت  و وب است . در حقيقت اينرنت زمينه مناسب جهت تكامل برنامه های توزيع شده را فراهم نمود.  تکنولوژی های پيش از اين، اغلب  در شبكه های اختصاصی  ايمن و اعتمادپذير مورد استفاده قرار می گرفتند.برنامه های توزيع شده كه بر روی اينترنت اجراء می گردند، دارای چالش های خاص خود بوده و با توجه به تنوع ، وسعت بسيار زياد و رشد فزاينده ، ضرورت وجود يك مدل جديد برای برنامه نويسی توزيع شده بدرستی احساس می گردد.

كالبد شكافی سرويس های وب

سرويس های وب تصوير جديدی از برنامه های توزيع شده را ارائه داده اند . در اين راستا سه هدف عمده دنبال می شود :

  •  برنامه ها بسادگی برنامه های ديگر بر روی وب را پيدا كرده و با آنها تبادل اطلاعاتی داشته باشند.

  •  از تمامی توان اينترنت و پروتكل های مربوطه استفاده گردد.

  •  يك متدولوژی ايمن برای تبادل اطلاعاتی را ارائه نمايد.

در ادامه به بررسی نحوه تحقق هر يك از اهداف سه گانه فوق در تكنولوژی جديد سرويس های وب خواهيم پرداخت .

هدف اول :

يكی از اولين مسائل موجود در رابطه با برنامه نويسی توزيع شده ، نياز به روشی جهت نمايش واستفاده از داده  در برنامه ها است ،  شايد يكي از اولين را ه حل های ممكن در اين خصوص طراحی يك ساختمان داده مشترك باشد كه تمامی برنامه ها جهت مبادله داده ها از آن استفاده و  پيمان تفاهمی را امضاء كرده باشند ! . بديهی است در چنين وضعيتی تغيير در يك ساختمان داده ، مستلزم ايجاد تغييرات در برنامه هائی است كه بنوعی مصرف كننده داده های موجود در آن ساختمان داده هستند. مسئله فوق می تواند بعنوان يك مانع جدی جهت اعمال تغييرات در برنامه محسوب گردد. تمامی برنامه ها در اکثر اوقات می بايست، جهت استفاده از يك يا چند ساختمان داده به توافق رسيده باشند.و اين مسئله كوچكی نخواهد بود. XML پاسخی مناسب به اين نياز است . Xml يك متدولوژی مناسب برای استاندارد نمودن انتقال داده ها و رمز گشائی آنان است . يك فايل Xml ( يك مستند ) شامل داده ها و روشهای تشريح آنان است . بنابراين يك برنامه می تواند با دريافت يك فايل Xml قادر به تشخيص محتويات فايل و فورمت مربوط به المانهای داده ئی آن باشد. با استفاده از Xml ، فورمت داده ها می تواند تغيير كرده ، المانهای داده ئی تغيير ، افزايش و يا حتی حذف گردند، بدون اينكه نياز به انجام تغييرات در برنامه هائي باشيم كه از داده های فوق استفاده مي كنند. Xml شاه كليد طلائی سرويس های وب است . Xml الگوئی جهت تبادل داده ها بين برنامه ها و روتين هائی خواهد بود كه پايه و اساس آنها متكی بر سرويس های وب است . Xml يك عنصر استراتژيك در خط توليد محصولات شركت ما كروسافت بشمار مي آيد. اين عنصر حياتی هم در پروژه دات نت و هم در ساير محصولات شركت ماكروسافت نظير آفيس يك نقش محوری و تعيين كننده را برعهده دارد. با بهره گيری از تكنولوژی Xml برای تبادل داده ها يك بخش از جدول معمای سرويس های وب حل مي گردد.يكي ديگر از بخش های اين جدول معما ، يافتن پاسخی شايسته برای اين سوال است كه برنامه ها چگونه يكديگر را برای تبادل داده پيدا مي كنند؟در اغلب برنامه های توزيع شده و همچنين مدل سنتي Client Server ،‌ برنامه ها مي بايست به روشنی و صراحت لهجه در رابطه با برنامه ها و روتين هائی كه می خواهند با آنها در ارتباط باشند ، آگاهي لازم را كسب نمايند . استفاده از درج كد بصورت مستقيم در متن برنامه ها  ما را دچار مشكلاتی خواهد كرد كه در رابطه با تبادل داده ها نيز به آن اشاره شد. يعنی تغيير ساختار يك برنامه( برنامه توزيع شده )  كاری بس مشكل خواهد بود. تفكيك برنامه ها از يكديگر يكی از بزرگترين چالش ها و يكی از مهمترين رويكردها در رابطه با سرويس های وب است

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

طراحی برنامه هائی از اين نوع ( مثال فوق ) با نگرش سرويس های وب ،‌ اين سوال را مطرح مي سازد  كه چگونه برنامه ها و روتين ها در يك محيط متكی بر سرويس های وب مي توانند يكديگر را پيدا نمايند؟چگونه برنامه موجود بر روی سرويس دهنده ( مثال فوق ) از محل برنامه ( روتين ) محاسبه ماليات آگاهی پيدا مي كند؟  برنامه های متكی بر معماری سرويس های وب با استفاده از دايركتوری ها (Directories) همديگر را پيدا خواهند  كرد. نقش يك دايركتوري در دنيای سرويس های وب ، ارائه يك محل مركزي برای برنامه ها و روتين ها بگونه ای است كه آنها قادر به يافتن ساير برنامه ها و روتين های مورد نظر خود جهت ارتباط باشند. بموازات توسعه و فراگير شدن  سرويس های وب ، مي توان اين انتظار را داشت كه چندين دايركتوری كه بر اساس نوع فعاليت خود ( Business ) طبقه بندی شده اند ، ‌بوجود آيد مثلا؛ توليد كنندگان اتومبيل دارای يك دايركتوری مجزای از شركت های بيمه باشند. چه كسی مسئوليت توزيع و پشتيبانی اين نوع دايركتوريها را برعهده خواهد گرفت ؟ در برخی حالات يكی از شركت های فعال در يك خط تجاری خاص مي تواند اين مسئوليت را برعهده گيرد . مثلا؛ يك توليد كننده اتومبيل مي تواند يك دايركتوری را براي ساير اعضاي صنف خود ايجاد و پشتيباني نمايد و يا تمامی توزيع كنندگان اتومبيل مي توانند با يكديگر متحد  و يك دايركتوری خاص ايجاد تا توسط تمامی توليد كنندگان اتومبيل مورد استفاده قرار گيرد. در حالات ديگر ، دايركتوری ها مي توانند Host گردنند و بعنوان يك حرفه جديد مورد توجه و مديريت قرار گيرند. مثلا؛ يك شركت تازه تاسيس مي تواند يك دايركتوری را بمنظور سرويس دهی به يك بخش خاص از فعاليت های تجاری پياده سازی و حق الزحمه خود را از ساير شركت هائی كه بهآن  دستيابی دارند ،‌ اخذ نمايد.پس از گذشت مدت زمانی ، قطعا" چندين دايركتوری با سرويس دهی مشابه در حرفه های گوناگون بوجود خواهد آمد و رقابت بين اين نوع از شركت ها بستر لازم جهت انتخاب را برای ساير شركت ها و موسسات تجاريی فراهم خواهد كرد.

از بعد فني  اين نوع از دايركتوری ها ( تطبيق سرويس های وب بايكديگر)  با ساير دايركتوريهاي موجود مانند  دايركتوريهائي جهت تاييد اعتبار كاربر و مديريت آنها نظير Active Directory در ويندوز و NDS ناول ، بسيار متفاوت خواهند بود.مثلا؛ دات نت ماكروسافت بگونه ای طراحي شده است كه قادر به تبعيت از  استاندارد Universal Description Discovery and Integration(UDDI) ،‌ باشد.  UDDI يك ساختار مناسب تعريف شده برای يك برنامه است تا از يك طرف  قادر به يافتن ساير برنامه ها بوده   و از طرف ديگر به اين سوال پاسخ دهد كه خود چه سرويسی برای ارائه دادن به ساير برنامه ها را در اختيار دارد.  با توجه به مثال گفته شده ( محاسبه ماليات ) ،‌برنامه فوق مي تواند يك دايركتوری را برای يافتن برنامه هائی كه جداول مالياتي و محاسباتی مربوطه را دراختيار دارند ، ‌جستجو نمايد. دايركتوری ها يك روش مطمئن و اساسی جهت عملكرد برنامه ها بدون نياز به تغيير را ارائه مي دهند. (سخن دايركتوری به مخاطبان خود: من تغيير خواهم كرد ، شما لازم نيست تغيير كنی ، با خيال راحت كار خود را ادامه دهيد!)

تا اينجا اين مسئله روشن شد كه چگونه Xml و دايركتوری های سرويس های وب برنامه نويسي توزيع شده را راحت تر كرده و يك زير ساخت مناسب جهت اين كاربا قابليت تسهيل در اعمال  تغييرات قراهم شده است  . بدون اتكاء به رويكرد فوق ، اضافه كردن يك Partner جديد و يا تغيير يك المان داده ئی مستلزم اعمال تغييرات زياد در تمامی برنامه ها در يك برنامه جامع توزيع شده است .

هدف دوم : 

اما چگونه مي توان اين سطح از دانش و تجربه را در محيط شبكه اي كه صرفا؛ قادر به درك مجموعه محدودي از پروتكل ها نظير Http  , SMTP  , FTP  است ، معرفی و استفاده کرد؟ چگونه می توان يك تكنولوژی جديد در دنيائی مملو از سرويس دهندگان فايروال و Proxy  را مطرح و عمومی نمود؟. پروتكل های موجود اينترنت برای انجام عمليات مورد نياز در محيط های متكي بر سرويس های وب  اولا" به اندازه لازم   انعطاف پذير نبوده  و ثانيا" تعداد آنها محدود است .  يك Partner  نمي تواند صرفا" يك فايل Xml را بكمك پروتكل FTP برای يك Partner ديگر ارسال و در انتظار پاسخ مناسب باشد.  SOAP(Simple Object Access Model) ،‌ يك پروتكل متكي بر Xml بوده كه امكانات لازم جهت تبادل داده  بين برنامه های هر partner با Partner ديگر را فراهم مي نمايد. از نكات جالب توجه پروتكل فوق مي توان به اين مسئله اشاره كرد كه امكان فعاليت  بر روی ساير پروتكل های موجود اينترنت نظير Http , SMTP را دارا است . البته در اولين نسخه ای كه از پروتكل فوق پياده سازی مي گردد،  استفاده بر روي Http مطرح شده است . بهرحال استفاده از  SOAP بر روی Http ، سرويس های وب قادر به حركت بر روی اينترنت بدون نياز به اعمال تغييرات عمده در فايروال های موجود ، خواهند بود. از پروتكل SOAP ،‌ علاوه براينكه براي انتقال داده های عمومی با فورمت Xml استفاده مي شود ، همچنين برای انتقال نوع خاصی از مستندات متكی بر Xml يعنی مستندات WSDL(Web Service Description Language) نيز استفاده مي گردد. مستنداتی از اين نوع  جزئيات يك سرويس خاص ارائه شده توسط يك برنامه  را تشريح و ساير اطلاعات  ضروری در رابطه با نحوه ارتباط با برنامه را مشخص خواهند كرد.  يك برنامه Partner ،برنامه ديگر را از طريق يك دايركتوری ، SOAP  و WSDL بمنظور تعيين محدوديت ها و قوانين مربوط به گفتمان مشترك بين يك برنامه و برنامه ديگر ، آگاه مي سازد . ( عصر گفتگوی منطقی برنامه ها هم فرا رسيده است و برای آن چارچوب تعريف شده است ! ! ) . به مثال گفته شده برگرديم ، برنامه مالياتي مي تواند يك برنامه محاسبه مالياتی را براساس يك دايركتوری پيدا كند در ادامه  از طريق پروتكل SOAP يك فايل WSDL را ارسال تا متوجه شود كه برنامه فوق چه نوع عمليات خاصی را مي تواند انجام  و در صورت لزوم  چه نوع داده ئی را مي بايبست  مبادله نمايد.

هدف سوم : 

تصور اين موضوع كه ما مي خواهيم تمامی فعاليت های تجاری خود را بهمراه مسائل شخصی از طريق سرويس های وب در اينترنت انجام دهيم  ،‌ شايد تا اندازه ای نگران كننده باشد. اگر سرويس های وب مي خواهند جايگاهي بلند مرتبه  را پيدا نمايند ، قبل از هر چيز مي بايست متدولوژيهای امنيتي قابل قبولی را ارائه نمايند. ماكروسافت در اين زمينه ايده جالب ،‌  استفاده از متدولوژيهای تاييد اعتبار كاربر كه توسط IIS  ارائه شده است  را، مطرح كرده است . در دنيای دات نت برنامه های Partner مي بايست دارای اعتبارنامه معتبر و تصويب شده در مجلس IIS باشند. اعتبارنامه ها مي تواند بر اساس NT Lanmanager(NTLM)  و يا Kerberos ( Active Directory ) باشند . اگر با يك نگاه منصفانه  به مدل ارائه شده توسط شركت ماكروسافت نظری داشته باشيم ،‌ در خواهيم يافت كه نوعی اطمينان از تاييد با مركزيت IIS بوجود خواهد آمد كه از يكطرف توانائی و از سوی ديگر انعطاف پذيری سرويس های وب را بيشتر خواهد كرد. چراكه برنامه هاي Partner ،‌مي بايست با شفافيت بدانند كه چگونه توسط برنامه های ديگر تاييد گردند. در حال حاضر يك مكانيزم قابل قبول و انعطاف پذير برای بدست آوردن يك مجوز عمومي ( جواز عمومي )  از يك منبع مستقل بين المللي وجود ندارد تا برنامه ها با اتكاء به آن همديگر را باور و تاييد نمايند.

امنيت در دات نت زمانيكه نگاه خود را بر روي سرويس گيرندگان متمركز نمائيم ، قابل تامل است . چون سرويس هاي وب مي بايست بصورت يكسان و يكنواخت طراحي گردند تا بتوانند خدمات متكي بر سرويس گيرندگان را ارائه نمايند، داشتن يك روش تاييد صلاحيت  براي  سرويس گيرنده كه چندين برنامه موجود بر روي سرويس گيرنده را به  به سرويس دهي فرا خواهد خواند ، بسيار مهم بوده و اگر چنين مدلي اين امكان را فراهم آورد كه كاربري يك بار تاييد گردد و صلاحيت آن در طول چندين برنامه موجود بر روي سرويس دهنده تاييد گردد بمراتب بهتر خواهد بود ( عالي است ! ) هدف محصول Passport  شركت ماكروسافت تاييدي بر انعطاف پذيري سرويس گيرندگان است كه خود بخشي از پروژه بزرگ دات نت است . هدف Passport تاييد يك كاربر از طريق يك مرورگر وب و ارسال اعتبارنامه وی برای چندين برنامه است  كه بر روی سرويس دهنده مشغول ارائه خدمات مي باشند.  در حقيقت  محصول فوق زمينه پيدايش  فدراسيون برنامه ها ی كامپيوتري را فراهم كرده تا بدين طريق سرويس گيرندگانی كه بنوعی تاييد می گردنند ، صلاحيت استفاده از تمامی برنامه های موجود در فدراسيون را خواهند داشت .عليرغم برخی انتقادات كه به اين محصول شركت ماكروسافت  انجام شده است ( منتقدين مي گويند كه با اين كار شركت ماكروسافت نمامي كاربران Online شبكه را كنترل مي كند) اين شركت همچنان بر آن مهر تاييد زده و آن را بعنوان يك بخش اساسی در پروژه دات نت خود قلمداد مي كند. ماكروسافت حتی بدنبال افزايش قابليت هايی Passport بگونه ای است كه تمامي محصولات خود را تحت پوشش قرار دهد. شايد در آينده اعتبارنامه Passport در Active Directory ذخيره و مجوزی برای استفاده از محصولات اين شركت هم باشد.

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

منبع :  شرکت سخا روش

سایت : http://srco.ir

 

مروري بر مفاهيم سيستم هاي توزيع شده

مروري بر مفاهيم سيستم هاي توزيع شده

ماهنامه شبکه

اشاره :

تا چند دهه پيش، سيستم‌هاي كامپيوتري به شكل مين‌فريم بودند، به صورتي كه تعدادي كنسول به كامپيوتر مركزي وصل مي‌شدند. اين نوع سيستم‌ها به صورت متمركز (Centralized) عمل مي‌كردند و تمامي داده‌ها و پروسه‌ها بر روي كامپيوتر مركزي قرار داشتند. با ظهور ايستگاه‌هاي كاري (Workstations) و كامپيوترهاي شخصي (PC) كاربرد اين سيستم‌هاي قديمي رو به كاهش نهاد و شبكه‌هاي كامپيوتري كه از اتصال تعدادي كامپيوتر شخصي به هم ايجاد مي‌شدند رواج يافتند. با استفاده از شبكه‌هاي كامپيوتري مي‌توان تعداد زيادي محاسبه‌گر (كامپيوترهاي شخصي و سرويس‌دهنده) را به صورت گره به هم متصل نمود. اما صرفاً با اتصال اين كامپيوترها به هم نمي‌توان به قدرت پردازش و ذخيره‌سازي بيشتري دست يافت؛ چرا كه منابع مختلف بين سيستم‌ها به صورت توزيع شده مستقر هستند و براي استفاده مؤثر از اين منابع لازم است مديريتي روي آن‌ها صورت گيرد. با همين انگيزه بود كه سيستم‌هاي توزيع شده (Distributed) به وجود آمدند. در واقع آن‌چه كه در اين‌جا با آن مواجه هستيم تغيير مدل محاسباتي از سيستم‌هاي متمركز به سيستم‌هاي توزيع شده است.

متن کامل مقاله ( 109 کيلوبايت )

 

معرفی برخی منابع آنلاين برنامه‌نويسی توزيع‌شده در لينوكس

معرفی برخی منابع آنلاين برنامه‌نويسی توزيع‌شده در لينوكس

http://linas.org/linux/corba.html

منابعی در مورد پيادهسازی استاندارد CORBA در لينوكس.

http://www.mico.org

پيادهسازی MICO از استاندارد CORBA .

http://www.dotgnu.org

ديدن اين سايت را به علاقهمندان تكنولوژی .NET توصيف میكنيم.

http://www.go-mono.org

اين سايت نيز تلاش دارد يك زيرساخت برای توليد برنامههای .NET ايجاد كند.