Java EE -arkkitehtuuri. Lipitsäinen Arvo, HAAGA-HELIA

Samankaltaiset tiedostot
Java Platform, Enterprise Edition (Java EE)

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä ! Java luokkia n. 5000

HSMT J2EE & EJB & SOAP &...

HOJ J2EE & EJB & SOAP &...

Tuottavuutta sovelluskehitykseen Oraclen työkaluilla: JDeveloper 10g ja HTML DB OUGF Syysseminaari

Ohjelmistoteknologioiden koulutus: Web-sovelluskehitys, Java Server. Infotilaisuus klo 10:00

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

Sovellusarkkitehtuurit

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy


Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Järjestelmäkehitys EJB komponenttien avulla

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

P e d a c o d e ohjelmointikoulutus verkossa

Integrointi. Ohjelmistotekniikka kevät 2003

Web-palveluiden toteutus älykortille

SAP. Lasse Metso

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla

Java EE ja Enterprise JavaBeans 3.0. Harri Valkonen HELSINGIN YLIOPISTO. Tietojenkäsittelytieteen laitos

Hajautettujen järjestelmien rakentaminen - Jini. Ohjelmistotuotantovälineet-seminaarin esitelmä

P e d a c o d e ohjelmointikoulutus verkossa

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

Java EE -sovelluksen resurssien suojaus Case: Toyme Lab Oy

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

EJB-komponenttien tietokantakytkentä

Verkottunut suunnittelu

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Nääsvillen oliopäivät.net vrs Java

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Järjestelmäarkkitehtuuri (TK081702)

Avointen ohjelmistojen käyttö ohjelmistokehityksessä

in condition monitoring

Sovelluskehitys JDeveloper 10g ja Oracle ADF -välineillä. OUGF Kevätseminaari Jarkko Happonen, Eventizer Oy

Pedacode Pikaopas. Web-sovelluksen luominen

Ylläpito-ohje. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja.

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Tikon Ostolaskujenkäsittely versio SP1

6. Arkkitehtuurityylit

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Pedacode Pikaopas. Web Service asiakasohjelman luominen

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

Integraatiotekniikan valinta - tie onnistumiseen.

Palveluperustaiset arkkitehtuurityylit

Valppaan asennus- ja käyttöohje

J2EE vs..net Olli Sakari

SOA SIG SOA Tuotetoimittajan näkökulma

ISACA Finland OWASP The OWASP Foundation. Timo Meriläinen Antti Laulajainen.

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

KIURU Tietotekniikan sovellusprojekti

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta

Arkkitehtuuri. Ylätason sovellusarkkitehtuuri

Java- RekryKoulutus. Module Descriptions

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

L models. Tekninen määrittely. Ryhmä Rajoitteiset

Tietojärjestelmäarkkitehtuurit

ESKO-palvelun jatkokehittäminen

9 Edistynyt PHP-ohjelmointi

Juhannuksena Arkkitehtuureilla YHTEISET RAKENNUSPUUT. Java/J2EE vastaan. Microsoft.Net OHJELMISTOT ARKKITEHTUURIT ESITTELYSSÄ

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Sunin määrittelemä JSP 1.1 (javaserver pages) yhdistää

RDBMS - Yhteyskäytännöt

Taustaa. CGI-ohjelmointi

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Interfacing Product Data Management System

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Tuotantokoneen langaton etädiagnostiikka

Työpöytävirtualisointi

Projektisuunnitelma. Asdf. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Sisältö. Tapahtumienhallinta. Tapahtumat (transaktiot) Kaupallinen tapahtuma (transaktio)

Maiju Mykkänen Susanna Sällinen

SOA käyttöönotto TM:ssä

JavaRMI 1 JAVA RMI. Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Älykkäämpi päätelaitteiden hallinta Juha Tujula, CTO, Enfo Oyj IBM Corporation

3 Verkkopalveluarkkitehtuuri

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

TURVALLISEN TEKNIIKAN SEMINAARI Laitteiden etähallinta tietoverkkojen välityksellä Jani Järvinen, tuotepäällikkö

Microsoft Visual J++ ohjelmointiympäristö

ZENworks Application Virtualization 11

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Osaa käyttää työvälineohjelmia, tekstinkäsittelyä taulukkolaskentaa ja esitysgrafiikkaa monipuolisesti asiakasviestintään.

