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:
- Niiden avulla voi koota hajautettuja sovelluksia yhdistämällä eri myyjien toimittamilla työkaluilla kehitettyjä komponentteja.
- Niiden avulla sovellusten kirjoitus on helppoa. Tapahtumien ja tilan hallinnan, monisäikeisyyden, resurssivarantojen määrityksen ja muiden monimutkaisten alatason ohjelmointirajapintojen yksityiskohdista ei tarvitse huolehtia. Tarvittaessa asiantuntevat ohjelmoijat kuitenkin pääsevät suoraan käsiksi alatason ohjelmointirajapintoihin.
- Ne voidaan kehittää kerran ja ottaa tämän jälkeen käyttöön monilla alustoilla tarvitsematta täydentää niitä uudelleen tai muuttaa niiden lähdekoodia.
- Bean-yrityskomponenttien käyttöä säätelevä EJB-määritys on yhteensopiva muiden Java-ohjelmointirajapintojen ja CORBAn kanssa. Se tuo myös yhteentoimivuutta bean-yrityskomponenttien ja muiden kuin Java-sovelluksien välille.
- 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.