EJB-arkkitehtuuri

Tässä ohjeaiheessa annetaan ylätason yleiskuvaus komponenttien hajautetusta arkkitehtuurista, joka on määritetty artikkelissa Sun Microsystems Enterprise JavaBeans (EJB) architecture specification.

Täydelliset Enterprise JavaBeans -määritykset ja tekniikan kuvaukset ovat käytettävissä java.sun.com -Web-sivustossa.

Bean-yrityskomponentit tuovat monia etuja sovellusten kehittäjille:

Bean-yrityskomponentit
Bean-yrityskomponentti on hajautetun, tapahtumaperustaisen yrityssovelluksen näkymätön komponentti. Tavallisesti bean-yrityskomponentteja otetaan käyttöön EJB-säilöissä ja niitä ajetaan EJB-palvelimilla. Niitä voi mukauttaa muuttamalla niiden käyttöönoton kuvaajia, ja niistä voi koota yhdessä muiden bean-komponenttien kanssa uusia sovelluksia. Bean-yrityskomponentteja on kolmea tyyppiä: istunnon bean-komponentteja, bean-oliokomponentteja ja sanomaperusteisia bean-komponentteja.
  • Istunnon bean-komponentit: Istunnon bean-komponentit ovat väliaikaisia bean-yrityskomponentteja. Ne voivat olla tilakkaita tai tilattomia. Istunnon tilakas bean-komponentti toimii yhden työaseman puolesta ja ylläpitää työasemakohtaisia istuntotietoja (joita kutsutaan keskustelutilaksi) monien metodikutsujen ja tapahtumien välillä. Se on olemassa vain yksittäisen työasema-palvelin-istunnon keston ajan. Istunnon tilaton bean-komponentti ei puolestaan ylläpidä lainkaan keskustelutilaa. Istunnon tilattomien bean-komponenttien säilöt sijoittavat ne varantoihin käsittelemään monia pyyntöjä monilta työasemilta.
  • Bean-oliokomponentit: Bean-oliokomponentit ovat bean-yrityskomponentteja, jotka sisältävät pysyvää tietoa ja jotka voidaan tallentaa erilaisiin pysyviin tietovarantoihin. Jokaisella bean-oliokomponentilla on oma tunnus. Omaa pysyvyyttään ohjaavia bean-oliokomponentteja kutsutaan bean-hallitun pysyvyyden (bean-managed persistence, BMP) bean-oliokomponenteiksi. Pysyvyytensä ohjauksen EJB-säilölleen ohjaavia bean-oliokomponentteja kutsutaan säilöhallitun pysyvyyden (container-managed persistence, CMP) bean-oliokomponenteiksi.
  • Sanomaperusteiset bean-komponentit: Sanomaperusteiset bean-komponentit ovat bean-yrityskomponentteja, jotka vastaanottavat ja käsittelevät JMS-sanomia. Toisin kuin istunnon bean-komponenteissa ja bean-oliokomponenteissa, sanomaperusteisissa bean-komponenteissa ei ole rajapintoja. Niitä voi käsitellä vain sanomien kautta, ja ne eivät ylläpidä lainkaan keskustelutilaa. Sanomaperusteisten bean-komponenttien avulla tietoa voidaan siirtää jonon ja kuuntelutoiminnon välillä asynkronisesti, ja ne erottavat sanomien käsittelystä ja liiketoimintalogiikasta huolehdinnan toisistaan.
Etätyöasemanäkymä
Etätyöasemanäkymän määritys tuli käyttöön EJB-versiossa 1.1. Bean-yrityskomponentin etätyöasemanäkymä on sijainnista riippumaton. Samalla Java-näennäiskoneella bean-komponentin ilmentymän kanssa ajettava työasema käyttää samaa ohjelmointirajapintaa bean-komponentin käsittelyyn kuin sellaisella eri Java-näennäiskoneella ajettava työasema, joka sijaitsee samassa tai eri järjestelmässä.
  • Remote-rajapinta: Remote-rajapinta määrittää ne bean-yrityskomponentin etäliiketoimintametodit, joita työasema voi kutsua.
  • Remote home -rajapinta: Remote home -rajapinta määrittää metodit, joita etätyöasemat käyttävät bean-yrityskomponenttiluokkien hakuun, luontiin ja poistoon.