Helpottuuko sovellusten välinen integraatio XML:n avulla - kokemuksia ja ratkaisuja, teknologiajohtaja Sauli Tujunen, atbusiness Communications Oyj

mitenkään toisiinsa. Liitokset rajoittuvat parhaimmillaankin selain- ja tietokantayhteyksiin. Laajamittaisen yrityssovelluksen ajoympäristön

.NET 2006 ja sen jälkeen

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Bitnami WordPress - Asenna WordPress koneellesi. Jari Sarja

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Graafinen käyttöliittymä, osa 1

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

Transkriptio:

Java EE -arkkitehtuuri Lipitsäinen Arvo, HAAGA-HELIA 30.8.2007 1

Sisältö Java EE:n historiaa ja kehitystä Java SE Java Standard Edition Java EE Java Enterprise Edition Java EE -kehittämisen roolit Java EE:n komponentit Java EE-sovellusten kehittäminen Java EE 5.0:n osat 2

Java EE:n historiaa ja kehitystä 1990-luvulla Internet ja Web yleiseen käyttöön puuttui Internet-ohjelmointiin sovelias ohjelmointikieli => Sun Microsystems kehitti Javan v. 1995 Appletin (= Java-ohjelma) liittäminen HTMLsivuun web-palvelimessa ja koodin suorittaminen selaimessa herätti mielenkiintoa 3

Java EE:n historiaa... 1997 Servletti mahdollisti Javaohjelman liittämisen web-palvelimeen, pääsyn tietokantoihin ja HTML-sivun tekemisen dynaamisesti Selain HTTP-pyyntö HTML-tiedosto Web-palvelin Servletti Database 4

Java EE:n historiaa... Servletissä on kuitenkin puutteellisuuksia: ei ole skaalautuva vaikea toteuttaa transaktioiden hallintaa..... => 1998 tällaisiin ongelmiin kehitettiin palvelinpään EJB -komponenttiteknologia (Enterprise JavaBeans) 1999 Erilliset Java-tekniikat yhdistettiin J2EE-arkkitehtuuriksi (Java 2 Platform Enterprise Edition) 5

Java EE:n historiaa... J2EE:n käyttö alkoi yleistyä ja ilmestyi uusia J2EE-versioita: J2EE 1.1 vuonna 1999 J2EE 1.2 vuonna 1999 J2EE 1.3 vuonna 2001 J2EE 1.4 vuonna 2003 (lisätty Web Service) Java EE 5.0 huhtikuu 2006 Annotointi (Java 5.0:sta) EJB 3.0 Persistence API JSF, JSTL, AJAX... 6

Javan kehittäminen Java-teknologian kehittäminen tapahtuu JCPyhteisössä (Java Community Process) JCP-yhteisössä on yli 500 yritys tai yksilöjäsentä. Esim. Nokia, IBM, Sun, Oracle JCP-yhteisö kehittää kuvauksia, joiden perusteella toimittajat kehittävät tuotteita 7

Javan versiot Java SE Java Standard Edition Javan työasemaversio ent. J2SE (Java 2 Standard Edition) Java EE Java Enterprise Edition Javan yritysjärjestelmä versio vaatii toimiakseen Java SE:n ent. J2EE (Java 2 Enterprise Edition) Java ME Java Micro Edition - Javan versio pienlaitteisiin (matkapuhelimet, digi-tv-boxit, ym.) ent. J2ME (Java 2 Micro Edition) Java Card toimi-, siru-, SIM-kortit 8

Java Standard Edition Java SE 9

Java Standard Edition Java SE:n kehittyminen: 1991 Java-projektin aloittaminen 1995 23. toukokuuta Javan julkistus 1996 jdk 1.0 (Java Development Kit) 1997 jdk 1.1 1998 jdk 1.2 tai J2SE 1.2 (Java 2 Standard Edition) 1999 jdk 1.3 tai J2SE 1.3 2002 jdk 1.4 tai J2SE 1.4 Java-kieli on säilynyt muuttumattomana 2004 jdk 5.0 tai J2SE 5.0 muutoksia myös Java-kieleen 2006 jdk 1.6 tai Java SE 6 10

JVM - Javavirtuaalikone Ajettava Java-ohjelma, Java tavukoodi, toimii Java virtuaalikoneessa (JVM), joka sisältää Java-tulkin. Ajettava Java-ohjelma voi tulla omalta levyltä tai verkosta JVM tutkii ohjelman, selvittää, mistä se on peräisin, ja antaa ohjelmalle sen mukaan oikeuksia 11

Javan tietoturvaa Luokkalataaja, tavukoodin tarkastaja ja turvallisuusmanageri varmistavat Javan tietoturvaa Javan ydinluokat lataa vakio bootstrap class loader 12

Java SE 6.0 Java SE 6.0 koostuu jo monista osista: 13

Java SE:n osat JDBC - Java Database Connectivity Javan tietokantayhteys Tietokantaohjelmiston mukana tulee JDBC-ajuri, jonka kautta saadaan yhteys tietokantaan Kaikilla merkittävillä tietokantaohjelmistoilla on JDBCyhteys (DB2, Oracle,... ) JDBC:n avulla voidaan kohdistaa SQL-käskyjä tietokantaan JDBC Javaohjelma JDBCajuri Tietokanta 14

Java SE:n osia RMI Remote Method Invocation Java-ohjelma voi kutsua toisessa koneessa olevan Java-ohjelman metodia Javan hajautusmenetelmä RMI-IIOP RMI - Internet InterORB Protocol Java-ohjelma voi kommunikoida Corba-väylän avulla toisessa koneessa olevan Corba-sopivan ohjelman kanssa (esim. C++, Cobol) kone 1 kone 2 olio1 olio2 + metodix ( ) 15

Java SE:n osia JAXP Java API for XML Prosessing XML-dokumenttien käsittely Java-ohjelmassa DOM, SAX, XSLT XML-parserit Networking Java-ohjelma voi muodostaa Internet-yhteyksiä TCP/IP protokollan avulla Swing Javan graafinen käyttöliittymä 16

