Arbeidsordresystem for Trondheim Energi Nett SQLServer Integration Services som integrasjonsmotor 12.04.2007 Sigurd Ringbakken, Abeo AS FOKUS: Nytteverdi
Agenda Om Abeo Introduksjon til SSIS Om kunden og prosjektet Systemarkitektur Integrasjoner og utfordringer - SSIS som integrasjonsplattform
Hva er SSIS? SSIS – SQL Server Integration Services Del av SQL Server 2005 Inngår i SQL Server Business Intelligence (BI) Platform Enterprise ETL-verktøy -etterfølgeren til Data Transformation Services (DTS) , SQL2000 -full redesign, ingen påbygging av DTS -skalerbarhet, performance, deployment Egen servertjeneste/ eget kjøremiljø Utfordrer til markedsledende ETL-verktøy -Informatica PowerCenter vs SSIS, se http://download.microsoft.com/download/1/0/3/103fd39e-3ca4-4db7-a087-1263dc6ed0b1/CompIntTools.pdf SSIS vil for mange være førstevalget innenfor ETL pga funksjonalitet/ytelse vs. pris/lisensiering samt tilgjengelighet (del av SQL Server 2005)
SSIS prinsipper Pakke Utvikling frikoblet fra SQLServer-installasjonen Eksekverbar komponent Utvikles i Business Intelligence Studio/ Visual Studio 2005 Deployes til kjøremiljø Kjøres via SQLServerAgent, kommandolinje eller via API mot SQLServer Utvikling frikoblet fra SQLServer-installasjonen Eget kjøremiljø, kan kjøre på frittstående server
SSIS Pakke Connection managers Control flow Data flow Variabler Events Setter opp tilkobling mot fysiske tjenester (SQLServer, SMTP, flate filer etc) Control flow Prosessflyt, fylles med: Containers (sequence, loops) Tasks (f.eks. Send mail, execute script, dba-tasks) Data flow task: Transformering av data Transaksjoner Data flow Sources (oledb, data reader, xml-fil, flate filer etc) Transformering av data (Split, join, group, filter etc) Destinations (SQLServer, flatfil, data reader etc) Variabler Events
Trondheim Energi Nett Nettselskapet til Trondheim Energi Distribusjon av strøm i Trondheim og Klæbu Ca 90.000 kunder Trondheim Energi Nett Trondheim Energi Fjernvarme Trondheim Energi Kraftsalg Trondheim Energi Kraft Nettforvaltning Entreprenør Kunde Netteier, Forvaltning og drift Prosjektering og utførelse Måling, avregning, fakturering
Trondheim Energi Nett Kåret til det mest effektive nettselskapet i 2006 av NVE Resultat av et langsiktig arbeid RAS 1 av 4 konkrete tiltak for effektivisering av driften
Om prosjektet Navn: RAS – Ressurs- og Arbeidsordresystem Startet sommeren 2004 Bemanning 2 ~ 6 personer Fase I – levert årsskiftet 2004-2005 Fase II – levert januar 2006 Fase III – levert februar 2007 Abeo totalansvar for løsningen Fra kravspesifisering til leveranse Kuring og opplæring Bistand drift
Hvorfor RAS? 50 montører og 23.000 arbeidsordrer pr år Manuelle rutiner Montørene må møte opp på E-verket om morgenen for å få arbeidsordrene sine Prisgitt at papirinfo er tilstrekkelig Papir, penn og kråketær for registrering av viktig info Papir må leveres tilbake for intern saksbehandling Lett å miste Lett å misforstå Saksbehandlere fører data manuelt tilbake til fagsystemer Betydelig ressursbruk til planlegging, koordinering og oversikt over ressurser Dårlig utnyttelse av ressursene
Mål med løsningen Redusere kostnader ved håndtering av arbeidsordrer Virkemidler: All relevant informasjon elektronisk ut i felt Integrasjon med fagsystemer Data automatisk tilbake til riktig fagsystemer Effektiv ressursstyring Hver brukergruppe forholder seg i størst mulig grad til ett fagsystem
Systemkart
Montørens jobbplan
En arbeidsordre
Systemarkitektur
Teknologier .NET 2.0 C# Windows Forms klient, prinsipper fra SmartClient-tankegang: Rikt GUI Online/offline SQLServer 2005 Express Caching Automatic Update Network awareness Web services (ASP.NET) SQLServer 2005 Snapshot replkering til klient (grunnlagsdata) SQLServer Integration Services Datakommunikasjon 3G/UMTS, VPN med autentisering via 3G-kortets SIM-kort LAN/WLAN WebServices ZIP-komprinmering av HTTP-trafikk
Integrasjoner ERP-system Kompetanse KIS Grunnlagsdata Enkle arbeidsordredata Direkte aksess til Oracle-database for uthenting Flatfilbasert grensesnitt for innlegging Kompetanse Grunnlagsdata, kun uthenting fra flatfil KIS Komplekse arbeidsordredata, aggregerte objekter (Arbeidsordre, anlegg, måler, måleravlesning, kunde) Mange arbeidsordrer – mye data skal tilbake til KIS Mye forretningslogikk
Enkle integrasjoner
SSIS-pakke enkel integrasjon
Integrasjon mot KIS Grensesnitt: .NET API, synkrone funksjonskall Ikke direkte tilgang til data i database Komplisert kommunikasjonsvei fra API til KIS 3dje parts meldingsbasert kommunikasjonsverktøy Nødvendig med oppdaterte data pga mye endringer
Første forsøk: integrasjon i forretningslogikk-laget Enkelt å lage Utnytter forretningslogikk i fagsystem Ytelse et problem Sterk avhengighet mellom systemene Hvis KIS var utilgjengelig fikk ikke montørene gjort noe som helst
Løsning: SSIS for integrasjon mot KIS Løsere kobling mellom RAS og KIS Bedre ytelse for montørene Montørene kan jobbe selv om KIS er utilgjengelig Større modellmessig utvidelse Mekanismer for synkronisering – en ”motor”
Designprinsipper for synkroniseringsmotor Egne arbeidstabeller for synkronisering Separate komponenter som kommuniserer med KIS-API og laster data inn i arbeidstabeller SSIS ”kverner” datagrunnlaget fra arbeidstabellene, beslutter hvilke rader som skal synkroniseres SSIS orkestrerer integrasjonen, omfattende kontrollflyt
Designskisse synkroniseringsmotor SSIS-pakke 4. Utfør synkronisering 1. Hent endringer fra RAS 2. Hent endringer fra KIS Web services Endringer Synkronisering 3. Merge data Arbeidstabeller synkronisering Forretningslogikk KIS API Dataaksess RAS-tabeller
Fordeler og ulemper SSIS-integrasjon Løs kobling Kan fortsatt bruke systemet selv om andre systemer er nede Ulemper Data ikke 100% oppdatert til enhver tid – løses av konflikthåndteringsmekanismer Duplisering av forretningslogikk i RAS knyttet til KIS-data Integrasjon i forretningslogikk-laget Data alltid oppdatert Enklere å utnytte forretningslogikk i KIS Sterk binding, sårbart for nedetid
Alternativer Alternativer – meldingsbasert eller API-basert integrasjon BizTalk Kunne hatt samme rolle som SSIS i dag Eget produkt med lisenskost BizTalk ville ikke forenklet noe Videreutviklet API-basert integrasjon Pådratt oss samme kompleksitet pga at man må ta høyde for asynkron kommunikasjon Mistet mye av run-timestøtten SSIS gir
Oppsummering SSIS som integrasjonsplattform mot flere ulike fagsystemer Enkle integrasjoner (ETL) – rett frem Komplekse integrasjoner - orkestrering Vurdér trade-offs grundig
Spørsmål