Tjenesteorientert arkitektur

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

Arkitekturstilen tjenesteorientert arkitektur, forkortet SOA fra det engelske begrepet service-oriented architecture, ble utviklet som svar på kravene om bedre måter å integrere systemer på en mer kosteffektiv måte.

Designet riktig 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 er i en integrasjon 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 blir usynlig for tjenestekonsument.

For eksempel så tilbyr "Web services" de åpne standardene som er nødvendig 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.