بخشی از مقاله

ارزيابي کارايي در سطح معماري نرم افزار مبتني بر سبک سرويس گرا مدل شده با گراف و PEPA
چکيده
در فرايند توليد نرمافزار، کيف ت ي معماري نرمافزار تأثير به سزايي در دستيابي به نيازهاي غير عملکردي مانند کارايي دارد. کارايي يکي از موضوعات مهم در توليد سيستم هاي نرمافزاري محسوب مي شود. برآورده شدن اين صفت کي ي که در زمان اجراي نرمافزار قابل مشاهده است علاوه بر آن که از اهميت خاصي در نزد مشتري برخوردار است ، نقش به سزايي در موفقيت پروژه خواهد داشـت . ارزيـابي کـارايي در زمـان طراحـي معمـاري ، بـه خصوص اگر به شيوه ي غير مبهم يا به زبان معنادار مشخصي انجام شود، موجب پيشگيري از شکست پروژه مي گردد.
در اين پژوهش معماري نرمافزار مبتني بر سبک سرويس گرا مورد نظر مي باشد. معماري با سيستم تبديل گراف مدل شـده اسـت و مـدل ارزيـابي کارايي آن توسط ابزار PEPA توليد شده است .

کلمات کليدي
معماري نرمافزار، ارزيابي کارايي ، معماري سرويس گرا ، سيستم تبديل گراف، PEPA

١- مقدمه
با توجه به رشد روزافزون صنعت نـرمافـزار، هـر انـدازه کـه پيچيـدگي نرم افزار افزايش يابد، کیفیت آن مورد توجه جديتري قرار مي يـرد. از آنجا که کیفیت نرمافزار، متـأثر از ويژگـي هـاي کيفـي آن اسـت ، ايـن ويژگي ها عامل مهمي در انتخاب يک معماري مناسـب بـراي نـرمافـزار محسوب مي شوند. يک معمار نرمافزار ممکن است معماريهاي متنوعي را براي يک نرمافزار پيشنهاد دهد، اما مسئله اين است که با توجـه بـه ويژگي هاي کيفي ، چه روشي را براي تحليل آنها انتخاب کند تا بتواند معماري مناسب را از ميان معماريهاي پيشنهادي برگزيند. به منظـور جلوگيري از زيانهاي ناشي از هدر رفتن هزينه و زمـان کـه بـه دليـل انتخاب نادرست معماري پيش مي يـد، ارائـه يـک توصـيف رسـمي از معماري و تحليل آن قبل از پيادهسازي نرمافزار بسيار مفيد است .
معماري نرمافزار به توصيف سيستمي که قرار اسـت توسـعه داده شـود مي پردازد و در تلاش است تا نرم افزاري باکيف ت ي بهتـري توليـد شـود.
برخي از تعاريفي که براي معماري نرمافزار بيان شده است عبارت اند از:
Perry و Wolf در سال ١٩٩٢ معماري نرمافـزار را ايـن گونـه تعريـف نموده اند:
معماري نرمافزار مجموعه اي از مؤلفه هاي پردازشي ، دادهاي و اتصـالات است [١]. تعريف Garlan و Shaw در سال ١٩٩٤ از معماري نرمافزار را اين گونه است . معماري نرمافزار مجموعه اي از مؤلفه هـا، اتصـالهـا و توصيف تعامل بين آنها است [٢]. خلاصه ترين تعريف از معمـاري کـه در اين پژوهش نيز مورد نظر ما بوده، تعريف Taylor اسـت : معمـاري نرم افزار شـامل مجموعـه اي از تصـميمات مهـم طراح ي در رابطـه بـا سيستم مي باشد[٣].
معماري نرمافزار بخش هاي اصلي نرمافزار را در قالب مؤلفه ها شناسـايي مي کند، اما به اجزا دروني و سـاختمان داده هـا نمـي پـردازد. معمـاري نرمافزار علاوه بر ساختار، به رفتار سيستم نيز مـي پـردازد و بـه دنبـال تحليل ويژگي هـاي کليـدي آن مـي باشـد، ايـن ويژگـي هـاي کليـدي ، نيازمنديهاي غير عملکردي مي باشند. در واقع مي توان گفت معمـاري نرمافزار، نه تنها رابطه بين ساختار و رفتار مؤلفه ها را نشـان مـي دهـد، بلکه ديدگاههاي مختلفي از سيستم نرمافزاري ماننـد کـارايي ، قابليـت اطمينان، قابليت استفاده مجدد و غيره را ارائه مي دهد و درک سيستم را آسان مي سازد. معماري يک سيستم نرمافزاري را مي توان يـک ديـد مشترک همه ذينفعان و توسعه دهنـدگان دانسـت کـه همگـي روي آن اتفاق نظر دارند يا حداقل آن را پذيرفته اند.
۲- سبک سرويس گرا
اصطلاح معماري سرويس -گرا به سبکي از ساخت سيستم هـاي توزيـع شده مطمئن اشاره مي کند که توانمندي را با عنـوان سـرويس هـا ارائـه مي دهد درحالي که تاکيد بر اتصال ضعيف بين تعامل سـرويس هـا دارد.
معماري سرويس گرا يک مدل معماري ارائه مي دهد که بـا بـالا بـردن چابکي و کارايي کليه هزينه هاي عمومي فنـاوري اطلاعـات را دريـک سازمان کاهش مي دهد. در اين سبک سه عامل ايفاي نقش مي کنند.

