23. september 2011 - 20:11Der 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?
Mød en af Nordens fremmeste eksperter i adfærdsdesign – Morten Münster, der bl.a. har skrevet ” Jytte fra marketing er desværre gået for i dag” – på Computerworld Cloud & AI Festival.
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.
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.
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.