SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
Revolusjon kamerater!

Fantastiske muligheter med ny plattform
Software 2013




Tormod Varhaugvik, Skatteetaten, SITS, Februar 2013
http://tormodv.blogspot.com
Innovasjon fra Skatteetaten!

• Designet du nå skal få se, gir helt nye muligheter
• Satt sammen av erfaring, teknologi og gode mønstre
• Mange komplekse domener med sammensatt informasjon og
   regler, kan fungere side om side i samme system
        • I tillegg til å kunne yte svært mye bedre
        • Og være mye lettere å forvalte



• Revolusjon for «Saksbehandlingssystemer»
• Vi bygger nå på denne måten
    • Passer både In-Memory, BIG-data og PaaS
• Vi deler!
    • Designet er dokumentert i en serie artikler på tormodv.blogspot.com
    • Kildekoden fra PoC tilgjengelig på GitHub


Skatteetaten                                                         06.02.2013   2
Utfordringen – Helhet og Fremtidsrettet

• Helhet
• Automatisert
• Hendelsesdrevet                         Handlingsrom
• Selvbetjening


• Store volum               Forenkle
• Lang levetid            Standardisere

• Massiv spørring


• Kjøremiljø, Container
• In-memory, BIG-data
• IaaS, PaaS, SaaS

Skatteetaten                                06.02.2013   3
Design av Programvare

                (når det blir STORT)



Skatteetaten                           06.02.2013   4
Hvordan representere virkeligheten?

               Modellering      Programmering

• Mellom-menneskelig         • Maskin-instruksjon
• Ord og uttrykk fra den     • Eksakt, stivbeint
  virkelige verden           • Formelt
• Litteratur                 • Tegn
• Illustrasjoner             • Konkret, tid og rom
• Filosofi                   • Mekanisk sympati
• Arkitektur, modeller


Skatteetaten                                       06.02.2013   5
Maskin

• I/O!


• Fysiske realiteter, tid og rom
• Det tar tid å etablere data i en maskin
• Det tar enda mer tid å flytte data
• Eksakt, men feilbarlig


• Transaksjon;
  å etablere en forretningsmessig konsistent tilstand
• Parallellitet en premiss
• Mekanisk sympati («gre teknologien med hårene»)

Skatteetaten                                            06.02.2013   6
Forvaltning

• Programvaredesign, Arkitektur!




• Kunnskap skalerer ikke
• Mange skal løse noe sammen, over tid
• Du kan ikke flykte fra kompleksitet
• Enterprise Application


• Kompleksitet må struktureres, slik at den blir forståelig
• Testbarhet, testbarhet og testbarhet
• Tas dette feil, gjør du vondt verre

Skatteetaten                                            06.02.2013   7
50 år med tilnærming




Skatteetaten                          06.02.2013   8
50 år med tilnærming

• Operativsystem (~1960)          • HTML (~1989)
• COBOL (~1959)                   • HTTP (~1995)
• Objektorientering (~1968)       • Java (~1995)
• Relasjonsmodellen (~1969)       • XML (~1998)
• The art of programming (~1968) • Java EE (~1999)
• Software engineering (~1968)    • Integration patterns (~2002)
• Klient tjener (~1975)           • REST (~2000)
• Virtual Machine (~1983)         • SOA (BPEL/WS) (~ 1995/2001)
• Container (~1997)               • Domain Driven Design (~2003)
• Case Verktøy (MDD) (~1982)      • Eventually Consistent (~2000)
• CQRS (CQS, ~1988)               • PaaS, Heroku (~2007)
• Design Patterns (GOF) (~1993)   • XP / TDD (~1999)
• Corba (RMI) (~1991)             • Agile (~2001)
                                  • Lean (~1948)

Skatteetaten                                                  06.02.2013   9
Noe for framtiden

 • Operativsystem (~1960)               • HTML (~1989)
 • COBOL (~1959)                        • HTTP (~1995)
            Smidig, men du må vite hvor du skal!
 • Objektorientering (~1968)      • Java (~1995)
       Tjenesteorientering, men respekter domene!
 • Relasjonsmodellen (~1969)      • XML (~1998)
        Testbar komponent, men ikke alt innholdet!
 • The art of programming (~1968) • Java EE (~1999)
