خانه > هک و امنیت شبکه, هکینگ کرکینگ امنیت شبکه, آموزش کامپیوتر, آموزش اینترنت > ايجاد يك محيط براي شبيه سازي و سنجش مدلهاي توزيع داده در پايگاه‌داده هاي توزيعي

ايجاد يك محيط براي شبيه سازي و سنجش مدلهاي توزيع داده در پايگاه‌داده هاي توزيعي


چكيده : محيطهاي موجود براي شبيه سازي سيستمهاي توزيع داده در پايگاه‌داده‌هاي توزيعي و كلا مكانيزمهاي شبيه سازي شبكه هاي كامپيوتري ، همواره داراي پيچيدگي هاي بالا بوده و معمولا در محيط Linux انجام شده است. اين محيطها معمولا به دليل پياده سازي لايه اي كليه مكانيزمهاي شبكه ، داراي پيچيدگي بالا بوده و به دليل محيط پياده سازي ( كه معمولا زبان C ) ميباشد ، و نيز نحوه پياده سازي (بالا بودن حجم بالاي كلاسها ) و نداشتن مستندات لازم ، باعث بروز مشكلات بسياري در امر توسعه پروتكل ها در قالب اين نرم افزار ها شده است.

توسعه يك ازار در يك زبان شي گرا اين امكان را ميدهد كه بتوان ، سيستم را براي يك كاربرد خاص مانند توزيع داده در پايگاه‌داده‌هاي توزيعي يا كنترل همروندي و … براحتي تغيير داده و نياز به درتغيير زياد در كل ساختار مجموعه نباشد.

همچنين ، تعداد متغير هاي محدود در يك سيستم تخصصي ، به فهم سيستم كمك نموده و تغييرات در آن را آسان مينمايد.

1-مقدمه : سيستم توسعه يافته با عنوان يك محيط شبيه ساز الگوريتم هاي توزيع ، با توجه به نوع نگرش به مساله ، بطور خلاصه تنها به تعريف الگوريتم توزيع داده پرداخته و با توجه به ساختار الگوريتمهاي توزيع داده ، تنها بخش تصميم گيري در ايجاد انتقال داده را پياده سازي نموده و بدليل ساده شدن طراحي و تمركز بر روي الگوريتم مسير يابي ، نوع اطلاع رساني به گره ها پياده سازي نشده و پياده سازي پروتكل ه بصورت استاندارد نيست

الگوريتمهاي توزيع پوياي داده ، از آنجائيكه معمولا با توجه به نوع بكارگيري ، دو فاكتور متفاوت از شبكه را براي توزيع داده در پايگاه‌داده‌هاي توزيعي استفاده ميكنند ، معمولا از پيچيدگي بالاي برخوردار بوده و مساله از درجه NP محسوب ميشوند. در اين ميان ، تكنيكهاي مختلفي جهت كاهش درجه مساله بكار گرفته ميشود. از جمله اين تكنيكها ميتوان به استفاده از Heuristic هاي مختلف اشاره نمود. رايج ترين نوع Heuristic هاي بكار رفته ، ميتوان به تغيير نوع متريك در الگوريتمهاي توزيع داده در پايگاه‌داده‌هاي توزيعي عادي اشاره نمود.

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

بطور مثال ، از جمله مزاياي سنكرون بودن سيستم ، امكان محاسبه دقيق تاخير صف بندي در يك پيوند و يا تاخير بسته هاي دريافتي در يك گره ميباشد.

 

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

برنامه بطور كلي داراي 8 فايل در قالب زبان Java بوده و مشتمل بر 1500+700 خط برنامه است كه يكي از اين كلاسها مربوط به واسط كاربر بوده و ساير كلاسها در هر فايل براي شبيه سازي ايجاد شده است. در ادامه اين مستند به توصيف برنامه ايجاد شده پرداخته و هر قسمت را بطور جداگانه معرفي خواهيم نمود.

2-کلاس DDBDataAlloc : در اين کلاس اشيا اصلي برنامه نمونه گيري شده و ميتوان گفت که اين کلاس به نوعي مدير برنامه محسوب ميشود. در اين کلاس از کلاس RoutingUI که کلاس مربوط به واسط کاربر ميباشد نمونه گيري ميگردد ولي کلاسهاي مربوط به شبيه سازي شبکه از جمله coordinator و … در اين کلاس استفاده نشده است.

3-کلاسRoutingUI : اين کلاس براي پياده سازي واسط کاربر ايجاد شده است. همانطور که در شکل 1 مشاهده ميشود در اين کلاس از يک شي jTextField براي دريافت طول مدت زمان شبيه سازي از کاربر استفاده ميشود. همچنين از تعدادي شي jRadioButton براي دريافت اطلاعات مربوط به نوع روش توزيع داده استفاده ميگردد. لازم به ذکر است .

در يک بخش از اين برنامه نيز ميتوان فرکانس کلي ارسال بسته ها را در سناريوي داده شده به برنامه اعلام نمود. در نسخه فعلي برنامه سازمان و ساختار شبکه و نيز سناريوي برنامه در داخل برنامه به کلاسها ارائه ميگردد ولي ميتوان برنامه را طوري تغيير داد که بتواند سازمان شبکه و نيز سناريوي بسته هاي ارسالي را از کاربر دريافت نمايد.

 

در بخش ديگري از اين کلاس با استفاده از اشيا از نوع jTextArea اطلاعات مربوط به نتيجه شبيه سازي به کاربر ارائه ميشود. اولين بخش از اين گزارشات مربوط به وضعيت بسته هاي دريافتي در هر گره ميباشد. اين گزارش شامل تعداد
بسته دريافتي ميزان متوسط تاخير در بسته هاي دريافتي ميباشد.

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

در نهايت يک جمعبندي از کل وضعيت شبيه سازي ارائه شده است. اين جمعبندي شامل ميانگين تاخير در گره هاي شبکه تعداد بسته هاي Drop شده تعداد بسته هاي دريافت شده متوسط تاخير در هر Link و ميانگين کارايي در Link ها ميباشد. دراين بخش ميزان تاخير در اثر انتقال داده و نيز تاخير در دريافت پاسخ پرس و جو نيز نمايش داده مي‌شود.

 

همانطور که مشاهده ميشود با فعال شدن رخ داد مربوط به jButtonStartSim يک شي
از کلاس coordinator ايجاد نموده و شبيه سازي را آغاز مينمايد.

 


3-کلاس pack : اين کلاس اصلي ترين کلاس مربوط به انتقال داده ميباشد و به نوعي نماينده بسته هاي منتقل شده حاوي Query و نيز حامل داده در شبکه ميباشد.

در اين كلاس داده هاي هدف، نوع بسته ( شامل داده پايگاه داده، پرس و جو، پاسخ پرس و جو ) و … را نمايش مي‌دهد.

علاوه بر موارد فوق در اين بسته تعدادي متغير صحيح وضعيت زماني بسته را در برخي مواقع خاص مثلا داخل يک صف شدن يا ارسال شدن مشخص ميسازد. همچنين توابع مربوط به محاسبه تاخير صف بندي و تاخير دريافت بسته نيز در اين کلاس گنجانده شده اند. اين مورد را ميتوان به عنوان يک مزيت نسبت به شبيه ساز DBSim معرفي نمود. در DBSim ما مجبور بوديم که فايل trace ايجاد شده را توسط يک برنامه جانبي ديگر تفسير نموده و نتايج را استخراج نمود ولي در اينجا برنامه قدرت محاسبه متريك شبكه را نيز دارد.

در اين كلاس با استفاده از TimeStamp هاي موجود در كلاس، ميزان تاخير يك بسته را در هر مرحله از پيمايش محاسبه نمائيم.

3-کلاس MyNode و كلاسهاي بكار رفته در آن : اين كلاس براي ايفاي نقش يك گره در شبكه ايجاد شده است . در اين كلاس تعداد بسته هاي دريافتي در هر گره محاسبه شده ونيز تاخير هر بسته از كلاس pack دريافت شده و ميزان متوسط تاخير بدست مي آيد.

اين كلاس يك كلاس queue دارد كه نقش صف خروجي را براي هر Link ايفا ميكند. همچنين يك كلاس rtTable در اين كلاس وجود دارد كه نقش جدول مسير يابي را ايفا ميكند.

در اين کلاس ما ويژگي هاي مربوط به يک گره را در سيستم پياده سازي نموده ايم . در اين کلاس چند زير کلاس وجود و اطلاعات را ايجاد مينمايد.

3.1-کلاس Queue : در اين کلاس يک صف براي هر Link پياده سازي ميگردد. اين کلاس صرفا يک صف ساده است ولي ميتوان با توسعه کد قابليت توزيع بسته بصورت عادلانه را ايجاد نمود. اين کلاس ميتواند جهت پياده سازي سيستم هاي صف بندي بکار رود.

3.2-کلاس rtTable : در اين کلاس فرآيند مسير يابي در سيستم قرار داده شده و با استفاده از متد hint اطلاعات مربوط به وضعيت شبکه را دريافت نموده و بر اساس آن مسير يابي را انجام ميدهد.

در اين کلاس ميتوان انواع متدهاي مسيريابي را پياده سازي نموده و متريکهاي مسيريابي را در هر نوع مشخص نمود.

 

شکل 1 واسط کاربر براي درج پارامترهاي شبيه سازي

با توجه به اينکه وضعيت شبکه با استفاده از کلاس coordinator قابل بازيابي است ميتوان گفت که اين سيستم احتياجي به پروتکلهاي انتقال پيام براي توصيف شبکه ندارد.

در اين کلاس در هنگام ايجاد هيپگونه مسير سازي انجام نميشود زيرا مسير ها در هنگام ساخته شدن اين کلاس ( يعني هنگام نمونه سازي کلاس container) مشخص نشده اند.

 

