Presentasjon av arbeidet med einnsyn Proof of Concept



Like dokumenter
einnsyn PoC: Demo for fjerde Sprint

einnsyn PoC: Demo for tredje sprint

Demo for første sprint

Arbeidsoppgaver 2019 Felles studentsystem

ISY Park Go og nye ISY Park. Endre Lykke, NoIS

Frank Sandersen, EVRY 3. April Avansert integrasjon Saksbehandling med ephorte som arkiv

PRESENTASJON NORDIG OKTOBER Alle skal kunne teste alt - overalt

Forprosjektrapport. Utvikle en plattform for digitalisering av foosballbord.

Fri programvare i helsesektoren en realitet! Presentasjon av Enkeltoppgjør

Noark 5 tjenestegrensesnittet Hvor er vi nå?

Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008

Public. earkiv 360. Integrasjonsmuligheter og nye metoder for import Stian Gregory

einnsyn - status Referansegrupper og 17.11

Altinns nye tjenesteverksted. Lars Vegard Bachmann, produkteier portal og tjenester, Altinn

Alle skal kunne teste alt - overalt KDRS TRONDHEIM JUNI 2017

GJENNOMGANG UKESOPPGAVER 9 TESTING

SolidPlant er perfekt for deg som jobber med design av rørsystemer og anlegg, og er kjent med SolidWorks.

DIGITALISERING MED INTERACT-FLOW

Kravspesifikasjon. Forord

ARKIVVERKETS EARKIV- PROSJEKT : STATUS

Kravspesifikasjon. Utvikling av moduler til CMS for bonefish.no. Gruppe 08-23

- analyse og implementasjon

Endringer i versjon 14.1

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Fremtidens plattform for samvirkende systemer

Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client.

OEP skal gjere det enklare for allmenta å få tilgang til dokument i forvaltninga (St. meld. nr. 17 ( ))

KRAVSPESIFIKASJON. Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni.

Bachelorprosjekt i informasjonsteknologi, vår 2017

4.1. Kravspesifikasjon

Hvordan kan en gjenbrukbar NOARK kjerne bidra til samhandling mellom forvaltningsnivåene?

Livsløpstesting av IT-systemer

DIGITAL INFRASTRUKTUR. Oslo byarkiv/ Digitalt Museum

einnsyn samla meldingsutveksling og barriereprosjektet

NOARK5 TJENESTEGRENSESNITT POC OG PILOT

Mål for einnsyn. Brukerhistorier einnsyn. Roller

Program for elektroniske tjenester prosjekt for fellesfunksjonalitet

AlgDat 12. Forelesning 2. Gunnar Misund

Arkivets rolle i en tjenesteorientert arkitektur. Thomas Sødring thomas.sodring@hioa.no. HiOA

Konfigurasjonsstyring

Automatisert Robusthetstesting. Erik Arisholm Testify AS

Introduksjon til fagfeltet

Noark-5 hva blir det til? Ståle Prestøy IKA Trøndelag. 23. mai 2007 Noark-5 - hva blir det til? 1

Styrende prinsipper for ny bransjeløsning. DIFA Forprosjekt

Endringer i versjon 14.1

Presentasjon av bachelorprosjekt 2009/2010 for Morten Hegstad og Kim Lilleberg. Prosjektnummer 2E

Notat om Norge digitalt og Norvegiana

Bruk av Elasticsearch til søk og klassifisering. Ove Haugland Jakobsen 26 november 2018

einnsyn status og vidare framdrift Gunnar Urtegaard Brukarforum

nettbasert produksjon og distribusjon av lydbøker

Ole Myhre Hansen Seksjon for digitalt depot, RA

Geosynkronisering. Nasjonale tjenester. Kommuner GeoNorge / andre portaler. Metadata. Visning. Nedlasting. Deltakende virskomhet. Geosynkronise ring

Overordnet beskrivelse

JigZaw. Teststategi utviklet av. Erik Drolshammer Bård Lind. Verifiser Forventet Funksjonalitet

Metode for identifikasjon av dokumentasjon. Presentasjon i Skate

Kravspesifikasjon Hovedprosjekt ved Høgskolen i Oslo Våren 2008

Agenda. Mulige gevinster ved å samarbeide om løsninger. Tjenesteorientert arkitektur for UH sektoren. Kontekst for arkitekturarbeid

Nasjonal DNA sekvensdata IT plattform for helsevesenet- genap. Store data møter medisinen 1. september 2015

Innholdsfortegnelse. 1. Testing Feiltesting av koden Funksjonstesting: Kilder.10

Enkel arkivering, sikker gjenfinning og deling av virksomhetskritisk informasjon i et stort informasjonslandskap

Samdok samla samfunnsdokumentasjon

K-Nett. Krisehåndteringssystem for Norges vassdrags- og energidirektorat i en beredskaps- og krisesituasjon. av Erik Mathiessen

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus

ARK 2014 Arkitekturfaget - observasjon fra en tjenesteleverandør

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, Public 2013 Aker Solutions Page 1 of 5

360 Ekspedering og eformidling

Folkemusikkarkivet: status for utvikling av felles katalogsystem

RUTEPLANLEGGINGSSYSTEM KRAVSPESIFIKASJON

TextureTool med SOSI-parser

Huldt & Lillevik Lønn Huldt & Lillevik Lønn. Versjon

Forprosjektrapport. Sammendrag. Hovedoppgave våren 2019 Gruppe 3

ephorte5 Saksbehandling og arkiv gjort enkelt ephorte hjelper deg med å bruke, styre og dele virksomhetens dokumenter gjennom hele deres levetid

Løsningsforslag og estimat for integrasjon av kalenderdata

Integrasjon - fra strategi til vellykket implementering. Integrasjonsdagene Halden, august 2013 Ståle Hustad, TrønderEnergi Nett AS

Gårsdagens testroller takler ikke dagens utfordringer. Magnus Halvorsen og Erik Rogstad

Bilag 1 Kravspesifikasjon Avtalereferanse: NT Web avspiller

Slik skal vi handle i 2017

Altinn Utviklingsplan 2017

Hva skjer a? Status for CRIStin 2. Oppstartsmøte NVI-rapportering 20. oktober 2016

1 Forord. Kravspesifikasjon

Konfigurasjonsstyring. INF1050: Gjennomgang, uke 11

Cerebrum Komponentarkitektur

En bedre måte å håndtere prosjekt, team, oppgaver og innhold

ephorte Integration Services (eis) produktbeskrivelse

Registrering av e-post e-postrekker og dokumentbegrepet. Norsk arkivråds høstseminar Øivind Kruse Arkivar, Riksarkivet

Kravspesifikasjon MetaView

TK-Arkiv Trondheim kommunes nye arkivkjerne

Workshop NGIS API. Lars Eggan, Norconsult Informasjonssystemer desember 2014

Verdien av god leverandørtesting i konstruksjonsfasen i smidige prosjekter

og effektiv earkivforvaltning

Gevinster av digitalisering en historie fra Eika. Hildegunn Winther

To RDF or not to RDF Fagdag om Noark 5 og RDF

2/3/2014 INSTITUTT FOR FÔRIT CDS INFORMASJONSTEKNOLOGI, HØGSKOLEN I OSLO OG AKERSHUS. Shahariar Kabir Bhuiyan

AlgDat 10. Forelesning 2. Gunnar Misund

Teknologi for et bedre samfunn. Teknologi for et bedre samfunn

Helhetlig integrasjonsplattform. Per Olav Nymo

Høgskolen i Oslo og Akershus. Forprosjektrapport. Gruppe 11

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

Bevaring av fagsystem og Noark 5

Transkript:

Presentasjon av arbeidet med einnsyn Proof of Concept Dette dokumentet beskriver resultatet av arbeidet med einnsyn Proof of Concept prosjektet med fokus både på leveransen og de utfordringene som er avdekket. Prosjektet startet den 4. februar og sluttet den 31. mars 2015. Leveransen i forhold til arkitekturforslaget Det opprinnelige forslaget Prosjektet startet med en arkitekturoverblikk som presenteres her: Det er et par viktige egenskapene med dette arkitekturforslaget som er verdt å legge merke til og som er blitt retningsgivende for prosjektet. En del upresise sammenhenger i dette forslaget er blitt rettet opp i løpet av utviklingen, noe vi skal tilbake til når vi presenterer leveransen. Men her ser vi først på retningsgivende egenskapene. En mikrotjenesteorientert arkitektur: De modulene presentert her som uavhengige komponenter som støtter en mikrotjenestearkitektur. Felles benevning: Et viktig særtrekk i en mikrotjenestearkitektur er å komme frem til en felles benevning av arbeidsprosessen. Begrepene som Mottak, Beriking, Indeksering, Logging og administrasjon, samt Formidling har etablert seg for å få en felles forståelse. Et klart skille mellom Mottak og Formidling som gjør det mulig å opprettholde brukergrensesnittet for søk og navigering, selv om mottak og prosessering er nede. Logging og administrasjon som et viktig arbeidsområde både for utvikling og produksjon og helt i tråd med en arkitektur som støtter mikrotjenester. En gjennomgang av den faktiske leveransen i dette prosjektet skal vise hvilke rettelser på Side 1