Riktig abstraksjonsnivå, men ikke glem mekanisk sympati!
 • Software engineering (~1968)         • Integration patterns (~2002)
 • Klient tjener (~1975)                • REST (~2000)
                Standardisering, struktur og modularisering
 • Virtual Machine (~1983)              • SOA (BPEL/WS) (~ 1995/2001)
                   , er viktigere enn språket i seg selv!
 • Container (~1997)                    • Domain Driven Design (~2003)
 • Case Verktøy (MDD) (~1982)           • Eventually Consistent (~2000)
 • CQRS (CQS, ~1988)                    • PaaS, Heroku (~2007)
 • Design Patterns (GOF) (~1993)        • XP / TDD (~1999)
 • Corba (RMI) (~1991)                  • Agile (~2001)
                                        • Lean (~1948)

 Skatteetaten                                                       06.02.2013   10
Revolusjonen!




Skatteetaten                   06.02.2013   11
Arkitekturmål
                                          ved at regler, informasjon og
                                          prosess er tettest mulig opp
                               Enkel         mot forretningsbegrep

ved at moduler lar
seg teste hver for
 seg i en tydelig    Testbar
   verdikjede
                                  Skalerbar



                          ved at volum og svartider lar seg
                          løse ved kjøp av mer hardware,
                            og ikke igjennom å skrive om
                          regler, informasjon eller prosess

   Skatteetaten                                               06.02.2013   12
Platform as a Service (Heroku)

• «Container» og «stack»
• Grensesnitt-container
    (maskin og bruker)
•   Arbeider-container
•   Køer, Timere
•   Logging og overvåkning
•   HTTP (HTML/REST)
•   Hendelses-drevet
•   Orkestrering styres av
    arbeider-container
                                                Tilstand
•   Datalager tilpasset struktur
•   Datalager innkapslet av
    grensesnitt-container(e)       Heroku er valgt som eksempel på PaaS, og ment illustrerende.
                                   Det er på ingen måte et valg eller anbefaling fra Skatteetaten.
Skatteetaten                                                                    06.02.2013   13
Del opp problemet – ”Aggregate design”

Nøkkel-objekt
    Nøkkel-objekt
Tydelig tilgang,
konsistens og root”
   ”Aggregate                                                  Informasjon
innkapsling                                                   kan ikke sees
                                                C                på alene!
                                     B                        Oppførsel må
                   A                                           også med…




                                                               Nå har vi 3
     •God innkapsling er egentlig bare god softwaredesign     aggregater.
     •God tjenesteorientering                               Eks. Lønn, Konto
     •Det gir forvaltbare og testbare komponenter           og Selvangivelse
     •Der gir uavhengige informasjonsmengder
     •Uavhengighet gir parallellitet
    Skatteetaten                                                    06.02.2013   14
In-memory: Monster minne
                                             A
Minne og prosessering som                     Key         Value
 omfatter flere maskiner.
    Disklager i bakkant

                                             B
                                              Key         Value
                          Applikasjon


                                             C
                                              Key         Value


• Frikoble fra datalagret (disk)
• Sammensetting skjer i Applikasjon
  (B kan inngå i flere sammenhenger)
• Forretningslogikk skjer i Applikasjon
• Nøkkelobjektet kan være sammensatt
                                                                  Området er preget av mange initiativ,
• Applikasjon er upåvirket av volum og krav til svartid           forskjellige tilnærming og «branding».



  Skatteetaten                                                                       06.02.2013   15
Big Data: Dokumenter

• Robust, konsistent og testbar
• Redusert I/O og mindre låsing
• Uavhengig og skalerbar
• Historisk korrekt


• Superdokument
• Alle dokumenter har skjema
• Fra samfunnet, på standard formater




                                                                                                 forskjellige tilnærming og «branding».
                                                                                                 Området er preget av mange initiativ,
• Fra samfunnet, når det skjer
• Søkemotor                                                          Header
                                                                       Key

                                                                     Aggregate
• Hva med funksjoner på tvers av                                           Value
                                                                           Value
  aggregater/dokumenter?
• «Utilityspråk» som SQL?
  http://tormodv.blogspot.com/2011/02/document-store-for-enterprise.html
Skatteetaten                                                                       06.02.2013   16
Skatteetatens målbilde (Fastsetting)