شکل 2 نتايج يک نمونه شبيه سازي و آزمايش

3.3-کلاس PacketGenerator : در اين کلاس عمليات توليد بسته پرس و جو برا ساس مبناي فرکانسي داده شده توط کاربر انجام ميشود. در اين کلاس به ازاي يک flow بسته ها ايجاد شده و توسط گره مبدا Get ميشوند.

اين کلاس وظيفه زماندهي بسته توليد شده را نيز دارد. در الگوريتمهاي کنترل کننده بار پايگاه داده توزيعي اين کلاس جهت تست در صورت refuse شدن درخواست توليد بسته قطع شده و تا زمان بيدار شدن مجدد متوقف ميگردد.

4-کلاس MyLink: در اين کلاس وضعيت يک Link در شبکه مشخص شده و فرآيند انتقال بسته با توجه به پهناي باند و تاخير Link انجام ميپذيرد. در اين کلاس فرآيند محاسبه کارايي يک Link انجام شده و تعداد پالسهايي که Link بصورت خالي ميباشد را محاسبه مينمايد. اين حالت ميتواند تسهيم مطلوب منابع شبکه را توسط الگوريتم مسير يابي مشخص ميگردد.

در اين کلاس فراخواني مربوط به دريافت بسته توسط کلاس گره انجام ميشود. اين کلاس بصورت خودکار هنگام رخداد مناسب بسته را منتقل مينمايد.

لازم به ذکر است در حالت فعلي نميتوان بصورت متناوب Link را از بسته هاي متوالي پر کرد در هر حال ميتوان گفت که در صورت تاييد صف يک Link ميتوان Link را بهتر Utillize کرد.

5-کلاس coordinator : در اين کلاس عمليات هماهنگي و مديريت زمان و اشيا انجام ميشود.

در ايت کلاس چيدمان شبکه ارائه شده و يک سناريو براي ارسال بسته داده ميشود. در اين کلاس زمانبندي ارسال با يک تفاوتهايي از کاربر پرسيده ميشود.

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

6-کلاس DataAlloc : اين كلاسي است كه در آن مكانيزمهاي انتقال داده و نوع تصميم گيري فراهم شده است. شمارنده هاي ارجاع به داده ها و … قرار دارد.

در اين کلاس دو روش مجزا براي تخصيص Fragment داده به سيستم در نظر گرفته شده است. که شرح اين دو روش در مقاله [5] آمده است. در حالتي که پارامتر AllocationType برابر N باشد تخصيص Fragment بصورت ارسال به درخواست کننده مي باشد. در غير اينصورت Fragment به گره بعدي ارسال مي گردد.

7- تکيمل سيستم
:
با توجه به ساختار موجود در برنامه قابليت ارتقا سيستم وجود داشته و مقرر گرديده تا با همکاري يک از دانشجويان درس پايگاه داده پيشرفته سيستم ايجاد شده تکميل گردد.

8- نحوه راه اندازي سيستم
:
با توجه به ساختار موجود در برنامه پس از نصب نرم افزار jBuilder بايستي فايل DDBFragment توسط اين برنامه باز شده و سپس سيستم اجرا گردد. بايستي در اجراي شبيه سازي طول شبيه سازي و نيز طول هر Fragment داده براي سيستم از طريق واسط کاربر مشخص شود.

9- تقدير و تشکر
:
در اينجا جا دارد از راهنمايي هاي موثر و دلسوزانه جناب آقاي دکتر مسعود رهگذر استاديار گروه مهندسي برق و کامپيوتر دانشکده فني دانشگاه تهران تقدير و تشکر نمائيم.

10- منابع و مآخذ
:


[1]L. C. John, A Generic Algorithm for Fragment Allocation in Distributed Database Systems, ACM,
1994

 

[2] Ahmad, I., K. Karlapalem, Y. K. Kwok and S. K. Evolutionary Algorithms for Allocating Data in Distributed Database Systems, International Journal of Distributed and Parallel Databases, 11: 5-32, The Netherlands, 2002.

 

[3] A. Brunstroml, S. T. Leutenegger and R. Simhal, Experimental Evaluation of Dynamic I)ata Allocation Strategies in a Distributed Database with changing Workloads, ACM Transactions on Database Systems, 1995

 

[4] A. G. Chin, Incremental Data Allocation and ReAllocation in Distributed Database Systems, Journal of Database Management; Jan-Mar 2001

 

; 12, 1; ABI/INFORM Global pg. 35

 

[5] R. Basseda, S. Tasharofi, Near Neighborhood Allocation (NNA): A Novel Dynamic Data Allocation Algorithm,Sep 2005

 

رضا باصدا ، سميرا تشرفي

دانشگاه تهران- دانشكده فني – گروه مهندسي برق و كامپيوتر

آزمايشگاه ارشد نرم افزار

مشمول قوانین احسیرسافت

  1. هنوز دیدگاهی داده نشده است.
  1. No trackbacks yet.

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: