Web Services-standarden håller på att bli lingua franca för löst kopplade distribuerade applikationer. Eftersom antalet noder och komplexiteten i dessa program växer under de kommande åren, kommer det att bli mer utmanande för utvecklare att förstå, felsökning, och optimera dem. I denna uppsats beskriver vi Web Services Navigator, ett visualiseringsverktyg som främjar en bättre förståelse för applikationer för serviceorienterad arkitektur (SOA). Vi bygger på vår erfarenhet av verkliga SOA-tillämpningar för att visa hur detta verktyg har tillämpats på praktiska problem som sträcker sig från affärslogiska missförstånd till prestationsflaskhalsar till syntax- och semantiska fel. Web Services Navigator hjälper till att lösa dessa problem genom att visualisera hur applikationer verkligen kör, vilket gör det möjligt för företagsägare, applikationsdesigners, projektledare, programmerare och driftspersonal att förstå hur deras program faktiskt beter sig. Vi skissar arkitekturen för Web Services Navigator, beskriver hur den rekonstruerar applikationsutförande från händelseloggar, och beskriver hur användare interaktivt utforskar sina program med hjälp av sina fem länkade vyer. Stora delar av företagens produktivitetsvinster under de senaste årtiondena beror på införandet av ny informationsteknik. Vid något tillfälle förändras den ekonomiska balansen; företagen börjar lägga större vikt vid att minska kostnaderna för att stödja befintliga IT-funktioner än vid att lägga till nya funktioner. Idag strävar många företag efter att förbättra den totala kostnadseffektiviteten för sina IT-investeringar genom att se över företagens behov och minska kostnaderna. Dessa insatser omfattar vanligtvis att utnyttja befintliga tillgångar, konsolidera uppsägningar och lägga en grund för framtida tillväxt. Denna trend driver övergången från tätt kopplade komponentiserade system till löst kopplade servicebaserade system, såsom de som bygger på serviceorienterade arkitekturer (SOAs) som använder standardbaserade gränssnitt. 1, 2 För att illustrera skillnaderna mellan komponentiserade system och servicebaserade system gör vi en analogi med lufttransportsektorn. Denna industri flyttar passagerare som anländer med hjälp av marktransport till flygplan, flyger dem till en Ó Copyright 2005 av International Business Machines Corporation. Kopiering i tryckt form för privat bruk är tillåten utan betalning av royalty, under förutsättning att 1) varje reproduktion sker utan ändring och 2) tidningsreferensen och IBM-meddelandet om upphovsrätt ingår på första sidan. Titel och abstract, men inga andra delar, av detta papper får kopieras eller distribueras royalty gratis utan ytterligare tillstånd av datorbaserade och andra informationssystem. Tillstånd att återpublicera någon annan del av papperet måste erhållas från Redaktören. destination, och släpper dem till marktransport på destinationen. Flygplan, som är en viktig del av historien, är tillverkade av stora samlingar av tätt integrerade komponenter. Enligt Boeing, ett enda 747-400** flygplan innehåller mer än 6 miljoner delar, 3 visar att det komponentiserade systemet tillvägagångssätt kan fungera för mycket komplexa system. Trots detta är det övergripande flygtransportsystemet bäst formulerat som en sammansättning av "koreograferade" tjänster: bränsletjänster, livsmedelstjänster, bagagetjänster, flygkontrolltjänster och marktransporttjänster, för att bara nämna några få. Flygtransporter beror på både komponentstrategier och servicestrategier. Vilka krafter driver företag mot det ena eller det andra? Ett sätt att ta itu med denna fråga är att observera några av skillnaderna mellan integrerade komponenter och koreograferade tjänster. Komponentiserade system tenderar att vara djupt hierarkiska, med komponenter konstruerade av delkomponenter som själva är konstruerade av andra delkomponenter. När ett komponentiserat system inte fungerar ska den felande delkomponenten identifieras och repareras eller bytas ut. Ofta förekommande flygpassagerare kan till exempel känna till förseningar i samband med flygplansfel. Att borra ner sig i sådana "vertikala" komponenthierarkier för att identifiera grundorsaken till fel är styrkan i dagens diagnostiska verktyg, som ofta är inbyggda i komplexa system. Hur står detta i kontrast till den koreograferade servicemiljön? Tjänsterna har väldefinierade och allmänt tillgängliga gränssnitt med en förutsägbar eller specificerad tjänstekvalitet. De är vanligtvis tillgängliga för olika typer av konsumenter. Tjänster ger i allmänhet en komplett användbar arbetsenhet, och likvärdiga tjänster är ofta tillgängliga som alternativ. Utbytbara tjänster utgör grunden för konkurrensen. När en tjänst misslyckas, det föredragna botemedlet kan vara ersättning snarare än reparation. Om till exempel en bränslelastbil skulle gå sönder, skulle alla flygpassagerare förvänta sig att en ersättningslastbil skulle avsändas i stället för att vänta på att den trasiga lastbilen skulle repareras. Till skillnad från komponentiserade system stannar området för kontroll och synlighet för konsumenten av tjänsten i allmänhet vid servicegränssnittet. Denna servicemiljö leder till många "horisontella" interaktionsmönster som tar formen av en bred och ytlig hierarki. Utmaningen när det gäller att hantera och förstå tjänstesammansättningen är att hantera denna horisontella komplexitet. När systemen består av flera oberoende affärsprocesser är kartläggningen mellan sådana processer och de tillämpningar som utförs i IT-skikten inte alltid självklar. Överväga sådana grundläggande uppgifter som att kontrollera att ett arbetsflöde är korrekt eller att lokalisera flaskhalsar i prestandan, där loggar från en mängd olika servrar måste kollas och tolkas. Detta är svårt även när antalet servrar är litet och kan bli opraktiskt när den horisontella komplexiteten ökar. Uppkomsten av SOA i IT-industrin drivs av samma tryck som har format lufttransportsystemet. Web Services Navigator 4 har utformats och byggts från grunden för att möta utmaningarna med horisontell komplexitet i servicemiljön och dess tillhörande användningsmönster. Detta verktyg bygger på Data Collector för IBM Web Services Navigator 5 för att fånga händelser. Verktyget korrelerar sedan händelserna, modellerar de transaktioner de representerar och extraherar utförandemönster från modellen. Verktyget rekonstruerar således enskilda transaktioner från slut till slut och producerar visuella abstraktioner, såsom servicetopologier och flödesmönster, samt konkreta vyer över transaktionsflöden och datainnehåll. De abstrakta vyerna minskar stora volymer av exekveringsdata till mer meningsfulla former för människor. De kan avslöja viktiga affärstrender som döljs i konkreta synpunkter och samtidigt kan länka till tillhörande detaljerade uppgifter när det behövs. Eftersom SOAs överensstämmer med öppna standarder, Data Collector för Web Services Navigator kan fånga program exekveringsdata i middleware. Följaktligen kan utvecklare och operativ personal dra nytta av visualiseringsteknik utan att ändra sina tillämpningar, antingen före eller efter installation, även när deras miljö innehåller en blandning av programmeringsspråk och operativa plattformar. I nästa avsnitt beskriver vi de fem vyer som används av Web Services Navigator för att visa information. 822 visade sig vara användbara; vi visar först hur verktyget användes för att diagnostisera ett antal problem i affärslogiken, och sedan visar vi ett antal fall där verktyget hjälpte till att diagnostisera problem i IT-lagret. De problem som presenteras i detta dokument möttes i verkliga Web Services-baserade applikationer som utvecklats inom IBM eller för IBM:s kunder. I synnerhet användes två tillämpningar för att illustrera verktygsfunktionerna: en online-ordervalideringstjänst och ett system för försäljningsställen i detaljistledet. Därefter diskuterar vi kort datasamlaren. Sedan, i ''Arkitektur och genomförande,', beskriver vi den allmänna arkitekturen av verktyget och diskuterar ett antal genomförandefrågor av intresse: kompensera för klocka skevar bland noder, vår algoritm för att lägga ut topologi grafer, och identifiera transaktionsmönster. Vi diskuterar relaterat arbete och avslutar med en sammanfattning.
Web Service Navigator är ett visualiseringsverktyg för serviceorienterade arkitekturapplikationer, som bland annat används för att analysera prestanda flaskhalsar REF.
Web Services Navigator : Visualizing the execution of Web Services &
{'venue': 'IBM Syst. J.', 'journal': 'IBM Syst. J.', 'mag_field_of_study': ['Computer Science']}