تدارک کنند هاي خدمات : اين عامل بخشي از قابليت هاي نرمافزاري را در قالب سرويس مشتريان جا مي دهد.
در خواست کنندگان خدمات: کساني که از خدمات تدارک ديده شـده استفاده مي کنند و به تقاضاي آن ها مبادرت مي کنند.
آژانس هاي يابند سرويس : با توجه به فـرض عـدم آشـنايي و سـابقه ي ارتباطي بين تدارک کننده سرويس و استفاده کنندگان آن، نياز اسـت تا تدارک کننده اطلاعات مربوط به خدمات خود را جايي معرفي کند تا استفاده کنندگان بتوانند از طريق آن خدمت مورد نظر را پيدا کرده، با سرويس دهنده ي آن ارتباط بر قرار کنند و از آن استفاده کنند.
۳- ارزيابي معماري
ارزيابي معماري به فرآيندي اطلاق مي شود کـه ط ي آن خـواص مهـم سيستم از طريق مدلهاي معماري مورد بررسي قرار مي رد و نتيجـه آن پاسخ به پرسش هاي در خصوص جنبه هاي معماري قبل از سـاخت سيستم مي شود.
تکنيکهايي که براي ارزيابي معماري استفاده مي شوند عبارتاند از[٣]:
. مرور و بازبيني
. تکنيکهاي مبتني بر مدل
. شبيه سازي
۳-۱- ارزيابي کارايي مبتني بر مدل
در اين روش از ابتدا مدل کارايي سيستم تهيه شده و با کمک نتايج آن طرح معماري با هدف تأمين نيازهاي کارايي سيستم تنظيم مي شود.
چهارچوب کلي ارزيابي کارايي مبتنـي بـر مـدل در شـکل ٣-١ نشـان داده شده است .

