Case TUHTI 17.12.2002 1 TietoEnator 2002 Projektin tunnuslukuja! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999! Otettu tuotantokäyttöön syksyllä 2001! Proof of Concept (5 henkilöä 4 kk) -> ohjeistus ja pilottisovellus! Projektissa on tekijöitä n. 30 tällä hetkellä joista n. 15 työskentelee Javalla! Online käyttötapauksia n. 100 kpl! Tietokannassa n. 200 taulua! Java luokkia n. 5000 17.12.2002 2 TietoEnator 2002 1
Arkkitehtuuri (1999)! Ajateltiin ensin SAP R/3! Asiakas halusi räätälöidyn sovelluksen! Päädyttiin J2EE-arkkitehtuuriin! WebSphere + DB2! EJB! Object/Relational-mapping entity beaneilla! Session beanit fasadiksi entity beaneille! Lisäksi eräohjelmat, jotka on tehty C:llä 17.12.2002 3 TietoEnator 2002 Liikkuvat osat Front-end Back-end Swing-client VisualAge for Java HTML-client WebSphere Studio/notepad RMI/IIOP HTTP WebSphere WLM Loadbalancing Cisco Arrowpoint Session Beans updates updates querys Servlet JSP javascript, css Application Server WebSphere 3.5.4 AE Entity Beans CMB CMB JDBCfinders JDBCupdates NT4 /IBM Netfinity JDBC Database Server DB2 UDB 7.1.3 Stored procedures (Java) Database Cbatchprograms AIX / IBM RS/6000 17.12.2002 4 TietoEnator 2002 2
Framework! Päätettiin rakentaa oma framework J2EE:n päälle! Frameworkiin kuuluu palikoita Swing-käyttöliittymän rakentamiseen, tietokannan käsittelyyn sekä tiedon välitykseen käyttöliittymän ja sovelluspalvelimen välillä! Kattavat how-to tyyliset ohjeet koodaajille 17.12.2002 5 TietoEnator 2002 Resurssit (1999)! Yhdellä ihmisellä kokemusta Javasta! Monia C- ja DB2-osaajia! Edellinen järjestelmä oli meidän tiimin tekemä räätälöity sovellus! Aloitettiin koulutus! Lainattiin ihmisiä muista tiimeistä! Aloitettiin rekrytointi! Käytettiin alihankkijoita! Käytettiin IBM:n konsultteja 17.12.2002 6 TietoEnator 2002 3
Toteutustyön jakaminen Kerrosjako+asiakokonaisuusjako. Toteutusvastuu/risteyskohta. Tarkempi jako: Java-paketti / toteuttaja. Yleiset osat Asiakokonaisuus Asiakokonaisuus Asiakokonaisuus Kerros Käyttöliittymä 1 Käyttöliittymä 2 Käyttöliittymä 3 Kerros Palvelut 1 Palvelut 2 Palvelut 3 Kerros Tietovarasto 1 Tietovarasto 2 Tietovarasto 3 17.12.2002 7 TietoEnator 2002 Välineet (1999)! VisualAge for Java 2.0! Javalla kirjoitettuja stored procedureja! JSP ja HTML-sivut kirjoitettiin WebSphere studiolla ja notepadilla 17.12.2002 8 TietoEnator 2002 4
VisualAge for Java! Aloitettiin versiolla 2.0! JDK 1.1.6! Erittäin buginen.! 1999 lopussa: Versio 3.0! JDK 1.1.7! Mukana tuli WebSphere Test Environment, joka vastasi silloista WebSpheren versiota 3.0! Yhä buginen 17.12.2002 9 TietoEnator 2002 VisualAge for Java! Kesä 2000: Versio 3.5! JDK 1.2.2! WebSphere Test Environment 3.5! Varsin stabiili! Kesä 2001: Versio 4.0! JDK 1.2.2! WebSphere Test Environment 3.5.3!!!! Varsin stabiili 17.12.2002 10 TietoEnator 2002 5
WebSphere! Käytössä versio 3.5.6! Lastentaudeista vihdoin päästy! Toimii varsin luotettavasti, enää muutama pieni asia avoinna! Hallintatyökalut onnettomia! Suorituskyky on riittävä 17.12.2002 11 TietoEnator 2002 Versionkasaus ja deployment! Ovat VisualAgen ja WebSphere 3.5:n kanssa työlästä! Ei ole mahdollista automatisoida Antilla tms. työkaluilla! WebSphere Studio Application Developerin ja WebSphere 4.0:n kanssa huomattavasti helpompaa! Kokonaan automatisoitavissa 17.12.2002 12 TietoEnator 2002 6
Entity beanit! Alunperin kaikki tietokantaoperaatiot piti tehdä entity beaneilla! Huomattiin nopeasti että monimutkaisten kyselyiden tekeminen oli hidasta, jopa mahdotonta! Plan B: Tehdään haut suoraan JDBC:llä, päivitykset entity beaneilla 17.12.2002 13 TietoEnator 2002 Entity beanit! Monimutkaisissa päivityksissäkin alkoi tulla ongelmia! Päivitykset entity beanien kautta menivätkin kantaan oudossa järjestyksessä! JDBC:tä ja entity beaneja ei oikein voinut sotkea samaan transaktioon! Tietokannan eheysrajaoituksia ei voinut käyttää! Monimutkaiset päivityksetkin alettiin tehdä suoraan JDBC:llä 17.12.2002 14 TietoEnator 2002 7
Entity beanit! Entity beanien käytöstä uudessa koodissa luovuttiin kesällä 2001! Yhä käytössä joissain vanhoissa käyttötapauksissa, joihin ei ole tarvinnut tehdä muutoksia, tullaan todennäköisesti korvaamaan JDBC:llä niissäkin kevään aikana 17.12.2002 15 TietoEnator 2002 Opittua! Automatisoi regressiotestaus niiltä osin kun se on mahdollista! Automatisoi versionkasaus, integroi usein! Hanki ainakin yksi tai kaksi erittäin pätevää osaajaa omaan tiimiin! Java ohjelmointikielenä on aikuistunut 17.12.2002 16 TietoEnator 2002 8
Opittua! Sovelluspalvelin tarjoaa paljon hienoja ominaisuuksia joiden pitäisi nopeuttaa työtä! Älä käytä niitä!! Pidä arkkitehtuuri yksinkertaisena, KISS! Älä käytä entity beaneja! Älä käytä epästandardeja ominaisuuksia! Varo myös uusia standardejakin ominaisuuksia 17.12.2002 17 TietoEnator 2002 No mitä hyötyä siitä sovelluspalvelimesta sitten on?! Muutama pieni juttu:! Toimii servlet containerina ja kääntää jsp-sivut! Hoitaa tietokantayhteyksien poolauksen! Hanskaa transaktiot, begin ja commit/rollback! Toimii palvelimena RPC-kutsuille 17.12.2002 18 TietoEnator 2002 9
Mihin J2EE on menossa?! Paisuu! Uuden J2EE 1.4 speksin mukaisessa sovelluspalvelimessa pitää olla: Java IDL API ja RMI-IIOP tuki (CORBA-tuki) Kokonainen JMS-toteutus Web Services JavaMail toteutus eli sähköpostin lähetys JTA eli hajautetut transaktiot Java Connector Architecture JMX 17.12.2002 19 TietoEnator 2002 Mihin WebSphere on menossa! Paisuu! WebSphere 3.5:n ja VisualAgen tuki loppuu kesällä 2003! WebSphere Studio Application Developer Rakennettu Eclipsen päälle (www.eclipse.org)! WebSphere Application Server 4 ja 5 17.12.2002 20 TietoEnator 2002 10
Kysymyksiä? Kiitos! heikki.linnakangas@tietoenator.com 17.12.2002 21 TietoEnator 2002 11