MÄLARDALENS HÖGSKOLA Institutionen för Ekonomi och Informatik v PM 01 – En jämförelse av två analysmodeller för val av komponentteknik Eskilstuna, 2002-12-12 EI0230 Komponentbaserad applikationsutveckling PM01 version 3 Grupp 2 Blomqvist Maria Eriksson Daniel MÄLARDALENS HÖGSKOLA Institutionen för Ekonomi och Informatik v Innehållsförteckning 1 Inledning .................................................................................................. 2 1.1 Bakgrund............................................................................................... 2 1.2 Problematisering .................................................................................. 3 1.3 Syfte ....................................................................................................... 3 2 Beskrivning av modeller ......................................................................... 4 2.1 Modell 1 -”A comparison of multimedia application development platforms towards the object web”, Av A. Michalas, V. Zoi, N. Sotiropoulos, N. Mitrou, V. Loumos, E. Kayafas ....................................... 4 2.2 Modell 2 -” Performance comparison of CORBA and RMI”, Av M. B. Juric, I. Rozman and M. Hericko............................................................ 7 3 Analys ..................................................................................................... 10 4 Slutsatser ................................................................................................ 12 Källförteckning MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 1 2 (13) ver.3 Inledning Vi har funnit att det finns många modeller för att välja vilken komponentteknik som lämpar sig bäst i ett specifikt informationssystems utvecklingsprojekt. Att ta beslut om vilken komponentteknik som är bäst lämpad för ett visst informationssystems utvecklingsprojekt är svårt. Svårigheten består till stor del av att denna typ av teknik avviker betydligt från den teknik som används för att implementera systemet i övrigt. Vi tror även att ett annat problem kan vara att informationssystemsutvecklare inte alltid har den kompetens som krävs för att ta beslut om komponentteknik. I detta PM jämförs två analysmodeller för val av komponenttekniker i ett utvecklingsprojekt. Likheter och olikheter samt för- och nackdelar med de olika modellerna påvisas och sedan presenteras slutsatser som dragits ifrån detta material. 1.1 Bakgrund Från början var Internet ett envägsmedium för att publicera statiska dokument. Senare utvecklades mer interaktiva medium i och med införandet av klient/server HTTP1 /CGI2 modellen. Detta medium var dock svårt att använda, inte speciellt snabbt och hade ett tillståndslöst protokoll som inte var lämpligt för moderna klient/server applikationer. Mjukvarutillverkare försökte därför komma förbi de hinder som fanns hos HTTP/CGI genom att utveckla olika CGI-utökningar, men dessa kan inte helt täcka de nya krav som finns. (Michalas m.fl. 2000) Idag erbjuder Internet nya sätt att kommunicera, många multimediaapplikationer som erbjuder tjänster har vidareutvecklats och Internet håller på att bli den huvudsakliga plattformen för att bygga kommersiella applikationer. Nätverkstillväxten och den globala kommunikationen via nätverk har idag nått gränserna för traditionell objektorienterad programmering. De mest kritiska aspekterna som inte stöds av dem är kommunikation och interaktion mellan klient och server. Dessa två aspekter är viktiga när det gäller att bygga den nya generationen av distribuerade informationssystem som kräver kommunikation mellan beräknande entiteter. Det finns ett behov för en klient att direkt kunna anropa ett serverobjekt som kan innehålla klientens tillstånd under ett besök på en webbplats, när användaren hoppar mellan olika sidor på en applikation. Detta nya tillvägagångssätt leder till vad som kan kallas ”objekt web”, och detta koncept är resultatet av försök att integrera objektorienterade tekniker för att låta olika objekt i ett nätverk kommunicera med varandra med hjälp av komponenttekniker. (Michalas m.fl. 2000) 1 2 HyperText Transfer Protocol Common Gateway Interface MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 3 (13) ver.3 Det finns flera olika komponenttekniker. Vår arbetsgrupp har läst två artiklar som handlar om olika sätt att analysera vilken komponentteknik som är lämpligast att använda under vissa förutsättningar. En av de mest välkända teknikerna är CORBA3. I artiklarna jämförs denna teknik med ASP4 och Java RMI5 som är två andra lösningar för att kommunicera mellan nätverksobjekt. I artiklarna presenteras två analysmodeller för val av komponentteknik som vi i detta PM jämfört med varandra. 1.2 Problematisering Det finns flera olika modeller för val av komponentteknik. Problemet ligger i att olika komponenttekniker kan vara bra att använda beroende på olika förutsättningar. Tar olika modeller hänsyn till olika förutsättningar, d.v.s. vilken typ av krav som finns på det färdiga systemet avseende till exempel prestanda (svarstider och hanterad datamängd)? Finns det likheter mellan de olika analysmodellerna, eller är det rentav samma modell i olika utförande? 1.3 Syfte Syftet med denna undersökning är att beskriva två olika modeller för val av komponentteknik och jämföra dessa modeller med varandra. 3 Common Object Request Broker Architecture Active Server Pages 5 Remote Method Invocation 4 MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 2 4 (13) ver.3 Beskrivning av modeller Här följer en kort presentation av de modeller som ligger till grund för våra analyser och slutsatser. 2.1 Modell 1 -”A comparison of multimedia application development platforms towards the object web”, Av A. Michalas, V. Zoi, N. Sotiropoulos, N. Mitrou, V. Loumos, E. Kayafas Den första modellen (se figur 1) grundas på innehållet i artikeln ”A comparison of multimedia application development platforms towards the object web”. I artikeln beskrivs två olika objektorienterade implementationsmodeller: HTTP/ASP kontra Java/CORBA. Dessa jämförs experimentellt i ett verkligt scenario för att ta fram fördelar och nackdelar med respektive komponentteknik. I artikeln har vi försökt utröna författarnas analysmodell över jämförelsen av de olika teknikerna. Denna analysmodell anser vi är den som författarna till artikeln menar skulle kunna ligga till grund för vilken teknik som bör väljas i olika situationer. Analysmodell för val av komponentteknik Verkligt scenario Flera klienter En klient Enstaka sökobjekt Distribuering av resurser Lätthet att utveckla Svarstid Prestanda Generell sökning Stabilitet arkitektur Kännetecken Val av teknik Figur 1 Analysmodell 1 för val av komponentteknik. Källa: Michalas m.fl 2000, egen bearbetning. Undersökningen och jämförelsen av de två teknikerna gjordes på en verklig webbapplikation som innehåller information om barnprogram i Europa. Målet med modellen är att den ska leda fram till ett lämpligt val av komponentteknik. MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 5 (13) ver.3 Valet av teknik baseras på tre huvudsakliga kriterier: • Lätthet att utveckla – Artikelförfattarna anser att det är lämpligt att utvecklare baserar sitt val av utvecklingsverktyg och tekniker på sådana de redan behärskar. De anser även att vissa tekniker kan vara lättare att lära sig, tex. så underlättas utvecklingsprocessen för ASP genom dess ”intrinsic objects” som automatiskt hanterar vissa uppgifter och genom API6 kan hålla vissa servicekomponenter i minnet (på serversidan) under klientsessioner. • Kännetecken – Java/CORBA har t.ex. arv, men det saknar HTTP/ ASP. En annan sak som påverkar kännetecknen för en teknik är arkitekturen, ASP är plattformsberoende vilket ses som en nackdel i vissa fall. CORBA är mer komplex och gör att komponenter skrivna i olika programmeringsspråk och som körs på olika plattformar kan kommunicera med varandra. • Prestanda – Det kriterium som tonvikten läggs på i denna modell. Utvärderingen och jämförelsen mellan teknikerna baseras i huvudsak på teknikernas påverkan på systemets prestanda. Prestandajämförelsen i analysmodellen baseras i sin tur på tre olika kriterier: • Distribuering av resurser – Java/CORBA möjliggör skalbar servertill-server infrastruktur, där serverobjekt kan köras på olika servrar för att få lastbalansering för inkommande klientförfrågningar. • Stabilitet – Robustheten hos tekniken anses vara bäst hos Java/CORBA. • Svarstid – Artikelns undersökning visar entydigt på bättre svarstider för Java/CORBA. Skillnaden kan delvis förklaras av att för HTTP/ASP kan klienten inte direkt nå/starta ett serverobjekt, utan det måste gå via HTTP och en webbserver, och av att hela sidor överförs. Java/CORBA å andra sidan överför bara metodsignaturer och parametrar. Svarstiden jämförs efter anrop från flera klienter – som även via möjlighet att få distribuering av resurser påverkar prestandan. Svarstiden jämförs även efter anrop från en klient – som baserar sin sökning på webbapplikationen på olika sökkriterier: • Enstaka sökobjekt – I detta fall sökte de tex efter tv-program producerade i ett visst land. • 6 Generell sökning – I detta fall söktes information som passade in på många olika sökkriterier, och gav därmed fler träffar i databasen. Application Programming Interface MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 6 (13) ver.3 Kontentan av denna analysmodell ska bli att modellen leder fram till rekommendationer för val av olika tekniker beroende på vissa omständigheter. Jämförelsen av dessa komponenttekniker resulterar i två rekommendationer: • Java/CORBA: Rekommenderas för stora krävande applikationer eftersom resultaten i undersökningen visar att systemets prestanda, med tanke på svarstid, stabilitet och förmåga att distribuera resurser, är väldigt bra. • HTTP/ASP: Rekommenderas för små/medelstora applikationer eftersom de då erbjuder acceptabla svarstider och även i viss mån underlättar utvecklingsprocessen. MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 2.2 7 (13) ver.3 Modell 2 -” Performance comparison of CORBA and RMI”, Av M. B. Juric, I. Rozman and M. Hericko Den andra modellen (se figur 2) beskriver den teori som ligger till grund för artikeln ”Performance comparison of CORBA and RMI”, i vilken prestandaskillnaderna mellan CORBA och Java RMI kartläggs genom att testa prestandan hos de båda teknikerna i ett fiktivt scenario. Modellen är en grafisk återgiving av hur man enligt artikelförfattarna bör gå till väga när man ska göra ett val av komponentteknik för ett projekt. Analysmodell för val av komponentteknik Fiktivt scenario Antal Klienter Analys av multitrådstrategier Klientens placering Primitiva datatyper String Kodanalys Tidskrävande metoder Lätthet att utveckla Datamängd Komplexitet Stöd för ”legacy systems” Svarstid Prestanda Mognad arkitekturen Kännetecken Val av teknik Figur 2 Analysmodell 2 för val av komponentteknik. Källa: Juric m.fl 2000, egen bearbetning. Förenklat uttryckt bör valet baseras på hur det framtida systemet kan beskrivas i följande fem avseenden: • Lätthet att utveckla – Denna aspekt avser de utvecklingsverktyg och tekniker som ska användas under utvecklingen. Artikelförfattarna menar att det ofta kan vara vettigt att basera sitt val på vilka tekniker man som utvecklare redan behärskar, istället för att behöva lära sig nya programmeringsspråk och utvecklingsverktyg. • Stöd för ”legacy systems” – Med ”legacy systems” menas i detta fall gamla system som det nya systemet kommer att behöva kommunicera med, men som inte är utvecklade enligt de komponentbaserade principer som kommer att gälla för det nya systemet. Eftersom CORBA är både plattforms och språkoberoende är det mycket som talar för denna teknik om det nya systemet i framtiden ska kommunicera med äldre, redan driftsatta system. Detta gäller speciellt då de gamla systemen inte är skrivna i Java, eftersom Java RMI förutsätter att all kod är skriven i just Java. MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 8 (13) ver.3 • Mognad – Artikelförfattarna menar att utvecklaren även bör se till de respektive teknikernas mognad. Med det menar de att CORBA, som funnits längre än Java RMI är mer genomtänkt och välutvecklat. Detta talar för att använda CORBA om komplexa funktioner behöver implementeras. • Kännetecken – Vidare bör utvecklaren ha i åtanke att de båda teknikerna har olika arkitektur. CORBA är en komplex teknik som möjliggör kommunikation mellan komponenter skrivna i olika programmeringsspråk som körs på olika plattformar. Tekniken innehåller komplexa funktioner för att översätta datatyper mellan dessa olika plattformar och programmeringsspråk, så kallad marshalling. Ingenting av detta finns i Java RMI som enbart är en teknik för att möjliggöra för ett Javaobjekt att kommunicera med ett annat Javaobjekt • Prestanda – Hos ett system innebär prestanda flera olika saker, och har därför delats in i underpunkterna tidskrävande metoder, komplexitet, och svarstid. Prestandajämförelsen i analysmodellen baseras i sin tur på tre olika kriterier: • Svarstiden – Enligt artikelförfattarna påverkas svarstiden av antalet klienter, klientens placering, datamängden och vilken typ av data (primitiva datatyper eller strängar) som ska överföras mellan olika komponenter. • Komplexitet – CORBA är till sin natur en komplex komponentteknik som ska klara av alla datatyper på ett effektivt sätt. Java RMI däremot är inte lika komplext uppbyggt och saknar många av de funktioner som gör CORBA språk och plattformsoberoende. Prestandan vid små datamängder blir lidande när CORBA används, eftersom de mekanismer som ska säkerställa kommunikationen vid kraftig belastning eller vid kommunikation mellan olika plattformar fortfarande kräver samma mängd overhead som om belastningen vore maximal. Även för kommunikation över nätverk och mellan system skrivna i olika språk har CORBA komplexa mekanismer för t.ex. ”marshalling”, som ger en högre ”overhead” än hos Java RMI vid små datamängder. Sammanfattningsvis talar detta för att CORBA är att föredra när mycket data ska överföras mellan olika komponenter, när systemet ska serva många klienter som kommunicerar över ett nätverk och när icke primitiva datatyper, som t.ex. strängar ska överföras. • Tidskrävande metoder – Författarna anser att man bör analysera den kod som utgör de mest tidskrävande metoderna, liksom analysera den multitrådsstrategi som avses användas i systemet, detta för att maximera prestandan. MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 9 (13) ver.3 När det framtida systemet sedan har analyserats efter de föreslagna kriterierna ska resultatet av denna analys leda till ett val av komponentteknik. Författarna av artikeln hade två hypoteser som utgångspunkt för sitt arbete. Dessa var: 1. Java RMI används med fördel för småskaliga projekt där stöd för andra system kan ske via specialbyggda ”bryggor” och där lätthet att använda är viktigare än prestanda. 2. CORBA är passande för stora system som kräver kompatibilitet med gamla system samtidigt som goda prestanda under hög belastning är ett krav. Resultatet av undersökningen visar att båda dessa hypoteser stämmer, och att man ska utgå ifrån dessa när man gör sitt val av komponentteknik. MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 3 10 (13) ver.3 Analys För att åskådliggöra skillnader och likheter mellan de båda modellerna har vi nedan valt att kombinera de två modellerna till en gemensam modell (se figur 3). För att visa vilka kriterier som är gemensamma respektive olika hos de två analysmodellerna har vi valt att färgkoda de olika kriterierna. Vit färg markerar kriterier som är gemensamt hos de båda modellerna. Ljusgrå färg symboliserar kriterier som endast återfinns i modell 1 medan mörkgrå färg motsvarar kriterier som endast finns i modell 2. GemensamAnalysmodell analysmodellför förval valavavkomponentteknik komponentteknik Fiktivt scenario Scenario En klient Primitiva String Klientens placering Datamängd datatyper Enstaka sökobjekt Generell sökning Antal Klienter Analys av multitrådstrategier Tidskrävande metoder Kodanalys Svarstid Komplexitet Distribuering av resurser Stabilitet arkitekturen Lätthet att utveckla Stöd för ”legacy systems” Prestanda Mognad Kännetecken Val av teknik Bildförklaring: Kriterier med denna bakgrundsfärg är gemensamma för båda modellerna Kriterier med denna bakgrundsfärg finns bara i modell 1 Kriterier med denna bakgrundsfärg finns bara i modell 2 Figur 3 Analysmodell 3, sammanslagning av analysmodell 1 och 2. Egen bearbetning. Modell 1 är mindre utförlig, den grundas på ett verkligt scenario med givna förutsättningar. Modell 2 siktar istället på att ta alla möjligheter i beaktande genom ett fiktivt scenario som har som mål att få ett så detaljerat beslutsunderlag som möjligt oavsett vilka förutsättningar som gäller för projektet. MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 11 (13) ver.3 Det finns ett antal kriterier som är gemensamma hos de båda modellerna: kännetecken, prestanda, lätthet att använda, svarstid, arkitekturen, antal klienter. Prestandan är alltså gemensam i modellerna, men definitionen för prestandakriteriet skiljer sig åt. I modell 1 innefattar prestanda stabilitet och distribuering av resurser, medan man i modell 2 istället har valt att lägga tonvikten på kriterier som komplexitet och tidskrävande metoder. De tidskrävande metoderna har undersökts djupare genom analys av kod och analys av den multitrådsstrategi, vilket innebär att modell 2 gör en mer djupgående analys av uppbyggnaden av komponenterna och hur detta påverkar prestandan. Svarstiden är ett gemensamt kriterium för båda modellerna som ligger under prestanda och den har en central roll i båda modellerna. Definitionen av svarstider skiljer sig dock även den åt, men båda modellerna indikerar att datamängden och antalet anslutna klienter har betydelse för svarstiderna, dock benämns de som olika kriterier i de olika modellerna. I modell 2 går in mer på djupet genom att undersöka vilken typ av data som sänds mellan komponenterna och hur detta påverkar prestandan. Vidare undersöks hur svarstiden påverkas av var klienten är fysiskt placerad och vad det innebär i fråga om overhead för kommunikation över till exempel ett nätverk eller mellan olika plattformar. Modell 2 innehåller förutom ovan nämnda kriterier även stöd för ”legacy systems” och mognad. Detta tyder ytterligare på att modellen är mer heltäckande eftersom det ofta finns till exempel gamla system som det nya systemet måste kunna kommunicera med. Mognaden avser komponenttekniken. En äldre teknik är mer mogen och innehåller därmed färre buggar och/eller mer funktioner som kan användas i utvecklingen av det nya informationssystemet Modell 2 undersöker mer grundligt och utförligt effekten av hur olika kriterier inverkar på valet av teknik. Modell 1 är dock ändå heltäckande i grunden i och med att den innehåller alla de kriterier som är centrala i ett utvecklings projekt, så som prestanda, svarstider, det faktum att man klarar av att genomföra utvecklingsarbetet, mängden data som skall överföras samt antalet klienter som kommer att vara anslutna till systemet samtidigt. Målet med att vara heltäckande uppnås utan att blanda in detaljer som t.ex. analys av kod och analys av vilka datatyper som kommer att sändas mellan systemets olika delar. MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 4 12 (13) ver.3 Slutsatser Vi anser att de båda analysmodellerna som presenterats i detta PM mycket väl kan tillämpas på ett verkligt utvecklingsprojekt, och kan då underlätta vid valet av komponentteknik. Båda dessa modeller innehåller de huvudsakliga kriterier som även vi ser som de viktigaste att ta i beaktande när valet av komponentteknik ska göras. Det är dock viktigt att komma ihåg att ingen av dem är heltäckande, eftersom båda modellerna innehåller delar som saknas i den andra modellen och vice versa. Det finns även aspekter som vi anser har glömts bort i båda dessa modeller, exempel på sådana är dokumentation, underhåll av informationssystemet och support av detsamma. Även om dessa aspekter inte är lika centrala som de delar modellerna tar upp är de ändå aspekter som vi anser bör tas i beaktande vid valet av komponentteknik. Modellerna kan sägas vara två varianter på samma synsätt, då båda modellerna betonar samma delar när de analyserar komponenttekniker, men de har också samma svagheter, då de har liknande luckor i hur de analyserar komponentteknikerna. I grund och botten kan man säga att de bygger på samma grundkoncept men att de samtidigt ser lite olika på hur man bör förhålla sig till detaljerna, eftersom den ena är mer djupgående än den andra. De som använder sig av en modell har ett stort ansvar då de väljer de kriterier som skall analyseras. Valet av kriterier har avgörande inverkan på valet av teknik. För att en korrekt och rättvis jämförelse mellan tekniker skall vara möjlig anser vi att det skulle behövas ett standardiserat ramverk. Detta skulle underlätta för informationssystemsutvecklare då viktiga aspekter och kriterier inte skulle riskeras glömmas bort. Om ett fördefinierat ramverk och scenarier fanns tror vi att det skulle det gå snabbare att komma fram till vilka tekniker som kan vara bäst lämpade att välja beroende på givna förutsättningar. MÄLARDALENS HÖGSKOLA Promemoria Institutionen för Ekonomi och Informatik 2002-12-12 13 (13) ver.3 Källförteckning Artiklar Michalas, A., & Zoi, V., & Sotiropoulos, N., Mitrou, N., & Loumos, V., & Kayafas, E. 2000. A comparison of multimedia application development platforms towards the object web, Computer Standards & Interfaces, vol. 22 nr. 1, s.13-26. Juric, M.B., & Rozman, I., & Hericko, M. 2000, Performance comparison of CORBA and RMI., Information and Software Technology, vol. 42 nr.13, s. 915-933.