Prestandaegenskaper, såsom svarstid, genomströmning och skalbarhet, är viktiga kvalitetsattribut för distribuerade applikationer. Nuvarande praxis använder dock sällan systematiska tekniker för att utvärdera prestandaegenskaper. Vi hävdar att utvärdering av prestanda är särskilt viktigt i tidiga utvecklingsfaser, när viktiga arkitektoniska val görs. Vid första anblicken motsäger detta användningen av testmetoder, som vanligtvis tillämpas mot slutet av ett projekt. I detta dokument utgår vi ifrån att många distribuerade system är byggda med middleware-teknik, såsom Java 2 Enterprise Edition (J2EE) eller Common Object Request Broker Architecture (CORBA). Dessa tillhandahåller tjänster och faciliteter vars implementationer är tillgängliga när arkitekturer definieras. Vi noterar också att det är middleware funktionaliteten, såsom transaktion och persistens tjänster, fjärrkommunikation primitiver och tråding politik primitiver, som dominerar distribuerade systemprestanda• Med hjälp av dessa observationer, presenterar detta dokument ett nytt tillvägagångssätt för prestandatestning av distribuerade applikationer. Vi föreslår att man härleder applikationsspecifika testfall från arkitekturkonstruktioner så att prestandan hos en distribuerad applikation kan testas med hjälp av middleware-programvaran i ett tidigt skede av en utvecklingsprocess. Vi rapporterar empiriska resultat som stöder hållbarheten i strategin. Middleware, Software Testing, Distributed Software Architecture, Software Performance, Performance Analysis Models tForskningen utfördes medan denna författare var på studiepermission vid UCL. *Detta arbete har delvis fått stöd av Europeiska unionen genom nätverket för forskningsutbildning Segra Vis. Tillstånd att göra digitala eller papperskopior av hela eller delar av detta arbete för personligt bruk eller klassrum beviljas utan avgift, förutsatt att kopiorna inte görs eller distribueras för vinst eller kommersiella fördelar och att kopiorna är försedda med detta meddelande och den fullständiga hänvisningen på första sidan. För att kopiera på annat sätt, för att återpublicera, för att posta på servrar eller för att omfördela till listor, krävs tidigare specifik behörighet och/eller avgift.  INLEDNING Olika kommersiella trender har lett till en ökande efterfrågan på distribuerade tillämpningar. För det första ökar antalet fusioner mellan företag. De olika divisionerna i ett nyetablerat företag måste leverera enhetliga tjänster till sina kunder och detta kräver vanligtvis en integrering av deras IT-system. Den tid som står till förfogande för en sådan integration är ofta så kort att det inte är ett alternativ att bygga ett nytt system och därför måste befintliga systemkomponenter integreras i ett distribuerat system som framstår som en integrerande datorutrustning. För det andra minskar den tid som står till förfogande för att tillhandahålla nya tjänster. Ofta kan detta endast uppnås om komponenter anskaffas från hyllorna och sedan integreras i ett system snarare än byggs från grunden. Komponenter som ska integreras kan ha inkompatibla krav på sina maskinvaru- och operativsystemsplattformar; de måste vara utplacerade på olika värdar, vilket tvingar det resulterande systemet att distribueras. Slutligen ger Internet nya möjligheter att erbjuda produkter och tjänster till ett stort antal potentiella kunder. Den nödvändiga skalbarheten hos e-handels- eller e-förvaltningswebbplatser kan vanligtvis uppnås genom centraliserade arkitekturer eller klient-serverarkitekturer, men kräver användning av distribuerade programvaruarkitekturer. Med tanke på den ökande betydelsen av distribuerade system är vi intresserade av att utforma systematiska sätt att säkerställa att en viss distribuerad programvaruarkitektur uppfyller prestandakraven hos deras användare. Prestanda kan karakteriseras på flera olika sätt. Latency beskriver normalt dröjsmålet mellan begäran och slutförandet av en operation. Genomströmning betecknar antalet operationer som kan slutföras under en given tidsperiod. Skalbarhet identifierar beroendet mellan antalet distribuerade systemresurser som kan användas av en distribuerad applikation (vanligtvis antal värdar eller processorer) och latens eller dataflöde. Trots den praktiska betydelsen av dessa olika aspekter är det fortfarande inte tillräckligt klarlagt hur man ska testa prestandan hos distribuerade applikationer. Weyuker och Vokolos rapporterade om svagheten i den publicerade vetenskapliga litteraturen om testning av programvaruprestanda i [26]. Hittills har inga betydande vetenskapliga framsteg gjorts när det gäller individprövning. Dessutom är den uppsättning verktyg som finns tillgängliga för testning av programvaras prestanda ganska begränsad. De mest använda verktygen är arbetsbelastningsgeneratorer och prestandaprofilerare som ger stöd för testutförande och felsökning, men de löser inte många 94
Giovanni Denaro REF arbetade med tidig prestandatestning av distribuerad programvara.
Early performance testing of distributed software applications
{'venue': "WOSP '04", 'journal': None, 'mag_field_of_study': ['Computer Science']}