8 Revista Inforatica Econoică nr.3(39)/2006 Quality Research by Using Perforance Evaluation Metrics for Software Systes and Coponents Asist. Ion BULIGIU, prof.dr. Georgeta ŞOAVĂ Facultatea de Econoie şi Adinistrarea Afacerilor, Universitatea din Craiova Software perforance and evaluation have four basic needs: () well-defined perforance testing strategy, requireents, and focuses, (2) correct and effective perforance evaluation odels, (3) well-defined perforance etrics, and (4) cost-effective perforance testing and evaluation tools and techniques. This chapter first introduced a perforance test process and discusses the perforance testing objectives and focus areas. Then, it suarized the basic challenges and issues on perforance testing and evaluation of coponent based progras and coponents. Next, this chapter presented different types of perforance etrics for software coponents and systes, including processing speed, utilization, throughput, reliability, availability, and scalability etrics. Most of the perforance etrics covered here can be considered as the application of existing etrics to software coponents. New perforance etrics are needed to support the perforance evaluation of coponent based progras. Keywords: etrics, software perforance, testing, evaluation, reliability, scalability Î n tip, ulte etrici privind perforanţa au fost concepute a ăsura perforanţa coponentelor software sau a sisteelor software, astfel se poate face clasificare a acestora astfel: clasa etricilor de evaluare privind viteza de procesare şi tipul de răspuns; clasa etricilor ce studiază fluxurile de transfer din siste şi între coponentele sale, cu ar fi rata de procesare a esajelor intrate, a cererilor şi a tranzacţiilor; urătoarea clasă se referă la etricile referitoare siguranţa sisteelor, urată de clasa etricilor privind disponibilitatea sisteelor şi în final clasa etricilor de scalabilitate, folosite în analiza şi prognozarea îbunătăţirilor în sensul asigurării perforanţelor privind viteza de procesare. anageentul transferurilor electronice online cu clienţii, siste ale cărui tranzacţii sunt într-un nuăr situat sub 7500. În acest caz, etrica utilizării reţelei este definită de raportul dintre traficul reţelei în Kbps şi nuărul de agenţi între care se desfăşoară tranzacţiile, pe parcursul unui interval de tip efectuarea testului de perforanţă, urărindu-se protocoalele folosite tranzacţii. În figura 2. b) este prezentată utilizarea sisteului un server single-threaded în terenii utilizării hard-diskului, procesor, eorie RAM şi cererile de date diferite procese. Utilizarea o staţie de tip client poate fi analizată folosind acelaşi set de etrici. Metrici de utilizare Metricile privind utilizarea sunt concepute să ăsoare utilizarea resurselor hardware de către o coponentă de siste (sau un siste). Aplicaţiile software utilizează o are varietate de tipuri de resurse de siste, de obicei atenţia concentrându-se asupra lăţiii de bandă a reţelei, viteza procesorului, eorie cache sau eoria fizică pe disc. Figura. a) prezintă rezultatele testării perforanţei utilizarea reţelei privind Metrici privind viteza de procesare Pentru a ăsura viteza de procesare a unei coponente sau a unui siste, se pot defini o varietate de etrici legate de viteză. Una din cele ai utilizate etrici este tipul de răspuns al sisteului la coenzile utilizatorului. Această etrică poate fi utilizată în ăsurarea ediei, iniului şi axiului tipului de răspuns diferite grupuri de utilizatori din siste. Figura 2. a) reprezintă tipurile de răspuns patru grupuri de utili-
Revista Inforatica Econoică nr.3(39)/2006 9 zatori într-un siste de anageent al transferurilor electronice on-line cu clienţii, bazat pe acces concurent al utilizatorilor. Figura 2. b) urăreşte tipul de răspuns la diferite coenzi ale sisteului în corelaţie cu nuărul de utilizatorilor cu acces concurent. Traficul de reţea (Kbps) Utilizare (%) Cereri server Disc Protocolul A Protocolul B Nr.de agenţi RAM CPU Rata coenzilor (nr.ediu/secundă) (a) Fig.. Exeple privind utilizarea sisteelor: a) o reţea cu ai puţin de 7500 tranzacţii; b) un server single-threaded (b) Pentru coponente şi sistee care utilizează funcţii cu esaje de counicaţii, se vor analiza tipii de procesare ale diferitelor tipuri de esaje. Pentru coponente şi sistee cu acces la baze de date, se vor studia tipul de răspuns diferite interogări ale bazelor de date, ţinând cont şi de tipii de conectare la bazele de date. Rezultatele obţinute referitoare la interogarea bazelor de date sunt utile în asigurarea perforanţei a îbunătăţirea vitezei de citire a datelor prin optiizarea interogărilor. Figura 2. d) oferă un exeplu în care tipul de răspuns al interogării este ăsurat în concordanţă cu rata de cererilor efectuate. Medie tip răspuns (sec) Medie tip răspuns (sec) Agent Creare tranz. plată Client Adinistrator Afişarea efectuării plăţii Salvare tranz. plată Afişare detalii tranz. plată Nr. utilizatori Nr. utilizatori a) b) Tip procesare apel (sec) Apel conferinţă Tip de răspuns (sec) Interogare tip 4 Apel transfer Interogare tip 3 Apel între doi ebri Interogare tip 2 Interogare tip Nr. agenţi c) d) Rată coenzi (nr.ediu / sec.) Fig.2. Exeplificări privind viteza unui siste şi a tipului de răspuns: a) tip de răspuns al unui siste utilizator; b) tip de răspuns al unui siste bazat pe coenzi; c) tip de procesare a apelurilor (nr. apeluri 5000/in.) şi d) tipi de răspuns interogări
20 Revista Inforatica Econoică nr.3(39)/2006 Măsurarea vitezei un doeniu specific este necesară definirea unor etrici speciale fiecare funcţie a doeniului. De exeplu, un apel de procesare este o funcţie specifică doeniului un apel al serverului într-un siste al anageentului relaţiilor cu clienţii. Pentru a ăsura viteza de procesare diferite tipuri de apeluri, trebuie calculat tipul de procesare fiecare apel pe baza nuărului de agenţi disponibili care priesc un tip apel specific (Figura. 2. c.). Un alt tip de etrici ăsurarea vitezei sunt etricile de latenţă, care ăsoară tipii de aşteptare sau de întârziere un siste sau o coponentă. Metrici de disponibilitate Disponibilitatea coponentelor sau a unui siste este o preocupare generală în cadrul evaluării perforanţelor, iar prin interediul etricilor de disponibilitate a sisteului sau coponentelor, acest lucru poate fi studiat prin raportarea tipului în care sisteul este disponibil la tipul total de evaluare a sisteului, ce cuprinde atât tipii în care sisteul este solicitat, cât şi tipii în care sisteul este disponibil. Bazându-ne pe această etrică, indisponibilitatea sisteului se calculează ca fiind disponibilitate. Disponibilitatea sisteului poate fi calculată prin relaţia: disponibilitatea_sisteului = tip_siste_disponibil / tip_evaluare_siste, unde tip_siste_disponibil se referă la tipii în care sisteul este capabil să furnizeze Disponibilitatea_Coponentei = Disponibilitatea extinsă a coponentelor Pentru a testa coponentele cu cerinţe o disponibilitate are, trebuie înţeles ce reprezintă o coponentă cu disponibilitate extinsă. O coponentă cu disponibilitate extinsă este forată N clustere forate din N coponente de redundanţă. Ele sunt active în acelaşi funcţii şi servicii către utilizatori pe toată perioada evaluării. Ideea de bază poate fi aplicată ăsurarea disponibilităţii sisteului atâta tip coponentele software sunt considerate cutii negre. Metrica de disponibilitate are două neajunsuri: priul, că nu este prezentă nici o relaţie între disponibilitatea coponentelor şi funcţiile suportate de coponente, iar cel deal doilea, nu poate fi aplicată coponentelor care au o disponibilitate foarte are, cu ar fi cele de tratarea erorilor. Disponibilitatea coponentelor bazate pe funcţii Aceste etrici sunt concepute a ăsura disponibilitatea coponentelor care înglobează funcţii. Disponibilitatea bazată pe funcţii a unei coponente C k dintr-un siste S se calculează prin raportarea tipului total de disponibilitate T D (C k, F j ) a funcţiei F j în tipul T P al evaluării perforanţei. T P include tipii în care coponenta C k este disponibilă şi tipii de indisponibilitate apelul funcţiei F j. Foral, disponibilitatea coponentei C k poate fi descrisă prin urătoarea relaţie: Disponibilitate_F _Coponenta (C k, S, T P ) = T D (C k, F j ) / T P Atâta tip cât această etrică prezintă relaţia directă între disponibilitatea coponentei şi funcţiile suportate, ăsurarea disponibilităţii coponentei poate fi ăsurată prin testarea tuturor funcţiilor coponentei pe tipul evaluării perforanţei. Pentru o coponentă care suportă un nuăr de funcţii diferite, atunci disponibilitatea ei poate fi calculată astfel: Disponibilitate _ F _ Coponenta ( Ck, S, TP ) / tip a suporta şi a furniza acelaşi set de caracteristici ca o cutie neagră. Se consideră C DE = {C 0, C,, C N } este un cluster cu N coponente de redundanţă. Disponibilitatea unei N-cluster coponente C DE dintr-un siste S este cunoscută ca fiind disponibilitate extinsă a coponentei. Cuantificarea ei se va face astfel: Disponibilitate_Extinsa_Coponenta = (C DE, S, T P ) = Disp_Ext tip(c DE ) / [Disp_Ext tip(c DE ) + Indisp_Ext tip(c DE )],
Revista Inforatica Econoică nr.3(39)/2006 2 unde Disp_Ext tip(c DE ) reprezintă valoarea de tip în care coponenta C DE este disponibilă, Indisp_Ext tip(c DE ) este tipul în care C DE nu este disponibilă, iar T P reprezintă perioada de tip evaluarea perforanţei. Disp_Ext tip(c DE ) se calculează astfel: Disp_Ext tip(c DE ) = T j ( DE), Tip de indisponibilitate C unde T (DE), T 2 (DE), şi T (DE) sunt intervale de tip de disponibilitate din tipul total T p. În tipul fiecărui interval de tip de disponibilitate, cel puţin o coponentă din C DE este activă şi disponibilă a pune la dispoziţie toate funcţiile coponentei. Siilar se calculează şi Indisp_Ext tip(c DE ): n ' Indisp_Ext tip(c DE ) = T j( DE) unde T (DE), T 2 (DE), şi T (DE) sunt intervalele de indisponibilitate din T P. În tipul fiecărui interval de tip, toate eleentele coponentei C DE nu sunt disponibile să ofere toate funcţiile. Figura 3 reprezintă un exeplu de trei clustere a unei coponente cu disponibilitate extinsă. Tip de disponibilitate C Tip de indisponibilitate C DE Tip de disponibilitate C DE Fig.3. Coponentă cu disponibilitate extinsă (C DE ) cu trei coponente şi tipii de disponibilitate şi indisponibilitate Metrici de siguranţă Pentru evaluarea siguranţei în funcţionare a sisteului se studiază siguranţa serviciilor, folosindu-se funcţia R(t) ce returnează probabilitatea ca un serviciu să funcţioneze întrun interval de tip t. Siguranţa serviciilor este des caracterizată prin specificarea tipului ediu de defecţiuni (TMD) sau a tipului ediu între defecţiuni (TMID). În calculul TMD sau TMID se ia în considerare faptul că distribuţia exponenţială descrie cel ai bine posibilele apariţii ale defectelor serviciilor. Siguranţa în funcţionare a unei coponente C k din sisteul S se referă la raportul dintre tipul total de funcţionare al coponentei şi tipul total de evaluare T p, care include atât tipii de funcţionare, cât şi tipii de nefuncţionare. Plecând de la această definiţie, siguranţa în funcţionarea coponentelor poate fi uşor evaluată dacă se aplică o coponentă de urărire şi înregistrarea a tipilor de funcţionare şi de nefuncţionare. Dacă se presupune că C k este o coponentă care nu are o disponibilitate extinsă, atunci siguranţa în funcţionare pe perioada T p poate fi calculată astfel: Sigur_Cop Tp (C k ) = tip_func(c k ) / T p unde T p reprezintă tipul total de evaluare a perforanţei, tip_func(c k ) este tipul de funcţionare a coponentei C k, iar tip_nfunc(c k ) cuulează tipii de nefuncţionare şi reparare a coponentei.
22 Revista Inforatica Econoică nr.3(39)/2006 Pentru coponentele cu disponibilitate extinsă, cu ar fi coponentele de tip N-cluster, este nevoie de o altă etrică de evaluarea siguranţei în funcţionare. Se va studia ai întâi cazul în care se ia în considerare criteriul bazat pe apariţia unei singure defecţiuni. Confor acestui criteriu, coponenta C DE este considerată nefuncţională dacă un singur eleent al acestei coponente are o defecţiune în orice interval de tip pe parcursul perioadei de evaluare. Bazându-ne pe această idee, siguranţa în funcţionare a coponente C DE poate fi cuantificată prin interediul relaţiei: Sigur_Cop Tp (C DE ) = tip_func(c DE ) / tip_func(c DE ) + tip_nfunc(c DE ) / T p, unde, tip_func(c DE ) este tipul de funcţionare a coponentei C DE, iar tip_nfunc(c DE ) cuulează tipii de nefuncţionare şi reparare a coponentei. Pentru a ăsura tip_nfunc(c DE ), se va presupune că C DE = {C HA,, C HAn } este o coponentă de tip N-cluster. În conforitate cu acest criteriu al unei singure defecţiuni, tipul de nefuncţionare al C DE poate fi calculat astfel: tip_nfunc (C DE ) = unde T j este un interval de tip din T P şi cel puţin una din coponentele C DE este nefuncţională un tip T j. Tipul de funcţionare al C DE este calculat prin diferenţă din tipul total: tip_func(c DE ) = T p - [tip_nfunc(c DE )]. Celălalt criteriu evaluează siguranţa în funcţionare a coponentei C DE bazată pe disponibilitatea serviciile funcţionale. Prin această abordare, o defecţiune a serviciilor coponentei C DE pe tipul unui interval de tip presupune că toate coponentele redundante ale C DE au eşuat în furnizarea serviciilor lor. Astfel, se utilizează o cale diferită de a calcula tipul de funcţionare al coponentei C DE. Pentru o coponentă de tip N- cluster C DE = {C HA,, C HAn }, tip_func(c DE ) se va calcula astfel: tip_func (C DE ) = T j, unde T j este un interval de tip din T P şi cel puţin una din coponentele C DE este funcţională şi poate furniza servicii funcţionale în tipul T j. T j, nefuncţionare C funcţionare C nefuncţionare C funcţionare C a) b) nefuncţionare funcţionare nefuncţionare funcţionare C DE C DE C DE C DE Fig.4. Coparaţia între cele două criterii privind siguranţa în funcţionare Metrici privind rezultatele Acest tip de etrici este conceput a ăsura rata de succes a unei coponente software în procesarea evenientelor, esajelor şi cererilor de tranzacţii pe parcursul unei perioade de tip în care se face evaluarea. Rezultatul tranzacţiei a unei coponente C k o tranzacţie tip TR se referă la nuărul total al cererilor de tranzacţii procesate cu succes în tipul perioadei de evaluare T p : rez_tranz(c k, T p, TR) =
Revista Inforatica Econoică nr.3(39)/2006 23 unde este nuărul total al cererilor de tranzacţii procesate cu succes. Pe parcursul perioadei de testare şi evaluare, se pot aplica o serie de teste deterinarea axiului, iniului şi ediei rezultatele tranzacţiilor la fiecare tip de tranzacţie. Bazându-ne pe etrica de rezultat se poate defini rata rezultatului tranzacţiei a unei coponente C k ca fiind raportul dintre nuărul total de cereri de tranzacţii efectuate cu succes şi nuărul total de cereri de tranzacţii priite pe perioada de evaluare T p : rata_rez (C k, T p, TR) = / n unde este nuărul total al cererilor de tranzacţii TR procesate cu succes în tipul T p, iar n este nuărul total al cererilor de tranzacţii TR priite în aceeaşi perioadă de tip. Cu cât rata de rezultat se apropie de valoarea, coponenta C k dispune de o rată de succes axiă în procesarea cererilor de tranzacţii de categoria TR. Metrici de scalabilitate Un siste sau coponentă se consideră scalabilă dacă poate fi dezvoltată astfel încât să furnizeze eficient funcţii şi servicii într-un doeniul predefinit de şabloane. Validarea scalabilităţii şi evaluarea unui siste şi a coponentelor sale se face studiul: - liitelor coponentelor sau sisteului în procesare prin prisa diensiunii probleelor, voluului de date şi a nuărului de utilizatori cu acces concurent; - creşterii perforanţelor şi degradărilor în cazul diferitelor configuraţii şi setări. Funcţia arginală a unei coponente Pentru a ăsura liitele perforanţei unei coponente (C k ) trebuie observate cantitativ odificările perforanţei în execuţie o funcţie de diensiune fixă în cazul creşterii firelor de execuţie concurente din C k. Aplicând teorea Adahl privind perforanţa coponentelor software şi anue că viteza întregului siste este influenţată de cea ai lentă coponentă, se va defini tipul de execuţie al unei funcţii F J din cadrul unei coponente C k astfel: T(Ck, F J, n) = Tserial + Tconc / n unde tipul de execuţie T(Ck, F J, n) este îpărţit în două: tipul consuat de eleentele seriale din C k, notat cu T serial şi tipul de execuţie al n diferite fire de execuţie concurente, notat cu T conc. Pe ăsură ce nuărul de fire de execuţie concurente creşte, cu atât valoarea tipului total de execuţie de apropie de valoarea T serial. În practică, tipul total de execuţie tinde către valoarea axiă (nuit punct de prag) pe ăsură ce sunt apar fire de execuţie concurente în apelurile coponentei C k. Apariţia de noi fire concurente, va solicita şi ai ult sisteul prin suprasolicitare, ceea ce va influenţa şi tipul de execuţie al coponentelor seriale, în sensul creşterii. Se observă că această etrică poate fi folosită în ăsurarea acceleraţiei tipul de execuţie al funcţiei F j când nuărul firelor de execuţie concurente al coponentei C k creşte de la n la : T accel Fj (n,) = T(Ck, F J, n) - T(Ck, F J, ) Valorile negative ale acceleraţiei, desigur, indică o încetinire a execuţiei, valorile pozitive reprezentând o execuţie ai rapidă. De aseenea, etrica poate fi folosită în deterinarea nuărului opti de fire concurente a obţine o viteză de execuţie axiă, însă cu trei liitări: Liitele rezultatelor unei tranzacţii şi îbunătăţirea clusterelor coponentei Pentru a creşte capacitatea unui siste de aplicaţie, de obicei se utilizează coponente de tip N-cluster (care reprezintă o grupare de coponente identice) care suportă un set specific de funcţii. Astfel evaluarea odificărilor privind rezultatele unei procesări o tranzacţie se face prin deterinarea plajelor de valori între care se situează nivelul rezultatelor şi a punctelor de prag la odificarea nuărului de coponente ale coponentei de tip N-cluster. Se va folosi o etrică siplă observarea odificărilor rezultatelor sisteului tranzacţii de tip TR pe ăsură ce se odifică nuărul coponentelor redundante din coponenta cluster. Astfel se va ăsura rezultatul sisteului în ura unui test fixat T set într-o perioadă dată de tip T p : Rezultat siste (T set, n, TR, T p ) = Nuărul total de cereri tranzacţii TR procesate cu succes
24 Revista Inforatica Econoică nr.3(39)/2006 unde n este nuărul coponentelor redundante în coponenta cluster. Se deduce că rezultatele sisteului sunt influenţate de variaţia lui n, astfel se pot cuantifica îbunătăţirile aplicate clusterelor coponentei: Rezultat siste_ib (n, ) = Rezultat siste (T set,, TR, T p ) - Rezultat siste (T set, n, TR, T p ) unde Rezultat siste_ib (n, ) reprezintă îbunătăţirea rezultatelor atunci când nuărul coponentelor identice de tip cluster creşte de la n la. Bibliografie: Cheung, R. C., A User-Oriented Software Reliability Model, IEEE Trans. On Software Engineering, Vol. 6, No. 2, March 980; Everett, W. W., Software Coponent Reliability Analysis, Proc. of IEEE Syposiu on Application-Specific Systes and Software Engineering and Technology, 999; Gao, J., and C. Sun, Perforance Measureent of Software Coponents A Systeatic Approach, Technical Report, San José State University, San José, CA, 2002; Gao, J., Tsao, H. S. Testing and quality assurance for coponent-based software Artech House, 2003. Yacoub, S. M., B. Cukic, and H. H. Aar, A Coponent-Based Approach to Reliability Analysis of Distributed Systes, Proc. of IEEE 9th International Syposiu on Software Reliability Engineering, Paderborn, Gerany, 998; Yacoub, S. M., B. Cuki, and H. H. Aar, Scenario-Based Reliability Analysis of Coponent-Based Software, IEEE 0th International Syposiu on Software Reliability Engineering, Boca Raton, FL, 999;