Avatar billede simono Nybegynder
20. december 2004 - 11:58 Der er 8 kommentarer og
1 løsning

fordele og ulemper ved sessionbeans vs. entitybeans ?

hvad er fordelene ved brug af sessionbeans frem for enititybeans?

Jeg har selv observeret at man fri for at implementere normale java klasser af komponentobjekter(kunde, virksomhed osv.)og klasser til lagring/opload til en database, da implementeringen af entitybeans sørger for dette. Også referencerne mellem komponentobjekterne så vi er fri for sql92/99 mapping problemer. Sig til hvis det ikke er korrekt.

Er der flere fordele ved brugen af entitybeans?

Er der ulemper ved brug af entitybeans?
Avatar billede arne_v Ekspert
20. december 2004 - 12:03 #1
Det er 2 helt forskellige ting.

Session beans er en service (kode som gør noget).

Entity beans er data objekter (data som der gøre snoget ved).

De kan ikke erstatte hinanden.

Hvis entity beans er CMP så genereres det meste af koden. Ikke hvis den er
BMP.
Avatar billede arne_v Ekspert
20. december 2004 - 12:04 #2
Entity beans er nok noget af det mest kritiserede i J2EE. Der er mange
som er utilfredse med dem.

De leverer en masse features.

Men ifølge kritikken så:
  - har de færreste brug for de features
  - de kan være ret tunge performance mæssigt
Avatar billede simono Nybegynder
20. december 2004 - 12:09 #3
Du har ret arne_v. de kan ikke erstatte hinanden. det spørgsmålet lyder på er faktisk ulemper og fordele ved den ene implementering frem for den anden.. my bad... altså om man skal implementere komponentobjekter i normale java klasser eller som enitybeans?
Avatar billede simono Nybegynder
20. december 2004 - 12:20 #4
Det med de mange features skal vel ses i lyset af at der er mange forskellige organisationer med forskellige behov, der har været med til at udvikle ejb miljøet....
Avatar billede mfalck Praktikant
20. december 2004 - 12:56 #5
Avatar billede arne_v Ekspert
20. december 2004 - 13:16 #6
De afgørende faktorer for om du vil bruge entity beans eller ej må primært
afhænge af:
  - har du brug for nogle af de features entity beans tilbyder (remote
    access, declarative transactions, clustering) ?
  - egner din data tilgang sig til entity beans (bruger du objekter
    som enkelt objekter) ?
  - satser din organisation på J2EE app-servere ?

3 x ja => entity bean med CMP er et godt valg

ellers skal skal du nok overveje alternativer (den artikel som
mfalck linker til sammenligner med et af alternativerne JDO - jeg tror
dog at Hibernate er et mere hyppigt valg idag).
Avatar billede simonvalter Praktikant
20. december 2004 - 15:48 #7
hvis du stadig godt vil have declarative transactions så kunne du kigge på spring sammen med hibernate eller jdo som gør det hele rigtigt nemt.

Jeg vil også foreslå dig at læse "Expert One-on-One J2EE Development without EJB" - Rod Johnson, Juergen Hoeller. hvis du vil have en mere dybdegående beskrivelse af problemerne men også fordelene ved ejb.. samt løsningen "spring" ;) .. god bog som dog er farvet af at det er udviklerne af spring der står for at udele kritikken.
Avatar billede simono Nybegynder
20. december 2004 - 22:37 #8
Kan du uddybe de her punkter arne_v og poste et svar

  - har du brug for nogle af de features entity beans tilbyder (remote
    access, declarative transactions, clustering) ?
  - egner din data tilgang sig til entity beans (bruger du objekter
    som enkelt objekter) ?
  - satser din organisation på J2EE app-servere ?
Avatar billede arne_v Ekspert
20. december 2004 - 22:46 #9
Du kan give din entity bean et remote interface så den kan tilgåes fra en session bean
på en anden maskine. Det koster men er godt for skalerbarheden.

Declarative transactions gør at du via dine deployment descriptorer kan styre
hvornår der oprettes nye transaktioner og hvornår der fortsættes i samme
transaktion.

Clustering gør at app-serveren selv vedligeholder/distrubuerer/synkroniserer
en cached kopi i memory.

Entity beans er gode til:
  hent en record
  ret den
  gem den igen

Entity beans er dårlige til samme operation på millioner af rækker. Dårlige
som i dårlig performance.

Hvis dit firma udvikler alle eller ihvertfald de fleste af sine nye
systemer J2EE baseret, så er der nogle gode muligheder for at genbruge
komponenter ved at vælge samme teknologi.

Omvendt hvis resten er f.eks. Microsoft teknologi, så kan man ikke genbruge
og man har alt besværet med at vedligeholde et fornuftigt drifts miljø.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester