Avatar billede eskeeske Nybegynder
02. marts 2003 - 17:59 Der er 15 kommentarer

Hvad er EJB

Hvad er en EJB.

VH
Avatar billede eskeeske Nybegynder
02. marts 2003 - 17:59 #1
Og hvad er det de kan som er fantastisk smart ?
Avatar billede arne_v Ekspert
02. marts 2003 - 18:00 #2
EJB = Enterprise Java Bean

De er en del af J2EE.
Avatar billede arne_v Ekspert
02. marts 2003 - 18:01 #3
Der er 3 forskellige slags EJB's:
  - session beans
  - entity beans
  - message driven beans

Entity beans kan være med CMP (Container Managed Persistence)
eller BMP (Bean Managed Persistence).
Avatar billede arne_v Ekspert
02. marts 2003 - 18:06 #4
EJB'er komponenter som er:
  - skalerbare
  - understøtter transkationer
  etc.

Og som er velegnet til n-tier server-applikationer.
Avatar billede mfalck Praktikant
02. marts 2003 - 18:13 #5
nogle hævder at EJB'ere er for java 2 enterprise edition er hvad java beans er for java - men det er vist en sandhed med modifikationer. Udover hvad Arne siger (som jeg aldrig vil betvivle) vil jeg måske sige at EJBere er komponenter skrevet i java - de skal overholde en række definitioner (bla. implementere EJBHome interfacet) og afvikles af en Java Enterprise Container.
Avatar billede eskeeske Nybegynder
02. marts 2003 - 18:16 #6
Prøv at forklare det med jeres egne ord.

Hvorfor er de smarte i den virkelige (kommercielle) verden.

Er det fordi at man kan lave et system som kører på flere hardware servere, og så hvis det er belastet stikker man bare en server til ind og alt kører fint videre ?

Er der andre ting der gør EJB smart ? Kan det andet ?
Avatar billede arne_v Ekspert
02. marts 2003 - 18:20 #7
mfalck>

Det har du helt ret i. At de har kaldet det Enterprise Java Beans
ligner mest af alt et forsøge på PR mæssigt at lukere lidt på
ar Java Beans er et kendt begreb.

En Java Bean er en enkelt class.

En EJB er 2-4 userwritten interfaces + 1 userwritten class +
2-4 container generated classes.
Avatar billede mfalck Praktikant
02. marts 2003 - 18:21 #8
ja - flere af de kommercielle servere (WebLogic fra Bea kan i al fald) kan køre i et cluster og hvis man sætter en maskine til ind i clusteret bliver den automatisk opdateret med programmerne.

Endvidere kan applikationsserverne køre two-fased commits. Det vil sige at hvis du skal skrive til flere forskellige databaser så er du sikker på at data er konsistent inden for samme transaktion (enten bliver data skrevet i alle databaserne eller også bliver ingen af data skrevet).
Avatar billede arne_v Ekspert
02. marts 2003 - 18:23 #9
eske>

Nu er der ikke engang enighed om at EJB'er smarte i din virkelige
verden !

:-)

EJB er eihvertfald i teorien en meget god måde at designe
genbrugelige, skalerbare enterprise komponenter på.

Kritikerne siger, at de er svære at bruge (læs: dyre at
udvikle) og performer dårligt.

Jeg er pro-EJB. Ja de er svære at bruge, men det er distribueret
computing uanset hvilken teknologi man bruger. Og de performer
dårligt hvis man bruger dem forkert, men det kan man jo heller ikke
give teknologien skylden for.
Avatar billede mfalck Praktikant
02. marts 2003 - 18:24 #10
en af de ting som jeg personligt synes er rigtigt smart er at når man benytter sig af entity beans, så slipper man mere eller mindre for at tænke på at der er en database bag applikationen, men man skriver bare til java objekter. Så sørger containeren for at skrive data til databasen for een.
Avatar billede eskeeske Nybegynder
02. marts 2003 - 18:33 #11
Men hvad hvis man ligesom har et sytem med en foretninglogik, hvor der ligger noget information gemt i nogen instanser af nogen klaser (jeg er klar over at den så vil forsvinde ved genstart af systemet).

Det kan man da ikke smide ud på flere servere vha EJB eller hvad ?

Altså hvis du f.eks har en klasse som hedder personOnline og så skriver du

new personOnline (id="x232", "IE","1010022032", etc).

Så kan du jo ikke skrive

personOnline.getByID("x232") med mindre du stadig er på den samme server i clusteret eller kan man eller hvad.

Eller er mit spørsmål svært at forstå.

VH
Avatar billede mfalck Praktikant
02. marts 2003 - 18:34 #12
en god designmæssig ting ved EJBere er desuden at man (omend ikke tvinges så bliver guidet i retning af) skelner skarpt mellem forretningslogik og præsentations logik. I ASP/PHP ligger meget af databehandling i forbindelse med de enkelte sider. Det betyder at hvis man skal ændre i designet/finder en fejl i forretningslogikken så skal man igennem mange af de enkelte sider og foretage disse ændringer her. Med EJBere er det (forhåbenligt) kun eet sted man skal foretage ændringen.
Avatar billede mfalck Praktikant
02. marts 2003 - 18:36 #13
hm - i al fald hvis det er en stateless session bean så kan man godt gøre det.
Avatar billede arne_v Ekspert
02. marts 2003 - 18:55 #14
eske>

Remote interfaces af EJB'er kan kaldes alle steder fra (local interfaces
kan kunne kaldes fra samme JVM).

Så du kan godt kalde på tværs af servere.

Clustering sørger for at der er mere end en kopi af objektet, således
at data ikke går tabt hvis en enkelt app-server går ned.
Avatar billede arne_v Ekspert
19. marts 2003 - 20:12 #15
eske>

Tid at lukke spørgsmålet ?
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