arkitekturforslaget vi har foretatt. Leveransen Vi har delt arbeidet mellom utviklingen av løsningen - den funksjonelle delen - og opprettelsen av an arkitektur for mikrotjenestene med hovedvekt på kontinuerlig leveranse. Her følger en oversikt over den funksjonelle delen av leveransen for dette PoC prosjektet. Utviklingsarbeidet i PoC bærer preg av et tidsbegrenset prosjekt med ett hovedmål: å dekke de mest kritiske områdene for å avdekke muligheter og problemer, noe som vi mener å ha oppnådd. Dermed har testing og kvalitetsikring av koden ikke fått den nødvendige fokus. Generelt er det viktig for den videreutviklingen å gjøre løsningen robust med en stabilisering av koden og støtte for utbredt testing på alle nivåer. Det siste er viktig for å støtte en sikker kontinuerlig leveranse. I den følgende tabellen skal vi fokusere på de kommende utfordringene. Komponent activemq rest NOARK5 rest NOARK54 Utfordringer og utestående ActiveMQ er etablert som integrasjonsplattform. Den eksisterende løsningen har to svakheter: Tekniske problemer med protokollen; og stivhet når man skal legge til nye tjenester uten å stoppe deler av løsningen. Mottakskomponenten er godt etablert og trenger bedre testing og en klarere definisjon av datastrukturen. Denne komponent er ansvarlig for å melde tilbake om innsendt data er godtatt eller avvist. Den burde derfor eksekvere en semantisk validering (se lengre ned) før man returnerer resultatet til innsenderen. Det er et enkelt REST grensesnitt som ikke trenger mer innsats. Det er et enkelt REST grensesnitt som ikke trenger mer innsats. Side 2

rest JSON-LD persistence noark4tonoark5 noarktordf splitt mysql noark5tordf validation data-type-enrichment stardog-client stardog es-client elasticsearch api api navigering api søk frontend ngnix Det er et enkelt REST grensesnitt som ikke trenger mer innsats. Denne mottaksmodulen burde flyttes ut til mysql komponenten. Grunnen er å være i stand til å bytte lagringen uten å endre koden i. Denne modulen trenger å merke avviste sendinger med en feilmelding eller eventuelt fjerne dem. Man bruker XSLT for konverteringen. Dette krever lengre prosesseringstid enn alle andre moduler i. Ved høye responstidskrav på datamottak kan den isoleres i en egen kompoenent for enkel oppskalering. XSLT definisjonen er blitt tilpasset den faktiske datamodellen vi har landet på. Denne modulen er en enkel klient som kaller noark5tordf for å få konverteringen utført. Denne modulen splitter ennå ikke. Denne komponenten er en standard mysql database i et docker image og er godt etablert. Persistence-modulen burde flyttes hitt. Denne komponenten bruker et python program levert av Difi. Det er blitt endret for å tilpasses en tjeneste og i forhold til den datamodellen vi har landet på. Denne komponenten burde flyttes inn i for å gi et entydig svar til dataleverandørene. Denne komponenten skal erstattes av en stabil datamodell. Denne komponenten eller en ny komponent som samler denne og es-client trenger støtte for transaksjoner hvis oppdatering/sletting feiler enten her eller i es-client. Det forventes behov for skalering av denne komponenten for å støtte de forventede datamengdene. Kommersiell lisens for stardog trenges utover en viss datamengde, eler for belastningsteter og produksjon. Denne komponenten eller en ny komponent som samler denne og stardog-client trenger støtte for transaksjoner hvis oppdatering/sletting feiler enten her eller i stardog-client. Det forventes behov for skalering av denne komponenten for å støtte de forventede datamengdene. Denne komponenten samler APIene for navigering og søk. Denne modulen trenger å forholde seg til en stabil datamodell. Denne modulen trenger å forholde seg til en stabil datamodell. Denne komponenten trenger å støtte ny funksjonalitet som stammer fra JSON-LD strukturen. Denne komponenten er stabil. Side 3

