tecnologia ejb

Upload: gerardo

Post on 24-Feb-2018

241 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 tecnologia EJB

    1/32

    1. INTRODUCCIN A LA

    TECNOLOGA EJB

  • 7/25/2019 tecnologia EJB

    2/32

    1.1 Desarrollo basado encomponenes

    Con la ecnolo!"a J#EE Enerpr$se Ja%aBeans es pos$ble desarrollar

    componenes &enterprise beans' ()e l)e!o p)edes re)$l$*ar +ensamblar en d$s$nas apl$cac$ones ()e en!as ()e ,acer para laempresa.

    Con la pro!ramac$-n or$enada a obeos p)edes re)$l$*ar clases/pero con componenes es pos$ble re)$l$*ar n ma+or n$%el de

    0)nc$onal$dades e $ncl)so es pos$ble mod$car esas0)nc$onal$dades + adaparlas a cada enorno de rabao par$c)lars$n ocar el c-d$!o del componene desarrollado.

  • 7/25/2019 tecnologia EJB

    3/32

    1.1 Desarrollo basado encomponenes

    C)ando es2s rabaando con componenes endr3s ()e ded$carle

    ana aenc$-n al despl$e!)e &deployment' del componene como as) desarrollo. Enendemos por despl$e!)e la $ncorporac$-n delcomponene a n)esro conenedor EJB + a n)esro enorno derabao &bases de daos/ ar()$ec)ra de la apl$cac$-n/ ec.'.

    El despl$e!)e se dene de 0orma declara$%a/ med$ane )n c,ero

    45L &descr$por del despl$e!)e/ deployment descriptor' en el ()ese denen odas las caracer"s$cas del bean.

  • 7/25/2019 tecnologia EJB

    4/32

    1.# 7er%$c$os proporc$onados por el conenedorEJB

    Los m3s $mporanes son los s$!)$enes8

    5aneo de ransacc$ones8 aper)ra + c$erre de ransacc$onesasoc$adas a las llamadas a los m2odos del bean.

    7e!)r$dad8 comprobac$-n de perm$sos de acceso a los m2odosdel bean.

    Conc)rrenc$a8 llamada s$m)l3nea a )n m$smo bean desde

    m9l$ples cl$enes. 7er%$c$os de red8 com)n$cac$-n enre el cl$ene + el bean en

    m3()$nas d$s$nas. Ges$-n de rec)rsos8 !es$-n a)om3$ca de m9l$ples rec)rsos/

    como colas de mensaes/ bases de daos o 0)enes de daos enapl$cac$ones ,eredadas ()e no ,an s$do rad)c$das a n)e%os

    len!)aes:enornos + s$!)en )s3ndose en la empresa.

  • 7/25/2019 tecnologia EJB

    5/32

    1.# 7er%$c$os proporc$onados por el conenedorEJB

    ;ers$senc$a8 s$ncron$*ac$-n enre los daos del bean + ablas de

    )na base de daos. Ges$-n de mensaes8 maneo de Ja%a 5essa!e 7er%$ce &J57'. Escalab$l$dad8 pos$b$l$dad de cons$)$r cl)sers de ser%$dores de

    apl$cac$ones con m9l$ples ,oss para poder dar resp)esa aa)menos repen$nos de car!a de la apl$cac$-n con s-lo a

  • 7/25/2019 tecnologia EJB

    6/32

    1.= >)nc$onam$eno de los

    componenes EJB

    7e basa en el rabao del conenedor EJB. El conenedor EJB es )n

    pro!rama Ja%a ()e corre en el ser%$dor + ()e con$ene odas lasclases + obeos necesar$os para el correco 0)nc$onam$eno de losenerpr$se beans

    1. El cl$ene ()e real$*a pe$c$ones al bean + el ser%$dor ()econ$ene el bean es3n eec)3ndose en m3()$nas %$r)ales Ja%a

    d$s$nas. Incl)so p)eden esar en d$s$nos ,oss.#. El cl$ene nuncase com)n$ca d$recamene con el enerpr$se

    bean/ s$no ()e el conenedor EJB proporc$ona )n EJBObject ()e,ace de $ner0a*.

    =. C)al()$er pe$c$-n del cl$ene se debe ,acer a ra%2s del obeoEJB/ el c)al sol$c$a al conenedor EJB )na ser$e de ser%$c$os + se

    com)n$ca con el enerpr$se bean.?. El bean real$*a las e$c$ones corres ond$enes a la base de

  • 7/25/2019 tecnologia EJB

    7/32

    1.= >)nc$onam$eno de los

    componenes EJB

  • 7/25/2019 tecnologia EJB

    8/32

    1.= >)nc$onam$eno de los

    componenes EJB

    Ejemplo de secuencia de llamadas:

    1. Cliente8 @Neces$o real$*ar )na pe$c$-n de compra al beanBroer.@

    2. EJBObject8 @Espera )n momeno/ neces$o comprobar )sperm$sos.@

    3. Contenedor EJB8 @7"/ el cl$ene $ene perm$sos s)c$enespara llamar al m2odo compra.@

    4. Contenedor EJB8 @Neces$o )n bean Broer para real$*ar )naoperac$-n de compra. no ol%$d2$s comen*ar la ransacc$-nen el momeno de $nsanc$aros.@

    5. Pool de beans8 @A %er... a ()$2n de nosoros le oca esa%e*@.

    . Contenedor EJB8 @a en!o )n bean Broer. ;3sale la pe$c$-ndel cl$ene.@

  • 7/25/2019 tecnologia EJB

    9/32

    1.? T$pos de beans

    La ecnolo!"a EJB dene res $pos de beans8

    Los beans de entidad:represenan )n obeo concreo ()e$ene e$senc$a en al!)na base de daos de la empresa.

    Los beans dirigidos por mensajes:p)eden esc)c,armensaes de )n ser%$c$o de mensaes J57. Los beansd$r$!$dos por mensaes no neces$an obeos EJBObecpor()e los cl$enes no se com)n$can n)nca con ellos

    d$recamene. Los beans de sesinrepresenan )n proceso o )na acc$-n

    de ne!oc$o. Normalmene/ c)al()$er llamada a )n ser%$c$odel ser%$dor deber"a comen*ar con )na llamada a )n beande ses$-n. 5$enras ()e )n bean de en$dad represena )nacosa ()e se p)ede represenar con )n nombre/ al pensar en)n bean de ses$-n deber"as pensar en )n %erbo.

  • 7/25/2019 tecnologia EJB

    10/32

    1.?.1 Beans de 7es$-n

    E$sen dos $pos de beans de ses$-n8 con esado + s$n 2l.

    Beans de sesin sin estado

    Los beans de ses$-n s$n esado no se mod$can con lasllamadas de los cl$enes. Los m2odos ()e ponen a d$spos$c$-nde las apl$cac$ones cl$enes son llamadas ()e rec$ben daos +de%)el%en res)lados/ pero ()e no mod$can $nernamene el

    esado del bean/

    C)ando )n cl$ene $n%oca )n m2odo de )n bean de ses$-n s$nesado/ el conenedor EJB ob$ene )na $nsanc$a de la reser%a.Tan prono como el m2odo erm$na s) eec)c$-n/ la $nsanc$adel bean es3 d$spon$ble para oros cl$enes.

  • 7/25/2019 tecnologia EJB

    11/32

    1.?.1 Beans de 7es$-n

    Los beans de ses$-n s$n esado se )san en !eneral paraencaps)lar procesos de ne!oc$o/ m3s ()e daos de ne!oc$o

    &area de los en$+ beans'. Esos beans s)elen rec$b$r nombrescomo 7er%$c$oBroer o GesorConraos para dear claro ()eproporc$onan )n con)no de procesos relac$onados con )ndom$n$o espec"co del ne!oc$o.

    Eemplos de bean de ses$-n s$n esado8

    Un componene ()e compr)eba s$ )n s"mbolo de compa

  • 7/25/2019 tecnologia EJB

    12/32

    1.?.1 Beans de 7es$-n

    Beans de sesin con estado

    Las !ariables de instanciadel bean almacenan daosespec"cos oben$dos d)rane la cone$-n con el cl$ene. Cadabean de ses$-n con esado/ por ano/ almacena el esadocon%ersac$onal de )n cl$ene ()e $nerac9a con el bean. Eseesado con%ersac$onal se mod$ca con0orme el cl$ene %areal$*ando llamadas a los m2odos de ne!oc$o del bean.

    La $neracc$-n del cl$ene con el bean se d$%$de en )n con)node pasos. En cada paso se a

  • 7/25/2019 tecnologia EJB

    13/32

    1.?.1 Beans de 7es$-n

    Eemplos de beans de ses$-n con esado8

    Un eemplo "p$co es )n carr$o de la compra/ en donde elcl$ene %a !)ardando )no a )no los "em ()e %a comprando.

    Un enerpr$se bean ()e reser%a )n %)elo + al()$la )n coc,een )n s$$o Feb de )na a!enc$a de %$aes.

    7e deber"a )sar )n bean de ses$-n con esado s$ se c)mplen

    las s$!)$enes c$rc)nsanc$as8 El esado del bean represena la $neracc$-n enre el bean +)n cl$ene espec"co.

    El bean neces$a manener $n0ormac$-n del cl$ene a lo lar!ode )n con)no de $n%ocac$ones de m2odos.

    El bean ,ace de $nermed$ar$o enre el cl$ene + oros

    componenes de la apl$cac$-n/ presenando )na %$sas$mpl$cada al cl$ene.

  • 7/25/2019 tecnologia EJB

    14/32

    1.?.# Beans de En$dad

    Los beans de en$dad modelan concepos o daos de ne!oc$o()e p)ede epresarse como nombres. A+)da a deerm$narc)3ndo )n concepo de ne!oc$o p)ede ser $mplemenado como)n bean de en$dad.

    ;erm$en a los desarrolladores encaps)lar las re!las de daos +de ne!oc$o asoc$adas con )n concepo espec"co.

    Las %ar$ables de $nsanc$a del bean represenan los daos enlas col)mnas de la base de daos. El conenedor debes$ncron$*ar las %ar$ables de $nsanc$a del bean con la base dedaos. Los beans de en$dad se d$0erenc$an de los beans deses$-n en ()e las %ar$ables de $nsanc$a se almacenan de0orma pers$sene.

  • 7/25/2019 tecnologia EJB

    15/32

    1.?.# Beans de En$dad

    Diferencias con los beans de sesin:

    Persistencia: Un bean de en$dad se !)arda en )nmecan$smo de almacenam$eno. ;ers$sene s$!n$ca ()e elesado del bean de en$dad e$se m3s $empo ()e lad)rac$-n de la apl$cac$-n o del proceso del ser%$dor J#EE.

    Los beans de en$dad $enen dos $pos de pers$senc$a8

    Persistencia Gestionada por el Bean&B5;/ Bean"#ana$ed Persistence' + Persistencia Gestionada por elContenedor&C5;/ Container"#ana$ed Persistence'.

  • 7/25/2019 tecnologia EJB

    16/32

    1.?.# Beans de En$dad

    Acceso compartido: Cl$enes p)eden compar$r beans deen$dad/ con lo ()e el conenedor EJB debe !es$onar elacceso conc)rrene a los m$smos + por ello debe )sarransacc$ones.

    Clave primaria: Cada bean de en$dad $ene )n$den$cador 9n$co. Ese $den$cador 9n$co/ o cla!e

    primaria/ perm$e al cl$ene local$*ar a )n bean de en$dad

    par$c)lar. Relaciones: Un bean de en$dad p)ede esar relac$onado

    con oros EJB. Las relac$ones se $mplemenan de 0ormad$s$na se!9n se es2 )sando la pers$senc$a maneada porel bean o por el conenedor.

  • 7/25/2019 tecnologia EJB

    17/32

    1.?.= Beans d$r$!$dos por

    mensaesEsos beans perm$en ()e las apl$cac$ones J#EE rec$banmensaes J57 de 0orma as"ncrona. As"/ el ,$lo de eec)c$-n de)n cl$ene no se blo()ea c)ando es3 esperando ()e secomplee al!9n m2odo de ne!oc$o de oro enerpr$se bean.

    Los mensaes p)eden en%$arse desde c)al()$er componeneJ#EE &)na apl$cac$-n cl$ene/ oro enerpr$se bean/ o )ncomponene Feb' o por )na apl$cac$-n o s$sema J57 ()e no

    )se la ecnolo!"a J#EE.Las %ar$ables de $nsanc$a de esos beans p)eden coneneral!9n esado re0er$do al maneo de los mensaes de loscl$enes. ;or eemplo/ p)eden conener )na cone$-n J57/ )nacone$-n de base de daos o )na re0erenc$a a )n obeo

    enerpr$se bean

  • 7/25/2019 tecnologia EJB

    18/32

    1. Desarrollo de beans

    Consa de los s$!)$enes pasos8

    1. Escr$be + comp$la la clase bean ()e con$ene a odos losm2odos de ne!oc$o.

    #. Escr$be + comp$la las dos $ner0aces delbean8 %ome+ componente.

    =. Crea )n descr$por 45L del despl$e!)e en el ()e se descr$ba()2 es el bean + c-mo debe manearse. Ese c,ero debe

    llamarse ebHar.ml.?. ;on la clase bean/ los $ner0aces + el descr$por 45L deldespl$e!)e en )n c,ero EJB JAR . ;odr"a ,aber m3s de )nbean el m$smo c,ero EJB JAR/ pero n)nca ,abr3 m3s de )ndescr$por de despl$e!)e.

    . Despl$e!a el bean en el ser%$dor )sando las ,erram$enas

    proporc$onadas por el ser%$dor de apl$cac$ones.

  • 7/25/2019 tecnologia EJB

    19/32

  • 7/25/2019 tecnologia EJB

    20/32

    1..# Iner0aces componente+ %ome

    Una %e* $mplemenado el c,ero 7al)doBean.a%a/ en el ()e sedene el enerpr$se bean/ debes pasar a den$r las$ner0aces componente+ %omedel bean.

    amos a llamar a esas $ner0aces 7al)do + 7al)doome. Esas$ner0aces son las ()e deber3 )sar el cl$ene para com)n$carse conel bean.

  • 7/25/2019 tecnologia EJB

    21/32

    1..# Iner0aces componente+ %ome

    El m2odo creae&' se corresponde con elm2odo ebCreae&' den$do en la clase 7al)doBean/ + debede%ol%er el $po 7al)do de la $ner0a* componente. La $ner0a*amb$2n %a a ser )na $ner0a* remoa +/ por ano/ debe declarar laecepc$-n RemoeEcep$on.

    C)ando se despl$e!a )n bean en el conenedor EJB/ 2se crea dosobeos ()e llamaremos EJBObec + EJBome ()e $mplemenar3nesas $ner0aces. Esos obeos separan el bean del cl$ene/ de0orma ()e el cl$ene n)nca accede d$recamene al bean. As" elconenedor p)ede $ncorporar s)s ser%$c$os a los m2odos dene!oc$o.

  • 7/25/2019 tecnologia EJB

    22/32

    1..= Descr$por del despl$e!)e

    El descr$por dedespl$e!)e es )nc,ero 45L en el ()ese dealla odo lo ()eel ser%$dor neces$asaber para !es$onarel bean.

    El nombre de esec,ero s$empre debeser8ebHar.ml.

  • 7/25/2019 tecnologia EJB

    23/32

    1..? >$c,ero ebHar

    En el d$recor$o 5ETAHIN> se $ncl)+e el DD. El reso del c,ero JARcorresponde al d$recor$o den$do por el paca!e espec$al$sa + a losres c,eros .class()e denen el bean.Ese c,ero es el ()e se desple!ar3 en el ser%$dor de apl$cac$ones.;)edes nombrar a ese c,ero con el nombre ()e ()$eras. Unacos)mbre basane )sada es llamarlo KnombreHeb.ar/ s$endoKnombre el nombre del bean o de la apl$cac$-n. En n)esro caso/podr"amos llamarlo sal)doHeb.ar.

  • 7/25/2019 tecnologia EJB

    24/32

    1.. Despl$e!)e del bean

    El despl$e!)e conlle%a dos acc$ones8 la pr$mera es darle al bean )nnombre eerno &)n nombre JNDI/ ,ablando m3s 2cn$camene' para()e los cl$enes + oros beans p)edan re0er$rse a 2l. En n)esro caso/le daremos como nombre @7al)doBean@. La se!)nda acc$-n es la delle%ar al ser%$dor de apl$cac$ones el c,ero EJB JAR.

    E$sen dos escenar$os de s$ ,as desarrollado el bean en el m$smo,os ()e se enc)enra el ser%$dor de apl$cac$ones o en )n ,osd$s$no.

    El pr$mer caso s)ele s)ceder c)ando es3s rabaando en modo depr)eba + es3s dep)rando el desarrollo.

    El se!)ndo caso s)ele s)ceder c)ando +a ,as dep)rado el bean +

    ()$eres desple!arlo en modo de prod)cc$-n8 Mes recomendable nodesarrollar + dep)rar en el m$smo ,os en el ()e se enc)enra el

  • 7/25/2019 tecnologia EJB

    25/32

    1. Cl$enes de los beans

    ..

  • 7/25/2019 tecnologia EJB

    26/32

    1. Cl$enes de los beans

    B3s$camene/ el cl$ene debe real$*ar s$empre las s$!)$enes areas81. Acceder al ser%$c$o JNDI &l"nea 1? + l"neas #H=?'/ oben$endo el

    coneo JNDI $n$c$al. ;ara ello se llama a la0)nc$-n a%a.nam$n!.In$$alCone&'.

    #. Local$*ar el bean proporc$onando a JNDI s) nombre l-!$co &l"nea1'. En ese caso/ el nombre JNDI del bean es 7al)doBean.

    =. acer )n cas$n! del obeo ()e de%)el%e JNDI para con%er$rlo en)n obeo de la clase 7al)doome &l"neas 1 + 1P'. Anes de ,acerel cas$n! ,a+ ()e obener )n obeo Ja%a llamando alm2odo ;oableRemoeObec.narroQ&' por()e esamos rec$b$endode JNDI )n obeo ()e ,a s$do ser$al$*ado )sando el proocolo IIO;.

    ?. Llamar al m2odo creae&' del obeo ,ome para crear )n obeo de$po 7al)do &l"nea 1'.

    . Llamar a los m2odos de ne!oc$o del bean &l"nea #1'

  • 7/25/2019 tecnologia EJB

    27/32

  • 7/25/2019 tecnologia EJB

    28/32

    1.S E%ol)c$-n de laespec$cac$-n EJB

    En 5ar*o de 1S 7)n5$cros+sems propone laespec$cac$-n 1. 8&'a ar(uitectura Enterprise

    Ja!aBeans es una ar(uitectura decomponentes para el desarrollo ydesplie$ue de aplicaciones deempresa distribuidas y orientadasa objetos. 'as aplicaciones escritasusando la ar(uitectura Enterprise

    Ja!aBeans son escalables)

    transaccionales y se$uras paramulti usuarios. Estas aplicacionespueden escribirse una !e*) y lue$odesple$arse en cual(uier ser!idor(ue soporte la especi+caci,nEnterprise Ja!aBeans.-

  • 7/25/2019 tecnologia EJB

    29/32

    1. enaas de la ecnolo!"a EJB

    implicidad. Deb$do a ()e el conenedor de apl$cac$ones l$bera alpro!ramador de real$*ar las areas del n$%el del s$sema/ la escr$)rade )n enerpr$se bean es cas$ an senc$lla como la escr$)ra de )naclase Ja%a. El desarrollador no $ene ()e preoc)parse de emas den$%el de s$sema como la se!)r$dad/ ransacc$ones/ m)l$H,read$n! ola pro!ramac$-n d$sr$b)$da.

    Portabilidad de la aplicacin. Una apl$cac$-n EJB p)ede serdesple!ada en c)al()$er ser%$dor de apl$cac$ones ()e sopore J#EE.

  • 7/25/2019 tecnologia EJB

    30/32

    1. enaas de la ecnolo!"a EJB

    Re!sabilidad de componentes. Una apl$cac$-n EJB es3 0ormadapor componenes enerpr$se beans. Cada enerpr$se bean es )nblo()e de consr)cc$-n re)sable.

    Posibilidad de constr!ccin de aplicaciones complejas. Laar()$ec)ra EJB s$mpl$ca la consr)cc$-n de apl$cac$ones compleas.Al esar basada en componenes + en )n con)no claro + b$enesablec$do de $ner0aces/ se 0ac$l$a el desarrollo en e()$po de laapl$cac$-n.

    eparacin de la lgica de presentacin de la lgica denegocio. Un enerpr$se bean encaps)la )n proceso/ ,ac$2ndolo$ndepend$ene de la l-!$ca de presenac$-n. Esa separac$-n ,acepos$ble desarrollar d$s$nas l-!$cas de presenac$-n para la m$sma

    l-!$ca de ne!oc$o.

  • 7/25/2019 tecnologia EJB

    31/32

    1. enaas de la ecnolo!"a EJB

    Desplieg!e en m!c"os entornos operativos. Al deallarseclaramene odas las pos$b$l$dades de despl$e!)e de las apl$cac$ones/se 0ac$l$a el desarrollo de ,erram$enas ()e as$san + a)oma$cenese proceso. La ar()$ec)ra perm$e ()e los beans de en$dad seconecen a d$s$nos $pos de s$semas de bases de daos.

    Desplieg!e distrib!ido. La ar()$ec)ra EJB ,ace pos$ble ()e lasapl$cac$ones se despl$e!)en de 0orma d$sr$b)$da enre d$s$nosser%$dores de )na red.

    #nteroperabilidad entre aplicaciones. La ar()$ec)ra EJB ,acem3s 03c$l la $ne!rac$-n de m9l$ples apl$cac$ones de d$0erenes%endedores. El $ner0a* del enerpr$se bean con el cl$ene s$r%e como

    )n p)no b$en den$do de $ne!rac$-n enre apl$cac$ones.

  • 7/25/2019 tecnologia EJB

    32/32

    1. enaas de la ecnolo!"a EJB

    #ntegracin con sistemas no$Java. Las A;Is relac$onadas/ como lasespec$cac$ones Connecor + Ja%a 5essa!e 7er%$ce &J57'/ as" comolos beans maneados por mensaes/ ,acen pos$ble la $ne!rac$-n de

    los enerpr$se beans con s$semas no Ja%a/ como s$semas ER; oapl$cac$ones ma$n0rames.

    Rec!rsos ed!cativos y "erramientas de desarrollo. El ,ec,o de()e la espec$cac$-n EJB sea )n es3ndar ,ace ()e e$sa )nacrec$ene o0era de ,erram$enas + 0ormac$-n ()e 0ac$l$a el rabaodel desarrollador de apl$cac$ones EJB.