)soma-, *nternet s +++-ob(ekt,mok elrse# J2EE (Java 2 Platform, Enterprise Edition): Szabvnyokat definil tbbrteg vllalati alkalmazsok fejlesztshez. Egyszersti a vllalati alkalmazsokat egyrszt gy, hogy szabvnyostott modlris kom!onenseket tmogat szolgltatsok halmazval. "z alkalmazsok mkdsnek#viselkedsnek szmos rszlett szablyozza atomatiksan $ sszetett !rogramozs nlk%l. " &ava nyelv s krnyezet az jrafelhasznlhat' s gyakran szabadon elrhet( !rogramk'dokkal s !lda!rogramokkal altmasztva forradalmastotta a )ebla!ok, )eb ala! szolgltat'k s )eb rhzak esetn egsz )eb !ortlok ksztst. " &ava az elmlt *$+ vben a )ebla!okat megjelens%kben attraktvabb tev( a!!letek alkalmazsn tl betrt a szerverek !ia,ra is. " &ava is -,sak egy. !rogramozsi nyelv a sok kz%l, amelyen kszthet(k szerveroldali alkalmazsok is gyangy, mint ms !rogramozsi nyelveken. Szerveroldali termkek f( jellemz(je/ 01S 2 30ransa,tion 1er Se,ond4 " szerveroldali 5otS!ot &ava 6irtlis 7! megjelensvel 3a 5otS!ot virtlis g!nek a szerverek ignyeihez alaktott vltozata4, valamint az egyre hatkonyabb tranzak,i' kezelsi te,hnol'ginak ksznhet(en a vllalatok a teljes szerveroldali megoldskat &ava ala!okon !t3het4ik fel. Egyedi fejleszts, vagy szerveroldali jrafelhasznlhat' kom!onensekb(l val' fel!ts 3a kom!onensek s az ezeket hatkonyan fttatni k!es kontnerek sem ol,s'ak $ 8$9 milli' :t szerverenknt, de sok szz !rogramoz' tbbvi mnkjval fejlesztettk4. "z %zleti &ava alkalmazsok egyszeren %zleti mnkafolyamatokat im!lementl', elosztott !rogramegysgek. 0gabb rtelemben ltalban %zleti ,llal rt, szmt'g!es hl'zatok feletti elosztott alkalmazsok. Jellemz-i. ;ltalban heterogn hl'zatokon mkdnek. <szt vehetnek benne 1=$k, de kz!onti sz!erszmt'$g!ek is 3!l./ >? 2 nmet vasttrsasg4. Egy lnyeges, kzs elem a 0=1#@1 !rotokoll,sald elemei 30=1, @1, de lehet ms is A"1 vagy 71<S4 " sokfle o!er,i's rendszeren kv%l a vllalati adatbzisok adatait is magba foglalja. "z adat nagy rtk, biztostani kell a &ava alkalmazsb'l val' el$rst 3adatbzis kom!onensek tranzak,i'$k!es elrse, de lehet ms alkalmazsok hl'zati elrse is4. "z alkalmazsok gyakran tlbonyoltottak, tlthatatlanok, aminek kvetkezmnyeknt a hibk szma rohamosan n(het. o /om&onensek 2 olyan el(re gyrtott alkalmazs elemek, amelyekb(l fel!thet%nk sszetettebb alkalmazsokat. - &ava kliensoldali kom!onens modell/ &ava?eans - &ava szerveroldali/ Enter!rises &ava?eans o /om&onens mo"ell/ egy feladat $ egy kom!onens !l./ helyesrs ellen(rzs 5itelkrtys fizets 2 mindegy mit, milyen boltban Egy knyvesbolt/ $ r,ikk megjelent( $ bevsrl'kosr $ %gyfladat kezel( $ hitelkrtys fizetst tmogat' kom!onens " !rogramoz'i mnka a -fel!aramterezst. jelenti. o " kom!onens s az objektm k%lnbz(, br sok tekintetben hasonl'. Egy kom!onens tbb egy%tt$mkd( objektmot tartalmazhat. 3fekete doboz4 o Bin,s rtelme a kom!onensek esetben az rklsnek, mert nem ismerj%k a kom!onens bels( mkdst, gy a mkds megvltoztatsa nem lehet rtelmes ,l. o Cg az objektmorientlt !rogramozs a !roblma val's letb(l vett objektmokkal val' modellezst jelenti, ezekre trtn( dekom!oz,i'jt vgezz%k, addig a kom!onens$orientlt !rogramozs alatt ezen objektmok rtelmes -forgat'knyvek. megval'stsra alkalmas ,so!ortba szervezst rtj%k. 0 J2EE te)1nol%ia le2ontosabb elemei. 0 333 elrsre 1asznl1at% osztl'ok Ezek a hagyomnyos &ava s!e,ifik,i'nak is rszt k!ezik. :eladatk a )ebszervereken trolt inform$,i'k strktrlt elrsnek segtse &ava nyelv al$ kalmazsokb'l. " &ava krnyezetnek rg'ta szabvnyostott rsze/ " java.net ,somag 456, 4567onne)tion s ennek leszrmazott osztlyai, valamint az elrt inform,i'kat rtelmez( kiegszt( !rotokoll$ s tartalomkezel( osztlyok. 3 :ontos a 5001 !rotokoll s C@CE$s!e,ifik,i' a kliensoldal, szerver$kliens ar,hitektra szem!ontjb'l4 Java szervletek 8 a +ebszerverol"ali Java " szervletek olyan &ava !rogramok, amelyek a )eb szerverben 3szervlet kontnerben4 ftnak, s a klienseknek 2 5001 hl'zati !rotokoll felett$ k%ln$fle alkalmazsf%gg( szolgltatsokat nyjtanak. " szervletek krs$vlasz !rotokollokat val'stanak meg. " &DEE s!e,ifik,i' egy ltalnos me,hanizmst biztost tetsz(leges krs$vlasz ala! szolgltatsok, &ava szervletekkel trtn( im!lementlsra. "lkalmazsk hatkonysgnak ala!ja az lland' elrhet(sg s az egyms tni tbb kliens kiszolglsnak k!essge. 35001 ala! 2 elterjedt4. Java 9erver :aes te)1nol%ia " &S1 te,hnol'gia a &ava szervlet te,hnol'gia kiterjesztse. " &S1 egy sajt ler' nyelvet hasznl )ebla!okba gyazott alkalmazsi logika 3!rogram$k'd4 lersra, melynek segtsgvel a szerver ltal generlt )ebla! szerkezete s tartalma knnyen gazdagthat' k%lnfle inform,i'forrsokb'l szrmaz' adatokkal. @tt is lnyegben a )ebszerverek ltal rtelmezhet( 50CE$la!ok el(lltsra megy ki a -jtk., de a kzbeiktatott FCE$szer rszletekkel mindez sokkal elegnsabban, egyszerbben, kevesebb &ava !rogramozsi mnkval. &ava szervlet s &S1 dinamiks )eb$ala! krnyezet ala!jaknt szolglnak, melynek f( jellemz(je a !latformf%ggetlensg, az alkalmazslogika s a megjelents egyrtelm elk%lntse. @ly m'don az alkalmazs kliens$oldali tele!tsi s szoftverignye minimalizlhat', mivel a kliensoldal nem tartalmaz &ava k'dot, ,s!n 50CE oldalak feldolgozsra, esetleg &avaS,ri!tet is tartalmaz' )ebla!ok feldolgozsra k!es )eb bngsz(re van sz%ksg%nk az alkalmazsokhoz. 0z ;<6 te)1nol%ia "z FCE 3EGtensible Cark! Eangage4 szintaktikai szablyok s irnyelvek sszessge, melyek lehet($v teszik hordozhat' adattartalom ler' nyelvek ltre$ hozst. " &DEE megfelel( osztlyokat biztost FCE$lel lert inform,i'k rtelmezsre s generlsra. "z FCE ti!iks felhasznlsi ter%lete az inform,i'$ ,sere megszervezse. "z FCE$ben az inform,i'k egy strktrlt, szveges formban lesznek lerva, ami knnyen tvihet( a leg$k%lnflbb szmt'g! ar,hitektrk kztt. 5ordozhat' inform,i' lers 2 hordozhat' &ava !r. 0 J=>7 te)1nol%ia " &>?= te,hnol'gia az adatbzisok elrsre szolgl &ava !rogramokb'l. Eehet(v teszi SHE lekrdezsek s ms SHE adatdefinil' s adatmani!ll' tastsok k%ldst SHE nyelvet tmogat' adat$bzisok fel. Eehet(v teszi a lekrdezsek eredmnynek knyelmes feldolgozst, f%ggetlen%l att'l, hogy a lekrdezs egy vagy tbb sort adott$e vissza, s lehet(sget nyjt egyb SHE tastsok eredmnynek feldolgozsra. Egyszeren hasznlhat' 2 ,sakI ?voli met%",s1vs (5<*-5emote <et1o" *nvo)ation) "z <C@ ,somag lehet(v teszi a tvoli s elosztott hl'zati objektmelrst. " tvoli objektmok elrse gyanolyan szintaGissal trtnhet 3&ava m'don4, mint a helyi objektmnl. " modellje az n. tvoli objektm absztrak,i'ra !%l. Ezen objektmok met'dsait ms virtlis g!ekr(l 3vagyis tvolr'l4 is el lehet rni. " kzeli s tvoli met'dshvs kztt azrt lnyeges eltrsek vannak. Jihasznlja a &ava nyelv s @#K objektmok tlajdonsgait, &ava alkalmazsok kztt val'sthat' meg 3hagyomnyos &<C1 felett, @@K1 felett ms$ =K<?"$ objektmok met'dsai is elrh.4 Enter&rise Java>eans mo"ell Egy E&? kom!onens egy j'l definilt %zleti objektmot 3!l. adatbzis bejegyzsek elrst, m'dostst4 vagy %zleti logikt, %zleti mnkafolyamatot val'$st meg. Ezeket a kom!onenseket hasznlhatjk a szerveroldali &ava alkalmazsok knnyebb megrsra. "z E&? ar,hitektra biztostja a hatkony %temezst, mem'riakezelst, tranzak,i' kezelst, a biztonsgi infrastrktrt, elosztottsgb'l ered( !roblmk megoldst. Egy E&? kom!onens egy tvoli objektm, amely mkds szem!ontjb'l lehet/ o %zleti logikt megval'st' 3session bean4 o adatokat re!rezentl' kom!onens 3entity bean4 o %zenet vezrelt bean 3message driven bean4 "z E&? kom!onensek egy E&?$fttat' krnyezetben vannak 3E&? kontner, E&? szerver4. ?ranzak)i% kezels a Javban8Java ?r# 0:* (J?0) Elosztott tranzak,i'k kezelsre szolgl' eszkzt s!e,ifikl. " tranzak,i'k f%ggetlen hl'zati kom!onensek mnkjnak az sszehangolsra szolglnak. ;ltalnos jellemz(k/ o Kszthatatlansg 2 egy%tt lehet lla!otot vltoztatni o Jonziszten,ia $ ha nem lehet elrni, visszallts o Szerializlhat'sg 2 !rhzamosan ft' tranzak,i'k nem befolysolhatjk egymst o 1erziszten,ia $ sikeres tranzak,i' befejezse tn a m'dostsok vglegesek kell legyenenek 3rendszersszeomls tn is4 Tbbrteg alkalmazsmodell: !l"zati kap#solat modell$e: o 0z sszekttets ala&@ ?7:-re &Al- kliens-szerver ka&)solat menete. %zerver oldal: L. lefoglal egy 0=1 !ort$ot amelyen vrni fogja a kliensek ka!,sol'dsi krseit 3!ort kzzttel4 D. a szerver vr egy kliens ka!,solat felvteli krelmre M. egy kliens ka!,solat felvteli krsre felveszi vele a ka!,solatot s kiszolglja azt 8. mitn a szerver kiszolglta 3elindtotta a kiszol$gl' folyamatot4 j klienst vr 3D.!ontt'l4 &liens oldal: L. lefoglal egy 0=1 !ort$ot amelyen majd felveszi a ka!,solatot a szerverrel, D. ka!,sol'dik a szervert fttat' g!hez azon bel%l a !orthoz, amelyen a szerver vr, M. a kommnik,i's vonalon adatokat fogadhat, illetve k%ldhet a szervernek, 8. lebontja a szerverrel fel!tett ka!,solatt 3visszadja az o!. rendszernek, hogy ms folyamat is hasznlhassa4. " kliens$szerver kommnik,i' fll$d!leG. o Bsszekttets mentes ka&)solat. Cinden rsztvev(nek ltre kell hoznia egy N>1 kommnik,i's !ortot, ahol fogadhat s k%ldhet ,somagokat. " rsztvev(knek egyms ,mt kell ismerni, tetsz(leges azonost'j N>1 !ortot hasznlhatnak. Bem garantlt a ,somag megrkezse, esetleg tbb !ldnyban rkezik meg 2 nehzkesebb lehet a hasznlata. =somagmret korlt 2 egy @1 ,somagba bele kell frnie 3Ethernet E"B$on L,9 k?4 Java'net #somag: O.J. ala! szerver kommnik,i's vg!ontokat 9erver9o)ket osztly im!lementlja. Jonstrktorok/ o !ortszm o !ortszm, sorhossz o !ortszm, sorhossz, interfsz,m o @KEG,e!tion kivtel, ha nem siker%l 6rakoz' klienssel a ka!,solat felvtel a))e&t 2 met'ds ami 9o)ket osztlybeli objektmot ad vissza 3egy hl'zati kommnik,i's ,satorna et*n&,t9tream s etC,t&,t9tream met'dsokkal az @#K ,satorna elrshez4 Szerveralkalmazs lezrsa )lose met'ds. 3" 0=1 az adatokat bjtfolyamknt kezeli4 O.J. ala! kliensalkalmazs szmra sz%ksges szolgltatsok 2 9o)ket osztly. 3Ez kommnik,i's vg!ont absztrak,i', a szerver is ezt hasznlja4. " konstrktor argmentmknt megadott g! valamelyik kommnik,i's vg!ontjval 30=1 v. N>14 td ka!,sol'dni. 0ovbbi met'dsai/ o et*net0"ress o et6o)al:ort o et:ort O.J. mentes kommnik,i's ka!,solat =ataram9o)ket osztly$kommnik,i's vg!ont =ataram:a)ket osztly$k%ldend( adat,somag absztrak,i'jt im!lementlja 2ilyen objektmot kell ltrehozni az adat k%ldshez. &ellemz(i/ o Caga az elk%ldend( adat o "z elk%ldend( adat hossza o " ,lg! @nternet ,me o " ,l N>1 !ort azonost'ja " sen" met'ds meghvsakor az o!er,i's rendszer elk%ldi az %zenetet. O.J. mentes adat,somag fogadsa o =ataram9o)ket objektm ltrehozs 2!ortszm o =ataram:a)ket objektm ltrehozsa megfe$lel(en nagy adatter%lettel o =ataram9o)ket - re)eive met'dsnak hvsa tn addig vr amg legalbb egy ,somag nem rkezik s az els( megrkez( ,somagot fogja visszaadni 3az argomentmban megadott >atagram1o,ket objektmban4 %ervlet: " servlet egy s!e,ilis &ava !rogram, amely egy )eb szerverrel szorosan egy%ttmkdve lehet(v teszi 50CE oldalak dinamiks ltrehozst s !aramterezst k%lnbz( t$viteli 3!ldl 50014 !rotokollokon kereszt%l. Egy servlet a )eb szervernek gyanaz, mint az a!!let a bngsz(nek 2,sak nem rendelkezik grafiks fel%lettel 3nin,s is sz%ksg r4. " )ebszerver deleglja az oldalkrst a servlet fel, majd a servlet ltal generlt oldalt tovbbtja a kliens fel. " javaG.servlet ,somag tartalmazza az sszes servlet$s!e,ifiks osztlyt s interfszt. " AAA$n elterjedt, a klienssel val' kommnik,i'ra 5001 !rotokollt hasznl' servletek mindig a javaG.servlet.htt!.5tt!Servlet leszrmazottai. " javaG.servlet.htt! al,somag a 5001$hez ka!,so$l'd' s!e,ilis szolgltatsok elrst biztost' ti!$ sokat tartalmazza. De(leszt-krn'ezet. Servleteket ,sakis olyan )ebszervereken lehet hasznlni, melyek tmogatjk a servlet "1@$t s k!esek &ava !rogramok fttatsra. Dor"ts. " lefordtott servlet bjtk'djt a )ebszerver el(re megadott alknyvtrba kell msolni. Ez a )ebszerver konfigr,i'jt'l f%gg, de ltalban egy servlets nev alknyvtrat szoktak hasznlni. D,ttats. egy servlet$ egy )ebszerver, a servlet fttatsa a )ebszerver feladata. " krt N<E ala!jn knnyen meglla!that' 2 tvonal 3 #servlet4 P servlet neve " kliens krst a krt servlet szolglja ki, a )ebszerver !edig a servlet vlaszt adja vissza 50CE oldalknt. " kliens szemszgb(l nin,s k%lnbsg egy statiks 50CE oldal, illetve egy servletet megad' N<E hvsa kztt 3,sak a krt N<E4. E' servlet let)ikl,sa, a servlet let,iklsnak esemnyei/ o Servlet !ldnyostsa. o " servlet kiszolgl egy kliens krst. o Servlet megsz%ntetse. Ezen esemnyekhez tartoz' met'dsokat a Servlet interfsz s!e,ifiklja s a )ebszerver hvja meg. 9ervlet &l"n'ostsa/ Citn a )ebszerver ltrehozta a servlet egy !ldnyt, meghvja annak/ &,bli) voi" init(9ervlet7on2i) met'dst 2 menti a !aramter objektmot s meghvja a az init !aramter nlk%li vltozatt 2 nek%nk elg a !aramter nlk%li vltozatot fel%ldefinilni 2 knyelmi szem!ont. " !ld$nyosts a )ebszerver indlsakor vagy az els( krs kiszolglsa el(tt trtnik. ;ltalban egy servletet egy$szer !ldnyost. " fejleszts sorn a servlet egy jabb !ldnynak ki!r'blsa el(tt rdemes lehet jraindtani a )ebszervert. 3hasonl'/ ?ro)ser 2 a!!let.,lass4 ini,ializlskor rdemes a servlet teljes ftsa alatt hasznlt mez(ket belltani, !ldl adatbzis kezel( servlet esetn itt rdemes megnyitni az adatbzis$ ka!,solatot. 5a nem siker%l, akkor ezt jelezni a servlet fttat' krnyezetnek/ 4navailableEEe&tion kivltsval. 9ervlet&aramterek. servletek konfigrlsra, illetve ini,ializlsra lehet hasznlni. Cegadsa !aramternvQ!aramterrtk. o Servlet neve/ servletnv.code=servlet osztlynak teljes neve ha nem adjk meg, akkor a servlet osztlynak a nevvel fog megegyezni o Servlet ini,ializ,i's !aramterei/ servletnv.initArgs=paramterek a paramternv=paramterrtk rtk!rok vessz(vel elvlasztott listja, egy sorba rva. /liens kiszollsa. Citn a )ebszerver ini,ializlta a servlet egy !ld$nyt, az k!ess vlik a kliens kiszolglsra. 5a a )ebszerver meglla!totta, hogy a krs egy servletet ,loz meg, meghvja annak &,bli) voi" servi)e(9ervlet5eF,est, 9ervlet5es&onse) met'dst. "z els( !aramterknt ka!ott objektmon kereszt%l a kliens$szerver a msodikon a szerver$kliens kommnik,i' val'sthat' meg. " servlet gy szolgl ki egy kliens krst, hogy feldolgozza az eset$leges ka!ott !aramtereket, melyek rendszerint 50CE rla!ok hasznlata esetn az rla!ok mez(i$nek rtkeit tartalmazzk, majd dinamiksan legene$rl 3ltalban4 egy 50CE oldalt, melyet a kliens bngsz(!rogram megjelent. " !aramter neve a 50CE oldal rla! beviteli mez(jnek nevvel 3B"CE attribtm4 egyezik meg, rtke !edig a beviteli mez( tartalmt veszi fel. 9ervlet meszAntetse. 5a nin,s sz%ksg tovbb az adott szervlet szolgltatsaira a )eb szerver megsz%ntetheti a servlet !ldnyt. " servlet fttat'krnyezet megvrja, amg az adott servletet hasznl' minden mg ft' kliens ki$szolgl' !rogramszl vget r 3vagy lejr egy bel$ltott id(tartam, MR se,4 s meghvja a servlet &,bli) voi" "estro'() met'dst. Ezen met'ds meghvsa tn mr nem fog egyik let,ikls met'ds sem meghv'dni. 5a esetleg jra sz%ksg lenne a mr megsz%ntetett servletre, akkor az a servlet j !ldnynak ltrehozst s ini,ializlst jelenti.