Hvad er integration og hvordan laver man en integration

Lagt online: 8. februar 2017

  • 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 lagerbestande 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 den 100 % perfekte 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 programmør/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 programmør 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 programmør 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. Gemme data direkte i et eksternt systems databank. Her gemmer source-systemet direkte ind i target-systemets databank. Denne metode kan jeg ikke anbefale selvom det ofte er den nemmeste og hurtigste måde at løse et integrationsprojekt på.
    Metoden åbner op for sikkerhedsproblemer, programmeringsfejl (hvis target-databanken ændres), og det kan give en udvikler mulighed for “lige at lave en lille ændring i target-databanken”, hvilket 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 programmører 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 programmør lave en sådan funktion.

Ting du bør spørge din programmør 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

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.