در اين روش، نياز است تبديلي از مدل معماري به مدل ناظر به مسائل کارايي صورت گيـرد. وجـود يـک طـرح اوليـه معمـاري در ايـن روش ضروري است [٥].
۴- پيشينه تحقيق
تلاش هاي زيادي براي ارزيابي معماري سيستم هاي نرمافزاري از سال ها پيش انجامشده است که در دسته بندي هاي متنوعي مي گنجند. در يک نگاه کلي اين کارها به صورت خاص منظوره براي معماري يک نوع سيستم خاص يا همه منظوره براي استفاده همه سيستم هـاي تـدارک ديده شده است . از نگاه ديگر معماري سيستم به زب...نهاي رسمي و غير رسمي مختلفي بيان شده است و از طرف ديگر مقصد ارزيـابي کـارايي در آنها نيز از انواع روش ها بوده است . خودکار بودن يا نبودن و امکان اعمال بازخورد ارزيابي در مدل اصلي از ديگر وجوه تمايز فعاليـت هـاي اين زمينه مي باشد. در ادامه به چند مورد از کارهاي انجام شـده اشـاره مي شود.
[٦] به بررسي روشهاي ارزيابي کاراريي در سيستم هـايي بـا معمـاري مبتني بر مؤلفه پرداخته است . نويسنده مقالـه برخـي نيازمنـدي هـاي کاربردي را براي ارزيابي کارايي برشمرده و با اين نگاه به بررسـي روش ها پرداخته است . در اين مقاله روش ها به دودسته کلي کيفي و کمـي تقسيم بندي شدهاند. روشهاي کيفي نيز با توجه به تکنيک ارزيابي به سه دسته تقسيم بندي مي شوند که عبارتاند از: مبتني بر اندازهگيري، مبتني بر مدلسازي و ترکيبي . روشهاي کيفي نيز به دو دسته مبتني بر معماري نرمافزار و مبتني بر مدل تقسيم مي شوند.
[٧] مدل کارايي مرتبط با معماري را با زبـان UML توليـد مـي کنـد.
نقطه شروع اين کار ايجـاد توصـيف معمـاري بـا کمـک ديـاگرام هـاي UML است . براي اين کار دياگرام همکاري ٥ بـه همـراه وضـعيت اشـيا موجود در همکاري اسـتفاده مـي شـود. از نمـودار وضـعيت توصـيفاتي استخراج مي شود که ترکيب آنها مدل مورد نظر است . مدل کـارايي از نوعPEPA مي باشد و اين کار به صورت غير خودکـار انجـام مـي شـود.
Mitton and Holton نيز دياگرام وضعيت در UML را به صورت غير خودکار به زبان PEPA تبديل کردهاند.
در روش ما براي مدلسازي معماري از UML و سيستم تبديل گراف ٦ استفاده شده است و در نتيجـه از مزايـايي هـر دو برخـوردار اسـت . در بخش ساختاري UML به مدلسازي کمک مي کند و در بخش رفتاري نيز گراف نقش ايفا مـي کنـد. در برخـي از کارهـاي مـذکورد از زبـان مدل سازي PEPA براي مدلسازي و ارزيابي کارايي اسـتفاده نشـده و روشهاي متفاوت ديگر همجون QN و SPN مورد استفاده قرار گرفته است . اين در حالي است که اين زبان اوليه هاي بسيار نزديک به عناصر معماري و رفتار قابل مدلسـازي شـبيه بـه رفتـار مـد نظـر در سـطح معماري را دارد. مزيت ديگري که اين فرماليزم نسبت بـه QN و SPN
دارد قابليت ساخت ترکيبي است که با توجه به ماهيت تکاملي معماري در مدلسازي معماري بسيار مورد نياز مي باشد. به طـور خلاصـه روش پيشنهادي ما با توجه به خواص مذکور در توسعه معماري محور و مدل محور نرم افزار پتانسيل استفادهي بالا و امکان توسعه ي بيشتر دارد.
۵- مدل سازي سبک سرويس گرا با کمک سيستم تبديل گراف
اين ايده از ٨ مطرحشده است که در دو بخش سـاختاري و رفتـاري در ادامه به آن مي پردازيم .
معمولاً معماري سرويس گـرا خيلـي پويـا و قابـل انعطـاف مـي باشـند: مؤلفه ها و سر ويس ها داراي اتصال سست مي باشـند و از پروتکـل هـاي استاندارد استفاده مي کنند. در اين سبک، توصـيف سـرويس در زمـان اجرا مي تواند تغيير کنـد، بـه همـين دليـل ، متقاضـيان سـرويس نيـز مــي تواننــد بــه صــورت پويــا از ســرويس هــاي نــامطلوب بــه ســمت سرويس هايي که کيفيت بهتري دارند تغيير جهت دهند. به عنوان مثال زماني که يک سرويس به علت مشـکلات شـبکه ، در دسـترس نباشـد، متقاضي سرويس مي تواند از آن سرويس صـرفنظـر کـرده و سـرويس ديگري را جايگزين آن نمايد. سبک معماري سرويس گرا، توسعه يافتـه سبک مبتني بر مؤلفه مي باشـد. ايـن بـدين معنـا اسـت کـه معمـاري سرويس گرا شامل مؤلفه ها و رابط هـا٧ نيـز مـي باشـند و ماننـد سـبک مبتني بر مؤلفه ، از مکانيزم ارتباطي مبتني بر پيغام استفاده مي کنند.
تفاوت سبک مبتني بر مؤلفه با توسعه اي کـه در سـبک سـرويس گـرا انجامشده محدود است ، درحالي که اتصال سست با عمليـات پـورت هـا شامل : باز کردن پورت، بستن پورت، برقراري ارتباط ٨ و قطع ارتباط٩ را دارايم و بازيابي توصيف سرويس پيش از اتصال به آن، اجباري مي باشد.
براي اين منظور، سبک معماري بايستي با مکانيزم هـايي کـه در ادامـه بيانشده است ، توصيف مي گردد. فراهم کننده سرويس ١٠ مي تواند شرح سرويس را براي آژانس هاي يابنده سرويس ، منتشـر کنـد. آژانـس هـاي يابنده ١١، در خواست هاي انتشار را دريافت و ذخيره مي کنـد. مؤلفـه اي که نيازمند يک سرويس معين است ، مي تواند يک در خواست سـرويس را براي آژانس يابنده ارسال کند.
آژانس يابنده مي تواند اين چنين درخواست هايي را در يافت کند و يـک ســرويس بــا توصــيف مناســب و مطلــوب را جســتجو کنــد و نتيجــه درخواست را به متقاضي ارسال کند.
متقاضي سرويس ١٢ قبل از اينکه به سرويس متصل شود شرح خـدمات سرويس را در يافت و ذخيره مي کند.
۵-۱- مدل سازي بخش هاي ساختاري
شکل ٥-١ شيوهي ارائه رسمي عناصر ساختاري سبک و ارتباطات آنها را به کمک يک طرح گراف١٣ نشان مي دهد. در اين گراف، انواع گرههـا معادل عناصر سبک هستند و انواع يال ها بـه همـراه چنـدي ١٤ ارتبـاط قيود توپولوژيکي را نشان مي دهند و مشخص مي کنند که چگونه گرهها در يک پيکربندي معمـاري کنـار هـم قـرار مـي گيرنـد. سـرويس هـا و
15 آژانس هاي يابند مي توانند به عنوان مؤلفه هاي خاص با نـوع مؤلفـه و زير نوع ١٦ مناسب مؤلفه معرفي شوند. براي تشخيص پورت هاي درگير در انتشار سرويس و يابنده، زير نوعهاي جديدي از نـوع پـورت تعريـف مــي کنــيم . نمونــه هــاي ProviderPT و RequesterPT متعلــق بــه مؤلفه هاي فـراهم کننـده و درخواسـت کننـده مـي باشـد؛ و نمونـه هـاي
PublishPT و FindPT مربوط به آژانس هاي يابنده مي باشد.



توسعه ديگر گراف نمايش دادهشده در شکل ٥-٢ به ش٧ـ١رح خـدمات١٨ و تنوع نوعهاي پيغام توجه دارد. در کنار پيغامهاي جواب و تقاضاي ، سه نوع پيغام خاص معماري سرويس گرا براي تعامـل بـا آژانـس هـاي يابنـده سـرويس ، بـه نـامهـاي: انتشـار١٩ پاسـخ خـدمات ٢٠ و نتـايج و درخواست ٢١ وجود دارد. اولين نوع پيغام، پيغام توصيف خدمات را براي يک يابنده سرويس جهت انتشار، ارائه مي کند. نوع دوم، به نـوع پـورتي اشاره دارد که درخواسـت کننـده سـرويس ، درخواسـت يـک سـرويس مناسب را دارا مي باشد؛ و نوع سوم، توسط آژانـس هـاي يابنـده ارسـال مي شود و محتواي توصيف درخواست مناسب است .

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