Paikallistyöasemanäkymä
Paikallistyöaseman määritys on käytössä EJB-versiosta 2.0 lähtien. Toisin kuin etätyöasemanäkymä, bean-komponentin paikallistyöasemanäkymä on sijainnille alisteinen. Bean-yrityskomponentin paikallistyöasemanäkymän käyttöön tarvitaan sekä paikallinen työasema että bean-yrityskomponentti, jonka avulla paikallistyöasemanäkymä voi sijaita samassa Java-näennäiskoneessa. Tämän vuoksi paikallistyöasemanäkymällä ei ole samanlaista sijainnista riippumattomuutta kuin etätyöasemanäkymällä. Local-rajapinnat ja local home -rajapinnat tuovat tuen kevyeen käyttöön paikallistyöaseman bean-yrityskomponenteista käsin. Istunnon bean-komponentit ja bean-oliokomponentit voivat toimia tiiviinä parina työasemansa kanssa, minkä ansiosta metodien etäkutsuun tavallisesti liittyviä lisätoimia ei tarvita.
  • Local-rajapinta: Local-rajapinta on kevyt toteutus remote-rajapinnasta, mutta se on tarkoitettu paikallisille työasemille. Se sisältää liiketoimintalogiikan metodeja, joita paikallinen työasema voi kutsua.
  • Local home -rajapinta: Local home -rajapinta määrittää metodit, joita paikalliset työasemat käyttävät bean-yrityskomponenttiluokkien hakuun, luontiin ja poistoon.
Web-palvelun työasemaohjelman näkymä
EJB 2.1 -määrityksessä EJB-arkkitehtuurissa otettiin käyttöön Web-palvelujen tuki. Istunnon bean-komponentin työasema voi olla Web-palvelun työasema. Web-palvelun työasema voi käyttää istunnon sellaisen tilattoman bean-komponentin Web-palvelun työasemaohjelman näkymää, jolla on vastaava service endpoint -rajapinta.
Service endpoint -rajapinta
Istunnon tilattoman bean-komponentin service endpoint -rajapinta näyttää istunnon bean-komponentin toiminnot Web-palvelun lopetuskohtana. Web-palvelun Web Service Description Language (WSDL, Web-palvelun kuvauskieli) -asiakirja kuvaa Web-palvelua sanomia käyttävänä lopetuskohtien joukkona. WSDL-asiakirja voi sisältää istunnon tilattoman bean-komponentin service endpoint -rajapinnan yhtenä lopetuskohtanaan. Jotta aiemmin luotu istunnon tilaton bean-komponentti toisi käyttöön oikean rajapinnan, sitä voi muuttaa sisällyttämällä siihen Web-palvelun työasemaohjelman näkymän tai määrittämällä vastaavuuden service endpoint -rajapinnalle aiemmin luodusta WSDL-asiakirjasta.

Web-palvelun työasemaohjelmanäkymä on sijainnista riippumaton, ja sitä voidaan käyttää etäkutsujen kautta.

EJB-työasemaohjelman JAR-tiedosto
EJB-työasemaohjelman JAR-tiedosto on valinnainen JAR-tiedosto, joka voi sisältää työaseman rajapinnat, joita työasemaohjelma tarvitsee EJB JAR -tiedoston sisältämien bean-yrityskomponenttien työasemaohjelmanäkymien käyttöön. Jos EJB-moduulille ei luoda EJB-työasemaohjelman JAR-tiedostoa, kaikki työaseman rajapintaluokat ovat EJB JAR -tiedostossa. Oletusarvoisesti työympäristö luo EJB-työasemien JAR-projektit jokaiselle vastaavalle EJB-projektille.
EJB-säilö
EJB-säilö on ajonaikainen ympäristö, joka ohjaa yhtä tai useampaa bean-yrityskomponenttia. EJB-säilö ohjaa bean-yrityskomponenttiobjektien elinkaaria, järjestää hajautettuja tapahtumia ja toteuttaa objektien suojauksen. EJB-säilöt toimittaa yleensä EJB-palvelin, ja ne sisältävät joukon palvelimella ajettavia bean-yrityskomponentteja.
Käyttöönoton kuvaaja
Käyttöönoton kuvaaja on XML-tiedosto, johon sisältyy bean-yrityskomponentteja EAR- tai EJB JAR -tiedostossa. Se sisältää bean-yrityskomponenttien sisältöä ja rakennetta kuvaavia metatietoja sekä ajonaikaisia tapahtumia ja suojausta koskevaa tietoa EJB-säilöä varten.
EJB-palvelin
EJB-palvelin on ylätason prosessi tai sovellus, joka tuo käyttöön bean-yrityskomponentteja käyttävien palvelinsovellusten suoritusta tukevan ajonaikaisen ympäristön. EJB-palvelin toimittaa JNDI:llä käytettävissä olevan nimeämispalvelun, ohjaa ja järjestää resurssien varausta työasemasovelluksille, mahdollistaa pääsyn järjestelmän resursseihin ja toimittaa tapahtumapalvelun. EJB-palvelimen voi toimittaa esimerkiksi tietokanta- tai sovelluspalvelin.