Java SE:n osia Java SE:n tietoturvapaketit: JCA (Java Cryptography Architecture) digitaalinen allekirjoitus message digest erilaisia salausalgoritmeja (DSA, MD5, SHA-1,...) PKI - julkisen ja salaisen avainten generointi ja säilytys JCE (Java Cryptography Extension) JAAS (Java Authentication and Authorization Service JSSE (Java Secure Socket Extension) ym. 17

Java Enterprise Edition Java EE (aikaisemmin J2EE) 18

Java EE:n rakenne Tietojärjestelmät esitetään kerros-mallina: 3-kerrosmalli: n-kerrosmalli: Java EE:n kerrosmalli: Käyttöliittymäkerros Liiketoimintakerros Tietokerros xxxxx-kerros yyyyyy-kerros zzzz-kerros Asiakaskerros Web-kerros EJB-kerros (liiketoimintalogiikka) EIS-kerros 19

Java EE:n rakenne Asiakaskerros Web-kerros EJB-kerros EIS-kerros HTML browser WML HTTP(S) mobile phone applet SOAP-yhteys RMI-IIOP Web Server Web Container Servlet JSP Servlet JSP JSP JSP RMI Application Server EJB Container EJB EJB EJB EJB EJB Enterprise Information System (EIS) -Legacy -CICS -ERP -... Database application client SOAP-yhteys usein samassa koneessa 20

Java EE-sovellus Java EE-sovellus muodostuu Webmoduleista, EJB-moduleista ja Java-asiakas - moduleista, joita kutakin voi olla 0 n kappaletta Modulit ja myös sovellus ovat palvelimelle asennuskelpoisia yksiköitä Web-modulin komponentit pakataan warloppuiseen tiedostoon, EJB-modulin komponentit jar-loppuiseen tiedostoon ja asiakasmodulin komponentit jar-loppuiseen tiedostoon Itse Java EE-sovellus on pakattu earloppuiseen tiedostoon 21

Java EE-komponentit Application client Graafisella käyttöliittymällä varustettu työasemassa oleva Java-ohjelma Applet Appletti on selaimessa toimiva, graafisella käyttöliittymällä varustettu Java-ohjelma Servlet, JSP Servletit ja JSP-sivut toimivat web container alustalla, voivat vastata web-asiakkaiden httpkutsuihin ja muodostavat usein käyttöliittymänä toimivan HTML-sivun. Voivat myös tehdä XML-tiedoston ja lähettää sen toiselle sovellukselle. Servletti voi tukea Web Services -palveluja SOAP/HTTP protokollan avulla. EJB EJB-komponentit toimivat transaktioiden käsittelyyn kykenevässä EJB Container alustassa, sisältävät Java EE-sovelluksen liiketoimintalogiikkaa ja voivat tarjota suoraan Web Services palveluja. 22

Java EE-kehittämisen roolit 23

Java EE-kehittämisen roolit Java EE:n modulaarinen luonne tuo esiin Java EE järjestelmien kehittämiseen liittyviä rooleja: Java EE-tuotteen (Java EE-alustan) toimittaja Välinetoimittaja Sovelluskomponentin tekijä Sovelluksen kokoaja Sovelluksen asentaja (käyttöönottaja) Sovelluksen hallinnoija Systeemikomponentin tekijä 24

Java EE-tuotteen toimittaja Java EE-tuotteen (alustan) toimittaja on yritys, joka tarjoaa Java EE-tuotetta, joka sisältää komponenttialustat (containerit) ja Java EE:n määrittämien API-rajapintojen ja muiden piirteiden toteutukset Java EE -tuotteen toimittaja on tavallisesti käyttöjärjestelmän, tietokantatuotteen, sovelluspalvelimen tai web-palvelimen toimittaja 25

Java EE-tuotteen toimittaja Java EE-tuotteen toimittajan täytyy sisällyttää tuotteeseensa sovelluskomponenttien tarvitsemat tietoliikenneprotokollat Java EE-tuoteen mukana pitää olla sovellusten asentamiseen ja hallinointiin tarvittavat työkalut ja välineet 26

Välineen toimittaja Välineen toimittaja on yritys tai henkilö, joka tarjoaa välinettä ohjelmistokomponenttien / sovellusten kehittämiseen, pakkaamiseen, kokoamiseen, asentamiseen tai hallinnoimiseen. Tällaisten toimittajien välineet voivat olla riippumattomia Java EE-alustan toimittajasta 27

Sovelluskomponentin tekijä Sovelluskomponentin tekijä on yritys tai henkilö, joka luo Java EE -sovellukseen sovelluskomponentteja. Komponentit voivat olla: EJB-komponentteja Web-komponentteja Stand alone -asiakasohjelmia 28

Sovelluskomponentin tekijä EJB-komponentin tekijä on jonkin sovellusalueen asiantuntija, joka toteuttaa uudelleenkäytettävän EJB-komponentin. EJB-komponentti sisältää tavallisesti liiketoimintatapahtuman käsittelyn Komponentin tekijän ei tarvitse tuntea komponentin teknistä toimintoympäristöä Komponentin tekijä ohjelmoi ja kääntää Javakoodia ja pakkaa ne jar-tiedostoksi 29

Sovelluskomponentin tekijä Web-komponentin tekijä voi olla: Web-käyttöliittymän tekijä, joka suunnittelee ja toteuttaa web-käyttäliittymän html:n avulla XML-muotoisen liittymän tekijä, esim. Web Service tyypin palvelun tekijä Web- / XML liittymässä tarvittavien Javakomponenttien tekijä (tagi-kirjastot, sivuun liitettävät JavaBean-komponentit, servletit) Web-komponentin tekijä tekee HTML-, XMLja/tai JSP-sivut, Java-koodin, asennuskuvaimen ja pakkaa ne war-tiedostoksi 30

Sovelluskomponentin tekijä Java-asiakasohjelman tekijä koodaa stand alone Java-ohjelman ja sen tarvitsemat luokat, kääntää ne.class loppuisiksi tiedostoiksi, tekee asennuskuvaimen ja pakkaa nämä jar-loppuiseksi tiedostoksi. Java-asiakasohjelmissa on usein graafinen käyttöliittymä, esim. Swing-komponenteilla toteutettuna 31

Sovelluksen kokoaja Sovelluksen kokoaja yhdistää Java EE - komponentteja asennuskelpoiseksi Java EEsovellukseksi Hän on sovellusalueen asiantuntija, jolla on asiakkaan näkemys sovellukseen Hänen ei tarvitse tuntea komponenttien ohjelmakoodia, vaan hän käyttää komponenttien asennuskuvaimia, määrittääkseen, miten komponenteista kootaan sovelluksia Hän käyttää graafista työkalua kootessaan sovelluksia 32

Sovelluksen kokoaja Sovelluksen kokoaja kokoaa EJB-komponenttien jar-tiedostoista ja Webkomponenttien war-tiedostoista sekä itse määrittämästään asennuskuvaimesta ear-loppuisen Java EE-sovelluksen 33

Sovelluksen asentaja Sovelluksen asentaja asentaa Java EE-komponentit ja sovellukset toimintaympäristöönsä: hän tuntee toimintaympäristön: palvelimet,... hän käyttää Java EE-alustan kanssa toimitettua asennustyökalua asennustyössään hän asentaa komponentit ja sovellukset Java EE-palvelimelle hän konfiguroi komponentit ja sovellukset päivittämällä asennuskuvaimia ja toteuttaa näin komponentin tekijän tai sovelluksen kokoajan määrittämät ulkoiset riippuvuudet 34

Systeemin hallinnoija Systeemin hallinnoija vastaa yrityksen tietotekniikan ja tietoliikenteen ylläpidosta hän valvoo ja tarkkailee myös asennettujen Java EEsovellusten ajon aikaista toimintaa tähän hänellä on käytettävissään monitorointi- ja hallintatyökaluja 35

Java EE-alustojen toimittajia IBM - WebSphere-palvelinperhe, WebShere Studio sovelluskehitysväline, DB2, Rational XD BeaSys - WebLogic -palvelinperhe Open source - JBoss sov.palvelin, Apache, Tomcat, Eclipse, NetBeans, Ant, JUnit,... Oracle Sun Borland, HP,... 36

Java EE:n komponentit 37

Java EE:n rakenne Asiakaskerros Web-kerros EJB-kerros EIS-kerros HTML browser WML HTTP(S) mobile phone applet SOAP-yhteys RMI-IIOP Web Server Web Container Servlet JSP Servlet JSP JSP JSP RMI Application Server EJB Container EJB EJB EJB EJB EJB Enterprise Information System (EIS) -Legacy -CICS -ERP -... Database application client SOAP-yhteys usein samassa koneessa 38

Asiakaskerros Java EE-asiakas voi olla: - selain + html-sivu, jolla on http-yhteys webkerrokseen - selain + html + Java-appletti - mobiililaite, jolla on esim. http-yhteys webkerrokseen - Stand alone -asiakasohjelma, jolla voi olla RMI-IIOP (Corba) yhteys liiketoiminta- tai EIS - kerrokseen 39

Web-kerros Web-kerros tekee seuraavia asioita: ottaa vastaan asiakkaalta tulevan pyynnön ja tunnistaa (authentication) pyynnön tehneen käyttäjän tunnistuksen perusteella käyttäjä saa mahdollisesti valtuutuksen käyttää sovelluksen resursseja ja palveluja (authorization) palvelun käytön päätteeksi muodostaa selainkäyttöliittymän ja lähettää sen asiakkaalle Web-kerroksen tulee tuntea erilaisten päätelaitteiden ominaisuuksia ottaa vastaan Web Service -konseptin SOAP-sanomia, suorittaa palvelun ja lähettää vastauksena SOAPsanoman 40

Web-kerros Web-kerros koostuu web-palvelimesta ja web containerista ja palvelimelle asennavista webmoduleista. Web-modulit koostuvat: Java EE:n määrittämistä ja containerin hallinnoimista web-komponenteista JSP-sivut servletit modulikohtaisesta asennuskuvaimesta (web.xml) sekä komponenttien käyttämistä Java-luokista, htmldokumenteista, kuva-tiedostoista, XML-dokumenteista, tyylisivuista ym. Web container on osa Java EE-alustaa 41

Web-kerros Käyttäjän palvelupyyntö voi edetä webkerroksesta EJB-kerrokseen EIS-kerroksen resurssien käyttöön (tietokantaa, taustajärjestelmiä) tai/ja käyttää web-kerroksen resursseja (servletit, JSPsivut, ) Käyttöoikeuksien myöntäminen perustuu sovelluksen käyttäjärooleihin, joihin palvelua pyytävä käyttäjä yhdistetään Web-sovellus voi toimia myös ilman, että on osa Java EE-sovellusta ja -alustaa 42

EJB-kerros EJB-kerroksen muodostaa sovelluspalvelin, siinä oleva EJB Container alusta ja EJB Container alustassa toimivat EJB-komponentit (Enterprise JavaBean) EJB-komponentit sisältävät liiketoimintalogiikkaa Container tarjoaa EJB-komponentille palveluja, esim: - komponentin luominen ja tuhoaminen - komponentin elinkaaren hallinta - tietoturvapalveluja - transaktioiden hallinta - tietokantayhteyksien säilyttäminen - asiakkaan ja EJB-komponentin välisen matalan tason tietoliikenteen - EJB-komponentin rekisteröiminen nimipalveluun 43

EJB-kerros Java EE 5.0:ssa on kahdenlaisia EJBkomponentteja: - Session Bean - Message Driven Bean J2EE 1.4:ssa oli kolmas EJB-laji Entity Bean, jolla kuvattiin tietovarastossa säilytettävää tietoa 44

Session Bean -komponentti esittää toimintoa, työn kulkua, liiketoiminta- logiikkaa tai sääntöä. Esim. tilauksen tekemis-logiikka, pankkitapahtumien tekeminen, tiedoston pakkaamistehtävät asiakasohjelma luo Session Bean-instanssin ja sen elinkaari kestää asiakkaan istunnon ajan Session Bean -instanssilla voi olla vain yksi asiakas kun asiakasohjelman viittaus Session Bean - instanssiin katoaa, Session Bean -olio kuolee on kahdenlaisia Session Bean komponentteja: - tilaton (stateless) - tilansa säilyttävä (statefull) 45

Message Driven Bean EJB-arkkitehtuuri sisältää Message Driven Bean komponentin, joka voi ottaa vastaan JMS-sanomia Message Driven Bean komponentista enemmän JMS:n yhteydessä 46

EJB-komponentin rajapinnat Session Bean -komponentin asiakasohjelma on joko - etäasiakas (remote client) tai - paikallinen asiakas (local client) Etäasiakas on eri JVM-koneessa kuin itse komponentti Paikallinen asiakas on samassa JVM-koneessa kuin itse komponentti Asiakasohjelmat eivät kommunikoi suoraan komponenttiolion kanssa vaan kommunikointi tapahtuu rajapintojen kautta 47

EJB-komponentin rajapinnat EJB Server Remote Client Remote business interface EJB Bean Class EJB Container EJB Server Local Client Local business interface EJB Bean Class EJB Container 48

EJB-komponentin toiminta EJB Container 4 Remote Client 6 9 Remote business interface 7 8 Enterprise Bean Beanclass class Bean 3 2 5 1 JNDI - Java Naming and Directory Service Naming Service 49

EJB-komponentin toiminta 1. Kun Java EE-sovellus ja EJB-komponentti asennetaan EJB Container alustaan, Container rekisteröi komponentin nimipalveluun JNDI:n avulla 2. Kun asiakas haluaa käyttää Java EE-sovelluksen komponenttia, asiakas löytää komponentin nimipalvelusta (JNDI:n avulla). 3. Container luo komponentin ilmentymän (olion) 4. Container luo komponentin liiketoimintarajapinnan ilmentymän 5. Container palauttaa asiakkaalle viittauksen komponentin liiketoimintarajapinnan ilmentymään 6. Asiakas kutsuu komponentin liiketoimintametodia rajapinnankautta 7. Container välittää metodikutsun itse komponentille 8. Metodin koodin suorituksen jälkeen Container valittää metodin paluuarvon rajapinnan ilmentymälle 9. Rajapinta palauttaa paluuarvon asiakasohjelmalle 50

EJB-komponentti EJB-komponentti koostuu: - Remote tai Local business -rajapinnasta - Itse komponentti-luokasta - mahdollisista muista luokista Komponenttiin kuuluvat tiedostot pakataan yhteen jakelukelpoiseksi jar-loppuiseksi tiedostoksi (zip-pakkaus) 51

Asennuskuvain J2EE:ssa EJB-komponenttiin kuului XMLmuotoinen asennuskuvain (deployment description), joka ilmaisee mm: komponentin nimen komponentin rajapintaluokkien nimet komponentin tyypin (Session, Entity, MDB) komponentin transaktioiden käsittelytavan CMP:n tallennettavat kentät ja suhdekentät komponentin tietoturvamääritykset komponentin viittaukset muihin komponentteihin komponentin käyttämät ulkoiset resurssit Java EE 5.0:ssa edelliset tiedot ilmaistaan lähdekoodin annotoinneilla 52

Persistence API Java Persistence API sisältää välineet tietovarastossa säilytettävän, pysyvän tiedon hallitsemiseen (persistence) objekti / relaatio muunnoksen tallennettavaa tietoa voidaan käsitellä Javaolioina (POJO) 53

Persistence API Tallennettavien POJO-olioiden kesken voi olla erilaisia suhteita, joita Persistence API hallinnoi : 1 Tilaus n 1 Asiakas n Tilausrivi n 1 Tuote 54

Session Bean/Entity EJB Container POJO EIS Client Session Bean POJO Database POJO Client EJB Container Session Bean Tilauksen käsittely POJO Asiakas POJO Tilaus EIS Database POJO Tuote 55

EJB:n tietoturva Käyttäjä on tunnistettu web- tai asiakaskerroksessa ja saanut valtuutuksen Valtuutustiedot ovat EJB Containerissa EJB-sovellukseen on yhdistetty erilaisia käyttäjärooleja, jotka ovat tallennettu sovelluskohtaiseen asennuskuvaimeen EJB-komponentin metodiin tai koko komponenttiin on yhdistetty rooleja, jotka voivat kutsua metodia. Metodikutsun yhteydessä EJB Container tai ohjelma tutkii, kuuluuko käyttäjä rooliin, jolla on lupa kutsua metodia 56

Java EE-sovellusten kehittäminen 57

Java EE-sovelluskehitys Liiketoiminta Sovelluskehitys Sovelluksen kehittämisprosessi, iterointi Tekniikat Java Java EE Suunnittelumallit UML.NET 58

Java EE:n suunnittelumallit suunnittelumallit ovat hyväksi havaittuja ratkaisuja yleisiin ongelmiin ohjelmistosuunnittelun uudelleenkäyttöä tarjoavat yhteisen sanaston ohjelmiston suunnitteluun 59

MVC-suunnittelumalli Graafisen käyttöliittymän omaavat sovellukset tehdään MVC mallin mukaan Model-osa esittää järjestelmän tietoa View-osa esittää, miten tieto näkyy käyttäjälle. Controller-osa ottaa vastaan käyttäjän syötteet, ohjaa ohjelman kulkua, päivittää mahdollisesti Model-osaa ja valitsee View-osan View User Model Controller 60

MVC Model 2 malli MVC-malli sovellettuna Web-sovellukseen Controller-osana servletti, modell-osana JavaBean komponentti ja view-osana JSP-sivu BROWSER 1 Request 5 Response (Controller) Servlet 3 (View) JSP instantiate 2 4 (Model) JavaBean Application Server Enterprise Servers/ Data Sources Lähde:JavaWord:Understanding JavaServer Pages Model 2 architecture 61

Lähde: Alur,Crupi,Malks. Core J2EE Patterns: Best Practices and Design Strategies. Prentice Hall / Sun Microsystems Press Web-kerros Liiketoimintakerros 62

Java EE:n plussat Avoimmuus: rajapinnat kaikkien saatavilla Hyvin suunniteltu, monipuolinen sovellusalusta Siirrettävyys: Win, Linux, Unix,... Java kattaa lähes koko ICT-kentän Osaajia löytyy Suuri kehittäjäyhteisö Monenlaisia sovellusalustoja ja välineitä Varteenotettavia ilmaisia, open source - välineitä 63

Java EE 5.0 osat 64

Java EE 5.0 65

Java EE 5.0:n osat JSP JavaServer Pages käyttöliittymäkomponentit Servlet EJB 3.0 Enterprise JavaBeans transaktionaaliset liiketoimintakomponentit Java Persistence API tietojen tallennus relaatiotietokantaan object / relaatio -muunnokset JTA Java Transaction API - Container tai sov.komponentti asettaa JTA:n avulla transaktioiden rajat 66

JSTL Java EE 5.0:n osat Java Standard Tag Library JSF Java ServerFaces Web sovellusten kehitysalusta JDBC Java DataBase Connection 67

Java EE 5.0:n osat RMI-IIOP - mahdollistaa RMI- ja Corba -metodikutsut JNDI Java Naming and Directory Interface - pääsy nimi- ja hakemistopalveluun JavaMail voi lähettää sähköpostia JMS Java Message Services - saadaan yhteys luotettavaan sanoman välitysjärjestelmään JCA - J2EE Connector Architecture - Java EE-yhteydet taustajärjestelmiin (yhteyksien poolaus, transaktioiden hallinta, tietoturva, säikeiden hallinta,...) 68

Java EE 5.0:n osat JAXP Java API for XML Parsing - XML-dokumenttien käsittely Javalla Web Services JAX-WS JAX-RPC SAAJ JAXR JMX Java Management Extension - Jáva EE-palvelinten hallinta 69