بخشی از مقاله

بررسي معماري نرم افزار خود تطبيقي توسط مدل مولفه انعکاسي AOP وپياده سازي آن به صورت پويا
چکيده
امروزه روش هاي مبتني بر معماري، که ويژگي هاي خود-مديريتي را توسط پيکربندي پويا پياده سازي مي- کنند، به طور گسترده اي به عنوان يک روش اميد بخش براي سيستم هاي خود تطبيقي پذيرفته شده اند. همچنين برخي از معماري هاي انعکاسي و مدل هاي جزئي مانند فراکتال ، جهت پشتيباني از سازگاري معماري پويا از طريق رابط هاي برنامه نويسي نرم افزار درون گرا و پيکر بندي مجدد پيشنهاد شده است . و همچنين بر اين باوريم که AOP پويا (برنامه نويسي جنبه گرا) بايد به عنوان يک ابزار مکمل براي سازگاري به کار گرفته شود. در اين مقاله ، به بررسي پياده سازي معماري نرم افزار خود تطبيقي توسط مدل مولفه انعکاسي (فراکتال ) و AOP پويا را در يک سيستم مبتني بر وب صنعتي ميپردازيم . همچنين ، به بررسي جوانب مثبت و منفي مدل مولفه انعکاسي و AOP پويا در پياده سازي معماري نرم افزار خود تطبيقي خواهيم پرداخت . در بررسي ما، چهار سناريوي خود تطبيقي با راه حل هاي آنها مورد شناسايي قرار خواهند گرفت . همچنين هردو روش را از نظر اثربخشي، بهره وري زمان اجرا و تلاش هاي توسعه اي ارزيابي مي نماييم . بررسي ما نشان مي دهد که مدل مولفه انعکاسي و AOP پويا براي سازگاري معماري سازه موثر هستند.
کلمات کليدي: معماري خود تطبيقي، مولفه انعکاسي، فراکتال ، AOP پويا


١. مقدمه
نرم افزار هاي سنتي تحت تصميم گيري هاي ايستا در تجزيه و تحليل و طراحي زمان بر اساس مفروضات شرايط و محيط زمان اجرا، پياده سازي مي شوند.
بنابراين ، هر گونه تغييرات پيش بيني نشده به الزامات و يا محيط زمان به فرآيند تغيير دستي منجر خواهد شد که در برخي سيستم هاي بحراني خاص غير قابل قبول مي باشند. سيستم هاي خود تطبيقي وعده به ارائه قابليت سازگاري به تغييرات مختلف در زمان اجرا داده اند.]١[ آنها مي توانند خود را در زمان اجرا و پياده سازي تنظيم و پيکربندي مجدد کنند تا بتوانند به برخي از امور مانند تغيير نيازهاي کاربر، هک شدن و يا خراب شدن سيستم ، تغيير محيط عملياتي، و يا تغيير منابع رسيدگي کنند. اين قابليت خود سازگاري توسط يک سري از ويژگي خود-مديريتي از جمله خود پيکربندي، خود ترميمي، خود بهينه سازي و خود حفاظتي به دست مي آيد. اگر چه روش هايي در سطح زبان يا در سطح شبکه براي خود سازگاري (خود-تطبيقي) وجود دارد، وليکن از روش هاي مبتني بر معماري به طور گسترده اي به عنوان شيوه اي پذيرفته شده مورد استفاده قرار مي گيرد، چرا که آنها سطح مورد نياز از انتزاع را به ارمغان مي آورند و بطور کلي به مقابله با چالش هاي ايجاد شده مي پردازند. نرم افزار خود-تطبيقي مبتني بر معماري، مبادرت به پياده سازي ويژگي هاي خود-مديريتي توسط پيکربندي پويا و يا پيکر بندي مجدد معماري در زمان اجرا مي کنند؛ به عنوان مثال ، اضافه کردن ، حذف ،و يا جايگزيني قطعات و يا اصلاح اتصالات مولفه .
در مدل مرجع سه لايه اي براي معماري خود-تطبيقي که توسط کرامر و مگي پيشنهاد شده است ، سه لايه معماري شناسايي مي شوند : مديريت هدف ، مديريت تغيير، کنترل مولفه .لايه پاييني، يعني کنترل مولفه ، شامل مجموعه اي از اجزاي به هم پيوسته مي باشد و امکاناتي را براي گزارش وضعيت و انطباق معماري فراهم مي کند. در اين مقاله ، ما بر روي تکنيک هاي پياده سازي در لايه کنترل مولفه تمرکز مي کنيم . در پارادايم هاي توسعه سنتي مانند روش شي گرا، زمان اجراي صريح و روشني براي عناصر معماري مانند اجزاء و اتصالات وجود ندارد، از اينرو نمي توان آن را در زمان اجرا سازگار نمود. بنابراين ، برخي از معماري هاي خود-تطبيقي و مدل هاي جزئي مانند فراکتال براي حمايت و پشتيباني از سازگاري معماري پويا از طريق درون نگري و پيکر بندي دوباره API (رابط برنامه نويسي نرم افزار) پيشنهاد شده اند. فراکتال از تعريف معماري سلسله مراتبي و رابط مبتني بر ترکيب مکانسيم با پيکر بندي مجدد پويا پشتيباني مي کند. با اين حال ، درست ماننداجزاي برنامه نويسي جنبه گرا (AOP)، برنامه نويسي شيء گرا (OOP) با ارائه پيمانه بندي cross-cutting concern، مدل مولفه انعکاسي مي بايست توسط نوعي مکانيزم سازگاري ماژولار براي الزم در عناصر معماري تکميل شود.AOP پويا- که پيکربندي پويا و پيکر بندي مجدد را در جنبه هاي موجي در زمان اجرا فراهم مي سازد- مي تواند اين نوع سازگاري crosscutting را پشتيباني کند.[٢] اين مقاله بررسي را بر روي يک سيستم صنعتي مبتني بر وب ارائه مي دهد که پياده سازي معماري نرم افزار خود تطبيقي را توسط مدل مولفه انعکاسي (فراکتال ) و AOP پويا نشان مي دهد. اين سيستم از يک سيستم خدمات عمومي براي ارزيابي خود –آموزشي (PSSE) اقتباس شده است که ارائه دهنده خدمات آنلاين مانند ثبت نام آزمون ، کلاس پرس و جو و اطلاعات کتاب به دانشجويان خود-آموز مي باشد. در اين مطالعه ، ما بر آنيم که نقاط قوت و ضعف مولفه انعکاسي و AOP پويا را در پياده سازي معماري نرم افزار خود تطبيقي ارزيابي کنيم . چهار سناريوي خود- تطبيقي شناسايي شده اند، که خود-ترميمي از ناتواني محيطي و خود بهينه سازي براي يک محيط پيش بيني نشده را پوشش مي دهند. براي هر سناريو، ما راه حلي را ارائه داده و يک ارزيابي جهت اثربخشي، بهره وري زمان اجرا و تلاش جهت توسعه و نگهداري انجام داده ايم .
٢. سوابق و پيش زمينه ها
الف . يک بررسي اجمالي از ارزيابي خود –آموزشي (PSSE)PSSE يک سيستم خدمات عمومي مبتني بر وب با کاربران گسترده و الزامات کلي تضمين شده مي باشد. PSSE ارائه دهنده خدمات هم براي دانشجويان خود-آموز و هم براي کارمندان دولتي مي باشد. به عنوان يک برنامه کسب و کار صنعتي مبتني بر وب واقعي، اين سيستم شامل نيازهاي خود تطبيقي بوده که نشان دهنده موارد مشترک و شايع مي باشد. نيازهاي خود تطبيقي به طور مفصل در بخش IV توضيح داده خواهد شد.[٣] PSSEيک برنامه JEE٢توسعه يافته در جاوا و يا JSP است . اجرا و پياده سازي اصلي PSSEداراي معماري شي گرا بوده که شامل ٧بسته جاوا، ٦٥ فايل منبع جاوا، ١٠٨صفحه وب JSP و چندين فايل پيکربندي مي باشد. اجراي اصلي نمي تواند زمان اجراي خود تطبيقي ها را پشتيباني کند، چرا که بيشتر تعامل بين اشياء بصورت رمزي مي باشد. به منظور انجام مطالعه موردي ، ما ابتدا پياده سازي با طراحي مبتني بر مولفه را مجددا فاکتور گرفته ايم که در آن تعامل بين اشياي رمزي به ترکيب مولفه هاي مبتني بر رابط دوباره نوشته شده است . بخشي از مولفه هاي مبتني بر معماري PSSE پس از مشخص کردن با استفاده از سبک فراکتال سلسله مراتبي در شکل ١ نشان داده شده است .

شکل ١ .معماري مدل PSSE پس از فاکتورگيري (بخشي)
در دياگرام معماري، مولفه ها توسط بلوک هاي تو در تو با دايره هاي تو پر و توخالي نشان داده مي شوند و به ترتيب نشانگر رابط هاي ارائه شده و مورد نياز مي باشد. کل سيستم PSSE را مي توان به عنوان يک مولفه ريشه اي در نظر گرفت ارتباط بين رابط ها نشان دهنده ترکيب هاي بين دو مولفه تعاملي و يا نشان دهنده ترکيب هاي بين مولفه هاي کامپوزيت و زير مولفه هاي آنها مي باشد. در ميان مولفه ها، SystemUI يک مولفه رابط کاربري متشکل از صفحات وب JSPاست ؛ و واحد Utility نشان دهنده توابع سودمندي مي باشد.[٤] DBManager مولفه دسترسي به پايگاه داده است . ديگر موارد، مولفه هاي کسب و کار براي خدمات کسب و کار هاي مختلف مانند کلاس پرس و جو ، مشاوره و پرداخت آنلاين مي باشند.
ب . مدل مولفه انعکاسي: فراکتال فراکتال يک مدل مولفه اي توسعه يافته توسط شرکت مخابرات فرانسه D &R و INRIA مي باشد و از طريق کنسرسيوم ObjectWebتوزيع شده است . درميان ديگر موارد، ما فراکتال را انتخاب مي کنيم چرا که يک مدا انعکاسي بوده و بسيار پويا مي باشد. مدل مولفه فراکتال بر برخي مفاهيم کلاسيک متکي است : مولفه هايي مانند نهادهاي اجرايي زمان ، رابط هايي مانند تنها نقاط تعامل بين مولفه ها از نظر سرويس
گيرنده و رابط هاي ارائه دهنده سرور و اتصالاتي مانند کانال هاي ارتباطي بين رابط مولفه . شکل ٢ مدل مولفه فراکتال را نشان مي دهد .در اين مدل داريم :
[٥] مولفه = پوسته + محتوا محتوا= مجموعه اي از (زير) مولفه ها پوسته = ترکيب و رفتار انعکاس .
انعکاس در فراکتال مبتني بر مکانيزم مولفه کامپوزيت مي باشد که داراي معماري داخلي متشکل از يک سري از مولفه ها و ارتباطات دروني آنها مي باشد.
سپس ، معماري داخلي يک مولفه کامپوزيت مي تواند در زمان اجرا دستخوش تغييراتي شود تا بتواند انعکاسي در سطح معماري را پياده سازي کند. در مطالعه موردي ما، از يک چارچوب مبتني بر جاوا براي فراکتال يعني جوليا استفاده نموديم . اطلاعات بيشتر در مورد فراکتال و جوليا را مي توان از وب سايت فراکتال دريافت نمود.
پ - AOP پويا : AOP پويا، AOP ايستا را با ارائه مکانيزم موجي پويا توسعه و گسترش مي دهد.[٦] اين امر مي تواند جوانب را در زمان اجرا بدون توقف کل سيستم شکل دهد. Spring AOP يک چارچوب AOP پوياي اجرا شده در جاوا خالص است که مبتني بر پراکسي مي باشد. [٨] اين سيستم را مي توان هم براي پراکسي هاي استاندارد JSE٢ پويا و يا هم براي CGLIB جهت پروکسي AOP استفاده نمود. همچنين ، Spring AOP مبتني بر طرح است .
تعاريف جوانب و pointcut در يک فايل XMLمتمرکز شده است . فايل XMLرا مي توان به صورت پويا تغيير و اصلاح نمود، در نتيجه جوانب و pointcut را مي توان به صورت پويا تغيير داد. اين مکانيسم ها سبب مي شوند که Spring AOP انعطاف پذير شده و براي نگهداري آسان شوند. Spring AOP را مي توان به طور مستقل و بدون چارچوب Spring مورد استفاده قرار داد، اين سيستم داراي يک ابزار توسعه پسند براي کاربران جديد مي باشد.
بنابراين ، اين سيستم براي يادگيري و استفاده در يک پروژه واقعي آسان است .
٣. پياده سازي و اجراي خود-تطبيقي براي تحمل (تولرانس ) خطا
در مطالعه موردي ارائه شده ، ما چهار سناريوي خود-تطبيقي را همانطور که در جدول ١ذکر شده است ، شناسايي و پياده سازي نموده ايم . در سناريوي اول ، رابطه پويا به منظور بهبود زمان پاسخ دهي ولي با پايين آمدن سطح امنيت انجام شده است . در سناريوي دوم ، بار رو به رشد سبب بهينه سازي غير کارکردي ناکافي براي اطمينان از زمان پاسخ قابل قبول مي شود و سپس ، بهينه سازي عملکردي منجر به تخليه کردن بعضي از توابع ثانويه براي اطمينان از کيفيت خدمات اصلي مانند ثبت نام درس مي شود.[٧] سومين سناريو مي تواند به عنوان يک عامل خود-ترميم از عدم موفقيت هاي محيطي فهميده شود و آخرين سناريو را مي توان بعنوان خود- بهينه سازي توسط جايگزيني خدمات مشاهده نمود. دو سناريو اول براي بار زياد همزمان ، بهينه سازي داخلي مي باشند در حالي که دو سناريوي آخري انطباق هاي خود-ترميمي براي عدم موفقيت هاي محيطي يا تخريب کيفيت مي باشند.
الف . دسترسي هاي همزمان بار زياد: زماني که دسترسي هاي همزمان افزايش مي يابد، زمان پاسخ و توان عملياتي سيستم ممکن است تا حد زيادي کاهش يابد. اين تخريب را مي توان با کم کردن برخي از الزامات غير کارکردي (مثلا امنيتي) درست کرد. در PSSE، ورود به سيستم با ثبت عمليات براي هر درخواست خدمات جهت امنيت استفاده مي شود. هنگامي که سرور زير بار بسيار زياد قرار مي گيرد، آنگاه سطح امنيتي را مي توان براي خواص کيفيتي مهم براي خدمات اصلي و هسته اي کاهش داد. در اين سناريو، مولفه ورود به سيستم با توجه به بار سيستم به صورت پويا لود (load) و مجددا خالي (unload)
مي شود. اين امر، به عنوان يکي از جنبه هاي استفاده از AOP پويا اجرا شده است . قبل از تطابق ، مولفه ورود به سيستم ، بسياري از اجزاي کسب و کار را crosscuts مي کند (شکل ٣). شکل ٤ يک پياده سازي در Spring AOP با يک فايل اصلاح شده pointcut ( در سمت چپ ) و کدي که برخي از اتصالات موجي در اطراف مولفه ورود به سيستم را تغيير مي دهد.

شکل ٢. مولفه ورود به سيستم قبل از تطابق شکل ٣. فايل Pointcut و نمونه موجي پويا در Spring AOP
ب - دسترسي هاي همزمان بار زياد (بدترين حالت ): در سناريو اول ، سطح امنيتي براي کم کردن مشکل ناشي از توان و تخريب زمان پاسخ دهي سرور پربار کاهش يافته است . هنگامي که دسترسي هاي همزمان همچنان افزايش مي يابد، رابطه غير کارکردي تطابق يافته در سناريو يک ناکافي مي باشد، بنابراين رابطه عملکردي را بايد مورد نظر گرفت . در PSSE، ثبت نام آزمون که توسط خود دانشجو مي تواند انجام پذيريد و دروس مورد نظر را انتخاب نمايد، يکي از حساس ترين خدمات مي باشد. به خصوص زماني که امتحانات نزديک است ، به علت اينکه سرور زير ترافيک باري زيادي مي رود، بسياري از دانشجويان قادر به انجام فرآيند ثبت نام نخواهند بود. بنابراين ، به منظور اطمينان از کيفيت خدمات مهم ، رابطه کاربردي را مي توان به منظور کم کردن برخي از خدمات ثانويه مانند انجمن و کلاس پرس و جو، به کار گرفت . بنابراين ، منابع محدود سرور را مي توان براي خدمات مهم مورد استفاده قرار داد.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید