Kartlegging av mulige standarder for tjenesteorientert arkitektur ... - Difi
Kartlegging av mulige standarder for tjenesteorientert arkitektur ... - Difi
Kartlegging av mulige standarder for tjenesteorientert arkitektur ... - Difi
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