DATO DOKUMENT SAGSBEHANDLER MAIL TELEFON Okt. 2014 Raza Muhammed raz@vd.dk 7244 3046 DYNAMISK DATABASE SYSTEM OVERSIGT Niels Juels Gade 13 1022 København K vd@vd.dk EAN 5798000893450 Postboks 9018 Telefon 7244 3333 vejdirektoratet.dk CVR 60729018
2 af 10 INDHOLDSFORTEGNELSE REFERENCEDOKUMENTER... 2 DATAOMFANG... 3 DATAAFTAGER... 3 LØSNINGENS KONTEKST... 4 OVERORDNET STRUKTUR... 5 ELEMENTER I LØSNINGEN... 6 Datamodtagelse... 6 Dataoversættelse... 6 Direkte, ubehandlet datadistribution... 6 Intern systemvedligeholdelse... 6 Beregning... 7 Periodisk datadistribution... 7 Integration... 7 Overvågning / rapportering... 8 Administration... 9 Hjælpefunktioner, udtræk og data... 9 OVERSIGT PRODUKTIONSMILJØ... 10 REFERENCEDOKUMENTER - DynDB udviklingshåndbog - DynDB driftsdokumentation - Levering af trafikdata til VD Dynamisk Database - Levering af Rejsetider fra Dynamisk Database - Skiltevisning Dynamisk Database - DynDB dashboard og notifikation - Grænsefladebeskrivelse Maximo_DynDB - DynDB opregning - DynDB FTPFetcher
3 af 10 INLEDNING Dette dokument beskriver på overordnet niveau det konstruerede system Dynamisk Database, som centralt kan indsamle, kvalitetsmåle, beregne og udveksle visse typer af trafikdata. "Dynamisk" i denne sammenhæng betyder, at rettidighed vægtes en smule højere end fuldstændighed og at data kun opbevares i begrænset tid, da den primære anvendelse er øjeblikkelig visning. Udvikling af Dynamisk database er indtil nu gennemført som en agil proces og resultatet er en centraliseret data-udveksling, behandling og lagring af trafikledelsesdata. Dette medfører: mere pålidelige informationer mulighed til standardiseret og veldefineret datakvalitet lettere integrering af fremtidige datakilder nemmere og mere pålidelig drift og administration af de involverede systemer lettere adgang til trafikledelsesdata for fremtidige databrugere Mål i den nærmeste kommende periode (2015-2016) er: Uddybe og udvikle kvalitetssikringsprocesser mellem DynDB, dataleverandører, brugere og applikationer, så det vil være muligt at erklære kvaliteten i henhold til ISO retningslinjer, for de oplysninger som stilles til rådighed Oprette hensigtsmæssige driftsværktøjer til drift og overvågning. Integration af gps baserede trafikdata hvilket vil give adgang til nærmest et landsdækkende information over rejsetider og trængsel på de danske veje. DATAOMFANG Data i DynDB omfatter 1-minuts intervaldata fra i hovedtræk motorvejsnettet i Københavnsområdet, Fyn/Trekantsområdet og Aalborg. Afhængig af system indgår følgende datatyper: - Antal køretøjer - Gennemsnitshastighed - Trafiktilstande - Segmentrejsetid - Belægning - Gap - Skiltestatus Der modtages ca. 5000 målinger per minut fra ca.15 forskellige systemer. DATAAFTAGER I foråret 2015 vil der være følgende kunder til data fra DynDB:
4 af 10 - Det zoombare kort på www.vejdirektoratet.dk (trafiktilstande, rejsetider, prognoser) - Hastrid-systemet (opbevarer historiske rejsetider) - Trafikledelsessystemer (rejsetidsinformation på vejskilte) - 3-4 eksterne bruger (trafiktilstande, rejsetider) LØSNINGENS KONTEKST Helt overordnet kan Dynamisk Database betragtes som illustreret herunder: DynDB administrator overvåger og konfigurerer Kildesystemer måledata Dynamisk Database beregnede data Destinationssystemer måledata beregnede data Beregnings-maskiner Data indsamles eller modtages fra en række kildesystemer og gemmes internt i en kortere periode. Disse data kan opregnes f.eks. fra målepunkts- til retnings-snit-segment og rute-niveau, og resultatet kan distribueres eller trækkes fra destinations-systemer. Derudover indgår beregning af rejsetider samt rejsetidsprognoser på 15 og 30 minutters niveau. Ud over trafik, opsamles og videredistribueres aktuelle visninger på variable skilter. Dynamisk Database tilbyder også grænseflader til redigering af konfigurationsdata, rapportering og overvågning.
5 af 10 OVERORDNET STRUKTUR Dynamisk Database-løsningen er arkitekturmæssigt lettest at betragte som et lagdelt system med delelementer som vist herunder: Dataleverandører Datamodtagere Samarbejds-systemer DynDB administrator Grænseflader Datamodtagelse Direkte, ubehandlet datadistribution Periodisk datadistribution Periodisk datadistribution Periodisk datadistribution Integration Overvågning / rapportering Administration Applikationer Dataoversættelse Intern systemvedligeholdelse Beregning Data Hjælpefunktioner Udtræk Data BizTalk elementer Oracle DB elementer Andre elementer (asp.net, applikationer, 3. partssoftware) Lagenes funktion kan beskrives som følger: Grænseflader Elementer som står for kommunikation med andre systemer Applikationer Elementer som arbejder på data Data Lagring og udtræk af data De enkelte elementer er gennemgået herefter.
6 af 10 ELEMENTER I LØSNINGEN DATAMODTAGELSE Datamodtagelsen består af to typer af grænseflader som indhenter eller modtager målings-data fra kildesystemer: Grænsefladetype FTPFetcher VDTrafficData web service VDSkiltedata Beskrivelse Henter data i form af filer fra eksterne FTP-servere Modtager data som sendes fra kildesystemer i form af web service-kald. Henter data fra en webservice, som står for håndtering af digitale skilte. For de to første gælder, at data afleveres i form af filer i en folder på applikationsserveren, hvorfra oversættelses-komponenten henter dem. Nye leverancer af trafikledelsesdata forventes fremadrettet at benytte VDTrafficData web servicen for ikke at tilføre yderligere komplekse oversættelser samt for at ensrette leverandør-vendte grænseflader. DATAOVERSÆTTELSE Dataoversættelsen oversætter de modtagne filer fra en lang række forskellige formater til en fælles repræsentation som kan gemmes i Dynamisk Databases database-model. Oversættelsen foretages vha. BizTalk Server. Planen er dog en gradvis udfasning af behovet for BizTalk og strømline levering af data (er sket). DIREKTE, UBEHANDLET DATADISTRIBUTION Herudover oversættes og videresendes for tiden visse trafiktilstands- og rejsetidsdata direkte til en ekstern datamodtager. Skiltedata, fra de digitale skilte som findes på det danske vejnet, kan hentes fra Dynamisk database. Disse data er kun øjebliksdata, og opdateres kun når skiltene ændrer visning. Dyndb laver ingen behandling af data her. Disse data er udstillet vha. REST og adgang til data, kan rekvireres gennem Vejdirektoratet. INTERN SYSTEMVEDLIGEHOLDELSE Af hensyn til ydelse, lagerplads mv. foretages automatisk periodisk vedligeholdelse af Dynamisk Database-løsningen. Dette består bl.a. i sletning af data ældre end et vist antal dage, oprydning i log-filer ol.
7 af 10 BEREGNING På de indkommende målepunkts-data foretages periodiske opregninger til retningssnit internt i Dynamisk Database. Disse snit-data kan opregnes evt. videre til f.eks. segmentniveau af eksterne beregnings-maskiner, og de opregnede data lægges tilbage i Dynamisk Database. Snit-opregning foretages internt, da disse er fælles defineret afhængigt af fysiske placeringer på vejene og er ens for alle systemer i VD, mens definitionerne af segmenter, ruter mv. endnu ikke er ens mellem forskellige destinations-systemer, og DynDB datamodel er derfor designet til at kunne håndtere flere segmenteringsmodeller. Beregningerne foretages af en Oracle PL/SQL-pakke. PERIODISK DATADISTRIBUTION På grundlag af udtræk af data i Dynamisk Database, kan foretages mange typer af dataudtræk af forskellig karakter, indeholdende f.eks. de seneste segment-rejsetider for en særlig strækning, gennemsnitlige snit-hastigheder ét døgn tilbage eller lignende. Da det konkrete udtræk, format og hyppighed af leverancen vil afhænge fuldstændigt af det aftagende destinationssystem, er der tænkt flere muligheder for at foretage distributionen: Direkte links mellem databaser til andre database-applikationer Udtræk og oversættelse til eksternt format via BizTalk på grundlag af forespørgsel Periodisk udtræk og videresendelse via særlige applikationer Datadistribution, til Hastrid-systemet, som direkte trækker snit-data fra Dynamisk Databases tabeller. Udstilling af data fra Dynamisk database eller DynApm DynApm er en del af Dynamisk database, som beregner rejsetider udfra måledata som Dynamisk database leverer. Rejsetider fra DynApm er ligeledes udstillet gennem REST. Her kræves en del konfiguration af målepunkter/snit/segmenter/vejnet før data vil være tilgængelig. Oplæg til videreudvikling med mere avanceret distribution via særlige applikationer til f.eks. eksterne web services er beskrevet i udviklingshåndbogen. INTEGRATION Dynamisk Database kan samarbejde med andre systemer i VD til f.eks. administration af assets og tilbagemeldinger om datakvalitet på grundlag af modtagne data. Konkret er Dynamisk Database integreret med Maximo-systemet som beskrevet i dokumentet Grænsefladebeskrivelse Maximo_DynDB.docx.
8 af 10 OVERVÅGNING / RAPPORTERING Til Dynamisk Database hører en overvågnings-løsning på data-niveau som løbende holde øje med grænseværdier for dataaktualitet og kvalitet, antal modtagne målinger mv. Resultaterne kan ses live på et dashboard på http://vdk-app69.vdnet.dk/dashboard.html: Den tekniske implementering af dashboardet og notifikationerne er beskrevet i dokumentet DynDB dashboard og notifikation.doc. Hertil kommer et antal rapporter som udtrækker tilsvarende og andre informationer over en længere periode i form af rapporter egnet til udskrift:
9 af 10 Rapporterne kan tilgås via dashboardet. Rapporteringsfunktionaliteten er baseret på Microsoft Reporting Services og rapporter defineres og redigeres via Visual Studio på udviklingsserveren. ADMINISTRATION Administration foretages via en række konfigurations-filer og tabeller. Disse tilgås i produktionsmiljøet via hhv. Remote Desktop/shared folders eller f.eks. Oracle SQL Developer: Der undersøges en web-grænseflade til redigering af visse konfigurationsdata i tabeller for systemer, målepunkter, snit og segmenter. HJÆLPEFUNKTIONER, UDTRÆK OG DATA Data i Dynamisk Database gemmes i en særlig Oracle database, som indeholder såvel måledata, beregnede data og konfigurationsdata (målepunkter, snit, kildesystemer mv.). Til at understøtte både dashboard, rapporter, vedligeholdelse mv. findes i Oracle-databasen et antal views og funktioner/procedurer/pakker. Databasens struktur og indhold er beskrevet i dokumentet DynDB udviklingshåndbog.doc.
10 af 10 OVERSIGT PRODUKTIONSMILJØ Deployment-oversigt for Vejdirektoratets DynDBproduktionsmiljø (dækker ikke rapportering/ notificeringsløsningerne) STOPPET DynDB Interne samarb. Ukendt status Ny Udvikling Eksterne samarb. Maximo Vejman Trafikman Hastrid målekvalitet Maximo Quality Reporter <<folder>> c:\dyndb\filedrop\in <<scheduled task>> intern vedligeholdelse Vdk-app142.vdnet.dk <<web published folder>> c:\inetpub\wwwroot.dyndb IIS MaximoStatusService QueryPresenter FTPFetcher http://dyndbinput.vd.dk/services/ MaximoStatusService/MaximoStatusService.asmx am2ftp.adapt.dk Sverige Datex2-node Henter snit data DbExecuter vdk-db08.vdnet.dk <<Oracle>> DynDB {service_name=rtprod, user=dyndb} gemmer alle trafikdata til <<scheduled task>> cleanup_old_ measurements <<WinService>> Dyndbsurveileance TDDecoder GetDatex2Data https://datex.trafikverket.se/ D2ClientPull/TravelTimeServerBA/ 2_0/PullVSK/TravelTimePullVSK.asm Trafikdataleverandører http://dyndbinput2.vd.dk/services/ VDTrafficDataService/VDTrafficDataService.asmx {basic auth} vdk-db07.vdnet.dk <<Oracle>> DynDBsurv {service_name=realtid, user=dyndbsurv} MSMQPlusTen MSMQ VDTrafficDataConsumer vdext-app103.vdnet.dk IIS VDTrafficDataService VDTrafficDataServiceTest VDRejsetid Dashboard D2PushServer Trafikdataleverandører {basic auth} http://dyndbinput2.vd.dk/services/test VDTrafficDataService/VDTrafficDataService.asmx {basic auth} Rejsetidsaftager http://193.89.54.122/services/vdrejsetid/rejsetiddataservice1.svc