logstash elasticsearchlogs kibana Denne komponenten betjener loggdata på kun én server. Den skal samle data fra flere servere når einnsyn splittes for utrulling til flere servere. Denne komponenten er stabil. Denne komponenten kan eventuelt utvides for å dekke nye overvåkingsbehov. Arkitektur Her presenteres det noen hovedelementer i en mikrotjenestearkitektur. Domenedrevet design einnsyn kan deles i kontekster som tilsvarer de begrepene som allerede er i bruk i prosjektet som vist i dette diagrammet. Hver kontekst har sitt eget ansvarsområdet og dermed sin datamodell. Konteksten Mottak trenger et stabilt grensesnitt mott dataleverandørene med de tre støttede formater. Den har ansvar for validering og tilbakemelding til innsenderen. Datamodellen trenger derfor å være stabil og veldefinert. Denne konteksten leverer innover data i JSON-LD format og det trengs en ontologi som definerer en omforent format for NOARK4 journalpost, NOARK5 arkiv og Bouvets JSON-LD modell eller eventuelt andre. Konteksten Beriking har som hovedansvar å levere data til endrede eller nye funksjonalitetskrav. Det er her man endrer eller beriker data for å dekke nye behov. Datamodellen som passer best her er en fleksibel utvidelse av Mottaks datamodell med tolerante tjenester som leser kun de elementene som trenges og leverer nye elementer etter behov. Konteksten Indeksering har som hovedansvar å fore neste kontekst med data. Lagring av beriket data inn i Stardog trenger ikke stor innsats for å dekke nye berikinger eller endringer. Lagring i Elasticsearch derimot trenger å støtte avansert søk av nye berikinger. Målet er å begrense innsatsen for å dekke disse endringene med en fleksibel indeksering og begrense kravene på avansert søk. Konteksten Formidling har som hovedansvar å presentere data for brukeren på en intuitiv måte som støtter fleksibel navigering i en kompleks struktur med økende beriking. Det kan ikke unngås at komponenter i denne konteksten må oppdateres for å presentere nye berikinger eller endringer i data. Leveransen i forhold til en Continuous Delivery (CD) Side 4

Arbeidet i prosjektet har brukt en god del v sin arbeidstid for å sette opp en plattform for CD. Dette er en forutsetning for en vellykket mikrotjenestearkitektur. Vi har klart å automatisere noen trinn i cd som PoC prosjektet har etablert grunnlaget for en pipeline for kontinuerlig leveranse som vist i dette diagrammet. Vi har utvikler en struktur med uavhengige komponenter som alle er en del av et github r epo. Java logikken i noen av komponentene bruker en felles Maven archetype og er ellers uavhengige av hverandre. Det er viktig å beholde full uavhengighet mellom komponentene, da kan man utvikle komponenter på forskjellig språk og komponenter som bruker foskjellige metoder for å dekek spesialiserte behov. Byggerutinene som tar form i Difis Jenkins server er ryggraden i CD. Vi kompilerer, kjører enhetstester, pakker dokker-komponenter og sender dem til en integrasjonstest og til en demoserver. I tillegg har vi allerede datageneratorer som lser datafiler, JSON-LD databaser eller genererer NOARK5 data og som kan brukes i nye integrasjons- og belastningstester. En god del av det kommende arkitekturarbeidet vil sentrere seg i vedlikehold og videreutvikling av disse byggerutinene. Komponentisering Docker er innført som eneste plattform for komponentisering. Dette gir stor fleksibilitet som ennå ikke er tatt i bruk i sin full bredde. Det gjenstår å splitte dagens enhetlige applikasjonen i mindre deler som følger behov for skalering og effektiv lagring. Logging og administrasjon Side 5

