SOA gir fleksibilitet. Med SOA kan gamle systemer gjenbrukes i moderne webapplikasjoner. Her vist i behandling av forsikringskunder. Den andre store fordelen som ikke illustrasjonen viser er den store fleksibiliteten som slike systemer vil gi. Her er det mulig å bytte et av de underliggende systemene eller outsource et system uten at man trenger endre kunde- eller saksbehandlerportalen. En slik modularisering er svært effektiv og fleksibel, og enkel å endre når forutsetninger som kundebehov eller forsikringsprosesser skulle endre seg. Ill. Capgemini

Hva er SOA?

Hovedpoenget med SOA er å legge til rette for gjenbruk. Det er viktig av mange årsaker, ikke minst på grunn av kostnader og utviklingstid.

Gjenbruk handler både om gamle applikasjoner og om de som utvikles på nytt. Over årene er det investert milliarder av kroner i programvare som fremdeles går utmerket og gjør det den skal.

Problemet er at slik programvare av og til er svært gammel. I slike tilfeller må det «skrus på» et tillegg som gjør at den kan snakke i et SOA-system. Da blir den gamle applikasjonen til en Web Service, som gjør sine tjenester tilgjengelig for andre i systemet.

Litt verre blir det når den gamle applikasjonen er så «antikk» at den ikke skal snakke i sann tid. Den ble kalt batchorientert. I slike systemer ble transaksjonen samlet opp og ofte kjørt på natten. Skal en slik gammel arbeidshest inn i et moderne SOA-system, kreves det mer kirurgi for å få den til å snakke i sann tid.

Men det er ikke bare gamle systemer som skal gjenbrukes. Det er også viktig når det utvikles nye systemer. Når nye komponenter utvikles, bør de lages etter samme lest slik at de kan gjøres tilgjengelig som en Web Service. Hvem vet? Neste år er det noen som etterspør akkurat denne applikasjonen i et helt annet system.



Flere skoler

Siden dette er relativt klart, hvorfor er ikke da alle skjønt enige om SOA?

Det er et spørsmål om ståsted. Noen ser på SOA fra et strengt teknisk perspektiv, og sier at dette dreier seg om applikasjoner som er klargjort som Web Service og som kan snakke med XML.

Andre ser på SOA ut fra et verdikjedeperspektiv. Det handler om å åpne opp verdikjedene og få de gamle monolittiske applikasjonene til å snakke med andre i et større samspill.

Andre igjen definerer SOA i et designperspektiv. Hvordan finner du ut hvilke tjenester du trenger når du skal designe et nytt system? Hvilke tjenester skal ditt nye, lille SOA-univers inneholde?

Så har vi de som ser på SOA ut fra et forvaltningsperspektiv. De er opptatt av hvordan de ulike komponentene og applikasjonene i et nytt system skal jobbe sammen mest mulig effektivt.



En typisk SOA-system

En ny applikasjon som er utviklet med SOA inneholder en miks av gamle applikasjoner og nye komponenter, og på toppen av det hele et moderne brukergrensesnitt. De gamle applikasjonene var før selvstendige i den forstand at de hadde et eget brukergrensesnitt, gjerne terminalbasert og en forretningslogikk som snakket med databasen. I den nye verden er de utstyrt med et Web Service grensesnitt, og kan snakke med andre applikasjoner og komponenter i stedet for direkte med brukeren.

I tillegg finner du mange nye komponenter som utfører en eller annen logisk funksjon som systemet krever. Alt dette ser brukeren gjennom sitt nye vakre grensesnitt. Når han eller hun bruker systemet, jobber de ulike komponentene og applikasjonene sammen som det rene orkester for å skape resultatet.



Standardisering

En viktig del av SOA er å standardisere applikasjonene og komponentene så de kan snakke sammen. Her jobber de fleste store programvareselskapene sammen for å skape gode standarder.



Verktøy

Som alltid når en ny bølge når dataverdenen, er det et race for å bygge de beste utviklingsverktøyene. Det har kommet en rekke gode verktøy for utvikling med SOA i tillegg til de andre standardene SOA bygger på som Web Services.