Avatar billede tjens Nybegynder
23. september 2011 - 20:11 Der er 4 kommentarer og
1 løsning

Java EE: Hjælp til projektstart

Jeg vil i gang med at studere Java EE, men da der er mere end 117 standarder og objekttyper, vil jeg gerne have hjælp til at studere den, for mig, relevante del, og springe resten over.

Mit første mål
Projektet skal være så løst koblet som muligt, så selv om jeg kender PHP, JSP og ASP classic, vil jeg gerne helt undgå de gamle metodikker, hvor en request genererer ny HTML blandet med database data i serverside-koden.

Ideen er derfor en HTML5 brugerflade helt genereret og styret via HTML-DOM fra Javascript.
Dermed er brugerfladen bare tekstfiler i Java EE serveren, og ikke noget problem.

Da WebSocket mangler den fulde browsersupport lige nu, vil jeg lave alt kommunikation mellem server og klient som AJAX kald.
Data i AJAX-kaldene ønsker jeg at sende i JSON-format.
Eller måske som XML, hvis det viser sig nyttigt at XSLT transformere data i browseren.

Arkitektur forslag

1. Forretningslogik og databasekald i en Java Applikation uden brugerflade, med API'er eller webservices til alle funktioner.
2. Login kontrol  + session data vedr. login, som blot videredirigerer kald fra Javascript til #1
3. HTML/Javascript/CSS til selve brugerfladen, hvor Javascript arbejder direkte på DOM træet for at præsentere data fra APIer.

Jeg ved ikke om nummer 2 er et eller 2 projekter, i Java EE.
På længere sigt kan nummer 2 erstattes af standard Enterprise Service Bus implementeringer, men jeg vil i denne omgang gerne kode det selv.

Jeg forventer at nummer 3 blot bliver en folderstruktur med minimale HTML filer og store Javascripts, og det ville være handy, hvis den både kan pakkes som en .war eller lignende, og samtidig tilgås direkte i filsystemet under applikationsserveren.
Forventningen er at det hele kan afvikles på både JBoss og Glassfish ( m.fl. )

Min nuværende status
Jeg har installeret en Jboss virtual appliance, og fundet et HelloWorld eksempel som er kompileret manuelt og derefter installeret, og der er "hul igennem".

Derefter har jeg downloaded Java EE 6 incl Glassfish3 og NetBeans IDE 7.0.1.
I materialet har jeg gennemført tutorial "firstCup", og det fungerer fint.

Spørgsmålet
Hvilke typer projekter/objekter skal jeg oprette i NetBeans, for at komme i gang med dette projekt?

Og er arkitekturforslaget relevant?
Avatar billede arne_v Ekspert
23. september 2011 - 20:29 #1
Det var en del spoergsmaal.

Her kommer en del kommentarer.

Jeg vil klart anbefale JBoss AS fremfor Glassfish.

Men hvis ikke du har brug for EJB, JCA, JMS, JTA etc. saa kan du maaske klare dig med en standalone Tomcat.

Hvis du laver alt helt standard boer du kunne koere paa alle 3 uden aendringer.

For at expose JSON web services skal du have fat i JAX-RS. Det goer det meget nemt (du kan saagar lave den samme service saa den kan returnere JSON eller XML efter requestors oenske).

Jeg vil klart anbefale:
* container managed login
* container managed access kontrol hvor muligt og kun app managed access kontrol hvor noedvendigt

Jeg kan ikke se hvad en ESB kan hjaelpe dig med login og access kontrol.

Hvis du har sider som ikke er saa interaktive og hvor det at lave alt i JS bare er unoedigt besvaerligt, saa vil jeg foreslaa dig at kigge paa JSF sider med facelets som view. Meget clean view teknologi.

Til database adgang boer du bruge JPA (Hibernate med JPA API er helt fint).

Du kan starte med kun et enkelt web projekt.

Muligvis vil du saa splitte op saa du har et projekt per layer senere.
Avatar billede tjens Nybegynder
23. september 2011 - 21:20 #2
Jeg burde måske have nævnt, at det tænkes brugt til et Extranet, hvor leverandører kan slå op på egne leverancer, og se en masse tal vedr. mængder og dagspriser og økonomi.
Dermed bliver der meget dynamisk indhold.

Nogle leverandører er så store at de i praksis har flere leverandørnumre, og login svarer derfor med en liste af leverandørnumre, som jeg tænkte kunne gemmes som sessionvariable, bruges til validering af hver enkelt kald herefter.
Samtidig skal de vises i dropdowns i brugerfladen.


Vedr. ESB, tænkte jeg at en større ESB vel også har adgangskontrol som en indbygget feature, og dermed kunne udgøre det midterste lag i sig selv.


Mange tak for svarene:
Jeg er helt grøn på Java EE, men nu kan jeg fokusere JPA og JAX-RX i de første tutorials og den første bog.

Så vender jeg nok tilbage med mere konkrete og bedre formulerede spørgsmål om nogen uger.

Læg et svar tak.
Avatar billede arne_v Ekspert
23. september 2011 - 22:13 #3
Du kan nemt konfigurere din server til at authentificere brugere mod din database.

Jeg vil klart anbafale at bruge serverens indbyggede muligheder fremfor noget hjemme strikket.
Avatar billede arne_v Ekspert
23. september 2011 - 22:16 #4
ESB bruges normalt server-server ikke client-server.
Avatar billede arne_v Ekspert
14. oktober 2011 - 23:44 #5
et svar
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

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