پایان نامه دوره کارشناسی
مهندسی فناوری اطلاعات و ارتباطات(IT)
موضوع :
پایگاه های داده توزیع شده و کاربرد آن درسیستم های توزیع شده
استاد راهنما :
نام دانشجو :
سپاسگزاری
با سپاس از سه وجود مقدس :
آنان که ناتوان شدند تا ما به توانایی برسیم
موهایشان سپید شد تا ما رو سفید شویم
و عاشقانه سوختند تا گرمابخش وجودمان و روشنگر راهمان باشند
پدرانمان
مادرانمان
استادانمان
تقدیم به :
پدر و مادرم عزیزم که تمام زندگی ام را مدیون آنها هستم.
فهرست مطالب
عنوان صفحه
فصل اول :مقدمه 1
1-1) مقدمه ای بر پایگاه داده 2
1-2) تاریخچه پایگاه داده 3
فصل دوم :پایگاه های داده توزیع شده 5
2-1) مفهوم پایگاه داده 6
2-2-1 داده(Data)واطلاعات( Information) 6
2-2-2) موجودی( Entity) 6
2-2-3) صفت خاصه ( Attribute ) 6
2-2-3) روش غیر بانک اطلاعاتی 7
2-2-3) روش بانک اطلاعاتی 8
2-2-4)تعریف بانک اطلاعاتی ( Date Base ) 8
2-2-5) سیستم مدیریت بانک اطلاعات ( DBMS ) 9
2-2-5) محیط DBMS 9
2-2-5) داده ها ( Data ) 10
2-2-5) سخت افزار ( Hardware ) 10
2-2-5) نرم افزار ( Software ) 10
2-2-5) کاربران ( Users ) 11
2-2-5) اصول معماری سیستم های بانک اطلاعاتی 11
2-2-6) وظایف DBMS 12
2-2-6) زبان تعریف داده ها(DDL) 13
2-2-6) زبان پردازش و مدیریت داده ها (DML) 13
2-2-6) دیکشنری داده ها 13
2-2-7) آشنایی با جداول و اجزاء تشکیل دهنده آنها در بانک های اطلاعاتی 14
2-2-7) رکورد 14
2-2-7) فیلد 15
2-8) آشنایی با روشهای ارتباط و مدلهای بانک های اطلاعاتی 15
2-8-1) مدل سلسله مراتبی 15
2-8-2) مدل شبکه ای 16
2-8-3) مدل رابطه ای 16
2-8-3) خواص ارتباطات رابطه ای 17
2-8-3) کلید در مدل رابطه ای 18
2-8-3) سیستم بانک اطلاعات رابطه ای 19
2-9) مزایای سیستم های بانک اطلاعاتی 19
2-10) معماری پایگاه داده 20
2-01-1) سیستمهای متمرکز 21
2-01-2) سیستم های مشتری/خدمتگزار 22
2-01-3) سیستم های موازی 26
2-01-3) اجرای پرس و جو ها در معماری موازی 29
2-01-3) عملگرهای تک عملوندی در معماری موازی 29
2-01-3) مرتب سازی 30
2-01-3) عمل Join 30
2-01-4) سیستم های توزیع شده 31
2-11) مقدمه ای بر پایگاه داده توزیع شده 32
2-12) تعریف سیستم توزیع شده 33
2-12-1) مواردی که در طراحی سیستم توزیع شده باید در نظر گرفت : 33
2-12-1) شفافیت داده (rencyTranspa) 34
2-12-1) قابلیت اطمینان 35
2-12-1) کارآیی 36
2-12-2) قابلیت گسترش 36
2-12-2) خصوصیات الگوریتمهای غیرمتمرکز 36
2-13) انواع پایگاه داده توزیع شده 37
2-13-1) پایگاه داده توزیع شده همگن 37
2-13-2) پایگاه داده توزیع شده ناهمگن 37
2-14) ذخیره اطلاعات به صورت توزیع شده 38
2-14-1) انواع Fragmentation 38
2-14-2) محاسن و معایب Replication 38
2-15) تراکنشهای توزیع شده 40
2-16) گونه های مختلف سیستمهای توزیع شده 41
2-17) بخشهای اصلی سیستم عامل توزیع شده 41
2-17-1) نحوه دسترسی به منابع 42
2-18) مدلهایی برای تعامل فرآیندها 42
2-81-1) مدل کلاینت سرور 43
2-81-2) مدل یکپارچه 43
2-81-3) مدلپایپ 44
2-81-4) مدل RPC 44
2-19) دلایل توزیع داده 44
2-02) فاکتورهای توسعه سیستم پایگاه داده توزیع شده 45
2-12) قانونهایی برای سیستمهای توزیع شده 45
2-12-1) استقلال محلی 46
2-12-2) عدم وابسته بودن به سایت مرکزی 47
2-12-3) عملیات پیوسته 48
2-12-4) استقلال Location 48
2-12-5) استقلال قطعات(Fragmentation) 49
2-12-6) استقلال Replication 50
2-12-7) پردازش توزیع شده جستجوها 50
2-12-8) مدیریت توزیع شده Transaction 51
2-12-9) استقلال سخت افزاری 52
2-12-10) استقلال سیستم عامل 52
2-12-11) استقلال شبکه 52
2-21-12) استقلال DBMS 53
2-22) مدیریت همزمانی در بانکهای اطلاعاتی توزیع شده 53
2-22-1) مدیر قفل ساده ((Single Lock Manager 53
2-22-2) کپی اصلی (Primary Copy ) 54
2-22-3) پروتکل اصلی (Majority Protocol) 54
2-22-4) Biased Protocol 55
2-22-5) Timestamping 55
2-23) مدیریت بن بست (Dead lock) 56
2-23-1) حل مسئله بن بست 57
2-24) مدیریت کاتالوگ توزیع شده 58
2-24-1) نام گذاری اشیاء 58
2-24-2) ساختار کاتالوگ 59
2-25) معماری سیستمهای توزیع شده 59
2-26-1) معماریهای مختلف برای سیستم مدیریت پایگاه داده های توزیع شده 60
2-26-1) سیستمهای مشتری/خدمتگزار(Client/Server) 60
2-26-1) سیستم سرورهای همکار (Collaborating Server) 61
2-26-1)سیستمهای میان افزار (MiddleWare) 62
فصل سوم: سیستم های توزیع شده 63
3-1 تعریف سیستم توزیع شده 64
3-2 اهداف 65
3-2-1 دسترسی به منابع 65
3-2-2 شفافیت توزیع 66
3-2-3 بازبودن 66
3-2-4گسترش پذیری یا توسعه پذیری 67
3-2-5 طرح اشکال ها 68
3-3 انواع سیستم های توزیع شده 69
3-3-1 سیستم های محاسبات توزیع شده 69
3-3-2 سیستم های اطلاعات توزیع شده 70
3-3-4 سیستم های فراگیر توزیع شده 71
3-4 معماری ها 72
3-5 سبک های معماری 73
3-6 معماری های سیستم 75
3-6-1 معماری متمرکز 75
3-6-2 معماری های نامتمرکز 76
3-7 معماری های ترکیبی 77
3-7-1سیستم های سرور لبه ای 77
3-7-2 سیستم های همکاری کننده ی توزیع شده 78
3-8 معماری یا میان افزار ؟ 79
3-8-1 رهگیرها 79
3-8-2 روش های کلی برای نرم افزار تطبیق پذیر 80
3-8-3 بحث 80
3-9 خود مدیریتی در سیستم های توزیع شده 81
3-9-1 مدل کنترل بازخوردی 82
فصل چهارم : پایگاه های داده توزیع شده و کاربرد آن در سیستم های توزیع شده 84
طرح یک سیستم استاندارد توزیع شده برای آموزش الکترونیکی 85
(Design of a standard distributed e-learning system) 85
فصل5 : نتیجه گیری و پیشنهادات 105
پیوست ها 108
منابع 119
فهرست اشکال
عنوان صفحه
شکل 2-1: معماری متمرکز 21
شکل 2-2: معماری مشتری/ خدمتگزار 23
شکل 2-3: ارتباط front-endوback-end 24
شکل 2-4: ارتباط بین پردازنده ها 26
شکل 2-5: معماری موازی 28
شکل 2-6: معماری توزیع شده 32
شکل 2-7 : پایگاه داده توزیع شده 33
شکل 2-8 : تراکنش توزیع شده 41
شکل2-10: Timestamp 56
شکل 2-11: معماری توزیع شده 59
شکل 2-12: سیستم مشتری/ خدمتگزار 61
شکل2-13: سرورهای همکار 61
شکل 3-1: سیستم توزیع شده 64
شکل 3-2: گسترش پذیری یاتوسعه پذیری 67
شکل 3-3: انواع سیستم های توزیع شده 69
شکل 3-4: سبک های معماری 72
شکل 3-5: معماری سیستم 75
شکل 3-6: سرورلب های 77
شکل 3-7: کنترل بازخوردی 82
شکل 4-1 : سیستمLMS , LCMS 99
شکل 4-2 : ارتباط بینLMS , LCMS 100
شکل 4-3 : ارتباط بین پایگاههای داده توزیع شده 101
فصل اول
مقدمه
1-1) مقدمه ای بر پایگاه داده
دادگان (پایگاه داده ها یا بانک اطلاعاتی) به مجموعه ای از اطلاعات با ساختار منظم و سامانمند گفته می شود.این پایگاه های اطلاعاتی معمولاً در قالبی که برای دستگاه ها و رایانه ها قابل خواندن و قابل دسترسی باشند ذخیره می شوند. البته چنین شیوه ذخیره سازی اطلاعات تنها روش موجود نیست و شیوه های دیگری مانند ذخیره سازی ساده در پرونده ها نیز استفاده می گردد. مسئله ای که ذخیره سازی داده ها در دادگان را موثر می سازد وجود یک ساختار مفهومی است برای ذخیره سازی و روابط بین داده ها است.
پایگاه داده در اصل مجموعه ای سازمان یافته از اطلاعات است.این واژه از دانش رایانه سرچشمه می گیرد،اما کاربر وسیع و عمومی نیز دارد، این وسعت به اندازه ای است که مرکز اروپایی پایگاه داده (که تعاریف خردمندانه ای برای پایگاه داده ایجاد می کند) شامل تعاریف غیر الکترونیکی برای پایگاه داده می باشد. در این نوشتار به کاربرد های تکنیکی برای این اصطلاح محدود می شود.
یک تعریف ممکن این است که: پایگاه داده مجموعه ای از رکورد های ذخیره شده در رایانه با یک روش سیستماتیک (اصولی) مثل یک برنامه رایانه ای است که می تواند به سوالات کاربر پاسخ دهد. برای ذخیره و بازیابی بهتر، هررکورد معمولا به صورت مجموعه ای از اجزای داده ای یا رویدادها سازماندهی می گردد. بخش های بازیابی شده درهرپرسش به اطلاعاتی تبدیل می شود که برای اتخاذ یک تصمیم کاربرد دارد. برنامه رایانه ای که برای مدیریت و پرسش و پاسخ بین پایگاه های داده ای استفاده می شود را مدیر سیستم پایگاه داده ای یا به اختصار1(DBMS)می نامیم.خصوصیات وطراحی سیستم های پایگاه داده ای درعلم اطلاعات مطالعه می شود.مفهوم اصلی پایگاه داده این است که پایگاهداده مجموعه ای ازرکورد ها یا تکه هایی از یکشناخت است.نوعادر یک پایگاه داده توصیف ساخت یافته ای برای موجودیت های نگه داری شده در پایگاه داده وجوددارد: این توصیف با یک الگو یا مدل شناخته می شود.مدل توصیفی، اشیا پایگاه های داده و ارتباط بین آنها را نشان می دهد. روش های متفاوتی برای سازماندهی این مدل ها وجود دارد که به آنها مدلهای پایگاه داده گوییم. پرکاربرد ترین مدلی که امروزه بسیار استفاده می شود، مدل رابطه ای است که به طورعام به صورت زیرتعریف می شود: نمایش تمام اطلاعاتی که به فرم جداول مرتبط که هریک از سطرها و ستونها تشکیل شده است(تعریف حقیقی آن در علم ریاضیات برسی می شود). در این مدل وابستگی ها به کمک مقادیر مشترک در بیش از یک جدول نشان داده می شود.مدل های دیگری مثل مدل سلسله مراتب و مدل شبکه ای به طورصریح تری ارتباط هارا نشان می دهند.در مباحث تخصصی تر اصتلاح دادگان یا پایگاه داده به صورت مجموعه ای از رکورد های مرتبط باهم تعریف می شود. بسیاری ازحرفه ای ها مجموعه ای از داده هایی با خصوصیات یکسان به منظورایجاد یک پایگاه داده ای یکتا استفاده می کنند.معمولا DBMS ها بر اساس مدل هایی که استفاده می کنند تقسیم بندی می شوند: ارتباطی،شی گرا، شبکه ای و امثال آن. مدل های داده ای به تعیین زبانهای دسترسی به پایگاه های داده علاقه مند هستند. بخش قابل توجهی از مهندسی DBMS مستقل از مدل های می باشد و به فاکتور هایی همچون اجرا، همزمانی،جامعیت و بازیافت از خطاهای سخت افزاری وابسطه است.در این سطح تفاوت های بسیاری بین محصولات وجود دارد.
1-2) تاریخچه پایگاه داده
اولین کاربردهای اصطلاح پایگاه داده بهJune 1963باز می گردد، یعنی زمانی که شرکت System CorporationDevelopmentمسئولیت اجرایی یک طرح به نام "توسعه ومدیریت محاسباتی یک پایگاه داده ای مرکزی" را بر عهده گرفت. پایگاه داده به عنوان یک واژه واحد در اوایل دهه 70 در اروپا و دراواخر دهه 70 در خبرنامه های معتبرآمریکایی به کار رفت.(بانک داده ای یا Databankدر اوایل سال 1966 در روزنامه واشنگتن کار رفت)
تصویر:اولین سیستم مدیریت پایگاه داده در دهه 60 گسترش یافت.ازپیشگامان این شاخه چارلزباخمن می باشد. مقالات باخمن این را نشان داد که فرضیات او کاربرد بسیار موثرتری برای دسترسی به وسایل ذخیره سازیرا محیا می کند. در آن زمانها پردازش داده بر پایه کارت های منگنه و نوار های مغناطیسی بود که پردازش سری اطلاعات را مهیا می کند. دو نوع مدل داده ای در آن زمانها ایجاد شد:CODASYL موجب توسعه مدل شبکه ای شدکه ریشه درنظریات باخمن داشت و مدل سلسله مراتبی که توسطRockwellNorth American ایجاد شد و بعدا با اقباس از آن شرکت IBMمحصولIMSرا تولید نمود.
مدل رابطه ای توسط E. F. Codd در سال 1970 ارائه شد.او مدل های موجود را مورد انتقاد قرار می داد. برای مدتی نسبتا طولانی این مدل درمجامع علمی مورد تایید بود. اولین محصول موفق برای میکرو کامپیوترها dBASE بودکه برای سیستم عامل هایCP/M و PC-DOS/MS-DOS ساخته شد. در جریان سال 1980 پژوهش برروی مدل توزیع شده(distributed database) وماشینهای دادگانی(database machines) متمرکز شد، اما تاثیرکمی بربازار گذاشت.در سال 1990 توجهات به طرف مدل شی گرا(object-orienteddatabases) جلب شد. این مدل جهت کنترل داده های مرکب لازم بود و به سادگی بر روی پایگاه داده های خاص، مهندسی داده(شامل مهندسی نرم افزار منابع) و داده های چند رسانه ای کار می کرد.
در سال 2000 نوآوری تازه ای رخ داد و دادگان اکس ام ال (XML)به وجود آمد. هدف این مدل از بین بردن تفاوت بین مستندات و داده ها است و کمک می کند که منابع اطلاعاتی چه ساخت یافته باشند یا نه درکنارهم قرار گیرند.
فصل دوم
پایگاه های داده توزیع شده
2-1) مفهوم پایگاه داده
2-2-1) داده(Data)واطلاعات( Information)
دو اصطلاح داده و اطلاعات که بیشتر اوقات به جای یکدیگر برده می شوند در سیستمهای اطلاعاتی مفاهیم متفاوتی دارند. داده ها در این سیستمهای اطلاعاتی عبارتند از : کلمات و ارزشهای واقعی که از طریق مشاهده و تحقیق بدست می آیند درحالی که اطلاعات داده های پردازش شده می باشند که برای گیرنده قابل درک بوده وبا دانستن آن شروع به تصمیم گیری می کند. به عبارت دیگر داده نمودی از وقایع، معلومات،رخدادها ،پدیده ها و مفاهیم می باشد در حالیکه اطلاعات تکوین و پردازش یا تفسیر داده بوده و شامل خواص ارتباط دهندگیو انتقال دهندگی می باشد.
2-2-2) موجودی( Entity)
موجودیت مصداق کلی هر پدیده،فرد یا شی ء یا مفهومی است که می خواهیم در مورد آن اطلاعاتی داشته باشیم به عنوان مثال اگر در نظر داریم یک سیستم پایگاه داده برای یک دبیرستان پیاده سازی کنیم مواردی چون دانش آموزان ، دبیران،دروس ،کلاسها و …. جزء موجودیت های سیستم بشمار می روند.
2-2-3) صفت خاصه ( Attribute )
هر موجودیت از یکسری صفات تشکیل شده است که دارای مقادیر واقعی هستند و به عباراتی وجه تمایز یک موجودیت از موجودیت دیگر بشمار می رود. به عنوان مثال در سیستم دانشگاه اگر موجودیت دانشجو را در نظر بگیریم می توانیم صفات خاصه: نام ،نام خنوادگی،سن،سال تولد،رشته تحصیلی،سال ورود و … را برگزینیم و یا برای موجودیت درس: نوع موجودیت: درس صفات خاصه: کد درس،نام درس، تعدادواحد ایجاد سیستم خودکارذخیره و بازیابی داده ها دو روش کلی برای ذخیره ساختن و بازیابی خودکارداده ها وجود دارد.
1- روش استفاده از سیستمهای اطلاعاتی ساده یا روش غیربانکاطلاعاتی
2-روش استفاده از بانکهای اطلاعاتی
2-2-3) روش غیر بانک اطلاعاتی
در این روش ،داده ها در فایلهای جداگانه ای قرار می گیرند و برای استفاده از داده های موجود در آن فایلها،سیستمهای جداگانه ای طراحی می شوند. به این نوع سیستمها سیستم پردازش فایل ( File-System ) گفته می شود. در این سیستمها هر برنامه ی کاربردی به فایل اطلاعاتی مربوط به خود مراجعه می کند.
کاربر1 برنامه کاربردی 1 فایل1
کاربر 2 برنامه کاربردی2فایل 2
کاربر 3 برنامه کاربردی 3 فایل 3
در این روش بسیاری از داده های مورد نیاز کاربر 1 در بین داده های در اختیار کاربر 2 و 3 وجود دارد ودر نتیجه عدم تجمع داده ها وعدم وحدت ذخیره سازی اطلاعات مورد نیاز کاربر 1 در فایل 1 با تکرارذخیره سازی اطلاعات روبرو هستیم و این به معنی افزونگی داده است. ازطرفی حفظ امنیت این سیستم مشکل استدرصورت ایجاد تغییراتی در فایل 1در زمینه اطلاعات موجود در آن، برنامه کاربردی مربوط نیز باید تغییرپیداکند.
2-2-3) روش بانک اطلاعاتی
در این روش کلیه داده ها به صورت مجتمع یا بانک ذخیره شده ولی هرکاربر دید خاص خودرا نسبت به داده ها دارد. در این صورت کاربران مختلف می توانند بصورت مشترک با بانک کار کنند همچنین افزونگی داده ها به حداقل ممکن کاهش می یابد. در این روش نرم افزار مدیریت بانک اطلاعاتی( DBMS ) به عنوان واسطه بین برنامه های کاربردی و بانک اطلاعاتی ایفای نقش می کند لذا امنیت داده ها در این روش بیشتر است.
برنامه کاربردی 1 برنامه کاربردی1
برنامه کاربردی 2 برنامه کاربردی2 DBMS فایل
برنامه کاربردی 3 برنامه کاربردی 3
2-2-4)تعریف بانک اطلاعاتی ( Date Base )
به صورت جامع می توان گفت: " بانک اطلاعاتی یا پایگاه داده ها مجموعه ای سازمان یافته از اطلاعات و داده های مرتبط به هم است " و دریک تعریف کاملتر بانک اطلاعاتی عبارت است از "مجموعه ای از داده های ذخیره شده بصورت مجتمع و مبتنی بر یک ساختار، با حداقل افزونگی، تحت کنترل متمرکز که استفاده از آن بصورت اشتراکی و همزمان نیز مسیر می باشد."
•مجتمع و مبتنی بر یک ساختار بدین معنی است که کل داده های عملیاتی محیط مورد نظر در یک ساختار مشخص به صورت یکجا ذخیره شده باشند و لازمه هر تجمعی وجود یک ساختار است.
•منظور از عدم افزونگی در یک تعبیر ساده به حداقل رساندن ذخیره داده های تکراری و بهینه سازی استفاده از محیط های ذخیره اطلاعات میباشد.
2-2-5) سیستم مدیریت بانک اطلاعات ( DBMS )
DBMS مهمترین جزء نرم افزاری در سیستم بانک اطلاعاتی است که به عنوان رابط بین بانک اطلاعاتی و کاربر عمل می نماید، به طوریکه کلیه فایلهای بانک اطلاعاتی فقط در اختیار این نرم افزار قدرتمند قرار گرفته و کلیه دستیابی ها به بانک از طریقDBMSصورت می پذیرد. آنچه در مورد یک سیستم مدیریت بانک اطلاعاتی اتفاق می افتد عبارت است از :
1- کاربر با استفاده از بعضی زیر زبان داده ها مانند SQL( که به تفضیل در فصل های آتی به آن اشاره خواهد شد) در خواست یک دسترسی می نماید.
2- DBMS در خواست مورد نظر را دریافت وآن را تحلیل می کند.
3- DBMS بهترتیب دید کاربر از داده های ذخیره شده و حفظ امنیت داده در محیط بانک اطلاعاتی را بازرسی و مرور می کند. ( کنترل امنیت و جامعیت داده ها )
4- DBMS عملکردهای لازم را برای داده های ذخیره شده اجرا می کند.
برنامه های کاربران DBMSسیستم عامل فایل و داده ها
2-2-5) محیط DBMS
اجزاء اصلی سیستم بانک اطلاعاتی عبارتند از : داده ها، سخت افزار، نرم افزار و کاربران که در این جا به تشریح آنها خواهیم پرداخت.
2-2-5) داده ها ( Data )
داده که قبلا به آن اشاره گردید از مهمترین اجزاء DBMS می باشد.مجتمع و اشتراکی بودن داده ها بهعنوان مزایای اصلی سیستم پایگاه داده ها در محیط های بزرگ بشمار میرود.
2-2-5) سخت افزار ( Hardware )
سخت افزار مورد نیاز DBMS معمولا عبارتند از:
1- سخت افزار ذخیره سازی داده: در عملیات ذخیره سازی داده ها درمحیط های بانک اطلاعاتی ازدیسکهای سریع و با ظرفیت بالا استفاده می شود.
2- سخت افزار پردازنده های مرکزی: با پیشرفت فناوری انفورماتیک، سیستم هایی به بازار عرضه شده اند که از نظر معماری پردازنده مرکزی، حافظه اصلی و سایر قسمتها از پیکربندی ویژه ای جهت ذخیره و بازیابی اطلاعات برخوردارند و به لحاظ این ویژگی ها کاربرد بیشتری درمحیط های بانک اطلاعاتی خواهند داشت.
3- سخت افزارارتباطی: مجموعه امکانات سخت افزاری که برای برقراری ارتباط بین کامپیوترها ودستگاهها جانبی وهمچنین مابین چندین کامپیوتر( به صورت شبکه ای) استفاده می شوند را تحت عنوان سخت افزارهای ارتباطی بانک های اطلاعاتی می شناسند.
2-2-5) نرم افزار ( Software )
نرم افزار شامل خود DBMS و برنامه های کاربردی، سیستم عامل و نیز نرم افزارهای شبکه ای است. برای استفاده DBMS در محیط شبکه عمدتا از برنامه های کاربردی نوشته شده به زبانهای برنامه نویسی نسل سوم مانند C ، کوبول، پاسکال و …. و یا زبانهای نسل چهارم مانند SQL استفاده می شود. هدف نرم افزارهای DBMS ارائه چهار ابزار اصلی است که عبارتند از :
1- زبانهای پرس و جو ( QueryLanguage )
2- گزارش ها ( Report )
3- فرم ها ( Forms )
4- تصاویر ( Graphics )
2-2-5) کاربران ( Users )
کاربران یا کسانی که به نحوی با سیستم در ارتباط هستند به چهار دسته مهم تقسیم می شوند:
1- مدیران بانک اطلاعاتی
2- طراحان بانک اطلاعاتی
3- برنامه نویسان بانک اطلاعاتی
4- کاربران نهایی یا استفاده کنندگان سیستم ( End Users )
2-2-5) اصول معماری سیستم های بانک اطلاعاتی
با توجه به گفته های بالا در می یابیم که سیستم بانک اطلاعاتی ،سیستمی چند سطحی است. این سیستم بوسیله امکانات سیستم مدیریت بانک اطلاعاتی ایجاد شده و در اختیار کاربران قرار می گیرد. در نظر داشته باشیدکهاین سیستم چند سطحی دارای یک معماری خاص می باشد که بیانگر نحوه تعریف داده ها در سطوح موردنظر است.
2-2-6) وظایف DBMS
وظایف سیستم مدیریت بانک اطلاعاتی بستگی به نوع کاربران آن دارد این وظایف در چارچوب واحدهای نرم افزاری طراحی و پیاده سازی می شوند. هرچند وظایفDBMS در سیستم های مختلف تا حدودی متفاوت است، اما به طور کلی این وظایف عبارتند از:
• تعریف داده ها
• تامین امکان دستکاری داده ها
• ایجاد دیکشنری داده ها
• کنترل امنیت و جامعیت داده ها
• ایجاد امکان بازیابی از بانک اطلاعاتی
• بهنگام سازی داده ها
• تامین امکان کنترل کارایی
• تامین تسهیلاتی برای کاربران به منطور توسعه سیستم
برای انجام این وظایف می بایست واحدهای نرم افزاری مربوط در سیستم مدیریت بانک اطلاعاتی وجود داشته باشد.هر کدام از این واحدها ممکن است مرکب از چند واحد کوچکتر باشند. توجه داشته باشید که هر سیستم نیازمند یک بخش کنترلی است. در سیستم مدیریت بانک اطلاعاتی ، مجموعه واحدهایی که وظایف کنترلیرابر عهده دارند اصطلاحا به سیستم کنترل بانک اطلاعاتی معروف می باشند. به طورکلی واحدهای زیردرسیستم کنترل بانک اطلاعاتی وجود دارند:
• واحد نظارت بر اجرای برنامه کاربر
• واحد کامپایل کننده احکام و درخواستها
• واحد دستیابی به بانک فیزیکی
• واحد ثبت رویدادها و تغیراتی که در بانک ایجاد می شوند.
2-2-6) زبان تعریف داده ها 2(DDL)
همانطور که اشاره شد تعریف داده ها یکی از وظایف DBMS است. DDL از زبانهای فرعی داده ای جهت تعریف داده ها است که از آن جهت تعریف صفحات مشخصه و خصوصیات یک بانک استفاده می شود. ساختار رکوردها، تعریف فیلدها، محل فایلها و شیوه ذخیره سازی داده ها دربانک به وسیله احکام DDL انجام می پذیرد.
2-2-6) زبان پردازش و مدیریت داده ها 3 (DML)
تامین امکان دستکاری داده ها نیز از وظایفDBMS عنوان شد. زبان دستکاری ،پردازش و مدیریت بانک اطلاعاتی به زبانی گفته می شود که برای درج داده ها بروز رسانی آنها و اجرای پرس و جو از یک بانک اطلاعاتی مورد استفاده قرارمی گیرد.این زبانها اغلب دارای قابلیت انجام محاسبات ریاضی وآماری می باشندکه به وسیله آنها عملیات گزارش گیری از بانک اطلاعاتی آسان تر خواهد شد.
2-2-6) دیکشنری داده ها
یکی دیگر از وظایف DBMS ، ایجاد دیکشنری یا فرهنگ داده است. دیکشنری داده ها یکی از امکاناتی است که درمحیط های بانک اطلاعاتی در اختیاراداره کنندگان بانک قرار می گیرد.دیکشنری داده ها که به آن راهنمای سیستم نیز می گویند در واقع بانکی در مورد خود بانک و داده های ذخیره شده در آن است. بطور کلی اطلاعاتو محتوای دیکشنری داده ها بشرح زیر می باشد:
• شرح ساختار و پیکر بندی فیزیکی بانک .
• تاریخ ایجاد داده ها .
• مکانسیم ورود داده ها به بانک .
• ارتباط بین برنامه های کاربردی و داده ها .
• مشخصات کاربران و چگونگی حق دستیابی آنها .
2-2-7) آشنایی با جداول و اجزاء تشکیل دهنده آنها در بانک های اطلاعاتی
جدول مهمترین ساختار داده ای در سیستم بانک های اطلاعاتی رابطه ای است ( در ادامه این فصل به تشریح سیستم های رابطه ای خواهیم پرداخت. ) جدول در سیستم رابطه ای تشکیل شده از چندین سطروستون می باشد که مقادیر داده درهرسطرو ستون در طول زمان متغیرخواهد بود. به طورکلی جداول ساختار بنیادین رابطه ها هستند. سطرهای موجود در جداول را " رکورد" و ستونهای آن را " فیلد" می نامند.
2-2-7) رکورد
رکورد یک ساختار داده ای متشکل از مجموعه فیلدهاست که هر یک از این فیلدها نام و نوع خاص خود را دارند. برخلاف یک آرایه که تمام عناصر آن نمایانگر انواع یکسانی از اطلاعات هستند و دستیابی به آنها با یک شاخص ( ایندکس ) انجام می شود، عناصریک رکورد نمایانگر انواع مختلفی ازاطلاعات می باشد که بوسیله نامشان مورد دستیابی قرار می گیرند.
2-2-7) فیلد
فیلد محلی است در یک رکورد که نوع خاصی از داده ها در آن ذخیره می شود. بهعنوان مثال چنانچه قرار باشد برای ذخیره سازی اطلاعات کارمندان یک سازمان از جداول استفاده شود،رکورد این جداول ممکن است فیلدهایی برای ذخیره سازی نام خانوادگی، نام، نشانی ،مدرک تحصیل و …. داشته باشد. فیلدها بوسیله بیشینه طول و نوع داده هایشان ( کاراکتری ، عددی، تاریخ و .. ) از یکدیگر تمیز داده می شوند. توجه داشته باشید که امکان تعریف این مشخصات معمولا در زبان تعریف داده ها ( DDL ) قرار دارد.
2-8) آشنایی با روشهای ارتباط و مدلهای بانک های اطلاعاتی
سه مدل داده ای برای سیستم های بانک اطلاعاتی وجود دارد. لازمه هر مدل داده ای وجود یک ساختار داده ای است که علاوه بر مدل داده عناصر دیگری را نیز در بردارد. عناصر مدل داده ای عبارتند از ساختارداده ای ، عملگرهای عمل کننده روی ساختار و قواعد عام برای تامین جامعیت می باشند. در ادامه این بحث قصد داریم مدلهای موجود را مورد مطالعه قرار دهیم. از آنجا که بانک اطلاعاتی اوراکل مبتنی برمدل رابطه ای است، لذا بیشتر بحث خود رابر مدل رابطه ای معطوف می داریم .
2-8-1) مدل سلسله مراتبی
این ساختار ،قدیمی ترین مدل برای طراحی بانک های اطلاعاتی است، در این ساختار داده ها و ارتباط بین آنها به کمک یک درختواره نمایش داده می شوند. دررختواره گرافی است دارای یک ریشه و N گره که درحالت بسته و غیر چرخشی قرار دارد. منظور از حالت بسته این است که بین هر دو گره پیوندی وجود دارد که یک مسیر منطقی را از گرهی به گره دیگر تامین می کند و همیشه از سطح بالاتر به سطح پایین تر است . غیر چرخشی نیز یعنی مسیری از گره سطحپایین تر به گره سطح بالاتر وجود ندارد. هر گره از هر سطح می تواند تعدادی گره وابسته یا فرزند داشته باشد ولی هر گره فرزند فقط یک گره پدر دارد.هر گره ازرختواره می تواند رکوردی حاوی یک نوع موجودیت باشد. ازآنجا که ریشه سلسله مراتب، نقطه ورود به ساختار بوده و مسیرمنطقی ازسمت بالاتر به سمت پایین تر است، برای عملیات بازیابی ،علاوه بر دستیابی به ریشه، امکان دستیابی به فرزند نیزباید وجود داشته باشد. در بحث ذخیره سازی نیز این سیستم دارای اشکال است.
2-8-2) مدل شبکه ای
در این ساختار موجودیت ها به کمک انواع رکوردها،و ارتباطات به کمک پیوندهای بین رکوردها نمایش داده می شوند. چنانچه خواسته باشیم این ساختار را با مفاهیم موجود در رختواره توضیح دهیم، باید گفت که در این ساختار، هر گره فرزند می تواند بیش از یک گره پدرداشته باشد. بنابراین به کمک این ساختارمی توان ارتباطات یک به چند را نمایش داد. مدل شبکه ای پیچیده تر از مدل سلسله مراتبی است و به همان نسبت عملیات ذخیره و بازیابی پیچیده تری دارد.
2-8-3) مدل رابطه ای
پایگاه داده رابطه ای از دید کاربران یک مجموعه ازجدولهایی است که به درستی قابل درک می باشند.چهارمفهوم اساسی در این مدل به شرح زیر وجود دارد:
1- جدول 2-ستونها 3-ردیفها 4-فیلدها
این مدل داده ها را در روابط سازماندهی نموده و ازقوانین ریاضی تبعیت می کند.صفاتخاصه یک موجودیت در یک سیستم به عنوان یک رابطه در این مدل مطرح می شود. به عنوان مثال در سیستم دانشگاه می توانیم رابطه دانشجو را در نظر بگیریم : ( شماره شناسنامه، سال ورود، رشته، نام ، شماره دانشجویی ) دانشجو صفتخاصه نام رابطه این رابطه بر طبق مدل رابطه ای بصورت زیر نمایش داده می شود:
شماره شناسایی سال ورود رشته نام
1012 1379کامپیوتر علی 245
2578 1380 ریاضی حسین 265
3920 1379 آمار رضا 327
17 1381 کامپیوتر بهرام 493
هر ستون در مدل رابطه ای همچنان که در بالا مشاهده می کنید نشان دهنده یک صفت خاصه ( فیلد) از یک نوع موجودیت ( دراین مثال دانشجو) و هر سطر نمایانگر یک نمونه از یک موجودیت ( رکورد) می باشد.
2-8-3) خواص ارتباطات رابطه ای
یک جدول یا رابطه شامل خواص زیر است:
• ردیفهای تکراری در آن وجود ندارد.
• ترتیب ردیفها مهم نیست.
• ترتیب ستونها مهم نیست.
• مقادیر اتمیک ( Atomic ) می باشند ( یا به عبارتی همه مقادیر صفات غیر قابل تجزیه هستند.)
2-8-3) کلید در مدل رابطه ای
کلید درمدل رابطه ای صفت خاصه یا نام ستونی است که برای هر کدام از سطرهای مقدار منحصر بفردی دارد به عنوان مثال در رابطه دانشجو شماره دانشجویی می تواند یک کلید باشد زیرا هر دانشجو شماره دانشجویی مخصوص به خود را دارد اما نام را نمی توان یککلید در نظر گرفت .کلید می تواند ترکیبی از صفات باشد به عنوان مثال دررابطه دانشجومجموعه نام و شماره شناسنامه نیز می توانند به عنوان کلید در نظر گرفته شوند. کلید کاندید: از مجموعه کلیدهایی که می توانیم برای یک رابطه در نظر بگیریم آنهایی که در دو ویژگی زیر صدق کنند به عنوان کلید کاندید در رابطه مذکور مطرح می شوند.
1- منحصر به فرد بودن: مقدار این صفت برای هر سطر منحصر به فرد است.
2- خاصیت غیر قابل کاهش بودن:هیچ زیر مجموعه مناسبی از صفات تشکیل دهنده کلیددارای خاصیتمنحصر به فرد بودن نباشد.
به عنوان مثال اگر مجموعه دو صفت شماره دانشجویی و نام را به عنوان کلید در نظر بگیریم شرط اول درمورد این کلید صادق است ولی شرط دوم برقرار نیست زیرا شماره دانشجویی به عنوان زیر مجموعه ای از دو صفت شماره دانشجویی و نام دارای خاصیت منحصر به فرد بودن است. پس این مجموعه کلید کاندید نیست. اما کلید اصلی، کلید کاندیدی است که توسط طراح بانک اطلاعاتی انتخاب و معرفی می شود یا به عبارتی طراح بانک،یکی از کلیدهای کاندید را به عنوان کلید اصلی بر میگزیند در تعیین کلید اصلی از بین کلیدهای کاندید باید دو ضابطه زیر را در نظر گرفت:
1- در نظر گرفتن اهمیت کلید اصلی نسبت به سایر کلیدهای کاندید که در پاسخگویی به نیازهای متنوع کاربران از اهمیت بیشتری برخوردار است.
2- کوتاهتر بودن طول کلید کاندید از نظر طول رشته بایتی.
2-8-3) سیستم بانک اطلاعات رابطه ای
سیستم مدیریت بانک اطلاعاتی رابطه ای دارای شرایط زیر است:
1- بانک اطلاعاتی مبتنی بر رابطه ها ( بطوریکه کاربر بانک را بصورت مجموعه ای از جداول ببینید. جداولی که دو سطر تکراری در آن وجود ندارد. ترتیب ردیفها و ستونها در آن مهم نیست و ستونها قابل تجزیه نیستند.)
2- حداقل سه عمل زیر روی جداول آن قابل انجام باشدیا به عبارتی دارای عملگرهایی جهت انجام سه موردزیر بر روی جداول باشد.
1) عملگری جهت انتخاب سطرهای خاصی از بانک اطلاعاتی ( عملگر گزینش )
2) عملگری جهت انتخاب ستونهایی از بانک اطلاعاتی ( عملگر گزینش)
3) عملگری جهت ترکیب دو جدول اطلاعاتی و ایجاد جدول جدید ( عملگر پیوند)
2-9) مزایای سیستم های بانک اطلاعاتی
اهمیت و اعتباری که فن آوری بانکهای اطلاعاتی در سالهای اخیر کسب کرده است به حدی است که اینک به مثابه فن آوری برتر هم در محیط های تک کاربردی و هم در محیطهای چند کاربردی ، بطور فراگیر مورد استفاده قرار می گیرد.
مهمترین مزایای سیستم بانک اطلاعاتی به شرح زیر می باشد:
• وحدت ذخیره سازی داده های عملیاتی .
• کاهش افزونگی: در صورت عدم استفاده از سیستمهای بدون پایگاه داده، به دلیل آنکه هر برنامه کاربردی دارای فایلهای خاص خودش می باشد، تکرار اطلاعات در برنامه های کاربردی سبب افزونگی شده و موجب هدر رفتن فضای منبع ذخیره سازی می گردد.
• پرهیز از ناسازگاری: با کنترل و کاهش افزونگی، سیستم پایگاه داده ها سازگاری و یکپارچگی داده ها را تضمین می کند.
• به اشتراک گذاتشتن داده ها: درسیستم پایگاه داده ها برنامه های کاربردی موجود قادربه اشتراک گذاردن داده ها در بانک اطلاعاتی بوده و برنامه های کاربردی جدید نیزمی توانند از این داده ها استفاده کنند.درواقععلیرغم دیدگاههای متفاوت کاربران، چند کاربر می توانند در یک زمان به بانک دسترسی داشته باشند.
• اعمال محدودیتهای امنیتی : وجود سیستمهای امنیتی در پایگاه داده ها که از مهمترین مشخصه های این گونه سیستمها است امکان اعمال کنترل های مختلف را برای هر نوع دسترسی ( بازیابی،اصلاح، حذف و غیره) بر روی بانک اطلاعاتی را فراهم می کند.
• ایجاد تعادل بین درخواستهای تداخلی: درسیستمهای بانک اطلاعاتی، ساختاری جهت دسترسی سریع به منبع ذخیره سازی وجود دارد که بهترین و بهینه ترین امکانات را برای سیستم فراهم می آورد.
2-10) معماری پایگاه داده
معماری پایگاه داده ها به چند دسته مختلف تقسیم می شوند:
• سیستم های متمرکز
• سیستم های مشتری/خدمتگزار
• سیستم های موازی
• سیستم های توزیع شده
در ادامه به شرح سیستم های مختلف می پردازیم.
2-01-1) سیستمهای متمرکز
در این نوع سیستم ها، تمامی اطلاعات در یک پایگاه ، ذخیره و همچنین بازیابی می شوند بدین ترتیب که کاربران برای استفاده از اطلاعات ذخیره شده، فقط باید به دستگاهی که پایگاه در آن ذخیره شده است مراجعه کنند. اینگونه پایگاه داده ها که امروزه کمتر مورد استفاده قرار می گیرند، برای استفاده در مواردی که کاربرد زیادی دارند ایجاد می شوند.
در این نوع معماری، پایگاه داده، در یک کامپیوترقرار دارد. بدین معنی که در این معماری یک یا بیشتر پردازنده و یک حافظه مشترک بین پایگاه داده و سیستم عمل وجود دارد.
شکل 2-1: معماری متمرکز[2]
از مزایای این نوع معماری می توان موارد ریز را برشمرد:
• سادگی در طراحی
• سادگی در استفاده
• عدم نیاز به امکانات سخت افزاری یا نرم افزاری خاص
همچنین از معایب آن می توان به موارد زیر اشاره کرد:
• تک کاربره بودن
• مشکل بودن استفاده در سازمانهای بزرگ
با توجه به گسترش روز افزون استفاده از پایگاه داده ها و همچنین بیشتر شدن حجم اطلاعات و تعداد کاربران سیستم های متمرکز به تدریج جای خود را به معماری هایی با قابلیت های بیشتربرای استفاده گسترده تر دادند.
2-01-2) سیستم های مشتری/خدمتگزار
این نوع معماری بعد از معماری متمرکز و به علت نا کارآمدی معماری متمرکز در سیتم های بزرگتر بوجود آمد. در این نوع معماری قسمت های مختلف پایگاه داده در کامپیوترهای مختلف قرار می گیرند. در این روش یک کامپیوتر نقش سرور را به عهده می گیرند و کاربران می توانند با استفاده از کامپیوتر های دیگر و متصل شدن به سرور از پایگاه داده استفاده کنند. همانطور که مشخص است کاربران و کامپیوترها برای اتصال به سرور نیازمند به شبکه کامپیوتری هستند پس درواقع شبکه های کامپیوتری یکی ازملزومات این نوع معماریبه حساب می آید.
شکل 2-2: معماری مشتری/ خدمتگزار[2]
بخش های مختلف پایگاه داده ها در این نوع معماری بر حسب کاربری به دو بخش تقسیم می شود:
• Back-end : این قسمت وظیفه بررسی و کنترل دسترسی ها، بررسی و بهینه سازی پرس وجوها و کنترل همزمانی ها و سالم بودن پایگاه داده ها را به عهده دارد.
• Front-end: شامل ابزار هایی برای نمایش و زیباسازی نتایج پرس و جو ها مثل ابزارهای تولید فرم ها و ابزار های گزارش گیری می باشد.
برای ایجاد ارتباط درست میان دو قسمت فوق نیازمند یک لایه و بستر است. این بستر میتواند از دو طریق دستورات SQL و یا API ها برقرار شود.
در شکل زیر شمای کلی دو قسمت اصلی پایگاه داده و همچنین بستر ارتباط این دو قسمت نشان داده می شود.
شکل 2-3: ارتباط front-end و back-end
درمقایسه این نوع معماری با معماری متمرکز با استفاده ازMainframe ها می توان به مزایای زیراشاره کرد:
• افزایش میزان کاربری سیستم با توجه به هزینه
• راحت تر شدن گسترش دادن و توزیع کردن منابع
• تولید واسط های کاربر بهتر
• راحت تر شدن نگهداری سیستم
در این نوع معماری، سرورها از لحاظ عملکردی به دو بخش مجزا تقسیم می شود:
• سرورهای داده ای: این نوع سرور ها بیشتر در سیستم های شی گرا مورد استفاده قرار می گیرند .
• سرور های تراکنشی: این نوع سرور ها بیشتر در سیستم های رابطه ای مورد استفاده قرار می گیرند.
در ادامه به شرح این دو بخش می پردازیم.
در سرورهای تراکنشی که به آنها سرورهای پرس و جو هم گفته می شود روش کار بدین صورت است که درخواست های کاریران به این سیستم ها ارسال می شود ونتیجه در این سرور ها تولید و به کاربرارسال میشود. درخواست های کاربران به صورت دستورات RPC4و دستورات SQL ارسال می شود.برای ارسال ودریافت نیاز به نرم افزار هایی هست که وظیفه ارتباط با سرور و ارسال پرس و جوها و دریافت نتایج را به عهده دارد.
برای پیاده سازی سرورهای تراکنشی از تعدادی پردازه که حافظه مشترک دارند استفاده می شود که معمولا برای بهبود پردازه ها هر کدام از آنها Multithread مورد استفاده قرار می گیرند.
تعدادی از پردازه هایی که حتما یک سرور تراکنشی باید داشته باشد در زیر می بینیم:
• پردازه های سرور: این پردازه ها وظیفه دریافت پرس و جو ها و تولید پاسخ ها را به عهده دارد.
• پردازه مدیریت همزمانی: وظیفه مدیریت همزمانی درخواست ها را عهده دار است این امکان یا با استفاده از سمافورهای سیستم عامل و یا با استفاده از روش های مثل Test and Set فراهم آورده می شود.
• پردازه نگارنده پایگاه داده: که وظیفه نوشتن نتایج پرس و جو ها را بر روی دیسک به عهده دارد.
• پردازه نوشتن logها: این پردازه اطلاعات نوشته شده روی بافر برای ذخیره به حافظه های پایدارمی نویسد.
• پردازه check point : این پردازه مسولیت چک کردن پردازشها در مراحل مشخص انجام می دهد.
• پردازهMonitor Process:وظیفه اینپردازه کنترل عملکرد دیگر پردازه ها و در صورت لزوم Recoverکردن آن پردازه می باشد.
برای مشخص تر شدن چگونگی طرز کار و ارتباط بین پردازه ها شکل زیر ارایه می شود
شکل 2-4: ارتباط بین پردازنده ها
نوع دیگر سرورها سرورهای دیتا هستند که بیشتر درسیستم های شی گرا استفاده می شود. این سرورها معمولا در شبکه های LANمورد استفاده قرار می گیرد.
روش کار به این صورت است که داده ها به Client ها برای پردازش منتقل می شود و داده های پردازش شده به سرور برای ذخیره سازی برگردانده می شوند. این سیستم ها بیشتر برای معماری شی گرا استفاده می شوند.
2-01-3) سیستم های موازی
معماری موازی به نوعی ازمعماری گفته می شود که دراین نوع معماری سعی شده است که با پیاده سازی روش های کار موازی کارایی سیستم را افزایش دهیم. پردازش های موازی می تواند در بخش های مختلف و وظایف مختلف از قبیل خواندن داده ها، تولید فهرست ها و پردازش پرس و جو ها پیاده سازی شود.همچنین در این نوع سیستم ها داده ها می توانند از لحاظ قرار گیری فیزیکی در قسمت های مختلف قرار گرفته باشند.
ایده اصلی در معماری موازی استفاده از پردازش های موازی در مراحل مختلف تا آنجا که امکان دارد برای بهبود کارایی سیستم است.
چهار نوع معماری مختلف برای این سیستم ها وجود دارد:
معماری نوع اول معماری بر پایه حافظه مشترک است در این معماری چند پردازنده که از طریق یک یک شبکهپرسرعت به هم متصل هستند داده های مورد استفاده خود را در یک حافظه مشترک بین هم قرار می دهند.نوع دیگر این معماری، معماری بر پایه دیسک سخت مشترک است. دز این روش چند پردازنده باحافظه های مخصوص خود متصل شده به هم توسط شبکه پرسرعت و با یک دیسک سخت مشترک با هم در ارتباطند. نوع سوم معماری، معماری بدون عنصر مشترک بین پردازنده هاست. هر پردازنده در این روش حافظه و دیسکسخت خود را دارند و هیچ حافظه ای را به اشتراک نمی گذارند. تمامی ارتباطات میان پردازنده ها از طریق شبکه بین آنها ایجاد می شود.نوع چهارم استفاده از معماری چمد سطی است که درواقع ترکیبی از حالت های فوق است که بخش بخش به هم از طریق روش بدون اشتراک گذاشتن منابع به هم متصل شده اند ولی درون هر بخش پردازنده ها با هممنابع را به اشتراک می گذارند.
شکل 2-5: معماری موازی[2]
دو روش به اشتراک گذاشتن حافظه ودیسک سخت دارای مشکلی هستند که با افزایش تعداد کاربران مشخص می شود.در این دوروش با بالارفتن تعداد پردازنده ها استفاده از فضای مشترک هم بیشتر می شود، ازآنجایی که داده های منتقل شده در شبکه زیادتر می شود سرعت و در نتیجه کارایی کل هم کاهش پیدا می کند.
شکل زیر چگونگی ارتباط بین افزایش تعداد پردازنده ها و تاثیر آن بر سرعت دراین دو نوع روش قابل بررسی است.
مشکل ایجاد شده امروزه مورد تحقیق و بررسی بسیاری ازعلاقمندان قرار دارد و گروه های متعدد روشهاییرا برای چگونگی حل این مشکل ارایه داده و می دهند. برای نمومه یکی از روش ها استفاده از مفاهیم "شبکه های عصبی" در حل این مشکل است.
2-01-3) اجرای پرس و جو ها در معماری موازی
برای اجرا پرس و جو ها ابتدا باید درخواست پرس و جو ها به درختواره عملیاتی تبدیل شود. دراین درختوارهمی توان با حرکت ازپایین به بالا دستوراتی که ورودی های آنها مشخص شده است را به صورت موازی اجرا کنیم. در این روش دستوراتی در درختواره وجود خواهند داشت که هنوز ورودی آنها مشخص نشده است در نتیجه این دستورات تا آماده شدن ورودی های آن اجرا نخواهد شد.از طرفی از روش پردازش موازی می توان درمرحله دیگر یعنی آماده شدن اطلاعات و اجرای آنها می توان ورودی ها را بخش بندی کرد و با آماده شدن هربخش عملیات آن اجرا شود. در بخش بندی داده ها روشهایی مانندRound- robin استفاده از روش Hash وهمینطورروشRange partitioningاستفاده کرد.روشRR بیشتر برای مواردی که کل داده ها مورد پردازش قرارمی گیرند بیشتر استفاده می شود. دوروش دیگر برای مواقعی که تنها بخش های خاصی ازداده ها مورد پردازش قرارمی گیرند استفاده می شوند.
2-01-3) عملگرهای تک عملوندی در معماری موازی
در این بخش به چگونگی اجرای عملگرهای تک عملوندی در معماری موازی بدون به اشتراک گذاشتن منابع را مورد بررسی قرار می دهیم.
2-01-3) مرتب سازی
برای مرتب سازی روش اول بدین گونه است که هر پردازنده داده هایی که دردیسک سخت مریوط به خود رامرتب کنند و در نهایت نتایج را با هم ادغام کنیم.
اما روش کاملتر اینست که درابتدا داده ها را با توجه به توان هر پردازنده بین پردازنده ها توزیع عادلانه کنیم و در نهایت نتایج را با هم ادغام کنیم. مزیت این روش نسبت به روش اول توزیع درست داده ها و استفاده درست و عادلانه از پردازنده هاست.
2-01-3) عمل Join
برای عملJoin بین دو رابطه هم از همان روش فوق یعنی تقسیم داده ها و توزیع آنها بین پردازنده ها استفاده
می شود.در این روش دو نوع بخش بندی محتمل است.
روش اول تقسیم بندی بدون توجه به عاملJoin است که در این حالت تمامی داده ها بدون هیچ پیش فرضی تقسیم می شوند.
روش دوم استفاده ازعامل ارتباط است که در این حالت داده ها را با توجه به عامل ارتباط و با توجه به تعداد پردازنده ها تقسیم می کنیم. پس از تقسیم بین پردازنده ها عملJoin درهرکدام انجام می شود و نتیجه نهایی از اجتماع این نتایج بدست می آید.در هرکداماز پردازنده ها برای عملJoin از روش Hash Join که قبلا توضیح داده شده است استفاده می شود.
یک روش برای بهبود عملHash Join اینست که داده ها را به بخش های متعدد تقسیم کنیم و عملJoin هر بخش را به صورت موازی اجرا کنیم . شکل زیر چگونگی این روش را نشان می دهد.
عملگرهای دیگرنظیرعملگرهای گروهی مانندSum نیز امروزه بحث های مهمی را دراین زمینه ایجادکرده اند و گروه های مختلفی بر روی چگونگی اعمال این عملگرها کارمی کنند. یکی از روش های اعمال پردازش موازی اعمال روش بخش بندی و توزیع داده ها مانند روش های فوق است که برای عملگرهای گروهی نیاز به تغییرات و طراحی روش جدید است.
2-01-4) سیستم های توزیع شده
در این معماری، داده ها در محلهای مختلفی نگهداری می شود. دو خاصیت مهم این نوع از پایگاه داده ها :
• استقلال داده های توزیع شده: کاربران باید بتوانند بدون اطلاع از محل ذخیره داده ها، از پایگاه داده ها پرس و جو کنند.
•عدم تفاوت تراکنشهای توزیع شده: کاربران باید بتوانند دقیقاً مشابه روشی که در موردتراکنشهایمحلی(local) عمل می کردند،تراکنشهایی بنویسند که به داده ها درمحلهای مختلف دسترسی داشته باشد وآنها رابروز کند.
اگرچه این دو خاصیت مطلوب هستند ولی در عمل در بعضی موارد عملی کردن آنها مهم نیست وحتی وقتی که داده ها در سراسر جهان توزیع شده اند این دو خاصیت مطلوب هم نیستند.
شکل 2-6: معماری توزیع شده[3]
2-11) مقدمه ای بر پایگاه داده توزیع شده
بانک های اطلاعاتی توزیع شده متشکل از سایتهایی غیر وابسته هستند که هیچ منبعی را به صورت فیزیکی به اشتراک نمی گذارند. هر سایت می تواند در اجرای تراکنشی که منجر به دستیابی به اطلاعات یک یا تعداد بیشتری سایت دیگر می شود شرکت نماید. تفاوت اصلی مابین بانکهای اطلاعاتی متمرکز و توزیع شده این است که در بانکهای اطلاعاتی متمرکز همه اطلاعات در یک نقطه متمرکز شده است در حالی که در بانکهای اطلاعاتی توزیع شده ممکن است قسمتهای مختلف اطلاعات در نقاط مختلف توزیع شده باشند و یا اینکه کپی های مختلفی از اطلاعات در نقاط مختلف نگهداری شوند.
2-12) تعریف سیستم توزیع شده
هر سیستمی که بر روی مجموعه ای از ماشین ها که دارای حافظه اشتراکی نیستند، اجرا شده و برای کاربران به گونه ای اجرا شود که گویا بر روی یک کامپیوتر می باشند ، یک سیستم توزیع شده است.
در یک سیستم توزیع شده :
•یک نرم افزار یا مجموعه نرم افزاری واحد و متحد الشکل بر روی هر گره اجرا می شود.
•همه ماشینها یک کرنل مشابه را اجرا می کند.
•هر کرنل منابع خود را کنترل می کند.
شکل 2-7 : پایگاه داده توزیع شده[1]
2-12-1) مواردی که در طراحی سیستم توزیع شده باید در نظر گرفت :
• شفافیت
• انعطاف پذیری
• قابلیت اطمینان
• کارایی خوب
• قابلیت گسترش
2-12-1) شفافیت داده (rencyTranspa)
شفافیت داده میزان بی اطلاعی کاربر از جزئیات اینکه چگونه و از کجا داده ها در شبکه قراردارند است به نحوی که سیستم در نظر کاربر بسیار ساده جلوه نماید .کاربر یک پایگاه داده توزیعی نباید نیاز به دانستن این داشته باشد که داده ها به صورت فیزیکی در کجا واقع شده اند یا اینکه در یک سایت محلی خاص، داده ها چگونه دستیابی می شوند.به این خاصیت data transparency گفته می شود و می تواند چند فرم داشته باشد :
•Fragmentation Transparency:کاربر نیازی به دانستن اینکه یک رابطه چگونه بخش بندی شدهاستندارد.
•Replication Transparency: کاربر هر شی داده را منطقا یکتا می بیند. سیستم توزیعی ممکن است یک شی را تکرار کند تا کارایی یا در دسترس بودن داده ها را افزایش دهد. کاربر نگران این موضوع نیست که کدام اشیاء داده ای تکرار شده اند یا در کجا این نسخه ها قرارگرفته اند.
•Location Transparency: کاربران نیاز به دانستن مکان فیزیکی داده ها ندارند. پایگاه داده توزیعی بایستی قادر به یافتن هر داده ای توسط اعمال شناسه داده در تراکنش کاربر باشد.
Data itemها مثل رابطه ها، بخشها، و نسخه ها بایستی نامهای یکتا داشته باشند. اعمال این خاصیت در پایگاه داده های متمرکز آسان است. در یک پایگاه داده توزیعی ما باید مراقب باشیم که دو سایت از یک نام مشابه برای data item های مجزا استفاده نکنند. یک راه برای این مشکل این است که تمامی نامها در یک سرور مرکزی ذخیره شوند. سرور کمک می کند تا مطمئن شویم که یک نام مشابه برای data item های مختلف استفاده نمی شود. ما همچنین می توانیم از سرور برای پیداکردن یک data item، طبق نام Item استفاده کنیم.این راه حل دو مشکل بزرگ دارد:
1- سرور می تواند گلوگاه کارایی سیستم ما شود اگر محل data item طبق نامهایشان پیدا شود.
2- اگر سرور ،مشکلی پیدا کند سیستم از کار می افتد.
رویکردهای دیگر که بیشتر استفاده می شوند این است که هر سایت به هر نام که تولید می کند id خودش را بهصورت پیشوند اضافه کند.ازاین جهت هیج کنترل مرکزی نیاز نیست.اما اینروlocation transparenc را نقض می کند .(برخی پایگاه داده ها آدرس اینترنتی خود را به عنوان id سایت استفاده می کنند.)
برای غلبه بر این مشکل سیستمپایگاه داده می تواند مجموعه از نامهای مستعار،برای data item هاایجاد کند.کاربر می تواند به data item توسط نامهای ساده که توسط سیستم به نامهای کامل ترجمه می شوند مراجعه کند. نگاشت نامهای مستعار به نامهای واقعی می تواند در هر سایت ذخیره شود.با نامهای مستعار کاربر می تواند از محل فیزیکی data item،ناآگاه بماند . همچنین چنانچه مدیر پایگاه داده ها تصمیم به انتقال data item از سایتی به سایت دیگر رفت کاربر دچار مشکل نشود.
2-12-1) قابلیت اطمینان
در دسترس بودن یک فاکتور مهم مرتبط با این سیستم ها است.
طراحی نباید به گونه ای باشد که نیاز به اجرای همزمان کامپوننت های اساسی باشد.
افزونگی بیشتر داده هاه باعث افزایش در دسترس بودن شده اما ناسازگاری را بیشتر میکند.
قدرت تحمل نقص(Fault tolerance) باعث پوشاندن خطاهای ایجاد شده توسط کاربر می شود.
2-12-1) کارآیی
• بدون کارآیی مناسب کلیه موارد استفاده نرم افزار بی فایده می باشد.
• اندازه گیری کارایی در سیستم های توزیع شده کار آسانی نیست.
• برای رسیدن به کارایی باید توازنی خاص در تعداد پیغامها و اندازه کامپوننهای توزیع شده بر قرار باشد.
2-12-2) قابلیت گسترش
• قابلیت گسترش یک اصل کلی برای توسعه سیستمهای توزیع شده می باشد.
• برای رسیدن به این قابلیت باید از کامپوننتها، جداول و الگوریتمهای متمرکز دوری کرد.
• فقط باید از الگوریتمهای غیر متمرکز استفاده شود.
2-12-2) خصوصیات الگوریتمهای غیرمتمرکز
• هیچ ماشینی نباید اطلاعات کاملی در مورد وضعیت سیستم داشته باشد.
• ماشینها باید بر مبنای اطلاعات محلی خود تصمیم بگیرند.
• خرابی یک ماشین نباید تاثیری در اجرای الگوریتم داشته باشد.
• نباید تصوری ضمنی از وجود ساعتی عمومی وجود داشته باشد.
2-13) انواع پایگاه داده توزیع شده
اگر داده ها توزیع شده باشند و تمام DBMSها از یک نوع بودند،یک سیستم پایگاه داده های توزیع شده همگن داریم. اگر داده ها در محلهای مختلف باشند ولی نوع DBMSها مختلف باشند در این حالت یک سیستم پایگاهداده های توزیع شده ناهمگنداریم.کلید ایجاد سیستم های ناهمگن داشتن استانداردهای مقبول برای پروتکلهای گذرگاهها می باشد.
2-13-1) پایگاه داده توزیع شده همگن
در یکپایگاه داده توزیع شده همگن:
همه سایت ها نرم افزار یکسانی دارندsingle تلقی می گردد .
به نظر کاربر یک سیستمالگو و یا نرم افزار هر سایت در شرایط ویژه قابلیت تغییرات جزیی را دارد.
2-13-2) پایگاه داده توزیع شده ناهمگن
در یکپایگاه داده توزیع شده ناهمگن:
سایت های مختلف ممکن است دارای الگو و نرم افزار مختلف باشند .
تفاوت در الگو می تواند مشکل بزرگی برای پردازش queryها باشد .
تفاوت در الگو همچنین می تواند مشکل بزرگی برای transaction ها باشد .
سایت ها ممکن است ازسایتهای دیگر بی خبر باشند و یا ممکن است فقط یکسری امکانات محدودی رابرایپردازش transactionها به اشتراک بگذارند.
2-14) ذخیره اطلاعات به صورت توزیع شده
ذخیره اطلاعات به صورت توزیع شده به دو روش Replication یا Fragmentationو یا ترکیبی از این دو روش انجام می گیرد.
در روش Replicationدقیقا یک کپی فیزیکی از اطلاعات در نقاط مختلف سیستم یعنی سایر سایتها ذخیره می گردد ولی در روش Fragmentation اطلاعات به چند بخش یا پارتیشن تقسیم می شود و هر بخش در یکی از سایتهانگهداری می شود.در روش ترکیبی اطلاعات به چند بخشتقسیم می شوند و از تعدادی ازبخشها و یا همه آنها کپی هایی در سایتهای مختلف نگهداری می شود.
2-14-1) انواع Fragmentation
روش Fragmentation به دو طریق عمودی و افقی صورت می گیرد. در روش عمودی تقسیم بندی یک Relation روی فیلدها صورت می گیرد. یعنی هربخش ازاطلاعات مشتمل بر تعدادی ازفیلدهای Relation است ولی در روش افقی تقسیم بندی روی رکوردهایRelation صورت می گیرد. برای مثال رکوردهای مربوط به ماه خرداد در یک بخش و رکوردهای مربوط به ماه تیر در بخش دیگریذخیره می گردند. درروش عمودی برای دستیابی به Relation اولیه باید بین بخش های مختلف join بزنیمو درروشافقیبرای دستیابی به آن باید از اجتماع استفاده نماییم.
2-14-2) محاسن و معایب Replication
محاسن روش Replication عبارتند از:
در دسترس بودن : در شرایطی که یکی از سایتها بنا به دلیلی از بیفتد حداقل یک سایت دیگر وجود دارد کهمی تواند دسترسی به اطلاعات سایت از کار افتاده را امکان پذیر سازد. پس اگردرخواست دسترسی به اطلاعاتی که مربوط به یک سایت از کار افتاده است، صادر شود، پاسخگویی به این درخواست از طریق سایت دیگری که replication ای از سایت از کار افتاده را در اختیار دارد امکان پذیر می شود.
افزایش توانایی موازی سازی : در صورتی که چندکپی از اطلاعات در سایتهای مختلف وجود داشته باشد در هنگام درخواست خواندن این اطلاعات می توان به صورت موازی بخشی ازاطلاعات را از یک سایت و بخشهای دیگر آن را از سایتهای دیگر خواند و به این طریق عمل خواندن حجم زیادی از اطلاعات را به صورت موازیو با هزینه ای کمتر انجام داد.
معایب روش Replication:
افزایش سربار بروزرسانی اطلاعات : به دلیل اینکه ازیک داده کپی های مختلفی درسایتهای مختلف وجود دارد در هنگام تغییر دادن این داده باید همه کپی های آن را نیز تغییر داد تا سازگاری درکل سیستم حفظ شود که این کار سرباز زیادی به همراه دارد.
پیچیدگی در مدیریت همزمانی : به دلیل اینکه از یک داده چند کپی وجود دارد مدیریت Lock در این روش پیچیدگی بیشتری را نسبت به روش متمرکز به همراه خواهد داشت.
به طور کلی روش Replication بازدهیعمل خواندن را بالا برده ودردسترس بودن ایجاد می کند ولی برای عمل نوشتن بهینه نیست و سربار اضافی دارد.
2-15) تراکنشهای توزیع شده
هر سایتی یک مدیر تراکنش دارد که وظیفه آن حفظ خصوصیت های ACID 5 در همان سایت است. همچنین هر سایت یک هماهنگ کننده تراکنش (Transaction Coordinator) دارد که وظیفه آن این است که در مورد تراکنشهایی که از آن سایت شروع می شوند:
تراکنش را به تعدادی زیر تراکنش تقسیم کند و آنها را بین مدیران تراکنش سایتهای مربوطه توزیع کند.
تراکنش را به پایان برساند یعنی یا آن را commit کند و یا درصورت commit نشدن تراکنش را در همه سایتهای شرکت کننده در آن Abort کند.
علاوه بر مشکلاتی که درسیستمهای متمرکز به وجود می آید مانند خطای نرم افزاری، خطای سخت افزاری، خطای دیسک و … نوع دیگری از خطاها در سیستم های توزیع شده وجود دارد که از این دست می توان به ازکار افتادن یک سایت، گم شدن پیغامها، قطع شدن یک لینک ارتباطی و یا تقسیم شدن شبکه به دو بخش نا متصل اشاره نمود.در سیستم توزیع شده ممکن است یک پیغام گم شود و یا خراب شود که برای رفع این مشکل از پروتکل های انتقالی مانند TCP استفاده می شود.
شکل 2-8 : تراکنش توزیع شده[1]
2-16) گونه های مختلف سیستمهای توزیع شده
• مدل سرور – ایستگاه کاری
• مدل Processor Pool
• مدل هیبرید
• مدل یکپارچه
سیستمهای توزیع شده متکی بر ارتباطات هستند و به طور کلی از دو سرویس زیر استفاده می کنند:
• انتقال پیام Message Passing
• فراخوانی از راه دور رویه ها Remote Procedure Call
2-17) بخشهای اصلی سیستم عامل توزیع شده
• مدیریت فایل
• مدیریت منابع
• مدیریت حافظه
• مدیریت فرآیندها
•Kernel
سیستم عامل توزیع شده باید امکانات Encapsulating منابع را مهیا سازد. کرنل و سرورها هر دو وظیفه مدیریت منابع را بر عهده دارند و چون شامل منابع نیز می باشند، باید موارد زیر را مهیا سازند:
•مجتمع سازی داده ها و سرویس ها Encapsulating
•پردازش همزمان
•محافظت داده ها
2-17-1) نحوه دسترسی به منابع
کلاینتها با مشخص سازی منابع در آرگومان عملیات (فراخوانی از راه دور رویه ها در سرور یا فراخوانی سیستمدر کرنل)به آنها دسترسی پیدا می کنند.
ارتباط بین قسمتهای مختلف DBMS و قسمتهای اضافه DBMS
2-18) مدلهایی برای تعامل فرآیندها
•مدل خادم / مخدوم (Client/Server)
•مدل یکپارچه
•مدل پایپ
•فراخوانی رویه از راه دور(RPC)
2-81-1) مدل کلاینت سرور
در این حالت نرم افزار خاص کلاینت روی هر ماشین اجرا می شود و کلاینت با واسطه سرور به منابع دسترسی پیدا می کند. سه مشکل عمده مدل کلاینت سرور عبارت است از:
•کنترل منابع اختصاصی بر روی یک سرور متمرکز می شود.
•هر سرور به طور بالقوه یک گلوگاه (Bottleneck) است.
•برای بهبود کارآیی، پیاده سازی چندگانه برای توابع مشابه باید انجام شود.
شکل 2-9 : مدل کلاینت سرور در سیستم توزیع شده
2-81-2) مدل یکپارچه
در این مدل هر نرم افزار کامپیوتر بعنوان ابزاری کامل طراحی شده که دارای فایل سیستمی عمومی و مکانیسمی جهت تفسیر اسامی می باشد. این بدین معناست که هر کامپیوتر در سیستم توزیع شده از یک نرم افزار استفاده می کند.توجه داشته باشید که اگر سیستمی بر پایه مدل یکپارچه توسعه یافته باشد، اگر به صورت مناسبی پیکره بندی شده باشد، می تواند به راحتی به شکل سیستمی مبتنی بر مدل Client/Server دیده شود.
2-81-3) مدلپایپ
مدل پایپ بر اساس مفهوم فرآیند پایه ریزی شده است که در این مدل داده از طریق استراتژی FIFO می توانند بین فرآیندها منتقل شوند. همچنین این مدل اجازه همگام بودن اجرای فرآیندها را می دهد. در این مدل به طور سنتی از فایل سیستم برای ذخیره داده ها استفاده شده و از قابلیتهای منحصر بفرد آن امکان ارسال کلی داده توسط فرآیند به یک گره می باشد.
2-81-4) مدل RPC
در سیستمهای مبتنی بر RPC، یک فرآیند می تواند یک رویه را در یک کامپیوتر راه دور فراخوانی کند. هنگامی که عمل فراخوانی انجام می شود، پیغام درخواستی برای کامپیوتر راه دوری که رویه در آن قرار دارد فرستاده می شود، سپس فرآیندی ایجاد می شود تا رویه اجرا شود، بعد از کامل شدن این فرآیند، پیغام پاسخ به فرآیند صد ازننده فرستاده می شود.
2-19) دلایل توزیع داده
•DBMS متمرکز در مقابل سیستم پایگاه داده توزیع شده
• سیستم پایگاه داده توزیع شده مجموعه ای از داده ها است که از لحاظ منطقی به یک سیستم تعلق دارند ولی از لحاظ فیزیکی در سایتهای مختلف یک شبکه کامپیوتری قرار دارند.
2-02) فاکتورهای توسعه سیستم پایگاه داده توزیع شده
فاکتورهای مختلفی که باعث توسعه سیستم پایگاه داده توزیع شده شده اند عبارت است از:
•طبیعت توزیع شدگی برخی از برنامه های دیتا بیس
•افزایش قابلیت اطمینان و در دسترس بودن
•امکان به اشتراک گذاشتن داده ها
•افزایش کارآیی
طراحی و پیاده سازی سیستم پایگاه داده توزیع شده از پیچیدگیهای بیشتری برخوردار است و نسبت به DBMS های متمرکز توابع بیشتری را باید پیاده سازی کرد از جمله:
•دسترسی به سایتها و انتقال جستجو ها و داده ها
•اطلاع از توزیع داده ها و Replication در کاتالوگ DDBMS
•بکارگیری استراتژیهای مناسب برای اجرای پرس و جو ها و .. که دادهایشان در چندین سایت مختلف قراردارد.
•تصمیم گیری در مورد استفاده از کدامین داده Replicate شده .
•سازگار نگه داشتن کپی های داده های Replicate شده .
•قابلیت بازیابی داده ها از سایتهایی که دارای مشکل شده اند.
•و …
2-12) قانونهایی برای سیستمهای توزیع شده
قانون صفر: سیستمهای توزیع شده باید برای کاربر نهایی دقیقا به صورت سیستمهای متمرکزباشند.
1. استقلال محلی
2. عدم وابسته بودن به سایت مرکزی
3. عملیات پیوسته
4. استقلال Location
5. استقلال قطعات(Fragmentation)
6. استقلال Replication
7. پردازش توزیع شده جستجوها
8. مدیریت توزیع شده Transaction
9. استقلال سخت افزاری
10. استقلال سیستم عامل
11. استقلال شبکه
12. استقلال DBMS
2-12-1) استقلال محلی
سایتها باید تا حد امکان(بیشترین حد ممکن) مستقل باشند.
داده های محلی باید در محل ذخیره و مدیریت شوند(با توجه به در نظر گرفتن یکپارچگی و امنیت)
عملیات محلی باید حتما در خود محل اجرا شوند.
تمام عملیات در یک سایت باید توسط همان سایت کنترل شود. این بدین معناست که سایت X نباید برای
انجام موفقیت آمیز عملیات خود وابسته به سایت Y باشد.
در برخی موارد، از دست دادن مقدار کمی از استقلال، اجتناب ناپذیر است:
مشکل قطعه قطعه شدن(قانون 5)
مشکل Replication(قانون 6)
به روز رسانی رابطه Replicate شده(قانون 6)
مشکل محدودیت یکپارچگی بین چند سایت(قانون 7)
A problem in participation in a 2 phase commit process (قانون 8)
2-12-2) عدم وابسته بودن به سایت مرکزی
به هیچ عنوان نباید برای یک سرویس مرکزی به یک سایت وابسته بود. بعنوان مثال نباید دارای یک پردازشگرمرکزی(متمرکز) جستجوها یا مدیریت مرکزی(متمرکز) Transaction بود، چرا که کل سیستم به یکسایت خاصی وابسته می شوند.
وابسته بودن به یک سایت خاص، حداقل به دو دلیل زیر غیر مطلوب می باشد:
• سایت مرکزی ممکن است یک گلوگاه(Bottleneck) باشد.
•سیستم ممکن است آسیب پذیر باشد.
در یک سیستم توزیع شده، عملیات زیر (در میان سایر عملیات) حتما باید توزیع شده باشند:
• مدیریت دیکشنری
• پردازش جستجو
• کنترل همزمان
• کنترل بازیابی
2-12-3) عملیات پیوسته
هیچگاه نباید نیاز به خاموش کردن (از قبل پیش بینی شد)ه کل سیستم برای اعمال تغییرات داشته باشیم.اضافه کردن سایت جدید X به سیستم توزیع شده D، نباید باعث توقف کل سیستم شود.اضافه کردن سایت جدید X به سیستم توزیع شده D، نباید نیازمند تغییری در برنامه های کاربر یا فعالیتهای ترمینال باشد.حذف سایت X از سیستم توزیع شده، نباید ئقفه های غیر ضروری در سرویس ایجاد کند.ایجاد و حذف و تکثیر قطعات به صورت پویا باید در یک سیستم توزیع شده امکان پذیر باشد.باید بتوان بدون نیاز به خاموش کردن کل سیستم، DBMS یک سایت را به روز کرد.
2-12-4) استقلال Location
نه تنها کاربران نباید از محلی فیزیکی ذخیره داده ها مطلع باشند، بلکه از لحاظ منطقی باید به تصور کنند که داده ها در سایتهای محلی خودشان قرار دارد.
ساده کردن برنامه های کاربر و فعالیتهای ترمینال
اجازه تغییر سکو
فراهم کردن استقلال Location برای عملیات ساده بازیابی ساده تر از عملیات به روز رسانی می باشد.
داشتن طرحی برای نام گذاری داده توزیع شده(Distributed Data Naming Scheme) و ایجاد پشتیبانی مناسب از طریق زیر سیستم دیکشنری
مواردی که باید در مورد کاربران پیاده سازی شود:
کاربر U باید شناسه معتبری برای ورود در سایتهای مختلف داشته باشد.
پروفایل هر کاربر برای هر شناسه مجاز باید در دیکشنری باشد.
دسترسی های هر کاربر در هر سایت به وی اختصاص داده شود.
2-12-5) استقلال قطعات(Fragmentation)
سیستمهای توزیع شده از قطعه قطعه شدن داده ها پشتیبانی می کنند، منوط به اینکه یک رابطه خاص قابلیت تقسیم به قسمتهای مختلف برای ذخیره در محلهای فیزیکی گوناگون را داشته باشد. سیستمی که این قابلیت را داشته باشد، از استقلال قطعات نیز پشتیبانی می کند.
کاربران باید از لحاظ منطقی به گونه ای تصور کنند که گویا اصلا داده ها در قسمتهای مختلف ذخیره نشده اند.
از دلایل قطعه قطعه شدن داده ها، می توان به افزایش کارآیی اشاره کرد.
قطعه قطعه شدن افقی(Select)
قطعه قطعه شدن عمودی(Project)
قطعه قطعه شدن باید در متن یک پایگاه داده توزیع شده تعریف شود.
استقلال قطعات همانند استقلال Location باعث ساده تر شدن برنامه های کاربر و فعالیتهای ترمینال می شود.
داده هایی که به کاربران نمایش داده می شود، از ترکیب منطقی قطعات مختلف (به واسطه الحاقها(Joins) و اجتماعات(Unions) مناسب)به دست می آید.
2-12-6) استقلال Replication
کاربران باید از لحاظ منطقی به گونه ای تصور کنند که گویا اصلا داده ها تکرار(replicated) نشده اند.
سیستم توزیع شده از کپی برداری دادها پشتیبانی می کند، به شرط آن که یک رابطه( یا بطور کلی تر یک قطعه از رابطه) بتواند از لحاظ فیزیکی در کپی های مجزا و در سایتهای مجزا ذخیره شود.
کپی برداری داده ها باید همانند قطعه قطعه شدن برای کاربران شفاف(غیر قابل تشخیص) باشد.
دلایل عمده کپی برداری داده ها
• کارآیی
• در دسترس بودن(دسترسی)
مشکل انتشار به روز رسانی
استقلال Replication همانند استقلال قطعات و استقلال Location باعث ساده تر شدن برنامه های کاربر و فعالیتهای ترمینال می شود.
رو نوشت از داده ها (Snapshots)
2-12-7) پردازش توزیع شده جستجوها
یکی از مهمترین و حیاتی ترین نکات در مورد سیستمهای پایگاه داده توزیع شده، انتخاب استراتژی مناسب برای پردازش توزیع شده جستجو(Query) می باشد.
پردازش جستجو در سیستم های توزیع شده شامل موارد زیر می باشد:
عملیات محلی ورودی و خروجی(I/O) و CPU در سایتهای مجزا
تبادل اطلاعات میان سایتهای فوق الذکر
Query Compilation Ahead Of Time
Views That Span Multiple Sites
integrity constraints that within DDBS that span multiple sites
2-12-8) مدیریت توزیع شده Transaction
دو نکته مهم برای مدیریت Transaction، کنترل بازیابی و کنترل سازگاری می باشد که نیاز به اعمال و دقت بیشتری در محیط های توزیع شده دارند.
در یک سیستم توزیع شده، یک Transaction می تواند باعث اجرای کد در چندین سایت شده که همین امر خود می تواند باعث عملیات به روز رسانی در سایتهای مختلف شود.
هر Transaction را می توان شامل چندید Agent در نظر گرفت که هر Agent، فرآیندی است که از طرف Transaction در سایت به خصوصی اجرا می شود.
بن بست عمومی: هیچ سایتی نمی تواند با استفاده از اطلاعات داخلی خود، آن را تشخیص دهد.
2-12-9) استقلال سخت افزاری
صرفه نظر از اینکه چه Platform سخت افزاری استفاده می شود، کاربران باید تصویر واحدی از سیستم داشته باشند.
بهتر است بتوان یک DBMS را بر روی سیستمهای سخت افزاری مختلف اجرا کرد.
بهتر است سیستم های مختلف سخت افزاری سهم یکسانی در یک سیستم توزیع شده داشته باشند.
نمی توان به راحتی فرض کرد که همواره می توان از سیستمهای همگن استفاده کرد، به همین دلیل هنوز باید یک DBMS بر روی سیستمهای مختلف سخت افزاری قابل اجرا باشد.
2-12-10) استقلال سیستم عامل
بهتر است که علاوه بر استقلال سخت افزاری، قادر به راه اندازی DBMS بر روی سیستم عاملهای مختلف (حتی سیستم عاملهای مختلف بر روی یک سخت افزار) باشیم.
حداقل سیستم عاملهای مهمی که باید DBMS پشتیبانی کند(با توجه به معیارهای تجاری)، عبارتند از: MVS/XA؛ MVS/ESA، VM/CMS، VAX/VMS، UNIX(محصولات مختلف)، OS/2، MS/DOS و WINDOWS .
2-21-11) استقلال شبکه
مطلوب آن است که بتوانیم شبکه های نامتجانس مختلف را پشتیبانی نماییم.
از دید یک DBMS توزیع شده، شبکه یک سرویس مطمئن انتقال پیغام می باشد.
مفهموم مطمئن در عبارت فوق را می توان بدین صورت توصیف نمود که به طور مثال اگر شبکه پیغامی را از سایت X برای تحویل به سایت Y دریافت کرد، سرانجام آن پیغام را به سایت Y تحویل دهد.
نباید در محتوای پیغامها خللی ایجاد شده و پیغامها باید به ترتیب فرستاده شدن ارسال شده و بیش از یکبار نیز تحویل مقصد نشوند.
شبکه مسئول تایید سایت(Site Authentication) نیز می باشد.
یک سیستم ایده آل باید هم از شبکه های محلی(LAN) و هم از شبکه های گسترده(WAN) پشتیبانی نماید.
سیتمهای توزیع شده باید معماریهای مختلف شبکه را پشتیبانی نمایند.
2-21-12) استقلال DBMS
سیستم توزیع شده ایده آل باید استقلال DVBMS را مهیا سازد.
2-22) مدیریت همزمانی در بانکهای اطلاعاتی توزیع شده
همانطور که در یک سیستم متمرکز برای برقراری همزمانی مابین فراروندها از یک پروتکل Lock استفاده می کنیم در سیستمهای توزیع شده نیز از یک پروتکل Lock استفاده می کنیم با این تفاوت که این پروتکل برای سیستم های توزیع شده طراحی شده است. برخی از این پرتکل ها عبارتند از Single Lock Manager، Primary Copy، Majority Protocol، Biased Protocol و …
2-22-1) مدیر قفل ساده ((Single Lock Manager
در Single Lock Manager یکی از سایتها را Lock Manager می کنیم. هر کس که بخواهد Lockیا
Unlock بکند از این سایت درخواست می کند. وقتی سایتی درخواست Lock می کند اگر بتواند Lock را به آن می دهد و در غیر این صورت آن را در صف آن Lock قرار می دهد.
محاسن این روش عبارتند از : سادگی پیاده سازی و مدیریت Deadlock همانند روش متمرکز.
معایب این روش عبارتند از : تبدیل سایتی که مدیر Lock روی آن قرار دارد به گلوگاه سیستم و از کار افتادن کل سیستم در صورت از کار افتادن مدیر Lock.
2-22-2) کپی اصلی (Primary Copy )
در Primary Copy به ازای هر داده ای که از آن چند کپی در سیستم وجود دارد یک کپی اصلی داریم و زمانی که می خواهیم Lock را بگیریم به سراغ کپی اصلی می رویم.
محاسن این روش عبارتند از : مدیریت همزمانی و اجرای ساده .
عیب این روش این است که ممکن است سایتی که کپی اصلی را در اختیار دارد از کار بیفتد ولی کپی آن موجود باشد. در این شرایط به دلیل اینکه Lock فقط باید روی کپی اصلی گرفته شود لذا امکان تغییر داده وجود نخواهد داشت در حالی که باید بتوان داده را در کپی های آن در سایت های سالم تغییر داد.
2-22-3) پروتکل اصلی (Majority Protocol)
در Majority Protocol باید برای گرفتن Lock از داده ای که n کپی از آن وجود دارد حد اقل به سراغ n/2+1 کپی از آن برویم و از آنها Lock بگیریم.
عیب این روش این است که ممکن است در حین Lock گرفتن روی یک داده هم بن بست به وجود بیاید. فرض کنید می خواهیم روی داده ای Lock بگیریم که 4 کپی از آن وجود دارد. اگر از دوتا از کپی ها Lock بگیریم و قبل از گرفتن Lock از سومی پروسه دیگری از دوتای دیگر Lock بگیرد در این شرایط دو پروسه منتظر همدیگر می مانند و برای دسترسی به یک داده بن بست به وجود می آید. این در حالی است که حتی در سیستم های متمرکز نیز برای دستیابی به یک داده به تنهایی به این شکل هیچگاه بن بست به وجود نمی آید.
2-22-4) Biased Protocol
در Biased Protocol بین خواندن و نوشتن تفاوت قائل می شویم .برای خواندن گرفتن Lock از هر کدام ازسایتها کافی است اما برای نوشتن باید از تمام کپی ها Lock بگیریم. بازدهی این مکانیزم خود را در سیستمی به خوبی نشان می دهد که توالی خواندن در آن بیشتر از توالی نوشتن باشد.
2-22-5) Timestamping
یک پروتوکل کنترل همروندی است که در سیستم های توزیعی استفاده شود.
• هر Transaction باید یک Timestamp واحد داشته باشد .
• مشکل اصلی : چگونه یک Timestamp در حالت توزیعی تولید کنیم .
• هر سایتی یک Timestamp محلی (Lokal)با یک Clock محلی تولید می کند .
•Timestampسراسری (balGlo) از ترکیب یک stampTimeمحلی با یک شناسه واحد بدست می آید .
شکل2-10:Timestamp
• یک سایت با یک Clock کند . (slow) باید دارای یک imestampT کوچکتر باشد .
• این از لحاظ منطقی و سریالی (serializability) درست است .
• اما درTransaction اثر منفی دارد .
برای اصلاح این مشکل :
• باید در هر سایت Si یک Clock منطقی تعریف کنیم با یک Timestamp محلی واحد که با Clock سراسری یکی باشد .
• در این مورد سایت Si باید Clock خود را جلو بیاندازد .
2-23) مدیریت بن بست (Dead lock)
همانگونه که در سیستم متمرکز از wait for graph استفاده می شود در اینجا نیز از همین روش استفاده می شود با این تفاوت که در اینجا باید wait for graph مربوط به همه سایتها را جمع کنیم و یک global wait for graph بسازیم. این کار بر عهده یکی از سایتها گذاشته می شود. در global wait for graph به دنبال دور می گردیم. چنانچه دوری پیدا شد یک یا چند تا از تراکنش ها را Abort یا Rollback می کنیم. مشکل اینجاست که این wait for graph به صورت آنلاین ساخته نمی شود و لذا ممکن است برای مثال دوری تشخیص داده شود در حالی که یکی از تراکنشها بنا به دلیلی Abort کرده باشد و در واقعیت دوری وجود نداشته باشد و به خاطر تشخیص اشتباهی که داده شده است یکی از تراکنشهای مفید که می توانسته به پایان برسد بیهوده Abort شود.
در هنگام به وجود آمدن بن بست برای اینکه بتوانیم بهترین و مناسب ترین تراکنش را برای Abort کردن انتخاب کنیم باید همه تراکنش ها و همه منابعی که آنها برای commit شدن نیاز دارند را بشناسیم. به این کار مساله پیدا کردن مجموعه مینیمم Abort می گویند که در(3- 5) به آن اشاره شده است. همچنین برای بالا بردن بازدهی کار می توان از مکانیزم check pointing استفاده نمود. در این روش به جای Abort کردن تراکنش در قسمتی از آن check point قرار می دهیم و در صورت لزوم به آن check point ، rollback می کنیم(3-12) . این روش موجب می شود که حداقل تا حدودی از انجام دوباره کارهایی که تا به اینجا انجام شده است جلوگیری شود.
2-23-1) حل مسئله بن بست
برای رفع مشکل Deadlock سه روش وجود دارد: Deadlock Prevention ، Deadlock Avoidance و Deadlock Detection and Resolution . تجربه نشان داده است که روشهای اول و دوم راههای مقرون به صرفه ای نیستند و در برخی از موارد نمی توان حتی آنها را عملی نمود. در عمل در جاهایی که مساله بن بست موضوع مهمی به شمار می رود از روش سوم یعنی Deadlock Detection and Resolution استفاده می شود. چنانچه در یک سیستم توزیع شده مرتبا از این مکانیزم استفده شود به دلیل رد و بدل شدن پیغامهای زیاد، بازدهی سیستم تا حد زیادی کاهش پیدا خواهد کرد و این در حالی است که ممکن است بن بست وجود نداشته باشد و مکانیزم جستجوی بن بست کار بیهوده ای انجام داده باشد. اگر هم این مکانیزم دیر به دیر استفاده شود، در زمانی که بن بست وجود دارد، بدون توجه به آن تراکنشهای جدید دیگری ممکن است به سیستم اضافه شوند و deadlock را توسعه دهند و لذا زمان Deadlock Resolution در چنین شرایطی به شدت افزایش خواهد یافت. درمدیریت بن بست ثابت شده است پریود زمانی خاصی جود دارد که چنانچه عمل جستجوی بن بست مطابق با آن صورت گیرد بازدهی عمل مدیریت بن بست به حداکثر خود خواهد رسید. این توالی بهینه از O((αn)1/3) تبعیت می کند که در آن α نرخ به وجود آمدن بن بست در سیستم و n تعداد تراکنشها است.
2-24) مدیریت کاتالوگ توزیع شده
2-24-1) نام گذاری اشیاء
در صورتی که یک رابطه قطعه بندی و تکرار می شود ما باید قادر باشیم هر کپی از یک قطعه را به صورت یکتا مشخص کنیم. یک راه حل اینست که یک global unique ID توسط یک name server تولید شود. مشکلی که این راه حل دارد اینست که اشیاء محل باید بتوانند بدون در نظر گرفتن اسامی سراسری نام گذاری شوند. راه حلی کلی اینست که هر نام چندین فیلد داشته باشد. یک فیلد نام محلی که هر سایت مسئول نام گذاری آن است و یک فیلد Birth Site که سایتی که رابطه را تولید کرده و اطلاعات تمامی Fragment ها و کپی های رابطه را دارد، را مشخص می کند. توسط این دو فیلد یک رابطه به صورت یکتا نام گذاری می شود که ما به آن global relation name می گوئیم. برای مشخص کردن یک replica ما از ترکیب global relation name و replica ID استفاده می کنیم و به آن global replica name می گوئیم.
2-24-2) ساختار کاتالوگ
کاتالوگ می تواند بر روی یک سایت مرکزی باشد ولی درصورتی که آن سایت خراب شود کاتالوگ سیستم از بینمی رود روش دیگر اینست که در هر سایت یک کپی از کاتالوگ سیستم نگهداری شود. ولی اشکال اینروش هماینست که هر تغییر در کاتالوگ سیستم باید به تمامی سایت های دیگر broadcast شود. روش دیگر اینست که در هر سایت یک کاتالوگ محلی که شامل اطلاعات کپی داده ها در آن سایت می باشد، موجود باشد همچنین کاتالوگ در سایت مادر (birth site) مسئول اینست که محل تکرار های آن رابطه را ذخیره کند هنگامی که یک نسخه جدید تولید می شود و یا یک نسخه از یک سایت به سایت دیگری منتقل می شود اطلاعات سایت مادر باید به روز رسانده شود. هنگامی که یک رابطه تولید می شود اطلاعات کاتالوگ سایت مادر بررسی می شود.
2-52) معماری سیستمهای توزیع شده
شکل 2-11: معماری توزیع شده[3]
بر اساس استاندارد ISO در مدل معماری Open Distributed Computing موارد ذیل باید transparent (شفاف) باشند :
* دسترسی(Access)
* موقعیت (Location)
* همزمانی(Concurrency)
* کپی برداری داده ها (Replication)
* اشکالات (Failure)
* تبدیل پلتفرم (Migration)
* کارآیی (Performance)
* توسعه پذیری (Scaling)
2-26-1) معماریهای مختلف برای سیستم مدیریت پایگاه داده های توزیع شده
2-26-1) سیستمهای مشتری/خدمتگزار(Client/Server)
در این معماری وظایف مشتری و خدمتگزار کاملاً از هم جداست و در هر لحظه یک یا چند پردازه مشتری و یکیا چند پردازه خدمتگزاردرسیستم موجود است و پردازه های مشتری می توانند به هریک ازپردازههایخدمتگزار پرس و جو بفرستند. این معماری به دلیل سادگی نسبی پیاده سازی و متمرکز بودن خدمتگزار خیلی رایج است. در این سیستم کاربر می تواند با استفاده از واسط کاربر گرافیکی در سیستم مشتری کار کند و نیازی به کار کردن با واسطهای کاربر نامانوس در سیستم خدمتگزار نیست.
شکل 2-12: سیستم مشتری/ خدمتگزار[3]
2-26-1) سیستم سرورهای همکار (Collaborating Server)
سیستم مشتری/خدمتگزار به یک پرس و جو اجازه پوشش چند خدمتگزار را نمی دهد زیرا در این صورت مشتری باید پرس و جو را به بخشهای مختلف تقسیم کرده تا در خدمتگزارهای مختلف اجرا شوند و جوابها را با هم ترکیب کند که این کار اصل جدا بودن وظایف مشتری از خدمتگزار را زیر سوال می برد. در سیستم تشریک مساعی مجموعه ای از خدمتگزارها داریم که هر کدام توانایی اجرای تراکنش روی داده های محلی را دارند و با همکاری یکدیگر تراکنشهایی که شامل چند خدمتگزار می شود را اجرا می کنند.
شکل2-13: سرورهای همکار[3]
2-26-1)سیستم های میان افزار (MiddleWare)
محیطی را در نظر بگیرید که در آن تمام خدمتگزاران قابلیت پشتیبانی از پرس و جوهایی که از چند خدمتگزار استفاده می کنند را ندارند، سیستمهای میان افزار برای این محیط از پایگاه داده های توزیع شده طراحی شده است. ایده اصلی دراین روش وجود فقط یک خدمتگزاربا قابلیت مدیریت تراکنشهای توزیع شده است وسایرخدمتگزاران فقط پرس و جوهای محلی را پاسخ می هند. می توان این خدمتگزار خاص را یک لایه نرم افزاری در نظرگرفت که به آن میان افزار می گویند.این نرم افزار داده ای درا نگهداری نمی کند.
فصل سوم
سیستم های توزیع شده
3-1 تعریف سیستم توزیع شده
سیستم توزیع شده، کلکسیونی از کامپیوترهای مستقل است که از دیدگاه کاربران مثل یک سیستم منسجم ( coherent ) و منفرد ( single ) عمل می کند.
این تعریف دو جنبه ی مهم دارد.
اولین جنبه این است که سیستم توزیع شده شامل مولفه هایی ( یعنی کامپیوترهایی ) است که خود مختار است. دومین جنبه این است که کاربران ( برنامه ها یا انسان ها ) فکر می کنند که تنها با یک سیستم سروکار دارند معنایش این است که مولفه های خود مختار باید همکاری داشته باشند.
شکل 3-1: سیستم توزیع شده[3]
3-2 اهداف
از این که می توان سیستم های توزیع شده را ساخت، الزاما به معنای خوب بودن این ایده نیست. با فناوری موجود می توان چهار درایو فلاپی روی یک کامپیوتر شخصی قرار داد. فقط به دلیل این که می توان چنین کاری را انجام داد، اقدام به این کار، منطقی نیست. در این بخش چهار هدف مهمی که باید برآورده شود تا ساخت سیستم توزیع شده ارزشمند باشد، بررسی می شوند.
3-2-1 دسترسی به منابع
هدف اصلی سیستم توزیع شده این است که کاربران ( و برنامه های کاربردی ) به راحتی به منابع راه دور دسترسی داشته باشند و آنها را به روش کنترل شده و موثر، به اشتراک بگذارند. منابع می توانند هر چیزی باشند.
* چاپگرها
* کامپیوتر ها
* تجهیزات ذخیره سازی
* داده ها
* فایل ها
* صفحات وب
* شبکه ها
دلایل زیادی برای اشتراک منابع وجود دارد. یک دلیل روشن صرفه حویی اقتصادی است به عنوان مثال، اشتراک یک چاپگر بین چندین کاربر در یک اداره، اقتصادی تر از این است که برای هر کاربر یک چاپگر خریداری گردد.
3-2-2 شفافیت توزیع
یک هدف مهم سیستم توزیع شده پنهان سازی این حقیقت است که فرآیندها و منابع آن به طور فیزیکی بین چندین کامپیوتر توزیع شده اند. سیستم توزیع شده ای که قادراست خودش را طوری به کاربران و برنامه های کاربردی ارایه کند که گویی فقط یک سیستم کامپیوتری است شفاف نام دارد. ابتدا بررسی می کنیم که چه نوع شفافیت هایی در سیستم های توزیع شده وجود دارد.
3-2-3 بازبودن
هدف مهم دیگر سیستم های توزیع شده، باز بودن است و در سیستم توزیع شده ی باز سرویس ها براساس قوانین استانداردی ارایه می شوند که نحو و معنای این سرویس ها توسط آن استانداردها توصیف می شود.
به عنوان مثال:در شبکه های کامپیوتر ی قوانین استاندارد، فرمت، محتویات و معنای پیام های ارسالی و دریافتی را اداره می کند.
این قوانین در پروتکل ها گنجانده می شوند. فرمت، محتویات و معنای پیام های ارسالی و دریافتی را اداره می کند این قوانین در پروتکل ها گنجانده می شوند در سیستم های توزیع شده سرویس ها معمولا از طریق واسط ها مشخص می شوند که اغلب در زبان تعریف واسط تشریح می شوند.
تعریف واسط هایی که در IDL نوشته می شوند تقریبا همیشه نحو سرویس ها را مشخص می کنند به عبارت دیگر آن ها دقیقا اسامی توابعی را مشخص می کنند که به همراه انواع پارامترها، مقادیر برگشتی، استثناهایی که قابل صادر شدن هستند و غیره فراهم هستند. بخش دشوار، بیان دقیق عملکرد سرویس ها، یعنی معنای واسط ها است. در عمل این مشخصات توسط یک زبان طبیعی به صورت رسمی بیان می شود.
شکل 3-2: گسترش پذیری یا توسعه پذیری
3-2-4گسترش پذیری یا توسعه پذیری
نظر به جهانی بودن اتصال از طریق اینترنت، افراد از آن برای ارسال کارت پستال استفاده می کنند. با توجه به این نکته، توسعه پذیری، یکی از مهم ترین اهداف طراحی سازندگان سیستم های توزیع شده است. توسعه پذیری سیستم را حداقل در سه بعد مختلف می توان اندازه گیری کرد ( نیومن 1994 ).
نخست این که سیستم می تواند از نظر اندازه قابل توسعه باشد، یعنی به راحتی می توان کاربران و منابعی را به آن اضافه کرد. دوم این که سیستمی با قابلیت توسعه ی جغرافیایی سیستمی است که در آن کاربران و منابع می توانند خیلی از هم دور باشند. سوم این که، سیستم می تواند از نظر سرپرستی قابل توسعه باشد، یعنی حتی اگر بسیاری از سازمان های سرپرستی مستقل را در بر گیرد، مدیریت آسان است. متاسفانه سیستمی که در یک یا چند بعد از این ابعاد توسعه پذیر باشد، با توسعه سیستم، کارایی آن کاهش می یابد.
3-2-5 طرح اشکال ها
با رعایت چند اصل طراحی، سیستم های توزیع شده طوری می توانند ساخته شوند که به اهداف مطرح شده در این فصل دست یابند. اغلب سیستم ها بسیار پیچیده می شوند و اشکالاتی در آن ها وجود خواهد داشت که برای رفع آن ها وصله زده شود. پیتر دیونج در شرکت سان میکرو سیستم، این اشکالات را ناشی از فرض های نادرستی دانست که افرادی که اولین بار سیستم های توزیع شده را ایجاد می کنند می پذیرند:
1. شبکه قابل اعتماد است.
2. شبکه امن است.
3. شبکه همگن ( یکنواخت ) است.
4. توپولوژی شبکه تغییر نمی کند.
5. تاخیر انتشار در شبکه، صفر است.
6. پهنای باند نامحدود است.
7. هزینه ی انتقال صفر است.
8. فقط یک سرپرست وجود دارد.
شکل 3-3: انواع سیستم های توزیع شده[4]
3-3 انواع سیستم های توزیع شده
3-3-1 سیستم های محاسبات توزیع شده
دسته ی مهمی از سیستم های توزیع شده برای کارهای محاسباتی با کارایی بالا به کار می روند این سیستم ها به دو گروه تقسیم می شوند. در محاسبات خوشه ای سخت افزار شامل مجموعه ای از PC ها یا ایستگاههای کارای مشابه است که از طریق شبکه ی محلی پرسرعت به هم متصل می شوند. علاوه بر این هر گره سیستم عامل واحدی را اجرا می کند.
این وضعیت در محاسبات گرید کاملا فرق می کند این زیرگروه شامل سیستم های توزیع شده ای است که اغلب به صورت فدراسیونی از سیستم های کامپیوتر ی ساخته می شوند که هر سیستم ممکن است در دامنه ی مدیریتی مختلفی واقع شود و بر حسب نوع سخت افزار، نرم افزار و فناوری شبکه فرق کنند.
* سیستم های محاسباتی خوشه ای
* سیستم های محاسباتی گرید
3-3-2 سیستم های اطلاعات توزیع شده
دسته مهم دیگری از سیستم های توزیع شده در سازمان هایی پیدا می شود که با تعداد زیادی از برنامه های کاربردی شکبه شده سرو کار دارند. اما قابلیت کا با هم برای آن ها دشوار است بسیاری از راه حل های میان افزار نتیجه کارکردن با زیرساخت هایی است که در آن ها جامعیت برنامه های کاربردی در سیستم اطلاعاتی سطح شرکت آسان تر بود ( برنستین 1996 و الونسو و همکاران 2004 )جامعیت در سطوح مختلفی قابل تشخیص است در بسیاری از موارد برنامه ی کاربردی شبکه شامل سروری است که آن برنامه ی کاربردی را اجرا می کند.
مثال:اغلب شامل بانک اطلاعاتی است و آن را برای برنامه های راه دور یعنی کلاینت ها فراهم می سازد این کلاینت ها می توانند در خواست اجرای عملیات خاصی را به سروری بفرستند و سرور به آن پاسخ می دهد. جامعیت در پایین ترین سطح به کلاینت ها اجازه می دهد چندین درخواست را در یک درخواست بزرگ بسته بندی کنند و آن را به عنوان تراکنش توزیع شده اجرا می کند. این ایده ی مهم این بود که یا تمام درخواست ها انجام می شوند یا هیچ کدام انجام نمی شوند.
3-3-4 سیستم های فراگیر توزیع شده
سیستم های توزیع شده ای که تا کنون بحث کردیم با ویژگی پایداری خودشان مشخص شدند: گره ها ثابت هستند و اتصالی کما بییش با کیفیت بالا و دایمی با شبکه دارند. این پایداری تا حدی از طریق تکنیک های گوناگونی تخقق پیدا کرد که در این متن بحث می شود و به حصول شفافیت توزیع کمک می کند. به عنوان مثال: تکنیک های متعدد برای مخفی کردن خرابی های و ترمیم نشان می دهد که اشکالات موردی هستند. به طور مشابه می توانستیم جنبه های مربوط به مکان گره را در شبکه مخفی کنیم و به کاربران و برنامه های کاربردی اجازه دهیم که فکر کنند گره ها ثابت هستند.
اما با ظهور دستگاه های محاسباتی تعبیه شده و سیار، قضیه فرق کرد. اکنون با سیستم های توزیع شده مواجه ایم که در آن ها ناپایداری، رفتار پیش فرض است. در دستگاه ها در این سیستم های فراگیر توزیع شده کوچک و سیار هستند و فقط یک اتصال بی سیم دارند و با باطری کار م یکنند ولی تمام دستگاه ها این ویژگی را ندارند علاوه بر این الزاما این ویژگی به عنوان محدودیت تلقی نمی شوند همچنان که در امکانات تلفن های هوشمند مدرن تشریح شده است ( روسس و همکاران 2005 ).
سیستم فراگیر توزیع شده بخشی از محیط اطراف ماست و ذاتا توزیع شده است. ویژگی مهم عدم وجود کنترل سرپرستی انسانی است. این دستگاه ها می تواننند توسط مالک خود پیکربندی شوند ولی باید محیط خودشتان را به طور خودکار کشف کنند و هر چه بهتر در آن مستقر شوند این استقرار به طور دقیق توسط گریم و همکاران او ( 2004 ) با تعیین سه نیازمندی برای برنامه های کاربردی فراگیر، شرح داده شده:
* در برگرفتن تغییرات محیطی
* پیکر بندی موردی
* مشارکت در اطلاعات به طور پیش فرض
3-4 معماری ها
سیستم های توزیع شده اغلب قطعات پیچیده ای هستند که بنا به تعریف مولفه های آن ها در سراسر چندین ماشین پراکنده هستند. برای مهار کردن پیچیدگی آن ها این سیستم ها باید به طور مناسب سازمان دهی شوند روش های مختلفی برای سازماندهی سیستم های توزیعت شده وجود دارد ولی واضح ترین آنها تصمیم گیری بین سازمان منطقی مجموعه ی مولقه های نرم افزاری از یک طرف سیستم فیزیکی از طرف دیگر است.سازمان دهی سیستم های توزیع شده تا حد زیادی به مولفه های نرم افزاری مربوط می شود که سیستم را می سازند این معماری های نرم افزار به ما می گویند که مولفه های نرم افزاری گوناگون چگونه باید سازماندهی شوند و چگونه باید با یکدیگر تعامل داشته باشند.
تحقق یک سیستم توزیع شده مستلزم این است که مولفه های نرم افزاری را نمونه سازی کرده در کامپیوتر های واقعی قرار دهیم. برای این کار انتخاب های گوناگونی وجود دارد نمونه سازی نهایی معماری نرم افزار را معماری سیستم می نامند.
شکل 3-4: سبک های معماری
3-5 سبک های معماری
ابتدا سازماندهی منطقی سیستم های توزیع شده را به مولفه های نرم افزاری در نظر می گیریم که معماری نرم افزار نامیده می شود ( باس و همکاران 2003 ) تحقیق درباره معماری نرم افزار به اندازی کافی رشد کرد و فعلا پذیرفته شده است که طراحی با تطبیق معماری برای توسعه ی موفق سیستم های بزرگ حیاتی است. برای بحث ما فرضیه ی سبک معماری مهم است این سبک براساس مولفه ها روش اتصال مولفه به یکدیگر داده های مبادله شده بین مولفه ها و چگونگی پیکربندی این عناصر در سیستم مشخص می شود مولفه واحدی با واسط های ضورری و آماده است که در محیط خود قابل تعویض است همان طور که در ادامه بحث خواهیم کرد موضوع مهم در باره مولفهی مربوط به سیستم های توزیع شده این است که می تواند تعویض شود به شرطی که واسط های آن تعیین شوند. مفهوم دشوارتر دیگر کانکتور یا اتصال گر است و غالبا راهکاری است که ارتباطات هماهنگی و یا همکاری بین مولفه های مختلف را فراهم می سازد. به عنوان مثال کانکتور می تواند با استفاده از امکاناتی برای فرخوانی های روال ( راه دور مبادله پیام با جریان داده ها ساخته می شود. با استفاده از مولفه ها و کانکتور ها پیکر بندی های گوناگونی به دست می آید که به سبک های معماری دسته بندی می شوند تا کنون چندین سبک معماری شناسایی شدند که موارد زیر مربوط به سیستم های توزیع شده اند.
1. معماری های لایه
2. معماری های مبتنی بر شی ء
3. معماری های داده محور
4. معماری های مبتنی بر رویداد
ایده اصلی برای سبک لایه ای آسان است: مولفه ها به روش لایه ای سازماندهی می شوند که در آن مولفه ی در لایه L1 اجازه دارد مولفه لایه L1-1 را فراخوانی کند اما اجازه ندارد مولفه های دیگر را فراخوانی کند. این مدل به طور گسترده در دنیای شبکه بندی پذیرفته شده است که آن را در فصل 4 بررسی خواهیم کرد معمولا کنترل از لایه ای به لایه ی دیگر جریان دارد درخواست ها به طرف پایین سلسله مرابت و نتایج به طرف بالا جریان دارند.
در معماری های مبتنی بر شی سازماندهی ضعیف تری وجود دارد که آمده است. در اصل هر شیء متناظر با چیزی است که ما آن را مولفه تعریف کردیم و مولفه ها از طریق راهکار فراخوانی روال به هم متصل می شوند. این معماری نرم افزار با معماری سیستم کلاینت سرور تطبیق دارد که شرح آن گذشت. معماری های لایه این مبتنی بر شی هنوز مهم ترین سبک ها برای سیستم های نرم افزار ی بزرگ هستند ( باس و همکاران 2003 )
معماری های داده محور براساس این ایده تکامل یافته اند که فرآیند ها از طریق یک مخزن ( فعال یا غیرفعال) مشترک با هم ارتباط برقرار می کنند. می توان گفت که برای سیستم های توزیع شده این معماری به اندازه ی معماری های لایه ای و مبتنی بر شی اهمیت دارد به عنوان مثال برنامه های کاربردی تحت شبکه تولید شدن که متکی بر سیستم فایل توزیع شده ی مشترک هستند و تمام ارتباطات در است" به طور مجازی از طریق فایل های صورت میگیرد. به طور مشابه سیستم های توزیع شده ی مبتنی بر وب که در فصل 12 بحث می شوند دارای معماری داده محور هستند فرآیند ها با استفاده از سرویس های داده ی مشترک مبتنی بر وب با یکدیگر ارتباط برقرار می کنند.
در معماری مبتنی بر رویداد فرآیند از طریق انتشار رویداد ها با هم ارتباط برقرار می کنند که می توانند داده ها نیز حمل کنند. برای سیستم های توزیع شده انتظار رویداد به طور کلی مربوط به سیستم های انتشار / اشتراک است ایده ی اصلی این است که فرآیند ها رویدادها را منتشر می کنند و پس از آن میان افزار تضمین می کند که فقط فرآیندهایی که قبلا در آن رویداد مشترک شدند آن ها را دریافت می کنند امتیاز اصلی سیستم های مبتنی بر رویداد این است که فرآیند ها اتصال ضعیف دارند در اصل لازم نیست صریحا به یکدیگر مراجعه کنند. این وضعیت را انفصال ( باز شدن اتصال ) در فضا یا انفصال ارجاعی می نامند.
شکل 3-5: معماری سیستم
3-6 معماری های سیستم
3-6-1 معماری متمرکز
در مدل اصلی کلاینت سرور فرآیند ها در سیستم توزیع شده به دو گره تقسیم می شوند.
سرور: فرآیندی است که سرویس خاصی را پیاده سازی می کند مثال سرویس سیستم فایل یا سرویس بانک اطلاعاتی.
کلاینت: فرآیندی است که سرویسی را از سرور درخواست می کند برای این کار پیامی را به آن می فرستند و منتظر پاسخ از سرور می ماند. این تعامل کلایت – سرور را رفتار درخواست – پاسخ نیز می نامند.
لایه بندی برنامه ی کاربردی
1- سطح واسط کاربر
2- سطح پردازش
3- سطح داده
سطح واسط: کاربر شامل تمام امکانات لازم برای ارتباط با کاربر مثل مدیریت نمایش اطلاعات است
سطح پردازش: معمولا شامل برنامه های کاربردی اصلی است.
سطح داده: داده ای واقعی را که بروی آن عمل می شود مدیریت می کند.
3-6-2 معماری های نامتمرکز
معماری های چند بخشی کلاینت سطور نتیجه ی مستقیم تقسیم برنامه های کاربردی به واسط کابر مولفه های پردازش و سطح داده است بخش های مختلف مستقیما متناظر با سازماندهی منطق برنامه های کاربردی است در بسیاری از محیط های تجاری پردازش توزیع شده معادل سازماندهی برنامه های کاربردی کلاینت سرور به صورت معماری چند بخشی است این نوعت توزیع را توزیع عمودی می نامند و یژگی خاص توزیع عمودی این است که با قرار دادن مولفه های منطقا متفاوت در ماشین های مختلف دست می آید. این اصطلاح به مفهوم تقسیم کردن عمودی مربوط می شود که در بانک های اطلاعاتی رابطه توزیع شده استفاده می گردد و معنایش این است که جدول ها برحسب ستون تقسیم می شوند و سپس در چند ماشین توزیع می گردند.
از دیدگاه مدیریت سیستم توزیع عمودی می تواند به این موارد کمک کند:
توابع از نظر منطقی و فیزیکی در چند ماشین تقسیم می شوند که هر ماشین به گروه خاصی از توابع مربوط می شود اما توزیع عمودی فقط یک روش سازماندهی برنامه های کاربردی کلاینت سرور است در معماری های مدرن توزیع کلاینت ها و سرورهای در نظر گفته می شوند که توزیع افقی خوانده می شود در این نوعت توزیع کلاینت یا سرور ممکن است از نظر فیزیکی به بخش هایی که از نظر منطقی برابرند تقسیم شود و در نتیجه بار سیستم موازنه می شود در این بخش دسته ای از معماری های سیستم مدرن را در نظر می گیریم که توزیع افقی پشتیبانی می کنند و به نام سیستم های همتا به همتا خوانده می شود.
از دیدگاه سطح بالا فرآیند هایی که سیستم همتا به همتا را می سازند برابرند معنایش این است که تواتبعی که باید اجرا شوند توسط هر فرآیندی که سیستم توزیع شده را می سازد ارایه می گردد در نتیجه اغلب تعام های بین فرآیند ها متقارن است هر فرآیند به عنوان کلاینت و در عین حال به عنوان سرور عمل می کند.
شکل 3-6: سرور لبه ای
3-7 معماری های ترکیبی
3-7-1سیستم های سرور لبه ای
دسته مهمی از سیستم های توزیع شده ای که براساس معماری ترکیبی سازماندهی شدند توسط سیستم های سرور لبه ای شکل گرفته اند. این سیستم ها در اینترنت مستقر می شوند که در آن سرورها در لبه های شکل قرار می گیرند. لبه مرز به شبکه های یک سازمان و اینترنت واقعی است همانند آنچه که توسط تامین کننده خدمات اینترنت فراهم می شود به طور مشابه جایی که کاربران نهایی در خانه از طریق ISP خود به اینترنت متصل می شوند می توان گفت که ISP در لبه اینترنت قرار دارد.
کاربران نهایی یا به طور کلی کلاینت ها به وسیله سرورهای لبه ای به اینترنت متصل می شوند هدف اصلی سرور لبه ای ارایه محتوا ، احتمالا پس از اعمال توابع فیلتر کردن و تبدیل کد است جالب تر از همه این حقیقت است که مجموعه ی از سرورهای لبه ای می توانند برای بهینه سازی محتوا و توزیع برنامه های کاربردی به کار روند. مدل اصلی مربوط به سازمان خاصی است که در آن یک سرور لبه ای به عنوان سرور اصلی عمل می کند و تمام محتویات از آن ناشی می شود آن سرور می تواند از سرورهای دیگر برای تکثیر صفحات وب و غیره استفاده کند.
3-7-2 سیستم های همکاری کننده ی توزیع شده
ساختار های ترکیبی به ویژه در سیستم های توزیع شده با تشریک مساعی پیاده سازی شده اند نکته ی اصلی در بسیاری از این سیستم های را اندازی آن هاست که یک طرح کلاینت سرور سنتی مستقر است وقتی گره ای به سیستم متصل می شود می تواند از طریق کاملا نامتمرکز برای همکاری استفاده کند.
ایده اصلی آن این است که وقتی کاربر نهایی فایلی را جستجو می کند بخش هایی از فایل را از کاربرای دیگر دانلود می کند تا این بخش های دانلود شده بتوانند مونتاژ شوند و فایل کامل را ایجا کنند. هدف مهم این طراحی تضمین تشریک مساعی بود در اغلب سیستم های اشتراک فایل بخش قابل توجهی از شرکت کنندگان صرفا فایل هایی را دانلود می کنند و در بقیه موارد نقش آن ها چیزی نزدیک به صفر است. به این ترتیب فایل فقط در صورتی فایل دانلود کردن است که کلاینتی که فایل را دانلود می کند خودش در حال تحویل محتوا به فرد دیگری باشد.
3-8 معماری یا میان افزار ؟
فایده مدل سازی میان افزار بر حسب سبک خاصی از معماری این است که طراحی برنامه های کاربردی ساده تر می شود به هر حال عیش این است که ممکن است میان افزار برای آنچه که توسعه دهنده ی برنامه های کاربردی در ذهن دارد ایده آل نباشد به عنوان مثال CORBA ابتدا فقط اشایی را پیشنهاد کرد که می توانستند توسط کلاینت های راه دور فراخوانی شوند بعدا احساس کرد که تنها این نوع محدود کننده است و الگوهای تعاملی دیگر مثل پیام رسانی اضافه شدند روشن است که افزودن ویژگی های جدید می تواند منجر به افزایش حجم راه حل های میان افزار شود.
علاوه بر این گرچه میان افزار وسیله ای برای فراهم کردن شفافیت توزیع است، به طور کلی روشن شد که راه حل های خاصب باید با نیازمندی های برنامه های کاربردی سازگاری داشته باشند یک راه حل این است مسئله ایجاد چندین نسخه از سیستم میان افزار است که در آن هر نسخه به دسته خاصی از برنامه های کاربردی تعلق دارد.
3-8-1 رهگیرها
از نظر ادارکی رهگیر یک ساختار نرم افزار ی است که جریان عادی کنترل را قطع می کند و اجازه می دهد که دیگری اجرا شود عمومی کردن رهگیرها نیاز به کار زیادی برای پیاده سازی دارد و معلوم نیست آیا در چنین مواردی عمومیت باید نسبت به سهولت و قابلیت به کارگیری محدود ارجح باشد یا خیر. همچنین در بسیاری موارد وجود امکانات رهگیری محدود مدیریت نرم افزار و کل سیستم توزیع شده را بهبود بخشد.
3-8-2 روش های کلی برای نرم افزار تطبیق پذیر
در واقع رهگیرها ابزارهایی برای تطبیق میان افزار محسوب می شوند نیاز به تطبیق پذیری ناشی از این حقیقت است که محیطی که در آن برنامه های کاربردی توزیع شده اجرا می شود دائما در حال تغییر است ای تغییرات ناشی از تحرک تفاوت زیاد در کیفیت سرویس شبکه ها خرابی سخت افزار فرسوده شدن باطری و غیره است. به جای این که برنامه های کاربردی مسئول واکنش نشان دادن به تغییرات باشند این کار در میان افزار صورت می گیرد.
نوع این تاثیر پذیری قوی از محیط طراحان میان افزار را وادار کرد تا نرم افزار تطبیق پذیر را بسازند. اما این نرم افزار ها آن طور که انتظار می رفت. موفق نبوده اند. چون بسیاری از پژوهشگران و توسعه دهندگان نرم افزار تطبیق پذیر را جنبه ی مهمی از سیستم های توزیع شده ی مدرن می دانند آن را به طور مختصر بررسی می کنیم. مکینیلی و همکاران سه تکنیک را برا تهیه ی نرم افزار های تطبیق پذیر ارایه کردند .
1- تفکیک وظایف
2- انعکاس محاسباتی
3- طراحی مبتنی بر مولفه
3-8-3 بحث
معماری های نرم افزار برای سیستم های توزیع شده به خصوص آن هایی که بصورت میان افزار هستند حجیم و پیچیده اند تا حد زیادی این حجم زیاد و پیچیدگی ناشی از نیاز به شفافیت در سیستم های توزیع شده است. علاوه بر این، برنامه های کاربردی نیازمند عملکردهای اضافی خاصی هستند که با هدف دستیابی به شفافیت کامل در تضاد هستند این نیازمندی های متضاد برای عمومیت بخشیدن و خصوصی سازی منجر به این شد که راه حل های میان افزار بسیار قابل انعطاف باشند.
هزینه ی این دستاورد پیچیدگی است به عنوان مثال: زانگ و جاکسون ( 2004 ) گزارش دادن که اندازه یک نرم افزار خاص پس از چهار سال از تولید اولیه اش 5% افزایش یافته است در حالی که تعداد فایل های آن محصول در همان مدت سه برابر شده است. روشن است که دنبال کردن این نکته ارزش ندارد.
با توجه به این که به طور مجاازی تمام سیستم های نرم افزار ی بزرگ امروزی باید در محیط شبکه اجرا شوند می توانیم از خود بپرسیم که آیا پیچیدگی سیستم های توزیع شده ویژگی ارثی ناشی از تلاش برای شفافیت توزیع هست یا خیر البته موضوعاتی مثل بازبودن سیستم های توزیع شده اهمیت یکسانی دارند اما قابلیت انعطاف به اندازه ی میان افزار مطرح نبوده است.
3-9 خود مدیریتی در سیستم های توزیع شده
سیستم های توزیع شده باید راه حل های کلی را برای مقاومت در مقابل ویژگی های نامطلوب ذاتی شبکه ارایه کنند به طوریه که توانند از برنامه های کاربردی بیشتری پشتیبانی نمایند. از طرف دیگر شفافیت توزیع کامل مورد نیاز تمام برنامه های کاربردی نیست و در نتیجه از راه حل های خاص برنامه ی کاربرد نیز باید پشتیبانی شود. استدلال کردیم که به همین دلیل سیستم های توزیع شده باید تطبیقی باشند مخصوصا در هنگامی که رفتار اجرایی خود را تطبیق می دهند. نه مولفه های نرم افزار ی تشکیل دهنده ی آن ها.
وقتی تطبیق باید به طور خودکار انجام شود تعامل قوی ای بین معماری های سیستم و معماری های نرم افزار مشاهده می شود. از یک طرف لازم است مولفه های سیستم توزیع شده طوری سازماندهی شوند که نظارت و انطباق صورت گیرد و از طرف دیگر باید تصمیم بگیرد که فرآیند های مجری تطبیق در کجا اجرا شوند.
شکل 3-7: کنترل بازخوردی[3]
3-9-1 مدل کنترل بازخوردی
دیدگاه های مختلفی درباره ی سیستم های خود مدیریتی وجود دارد امام متداول ترین آنها این است که فرض شود تطبیق از طریق یک یا چند حلقه کنترل بازخورد ی یصورت می گیرد به این ترتیب سیستم هایی که به وسیله این حلقه ها سازماندهی می شوند، سیستم های کنترل بازخورد ی نامیده می شوند. کنترل بازخورد ی مدت زیادی است که در زمینه های مهندسی مختلف اعمال شدند و مبنای ریاضی آن ها نیز به تدریج در سیستم های محاسباتی راه یافت برای سیستم های خود مدیریتی، جالب ترین نکته معماری است. هسته ی سیستم کنترل بازخورد ی حاوی مولفه هایی است که باید مدیریت شوند فرض می شود این مولفه ها توسط پارامترهای ورودی کنترل پذیر اداره می شوند اما رفتار آن ها ممکن است تحت تاثیر تمام انواع ورودی کنترل ناپذیر باشد ورودی های کنترل ناپذیر را ورودی مخرب یا ورودی اختلال یا نویز نیز می گویند گرچه کنترل ناپذیری ناشی از محیط است که سیستم های توزیع شده در آن اجرا می شوند ولی معمولا تعامل پیش بینی نشده ی مولفه ها منجر به رفتار غیرمنتظره می شود.
فصل چهارم
پایگاه های داده توزیع شده و کاربرد آن در سیستم های توزیع شده
طرح یک سیستم استاندارد توزیع شده برای آموزش الکترونیکی
(Design of a standard distributed e-learning system)
پیشرفت های اخیر در زمینه سرعت و سهولت استفاده از اینترنت و سرعت و قدرت سکوهای نرم افزاری و کامپیوترهای شخصی باعث شده است که محیطهای مبتنی بر تشریک مساعی (Collaborative) و سایر سیستم های آموزشی توزیع شده (Distributed learning System ) به سرعت رشد نمایند. در این رابطه تلاش های گوناگونی در جهان و در ایران برای طراحی، پیاده سازی و توسعه سیست مهای آموزش الکترونیک صورت گرفته است. براساس تجارب قبلی و مطالعات انجام شده مدل مفهومی یک سیستم آموزش الکترونیکی به شرح زیر ارائه م یشود تا پوشش دهنده کلیه نیازهای یک سیستم جامع مرتبط با این بحث باشد.
شکل 1-4 : سیستم LMS , LCMS
در طراحی سیستم پیشنهادی تمرکز فراوانی برروی توزیع یافتگی (Distribution) سیستم شده است. از این رو واحد طراحی شده فوق توانایی تکثیر در تعداد بالا را دارد.( در اصطلاح این سیستم Scalable است) در طراحی این سیستم از فناوری Web Servic بهره گیری کامل شده است .برای آنکه بتوان اصل Scaleشدن را به سهولت پیاده سازی نمود لازم است تا استانداردهای موردنظر کاملا رعایت شود که در بخش خود گراف مربوط به این استاندارد را نیز ارائه خواهیم داد. ابتدا به شرح دقیق اجزای این نظام می پردازیم. سپس استانداردهای ارتباطی که در این مجموعه باید لحاظ شود را پیشنهاد می کنیم و در انتها به گسترش های سیستم می پردازیم.سیستم مدیریت فراگیرمورد نظر باید چه خصوصیاتی را دارا باشد؟
در قدم اول لازم است تا تعریفی از سیستم مدیریت فراگیری ارائه دهیم و خط دقیقی مابین آن و سیستم مدیریت محتوای آموزشی داشته باشیم.
سیستم مدیریت فراگیری (Learning Management System [LMS]) یک بسته نرم افزاری است که مدیریت آموزش و فراگیری افراد یک سازمان را به عهده دارد. این ابزار توانایی پشتیبانی اشکال مختلف آموزش (همزمان یا غیرهمزمان Asynchronous Synchronous or به کمک آموزگار یا بدون کمک آموزگار Instructor led or Non-Instructor led و به کمک رایانه [Computer Based] یا غیر آن)را دارد.
در توضیح بیشتر این تعریف باید بگوییم که سیستم مدیریت فراگیری یک راه حل راهبردی برای برنامه ریزی، ارائه و مدیریت تمام رخدادهای آموزشی است، تمرکز LMS بر مدیریت دانش آموزان، پیگیری پیشرفت و توانایی آن ها در مجموعه فعالیت های آموزشی است. سیستم مدیریت فراگیری یک نقطه دستیابی به مجموعه ای پراکنده از منابع آموزشی است ، این ابزار، مدیریت برنامه آموزشی را اتوماتیک می نماید و امکانات جدیدی در اختیار قرار می دهد سیستم مدیریت فراگیری افرادی که درس مشخصی را می خواهند هدایت می کند و به آنها می گوید که این درس در کجای مجموعه درسی مورد نظر قرار می گیرد ، چه زمانی در دسترس آن هاخواهد بود و چگونه به آنان تحویل داده خواهد شد (از طریق کلاس درس مجازی، به صورت برخط، روی (… CD-ROM و برای گذراندن آن چه پیش نیازی مورد نظر است؟
زمانی که دانش آموز یک درس را تمام کرد LMS وظیفه مدیریت آزمون را به عهده می گیرد، نتایج را گزارش می دهد و مرحله بعدی را پیشنهاد میکند. LMS باید امکان مدیریت ثبت نام و ذخیره اطلاعات شخصی دانش آموز را بدهد، قوانین را تنظیم کند،آموزگاران را مشخص کند، امکان دسترسی مدیران به پایگاه داده های آموزشی را در اختیار بگذارد، گزارش های استاندارد و بنا به نیاز روی تک تک افراد یا گروهایی از آنان بسازد سیستم باید Scalableباشد یعنی با فزونی کاربران، گسترش یابد . تمام این توانایی های سیستم باید به کمک رابط کاربر آسان در اختیار قرار گیرد .برای یکLMS بسیار مهم است که مجموعه وسیعی از دروس تولید شده توسط تولیدکنندگان مختلف را پشتیبانی کند. این پشتیبانی باید به سادگی و بدون دردسر اضافی صورت گیرد.بنابراین LMS باید از استانداردهای جهانی پشتیبانی نماید.ارزشیابی، آزمون و امتحان جزء ذاتی این سیستم است . LMS باید این سه را پوشش دهد . سیستم مدیریت فراگیری در برگیرنده پایگاه داده ها از اطلاعات دانش آموزان به همراه امکانات مدیریتی این اطلاعات است. LMS وظیفه مدیریت منابع آموزشی، ارتباط با کلاس های مجازی و سیستم LCMS و نرم افزارهای پیرامونی تجزیه و تحلیل روند آموزش را نیز به عهده دارد. LMS باید گروه های کاربران را مدیریت کند ، به هر کدام اجازه دهد که درسی را که توسط LCMS یا ابزار دیگری توسعه داده شده است را اجرا کند. این سیستم باید ضمن ارائه محتوا، پیشرفت هر کاربر را Bookmark نماید. LMS محل دستیابی به مجموع های گسترده از منابع آموزشی است. نیاز افراد به گذراندن درس مشخص را تشخیص می دهد ، آن درس را در مجموعه درسی مورد نظر قرار می دهد و به شخص اطلاع می دهد که این درس چه زمانی و چگونه در دسترس وی خواهدبود و پیش نیازی های این درس چیست. زمانی که فراگیرنده درس را تمام کرد LMS وظیفه مدیریت آزمون را به عهده می گیرد، نتایج را گزارش میدهد و مرحله بعدی را پیشنهاد میکند. در سیستم های سیستم مدیریت فراگیری که آموزش برخط یا On Line را پوشش میدهند، امکانات زیر قطعًا باید در نظر گرفته شود:
• مکانیزم های ارائه دروس برمبنای سیست مهای مختلف کاربردی
• مکانیزم هزینه بری (نه تنها به لحاظ مالی بلکه منابعی که از سیستم به خود اختصاص می دهد).
• امکانات Bookmark برای دروس On Line
• امکان Down load دروس برای آموزش Off Line و در صورت امکان چاپ LMS های موجود بسته به پیچیدگی مورد نظر می تواند در یکی از این چهار سطح باشد:
1- پایه ای ترین این محصولات، تنها ابزاری برای ارائه درس هستند، در واقع نه یک LMS که تنها یک Player برای دروس On Line هستند. این ها ابزارهایی هستند که نصب می شوند تا محصولات یک تولید کننده را نمایش دهند.
2- LMS های سطح پایین – اینگونه ابزارها تنها ارائه و مدیریت دروس را به عهده دارند. آن ها مشخص م یکنند چه کسی از دروس استفاده کرده یا آن را به صورت کامل گذرانده است و گزار شهایی از نحوه استفاده از این درس را ارائه می کند.
3- LMS های سطح متوسط علاوه بر امکانات سیستم مدیریت فراگیری سطح پایین امکانات بست هبندی دروس برای تهیه دوره های آموزشی و اختصاص فراگیرنده به این دوره ها را فراهم می کنند.
4- LMS های سطح بالا علاوه بر امکانات سطوح دیگر، امکانات کامل یک پورتال آموزشی را فراهم م یکنند. این امکانات ارائه و پشتیبانی انواع مختلف آموزش الکترونیکی و سایر رو شهای سنتی آموزشی را به عهده دارند.
وظایف اصلی یک LMS را می توان چهار دسته تقسیم نمود:
وظایف مرتبط به ثبت نام دانش آموزان: شامل ثبت جزئیات شخصی افراد و کلیه مراحل وابسته به آن(در اینجا منظور کلیه افراد درگیر با سیستم مدیریت فراگیری یعنی دانش آموزان، اساتید، مدیران آموزش و در صورت نیاز والدین ) که منجر به ارائه Password و User ID به آن ها می شود. وظایف مرتبط به دروس مانند پیش نیازهای دروس ، زمانی که برای گذراندن درس در نظر گرفته شده است.
وظایف مرتبط با پیگیری پیشرفت دانش آموزان:
• ثبت قسم تهایی که از درس گذرانده شده است (bookmark)
• آزمون ها و نتایج آن ها
• پیشنهاد گذراندن درس برمبنای وضعیت دانش آموزان
• جایگزین کردن درس برمبنای پیشرفت دانش آموز
• وظایف مرتبط با گزارشات
یک LMS مناسب باید طیف وسیعی از گزارشات را پوشش دهد. گزارش دو نفع دارد. گزارش "درباره که" و "گزارش" به که" کاربران این سیستم ۴ شخصیت دانش آموز- استاد- مدیر آموزش و مدیر سایت هستند. بنابراین گزارشان می توانند در مورد فعالیت های هریک از این ۴ شخصیت به هر یک از ۴شخصیت باشد. این ماتریس گزارش دهی در صورت صلاحدید می تواند خانه های خالی نیز داشته باشد. از طرفی سیستم LMS در خدمت یک سیستم مدیریتی کلان تر قرار دارد. بنابراین مجموعه گزارشات عملکردی برای تشخیص راهبردهای آتی سازمان در قالب یک سیستم مدیریت اطلاعات ،تولید و در اختیار ساختار مدیریتی قرار می گیرد. این گزارشات می تواند به شناخت گرایش های دانش آموزان، شناخت کارایی سیستم آموزش الکترونیک، شناخت منابع مصرف شده و مورد نیاز، بودجه بندی و … کمک شایانی نماید.لازم است تا در قالب طراحی انجام شده و در دل استانداردی که دقیقًا باید رعایت شود یک مجموعه ماژولار ایجاد شود. این مجموعه می تواند یک سیستم باشد که در اصطلاح Scale شود و با LMS های جداگانه و در چهارچوب استانداردها، ارتباط تنگاتنگی داشته باشد، بنابراین سیستم سیستم مدیریت فراگیری پیشنهادی باید دارای ماژول های زیر باشد:
1) مدیریت ثبت نام فراگیران
2) مدیریت اطلاعات فراگیران
3) مدیریت دروس
4) موتور ارزیابی
5) محیط تشریک مساعی یا Collaboration
6) انباره اطلاعات فراگیران
7) سرویس از راه دور
کاربران این سیستم در قالب ۴ شخصیت متمایز می شود: 1. فراگیر 2. استاد 3. مسئول آموزش 4. مدیر سایت.
هریک از ماژول ها در قبال هر یک از این ۴ شخصیت وظایفی به عهده دارند. به این نکته دقت شود که سیستم مدیریت فراگیری طراحی شده براساس کمبودها و یا توانایی های عمدتًا ارتباطی و سخت افزاری می تواند شکل ساده شده ای از وظایف را به عهده بگیرد اما هم خطوط کلی وظایف و هم ۴ شخصیت معرفی شده در تمام LMS ها وجود خواهند داشت. حداقل وظایفی که برای هر یک از ماژو لها در مقابل هر یک از شخصیت های سیستم می توان تعریف نمود به شرح زیر است:
۱- ماژول مدیریت ثبت نام
این بخش وظیفه سازمان دهی تمام مراحل مرتبط با ثبت نام فراگیرنده را به عهده دارد. اهم فعالیت های این بخش عبارتند از: ارسال درخواست ثبت نام در درس/دوره/کلاس ، پیگیری درخواست توسط دانش آموز، مشاهده درخواست های رسیده و بررسی آ نها توسط مسئول آموزش، امکان برقراری تماس با درخواست کننده، پیگیری درخواست توسط دانش آموز ، ثبت نام فرد به عنوان دانش آموز ، تعریف دانش آموز دردوره مورد نظر، تعیین شناسه کاربری و رمز عبور، ارائه اطلاعات شخصی، تغییرات اطلاعات شخصی و رمز عبور و …
۲ – ماژول مدیریت اطلاعات
این بخش وظیفه ارتباط با سایر بخش ها در رابطه با دریافت و ارسال اطلاعات به آن ها را دارد. از طرفی خود این بخش به طور مستقیم از طریق رابط کاربر با کاربران در ارتباط خواهد بود. اهم وظایف این واحد عبارت است از: ارائه خدمات به مدیریت دروس ، ارائه خدمات به موتور ارزیابی ، ارائه خدمات به مدیریت ثبت نام ، ارتباط با سایر LMS ها از طریق سرویس راه دور، مدیریت اطلاعات دانش آموزان ، ارائه اطلاعات دان شآموزان به کاربران رده های مختلف این امر می تواند شامل سه رده اطلاعات دانش آموز باشد ، اطلاعات شخصی مانند نام، نا مخانوادگی، آدرس و … ، اطلاعات محیط ارتباطی مانند نوع سیستم عامل، طریقه ارتباط با شبکه و … ، اطلاعات تحصیلی شامل، اطلاعات کارنامه ای ، وضعیت گذراندن دروس)ثبت نام کرده، شروع کرده، درس را کامل کرده، گذرانده و(… ، ارائه امکان جستجوهای مختلف در اطلاعات شخصی افراد ، امکانات گزارش گیری متفاوت از دانشجویان و اطلاعات آنها ، مدیریت اطلاعات سایر کاربران)مانند اساتید، مدیران آموزش، والدین دانش آموزان و(… ، مدیریت کنترل سطوح امنیتی کاربران.
۳- ماژول مدیریت درس
مدیریت دروس وظیفه ارائه اطلاعات دروس به بخ شهای دیگر سیستم را به عهده دارد و از طرفی خود از طریق رابط کاربر اطلاعات مورد نظر را در اختیار کاربران قرار دهد. مهم ترین جنبه وظایف این بخش ارتباط آن با LMS است. سایر وظایف این بخش را مشاهده می کنید:
• ارائه خدمات به بخش اطلاعات فراگیران
• ارائه اطلاعات دروس/ رشته/ دروه
• مدیریت محتوی های آموزشی
• مدیریت منابع استفاده شده در دروس
• مدیریت منابع استفاده شده در کلاس های مجازی
• ارائه فهرست و اطلاعات دروس و منابع
۴ – ماژول موتور ارزیابی
وظیفه این ماژول نه طراحی سوال بلکه برگزاری آزمون و فعالی تهای مرتبط با آن است. این بخش نیز خدماتی به سایر بخ شها ارائه می دهد که در زیر به خطوط کلی آن می پردازیم: ارائه خدمات به بخش انتخاب مرحله بعدی درس در فاز تحویل درس (Delivery) از سیستم LCMS ، ارتباط با سیستم اطلاعات فراگیران و دریافت و ارائه خدمات از / به آن، ارائه خدمات به محیط تشریک مساعی یا Collaboration ، برگزاری آزمون و امتحانات دانش آموزان، ارائه امکان شرکت در آزمون و امتحان، تولید نتایج آزمون و امتحان ، ارائه نتایج در سطوح مختلف کاربری به کاربران سیستم .
۵- محیط تشریک مساعی
یکی از مهم ترین بخش های یک سیستم LMS محیط تشریک مساعی آن است که بسته به امکانات ارتباطی و سخت افزاری سیستم و تعداد کاربران می توان از یکی از روش های تشریک مساعی بهره برد. این رو شها از ارسال و دریافت سوال و جوا بها بین دانش آموز و استاد از طریق یک نامه الکترونیکی ساده آغاز می شود.البته روش بهینه در این مورد در ایران با توجه به تنگناهای ارتباطی)محدودیتهای مخابراتی(و مسائل فرهنگی بهره گیری از امکانweb mailبا استفاده از بانک های اطلاعاتی است – تا بحث هایی مانندblackboard و whiteboard و امکانات گپ(Chat) مبتنی بر متن با گپ صوتی و در نهایت کلا سهای مجازی مبتنی بر نوعیVideo conferencing. وظیفه این بخش صرف نظر از اینکه کدامیک از روش ها مورد نیاز ما است یکی است و آن امکان اضافه کردن:
1) نوعی همزمانی(Synchronization) در ارائه دروس
2) امکان ارائه دروس با یاری مدرس(Instructor-led)
3) امکان ایجاد تعامل بین دانش آموزان با یکدیگر و دان شآموزان با اساتید بنابراین م یتوان محیط تشریک مساعی مختلفی با توجه به داشت هها و امکانات و نیازها فراهم دید
اما این ماژول ها از هر روشی که استفاده نمایند وظایف زیر را به عهده خواهند داشت: امکان نسبت دادن کلا سهای مجازی(از اتاق گف توگو تا کلاس مجازی مبتنی بر تصویر) به دروس، امکان تعریف کلاس و انتساب دان شآموزان و اساتید به کلاس ، ارائه امکان مشاهده محتویات کلاس و ثبت آن (ثبت گفت وگوها) برای استفاده ها بعدی دیگران ، امکان پیش ثبت نام در کلا سها ، برقراری امکان ارتباطی به روش مناسب با رسانه ارتباطی ، امکاناتی مانند انجمن های هم علاقه، کتابخان ههای فایل انجمن ها و …، امکان گروه بندی کاربران، امکان ارسال و دریافت پیغام های شخصی ، امکان جستجو در پیغام ها ، امکان ارائه بولتن کلا سها
مدیریت پرسش و پاسخ بین دان شآموزان با یکدیگر و دان شآموزان با اساتید ، امکان ارائه پیام های عمومی به تمامی کاربران یا کاربران گروه خاص، امکان تماس با مسئول سیستم .
همانگونه که قبلا ذکر شد وظایف بالا مجموعه وظایف حداقلی یک سیستم مدیریت فراگیری است که بسته به امکانات و محیط اجرا م یتوان از این حداقل فراتر رفت. اما نکته مهم در این میان صرفنظر از آنکه در داخل سیستم از چه روشی بهره می گیریم -این است که به هنگام ارتباطات داخل یک LMS و یک LMS یا LCMSهمجوار و نیزدر ارتباط مابین سیستم های مختلف LMS از مجموعه استانداردهایی استفاده کنیم که بایکدیگر خوانایی کامل داشته باشد پس از توضیح کامل LMSو سپس LCMSبه این استانداردها اشاره خواهد شد و مجموعه اطلاعات مورد نیاز ترسیم می شود تا انجام این وظایف ممکن گردد.
سیستم مدیریت محتوای آموزشیLCMS (Learning Content ManagementSystem) باید چه خصوصیاتی داشته باشد ؟
برای آنکه بتوان تصویر روشن و مشخصی از سیستم مدیریت محتوای آموزشی داشت لازم است تا نگاهی به روش کار سنتی تولید دروس داشته باشیم. در روش جاری، تولید دروس الکترونیکی بر مبنای سوابق کاری یک تولید کننده، به وی سفارش داده می شود. تولید کننده به کمک کارشناسان خود ابتدا متن علمی مرتبط با درسرا آماده م یکند و به تصویب می رساند سپس در قالب یک سناریو وStory board روند تولید نرم افزار چندرسانه ای را پی می گیرد. در این حالت تولید کننده به گروه های مختلف تهیه کنندگان تصاویر، تصاویر متحرک(اعم از فعال و غیرفعال) کلیپ های صوتی و تصویری سناریو های هر بخش را ارائه م یکند و در انتها مجموعه مواد آموزشی تهیه شده را در قالب یک بسته نر مافزاری آماده و ارائه می نماید. برای اینکه تصویر بهتری از معایب این سیستم سنتی داشته باشیم خواننده را دعوت به تعمق در نکات زیر می نماییم:
محتوای آموزشی ارائه شده دراین روش برای تمامی شنوندگان مختلف، سلایق گوناگون و نیاز های متفاوت قابل استفاده نیست. زیرا افراد الگوهای یادگیری متفاوت و پیش فرض های گوناگونی دارند.
آیا محتوای آموزشی که به این روش تولید می شود در زمان مناسبی به دست مصرف کننده می رسد. اگر تا چند سال آینده هیچ تولید کنند های یک درس خاص را تولید نکرده بود، علاقمند به گذراندن این درس باید چه کند؟
هزینه های زیادی برای تولید یک درس صورت می گیرد که با توجه به رشد فناوری اطلاعات ظرف حداکثر ۲ سال غیرقابل استفاده م یشود. نتیجه این هزینه ها باید قابل استفاده مجدد باشد. برای تولید کننده یک درس آماده سازی همه اجزای مورد نیاز برای یک درس )مثل فیلم، انیمیشن و.( .. زمان و هزینه زیادی می طلبد. چرا باید خود را از تشریک مساعی متخصصین مختلف برای تولید یک درس با کیفت بالا محروم نماییم. در حالیکه در روش فعلی انرژی و هزینه بسیاری برای اینکه تمام صاحب نظران را در تولید یک درس شریک کنیم، مورد نیاز خواهد بود. محتوا باید بر روی رسانه های مختلف برای شرایط و نیازهای متفاوت آماده شود.معلمین باید بتوانند از اجزای آماده شده استفاده کنند و با سلیقه خود دروس ویژه خویش را بسازند. معلمین و دانش آموزان باید بتوانند اجزای یک درس )مثلا یک تصویر متحرک(را بسازند و در اختیار همگان قرار دهند. هر برنامه کاربردی برای اجرا نیاز به منابع ویژه ای دارد. به عنوان مثال گروهی از این منابع می توانند رسانه های مختلف مورد استفاده در برنامه باشند، یک تصویر، یک تصویرمتحرک، یک تکه متن، یک صفحه HTMLو … همگی جزئی از منابع یک نرم افزارآموزشی هستند. توزیع شدگی این منابع در اینجا می تواند برقراری امکان استفاده از منابع ذخیره شده در محل های مختلف باشد. با این روش از یک تصویر مناسب ، افراد مختلف می توانند در نرم افزارهای تالیف شده توسط خودشان استفاده کنند. یکی دیگر از منابع مورد نیاز سیستم نیروی انسانی است )به عنوان مثال یک مولف نرم افزارهای چندرسانه ای( توزیع شدگی در این مثال به معنی آن است که مولفین مختلف در داخل یک سیستم تشریک مساعی می توانند از فواصل دور به تالیف یک نرم افزار آموزشی بپردازند. محیط ها و ابزارهائی که در مثال های بالا به آن اشاره شد همگی در قالب یک LCMS جای می گیرند.علاوه بر مسئله تولید دروس مسئله هدایت آموزشی دانش آموزان و پیگیری فعالیتهای آموزشی(Tracking) آنان نیز جزئی از وظائف این سیستم است.
یکLCMS را می توان یک سیستم مدیریت دانش (Knowledge Management System) دانست که امکان جمع آوری اطلاعات در اشکال و قالب های گوناگون، نگهداری آن ها در انباره ها و بسته بندی آن ها به صورتی که امکان Modularity، به اشتراک گذاردن،دوباره استفاده کردن، مدیریت و نمایش آن ها به صورت یک درس آموزشی وجود داشته باشد. سیستم مدیریت محتوای آموزشی برای تبدیل اطلاعات به محتوای آموزشی متعامل و ارائه محتوا به روش های مختلف نمایش برای اهداف متفاوت آموزشی و مخاطبین گوناگون آماده می شود. به عبارت ساده تر سیستم مدیریت محتوای آموزشی برای تبدیل دانش مشخص به محتوای مشخص آموزشی به وجود آمده است.
LCMSمدیریت اطلاعاتی را که به صورت اشیای آموزشی (Learning Objects) جمع آوری شده و در انباره اشیای آموزشی نگهداری می شوند را به عهده دارد. اشیای آموزشی بسته های اطلاعاتی با محتوای آموزشی هستند که قابل به اشتراک گذاری و قابل استفاده مجدد هستند. این اشیاء می توانند به صورت مجزا یا در ترکیب های مختلف بایکدیگر دروس را بسازند. هر شیئ آموزشی می تواند ساخته شده از یک رسانه یا ترکیبی ازرسانه های مختلف باشد که برای هدف آموزشی در کنار یکدیگر قرار گرفت هاند. درسیستم های آموزش الکترونیکی مبتنی بر وب یک شیئ آموزشی می تواند شامل اجزائی درهر قالب اطلاعاتی باشد که از طریق وب قابل ارائه است. در تعریف ما شیئ آموزشی م یتواند یک صفحه اطلاعاتی به همراه تصویر یا انیمیشن یا فیلم و … باشد که یک موضوع آموزشی را ارائه می نماید و آن را به اتمام می رساند .یک شیئی آموزشی نیز می تواند سوال یا سوالات یک آزمون باشد. ابرداده ها مشخصات ویژه هر شیئ آموزشی را تعریف م یکنند. ابرداده می تواند نمایانگر موضوع، عنوان، سازنده، تاریخ، کلمات کلیدی، نوع رسانه، زبان مورد استفاده، سطح دسترسی کاربر، اهداف آموزشی، پیش نیازها، سطح تعامل، زمانی که برای گذراندن محتوی لازم است و … باشد.یک شیئ آموزشی یک ماژول پایه ای محسوب می شود که از آن کل درس ساخته میشود. Asset ها هر جزء پایه ای سیستم های آموزشی هستند .یک کلیپ فیلم یا انیمیشن یا صدا، یک صفحه متن یک تصویر و … که در ترکیب با یکدیگر LO را می سازند یک Asset نامیده می شود . هر Asset نیز باید در انباره سیستم ذخیره شود و به روشنی با ابرداده های خود تعریف گردد تا قابل بازیابی و استفاده مجدد باشد. با این تعابیر می توان به روشنی وظیفه یکLCMS را مشخص نمود.
باید بتواند انباره اشیای آموزشی وAsset ها را مدیریت کند.
براساس ابرداده های اشیای آموزشی وAsset ها در داخل انباره اشیای آموزشی وAsset ها جستجو نماید.
اشیای آموزشی وasset را اضافه، حذف کند و یا جایگزین نماید.
گزارش هایی در رابطه با محل استفاده از اشیای آموزشی وAssetها در اختیار قراردهد.
ابزارهای موجود درLCMS باید بتواند به ساخت اشیای آموزشی کمک کنند)ابزارهای تالیف(
اشیای آموزشی را در ترکیب های مختلف در کنار یکدیگر قرار دهد و یک درس بسازد.
امکان تغییر توالی اشیای آموزشی را بدهد.
به کاربران در سطوح مختلف امکان پیدا کردن اشیای آموزشی، ترکیب آ نها با یکدیگر و انتساب آن ها به دیگر افراد را بدهد.
مدیریت مجوزهای مختلف برای فعالیت های گوناگون مثل تهیه متن، تهیه گرافیک، ویرایش و بازبینی شئ آموزشی و …
LCMS باید خروجی را در رسانه های مختلف تولید کند )و برای روش های مختلف تحویل کاربر(
LCMS مدیریت نسخه های مختلف یک شیئ آموزشی را به عهده دارد .
کنترل قفل کردن سیستم تا چند کاربر همزمان برروی یک قسمت یکسان تغییر ندهد.
آرشیو کردن اشیای قدیمی تر
کنترل تاریخ/ زمان تغییرات
امکان workflow روی سیستم برای کنترل و نظم دهی روند تولید به ویژه درسیستم هایی که به صورت توزیع شده کار م یکنند امکان بسیار مهمی است.
امکان بهره گیری تعداد نامحدودی از دروس از یک شیئ آموزشی یا Asset ) بدون تکثیر آن)
جستجوی اشیای آموزشی برمبنای اطلاعات مندرج در آن (علاوه بر اطلاعات ابرداده ها)
LCMSعلاوه بر وظایف فوق که در دو بخش تالیف و ترکیب محتوای آموزشی کاربرد دارد وظایف مرتبط با تحول محتوی به کاربر را نیز دارد. بر این اساس برنامه حرکتی کاربر در فصول مختلف یک درس و ارائه پیشنهاد برای ادامه کار وی براساس نتایج آزمون ها وپیش آزمون ها( که در اصطلاح پیگیری یا(Trackingنامیده می شود از مجموعه وظایفLCMSپیشنهادی است.
ابزارتالیف
یکی از اجزای اصلی سیستم مدیریت محتوی ، ابزار تالیف است .ابزار تالیف می تواند به لحاظ عملی مستقل از سیستم مدیریت محتوی قرار داشته باشد ولی ارتباط کاملی با آن دارد.ابزار تالیف (Authoring tool) همانگونه که از نام آن برمی آید یک بسته نر م افزاری است که به مولف یک درس افزار کامپیوتری یاری می رساند تا یک درس چندرسانه ای متعامل تولید کند. اجزای اصلی این بسته عبارتند از:
امکاناتی که به مولف – که می تواند دانش کامپیوتر محدودی داشته باشد – یاری می رساند تاAsset های آموزشی را در کنار یکدیگر بچیند تا به هنگام اجرا دریک صفحه نمایش دیده شوند. به اجزای صفحه امکان تعامل با کاربر را اضافه کند. امکان اینکه از ترکیب صفحات نمایش یک شیئ آموزشی بسازد را فراهم کند. این مجموعه می تواند یک درس و یک سوال باشد.
تجزیه و تحلیل کار انجام شده توسط دان شآموز به عهده ابزار مولف است و نتایج آماری این کار (درس را تمام کرد یا نیمه کاره گذاشت، به سوال درست پاسخ داد یا خیر و . . ) ازشیئ آموزشی به LCMS و LMS انتقال داده می شود. ابزار تالیف باید بتواند خروجی های قابل اجرا برروی وب – برای دروس تحت وب – وبرای ارائه بررویCD-ROMتولید نماید.
ابزار تالیف باید بتواند مجموعه وسیعی از انواع سوالات را پشتیبانی نماید.
تعامل های به اشکال مختلف را پشتیبانی نماید. ابزار این تعامل عمومًا می تواند ماوس یا صفحه کلید باشد.
بتواند در محیط های گرافیکی مورد نظر ما عمل نماید.
امکان کار با فون تهای استاندارد را داشته باشد.
امکانات چندرسانه ای را پشتیبانی نماید.
از مجموعه استانداردهای ارائه شده در جهت ارتباط با انباره محتوی و سیستم هایLCMS و LMS تبعیت نماید.
خروجی آن Multiplatform باشد و به سکوی نر مافزاری ویژه ای وابستگی نداشته باشد.
کاربران با دانش کامپیوتری محدود بتواند به راحتی با آن کار کنند.
از استانداردهای ارائه شده در جهت تولید سیستم های Off Line یا On Line تبعیت کند.
سیستم ارائه شده در بالا توانائی آن را دارد تا تمامی نیازهای یک سیستم آموزش الکترونیکی مبتنی بر وب را پوشش دهد اما طبیعی است که ما نیازمند گسترش آن به سمت سیستم هایOffline نیز هستیم زیرا در ایران امکانات ارتباطی مناسب برای بهره برداری تمامی افراد از محیط اینترنت فراهم نیست .
علاوه بر این بحث در کشورهای توسعه یافته که از بستر ارتباطی مناسبی برخوردار هستندنیز کمابیش اثری از آموز شهای مبتنی بر کامپیوتر برروی CD-ROM یا به صورت Offline را می بینیم. دلیل این امر آن است که هنوز هم اینترنت در بسیاری از مناطق جهان ابزاری مناسب برای انتقال حجم زیادی از اطلاعات نیست. بنابراین برای حمل و نقل و ارائه رسانه های(Assets) حجیم عمومًا از همان روش معمول یعنی دروس چندرسانه ای موجود برCD-ROM استفاده می شود. در این طراحی روش ارائه را به شرح زیر در نظر می گیریم تا امکان هرگونه بهره برداری از سیستم آموزشی داده شود.
بستر ارائه دروس ، سه حالت "از طریق اینترنت به صورت On Line" و" از طریق اینترنت به صورت Off Line و "برروی"CD-ROM است.
منظور از حالت OnLine آن است که کاربر تمامی درس و تعاملات مرتبط با آن را به صورتOn Line طی میکند.
منظور "از طریق اینترنت به صورت "Off Line آن است که کاربر یک ماژول ازدروس مورد نظر خود را به صورت یک بسته از طریق اینترنت یا اینترانت Download می نماید و سپس آنرا به صورت OffLine می گذارند.
در هر سه حالت فوق اساس کار، برآن است که Asset های موجود در درس از قواعدی مشابه پیروی می کنند.
ماژول های هر درس با همان شکل On Line برروی CD-ROM هم ارائه می شوند. با این تفاوت کهAsset های موجود درCD-ROM م یتوانند از محدودیت های حجم ارائه شده پیروی ننمایند.بنابراینCD-ROMمی تواند مکمل یک درس روی وب از لحاظAsset های موجود درآن باشد.
نکته دیگری که در ارائه درس بررویCD-ROMباید درنظرگرفته شود آنست که در این حالت باید وظایف بخش های زیر از LMSبه درس روی CD-ROM منتقل شود:
۱- مکانیزم ثبت نام
۲- مکانیزم آزمون و ثبت نتایج آزمون
۳- مکانیزم ترتیب و توالی ارائه دروس برمبنای فعالی تهای دانش آموز
۴- مکانیزم Bookmark
مکانیزم ارتباط با سایت LMS برای انتقال اطلاعات ذخیره شده روی کامپیوترکاربر به سیستم . LMS
مکانیزم ارتباط با سایت سیستم مدیریت فراگیری برای برقراری امکان تعامل با استاد درس
مکانیزم ارتباط با سایت سیستم مدیریت فراگیری برای بهره برداری از سوا لهای جدید آموزشی و شرکت در انواع ارزشیابی ها
مکانیزم ارتباط با سایت سیستم مدیریت فراگیری برای بهره برداری از امکانات تشریک مساعی یاCollaboration
مکانیزم ارتباط با سایت سیستم مدیریت فراگیری برای برخورداری از امکانات گزارش گیری -گزارش دهی
حال که معیارها و استانداردهای سیستم هایLCMS و LMS پیشنهادی را روشن کردیم در مورد استانداردهای پیشنهادی برای آن به بحث م یپردازیم.
نگاهی به استانداردهای مورد استفاده در این سیستم
یکLCMSدر محیط چند کاربره، محیطی است که توسعه دهندگان مختلف می توانند محتوای آموزشی را به وجود بیاورند، ذخیره کنند، از آن استفاده مجدد نمایند، مدیریت کنند و آنرا تحویل فراگیر دهند. تمامی این فعالیت ها در ارتباط نزدیک با انباره اشیای آموزشی خواهد بود.
سیستم مدیریت فراگیری روندهای مربوط به آموزش را به عهده دارد وLCMSمدیریت روند تولید وتحویل محتوای آموزشی را انجام می دهد.
مجموعه استانداردهای مورد نیاز در این سیستم را بر روی خطوط ارتباطی بین اجزاء می بینیم.
شکل 4-2 : ارتباط بین LMS , LCMS
شکل 4-3 : ارتباط بین پایگاه های داده توزیع شده
این شکل به طور واضح مشخص می کند ارتباط بیت انباره محتوای اموزشی را که نشان می دهد3 پایگاه داده با هم در ارتباط هستند.
به طور کلی، هدف از بهره گیری از استاندارد در سیستم های آموزشی آن است که ساختار داده ای یکسان و قراردادهای ارتباطی همخوانی مورد استفاده قرار گیرد و مجموعه سیستم های آموزشی و محتواهای درون آن قابل نقل و انتقال بین یکدیگر باشند. این امرموجب می شود تا تولیدات تمامی تولید کنندگان قابل ارائه و اجرا در سیستم های LCMSو LMSطراحی شده توسط تولید کنندگان دیگر باشد و محتواها ی آموزشی آن قابلیت بازیابی مجدد نیز داشته باشد.استانداردهای آموزشی و مشخصات آن را تحت ۵ رده مشخص م یتوان سازمان دهی نمود:
• ابرداده : اشیای آموزشی محتوای آموزشی باید ب هگونه ای برچسب بخورد که به روشی ساده قابل ایندکس شدن، ذخیره شدن و جستجو و بازیابی توسط ابزارهای مختلف (مانند ابزارهای مولف) در داخل انباره های گوناگون باشند.
به داده هایی که این وظیفه را انجام می دهد ابرداده شیئ آموزشی اطلاق می شود. سازمان های مختلفی استانداردهای ابرداده ها را ارائه داده اند. LOM) از انجمن IEEE و Dublin Core وو غیره).
• بسته بندی محتوی: مشخصات بسته بندی محتوی و استانداردهای آن ها اجازه می دهد تا دروس از یک سیستم آموزشی به سیستم آموزشی دیگر منتقل شوند.
* مشخصات فراگیران: اطلاعات مشخصات فراگیران می تواند شامل داد ههای اشخاص، طراحی های آموزشی، تاریخچه آموزشی افراد، ارزشیابی ها و آزمون ها و میزان فعال بودن در بحث آموزش دیدن است. مهم ترین تلاشی که در این زمینه صورت گرفته است استاندارد IMS Learner Information Package (LIP) است.
* ثبت نام فراگیران: اطلاعات این بخش نیز در تحویل دروس به فراگیرنده و نحوه کار وی در هنگام ثبت نام مفید است.
انتقال محتواها: مهم ترین استاندارد این بخش نیز عبارتست از:
SCORM یک مدل بسیار مفید برای کار یک سیستم مدیریت فراگیری به عنوان ارائه دهنده سرویس، ارائه دروس و پیگیری موقعیت محتوی و یادگیرنده است. اما این استاندارد در مورد روابط داخل سیستم مدیریت فراگیری بحثی به میان نمی آورد. مدل پیشنهادی ما به طور جدی با مدل SCORM نزدیک است. با توجه به پیچیدگیهای SCORM 2004 به نسخه ۲ر ۱ آن اکتفا کرده ایم زیرا تا همین حد نیز قطعا با مقاومتهای بسیاری از تولید کنندگان روبرو خواهد شد. از استانداردهای بسیار مفید دیگر مانند Q&TI و LIP که به مواردی مانند استانداردمشخصات کاربران و استانداردهای ارائه سوالات می پردازد نیز در جای خود باید بهره گیری شود.
ساختار خدمات در سیستم پیشنهادی
هدف این بخش، ارائه مدل مفهومی معماری سروی سهای یک سیستم آموزشی توزیع یافته و همخوان با سایر سیستم های آموزشی است. قبلا به بحث در مورد مدل Functional پیشنهادی پرداختیم و اجزای آنرا کام ً لا شناختیم و استانداردهای منطقی و کاربردی آنرا شناسایی نمودیم. در این بخش به مدل سرویس های ویژه این سیستم می پردازیم. این مدل براساس فناوری وب سرویس پیاد هسازی شده است تا یک راه حل استاندارد برای ارتباط سیست مهای مدیریت فراگیری مختلف و سیستم های مدیریت محتوای گوناگون در اختیار قرار گیرد. از دیدگاه خدمات وب ،(Web Service) م یتوان با دقت بالایی اعلام کرد که خدمات وب کاملا برای پیاده سازی مفهوم همخوانی بین سیستم ها (Interoperability) در مجموعه سیستم های آموزشی مناسب است زیرا:
• اطلاعات قابل مبادله بین سیستم های آموزشی (اگر استاندارد باشند) مانندLOM و بسته بندی محتوای IMS و…. تمامی برمبنای استانداردXML6 قرار دارند.
• ساختار خدمات وب مستقل از سکو و زبان است. این امر موجب می شود که همخوانی بین سیست مها و توانایی گسترده شدن سیستم بین برنام ههای کاربردی مختلف، سکوهای نر مافزاری گوناگون ممکن باشد.
• خدمات وب مدل برنامه نویسی واحدی برای توسعه دهندگان سیستم تحت اینترنت و اینترانت ارائه می دهد. از این رو توسعه دهندگان سیستم و بهره گیران از آن، امکانات فراوانی در کار با شبکه ها خواهند داشت.
این ساختار نشان می دهد که سیستم های آموزش الکترونیک متفاوت چگونه به مبادله پیام ها از طریق agent های خدمات وب می پردازند. تامین کننده خدمات سکویی است که دسترسی به خدمات را میزبانی می کند در ضمن محیط اجرای سرویس یا یک ServiceContainer است. نقش این بخش مشابه نقش یک سرور در معماری خدمتگذار – خدمت گیرنده به هنگام مبادله پیغام است.
تقاضا کننده خدمت ، برنامه کاربردی است که به دنبال جستجو یا را هاندازی یک مبادله با یک خدمت است. Discovery Agency یک مجموعه قابل جستجو از مشخصات خدمات است که توسط تامین کننده خدمات نشر می یابد. اطلاعات آموزشی استاندارد شده که توسط XML نمایش داده می شود و با مشخصات فناوری SOAP پوشش داده شده است بین تقاضا کننده و تامین کننده انتقال می یابد. تامین کننده می تواند یک فایل WSDL نشر دهد که شامل مشخصات پیغام و اطلاعات نقطه دریافت کننده باشد تا اجازه دهد یک تقاضا کننده پیغامSOAP راتولید و به مقصد مورد نظر ارسال نماید.
با این روش می توان نگران تعدد احتمالی سیستم های مدیریت فراگیری و سیستم های مدیریت محتوا نبود و از طرفی مطمئن بود که تمام علاقمندان می توانند تحت پوشش این سیستم قرا رگیرند.
فصل5
نتیجه گیری و پیشنهادات
با تعریف سیستم توزیع شده که در فصل های قبل داده شد، این تعریف دو جنبه ی مهم دارد. اولین جنبه این است که سیستم توزیع شده شامل مولفه هایی ( یعنی کامپیوترهایی ) است که خود مختار است.
جنبه دوم این است که کاربران ( برنامه ها یا انسان ها ) فکر می کنند که تنها با یک سیستم سروکار دارند معنایش این است که مولفه های خود مختار باید همکاری داشته باشند. چگونگی انجام این کار مهم ترین نکته ی توسعه ی سیستم های توزیع شده است. توجه کنید که هیچ فرضیه ای درباره نوع کامپیوتر ها وجود ندارد در اصل حتی فقط در داخل یک سیستم انواع کامپیوتر ها از جمله کامپیوتر های بزرگ با کارایی بالا تا گره های کوچکی در شبکه های حسگر می توانند وجود داشته باشند به همین ترتیب هیچ فرضیه ای درباره روش اتصال کامپیوتر ها وجود ندارد. یکی از ویژگی های مهم سیستم توزیع شده این است که تفاوت های بین کامپیوتر ها و روش اتصال آن ها اغلب از دید کاربران پنهان است همین موضوع برای سازمان داخلی سیستم توزیع شده صادق است. ویژگی مهم دیگر این است که کاربران و برنامه های کاربردی می توانند به طور یکنواخت و سازگار با سیستم توزیع شده تعامل داشته باشند و مهم نیست که این تعامل در کجا و چه زمانی انجام می گیرد در اصل بسط و توسعه سیستم های توزیع شده باید آسان باشد.
این ویژگی، نتیجه ی مستقیم وجود کامپیوتر های مستقل و مخفی بودن چگونگی اتصال آن ها و تشکیل یک سیستم کامل است. سیستم توزیع شده دائما در دسترس است گرچه ممکن است بخشی از آن موقتا از دور خارج شده باشد با این وجود کاربران و برنامه های کاربردی نباید متوجه تعمیر یا تعویض بخش های معیوب و افزودن بخش های جدیدی برای ارایه سرویس شوند به منظور پشتیبانی از کامپیوتر ها و شبکه های ناهمگن و ارایه ی دیدگاه تک سیستمی، سیستم های توزیع شده معمولا بوسیله لایه ای از نرم افزارها سازماندهی می شوند. یعنی به طور متعلق بین لایه ای بالاتر که شامل کاربران و برنامه های کاربردی است و لایه ی زیرین که شامل سیستم عامل و امکانات ارتباطی پایه است قرار می گیرد. بر این اساس، چنین سیستمی توزیع شده ای میان افزار نام دارد.
اشاره کردیم که هدف مهم سیستم های توزیع شده، اشتراک منابع است در بسیاری موارد اشتراک منابع مانند برقراری ارتباط از طریق همکاری صورت می گرد. اما مواردی وجود دارد که اشتراک منابع به صورت رقابتی انجام می شود بعنوان مثال، دو کاربر مختلف است قایل های خود را در یک سرور فایل ذخیره کنند یا به جدول یکسانی از بانک اطلاعاتی مشترک دستیابی داشته باشند. در چنین مواردی نکته ی مهم این است که یک کاربر جنبه ندارد که کاربر دیگری نیز از همان منبع استفاده می کند که این پدید را شفافیت همروندی می نامند نکته مهم این است که دستیابی همزمان به منبع مشترک، آن را در حالت سازگاری (هم خوانی ) قرار می دهد.
پیوست ها
Fragmentation
Fragmentation به معنای شکستن یک رابطه به رابطه های کوچکتر و ذخیره سازی FRagmentهایی از یک رابطه به جای کل رابطه می باشد.مثلا رابطه R به بخشهای Rn,…,R2,R1 تقسیم می شود. دو نوع Fragmentation وجود دارد Fragmentation افقی و یا عمودی. به طور کلی Fragmentation افقی از طریق یک Select query تولید می شود. در حالیکه Fragmentation عمودی از طریق یک Projection اعمال می شود. لازم به ذکر است که رابطه اولیه باید بتوان از Fragment ها استخراج کرد.
در Fragmentation افقی اجتماع تاپل ها باید رابطه اولیه را نتیجه دهد در Fragmentation عمودی Projection باید به گونه ای باشد که پس از Join، Fragment ها تا پلی حذف و یا اضافه نشود. برای اینکه سیستم مطمئن شود که Fragment Join های عمودی بدون حشوو حذف بوده است به هر تاپل یک شناسه یکتا نسبت می دهدو این شناسه یکتا را در تاپل ها تمامی Fragment ها اضافه می کند این سیاست تضمین می کند که Join ، Fragment ها بدون حشوو حذف باشد.
Replication
Replication به این معنی است که ما کپی های متعددی از یک رابطه و یا یک Fragment از یک رابطه را ذخیره کنیم. به طور مثال اگر R1 و R2 و R3 ، Fragment های رابطه R باشند، ما ممکن است یک کپی از R1 داشته باشیم ولی مثلاً R2 در دو سایت موجود است و R3 در تمامی سایت ها.
مزایای این روش عبارتند از :
* افزایش دسترس پذیری داده : اگر یک سایت که شامل یک کپی از یک رابطه است خراب شود ما همان داده را می توانیم در سایت دیگری پیدا کنیم همچنین اگر یک کپی محلی از رابطه هایی که در سایت های دیگر هستند را داشته باشیم کمتر در معرض تهدید از بین رفتن کانال ارتباطی خواهیم بود. Replication دارای دو نوع مختلف همگام و غیر همگام می باشد، تفاوت این دو نوع در روش به روز رسانی کپی های یک رابطه است در زمانی که یک رابطه تغییر می کند.
* query ها با سرعت بیشتری قابل اجرا هستند زیرا یک کپی محلی از داده های ذخیره شده درپایگاه داده موجود است.
بازیابی داده ها (Data Recovery) چیست؟
بازیابی داده ها (DR) به مجموعه عملیاتی اطلاق می گردد که در نتیجه آنها داده هاییکه درپایگاه های دادهیا سایر منابع اطلاعاتی دیگر با مشکل مواجــه گردیده اند، بازیابی می شوند و درحــداقل زمان ممــکن مجددا در دسترس کاربران قــرار داده می شوند. پایگاه های دادههمیشه در معرض صدمات مختلفی قرار دارند که این صدمات می توانندفیزیکی و یامنطقی باشند. از جمله صدمات فیزیکی که سیستمهای نرم افزاری و به طور خاص و بحرانی پایگاه های داده راتهدید می کنند، می توان به مواردی چون نوسانات برقی، خرابی فیزیکی هارددیسک، آتش سوزی، وقوع بلایای طبیعی مانند زلزله، سیل و غیره اشاره نمود.
Back-end
این قسمت وظیفه بررسی و کنترل دسترسی ها، بررسی و بهینه سازی پرس و جوها و کنترل همزمانی ها و سالم بودن پایگاه داده ها را به عهده دارد.
Front-end
شامل ابزار هایی برای نمایش و زیباسازی نتایج پرس و جو ها مثل ابزارهای تولید فرم ها و ابزار های گزارش گیری می باشد.
پردازه نوشتن logها
این پردازه اطلاعات نوشته شده روی بافر برای ذخیره به حافظه های پایدار می نویسد.
پردازه check point
این پردازه مسولیت چک کردن پردازشها در مراحل مشخص انجام می دهد
پردازه Monitor Process
وظیفه این پردازه کنترل عملکرد دیگر پردازه ها و در صورت لزوم Recover کردن آن پردازه می باشد.
عمل Join
برای عمل Join بین دو رابطه هم از همان روش فوق یعنی تقسیم داده ها و توزیع آنها بین پردازنده ها استفاده می شود. در این روش دو نوع بخش بندی محتمل است. روش اول تقسیم بندی بدون توجه به عامل Join است که در این حالت تمامی داده ها بدون هیچ پیش فرضی تقسیم می شوند. روش دوم استفاده از عامل ارتباط است که در این حالت داده ها را با توجه به عامل ارتباط و با توجه به تعداد پردازنده ها تقسیم می کنیم. پس از تقسیم بین پردازنده ها عمل Join در هرکدام انجام می شود و نتیجه نهایی از اجتماع این نتایج بدست می آید. در هر کدام از پردازنده ها برای عمل Join از روش Hash Join که قبلا توضیح داده شده است استفاده می شود
شفافیت Transparency
کاربر یک پایگاه داده توزیعی نباید نیاز به دانستن این داشته باشد که داده ها به صورت فیزیکی در کجا واقع شده اند یا اینکه در یک سایت محلی خاص داده ها چگونه دستیابی می شوند. به این خاصیت data transparency گفته می شود و می تواند چند فرم داشته باشد:
Fragmentation Transparency
کاربر نیازی به دانستن اینکه یک رابطه چگونه بخش بندی شده است ندارد.
Replication Transparency
کاربر هر شی داده را منطقا یکتا می بیند. سیستم توزیعی ممکن است یک شی را تکرار کند تا کارایی یا در دسترس بودن داده ها را افزایش دهد. کاربر نگران این موضوع نیست که کدام اشیاء داده ای تکرار شده اند یا در کجا این نسخه ها قرارگرفته اند.
Location Transparency
کاربران نیاز به دانستن مکان فیزیکی داده ها ندارند. پایگاه داده توزیعی بایستی قادر به یافتن هر داده ای توسط اعمال شناسه داده در تراکنش کاربر باشد.
شبکه ی خصوصی مجازی (VPN)
شبکه ای است که اطلاعات در آن از طریق یک شبکه عمومی مانند اینترنت جابه جا می شود اما در عین حال با استفاده از الگوریتم های رمزنگاری و با تصدیق هویت (به انگلیسی: Authentication)، این ارتباط هم چنان اختصاصی باقی می ماند
تراکنش (transaction)
تراکنش (transaction) یک برنامه فعال است که دنباله ای از دستورات را شامل می شود و به طور خاص بعضی عملیات آن روی پایگاه داده است.
سه عمل تراکنشی خاص وجود دارد: start که نشان می دهد یک تراکنش دارد شروع می شود، commit که دلالت بر اتمام عادی تراکنش دارد و abort که بیان کننده پایان یافتن تراکنش به دلیل سقط آن است و کلیه اثرات ترکنش سقط شده باید rollback یا بی اثر شود. وقتی تراکنش commit می شود تاثیرش روی پایگاه داده باید دائمی شود.
هر تراکنش باید پایگاه داده را از یک حالت سازگار به حالت سازگار بعدی ببرد. تراکنش باید دارای خواص ACID باشد تا پایگاه داده را در حالت سازگار باقی نگهدارد. خواص ACID حروف اول چهار خاصیت زیر می باشند:
1اتمیسیته (Atomicity)
تراکنش ها اتمیک هستند یا اصلا شروع نمی شوند یا وقتی آغاز شدند حتما به پایان می رسند. یا همه عملیات انجام می شود یا هیچکدام. نگهداشتن خاصیت اتمیسیته به عهده کنترل همروندی و ترمیم است.
2 سازگاری (Consistency)
یک تراکنش یا پایگاه داده را به حالت سازگار جدیدی می برد یا اگر شکستی رخ داد کلیه داده ها به حالت قبل از شروع تراکنش برمی گردند.
3 ایزوله بودن (Isolation)
تراکنشی که در حال اجراست و هنوز به پایان نرسیده تاثیرش از بقیه مخفی است مگر اینکه commit شده باشند. اجرای همروند تراکنش ها باید به صورتی باشد که انگار پشت سرهم اجرا شده اند. حفظ این خاصیت بر عهده کنترل همروندی است.
4 ماندگاری (Durability)
از وقتی تراکنشی commit شد تاثیرش دائمی است؛ حتی اگر سیستم خراب شود داده در حالت درست خود باقی می ماند.
سیستم مدیریت پایگاه داده DBMS
سیستم مدیریت پایگاه داده یا به طور خلاصه (DataBase Management System) مهمترین نرم افزاری در سیستم پایگاه داده است که به عنوان رابط بین پایگاه داده و کاربر و برنامه ها ی کاربردی عمل می نماید. کلیه فایل های پایگاه داده فقط در اختیار این نرم افزار قرار گرفته و دستیابی به آنها تنها از طریق DBMS امکان پذیر استDBMS.سرویس هائی جهت دسترسی داده در پایگاه داده فراهم می کند به نحوی که از کلیه خواص داده محافظت شود.
اجزای سیستم مدیریت پایگاه داده
وظایف DBMS توسط تعدادی مولفه نرم افزاری انجام می شود. هر کدام از این مولفه ها ممکن است مرکب از چند واحد کوچکتر باشند. تعدادی از سرویس های که توسط مولفه های DBMS داده می شوند در زیر لیست شده است:
1 پردازش تراکنش (Transaction Processing)
پردازش تراکنش عملیاتی که از منابع مختلف می رسد را روی پایگاه داده اجرا می کند به نحوی که خواص مطلوب تراکنش خدشه دار نشود. سرویس های کنترل همروندی و ترمیم به این مولفه برای برقراری خواص ACID کمک می کنند. به این ترتیب اجرای همروند تراکنش ها و سازگاری پایگاه داده حتی در صورت وقوع شکستی در سیستم تضمین می شود.
2 کنترل همروندی (Concurrency Control)
مدیریت اجرای همروند تراکنش ها روی پایگاه داده در حین برقراری سازگاری را به عهده دارد.
3 ترمیم (Recovery)
ترمیم تضمین می کند که اگر اجرای تراکنش با عدم موفقیت یا سقط روبرو شد، تاثیر نامطلوبی روی پایگاه داده یا تراکنش های دیگر نگذارد و حالت پایگاه داده را همیشه سازگار نگه دارد.
4 مدیریت ثبت احوال(Log Management)
هر اتفاقی در سیستم در یک فایل ذخیره می شود و توسط مدیریت ترمیم برای حفظ صحت و اعتبار پایگاه داده هنگام خرابی یا سقط سیستم استفاده می شود.
5 واسطه زبانی (Language Interface)
دستوراتی را برای تعریف داده، کار کردن با آن دراختیار کاربران و برنامه های کاربردی قرار می دهد.
6 تحمل پذیری خطا(Fault Tolerancy )
توانائی ارائه سرویس های قابل اطمینان توسط DBMS حتی در صورت بروز نقص را تحمل پذیری خطا می گویند. تحمل خطا ، عدم تاخیر در ارائه سرویس و قدرت تحمل در هنگام بروز مشکل و خطاهای عمدتاً سخت افزاری است بعبارت دیگر Fault Tolerance (باختصار FT) قابلیتی است در سیستم عامل که می تواند هنگام بروز مشکلات از تجهیزات جایگزین استفاده کرده و بدون تاخیر (یا با تاخیر بسیار کوتاه) بطور خودکار به سرویس دهی ادامه دهد . نکته اصلی در FT اینست که هنگام بروز خطا اولاً زمان قطعی سرویس صفر یا بسیار کوتاه بوده و ثانیاً عملیات جایگزینی بدون عوامل انسانی و بطور خودکار صورت می گیرد . مسوول سیستم در فرصت مناسب می تواند عیوب را بررسی و رفع کند .انواع خطاهائی که ممکن است پیش بیاید عبارتند از:
• خطای منطقی : تراکنش موفق نمی شود مثلا به دلیل ورودی بد، سرریزی
خطای سیستمی : تراکنش موفق نمی شود مثلا به دلیل بن بست
سقط سیستم : قطع برق، پاک شدن حافظه اصلی، پر شدن دیسک
ناتوانی دیسک : خرابی هد، خرابکاری عمدی، آتش سوزی،
7 کاتالوگ داده (Data Catalog)
یا دیکشنری داده یک پایگاه داده سیستمی شامل اطلاعاتی درباره داده، ارتباطات و قیدها در پایگاه اصلی است. گاهی به آن متاداده هم گفته می شود.
8 امنیت (Security)
امنیت به محافظت داده در مقابل افشاشدن، تغییر و خرابی اشاره دارد. هر کابر و برنامه کاربردی امتیاز ویژه ای برای دسترسی به داده دارد. کاربران ممکن است دیدگاه های مختلفی نسبت به داده های پایگاه داده با توجه امتیازات ویژه خود داشته باشند. سیستم امنیتی همچنین، توسط رویه های شناسائی و مجوز، دسترسی به پایگاه داده را محدود می کند.
9 مدیریت ذخیره سازی (Storage Management)
DBMS مکانیسم های خاصی برای ذخیره دائمی داده و دسترسی به منبع فیزیکی و بازیابی داده دارد. مدیر ذخیره سازی بین داده ذخیره شده در پایگاه داده و برنامه کاربردی و پرس و جوهای ارسال شده به سیستم واسطه می شود.
10 مدیریت قفل (Lock Management)
هنگام استفاده اشتراکی از داده انواع مختلفی از قفل روی داده گذاشته می شود (مثل Read Lock و Write Lock).
11 مدیریت بن بست (Deadlock Management)
بن بست وقتی اتفاق می افتد که تراکنش ها برای بدست آوردن منابع در یک دایره بسته قرار گیرند یعنی هر یک منبعی در اختیار دارد که مورد تقاضای دیگری است و درخواست منبعی را می کند که در اختیار تراکنش منتظر منبع است. در پایگاه داده منابع رکوردها هستند. مدیریت منبع مسئول رفع این مشکل هستند
سیستم مدیریت پایگاه داده توزیع شده (Distributed DataBase Management System)
سیستم های توزیع شده بر توزیع داده و همچنین همبستگی فعالیت ها و کنترل روی اجزای توزیع شده سیستم دلالت دارند. اکثر سیستم های توزیع شده برای تقسیم کردن بارکاری یا برای انتقال عملکردهای پردازش داده به نزدیکی محل انجام این وظایف است. در هردو حالت هدف نامحسوس بودن توزیع شدگی از دید کاربر است
سیستم مدیریت پایگاه داده بلادرنگ (Real-Time DataBase Management System)
سیستم های بلادرنگ سیستم های سریع با سرعت پاسخگوئی بالا هستند که زمان انجام کلیه عملیات نقش مهمی در آنها دارد. سیستم بلادرنگ در تعامل با دنیای واقعی پاسخ قابل پیش بینی را در قاب زمان می دهد. ورودی، پردازش و پاسخ ها همگی از قبل تعریف شده هستند و حد زمانی مشخصی دارند و به نحوی بهینه می شوند که هر حالت ورودی یک حالت خروجی قابل پیش بینی دارد که همیشه در یک زمان و به یک روش اتفاق می افتد
زبان تعریف داده(DDL)
DDL مخفف Data Definition Language امکان تعریف یا توصیف اشیای پایگاه داده را می دهد. ساختار رکوردها، تعریف فیلدها، محل فایل ها و شیوه ذخیره سازی داده ها در بانک به وسیله احکام DDL انجام می پذیرد.
زبان دستکاری داده (DML)
DML مخفف Data Manipulation Language عملیات پردازشی و دستکاری اشیای پایگاه داده مانند insert،select، update را پشتیبانی می کند.DMLبه عنوان زبان پرس و جو هم شناخته می شود واغلب دارای قابلیت انجام محاسبات ریاضی و آماری است که عملیات گزارش گیری از پایگاه داده را آسان تر می کند.
زبان کنترل داده(XML)
XML مخفف Extensible Markup Language که توسط کنسرسیم W3C معرفی شده است زبان نشانه گذاری مستندات است تا زبان پایگاه داده. اما توانائی آن در تعیین تگ های جدید و تولید ساختارهای تودرتو باعث شد روش مهمی برای تبادل داده بشود و اکنون XML اساس کلیه فرمت های تبادل داده نسل جدید شده است. ابزارهای گوناگونی برای تجزیه، مرور و پرس و جو داده/مستندات XML موجود است.
فراخواندن پردازه از راه دور(RPC)
RPC مخفف remote procedure call می باشد، معمولا توابع یا روال ها یا متد های یک برنامه یا کامپوننت نرم افزاری برروی همان ماشینی که اجرا شده اند فراخوانی می شود، حالا اگر آن برنامه یا کامپوننت نرم افزاری این قابلیت ها را داشته باشد که بتوان توابع یا روال هایش را از طریق یک ماشین دیگر تحت شبکه فراخوانی کرد، به این کار remote procedure call یا RPC می گویندRPC در تولید سیستم های توزیع شده است که این امکان را می دهد که component های سیستم در حالی که برروی ماشین های مختلف شبکه نصب هستند بتوانند به راحتی توابع یکدیگر را فراخوانی کنند، در حقیقت RPC تولید سیستم های توزیع شده را آسانتر می سازد.
SCORM Shareable Content Object Reference Model) (
یک مدل نرم افزاری است که رابطه بین اجزاء درس، مدلهای داده و پروتکل ها را به گونه ای برقرار می کند که اشیاء حاوی محتوی آموزشی در سراسر سیستمی که با این مدل سازگار باشد، قابل اشتراک گذاری باشد.
منابع
[1]کتاب سیستم های توزیع شده ( اصول و الگو ) / ویراست دوم / عین الله جعفرنژاد قمی
[2]روحانی رانکوهی،محمد تقی.(1372). مقدمه ای بر پایگاه داده ها (بانک اطلاعاتی). تهران: نشرجلوه
[3]مقسمی ، حمید رضا (1385).پایگاه داده ها . تهران: انتشارات گسترش علوم پایه .
[4]روحانی رانکوهی، محمد تقی. (1382). بانکهای اطلاعاتی . تهران: انتشارات جلوه.
http://www.srco.ir/tutorial/Component.asp[5]
http://www.srco.ir/Articles/DocView.asp?ID=106 [6]
1. Data Base System Managment
2.Data Definition Language
3. Data Manipulating Language
4.Remote Procedure Call
5 . Atomicity Consistency Isolation Durability
6. Extensible Markup Language
—————
————————————————————
—————
————————————————————
118