Het JEE Java Enterprise Edition platform is een uitgebreide verzameling technologieën, tools en frameworks voor het ontwikkelen van veelal open source web- en mobiele toepassingen. Verschillende onderwerpen daaruit heb ik in de praktijk uitgewerkt in een reeks voorbeeld applicaties. Deze uitwerkingen gaan over veel voorkomende functionele toepassingen die in voorkomende praktijksituaties kunnen worden toegepast, gebruikmakend van de verschillende toegepaste JEE technieken. Deze voorbeeld applicaties vormen een verzameling referenties waaruit kan worden geput om sneller en eenvoudiger applicaties te kunnen ontwikkelen.
De applicatie code is beschikbaar op GitHub : https://github.com/vanderschoot/employees
De voorbeeld apps zijn ontwikkeld rond een eenvoudige functionaliteit met een aantal database tabellen en schermen. Het gaat in de voorbeelden niet om de applicatie functionaliteit zelf, maar om de onderliggende constructies snel te kunnen gebruiken. De volgende technieken zijn hierin ondermeer toegepast:
- Java JEE Server applicaties
- TomEE JEE Server
- JBoss JEE Server
- MySQL en HyperSQL (HSQLDB) databases
- JPA (OpenJPA)
- EJB Enterprise JavaBeans (OpenEJB)
- JSF, Java Server Faces
- PrimeFaces Rich Client componenten voor JSF
- JAAS Security
- Webservices (JAX-RS REST en JAX-WS SOAP)
- JavaMAIL
- HTML/CSS/JavaScript/jQuery
- jQuery EasyUI Rich Client Webapps
- Vaadin Rich Client Webapps (gebaseerd op GWT, Google Web Toolkit)
- PhoneGap, jQuery Mobile Client Apps
De functionaliteit van de voorbeeld apps is zoals gezegd basaal en bestaat uit de volgende objecten (database entities en schermen) :
- ‘Departments’ en ‘Employees’ met een één op veel relatie
- ‘Users’ en ‘Roles’ voor basic authenticatie en authorisatie. Users en Roles met een veel op veel relatie.
De applicaties bieden een demonstratie van de volgende features:
- Basis CRUD functionaliteit, met navigatie relaties tussen schermen en objecten
- De opzet van standaard header, footer, en navigatie schermlayouts
- Schermen met
- styling (css) van kleuren, lettertypes van achtergronden, teksten, velden, knoppen etc.
- horizontale en verticale menu navigatie
- table widgets voorzien van paging, lazyloading, sorting en zoek/filter functionaliteit
- foreign key lookup functionaliteit.
- et.c
- Toepassing van beveiliging:
- login, gebruik van user/password basic authenticatie
- authorisatie van services
- authorisaties zichtbaar op schermen door ebable/disable van menu’s, buttons etc.
- gebruik van https
- encryptie
- functies voor user account aanvraag en registratie
- functies voor aanvraag nieuwe (vergeten) passwords
- Toepassing van email functionaliteit
De applicaties zijn opgebouwd uit een reeks Client en Server apps, elk uitgevoerd als een Eclipse/Maven project. De volgende client en server apps zijn ontwikkeld:
SOAP Server Applicaties:
- employeesSOAP : een SOAP Server applicatie voor de TomEE server gebruikmakend van een MySQL Database (zie beschrijving, zie code : GitHub)
- employeesSOAPH : a SOAP Server applicatie voor de TomEE server gebruikmakend van een HSQLDB Database (zie beschrijving, zie code : GitHub)
- employeesSOAPJB : Gelijk aan employeesSOAP, maar nu voor de JBoss server
(zie code : GitHub) - employeesSOAPHJB : Gelijk aan employeesSOAPH, maar nu voor de JBoss server (zie code : GitHub)
REST Server Applicaties:
- employeesREST : een REST Server applicatie voor de TomEE server met MySQL Database (zie beschrijving, zie code: GitHub)
- employeesRESTH : een REST Server applicatie voor de TomEE server met HSQLDB Database (zie beschrijving, zie code: GitHub)
- employeesRESTJB : Gelijk aan employeesREST, maar nu voor de JBoss server
(zie zie code: GitHub) - employeesRESTHJB : Gelijk aan employeesRESTH, maar nu voor de JBoss server (zie code: GitHub)
Client Apps, verbonden met de REST Webservice Server applicaties:
- employeesHR : een HTML / jQuery EasyUI Web Client (zie beschrijving, zie code: GitHub)
- employeesMR : een jQuery Mobile Client (zie beschrijving, zie code: GitHub)
- employeesVR : een Vaadin Client (zie beschrijving, zie code: GitHub)
Client Apps, verbonden met de SOAP Webservice Server applicaties:
- employeesVS : een Vaadin Client (zie beschrijving, zie code: GitHub)
Integrale Client/Server Apps:
- employeesJSFH : een JSF app voor de JBoss server gebruikmakend van een HSQLDB database (zie beschrijving, zie code: GitHub)
- employeesJSPH : een JSP app voor de JBoss server gebruikmakend van een HSQLDB database (zie beschrijving, zie code: GitHub)
- employeesJSFHSpring : een JSP/Spring app voor een Tomcat server gebruikmakend van een HSQLDB database (zie beschrijving, zie code: GitHub)
- employeesJSPHSpring : een JSF/Spring app voor een Tomcat server gebruikmakend van een HSQLDB database (zie beschrijving, zie code: GitHub)
- employeesV : een Vaadin Client/Server app gebruikmakend van een MySQL database (zie beschrijving, zie code: GitHub)
- employeesVH : een Vaadin Client/Server app gebruikmakend van een HSQLDB in-memory database (zie beschrijving, zie code: GitHub)
- employeesJ: een JSF Client/Server app gebruikmakend van een MySQL database (zie beschrijving, zie code: GitHub)
- employeesJH: een JSF Client/Server app gebruikmakend van een HSQLDB database (zie beschrijving, zie code: GitHub)
Zie het artikel TomEE server configuratie voor de demo apps waarin wordt beschreven welke configuraties nodig zijn op de TomEE servers om de applicaties te kunnen draaien.
Zie artikel JBoss JEE Server voor de benodigde configuratie van de JBoss server.
I was studying sontehimg else about this on another blog. Interesting. Your linear perspective on it is diametrically opposed to what I read in the first place. I am still pondering over the opposite points of view, but I’m tipped heavily toward yours. And irrespective, that’s what is so great about modernized democracy and the marketplace of ideas online.