Integrointi Ohjelmistotekniikka kevät 2003
ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri Varastokirjanpito Tuotannon ohjaus
Pakettiohjelman edut: Nopea toimitusaika Edullinen (!?!) Laatu testattu Miksi ERP? 1/2 Yksi järjestelmä kattaa kaikkien (??) tarpeet -> Periaatteessa vain asiakassovellus/näkymä järjestelmään muuttuu käyttäjän mukaan Tiedon kulun nopeus (esim. varastosaldon seuraaminen tai myynti-laskutus-kirjanpito)
Miksi ERP? 2/2 Tiedon jakaminen fyysisestikin eri paikkojen välillä on helppoa Automatisointi, esim. tilaus -> laskutus -> kirjanpito/reskontra tilaus <-> varasto -> tuotanto -> osto tilaus <-> asiakastiedot
ERP:n rajoitteet On sopeuduttava arkkitehtuuriin On sopeutettava omat toimintatavat tuotteeseen tai tehtävä mittavia muutoksia valmiiseen pakettiin Integrointi muiden järjestelmien kanssa on todellinen haaste Pystyttäminen joka tapauksessa mittava projekti Järjestelmät usein suljettuja kuitenkin muuttumassa avoimiksi ja www-pohjaisiksi Jättimäinen kaikki-tai-ei-mitään-paketti kuitenkin muuttumassa modulaarisiksi ja avoimiksi
ERP - WWW Ohjelmistotekniikka kevät 2003
Integrointitilanne Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet??? Laskutus, reskontrat Asiakas Asiakasrekisteri Varastokirjanpito Tuotannon ohjaus
Integraation taso Tiedon integrointi Usein riittävä Tietosisällön määrittely, vastaavuuksien tunnistaminen Valmiuden useimmissa nykyjärjestelmissä API-tasoinen integraatio CORBA, DCOM, Java RMI Metodi- ja UI-taso
Sovellusten integrointi Vaatimukset Vaatimukset Vaatimukset Varottava liian korkean integrointitason tavoittelemisen teknologiahuumaa Legacy Systems -ongelmat Integrointi-ohjelmistojen hyödyntäminen
Ohjelmiston kokonaiskustannukset Ohjelmiston hinta Ohjelmiston käyttöönotto/muokkaus Koulutus Laitteistosta, tietoliikenteestä yms. aiheutuvat kulut Ylläpitokulut IT-henkilöstökulut (käyttöönotto, ylläpito, tuki)
Järjestelmien välinen kommunikointi one to one Järjestelmä 1 Suoraan Järjestelmä 2 Täytyy tuntea toinen järjestelmä ongelma varsinkin, kun useita järjestelmiä Ei salli muutoksia Synkroninen suorituksen keskeytyminen
Järjestelmien välinen kommunikointi one to one Järjestelmä 1 Middleware Järjestelmä 2 Asynkroninen Esim. Yksinkertainen jonokäsittelijä Tiedon muunnokset voidaan päivittää toista järjestelmää toisen tietämättä Reititys ei tarvitse tietää toisen sijaintia
Many to Many Järjestelmä 3 Järjestelmä 2 Järjestelmä 4 Many-to-Many MW Järjestelmä 1 Järjestelmä 5 Järjestelmä 6
Message Broker Tiedon muunnokset Jonokäsittelijä Säännöt tiedon muunnosta ja reititystä varten Reitityslogiikka Tietää, kuka vastaa mistäkin palvelusta Voi lähettää saman viestin myös useille Tietää, ketkä kaikki tarvitsevat mitäkin tietoa Missä muodossa kukakin tietoa tarvitsee
Hajautetut oliot (Distributed objects) Integroinnin taso Tiedon jakaminen < toiminnallisuuden jakaminen Uusiin järjestelmiin Etua, kun on tarve jakaa paljon yhteisiä metodeja Corba vs. DCOM Periaatteena, että sovelluksen ei tarvitse paikallistaa kutsuttava oliota
CORBA Standardi olioiden jakamisen toteutukseen OMG (Object Management Group): IBM, Apple, Sun ym. Julkaistiin vuonna 1991, mutta ei tuloksia vielä monee vuoteen sen jälkeen Tuki useimmille ohjelmointikielille Ongelmia: Suorituskyky Palautumismekanismien puuttuminen Huono skaalautuvuus
CORBA TOTEUTUS Olio 1 Olio 2 IDL Stub IDL Skeleton ORB IDL = Interface Definition Language ORB = Object Request Broker
Kutsu asiakkaan kannalta Paikkatuntumaton Palvelintuntumaton Ohjelmointikieliriippumaton Toteutusriippumaton Laitearkkitehtuurista riippumaton Käyttöjärjestelmästä riippumaton Protokollista riippumaton Siirtokerroksesta (fyysinen verkkoyhteys) riippumaton
ORB:n toiminta palvelua pyydettäessä Paikallistaa kohdeolion Aktivoi palvelinohjelman, jos se ei ole käynnissä Siirtää pyynnön parametrit Odottaa prosessin suoritusta Palauttaa paluuarvon Palauttaa poikkeuksen, jos ei onnistu