Forstå integration - automatiseret dataudveksling

Udgivet: November 11, 2017
Senest opdateret: April 20, 2023

  • Hvad er integration?
  • Hvordan laver man en integration?
  • Hvilke muligheder har man?
  • Hvordan undgår man at bruge for mange penge?

Terminologier

Data: Typisk tekst og tal, men kan også være billeder, videoer, filer osv.
Source-systemet: Det system, som sender data til et andet system.
Target-system: Det system, som modtager data fra et andet system.

Hvorfor laver man integrationer?

For at automatisere udvekslinger af data mellem 2 eller flere it-systemer, f.eks. overførsel af opdaterede priser eller lagerbeholdninger fra et ERP (bogholderiprogram) til en webshop.

Hvorfor automatiserer man dataudveksling (integration)?

  1. For at undgå at folk laver fejl. Bruger man copy/paste, er fejl garanteret.
  2. For at spare tid. Copy/paste er langsomt - gaaaab ...
  3. For at undgå at skulle importere store Excel-filer (bøvlet og tidskrævende).
  4. For at udveksle data i real-time (det øjeblik den ene eller anden data source bliver opdateret).

Hvilken vej sendes data?

Man kan lave envejs- eller tovejsintegrationer, hvor envejs "blot" skubber data fra et system til et andet, og tovejs skubber data til og fra begge systemer.

Hvem betaler for en integration?

Typisk den virksomhed som har brug for dataintegrationen.

Tip: Hvis to virksomheder skal udveksle data, så forsøg altid at være den som dikterer integrationen - data leader. Det er altid nemmere at være leader, end det er at være follower i dataintegrationer.

Hvordan sendes data frem og tilbage mellem systemerne?

Man kan sende data frem og tilbage på mange måder. Her de 4 mest brugte metoder samt en lille forklaring til hver:

  1. Moduler/plugins som installeres i et CMS, webshop, CRM etc. -system. Denne metode er at foretrække over alle andre metoder, selvom man måske ikke får en 100% perfekt integration. Grunden er, at integrationen virker det øjeblik, man installerer modulet.
    Tommelfingerregel: Brug altid færdige moduler, når du kan. Overvej at gå på kompromis med dine krav fremfor selv at udvikle en integration.
  2. Webservices (API). Webservices giver typisk en stabil integration (sammenlignet med eksport og import af filer), men kræver i modsætning til modul/plugin-løsningen, at man har en udvikler/freelancer til at udvikle integrationen.
  3. Eksport og import af filer, f.eks. XML- eller CSV-filer. Her skriver source-systemet (systemet som leverer data) en fil som gemmes i en folder på en server, hvor fra target-systemet (systemet som bruger data) kan indlæse filen. (Det kan være på samme server eller over nettet).
    Der findes forskellige moduler/plugins, som helt eller delvist automatiserer processen, men det kræver typisk en udvikler eller person med en solid teknisk baggrund at få det til at virke ordentligt.

    HUSK:

    • Hvis du udveksler datafiler, så husk at passwordbeskytte den folder hvor filerne gemmes. Bed din udvikler om at bruge IP-blocking for, at undgå (mindske) muligheden for at andre kan læse (og/eller ændre) filerne.
    • Husk at kryptere brugernavn og password hvis f.eks. filerne er udvekslet via FTP (en meget normal måde at udveksle data på).
  4. Gem data direkte i et eksternt database-system. Her gemmes kildesystemet direkte i målsystemets database. Jeg anbefaler dog ikke denne metode, selv om det ofte er den letteste og hurtigste løsning til et projekt, hvor to systemer skal integreres. Metoden øger risikoen for sikkerhedsproblemer og programmeringsfejl, som typisk sker, når mål-databasen ændres. Det tillader udvikleren at lave små ændringer i mål-databasen, som i værste tilfælde kan have fatale konsekvenser.

Hvor ofte sendes data frem og tilbage?

Hvis man benytter modul/plugin/webservice-modellen som beskrevet ovenfor, så sendes data i det øjeblik source-systemet bliver opdateret.

Det samme gælder, hvis man skriver direkte til databanken på target-systemet. MEN den metode kan jeg kun fraråde.

Sender man filer frem og tilbage (XML eller CSV filer), konfigurerer man hvor ofte det skal ske, f.eks. en gang i timen eller en gang om dagen. Target-systemet "overvåger" folderen, hvor filen gemmes, og importerer dataene automatisk.

Tip:

  1. Hvis man eksporter "mange data", f.eks. mange 100 GB ad gangen, så kan man måske kun gøre det en gang i døgnet, fordi både eksport og import tager tid. Men man kan spare tid ved kun at eksportere de data, som er ændret siden den sidste eksport.
    HUSK at minde din udvikler om det.
  2. Fra tid til anden kan det være praktisk at lave en lynopdatering fra et system til et andet. Det kan være, hvis man har opdateret priser eller lagerstatus på et produkt. Overvej derfor om du skal bede din softwareudvikler lave en sådan funktion.

Ting du bør spørge din softwareudvikler om:

  1. Hvordan løses integrationen - modul, webservices eller fil-eksport (glem det med at skrive direkte til target-systemets databank - det er et no go)!
  2. Har udvikleren søgt efter et plugin/modul?
    Husk på at din udvikler tjener flere penge, hvis integrationen programmeres fremfor at bruge et færdigt plugin/modul.
  3. Har de lavet en datamapping?
    Datamapping betyder, at man "mapper" felterne og bestemmer hvilke data, der bliver gemt hvorhenne. Her følger et eksempel på, hvordan man datamapper en persons navn:

Lad os i dette eksempel antage, at source-systemet er et ældgammelt system, og det gemmer en persons fulde navn i ét felt (altså fornavn, mellemnavn og efternavn).

Lad os videre antage at target-systemet gemmer navne i tre felter, fornavn, mellemnavn og efternavn; felterne kunne hedde: [first_name], [middel_name] og [last_name].

Når man integrerer det gamle system med det ny system, er man nødt til at beslutte, hvordan man håndterer navnene; gemmer man navnet i et felt, eller deler man navnene op? En løsning kunne være:

  1. Består navnet af et ord, så gemmes alt i feltet [first_name].
  2. Består navnet af to ord, så gemmes det første ord i feltet [first_name] og det andet ord i feltet [last_name].
  3. Består navnet af tre ord, så gemmes det første ord i feltet [first_name] og det andet ord i feltet [middel_name] og det sidste ord i feltet [last_name].

Mange data er både hurtige og nemme at mappe, f.eks. POSTNUMMER som næsten altid er ZIP code.

P.S. Husk altid at benytte SSL-kryptering til dataudveksling så nysgerrige blikke ikke kan læse med.

AUTHOR

Peter Skouhus

Peter Skouhus

En dansk iværksætter, der ejer 1902 Software Development, et it-selskab på Filippinerne, hvor han har boet siden 1998. Peter har stor erfaring inden for IT-udvikling, strategisk it-ledelse og salg.