سیستم های توزیع شده Distributed Systems

0
346

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

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

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

معایب

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

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

یکی از مزایای مهم سیستم توزیع شده سرعت بالای اجرای برنامه هاست چرا که یک برنامه همزمان می تواند از چندین کامپیوتر برای اجراشدنش استفاده کند.

اجزاء سیستم توزیع شده

سخت افزار سیستم توزیع شده:

(شبکه)

نرم افزار سیستم توزیع شده:

(Middleware) میان افزار

Distributed Applications:

مثل gozilla ،IE  و … که برای ارتباط با سیستم توزیع شده مورد استفاده قرار می گیرد.

Middleware Service: نوعی نرم افزار است که درحقیقت اساس کار پیاده سازی سیستمهای توزیع شده را بر عهده داشته و بر روی تمامی کامپیوترها قرار می گیرد.

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

  • (Macking resource accessible) دسترسی به منابع
  • Transparency شفافیت
  • باز بودن Openness
  •  مقیاس پذیری Scalability

1- دسترسی  به  منابع

هدف سیستم توزیع شده این است که کاربران به راحتی به منابع راه دور دسترسی داشته باشند و آنها را به روش کنترل شده به اشتراک بگذارند.

دسترسی به منابع، ارتباط و تبادل اطلاعات را تسهیل می کند.

2- شفافیت

هدف عمده یک سیستم توزیع شده پنهان کردن این حقیقت است کهپردازنده ها و منابع آن بصورت فیزیکی در کامپیوترهای متعددتوزیع شده اند.

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

انواع شفافیت

  • دسترسیAccess: تفاوت در نمایشها و چگونگی دستیابی بهمنابع را از دید کاربران مخفی میکند.
  • مکانLocation: مکان منابع را از دید کاربران مخفی میکند )مثلاًاز طریقDNS.
  • مهاجرتMigration: انتقال منابع از مکانی به مکان دیگر را ازدید کاربران مخفی میکند.
  • جابجاییRelocation: انتقال منابع در حال استفاده از مکانی بهمکان دیگر را از دید کاربران مخفی میکند، مثل سیستم موبایل.
  • تکرارReplication: تکرار منابع را از دید کاربران مخفی میکند.
  • خرابیFailure: خرابی و ترمیم منابع را از دید کاربران مخفیمیکند.
  • همزمانیConcurrency: استفاده همزمان منابع داده توسط چندکاربر را مخفی میکند.

درجه شفافیت

با افزایش میزان شفافیت ممکن است کارایی سیستم کاهش یابد (شفافیت با کارایی سیستم در تضاد است).

3- Openness باز بودن

اینکه برروی هر سیستم عامل با هر سخت افزاری و با داشتن یک واسط مشترک (مانندJava Virtual Machine) بتوان برنامه را اجرانمود این خاصیت قابلیت حمل و تعامل را بالا میبرد.

استفاده از یک زبان واسطه میانی برای نوشتن برنامه ها روی تمامی کامپیوترهای سیستم توزیع شده Interface Definition Language (IDL)

4- مقیاس پذیری

این که بتوان یک سیستم را به راحتی گسترش داد (چندکامپیوتربه آن اضافه نمود).

مقیاسپذیری را که در مقابل متمرکز بودن استفاده میشود را حداقل ازسه جنبه میتوان بررسی کرد:

(اندازه و جغرافیا و مدیریت)

جنبه های مقیاس پذیری

اندازه: به آسانی بتوان کاربران و منابع را به سیستم اضافه کرد.

جغرافیا: سیستمی که در آن، کاربران و منابع بتوانند از هم دور باشند.

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

مقیاس پذیری و توزیع شدگی

  • سرویسهای متمرکز قابلیت توسعه ندارند.
  • در حالیکه در سیستم توزیع شده توسعه می تواند بر روی سهدسته سرویس صورت گیرد
    • 1– داده
    • 2– سرویس
    • 3– الگوریتم
  • براین اساس می توان داده های توزیع شده، سرویسهای توزیعشده و الگوریتم های توزیع شده داشت.
  • داده متمرکز: همه دادهها را یکجا ذخیره میکند.
  • داده غیرمتمرکز: دادهها در مکانهای مختلف ذخیره میشود.
  • سرویس متمرکز: تنها یک سرویسدهنده برایتمام کاربران.
  • سرویس غیرمتمرکز: چندین سرویسدهنده برای تمام کاربران.
  • الگوریتمهای متمرکز:
  • الگوریتمهای غیرمتمرکز:

ویژگیهای الگوریتمهای نا متمرکز

  1. هیچ ماشینی اطلاعات کاملی راجع به وضعیت سیستم ندارد.
  2. ماشینها تنها براساس اطلاعات محلی تصمیم میگیرد.
  3. خرابی در یک ماشین، به الگوریتم آسیب نمیرساند.
  4. هیچ تصوری راجع به ساعت سراسری وجود ندارد.

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

تکنیکهای مقیاس پذیری

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

تکنیکهای مقیاس پذیری: توزیع

سیستم نامگذاریDNS : نامها بطور سلسله مراتبی، به درختی از دامنه ها سازماندهی شده است که به چند منطقه Zone  تقسیم میشود.

تکنیکهای مقیاس پذیری: تکثیر

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

مثال: استفاده از حافظه پنهان

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

سیستم های توزیع شده

Pitfalls when Developing Distributed Systems

  • False assumptions made by first time developer:
  • The network is reliable.
  • The network is secure.
  • The network is homogeneous.
  • The topology does not change.
  • Latency is zero.
  • Bandwidth is infinite.
  • Transport cost is zero.
  • There is one administrator.

 

انواع سیستمهای توزیع شده

  • (Distributed Computing System) سیستم محاسبات توزیع شده

vClustercomputingsystems

vGrid computingsystems

  • (Distributed Information System) سیستم اطلاعات توزیع شده
    • TransactionProcessingSystems
    • Enterprise Application Integration (Exchange info via RPCorRMI)
  • سیستم تعبیه شده/فراگیر توزیع شده

(Distributed Pervasive (Ubiquities)/Embedded System)

  • Home Systems (e.g. Smart phones,PDAs)
  • Electronic Health care systems (Heart monitors, BAN: Body Area Networks)
  • Sensor Networks    (distributed Databases    connected wirelessly)

سیستم محاسبات توزیع شده

مشخصات یک Cluster Computing System

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

درCluster computing systems سخت افزار شامل مجموعهای ازPCهای معمولا همگن با سیستم عاملهای یکسان است که از طریق شبکه محلی پرسرعت به هم متصل می شود.