29.07.2013 Views

Kartlegging av mulige standarder for tjenesteorientert arkitektur ... - Difi

Kartlegging av mulige standarder for tjenesteorientert arkitektur ... - Difi

Kartlegging av mulige standarder for tjenesteorientert arkitektur ... - Difi

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Kartlegging</strong> <strong>av</strong> <strong>mulige</strong><br />

<strong>standarder</strong> <strong>for</strong> <strong>tjenesteorientert</strong><br />

<strong>arkitektur</strong> i offentlig sektor<br />

Forprosjektrapport<br />

På oppdrag <strong>for</strong><br />

Lysaker, 20. januar 2010<br />

Versjon 1.1


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Forord<br />

Rapporten er utarbeidet <strong>av</strong> Commitment AS på oppdrag <strong>av</strong> Direktoratet <strong>for</strong> <strong>for</strong>valtning og IKT<br />

(<strong>Difi</strong>). <strong>Difi</strong> er sekretariat <strong>for</strong> standardiseringsrådet, og skal legge fram <strong>for</strong> rådet <strong>for</strong>slag til<br />

<strong>standarder</strong> som rådet skal vurdere.<br />

Hensikten med rapporten er å vise bredden i <strong>mulige</strong> <strong>standarder</strong> innen området<br />

<strong>tjenesteorientert</strong> <strong>arkitektur</strong>. Rapporten er et utgangspunkt <strong>for</strong> hvilke <strong>standarder</strong> <strong>Difi</strong> skal<br />

anbefale standardiseringsrådet å vurdere nærmere, <strong>for</strong> eventuelt senere å inkludere dem i<br />

referansekatalogen <strong>for</strong> IT-<strong>standarder</strong> i offentlig sektor. Anbefalingene i rapporten er <strong>for</strong>slag til<br />

hvilke <strong>standarder</strong> som bør vurderes nærmere, og ikke en endelig anbefaling om hvilke<br />

<strong>standarder</strong> som skal inn i referansekatalogen.<br />

Oppg<strong>av</strong>ene med å anbefale aktuelle <strong>standarder</strong> er første steg i standardiseringsrådets arbeid.<br />

Senere vil <strong>mulige</strong> <strong>standarder</strong> bli vurdert i henhold til standardiseringsrådets kriterier, og<br />

knyttet til <strong>mulige</strong> anvendelsesområder i offentlig sektor. Standarder kan være egnet på noen<br />

områder, mens de er mindre egnet <strong>for</strong> andre anvendelsesområder.<br />

Vi ønsker en åpen prosess rundt dette, og ber om tilbakemeldinger på anbefalingene i<br />

rapporten. Basert på anbefalingene i rapporten, og tilbakemeldinger som kommer, vil <strong>Difi</strong> i<br />

samråd med en arbeidsgruppe utarbeide en anbefaling til standardiseringsrådet om hvilke<br />

<strong>standarder</strong> rådet skal utrede videre.<br />

Rapporten prøver å spenne vidt, men det kan være <strong>standarder</strong> som ikke er omfattet.<br />

Rapporten fokuserer på tekniske <strong>standarder</strong> og har <strong>av</strong>grenset mot proses<strong>standarder</strong>.<br />

Kommentarer til rapporten og <strong>for</strong>slag til <strong>standarder</strong> og områder som bør vurderes kan gis på<br />

standardiseringssekretariatets hjemmesider.<br />

Det arbeides også med to tilhørende notater som vil gi innspill til terminologi på området og en<br />

oversikt over referansemodeller som ofte blir brukt. Disse er ikke klare ennå. Vi ber leserne<br />

om ikke å henge seg opp i begrepsbruken i rapporten. Området <strong>tjenesteorientert</strong> <strong>arkitektur</strong> er<br />

preget <strong>av</strong> ulik begrepsbruk, og vi håper at dere leser rapporten med et åpent sinn. Rapporten<br />

skal være et utgangspunkt <strong>for</strong> en diskusjon om <strong>standarder</strong>, ikke begreper.<br />

<strong>Difi</strong>, januar 2010<br />

20.01.2010 Versjon 1.1 2/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Innhold<br />

1 Sammendrag ......................................................................................................... 6<br />

1.1 Anbefaling <strong>av</strong> <strong>standarder</strong> ............................................................................... 6<br />

1.2 Andre anbefalinger ........................................................................................ 6<br />

2 Innledning ............................................................................................................. 8<br />

2.1 Bakgrunn ..................................................................................................... 8<br />

2.2 Målsetninger................................................................................................. 8<br />

2.3 Avgrensning ................................................................................................. 9<br />

2.4 Viktige begreper ........................................................................................... 9<br />

2.5 Rapportens struktur ...................................................................................... 9<br />

3 Anvendelse <strong>av</strong> metoder og <strong>standarder</strong> i ulike scenarioer ............................................. 10<br />

3.1 Scenario: In<strong>for</strong>masjonsutveksling mellom enheter i offentlig sektor .................... 11<br />

3.1.1 Tekniske løsninger ...................................................................................... 12<br />

3.1.2 Standarder <strong>for</strong> meldingsutveksling ................................................................ 12<br />

3.1.3 Standarder <strong>for</strong> sikkerhet .............................................................................. 13<br />

3.1.4 Løsninger <strong>for</strong> kommunikasjon ...................................................................... 13<br />

3.1.5 Løsninger <strong>for</strong> store datamengder .................................................................. 14<br />

3.1.6 Data<strong>for</strong>mater ............................................................................................. 15<br />

3.1.7 Tjenestekataloger ....................................................................................... 15<br />

3.2 Scenario: Tilgjengeliggjøring <strong>av</strong> registerdata ................................................... 16<br />

3.2.1 Tekniske løsninger ...................................................................................... 17<br />

3.2.2 Løsninger <strong>for</strong> søk ........................................................................................ 18<br />

3.2.3 Løsninger <strong>for</strong> semantisk interoperabilitet ....................................................... 18<br />

3.3 Scenario: Saksbehandling ............................................................................. 18<br />

3.3.1 Kr<strong>av</strong> til interaksjon med tjenestebrukere ....................................................... 19<br />

3.3.2 Tekniske løsninger ...................................................................................... 19<br />

3.3.3 Prosessmotor og regelmotor ........................................................................ 20<br />

3.3.4 Interoperabilitet mellom fagsystem ............................................................... 21<br />

3.3.5 Arkivering .................................................................................................. 21<br />

3.3.6 Kontakt med bruker .................................................................................... 21<br />

3.3.7 Interaksjon mellom brukergrensesnitt og prosess ........................................... 22<br />

3.4 Scenario: Innrapportering til det offentlige ...................................................... 22<br />

3.4.1 Tekniske løsninger ...................................................................................... 23<br />

3.4.2 Løsninger <strong>for</strong> skalerbarhet ........................................................................... 23<br />

3.4.3 Løsninger <strong>for</strong> prosess, koordinering og <strong>for</strong>deling ............................................. 23<br />

3.4.4 Løsninger <strong>for</strong> dataoverføring ........................................................................ 23<br />

4 Metoder og <strong>standarder</strong> <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> ............................................... 25<br />

4.1 Arkitekturmessige betraktninger på bruksscenarioene ...................................... 27<br />

4.2 Metoder og <strong>standarder</strong> <strong>for</strong> tjenestelaget ......................................................... 28<br />

4.2.1 Web services – WSDL .................................................................................. 29<br />

4.2.2 Modularisering <strong>av</strong> tjenester og data .............................................................. 30<br />

4.2.3 Versjonsstyring <strong>av</strong> tjenester og data<strong>for</strong>mat .................................................... 30<br />

4.2.4 Standarder tilknyttet WSDL ......................................................................... 31<br />

4.2.5 Profiler <strong>for</strong> webtjenester .............................................................................. 31<br />

4.2.6 REST ......................................................................................................... 32<br />

4.2.7 ebXML <strong>for</strong> eHandel ...................................................................................... 32<br />

4.2.8 RosettaNet ................................................................................................. 34<br />

4.2.9 Semantiske tjenestebeskrivelser ................................................................... 35<br />

4.3 Mellomvare ................................................................................................. 35<br />

4.3.1 Ulike typer mellomvare ............................................................................... 36<br />

4.3.2 Beskrivelse og oppdagelse <strong>av</strong> tjenester ......................................................... 37<br />

4.3.3 Teknisk styring og drift <strong>av</strong> tjenester .............................................................. 38<br />

4.4 Kommunikasjon ........................................................................................... 40<br />

4.4.1 Metoder <strong>for</strong> meldingsutveksling .................................................................... 40<br />

4.4.2 Standarder <strong>for</strong> direkte kall til tjenester .......................................................... 41<br />

4.4.3 Hendelser og notifikasjon ............................................................................ 42<br />

20.01.2010 Versjon 1.1 3/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.4.4 WS-Addressing - ruting og adressering <strong>av</strong> tjenester ........................................ 43<br />

4.5 Data og in<strong>for</strong>masjon ..................................................................................... 43<br />

4.5.1 Nivåer <strong>for</strong> dataintegrasjon ........................................................................... 43<br />

4.5.2 Profiler <strong>for</strong> in<strong>for</strong>masjonsutveksling ................................................................ 44<br />

4.5.3 XML .......................................................................................................... 45<br />

4.5.4 ebXML Core Components ............................................................................. 46<br />

4.5.5 Innholds<strong>standarder</strong> ..................................................................................... 47<br />

4.5.6 Andre tekstlige <strong>for</strong>mater .............................................................................. 47<br />

4.5.7 Binær XML ................................................................................................. 48<br />

4.5.8 WS-Enumeration - Tjenesteorientert tilgang til sammensatte data .................... 48<br />

4.5.9 Databaseintegrasjon ................................................................................... 48<br />

4.6 Portaler, interaksjon og presentasjon ............................................................. 49<br />

4.6.1 Kanaler ..................................................................................................... 49<br />

4.6.2 HTML ........................................................................................................ 50<br />

4.6.3 Tilgjengelighet <strong>for</strong> alle ................................................................................. 50<br />

4.6.4 ELMER ....................................................................................................... 50<br />

4.6.5 WSRP – Web Services <strong>for</strong> Remote Portlets ..................................................... 51<br />

4.6.6 AJAX ......................................................................................................... 51<br />

4.6.7 W3C Webapps ............................................................................................ 51<br />

4.6.8 Interaktivt multimedia og rike grensesnitt ..................................................... 52<br />

4.7 Samhandling, prosesser og komposisjon <strong>av</strong> tjenester ....................................... 52<br />

4.7.1 BPEL ......................................................................................................... 53<br />

4.7.2 WS-CDL .................................................................................................... 53<br />

4.7.3 ebXML BPSS .............................................................................................. 54<br />

4.7.4 WS-CAF – Composite Applications Framework ................................................ 54<br />

4.7.5 WS-Transactions ........................................................................................ 54<br />

4.7.6 Overvåking og styring <strong>av</strong> prosesser .............................................................. 54<br />

4.7.7 Business Centric Methodology (BCM) og Content Assembly Mechanism (CAM) .... 54<br />

4.7.8 Andre <strong>standarder</strong> ........................................................................................ 55<br />

4.8 Sikkerhet og pålitelighet ............................................................................... 55<br />

4.8.1 eID og ID-porten ........................................................................................ 55<br />

4.8.2 SAML ........................................................................................................ 56<br />

4.8.3 XACML ...................................................................................................... 56<br />

4.8.4 WS-Security ............................................................................................... 57<br />

4.8.5 XML kryptering og signering ......................................................................... 58<br />

4.8.6 Åpne industri<strong>standarder</strong> <strong>for</strong> autentisering og autorisasjon ................................ 59<br />

4.8.7 Pålitelig meldingsutveksling ......................................................................... 59<br />

4.8.8 ISO/IEC 27000 ........................................................................................... 59<br />

4.9 Avhengigheter mellom <strong>standarder</strong> .................................................................. 60<br />

4.10 Modellering <strong>av</strong> tjenester ................................................................................ 60<br />

4.10.1 Prosesser og sammenstilling <strong>av</strong> tjenester .................................................. 60<br />

4.10.2 Modelldrevet utvikling <strong>av</strong> tjenester ........................................................... 62<br />

4.10.3 Modellering <strong>av</strong> regler .............................................................................. 64<br />

4.10.4 Virksomhets<strong>arkitektur</strong> <strong>for</strong> <strong>for</strong>valtning <strong>av</strong> tjenester ...................................... 64<br />

5 Råd <strong>for</strong> videre arbeid .............................................................................................. 69<br />

5.1 Basis <strong>standarder</strong> som trolig bør anbefales ....................................................... 69<br />

5.2 Andre <strong>standarder</strong> som kan anbefales .............................................................. 71<br />

5.3 Standarder som kan vurderes seinere ............................................................. 72<br />

5.4 Områder <strong>for</strong> videre kartlegging ...................................................................... 72<br />

5.4.1 Forvaltning og drift <strong>av</strong> tjenester ................................................................... 73<br />

5.4.2 Tjenester i skyen ........................................................................................ 73<br />

5.4.3 Pragmatisk semantikk ................................................................................. 73<br />

5.4.4 Virksomhets<strong>arkitektur</strong> ................................................................................. 73<br />

5.4.5 Modelldrevne applikasjoner .......................................................................... 75<br />

Vedlegg A. Referanser ............................................................................................... 76<br />

Vedlegg B. Forkortelser.............................................................................................. 83<br />

20.01.2010 Versjon 1.1 4/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Figurer<br />

Figur 1. Bruksområder <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> ..................................................... 10<br />

Figur 2. Scenarioer <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> .......................................................... 10<br />

Figur 3. Offentlig tjenesteyting før <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. ......................................... 25<br />

Figur 4. Første generasjon <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. .................................................... 26<br />

Figur 5. Andre generasjon <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. .................................................... 26<br />

Figur 6. Komponenter i <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. ........................................................ 27<br />

Figur 7. Ulike løsninger <strong>for</strong> tilgjengeliggjøring <strong>av</strong> registerdata. .......................................... 28<br />

Figur 8. Oversikt over <strong>standarder</strong> <strong>for</strong> webtjenester. ......................................................... 31<br />

Figur 9. Interoperabilitet på ulike nivåer. ........................................................................ 43<br />

Figur 10. Arkitektur <strong>for</strong> dynamiske brukergrensesnitt <strong>for</strong> webtjenester [168]. ..................... 52<br />

Figur 11. Avhengigheter mellom <strong>standarder</strong> <strong>for</strong> webtjenester............................................ 60<br />

Figur 12. Bruk <strong>av</strong> virksomhets<strong>arkitektur</strong>. ........................................................................ 65<br />

Figur 13. Hovedbegreper i TOGAF [132]. ........................................................................ 66<br />

Figur 14. Ulike nivåer <strong>av</strong> virksomhets<strong>arkitektur</strong> i offentlig sektor [37]. ............................... 74<br />

20.01.2010 Versjon 1.1 5/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

1 Sammendrag<br />

Denne rapporten er en kartlegging <strong>av</strong> <strong>mulige</strong> <strong>standarder</strong> <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i<br />

offentlig sektor. Hovedmålet er å peke på <strong>standarder</strong> som på sikt kan gjøres til<br />

<strong>for</strong>valtnings<strong>standarder</strong> [32]. Rapporten er et første innspill til den videre standardiseringsprosessen,<br />

hvor mer detaljerte analyser blir <strong>for</strong>etatt. Her er relevante <strong>standarder</strong> identifisert<br />

og vi peker på hvor de kan anvendes.<br />

I analysen har vi fokusert på fire bruksscenarioer <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig<br />

sektor: In<strong>for</strong>masjonsutveksling mellom virksomheter, tilgjengeliggjøring <strong>av</strong> registre,<br />

saksbehandling og innrapportering.<br />

Tilgjengelige <strong>standarder</strong> innen <strong>tjenesteorientert</strong> <strong>arkitektur</strong> varierer sterkt i <strong>for</strong>hold til<br />

utbredelse, <strong>for</strong>mell godkjenning, modenhet, stabilitet, enkelhet og kompleksitet. Ofte finnes<br />

det flere <strong>standarder</strong> som dekker overlappende funksjonalitet, og noen <strong>standarder</strong> brukes i<br />

ulike versjoner parallelt.<br />

1.1 Anbefaling <strong>av</strong> <strong>standarder</strong><br />

Kapittel 5 oppsummerer basis <strong>standarder</strong> som bør anbefales, andre <strong>standarder</strong> som kan<br />

anbefales, og <strong>standarder</strong> som ikke er modne <strong>for</strong> anbefaling, men som bør overvåkes videre.<br />

De viktigste standardene som bør anbefales, og som danner grunnlaget <strong>for</strong> <strong>tjenesteorientert</strong><br />

<strong>arkitektur</strong>, er i første rekke:<br />

WSDL <strong>for</strong> beskrivelse <strong>av</strong> tjenester,<br />

SOAP, SOAP with Attachments <strong>for</strong> kommunikasjon med tjenester,<br />

XML, XML Schema, XML Namespaces <strong>for</strong> dataene som tjenester utveksler,<br />

WS-Adressing <strong>for</strong> identifikasjon og beskrivelse <strong>av</strong> endepunktene hvor tjenester er<br />

tilgjengelige.<br />

Dette er i tråd med anbefalinger fra WS-I, KITH, og OIO [58, 70, 209], i deres profiler <strong>av</strong><br />

<strong>standarder</strong> <strong>for</strong> webtjenester. Disse profilene beskriver hvordan en samling <strong>standarder</strong> bør<br />

brukes sammen, mer presist og detaljert. En norsk standard profil <strong>for</strong> webtjenester bør trolig<br />

defineres.<br />

Sikkerhets<strong>standarder</strong> knyttet til WS-Security, med SAML, WS-SecurityPolicy, WS-Policy, XML<br />

Encryption og XML Signatures bør også anbefales. Dette må samordnes med eID og ID-porten.<br />

Gruppen <strong>av</strong> <strong>standarder</strong> som man i tillegg bør vurdere på kort sikt, dekker kommunikasjon<br />

(MTOM, XOP, XMPP, JSON), tjenestekataloger (UDDI), sikkerhet og pålitelighet (WS-<br />

SecureConversation, WS-Trust, WS-ReliableMessaging, XACML, XKMS), sammenstilling <strong>av</strong><br />

tjenester til løsninger (WS-Transaction, WS-BPEL), brukergrensesnitt (XForms, Ecmascript,<br />

DOM) og dataprosessering (XSLT, XPath, XQuery).<br />

1.2 Andre anbefalinger<br />

Referansekatalogen <strong>for</strong> <strong>standarder</strong> [32] skal først og fremst sørge <strong>for</strong> interoperabilitet mellom<br />

IKT-løsninger i offentlig sektor, <strong>for</strong> allmenn tilgjengelighet til elektroniske tjenester, og sikre<br />

åpen konkurranse mellom leverandører <strong>av</strong> IKT.<br />

Referansekatalogen inneholder i dag <strong>for</strong> det meste ”skal”-kr<strong>av</strong> knyttet til bruk <strong>av</strong> <strong>standarder</strong>,<br />

og bare unntaksvis anbefalinger i <strong>for</strong>m <strong>av</strong> ”bør”-kr<strong>av</strong>. For <strong>tjenesteorientert</strong> <strong>arkitektur</strong> kan det<br />

være hensiktsmessig med flere anbefalinger, gjerne knyttet til en regel om ”bruk eller <strong>for</strong>klar<br />

hvor<strong>for</strong> ikke” [19]. En grunn til dette er at det finnes flere ulike <strong>standarder</strong> og versjoner <strong>av</strong><br />

<strong>standarder</strong> som dekker overlappende funksjonalitet, og som godt kan eksistere side om side.<br />

Obligatoriske <strong>standarder</strong> bør være stabile over tid, presise og entydige. Tjenesteorientert<br />

<strong>arkitektur</strong> er <strong>for</strong>tsatt i utvikling, og flere <strong>av</strong> de grunnleggende standardene har såpass mye<br />

frihet innbakt i seg at ulike verktøy implementerer dem <strong>for</strong>skjellig. For å kunne garantere<br />

interoperabilitet bør man der<strong>for</strong> presisere hvordan standardene skal brukes, slik flere profiler<br />

gjør [187, 58, 70, 209].<br />

20.01.2010 Versjon 1.1 6/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Det er noen særtrekk ved <strong>tjenesteorientert</strong> <strong>arkitektur</strong> som kan påvirke vurderingen <strong>av</strong><br />

kostnader og nytteverdi knyttet til standardisering:<br />

Løsninger <strong>for</strong> å bygge bro mellom ulike rammeverk er allment tilgjengelig, og de fleste<br />

leverandører tilbyr en rekke standard grensesnitt ved siden <strong>av</strong> proprietære løsninger. I<br />

stedet <strong>for</strong> å kreve en løsning <strong>for</strong> alle integrasjons<strong>for</strong>mer, bør man trolig skille mellom<br />

virksomhetsintern og –ekstern interoperabilitet.<br />

Lagdelte <strong>arkitektur</strong>er gir åpenhet og fleksibilitet, men kan skape problemer i <strong>for</strong>hold til<br />

ytelse og skalerbarhet. Ulike <strong>arkitektur</strong>er trengs dermed <strong>for</strong> ulike anvendelser.<br />

Flere <strong>standarder</strong> finnes i ulike versjoner, som støttes i varierende grad <strong>av</strong> ulike<br />

leverandører. Her kan det være en konkurransemessig <strong>for</strong>del med valgfrihet i <strong>for</strong>hold til<br />

hvilke versjoner som skal benyttes. Dette gjelder f.eks. WSDL og SOAP.<br />

De fleste <strong>standarder</strong> <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> har teknisk integrasjon som fokus,<br />

og tar i liten grad høyde <strong>for</strong> brukerinteraksjon og menneskelig skjønn. Dette kan<br />

komme i konflikt med <strong>arkitektur</strong>prinsippet om tjenesteorientering [19], og illustrerer<br />

viktigheten <strong>av</strong> å se på andre <strong>standarder</strong> <strong>for</strong> brukernære tjenester, grensesnitt og<br />

saksbehandlingsprosesser enn <strong>for</strong> l<strong>av</strong>nivå integrasjon mellom tekniske komponenter.<br />

Ved siden <strong>av</strong> teknisk interoperabilitet er det mange ut<strong>for</strong>dringer knyttet til organisatorisk og<br />

semantisk interoperabilitet. De bør <strong>for</strong>følges, men har vært uten<strong>for</strong> fokus <strong>for</strong> denne<br />

utredningen:<br />

Felles rammeverk <strong>for</strong> <strong>for</strong>valtning, drift og vedlikehold <strong>av</strong> tjenester, inkludert ”tjenester i<br />

skyen”.<br />

Rammeverk og mønstre <strong>for</strong> virksomhets<strong>arkitektur</strong> beskriver i hvilken organisatorisk<br />

sammenheng ulike <strong>standarder</strong> og felleskomponenter skal eller bør brukes. Ved siden <strong>av</strong><br />

generelle rammeverk, vil ulike sektorer ha behov <strong>for</strong> mer spesifikke<br />

referanse<strong>arkitektur</strong>er knyttet til sitt virksomhetsområde. En metodikk <strong>for</strong> å knytte<br />

sammen referanse<strong>arkitektur</strong>er på ulike nivå med virksomhetens egne<br />

<strong>arkitektur</strong>beskrivelser vil være svært nyttig <strong>for</strong> å <strong>for</strong>bedre utnyttelsen <strong>av</strong><br />

felleskomponenter.<br />

Referanseimplementasjoner med åpen kildekode kan legge til rette <strong>for</strong> gjenbruk, og<br />

dessuten brukes til å spesifisere mer presist hvordan standardene bør brukes. En<br />

operativ referanseimplementasjon gjør det langt enklere å teste interoperabilitet enn<br />

statiske spesifikasjoner.<br />

Felles begrepsapparat på tvers <strong>av</strong> applikasjoner, faggrupper, virksomheter innen en<br />

sektor og ulike sektorer. Dette er en ut<strong>for</strong>dring som har sin rot på virksomhetsnivået,<br />

som først og fremst bør løses der, heller enn gjennom komplekse tekniske<br />

spesialløsninger.<br />

Slike tilnærminger vil øke mulighetene <strong>for</strong> å nå de operative målsetningene ved<br />

<strong>tjenesteorientert</strong> <strong>arkitektur</strong>, som gjenbruk, flerbruk, interoperabilitet, fleksibilitet,<br />

tilgjengelighet og sikkerhet. Altinn II vil være en sentral leverandør <strong>av</strong> felleskomponenter og<br />

tjenester. Det er der<strong>for</strong> særdeles viktig at denne platt<strong>for</strong>men ut<strong>for</strong>mes i tråd med prinsipper<br />

<strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> [19]. Ved siden <strong>av</strong> tekniske kr<strong>av</strong> vil etablering <strong>av</strong> åpne arenaer<br />

<strong>for</strong> kunnskapsutveksling mellom ressurspersoner være et nyttig tiltak, jf. digitaliser.dk.<br />

Beskrivelser <strong>av</strong> hvordan <strong>standarder</strong> kan implementeres i ulike verktøy, og barrierer mot<br />

interoperabilitet som verktøyene introduserer, vil også være en nyttig ressurs [61].<br />

20.01.2010 Versjon 1.1 7/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

2 Innledning<br />

Denne rapporten er en kartlegging <strong>av</strong> metoder og <strong>standarder</strong> <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i<br />

offentlig sektor. Hovedmålet er å peke på <strong>standarder</strong> som på sikt kan gjøres til<br />

<strong>for</strong>valtnings<strong>standarder</strong> [32]. Rapporten:<br />

Beskriver scenarioer hvor <strong>tjenesteorientert</strong> <strong>arkitektur</strong> kan være nyttig i offentlig sektor,<br />

Identifiserer metoder og <strong>standarder</strong> og beskriver dem kort,<br />

Foreslår metoder og <strong>standarder</strong> som best adresserer behovene i de ulike scenarioene,<br />

Anbefaler <strong>standarder</strong> som kan inngå i fremtidige referansekataloger.<br />

Rammene har ikke tillatt en detaljert teknisk og markedsmessig analyse <strong>av</strong> de ulike<br />

standardene. Dette overlates til den videre bearbeidingen i <strong>Difi</strong> og standardiseringsrådet.<br />

2.1 Bakgrunn<br />

I stortingsmeldingen ”Ei <strong>for</strong>valtning <strong>for</strong> demokrati og fellesskap” [31] presenteres sju<br />

<strong>arkitektur</strong>prinsipper <strong>for</strong> offentlig sektor:<br />

Tjenesteorientering<br />

Interoperabilitet<br />

Tilgjengelighet<br />

Sikkerhet<br />

Åpenhet<br />

Fleksibilitet<br />

Skalerbarhet<br />

Før dette gjorde FAOS-rapporten [37] tjenesteorientering til et grunnprinsipp <strong>for</strong> all IKTutvikling,<br />

og inkluderte et prinsipp om enhetlig brukerfront i tillegg til de seks andre i lista<br />

over. Tjenesteorientering er en tilnærming <strong>for</strong> å realisere de andre prinsippene:<br />

Formålet med tjenesteorientering som <strong>arkitektur</strong>prinsipp i offentlig sektor er å sikre at<br />

brukerne <strong>av</strong> offentlige tjenester får tilgang til tjenester og in<strong>for</strong>masjon der de trenger<br />

det, u<strong>av</strong>hengig <strong>av</strong> offentlig sektors oppbygging eller portalstruktur.<br />

I denne sammenhengen betyr tjenesteorientering at IKT-løsninger som etableres skal<br />

være basert på en komponenttenking der det tilbys og benyttes in<strong>for</strong>masjon,<br />

in<strong>for</strong>masjonsbearbeiding eller andre IKT-tjenester gjennom et overordnet og utadrettet<br />

tjenestetilbud. [19]<br />

En <strong>tjenesteorientert</strong> IKT-<strong>arkitektur</strong> vil også påvirke organisatoriske sider ved hvordan<br />

<strong>for</strong>valtningen produserer og leverer tjenester til innbyggere og næringsliv, hvordan ulike etater<br />

samhandler, og hvordan <strong>for</strong>valtningen kjøper tjenester fra leverandører. De gevinster man<br />

søker å realisere, krever <strong>tjenesteorientert</strong> helhetstenking <strong>for</strong> best mulig ut<strong>for</strong>ming <strong>av</strong><br />

organisasjon og IKT. Tjenesteorientering er dermed et viktig prinsipp <strong>for</strong> hele virksomheten,<br />

ikke bare IKT.<br />

2.2 Målsetninger<br />

Motiver <strong>for</strong> å bygge ut <strong>tjenesteorientert</strong>e <strong>arkitektur</strong>er inkluderer ofte<br />

Sikre at organisasjonen har kontroll på tjenestene den yter<br />

Økt gjenbruk <strong>av</strong> eksisterende applikasjoner<br />

Flerbruk <strong>for</strong> maksimal utnyttelse <strong>av</strong> eksisterende funksjonalitet i ”siloer”<br />

Fleksibilitet ved endringsbehov<br />

Bygge sammensatte applikasjoner <strong>for</strong> å levere ny verdi<br />

Raskere implementering<br />

Legge tilrette <strong>for</strong> skreddersøm<br />

Leveranse <strong>av</strong> IKT-tjenester over ulike kanaler<br />

Standardisering <strong>av</strong> prosesser<br />

Standardisert drift og applikasjons<strong>for</strong>valtning<br />

20.01.2010 Versjon 1.1 8/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Offentlige IKT-prosjekter skal analysere om tjenester man har behov <strong>for</strong> er tilgjengelig i<br />

felleskomponenter eller i andre virksomheters åpne tjenesteportefølje, og om virksomhetens<br />

egne IKT-komponenter bør tilgjengeliggjøres <strong>for</strong> andre offentlige virksomheter som tjenester.<br />

Ved siden <strong>av</strong> gjenbruk <strong>av</strong> funksjonalitet står økt gjenbruk og utveksling <strong>av</strong> in<strong>for</strong>masjon<br />

sentralt. For å realisere disse målsetningene trenger man metoder og <strong>standarder</strong> <strong>for</strong><br />

beskrivelse <strong>av</strong> tjenester på teknisk nivå, men også på virksomhetsnivået, også kalt<br />

organisasjonsnivået.<br />

2.3 Avgrensning<br />

Denne utredningen fokuserer på teknologier <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. Metoder på<br />

virksomhetsnivået vil ikke bli analysert i detalj. Organisatoriske sider ved tjenesteleveranser<br />

og kontrakter, <strong>for</strong>retningsmodeller, definisjon <strong>av</strong> tjenestekvalitet (service level agreements) og<br />

kvalitetssikring <strong>av</strong> driftsorganisasjonen omhandles ikke.<br />

Hovedmålet er å identifisere relevante metoder og <strong>standarder</strong>. En overordnet beskrivelse <strong>av</strong><br />

anvendelsesområder og grunnprinsipper <strong>for</strong> hver teknologi inngår, mens detaljerte tekniske<br />

analyser overlates til det seinere arbeidet.<br />

Semantiske teknologier er gjenstand <strong>for</strong> en annen kartlegging, og vil ikke bli beskrevet her, ei<br />

heller innholds<strong>standarder</strong> innen domener som innkjøp, transport, <strong>for</strong>svar, helse, bygg og<br />

anlegg o.s.v.<br />

Spesifikke teknologier fra leverandører blir heller ikke vurdert, utover en overordnet<br />

beskrivelse <strong>av</strong> de ulike standardenes utbredelse.<br />

2.4 Viktige begreper<br />

Overordnet defineres tjeneste som ”utførelse <strong>av</strong> arbeid <strong>av</strong> en <strong>for</strong> en annen” [90], altså en<br />

aktivitet som en tjenesteleverandør utfører <strong>for</strong> en bruker eller kunde. Begrepet brukes både<br />

om virksomheter, hvor mennesker utfører tjenester, og IKT, hvor komponenter utfører<br />

tjenester <strong>for</strong> hverandre og brukerne. En tjeneste leveres i henhold til en kontrakt, og den er<br />

beskrevet i et grensesnitt slik at brukeren ikke trenger å bry seg om hvordan den er<br />

implementert. Dette gir en løs kobling mellom bruker og leverandør.<br />

Arkitektur er ”en struktur <strong>av</strong> komponenter og <strong>av</strong>hengigheter mellom dem, og prinsippene og<br />

retningslinjene som styrer deres ut<strong>for</strong>ming og utvikling over tid” [132]. Tjenesteorientering er<br />

et <strong>arkitektur</strong>prinsipp som kan anvendes på IKT-<strong>arkitektur</strong>en, og på hele virksomhets<strong>arkitektur</strong>en.<br />

For ytterligere klargjøring <strong>av</strong> begrepene som brukes i rapporten, vises det til notatet ”Oversikt<br />

over begrepsbruk innen <strong>tjenesteorientert</strong> <strong>arkitektur</strong>” [14].<br />

2.5 Rapportens struktur<br />

Kapittel 3 beskriver typiske scenarioer i offentlig sektor hvor <strong>tjenesteorientert</strong> <strong>arkitektur</strong> bør<br />

anvendes. Ved siden <strong>av</strong> å være representative <strong>for</strong> offentlig sektor på virksomhetsnivået,<br />

dekker scenarioene hovedkomponenter i en teknisk løsning. Beskrivelsene er basert på<br />

tidligere kartlegginger innen offentlig <strong>for</strong>valtning. For hvert scenario analyseres det kort hvilke<br />

metoder som er best egnet <strong>for</strong> å lage en teknisk løsning, og hvilke <strong>standarder</strong> som er mest<br />

aktuelle.<br />

Kapittel 4 kartlegger relevante <strong>standarder</strong> innen<strong>for</strong> ulike områder <strong>av</strong> <strong>tjenesteorientert</strong><br />

<strong>arkitektur</strong>. Hovedvekten legges på tekniske <strong>standarder</strong> <strong>for</strong> tjenestelag, dataintegrasjon,<br />

prosesser, interaksjon, kommunikasjon, sikkerhet og andre tjenestekvaliteter. Vi beskriver<br />

dessuten metoder <strong>for</strong> modelldrevet utvikling <strong>av</strong> <strong>tjenesteorientert</strong>e <strong>arkitektur</strong>er, samt<br />

rammeverk <strong>for</strong> virksomhets<strong>arkitektur</strong>.<br />

Til slutt presenteres punktvise hovedkonklusjoner. De viktigste anbefalingene er oppsummert i<br />

sammendraget over.<br />

20.01.2010 Versjon 1.1 9/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

3 Anvendelse <strong>av</strong> metoder og <strong>standarder</strong> i ulike scenarioer<br />

Dette kapittelet beskriver generelle scenarioer <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. Vi kan skille<br />

samhandling mellom offentlige enheter (1 i figuren under) fra offentlig tjenesteyting til<br />

innbyggerne (2) og næringslivet (3), og fra det offentliges innkjøp <strong>av</strong> tjenester fra<br />

næringslivet (4).<br />

Innbyggere<br />

Næringsliv<br />

2<br />

3<br />

Figur 1. Bruksområder <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong><br />

Vi fokuserer her på fire sentrale scenarioer <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor:<br />

1. In<strong>for</strong>masjonsutveksling mellom enheter i offentlig sektor<br />

2. Tilgjengeliggjøring <strong>av</strong> registerdata<br />

3. Saksbehandling<br />

4. Innrapportering<br />

Offentlig sektor<br />

Enhet 1<br />

Scenarioene henger sammen som illustrert i figuren under:<br />

Saksbehandling<br />

1<br />

Enhet 2<br />

Offentlig sektor<br />

Innrapportering<br />

Enhet n<br />

In<strong>for</strong>masjonsutveksling<br />

Tilgjengeliggjøring<br />

<strong>av</strong> registerdata<br />

Register<br />

Figur 2. Scenarioer <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong><br />

Næringsliv<br />

Hvert scenario blir beskrevet på overordnet nivå. Deretter ser vi på hvilke varianter <strong>av</strong> disse<br />

scenarioene vi kan finne, og på konkrete tjenester som eksemplifiserer hvert scenario.<br />

Eksemplene hentes fra felles nasjonalt, statlig, regionalt, fylkes- og kommunalt nivå, i ulike<br />

sektorer. Til slutt diskuterer vi kort hvilke metoder og <strong>standarder</strong> som er best egnet som<br />

tekniske løsninger <strong>for</strong> scenarioet. For en utfyllende beskrivelse <strong>av</strong> de ulike standardene,<br />

henvises det til kapittel 4.<br />

20.01.2010 Versjon 1.1 10/89<br />

4


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

3.1 Scenario: In<strong>for</strong>masjonsutveksling mellom enheter i offentlig sektor<br />

Offentlige enheter utveksler in<strong>for</strong>masjon med hverandre i mange sammenhenger. De tre neste<br />

scenarioene vil kunne kreve oversendelse <strong>av</strong> registerin<strong>for</strong>masjon til brukere i offentlig sektor,<br />

utveksling <strong>av</strong> in<strong>for</strong>masjon om en sak, og spredning eller videre<strong>for</strong>midling <strong>av</strong> innrapporterte<br />

data. I en <strong>tjenesteorientert</strong> virksomhets<strong>arkitektur</strong> bør vi dessuten se på hvordan offentlige<br />

virksomheter tilbyr tjenester til hverandre, og innrapporterer data om sin virksomhet til ulike<br />

kontrollinstanser. Typiske eksempler på in<strong>for</strong>masjonsutveksling inkluderer:<br />

Utveksling <strong>av</strong> elektronisk journal mellom sykehus, helse<strong>for</strong>etak, leger m.m.<br />

Meldinger som følger KITHs rammeverk i ebXML <strong>for</strong> elektronisk meldingsutveksling i<br />

helsevesenet [68], f.eks. henvisninger og rekvisisjoner med svar, legeerklæring til N<strong>av</strong>,<br />

Justissektorens samhandlings<strong>arkitektur</strong> <strong>for</strong> straffesakskjeden,<br />

Utveksling <strong>av</strong> saksmappen i en byggesak mellom ulike enheter i en kommune,<br />

Overføring <strong>av</strong> grunnlagsmaterialet <strong>for</strong> en søknad om utbygging <strong>av</strong> et olje- eller gassfelt<br />

i Nordsjøen, som kan inneholde svært store datamengder,<br />

Overføring <strong>av</strong> oppdatert folkeregister til enheter som jobber mot en egen kopi <strong>av</strong> dette,<br />

Overføring <strong>av</strong> 3-dimensjonale bygningsmodeller med tilknyttede egenskaper (BIM)<br />

mellom Statsbygg og virksomhetene som skal bruke eller vedlikeholde bygget,<br />

Overføring <strong>av</strong> kartdata fra Norges kartverk,<br />

Overføring <strong>av</strong> meteorologiske data,<br />

Bestillinger, fakturaer, leveransedokumentasjon og logistikkstyring i <strong>for</strong>bindelse med<br />

innkjøp <strong>av</strong> varer og tjenester,<br />

Budsjetter og regnskapsrapportering.<br />

Ulike behov <strong>for</strong> in<strong>for</strong>masjonsutveksling vil gi ulike kr<strong>av</strong> til de tekniske løsningene:<br />

Mengden <strong>av</strong> data som skal overføres vil variere, og<br />

Frekvensen, hvor ofte meldingene overføres, med særlig vekt på topper i belastningen,<br />

<strong>for</strong> eksempel i <strong>for</strong>bindelse med tidsfrister.<br />

Formen på dataene vil også variere, fra strukturerte databaser og meldinger, via<br />

tekstdokumenter, filer i applikasjonsspesifikke <strong>for</strong>mater, og ulike medier som bilder,<br />

lyd, video m.m.<br />

Avsenderens teknologi <strong>for</strong> å lagre, finne fram og tilgjengeliggjøre in<strong>for</strong>masjonen legger<br />

føringer på hvilke metoder som er aktuelle.<br />

Mottakerens bruk <strong>av</strong> in<strong>for</strong>masjonen vil også påvirke løsningen, om den skal vises<br />

direkte til en bruker, eller prosesseres videre <strong>av</strong> et applikasjonssystem, kobles sammen<br />

med data som mottakeren allerede har o.s.v. I det siste tilfellet blir semantisk<br />

interoperabilitet mellom senders og mottakers systemer kritisk. Spesifikk semantikk er<br />

en viktig årsak til etableringen <strong>av</strong> sektor<strong>standarder</strong>, f.eks. innen helse, transport,<br />

bygg/anlegg, og utdanning.<br />

Ulike sikkerhetsnivåer, om dette er allment tilgjengelig in<strong>for</strong>masjon etter<br />

offentlighetsloven, sensitive opplysninger om personer, viktig <strong>for</strong> nasjonal sikkerhet<br />

o.s.v. Personvern og begrensning <strong>av</strong> innsynsrett må også ivaretas. Dette styrer kr<strong>av</strong> til<br />

autentisering, og til metodene som brukes til å overføre data, kryptering og lignende.<br />

Sikkerhetskr<strong>av</strong> kan også resultere i mer komplekse prosesser <strong>for</strong> in<strong>for</strong>masjonsutveksling,<br />

hvis <strong>for</strong> eksempel godkjenning eller samtykke må innhentes før<br />

in<strong>for</strong>masjonen deles.<br />

Ulike mønstre <strong>for</strong> meldingsutveksling, initiert <strong>av</strong> sender eller mottager, eller kanskje<br />

styrt <strong>av</strong> eksterne hendelser (jf. <strong>av</strong>snitt 4.4.1). Inngår meldingen i en<br />

interaksjonsprotokoll med <strong>for</strong>skjellige meldingstyper?<br />

20.01.2010 Versjon 1.1 11/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Varierende vilje til å betale dyrt <strong>for</strong> maksimal pålitelighet, responstid, tilgjengelighet,<br />

og feilhåndtering.<br />

Hvilke tekniske angrepsmåter som er egnet, <strong>av</strong>henger i stor grad <strong>av</strong> datamengder, <strong>for</strong>mater<br />

og sikkerhet, samt tilgjengelig infrastruktur og mellomvare. Alle scenarioene vil dessuten bli<br />

påvirket <strong>av</strong> hvilke felleskomponenter og fellestjenester som blir utviklet. For dette scenarioet<br />

er en felles komponent eller standardprofil <strong>for</strong> meldingsutveksling sentral.<br />

3.1.1 Tekniske løsninger<br />

Valg <strong>av</strong> tekniske løsninger <strong>for</strong> in<strong>for</strong>masjonsutveksling i offentlig sektor dreier seg om valg <strong>av</strong><br />

<strong>standarder</strong> og rammeverk, og deretter hvordan løsninger bør implementeres innen<strong>for</strong> det<br />

frihetsrom som de aktuelle <strong>standarder</strong> tillater. Her er særlig sikkerhet, kommunikasjonsmønstre,<br />

datamengder og data<strong>for</strong>mater viktig. Beslutningene bør knyttes opp til <strong>arkitektur</strong>prinsippene<br />

(se side 8).<br />

3.1.1.1 Overordnet <strong>arkitektur</strong> og tilnærming<br />

I begrepet ”in<strong>for</strong>masjonsutveksling” kan det ligge innbakt en antagelse om en meldingsbasert<br />

integrasjon på tvers <strong>av</strong> virksomheter. Denne tilnærmingen følger papirbasert<br />

<strong>for</strong>valtningspraksis og jus, hvor oversendelse <strong>av</strong> in<strong>for</strong>masjon i <strong>for</strong>m <strong>av</strong> søknader, dokumenter<br />

og saksmapper kan betraktes som juridiske handlinger. Det betyr ikke at dette er den eneste<br />

eller beste løsningen <strong>for</strong> fremtidens tjeneste<strong>arkitektur</strong>er.<br />

En helt annen tilnærming er å basere seg på dataintegrasjon, med et utgangspunkt om at alle<br />

data kun bør lagres ett sted. Dette er f.eks. valgt som grunnprinsipp <strong>for</strong> domstolsverket i<br />

Sverige [43]. Dette gir fellestrekk med løsninger <strong>for</strong> tilgjengeliggjøring <strong>av</strong> registerdata (<strong>av</strong>snitt<br />

3.2), selv om in<strong>for</strong>masjonen som utveksles ofte vil være mindre strukturert og mer dynamisk<br />

enn den man finner i etablerte registre.<br />

3.1.2 Standarder <strong>for</strong> meldingsutveksling<br />

De mest aktuelle standardene <strong>for</strong> meldingsutveksling er EDI, ebXML og webtjenester (se<br />

<strong>av</strong>snitt 4.2 og 4.3). EDI er en eldre teknologi som det først og fremst vil være aktuelt å<br />

<strong>for</strong>tsette å bruke der hvor man allerede har en etablert løsning. For nyutvikling bør man heller<br />

bruke mer åpne løsninger basert på SOAP og XML. Da står valget mellom ebXML Messaging<br />

Service og WS-<strong>standarder</strong>. Innholds<strong>standarder</strong> <strong>for</strong> ebXML Core Components kan også brukes<br />

til å definere skjemaer <strong>for</strong> webtjenester, så valget dreier seg her kun om<br />

kommunikasjonsløsningen.<br />

For helsesektoren definerer referansekatalogen ebXML [78] som obligatorisk <strong>for</strong> sikker<br />

meldingsutveksling [77]. Samtidig har KITH også definert en profil webtjenester i<br />

helsesektoren [70], basert på WS-<strong>standarder</strong>. Begge disse løsningene gjør sikker<br />

kommunikasjon med PKI mulig, og WS-løsningen er anbefalt <strong>for</strong> intern kommunikasjon, mens<br />

ebXML skal brukes mellom <strong>for</strong>etak. Innkjøp og logistikk er annet område hvor ebXML er<br />

utbredt, gjennom f.eks. ehandel.no.<br />

De tekniske grunnene til å velge ebXML fram<strong>for</strong> WS var viktige inntil sikkerhets<strong>standarder</strong> <strong>for</strong><br />

webtjenester kom på plass. Verktøystøtten <strong>for</strong> ebXML er betydelig, men den kommer ikke opp<br />

mot WS, som er allestedsnærværende. WS-<strong>standarder</strong> bør der<strong>for</strong> anbefales <strong>for</strong> områder hvor<br />

det ikke finnes spesialiserte ebXML-løsninger.<br />

En annen mulighet er å bruke proprietære komponent<strong>arkitektur</strong>er. Dette er mest aktuelt<br />

internt i en virksomhet. Ytelse, skalerbarhet og enkel implementasjon kan være gode grunner<br />

<strong>for</strong> å velge en slik løsning. Samtidig skaper det barrierer mot gjenbruk og flerbruk, så slike<br />

valg bør begrunnes. Heldigvis tilbyr de fleste proprietære <strong>arkitektur</strong>er egne eller tredjeparts<br />

mekanismer <strong>for</strong> å gjøre komponentløsninger tilgjengelig også som webtjenester, så en<br />

kombinasjon er mulig.<br />

KITH legg i sin profil <strong>for</strong> webtjenester i helsesektoren [70] til grunn at ”profilen skal basere seg<br />

på etablerte web services-<strong>standarder</strong> i endelige utg<strong>av</strong>er. Standardene skal ha bred<br />

verktøystøtte, og være leverandørnøytrale.” De valgte <strong>standarder</strong> følger WS-I sin basis profil<br />

og basis sikkerhetsprofil [209, 211]. Følgende <strong>standarder</strong> inkluderes:<br />

20.01.2010 Versjon 1.1 12/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

WSDL 1.1 <strong>for</strong> tjenestebeskrivelser (<strong>av</strong>snitt 4.2.1)<br />

WS-Adressing <strong>for</strong> transportnøytral adressering <strong>av</strong> tjenester (<strong>av</strong>snitt 4.4.4)<br />

WS-Policy 1.5 <strong>for</strong> beskrivelse <strong>av</strong> tjenesters oppførsel og bruksvilkår, og parametere <strong>for</strong><br />

konfigurering (<strong>av</strong>snitt 4.3.2.4)<br />

WS-Security 1.0 <strong>for</strong> signering/kryptering og autentisering (<strong>av</strong>snitt 4.8.4)<br />

o Kr<strong>av</strong>spesifikasjon <strong>for</strong> PKI i offentlig sektor og sertifikater fra eID <strong>for</strong> personer og<br />

virksomheter<br />

o SAML – hvis tjeneste <strong>for</strong> engangs innlogging brukes<br />

o X.509 sertifikater og brukersertifikater<br />

o WS-SecurityPolicy <strong>for</strong> sikkerhetsregler og -parametere<br />

o XML Encryption og XML Signature<br />

http, eller https hvis det er påkrevd.<br />

Dessuten vurderes UDDI og ebXML Registry som teknologier <strong>for</strong> en fremtidig katalogtjeneste,<br />

og sikkerhetsløsninger på ulike nivåer beskrives. En utviklingsmetodikk basert på kontraktførst,<br />

heller enn kode-først, anbefales.<br />

Denne løsningen er i tråd med internasjonale anbefalinger, og et godt utgangspunkt <strong>for</strong> en<br />

nasjonal profil. Valget <strong>av</strong> WSDL 1.1 kan diskuteres. Sammenlignet med WSDL 2.0 og ebMS er<br />

dette den minst etablerte standarden, <strong>for</strong>melt sett, siden den bare er et notat fra W3C. ebXML<br />

har sterkest standard<strong>for</strong>ankring gjennom OASIS, FN og ISO, men har samtidig minst<br />

verktøystøtte. WSDL 2.0 kunne vært et kompromiss, som anbefalt standard fra W3C støttet <strong>av</strong><br />

de fleste verktøy. Uten støtte fra f.eks. Microsoft vil det likevel legge <strong>for</strong> sterke føringer å gjøre<br />

dette til en obligatorisk standard. Mange <strong>for</strong>slag unngår der<strong>for</strong> å spesifisere hvilken versjon <strong>av</strong><br />

WSDL som skal brukes, mens andre anbefaler at tjenester så langt det er mulig beskrives<br />

både med WSDL 1.1 og WSDL 2.0. Altinn II legger f.eks. opp til parallell publisering <strong>av</strong><br />

underliggende tjenester mot flere integrasjonsløsninger og <strong>standarder</strong>.<br />

Et annet spørsmål er hvilken versjon <strong>av</strong> SOAP som bør <strong>for</strong>etrekkes. Dette sier ikke KITH noe<br />

om, mens WS-I velger 1.1 <strong>for</strong> versjon 1.X <strong>av</strong> sine profiler, og 1.2 <strong>for</strong> versjon 2.0 <strong>av</strong> profilene<br />

(jf. <strong>av</strong>snitt 4.2.1). En presis retningslinje <strong>for</strong> offentlig sektor på dette området bør dessuten<br />

beskrive hvilke bindinger <strong>for</strong> SOAP som anbefales, i tråd med f.eks. WS-I. I likhet med <strong>for</strong><br />

WSDL, vil den beste løsningen være å gjøre tjenestene tilgjengelig over både SOAP 1.1 og 1.2.<br />

3.1.3 Standarder <strong>for</strong> sikkerhet<br />

Løsningsut<strong>for</strong>mingen <strong>for</strong> sikkerhet kan basere seg på autentiseringstjenester fra ID-porten<br />

(<strong>av</strong>snitt 4.8.1), i tråd med eID [34]. Hvorvidt dette i fremtiden også skal brukes som sentral<br />

autentiseringstjeneste <strong>for</strong> ansatte i offentlig sektor, er ikke <strong>av</strong>gjort. Der hvor lokale<br />

identitetsleverandører blir implementert, bør dette likevel gjøres med standard sertifikater i<br />

tråd med ID-porten, slik at tjenester kan implementeres med et så enkelt grensesnitt til<br />

autentisering som mulig. Spesifikasjonene før føderert identitet i WS-Security bør der<strong>for</strong><br />

følges. Det bør dessuten <strong>av</strong>gjøres om løsningene <strong>for</strong> engangs innlogging skal baseres på SAML<br />

og/eller WS-Federation (se <strong>av</strong>snitt 4.8.4.4). SAML virker <strong>for</strong>eløpig som et tryggere valg, men<br />

utbredelsen <strong>av</strong> WS-Federation bør følges. Altinn II har valgt SAML. For autorisering bør<br />

dessuten XACML vurderes. Denne brukes <strong>av</strong> OpenSSO, som ID-porten er basert på.<br />

Sikkerhetsløsningen må tilpasses kr<strong>av</strong>ene som stilles <strong>for</strong> den in<strong>for</strong>masjonen som skal<br />

utveksles. WS-Security trenger ikke å inngå i implementasjonen dersom in<strong>for</strong>masjonen er<br />

åpent tilgjengelig.<br />

3.1.4 Løsninger <strong>for</strong> kommunikasjon<br />

Ved siden <strong>av</strong> standard <strong>for</strong> meldingsutveksling må en løsning også velge hvilke<br />

interaksjonsmønstre som skal støttes, f.eks. <strong>av</strong>hengig <strong>av</strong> om det er <strong>av</strong>sender eller mottaker <strong>av</strong><br />

in<strong>for</strong>masjonen som initierer utvekslingen (push eller pull). Dette har sammenheng med de<br />

ulike meldingsmønstre som WSDL støtter (se <strong>av</strong>snitt 4.2.1.1), men også den grunnleggende<br />

20.01.2010 Versjon 1.1 13/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

<strong>arkitektur</strong>en. Her tilbyr WSDL 2.0 noen flere muligheter enn versjon 1.1, <strong>for</strong> pålitelig<br />

overføring og valgfritt svar.<br />

For å sikre en løs kobling mellom kommunikasjonsgrensesnittet og resten <strong>av</strong><br />

implementasjonen, vil det være en <strong>for</strong>del med størst mulig gjenbruk <strong>av</strong> meldinger mellom de<br />

ulike interaksjonsmønstrene som man støtter, og at komponenten som implementerer selve<br />

tjenesten overlater all håndtering <strong>av</strong> protokoller til kommunikasjonsgrensesnittet. Ideelt sett<br />

burde tjenestekomponenten være tilstandsløs, slik at alle hensyn til hvilket steg vi har kommet<br />

til i samhandlingsprosessen håndteres uten<strong>for</strong> tjenesteimplementasjonen. REST (<strong>av</strong>snitt 4.2.6)<br />

er en <strong>arkitektur</strong>stil som sørger <strong>for</strong> dette. Den er særlig egnet <strong>for</strong> enkle tjenester, som tilgang<br />

til registerdata. Ved siden <strong>av</strong> de vanligste REST-tjenestene <strong>for</strong> opprettelse, lesing, endring og<br />

sletting <strong>av</strong> in<strong>for</strong>masjonselementer, vil man ofte trenge tjenester <strong>for</strong> validering <strong>av</strong><br />

in<strong>for</strong>masjonsstrukturen, og <strong>for</strong> søking og n<strong>av</strong>igering.<br />

I noen situasjoner vil in<strong>for</strong>masjonsutvekslingen på IKT-nivået følge kommunikasjonen på<br />

virksomhetsnivået, men i andre tilfeller vil de <strong>av</strong>vike fra hverandre. To virksomheter kan bruke<br />

samme datasystem, men likevel trenge å utveksle in<strong>for</strong>masjon. I andre sammenhenger kan<br />

in<strong>for</strong>masjonsutveksling mellom to ulike system i samme virksomhet være ut<strong>for</strong>dringen, til og<br />

med to system som anvendes <strong>av</strong> samme bruker. Meldingsutveksling kan også <strong>for</strong>egå på<br />

virksomhetsnivå, gjennom at en saksbehandler in<strong>for</strong>merer en annen om at de sender over en<br />

sak, ved siden <strong>av</strong> den rent tekniske overføringen <strong>av</strong> saksin<strong>for</strong>masjonen mellom systemene<br />

som de to saksbehandlerne bruker. Kanskje initieres kommunikasjonen på virksomhetsnivå <strong>av</strong><br />

<strong>av</strong>sender, mens det på teknisk nivå er mottakers datasystem som etterspør<br />

saksin<strong>for</strong>masjonen fra <strong>av</strong>senderens.<br />

EDI og ebXML baserer seg på direkte samsvar mellom virksomhetsnivået og IKT-nivået i<br />

kommunikasjonen. En bestillingsmelding er f.eks. både en melding fra <strong>av</strong>sender til mottaker,<br />

og fra <strong>av</strong>senders datasystem til mottakers. Lagdelte <strong>arkitektur</strong>er innfører derimot ofte et skille<br />

mellom virksomheten og den tekniske implementasjonen, f.eks. slik at den tekniske løsningen<br />

kan implementeres mest mulig u<strong>av</strong>hengig <strong>av</strong> de organisatoriske samhandlingsmønstrene.<br />

Prosess- og regelmotorer kan brukes til å støtte ulike samhandlingsmønstre med samme<br />

teknologi. For mer kompleks interaksjon virker dermed webtjenester som mer velegnet enn<br />

løsninger som følger en EDI-tilnærming.<br />

Det kan også være hensiktsmessig å skille horisontale kommunikasjonsomgivelser, hvor<br />

partene kan sende de samme meldinger til hverandre, fra vertikale, hvor den ene parten<br />

etterspør, mens den andre parten leverer in<strong>for</strong>masjon. Horisontal kommunikasjon mellom<br />

virksomheter kan godt implementeres ved hjelp <strong>av</strong> vertikal teknisk kommunikasjon, f.eks. til<br />

et felles register. Horisontal teknisk kommunikasjon basert på meldingsutveksling kan godt<br />

brukes til å støtte vertikal virksomhetsinteraksjon mellom brukeren og leverandøren <strong>av</strong> en<br />

tjeneste. Dette vil vi se nærmere på under diskusjon <strong>av</strong> saksbehandlingsløsninger i <strong>av</strong>snitt<br />

3.3.2 neden<strong>for</strong>.<br />

Hendelsesdrevne <strong>arkitektur</strong>er, hvor mottakere kan abonnere på meldinger fra <strong>av</strong>sender, gir en<br />

løsere kobling ved at <strong>av</strong>sender og mottaker ikke trenger å vite om hverandre. Denne<br />

<strong>arkitektur</strong>stilen kan brukes både på virksomhetsnivå og på teknisk nivå, til å <strong>for</strong>dele oppg<strong>av</strong>er<br />

og holde alle oppdatert. Stilen går bra sammen med REST, særlig i situasjoner hvor flere<br />

aktører kan endre de samme dataene. For dette området virker WS-Notification som den<br />

sterkeste standarden, selv om alternativet WS-Eventing har støtte fra bl.a. Microsoft (jf.<br />

<strong>av</strong>snitt 4.4.3).<br />

3.1.5 Løsninger <strong>for</strong> store datamengder<br />

Utveksling <strong>av</strong> store datamengder kan kreve spesialløsninger <strong>for</strong> å få til akseptabel ytelse.<br />

Standarden MTOM, som benytter SOAP with attachments til å implementere komprimering og<br />

valgfri kryptering <strong>av</strong> binære data, er egnet <strong>for</strong> data i andre <strong>for</strong>mat enn XML, eller XML-data<br />

som først er gjort om til binær <strong>for</strong>m. Denne løsningen anbefales <strong>av</strong> WS-I, og er en klar<br />

kandidat <strong>for</strong> offentlige retningslinjer. I framtida vil trolig implementeringer <strong>av</strong> EXI kunne tilby<br />

enda bedre ytelse, særlig raskere koding og dekoding (se <strong>av</strong>snitt 4.5.7).<br />

Proprietære alternativ til disse åpne standardene ble diskutert i <strong>av</strong>snitt 4.5.9. Ofte overføres<br />

dataene i en fil ved hjelp <strong>av</strong> ftp heller enn http. En binding <strong>for</strong> SOAP til ftp har også vært brukt<br />

20.01.2010 Versjon 1.1 14/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

<strong>for</strong> webtjenester, blant annet <strong>for</strong> mobile nettverk hvor nettverkstilkoblingen ikke er stabil, og i<br />

situasjoner hvor mottakersiden, f.eks. et arkivsystem, kun tilbyr mottak over ftp.<br />

3.1.6 Data<strong>for</strong>mater<br />

Ut<strong>for</strong>ming <strong>av</strong> <strong>for</strong>mater <strong>for</strong> meldingsinnhold er en viktig problemstilling <strong>for</strong><br />

in<strong>for</strong>masjonsutveksling. KITH har f.eks. definert en lang rekke <strong>for</strong>mater <strong>for</strong> helsesektoren, og<br />

Altinn definerer tilsvarende <strong>for</strong> de ulike skjemaene som næringslivet skal rapportere i.<br />

Innen<strong>for</strong> et tjenesteområde bør det utvikles en helhetlig konseptuell datamodell, slik at<br />

sammenhengene mellom de ulike meldings<strong>for</strong>matene er klar, og den totale datastrukturen så<br />

enkel som mulig. Dette er et middel <strong>for</strong> å unngå at de samme dataene samles inn flere<br />

ganger, og lagres flere steder. Internasjonale og nasjonale begrepsrammeverk bør følges i<br />

størst mulig grad (se <strong>av</strong>snitt 4.5.5).<br />

Fleksibilitet blir et viktig <strong>arkitektur</strong>prinsipp i denne sammenhengen, ettersom<br />

meldings<strong>for</strong>matene trolig vil måtte oppdateres ved jevne mellomrom. Nye <strong>for</strong>mater blir gjerne<br />

lagt til, mens gamle utvides, omstruktureres, eller blir erklært utdaterte. Et viktig spørsmål blir<br />

da om datastrukturen <strong>for</strong> meldingene skal gjøres til en del <strong>av</strong> tjenestegrensesnittet, eller<br />

<strong>for</strong>valtes u<strong>av</strong>hengig <strong>av</strong> dette. Altinn 1 har valgt å definere tjenestene u<strong>av</strong>hengig <strong>av</strong><br />

datainnholdet. En og samme operasjon brukes dermed til all rapportering, mens<br />

<strong>for</strong>valtningstjenester ved siden <strong>av</strong> gir tilgang til de <strong>for</strong>skjellige skjemaene som kan brukes, i<br />

ulike versjoner. Leverandører som har registrert seg får beskjed når nye <strong>for</strong>mater er<br />

tilgjengelig. For å minske belastningen på leverandørene, blir eksisterende meldings<strong>for</strong>mater<br />

oppdatert bare ved jevne mellomrom, typisk en gang i året. Dette gir en enkel og stabil<br />

tjenestebeskrivelse.<br />

Den alternative løsningen er å eksponere data<strong>for</strong>matene i tjenestegrensesnittet, og definere<br />

en operasjon <strong>for</strong> hver meldingstype. Dermed vil man måtte endre tjenestegrensesnittet hver<br />

gang meldings<strong>for</strong>matene blir oppdatert, men samtidig får leverandører som skal bruke<br />

grensesnittet bedre støtte fra sine utviklingsverktøy til å håndtere datastrukturene. Man<br />

bringer dessuten <strong>for</strong>valtningen <strong>av</strong> meldings<strong>for</strong>mater inn i et standardisert regime, hvor ulike<br />

versjoner <strong>av</strong> tjenester kan håndteres <strong>av</strong> standard mellomvare <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>.<br />

En tjenestekatalog som UDDI eller ebXML Registry kan brukes til å gi oversikt over alle de<br />

<strong>for</strong>skjellige meldings<strong>for</strong>matene, heller enn en egenutviklet løsning.<br />

Når data<strong>for</strong>matene ikke er eksplisitt gjengitt i tjenestegrensesnittet blir det også vanskeligere<br />

<strong>for</strong> mellomvaren å behandle, <strong>for</strong>dele, og logge meldingene. Man blir helt <strong>av</strong>hengig <strong>av</strong><br />

innholdsbasert ruting <strong>for</strong> å skille de ulike meldingstypene fra hverandre. Når meldingstypene<br />

skal behandles på ulike måter, f.eks. sendes til ulike mottakere, behandles <strong>av</strong> ulike prosesser,<br />

eller har <strong>for</strong>skjellige rutiner <strong>for</strong> unntakshåndtering og sikkerhet, krever implisitte data<strong>for</strong>mater<br />

kraftigere mellomvare. Dette er kanskje ikke noe problem <strong>for</strong> en sentral instans som Altinn,<br />

men når man skal lage en <strong>for</strong>midlingstjeneste <strong>for</strong> offentlig sektor i Altinn II, må man ta større<br />

hensyn til mottakere med svært varierende infrastruktur, organisatorisk og teknologisk<br />

modenhet.<br />

I helsevesenet har KITH valgt å gjøre meldings<strong>for</strong>matene eksplisitte, gjennom egne<br />

operasjoner <strong>for</strong> hver meldingstype. Dette valget <strong>av</strong>henger <strong>av</strong> <strong>for</strong>ventet endringsfrekvens og<br />

tilgjengelig verktøystøtte.<br />

For pålitelig meldingsutveksling kan WS-ReliableMessaging (<strong>av</strong>snitt 4.8.7) anbefales. Denne<br />

standarden har vært tilgjengelig i flere år, og den har god verktøystøtte. Behovet <strong>for</strong><br />

håndtering <strong>av</strong> dette på meldingslaget bør imidlertid vurderes opp mot tilgjengeligheten <strong>av</strong><br />

løsninger på transportlaget, i de grunnleggende kommunikasjonsprotokollene.<br />

3.1.7 Tjenestekataloger<br />

Oversikt over tilgjengelige grensesnitt <strong>for</strong> in<strong>for</strong>masjonsutveksling kan organiseres som<br />

tjenestekataloger (jf. <strong>av</strong>snitt 4.3.2). Kanskje kan offentlig sektor utvikle en delingskultur hvor<br />

slike kataloger kan brukes til å organisere gjenbruk og flerbruk <strong>av</strong> fellestjenester på tvers <strong>av</strong><br />

virksomheter? Bruken <strong>av</strong> UDDI er utbredt i mange sektorer, selv om ikke alle tjenester blir<br />

eksponert. En nasjonal tjenestekatalog er etterspurt [70].<br />

20.01.2010 Versjon 1.1 15/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Erfaringer fra eHandel i Danmark tilsier at UDDI kan være <strong>for</strong> kompleks og upålitelig <strong>for</strong> visse<br />

anvendelser. Infrastrukturen <strong>for</strong> eHandel på tvers <strong>av</strong> landegrenser i Europa som utvikles <strong>av</strong><br />

PEPPOL [28], har der<strong>for</strong> valgt en katalogløsning bygd på DNS (Domain Name System) <strong>for</strong><br />

robusthet. Katalogdata utveksles med http GET etter prinsipper fra REST (jf. <strong>av</strong>snitt 4.2.6). Vi<br />

skal likevel være <strong>for</strong>siktige med å trekke <strong>for</strong> klare konklusjoner fra dette, siden<br />

anvendelsesområdet her er svært godt strukturert, med klart definerte prosesser, tjenester og<br />

meldinger. Alle nodene tilbyr det samme grensesnittet, så vi snakker egentlig mer om en<br />

tjenerkatalog enn en tjenestekatalog.<br />

3.2 Scenario: Tilgjengeliggjøring <strong>av</strong> registerdata<br />

Det å gjøre data fra et register tilgjengelig <strong>for</strong> andre offentlige virksomheter overlapper med<br />

in<strong>for</strong>masjonsutveksling. I dette <strong>av</strong>snittet fokuserer vi på hvordan <strong>av</strong>sendersiden kan få brakt<br />

data ut <strong>av</strong> sine interne system, og på overføring og gjenfinning <strong>av</strong> strukturert in<strong>for</strong>masjon.<br />

Viktige registre i offentlig sektor inkluderer:<br />

Det sentrale folkeregisteret<br />

Enhetsregisteret og oppg<strong>av</strong>eregisteret i Brønnøysund<br />

Skattelister<br />

Arbeidstaker/arbeidsgiver-registeret (N<strong>av</strong>)<br />

Grunneiendom-, adresse- og bygningsregistert (GAB) og matrikkelsystemet til Statens<br />

Kartverk, og annen kartin<strong>for</strong>masjon fra kartverket og landets kommuner<br />

Motorvognregisteret<br />

Løsøreregisteret<br />

Førerkortregisteret<br />

Skattelister<br />

Statistikk fra SSB<br />

Postnummerregisteret<br />

Nasjonalt helseregister<br />

Registrene varierer med hensyn på hvilke kr<strong>av</strong> de stiller til tekniske løsninger:<br />

Sikkerhetsnivået vil <strong>av</strong>henge <strong>av</strong> in<strong>for</strong>masjonsinnholdet. Noen registre er også<br />

tilgjengelig <strong>for</strong> publikum, mens andre kun skal kunne ses <strong>av</strong> et fåtall autoriserte. I noen<br />

tilfeller må oppslag logges <strong>for</strong> å kunne spore misbruk. eID [34] skiller mellom fire ulike<br />

risikonivå: Ingen, liten, moderat og stor, som gir ulike nivåer <strong>av</strong> konsekvenser <strong>for</strong> liv<br />

og helse, økonomi, renommé og tillit, kriminalitet og straffe<strong>for</strong>følgelse. Dette knyttes til<br />

fire nivåer <strong>av</strong> sikkerhet, med ulike autentiseringskr<strong>av</strong>.<br />

Forretningsmessige betingelser <strong>for</strong> adgang til dataene, i tilfelle det ikke er gratis. Noen<br />

offentlige enheter lager egne selskap som skal stå <strong>for</strong> salg <strong>av</strong> in<strong>for</strong>masjonstjenester,<br />

f.eks. Norsk Eiendomsin<strong>for</strong>masjon AS i tilknytning til Statens Kartverk.<br />

I tilfeller hvor lokale fagsystem eller databaser skal knyttes sammen med felles<br />

registerdata, trengs interoperabilitet på teknisk, semantisk og organisatorisk nivå. For<br />

felles registre vil dette først og fremst være en ut<strong>for</strong>dring <strong>for</strong> mottakerne, men eieren<br />

<strong>av</strong> registeret bør legge til rette <strong>for</strong> ulike brukergrupper gjennom klart definerte<br />

grensesnitt på alle nivåer.<br />

Registereiers teknologi vil påvirke løsningen. En standard relasjonsdatabase med enkle<br />

datatyper vil skille seg fra hierarkiske databaser <strong>for</strong> geometriske modeller, og<br />

stormaskinløsninger fra klient-tjener.<br />

Ulike typer data kan håndteres på ulike måter. Ved siden <strong>av</strong> strukturerte registre, kan<br />

det være aktuelt å gjøre tilgjengelig multimedia fra bibliotek og kringkasting,<br />

geometriske kartdata, bygningsmodeller o.s.v.<br />

20.01.2010 Versjon 1.1 16/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Det kan være ulike <strong>for</strong>ventninger til datakvalitet og presisjon, inkludert<br />

oppdateringshyppighet.<br />

3.2.1 Tekniske løsninger<br />

Et felles register kan i hovedsak gjøres tilgjengelig på to måter:<br />

1. En sentral tjeneste som brukerne <strong>for</strong>espør data fra når de trenger dem.<br />

2. Kopiering <strong>av</strong> det sentrale registeret til lokale databaser, <strong>for</strong> å bedre ytelse, skalerbarhet<br />

og tilgjengelighet, eller <strong>for</strong> enklere integrasjon med lokale data.<br />

Alternativ 1 kan realiseres som en sentralisert løsning både logisk og fysisk. Alternativt kan<br />

databaseteknologi brukes til å implementere en fysisk distribusjon <strong>for</strong> økt ytelse og sikrere<br />

tilgjengelighet. På logisk nivå kan man etablere en føderasjon <strong>av</strong> flere lokalt vedlikeholdte<br />

registre, under ansvarsområdet til f.eks. den enkelte kommune, fylke, eller helseregion (se<br />

<strong>av</strong>snitt 4.5.9).<br />

Alternativ 2 har enda flere variasjonsmuligheter, knyttet til hvordan og hvor ofte de lokale<br />

kopiene blir oppdatert:<br />

En enkel løsning er jevnlig overføring <strong>av</strong> hele registeret på et fil<strong>for</strong>mat som er egnet <strong>for</strong><br />

import i de lokale databasene.<br />

o Overføringen kan initieres fra den sentrale kilden (push) eller fra de lokale<br />

kopiene (pull).<br />

Man kan også overføre bare de endringene som er <strong>for</strong>etatt siden <strong>for</strong>rige runde (delta).<br />

I en hendelsesdrevet <strong>arkitektur</strong> kan den sentrale kilden gi beskjed til alle kopier hver<br />

eneste gang noe endres, slik at de alltid er oppdatert.<br />

o Med løs sammenkobling via abonnering kan man håndtere et vilkårlig og<br />

dynamisk antall kopier.<br />

En hendelsesdrevet <strong>arkitektur</strong> kan også støtte andre konfigurasjoner enn den sentraliserte<br />

løsningen hvor alle oppdateringer skjer på en kildedatabase, gjennom at alle kopier potensielt<br />

kan in<strong>for</strong>mere de andre om lokale endringer. Dette vil kreve transaksjonshåndtering <strong>for</strong> å<br />

håndtere parallelle oppdateringer hos flere kilder.<br />

For begge hovedløsningene står man over <strong>for</strong> et valg om integrasjonen skal <strong>for</strong>etas direkte på<br />

databaselaget, eller om databasen bør kapsles inn som webtjenester. I <strong>for</strong>hold til<br />

<strong>arkitektur</strong>prinsippene kan dette dreie seg om et valg mellom skalerbarhet og ytelse, opp mot<br />

tjenesteorientering, interoperabilitet og åpenhet. Jo flere lag med programvare man legger til,<br />

jo større overhead. I <strong>for</strong>hold til proprietære grensesnitt <strong>for</strong> datatilgang, og åpne<br />

industri<strong>standarder</strong> som ODBC og JDBC, vil et tjenestelag gjerne abstrahere bort detaljer, og<br />

styre bruken inn mot et mindre antall funksjoner enn det generell databaseaksess tillater.<br />

F.eks. ender man <strong>for</strong>t opp med å opprette webtjenester <strong>for</strong> de <strong>for</strong>espørslene som<br />

applikasjonene bruker, vis a vis å gi full tilgang til alle typer <strong>for</strong>espørsler med SQL.<br />

Innkapslingen i en webtjeneste <strong>for</strong>enkler sikkerhet, blant annet gjennom å begrense antall<br />

porter som man trenger å åpne i brannmurer, og ved at man unngår å åpne selve databasen<br />

<strong>for</strong> angrep. Samtidig er proprietære databaseteknologier utviklet over lang tid <strong>for</strong> å kombinere<br />

akseptabel ytelse med tilstrekkelig sikkerhet. En analyse <strong>av</strong> skalerbarhet og ytelse <strong>for</strong> det<br />

enkelte register er dermed <strong>av</strong>gjørende <strong>for</strong> om webtjenester bør anvendes. Dette bør dessuten<br />

vurderes ut ifra et kost/nytte-perspektiv, <strong>av</strong>hengig <strong>av</strong> om det allerede finnes mye verdifull<br />

logikk som ligger i basen, og dette ønskes tilgjengeliggjort til web klienter med minimal<br />

kostnad.<br />

Store databasesystem tilbyr verktøy <strong>for</strong> å eksponere sine data, <strong>for</strong>espørsler, prosedyrer og<br />

lignende som webtjenester, og <strong>for</strong> å bruke webtjenester til å laste nye data inn i databasen.<br />

Løsningene kan settes opp med minimal koding. Gjennom webtjenester tilbys mulighet til å<br />

utvide databasens funksjonalitet <strong>for</strong> klientprogrammer ved å eksekvere databasens<br />

operasjoner som standard webtjenester. For eksempel kan klientapplikasjoner gjenbruke<br />

eksisterende databaselogikk, som lagrede prosedyrer, funksjoner og pakker, <strong>for</strong>håndsdefinerte<br />

SQL-spørringer (views), som standardbaserte webtjenester.<br />

20.01.2010 Versjon 1.1 17/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Noen databaseløsninger har også innbygget klientfunksjonalitet <strong>for</strong> webtjenester. Man kan <strong>for</strong><br />

eksempel definere datainnhenting fra en ekstern kilde gjennom en webtjeneste, og lagre<br />

dataen i basen. En slik transaksjon kan f.eks. initieres via en hendelse som er definert i en<br />

databasetrigger.<br />

Ved siden <strong>av</strong> direkte adgang til SQL, kan man utnytte mer høynivå dataaksess gjennom f.eks.<br />

ADO.net, JDO (data objects), LINQ eller JPA (persistence). Dette er først og fremst aktuelt hvis<br />

man ønsker å legge på et lag med applikasjonslogikk mellom registeret og de som henter data<br />

fra det, eller hvis dataene skal gjøres tilgjengelig i et brukergrensesnitt og ikke til mottakernes<br />

applikasjoner og tjenester. I dette tilfellet bør også REST og AJAX vurderes, da disse<br />

metodene er god egnet <strong>for</strong> enkle, databaseorienterte applikasjoner.<br />

Hvis registerdataene som skal overføres innholder multimedia eller binære<br />

applikasjonsspesifikke <strong>for</strong>mater, bør man vurdere MTOM, SOAP with Attachments og XOP<br />

(<strong>av</strong>snitt 4.4.2.2 og 4.5.7) <strong>for</strong> å sikre rask overføring. Standarder <strong>for</strong> overføring <strong>av</strong> multimedia<br />

er allerede dekket <strong>av</strong> referansekatalogen [32], og ligger på siden <strong>av</strong> <strong>tjenesteorientert</strong><br />

implementasjon. Vi går der<strong>for</strong> ikke inn på dette her.<br />

3.2.2 Løsninger <strong>for</strong> søk<br />

Sammenlignet med generell in<strong>for</strong>masjonsutveksling som vi så på over, vil de fleste registre ha<br />

en mer stabil datamodell. Dette gjør det <strong>for</strong>nuftig å inkludere datamodellen i<br />

tjenestegrensesnittet, som XML Schema. Et valg som det kan være vanskeligere å <strong>for</strong>utse<br />

konsekvensene <strong>av</strong> over tid, er hvilke <strong>for</strong>espørsler som mottakerne skal kunne bruke <strong>for</strong> å søke<br />

fram data, og hvordan tjenestegrensesnittet til disse bør ut<strong>for</strong>mes. Åpne søkegrensesnitt kan<br />

ut<strong>for</strong>mes med webtjenester som tar i mot <strong>for</strong>espørsler i SQL eller XQuery, mens lukkede<br />

søkegrensesnitt typisk definerer hvert søk som en parametrisert operasjon i WSDL eller REST.<br />

Lukkede grensesnitt må man selvfølgelig utvide hver gang man ønsker å støtte noen nye typer<br />

<strong>for</strong>espørsler, med det gir samtidig tjenesteleverandøren bedre kontroll over tjenestebruken.<br />

Kombinasjonen XForms–REST–XQuery (XRX) har fått oppmerksomhet i det siste som en åpen<br />

standardprofil <strong>for</strong> dataorienterte applikasjoner. Her lagres dataene som XML gjennom XQuery<br />

og ikke i en relasjonsdatabase. Nettopp bruken <strong>av</strong> XML på alle nivå gjør løsningen enkel. Selv<br />

<strong>for</strong> de som ikke følger denne <strong>arkitektur</strong>en fullt ut, er XQuery interessant, siden den kan brukes<br />

til å søke i både relasjonstabeller og hierarkiske data som XML. XQuery eller XSLT kan<br />

dessuten brukes til enkelt å produsere brukergrensesnitt i HTML fra en datastruktur. For mer<br />

in<strong>for</strong>masjon, se <strong>av</strong>snitt 4.5.3.2.<br />

3.2.3 Løsninger <strong>for</strong> semantisk interoperabilitet<br />

Når dataene fra et felles register skal gjøres tilgjengelig gjennom fagsystem og andre<br />

applikasjoner på brukersiden, blir semantisk interoperabilitet mellom kilde- og mottakersystem<br />

essensielt. Avsnitt 4.5.2 diskuterer ulike løsninger på dette problemet på overordnet nivå.<br />

Semantisk teknologi er uten<strong>for</strong> fokus <strong>for</strong> denne rapporten, men samtidig bare en <strong>av</strong> mange<br />

tilnærminger <strong>for</strong> å løse problemet. Tilgjengeligheten, åpenheten og brukervennligheten til<br />

semantisk teknologi er ofte langt dårligere enn <strong>for</strong> industrielle løsninger som kobler sammen<br />

tradisjonell datamodellering, XML Schema, XSLT, eller XQuery.<br />

For <strong>tjenesteorientert</strong> <strong>arkitektur</strong> er det viktig at teknologiene man velger baserer seg på de<br />

grunnleggende <strong>standarder</strong> <strong>for</strong> webtjenester. Flere <strong>standarder</strong> <strong>for</strong> semantisk web har f.eks.<br />

manglet et klart definert XML Schema <strong>for</strong> sine XML-<strong>for</strong>mater, noe som gjør at<br />

representasjonen <strong>av</strong> semantiske data på tjenestelaget ikke blir entydig. Dette kan skape<br />

problemer med interoperabilitet.<br />

3.3 Scenario: Saksbehandling<br />

En saksbehandlingsprosess starter gjerne med en søknad eller <strong>for</strong>espørsel fra innbygger eller<br />

næringsliv. Saksbehandling kan også være initiert <strong>av</strong> offentlig sektor selv, f.eks. innen politisk<br />

utredning eller utøvelse <strong>av</strong> juridiske myndighet. Typiske eksempler er:<br />

Søknad om stilling<br />

20.01.2010 Versjon 1.1 18/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Byggesak, fra byggeplaner til ferdigattest<br />

Søknader i <strong>for</strong>bindelse med utbygging <strong>av</strong> et oljefelt, fra leteboring til produksjon, med<br />

plan <strong>for</strong> utbygging og drift (PUD) og plan <strong>for</strong> anlegg og drift (PAD) m.m.<br />

Søknad om stønader fra N<strong>av</strong><br />

Registrering <strong>av</strong> kjøretøy<br />

Juridiske straffesaker eller tvister<br />

Utredning <strong>for</strong> politiske vedtak<br />

Budsjettering<br />

Prosessene <strong>for</strong> saksbehandling vil blant annet variere <strong>av</strong>hengig <strong>av</strong>:<br />

Om en sak har flere private parter eller bare en, om det er flere parallelle søkere som<br />

må vurderes opp mot hverandre, eller hver søknad kan behandles <strong>for</strong> seg.<br />

Om flere etater involvert eller ikke. Selv om en sak er lokalisert til en etat, vil gjerne<br />

klagemuligheter kunne involvere et annet myndighetsnivå.<br />

Om saken krever skjønnsmessige vurderinger, eller om utfallet kan bestemmes <strong>av</strong><br />

oppsatte regler uten at noen tolkning er nødvendig.<br />

Sikkerhetskr<strong>av</strong>, f.eks. om det kreves eksplisitt samtykke fra bruker <strong>for</strong> å tillate<br />

utveksling <strong>av</strong> in<strong>for</strong>masjon mellom ulike etater i <strong>for</strong>bindelse med saken.<br />

Offentlighetslovens kr<strong>av</strong> til allment innsyn balanseres mot personvern og andre hensyn,<br />

mens partene ofte har kr<strong>av</strong> på utvidet partsinnsyn.<br />

3.3.1 Kr<strong>av</strong> til interaksjon med tjenestebrukere<br />

Tjenestens grensesnitt ut mot brukeren er viktig <strong>for</strong> saksbehandling og annen offentlig<br />

tjenesteyting, enten det er manuelt med brevutveksling og telefon, helt eller delvis<br />

automatisert.<br />

Første steg er å gi brukeren den in<strong>for</strong>masjon vedkommende trenger <strong>for</strong> å <strong>for</strong>stå hvem hun skal<br />

henvende seg til, hva slags sak hun skal søke om, hvilke skjemaer som skal brukes, hvilken<br />

dokumentasjon som trengs, hvordan søknaden vil bli behandlet, hvilke kriterier som gjelder<br />

o.s.v. Offentlige in<strong>for</strong>masjonstjenester gir brukerne mulighet til selv å søke fram in<strong>for</strong>masjon<br />

(pull), men myndighetene sprer også in<strong>for</strong>masjon til publikum gjennom utadrettede<br />

kampanjer (push). Kommunikasjon om lover, regler og <strong>for</strong>valtningens praksis må overkomme<br />

barrierer knyttet til et språk, terminologi og kompleksitet, som gjør det vanskelig <strong>for</strong> brukerne<br />

å <strong>for</strong>stå hvilken in<strong>for</strong>masjon som gjelder dem, og hva den betyr rent praktisk.<br />

Portaler som Norge.no, Minside, Altinn og kommunale websider er i ferd med å gjøre<br />

in<strong>for</strong>masjon og tilstøtende tjenester lettere tilgjengelig gjennom brukersentrert utvikling.<br />

Forskjellige metoder og <strong>standarder</strong> støtter dette i varierende grad på teknisk nivå, men<br />

ut<strong>for</strong>dringene er kanskje størst på semantisk og organisatorisk nivå. Samtidig gjør ut<strong>for</strong>dringer<br />

knyttet til et komplekst tjenestetilbud fra mange <strong>for</strong>skjellige virksomheter at portalene bør<br />

filtreres og struktureres i tråd med den in<strong>for</strong>masjon man har om den enkelte bruker.<br />

Etter at en sak opprettet, vil kommunikasjonen mellom innbygger eller næringsliv og offentlige<br />

instanser inneholde <strong>for</strong>melle meldinger og mer u<strong>for</strong>mell interaksjon knyttet til manglende<br />

in<strong>for</strong>masjon eller tolkning <strong>av</strong> in<strong>for</strong>masjon, <strong>for</strong>espørsler om status o.l. Slike utvekslinger kan<br />

initieres <strong>av</strong> bruker eller tjenesteleverandør.<br />

Når noen opptrer på vegne <strong>av</strong> andre i <strong>for</strong>bindelse med en sak, stilles det spesielle kr<strong>av</strong> til<br />

kommunikasjonshåndtering, autentisering og innsyn. Typiske eksempler på dette er en jurist<br />

som bistår et firma eller en enkeltperson, eller en fastlege som søker om ytelser på vegne <strong>av</strong><br />

en pasient. Dette krever adgangskontroll og meldingsruting med mulighet <strong>for</strong> delegering.<br />

3.3.2 Tekniske løsninger<br />

Ved siden <strong>av</strong> in<strong>for</strong>masjonsutveksling mellom virksomheter i offentlig sektor og<br />

tilgjengeliggjøring <strong>av</strong> registre, vil saksbehandling ofte kreve interoperabilitet mellom<br />

20.01.2010 Versjon 1.1 19/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

fagsystem, ulike løsninger <strong>for</strong> kommunikasjon med tjenestebrukeren, samt generell<br />

saksbehandlingsstøtte fra prosess- eller regelmotorer.<br />

3.3.3 Prosessmotor og regelmotor<br />

En prosessmotor kan brukes til å koordinere og følge opp saksbehandlingsprosessene fra<br />

opprinnelig <strong>for</strong>espørsel til endelig svar. WS-BPEL (<strong>av</strong>snitt 4.7.1) er den dominerende<br />

standarden på dette området <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>, og den støttes <strong>av</strong> de fleste<br />

leverandører. BPEL4People definerer tillegg <strong>for</strong> saksbehandleres interaksjon med aktiviteter i<br />

prosessen, og er også ganske utbredt. Disse standardene kan anbefales <strong>for</strong> bruk i offentlig<br />

sektor, men i så fall bør bruksområdet <strong>av</strong>grenses. Grunnmodellen i BPEL er nemlig at hele<br />

saksbehandlingen utføres i henhold til en predefinert prosess, uten mulighet <strong>for</strong> å utøve skjønn<br />

eller håndtere u<strong>for</strong>utsette unntak. Mer brukerorienterte og fleksible saksbehandlingsløsninger<br />

basert på regler og hendelsesorienterte <strong>arkitektur</strong>er, bør også vurderes. Her er<br />

standardiseringsarbeidet imidlertid i støpeskjeen (jf. <strong>av</strong>snitt 4.10.1.6).<br />

Samhandlingstjenesten i Altinn II skal støtte flere tjenesteeiere, flere brukere og flere<br />

sluttbrukertjenester samlet, i det som <strong>for</strong> brukerne oppleves som en prosess. Denne løsningen<br />

skal være tilgjengelig fra 2011, og vil trolig legge føringer på dette området.<br />

3.3.3.1 Portabilitet mellom prosessmotorer<br />

Selv om en prosess er definert ved hjelp <strong>av</strong> en åpen standard som BPEL, er det ikke sikkert at<br />

den enkelt kan flyttes fra en prosessmotor til en annen. Barrierer mot flytting kan skyldes at<br />

deler <strong>av</strong> prosessen krever mekanismer som ikke tilbys <strong>av</strong> BPEL, og som er implementert på<br />

ulike måter i ulike system. For BPEL gjelder dette særlig direkte kobling til underliggende<br />

komponenter i J<strong>av</strong>a eller .Net, uten innkapsling i webtjenester, kommunikasjon med ekstern<br />

programvare som ikke tilbyr webtjenester, direkte aksess til data i relasjonsdatabaser (<strong>for</strong><br />

skalerbarhet), og koblinger til et proprietært brukergrensesnitt [11]. Siden flere leverandører<br />

bruker noen <strong>av</strong> de samme grensesnittene fra XML/HTML, .Net eller J<strong>av</strong>a <strong>for</strong> å implementere<br />

dette, så trenger det ikke å være umulig å flytte en løsning, selv om man har brukt teknologi<br />

på siden <strong>av</strong> BPEL. Det er likevel viktig å kjenne grensene <strong>for</strong> interoperabilitet og åpenhet, og å<br />

vite hva som ligger i randsonen til en typisk implementasjon <strong>av</strong> en standard. BPEL er først og<br />

fremst en standard <strong>for</strong> å definere grensesnitt mellom partnere (abstrakte prosesser), og til å<br />

sette sammen mindre webtjenester til en større tjeneste.<br />

Med bakgrunn i dette kan man også vurdere standardisering på et høyere og mer brukernært<br />

nivå, som et alternativ eller komplement til BPEL. ”What you draw is what you execute –<br />

WYDIWYE” <strong>for</strong>eslår noen [17, 139], et argument <strong>for</strong> standardisering på BPMN/XPDL (<strong>av</strong>snitt<br />

4.10.1), med valgfri eksekveringsomgivelse. Samtidig skal man være klar over at høynivå<br />

modelleringsspråk ikke er like presise, og kan gi tolkningsfrihet slik at samme modell ikke<br />

kjøres nøyaktig likt i alle motorer. En standardisert om<strong>for</strong>ming fra BPMN til BPEL finnes [122],<br />

så man skal heller ikke overdrive dette problemet.<br />

3.3.3.2 Prosessenes størrelse<br />

I likhet med <strong>for</strong> operasjoner, tjenester og n<strong>av</strong>nerom (se <strong>av</strong>snitt 4.2.2), er granulariteten til<br />

prosessene en sentral ut<strong>for</strong>dring <strong>for</strong> å oppnå en <strong>for</strong>nuftig tjeneste<strong>arkitektur</strong>. Her har man<br />

valget mellom å definere ulike varianter som ulike prosesser, eller å inkludere mange<br />

alternative <strong>for</strong>løp i en og samme prosessmodell. Den siste løsningen kan gjøre den enkelte<br />

prosess svært kompleks, og vanskelig å teste alle varianter <strong>av</strong>.<br />

BPEL gjør det mulig å definere aktiviteter som delprosesser, slik at man kan lage et hierarki <strong>av</strong><br />

prosesser og delprosesser over mange lag, med webtjenester som grensesnitt mellom lagene.<br />

På hvert lag vil man da stå over<strong>for</strong> valget mellom å lage mer generelle prosesser som kan<br />

gjenbrukes <strong>av</strong> mange på laget over, eller enklere og mer spesifikke prosesser med l<strong>av</strong>ere grad<br />

<strong>av</strong> gjenbruk.<br />

I en slik <strong>arkitektur</strong> vil det være en <strong>for</strong>del med generelle retningslinjer <strong>for</strong> lagdeling, f.eks. <strong>for</strong> å<br />

skille tjenester <strong>for</strong> dataaksess fra applikasjonslogikk, <strong>for</strong>retningsprosesser fra tekniske<br />

prosesser, og interaksjonsprosesser fra baken<strong>for</strong>liggende prosesser.<br />

20.01.2010 Versjon 1.1 20/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

3.3.4 Interoperabilitet mellom fagsystem<br />

En <strong>av</strong> <strong>for</strong>delene med WS-BPEL er at man baserer seg på enkle grensesnitt med WSDL <strong>for</strong><br />

integrasjon med fagsystemer. Dette gjør det enkelt å knytte funksjonalitet fra fagsystem inn i<br />

de ulike stegene i en prosess, siden de fleste fagsystemleverandører tilbyr WSDL-grensesnitt<br />

<strong>for</strong> automatiske funksjoner.<br />

Samtidig mangler standarden opplegg <strong>for</strong> brukerinteraksjon, så her er det opp til proprietære<br />

og delvis standardiserte løsninger. Hvis en bruker skal utføre en oppg<strong>av</strong>e i en<br />

saksbehandlingsprosess gjennom et fagsystem, så vil prosessen se på det som et kall til en<br />

webtjeneste. Denne modellen er enkel og grei, men svært rudimentær sammenlignet med<br />

tidligere <strong>standarder</strong> fra Workflow Management Coalition [205, 206]. De tok også høyde <strong>for</strong><br />

mer kompleks interaksjon med applikasjoner og brukergrensesnitt som meldingsbokser og<br />

gjørelister enn det BPEL4People tilbyr.<br />

Her kan man lett oppleve at prosessens <strong>for</strong>ventning til granularitetsnivå passer dårlig med det<br />

fagsystemene tilbyr. Fagsystem legger gjerne ut programmeringsgrensesnittet sitt som<br />

webtjenester og operasjoner, mens prosessen ønsker å knytte til seg delvis automatiserte<br />

oppg<strong>av</strong>er. Disse oppg<strong>av</strong>ene er gjerne er sammensatt <strong>av</strong> flere operasjoner, og et eller flere<br />

steg med brukerinteraksjon. Man kan der<strong>for</strong> <strong>for</strong>t oppdage at WS-BPEL eller tilsvarende<br />

løsninger må bygges inn på toppen <strong>av</strong> fagsystemet <strong>for</strong> å kunne koble sammen l<strong>av</strong>nivå<br />

programmeringsoperasjoner til mellomnivå tjenester som er meningsfulle steg i<br />

saksbehandlingsprosessen. Dette er reflektert i vårt målbilde <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>,<br />

som blir presentert i Figur 5 på side 26.<br />

Saksbehandlingsløsninger kan <strong>for</strong>t bli utviklet som en skog <strong>av</strong> punkt-til-punkt-integrasjoner<br />

mellom ulike fagsystem. Mulighetene <strong>for</strong> gjenbruk og flerbruk vil øke hvis man klarer å<br />

etablere en generell løsning basert på et felles n<strong>av</strong> <strong>for</strong> saksbehandling, eller i det minste en<br />

nasjonal standard <strong>for</strong> koordinering <strong>av</strong> saksbehandling på tvers <strong>av</strong> fagsystem og virksomheter.<br />

3.3.5 Arkivering<br />

Saksbehandlingsprosesser finner sted innen<strong>for</strong> fagsystem, egne sakssystem og i<br />

prosessmotorer. En helhetlig oppfølging og styring med saksbehandlingen på tvers <strong>av</strong> disse<br />

applikasjonene har først og fremst vært knyttet til saksarkivet, som har vært ”eieren” til<br />

saksnummer og saksmappe.<br />

Viktigheten <strong>av</strong> dette området vises gjennom standard kr<strong>av</strong>spesifikasjoner <strong>for</strong> generelle<br />

saksbehandlingsløsninger (SGK) og arkiv (Noark). Dette er høyere nivå løsninger enn<br />

prosessmotorer basert på WS-BPEL, og kan ikke reduseres til sistnevnte. Å definere standard<br />

saksbehandlingsgrensesnitt som webtjenester, kan være en naturlig videreutvikling <strong>av</strong><br />

felleskomponenter på dette området, slik Noark allerede gjør <strong>for</strong> arkivtjenester. Dette kunne<br />

skape en standard måte å knytte sammen interaktive saksbehandlingsprosesser på tvers <strong>av</strong><br />

fagsystem og virksomhetsgrenser. Ved siden <strong>av</strong> aktiviteter som utfører webtjenester, bør en<br />

slik spesifikasjon inneholde standard tjenester <strong>for</strong> administrasjon og oppfølging <strong>av</strong><br />

saksbehandlingsprosessen. Man trenger dessuten et standard språk <strong>for</strong> å definere metadata<br />

eller behandlingsregler (policies) tilknyttet de ulike tjenestene, f.eks. som et spesialisert<br />

grensesnitt som bruker WS-MetadataExchange og WS-Policy (<strong>av</strong>snitt 4.3.2).<br />

Samtidig legger det papirbaserte grunnsynet bak arkivlovgivningen føringer som ikke passer<br />

like godt med en <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. Siden <strong>for</strong>espørsler skal journalføres, genererer<br />

man i dag f.eks. pdf-versjoner <strong>av</strong> de webtjenestekall som går fra en skjemaløsning til<br />

underliggende applikasjoner i <strong>for</strong>bindelse med automatisert innsending <strong>av</strong> en søknad. En<br />

løsning som åpner <strong>for</strong> arkivering <strong>av</strong> XML-dokumenter bør vurderes, selv om man da også vil<br />

måtte ta vare på XSLT eller lignende spesifikasjoner som om<strong>for</strong>mer datastrukturen i meldingen<br />

til en mer lesbar presentasjon.<br />

3.3.6 Kontakt med bruker<br />

Saksbehandling vil utgjøre et <strong>av</strong> hovedelementene ved innbyggernes, næringslivets og<br />

organisasjoners interaksjon med offentlig IKT-tjenester. Sammenlignet med<br />

20.01.2010 Versjon 1.1 21/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

in<strong>for</strong>meringstjenester krever saksbehandling mer kompleks interaksjon, med toveis<br />

kommunikasjon, i ulike sammenhenger, over ulike kanaler.<br />

Første ut<strong>for</strong>dring <strong>for</strong> en bruker er å finne ut hvilken tjeneste eller saksbehandlingsprosess man<br />

trenger. Dette går utover tjenestekataloger <strong>for</strong> webtjenester som UDDI, og fokuserer på<br />

<strong>for</strong>valtningens tjenesteyting på virksomhetsnivå. Her kreves i overskuelig framtid en<br />

kombinasjon <strong>av</strong> godt strukturerte portaler og menneskelig kontakt gjennom servicetorg og<br />

saksbehandlere. Her kreves brukerrettede oversikter som ikke første og fremst er strukturert<br />

etter offentlig sektors organisering, men heller tar utgangspunkt i brukerens livssituasjon.<br />

Standarder som LOS [21] tar viktige steg i riktig retning <strong>for</strong> å definere et<br />

n<strong>av</strong>igeringsrammeverk <strong>for</strong> å finne fram blant tjenestene. Samtidig bør portalene også kunne<br />

knyttes til in<strong>for</strong>masjon om brukeren. Ideelt sett burde også saksbehandlere kunne hente ut<br />

grunnleggende in<strong>for</strong>masjon om den enkelte <strong>for</strong> bedre å kunne gi råd til brukeren, selvfølgelig<br />

begrenset <strong>av</strong> personvernhensyn.<br />

Når brukeren har funnet ut hva slags saksbehandling eller tjeneste han/hun trenger, bør<br />

overgangen til grensesnittet <strong>for</strong> å sende <strong>for</strong>espørselen være direkte tilgjengelig, gjerne<br />

gjennom samme portal, f.eks. Minside. For næringslivsbrukere vil meldingsboksen i Altinn II<br />

trolig være en sentral kanal, selv om denne kanskje vil bli skreddersydd <strong>for</strong> innrapportering.<br />

Etterfølgende interaksjon vil gjerne finne sted gjennom brukerens meldingsboks i portalen,<br />

men noen brukere vil kanskje <strong>for</strong>etrekke å bruke sin vanlige e-post. Metodene og standardene<br />

som man velger <strong>for</strong> webtjenester, sikkerhet og kommunikasjonsløsninger bør altså spille<br />

sammen. En skjemastandard bør der<strong>for</strong> f.eks. støtte strukturerte dokumenter innsendt over epost<br />

i tillegg til web-skjemaer. X<strong>for</strong>ms (<strong>av</strong>snitt 4.6.2.2) og proprietære løsninger fra f.eks.<br />

Adobe og Microsoft tilbyr dette (jf. <strong>av</strong>snitt 4.6.8). Altinn I bruker X<strong>for</strong>ms.<br />

3.3.7 Interaksjon mellom brukergrensesnitt og prosess<br />

Ved siden <strong>av</strong> virksomhetsprosessen som definerer stegene i saksbehandlingen, vil man<br />

definere interaksjonsprosesser <strong>for</strong> samspillet mellom brukere og hovedprosess, og fra<br />

prosessen til underliggende tjenester <strong>for</strong> hvert enkelt steg. For gjenbruk og fleksibilitet er det<br />

er viktig at disse lagdelte prosessene skilles fra hverandre og kan utvikles delvis u<strong>av</strong>hengig <strong>av</strong><br />

hverandre. Ulike prinsipper vil gjelde <strong>for</strong> ut<strong>for</strong>ming <strong>av</strong> hvert lag. Mens kommunikasjonen fra<br />

saksbehandling til underliggende komponenter og tjenester bør skje med få, større<br />

transaksjoner <strong>for</strong> skalerbarhet, baseres brukergrensesnittet gjerne på mer finkornet men<br />

hyppigere meldingsutveksling, f.eks. i AJAX (jf. <strong>av</strong>snitt 4.6.6).<br />

Et tilsvarende skille finner man i datastrukturene, hvor det ikke alltid er <strong>for</strong>nuftig å bruke<br />

samme XML-skjemaer <strong>for</strong> utveksling mellom brukergrensesnitt og prosess, som mellom<br />

prosess og applikasjonstjenester. Førstnevnte kan inneholde gruppering og organisering<br />

tilpasset ulike brukergruppers behov, og vil gjerne bli strukturert <strong>av</strong>hengig <strong>av</strong> hvordan<br />

in<strong>for</strong>masjon skal presenteres på skjermen. Sistnevnte bør i større grad gjenspeile organisering<br />

<strong>av</strong> dataene i databaser og en eventuell felles begrepsmodell der hvor flere<br />

applikasjonssystemer er involvert. Dette betyr ikke at man ikke bør gjenbruke noen byggesteiner<br />

på tvers <strong>av</strong> lagene.<br />

3.4 Scenario: Innrapportering til det offentlige<br />

Det offentliges innsamling <strong>av</strong> in<strong>for</strong>masjon fra næringsliv og privatpersoner har vært gjenstand<br />

<strong>for</strong> <strong>for</strong>enkling, samordning og standardisering gjennom bl.a. Altinn. Ved siden <strong>av</strong><br />

Brønnøysundregisterne får Skatteetaten og Statistisk Sentralbyrå data gjennom denne<br />

kanalen. Andre rapporteringskanaler finnes innen ulike sektorer, f.eks. finansnæringens<br />

rapportering til Kredittilsynet, eller oljedirektoratets overvåking <strong>av</strong> leting og produksjon på<br />

norsk sokkel. Det finnes dessuten <strong>for</strong>brukerportaler som næringslivet fyller med in<strong>for</strong>masjon<br />

mer frivillig, som finansportalen og telepriser.no. Offentlige virksomheter møter også lignende<br />

rapporteringskr<strong>av</strong>, f.eks. KOSTRA <strong>for</strong> kommunesektoren.<br />

Løsninger <strong>for</strong> innrapportering vil variere etter flere <strong>av</strong> de sammen faktorene som vi diskuterte<br />

<strong>for</strong> in<strong>for</strong>masjonsutveksling mellom enheter i offentlig sektor (<strong>av</strong>snitt 3.1), særlig:<br />

Mengde data som skal sendes i hver rapport og <strong>for</strong>matet på denne,<br />

20.01.2010 Versjon 1.1 22/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Frekvens <strong>for</strong> innrapportering, spesielt regelmessige tidsfrister som gir høye topper i<br />

belastningen,<br />

Grensesnitt <strong>for</strong> næringsliv og andre som rapporteres, om det baserer seg på manuell<br />

inntasting <strong>av</strong> in<strong>for</strong>masjon i et skjema, dokumentoverføring, eller overføring på standard<br />

<strong>for</strong>mat fra næringslivets IKT-systemer. Her vil man ta hensyn til behovene til både små<br />

og store bedrifter.<br />

Prosedyrer <strong>for</strong> påminning, purring og oppfølging <strong>av</strong> manglende rapportering, inkludert<br />

sanksjonsmuligheter,<br />

Om de innsamlede data skal videre<strong>for</strong>midles til en eller flere andre offentlige<br />

virksomheter, f.eks. fra Altinn til SSB.<br />

For rapportering er felleskomponenter i brukergrensesnittlaget viktig, som portaler,<br />

meldingsbokser og skjemamotorer. Fleksibilitet og utvidbarhet er sentrale kr<strong>av</strong> til disse<br />

komponentene, slik at nye skjemaer lett kan legges til. Retningslinjer <strong>for</strong> grafisk og<br />

innholdsmessig strukturering <strong>av</strong> skjemaer er angitt i ELMER 2 [75].<br />

3.4.1 Tekniske løsninger<br />

De tekniske løsningene <strong>for</strong> rapportering vil bestå <strong>av</strong> komponenter som portaler,<br />

skjemamotorer, kommunikasjon, integrasjon og tjenester, sikkerhet, prosess- og<br />

regelmotorer. Diskusjonen i de <strong>for</strong>egående kapitlene dekker dermed mange <strong>av</strong><br />

problemstillingene. Den sentrale rollen til Altinn er også reflektert der. Her ser vi der<strong>for</strong> bare<br />

på områder hvor innrapportering skiller seg fra de andre bruksscenarioene.<br />

3.4.2 Løsninger <strong>for</strong> skalerbarhet<br />

Innrapportering er ofte knyttet til tidsfrister hvor svært mange skal levere inn data samtidig.<br />

Dette gir ekstreme topper i belastningen, og skalerbarhet blir en hovedut<strong>for</strong>dring. Dette er i<br />

større grad en grunn til å gå bort fra standardisering og velge proprietære løsninger, til å gå<br />

vekk fra indirekte og fleksible løsninger som introduserer overhead, som proxies og lagdelte<br />

<strong>arkitektur</strong>er. Bruken <strong>av</strong> teknologi fra Microsoft gjennomsyrer f.eks. Altinn II, mens<br />

Landbrukets In<strong>for</strong>masjonsbase benytter Oracle.<br />

Alternativet til proprietære løsninger med høy ytelse er gjerne åpen kildekode. Man bør<br />

dessuten ikke kreve at behovene til de høyest belastede tjenestene blir førende også <strong>for</strong><br />

tjenester som ikke har tilsvarende behov. Løsningene som velges <strong>for</strong> Altinn II bør der<strong>for</strong> ikke<br />

ukritisk gjøres gjeldende <strong>for</strong> hele offentlig sektor. Skalerbarhet nedover mot enkle og billige<br />

løsninger vil også prege en stor del <strong>av</strong> behovet <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

framover.<br />

3.4.3 Løsninger <strong>for</strong> prosess, koordinering og <strong>for</strong>deling<br />

Løsninger <strong>for</strong> å <strong>for</strong>midle, koordinere og følge opp innrapporteringen bør være løst koblet til<br />

datafangstløsningen, slik at den ikke skaper økt belastning under rapporteringstopper.<br />

Sammenlignet med saksbehandling er reglene <strong>for</strong> oppfølging, <strong>for</strong>deling og behandling <strong>av</strong><br />

rapporter gjerne mer strukturerte og stabile, noe som kan gjøre bruk <strong>av</strong> standard BPMS basert<br />

på WS-BPEL mer aktuelt. Samtidig er brukerinteraksjon også viktig, knyttet til ulike regler <strong>for</strong><br />

å sende ut påminnelse om frister, purring ved <strong>for</strong>sinket innlevering, innlevering <strong>av</strong> deler <strong>av</strong><br />

rapporten over flere omganger, og mulighet til å sende inn flere versjoner <strong>av</strong> samme rapport<br />

over tid.<br />

3.4.4 Løsninger <strong>for</strong> dataoverføring<br />

Sammenlignet med saksbehandling og in<strong>for</strong>masjonsutveksling har innrapportering den <strong>for</strong>del<br />

at man har en bestemt instans som er mottaker <strong>av</strong> en rapport. Dette gjør det enklere å<br />

etablere datamodellen <strong>for</strong> rapporteringen, selv om denne helst bør være i tråd med andre<br />

rapporteringsstrukturer, slik at byrden på brukerne blir minst mulig. Samordning slik at<br />

samme in<strong>for</strong>masjon ikke trengs å bli rapportert flere ganger, er ønskelig.<br />

20.01.2010 Versjon 1.1 23/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Dagens systemer bruker ulike tekniske data<strong>for</strong>mater som XML over webtjenester (Altinn),<br />

tekstfiler med faste feltbredder (KOSTRA), skjemaer over web (bl.a. Norges Forskningsråd)<br />

eller skjemaer som dokumenter (bl.a. Statens Landbruks<strong>for</strong>valtning). Denne fragmenteringen<br />

gjør at brukere og IKT-leverandører må implementere mange ulike grensesnitt i sine<br />

systemer.<br />

Innrapportering har vært drivende bruksområde <strong>for</strong> semantisk standardisering, blant annet<br />

gjennom SERES, som er knyttet til Altinn. De har et edruelig syn på løsningene:<br />

SERES II-prosjektet har som utgangspunkt og <strong>for</strong>pliktelse å levere løsninger som på kort<br />

sikt understøtter pågående produksjonsløp i Altinn ... Dette kr<strong>av</strong>et har vært førende <strong>for</strong><br />

fremgangsmåten i prosjektet og de prioriteringer som er gjort. Ulempen med en slik<br />

fremgangsmåte er at løsningen ikke tilfredsstiller framtidige behov innen samordning,<br />

samarbeid og samhandling i det offentlige... [4]<br />

Konseptskissen <strong>for</strong> SERES II [5] gir et godt utgangspunkt <strong>for</strong> videre arbeid. Den viser<br />

<strong>for</strong>ståelse <strong>for</strong> organisatoriske ut<strong>for</strong>dringer og ikke bare tekniske, og har et balansert syn på<br />

muligheter og begrensninger <strong>for</strong> felles begrepsmodeller. De beskriver prinsipper om<br />

dynamiske modeller, regler drevet <strong>av</strong> hendelser, med relasjon som en førsteklasses<br />

konstruksjon, og grafer heller enn trær. Disse prinsippene er dessverre i liten grad fulgt i<br />

hovedtyngden <strong>av</strong> arbeid på semantikk. Samtidig peker de fram mot en situasjon hvor felles<br />

begrepsmodeller ikke er fastlåste i statiske dokumenter, men løpende oppdatert og<br />

tilgjengelig, f.eks. gjennom felles webtjenester.<br />

20.01.2010 Versjon 1.1 24/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4 Metoder og <strong>standarder</strong> <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong><br />

Dette kapittelet gir en oversikt over <strong>standarder</strong> innen<strong>for</strong> hver <strong>av</strong> disse hovedområdene:<br />

Tjenester (<strong>av</strong>snitt 4.2)<br />

Mellomvare og tjenestekataloger (<strong>av</strong>snitt 4.3)<br />

Kommunikasjon (<strong>av</strong>snitt 4.4)<br />

Data og in<strong>for</strong>masjon (<strong>av</strong>snitt 4.5)<br />

Portaler, brukerinteraksjon og presentasjon (<strong>av</strong>snitt 4.6)<br />

Samhandling, prosesser og komposisjon <strong>av</strong> tjenester (<strong>av</strong>snitt 4.7)<br />

Sikkerhet og pålitelighet (<strong>av</strong>snitt 4.8)<br />

Metoder <strong>for</strong> modelldrevet utvikling <strong>av</strong> tjenester (<strong>av</strong>snitt 4.10)<br />

Eksisterende løsninger og organisatorisk modenhet har stor innflytelse på hvilke metoder og<br />

<strong>standarder</strong> som er relevante i en gitt sammenheng. Tjenesteorientert <strong>arkitektur</strong> utvikles ofte<br />

fra en situasjon med etablerte IKT-applikasjoner som brukes internt i den offentlige<br />

virksomheten, og hvor næringsliv og borgeres grensesnitt mot tjenestene først og fremst er<br />

saksbehandlerne [77]:<br />

Offentlig virksomhet<br />

Brukergrensesnitt<br />

Applikasjon<br />

Database<br />

Innbyggere Næringsliv<br />

Saksbehandlere<br />

Brukergrensesnitt<br />

Applikasjon<br />

Database<br />

Offentlig virksomhet<br />

Brukergrensesnitt<br />

Applikasjon<br />

Database<br />

Saksbehandlere<br />

Brukergrensesnitt<br />

Applikasjon<br />

Database<br />

Figur 3. Offentlig tjenesteyting før <strong>tjenesteorientert</strong> <strong>arkitektur</strong>.<br />

Første generasjons løsninger bygger gjenbrukbare komponenter som webtjenester, og gjør<br />

tjenester tilgjengelige gjennom portaler som er lokale <strong>for</strong> virksomheten. Portaler og tjenester<br />

kan kobles sammen på tvers <strong>av</strong> organisasjonsgrenser, men en helhetlig <strong>arkitektur</strong> er ennå<br />

ikke utviklet:<br />

20.01.2010 Versjon 1.1 25/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Offentlig virksomhet<br />

Saksbehandlere<br />

Brukergrensesnitt<br />

Innbyggere Næringsliv<br />

Portaler<br />

Tjenester<br />

Applikasjon Database<br />

Portaler<br />

Tjenester<br />

Database<br />

Offentlig virksomhet<br />

Applikasjon<br />

Figur 4. Første generasjon <strong>tjenesteorientert</strong> <strong>arkitektur</strong>.<br />

Neste generasjon bygger på felleskomponenter som gjør tjenester tilgjengelige <strong>for</strong> innbyggere<br />

og næringsliv, men som også kan brukes <strong>for</strong> samhandling mellom virksomheter og internt i<br />

etatene i offentlig sektor. Vi skiller her mellom fire tjenestelag: Presentasjon og interaksjon<br />

gjennom portaler som Altinn og Minside med tilhørende skjemamotor, samhandling/prosesser,<br />

komponenter og sammenstilling, og infrastruktur <strong>for</strong> tilgjengelighet, sikkerhet,<br />

interoperabilitet, kommunikasjon m.m.:<br />

Fellestjenester <strong>for</strong> offentlig sektor<br />

Saksbehandlere<br />

Brukergrensesnitt<br />

Offentlig virksomhet Offentlig virksomhet<br />

Saksbehandlere<br />

Brukergrensesnitt<br />

Tjenester<br />

Applikasjon Database<br />

Innbyggere Næringsliv<br />

Presentasjon og interaksjon<br />

Samhandling<br />

Komponenter<br />

Infrastruktur<br />

Tjenester<br />

Database<br />

Figur 5. Andre generasjon <strong>tjenesteorientert</strong> <strong>arkitektur</strong>.<br />

Saksbehandlere<br />

Brukergrensesnitt<br />

Applikasjon<br />

Et slikt målbilde kan også flytte dagens applikasjoner og basis IKT-løsninger ut som<br />

komponenter og tjenester, kanskje utviklet og driftet <strong>av</strong> eksterne organisasjoner. Her<br />

gjenbrukes fellestjenester i stor grad på alle nivåer. Eierskap og driftsansvar kan plasseres<br />

sentralt eller lokalt i virksomheten, <strong>av</strong>hengig <strong>av</strong> kr<strong>av</strong> og tilgjengelige ressurser. Som figuren<br />

antyder, vil noen virksomheter også utvikle egne løsninger <strong>for</strong> de fire lagene <strong>av</strong><br />

<strong>tjenesteorientert</strong> <strong>arkitektur</strong>, selv om fellesløsninger bør ha <strong>for</strong>rang.<br />

20.01.2010 Versjon 1.1 26/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.1 Arkitekturmessige betraktninger på bruksscenarioene<br />

Diskusjonen i kapittel 3 peker på ulike løsningsalternativ. Valg mellom disse <strong>av</strong>henger ikke<br />

bare <strong>av</strong> bruksscenarioets kr<strong>av</strong>, men også <strong>av</strong> hvilken teknologi som virksomheten har<br />

tilgjengelig, og hvor moden virksomheten er i <strong>for</strong>hold til innføring <strong>av</strong> <strong>tjenesteorientert</strong><br />

<strong>arkitektur</strong> [131]. Basert på generasjonene og målbildene <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>,<br />

diskuterer vi her ut<strong>for</strong>dringer knyttet til samvirket mellom ulike komponenter.<br />

Figuren neden<strong>for</strong> gir en oversikt over sentrale funksjonelle komponenter i en <strong>tjenesteorientert</strong><br />

<strong>arkitektur</strong> <strong>for</strong> en virksomhet, i tråd med målbildet i Figur 5 på side 26. I motsetning til de<br />

fleste referansemodeller på området har vi valgt å ta med alle typer brukere, også de internt i<br />

offentlig sektor, da tjenesteorientering påvirker disse vel så mye som innbyggere og<br />

næringsliv.<br />

Andre<br />

enheter<br />

Figur 6. Komponenter i <strong>tjenesteorientert</strong> <strong>arkitektur</strong>.<br />

Figuren viser komponenter som firkanter og tjenestegrensesnitt som ellipser. Nederst finner vi<br />

eksisterende fagsystem med database og applikasjon. Disse kan tilby<br />

programmeringsgrensesnitt (API) <strong>av</strong> vanlig type eller som l<strong>av</strong>nivå webtjenester.<br />

Integrasjonslaget er ofte basert på proprietære løsninger eller industri<strong>standarder</strong>, men tilbyr<br />

gjerne webtjenester som et <strong>av</strong> flere grensesnitt. Komponentlaget representerer<br />

spesialutviklede programmerte tjenester på høyere nivå enn API, mens samhandlingslagets<br />

prosesser og regler kan brukes til å sette sammen tjenester uten programmering.<br />

Skjemamotoren er en viktig del <strong>av</strong> interaksjonslaget, som ofte er tilgjengelig i ulike portaler.<br />

Som det fremgår, vil også brukere i offentlig sektor kunne anvende portalløsninger, og ikke<br />

bare brukergrensesnittene til sine applikasjoner og fagsystem.<br />

Denne figuren kan illustrere ulike tekniske løsninger. For tilgjengeliggjøring <strong>av</strong> registerdata,<br />

ser vi disse alternativene, nedenfra og opp i Figur 7:<br />

Direkte tilgang til applikasjonens programmeringsgrensesnitt eller database,<br />

L<strong>av</strong>nivå tjenester publisert direkte fra databasen,<br />

Portal<br />

Meldingsutveksling<br />

Innbyggere Næringsliv<br />

Database<br />

Utviklingsverktøy<br />

L<strong>av</strong>nivå tjenester fra grensesnittet til applikasjonen,<br />

20.01.2010 Versjon 1.1 27/89<br />

Portal<br />

Interaksjon<br />

Samhandling<br />

Komponenter<br />

Infrastruktur<br />

API API<br />

API API<br />

Forvaltning, drift<br />

og utvikling<br />

Applikasjon<br />

Portal<br />

Applikasjonsbrukergrensesnitt<br />

Ansatte


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Bruk <strong>av</strong> mellomvare og infrastruktur <strong>for</strong> integrasjon slik at vi får løsere kobling mellom<br />

intern realisering og eksterne grensesnitt,<br />

Spesialutviklede komponenter <strong>av</strong> tjenester på høyere nivå, som kobler sammen flere<br />

steg på applikasjonsnivået til en funksjonell enhet,<br />

Samhandling gjennom prosesser som behandler eksterne <strong>for</strong>espørsler og kaller opp de<br />

nødvendige interne applikasjonstjenestene <strong>for</strong> å besvare dem,<br />

Skjemaløsning <strong>for</strong> søk i registre og annen interaksjon.<br />

Andre<br />

enheter<br />

Portal<br />

Meldingsutveksling<br />

Innbyggere Næringsliv<br />

Database<br />

Portal<br />

Interaksjon<br />

Samhandling<br />

Komponenter<br />

Infrastruktur<br />

Figur 7. Ulike løsninger <strong>for</strong> tilgjengeliggjøring <strong>av</strong> registerdata.<br />

Tilsvarende kan vi skille fra hverandre ulike løsninger på mottakersiden:<br />

Direkte lagring <strong>av</strong> dataene man mottar i interne databaser, kanskje bearbeidet <strong>av</strong><br />

applikasjonslogikken på veien,<br />

Bruk <strong>av</strong> webtjenester eller andre APIer til å sende data inn til interne fagsystem,<br />

Spesialutviklete tjenester <strong>for</strong> kommunikasjon med eksterne registre, <strong>for</strong> løs kobling,<br />

Behandling <strong>av</strong> eksterne registerdata i prosesser og regler,<br />

Bruk <strong>av</strong> eksterne data til å fylle ut skjema eller validere data fra brukeren,<br />

Bruk <strong>av</strong> registerdata til å tilpasse ut<strong>for</strong>ming <strong>av</strong> portal til brukerens situasjon,<br />

Manuell tilgang til eksterne registerdata gjennom portaler eller fagsystem.<br />

Dette peker også på ulike anvendelser <strong>av</strong> de tekniske komponentene. En prosessmotor kan<br />

brukes til å håndtere selve den funksjonelle saksgangen på samhandlingslaget, men også til å<br />

styre interaksjonsprosessen som ligger under et skjema eller en portal, eller til å <strong>for</strong>dele<br />

meldinger mellom ulike mottakersystemer i infrastrukturen. En helhetlig prosessløsning vil<br />

knytte sammen tjenestebrukerens og saksbehandlernes aktiviteter, men samtidig skille dem<br />

fra hverandre slik at de kan utvikles delvis u<strong>av</strong>hengig <strong>av</strong> hverandre.<br />

4.2 Metoder og <strong>standarder</strong> <strong>for</strong> tjenestelaget<br />

API API<br />

API API<br />

Applikasjon<br />

Dette <strong>av</strong>snittet ser på grunnleggende <strong>standarder</strong> <strong>for</strong> å spesifisere tjenester og gi brukerne<br />

tilgang til dem. WSDL og tilhørende <strong>standarder</strong> dominerer, men eldre løsninger som ebXML er<br />

20.01.2010 Versjon 1.1 28/89<br />

Portal<br />

Applikasjonsbrukergrensesnitt<br />

Ansatte


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

<strong>for</strong>tsatt i bruk på noen områder. For brukerinteraksjon og løst sammenkoblede tjenester har<br />

<strong>arkitektur</strong>stilen REST etablert seg, delvis overlappende med webtjenester.<br />

4.2.1 Web services – WSDL<br />

Web Service Definition Language (WSDL) [173] har lenge vært den sentrale standarden innen<br />

<strong>tjenesteorientert</strong> <strong>arkitektur</strong>. I versjon 2.0 skiftet WSDL n<strong>av</strong>n til Web Service Description<br />

Language. Mens versjon 1.1 bare er et utkast, er versjon 2.0 en anbefalt standard fra W3C<br />

[174]. Noen leverandører <strong>av</strong> mellomvare og verktøy <strong>for</strong> systemutvikling støtter ikke versjon<br />

2.0, blant annet Microsofts Windows Communication Foundation (WCF). Profilene til WS-I<br />

(Web Service Interoperability Organization) bruker også <strong>for</strong>tsatt versjon 1.1 [210]. Andre<br />

leverandører som bruker J<strong>av</strong>a, og miljøer som lager åpen kildekode, har imidlertid <strong>for</strong> lengst<br />

tatt i bruk den siste versjonen. Mange anbefaler der<strong>for</strong> å gjøre tjenester tilgjengelig både i<br />

WSDL 1.1 og i WSDL 2.0, som to grensesnitt inn mot en og samme implementasjon.<br />

WSDL oppstod som en standard måte å definere programmeringsgrensesnitt <strong>for</strong><br />

fjernprosedyrekall og overføring <strong>av</strong> strukturerte dokumenter, basert på<br />

kommunikasjonsprotokollen SOAP (<strong>av</strong>snitt 4.4.2.1), som overfører meldinger med innhold i<br />

XML over http. WSDL bruker der<strong>for</strong> XML Schema (<strong>av</strong>snitt 4.5.3.1) til å definere innholdet i<br />

meldingene.<br />

Begge hovedversjoner <strong>av</strong> WSDL deler tjenestebeskrivelsen inn i en abstrakt og en konkret del.<br />

Den abstrakte beskriver grensesnittets datatyper, operasjoner og meldinger, mens den<br />

konkrete definerer implementeringen <strong>av</strong> tjenestene, med binding til<br />

kommunikasjonsprotokoller og adressene til hvor tjenesten er installert.<br />

4.2.1.1 Meldingsmønstre <strong>for</strong> webtjenester<br />

WSDL skiller mellom ulike mønstre <strong>for</strong> meldingsutveksling, som porttyper (versjon 1.1) eller<br />

grensesnitt (2.0). WSDL 1.1 [173] definerer 4 mønstre:<br />

One-way - en melding fra tjenestebruker til tjenesteleverandør.<br />

Request-response – spørsmål og svar initiert <strong>av</strong> tjenestebruker.<br />

Solicit-response - spørsmål og svar initiert <strong>av</strong> tjenesteleverandør.<br />

Notification - en melding fra tjenesteleverandør til tjenestebruker.<br />

WSDL 2.0 definerer i alt åtte standardmønstre [176, 177], og man kan selv definere egne<br />

utvidelser:<br />

In-only, In-out, Out-In og Out-Only tilsvarer de fire typene fra version 1.1.<br />

In-Optional-Out og Out-Optional-In hvor svar er valgfritt.<br />

Robust–In-Only og Robust Out-Only hvor mottaker sender feilmelding hvis opprinnelig<br />

melding går tapt.<br />

4.2.1.2 Binding til underliggende transportlag<br />

Selv om WSDL som oftest er implementert med SOAP som kommunikasjonsprotokoll, støtter<br />

standarden også andre løsninger. WSDL 1.1 bruker SOAP 1.1, men tilbyr også direkte bruk <strong>av</strong><br />

http GET og POST med parametere, hvor innholdet ikke kodes i XML. MIME (Multipurpose<br />

Internet Mail Extensions) er en annen mulighet, hvis man ønsker å sende flere deler i ulike<br />

<strong>for</strong>mater, f.eks. bilder eller dokumenter. Som en alternativ løsning til MIME direkte over http,<br />

kan man kapsle flere MIME-vedlegg inn i SOAP [164], som blant andre WS-I anbefaler [210].<br />

WSDL 2.0 utvider med flere nye transportmuligheter. For å implementere REST (se <strong>av</strong>snitt<br />

4.2.6) kan man nå bruke flere metoder i http, PUT og DELETE i tillegg til GET og POST [176]. I<br />

tillegg til disse valgmulighetene, kan SOAP bruke andre transportløsninger enn http, som vi<br />

skal se i <strong>av</strong>snitt 4.4.2.1.<br />

20.01.2010 Versjon 1.1 29/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.2.2 Modularisering <strong>av</strong> tjenester og data<br />

Webtjenester består <strong>av</strong> operasjoner. Granulariteten til disse operasjonene bør velges i <strong>for</strong>hold<br />

til ytelse og skalerbarhet (mange små kall gir mer overhead enn ett stort),<br />

transaksjonsegenskaper (slik at man ikke trenger å ta vare på tjenestens tilstand fra en<br />

operasjon til den neste), og hvor enkel, generell og lett <strong>for</strong>ståelig oppdelingen oppfattes fra<br />

<strong>for</strong>retningssiden.<br />

Grupperingen <strong>av</strong> operasjoner i større eller mindre tjenester dreier seg mer om <strong>for</strong>valtning og<br />

styring <strong>av</strong> tjenesteleveransen. De operasjoner som brukes sammen <strong>for</strong> å oppnå en ønsket<br />

effekt, bør grupperes sammen som en tjeneste. I noen tilfeller vil man tilby ulike varianter <strong>av</strong><br />

tjenester, som tilbyr ulike mengder <strong>av</strong> operasjonene <strong>for</strong> ulike brukerkategorier. Dette kan<br />

gjøres gjennom å definere ulike tjenester innen<strong>for</strong> samme n<strong>av</strong>nerom og fil, eller i ulike<br />

n<strong>av</strong>nerom dersom man f.eks. ønsker å kunne versjonsstyre tjenestene u<strong>av</strong>hengig <strong>av</strong><br />

hverandre. For en hensiktsmessig <strong>for</strong>valtning er det viktig at strukturen <strong>av</strong> n<strong>av</strong>nerom styres <strong>av</strong><br />

behovene <strong>for</strong> vedlikehold. Det er f.eks. bedre om de knyttes til organisering og eierskap, enn<br />

om de <strong>av</strong>ledes fra interne programstrukturer i implementasjonen <strong>av</strong> tjenestene.<br />

WSDL 2.0 tillater arv <strong>av</strong> operasjoner mellom grensesnitt, og kan således være bedre egnet til<br />

å håndtere modularisering <strong>av</strong> tjenester enn <strong>for</strong>gjengerne.<br />

4.2.3 Versjonsstyring <strong>av</strong> tjenester og data<strong>for</strong>mat<br />

Tjenester og datastrukturene som de bruker vil utvikle seg over tid, og bør versjonsstyres. Det<br />

er vanlig å skille mellom hovedversjoner, som ikke er kompatible med tidligere<br />

hovedversjoner, og underversjoner som er kompatible inne<strong>for</strong> en hovedversjon. W3C har en<br />

rekke anbefalinger på dette området [149], som kan tjene som konkretiseringer <strong>av</strong><br />

<strong>arkitektur</strong>prinsippet om fleksibilitet:<br />

En spesifikasjon <strong>av</strong> data<strong>for</strong>mater bør inneholde versjonsin<strong>for</strong>masjon.<br />

Et XML-<strong>for</strong>mat bør inneholde regler og føringer <strong>for</strong> hvordan n<strong>av</strong>nerommene kan endres.<br />

En spesifikasjon bør tillate utvidelser fra en hvilken som helst partner.<br />

Utvidelser må ikke ødelegge <strong>for</strong> kon<strong>for</strong>mitet med den opprinnelige spesifikasjonen.<br />

En spesifikasjon bør definere hvordan partene skal oppføre seg når noe u<strong>for</strong>utsett<br />

skjer, f.eks. ”må ignorere” eller ”må <strong>for</strong>stå” <strong>for</strong> visse unntak.<br />

Iona [140] <strong>for</strong>eslår disse prinsippene <strong>for</strong> versjonering <strong>av</strong> WSDL:<br />

Ikke bruk datoer <strong>for</strong> versjonering <strong>av</strong> tjenester, det introduserer et nytt n<strong>av</strong>nerom <strong>for</strong><br />

hver versjon, og skaper unødvendig inkompatibilitet.<br />

Hovedversjonsnummer <strong>for</strong> en WSDL-fil bør inkluderes i filn<strong>av</strong>net og i n<strong>av</strong>nerommet, <strong>for</strong><br />

styring <strong>av</strong> kompatibilitet, men ikke underversjonsnummeret.<br />

Skill datatypene <strong>for</strong> tjenesten ut som egne n<strong>av</strong>nerom (xsd-filer), heller enn integrert i<br />

WSDL-filen <strong>for</strong> tjenesten, og importer dem inn i WSDL.<br />

Bruk standard konvensjoner <strong>for</strong> å versjonere n<strong>av</strong>nerom (xsd), altså ved å inkludere<br />

datoer (gjerne år og måned) eller hovedversjon/underversjon som del <strong>av</strong> URLen til<br />

n<strong>av</strong>nerommet.<br />

Unngå versjonsin<strong>for</strong>masjon i meldingsn<strong>av</strong>n, det skaper vanskeligheter <strong>for</strong><br />

kodegeneratorer.<br />

Inkluder versjonsin<strong>for</strong>masjon i tjenestens n<strong>av</strong>n (service) og i grensesnittn<strong>av</strong>net<br />

(interface, porttype), slik at hver versjon får sitt eget grensesnitt, og slik at tjeneste og<br />

grensesnitt har samme n<strong>av</strong>n.<br />

Nye operasjoner kan legges til i underversjoner. WSDL 2.0 tillater arv <strong>av</strong> operasjoner<br />

mellom grensesnitt, og dermed kan en ny underversjon arve fra sin <strong>for</strong>gjenger.<br />

Endringer i eksisterende operasjoner krever en ny hovedversjon.<br />

Enhver endring <strong>av</strong> datatyper (xsd) krever en ny hovedversjon.<br />

20.01.2010 Versjon 1.1 30/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Oppretthold gamle hovedversjoner så lenge noen <strong>av</strong> brukerne ikke har migrert til nyere<br />

versjoner.<br />

Intalio [51] <strong>for</strong>eslår prinsipper <strong>for</strong> versjonering <strong>av</strong> prosesser, i tråd med anbefalingene over.<br />

4.2.4 Standarder tilknyttet WSDL<br />

Figuren neden<strong>for</strong> gir oversikt over de mange <strong>standarder</strong> som er tilknyttet WSDL, og som<br />

beskrives i resten <strong>av</strong> dette kapittelet. Standardene kommer fra W3C (hvit), OASIS (grå) eller<br />

andre (mørk grå, stiplet kant).<br />

Interaksjon, komposisjon,<br />

prosess<br />

Data<br />

XPDL<br />

WS-CDL<br />

Choreography<br />

Tjenester og mellomvare<br />

WS-<br />

Inspection<br />

Kommunikasjon<br />

XML<br />

Namespaces<br />

XML Infoset<br />

BCM<br />

CAM<br />

WS-BPEL<br />

WS-<br />

Transaction<br />

UDDI<br />

XSLT<br />

XPath<br />

WS-Remote<br />

Portlets<br />

XForms<br />

WS-CAF<br />

Context<br />

WS-<br />

Discovery<br />

4.2.5 Profiler <strong>for</strong> webtjenester<br />

XML Schema<br />

1.0<br />

XML Schema<br />

1.1<br />

Figur 8. Oversikt over <strong>standarder</strong> <strong>for</strong> webtjenester.<br />

WS-I [209, 210] er en industriorganisasjon som betrakter seg som en bindeledd mellom<br />

utviklere <strong>av</strong> <strong>standarder</strong> og brukere <strong>av</strong> dem. De definerer profiler som består <strong>av</strong> en gruppe<br />

sammenhørende <strong>standarder</strong> pluss retningslinjer <strong>for</strong> hvordan man bør bruke dem sammen. Ved<br />

siden <strong>av</strong> profilene publiseres eksempler på anvendelser, og testverktøy <strong>for</strong> å sjekke om en<br />

implementasjon er i tråd med spesifikasjonene. Mange leverandører <strong>av</strong> verktøy <strong>for</strong><br />

<strong>tjenesteorientert</strong> <strong>arkitektur</strong> hevder å følge profilene til WS-I, og profilene definerer også<br />

mekanismer <strong>for</strong> å inkludere slike påstander i WSDL-beskrivelsene til tjenestene. De første<br />

versjonene <strong>av</strong> deres basisprofil [209] er også standardisert som ISO/IEC 29362:2008.<br />

Basisprofilen har utviklet seg slik [209, 210]:<br />

Sikkerhet og pålitelighet<br />

WS-Secure<br />

Conversation<br />

WS-Reliable<br />

Messaging<br />

WS-Metadata<br />

Exchange<br />

WSDL 1.1 WSDL 2.0<br />

SOAP 1.1<br />

WS-<br />

Adressing<br />

XML 1.0<br />

WS-Trust<br />

WS-Security<br />

WS-Security<br />

Policy<br />

WS-Policy<br />

SOAP 1.2<br />

WS-<br />

Federation<br />

SOAP with<br />

Attachments<br />

SOAP MTOM<br />

XOP EXI<br />

Forvaltning<br />

WS-<br />

Enumeration<br />

Versjon 1.0 (offentlig 2002, godkjent 2004) bruker WSDL1.1, UDDI 2, SOAP 1.1, http<br />

1.1, XML 1.0 (2. utg<strong>av</strong>e), og XML Schema 1.0. Sikkerhetsmekanismer er ikke<br />

obligatoriske, men retningslinjer <strong>for</strong> bruk <strong>av</strong> TLS/SSL og X.509. er inkludert.<br />

Versjon 1.1 (godkjent 2006) skiller ut detaljer om binding til SOAP i en egen profil kalt<br />

Simple SOAP Binding Profile (SSBP).<br />

o Attachments Profile 1.0 bygger på 1.1, og definerer hvordan man bør lage<br />

webtjenester som håndterer vedlegg meldingene i andre <strong>for</strong>mat enn XML.<br />

20.01.2010 Versjon 1.1 31/89<br />

SPML<br />

SAML<br />

WS-<br />

Fragment<br />

MIME<br />

WS-<br />

Management<br />

WS-Eventing<br />

WS-Resource<br />

Framework<br />

WS-Resource<br />

Transfer<br />

WS-Transfer<br />

WSDM<br />

WS-<br />

Notification<br />

XML<br />

Signature<br />

XML<br />

Encryption


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Versjon 1.2 (klar til styrets godkjenning) legger til MTOM og WS-Adressing, og bruker<br />

Attachments Profile heller enn SSBP <strong>for</strong> binding til SOAP.<br />

Versjon 2.0 (utkast fra arbeidsgruppe) går over til SOAP 1.2, og refererer dessuten til<br />

XOP.<br />

WSDL 2.0 og UDDI 3 er altså ennå ikke tatt med, selv om disse standardene har vært<br />

tilgjengelige i flere år, og WSDL 2 i motsetning til WSDL 1.1 faktisk er en godkjent standard.<br />

Dette reflekterer utbredelsen de ulike versjonene har blant leverandører og brukere. De øvrige<br />

standardene blir beskrevet i resten <strong>av</strong> dette kapittelet. I <strong>av</strong>snitt 4.8 diskuterer vi dessuten<br />

sikkerhetsprofilene til WS-I.<br />

4.2.6 REST<br />

REST (Representational State Transfer) [30] er en <strong>arkitektur</strong>stil <strong>for</strong> fleksible og skalerbare<br />

distribuerte systemer. World wide web er ut<strong>for</strong>met i tråd med denne stilen. Prinsippene i REST<br />

kan implementeres som webtjenester, men også i andre omgivelser. REST krever et klart skille<br />

mellom klient og tjener, i en lagdelt <strong>arkitektur</strong>, med et uni<strong>for</strong>mt ut<strong>for</strong>met grensesnitt mellom<br />

lagene, tilstandsløs kommunikasjon hvor klient og tjener ikke kjenner hverandres kontekst og<br />

meldingene inneholder alt den andre parten trenger å vite. Tilstandsløs kommunikasjon sørger<br />

også <strong>for</strong> at svarmeldinger kan lagres lokalt på klienten og gjenbrukes, siden to like<br />

<strong>for</strong>espørsler alltid vil gi samme svar.<br />

Det uni<strong>for</strong>me grensesnittet i REST baserer seg på identifikasjon <strong>av</strong> den ressursen man vil gjøre<br />

noe med. En ressurs oppdateres direkte i representasjonen <strong>av</strong> den, slik at en klient f.eks. kan<br />

legge inn nye verdier i et XML-dokument, og sende det tilbake til tjeneren <strong>for</strong> oppdatering.<br />

Andre operasjoner gjøres gjennom å sende selvbeskrivende og gjerne standardiserte<br />

meldinger til en ressurs. I http kan man f.eks. sende meldingene POST, GET, PUT, DELETE til<br />

en ressurs identifisert <strong>av</strong> en URI. Disse meldingene tilsvarer basisoperasjonene i de fleste<br />

REST-løsninger: CRUD (Create, Read, Update, Delete).<br />

Mens webtjenester har sin rot i programmeringsgrensesnitt <strong>for</strong> å sy sammen<br />

applikasjonskomponenter, er REST mer utviklet <strong>for</strong> kommunikasjon mellom klient og tjener,<br />

eller brukergrensesnitt og applikasjon. En <strong>arkitektur</strong> som definerer en mindre mengde<br />

meldinger som kan sendes til de aller fleste ressurser, <strong>for</strong>enkler dessuten adgangskontroll og<br />

komposisjon <strong>av</strong> tjenester. Ved siden <strong>av</strong> brukerinteraksjon er REST egnet <strong>for</strong> å gi et uni<strong>for</strong>mt<br />

grensesnitt til tjenester som gjør registre og grunndata tilgjengelige <strong>for</strong> andre virksomheter.<br />

REST er ingen egen familie <strong>av</strong> <strong>standarder</strong>, men Sun har sendt et <strong>for</strong>slag til W3C på et Web<br />

Application Description Language (WADL) som angir en standard måte å representere<br />

ressurser i XML. For interaksjon i tråd med REST mellom brukergrensesnitt og applikasjon,<br />

brukes gjerne JSON (J<strong>av</strong>ascript Object Notation) til å representere ressursene. Som nevnt over<br />

gir WSDL 2.0 bedre støtte <strong>for</strong> REST enn versjon 1.1, og flere <strong>standarder</strong> er basert på disse<br />

prinsippene, som WS-ResourceTransfer og WS-Distributed Management.<br />

4.2.7 ebXML <strong>for</strong> eHandel<br />

ebXML er en samling <strong>standarder</strong> utarbeidet <strong>av</strong> OASIS og FN <strong>for</strong> elektronisk handel og annen<br />

samhandling på tvers <strong>av</strong> organisasjoner. Målsetningen er å definere en åpen, XML-basert<br />

standard <strong>for</strong> å støtte den globale bruken <strong>av</strong> elektronisk <strong>for</strong>retningsin<strong>for</strong>masjon i en felles,<br />

sikker og konsistent måte <strong>for</strong> alle handelspartnere.<br />

ebXML ble utviklet tidlig på 2000-tallet som neste generasjons EDI (Electronic Data<br />

Interchange). Arbeidet stammet fra ooEDI (objektorientert EDI), UML/UMM, XML-teknologi og<br />

X12 EDI. ISO aksepterte ebXML som standard i 2007, med følgende deler:<br />

ISO 15000-1: ebXML Collaborative Partner Profile Agreement<br />

ISO 15000-2: ebXML Messaging Service Specification<br />

ISO 15000-3: ebXML Registry In<strong>for</strong>mation Model<br />

ISO 15000-4: ebXML Registry Services Specification<br />

ISO 15000-5: ebXML Core Components Technical Specification<br />

20.01.2010 Versjon 1.1 32/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

ebXML og RosettaNet (beskrevet neden<strong>for</strong>) var lenge viktig <strong>for</strong> å adressere svakheter ved web<br />

services. Etter hvert som web service <strong>standarder</strong> har modnet og tatt opp i seg gode løsninger<br />

fra andre områder, så har konkurrerende initiativ gjerne fokusert på tilstøtende områder. I dag<br />

kan ebXML tilby en offisiell standard <strong>for</strong> elektronisk meldingsutveksling, og de har også<br />

definert nyttige <strong>standarder</strong> <strong>for</strong> in<strong>for</strong>masjonsinnholdet i meldinger (Core Components).<br />

ebXML er i likhet med web services basert på SOAP, men de tilbyr utvidet funksjonalitet <strong>for</strong><br />

håndtering <strong>av</strong> sikkerhet, pålitelighet, <strong>for</strong>retningstransaksjoner og annet som er sentralt <strong>for</strong><br />

elektronisk samhandling. I Norge har KITH definert et rammeverk <strong>for</strong> meldingsutveksling i<br />

helsesektoren basert på ebXML [68]. Dette brukes <strong>for</strong> kommunikasjon mellom <strong>for</strong>etak, mens<br />

web services brukes internt i hvert helse<strong>for</strong>etak [69]. Standardene innen ebXML utvikles ikke<br />

videre, men de er i bruk, og metodene som ligger til grunn blir i stadig større grad<br />

implementert i web service <strong>standarder</strong>. I nyere løsninger <strong>for</strong> eHandel, som PEPPOL [28],<br />

bruker de primære transportløsningene WSDL, selv om ebXML er <strong>for</strong>tsatt er tillatt. WSDL og<br />

ebXML tilbyr ulike løsninger på flere nivåer:<br />

Område Web service <strong>standarder</strong> ebXML <strong>standarder</strong><br />

Prosess BPEL<br />

Tjeneste WSDL<br />

BPSS, CPP/CPA<br />

Register UDDI ebXML Registry<br />

Meldinger SOAP SOAP, ebMS<br />

In<strong>for</strong>masjon XML Schema Core components<br />

XML Schema<br />

4.2.7.1 ebXML Messaging Service (ebMS)<br />

ebMS er en utvidelse <strong>av</strong> SOAP som <strong>for</strong>bedrer sikkerhet og pålitelighet. Den kan brukes<br />

u<strong>av</strong>hengig <strong>av</strong> de andre komponentene i ebXML. Dette er da også den eneste komponenten<br />

som brukes i standarden <strong>for</strong> norsk helsevesen [68]. ebMS bruker SOAP med vedlegg [164] og<br />

MIME med flere deler til å definere en ebXML melding bestående <strong>av</strong> konvolutt og innhold, med<br />

hode og kropp. Innholdet kan ha andre <strong>for</strong>mater enn XML, og kan også krypteres <strong>for</strong> sikker<br />

overføring. Konvolutten benyttes til å identifisere <strong>av</strong>sender og mottager, selve meldingsutvekslingen<br />

og tidspunkt <strong>for</strong> denne, saken eller <strong>for</strong>retningsprosessen det gjelder, samt<br />

eventuelt hvilken større interaksjon denne meldingen tilhører [68].<br />

4.2.7.2 ebXML Registry & Repository<br />

Dette registeret gjør tilgjengelig in<strong>for</strong>masjon om mulig handelspartnere, og de tjenester de<br />

tilbyr. In<strong>for</strong>masjonen om partnere (Trading Partner In<strong>for</strong>mation) lagres i registeret i XML<strong>for</strong>mat,<br />

og inkluderer<br />

Collaboration Protocol Profile (CPP), en <strong>for</strong>mell beskrivelse <strong>av</strong> meldingsutvekslingen<br />

som en part tilbyr, og de samarbeidsmønstre (collaborations) den støtter.<br />

Collaboration Protocol Agreement (CPA) definerer det to parter må være enige om <strong>for</strong> å<br />

kunne samhandle, et snitt <strong>av</strong> to CPPer. Slike <strong>av</strong>taler kan brukes til å skreddersy<br />

systemene på hver side.<br />

Registre <strong>for</strong> web services beskriver først og fremst selve tjenestene, ikke de som tilbyr dem,<br />

selv om nyere versjoner også har tatt opp i seg flere <strong>av</strong> elementene fra ebXML (se <strong>av</strong>snitt<br />

4.3.2.1).<br />

4.2.7.3 Business Process Specification Schema (BPSS)<br />

BPSS spesifiserer <strong>for</strong>retningstransaksjoner og koreografien <strong>av</strong> transaksjoner til helhetlige<br />

samhandlingsmønstre. BPSS modelleres i UML, og blir konvertert til XML. Her tilbyr man altså<br />

en integrert høynivå beskrivelse <strong>av</strong> prosesser som kan <strong>for</strong>stås <strong>av</strong> brukere. Web services kan<br />

settes sammen til prosesser ved hjelp <strong>av</strong> det mer tekniske språket BPEL (<strong>av</strong>snitt 4.7.1), og<br />

20.01.2010 Versjon 1.1 33/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

brukernivå prosessbeskrivelser i f.eks. BPMN må konverteres til BPEL. BPSS brukes dessuten<br />

til å beskrive standard interaksjonsmønstre <strong>for</strong> elektronisk handel, og en katalog <strong>av</strong> felles<br />

<strong>for</strong>retningsprosesser.<br />

4.2.7.4 Core Components<br />

I likhet med WSDL bruker ebXML XML Schema til å definere in<strong>for</strong>masjonsinnholdet i kall til<br />

tjenester og de dokumenter som utveksles mellom partnere i en samhandling. Core<br />

Components tilbyr et rammeverk på toppen <strong>av</strong> dette <strong>for</strong> å definere standard språk <strong>for</strong><br />

<strong>for</strong>retningstransaksjoner generelt, og spesielt innen<strong>for</strong> ulike sektorer. Eksempler på dette blir<br />

beskrevet i <strong>av</strong>snitt 4.5.5.1.<br />

4.2.8 RosettaNet<br />

RosettaNet [136] fokuserer på innkjøp og logistikk, og mer generelt på samhandling mellom<br />

organisasjoner. Deres <strong>standarder</strong> er særlig utbredt innen elektronikkindustrien. De<br />

standardiserer meldings<strong>for</strong>mater og ”offentlige prosesser” mellom partnerne, men ikke interne<br />

prosesser. I likhet med ebXML kan dette ses på som neste generasjons EDI-løsning, ved hjelp<br />

<strong>av</strong> XML. RosettaNet ser på seg selv som en vertikal standardiseringsaktivitet som kan bygges<br />

på toppen <strong>av</strong> andre <strong>standarder</strong> som web services og ebXML. Rundt 2000 firmaer bruker dette<br />

rammeverket, etter en jevn vekst siden 2001.<br />

4.2.8.1 Protokoller <strong>for</strong> <strong>for</strong>retningstransaksjoner - PIP<br />

RosettaNets Partner Interface Processes (PIPs) definerer <strong>for</strong>retningsprosesser mellom<br />

handelspartnere, uten å detaljere de interne aktivitetene innen hver organisasjon. De <strong>av</strong>bilder<br />

aktiviteter, beslutninger og interaksjoner som inngår i en <strong>for</strong>retningstransaksjon, struktur og<br />

<strong>for</strong>mat på meldingene som skal utveksles. Spesifikasjonene er organisert etter industrisektorer<br />

og funksjoner. RosettaNet har et PIP Directory hvor medlemmer kan finne fram eksisterende<br />

definisjoner, <strong>for</strong> gjenbruk og interoperabilitet.<br />

4.2.8.2 Enklere introduksjon <strong>for</strong> små og mellomstore virksomheter<br />

RosettaNet Automated Enablement (RAE) er et program som skal sette mindre bedrifter i<br />

stand til å delta i elektronisk samhandling, gjennom å redusere kr<strong>av</strong>ene til tid, kostnad og<br />

teknisk modenhet <strong>for</strong> å implementere en PIP. Dette støttes gjennom å automatisere<br />

utrullingen <strong>av</strong> en Trading Partner Implementation Requirements (TPIR), som lar<br />

handelspartnere definere ytterligere begrensninger i tillegg til de som ligger i en standard PIP.<br />

RAE tilbyr dessuten løsninger <strong>for</strong> brukerinteraksjon, slik at mindre bedrifter får enkle<br />

grensesnitt <strong>for</strong> å legge inn den in<strong>for</strong>masjonen som trengs i de <strong>for</strong>skjellige meldingene, også<br />

uten en intern skjema- eller prosessmotor.<br />

4.2.8.3 Engineering In<strong>for</strong>mation Management<br />

RosettaNet har de siste årene fokusert på standardisering <strong>av</strong> <strong>for</strong>retningsprosesser, samordning<br />

<strong>av</strong> verdikjeder, og in<strong>for</strong>masjonsutveksling innen elektronikkindustrien, under programmet<br />

Engineering In<strong>for</strong>mation Management. De har utviklet tekniske spesifikasjoner <strong>for</strong> utveksling<br />

<strong>av</strong> in<strong>for</strong>masjon om produkter (Engineering In<strong>for</strong>mation Property Sets - EIPS), og <strong>for</strong> typiske<br />

<strong>for</strong>retningsprosesser knyttet til dette, som fakturering, datafangst, endringshåndtering,<br />

lagerstyring og resirkulering.<br />

4.2.8.4 Dictionaries<br />

Dictionaries definerer felles datatyper og egenskaper som kan brukes i ulike PIPer. Business<br />

Dictionary definerer egenskaper til grunnleggende <strong>for</strong>retningsaktiviteter, mens Technical<br />

Dictionaries definerer egenskaper <strong>for</strong> ulike produkter. RosettaNet samarbeider dessuten med<br />

UN/CEFACT om å definere in<strong>for</strong>masjonsinnhold i ebXML Core Components (se over).<br />

4.2.8.5 Implementasjon - RosettaNet Implementation Framework<br />

RosettaNet Implementation Framework (RNIF) spesifiserer løsninger <strong>for</strong> pakking, ruting og<br />

transport <strong>av</strong> meldinger som inngår i en PIP.<br />

20.01.2010 Versjon 1.1 34/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.2.8.6 Multiple Messaging Services<br />

Multiple Messaging Services (MMS) sørger <strong>for</strong> at RosettaNets XML-meldinger kan utveksles<br />

over ulike infrastrukturer. Spesifikasjoner <strong>for</strong> web services, AS2 og ebMS er utviklet.<br />

4.2.9 Semantiske tjenestebeskrivelser<br />

Flere metoder er <strong>for</strong>eslått <strong>for</strong> semantisk berikelse <strong>av</strong> webtjenester, som WSDL-S [185], OWL-S<br />

[156], og WSMO/WSML (Web Service Modeling Ontology/Language). SAWSDL (Semantic<br />

Annotations <strong>for</strong> WSDL and XML Schema) [159] er en standard fra W3C som sprang ut <strong>av</strong> dette<br />

arbeidet. Semantiske beskrivelser tilstreber en <strong>for</strong>mell, utvetydig og maskinell tolkbar <strong>for</strong>m, og<br />

dette preger teknologiene, selv om flere og flere innser at det er viktig med <strong>for</strong>mater som er<br />

lette å <strong>for</strong>stå <strong>for</strong> mennesker. Semantisk berikelse skal gjøre det enklere å finne fram til riktige<br />

webtjenester i en katalog, og kan også åpne <strong>for</strong> regelstyring <strong>av</strong> applikasjoner.<br />

SAWSDL legger inn lenker (semantiske annotasjoner) til standard begrepsmodeller<br />

(ontologier) i WSDL-filene. Dette kan brukes til å definere startbetingelser (precondition) og<br />

effekter til operasjoner, og <strong>for</strong> å kategorisere datainnhold og tjenester (modelreference).<br />

Løsningen bygger på standard utvidelsesmekanismer <strong>for</strong> WSDL og XML Schema. SAWSDL<br />

endrer kun WSDL-filene. Annoteringene har ingen påvirkning på SOAP-kommunikasjonen<br />

under bruk <strong>av</strong> tjenestene.<br />

4.3 Mellomvare<br />

I platt<strong>for</strong>mer <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> er en tjenestebuss (Enterprise Service Bus – ESB)<br />

som oftest den sentrale mellomvaren [10]. Utover direkte overføring <strong>av</strong> meldinger mellom<br />

tjenesteleverandøren og de ulike brukerne, tilbyr en slik komponent disse kjernefunksjonene<br />

[6]:<br />

Ruting <strong>av</strong> meldinger, slik at f.eks. innholdet kan styre hvilken tjenesteyter som skal<br />

behandle <strong>for</strong>espørselen,<br />

Trans<strong>for</strong>mering <strong>av</strong> meldingsinnholdet mellom tjenestebrukers og leverandørens<br />

<strong>for</strong>mater,<br />

Validering <strong>av</strong> meldinger, at innhold og <strong>for</strong>mat er i henhold til tjenestekontrakt og<br />

grensesnitt.<br />

Ved siden <strong>av</strong> kjernefunksjonene <strong>for</strong> meldingshåndtering, så tilbys ofte:<br />

Tjenestekatalog hvor alle tilgjengelige tjenester beskrives,<br />

Oppfanging og kringkasting <strong>av</strong> hendelser til tjenester som skal reagere på dem,<br />

Eksekvering <strong>av</strong> prosesser og andre sammensatte tjenester,<br />

Modellering <strong>for</strong> utvikling og komposisjon <strong>av</strong> tjenester,<br />

Regelmotorer <strong>for</strong> <strong>for</strong>retninglogikk, kompleks meldingsruting og prosessflyt,<br />

Lager <strong>for</strong> metadata som definerer gjenbrukbare datamodeller,<br />

Forvaltningstjenester <strong>for</strong> å logge og overvåke driften, håndtere sikkerhet og<br />

adgangskontroll, versjonering, feilrapportering m.m.,<br />

Grensesnitt og koblingspunkter mot andre omgivelser og virksomhetens IKT-løsninger.<br />

f.eks. ERP, CRM, HR m.m.<br />

Ved siden <strong>av</strong> en tjenestebuss finner man gjerne tilknyttede komponenter <strong>for</strong> [6]<br />

Engangs innlogging (Single Sign On - SSO) og distribuert identitetshåndtering<br />

Brukergrensesnitt og portaler<br />

Kontrakts<strong>for</strong>valtning og fakturering<br />

Overvåking <strong>av</strong> <strong>for</strong>retningsprosesser og –aktiviteter<br />

Automatisk kontroll <strong>av</strong> at tjenestereglementene etterleves<br />

20.01.2010 Versjon 1.1 35/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Forvaltning <strong>av</strong> kildedata og eierskap til data<br />

En buss skiller seg fra en hub ved at datatransporten er desentralisert. I begge <strong>arkitektur</strong>ene<br />

er <strong>for</strong>valtningen og styringen sentralisert.<br />

4.3.1 Ulike typer mellomvare<br />

Skillet mellom applikasjonsintegrasjon (EAI) [9] og <strong>tjenesteorientert</strong> <strong>arkitektur</strong> [6] blir stadig<br />

mindre etter hvert som tjenestebusser tilbyr flere og flere koblingspunkter mot proprietære<br />

applikasjoner, databasesystem og stormaskinomgivelser, mens mellomvare <strong>for</strong> EAI støtter de<br />

fleste <strong>standarder</strong> <strong>for</strong> webtjenester. De tekniske løsningene er også overlappende. Dette<br />

<strong>av</strong>snittet ser der<strong>for</strong> på ulike typer mellomvare, som man også vil finne i <strong>tjenesteorientert</strong>e<br />

<strong>arkitektur</strong>er.<br />

4.3.1.1 Fjernprosedyrekall<br />

Denne enkleste <strong>for</strong>men <strong>for</strong> integrasjon var utgangpunkt <strong>for</strong> tidlig eksperimentering og<br />

standardisering innen <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. I en slik løsning kaller en programtjeneste<br />

opp en operasjon i en annen omgivelse direkte. Kallet <strong>for</strong>etas synkront, og mellomvaren<br />

sørger <strong>for</strong> at løsningsutviklerne ikke trenger å bry seg om kommunikasjonskanalen.<br />

Brukerprogrammet kan dermed <strong>for</strong>holde seg til distribuerte tjenester på sammen måte som<br />

lokale.<br />

Fjernprosedyrekall (Remote Procedure Call - RPC). skaper betydelig overhead, og en<br />

nettverkstrafikk som ikke skalerer bra oppover. Synkron kommunikasjon gjør løsningen dårlig<br />

egnet over ustabile kommunikasjonskanaler som internett [9].<br />

4.3.1.2 Meldingsorienterte løsninger (MOM)<br />

Meldingsorientert mellomvare (MOM) ble utviklet <strong>for</strong> å adressere svakheter ved synkrone<br />

fjernprosedyrekall. MOM innefører en meldingskø mellom sender og mottager [9].<br />

Meldingskøen kan garantere persistens ved drifts<strong>av</strong>brudd og sikker overlevering <strong>av</strong><br />

meldingene, og gjør det mulig å bygge ytterligere funksjonalitet beskrevet i innledningen til<br />

dette <strong>av</strong>snittet.<br />

MOM kan rute meldinger etter direkte adressering, eller i en løst sammenkoblet <strong>arkitektur</strong> hvor<br />

mottakerne abonnerer på meldinger om bestemte tema eller hendelser. Muligheter <strong>for</strong> å<br />

distribuere meldingskøen gir god skalerbarhet, med asynkron kommunikasjon som er egnet<br />

<strong>for</strong> internett. Den viktigste svakheten er at responstider ikke kan garanteres [9].<br />

J<strong>av</strong>a Message Service (JMS) er et åpent grensesnitt <strong>for</strong> MOM som gjør det mulig å<br />

opprettholde en løs kobling mellom mellomvaren og applikasjonene som bruker den.<br />

4.3.1.3 Distribuerte objekter og komponenter<br />

Distribuerte objekter legger et abstraksjonslag på toppen <strong>av</strong> RPC som gjør prosedyrekallene<br />

u<strong>av</strong>hengig <strong>av</strong> underliggende språk, nettverk og teknologiplatt<strong>for</strong>m [9]. De mest kjente<br />

eksemplene er OMGs CORBA, og Microsofts DCOM. I disse <strong>arkitektur</strong>ene trenger ikke<br />

applikasjonene som bruker tjenester fra objekter og komponenter å vite hvor de er lokalisert.<br />

4.3.1.4 Transaksjonsorienterte løsninger<br />

Transaksjonsprosessering på tvers <strong>av</strong> applikasjoner er en ut<strong>for</strong>dring som har skapt en egen<br />

type mellomvare. For å sikre applikasjonenes og databasenes integritet, sørger disse<br />

komponentene <strong>for</strong> at alle oppdateringer rulles tilbake hvis et ledd i en transaksjon feiler, på<br />

tvers <strong>av</strong> systemer og databaser. Disse løsningene har vokst videre til applikasjonstjenere, som<br />

også tilbyr balansering <strong>av</strong> belastning, overflytting til annen tjener ved feil, gjenbruk <strong>av</strong><br />

databasetilkoblinger, og tjenester <strong>for</strong> å koble til eksterne systemer. Dette gir en skalerbar og<br />

robust løsning, men skaper en tett knytning mellom applikasjonene og mellomvaren.<br />

4.3.1.5 Meldingsmeglere<br />

Meldingsmeglere (message brokers) støtter trans<strong>for</strong>masjon, lagring og ruting <strong>av</strong> meldinger<br />

basert på hendelser og regler, på toppen <strong>av</strong> MOM.<br />

20.01.2010 Versjon 1.1 36/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.3.2 Beskrivelse og oppdagelse <strong>av</strong> tjenester<br />

Standardene vi så på i <strong>av</strong>snitt 4.2, i første rekke WSDL, definerer det tekniske grensesnittet til<br />

en tjeneste, med operasjoner, kommunikasjonsprotokoller og meldings<strong>for</strong>mater. Standardene<br />

neden<strong>for</strong> kan brukes til å gi tilgang til slike beskrivelser, og til å utvide beskrivelsene med mer<br />

in<strong>for</strong>masjon om tjenestene.<br />

4.3.2.1 UDDI - Universal Description, Discovery, and Integration<br />

UDDI er den sentrale standarden <strong>for</strong> kataloger som gir brukere tilgang til tjenestebeskrivelser i<br />

WSDL og in<strong>for</strong>masjon om virksomhetene som tilbyr dem. Grensesnittet til UDDI er definert<br />

gjennom standardiserte web services. Versjon 1 etablerte grunnleggende funksjonalitet, mens<br />

versjon 2 [93] oppdaterte til nye <strong>standarder</strong> <strong>for</strong> web services, og innførte metoder <strong>for</strong><br />

klassifisering <strong>av</strong> tjenester. Versjon 3 [94] legger til sikker interaksjon mellom åpne<br />

samhandlingsløsninger og lukket intern implementasjon <strong>av</strong> tjenester.<br />

UDDI er posisjonert som katalog også <strong>for</strong> ebXML [95], og har delvis tatt over <strong>for</strong> deres<br />

registre. Katalogene var opprinnelig tenkt brukt til elektronisk samhandling, gjennom et slags<br />

”gule sider” hvor kunder kunne bruke til å finne ulike leverandører <strong>av</strong> tjenestene de etterspør.<br />

Denne bruken tok ikke <strong>av</strong>. En <strong>av</strong> grunnene til dette er at tekniske grensesnitt som WSDL ikke<br />

gir all den in<strong>for</strong>masjon om en tjeneste som trengs <strong>for</strong> å kunne <strong>for</strong>eta en <strong>for</strong>retningsmessig<br />

vurdering. ebXML og RosettaNet gikk lenger i å dekke virksomhetsnivået, ved å definere<br />

standard prosesser og meldingsinnhold, og gjennom å knytte seg opp til konkrete initiativ i<br />

ulike bransjer.<br />

Etter hvert har UDDI i langt større grad blitt brukt i virksomhetsinterne tjeneste<strong>arkitektur</strong>er,<br />

som en <strong>av</strong> flere komponenter i en tjenestebuss. Her holder katalogen oversikt over hvilke<br />

tjenester som er tilgjengelig fra hvem, og hjelper til å støtte distribusjon og <strong>for</strong>valtning. Dette<br />

gjør en løsere kobling mellom bruker og leverandør mulig, og gir robusthet ved drifts<strong>av</strong>brudd<br />

hos en installasjon <strong>av</strong> en tjeneste.<br />

UDDI gjør en føderasjon <strong>av</strong> kataloger mulig. En katalog i UDDI kan bestå <strong>av</strong> flere noder, f.eks.<br />

satt opp <strong>av</strong> ulike organisasjoner. Flere kataloger kan også kobles sammen slik at de deler<br />

n<strong>av</strong>nerom <strong>for</strong> identifikasjon <strong>av</strong> elementer. Dette er blant annet nyttig <strong>for</strong> å koble sammen<br />

interne og åpent tilgjengelige kataloger.<br />

4.3.2.2 WS-Inspection<br />

WS-Inspection Language (WSIL) er et <strong>for</strong>slag fra IBM og Microsoft til en felles standard <strong>for</strong> å gi<br />

en samlet oversikt over de <strong>for</strong>skjellige webtjenestene som en leverandør tilbyr. Sammenlignet<br />

med UDDI tilbyr WSIL en enklere, mer teknisk oversikt over tjenester. Gjennom bruk <strong>av</strong><br />

nøstede referanser mellom spesifikasjonsdokumenter, følger WSIL en desentralisert<br />

tilnærming. WSIL var ment å ta over <strong>for</strong> Microsofts DISCO og lignende proprietære løsninger,<br />

men verktøystøtten er begrenset [6].<br />

4.3.2.3 WS–Discovery<br />

Denne standarden fra OASIS har Web Services Dynamic Discovery [103] som fullt n<strong>av</strong>n. Den<br />

gjør det mulig å <strong>for</strong>espørre et dynamisk nettverk <strong>av</strong> registrerte tjenere om hvem som tilbyr en<br />

gitt tjeneste. Tjenergruppene kan jobbe ad-hoc, ved at alle <strong>for</strong>espørsler kringkastet, eller i<br />

styrt modus, hvor en sentral tjener (discovery proxy) mottar <strong>for</strong>espørslene og sender dem<br />

videre bare til aktuelle registrerte tilbydere. Hvis den sentrale tjeneren blir utilgjengelig, går<br />

gruppen tilbake til å operere ad-hoc. Styrt modus skalerer bedre til store nettverk.<br />

Sammenlignet med UDDI er WS-Discovery en enklere løsning, som egner seg bedre <strong>for</strong><br />

tjenester som ikke alltid er tilkoblet nettet, eller andre <strong>for</strong>mer <strong>for</strong> dynamiske nettverk.<br />

Gjennom at man ikke har noen sentral katalog, men i stedet oppdager dynamisk hvilke<br />

tilbydere som er tilgjengelig i den omgivelsen man til enhver tid befinner seg i, unngår man<br />

alle problemer med utdaterte kataloger.<br />

4.3.2.4 WS-Policy<br />

Web Services Policy Framework [182] spesifiserer et XML-<strong>for</strong>mat som tilbydere kan bruke til å<br />

beskrive sin oppførsel på ulike områder som sikkerhet og tjenestekvalitet. Det kan også<br />

20.01.2010 Versjon 1.1 37/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

brukes <strong>av</strong> kunder <strong>for</strong> å spesifisere kr<strong>av</strong> til disse egenskapene. Rammeverket definerer<br />

dessuten byggesteinene som andre spesifikasjoner kan bruke til å definere språk <strong>for</strong> å<br />

uttrykke mer spesialiserte regler, noe som brukes bl.a. i WS-SecurityPolicy (<strong>av</strong>snitt 4.8.4.1),<br />

WS-Transaction (4.7.5) og WS-ReliableMessaging (4.8.7).<br />

Regler (policies) bygges opp hierarkisk ved hjelp <strong>av</strong> logiske operatorer som sier om alle eller<br />

bare en <strong>av</strong> delreglene (assertions) trenger å være oppfylt. Noen regler kan være rådgivende<br />

(ignorable, optional), andre er obligatoriske. Regler kan referere til andre regler, og bruke dem<br />

som delregler.<br />

WS-Policy Attachments [183] knytter regler til subjektene som de gjelder <strong>for</strong>. En<br />

regeltilknytning (policy attachment) er en mekanisme som knytter regler til et område (policy<br />

scope) <strong>av</strong> subjekter. Tilknytningen kan <strong>for</strong>etas på to måter: Integrert som en del <strong>av</strong><br />

metadataene om subjektet, eller med en u<strong>av</strong>hengig spesifikasjon som knyttes til subjektet<br />

gjennom en ekstern binding. Spesifikasjonen viser hvordan dette kan brukes til å knytte regler<br />

til elementer i XML, WSDL og UDDI.<br />

4.3.2.5 WS-Metadata Exchange<br />

Web Service Metadata Exchange [178] er en spesifikasjon under utvikling fra W3C. Den angir<br />

en standard utvidbar måte å representere in<strong>for</strong>masjon om en tjeneste på, å publisere, finne<br />

fram og hente ut slik in<strong>for</strong>masjon. WSDL beskriver operasjoner, meldinger og adressen til<br />

tilbyderen, mens WS-Policy (se over) beskriver tjenestens evne til å håndtere transaksjoner og<br />

pålitelig kommunikasjon. Denne standarden kan brukes til alle andre metadata. De kan enten<br />

hentes ut gjennom direkte <strong>for</strong>espørsel (pull), eller inkluderes i meldingshodet (push) i tråd<br />

med WS-Addressing (<strong>av</strong>snitt 4.4.4). Alle metadata om en tjeneste kan hentes ut i en<br />

operasjon, eller filtreres i henhold til hva mottakeren ber om.<br />

4.3.3 Teknisk styring og drift <strong>av</strong> tjenester<br />

De <strong>for</strong>rige <strong>av</strong>snittene tok <strong>for</strong> seg grunnleggende metoder <strong>for</strong> å gjøre in<strong>for</strong>masjon om tjenester<br />

tilgjengelig <strong>for</strong> brukerne. Vi tar nå <strong>for</strong> oss <strong>standarder</strong> som bygger videre på dette <strong>for</strong> å styre<br />

leveranse og <strong>for</strong>valtning <strong>av</strong> tjenester.<br />

4.3.3.1 WSDM – Distributed Management<br />

WSDM [104] er en standard fra OASIS som definerer et grensesnitt som styringsverktøy kan<br />

bruke til å hente in<strong>for</strong>masjon ut fra <strong>tjenesteorientert</strong> mellomvare. In<strong>for</strong>masjonen kan deretter<br />

knyttes sammen med annen status- og styringsin<strong>for</strong>masjon, og presenteres til brukerne<br />

gjennom dashboards eller lignende. Slik kan man integrere drift og <strong>for</strong>valtning <strong>av</strong> heterogene<br />

tekniske <strong>arkitektur</strong>er. Styringsin<strong>for</strong>masjonen er tilgjengelig gjennom oppslag (push) eller<br />

gjennom abonnering på beskjed om hendelser (pull ved hjelp <strong>av</strong> WS-Notification, se <strong>av</strong>snitt<br />

4.4.3.2).<br />

WSDM består <strong>av</strong> to spesifikasjoner:<br />

Management Using Web Services (MUWS)<br />

Management Of Web Services (MOWS)<br />

MUWS definerer hvordan man kan representere og aksessere <strong>for</strong>valtningsgrensesnitt <strong>for</strong><br />

ressurser, inkludert webtjenester. Basis egenskaper som identitet, måleparametere <strong>for</strong> ytelse<br />

og tilgjengelighet, konfigurering og <strong>av</strong>hengigheter kan settes sammen til et helhetlig styringssystem.<br />

MOWS beskriver hvordan webtjenester kan <strong>for</strong>valtes som ressurser i tråd med MUWS.<br />

MOWS definerer mekanismer og metoder <strong>for</strong> hvordan webtjenester kan <strong>for</strong>valtes i en<br />

interoperabel <strong>arkitektur</strong> på tvers <strong>av</strong> virksomhetsgrenser.<br />

4.3.3.2 WS-Management<br />

WS-Management er en SOAP-basert standard som maskinvare, applikasjoner og webtjenester<br />

kan bruke til å publisere in<strong>for</strong>masjon om seg selv og sin status, slik at de lettere kan styres og<br />

<strong>for</strong>valtes [22]. Den spesifiserer følgende funksjoner:<br />

Oppdagelse <strong>av</strong> <strong>for</strong>valtningsressurser og n<strong>av</strong>igasjon mellom dem,<br />

20.01.2010 Versjon 1.1 38/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Opprettelse, lesing, oppdatering og sletting <strong>av</strong> parametre og verdier <strong>for</strong> system<strong>for</strong>valtningen,<br />

Gi oversikt over innholdet i samlinger <strong>av</strong> ressurser, parametere, logger,<br />

Abonnering slik at <strong>for</strong>valtningskomponenter får beskjed om hendelser som de bør<br />

reagere på,<br />

Utførelse <strong>av</strong> parametriserte <strong>for</strong>valtningsmetoder.<br />

WS-Management er koblet opp til en felles in<strong>for</strong>masjonsmodell <strong>for</strong> tjeneste<strong>for</strong>valtning (CIM)<br />

som også er standardisert <strong>av</strong> DMTF. WSDM og WS-Management tilbyr overlappende<br />

funksjonalitet, og IBM, en <strong>av</strong> sponsorene bak WSDM, har sammen med Microsoft, HP og Intel<br />

beskrevet hvordan de to standardene kan kobles sammen [47].<br />

WSDM bruker andre <strong>standarder</strong> fra OASIS, som WS-Notification og WS-Resource Framework.<br />

WS-Management bygger først og fremst på <strong>standarder</strong> fra W3C, som WS-Transfer, og<br />

industri<strong>for</strong>slag som WS-Eventing og WS-Enumeration. Disse standardene er beskrevet<br />

neden<strong>for</strong>, i <strong>av</strong>snitt 4.4.3 og 4.5.8.<br />

WS-Management har etter hvert fått mest støtte fra industrien. Samtidig er WSDM mer rettet<br />

inn mot <strong>for</strong>valtning <strong>av</strong> webtjenester, mens WS-Management er drevet fram <strong>av</strong><br />

maskinvareleverandører, og de to løsningene kan samvirke [47].<br />

4.3.3.3 WS-Transfer og WS-ResourceTransfer<br />

WS-Transfer [187] definerer webtjenester <strong>for</strong> å hente ut in<strong>for</strong>masjon om ressurser og<br />

ressursfabrikker som kan opprette nye ressurser. Tjenestene følger typisk mønster fra REST,<br />

med opprettelse, lesing, skriving og sletting. Ressurser er i denne sammenhengen<br />

endepunkter i henhold til WS-Adressing (<strong>av</strong>snitt 4.4.4).<br />

WS-Fragment [181] utvider WS-Transfer med mekanisme som tillater klienter å hente ut eller<br />

endre deler <strong>av</strong> en ressurs, uten at man trenger å overføre hele ressursen.<br />

I likhet med til WS-Transfer, som den bygger på, er WS-ResourceTransfer nå utkast til<br />

standard i W3C [184]. Målet er å støtte felles kr<strong>av</strong> fra WS-Management og WS-<br />

ResourceFramework (se neden<strong>for</strong>), samt inkorporere andre <strong>standarder</strong> <strong>for</strong> sikker, pålitelig og<br />

transaksjonsbasert meldingsutveksling. En viktig utvidelse er mulighet til å adressere deler <strong>av</strong><br />

en ressurs (fragmenter), ikke bare ressursen som helhet.<br />

4.3.3.4 WS-Resource Framework<br />

WSRF [108] definerer et åpent rammeverk <strong>for</strong> aksess til ressurser og deres tilstander,<br />

gjennom webtjenester. Dette er altså det motsatte <strong>av</strong> REST (<strong>av</strong>snitt 4.2.6) som <strong>for</strong>utsetter<br />

tilstandsløse ressurser. Poenget er å håndtere situasjoner hvor meldinger kan gi ulike svar<br />

<strong>av</strong>hengig <strong>av</strong> tjenestens tilstand, <strong>for</strong> eksempel <strong>for</strong> å implementere sekvenser i en<br />

interaksjonsprotokoll. WSRF har 5 deler:<br />

WS-Resource som definerer hva en ressurs er og hvordan en webtjeneste kan bli<br />

identifisert og behandlet som en ressurs,<br />

WS-ResourceProperties brukes til å definere egenskapene til en tjeneste, og deres<br />

verdier, gjennom standard operasjoner i tråd med REST (Get, Set, Update, Insert,<br />

Delete),<br />

WS-ResourceLifetime definerer standard egenskaper knyttet til ressursens livsløp, dens<br />

opprettelse, bruk og sletting,<br />

WS-BaseFault definerer standard feilmeldinger <strong>for</strong> de ulike operasjonene i WSRF,<br />

WS-ServiceGroup, som gjør at man kan bruke mekanismene over på grupper <strong>av</strong><br />

tjenester, ikke bare enkelttjenester.<br />

4.3.3.5 SML - Service Modeling Language<br />

SML [160] er en standard fra W3C (2009), utviklet <strong>av</strong> Microsoft, IBM, HP m.fl. SML definerer<br />

en notasjon i XML <strong>for</strong> å modellere komplekse systemer og tjenester, deres struktur,<br />

20.01.2010 Versjon 1.1 39/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

begrensninger, oppførselsregler og beste praksis. Formålet er først og fremst å styre<br />

<strong>for</strong>valtning og drift <strong>av</strong> systemene, inkludert maskinvare og basis programvarekomponenter,<br />

fra ulike leverandører. SML er <strong>for</strong>eslått som språk <strong>for</strong> innholdet i WSDM/WS-Management [47].<br />

SML bruker XSLT og Schematron til å uttrykke logiske regler (boolean), og SML-spesifikasjoner<br />

holdes adskilt fra de operative spesifikasjonene som inngår i løsningen, slik som filer med<br />

WSDL og XSD. Ved siden <strong>av</strong> kjernespråket, definerer SML et utvekslings<strong>for</strong>mat kalt SML-IF, og<br />

mekanismer <strong>for</strong> å definere lenker mellom spesifikasjoner, bygd på toppen <strong>av</strong> XLink.<br />

4.4 Kommunikasjon<br />

Kommunikasjons<strong>standarder</strong> ligger selvfølgelig under enhver meldingsutveksling i<br />

<strong>tjenesteorientert</strong>e <strong>arkitektur</strong>er, men transport<strong>standarder</strong> er ikke spesifikke <strong>for</strong> denne<br />

anvendelsen. Dette <strong>av</strong>snittet tar kort <strong>for</strong> seg de <strong>standarder</strong> som er fundamentale <strong>for</strong><br />

tjenestekommunikasjon eller utviklet spesielt <strong>for</strong> en slik <strong>arkitektur</strong>.<br />

4.4.1 Metoder <strong>for</strong> meldingsutveksling<br />

Meldingsutveksling kan implementeres på mange måter. Disse kan beskrives som mønstre<br />

innen følgende områder [46]:<br />

U<strong>for</strong>ming <strong>av</strong> meldinger <strong>for</strong> kommandoer, dokumentoverføring eller beskjed om<br />

hendelser, mønstre <strong>for</strong> meldingsutveksling med spørsmål og svar (se <strong>av</strong>snitt 4.2.1.1),<br />

meldinger som inneholder svaradresse, korrelasjon som sørger <strong>for</strong> å identifisere hva en<br />

melding besvarer, oppdeling <strong>av</strong> store datamengder til sekvenser <strong>av</strong> mindre meldinger,<br />

regler <strong>for</strong> når en melding blir utdatert, og versjonsstyring <strong>av</strong> meldings<strong>for</strong>mater.<br />

Meldingskanaler <strong>for</strong> punkt-til-punkt kommunikasjon, abonnering og kringkasting,<br />

kanaler som skiller mellom ulike typer meldinger, egne kanaler <strong>for</strong> håndtering <strong>av</strong><br />

feilaktige meldinger eller meldinger som systemet ikke klarer å sende til mottaker,<br />

kanaler med garantert leveranse, kanaladaptere <strong>for</strong> å koble til eksterne system, broer<br />

mellom ulike meldingssystem, og meldingsbusser <strong>for</strong> løs sammenkobling.<br />

Tilkobling <strong>av</strong> endepunkter gjennom en synkron eller asynkron gateway, ofte med<br />

trans<strong>for</strong>mering <strong>av</strong> meldinger til interne <strong>for</strong>mater, transaksjonshåndtering, med jevnlig<br />

sjekk om det har kommet nye meldinger, eller hendelsesdrevet reaksjon på hver enkelt<br />

melding. Flere mottakere kan konkurrere om å ta i mot <strong>for</strong>espørsler på samme kanal,<br />

eller la dem <strong>for</strong>deles <strong>av</strong> en sentral megler, kanskje <strong>av</strong>hengig <strong>av</strong> meldingens type.<br />

Kanskje trenger man en stabil abonnent som kan lagre meldinger når mottakeren ikke<br />

er tilgjengelig, og funksjonalitet som sorterer ut duplikatmeldinger? Sist men ikke<br />

minst, hvordan kan man sørge <strong>for</strong> at en melding aktiverer en tjeneste hos mottakeren?<br />

Ruting gjennom filtrering og <strong>for</strong>deling <strong>av</strong> meldinger på ulike kanaler, gjerne styrt <strong>av</strong><br />

meldingens innhold, med lokale filtre som sorterer ut uinteressante meldinger –<br />

<strong>av</strong>hengig eller u<strong>av</strong>hengig <strong>av</strong> mottakerens tilstand, dynamiske rutere som tillater at<br />

kanaler legges til eller blir fjernet, distribusjon til dynamiske mottakerlister, oppsplitting<br />

<strong>av</strong> meldinger i deler som sendes til ulike adressater, aggregering <strong>av</strong> delmeldinger,<br />

sortering <strong>av</strong> meldinger tilbake til riktig rekkefølge, spredning og samling når samme<br />

melding kan besvares <strong>av</strong> flere, omgåelse <strong>av</strong> steg <strong>av</strong>hengig <strong>av</strong> innhold eller tilstand,<br />

regel- eller prosessmotorer <strong>for</strong> ruting, og meglere som kobler sender og mottaker fra<br />

hverandre og sørger <strong>for</strong> sentral styring med kommunikasjonen.<br />

Trans<strong>for</strong>mering og oversettelse <strong>av</strong> innholdet i meldingene, mellom ulike datastrukturer,<br />

datatyper, representasjons<strong>for</strong>mater og kommunikasjonsprotokoller. Dette inkluderer<br />

pakking i og åpning <strong>av</strong> konvolutter, berikelse <strong>av</strong> innhold ved hjelp <strong>av</strong> tilknyttede<br />

databaser, filtrering <strong>for</strong> <strong>for</strong>enkling <strong>av</strong> innholdet, validering <strong>av</strong> data, normalisering <strong>av</strong><br />

data fra ulike kilde<strong>for</strong>mater til ett felles <strong>for</strong>mat, og definisjon <strong>av</strong> felles, kanoniske<br />

datamodeller <strong>for</strong> mange aktører.<br />

System<strong>for</strong>valtning gjennom en egen styringsbuss på tvers <strong>av</strong> ulike systemer,<br />

teknologier og lokaliseringer, gjennom å rute meldinger om en omvei <strong>for</strong> validering,<br />

testing og diagnose <strong>av</strong> feil, eller gjennom ”<strong>av</strong>lytting” <strong>av</strong> trafikken. Andre teknikker<br />

20.01.2010 Versjon 1.1 40/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

inkluderer logging <strong>av</strong> historikk og kanskje lagring <strong>av</strong> alle overførte meldinger, smart<br />

proxies som tar vare på returadressene til meldingene, egne testmeldinger underveis i<br />

en strøm <strong>av</strong> meldinger, og metoder <strong>for</strong> å tømme kanaler <strong>for</strong> utdaterte og uønskede<br />

meldinger.<br />

Som vi skal se neden<strong>for</strong>, implementerer standardene <strong>for</strong> meldingsutveksling i<br />

<strong>tjenesteorientert</strong>e <strong>arkitektur</strong>er ulike kombinasjoner <strong>av</strong> disse mønstrene.<br />

4.4.2 Standarder <strong>for</strong> direkte kall til tjenester<br />

Her ser vi på de grunnleggende standardene <strong>for</strong> meldingsutveksling. Etterfølgende del<strong>av</strong>snitt<br />

tar <strong>for</strong> seg protokoller <strong>for</strong> mer <strong>av</strong>anserte meldingsmønstre, <strong>for</strong>bedret sikkerhet eller ytelse på<br />

toppen <strong>av</strong> disse metodene.<br />

4.4.2.1 SOAP<br />

SOAP er den dominerende protokollen <strong>for</strong> meldingsutveksling i <strong>tjenesteorientert</strong>e <strong>arkitektur</strong>er.<br />

SOAP overfører meldinger i XML-<strong>for</strong>mat over http, og kan der<strong>for</strong> gå gjennom typiske<br />

brannmurer som er stengt <strong>for</strong> tidligere løsninger som Corba, DCOM og J<strong>av</strong>a RMI. Både versjon<br />

1.1 [161] og 1.2 [162, 163] er i utstrakt bruk sammen med WSDL 1.1 og 2.0. SOAP erstattet i<br />

sin tid tidligere løsninger <strong>for</strong> fjernprosedyrekall med XML over http, som XML-RPC [208].<br />

SOAP er en fleksibel protokoll, u<strong>av</strong>hengig <strong>av</strong> programmeringsstiler, språk og platt<strong>for</strong>mer. SOAP<br />

kan bindes til <strong>for</strong>skjellige underliggende transport<strong>standarder</strong>. I standarden er det kun definert<br />

bindinger til http.<br />

SOAP definerer en meldingsstruktur bestående <strong>av</strong> konvolutt og innhold. Konvolutten beskriver<br />

hva meldingen inneholder og hvordan den skal behandles. Standarden definerer dessuten ulike<br />

måter å kode innholdet på i XML, og ulike mønstre <strong>for</strong> meldingsinteraksjon med <strong>for</strong>espørsler<br />

og svar.<br />

W3C har dessuten <strong>for</strong>eslått en metode <strong>for</strong> å knytte SOAP-meldinger sammen med innhold som<br />

har annet <strong>for</strong>mat enn XML, som vedlegg etter MIME-standarden [164]. Denne løsningen<br />

anbefales blant annet <strong>for</strong> ebXML og <strong>av</strong> WS-I [210].<br />

4.4.2.2 MTOM - Message Transmission Optimization Mechanism<br />

SOAP MTOM [165] er en anbefalt metode fra W3C <strong>for</strong> å øke overføringshastigheten på lange<br />

meldinger. Den baserer seg på å pakke sammen XML-innholdet til et kompakt binært <strong>for</strong>mat.<br />

Man kan velge ut hvilke deler <strong>av</strong> meldingen som skal pakkes sammen, slik at viktige<br />

elementer som konvolutten <strong>for</strong>tsatt kan være lett tilgjengelig. Når en melding sendes via flere<br />

noder, kan MTOM brukes til et hvilket som helst steg u<strong>av</strong>hengig <strong>av</strong> de andre stegene. MTOM<br />

baserer seg i likhet med SOAP med vedlegg (se over) på MIME multipart, og bruker i tillegg<br />

XML-binary Optimized Packaging (XOP, se <strong>av</strong>snitt 4.5.7) <strong>for</strong> komprimering <strong>av</strong> innholdet.<br />

4.4.2.3 JSON-RPC<br />

JSON-RPC er en parallell til SOAP som i stedet <strong>for</strong> XML bruker J<strong>av</strong>ascript Object Notation<br />

(JSON, <strong>av</strong>snitt 4.5.6.1) <strong>for</strong> representasjon <strong>av</strong> data. JSON-RPC brukes når AJAX<br />

brukergrensesnitt (<strong>av</strong>snitt 4.6.6) skal kommunisere med underliggende tjenester, gjerne i tråd<br />

med prinsippene <strong>for</strong> REST (<strong>av</strong>snitt 4.2.6). Løsningen tilbys i bibliotek <strong>for</strong> flere<br />

programmeringsspråk, og brukes blant annet <strong>av</strong> Google web toolkit. I likhet med <strong>for</strong>gjengeren<br />

XML-RPC [208] er denne løsningen langt enklere enn SOAP, med færre datatyper og<br />

operasjoner, og dermed ikke like generell, utvidbar og slagkraftig. SOAPjr [138] er en<br />

mellomløsning som legger til SOAP sin inndeling <strong>av</strong> meldinger i konvolutt, hode og kropp, <strong>for</strong> å<br />

få en mer standardisert struktur på JSON-RPC.<br />

4.4.2.4 Komponentbaserte <strong>arkitektur</strong>er<br />

Mange <strong>av</strong> ut<strong>for</strong>dringene som i dag preger <strong>tjenesteorientert</strong> <strong>arkitektur</strong> ble tidligere adressert i<br />

komponentorienterte <strong>arkitektur</strong>er som CORBA, DCOM og J<strong>av</strong>a Enterprise Edition. OMGs CORBA<br />

er en åpen <strong>arkitektur</strong>, med en generell og en internet-basert protokoll <strong>for</strong> kommunikasjon<br />

mellom ulike mellomvareinstallasjoner (GIOP og IIOP). Disse skiller seg fra SOAP ved at IIOP<br />

tar plassen til http, og ved at data kodes binært heller enn med XML.<br />

20.01.2010 Versjon 1.1 41/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Komponentbaserte <strong>arkitektur</strong>er er først og fremst interessant <strong>for</strong> interoperabilitet mellom<br />

systemene internt i en virksomhet. De skiller seg typiske fra webtjenester ved:<br />

Sterkere <strong>av</strong>hengighet til en IKT-leverandør<br />

Binær kommunikasjon og færre lag kan gi bedre ytelse<br />

Bruk <strong>av</strong> andre porter enn http gjør at trafikken vanskeligere kommer gjennom<br />

brannmurer<br />

Mer sofistikerte løsninger <strong>for</strong> sikkerhet og pålitelighet<br />

Flere funksjoner innbakt i mellomvaren<br />

Mer kompleks mellomvare, som er mer krevende å ta i bruk og <strong>for</strong>valte<br />

For virksomheter som allerede har komponentbasert mellomvare på plass, vil det være aktuelt<br />

å integrere denne i en <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. Det finnes verktøy <strong>for</strong> dette på alle<br />

platt<strong>for</strong>mene.<br />

4.4.2.5 Elektronisk post og dynamiske nettverk<br />

Selv om SOAP over HTTP er den dominerende standarden <strong>for</strong> web services, så er det også<br />

mulig å bruke alternativer. For å knytte menneskelig og maskinell kommunikasjon sammen,<br />

kan det være aktuelt å se på SOAP over SMTP (Simple Mail Transport Protocol) i stedet <strong>for</strong><br />

http. Dette kan brukes til å kalle opp webtjenester ved å sende en epostmelding, hvor<br />

innholdet enten ligger som XML-tekst i meldingen, eller som et vedlegg (MIME). Dette er f.eks.<br />

en svært enkel løsning <strong>for</strong> innsending <strong>av</strong> registreringsskjemaer, hvor brukeren kan håndtere<br />

skjemaet som en vanlig melding i sin epost-klient. Verktøy hjelper tjenesteleverandøren til å<br />

lage skjemaer <strong>for</strong> denne løsningen i pdf eller html.<br />

Extensible Messaging and Presence Protocol (XMPP, tildligere kalt Jabber) [212] er en åpen<br />

protokoll som <strong>for</strong>eslås som fremtidig standard fra IETF. Det er en enkel løsning <strong>for</strong> umiddelbar<br />

meldingsutveksling (instant messaging - IM), synkron kommunikasjon, lettvekts mellomvare<br />

og generell ruting <strong>av</strong> XML-data. En SOAP-binding <strong>for</strong> XMPP, som alternativ til http i mobile og<br />

dynamiske nettverk, kan være en aktuell transportmekanisme <strong>for</strong> webtjenester. Den kan<br />

overføre både synkrone og asynkrone meldinger effektivt og pålitelig, og trenger ikke<br />

komplekse protokoller i tillegg <strong>for</strong> å levere meldinger til enheter som ikke har en fast IPadresse.<br />

4.4.3 Hendelser og notifikasjon<br />

Hendelsesdrevne <strong>arkitektur</strong>er, hvor meldinger ikke adresseres direkte til mottakeren, men<br />

publiseres til de som abonnerer på dem, tilbyr løsere kobling mellom bruker og leverandør <strong>av</strong><br />

tjenester.<br />

4.4.3.1 WS-Eventing<br />

WS-Eventing [180] støtter abonnering og publisering <strong>av</strong> beskjeder om hendelser (publicationsubscription<br />

eller pub sub). Dette er en enkel løsning uten megling <strong>av</strong> meldinger eller<br />

håndtering <strong>av</strong> temaer man kan abonnere på. Den er <strong>for</strong>eslått <strong>av</strong> Microsoft og IBM til W3C,<br />

men ikke videreført som standard <strong>for</strong>eløpig.<br />

4.4.3.2 WS-Notification<br />

WS-Notification er en mer omfattende løsning <strong>for</strong> abonnering og publisering <strong>av</strong> beskjeder om<br />

hendelser. Den er standardisert <strong>av</strong> OASIS og består <strong>av</strong> tre deler:<br />

WS-BaseNotification [105], enkel pub-sub som ligner WS-Eventing<br />

WS-BrokeredNotification [106], hvor mellomvare styrer, ruter og filtrerer beskjedene<br />

WS-Topics [107], som beskriver hvordan man kan ordne ulike typer<br />

hendelsesmeldinger i et emnehierarki innen et n<strong>av</strong>nerom.<br />

Både WS-Eventing og WS-Notification bygger på WS-Policy (<strong>av</strong>snitt 4.3.2.4) og WS-<br />

ReliableMessaging (<strong>av</strong>snitt 4.8.7). IBM har vært toneangivende i utviklingen <strong>av</strong> WS-<br />

20.01.2010 Versjon 1.1 42/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Notification, mens WS-Eventing har vært drevet fram <strong>av</strong> Microsoft. De to har sammen med HP<br />

og Intel gjort et <strong>for</strong>søk på å integrere de to standardene, men dette arbeidet skal være lagt på<br />

is [82].<br />

4.4.4 WS-Addressing - ruting og adressering <strong>av</strong> tjenester<br />

WS-Addressing [171] er en basis standard fra W3C. Den er inkludert i de fleste profiler og<br />

brukt <strong>av</strong> flere andre <strong>standarder</strong>. Den består <strong>av</strong> en kjerne, en spesifikasjon <strong>av</strong> bindinger til<br />

SOAP 1.1 og 1.2, og en beskrivelse <strong>av</strong> hvordan generelle metadata egenskaper definert i<br />

kjernen kan inkluderes i beskrivelsen <strong>av</strong> et endepunkt i WSDL 1.1 og 2.0.<br />

Standarden definerer en mengde abstrakte egenskaper <strong>for</strong> å referere til webtjenester og støtte<br />

adressering <strong>av</strong> meldinger fra endepunkt til endepunkt gjennom et nettverk <strong>av</strong> noder, slik at<br />

brannmurer, gateways og andre noder kan håndteres u<strong>av</strong>hengig <strong>av</strong> hvilke protokoller som<br />

brukes på transportlaget.<br />

WS-MessageDelivery var en konkurrerende <strong>for</strong>slag som nå er inkludert i WS-Adressing. Andre<br />

tidlige <strong>for</strong>slag på dette området var kalt WS-Routing og WS-Referral.<br />

4.5 Data og in<strong>for</strong>masjon<br />

Utveksling <strong>av</strong> in<strong>for</strong>masjon er en sentral ut<strong>for</strong>dring innen interoperabilitet, på ulike nivåer:<br />

Semantisk interoperabilitet, at innholdet og dets mening kan tolkes på samme måte <strong>av</strong><br />

alle parter.<br />

Syntaktisk interoperabilitet, at in<strong>for</strong>masjonen kodes på en måte som kan skrives og<br />

leses <strong>av</strong> alle parter.<br />

Teknisk nivå, hvor man kan skille mellom distribuerte og sentraliserte løsninger.<br />

Disse nivåene tilsvarer grovt det som kalles konseptuelt, logisk og fysisk nivå i<br />

databaselitteraturen. Siden dette området er sentralt, men i liten grad gjenstand <strong>for</strong> <strong>tjenesteorientert</strong>e<br />

<strong>standarder</strong>, dreier mesteparten <strong>av</strong> dette <strong>av</strong>snittet seg om overordnede<br />

angrepsmåter. Først identifiserer vi ulike nivåer <strong>for</strong> dataintegrasjon og interoperabilitet.<br />

Deretter introduseres generelle metoder <strong>for</strong> utveksling <strong>av</strong> in<strong>for</strong>masjon mellom partnere,<br />

gruppert i fem profiler, før relevante <strong>standarder</strong> <strong>for</strong> koding og innhold blir identifisert.<br />

Semantiske teknologier er gjenstand <strong>for</strong> en annen kartlegging, og vil ikke bli diskutert her.<br />

4.5.1 Nivåer <strong>for</strong> dataintegrasjon<br />

Figuren neden<strong>for</strong> illustrerer tre ulike nivåer <strong>for</strong> integrasjon og interoperabilitet, mellom<br />

virksomheter, mellom applikasjoner eller tjenester, og mellom databaser og andre datalagre.<br />

Disse nivåene samvirker og står over<strong>for</strong> mange <strong>av</strong> de samme ut<strong>for</strong>dringene, men metodene<br />

som brukes vil delvis være <strong>for</strong>skjellige.<br />

Virksomhets-<br />

Virksomhet 1 Virksomhet 2<br />

integrasjon<br />

Applikasjon eller<br />

tjeneste 1<br />

Applikasjonsintegrasjon<br />

Applikasjon eller<br />

tjeneste 2<br />

Database-<br />

Database 1 Database 2<br />

integrasjon<br />

Figur 9. Interoperabilitet på ulike nivåer.<br />

Det vil selvfølgelig også være ut<strong>for</strong>dringer knyttet til interoperabilitet vertikalt i figuren over,<br />

f.eks. mellom ulike teknologier <strong>for</strong> å gjøre databaser tilgjengelig <strong>for</strong> applikasjoner, eller<br />

applikasjoner tilgjengelig <strong>for</strong> virksomheten. Førstnevnte tema faller uten<strong>for</strong> fokuset til<br />

20.01.2010 Versjon 1.1 43/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

<strong>tjenesteorientert</strong> <strong>arkitektur</strong>, mens sistnevnte dekkes <strong>av</strong> <strong>av</strong>snittet om interaksjon og<br />

presentasjon (4.6).<br />

4.5.1.1 Databaseinteroperabilitet<br />

Databaseintegrasjon baserer seg på overføring <strong>av</strong> datamengder mellom databaser som kan ha<br />

ulike innholdsstrukturer. En typisk tilnærming er ETL (Extract-Tran<strong>for</strong>m-Load) hvor man<br />

henter ut data fra en kildebase, om<strong>for</strong>mer dem så de passer med målbasen, og deretter laster<br />

dem inn i målbasen. Dataene kan overføres gjennom synkron kommunikasjon, men store<br />

datamengder vil typiske overføres satsvis (batch), f.eks. gjennom at filer genereres fra kilden<br />

og legges på et sted som målsystemet overvåker og kan plukke opp data fra. Eksponering <strong>av</strong><br />

data som webtjenester lar seg gjøre direkte fra databasene ved hjelp <strong>av</strong> standard verktøy.<br />

Hvis datamengdene ikke er <strong>for</strong> store, og det er viktig å overholde regler som er definert på<br />

applikasjonsnivået, kan det være mer hensiktsmessig å integrere mellom<br />

applikasjonsprogramvaren i stedet.<br />

4.5.1.2 Applikasjonsnivå interoperabilitet<br />

Applikasjonsnivå dataintegrasjon dreier seg om å sørge <strong>for</strong> at parametere og innhold i<br />

dokumenter, meldinger og prosedyrekall mellom applikasjonene har riktig koding og et innhold<br />

som har mening <strong>for</strong> alle parter. De fleste større leverandører tilbyr webtjenester eller adaptere<br />

som kan brukes til å eksponere tjenester basert på andre applikasjonsprogrammeringsgrensesnitt<br />

(API). Sammenkobling på dette nivået gir økt overhead og<br />

begrenset skalerbarhet sammenlignet med integrasjon på databasenivået, men kan samtidig<br />

sørge <strong>for</strong> at oppdaterte data alltid er tilgjengelig. Det åpner også <strong>for</strong> gjenbruk <strong>av</strong> funksjonalitet<br />

og applikasjonslogikk, ikke bare data.<br />

4.5.1.3 Interoperabilitet mellom virksomheter<br />

Utveksling <strong>av</strong> data på tvers <strong>av</strong> virksomheter stiller sterkere kr<strong>av</strong> til sikkerhet, klart definert<br />

syntaks og semantikk. Dette området har da også vært gjenstand <strong>for</strong> standardisering over<br />

lengre tid, fra EDI til elektroniske <strong>for</strong>retningstransaksjoner og samhandling i offentlig sektor.<br />

Kompleksiteten stiger ytterligere når mange virksomheter skal samvirke, og hver <strong>av</strong> dem har<br />

utviklet sine egne datamodeller. Dette gjør at andre metoder og <strong>standarder</strong> kan være egnet<br />

<strong>for</strong> interoperabilitet mellom virksomheter, enn internt i en virksomhet.<br />

4.5.2 Profiler <strong>for</strong> in<strong>for</strong>masjonsutveksling<br />

Dette <strong>av</strong>snittet ser på ulike angrepsmåter eller overordnede metoder <strong>for</strong> å oppnå<br />

interoperabilitet <strong>for</strong> data.<br />

4.5.2.1 Dokumentutveksling<br />

Den enkleste <strong>for</strong>men <strong>for</strong> datautveksling bryr seg ikke om semantikk eller detaljert syntaks,<br />

men sørger simpelthen <strong>for</strong> å overføre et dokument eller en melding mellom to enheter uten å<br />

bry seg om innholdet. Innholdet kan enten bli tolket <strong>av</strong> mennesker, og/eller <strong>av</strong> applikasjoner<br />

som finnes på begge sider.<br />

4.5.2.2 Direkte trans<strong>for</strong>masjon (Punkt til punkt)<br />

Punkt til punkt sammenkobling innebærer at man definerer en direkte trans<strong>for</strong>masjon<br />

(mapping) mellom <strong>av</strong>senders og mottakers interne data<strong>for</strong>mater. Slik sørger man også <strong>for</strong><br />

semantisk interoperabilitet.<br />

4.5.2.3 Felles datamodell (Hub and spoke)<br />

Hvis man trenger å koble sammen mange ulike applikasjoner, vil punkt til punkt snart bli<br />

problematisk, siden antallet koblinger vokser med kvadratet <strong>av</strong> antallet applikasjoner. Da kan<br />

løsningen være å innføre en felles datamodell <strong>for</strong> på tvers <strong>av</strong> applikasjonene (hub, n<strong>av</strong>), og i<br />

stedet lage trans<strong>for</strong>masjoner fra alle kilder til det felles <strong>for</strong>matet (spokes, eiker). Dette kan<br />

også skape problemer i <strong>for</strong>m <strong>av</strong> en svært kompleks felles datamodell, som må dekke absolutt<br />

alle elementer som to eller flere applikasjoner har til felles.<br />

20.01.2010 Versjon 1.1 44/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.5.2.4 Semantisk teknologi<br />

Semantisk teknologi skaper interoperabilitet gjennom å definere den felles datamodellen på en<br />

<strong>for</strong>mell og matematisk måte, som en ontologi. Den <strong>for</strong>melle representasjonen gjør det mulig å<br />

automatisere trans<strong>for</strong>masjonene mellom ulike språk, basert på oppsatte regler. Dette kan<br />

<strong>for</strong>enkle <strong>for</strong>valtning og endring <strong>av</strong> modellene og trans<strong>for</strong>masjonsreglene. Gjennom at<br />

trans<strong>for</strong>masjonsreglene <strong>av</strong>ledes fra et mer høynivå deklarativt <strong>for</strong>mat, heller enn å spesifiseres<br />

operasjonelt, kan det være lettere <strong>for</strong> brukere å <strong>for</strong>stå. Dessverre er de <strong>for</strong>melle språkene ofte<br />

enda vanskeligere å <strong>for</strong>holde seg til enn programmeringsspråk, så disse <strong>for</strong>delene skal man<br />

ikke ta <strong>for</strong> gitt.<br />

4.5.2.5 Føderasjoner<br />

Føderasjoner består <strong>av</strong> autonome komponenter som settes sammen innen<strong>for</strong> et rammeverk <strong>av</strong><br />

felles regler. Dette finnes på fysisk nivå, hvor fødererte databaser kan inneholde ulike<br />

datamengder som gjennom føderasjonen settes sammen og gjøres tilgjengelig som om det var<br />

en database. På logisk nivå kan et føderert databaseskjema settes sammen fra<br />

komponentenes lokale skjema.<br />

På konseptuelt nivå kan man tillate <strong>for</strong>skjellige, også delvis inkonsistente, tolkninger <strong>av</strong> de<br />

samme dataene innen<strong>for</strong> hver enkelt komponent, som et uttrykk <strong>for</strong> lokalt autonomi. Dette<br />

kan brukes til å <strong>for</strong>enkle en felles datamodell, og bruke en hybrid løsning hvor noe data<br />

utveksles gjennom en felles datamodell, men hvor også punkt-til-punkt trans<strong>for</strong>masjoner kan<br />

legges til <strong>for</strong> elementer som ikke deles <strong>av</strong> særlig mange <strong>av</strong> partene.<br />

4.5.3 XML<br />

XML [152] er den fundamentale datastandarden <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. Den brukes til<br />

meldingsutveksling og til beskrivelse <strong>av</strong> tjenester med tilhørende regler. Standarder <strong>for</strong><br />

definisjon og prosessering <strong>av</strong> XML-strukturer brukes der<strong>for</strong> hyppig. Samtidig er XML er svært<br />

generell standard, og mange metoder spesifiserer der<strong>for</strong> hvordan de bruker XML i detalj.<br />

Likevel er XML langt enklere enn SGML, som den var basert på. XML 1.0 er <strong>for</strong>tsatt den<br />

versjonen <strong>av</strong> standarden som er utbredt, selv om man også har standardisert en versjon 1.1<br />

som blant annet ga større frihet i bruk <strong>av</strong> ulike tegn. Dette fjernet problemer knyttet til<br />

linjeskift, som gjorde at noen XML-dokumenter ikke var gyldige tekstdokumenter i visse<br />

stormaskinmiljø, men skapte nye problemer <strong>for</strong> validering, så denne versjonen ble gitt opp.<br />

4.5.3.1 XML Schema<br />

XML Schema brukes til å definere den syntaktiske oppbygningen til XML-dokumenter <strong>for</strong> en<br />

gitt anvendelse, f.eks. som innhold i en melding eller en tjenestebeskrivelse. Forgjengeren fra<br />

SGML, DTD (Document Type Definition), tillates ikke i WSDL [173], så XML Schema er like<br />

allestedsnærværende som XML i <strong>tjenesteorientert</strong>e <strong>arkitektur</strong>er. Et XML Schema dokument er<br />

et XML-dokument som følger skjemaet <strong>for</strong> XML Schema. Ved siden <strong>av</strong> konstruksjoner <strong>for</strong> å<br />

definere XML-strukturer bestående <strong>av</strong> elementer, attributter og tekst, definerer XML Schema<br />

en lang rekke standard datatyper.<br />

XML Schema finnes som anbefalt standard i versjon 1.0 [198], mens versjon 1.1 [199] er<br />

kandidat <strong>for</strong> å bli anbefalt. 1.1 legger bl.a. til<br />

Muligheter til å definere <strong>av</strong>hengigheter og regler ved hjelp <strong>av</strong> XPath<br />

Mulighet til å definere at typen til et element skal <strong>av</strong>henge <strong>av</strong> dets attributter<br />

Mer frihet i bruken <strong>av</strong> åpne spesifikasjonselementer som any og anyAttribute, bl.a.<br />

mulighet til å definere felles utvidelsesmekanismer <strong>for</strong> flere elementer i et skjema<br />

gjennom (arv).<br />

WSDL2.0 bruker XML Schema 1.1, mens WSDL 1.1 bruker XML Schema 1.0.<br />

XML Namespaces [188] definerer hvordan skjemaer kan modulariseres ved å dele dem opp i<br />

n<strong>av</strong>nerom som kan gjenbrukes i ulike sammenhenger. N<strong>av</strong>nerom kan importeres inn i andre<br />

n<strong>av</strong>nerom. I XML-dokumentene identifiseres n<strong>av</strong>nerommene som brukes innen<strong>for</strong> et element,<br />

hvor de gis en prefiks som brukes til å kvalifisere n<strong>av</strong>n som brukes i dokumentet, slik at en<br />

20.01.2010 Versjon 1.1 45/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

parser kan finne ut hvilket n<strong>av</strong>nerom hvert n<strong>av</strong>n tilhører. N<strong>av</strong>nerom identifiseres med en URI,<br />

men definisjonen kan spres over flere dokumenter som inkluderes i hoveddokumentet.<br />

XLink [196] er en XML-standard som brukes til å referere til andre ressurser. Man kan også<br />

legge til metadata som beskriver lenken, definere lenker på andre steder enn ressursene som<br />

de knytter sammen, og definere lenker mellom flere enn to ressurser.<br />

4.5.3.2 Metoder og <strong>standarder</strong> <strong>for</strong> manipulering <strong>av</strong> XML<br />

XSLT [201, 202] brukes til å definere trans<strong>for</strong>masjoner fra et XML-<strong>for</strong>mat til et annet, og er<br />

svært utbredt i <strong>tjenesteorientert</strong>e <strong>arkitektur</strong>er. XSLT opererer på XML-strukturer på et<br />

syntaktisk nivå. Versjon 1.0 [201] er noe enklere enn 2.0 [202], og <strong>for</strong>tsatt i utstrakt bruk.<br />

XSLT bruker XPath [197] til å definere delmengder <strong>av</strong> XML-strukturen i kildedokumentet som<br />

skal behandles på samme måte, og til å utføre beregninger og funksjoner. XSLT definerer egne<br />

funksjoner i tillegg til de i XPath.<br />

XPath brukes også <strong>av</strong> XQuery [203], som ble definert <strong>for</strong> å søke fram data i store samlinger <strong>av</strong><br />

XML-dokumenter. XSLT versjon 2.0 ble utviklet i parallell med XQuery, og de to standardene<br />

deler datamodell, funksjonsbibliotek og typesystem. Funksjonaliteten til de to standardene<br />

overlapper altså. XQuery er enklere enn XSLT, og bedre egnet <strong>for</strong> komplekse søk i<br />

velstrukturerte dokumenter, f.eks. sammensetting <strong>av</strong> flere datasett (Join). XSLT er bedre<br />

egnet til fleksibelt strukturerte dokumenter, utvides enklere med maler (templates) og<br />

importering, håndterer n<strong>av</strong>nerom bedre, og kan lettere <strong>for</strong>mattere datoer og tallverdier.<br />

XML Infoset [194] definerer generelle datastrukturer som en XML parser kan produsere fra et<br />

vel<strong>for</strong>met XML-dokument. Det er således en abstrakt datamodell <strong>for</strong> XML, som kan tjene som<br />

en retningslinje <strong>for</strong> ulike implementasjoner. Spesifikasjonen ligger på logisk nivå, u<strong>av</strong>hengig<br />

<strong>av</strong> teknologiene som XML-strukturen skal sendes videre til.<br />

Document Object Model (DOM) [150] definerer et standard API <strong>for</strong> å aksessere og manipulere<br />

innholdet i et HTML- eller XML-dokument. Fra Level 3 følger DOM XML Infoset. Hvis man skal<br />

parse store XML-dokumenter i sin helhet, er løsninger som SAX (Simple API <strong>for</strong> XML) <strong>for</strong> J<strong>av</strong>a<br />

og VTD-XML (Virtual Token Descriptor) mer egnet enn DOM. Samtidig er DOM en<br />

grunnleggende standard <strong>for</strong> rike, dynamiske brukergrensesnitt, som vi ser på i <strong>av</strong>snitt 4.6.6 og<br />

4.6.7.<br />

4.5.4 ebXML Core Components<br />

Core Components Technical Specification (CCTS) [142] tilbyr en mer høynivå og fleksibel<br />

tilnærming til definisjon <strong>av</strong> standard data<strong>for</strong>mater enn det man får ved rett fram bruk <strong>av</strong> XML<br />

Schema. CCTS definerer semantiske <strong>standarder</strong> på en syntaks-nøytral måte, og støtter<br />

dermed EDI ved siden <strong>av</strong> XML. Den inneholder en metodikk <strong>for</strong> å utvikle felles begreper, <strong>for</strong> å<br />

definere nye vokabular basert på disse begrepene, og <strong>for</strong> restrukturering <strong>av</strong> eksisterende<br />

vokabular.<br />

De grunnleggende begrepene er basis, sammensatte og assosierte komponenter (<strong>for</strong><br />

egenskaper, objekter og relasjoner). Komponenter er u<strong>av</strong>hengig <strong>av</strong> sammenheng (business<br />

context), mens in<strong>for</strong>masjonsentiteter (Business In<strong>for</strong>mation Entity - BIE) er knyttet til en<br />

definert sammenheng. I likhet med komponenter, finnes det ulike kategorier <strong>av</strong> BIE <strong>for</strong> basis<br />

egenskaper, assosiasjonsegenskaper, og sammensatte objekter. BIEr utgjør innholdet i CC<strong>standarder</strong><br />

som UBL og CCL (se neden<strong>for</strong>).<br />

In<strong>for</strong>masjonsmodeller med disse byggesteinene kan man også lage i UML gjennom UN/CEFACT<br />

Modeling Methodology (UMM). Her knyttes in<strong>for</strong>masjonsmodeller på semantisk nivå sammen<br />

med prosessmodeller, slik at man ikke trenger å bry seg om syntaktiske detaljer under<br />

ut<strong>for</strong>ming <strong>av</strong> samarbeidsprosessene. Typiske sammenhenger <strong>for</strong> definisjon og gjenbruk <strong>av</strong><br />

in<strong>for</strong>masjonsentiteter kan være <strong>for</strong>retningsprosessen, produkttypen, <strong>for</strong>valtningssektoren,<br />

geopolitisk eller juridisk område, stilling eller rolle, og underliggende IKT-systemer.<br />

Denne metoden gjør CCTS til en utvidbar tilnærming til dataintegrasjon, som vektlegger<br />

gjenbruk. Når man har definert sin in<strong>for</strong>masjonsmodell basert på egne elementer og elementer<br />

gjenbrukt fra tilgjengelige <strong>standarder</strong>, så kan XML Schemas <strong>av</strong>ledes automatisk, slik at en<br />

standard parser kan prosessere dokumentene. Videre arbeid med disse<br />

20.01.2010 Versjon 1.1 46/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

gjenbruksmekanismene er på gang i prosjektene Unified Context Methodology og Core<br />

Components Message Assembly [144].<br />

4.5.5 Innholds<strong>standarder</strong><br />

En rekke standardiseringsorgan jobber med å definere strukturer <strong>for</strong> <strong>for</strong>retningsdokumenter i<br />

XML. Mange <strong>av</strong> disse innholdsstandardene er spesifikke <strong>for</strong> industrier eller sektorer, så her tar<br />

vi bare <strong>for</strong> oss de mest utbredte generelle standardene. Noen <strong>av</strong> standardene er basert på<br />

ebXML Core Components, andre er definert direkte med XML Schema. I tillegg til disse finnes<br />

en lang rekke ontologier, definert med semantiske <strong>standarder</strong> som i OWL (Web Ontology<br />

Language) eller RDF (Resource Description Framework).<br />

4.5.5.1 UN CCL – Core Components Library<br />

Dette biblioteket [143] inneholder kjernen <strong>av</strong> innhold i Core Components rammeverk. Totalt<br />

defineres nesten 1000 elementer, tilknyttet nesten 100 objektklasser som beskriver varer og<br />

tjenester, innkjøp og logistikk, arbeid m.m. Grunnleggende begreper som tjeneste, ressurs,<br />

kalender og periode, hendelse, pris og kostnad, kommunikasjon, kalkulering, dokument,<br />

sammensatt beskrivelse, målesystem m.fl. er definert her.<br />

4.5.5.2 UBL - Universal Business Language<br />

Denne standarden fra OASIS [96] definerer generelle innholdselementer <strong>for</strong> elektronisk<br />

handel, uten binding til noen bestemt industri eller sektor. UBL er definert i henhold til Core<br />

Components, men kan brukes også innen<strong>for</strong> andre rammeverk <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>.<br />

UBL 2.0 innholder ca. 2000 begreper (Business In<strong>for</strong>mation Entities), som er oversatt til flere<br />

språk som del <strong>av</strong> IDD (International Data Dictionary). Typiske dokumenter i UBL er kataloger,<br />

bestillinger, anbud, fakturering, og meldinger knyttet til kreditt og transport. UBL definerer<br />

dessuten mer finkornede innholdselementer, som adresse, pris og betaling. Gjennom CCTS<br />

kan skjemaer i UBL utvides med egne definisjoner, skreddersys og tilpasses. Det pågår arbeid<br />

<strong>for</strong> å knytte sammen UBL og CCL, hvor UBL tilbyr en mer presis syntaktisk knytning til XML<br />

enn de mer semantisk orienterte CC-standardene. UBL inneholder blant annet rundt 30 XML<br />

Schemas <strong>for</strong> de mest vanlige <strong>for</strong>retningsdokumentene.<br />

Northern European Subset (NESUBL) [83] definerer profiler og in<strong>for</strong>masjonsmodeller tilpasset<br />

skandin<strong>av</strong>iske <strong>for</strong>hold, basert på UBL. Disse oversettes videre til norsk og presiseres <strong>for</strong> norske<br />

<strong>for</strong>hold <strong>av</strong> ehandel.no. Gjennom europeisk samarbeid ser man dessuten på samvirke mellom<br />

UBL, UNSPSC og andre standard vokabular <strong>for</strong> innkjøp [27].<br />

4.5.5.3 UNSPSC - United Nations Standard Products and Services Code<br />

UNSPSC [42] er et sett med standard koder <strong>for</strong> ulike grupper produkter og tjenester. Den<br />

består <strong>av</strong> over 22000 elementer. UNSPSC finnes i norsk oversettelse fra GS1 Norge.<br />

Kategorisering <strong>av</strong> varer og tjenester i henhold til UNSPSC er obligatorisk i produktkataloger<br />

som skal benyttes på markedsplassen <strong>for</strong> det offentlige (ehandel.no).<br />

4.5.5.4 OAGIS - Open Applications Group's Integration Specification<br />

OAGIS [84] er nok en standard basert på ebXML CCTS. De jobber med kundehåndtering,<br />

finans og betaling, bestilling, logistikk, lokalisering, rapportering til myndighetene (Sarbanes<br />

Oxley) og tekniske produkter (sammen med STEP). Standarden er strukturert i 77 substantiv,<br />

12 verb, og i alt 434 <strong>for</strong>retningsdokumenter som knytter sammen verb og substantiv. Ved<br />

siden <strong>av</strong> generelle <strong>standarder</strong> defineres lokale løsninger <strong>for</strong> bil-, IKT-, fly- og<br />

romfartsindustriene, samt <strong>for</strong> USAs luftvåpen.<br />

4.5.6 Andre tekstlige <strong>for</strong>mater<br />

Ved siden <strong>av</strong> XML brukes andre tekstlige <strong>for</strong>mater til å utveksle data, særlig på<br />

databasenivået, og <strong>for</strong> kommunikasjon mellom brukergrensesnitt og applikasjonstjenester.<br />

Tekstlige strukturerte dokumenter bruker gjerne skilletegn som komma (CSV) mellom ulike<br />

felt, eller en fast kolonnebredde. Sammenlignet med XML krever de langt mindre overhead,<br />

men innholdsstrukturer utover tabeller, som hierarki, er vanskelig å representere.<br />

20.01.2010 Versjon 1.1 47/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.5.6.1 JSON<br />

J<strong>av</strong>ascript Object Notation (JSON.org) er et enkelt tekstlig overførings<strong>for</strong>mat, som er leselig<br />

<strong>for</strong> mennesker, men samtidig lett <strong>for</strong> programvare å generere og parse. JSON definerer<br />

objekter som en mengde n<strong>av</strong>n-verdi-par. Man kan dessuten sette sammen lister <strong>av</strong> objekter,<br />

verdier og andre lister. Denne metoden er svært utbredt på de fleste<br />

programmeringsplatt<strong>for</strong>mer, særlig <strong>for</strong> kommunikasjon mellom brukergrensesnitt og<br />

underliggende applikasjonstjenester.<br />

4.5.7 Binær XML<br />

For raskere overføring <strong>av</strong> store datamengder har det blitt definert <strong>standarder</strong> og metoder <strong>for</strong><br />

binær komprimering <strong>av</strong> XML, <strong>for</strong> eksempel <strong>for</strong> multimedia. Dette er særlig viktig <strong>for</strong> XML, som<br />

koder innhold svært ineffektivt, blant annet <strong>for</strong> å gjøre teksten lesbar <strong>for</strong> mennesker. En rett<br />

fram løsning som flere programmeringsomgivelser tilbyr, er simpelthen å komprimere og<br />

pakke (zip) xml-teksten. Slik komprimering krever imidlertid en viss prosesseringstid, som<br />

ofte overstiger tiden spart på raskere overføring. Dette <strong>av</strong>henger selvfølgelig <strong>av</strong> dokumentenes<br />

størrelse og <strong>for</strong>m, samt ytelsen til maskinvaren som er i bruk.<br />

XML binary optimization (XOP) fra W3C er en viktig standard <strong>for</strong> tjeneste<strong>arkitektur</strong>er gjennom<br />

at den brukes i SOAP MTOM (se <strong>av</strong>snitt 4.4.2.2). XOP skiller ut binært innhold fra XMLdokumentet,<br />

og sender dem som separate deler i en MIME (multipart) melding. Slik slipper<br />

man konvertering <strong>av</strong> binært innhold som del <strong>av</strong> XML-dokumentet. Hver del komprimeres <strong>for</strong><br />

seg. XOP definerer også en inkluderingsmekanisme <strong>for</strong> å sette de ulike delene inn på riktig<br />

sted i hoveddokumentet. Lange tekster i XML-elementer kan også optimeres, men ikke<br />

elementn<strong>av</strong>n eller attributtverdier.<br />

XOP brukes <strong>for</strong> overføring over internett, men W3C har også satt ned en arbeidsgruppe kalt<br />

EXI (Efficient XML Interchange) som utvikler en spesifikasjon <strong>for</strong> effektiv prosessering <strong>av</strong> XML<br />

in<strong>for</strong>mation sets (<strong>av</strong>snitt 4.5.3.2). Målet med EXI er et generelt, minimalt, effektivt, fleksibelt<br />

og interoperabelt <strong>for</strong>mat. Meldinger i EXI inkluderer et hode og en kropp, og hodet <strong>for</strong>klarer<br />

hvordan kroppen skal dekodes ved hjelp opsjoner definert <strong>av</strong> EXI. EXI koder kildedokumentet i<br />

henhold til hvordan det ville blitt gjennomløpt <strong>av</strong> en sekvensiell parser som SAX, som en serie<br />

hendelser. Basert på generelle regler eller et gitt XML Schema, tilordnes kortere kode til de<br />

hyppigst <strong>for</strong>ekommende hendelsene i grammatikken. EXI er altså en semantisk koding, mens<br />

XOP gir en komprimering <strong>av</strong> kodingen på binært nivå. EXI koder hele dokumentet, inkludert<br />

XML-elementer og attributter, mens XOP bare koder tekstlig og binært innhold i elementer.<br />

FAST Infoset [55] er en eldre standard fra ISO <strong>for</strong> binær koding <strong>for</strong> XML. Den er knyttet til<br />

kommunikasjonsstandarden ASN.1 (X.680), men kodingen kan brukes også <strong>for</strong> overføring over<br />

http. WAP Binary XML (WBXML) fra Open Mobile Alliance er optimert <strong>for</strong> rask overføring over<br />

trådløse nettverk, mens VTD-XML er en åpen implementasjon som koder XML binært med vekt<br />

på rask koding og dekoding. Andre løsninger <strong>for</strong> spesifikke datatyper inkluderer Binary MPEG<br />

<strong>for</strong>mat <strong>for</strong> XML (BiM) og Binary XML Encoding Specification <strong>for</strong> geo-related data (GML).<br />

4.5.8 WS-Enumeration - Tjenesteorientert tilgang til sammensatte data<br />

WS-Enumeration [179] er et <strong>for</strong>slag til W3C som definerer webtjenester <strong>for</strong> tilgang til en<br />

ordnet liste <strong>av</strong> data. Denne kan brukes til meldingslogger, køer, eller lister med brukerdata.<br />

Dette er en protokoll som ikke er tilstandsløs, siden en kommando <strong>for</strong> å hente neste element<br />

nødvendigvis <strong>av</strong>henger <strong>av</strong> hvilke elementer som allerede er hentet. Funksjonene benyttes<br />

blant annet <strong>av</strong> WS-Management (<strong>av</strong>snitt 4.3.3.2). Microsoft har dessuten definert en åpen<br />

utvidelse <strong>av</strong> dette <strong>for</strong> katalogdata, kalt WS-Enumeration Directory Services Protocol<br />

Extensions (WSDS).<br />

4.5.9 Databaseintegrasjon<br />

Metoder <strong>for</strong> kopiering og satsvis overføring mellom databaser, distribusjon og lastbalansering<br />

er viktige deler <strong>av</strong> infrastrukturen <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. Til dels kan dette også være<br />

alternative løsninger til en <strong>tjenesteorientert</strong> implementering, særlig <strong>for</strong> å sikre akseptabel<br />

ytelse.<br />

20.01.2010 Versjon 1.1 48/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.5.9.1 Filoverføring<br />

Den enkleste <strong>for</strong>men <strong>for</strong> databaseintegrasjon er nok å eksportere dataene på en fil, overføre<br />

dem manuelt eller automatisk, og så laste dem inn i en ny database. Filene kan ha binært eller<br />

tekstlig <strong>for</strong>mat, <strong>for</strong> den saks skyld også XML. Automatiserte satsvise jobber kan<br />

implementeres ved at mottakerdatabasen følger med på et filområde hvor <strong>av</strong>senderdatabasen<br />

laster opp filene (såkalt file drop), gjerne med ftp.<br />

4.5.9.2 ETL – Extract Trans<strong>for</strong>m Load<br />

ETL brukes typisk til å kopiere data inn i et dat<strong>av</strong>arehus <strong>for</strong> rapportering, som skilles ut fra den<br />

operative databasen hvor dataene oppdateres. Egne verktøy brukes til å strukturere<br />

databasekallene som gjør jobben, og til å trans<strong>for</strong>mere dataene til en struktur som passer<br />

bedre <strong>for</strong> bruksmønsteret til dat<strong>av</strong>arehuset. For å sikre integritet og kontinuerlig operasjon<br />

under overføringen, brukes gjerne egne tabeller til å holde på trans<strong>for</strong>merte data før de<br />

sendes til dat<strong>av</strong>arehuset (staging). Adaptere brukes dessuten <strong>for</strong> f.eks. å gjøre data fra<br />

stormaskinmiljø tilgjengelig på relasjons<strong>for</strong>m.<br />

4.5.9.3 Føderasjon med virtuelt skjema<br />

En føderasjon skaper et virtuelt skjema på tvers <strong>av</strong> ulike databaser, kanskje også ulike<br />

databasesystemer. Optimalisering og caching brukes til å sørge <strong>for</strong> rask aksess og<br />

sammenstiling <strong>av</strong> data på tvers <strong>av</strong> de ulike databasene. Dette gjør en løs kobling mellom<br />

databasene mulig. Dette kan enten implementeres gjennom om<strong>for</strong>mulering <strong>av</strong> <strong>for</strong>espørsler fra<br />

felles skjema til lokale databaser (local as view), eller gjennom å definere det virtuelle<br />

skjemaet som et database view over de lokale tabellene (global as view).<br />

4.5.9.4 Adaptere <strong>for</strong> tilgjengeliggjøring <strong>av</strong> databaser<br />

Adaptere brukes <strong>av</strong> mellomvare og systemer <strong>for</strong> dataintegrasjon til å gjøre proprietære data<br />

tilgjengelig, f.eks. i henhold til <strong>tjenesteorientert</strong>e <strong>standarder</strong>. En åpen løsning <strong>for</strong> dette er J<strong>av</strong>a<br />

Connector Architecture (JCA) [9]. Adaptere kalles tynne hvis de bare gir tilgang til dataene<br />

direkte, og tykke hvis de utnytter semantisk in<strong>for</strong>masjon til å trans<strong>for</strong>mere dataene, eller<br />

håndterer feil og køer. Statiske adaptere er hardkodet til et gitt databaseskjema, mens<br />

dynamiske adaptere kan tilpasse seg endringer i skjemaet automatisk.<br />

4.6 Portaler, interaksjon og presentasjon<br />

De <strong>for</strong>egående <strong>av</strong>snittene har tatt <strong>for</strong> seg <strong>standarder</strong> som ikke er synlige <strong>for</strong> brukerne <strong>av</strong> en<br />

tjeneste. Vi ser nå på ulike aspekter ved brukergrensesnitt og interaksjon. Igjen er det<br />

vanskelig å <strong>av</strong>grense hvilke metoder som hører til <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. En smal<br />

tolkning er at kun <strong>standarder</strong> basert på webtjenester er aktuelle. Det er i så fall begrenset til<br />

WSRP (<strong>av</strong>snitt 4.6.3). Vi velger her å inkludere flere teknologier som gjerne brukes over<br />

webtjenester, men samtidig å holde diskusjonen på et overordnet nivå.<br />

4.6.1 Kanaler<br />

Offentlig sektor gjør sine tjenester tilgjengelig gjennom mange <strong>for</strong>skjellige manuelle og<br />

automatiserte kanaler. Vi fokuserer i dette <strong>av</strong>snittet på automatiserte kanaler <strong>for</strong> IKTtjenester,<br />

enten de anvendes <strong>av</strong> ansatte i offentlig sektor eller brukerne <strong>av</strong> offentlig sektors<br />

tjenester. Ulike kanaler varierer typisk med hensyn på nettverkstilkoblingens båndbredde, om<br />

klienten er tilkoblet kontinuerlig, vanligvis, eller sporadisk, og om klientens plassering i<br />

nettverket er statisk eller dynamisk. Skjerm og annet presentasjonsutstyr varierer i størrelse,<br />

og <strong>for</strong>skjellig utstyr brukes <strong>for</strong> å gi data inn til systemet og n<strong>av</strong>igere i brukergrensesnittet.<br />

Andre variasjoner er omgivelsen brukeren befinner seg i, f.eks. om tjenesten gjøres<br />

tilgjengelig gjennom en offentlig portal eller plugges inn i en kommersiell eller bedriftsintern<br />

portal. Mediene som brukes kan inkludere tekst, tale, bilde og video. Spesifikke <strong>standarder</strong> <strong>for</strong><br />

dette er uten<strong>for</strong> fokus <strong>for</strong> denne rapporten, men virkninger på tjeneste<strong>arkitektur</strong>en tas med.<br />

Brukernes varierte situasjon og egenskaper krever ut<strong>for</strong>ming med tanke på tilgjengelighet <strong>for</strong><br />

alle, mens fleksibilitet og robusthet gjør at manuelle sidekanaler kan være påkrevd ved siden<br />

<strong>av</strong> de IKT-baserte.<br />

20.01.2010 Versjon 1.1 49/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.6.2 HTML<br />

Referansekatalogen [32] sier at HTML 4.01 [153] og XHTML 1 [155] skal være primær<strong>for</strong>mat<br />

<strong>for</strong> publisering <strong>av</strong> dokumenter med tekstlig innhold på statlige nettsteder. For<br />

tjenestegrensesnitt kreves rikere og mer dynamiske webomgivelser, hvor skjemaer, oppførsel,<br />

og presentasjon gjerne organisert i en portal, og hvor brukergrensesnittet tilpasser seg<br />

brukeren. Dette gjør at referansekatalogen kanskje bør inkludere mer enn dokument<strong>for</strong>mater,<br />

f.eks. <strong>standarder</strong> <strong>for</strong> skjemaer og scripting.<br />

HTML 5 [154] er under utarbeidelse, og det vil gå tid før den eventuelt kan ta over <strong>for</strong> versjon<br />

4 og XHTML, som den integrerer. Også før denne versjonen tas i bruk i full bredde, kan den<br />

likevel være interessant som brukergrensesnitt <strong>for</strong> webtjenester, særlig <strong>for</strong> dynamisk<br />

manipulering <strong>av</strong> HTML i AJAX-omgivelser (se <strong>av</strong>snitt 4.6.6). Det virker <strong>for</strong>nuftig å ta i bruk<br />

fremtidige <strong>standarder</strong> på dette området tidlig, når alternativet er proprietære løsninger.<br />

Pågående standardisering innen<strong>for</strong> dette området beskrives i <strong>av</strong>snitt 4.6.7.<br />

4.6.2.1 Scripting<br />

ECMAScript [24] er en felles standard <strong>for</strong> J<strong>av</strong>ascript, ActionScript, JScript og andre dialekter,<br />

og som støttes <strong>av</strong> de aller fleste moderne browsere. Den er standardisert som ISO/IEC 16262,<br />

i ulike utg<strong>av</strong>er. 5. utg<strong>av</strong>e er snart klar, og vil blant annet legge til et bibliotek <strong>for</strong> JSON (jf.<br />

<strong>av</strong>snitt 4.5.6.1 og 4.4.2.3). For standardisering i dag er versjon 3 den stabile og utbredte<br />

utg<strong>av</strong>en.<br />

4.6.2.2 XForms<br />

XForms er et XML-<strong>for</strong>mat <strong>for</strong> å spesifisere skjemaer og andre brukergrensesnitt, og en<br />

prosesseringsmodell <strong>for</strong> disse. XForms er laget <strong>for</strong> HTML/XHTML, men er generell nok til å<br />

kunne brukes med andre presentasjonsspråk. Versjon 1.0 [189] ble opprinnelig anbefalt <strong>av</strong><br />

W3C i 2003, og er nå i sin 3. utg<strong>av</strong>e. Versjon 1.1 [190] ble godkjent i 2009. Den <strong>for</strong>bedrer<br />

fleksibel sammensetting <strong>av</strong> skjemaer ved hjelp <strong>av</strong> maler, og tilbyr flere løsninger <strong>for</strong> å sende<br />

inn dataene i skjemaet, som REST, SOAP, Atom og tekst (f.eks. JSON).<br />

XForms følger en model-view-controller (MVC) tilnærming. Et dokument består <strong>av</strong> en modell<br />

<strong>av</strong> XML-data, og XPath brukes til å knytte brukergrensesnittelementer til modellelementene.<br />

Utseendet kan styres med stilark (CSS). Det finnes verktøy <strong>for</strong> å kjøre XForms som kan<br />

plugges inn i ulike browsere, også på mobile platt<strong>for</strong>mer, og i verktøy som OpenOffice.<br />

4.6.3 Tilgjengelighet <strong>for</strong> alle<br />

Web Content Accessibility Guidelines (WCAG) [169] gir retningslinjer <strong>for</strong> tilgjengelighet til<br />

nettsider <strong>for</strong> folk med ulike funksjonshemminger. Referansekatalogen [32] anbefaler å legge<br />

de delene <strong>av</strong> WCAG som blir gjengitt i Norge.no sine kvalitetskr<strong>av</strong> til offentlige nettsteder til<br />

grunn ved ut<strong>for</strong>ming <strong>av</strong> offentlige nettsider. WCAG har seinere kommet i versjon 2.0 [170],<br />

som ser bredere på mer <strong>av</strong>anserte teknologier, hvor kr<strong>av</strong>ene er enklere å <strong>for</strong>stå, mer<br />

teknologiu<strong>av</strong>hengige, og kan testes mer presist. Ved siden <strong>av</strong> WCAG utvikler W3C <strong>standarder</strong><br />

<strong>for</strong> å ta hensyn til retningslinjene i<br />

Verktøy <strong>for</strong> å lage websider (Authoring Tool Accessibility Guidelines, ATAG),<br />

Browserne som viser sidene (User Agent Accessibility Guidelines, UAAG),<br />

Automatisert testing (Evaluation and Report Language, EARL), og<br />

Rike web-grensesnitt (Accessible Rich Internet Applications, WAI-ARIA) [148].<br />

4.6.4 ELMER<br />

Elmer II [75] definerer obligatoriske retningslinjer <strong>for</strong> næringslivsskjemaer på offentlige<br />

nettsider. Retningslinjene er helt u<strong>av</strong>hengige <strong>av</strong> teknologi. De omhandler oppbygning <strong>av</strong><br />

skjema, n<strong>av</strong>igasjon, rekkefølge, ulike skjemaelementer, hjelp og tilbakemeldinger, og<br />

koblinger til skjemaets omgivelser. Innholdet består <strong>av</strong> ufr<strong>av</strong>ikelige kr<strong>av</strong> (skal), anbefalinger<br />

(bør), og eksempler som illustrerer retningslinjene.<br />

20.01.2010 Versjon 1.1 50/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.6.5 WSRP – Web Services <strong>for</strong> Remote Portlets<br />

WSRP [110] definerer et grensesnitt <strong>av</strong> webtjenester som gjør det mulig å integrere<br />

applikasjoner og innhold fra ulike leverandører i en portal, uten å programmere. Lokale<br />

portlets kan være implementert i proprietær teknologi knyttet i den enkelte portal, f.eks. i<br />

J<strong>av</strong>a gjennom de åpne grensesnittene JSR 168 og JSR 286. Gjenbrukbare interaktive<br />

fellestjenester trenger en åpen standard som WSRP. Standarden finnes i to versjoner, fra 2003<br />

og 2008. Portlets må tilby tjenester <strong>for</strong> brukerinteraksjon og <strong>for</strong> å generere<br />

presentasjonsfragmenter. WSRP definerer dessuten standard tjenester <strong>for</strong> å publisere, finne og<br />

binde sammen portlets i en portal.<br />

En portlet kan bli bedt om å presentere seg i ulike modi, <strong>for</strong> visning, editering, hjelp eller<br />

<strong>for</strong>håndsvisning. Man kan dessuten legge til sine egne modi <strong>for</strong> mer skreddersydd oppførsel.<br />

Ulike størrelse bør også tilbys, som minimert, normal, maksimert og <strong>for</strong> seg selv.<br />

Brukerinteraksjonen kan styres <strong>av</strong> en sesjonstilstand, som sammen med<br />

konfigurasjonstilstanden er med på å styre portletens oppførsel. Man kan selvfølgelig også<br />

lage tilstandsløse portleter. Brukerhandlinger fanges opp <strong>av</strong> portalen og blir sendt til portlettjeneren<br />

som hendelser. Det diskuteres å bruke WS-Notification (<strong>av</strong>snitt 4.4.3.2) <strong>for</strong> dette,<br />

men spesifikasjonen inkluderer <strong>for</strong>eløpig ikke noe slikt kr<strong>av</strong>. En slik løsning ville gjort det mulig<br />

<strong>for</strong> ulike portlets innen en portal å kommunisere seg imellom, på en løst sammenkoblet måte.<br />

4.6.6 AJAX<br />

AJAX (Asynchronous J<strong>av</strong>ascript And XML) er en metode som kombinerer industri<strong>standarder</strong> til<br />

å skape rike, dynamiske web-omgivelser:<br />

Presentasjon med HTML og stilark (Cascading Style Sheets, CSS)<br />

J<strong>av</strong>ascript eller tilsvarende språk styrer interaksjonen med brukeren og kommunikasjon<br />

med tjenersiden<br />

Brukergrensesnittet oppdateres dynamisk gjennom at deler <strong>av</strong> HTML-dokumentet<br />

overskrives via DOM (<strong>av</strong>snitt 4.5.3.2)<br />

Asynkron kommunikasjon med tjeneren (ofte gjennom XMLHttpRequest) gjør at<br />

brukeren kan <strong>for</strong>tsette å jobbe videre mens tjeneren prosesserer tidligere hendelser<br />

Innholdet kommuniseres mellom klient og tjener som XML, sekundært HTML eller<br />

JSON. XSLT kan brukes til å om<strong>for</strong>me innholdet til det <strong>for</strong>matet som brukes i<br />

presentasjonen, f.eks. XML til XHTML.<br />

Det finnes en lang rekke rammeverk <strong>for</strong> AJAX, hvor<strong>av</strong> mange har åpen kildekode. Noen<br />

fokuserer mest på å tilby en lang rekke parametriserbare brukergrensesnittkomponenter, ofte<br />

kalt widgets, som man kan bygge sine applikasjoner med, mens andre er sterkere på<br />

kommunikasjon mellom komponenter og mellom klient og tjener via beskjed om hendelser i<br />

henhold til oppsatte abonnement. AJAX kombineres ofte med REST (<strong>av</strong>snitt 4.2.6) <strong>for</strong> å<br />

<strong>for</strong>enkle interaksjonen mellom klient og tjener til noen få operasjoner (CRUD), med en<br />

tilstandsløs representasjon <strong>av</strong> hver komponent, som speiles mellom klient og tjener. Som vi<br />

skal se i neste <strong>av</strong>snitt, er W3C i ferd med å etablere <strong>standarder</strong> <strong>for</strong> AJAX og lignende<br />

grensesnitt.<br />

4.6.7 W3C Webapps<br />

Denne gruppen i W3C ble skapt gjennom en fusjon <strong>av</strong> arbeidsgruppene <strong>for</strong> WebAPI og WAF<br />

(Web Application Formats). De arbeider <strong>for</strong> tiden med en lang rekke <strong>standarder</strong> <strong>for</strong><br />

webapplikasjoner, som adresserer funksjonalitet i dagens AJAX-omgivelser [168]:<br />

Manipulering <strong>av</strong> XML-data, gjennom enklere n<strong>av</strong>igeringsgrensesnitt <strong>for</strong> DOM, bruk <strong>av</strong><br />

mønstre til å plukke ut noder fra en XML-struktur, på samme måte som i stilark som<br />

XSLT, og XML Binding Language (XBL) hvor elementer kan knyttes til scripts, stiler eller<br />

mer komplekse innholdsmodeller, på en enklere måte.<br />

20.01.2010 Versjon 1.1 51/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Hendelser, <strong>for</strong> å abonnere på beskjeder om endringer i en dynamisk XML-struktur, <strong>for</strong> å<br />

overvåke framdriften <strong>av</strong> en operasjon, og <strong>for</strong> å åpne kanaler hvor tjeneren kan sende<br />

beskjeder om hendelser til klienten.<br />

Databasetilgang, <strong>for</strong> å lagre n<strong>av</strong>n-verdi-par på klientsiden, og <strong>for</strong> å jobbe mot<br />

databaser på klientsiden ved hjelp <strong>av</strong> SQL.<br />

Kommunikasjon mellom klient og tjener, inkludert toveis kanaler.<br />

Programmeringsmodell <strong>for</strong> grensesnitt (API) og parallell prosessering (asynkront).<br />

Sikkerhet og tilgangskontroll <strong>for</strong> <strong>for</strong>espørsler på tvers <strong>av</strong> domener, kopiering og filvalg.<br />

Man utvikler dessuten et rammeverk <strong>for</strong> brukergrensesnittkomponenter som dynamisk eller<br />

deklarativt inkluderes i et brukergrensesnitt, kalt Widgets 1.0. Disse kan, i likhet med portlets,<br />

utgjøre brukergrensesnittet til en webtjenester. Denne familien <strong>av</strong> <strong>standarder</strong> skal dekke<br />

funksjonaliteten man i dag finner i proprietære rammeverk som Yahoo Konfabulator, Windows<br />

Vista Sidebar, Google Desktop Gadgets, Opera Widgets, Apple Dashboard, Nokia Web-Runtime<br />

og Joost. Landskapet som en gjenbrukbar widget blir anvendt i, illustrerer de slik:<br />

Figur 10. Arkitektur <strong>for</strong> dynamiske brukergrensesnitt <strong>for</strong> webtjenester [168].<br />

4.6.8 Interaktivt multimedia og rike grensesnitt<br />

Metoder <strong>for</strong> enda rikere grensesnitt enn det en dynamisk webomgivelse med AJAX tilbyr, er<br />

<strong>for</strong>eløpig i liten grad standardisert. W3C har en standard <strong>for</strong> presentasjon <strong>av</strong> multimedia,<br />

Synchronized Multimedia Integration Language (SMIL) men denne dekker ikke interaktive<br />

brukergrensesnitt. Entusiaster <strong>for</strong> åpne <strong>standarder</strong> har demonstrert at rike grensesnitt kan<br />

lages ved hjelp <strong>av</strong> SVG [158] med scripts knyttet til brukerhendelser, uten at denne bruken er<br />

særlig utbredt. Manglende støtte i Internet Explorer har vært et problem. Verktøystøtten <strong>for</strong><br />

designere er begrenset, selv om dette kan endres gjennom utvikling med åpen kildekode i<br />

tiden framover. Google har gjennom sin SVGWeb lagt muskler bak SVG som sitt svar på de to<br />

industri<strong>standarder</strong> som <strong>for</strong>eløpig dominerer, XAML fra Microsoft og MXML/SWF fra Adobe. SVG<br />

er dessuten egnet <strong>for</strong> mobile klienter, og en egen variant kalt SVG Tiny er definert <strong>for</strong> dette.<br />

Dette området bør overvåkes framover. SVG er allerede tatt inn i referansekatalogen som en<br />

<strong>av</strong> to <strong>standarder</strong> <strong>for</strong> grafikk.<br />

4.7 Samhandling, prosesser og komposisjon <strong>av</strong> tjenester<br />

Tjenesteorientert <strong>arkitektur</strong> dreier seg fundamentalt om å sette sammen basistjenester til<br />

høyere nivås tjenester som har verdi <strong>for</strong> en bruker. Slik sammensetting kalles ofte ”mashups”.<br />

Dette skjer gjennom portaler og andre brukergrensesnitt, men først og fremst gjennom<br />

20.01.2010 Versjon 1.1 52/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

prosesser hvor hvert steg er en tjeneste, eller andre metoder <strong>for</strong> koordinering <strong>av</strong><br />

sammenhørende tjenester. Prosesser brukes også til å sikre transaksjonsegenskaper, og til å<br />

orkestrere kompleks ruting <strong>av</strong> meldinger i tjenestebusser og annen mellomvare.<br />

4.7.1 BPEL<br />

BPEL er en XML-basert beskrivelse <strong>av</strong> en prosess. BPEL realiserer prosessens interaksjon med<br />

andre aktører gjennom web service operasjoner. Hovedhensikten med BPEL er å gi en<br />

<strong>for</strong>malisert beskrivelse <strong>for</strong> å koordinere meldingsutvekslingen i en kompleks prosess. En<br />

prosess kan i BPEL defineres som en abstract og/eller som executable prosess.<br />

En abstrakt prosess skal ikke eksekveres. Hensikten med en slik beskrivelse er å<br />

representere prosessens meldingsutveksling til andre aktører, uten å <strong>av</strong>sløre<br />

prosessens interne implementasjon. Dette er altså en grensesnittbeskrivelse.<br />

En eksekverbar prosess definerer en fullstendig og presis modell som kan eksekveres i<br />

et datasystem. Beskrivelsen til en eksekverbar prosess skal inneholde interaksjon med<br />

andre parter gjennom webtjenester, og logikk <strong>for</strong> å koordinere interaksjon.<br />

Begge typene beskrives med samme konstruksjoner og syntaks. BPEL er basert på mange<br />

WS-<strong>standarder</strong>: WSDL <strong>for</strong> partner- og meldingsdefinisjon, XSD <strong>for</strong> datadefinisjon, samt XSLT<br />

og XPath <strong>for</strong> manipulering <strong>av</strong> data. Følgende hovedfunksjoner og elementer støttes <strong>av</strong> BPEL<br />

Forespørre og utføre web service operasjoner,<br />

Dat<strong>av</strong>ariable, enkle beregningsuttrykk og tilordning,<br />

Lenker til partnere og referanser til endepunkter,<br />

Meldingskorrelasjon, hvilke meldinger hører sammen,<br />

Atomiske og sammensatte, strukturerte aktiviteter ,<br />

Feilhåndtering, kompensasjon <strong>for</strong> transaksjoner og håndtering <strong>av</strong> hendelser.<br />

Den seneste versjon er WS-BPEL 2.0 som <strong>for</strong>valtes <strong>av</strong> OASIS [97]. BPEL erstattet tidligere<br />

<strong>for</strong>slag fra Microsoft og IBM som Xlang og WSFL.<br />

4.7.1.1 BPEL4People og WS-HumanTask<br />

BPEL4People [1] er en utvidelse <strong>av</strong> BPEL <strong>for</strong> å støtte menneskelig interaksjon i en prosess.<br />

Den ble <strong>for</strong>elått <strong>av</strong> IBM og SAP i 2005. Interaksjonen er definert gjennom roller, som knytter<br />

brukere til oppg<strong>av</strong>er og tjenester. Metoden gjør det mulig å definere oppg<strong>av</strong>er i en prosess og<br />

knytte dem opp til en rolle eller til en bestemt bruker. Typiske scenarioer blir håndtert, som<br />

delegering, eskalering og behovet <strong>for</strong> å ha flere personer til å se på en oppg<strong>av</strong>e.<br />

I 2007 ble det gitt ut en oppdatering hvor dette <strong>for</strong>slaget er integrert med et parallelt initiativ<br />

kalt WS-HumanTask [2]. Nå inkluderer bidragsyterne bl.a. Adobe, BEA, IBM, Oracle and SAP.<br />

Dette arbeidet videreføres nå i en egen teknisk komité i OASIS. Forslaget er allerede<br />

implementert i BPM-system fra store leverandører.<br />

Konseptet til WS-HumanTask er å definere generiske tjenester som beskriver menneskelig<br />

interaksjon med en prosess, gjennom oppg<strong>av</strong>er i en <strong>tjenesteorientert</strong> omgivelse. Forslaget<br />

definerer to typer grensesnitt, det første når et menneske tilbyr en tjeneste gjennom en<br />

oppg<strong>av</strong>e, den andre når et menneske bruker en tjeneste.<br />

Disse standardene baserer seg på WSDL 1.1, XML Schema 1.0, XPath, WS-Addressing, WS-<br />

Coordination, og WS-Policy.<br />

4.7.2 WS-CDL<br />

Web Services Choreography Description Language (WS-CDL), tidligere også kjent som WSCI<br />

og WS-Choreography, er en kandidat til standard fra W3C [204]. Den har imidlertid ikke blitt<br />

anbefalt som standard på 4 år, og er ikke implementert <strong>av</strong> mange store leverandører.<br />

WS-CDL er et språk <strong>for</strong> å beskrive hvordan autonome og likestilte deltakere (peer-to-peer)<br />

skal samarbeide. Dette skiller seg fra orkestreringsløsninger som BPEL, som ser prosessen<br />

20.01.2010 Versjon 1.1 53/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

som styrende <strong>for</strong> de partnernes handlinger, og partnerne reduseres til å svare på definerte<br />

<strong>for</strong>espørsler om webtjenester. En koreografibeskrivelse er en kontrakt som beskriver<br />

deltagernes observerbare atferd, og organiserer meldingsutvekslingen mellom dem <strong>for</strong> å<br />

oppnå et felles mål.<br />

4.7.3 ebXML BPSS<br />

ebXML sin meldingsutvekslingsstandard (ebMS) og datadefinisjonstilnærming (Core<br />

Components) <strong>for</strong>tsatt er i utstrakt bruk, og gjenstand <strong>for</strong> løpende standardisering i ulike<br />

sektorer <strong>av</strong> elektronisk <strong>for</strong>valtning og <strong>for</strong>retning. ebXML sin standard <strong>for</strong> prosesser, BPSS eller<br />

ebBP, har ikke vært like utbredt. Dens tilnærming er koreografi, i likhet med WS-CDL, men her<br />

defineres samarbeid mellom partnere som en overbygning over flere prosesser. BPSS utgjør<br />

ikke et alternativ til BPEL, men noe arbeid er gjort <strong>for</strong> å bruke BPSS som en spesifikasjon <strong>for</strong><br />

elektronisk <strong>for</strong>retning og <strong>for</strong>valtning på toppen <strong>av</strong> BPEL [45]. På dette området konkurrerer de<br />

delvis med mer generelle <strong>standarder</strong> fra OMG, som omhandles i <strong>av</strong>snitt 4.10.1.<br />

4.7.4 WS-CAF – Composite Applications Framework<br />

Dette var en arbeidsgruppe i OASIS som utviklet <strong>standarder</strong> <strong>for</strong> å koordinere <strong>av</strong>hengigheter<br />

mellom ulike applikasjoner og tjenester. De jobbet med tre områder, hvor<strong>av</strong> to, Coordination<br />

Framework (WS-CF [99]) og Transaction Management (WS-TXM) ble videreført i WS-<br />

Transactions, se neden<strong>for</strong>. Den tredje, WS-Context [98], ble til en standard som sørger <strong>for</strong><br />

deling <strong>av</strong> in<strong>for</strong>masjon om underliggende infrastruktur og pågående sesjoner mellom ulike<br />

endepunkter, delvis overlappende med WS-MetadataExchange (4.3.2.5).<br />

4.7.5 WS-Transactions<br />

Denne arbeidsgruppen i OASIS har utviklet 3 <strong>standarder</strong> <strong>for</strong> transaksjonshåndtering på tvers<br />

<strong>av</strong> tjenester og endepunkter.<br />

WS-AtomicTransaction [100] definerer protokoller <strong>for</strong> å sørge <strong>for</strong> atomiske<br />

transaksjoner hvor alle steg eller ingen blir utført, f.eks. ved hjelp <strong>av</strong> to-fase låsing<br />

(two phase commit).<br />

WS-Coordination [102] spesifiserer tjenester som brukes til å skape en<br />

koordineringskontekst <strong>for</strong> en aktivitet, til å registrere deltagere i denne aktiviteten, og<br />

til å skape enighet om aktiviteten er <strong>av</strong>sluttet komplett og korrekt. De øvrige<br />

transaksjonsprotokollene bygger på denne.<br />

WS-BusinessActivity [101] er en protokoll <strong>for</strong> lengelevende aktiviteter basert på<br />

kompensering. Både atomiske og mer komplekse resultatkr<strong>av</strong> håndteres. To ulike<br />

protokoller er definert basert på om de deltagende tjenestene selv vet når deres del <strong>av</strong><br />

aktiviteten er ferdig, eller om dette bestemmes <strong>av</strong> en sentral koordinator.<br />

Disse standardene støttes <strong>av</strong> flere store leverandører <strong>av</strong> mellomvare.<br />

4.7.6 Overvåking og styring <strong>av</strong> prosesser<br />

BPAF (Business Process Analytics Format) [207] er en ny standard under utvikling fra WfMC<br />

som definerer et verktøyu<strong>av</strong>hengig <strong>for</strong>mat <strong>for</strong> å beskrive hendelser som inntreffer i løpet <strong>av</strong><br />

eksekveringen <strong>av</strong> en prosess. Hendelsene dreier seg om oppstart og <strong>av</strong>slutning <strong>av</strong> aktiviteter,<br />

tjenestekall, applikasjonshendelser og infrastrukturhendelser. Ved hjelp <strong>av</strong> BPAF kan samme<br />

styringsverktøy brukes til å følge opp prosesser som kjører i ulike omgivelser.<br />

4.7.7 Business Centric Methodology (BCM) og Content Assembly Mechanism (CAM)<br />

BCM [86] skiller seg fra andre <strong>standarder</strong> på området ved å være drevet fram <strong>av</strong> brukerne,<br />

heller enn leverandørene. Offentlig sektor, særlig <strong>for</strong>svar, helse og omsorg, har vært i fokus.<br />

Samtidig finnes det ikke støtte <strong>for</strong> denne standarden hos noen <strong>av</strong> de store leverandørene. Det<br />

finnes imidlertid en implementasjon med åpen kildekode. Standarden er utviklet med norsk<br />

deltagelse fra Sintef og eprForum.<br />

20.01.2010 Versjon 1.1 54/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

BCM kan være interessant <strong>for</strong>di den dekker et område som i dag styres <strong>av</strong> proprietære<br />

løsninger, nemlig dynamisk sammensetting <strong>av</strong> applikasjoner fra innhold, webtjenester og<br />

annen funksjonalitet. BCM befinner seg således på et høyere abstraksjonsnivå, nærmere<br />

brukerne enn andre <strong>standarder</strong>. Målet er å sette sluttbrukere i stand til å skreddersy sine egne<br />

løsninger, gjennom tilpasning og anvendelse <strong>av</strong> maler (templates). Malene brukes på fire lag<br />

<strong>av</strong> <strong>arkitektur</strong>en: Implementasjon, utvidelser, <strong>for</strong>retningsoperasjon og konsepter, og kan<br />

defineres <strong>for</strong> ulike sektorer, organisasjoner og spesifikke prosesser. Malene skaper<br />

organisatorisk og semantisk interoperabilitet gjennom kontrakter som innholder svar på 6<br />

spørsmål: Hvor<strong>for</strong>? Når? Hva? Hvor? Hvordan? Hvem? Beslutningspunkter (choice points) i<br />

malene styrer hvilket innhold som skal inkluderes, basert på in<strong>for</strong>masjon om hvilken<br />

<strong>for</strong>retningssammenheng (context) brukeren befinner seg i. Beslutninger kan delegeres til<br />

eksterne webtjenester, inkludert BPEL-prosesser.<br />

BCM kan ses på som en metodikk <strong>for</strong> <strong>arkitektur</strong>, som knytter sammen modelleringsmetoder og<br />

tekniske <strong>standarder</strong> Søskenstandarden Content Assembly Mechanism (CAM) [87] definerer<br />

maler <strong>for</strong> operative løsninger. CAM prosesserer XML, først og fremst <strong>for</strong> konstruksjon og<br />

validering <strong>av</strong> meldingsinnhold, men mekanismen kan også brukes <strong>for</strong> brukergrensesnitt eller<br />

prosesser.<br />

4.7.8 Andre <strong>standarder</strong><br />

BPML, SWAP, WSFL, WSCI, WSCL og XLang er blant de mange <strong>standarder</strong> og <strong>for</strong>slag innen<strong>for</strong><br />

dette området som i praksis er erstattet <strong>av</strong> løsningene over. WS-CAF og WS-CDL ser heller<br />

ikke ut til å ha stor støtte bak seg.<br />

4.8 Sikkerhet og pålitelighet<br />

Sikkerhet er kanskje den viktigste tjenestekvaliteten. Det er i hvert fall det området hvor<br />

standardisering har kommet lengst. Dette <strong>av</strong>snittet beskriver sikkerhetstillegg <strong>for</strong><br />

tjenestelaget, og <strong>standarder</strong> <strong>for</strong> å autorisere brukeres adgang til tjenester, in<strong>for</strong>masjon og<br />

andre ressurser. Sikkerhetsmekanismer på transportlaget og andre deler <strong>av</strong> infrastrukturen er<br />

uten<strong>for</strong> fokus <strong>for</strong> denne studien, men blir nevnt med der hvor <strong>standarder</strong> <strong>for</strong> <strong>tjenesteorientert</strong><br />

<strong>arkitektur</strong> refererer til dem.<br />

4.8.1 eID og ID-porten<br />

Rammeverket <strong>for</strong> eID og PKI i offentlig sektor definerer [34]:<br />

4 risikonivåer – ingen (1), liten (2), moderat (3), og stor (4)<br />

4 sikkerhetsnivåer tilsvarende de 4 risikonivåene, med ulike kr<strong>av</strong> til løsninger:<br />

o Autentiseringsfaktorer - antall, om de er statiske eller dynamiske, om de kan<br />

lagres eller ikke<br />

o Utlevering til bruker<br />

o Offentlig godkjenning<br />

o U<strong>av</strong>viselighet, logging<br />

3 sertifikatklasser: Person standard (nivå 3), Person høyt (nivå 4), Virksomhet (nivå 4)<br />

ID-porten som implementerer felles autentiseringsløsning <strong>for</strong> offentlig sektor (MinID), er laget<br />

med Sun OpenSSO. Denne platt<strong>for</strong>men bruker eller tilbyr flere <strong>av</strong> standardene beskrevet i<br />

<strong>av</strong>snittene neden<strong>for</strong>:<br />

SAML 2.0 <strong>for</strong> autentiseringsmerker og føderert engangs innlogging<br />

SPML 2.0 <strong>for</strong> identitets<strong>for</strong>valtning<br />

XACML 2.0 <strong>for</strong> autorisasjon<br />

WS-Federation <strong>for</strong> engangs innlogging<br />

WS-Trust <strong>for</strong> å etablere tillitsområder mellom ulike tjenere<br />

20.01.2010 Versjon 1.1 55/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

WS-Security <strong>for</strong> autentisering og integritet, med X.509, Kerberos, og enkel brukern<strong>av</strong>npassord-merking<br />

WS-SecurityPolicy <strong>for</strong> spesifikasjon <strong>av</strong> ulike sikkerhetsregler<br />

XML Signature og XML Encryption <strong>for</strong> å sikre integriteten til meldingsinnholdet,<br />

gjennom en egen komponent, kalt ”Fedlet”<br />

OpenId <strong>for</strong> innlogging på l<strong>av</strong>t sikkerhetsnivå<br />

Alle disse standardene er aktuelle <strong>for</strong> ID-porten, selv om f.eks. OpenId ikke gir kobling til<br />

fødselsnummer som er sentralt <strong>for</strong> autentisering mot offentlige tjenester. Versjon 3 <strong>av</strong> MinId<br />

bruker <strong>for</strong>eløpig SAML og X.509, mens framtidige versjoner gjennom EU-samarbeidet STORK<br />

vil se på blant annet WS-Federation, WS-Trust og XAdES [25], som bruker XML Signature.<br />

SPML og XACML er aktuelle når identitetshåndtering og autorisasjon til offentlige registre blir<br />

vurdert. ID-porten følger dessuten arbeidet til Liberty Alliance med profiler <strong>for</strong> sikkerhet og<br />

autentisering i eForvaltning [72]. For sikkerhetsnivå 4 er det lite trolig at engangs innlogging<br />

vil bli brukt, siden løsningene som er tilgjengelig i markedet ikke tilfredsstiller kr<strong>av</strong>ene på<br />

dette nivået.<br />

4.8.2 SAML<br />

Security Assertion Markup Language (SAML) er en standard fra OASIS [89]. Den er nå i<br />

versjon 2.0, og versjon 1.0 og 1.1 ble også akseptert som <strong>standarder</strong>. SAML definerer hvordan<br />

ulike sikkerhetsdomener kan utveksle in<strong>for</strong>masjon om autentisering og autorisasjon, ofte<br />

utsagn (assertions) som produseres <strong>av</strong> en identifikasjonsleverandør (identity provider) og<br />

brukes <strong>av</strong> ulike tjenesteleverandører. Det viktigste bruksområdet er å sørge <strong>for</strong> engangs<br />

innlogging (single sign-on), hvor SAML har blitt den dominerende metoden. Standarden består<br />

<strong>av</strong> flere deler:<br />

En kjerne med standard syntaks og semantikk <strong>for</strong> sikkerhetsutsagn, og protokoller <strong>for</strong> å<br />

<strong>for</strong>espørre og utveksle meldinger om slike utsagn.<br />

Bindinger <strong>for</strong> hvordan meldingene overføres med bl.a. SOAP, gjennom synkron<br />

overføring, og regler <strong>for</strong> bruk <strong>av</strong> sikkerhet på transportlaget.<br />

Profiler <strong>for</strong> hvordan SAML kan brukes i ulike scenarioer (use cases), f.eks. engangs<br />

innlogging i web-applikasjoner (Holder-of-Key), som Id-porten vil følge.<br />

Metadata, et utvidbart <strong>for</strong>mat <strong>for</strong> å beskrive elementene i en sikkerhets<strong>arkitektur</strong>, som<br />

identifikasjonsleverandør, tjenesteleverandør, tilknytning, attributtautoritet, attributtkonsument,<br />

og beslutningspunkt (policy decision point).<br />

Autentiseringssammenhenger <strong>for</strong> egendefinerte og standard sammenhenger (contexts)<br />

<strong>for</strong> internett, mobile nettverk, telekommunikasjon m.m. med ulike sikkerhetsnivåer.<br />

Kr<strong>av</strong> <strong>for</strong> kon<strong>for</strong>mitet, hvilke spesifikasjoner og XML Schemas som må brukes <strong>for</strong> at en<br />

implementasjon kan sies å følge SAML, <strong>for</strong> ulike komponenter i en SAML-<strong>arkitektur</strong>.<br />

WS-Security (se neden<strong>for</strong>) inneholder en profil som knytter SAML-utsagn til meldinger til og<br />

fra webtjenester.<br />

4.8.3 XACML<br />

eXtensible Access Control Markup Language (XACML) er en standard fra OASIS [88]. Den er<br />

nå i versjon 2.0, og versjon 1.0 og 1.1 ble også akseptert som <strong>standarder</strong>, mens 3.0 er<br />

tilgjengelig som utkast. XACML brukes til å definere adgangskontroll (access control policies)<br />

<strong>for</strong> autorisasjon, gjennom å tildele eller nekte subjekter som brukere, roller eller grupper,<br />

adgang til å utføre ulike aksjoner på ressurser i en omgivelse. Desentralisert adgangskontroll<br />

gjøres mulig gjennom delegering til andre subjekter, og bruk <strong>av</strong> flere beslutningspunkter<br />

(policy decision points - PDP). For <strong>for</strong>enkling knyttes reglene gjerne til attributter som<br />

beskriver subjektene og ressursene, og XACML inneholder et regelspråk med en lang rekke<br />

funksjoner <strong>for</strong> å definere sammensatte adgangsspesifikasjoner.<br />

Der SAML fokuserer på autentisering med noe støtte <strong>for</strong> autorisasjon, konsentrerer XACML seg<br />

om autorisasjon. XACML kan bygge på SAML. Ved siden <strong>av</strong> kjernespesifikasjonen består<br />

20.01.2010 Versjon 1.1 56/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

standarden <strong>av</strong> profiler <strong>for</strong> rollebasert adgangskontroll (RBAC), hemmeligholdelse, hierarkiske<br />

ressurser og samtidig tilgang til flere ressurser, samt dokumenter som beskriver hvordan<br />

standarden skal bruke SAML og XML Digital Signature. XACML 2.0 bygger på XML Schema 1.0,<br />

XSLT 1.0, XPath 2.0, XQuery 1.0, og benytter attributter definert som del <strong>av</strong> LDAP, eller ved<br />

hjelp <strong>av</strong> SAML.<br />

Det <strong>for</strong>eslås stadig nye rammeverk som bygger på XACML. Oracle har f.eks. drevet fram et<br />

Identity Governance Framework (IGF) bestående <strong>av</strong> AAPML (Attribute Authority Policy Markup<br />

Language) som brukes til å styre tilgangen til data om brukere fra applikasjoner, og CARML<br />

(Client Attribute Requirement Markup Language) som brukes til å spesifisere hvilke brukerdata<br />

ulike applikasjoner bruker.<br />

4.8.3.1 SPML – Service Provisioning Markup Language<br />

SPML fra OASIS er et standard språk i XML <strong>for</strong> å utveksle in<strong>for</strong>masjon om brukere, ressurser<br />

og tjenesteleveranser mellom ulike virksomheter [92]. Dette gir en åpen løsning <strong>for</strong> definisjon<br />

<strong>av</strong> brukeres eller systemers rettigheter til å bruke ulike tjenester. Tilnærmingen baserer seg<br />

på at <strong>for</strong>espørsler går via et eller flere tjenesteleveransesystem (service provisioning system),<br />

som sjekker adgangsrettigheter og deretter kaller opp de ressurser og tjenester som faktisk<br />

leverer tjenesten.<br />

SPML sprang ut fra arbeidet med en tidligere spesifikasjon som het WS-Provisioning. Den<br />

benytter sikkerhetsspesifikasjoner i SAML (<strong>av</strong>snitt 4.8.2), og koder in<strong>for</strong>masjonen i henhold til<br />

Directory Services Markup Language (DSML) eller sitt eget XML Schema. DSML er en OASISstandard<br />

<strong>for</strong> XML-representasjon <strong>av</strong> LDAP (Lightweight Directory Access Protocol). Mens<br />

kataloger som UDDI inneholder tjenester, identifiserer LDAP brukere, brukergrupper, og<br />

kanskje ressurser som møterom, printere og dokumenter. Ressursbegrepet i <strong>for</strong>valtnings<strong>standarder</strong><br />

<strong>for</strong> webtjenester kan til en viss grad sies å bygge bro mellom disse katalogtypene<br />

(jf. <strong>av</strong>snitt 4.3.3).<br />

4.8.4 WS-Security<br />

Den mye brukte OASIS-standarden WS-Security består <strong>av</strong> en kjernespesifikasjon [115] som<br />

beskriver utvidelser til SOAP <strong>for</strong> å sikte integritet og konfidensialitet. Kjernen definerer også en<br />

generell mekanisme <strong>for</strong> å knytte sikkerhetsmerking (security tokens) til meldingsinnholdet.<br />

Denne løsningen er u<strong>av</strong>hengig <strong>av</strong> hva slags merking man vil bruke, men i tillegg til kjernen<br />

defineres 6 profiler <strong>for</strong> slik merking:<br />

Username Token Profile [116] <strong>for</strong> å sende brukern<strong>av</strong>n og kanskje passord som<br />

autentisering <strong>av</strong> den som kommer med <strong>for</strong>espørselen.<br />

X.509 Token Profile [117] beskriver hvordan X.509-sertifikater kan sikre autentisering<br />

og integritet <strong>for</strong> meldinger til/fra webtjenester.<br />

SAML Token Profile [118] beskriver hvordan man kan knytte inn SAML 1.0 og 2.0<br />

spesifikasjoner til meldingene.<br />

Kerberos Token Profile [119] beskriver hvordan Kerberos-billetter kan sikre gjensidig<br />

autentisering <strong>av</strong> klient og tjener.<br />

Rights Expression Language (REL) Token Profile [120] beskriver hvordan ISO/IEC<br />

21000-5 kan brukes til å styre autorisasjon til å bruke webtjenester.<br />

SOAP with Attachments (SWA) Profile [121] knytter WS-Security sammen med<br />

mulighet til å sende deler <strong>av</strong> meldingene i andre <strong>for</strong>mater enn XML, som vedlegg.<br />

Merkingen kan være signert (Kerberos, X.509) eller usignert, og innholder en eller flere<br />

påstander som kan verifiseres <strong>av</strong> en ekstern autoritet. Signaturer brukes til å garantere<br />

meldingens integritet og <strong>av</strong>senders identitet. XML Signature [200] sørger <strong>for</strong> integritet, mens<br />

XML Encryption [192] beskytter meldingens konfidensialitet, se <strong>for</strong> øvrig <strong>av</strong>snitt 4.8.5.<br />

Rammeverket er svært åpent, siden fremtidige <strong>standarder</strong> <strong>for</strong> merking lett kan legges til som<br />

nye profiler. En mekanisme <strong>for</strong> å beskrive nye merker er standardisert, sammen med løsninger<br />

<strong>for</strong> XML-representasjon <strong>av</strong> merker, binær koding <strong>av</strong> merker, og trygg innkapsling <strong>av</strong> merker<br />

som uvedkommende ikke kan få innsyn i.<br />

20.01.2010 Versjon 1.1 57/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Ved siden <strong>av</strong> de grunnleggende profilene <strong>for</strong> webtjenester (se <strong>av</strong>snitt 4.2.5), definerer WS-I en<br />

egen profil <strong>for</strong> sikre og pålitelige tjeneste<strong>arkitektur</strong>er [211]. Denne baserer seg på WS-<br />

Security, og legger til retningslinjer <strong>for</strong> hvordan disse løsningene knyttes opp til andre profiler<br />

fra WS-I.<br />

4.8.4.1 WS-SecurityPolicy<br />

Denne standarden [111] definerer hvordan WS-Security, WS-Trust og WS-SecureConversation<br />

gjør bruk <strong>av</strong> WS-Policy (<strong>av</strong>snitt 4.3.2.4), på en slik måte at de blir u<strong>av</strong>hengig <strong>av</strong> hvilken<br />

versjon <strong>av</strong> WS-Policy som brukes. En rekke standard regler (policies) blir definert <strong>for</strong><br />

beskyttelse, sikkerhetsmerking (tokens), transportsikkerhet, krypteringsalgoritmer og<br />

signering <strong>av</strong> meldinger.<br />

4.8.4.2 WS-SecureConversation<br />

WS-SecureConversation [112] fra OASIS utvider WS-Security med et rammeverk <strong>for</strong> å<br />

<strong>for</strong>espørre og utveksle sikkerhetsmerking (tokens). Løsningen baserer seg på etableringen <strong>av</strong><br />

en sikkerhetssammenheng (security context) hvor nøkler og annen sikkerhetsin<strong>for</strong>masjon kan<br />

utveksles trygt. Sammenhengen etableres ved hjelp <strong>av</strong> WS-Trust, og autentiseres ved hjelp <strong>av</strong><br />

et eget merke (security context token) i tråd med WS-Security.<br />

4.8.4.3 WS-Trust<br />

WS-Trust [113] fra OASIS utvider WS-Security med et rammeverk <strong>for</strong> å utstede, <strong>for</strong>nye og<br />

validere sikkerhetsmerker (tokens), og <strong>for</strong> å megle fram og <strong>av</strong>klare tillitsrelasjoner mellom<br />

aktørene. Standarden introduserer<br />

Sikkerhetsmerketjeneste (Security Token Service - STS), en webtjeneste som utsteder<br />

merker<br />

Standard<strong>for</strong>mater <strong>for</strong> meldingene som brukes til å <strong>for</strong>espørre og utveksle merker (som<br />

WSDL-tjenester)<br />

Mekanismer <strong>for</strong> utveksling <strong>av</strong> nøkler.<br />

Ulike tillitsmodeller støttes <strong>for</strong> å initiere kommunikasjonen, som faste rot-autoriteter,<br />

hierarkiske sertifikater og eksterne autentiseringstjenester.<br />

4.8.4.4 WS-Federation<br />

WS-Federation ble opprinnelig <strong>for</strong>eslått <strong>av</strong> Microsoft, IBM, BEA, Verisign og RSA i 2003, og<br />

implementert i flere verktøy. En arbeidsgruppe ble opprettet i OASIS, og standarden ble<br />

godkjent i mai 2009 [114]. Den beskriver språk og protokoll <strong>for</strong> megling <strong>av</strong> identitet,<br />

sikkerhetsattributter, autentisering og autorisasjon mellom ulike domener som inngår i en<br />

føderasjon. Dette gjør at et domene kan gi tilgang til ressurser i andre domener, eller<br />

autentisere brukere <strong>for</strong> andre domener.<br />

WS-Federation bygger på WS-Security, WS-Trust, WS-SecurityPolicy, WS-Policy, WS-<br />

MetadataExchange, WS-Eventing, WS-ResourceTransfer og WS-Adressing. WS-Federation fikk<br />

kritikk <strong>av</strong> miljøet bak SAML, Liberty Alliance, <strong>for</strong>di den har overlappende funksjonalitet med<br />

SAML, særlig <strong>for</strong> engangs innlogging. I den endelige standarden har man der<strong>for</strong> lagt seg<br />

tettere opp til SAML, og man <strong>for</strong>etrekker SAML som mekanisme <strong>for</strong> å definere<br />

sikkerhetsutsagn, selv om også andre mekanismer tillates. WS-Federation baserer seg<br />

dessuten på WS-Eventing, som ikke er en godkjent standard, og ikke WS-Notification (se<br />

<strong>av</strong>snitt 4.4.3).<br />

4.8.5 XML kryptering og signering<br />

W3C definerer to fundamentale <strong>standarder</strong> <strong>for</strong> sikring, integritet og u<strong>av</strong>viselighet <strong>av</strong><br />

meldingers innhold.<br />

4.8.5.1 XML Signature Syntax and Processing<br />

XML Signature eller DSIG [200] brukes til å signere en ressurs, som kan være en hvilken som<br />

helst URI, og som ofte er et XML-dokument eller en identifiserbar del <strong>av</strong> et slikt dokument.<br />

20.01.2010 Versjon 1.1 58/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Signaturen kan være frikoblet fra innholdet (detached), inkludert som en del <strong>av</strong> innholdet<br />

(enveloped), eller den kan selv fungere som konvolutt og innkapsle innholdet (enveloping).<br />

XML Signature brukes <strong>av</strong> WS-Security og SAML, og signering valideres med nøkler fra X.509,<br />

PGP, SPKI eller RSA/DSA. ETSI definerer en standard profil <strong>for</strong> XML Signature, XAdES [25],<br />

som blir brukt <strong>av</strong> ID-porten. Tilsvarende profiler finnes dessuten <strong>for</strong> signering <strong>av</strong> pdf (PAdES).<br />

4.8.5.2 XML Encryption Syntax and Processing<br />

XML Encryption [192] kan brukes til kryptering <strong>av</strong> alle typer innhold, inkludert XMLdokumenter<br />

eller deler <strong>av</strong> disse. Det krypterte innholdet gjenfinnes i en XML-struktur, og<br />

standarden definerer hvordan man kan spesifisere krypteringsalgoritmer og nøkler i XML. Ulike<br />

krypteringsmetoder og algoritmer støttes, og begreper fra XML Signature gjenbrukes.<br />

4.8.5.3 Nøkkel<strong>for</strong>valtning med XKMS<br />

XML Key Management Specification (XKMS) [195] er en standard fra W3C som spesifiserer<br />

protokoller <strong>for</strong> å registrere og distribuere offentlige nøkler (public keys), <strong>for</strong> bruk i tilknytning<br />

til XML Signature og Encryption. Slike systemer består <strong>av</strong> to tjenester:<br />

X-KISS - XML Key In<strong>for</strong>mation Service Specification som gjør det mulig <strong>for</strong> en klient å<br />

delegere all prosessering <strong>av</strong> XML-signaturer til en XKMS-tjeneste.<br />

X-KRSS - XML Key Registration Service Specification som gjør det mulig å knytte<br />

in<strong>for</strong>masjon til en nøkkel <strong>for</strong> registrering <strong>av</strong> hvem som bruker den, som sertifikater,<br />

attributter, tillits- og styringsin<strong>for</strong>masjon.<br />

XKMS støtter ulike <strong>standarder</strong> <strong>for</strong> PKI som X.509, SPKI, PGP, og ulike krypteringsalgoritmer.<br />

4.8.6 Åpne industri<strong>standarder</strong> <strong>for</strong> autentisering og autorisasjon<br />

OpenId [133] er et åpent, desentralisert rammeverk <strong>for</strong> autentisering <strong>av</strong> brukere på weben,<br />

som anvendes <strong>av</strong> en lang rekke sentrale leverandører og websites. Løsningen er ut<strong>for</strong>met <strong>for</strong> å<br />

passe i AJAX-omgivelser. OAuth er et API <strong>for</strong> delegert autorisasjon som fungerer bra sammen<br />

med OpenId og tilsvarende løsninger.<br />

4.8.7 Pålitelig meldingsutveksling<br />

WS-ReliableMessaging fra OASIS [109] definerer elementer <strong>for</strong> meldingshoder i SOAP som kan<br />

brukes til å sikre pålitelig overføring <strong>av</strong> meldinger, gjennom kvitteringer, sending om igjen, og<br />

feilmeldinger. En tidligere spesifikasjon kalt WS-Reliability gjorde mye <strong>av</strong> det samme, og den<br />

er nå samordnet med WS-ReliableMessaging.<br />

4.8.8 ISO/IEC 27000<br />

Denne familien <strong>av</strong> <strong>standarder</strong> [56] <strong>for</strong> in<strong>for</strong>masjonssikkerhet <strong>av</strong>klarer begreper, og gir en<br />

oversikt over ulike metoder og hvordan de kan brukes sammen. Det er en standard mer på<br />

organisatorisk nivå, som ikke er knyttet til en bestemt teknisk implementasjon. Familien<br />

består <strong>av</strong> en rekke eksisterende <strong>standarder</strong> og noen som er under utvikling:<br />

27001 – spesifikasjon <strong>av</strong> et generelt styringssystem <strong>for</strong> in<strong>for</strong>masjonssikkerhet<br />

27002 – beskriver et hundretalls ulike styringsmekanismer som kan benyttes i et<br />

system <strong>for</strong> in<strong>for</strong>masjonssikkerhet<br />

27003 – retningslinjer <strong>for</strong> implementering <strong>av</strong> et styringssystem <strong>for</strong><br />

in<strong>for</strong>masjonssikkerhet<br />

27004 - målemetoder og –parametere <strong>for</strong> in<strong>for</strong>masjonssikkerhet (under utarbeidelse)<br />

27005 – generell tilnærming til risikohåndtering, ikke knyttet til noen bestemt metode<br />

27006 – retningslinjer <strong>for</strong> akkreditering <strong>av</strong> organisasjoner som tilbyr sertifisering <strong>av</strong><br />

styringssystem <strong>for</strong> in<strong>for</strong>masjonssikkerhet<br />

20.01.2010 Versjon 1.1 59/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.9 Avhengigheter mellom <strong>standarder</strong><br />

Figur 8 på side 31 introduserte en oversikt over <strong>standarder</strong> <strong>for</strong> webtjenester. Figuren neden<strong>for</strong><br />

viser <strong>av</strong>hengighetene mellom disse. De viktigste <strong>av</strong>hengighetene er illustrert, men lenker til<br />

kjernestandardene SOAP, WSDL, XML og XML Schema er skjult <strong>for</strong> å unngå en <strong>for</strong> kompleks<br />

figur.<br />

I tillegg til de viste <strong>av</strong>hengighetene innen definisjonen <strong>av</strong> <strong>standarder</strong>, kan selvfølgelig<br />

<strong>standarder</strong> kobles sammen i bruk. For eksempel kan man bruke WS-Security og WS-<br />

ReliableMessaging til å øke sikkerhet og pålitelighet i <strong>for</strong>bindelse med alle de andre<br />

standardene.<br />

WSDM<br />

WS-<br />

Notification<br />

XML<br />

Namespaces<br />

XML 1.0<br />

WS-Resource<br />

Framework<br />

WS-<br />

Fragment<br />

4.10 Modellering <strong>av</strong> tjenester<br />

Figur 11. Avhengigheter mellom <strong>standarder</strong> <strong>for</strong> webtjenester.<br />

Hittil har vi sett på <strong>standarder</strong> som brukes operativt i en <strong>tjenesteorientert</strong> <strong>arkitektur</strong>. Nå er det<br />

på tide å se på metoder og retningslinjer <strong>for</strong> utvikling <strong>av</strong> slike løsninger. Her tar vi <strong>for</strong> oss<br />

rammeverk og spesifikke metoder <strong>for</strong> modellering <strong>av</strong> prosesser, applikasjoner og tjenester,<br />

samt virksomhets<strong>arkitektur</strong>er <strong>for</strong> styring og <strong>for</strong>valtning <strong>av</strong> tjenesteporteføljer.<br />

4.10.1 Prosesser og sammenstilling <strong>av</strong> tjenester<br />

Fokus på prosesser et fundamentalt trekk ved tjenesteorientering [59]. En tjeneste, en<br />

aktivitet noen utfører <strong>for</strong> noen andre, inngår ofte som et steg i en større prosess. Ulike<br />

<strong>standarder</strong> <strong>for</strong> prosessmodellering har der<strong>for</strong> spilt en viktig rolle i utvikling <strong>av</strong><br />

<strong>tjenesteorientert</strong>e <strong>arkitektur</strong>er, <strong>for</strong> å identifisere hvilke IKT-tjenester man bør implementere,<br />

og <strong>for</strong> å knytte IKT-tjenestene sammen til <strong>for</strong>retningstjenester.<br />

4.10.1.1 IDEF<br />

WS-<br />

Management<br />

WS-Eventing<br />

WS-Resource<br />

Transfer<br />

WS-<br />

Discovery<br />

UDDI<br />

WS-<br />

Inspection<br />

WS-Transfer<br />

WS-<br />

Federation<br />

WS-<br />

Enumeration<br />

WSDL 1.1 WSDL 2.0<br />

SOAP 1.1<br />

XML Schema<br />

1.0<br />

WS-Metadata<br />

Exchange<br />

WS-<br />

Adressing<br />

WS-Trust<br />

SOAP 1.2<br />

XML Schema<br />

1.1<br />

WS-Security<br />

Policy<br />

WS-Policy<br />

WS-Secure<br />

Conversation<br />

WS-Remote<br />

Portlets<br />

SOAP MTOM<br />

IDEF (Integrated Definition) [48] er en tidlig standard <strong>for</strong> strukturert analyse og design <strong>av</strong><br />

programvare. IDEFØ <strong>for</strong> modellering <strong>av</strong> funksjoner og prosesser, og IDEF1X <strong>for</strong><br />

datamodellering er de mest brukt brukte notasjonene. De er standardisert <strong>av</strong> henholdsvis<br />

20.01.2010 Versjon 1.1 60/89<br />

XOP<br />

WS-Reliable<br />

Messaging<br />

WS-<br />

Transaction<br />

WS-BPEL<br />

WS-Security<br />

SOAP with<br />

Attachments<br />

MIME<br />

SPML<br />

WS-CAF<br />

Context<br />

XPDL<br />

XForms<br />

SAML<br />

EXI<br />

XML Info.Set<br />

WS-CDL<br />

Choreography<br />

BCM<br />

CAM<br />

XML<br />

Encryption<br />

XML<br />

Signature<br />

XSLT<br />

XPath


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

NIST og IEEE. IDEFØ definerer prosesser bestående <strong>av</strong> funksjoner, og funksjoner kan<br />

dekomponeres som prosesser. Ved siden <strong>av</strong> inn- og ut-flyt <strong>for</strong> sekvensering, kan man også<br />

definere kontrollflyt som styrer funksjonen, og mekanismer som brukes til å utføre funksjonen.<br />

Mange seinere språk og dialekter baserer seg på dette mønsteret, selv om langt fra alle tar<br />

med kontrollflyt og mekanismer. I utg<strong>av</strong>en som NIST standardiserte har man dessuten lagt til<br />

kall til andre funksjoner som spesiell type mekanisme, egnet f.eks. <strong>for</strong> webtjenester.<br />

4.10.1.2 BPMN<br />

BPMN (Business Process Model and Notation, tidligere Modeling Notation) [122] er en nyere<br />

standard <strong>for</strong> prosessmodellering fra OMG. Den er definert i <strong>for</strong>bindelse med <strong>tjenesteorientert</strong><br />

<strong>arkitektur</strong>. Ved siden <strong>av</strong> prosesser som består <strong>av</strong> aktiviteter, hendelser, flyt og<br />

beslutningspunkter mellom dem, kan en prosess i BPMN inndeles i ulike svømmebasseng<br />

(pools) og -baner (swimlanes). Hver bane kan f.eks. definere en rolle, en organisasjon, eller et<br />

lag i en lagdelt <strong>arkitektur</strong>. Slik får man tydelige skiller, f.eks. mellom tjenesteleverandør og<br />

bruker, og man kan skille interne prosesser fra eksterne grensesnitt <strong>for</strong> kommunikasjon og<br />

tjenesteyting. Man har også enkel modellering <strong>av</strong> dataflyt, selv om mange verktøy velger å<br />

representere datastrukturene i en melding med andre språk, nærmere knyttet til XMLstrukturene.<br />

Versjon 2.0 legger dessuten til modellering <strong>av</strong> samarbeid, samtaler (conversation) og<br />

koreografi, som interaksjon mellom aktører. BPMN har en klart definert semantikk <strong>for</strong><br />

eksekvering, og noen leverandører implementerer da også sitt BPMS (Business Process<br />

Management System) gjennom direkte tolkning <strong>av</strong> BPMN-modeller. Andre konverterer BPMN til<br />

BPEL, en trans<strong>for</strong>masjon som også er standardisert. Gjennom OMG har BPMN fått en<br />

spesifikasjon som følger <strong>standarder</strong> <strong>for</strong> objektorientert modellering (MOF, UML), men også en<br />

langt mer kompleks spesifikasjon enn de første versjonene.<br />

4.10.1.3 UML aktivitetsdiagram<br />

Før BPMN ble tatt over <strong>av</strong> OMG hadde man der også definert egne språk <strong>for</strong><br />

prosessmodellering. I UML er aktivitetsdiagram sentralt <strong>for</strong> representasjon <strong>av</strong> prosesser. Selv<br />

om dette språket er utviklet <strong>for</strong> å definere prosessene som <strong>for</strong>egår i programvaren, ikke i<br />

virksomheten, blir det pragmatisk brukt også på virksomhetsnivået. I de siste versjonene har<br />

aktivitetsdiagrammer blitt enda mer rendyrket som språk <strong>for</strong> IKT-nivået, underordnet<br />

objektklasser og med konstruksjoner fra programmeringsspråk som løkker og betingelser.<br />

4.10.1.4 XDPL<br />

XPDL (XML Process Definition Language) [206] fra WfMC er siste generasjon <strong>av</strong> en standard<br />

<strong>for</strong> prosessmodellering som har utviklet seg over 15 år. Opprinnelig en <strong>av</strong> fem <strong>standarder</strong> <strong>for</strong><br />

arbeidsflyt og BPM, er XPDL nå blitt til et standard XML fil<strong>for</strong>mat <strong>for</strong> BPMN-modeller, som<br />

mange verktøy <strong>for</strong> eksekvering, simulering og overvåking er i stand til å utveksle.<br />

4.10.1.5 BPDM<br />

BPDM (Business Process Definition Metamodel) [123] er et <strong>for</strong>søk fra OMG på å definere et<br />

utvekslings<strong>for</strong>mat i XML <strong>for</strong> prosessmodeller. BPDM bringer sammen UML aktivitetsdiagram og<br />

BPMN til et felles <strong>for</strong>mat <strong>for</strong> trans<strong>for</strong>masjon til eksekvering i f.eks. BPEL. BPMN hadde allerede<br />

definert direkte trans<strong>for</strong>masjon til BPEL fra dag 1, så fokuset ble raskt utveksling mellom ulike<br />

prosessmodelleringsspråk, først og fremst i OMG-familien. BPDM har konkurranse fra XPDL, en<br />

etablert standard som i motsetning til BPDM er implementert mange leverandører. BPDM<br />

fokuserer mer på det semantiske nivået, mens XPDL er sterkere på overføring <strong>av</strong> også de<br />

grafiske aspektene ved en prosessmodell. BPDM er dessuten svært generell, og i motsetning til<br />

XPDL lite spesifikt tilpasset prosessmodellering. Løfter om åpent tilgjengelige verktøy som<br />

skulle demonstrere BPDM fra modeldriven.org er ikke oppfylt, og materialet om BPDM er ikke<br />

lenger profilert der. Standarden virker altså ikke å ha så mye kraft bak seg.<br />

4.10.1.6 Dynamic Business Activity Modeling<br />

De fleste løsninger <strong>for</strong> BPM baserer seg på en modell hvor prosessene er definert på <strong>for</strong>hånd,<br />

og samme modell brukes til å styre mange <strong>for</strong>ekomster. Alle beslutninger om hvilke aktiviteter<br />

som skal utføres når, fattes <strong>av</strong> prosessmotoren basert på lokale data og predefinerte regler.<br />

20.01.2010 Versjon 1.1 61/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Mange prosesser, f.eks. innen saksbehandling, krever større rom <strong>for</strong> skjønnsmessige<br />

vurderinger og menneskelig styring. OMG har startet et standardiseringsarbeid <strong>for</strong> slike<br />

prosesser, i tilknytning til BPMN [17].<br />

4.10.1.7 Andre <strong>standarder</strong><br />

Tidligere har en lang rekke <strong>standarder</strong> og <strong>for</strong>slag blitt fremsatt <strong>for</strong> prosessmodellering i<br />

tilknytning til <strong>tjenesteorientert</strong> <strong>arkitektur</strong>, uten å få stort gjennomslag, blant annet<br />

BPDL – et språk <strong>for</strong> <strong>av</strong>bilding (depiction) <strong>av</strong> prosesser slik at de skal være mer<br />

<strong>for</strong>ståelige <strong>for</strong> folk som ikke er IKT-eksperter<br />

BPQL – et språk <strong>for</strong> å søke (query) etter prosesser i lagre <strong>av</strong> modeller<br />

ebBP/BPSS fra ebXML<br />

PIP (Partner Interface Process) fra RosettaNet<br />

ITIL, eTOM, SCOR, VCOR og andre rammeverk som beskriver beste praksis prosesser innen<br />

ulike sektorer og funksjoner har hatt mer suksess.<br />

4.10.1.8 Mønstre i arbeidsflyt<br />

Ved siden <strong>av</strong> språk <strong>for</strong> prosessmodellering er det viktig å vurdere hvilke mønstre <strong>av</strong><br />

prosessflyt som et BPMS støtter [213]. Slike mønsterkataloger kan også være en god kilde til<br />

ideer <strong>for</strong> å koble sammen tjenester til høyere nivå virksomhetstjenester.<br />

4.10.2 Modelldrevet utvikling <strong>av</strong> tjenester<br />

Tjenesteorientering krever metoder som muliggjør:<br />

Klar definisjon <strong>av</strong> roller, myndighet og eierskap<br />

Langsiktig visjon, iterativ utvikling <strong>av</strong> tjenesteporteføljer<br />

Strategi <strong>for</strong> in<strong>for</strong>masjon, grensesnitt og funksjonalitet<br />

Hyppige leveranser, målbarhet <strong>av</strong> kostnader mot nytte<br />

Gjenbrukbar design<br />

Tverrgående virksomhetspolitikk <strong>for</strong> organisasjonsenheter<br />

Kontinuerlig samarbeid mellom arkitekter, <strong>for</strong>retningsanalytikere, utvikling og drift<br />

Tjenester kan realiseres med ulik granularitet, fra fullstendige applikasjonsløsninger til enkle<br />

prosedyrekall. Ulike nivåer krever ulike organiseringsprinsipper. Der<strong>for</strong> finnes det flere<br />

tilnærminger til modelldrevet utvikling <strong>av</strong> <strong>tjenesteorientert</strong>e <strong>arkitektur</strong>er.<br />

4.10.2.1 UML og MDA<br />

UML [124] er den dominerende modelleringstilnærmingen til utvikling <strong>av</strong> programvare. UML er<br />

objektorientert, med god støtte <strong>for</strong> å definere komponenter og deres grensesnitt. En mer<br />

funksjonell, <strong>tjenesteorientert</strong> tilnærming er mulig gjennom use cases og aktiviteter, men dette<br />

er i utgangspunktet underordnet objektstrukturene. UML definerer f.eks. tjeneste ganske<br />

snevert som en funksjonell, tilstandsløs komponent som beregner en verdi. OMG har imidlertid<br />

definert en rekke spesialtilpassede profiler <strong>av</strong> relevans <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>, som<br />

SOAML (se neste <strong>av</strong>snitt)<br />

EDOC (Enterprise Distributed Object Computing), som bl.a. inkluderer en Component<br />

Collaboration Architecture i tråd med ebXML BPSS, samt modellering <strong>av</strong><br />

<strong>for</strong>retningsprosesser, hendelser, organisasjons- og in<strong>for</strong>masjonsenheter.<br />

CWM (Common Warehouse Model) <strong>for</strong> dat<strong>av</strong>arehus og andre registre<br />

BMM (Business Motivation Model) <strong>for</strong> virksomhetsplaner<br />

SVBR (Semantics of Business Vocabulary and Business Rules) <strong>for</strong> regler på<br />

<strong>for</strong>retningsnivå<br />

20.01.2010 Versjon 1.1 62/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

PRR (Production Rule Representation) <strong>for</strong> regler på implementeringsnivå<br />

ODM (Ontology Definition Metamodel) <strong>for</strong> begrepsmodeller<br />

RAS (Reusable Asset Specification) <strong>for</strong> gjenbruk og flerbruk<br />

SysML (Systems Modeling Language) <strong>for</strong> produktutvikling<br />

UML Profile <strong>for</strong> Enterprise Application Integration<br />

UML Profile <strong>for</strong> Data Distribution<br />

AMP (Agent Metamodel & Profile) under utarbeidelse.<br />

EMP (Event Metamodel & Profile) under utarbeidelse.<br />

VDM (Value Delivery Modell) under utarbeidelse.<br />

I tillegg til disse finnes en lang rekke domenemodeller <strong>for</strong> ulike virksomhetsområder.<br />

4.10.2.2 SOAML<br />

SOAML (Service Oriented Architecture Modeling Language) [125] er UML-profilen <strong>for</strong><br />

<strong>tjenesteorientert</strong> <strong>arkitektur</strong>. Den definerer modelleringsspråk <strong>for</strong><br />

Identifikasjon <strong>av</strong> tjenester, kr<strong>av</strong>ene de skal møte, og <strong>for</strong>ventede <strong>av</strong>hengigheter mellom<br />

dem,<br />

Spesifikasjon <strong>av</strong> tjenester, deres funksjonalitet, hvilke <strong>for</strong>ventninger som stilles til<br />

brukerne <strong>av</strong> tjenestene, protokoller og in<strong>for</strong>masjonsutveksling,<br />

Definisjon <strong>av</strong> tjenestebrukere og –leverandører, hvilke tjenester de anvender og tilbyr,<br />

hvordan de kobles sammen, og hvordan tjenestene er implementert slik at<br />

spesifikasjoner og kr<strong>av</strong> blir fulgt,<br />

Regler (policies) <strong>for</strong> bruk og leveranse <strong>av</strong> tjenester,<br />

Klassifikasjonsrammer med aspekter som støtter et bredt utvalg <strong>av</strong> oppdelingsmåter og<br />

begrensninger på <strong>arkitektur</strong>, organisasjon og fysiske komponenter,<br />

Kobling <strong>av</strong> tjenester og tjenestekr<strong>av</strong> til relaterte modeller som BMM planer, BPDM<br />

prosesser, BPMN 2.0, UML use cases, SBVR, ODM, DoDAF og MoDAF m.fl.<br />

Perspektivet til SOAML fokuserer på virksomhetens tjenesteyting og <strong>arkitektur</strong>, og begrepene<br />

er så langt som mulig i tråd med OASIS sin referansemodell [90]. Ved siden <strong>av</strong> definisjon <strong>av</strong><br />

modelleringsspråk, inneholder standarden en beskrivelse <strong>av</strong> prinsipper <strong>for</strong> beste praksis, som<br />

skille mellom ulike aspekter, delegering, innkapsling, dynamisk samarbeid, skille spesifikasjon<br />

og realisering, håndtering <strong>av</strong> tilstander og sesjoner, samt ulike interaksjonsmønstre<br />

(tilsvarende de vi diskuterte i <strong>av</strong>snitt 4.4).<br />

4.10.2.3 UMM<br />

UMM (UN/CEFACT Modeling Methodology) er et UML-basert modelleringsspråk <strong>for</strong> ebXML.<br />

Sammenlignet med basis UML og SOAML fokuserer de enda mer på virksomhetsnivået, og på<br />

virksomhetenes operasjonelle sider. Standarder rettet mot programvareutvikling fokuserer<br />

gjerne mer på virksomhetens strategi, ledelse og utvikling, og på hvilke kr<strong>av</strong> dette stiller til<br />

IKT, heller enn de operasjonelle strukturene <strong>av</strong> økonomi, organisering, roller, ressurser,<br />

prosesser, lokasjoner, produkter o.l. UMM har noe, men begrenset, verktøystøtte.<br />

4.10.2.4 SOMA - Service-Oriented Modeling and Architecture<br />

SOMA er IBM’s UML-profil <strong>for</strong> modellering <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>, implementert i<br />

Rational Software Architect. Den er utviklet over flere versjoner siden 2004. Modellen ser på<br />

tjenester som arenaen hvor <strong>for</strong>retning og IKT møtes, og modellerer <strong>for</strong>retningsprosesser med<br />

ytelsesparametere i tillegg til objektorientert analyse og design.<br />

20.01.2010 Versjon 1.1 63/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

4.10.2.5 SOMF - Service-Oriented Analysis, Design, and Architecture<br />

Bell [3] har utarbeidet en omfattende metodikk <strong>for</strong> modelldrevet utvikling <strong>av</strong> tjenester. I<br />

motsetning til mange andre er den ikke <strong>av</strong>ledet fra UML, noe som gjør den mer målrettet og<br />

<strong>tjenesteorientert</strong>, med et effektiv og tilpasset modelleringsspråk. SOMF støtter hele<br />

livssyklusen til en tjeneste, og dekker både <strong>for</strong>retnings<strong>arkitektur</strong>en og overordnet IKT<strong>arkitektur</strong>,<br />

fra et funksjonelt perspektiv.<br />

4.10.3 Modellering <strong>av</strong> regler<br />

Regler kan brukes til å spesifisere vilkårene <strong>for</strong> en tjeneste, og til å bygge løsninger som<br />

knytter sammen ulike tjenester, f.eks. i en prosessorientert eller hendelsesdrevet <strong>arkitektur</strong>.<br />

XSLT kan ses på som et språk <strong>for</strong> trans<strong>for</strong>masjonsregler <strong>for</strong> XML.<br />

4.10.3.1 Regelspråk fra OMG<br />

OCL er UML sin basisnotasjon <strong>for</strong> regler [124], selv om standarden også tillater at regler<br />

uttrykkes i naturlig språk eller programmeringsspråk. Regler i OCL er logiske uttrykk. Regler i<br />

OCL brukes ofte til å legge begrensninger (constraints) på sammenhenger mellom elementer<br />

eller elementers verdi. Der<strong>for</strong> dreier mye <strong>av</strong> språket seg om å identifisere de elementene som<br />

regelen gjelder <strong>for</strong>, gjennom n<strong>av</strong>igering, søk og <strong>for</strong>espørsler (queries).<br />

Siden UML tilbyr andre språk <strong>for</strong> å beskrive oppførsel, som tilstandsmaskiner, har OCL en ren<br />

deklarativ syntaks, uten å spesifisere operasjonelt hva som skal skje hvis regelen er oppfylt<br />

eller i hvilke sammenhenger regelen skal testes. For operasjonelle spesifikasjoner dekker OCL<br />

bare betingelsene som skal testes. Action semantics i UML knytter betingelsene til handlinger,<br />

mens Product Rule Representation definerer inferensregler, begge i <strong>for</strong>men if-then.<br />

SVBR (Semantics of Business Vocabulary and Business Rules) er et mer høynivå regelspråk,<br />

som bruker strukturert naturlig språk til å uttrykke <strong>for</strong>retningsregler. SVBR brukes gjerne til å<br />

presisere en begrepsmodell (ontologi) med begrensninger og <strong>av</strong>ledninger. Reglene kan ha en<br />

<strong>av</strong> fire modale operatorer, <strong>for</strong> å uttrykke om utsagnet er mulig eller nødvendig, tillatt eller<br />

obligatorisk. Språket er <strong>av</strong>stemt med ISO/IEC 24707 <strong>for</strong> felles logikk.<br />

4.10.3.2 RuleML<br />

RuleML [137] er et felles språk <strong>for</strong> inferensregler, reaksjonsregler og trans<strong>for</strong>masjonsregler.<br />

Syntaksen er XML, og ved siden <strong>av</strong> basisversjonen finnes det varianter spesielt tilpasset RDF<br />

<strong>for</strong> semantisk web og MOF <strong>for</strong> objektorientert modellering. På semantisk nivå er RuleML<br />

knyttet opp til matematiske regler i MathML, agenter i DAML, data mining i PMML og<br />

datatrans<strong>for</strong>masjon med XSLT. Reaksjonsreglene legger til hendelsen som trigger regelen, slik<br />

at vi får ”when Event if Condition then Action” (ECA), ikke bare if-then.<br />

4.10.3.3 SWRL – Semantic Web Rule Language<br />

SWRL [166] er et <strong>for</strong>slag til W3C som knytter RuleML til OWL (Web Ontology Language). I<br />

likhet med mange andre <strong>standarder</strong> <strong>for</strong> semantikk er den drevet fram <strong>av</strong> akademia, men liten<br />

industriell deltagelse.<br />

4.10.3.4 RIF – Rule Interchange Format<br />

RIF [157] er et standard utvekslings<strong>for</strong>mat <strong>for</strong> regler fra W3C. RIF er utvidbart, og definerer<br />

dialekter <strong>for</strong> ulike typer regler, som produksjonsregler med aksjoner og rene logiske utsagn.<br />

Standarden er ganske ny, så verktøy er i ferd med å bli utviklet.<br />

4.10.4 Virksomhets<strong>arkitektur</strong> <strong>for</strong> <strong>for</strong>valtning <strong>av</strong> tjenester<br />

Virksomhets<strong>arkitektur</strong> er et område som i stor grad er drevet fram <strong>av</strong> offentlig sektor, spesielt<br />

i USA etter Clinger-Cohen Act fra 1996. Ved siden <strong>av</strong> å etablere et rammeverk <strong>for</strong> utvikling og<br />

<strong>for</strong>valtning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>, vil en slik tilnærming være nyttig <strong>for</strong> å identifisere<br />

fellestjenester, og behov <strong>for</strong> tilpasning <strong>av</strong> disse til ulike virksomheter.<br />

Virksomhets<strong>arkitektur</strong>ens viktigste mål er å sikre at helheten ivaretas i valg <strong>av</strong> løsninger, og at<br />

<strong>arkitektur</strong>en tillater utvikling i tråd med endrede <strong>for</strong>utsetninger og nye muligheter. Dette er å<br />

anse som broen mellom virksomhetens tjenesteyting og in<strong>for</strong>masjonsteknologi.<br />

20.01.2010 Versjon 1.1 64/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Virksomhets<strong>arkitektur</strong> er et verktøy <strong>for</strong> å utarbeide <strong>for</strong>retningsstrategien i <strong>for</strong>m <strong>av</strong><br />

teknologiske målsetninger, og fokuserer på optimalisering på tvers <strong>av</strong> <strong>for</strong>retningsprosesser og<br />

in<strong>for</strong>masjonssystemer. Planer <strong>for</strong> realisering vil være et hjelpemiddel <strong>for</strong> strategiske og<br />

taktiske beslutninger og tiltak, og gi sporbarhet tilbake til <strong>for</strong>retningsmessige behov.<br />

Virksomhets<strong>arkitektur</strong>en gir:<br />

Figur 12. Bruk <strong>av</strong> virksomhets<strong>arkitektur</strong>.<br />

En helhetlig plan <strong>for</strong> videreutvikling <strong>av</strong> in<strong>for</strong>masjonsteknologi i virksomheten<br />

Styringsmekanismer som effektivt understøtter realisering <strong>av</strong> planen<br />

Sporbarhet i teknologiske investeringer og beslutninger tilbake til <strong>for</strong>retningsmessige<br />

behov<br />

4.10.4.1 Rammeverk, metoder og språk<br />

Gjennom de siste 15 årene er det utviklet en lang rekke rammeverk, metoder og språk <strong>for</strong><br />

virksomhetsmodellering. Rammeverk gir en overordnet struktur på innholdet i en <strong>arkitektur</strong>,<br />

gjerne som en samling diagrammer eller utsnitt <strong>av</strong> den underliggende <strong>arkitektur</strong>modellen.<br />

Noen rammeverk definerer også sine egne metoder <strong>for</strong> utvikling <strong>av</strong> <strong>arkitektur</strong>en, mens andre<br />

baserer seg på standard metoder som TOGAF ADM (Architecture Development Methodology).<br />

Noen rammeverk definerer også egne modelleringsspråk, mens andre gjenbruker standard<br />

språk, og setter dem inn i sin egen sammenheng.<br />

4.10.4.2 Zachman<br />

Zachmans rammeverk var et <strong>av</strong> de tidligste verktøyu<strong>av</strong>hengige rammeverkene, og det har<br />

hatt stor innflytelse på mange etterfølgere. Det deler <strong>arkitektur</strong>en inn i 6 lag <strong>for</strong> ulike roller:<br />

Avgrensning – <strong>for</strong> strategisk ledelse, identifikasjon <strong>av</strong> elementer<br />

Forretning – <strong>for</strong> ledere, definisjon <strong>av</strong> elementer<br />

System – <strong>for</strong> arkitekter, representasjon <strong>av</strong> elementer<br />

Teknologi - ingeniører, spesifikasjon <strong>av</strong> elementer<br />

Komponent – <strong>for</strong> teknikere, konfigurasjon <strong>av</strong> elementer<br />

Operasjon – <strong>for</strong> driftsorganisasjonen, instansiering <strong>av</strong> elementer<br />

Hvert lag deles inn i 6 ulike aspekter, slik at rammeverket får 6x6 celler:<br />

Hva – produkter og in<strong>for</strong>masjon som lagres<br />

Hvordan – prosesser og trans<strong>for</strong>masjon<br />

Hvor – nettverk <strong>av</strong> lokasjoner<br />

Hvem – organisasjon og roller<br />

Når – tid og livssykler<br />

Hvor<strong>for</strong> – visjon, mål og motivasjon<br />

20.01.2010 Versjon 1.1 65/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Dette rammeverket brukes gjerne som utgangspunkt, men det er viktig at man <strong>av</strong>klarer hvilke<br />

<strong>av</strong> de 36 ulike diagrammene man har nytte <strong>av</strong> å definere, heller enn å <strong>for</strong>søke å dekke alle<br />

aspekter på alle nivåer.<br />

4.10.4.3 TOGAF<br />

The Open Group Architecture Framework (TOGAF) [132] er den eneste generelle<br />

internasjonale standarden <strong>for</strong> virksomhets<strong>arkitektur</strong>, og et naturlig utgangspunkt hvis man<br />

skal komme med anbefalinger og retningslinjer på dette området. Denne standarden består <strong>av</strong><br />

Et innholdsrammeverk,<br />

En metodikk <strong>for</strong> utvikling <strong>av</strong> <strong>arkitektur</strong>,<br />

Retningslinjer og teknikker <strong>for</strong> de ulike fasene i metodikken,<br />

Referansemodeller <strong>for</strong> typiske tekniske <strong>arkitektur</strong>er,<br />

Beskrivelse <strong>av</strong> sammenhengen mellom ulike typer <strong>arkitektur</strong>er, f.eks. hvordan<br />

referanse<strong>arkitektur</strong>er kan gjenbrukes i lokale virksomhets<strong>arkitektur</strong>er, og bruk <strong>av</strong><br />

verktøy <strong>for</strong> å realisere dette,<br />

Rammeverk <strong>for</strong> å vurdere og utvikle kompetanse og modenhet i virksomheten.<br />

Kjernen i innholdsrammeverket fokuserer på virksomhetstjenester (business service) som<br />

bindeledd mellom organisasjon og IKT [132]:<br />

4.10.4.4 FEAF<br />

Figur 13. Hovedbegreper i TOGAF [132].<br />

FEAF (Federal Enteprise Architecture Framework) [12] er det generelle rammeverket <strong>for</strong><br />

virksomhets<strong>arkitektur</strong> på statlig nivå i USA. Der defineres <strong>arkitektur</strong> på fire nivåer: <strong>for</strong>retning,<br />

data, applikasjon og teknologi. Ulike etater kan definere en segment<strong>arkitektur</strong> <strong>for</strong> sitt område,<br />

basert på fem felles referansemodeller, som definerer standard elementer <strong>av</strong> disse typene:<br />

Per<strong>for</strong>mance Reference Model (PRM) <strong>for</strong> eGovernment: Områder, kategorier og grupper<br />

<strong>av</strong> indikatorer<br />

Business Reference Model (BRM): Forretningsområder, linjer og funksjoner<br />

20.01.2010 Versjon 1.1 66/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Service Component Reference Model (SRM): Domener og typer <strong>av</strong> tjenester, med<br />

komponenter<br />

Data Reference Model (DRM): Dataenes beskrivelse, sammenheng og delingsmetoder<br />

Technical Reference Model (TRM): Tjenesteområde, -kategori og -standard<br />

Standarder som DoDAF, TEAF (Treasury) og NIH (National Institute of Health) Enterprise<br />

Architecture Framework er eksempler på segmentspesifikke <strong>arkitektur</strong>rammeverk fra offentlig<br />

sektor i USA. DoDAF har ledet videre til Nato Architecture Framework, som også det norske<br />

<strong>for</strong>svaret <strong>for</strong>holder seg til.<br />

FEAF inneholder også et eget sett med retningslinjer <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> [13], med<br />

visjoner og målbilde, nøkkelprinsipper <strong>for</strong> implementasjon, og veikart <strong>for</strong> innføring. Interessant<br />

nok ser de på hendelsesdrevet <strong>arkitektur</strong> som en essensiell del <strong>av</strong> en <strong>tjenesteorientert</strong><br />

<strong>arkitektur</strong>. For en <strong>arkitektur</strong>orientert tilnærming til tjenesteorientering virker disse<br />

retningslinjene gode. Bruken <strong>av</strong> felles referansemodeller, og definisjonen <strong>av</strong> hele den føderale<br />

offentlige sektoren som en (1) virksomhet med en felles <strong>arkitektur</strong>, delt opp i segmenter, går<br />

svært langt i å ta et helhetlig perspektiv.<br />

4.10.4.5 OIO<br />

I Danmark har man valgt en annen tilnærming enn i USA. Heller enn obligatoriske <strong>standarder</strong><br />

<strong>for</strong> rapportering, har man under paraplyen OIO (Offentlig In<strong>for</strong>masjon Online) kommet med<br />

retningslinjer <strong>for</strong> virksomhets<strong>arkitektur</strong> og tjeneste-orientering. Tanken er at godt faglig<br />

fundamenterte rammeverk blir brukt når de gjøres tilgjengelig, selv om det ikke er påbudt.<br />

Dette har gitt en l<strong>av</strong>ere terskel <strong>for</strong> å definere mønstre og profiler som offentlig sektor rådes til<br />

å ta i bruk. Det er da også lagt vekt på å skape et åpent felleskap hvor folk kan delta i<br />

diskusjoner og dele sine erfaringer, i tilknytning til <strong>arkitektur</strong> og <strong>standarder</strong> (digitaliser.dk).<br />

For virksomhets<strong>arkitektur</strong> definerer OIO<br />

Et rammeverk (reol) inspirert <strong>av</strong> Zachman, men <strong>for</strong>enklet til 4 lag, konseptuelt, logisk,<br />

fysisk og styring, og 5 aspekter, strategi, <strong>for</strong>retning, in<strong>for</strong>masjon, applikasjon og<br />

teknologi. Til hver celle hører en spesifikasjon <strong>av</strong> typiske <strong>arkitektur</strong>modeller og<br />

dokumenter.<br />

En metode <strong>for</strong> utvikling <strong>av</strong> <strong>arkitektur</strong>er, med detaljerte anbefalinger <strong>for</strong> hvert steg,<br />

inkludert hvilke aktører som bør delta,<br />

Sammenhenger med andre <strong>arkitektur</strong>rammeverk,<br />

Anvendelse <strong>av</strong> metoder og modelleringsspråk,<br />

Klassifikasjonsstruktur <strong>for</strong> dokumenter og andre deler <strong>av</strong> <strong>arkitektur</strong>beskrivelsen,<br />

Felles prinsipper <strong>for</strong>, og kr<strong>av</strong> til, <strong>arkitektur</strong> og <strong>arkitektur</strong>beskrivelser.<br />

4.10.4.6 Archimate<br />

Archimate [128] er et rammeverk og språk <strong>for</strong> virksomhets<strong>arkitektur</strong> utviklet i Nederland, som<br />

støttes <strong>av</strong> mange verktøy. Språket er nå akseptert som standard <strong>av</strong> Open Group, og neste<br />

versjon vil bli integrert bedre med TOGAF. Språket dekker tre aspekter: In<strong>for</strong>masjon eller<br />

passiv struktur, oppførsel og aktiv struktur, over 3 lag: Forretning, applikasjon og teknologi.<br />

Basisbegrepene er tjeneste, objekt, oppførselselement, strukturelement og grensesnitt. I<br />

motsetning til UML og andre standard språk er utgangspunktet <strong>for</strong> denne standarden<br />

virksomhetsnivået, noe som gjør resultatet enklere og mer brukervennlig <strong>for</strong> mange grupper.<br />

For å gjøre presentasjonen <strong>av</strong> <strong>arkitektur</strong>en mer målrettet, definerer Archimate ulike perspektiv<br />

(viewpoints) <strong>for</strong> arkitekter, beslutningstakere og publikum, på tre nivåer: Oversikt,<br />

<strong>av</strong>stemming og detaljer.<br />

4.10.4.7 ISO-<strong>standarder</strong> <strong>for</strong> virksomhetsmodellering<br />

ISO har definert en flere <strong>standarder</strong> på dette området, ofte knyttet produksjonsindustri [23]:<br />

ISO Reference Model <strong>for</strong> Open Distributed Processing, ISO 10746, 1996.<br />

20.01.2010 Versjon 1.1 67/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Concepts and Rules <strong>for</strong> Enterprise Models, ISO 14258, 1998.<br />

Requirements <strong>for</strong> Enterprise Reference Architecture and Methodologies, ISO 15704,<br />

2000.<br />

Enterprise Integration - Framework <strong>for</strong> Enterprise Modelling, ISO 19439, 2006.<br />

Enterprise Integration - Constructs <strong>for</strong> Enterprise Modelling, ISO 19440, 2006.<br />

Recommended Practice <strong>for</strong> Architectural Description of Software-intensive Systems,<br />

ISO/IEC 42010, 2007.<br />

Disse brukes mest som referansemodeller og begrepsrammeverk.<br />

4.10.4.8 Rammeverk fra industrien<br />

Selv om det finnes flere <strong>standarder</strong> <strong>for</strong> virksomhets<strong>arkitektur</strong> som er støttet <strong>av</strong> tilgjengelige<br />

verktøy, har mange leverandører og konsulentfirmaer utviklet sine egne rammeverk. Mest<br />

kjent er kanskje ARIS sitt kvalitetshus. Noen rammeverk er u<strong>av</strong>hengige og åpent tilgjengelig,<br />

som Pragmatic EA Framework (PeaF) og Institute For Enteprise Architecture Development<br />

(IFEAD) sitt Extended EA (E 2 A).<br />

20.01.2010 Versjon 1.1 68/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

5 Råd <strong>for</strong> videre arbeid<br />

Referansekatalogen <strong>for</strong> IKT-<strong>standarder</strong> i offentlig sektor [32] angir obligatoriske <strong>standarder</strong>,<br />

og anbefalte <strong>standarder</strong>, noen ganger med flere alternative å velge mellom. Dette kapittelet<br />

<strong>for</strong>etar en første grovsortering <strong>av</strong> <strong>standarder</strong> <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> med tanke på<br />

inkludering i fremtidige versjoner <strong>av</strong> referansekatalogen. <strong>Difi</strong> og Standardiseringsrådet vil<br />

<strong>for</strong>eta mer grundige evalueringer <strong>av</strong> de mest aktuelle standardene.<br />

Vi begrenser oss her til å snakke om <strong>standarder</strong> <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>, selv om flere<br />

<strong>av</strong> standardene bør vurderes også opp mot andre områder.<br />

5.1 Basis <strong>standarder</strong> som trolig bør anbefales<br />

De grunnleggende standardene fra WS-I Basic profile [209] har i flere år vært etablert som<br />

basis <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>, og er dermed første gruppe <strong>av</strong> kandidater til<br />

referansekatalogen. Disse standardene bør anbefales samlet som en ”pakke” eller ”profil”.<br />

Standard Område Organ Vurdering<br />

WSDL 1.1 Tjenester W3C L<strong>av</strong> <strong>for</strong>mell status (notat), men allestedsnærværende.<br />

Man bør vurdere å gjøre WSDL 2.0<br />

til et likestilt alternativ til 1.1. Anvendelsesområder<br />

<strong>for</strong> alternativet ebXML bør <strong>av</strong>grenses.<br />

Man bør også gi anbefalinger <strong>for</strong> hvordan WSDL<br />

bør brukes (f.eks. i tråd med WS-I Basic Profile),<br />

men heller som en egen profil enn som del <strong>av</strong><br />

referansekatalogen.<br />

XML 1.0 Data W3C Allerede indirekte inkludert i standardkatalogen<br />

som basis <strong>for</strong> XHTML, SVG m.m.. Bruksområdet<br />

bør kanskje <strong>av</strong>grenses.<br />

XML<br />

Namespaces<br />

1.0<br />

XML Schema<br />

1.0<br />

SOAP Kommunikasjon<br />

SOAP With<br />

Attachments<br />

Data W3C For modularisering <strong>av</strong> datadefinisjoner. Profiler<br />

bør klargjøre bruken <strong>av</strong> n<strong>av</strong>nerom, og hvordan<br />

ulikheter mellom verktøy blir håndtert.<br />

Data W3C Brukes <strong>av</strong> WSDL 1.1 til å definere datainnhold, og<br />

definerer dessuten grunnleggende datatyper <strong>for</strong><br />

verdier. Versjon 1.1 bør følges videre, og på sikt<br />

kanskje anbefales som alternativ. I WSDL tillates<br />

ikke alternativet DTD.<br />

Kommunikasjon<br />

W3C Valg <strong>av</strong> versjon 1.1 og/eller 1.2 bør utredes.<br />

Trolig bør begge anbefales. Bør <strong>av</strong>grenses mot<br />

EDI.<br />

W3C For overføring <strong>av</strong> andre <strong>for</strong>mat enn XML, inkludert<br />

binær optimalisering <strong>av</strong> XML. Anbefales <strong>av</strong> WS-I<br />

og <strong>for</strong> ebXML, og er basis <strong>for</strong> andre <strong>standarder</strong><br />

som MTOM. Basert på MIME.<br />

WS-Adressing Tjenester W3C Fleksibel adressering og beskrivelse <strong>av</strong><br />

webtjenester, med bindinger til SOAP. Basis <strong>for</strong><br />

flere andre <strong>standarder</strong> som Policy, Security og<br />

MetadataExchange. Det bør vurderes om denne<br />

skal gjøres obligatorisk <strong>for</strong> alle webtjenester, eller<br />

bare anbefales.<br />

Som dokumentert <strong>av</strong> OIO [61] er det likevel ikke slik at bruken <strong>av</strong> disse standardene<br />

garanterer interoperabilitet. Ulike verktøy implementerer ulike deler <strong>av</strong> standarden, og<br />

20.01.2010 Versjon 1.1 69/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

introduserer slik nye barrierer. En ytterligere presisering <strong>av</strong> hvilke kr<strong>av</strong> som stilles er dermed<br />

ønskelig.<br />

Standardene <strong>for</strong> WS-I Basic Security Profile [211] har også flere års historie som stabile<br />

<strong>standarder</strong> med stor utbredelse. Forslagene under skal sammenfalle med teknologivalg gjort<br />

<strong>for</strong> ID-porten (jf. <strong>av</strong>snitt 4.8.1).<br />

Standard Område Organ Vurdering<br />

WS-Security<br />

1.1<br />

WS-Security<br />

1.1 Username<br />

token profile<br />

WS-Security<br />

1.1 X.509<br />

token profile<br />

Sikkerhet OASIS Grunnleggende <strong>for</strong> sikkerhet i <strong>tjenesteorientert</strong><br />

<strong>arkitektur</strong>. Vurder først og fremst <strong>av</strong>grensning <strong>av</strong><br />

anvendelsesområder, og hvor standardene bør<br />

være obligatoriske i <strong>for</strong>hold til sikkerhetsnivåer.<br />

Sikkerhet OASIS Grunnleggende innlogging <strong>for</strong> l<strong>av</strong>ere<br />

sikkerhetsnivå.<br />

Sertifikater OASIS Kobling til X.509-sertifikater, som brukes i Idporten.<br />

SAML 2.0 Autentisering OASIS Brukes i ID-porten. Bør vurderes opp mot<br />

alternativer som WS-Federation, men utgjør et <strong>av</strong><br />

alternativene som bør anbefales.<br />

WS-Security<br />

1.1 SAML<br />

token profile<br />

WS-Security<br />

Policy 1.3<br />

Autentisering OASIS Bør standardiseres sammen med SAML.<br />

Sikkerhet<br />

spesifikasjon<br />

WS-Policy 1.5 Spesifikasjon<br />

og metadata<br />

XML<br />

Encryption<br />

XML<br />

Signatures<br />

Sikkerhet,<br />

kryptering<br />

Sikkerhet<br />

signering<br />

OASIS Brukes <strong>av</strong> WS-Security<br />

W3C Basis <strong>for</strong> SecurityPolicy, men bruken på andre<br />

områder bør <strong>av</strong>grenses opp mot bl.a. WS-<br />

MetadataEchange.<br />

W3C Grunnleggende, vil sannsynligvis bli brukt i IDporten.<br />

W3C Grunnleggende, vil sannsynligvis bli brukt i IDporten.<br />

Profilen XAdES fra ETSI kan presisere<br />

bruken.<br />

20.01.2010 Versjon 1.1 70/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

5.2 Andre <strong>standarder</strong> som kan anbefales<br />

I tillegg til de grunnleggende standardene <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> og sikkerhet over,<br />

finnes det en lang rekke <strong>standarder</strong> som er modne <strong>for</strong> anbefaling innen<strong>for</strong> sine<br />

anvendelsesområder.<br />

Standard Område Organ Vurdering<br />

XSLT Data -<br />

trans<strong>for</strong>mering<br />

W3C Svært utbredt standard <strong>for</strong> trans<strong>for</strong>masjon <strong>av</strong><br />

XML.<br />

XPath Data - søking W3C Svært utbredt. Brukes <strong>av</strong> XSLT og andre<br />

<strong>standarder</strong>.<br />

XQuery Data - søking W3C Bør vurderes nærmere, særlig verktøystøtten.<br />

XForms Brukergrensesnitt<br />

DOM Brukergrensesnitt<br />

og data<br />

Ecmascript Brukergrensesnitt<br />

W3C Kan anbefales, men neppe gjøres obligatorisk i<br />

et område med mange proprietære løsninger<br />

som stadig utvikles, og tilbyr rikere<br />

funksjonalitet.<br />

W3C Bør trolig anbefales, men hvilke nivåer og<br />

varianter må vurderes nærmere.<br />

ECMA Kan anbefales, men bør neppe gjøres<br />

obligatorisk så lenge store leverandører ikke<br />

følger standarden fullt ut.<br />

JSON Dataoverføring JSON.org Bør vurderes i tilknytning til ecmascript, DOM<br />

og andre <strong>standarder</strong> <strong>for</strong> AJAX, men man kan<br />

også standardisere på XML som<br />

overførings<strong>for</strong>mat mellom brukergrensesnitt og<br />

tjenestelag.<br />

UDDI Tjenestekatalog OASIS Stabil og vel etablert standard. Liten risiko ved<br />

å anbefale. Hvilke versjoner bør vurderes.<br />

MTOM og<br />

XOP<br />

WS-<br />

Transaction<br />

Kommunikasjon W3C Anbefalt <strong>av</strong> WS-I Basic Profile 1.2, utvidelse <strong>av</strong><br />

SOAP with Attachments <strong>for</strong> effektiv overføring<br />

<strong>av</strong> binære data.<br />

Applikasjon OASIS Godt utbredte <strong>standarder</strong> <strong>for</strong> ulike<br />

transaksjonsløsninger. Bør trolig anbefales.<br />

WS-BPEL Prosess OASIS Kan anbefales, men neppe gjøres obligatorisk,<br />

da mer fleksible løsninger finnes basert på<br />

høyere nivås <strong>standarder</strong> som BPMN og XPDL.<br />

WS-<br />

Reliable<br />

Messaging<br />

XACML Sikkerhet -<br />

autorisasjon<br />

Pålitelighet OASIS Bruken <strong>av</strong> <strong>standarder</strong> <strong>for</strong> dette på meldingsnivå<br />

bør vurderes opp mot hva som tilbys på<br />

transportlaget. Brukes <strong>av</strong> PEPPOL [187].<br />

XKMS Sikkerhet -<br />

administrasjon<br />

OASIS Knyttet til andre <strong>standarder</strong> som SAML, utbredt,<br />

men ikke allestedsnærværende.<br />

W3C Verktøystøtte bør vurderes, status i ID-porten<br />

er <strong>av</strong>gjørende.<br />

XMPP Kommunikasjon XMPP.org Bør vurderes nærmere <strong>for</strong> mobile og dynamiske<br />

nettverk.<br />

En rekke <strong>standarder</strong> <strong>for</strong> innhold og semantikk til data bør også vurderes på dette nivået, se<br />

<strong>av</strong>snitt 4.2.9, 4.5.4 og 4.5.5. Dette studeres i andre prosjekt, og er ikke vurdert i detalj her.<br />

20.01.2010 Versjon 1.1 71/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

5.3 Standarder som kan vurderes seinere<br />

Standardene neden<strong>for</strong> har en viss utbredelse, men noen er <strong>for</strong>eløpig umodne, og de fleste har<br />

begrenset verktøystøtte.<br />

Standard Område Organ Vurdering<br />

EXI Data -<br />

komprimering<br />

SPML 2.0 Identitets<strong>for</strong>valtning<br />

WS-Security<br />

1.1 Kerberos<br />

token profile<br />

WS-Secure<br />

Conversation<br />

W3C Kommende standard <strong>for</strong> komprimert overføring.<br />

Verktøystøtten må vurderes før anbefaling.<br />

OASIS Vurdering er <strong>av</strong>hengig <strong>av</strong> fremtidig bruk i IDporten,<br />

og utbredelsen <strong>av</strong> verktøy.<br />

Sertifikater OASIS Kobling til Kerberos og <strong>av</strong>hengig <strong>av</strong> dennes<br />

status i referansekatalogen/eId.<br />

Sikkerhet OASIS Verktøystøtten bør vurderes nærmere<br />

WS-Trust Sikkerhet OASIS Brukes <strong>av</strong> WS-SecureConversation. Verktøystøtten<br />

bør vurderes, aktuell <strong>for</strong> ID-porten.<br />

WS-<br />

Federation<br />

WS-<br />

Notification<br />

WS-<br />

BPEL4people<br />

WS-Remote<br />

portlets<br />

WS-<br />

Metadata<br />

Exchange<br />

Sikkerhet-<br />

autentisering<br />

Kommunikasjon<br />

- hendelser<br />

OASIS Nylig standardisert, bør overvåke<br />

verktøystøtten og vurderes opp mot SAML.<br />

OASIS WS-Eventing er en enklere konkurrent, men<br />

WS-Notification er etablerte <strong>standarder</strong> (Topics,<br />

BaseNoritification, BrokeredNotification).<br />

Verktøystøtten bør <strong>for</strong>bedres, men hendelsesdrevne<br />

<strong>arkitektur</strong>er blir viktig framover.<br />

Prosess OASIS Bør vurderes i neste runde hvis WS-BPEL blir<br />

anbefalt, <strong>av</strong>hengig <strong>av</strong> verktøystøtte.<br />

Brukergrensesnitt<br />

Spesifikasjon<br />

og metadata<br />

OASIS Bør vurderes opp mot mer utbredte løsninger<br />

som AJAX og J<strong>av</strong>a JSR 168/286. Verktøystøtte<br />

er utbredt, men ikke overalt.<br />

W3C Bør vurderes når standarden er godkjent og<br />

verktøystøtten er utbredt. Bør <strong>av</strong>grenses mot<br />

WS-Policy.<br />

WS-Transfer Kommunikasjon W3C For tilgang til data om ressurser iht. REST,<br />

brukes bl.a. <strong>av</strong> PEPPOL [187], men ennå ikke<br />

godkjent som standard.<br />

WS-<br />

Management<br />

WSDM<br />

Forvaltning OASIS Disse standardene og de tilhørende <strong>for</strong><br />

ResourceFramework, ResourceTransfer.<br />

Fragment og Enumeration har ikke stabilisert<br />

seg.<br />

På lenger sikt bør flere <strong>standarder</strong> som er på vei <strong>for</strong> brukergrensesnitt basert på AJAX og/eller<br />

REST også vurderes, f.eks. W3C Webapps og HTML5 (se <strong>av</strong>snitt 4.6.2 og 4.6.7).<br />

5.4 Områder <strong>for</strong> videre kartlegging<br />

Ved siden <strong>av</strong> de rent tekniske standardene som omfattes <strong>av</strong> referansekatalogen vil<br />

tjenesteorientering dra nytte <strong>av</strong> retningslinjer innen<strong>for</strong> mer organisatoriske sider ved utvikling,<br />

yting og <strong>for</strong>valtning <strong>av</strong> tjenester.<br />

20.01.2010 Versjon 1.1 72/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

5.4.1 Forvaltning og drift <strong>av</strong> tjenester<br />

ITIL [63, 126] er de facto standard <strong>for</strong> drift <strong>av</strong> IKT-tjenester, og en sannsynlig basis <strong>for</strong> <strong>av</strong>taler<br />

det offentlig inngår på dette området. Retningslinjer <strong>for</strong> anskaffelse <strong>av</strong> slike tjenester, og<br />

kanskje en offentlig standardkontrakt <strong>for</strong> webtjenester, bør man vurdere å utvikle. Det vil også<br />

være behov <strong>for</strong> slike <strong>av</strong>taler mellom enheter i offentlig sektor, knyttet til flerbruk og gjenbruk<br />

<strong>av</strong> tjenester og komponenter.<br />

5.4.2 Tjenester i skyen<br />

Software as a service (SaaS) er en modell som blir stadig vanligere, ikke bare <strong>for</strong> klienttjener-applikasjoner,<br />

men også <strong>for</strong> kontorstøtte og andre løsninger som hittil har vært<br />

installert på brukernes lokale maskiner. Standardisering og dominerende industrirammeverk<br />

<strong>for</strong> dette bør overvåkes.<br />

5.4.3 Pragmatisk semantikk<br />

Semantiske teknologier studeres på mange områder i offentlig sektor. Praktiske anvendelser<br />

som setter slik teknologi i drift er langt sjeldnere. De sofistikerte delene <strong>av</strong> teknologien, de<br />

som skiller den fra vanlig datamodellering, utnyttes i minimal grad i operative løsninger.<br />

Mange har oppdaget at <strong>for</strong>melle språk er til hinder <strong>for</strong> menneske-maskin- og<br />

mellommenneskelig kommunikasjon, og legger i større grad vekt på tilgjengelighet, enkelhet<br />

og visualisering. En <strong>for</strong>ståelse <strong>av</strong> at en begrepsmodell bør være åpen blir mer og mer utbredt,<br />

selv om dette ikke i tråd med grunnsynet til de <strong>for</strong>melle regelspråk som benyttes. Semantisk<br />

teknologi kan være i ferd med å bli redusert til vanlig in<strong>for</strong>masjonsmodellering. Da er det<br />

grunn til å spørre om ikke de løsningene industrien lenge har brukt på dette området holder<br />

mål, om semantisk teknologi tilfører merverdi.<br />

Gustafsson og Höglund [43] rapporterer fra 20 års erfaring med utvikling <strong>av</strong> felles<br />

begrepsmodeller på tvers <strong>av</strong> organisasjonsgrenser i industri og offentlig virksomhet, blant<br />

annet justissektoren. De konkluderer på flere områder stikk i strid med rådende praksis innen<br />

semantisk teknologi:<br />

Hierarkier som taksonomi, klassifisering, gruppering og komponering er som oftest<br />

lokale <strong>for</strong> et fagområde, og har ingen plass i en felles ontologi.<br />

Et element defineres primært gjennom sine relasjoner til andre elementer, ikke <strong>av</strong> sine<br />

egenskaper eller klassetilhørighet.<br />

Tilsvarende erfaringer er gjort <strong>av</strong> andre [65]. OASIS Business Centric Methodology (<strong>av</strong>snitt<br />

4.7.7) bygger på lignende konklusjoner, og legger opp til klassifikasjon i mange ulike fasetter<br />

eller dimensjoner. Semantisk teknologi legger til tekniske lag i tillegg til det som er nødvendig<br />

<strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>, nemlig XML Schema, og skaper således økt kompleksitet.<br />

5.4.4 Virksomhets<strong>arkitektur</strong><br />

Det felles <strong>arkitektur</strong>arbeidet i offentlig sektor har kommet godt i gang, med veldefinerte<br />

prinsipper, analyser <strong>av</strong> felleskomponenter og valg <strong>av</strong> <strong>standarder</strong>. I det videre arbeidet bør<br />

virksomhets<strong>arkitektur</strong>er knytte sammen høynivå prinsipper med konkrete komponenter og<br />

<strong>standarder</strong>. Dette betyr samtidig at man bør gå bort fra kun å inkludere allmenngyldige<br />

elementer som det er enighet om, til å komme med mer fleksible anbefalinger og <strong>for</strong>slag<br />

tilpasset ulike bruksområder. Figuren under viser ulike nivåer som referanse<strong>arkitektur</strong>er kan<br />

utvikles <strong>for</strong>. SERES [5] <strong>for</strong>eslår en Norsk Offentlig Arkitektur etter lignende prinsipper.<br />

20.01.2010 Versjon 1.1 73/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Figur 14. Ulike nivåer <strong>av</strong> virksomhets<strong>arkitektur</strong> i offentlig sektor [37].<br />

Som vi diskuterte kort i <strong>av</strong>snitt 4.10.4, kan <strong>arkitektur</strong>modellene inkludere:<br />

Rammeverk <strong>for</strong> interoperabilitet og <strong>tjenesteorientert</strong> <strong>arkitektur</strong>, som definerer typiske<br />

byggesteiner i en <strong>arkitektur</strong>, både på virksomhetsnivå og innen IKT.<br />

Profiler som bygges nedenfra, fra teknologien og oppover, og beskriver hvordan ulike<br />

teknologier kan kobles sammen <strong>for</strong> å løse typiske problemer, gjerne med ulike<br />

varianter.<br />

Mønstre, som beskriver typiske problemer med løsnings<strong>for</strong>slag, motsvarende profiler<br />

men ovenfra og ned, fra virksomhet og brukere mot teknologi. Mønstre vil noen ganger<br />

ikke definere hvilke komponenter som skal brukes, men heller beskrive samspillet<br />

mellom typiske komponenter i løsningen. Bruksscenarioene i denne rapporten er<br />

eksempler på områder man kan definere mønstre innen.<br />

Antimønstre, typiske løsninger som bør unngås, og deres konsekvenser.<br />

Prinsipper og retningslinjer <strong>for</strong> ut<strong>for</strong>ming <strong>av</strong> <strong>arkitektur</strong>en, f.eks. REST.<br />

Laplace [71] beskriver 13 anti-mønstre som preger feilslåtte implementeringer <strong>av</strong><br />

<strong>tjenesteorientert</strong> <strong>arkitektur</strong>:<br />

Hvis vi bygger det så kommer de, hvor tjenester bygges uten etterspørsel.<br />

Sminke grisen, hvor man klistrer et grensesnitt <strong>for</strong> webtjenester rett på eksisterende<br />

applikasjoner, uten en <strong>tjenesteorientert</strong> rekonstruksjon.<br />

Høyre-klikk <strong>arkitektur</strong>, hvor man bruker programmeringsverktøy til automatisk<br />

generering <strong>av</strong> webtjenester fra eksisterende grensesnitt, uten å tenke på tjenestenes<br />

<strong>for</strong>mål, kontrakter o.l.<br />

Søppel inn, søppel ut, hvor man eksponerer virksomhetens data uten å fikse<br />

underliggende problemer ved dataenes kvalitet og struktur.<br />

Hel enchilada, hvor <strong>for</strong>retningsprosessering og teknisk prosessering blandes sammen i<br />

en komponent, noe som gjør gjenbruk vanskelig.<br />

A <strong>for</strong> applikasjon, ikke <strong>arkitektur</strong>, hvor tjenester bygges <strong>for</strong> bruk innen en applikasjon,<br />

uten tanke på gjenbruk.<br />

S <strong>for</strong> silo, ikke service, hvor hver organisasjon lager sine <strong>tjenesteorientert</strong>e<br />

<strong>arkitektur</strong>er, uten noen felles styring eller <strong>arkitektur</strong>.<br />

Sikkerhet, hvilken sikkerhet, hvor man skreddersyr sikkerhetsløsningene til den enkelte<br />

komponent, heller enn å lage en helhetlig sikkerhets<strong>arkitektur</strong>. Dette krever ofte<br />

rekonstruksjon som gir kostnadsoverskridelser mot slutten <strong>av</strong> prosjektet.<br />

20.01.2010 Versjon 1.1 74/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

BPEL = SOA, hvor man fokuserer på <strong>standarder</strong> heller enn <strong>for</strong>retningsnytte, på<br />

prosesser heller enn hele <strong>arkitektur</strong>en.<br />

Bare støttesystemer, hvor tjenester kun brukes til baken<strong>for</strong>liggende implementasjon,<br />

og presentasjon og interaksjon med brukerne blir tatt <strong>for</strong> lett på.<br />

Masser <strong>av</strong> data, hvor man bygger tjenester <strong>for</strong> tilgang til registerdata nedenfra opp<br />

uten en <strong>for</strong>retningsanalyse.<br />

Babels tårn, hvor det ikke finnes noen felles referansemodell <strong>for</strong> dataene.<br />

Flunkende nytt leketøy, hvor man bygger tjenester <strong>for</strong> teknologiens skyld, som et<br />

teknisk eksperiment <strong>for</strong> å følge med i tiden.<br />

Alle disse anti-mønstrene har manglende virksomhets<strong>arkitektur</strong> som en <strong>av</strong> flere årsaker.<br />

Overordnede prinsipper er neppe tilstrekkelig <strong>for</strong> å løse disse ut<strong>for</strong>dringene.<br />

5.4.5 Modelldrevne applikasjoner<br />

Modelldrevne applikasjoner bruker modellering heller enn programmering til å definere<br />

applikasjonslogikk, prosesser og brukergrensesnitt. Enkle løsninger som BPM baserer seg på<br />

fullstendig automatisert tolkning <strong>av</strong> modellene, men mer fleksible løsninger med økt grad <strong>av</strong><br />

brukerstyring er under utvikling <strong>av</strong> Microsofts Oslo-prosjekt og i ulike grupper tilknyttet OMG<br />

[17] (jf. <strong>av</strong>snitt 4.10). Dette er et logisk neste steg som kombinerer <strong>tjenesteorientert</strong> IKT<strong>arkitektur</strong><br />

med brukerrettet tjenesteorientering. OASIS BCM/CAM (<strong>av</strong>snitt 4.7.7) er en lovende<br />

standard på dette området, men den er <strong>for</strong>eløpig umoden. Rammeverk <strong>for</strong> Widgets fra W3C<br />

Webapps (<strong>av</strong>snitt 4.6.7) kan utgjøre en basis <strong>for</strong> modelldrevne brukergrensesnitt og<br />

spennende ”mashups”.<br />

20.01.2010 Versjon 1.1 75/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Vedlegg A. Referanser<br />

1. Active Endpoints, Adobe, BEA, IBM, and SAP AG: WS-BPEL Extension <strong>for</strong> People<br />

(BPEL4People), versjon 1.0, 2007.<br />

2. Active Endpoints, Adobe, BEA, IBM, and SAP AG: Web Services Human Task (WS-<br />

HumanTask), versjon 1.0, 2007.<br />

3. Bell: Service-Oriented Modeling – Service analysis, Design, and Architecture, Wiley<br />

2008.<br />

4. Brønnøysundregistrene: Semantikkregisteret <strong>for</strong> elektronisk samhandling (SERES),<br />

2009. http://www.brreg.no/samordning/semantikk/<br />

5. Brønnøysundregistrene: Konseptskisse <strong>for</strong> SERES, v.1.0, 2008.<br />

6. Butler Group: SOA Plat<strong>for</strong>ms – Software Infrastructure Requirements <strong>for</strong> Successful<br />

SOA Deployments, 2007.<br />

7. Butler Group: Planning and Implementing SOA – Ensuring the Successful Deployment<br />

of a Service-Based Approach, 2006.<br />

8. Butler Group: SOA Governance – Applying Governance to Ensure the Long Term<br />

Benefits of SOA.<br />

9. Butler Group: Integration Technologies – Reducing Costs through an Agile Approach to<br />

Integration.<br />

10. Chappell: Enterprise Service Bus, O’Reilly 2004.<br />

11. Chappel: The Case Against BPEL: Why the Language is Less Important Than You Think,<br />

2005, http://www.d<strong>av</strong>idchappell.com/HTML_email/Opinari_No14_10_05.html.<br />

12. CIO Council: A Practical Guide to Federal Enterprise Architecture, v. 1.0, 2001.<br />

13. CIO Council: A Practical Guide to Federal Service Oriented Architecture, v. 1.1, 2008.<br />

14. Commitment: Oversikt over begrepsbruk innen <strong>tjenesteorientert</strong> <strong>arkitektur</strong>, Notat til<br />

<strong>Difi</strong>, 2009.<br />

15. Commitment: Oversikt over referansemodeller <strong>for</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong>, Notat til<br />

<strong>Difi</strong>, 2009.<br />

16. Cospaces: Open Collaboration Reference Architecture, Integrated Project, EU 2009.<br />

17. DeMan: Response from Cordys to the OMG Dynamic Business Activity Modeling RFI,<br />

Cordys 2009.<br />

18. Direktoratet <strong>for</strong> <strong>for</strong>valtning og IKT (<strong>Difi</strong>): Overordnede IKT-<strong>arkitektur</strong>prinsipper <strong>for</strong><br />

offentlig sektor, versjon 1, 2009.<br />

19. Direktoratet <strong>for</strong> <strong>for</strong>valtning og IKT (<strong>Difi</strong>): Overordnede IKT-<strong>arkitektur</strong>prinsipper <strong>for</strong><br />

offentlig sektor, versjon 2, 2009.<br />

20. Direktoratet <strong>for</strong> <strong>for</strong>valtning og IKT (<strong>Difi</strong>): Statens standard<strong>av</strong>taler,<br />

http://www.difi.no/hovedEnkel.aspx?m=51881&amid=1790806<br />

21. Direktoratet <strong>for</strong> <strong>for</strong>valtning og IKT (<strong>Difi</strong>): Los - Ein in<strong>for</strong>masjonsstruktur <strong>for</strong> offentlege<br />

tenester, http://los.difi.no<br />

22. Distributed Management Task Force (DMTF): Web Services <strong>for</strong> Management, standard,<br />

2008.<br />

23. EA Standards, http://www.enterprise-architecture.info/EA_Standards.htm<br />

24. ECMA: ECMAScript Language Specification, Release 5, 2009.<br />

25. ETSI: XAdES version 1.4.1, ETSI TS 101 903, standard, 2009.<br />

26. EU Commission: European interoperability framework <strong>for</strong> pan-European eGovernment<br />

services, EU Commission 2004.<br />

20.01.2010 Versjon 1.1 76/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

27. EU Commission: Functional, technical, legal and organisational specifications <strong>for</strong> the<br />

development of building blocks software enabling crossborder use of eCatalogues,<br />

PEPPOL, EU 2009.<br />

28. EU Commission: PEPPOL Infrastructure 1.0 Specifications, 2009.<br />

29. EU Commission: Enterprise Interoperability Research Roadmap, (DG INFSO D5) 2008.<br />

30. Fielding, Taylor: Principled Design of the Modern Web Architecture, ACM Transactions<br />

on Internet Technology 2 (2), 2002.<br />

31. Fornyings- og administrasjonsdepartementet (FAD): Ei <strong>for</strong>valtning <strong>for</strong> demokrati og<br />

fellesskap, St.meld. nr. 19 (2008-2009)<br />

32. Fornyings- og administrasjonsdepartementet (FAD): Referansekatalog <strong>for</strong> IT-<strong>standarder</strong><br />

i offentlig sektor - Versjon 2.0, 2009.<br />

33. Fornyings- og administrasjonsdepartementet (FAD): Strategi <strong>for</strong> eID og e-signatur i<br />

offentlig sektor, 2007.<br />

34. Fornyings- og administrasjonsdepartementet (FAD): Rammeverk <strong>for</strong> autentisering og<br />

u<strong>av</strong>viselighet i elektronisk kommunikasjon med og i offentlig sektor, 2008.<br />

35. Fornyings- og administrasjonsdepartementet (FAD): Eit in<strong>for</strong>masjonssamfunn <strong>for</strong> alle,<br />

St.meld. nr. 17 (2006-2007).<br />

36. Fornyings- og administrasjonsdepartementet (FAD): Nasjonale retningslinjer <strong>for</strong> å<br />

styrke in<strong>for</strong>masjonssikkerheten 2007-2010, 2007.<br />

37. Fornyings- og administrasjonsdepartementet (FAD): Felles IKT-<strong>arkitektur</strong> i offentlig<br />

sektor, FAOS-rapporten, 2007.<br />

38. Fornyings- og administrasjonsdepartementet (FAD): Bedre samordning og styring <strong>av</strong><br />

store og/eller strategisk viktige IKT-prosjekter i staten, 2008.<br />

39. Gamma, Helm, Johnson, Vlissides: Design Patterns, Addison-Wesley 1994.<br />

40. Gartner Group: Preparation <strong>for</strong> Update European Interoperability Framework 2.0 – Final<br />

Report, 2007.<br />

41. Gartner Group: Introduction to Service-Oriented Architecture, 2003.<br />

42. GS1 Norge: UNSPSC, http://www.gs1.no/unspsc/<br />

43. Gustafsson, Höglund: The Common Model of an Enterprise’s Value Objects, Presented<br />

in Relevant Business Views, Springer, Conference on Practice of Enterprise Modeling,<br />

Springer, 2009.<br />

44. Helse- og omsorgsdepartementet: Samspill 2.0 - Nasjonal strategi <strong>for</strong> elektronisk<br />

samhandling i helse- og omsorgssektoren 2008 – 2013, 2008.<br />

45. Her<strong>av</strong>i, Razzazi: Utilizing WS-BPEL Processes through ebXML BPSS, International<br />

Conference on Internet Technology and Secured Transactions, London 2007.<br />

46. Hohpe, Woolf: Enterprise Integration Patterns, Addison-Wesley 2005.<br />

47. IBM: WSDM/WS-Man Reconciliation - An Overview and Migration Guide, 2006.<br />

48. IDEF: Integrated Definition Methods, http://www.idef.com/<br />

49. IFEAD - Institute <strong>for</strong> Enterprise Architecture Developments, www.enterprisearchitecture.info<br />

50. IMS Global: Adoption of Service Oriented Architecture (SOA) <strong>for</strong> Enterprise Systems in<br />

Education: Recommended Practices, 2009,<br />

http://www.imsglobal.org/SOA/imsSOAWhitePaper_v1p0pd.html<br />

51. Intalio: Best Practices <strong>for</strong> Process and Message Versioning, 2007.<br />

52. ISO/IEC/ITU: Reference Model of Open Distributed Processing (RM-ODP), ITU-T Rec.<br />

X.901-X.904, ISO/IEC 10746, 1996-1998.<br />

20.01.2010 Versjon 1.1 77/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

53. ISO: Enterprise Integration - Framework <strong>for</strong> Enterprise Modelling, ISO TC<br />

184/SC5/WG1 - CEN TC 310/WG1, ISO/IEC 19439, 2006.<br />

54. ISO: Enterprise Integration - Constructs <strong>for</strong> Enterprise Modelling, ISO TC<br />

184/SC5/WG1 - CEN TC 310/WG1, ISO/IEC 19440, 2006.<br />

55. ISO/IEC/ITU: In<strong>for</strong>mation technology — Generic applications of ASN.1: Fast Infoset,<br />

ISO/IEC 24824-1, 2007.<br />

56. ISO: ISO 27000 In<strong>for</strong>mation Security Standards, http://www.27000.org.<br />

57. IT og Telestyrelsen: Roadmap <strong>for</strong> serviceorienteret infrastruktur 2.0, digitalisering.dk,<br />

2009.<br />

58. IT og Telestyrelsen: Valg af webservice-standard i det offentlige – Implementeringsmodell<br />

<strong>for</strong> <strong>for</strong>retningsservices, digitalisering.dk, 2008.<br />

59. IT og Telestyrelsen: Serviceorienteret <strong>arkitektur</strong> – hva og hvor<strong>for</strong>, digitalisering.dk,<br />

2006.<br />

60. IT og Telestyrelsen: Standardkontrakt <strong>for</strong> webservices, digitalisering.dk, 2008.<br />

61. IT og Telestyrelsen: OIOWSDL – Vejledning <strong>for</strong> udvikling og anvendelse,<br />

digitalisering.dk, 2008.<br />

62. IT Service Management Forum: An Introductory Overview of ITIL v. 3, 2007.<br />

63. ITSMF Norge: ITIL Terminologiliste – Norsk oversettelse, 2009.<br />

64. JSON-RPC Specification v. 1.2, http://groups.google.com/group/json-rpc?pli=1<br />

65. Jørgensen: Enterprise Modeling – What We H<strong>av</strong>e Learned, and What We H<strong>av</strong>e Not,<br />

Keynote, Conference on Practice of Enterprise Modeling, Springer, 2009<br />

66. Kommunenes sentral<strong>for</strong>bund (KS): eKommune 2012 – lokal digital agenda, 2008.<br />

67. Krafzig, Banke, Slama: Enterprise SOA. Prentice Hall 2005.<br />

68. Kompetansesenteret <strong>for</strong> IT i helse- og sosialsektoren (KITH): Rammeverk <strong>for</strong><br />

elektronisk meldingsutveksling i helsevesenet - Basert på ebXML, 2006.<br />

69. Kompetansesenteret <strong>for</strong> IT i helse- og sosialsektoren (KITH): Elektronisk samhandling i<br />

helse- og omsorgssektoren - Aktører og samhandlingskjeder – status og ut<strong>for</strong>dringer,<br />

2009.<br />

70. Kompetansesenteret <strong>for</strong> IT i helse- og sosialsektoren (KITH): Profil <strong>for</strong> web services i<br />

helse- og sosialsektoren, Versjon 1.2, 2009.<br />

71. Laplace: SOA Anti-Patterns, BEA, Arch2Arch Summit, 2007.<br />

72. Liberty Alliance: eGovernment Special Interest Group,<br />

http://www.projectliberty.org/liberty/strategic_initiatives/egovernment/<br />

73. Norstella: Forslag til Norsk Referansekatalog <strong>for</strong> bruk <strong>av</strong> åpne <strong>standarder</strong> i offentlig<br />

sektor, 2006.<br />

74. Nærings- og handelsdepartementet (NHD): Tid til nyskaping og produksjon - En<br />

handlingsplan <strong>for</strong> å redusere bedriftenes administrative kostnader, 2008.<br />

75. Nærings- og handelsdepartementet (NHD): ELMER 2 – Retningslinjer <strong>for</strong><br />

brukergrensesnitt i offentlige skjemaer på Internett, 2006.<br />

76. Masud: Use RosettaNet-based Web services, IBM developerworks, 2003.<br />

77. Moderniseringsdepartementet (MOD): Strategi <strong>for</strong> webbasert tjenesteyting i offentlig<br />

sektor, 2005.<br />

78. Moderniseringsdepartementet (MOD): eNorge 2009 – det digitale spranget, 2005<br />

79. Moderniseringsdepartementet (MOD): Bruk <strong>av</strong> åpne IT-<strong>standarder</strong> og åpen kildekode i<br />

offentlig sektor, 2005.<br />

20.01.2010 Versjon 1.1 78/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

80. Moderniseringsdepartementet (MOD): Arkitektur <strong>for</strong> elektronisk samhandling i offentlig<br />

sektor, Forprosjektrapport, 2004.<br />

81. Microsoft, IBM: Web Services Inspection Language, 2001, revised 2007.<br />

82. HP, IBM, Intel, Microsoft: Toward Converging Web Service Standards <strong>for</strong> Resources,<br />

Events, and Management, joint whitepaper, 2006.<br />

83. NESUBL: Northern European Subset of UBL, http://www.nesubl.eu/<br />

84. OAG: Open Applications Group Integration Specification, versjon 9.4.1, 2001.<br />

85. OASIS & The Open Group: N<strong>av</strong>igating the SOA Open Standards Landscape around<br />

Architecture, 2009.<br />

86. OASIS: Business Centric Methodology (BCM), standard v. 1.0, 2006.<br />

87. OASIS: Content Assembly Mechanism (CAM), standard v.1.1, 2007.<br />

88. OASIS: eXtensible Access Control Markup Language (XACML), standard v. 2.0, 2005.<br />

89. OASIS: Security Assertion Markup Language (SAML), standard v. 2.0, 2005.<br />

90. OASIS: OASIS Reference Model <strong>for</strong> SOA, Version 1.0, 2006.<br />

91. OASIS: OASIS Reference Architecture <strong>for</strong> SOA Foundation, Version 1.0, 2008.<br />

92. OASIS: OASIS Service Provisioning Markup Language (SPML) Version 2, standard,<br />

2006.<br />

93. OASIS: UDDI Version 2.0 Specifications, 2001-2002.<br />

94. OASIS: UDDI Version 3.0 Specification, 2004.<br />

95. OASIS: UDDI as the registry <strong>for</strong> ebXML Components, Technical Note, 2004.<br />

96. OASIS: Universal Business Language v2.0, standard, 2006.<br />

97. OASIS: Web Services Business Process Execution Language Version 2.0, standard,<br />

2007.<br />

98. OASIS: Web Services Context Specification (WS-Context) Version 1.0, standard, 2007.<br />

99. OASIS: Web Services Coordination Framework Specification (WS-CF), utkast, 2005.<br />

100. OASIS: Web Services Atomic Transaction (WS- AtomicTransaction), standard versjon<br />

1.2, 2009.<br />

101. OASIS: Web Services Business Activity (WS- BusinessActivity), standard versjon 1.2,<br />

2009.<br />

102. OASIS: Web Services Coordination (WS-Coordination), standard versjon 1.2, 2009.<br />

103. OASIS: Web Services Dynamic Discovery, standard versjon 1.1, 2009.<br />

104. OASIS: Web Services Distributed Management, standard versjon 1.1, 2006.<br />

105. OASIS: WS-BaseNotification, standard v.1.3, 2006.<br />

106. OASIS: WS-BrokeredNotification, standard v.1.3, 2006.<br />

107. OASIS: WS-Topics, standard v.1.3, 2006.<br />

108. OASIS: Web Services Resource Framework 1.2, standard, 2006.<br />

109. OASIS: Web Services Reliable Messaging 1.1, standard, 2004.<br />

110. OASIS: Web Services Remote Portlets 2.0, standard, 2008.<br />

111. OASIS: WS-SecurityPolicy 1.3, standard 2009.<br />

112. OASIS: WS-SecureConversation 1.4, standard 2009.<br />

113. OASIS: WS-Trust 1.4, standard 2009.<br />

20.01.2010 Versjon 1.1 79/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

114. OASIS: Web Services Federation Language (WS-Federation) Version 1.2, standard,<br />

2009.<br />

115. OASIS: Web Services Security: SOAP Message Security 1.1, standard, 2006.<br />

116. OASIS: Web Services Security: Username Token Profile 1.1, standard, 2006.<br />

117. OASIS: Web Services Security: X.509 Token Profile 1.1, standard, 2006.<br />

118. OASIS: Web Services Security: SAML Token profile 1.1, standard, 2006.<br />

119. OASIS: Web Services Security: Kerberos Token Profile 1.1, standard, 2006.<br />

120. OASIS: Web Services Security: Rights Expression Language (REL) Token Profile 1.1,<br />

standard, 2006.<br />

121. OASIS: Web Services Security: SOAP with Attachments (SWA) Profile 1.1, standard,<br />

2006.<br />

122. Object Management Group (OMG): Business Process Model and Notation (BPMN)<br />

Specification 2.0, 2009.<br />

123. Object Management Group (OMG): Business Process Definition MetaModel (BPDM),<br />

Version 1.0, 2008.<br />

124. Object Management Group (OMG): UML 2.2 Superstructure Specification, 2009.<br />

125. Object Management Group (OMG): SoaML UML Profile, 2009.<br />

126. Office of Government Commerce: Best practice <strong>for</strong> Service Delivery – ITIL, 2001.<br />

127. Office of Government Commerce: Glossary of Terms and Definitions, 2008.<br />

128. Open Group: Archimate 1.0, http://www.archimate.org/<br />

129. Open Group: The Open Group SOA Reference Architecture, 2009.<br />

130. Open Group: The Open Group SOA Ontology, 2009.<br />

131. Open Group: The Open Group Service Integration Maturity Model (OSIMM), 2009.<br />

132. Open Group: The Open Group Architecture Framework (TOGAF), v. 9, 2009.<br />

133. OpenId, http://openid.net/<br />

134. Provost: On The Cusp: A Global Review of the Semantic Web Industry, 2008.<br />

135. Riksrevisjonen: Riksrevisjonens undersøkelse <strong>av</strong> elektronisk in<strong>for</strong>masjonsutveksling og<br />

tjenesteutvikling i offentlig sektor, Dokument nr. 3:12 (2007–2008).<br />

136. RosettaNet, http://www.rosettanet.org.<br />

137. RuleML, http://ruleml.org/<br />

138. SOAPjr, http://www.soapjr.org/<br />

139. Swenson: WYDIWYE: The Answer to BPEL Trans<strong>for</strong>m Problems, 2008,<br />

http://kswenson.wordpress.com/2008/04/03/wydiwye-the-answer-to-bpel-trans<strong>for</strong>mproblems/<br />

140. Trenaman: WSDL Versioning Best Practices, IONA Technologies, 2007.<br />

141. UN/CEFACT: ebXML, http://www.ebxml.org/<br />

142. UN/CEFACT: Core Components Technical Specification, versjon 2.01, 2003.<br />

143. UN/CEFACT: Core Components Library,<br />

http://www.unece.org/etrades/download/downmain.htm<br />

144. UN/CEFACT: Techniques and Methodologies Group, http://www.untmg.org/<br />

145. UN/CEFACT: UN/CEFACT Modeling Methodology (UMM) User Guide, 2003.<br />

146. Verva – Verket för <strong>for</strong>valtningsutveckling: Nationellt ramverk för interoperabilitet, 2008.<br />

20.01.2010 Versjon 1.1 80/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

147. Wasznicky: Using Web Services Instead of DCOM, Microsoft, 2002.<br />

148. W3C: Accessible Rich Internet Applications (WAI-ARIA) 1.0, draft, 2009.<br />

149. W3C: Architecture of the World Wide Web, Volume One, Recommendation, 2004.<br />

150. W3C: Document Object Model (DOM) Technical Reports,<br />

http://www.w3.org/DOM/DOMTR<br />

151. W3C: Efficient XML Interchange (EXI) Format 1.0, Draft, 2007.<br />

152. W3C: Extensible Markup Language (XML) 1.0 (Fifth Edition), Recommendation, 2008.<br />

153. W3C: HTML 4.01 Specification, Recommendation, 1999.<br />

154. W3C: HTML 5 - A vocabulary and associated APIs <strong>for</strong> HTML and XHTML, Draft 2009.<br />

155. W3C: XHTML 1.0 The Extensible HyperText Markup Language (Second Edition),<br />

Recommendation 2000, 2002.<br />

156. W3C: OWL-S: Semantic Markup <strong>for</strong> Web Services, Member submission, 2004.<br />

157. W3C: RIF Core Dialect, Candidate recommendation, 2009.<br />

158. W3C: Scalable Vector Graphics (SVG) 1.1 Specification, Recommendation 2003.<br />

159. W3C: Semantic Annotations <strong>for</strong> WSDL and XML Schema, Recommendation, 2007.<br />

160. W3C: Service Modeling Language, Version 1.1, Recommendation, 2009.<br />

161. W3C: SOAP Version 1.1, Note, 2000.<br />

162. W3C: SOAP Version 1.2 Part 1: Messaging Framework, Second Edition,<br />

Recommendation, 2007.<br />

163. W3C: SOAP Version 1.2 Part 2: Adjuncts, Second Edition, Recommendation, 2007.<br />

164. W3C: SOAP Messages with Attachments, 2000.<br />

165. W3C: SOAP Message Transmission Optimization Mechanism, 2005.<br />

166. W3C: SWRL: A Semantic Web Rule Language Combining OWL and RuleML, Member<br />

submission, 2004.<br />

167. W3C: Web Application Description Language, Member submission, 2009.<br />

168. W3C: WebApps Working Group, http://www.w3.org/2008/webapps/<br />

169. W3C: Web Content Accessibility Guidelines 1.0, Recommendation, 1999.<br />

170. W3C: Web Content Accessibility Guidelines 2.0, Recommendation, 2008.<br />

171. W3C: Web Services Addressing 1.0, Recommendation, 2006.<br />

172. W3C: Web Services Glossary, W3C Working Group Note, 2004.<br />

173. W3C: Web Service Definition Language Version 1.1, Note, 2001.<br />

174. W3C: Web Service Description Language Version 2.0 – Part 0: Primer, 2007.<br />

175. W3C: Web Service Description Language Version 2.0 – Part 1: Core Language,<br />

Recommendation, 2007.<br />

176. W3C: Web Service Description Language Version 2.0 – Part 2: Adjuncts,<br />

Recommendation, 2007.<br />

177. W3C: Web Service Description Language Version 2.0 – Additional MEPs, 2007.<br />

178. W3C: Web Service Metadata Exchange, public draft, 2009.<br />

179. W3C: Web Services Enumeration (WS-Enumeration), member submission, 2006.<br />

180. W3C: Web Services Eventing (WS-Eventing), member submission, 2006.<br />

181. W3C: Web Services Fragment (WS-Fragment), working draft, 2009.<br />

20.01.2010 Versjon 1.1 81/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

182. W3C: Web Services Policy 1.5 – Framework, Recommendation, 2007.<br />

183. W3C: Web Services Policy 1.5 – Attachment, Recommendation, 2007.<br />

184. W3C: Web Services Resource Transfer (WS-RT), Draft, 2009.<br />

185. W3C: Web Service Semantics - WSDL-S, Member submission, 2005.<br />

186. W3C Member Submission 7 November 2005<br />

187. W3C: Web Services Transfer (WS-Transfer), Draft, 2009.<br />

188. W3C: Namespaces in XML 1.0 (Second Edition), Recommendation, 2006.<br />

189. W3C: XForms 1.0, Recommendation, 3. utg<strong>av</strong>e, 2007.<br />

190. W3C: XForms 1.1, Recommendation, 2009.<br />

191. W3C: XML-binary Optimized Packaging, Recommendation, 2005.<br />

192. W3C: XML Encryption Syntax and Processing, Recommendation, 2002.<br />

193. W3C: XML Events - An Events Syntax <strong>for</strong> XML, Recommendation 2003.<br />

194. W3C: XML In<strong>for</strong>mation Set, Recommendation, 2001.<br />

195. W3C: XML Key Management Specification (XKMS 2.0), Recommendation, 2005.<br />

196. W3C: XML Linking Language (XLink) Version 1.0, Recommendation, 2001.<br />

197. W3C: XML Path Language (XPath) 2.0, Recommendation, 2007.<br />

198. W3C: XML Schema 1.0 - Second Edition, Recommendation, 2004.<br />

199. W3C: XML Schema Definition Language (XSD) 1.1, Candidate recommendation, 2009.<br />

200. W3C: XML Signature Syntax and Processing, Recommendation, 2002.<br />

201. W3C: XSL Trans<strong>for</strong>mations (XSLT) Version 1.0, Recommendation, 1999.<br />

202. W3C: XSL Trans<strong>for</strong>mations (XSLT) Version 2.0, Recommendation, 2007.<br />

203. W3C: XQuery 1.0: An XML Query Language, Recommendation, 2007.<br />

204. W3C: Web Services Choreography Description Language Version 1.0, Candidate<br />

recommendation, 2005.<br />

205. WfMC: Terminology & Glossary, 1999.<br />

206. WfMC: Process Definition Interface – XML Process Definition Language 2.1, standard,<br />

2008.<br />

207. WfMC: Business Process Analytics Format (BPAF), draft standard, 2009.<br />

208. Winer: XML-RPC specification, http://www.xmlrpc.com/<br />

209. WS-I – Web Service Interoperability Organization: Basic Profile Version 1.2, 2007.<br />

210. WS-I – Web Service Interoperability Organization: Basic Profile Version 2.0, 2007.<br />

211. WS-I – Web Service Interoperability Organization: Basic Security Profile Version 1.0,<br />

2007.<br />

212. XMPP: Extensible Messaging and Presence Protocol, http://xmpp.org/<br />

213. Aalst, Hostede: Workflow patterns, www.workflowpatterns.com<br />

20.01.2010 Versjon 1.1 82/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

Vedlegg B. Forkortelser<br />

AAPML Attribute Authority Policy Markup Language<br />

ADM Architecture Development Methodology (TOGAF)<br />

ADO Active Data Objects<br />

AJAX Asyncgronous J<strong>av</strong>ascript and XML<br />

AMP Agent Metamodel & Profile (OMG)<br />

API Application Programming Interface<br />

AS2 Applicability Statement 2<br />

ASN.1 Abstract Syntax Notation One<br />

ATAG Authoring Tool Accessibility Guidelines<br />

BCM Business Centric Methodology<br />

BIE Business In<strong>for</strong>mation Entity<br />

BIM Building In<strong>for</strong>mation Model<br />

BiM Binary MPEG <strong>for</strong>mat <strong>for</strong> XML<br />

BMM Business Motivation Model (OMG)<br />

BPAF Business Process Analytics Format<br />

BPDL Business Process Depiction Language<br />

BPDM Business Process Definition Metamodel<br />

BPEL Business Process Execution Language, også kalt WS-BPEL<br />

BPM Business Process Management<br />

BPML Business Process Modeling Language<br />

BPMN Business Process Model and<br />

BPMS Business Process Management System<br />

BPQL Business Process Query Language<br />

BPSS Business Process Specification Schema<br />

BRM Business Reference Model (FEAF)<br />

CAM Content Assembly Mechanism<br />

CARML Client Attribute Requirement Markup Language<br />

CC Core Components (ebXML)<br />

CCL Core Components Library (ebXML)<br />

CCTS Core Components Technical Specification (ebXML)<br />

COM Component Object Model<br />

CORBA Common Object Request Broker Architecture<br />

CPP Collaboration Protocol Profile<br />

CPP Collaboration Protocol Agreement<br />

CRM Customer Relations Management<br />

CRUD Create, Read, Update, Delete<br />

CSS Cascading stylesheets<br />

CSV Comma Separated Values<br />

20.01.2010 Versjon 1.1 83/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

CWM Common Warehouse Model (OMG)<br />

DAML DARPA Agent Markup Language<br />

DCOM Distributed Component Object Model<br />

<strong>Difi</strong> Direktoratet <strong>for</strong> <strong>for</strong>valtning og IKT<br />

DISCO Discovery of File<br />

DMTF Distributed Management Task Force<br />

DNS Domain Name System<br />

DoDAF Department of Defence Architecture Framework<br />

DOM Document Object Model<br />

DRM Data Reference Model (FEAF)<br />

DSA Digital Signature Algorithm<br />

DSIG Digital Signature<br />

DSML Directory Services Markup Language<br />

DTD Document Type Definition<br />

E2A Extended Enterprise Architecture<br />

EA Enterprise Architecture<br />

EAI Enterprise Application Integration<br />

EARL Evaluation and Report Language<br />

ebBP ebXML Business Process Specification Schema (BPSS)<br />

ebMS ebXML Messaging Service<br />

ebXML eBusiness XML<br />

ECA Event Condition Action<br />

EDI Electronic Data Interchange<br />

EDOC Enterprise Distributed Object Computing (OMG)<br />

eID Elektronisk identifikasjon<br />

EIF European Interoperability Framework<br />

EIM Engineering In<strong>for</strong>mation Management<br />

EIPS Engineering In<strong>for</strong>mation Property Sets (RosettaNet)<br />

EMP Event Metamodel & Profile (OMG)<br />

ERP Enterprise Resource Planning<br />

ESB Enterprise Service Bus<br />

ETL Extract-Tran<strong>for</strong>m-Load<br />

eTOM enhanced Telecom Operations Map<br />

ETSI European Telecommunications Standards Institute<br />

EXI Efficient XML Interchange<br />

FAOS Felles <strong>arkitektur</strong> i offentlig sektor<br />

FEAF Federal Enteprise Architecture Framework<br />

ftp File Transfer Protocol<br />

GAB Grunneiendom-, adresse- og bygningsregistert<br />

20.01.2010 Versjon 1.1 84/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

GIOP General Inter-ORB Protocol<br />

GML Binary XML Encoding Specification <strong>for</strong> geo-related data<br />

HR Human Resources<br />

HTML HyperText Markup Language<br />

http Hypertext Transfer Protocol<br />

IDEF Integrated Definition Methods<br />

IEC International Electrotechnical Commission<br />

IEEE Institute of Electrical and Electronics Engineers<br />

IFEAD Institute <strong>for</strong> Enterprise Architecture Developments<br />

IGF Identity Governance Framework<br />

IIOP Internet Inter-ORB Protocol<br />

IKT In<strong>for</strong>masjons- og kommunikasjonsteknologi<br />

IP Internet Protocol<br />

ISO International Organization <strong>for</strong> Standardization<br />

ITIL In<strong>for</strong>mation Technology Infrastructure Library<br />

ITSMF IT Service Management Forum<br />

ITST IT og Telestyrelsen<br />

ITU International Telecommunication Union<br />

JCA J<strong>av</strong>a Connector Architecture<br />

JDBC J<strong>av</strong>a Database Connection<br />

JDO J<strong>av</strong>a Data Objects<br />

JMS J<strong>av</strong>a Message Service<br />

JPA J<strong>av</strong>a Persistence API<br />

JSON J<strong>av</strong>aScript Object Notation<br />

JSR J<strong>av</strong>a Specification Request<br />

KITH Kompetansesenteret <strong>for</strong> IT i helse- og sosialsektoren<br />

KOSTRA Kommune stat rapportering<br />

LDAP Lightweight Directory Access Protocol<br />

LINQ Language-Integrated Query<br />

MIME Multipurpose Internet Mail Extensions<br />

ML Markup Language, Modeling Language<br />

MMS Multiple Messaging Services (RosettaNet)<br />

MoDAF Ministry of Defence Architecture Framework<br />

MOF Meta Object Facility<br />

MOM Meldingsorientert mellomvare<br />

MOWS Management Of Web Services<br />

MTOM Message Transmission Optimization Mechanism<br />

MUWS Management Using Web Services<br />

MVC Model View Controller<br />

20.01.2010 Versjon 1.1 85/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

MXML Macromedia eXtensible Markup Language<br />

NAF Nato Architecture Framework<br />

NESUBL Northern European Subset of UBL<br />

NIH National Institute of Health<br />

NIST National Institute of Standards and Technology<br />

Noark Norsk arkivstandard<br />

OAG Open Applications Group<br />

OASIS Organization <strong>for</strong> the Advancement of Structured In<strong>for</strong>mation Standards<br />

OCL Object Constraint Language<br />

ODBC Open Database Connection<br />

ODM Ontology Definition Metamodel (OMG)<br />

OIO Offentlig In<strong>for</strong>masjon Online<br />

OMG Object Management Group<br />

OO Object Oriented<br />

OSIMM TM The Open Group Service Integration Maturity Model<br />

OWL Web Ontology Language<br />

OWL-S Ontology Web Language - Services<br />

PDP Policy Decision Point<br />

PEAF Pragmatic Enterprise Architecture Framework<br />

PEPPOL Pan-European Public eProcurement On-Line<br />

PGP Pretty Good Privacy<br />

PIP Partner Interface Process (RosettaNet)<br />

PKI Public Key Infrastructure<br />

PMML Predictive Model Markup Language<br />

PRM Per<strong>for</strong>mance Reference Model (FEAF)<br />

PRR Production Rule Representation (OMG)<br />

RAE RosettaNet Automated Enablement<br />

RAS Reusable Asset Specification (OMG)<br />

RBAC Role Based Access Control<br />

RDF Resource Description Framework<br />

REL Rights Expression Language<br />

REST Representational State Transfer<br />

RFI Request For In<strong>for</strong>mation<br />

RIF Rule Interchange Format<br />

RMI Remote Method Invocation (J<strong>av</strong>a)<br />

RM-ODP Reference Model of Open Distributed Processing<br />

RNIF RosettaNet Implementation Framework<br />

RPC Remote Procedure Call<br />

RSA Rivest, Shamir, Adleman<br />

20.01.2010 Versjon 1.1 86/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

SAML Security Assertion Markup Language<br />

SAWSDL Semantic Annotations <strong>for</strong> WSDL and XML Schema<br />

SAX Simple API <strong>for</strong> XML<br />

SCOR Supply Chain Operations Reference<br />

SERES Semantikkregisteret <strong>for</strong> elektronisk samhandling<br />

SGK Statens Generelle Kr<strong>av</strong>spesifikasjon<br />

SGML Standard Generalized Markup Language<br />

SLA Service Level Agreement<br />

SMIL Synchronized Multimedia Integration Language<br />

SML Service Modeling Language<br />

SMTP Simple Mail Transfer Protocol<br />

SOA Service Oriented Architecture<br />

SoaML Service oriented Architecture Modeling Language<br />

SOAP Tidligere: Simple Object Access Protocol, nå egenn<strong>av</strong>n<br />

SOMA Service-Oriented Modeling and Architecture (IBM)<br />

SOMF Service-Oriented Modeling Framework<br />

SOX Sarbanes Oxley<br />

SPKI Simple Public key Infrastructure<br />

SPML Service Provisioning Markup Language<br />

SQL Structured Query Language<br />

SRM Service Component Reference Model (FEAF)<br />

SSB Statistisk Sentralbyrå<br />

SSBP Simple SOAP Binding Profile<br />

SSL Secure Sockets Layer<br />

SSO Single Sign On<br />

STEP Standard <strong>for</strong> the Exchange of Product Model Data<br />

STORK Secure Identity Across Borders Linked<br />

STS Security Token Service<br />

SVBR Semantics of Business Vocabulary and Business Rules (OMG)<br />

SVG Scalable Vector Graphics<br />

SWA SOAP with Attachments<br />

SWAP Simple Workflow Access Protocol<br />

SWF Small Web Format, Shockw<strong>av</strong>e Flash<br />

SWRL Semantic Web Rule Language<br />

SysML Systems Modeling Language (OMG)<br />

TEAF Treasury Enterprise Architecture Framework<br />

TLS Transport Level Security<br />

TOGAF TM The Open Group Architecture Framework<br />

TPIR Trading Partner Implementation Requirements (RosettaNet)<br />

20.01.2010 Versjon 1.1 87/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

TRM Technical Reference Model (FEAF, TOGAF)<br />

UAAG User Agent Accessibility Guidelines<br />

UBL Universal Business Language<br />

UDDI Universal Description Discovery and Integration<br />

UML Unified modeling Language<br />

UMM UN/CEFACT Modeling Methodology<br />

UNSPSC United Nations Standard Products and Services Code<br />

URL Uni<strong>for</strong>m resource Locator<br />

VCOR Value Chain Operations Reference<br />

VDM Value Delivery Modell (OMG)<br />

VTD Virtual Token Descriptor<br />

W3C World Wide Web Consortium<br />

WADL Web Application Description Language<br />

WAF Web Application Formats<br />

WAI-ARIA Accessible Rich Internet Applications<br />

WBXML WAP Binary XML<br />

WCAG Web Content Accessibility Guidelines<br />

WCF Windows Communication Foundation<br />

WfMC Workflow Management Coalition<br />

WS Web service<br />

WS-BPEL Web Services – Business Process Execution Language<br />

WS-CAF Web Services Composite Applications Framework<br />

WS-CDL Web Services Choreography Description Language<br />

WS-CF Web Services Coordination Framework<br />

WS-CF Web Services Coordination Framework<br />

WSCI Web Service Choreography Interface<br />

WSCL Web Services Conversation Language<br />

WSDL Web Service Description/Definition Language<br />

WSDL-S Web Service Description Language - Semantics<br />

WSDM Web Services <strong>for</strong> Distributed Management<br />

WSDS WS-Enumeration Directory Services Protocol Extensions<br />

WSFL Web Services Flow Language<br />

WS-I Web Service Interoperability Organization<br />

WSIL Web Services Inspection Language<br />

WSML Web Services Modeling Language (ESSI)<br />

WSMO Web Services Modeling Ontology (ESSI)<br />

WSRF Web Services Resource Framework<br />

WSRP Web Services <strong>for</strong> Remote Portlets<br />

WS-RT Web Services Resource Transfer<br />

20.01.2010 Versjon 1.1 88/89


DIFI<br />

Utredning <strong>av</strong> <strong>tjenesteorientert</strong> <strong>arkitektur</strong> i offentlig sektor<br />

WSS Web Service Security<br />

WS-TXM Web Services Transaction Management<br />

WYDIWYE What You Draw Is What You Execute<br />

XACML eXtensible Access Control Markup Language<br />

XAdES XML Advanced Electronic Signatures<br />

XAML Extensible Application Markup Language<br />

XBL XML Binding Language<br />

XHTML Extensible HyperText Markup Language<br />

XKMS XML Key Management Specification<br />

XLink XML Linking Language<br />

XML Extensible Markup Language<br />

XMPP Extensible Messaging and Presence Protocol<br />

XOP XML-binary Optimized Packaging<br />

XPath XML Path Language<br />

XPDL XML Process Definition Language<br />

XQuery XML Query Language<br />

XRX XForms–REST–XQuery<br />

XSD XML Schema Definition<br />

XSLT XML Trans<strong>for</strong>mations<br />

20.01.2010 Versjon 1.1 89/89

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!