• Enhetlig prosessering rundt ett stort datalager
• Tenk massivt arkiv med dokumenter
• … hvor vedtakene ligger utenfor
• Fakta ett sted, gjenbruk i flere dimensjoner


• Uavhengig funksjonalitet og informasjon
• Gjenbrukbar, løs koblet og veldig eksakt
• Unik eier av informasjon
• Testbar = Forvaltbar
• Dokumentene er grensesnittene
                                                 Dette blir nå implementert.
• Hvilken prosesseringsarkitektur skal vi velge? 1. versjon er i produksjon.
                                                 Snart: Alle lønnsslipper live.
• Hvilken lagringsarkitektur skal vi velge?      Tilby: 24/7 spørring til NAV.
• Private Cloud, IaaS, PaaS
Skatteetaten                                                       06.02.2013   17
Bakgrunn og lenker

• http://domaindrivendesign.org/library/vernon_2011
• http://tormodv.blogspot.com/2011/02/comment-on-restful-soa-or-domain-driven.html
• http://www.infoq.com/minibooks/domain-driven-design-quickly
• http://heroku.com
• http://www.regjeringen.no/nn/dep/fin/pressesenter/pressemeldingar/2012/enklare-for-
   naringslivet-med-edag.html?id=682401

• http://tormodv.blogspot.com/2010/11/concept-for-datastore-and-processing.html
• http://tormodv.blogspot.com/2011/02/document-store-for-enterprise.html
• http://tormodv.blogspot.com/2012/01/tax-norways-poc-results.html
• http://tormodv.blogspot.no/2011/04/java-is-mature-software-teens-are-over.html
• http://tormodv.blogspot.no/2011/09/dont-let-enterprise-service-bus-lead-to.html
• http://tormodv.blogspot.no/2013/01/target-architecture-looking-good.html


• http://www.slideshare.net/tormodv
• http://www.tu.no/it/2012/10/19/1000-ganger-raskere-skatteoppgjor



Skatteetaten                                                                   06.02.2013   18

Weitere ähnliche Inhalte

Ähnlich wie Revolusjon kamerater! Softwaredesign i "skyen"

Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterThor Henning Hetland
 
[Norwegian only:] Hvordan skal vi bygge fellesskapets digitale tvilling?
[Norwegian only:] Hvordan skal vi bygge fellesskapets digitale tvilling?[Norwegian only:] Hvordan skal vi bygge fellesskapets digitale tvilling?
[Norwegian only:] Hvordan skal vi bygge fellesskapets digitale tvilling?André Torkveen
 
Monolitter og byggeklosser jon erik solheim - stacc
Monolitter og byggeklosser   jon erik solheim - staccMonolitter og byggeklosser   jon erik solheim - stacc
Monolitter og byggeklosser jon erik solheim - staccJon Solheim
 
Spor 1 arkitekturelle rammeverk i offentlig sektor
Spor 1   arkitekturelle rammeverk i offentlig sektorSpor 1   arkitekturelle rammeverk i offentlig sektor
Spor 1 arkitekturelle rammeverk i offentlig sektorSteria Norway
 
Et datadrevet nav uninettdagene 20191112
Et datadrevet nav   uninettdagene 20191112Et datadrevet nav   uninettdagene 20191112
Et datadrevet nav uninettdagene 20191112Tommy Jocumsen
 
Cloud Computing – hva betyr dette for IT-avdelingen og utviklerne?
Cloud Computing – hva betyr dette for IT-avdelingen og utviklerne?Cloud Computing – hva betyr dette for IT-avdelingen og utviklerne?
Cloud Computing – hva betyr dette for IT-avdelingen og utviklerne?Morten Tørmoen
 
