Tjenesteorientert arkitektur

Fra Wikipedia, den frie encyklopedi
Hopp til: navigasjon, søk

Tjenesteorientert arkitektur (forkortet SOA, fra engelsk: «Service-Oriented Architecture») er en arkitekturstil laget for å integrere datasystemer på en mer kostnadseffektiv måte.

Når den er riktig utformet gir tjenesteorientert arkitektur muligheten for løst koblede applikasjoner. Dette i motsetning til tett koblede applikasjoner. Endringer i tett koblede systemer er veldig kostnadskrevende da alle systemene som integrert må endres hvis ett system endres. Ved hjelp av tjenesteorienterte arkitektur-mønstre kan man få til løst koplede systemer der man får et mellomlag i arkitekturen som isolerer endringen fra de tjenestekonsumentene. Systemer som bruker tjenesten forholder seg til en kontrakt (WSDL) som danner tjenestens grensesnitt. Hvordan dette grensesnittet er implementert holdes usynlig for tjenestekonsumenten.

For eksempel tilbyr vevtjenester/«web services» de åpne standardene som er nødvendige for å kunne implementere allsidige, gjenbrukbare forretningsfunksjoner slik at man kan dele opp komplekse forretningsprosesser til enkle, administrerbare enheter.

Sentralt i den tjenesteorienterte arkitekturen er komponenten kalt tjenestebuss (Enterprise Services Bus, ESB) . Denne danner limet mellom de forskjellige systemene som skal integreres. Tjenestebussen skal etter beste praksis være tynn og kun utføre VETRO (Verify, Enrich, Transform, Route, Operate). Tilstand og logikk skal ikke implementeres på tjenestebussen men i andre lag i arkitekturen.

Til behandling av tilstand og logikk i såkalte orkestreringsprosesser har man utviklet standarden BPEL (Business Process Execution Language). BPEL muliggjør orkestrering, det vil si å sette sammen tjenester til mer sammensatte tjenester, som da kan leve over lengre tid. En BPEL prosess kan vare lenge og huske sin tilstand. Det er mulig at prosessen dehydrerer (lagres på disk) for så å våkne ved en hendelse som vekker opp prosessen igjen.