Sammen med et dyktig team fra NTNU har vi utviklet TIA, en integrasjonshub som både øker sporbarheten i dataene og bedrer dataflyten mellom de ulike systemene til NTNU.
Før TIA-prosjektet startet hadde NTNU en integrasjonshub kalt Kjernen. Kjernen var basert på Oracle PL/SQL som sammenstilte data fra ulike kildesystem og leverte de ut til konsumentene via Web Services. Utfordringen med dette systemet var at det ikke fantes sporbarhet i dataene, i tillegg til at systemet inneholdt kompleks forretningslogikk. Kjernen var også basert på datahenting fra de ulike kildesystemene på nattlig basis, noe som medførte store forsinkelser i dataflyten. En annen utfordring med Kjernen var at den krevde mange filoverføringsjobber. Fordi Kjernen var så komplisert, ble den vanskelig å drifte og forvalte, samt at det skapte utfordringer for sluttbrukerne. Behovet for en ny integrasjonshub som både var enkel å forstå og forvalte var derfor stor.
Løsningen ble TIA, en integrasjonshub som inneholder minimalt med forretningslogikk og som tilbyr langt bedre sporbarhet og hyppigere dataflyt. Med TIA blir integrasjonsgrensesnittet mot kildesystemene mye renere, selv om enkelte kildesystemer fortsatt er filbaserte. TIA tilbyr også et API via REST istedenfor Web Services.
Gjennom årenes løp har TIA blitt oppgradert flere ganger, og vi har hele veien forsøkt å benytte teknologi som er mest mulig formålstjenlig både med tanke på utvikling og drift. API-et har blant annet blitt forenklet med tanke på JSON-strukturen som konsumentene må forholde seg til. Vi skrev også om komponentene som var API-nære til å bruke Node.js, noe som forenklet og reduserte kodebasen. I utgangspunktet var TIA et Java-basert system, der vi brukte Apache Camel som implementerer Enterprise Integration Patterns. Vi brukte også veldig mange ulike komponenter fra Spring Framework, og tilbød det meste fra rene Java-endepunkt. Etterhvert så vi at dette kompliserte løsningen unødvendig mye og rammeverkene tilbød masse funksjonalitet som vi egentlig ikke hadde behov for.
Det har også blitt gjort endringer på rammeverket gjennom å erstatte ActiveMQ og Tomcat (som vi brukte som applikasjonsserver) med Kafka (kø-system) og Zookeeper (state database). Etter å ha gjort disse endringene har det meste blitt lagt i Docker-containere, noe som har forenklet både drift og utvikling.
TIA leverer også data ved hjelp av push via grensesnitt istedenfor å måtte skrive til en database eller overføre dataene ved hjelp av filoverføring, slik tilfellet var med Kjernen.
Den største verdien for NTNU er enklere forvaltning. Gjennom vesentlig bedre dataflyt får de likevel også flere forretningsmessige fordeler. Å dele ut tilganger til nye ansatte og studenter går blant annet vesentlig fortere enn tidligere. Koden er nå mye mer lesbar, og det blir derfor enklere å forstå hva som skjer fra kildesystemene opp til API-et.
TIA har også gjort det enklere for andre NTNU-systemer ved å benytte TIA istedenfor å hente data direkte fra kildesystemer som for eksempel Felles Studentsystem. Et eksempel på et system som har tjent på dette er e-læringsplattformen Blackboard, hvor studenter både får nyttig informasjon og kan planlegge sin studiehverdag. Både Blackboard og andre systemer kan nå hente dataene de trenger fra api.ntnu.no
Ansvarlig kontor: Trondheim