Et viktig element i en mikrotjenestearkitektur er bruken av logging og administrasjon. I PoC har vi att logging i bruk på et tidlig tidspunkt: Det er den enkleste måten å følge gangen prosesseringen når den går gjennom mange uavhengige komponenter. Det som ikke ennå ikke er dekket er administrasjonsdelen med støtte for å løse problemer med data som stopper opp under prosesseringen eller ikke vises riktig. Kvaliteten til et system er tross alt avhengig av hvordan det takler uventede hendelser, stort sett med manuelle rutiner. Teamarbeid Arbeidet i teamet har utviklet seg i en positiv retning. Kunden er sterkt til stedet med klare avgrensninger og føringer. Utviklerne har vist dyktighet og stor kunnskap i de verktøyene og den arkitekturen vi har valgt, med frihet under ansvar. Det er et høyt kompetent team med sterk engasjement for å utvikle et godt einnsyn. Det er all grunn til å videreutvikle dette teamet i denne retningen. Etterlevelse av grunnprinsippene I det følgende kommenteres det i hvordan man muliggjør grunnprisippene for einnsyn i denne leveransen. Vi refererer leseren til demodokumentet for Sprint 4 for en forklaring på dekningsgraden i prosent. Grunnprinsipp Sprint-4 Kommentar Funksjoner som åpner seg med denne løsningen Støtte for eksisterende grensesnitt mot dataleverandører Løs kobling mellom komponentene Kontinuerlig leveranse Gjenoppbygging av løsningen 40% Bruken av JSON-LD og de muligheter den gir åpner for rikere og enklere navigasjon i data og ny funksjonalitet. Splitting i enkeltstående komponenter fleksibiliserer bruk av infrastruktur for å tilpasses endrede behov. Den samme splittingen forenkler forvaltning slik at man kan fokusere på funksjonalitetsområder for endring eller forbedring uten å påvirke resten av løsningen. -- Bruk av en REST tjeneste for mottak av NOAKR4 data og behandlingen av dette formatet støtter det eksisterende grensesnittet for dataleverandørene. 70% Bruk av enkeltstående komponenter i en mikrotjenestearkitektur åpner for en teknisk løs kobling som langt overgår monolittiske applikasjoner og SOA integrasjoner. Det er do fortsatt behov for en fleksibel datamodell som disse komponentene enkelt kan forholde seg til. 70% PoC har stått på to ben: utvikling av funksjonalitet og opprettelse av en plattform for kontinuerlig leveranse som er godt på vei. 20% Mottatt data lagres og merkes slik at gjenoppbyggingen av data som løsningen bruker er en enkel oppgave. Løsningen selv kan i dag gjenopprettes ved enkel utrulling av en eksisterende versjon. En komplett automatisert Kontinuerlig leveranse vil være i stand til å rulle ut enkeltkomponenter uten å påvirke resten av løsningen utover den logiske avhengigheten av bestemte versjoner. Side 6

Endring/sletting av eksisterende poster 30% Endring av journalposter, korrespondansepart og saksmapper er på plass. Sletting er kun en spesialisering av endring. Dataformater 60% einnsyn støtter i dag mottak av NOARK4 (journalpost.xsd), NOARK5 (arkiv.xsd) og Bouvet-versjonen av JSON-LD. Data i disse formatene konverteres ved mottak slik at beriking, indeksering og formidling kan forenkles. En stabil dataformat er nødvendig for full støtte av alle innkommende dataformater. Enkle og kompliserte søk Navigering i innhold og struktur Støtte for visualisering av tekst og kart Forvaltning og videreutvikling Bruk av åpen kildekode Kontinuerlig og automatisk overføring fra dataleverandørene Indeksering av metadata og innhold 40% Søkefunksjonaliteten støtter enkel søk på tvers av alle felt i JSON-LD, filtrering og søk på noen av feltene. 40% Navigering mellom saksmappe til journalpost støttes. Det bør utvides til å dekke hele strukturen. 20% Beriking med geografisk plassering er levert. Det trengs kun visualisering. 100% Alt arbeid så langt er under Difis premisser, på Difis anlegg og danner grunnlag for effektiv forvaltning -- Åpen kildekode brukes for alle komponenter bortsett fra Stardog. 100% Opplasting av data gjennom de tre REST tjenestene kan brukes både for kontinuerlig og automatisk overføring. 60% Indeksering av metadata trenger en stabil definisjon av datamodellen fro å fullføres. Side 7