Denne artikel stammer fra det trykte Computerworlds arkiv. Artiklen blev publiceret den CTO d. 2. juni 2006.
En softwarearkitektur baseret på services gør integration nemmere.
For fem år siden besluttede softwarevirksomheden Edlund at redesigne sine softwareløsninger til forsikringsbranchen. Det 14 år gamle firma havde i en række år haft en løsning baseret på en tyk klient kodet i C++, der kørte op mod en central databaseserver. Fremover skulle Edlunds software basere sig på en serviceorienteret arkitektur. Den beslutning har Edlund og firmaets godt 80 udviklere ikke fortrudt.
- Vi er glade for at være gået service-vejen. Det er nemt at gøre funktionaliteten i vores løsninger tilgængelig for webservere, andre klienter eller kundens øvrige back-end-systemer. Da vi havde en tyk klient, var det ikke muligt at udskille dele af funktionaliteten som service, da funktionaliteten ofte var blandet sammen med præsentationslaget, siger Thomas Bøge Edlund Jøhnk, teknisk direktør for Edlund.
Overgangen til en serviceorienteret arkitektur har givet Edlund en mere løstkoblet softwarearkitektur.
- Vi har nu en server, der tilbyder en række services, der er tilgængelige for forskellige klientprogrammer, som kan være vores egne eller kundernes klientprogrammer, siger Thomas Jøhnk.
Edlunds egne klientprogrammer anvender .Net Remoting til at kommunikere med serverens services, mens integration til andre programmer som regel foretages ved hjælp af SOAP (Simple Object Access Protocol).
- Vi valgte i sin tid at benytte .Net Remoting mellem serveren og vores egen klient. Med .Net-Remoting understøttes .Nets eget typesystem fuldt ud, hvilket betyder, at enhver datatype - også komplekse strukturer - kan overføres mellem server og klient. Understøttelsen af datatyper i SOAP er lidt mere begrænset, idet der anvendes et typesystem, som er fælles for både Java, .Net og øvrige platforme, som understøtter SOAP. Har vi fuld kontrol over både klient og server, så vælger vi .Net Remoting som kommunikationsprotokol. Ellers bliver det typisk SOAP, hvis der skal integreres med kundens programmer, beretter Thomas Jøhnk.
Hvis der skal integreres ved hjælp af SOAP, anvender Edlund Internet Information Services (IIS) til at modtage SOAP-kald. Derefter rutes kaldene videre til Edlunds egen server ved hjælp af .Net Remoting.
- Vi vil bruge Windows Communications Foundation (WCF, tidligere kendt under navnet Indigo, red.), så snart den bliver endeligt frigivet. Den giver os mulighed for at implementere SOAP-services direkte på vores server, så vi ikke behøver IIS, siger Thomas Jøhnk.
Edlund tester allerede beta-versionen af WCF, men venter med at anvende WCF kommercielt, indtil den bliver officielt frigivet.
- WCF vil gøre det nemmere at installere vores systemer, da der vil være færre elementer at konfigurere, siger Thomas Jøhnk, der havde 12 af sine medarbejdere afsted på Microsofts Professional Developers Conference (PDC) i september for blandt andet at se nærmere på WCF.
Edlund har implementeret løsninger hos en række af de store forsikringsselskaber som SamPension, Pensam, PKA, IP og ATP i Danmark.
- Flere af de store kunder kræver integration til eksisterende systemer. De systemer er måske skrevet i Java. Her anvender vi ofte SOAP til integration mellem vores .Net-baserede systemer og kundens Java-baserede systemer. De mindre kunder har ikke samme behov for integration og lader os stå for en samlet løsning med både server og klient, siger Thomas Jøhnk.
Ifølge Thomas Jøhnk er selve integrationsarbejdet en mindre del af hele udviklingsarbejdet.
- Selve arbejdet med at tilbyde en funktionalitet som en service er en meget lille del af arbejdet. Den store indsats ligger i at definere, hvilke services der skal være, hvordan grænsefladerne skal være, hvilke parametre der skal overføres, samt hvilken rækkefølge og hvilken betydning parametrene har. På det område er der ikke ændret meget de sidste 10 år. Dengang skulle man også definere grænsefladerne, siger Thomas Jøhnk.
Ifølge Thomas Jøhnk er integrationsteknologien dog blevet nemmere at arbejde med.
- Dengang var teknologien en stor udfordring. Det var eksempelvis svært at få DCOM til at fungere. Jeg var engang til et foredrag med Don Box (guru inden for COM, senere med til at specificere SOAP og nu ansvarlig for WCF hos Microsoft, red.). Han spurgte, hvor mange der kendte DCOM, hvilket stort set alle gjorde. Dernæst spurgte han, hvor mange der havde anvendt (eller forsøgt at anvende) DCOM, hvilket en del havde. Endelig spurgte han, hvor mange der havde fået det til at fungere. Her rakte en eller to hånden op. Hvis man stiller de samme spørgsmål i dag om SOAP, vil alle række hånden op til alle spørgsmålene, mener Thomas Jøhnk.
For Thomas Jøhnk er integrationsarbejdet altså mere et spørgsmål om at bestemme, hvilke parametre der skal udveksles mellem systemerne. Hvis Edlund selv står for klient og server, forsøger virksomheden at minimere specifikationstiden ved at lade én udvikler have ansvaret for en funktion på både server og klient.
- Vi laver ikke den traditionelle opdeling mellem serverudvikling og klient-udvikling, hvis vi kan bestemme. Det kan nemt give problemer og tage tid, når der skal kommunikeres om grænseflader og parametre. I stedet giver vi udviklerne ansvar lodret i arkitekturen i stedet for horisontalt. Det betyder, at hvis der eksempelvis er brug for et ekstra felt i en service, så skal udvikleren selv implementere det i serverdelen og derefter lægge det ind i klienten, siger Thomas Jøhnk. Han ser det som en måde at speede udviklingstiden op.
- Store it-projekter har en meget skarp opdeling mellem server og klienter. Det er nødvendigt med kommunikation på tværs af grupper hele tiden. I projekter, hvor kunderne selv laver klienten, går der megen tid med workshops, hvor der skal defineres grænseflader. Selvom man tror, man har aftalt det hele, så går der en måneds tid, hvorefter man finder ud af, at der mangler noget. Det er så nødvendigt at mødes igen for at definere det, der mangler. Det er nemmere, hvis det er den samme person, der har ansvaret på både server og klient, mener Thomas Jøhnk.
Billedtekst:
Lodret Ansvar - Vi laver ikke den traditionelle opdeling mellem serverudvikling og klient-udvikling, hvis vi kan bestemme. Det kan nemt give problemer og tage tid, når der skal kommunikeres om grænseflader og parametre, siger Thomas Jøhnk, teknisk direktør for Edlund.
OriginalModTime: 01-06-2006 13:12:02