j2ee keretrendszerek vizsgálata

17
J2EE keretrendszerek vizsgálata Önálló laboratórium, 2008 tavasz Farkas Gábor, OTX0QR Konzulens: Imre Gábor

Upload: timon-mcmahon

Post on 30-Dec-2015

28 views

Category:

Documents


0 download

DESCRIPTION

J2EE keretrendszerek vizsgálata. Önálló laboratórium, 2008 tavasz Farkas Gábor, OTX0QR Konzulens: Imre Gábor. Kiindulás. Üzleti alkalmazásaink: Törzsadatok és kapcsolataik (CRUD) Tranzakcionális adatok kezelése, importok, exportok Reportok Architektúra: JSF, Facelets , EJB3. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: J2EE keretrendszerek vizsgálata

J2EE keretrendszerek vizsgálata

Önálló laboratórium, 2008 tavaszFarkas Gábor, OTX0QRKonzulens: Imre Gábor

Page 2: J2EE keretrendszerek vizsgálata

Kiindulás

• Üzleti alkalmazásaink:– Törzsadatok és kapcsolataik (CRUD)– Tranzakcionális adatok kezelése, importok,

exportok– Reportok

• Architektúra: JSF, Facelets, EJB3

Page 3: J2EE keretrendszerek vizsgálata

JBoss SEAM - 1

• Faces backingek használatát kényelmesebbé teszi

@Name("example")@Scope(SESSION)public class

ExampleBacking {

@InOtherBacking otherBacking;

• Név és scope annotálva, nem kell xml-t írni• Másik backingre való referencia annotációval

Page 4: J2EE keretrendszerek vizsgálata

JBoss SEAM - 2

• Faces és EJB kontextusok összevonása

@Name("example")@Scope(SESSION)public class

ExampleBacking {

@PersistenceContextEntityManager em;

• EnityManagert használhatunk, tranzakcionáltak vagyunk• Session Bean is lehet backing

Page 5: J2EE keretrendszerek vizsgálata

JBoss SEAM – 3

• UI-BL rétegek összemosása. Hátrány? Lehetőség!

• JSR 299 – Web Beans néven szabványosul az megoldás.

• A dependency injection még többre képes, a Google Guice-hoz mérhető, a Spring IoC-t messze veri.

Page 6: J2EE keretrendszerek vizsgálata

JBoss SEAM – jPDL – 1

• Faces navigáció:– Action outcome (pl success/fail)– Beégetett, vagy backing metódus adja vissza– (view, outcome) -> view hozzárendelés– A navigációs rendszer állapota tehát a nézet

• jPDL: workflow diagram mintára pageflow „állapotgépek” – outcome-ok és EL-re épülő decision node-ok vezérlik.

Page 7: J2EE keretrendszerek vizsgálata

JBoss SEAM – jPDL – 2

• jBPM-hez jól kapcsolható• Bonyolult pageflow-k jól olvasható, összefüggő

leírása• Egyszerű navigációs szerkezetekhez túl sok

XML, sok copy-paste• Navigációs szerkezetek specializációja –

templatezése – nem megoldott

Page 8: J2EE keretrendszerek vizsgálata

AJAX – Motiváció

• Üzleti alkalmazásaink felületei elég sablonosak• HTML tartalomra nincs igény• Kicsit speciális dolgokkal (popup ablakok,

fájlfeltöltés) sok időt el lehet tölteni• Túl sokat kell foglalkozni javascripttel,

technológiai sajátosságokkal• A JSF mégsem volt jó választás, nem weboldalt

fejlesztünk

Page 9: J2EE keretrendszerek vizsgálata

GWT - 1

• Kényelmesen fejleszthetünk javascriptben futó UI-t

• Szerverrel való kommunikáció RPC-n• Alapvetően stateless service-okra csatlakozunk• Más megközelítésben kell a szerveroldalt

fejleszteni, migráció nem triviális.

Page 10: J2EE keretrendszerek vizsgálata

GWT - 2

• Imperatív UI fejlesztés– Kompozíciókor (kész részek összeállításakor egy

felületté) tetszőleges feltétellel dönthetünk, használhatunk factory patternt, stb..

– Specializáció: hasonló felületek fejlesztésekor OO nyelvi eszközzel élhetünk

Page 11: J2EE keretrendszerek vizsgálata

GWT - 3

• Dinamikus UI– Nem töltjük mindig az egész oldalt újra -> hálózati

és szerver CPU terhelés is csökken– Pl tranzakció rögzítésekor annak altípusától

függően kérünk be paramétereket– Entitásválasztó felnyíló ablak nem okoz technikai

problémát

Page 12: J2EE keretrendszerek vizsgálata

GWT – Hátrányok – 1

• EJB3 entitásokhoz DTO-k használatát gyakorlatilag nem tudjuk megkerülni.

• Minden szolgáltatáshívásunk aszinkron– Keresési eredmények táblázatát, entitás nézeti

oldalak feltöltését még egész jól tudjuk kezelni, viszont

– Ha bármilyen kódunknak szerveroldalról származó információra van szüksége, nem tudjuk szekvenciálisan programozni

Page 13: J2EE keretrendszerek vizsgálata

GWT – Értékelés

• Entitáskezelő alkalmazáshoz önmagában nem jó választás

• Mit tudunk tenni?

Page 14: J2EE keretrendszerek vizsgálata

Új modell – 1

GWT Widget Tree

Client- Side

Engine

Server- Side

Engine (servlet)

Application(session scope)

Component Tree

Events / update

messages

Page 15: J2EE keretrendszerek vizsgálata

Új modell – 2

• Mintha AWT-Swing-el fejlesztenénk– Millstone (2000, 2002, 2007)– AjaxSwing (1999)– Thinwire– Echo– …

Page 16: J2EE keretrendszerek vizsgálata

Szerveroldali UI kód

• Annotációk, genericitás, reflection minden előnyével élhetünk UI fejlesztéskor

• HTML, forms, HTTP, Javascript … mindezzel nem kell időt töltsünk

• Tudunk adni egy egyszerű szerkezetűUI keretet, de a kiegészítése sem ütközik nehézségekbe

Page 17: J2EE keretrendszerek vizsgálata

Kérdések?