BI - Ny helseledelse med Disruptiv Innovasjon i norsk helsesektor (http://tGo...
BI - Ny helseledelse med Disruptiv Innovasjon i norsk helsesektor (http://tGo...BI - Ny helseledelse med Disruptiv Innovasjon i norsk helsesektor (http://tGo...
BI - Ny helseledelse med Disruptiv Innovasjon i norsk helsesektor (http://tGo...Hans A. Kielland Aanesen
 
Forretningsutvikling igjennom sky-prototyping
Forretningsutvikling igjennom sky-prototypingForretningsutvikling igjennom sky-prototyping
Forretningsutvikling igjennom sky-prototypingTormod Varhaugvik
 
GoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenGoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenFriprogsenteret
 
Core trek 2015
Core trek 2015Core trek 2015
Core trek 2015CoreTrek
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Morten Bergset
 
En guide igjennom tåkeheimen
En guide igjennom tåkeheimenEn guide igjennom tåkeheimen
En guide igjennom tåkeheimenmudnaes
 
It driftsperson fra mekaniker til kartleser og sjåfør
It driftsperson   fra mekaniker til kartleser og sjåførIt driftsperson   fra mekaniker til kartleser og sjåfør
It driftsperson fra mekaniker til kartleser og sjåførSimen Sommerfeldt
 
BK2011 Erfaringer med ArcGIS server web apier
BK2011 Erfaringer med ArcGIS server web apierBK2011 Erfaringer med ArcGIS server web apier
BK2011 Erfaringer med ArcGIS server web apierGeodata AS
 
Intranett i NSB-konsernet
Intranett i NSB-konsernetIntranett i NSB-konsernet
Intranett i NSB-konsernetPia Solheim
 

Ähnlich wie Revolusjon kamerater! Softwaredesign i "skyen" (20)

Skalerbare systemer
Skalerbare systemerSkalerbare systemer
Skalerbare systemer
 
Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekter
 
Aws på kartet - 2
Aws på kartet - 2Aws på kartet - 2
Aws på kartet - 2
 
Ta styringen!
Ta styringen!Ta styringen!
Ta styringen!
 
[Norwegian only:] Hvordan skal vi bygge fellesskapets digitale tvilling?
[Norwegian only:] Hvordan skal vi bygge fellesskapets digitale tvilling?[Norwegian only:] Hvordan skal vi bygge fellesskapets digitale tvilling?
[Norwegian only:] Hvordan skal vi bygge fellesskapets digitale tvilling?
 
Monolitter og byggeklosser jon erik solheim - stacc
Monolitter og byggeklosser   jon erik solheim - staccMonolitter og byggeklosser   jon erik solheim - stacc
Monolitter og byggeklosser jon erik solheim - stacc
 
Semantisk integrasjon
Semantisk integrasjonSemantisk integrasjon
Semantisk integrasjon
 
Spor 1 arkitekturelle rammeverk i offentlig sektor
Spor 1   arkitekturelle rammeverk i offentlig sektorSpor 1   arkitekturelle rammeverk i offentlig sektor
Spor 1 arkitekturelle rammeverk i offentlig sektor
 
Bbs Tjueprosent Nosql
Bbs Tjueprosent NosqlBbs Tjueprosent Nosql
Bbs Tjueprosent Nosql
 
Et datadrevet nav uninettdagene 20191112
Et datadrevet nav   uninettdagene 20191112Et datadrevet nav   uninettdagene 20191112
Et datadrevet nav uninettdagene 20191112
 
Cloud Computing – hva betyr dette for IT-avdelingen og utviklerne?
Cloud Computing – hva betyr dette for IT-avdelingen og utviklerne?Cloud Computing – hva betyr dette for IT-avdelingen og utviklerne?
Cloud Computing – hva betyr dette for IT-avdelingen og utviklerne?
 
BI - Ny helseledelse med Disruptiv Innovasjon i norsk helsesektor (http://tGo...
BI - Ny helseledelse med Disruptiv Innovasjon i norsk helsesektor (http://tGo...BI - Ny helseledelse med Disruptiv Innovasjon i norsk helsesektor (http://tGo...
BI - Ny helseledelse med Disruptiv Innovasjon i norsk helsesektor (http://tGo...
 
Forretningsutvikling igjennom sky-prototyping
Forretningsutvikling igjennom sky-prototypingForretningsutvikling igjennom sky-prototyping
Forretningsutvikling igjennom sky-prototyping
 
GoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenGoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug Hanssen
 
Core trek 2015
Core trek 2015Core trek 2015
Core trek 2015
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3
 
En guide igjennom tåkeheimen
En guide igjennom tåkeheimenEn guide igjennom tåkeheimen
En guide igjennom tåkeheimen
 
It driftsperson fra mekaniker til kartleser og sjåfør
It driftsperson   fra mekaniker til kartleser og sjåførIt driftsperson   fra mekaniker til kartleser og sjåfør
It driftsperson fra mekaniker til kartleser og sjåfør
 
BK2011 Erfaringer med ArcGIS server web apier
BK2011 Erfaringer med ArcGIS server web apierBK2011 Erfaringer med ArcGIS server web apier
BK2011 Erfaringer med ArcGIS server web apier
 
Intranett i NSB-konsernet
Intranett i NSB-konsernetIntranett i NSB-konsernet
Intranett i NSB-konsernet
 

Mehr von Tormod Varhaugvik

Software 2020 tormod varhaugvik digitalisering med informasjonskart
Software 2020 tormod varhaugvik digitalisering med  informasjonskartSoftware 2020 tormod varhaugvik digitalisering med  informasjonskart
Software 2020 tormod varhaugvik digitalisering med informasjonskartTormod Varhaugvik
 
Making Enterprise Architecture Succeed at Tax Norway
Making Enterprise Architecture Succeed at Tax NorwayMaking Enterprise Architecture Succeed at Tax Norway
Making Enterprise Architecture Succeed at Tax NorwayTormod Varhaugvik
 
3 år med forenkling og framtidsretting hos skatteetaten
3 år med forenkling og framtidsretting hos skatteetaten3 år med forenkling og framtidsretting hos skatteetaten
3 år med forenkling og framtidsretting hos skatteetatenTormod Varhaugvik
 
Equity - Transparent and Live Risk Assessment
Equity - Transparent and Live Risk AssessmentEquity - Transparent and Live Risk Assessment
Equity - Transparent and Live Risk AssessmentTormod Varhaugvik
 
Tjenesteorientering og distribuerte systemer
Tjenesteorientering og distribuerte systemerTjenesteorientering og distribuerte systemer
Tjenesteorientering og distribuerte systemerTormod Varhaugvik
 
Massivt skalerbar skatteberegning
Massivt skalerbar skatteberegningMassivt skalerbar skatteberegning
Massivt skalerbar skatteberegningTormod Varhaugvik
 

Mehr von Tormod Varhaugvik (7)

Software 2020 tormod varhaugvik digitalisering med informasjonskart
Software 2020 tormod varhaugvik digitalisering med  informasjonskartSoftware 2020 tormod varhaugvik digitalisering med  informasjonskart
Software 2020 tormod varhaugvik digitalisering med informasjonskart
 
Digitalisering i sneglefart
Digitalisering i sneglefartDigitalisering i sneglefart
Digitalisering i sneglefart
 
Making Enterprise Architecture Succeed at Tax Norway
Making Enterprise Architecture Succeed at Tax NorwayMaking Enterprise Architecture Succeed at Tax Norway
Making Enterprise Architecture Succeed at Tax Norway
 
3 år med forenkling og framtidsretting hos skatteetaten
3 år med forenkling og framtidsretting hos skatteetaten3 år med forenkling og framtidsretting hos skatteetaten
3 år med forenkling og framtidsretting hos skatteetaten
 
Equity - Transparent and Live Risk Assessment
Equity - Transparent and Live Risk AssessmentEquity - Transparent and Live Risk Assessment
Equity - Transparent and Live Risk Assessment
 
Tjenesteorientering og distribuerte systemer
Tjenesteorientering og distribuerte systemerTjenesteorientering og distribuerte systemer
Tjenesteorientering og distribuerte systemer
 
Massivt skalerbar skatteberegning
Massivt skalerbar skatteberegningMassivt skalerbar skatteberegning
Massivt skalerbar skatteberegning
 

Revolusjon kamerater! Softwaredesign i "skyen"

  • 1. Revolusjon kamerater! Fantastiske muligheter med ny plattform Software 2013 Tormod Varhaugvik, Skatteetaten, SITS, Februar 2013 http://tormodv.blogspot.com
  • 2. Innovasjon fra Skatteetaten! • Designet du nå skal få se, gir helt nye muligheter • Satt sammen av erfaring, teknologi og gode mønstre • Mange komplekse domener med sammensatt informasjon og regler, kan fungere side om side i samme system • I tillegg til å kunne yte svært mye bedre • Og være mye lettere å forvalte • Revolusjon for «Saksbehandlingssystemer» • Vi bygger nå på denne måten • Passer både In-Memory, BIG-data og PaaS • Vi deler! • Designet er dokumentert i en serie artikler på tormodv.blogspot.com • Kildekoden fra PoC tilgjengelig på GitHub Skatteetaten 06.02.2013 2
  • 3. Utfordringen – Helhet og Fremtidsrettet • Helhet • Automatisert • Hendelsesdrevet Handlingsrom • Selvbetjening • Store volum Forenkle • Lang levetid Standardisere • Massiv spørring • Kjøremiljø, Container • In-memory, BIG-data • IaaS, PaaS, SaaS Skatteetaten 06.02.2013 3
  • 4. Design av Programvare (når det blir STORT) Skatteetaten 06.02.2013 4
  • 5. Hvordan representere virkeligheten? Modellering Programmering • Mellom-menneskelig • Maskin-instruksjon • Ord og uttrykk fra den • Eksakt, stivbeint virkelige verden • Formelt • Litteratur • Tegn • Illustrasjoner • Konkret, tid og rom • Filosofi • Mekanisk sympati • Arkitektur, modeller Skatteetaten 06.02.2013 5
  • 6. Maskin • I/O! • Fysiske realiteter, tid og rom • Det tar tid å etablere data i en maskin • Det tar enda mer tid å flytte data • Eksakt, men feilbarlig • Transaksjon; å etablere en forretningsmessig konsistent tilstand • Parallellitet en premiss • Mekanisk sympati («gre teknologien med hårene») Skatteetaten 06.02.2013 6
  • 7. Forvaltning • Programvaredesign, Arkitektur! • Kunnskap skalerer ikke • Mange skal løse noe sammen, over tid • Du kan ikke flykte fra kompleksitet • Enterprise Application • Kompleksitet må struktureres, slik at den blir forståelig • Testbarhet, testbarhet og testbarhet • Tas dette feil, gjør du vondt verre Skatteetaten 06.02.2013 7
  • 8. 50 år med tilnærming Skatteetaten 06.02.2013 8
  • 9. 50 år med tilnærming • Operativsystem (~1960) • HTML (~1989) • COBOL (~1959) • HTTP (~1995) • Objektorientering (~1968) • Java (~1995) • Relasjonsmodellen (~1969) • XML (~1998) • The art of programming (~1968) • Java EE (~1999) • Software engineering (~1968) • Integration patterns (~2002) • Klient tjener (~1975) • REST (~2000) • Virtual Machine (~1983) • SOA (BPEL/WS) (~ 1995/2001) • Container (~1997) • Domain Driven Design (~2003) • Case Verktøy (MDD) (~1982) • Eventually Consistent (~2000) • CQRS (CQS, ~1988) • PaaS, Heroku (~2007) • Design Patterns (GOF) (~1993) • XP / TDD (~1999) • Corba (RMI) (~1991) • Agile (~2001) • Lean (~1948) Skatteetaten 06.02.2013 9
  • 10. Noe for framtiden • Operativsystem (~1960) • HTML (~1989) • COBOL (~1959) • HTTP (~1995) Smidig, men du må vite hvor du skal! • Objektorientering (~1968) • Java (~1995) Tjenesteorientering, men respekter domene! • Relasjonsmodellen (~1969) • XML (~1998) Testbar komponent, men ikke alt innholdet! • The art of programming (~1968) • Java EE (~1999) Riktig abstraksjonsnivå, men ikke glem mekanisk sympati! • Software engineering (~1968) • Integration patterns (~2002) • Klient tjener (~1975) • REST (~2000) Standardisering, struktur og modularisering • Virtual Machine (~1983) • SOA (BPEL/WS) (~ 1995/2001) , er viktigere enn språket i seg selv! • Container (~1997) • Domain Driven Design (~2003) • Case Verktøy (MDD) (~1982) • Eventually Consistent (~2000) • CQRS (CQS, ~1988) • PaaS, Heroku (~2007) • Design Patterns (GOF) (~1993) • XP / TDD (~1999) • Corba (RMI) (~1991) • Agile (~2001) • Lean (~1948) Skatteetaten 06.02.2013 10
  • 11. Revolusjonen! Skatteetaten 06.02.2013 11
  • 12. Arkitekturmål ved at regler, informasjon og prosess er tettest mulig opp Enkel mot forretningsbegrep ved at moduler lar seg teste hver for seg i en tydelig Testbar verdikjede Skalerbar ved at volum og svartider lar seg løse ved kjøp av mer hardware, og ikke igjennom å skrive om regler, informasjon eller prosess Skatteetaten 06.02.2013 12
  • 13. Platform as a Service (Heroku) • «Container» og «stack» • Grensesnitt-container (maskin og bruker) • Arbeider-container • Køer, Timere • Logging og overvåkning • HTTP (HTML/REST) • Hendelses-drevet • Orkestrering styres av arbeider-container Tilstand • Datalager tilpasset struktur • Datalager innkapslet av grensesnitt-container(e) Heroku er valgt som eksempel på PaaS, og ment illustrerende. Det er på ingen måte et valg eller anbefaling fra Skatteetaten. Skatteetaten 06.02.2013 13
  • 14. Del opp problemet – ”Aggregate design” Nøkkel-objekt Nøkkel-objekt Tydelig tilgang, konsistens og root” ”Aggregate Informasjon innkapsling kan ikke sees C på alene! B Oppførsel må A også med… Nå har vi 3 •God innkapsling er egentlig bare god softwaredesign aggregater. •God tjenesteorientering Eks. Lønn, Konto •Det gir forvaltbare og testbare komponenter og Selvangivelse •Der gir uavhengige informasjonsmengder •Uavhengighet gir parallellitet Skatteetaten 06.02.2013 14
  • 15. In-memory: Monster minne A Minne og prosessering som Key Value omfatter flere maskiner. Disklager i bakkant B Key Value Applikasjon C Key Value • Frikoble fra datalagret (disk) • Sammensetting skjer i Applikasjon (B kan inngå i flere sammenhenger) • Forretningslogikk skjer i Applikasjon • Nøkkelobjektet kan være sammensatt Området er preget av mange initiativ, • Applikasjon er upåvirket av volum og krav til svartid forskjellige tilnærming og «branding». Skatteetaten 06.02.2013 15
  • 16. Big Data: Dokumenter • Robust, konsistent og testbar • Redusert I/O og mindre låsing • Uavhengig og skalerbar • Historisk korrekt • Superdokument • Alle dokumenter har skjema • Fra samfunnet, på standard formater forskjellige tilnærming og «branding». Området er preget av mange initiativ, • Fra samfunnet, når det skjer • Søkemotor Header Key Aggregate • Hva med funksjoner på tvers av Value Value aggregater/dokumenter? • «Utilityspråk» som SQL? http://tormodv.blogspot.com/2011/02/document-store-for-enterprise.html Skatteetaten 06.02.2013 16
  • 17. Skatteetatens målbilde (Fastsetting) • Enhetlig prosessering rundt ett stort datalager • Tenk massivt arkiv med dokumenter • … hvor vedtakene ligger utenfor • Fakta ett sted, gjenbruk i flere dimensjoner • Uavhengig funksjonalitet og informasjon • Gjenbrukbar, løs koblet og veldig eksakt • Unik eier av informasjon • Testbar = Forvaltbar • Dokumentene er grensesnittene Dette blir nå implementert. • Hvilken prosesseringsarkitektur skal vi velge? 1. versjon er i produksjon. Snart: Alle lønnsslipper live. • Hvilken lagringsarkitektur skal vi velge? Tilby: 24/7 spørring til NAV. • Private Cloud, IaaS, PaaS Skatteetaten 06.02.2013 17
  • 18. Bakgrunn og lenker • http://domaindrivendesign.org/library/vernon_2011 • http://tormodv.blogspot.com/2011/02/comment-on-restful-soa-or-domain-driven.html • http://www.infoq.com/minibooks/domain-driven-design-quickly • http://heroku.com • http://www.regjeringen.no/nn/dep/fin/pressesenter/pressemeldingar/2012/enklare-for- naringslivet-med-edag.html?id=682401 • http://tormodv.blogspot.com/2010/11/concept-for-datastore-and-processing.html • http://tormodv.blogspot.com/2011/02/document-store-for-enterprise.html • http://tormodv.blogspot.com/2012/01/tax-norways-poc-results.html • http://tormodv.blogspot.no/2011/04/java-is-mature-software-teens-are-over.html • http://tormodv.blogspot.no/2011/09/dont-let-enterprise-service-bus-lead-to.html • http://tormodv.blogspot.no/2013/01/target-architecture-looking-good.html • http://www.slideshare.net/tormodv • http://www.tu.no/it/2012/10/19/1000-ganger-raskere-skatteoppgjor Skatteetaten 06.02.2013 18