سیستم توزیع شده
سیستم توزیع شده
-
يک نرم افزار يا مجموعه نرم افزاری واحد و متحد الشکل بر روی هر گره اجرا می شود.
-
همه ماشینها یک کرنل مشابه را اجرا می کند.
-
هر کرنل منابع خود را کنترل می کند
-
شفافیت
-
انعطاف پذیری
-
قابلیت اطمینان
-
کارایی خوب
-
قابليت گسترش
-
در دسترس بودن یک فاکتور مهم مرتبط با اين سيستم ها است.
-
طراحی نباید به گونه ای باشد که نیاز به اجرای همزمان کامپوننت های اساسی باشد.
-
افزونگی بیشتر داده هاه باعث افزایش در دسترس بودن شده اما ناسازگاری را بیشتر میکند.
-
قدرت تحمل نقص(Fault tolerance) باعث پوشاندن خطاهای ایجاد شده توسط کاربر می شود.
-
بدون کارآیی مناسب کلیه موارد استفاده نرم افزار بی فایده می باشد.
-
اندازه گیری کارايی در سيستم های توزيع شده کار آسانی نيست.
-
برای رسيدن به کارايی بايد توازنی خاص در تعداد پیغامها و اندازه کامپوننهای توزیع شده بر قرار باشد.
-
قابليت گسترش یک اصل کلی برای توسعه سیستمهای توزیع شده می باشد.
-
برای رسيدن به اين قابليت بايد از کامپوننتها، جداول و الگوریتمهای متمرکز دوری کرد.
-
فقط باید از الگوریتمهای غیر متمرکز استفاده شود.
-
هیچ ماشینی نباید اطلاعات کاملی در مورد وضعیت سیستم داشته باشد.
-
ماشینها باید بر مبنای اطلاعات محلی خود تصمیم بگیرند.
-
خرابی یک ماشین نباید تاثیری در اجرای الگوریتم داشته باشد.
-
نباید تصوری ضمنی از وجود ساعتی عمومی وجود داشته باشد.
-
سرور- ایستگاه کاری
-
Processor pool
-
هیبرید
-
یکپارچه
-
انتقال پيام Message Passing
-
فراخوانی از راه دور رویه ها Remote Procedure Call
|
برنامه های کاربردی |
|
DBMS,TPS, … |
|
سیستم عامل توزیع شده |
|
سخت افزار |
-
مجتمع سازی داده ها و سرويس ها Encapsulating
-
پردازش همزمان
-
محافظت داده ها
-
دسترسی(Access)
-
موقعیت (Location)
-
همزمانی(Concurrency)
-
کپی برداری داده ها (Replication)
-
اشکالات (Failure)
-
تبديل پلتفرم (Migration)
-
کارآیی (Performance)
-
توسعه پذيری (Scaling)
-
مدل خادم / مخدوم (Client/Server)
-
مدل یکپارچه
-
مدل پایپ
-
فراخوانی رویه از راه دور(RPC)
-
کنترل منابع اختصاصی بر روی یک سرور متمرکز می شود.
-
هر سرور به طور بالقوه یک گلوگاه (Bottleneck) است.
-
برای بهبود کارآیی، پیاده سازی چندگانه برای توابع مشابه باید انجام شود.
-
طبیعت توزیع شدگی برخی از برنامه های دیتا بیس
-
افزایش قابلیت اطمینان و در دسترس بودن
-
امکان به اشتراک گذاشتن داده ها
-
افزایش کارآیی
-
دسترسی به سایتها و انتقال جستجو ها و داده ها
-
اطلاع از توزیع داده ها و Replication در کاتالوگ DDBMS
-
بکارگیری استراتژیهای مناسب برای اجرای پرس و جو ها و ... که دادهایشان در چندين سایت مختلف قرار دارد.
-
تصمیم گیری در مورد استفاده از کدامین داده Replicate شده
-
سازگار نگه داشتن کپی های داده های Replicate شده
-
قابلیت بازیابی داده ها از سایتهایی که دارای مشکل شده اند.
-
و ...
|
قانون صفر: سیستمهای توزیع شده باید برای کاربر نهایی دقیقا به صورت سیستمهای متمرکز باشند. |
-
استقلال محلی
-
عدم وابسته بودن به سایت مرکزی
-
عملیات پیوسته
-
استقلال Location
-
استقلال قطعات(Fragmentation)
-
استقلال Replication
-
پردازش توزیع شده جستجوها
-
مدیریت توزیع شده Transaction
-
استقلال سخت افزاری
-
استقلال سیستم عامل
-
استقلال شبکه
-
استقلال DBMS
-
سایتها باید تا حد امکان(بیشترین حد ممکن) مستقل باشند.
-
داده های محلی باید در محل ذخیره و مدیریت شوند(با توجه به در نظر گرفتن یکپارچگی و امنیت)
-
عملیات محلی باید حتما در خود محل اجرا شوند.
-
تمام عملیات در یک سایت باید توسط همان سایت کنترل شود. این بدین معناست که سایت X نباید برای انجام موفقیت آمیز عملیات خود وابسته به سایت Y باشد.
-
در برخی موارد، از دست دادن مقدار کمی از استقلال، اجتناب ناپذیر است:
-
به هیچ عنوان نباید برای یک سرویس مرکزی به یک سایت وابسته بود. بعنوان مثال نباید دارای یک پردازشگر مرکزی(متمرکز) جستجوها یا مدیریت مرکزی(متمرکز) Transaction بود، چرا که کل سیستم به یک سایت خاصی وابسته می شوند.
-
وابسته بودن به یک سایت خاص، حداقل به دو دلیل زیر غیر مطلوب می باشد:
-
در یک سیستم توزیع شده، عملیات زیر (در میان سایر عملیات) حتما باید توزیع شده باشند:
-
نه تنها کاربران نباید از محلی فیزیکی ذخیره داده ها مطلع باشند، بلکه از لحاظ منطقی باید به تصور کنند که داده ها در سایتهای محلی خودشان قرار دارد.
-
ساده کردن برنامه های کاربر و فعالیتهای ترمینال
-
اجازه تغییر سکو
-
فراهم کردن استقلال Location برای عملیات ساده بازیابی ساده تر از عملیات به روز رسانی می باشد.
-
داشتن طرحی برای نام گذاری داده توزیع شده(Distributed Data Naming Scheme) و ایجاد پشتیبانی مناسب از طریق زیر سیستم دیکشنری
-
مواردی که باید در مورد کاربران پیاده سازی شود:
-
دسترسی های هر کاربر در هر سایت به وی اختصاص داده شود.
-
سیستمهای توزیع شده از قطعه قطعه شدن داده ها پشتیبانی می کنند، منوط به اینکه یک رابطه خاص قابلیت تقسیم به قسمتهای مختلف برای ذخیره در محلهای فیزیکی گوناگون را داشته باشد. سیستمی که این قابلیت را داشته باشد، از استقلال قطعات نیز پشتیبانی می کند.
-
کاربران باید از لحاظ منطقی به گونه ای تصور کنند که گویا اصلا داده ها در قسمتهای مختلف ذخیره نشده اند.
-
از دلایل قطعه قطعه شدن داده ها، می توان به افزایش کارآیی اشاره کرد.
-
قطعه قطعه شدن افقی(Select)
-
قطعه قطعه شدن عمودی(Project)
-
قطعه قطعه شدن باید در متن یک پایگاه داده توزیع شده تعریف شود.
-
استقلال قطعات همانند استقلال Location باعث ساده تر شدن برنامه های کاربر و فعالیتهای ترمینال می شود.
-
داده هایی که به کاربران نمایش داده می شود، از ترکیب منطقی قطعات مختلف (به واسطه الحاقها(Joins) و اجتماعات(Unions) مناسب)به دست می آید.
|
شماره کارمندی |
دپارتمان |
حقوق |
|
E1 |
DX |
450.000 |
|
E2 |
DY |
400.000 |
|
E3 |
DZ |
500.000 |
|
E4 |
DY |
630.000 |
|
E5 |
DZ |
400.000 |
|
شماره کارمندی |
دپارتمان |
حقوق |
|
شماره کارمندی |
دپارتمان |
حقوق |
|
E2 |
DY |
400.000 |
|
E1 |
DX |
450.000 |
|
E4 |
DY |
630.000 |
|
E3 |
DZ |
500.000 |
|
|
|
|
|
E5 |
DZ |
400.000 |
-
کاربران باید از لحاظ منطقی به گونه ای تصور کنند که گویا اصلا داده ها تکرار(replicated) نشده اند.
-
سیستم توزیع شده از کپی برداری دادها پشتیبانی می کند، به شرط آن که یک رابطه( یا بطور کلی تر یک قطعه از رابطه) بتواند از لحاظ فیزیکی در کپی های مجزا و در سایتهای مجزا ذخیره شود.
-
کپی برداری داده ها باید همانند قطعه قطعه شدن برای کاربران شفاف(غیر قابل تشخیص) باشد.
-
دلایل عمده کپی برداری داده ها
-
مشکل انتشار به روز رسانی
-
استقلال Replication همانند استقلال قطعات و استقلال Location باعث ساده تر شدن برنامه های کاربر و فعالیتهای ترمینال می شود.
-
رو نوشت از داده ها (Snapshots)
|
شماره کارمندی |
دپارتمان |
حقوق |
|
E1 |
DX |
450.000 |
|
E2 |
DY |
400.000 |
|
E3 |
DZ |
500.000 |
|
E4 |
DY |
630.000 |
|
E5 |
DZ |
400.000 |
|
شماره کارمندی |
دپارتمان |
حقوق |
|
شماره کارمندی |
دپارتمان |
حقوق |
|
E2 |
DY |
400.000 |
|
E1 |
DX |
450.000 |
|
E4 |
DY |
630.000 |
|
E3 |
DZ |
500.000 |
|
|
|
|
|
E5 |
DZ |
400.000 |
|
شماره کارمندی |
دپارتمان |
حقوق |
|
شماره کارمندی |
دپارتمان |
حقوق |
|
E1 |
DX |
450.000 |
|
E2 |
DY |
400.000 |
|
E3 |
DZ |
500.000 |
|
E4 |
DY |
630.000 |
|
E5 |
DZ |
400.000 |
|
|
|
|
-
یکی از مهمترین و حیاتی ترین نکات در مرود سیستمهای پایگاه داده توزیع شده، انتخاب استراتژی مناسب برای پردازش توزیع شده جستجو(Query) می باشد.
-
پردازش جستجو در سیستم های توزیع شده شامل موارد زیر می باشد:
-
عملیات محلی ورودی و خروجی(I/O) و CPU در سایتهای مجزا
-
تبادل اطلاعات میان سایتهای فوق الذکر
-
-
Query Compilation Ahead Of Time
-
Views That Span Multiple Sites
-
integrity constraints that within DDBS that span multiple sites
-
دو نکته مهم برای مدیریت Transaction، کنترل بازیابی(Recovery Control ) و کنترل سازگاری(Consistency Control) می باشد که نیاز به اعمال و دقت بیشتری در محیط های توزیع شده دارند.
-
در یک سیستم توزیع شده، یک Transaction می تواند باعث اجرای کد در چندین سایت شده که همین امر خود می تواند باعث عملیات به روز رسانی در سایتهای مختلف شود.
-
هر Transaction را می توان شامل چندید Agent در نظر گرفت که هر Agent، فرآیندی است که از طرف Transaction در سایت به خصوصی اجرا می شود.
Xgrid : اپل همراه Tiger Server نرمافزار 1.0 Xgrid را نيز عرضه ميكند. نرمافزار رايانش توزيعي اپل، كار ساخت ابررايانههاي موردنياز مراكز علمي و تحقيقاتي را بسيار سادهتر و كم هزينهتر از قبل خواهد ساخت. Xgrid 1.0 براي انجام پردازشهاي توزيعي از ده هزار كار در انتظار پردازش، ده هزار وظيفه در هر كار در انتظار پردازش، دو گيگابايت داده در هر كار منتظر پردازش، يك گيگابايت داده در هر وظيفه و مجموعاً ده گيگابايت نتيجه مرجوعي پشتيباني ميكند.