Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Razmena podataka izmedju Struts-a i EJB-a

[es] :: Java :: Razmena podataka izmedju Struts-a i EJB-a

[ Pregleda: 2940 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Black
Belgrade

Član broj: 4199
Poruke: 71
*.maksnet.net.



Profil

icon Razmena podataka izmedju Struts-a i EJB-a12.11.2006. u 00:01 - pre 211 meseci
Nisam siguran koji je pravi nacin razmene podatke izmedju kontrolera (struts) i modela (EJB).

Na primer, korisnik unese podatke na web formu, i Struts automatski tim podacima popuni form bean. Kako te podatke da prosledim session bean-u? Da li da mu posaljem form bean? Ili da u okviru action klase prebacim podatke iz form bean-a u entity bean, i njega posaljem session bean-u.

Takodje, kada vracam podatke iz session bean-a action klasi, da li mogu da posaljem entity bean-ove, ili treba da napravim neki drugi dt objekat.

Glupo mi je da imam tri-cetiri objekta, koji u sustini opisuju isti entitet, a opet hteo bih i da ispostujem neko pravilo dobrog dizajna.



 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Razmena podataka izmedju Struts-a i EJB-a12.11.2006. u 08:03 - pre 211 meseci
Pretpostavljam da ti je session EJB fasada. Meni je logika bila da se sto krace zadrzavam u njoj. Dakle, tamo gde vec imas podatke, tu formiras Entity ili listu Entity-ja, a onda je predas metodi iz fasade koja odradi perzistenciju.

Kada vracas podatke, to ce opet biti neka lista (entiteta) sa kojima ces ti posle nesto da radis...

Nisam siguran da je to najbolje resenje, ali meni se cini da jeste :)
 
Odgovor na temu

antix

Član broj: 8388
Poruke: 265
*.net.upc.cz.

Jabber: antix@elitesecurity.org


Profil

icon Re: Razmena podataka izmedju Struts-a i EJB-a12.11.2006. u 12:25 - pre 211 meseci
pa nikako ne bi trebalo da šalješ Struts formu session bean-ovima.

Najčešće korišćeni način jeste da napraviš DTO (Data Transfer Object) i njega da predaješ session fasadi. Isto tako taj DTO (ili listu istih) bi dobijao kao rezultat
pretrage ili tako nekih operacija. Ovim si postigao da ti prezentacioni sloj ne zavisi od business sloja. Ako popunjavaš entity beanove u prezentacionom sloju onda si vezao svoj presentation sloj za sloj podataka (data layer) i to ne može da bude dobro. Naravno, ako ti treba quick and dirty rješenje možeš i tako.
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Razmena podataka izmedju Struts-a i EJB-a12.11.2006. u 12:46 - pre 211 meseci
Definitivno si u pravu i slazem se.

Samo sam zaboravio da kazem jednu stvar, pa je ispalo kao lose uputstvo :)

Naime, bas trenutno radim aplikaciju gde bi prezentacioni sloj trebao da posalje poruku koja ce da nosi xml prakticno. Tu poruku primi message driven bean koji onda napravi Entity-je i prosledi ih fasadi.

E sad, taj DTO bi ovde prakticno bila ta poruka, ako sam dobro skapirao?

Da li bi to onda bilo 100% ok resenje?

Ili bi fasada bas trebala da primi DTO, a da onda interno generise Entity-je?

Generalno, jel DTO neki nas proizvoljni objekat?

V

[Ovu poruku je menjao Vanja Petreski dana 12.11.2006. u 14:08 GMT+1]
 
Odgovor na temu

antix

Član broj: 8388
Poruke: 265
*.net.upc.cz.

Jabber: antix@elitesecurity.org


Profil

icon Re: Razmena podataka izmedju Struts-a i EJB-a12.11.2006. u 14:19 - pre 211 meseci
pa nisam siguran da su rješenja u svim slučajevima jednoznačna. Više to zavisi od dizajna same aplikacije :) i sklonosti developera

Ali ja bih u tom tvom primjeru slanja xml poruka sigurno napravio neki jednostavni DTO (za sada samo sa String poljem koje čuva xml sadržaj, kasnije može da se proširi, ako ima potrebe). I ne bih generisao ništa u MDB. MDB bi samo služio kao buffer između prezentacionog sloja i sloja podataka. Tako da bih ja predao taj DTO MDB-u, taj MDB bi pozvao odgovarajući session bean i predao mu DTO. Dalje bi se sve odrađivalo u session bean-ovima (zapravo vjerovatno bi se generisanje odrađivalo u nekoj helper klasi).

Naravno, ovo je kako bih ja odradio ovu situaciju, što ne znači da je to dobro rješenje :)
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Razmena podataka izmedju Struts-a i EJB-a12.11.2006. u 15:00 - pre 211 meseci
Hm, ali stanje se, logicki, nije promenilo, a unet je dodatni posao u fasadu.

Ovako i model i prezentacioni sloj moraju da znaju za DTO, a u prvoj varijanti prezentacioni sloj mora da zna za Entity.

Ali ako shvatim DTO kao neki adapter, onda mi to zvuci OK.

Dakle, zbog "pravilnog" programiranja imamo dodatnu klasu i vece opterecenje u fasadi...
 
Odgovor na temu

Black
Belgrade

Član broj: 4199
Poruke: 71
*.maksnet.net.



Profil

icon Re: Razmena podataka izmedju Struts-a i EJB-a12.11.2006. u 16:35 - pre 211 meseci
I meni se cini da je najispravnije koristiti DTO za razmenu podataka izmedju web sloja i modela (odnosno sloja podataka, kako ga jos zovu).

Samo, tako imamo dosta glupu situaciju da jedan entitet opisuju cetiri klase. Najpre form bean, kojim se salju podaci sa jsp stranice do action klase. Onda imamo DTO, kojim se razmenjuju podaci izmedju action klase i EJB-a. Pa, imamo entity klase, kojima se realizuje perzistentnost. I na kraju imamo result bean-ove, pomocu kojih saljemo podatke nazad do jsp stranica. To su (potencijalno) cetiri klase za jedan entitet. To zahteva jako puno poziva get/set metoda i puno konvertovanja tipova, pri cemu lako moze da dodje do greske.

Rekao bih da je to posledica previse razlicitih tehnologija, koje se koriste na razlicitim nivoima aplikacije. Kako je to reseno u Spring framework-u? Spring pretenduje da bude integrisano resenje, ako se ne varam?
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
212.200.220.*



+13 Profil

icon Re: Razmena podataka izmedju Struts-a i EJB-a12.11.2006. u 16:56 - pre 211 meseci
Pa dobro, nije bas tako strasno kako si opisao, ja to vidim kao da imamo samo jedan objekat "viska", jer form bean (pretpostavljam da je u Strutsu to nesto slicno kao backing bean u JSF-u) svakako moras da imas, isto kao i Entity. A sa druge strane, nema razloga da EJB-u saljes jedan DTO, a da on vraca neki drugi DTO, nego da pricaju "isti jezik".

Btw, rece mi kolega da sve to ima detaljno opisano u knjizi "EJB design patterns" koju, uzgred budi receno, nisam jos stigao da procitam:

http://www.theserverside.com/t...ey/EJBDesignPatterns/index.tss

Strane: 51(26) - 57(32)

[Ovu poruku je menjao Vanja Petreski dana 12.11.2006. u 18:17 GMT+1]
 
Odgovor na temu

[es] :: Java :: Razmena podataka izmedju Struts-a i EJB-a

[ Pregleda: 2940 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.