1. Java EE innehåller många standardkomponenter
Java EE är ett steg i utvecklingen mot programmering på en högre nivå. Man når denna högre nivå genom att utnyttja den mängd av standardfunktionalitet som en Java EE-server innehåller. Allmänna fördelar/nackdelar med standardkomponeter beskrivs på
systemarkitektur/standardkomponenter .
2. Jämförelse av funktionalitet mellan olika tekniker
Vi tänker oss att ett företag beställer en internetapplikation av oss, vi ska bygga hela applikationen uppifrån och ned. Det första vi gör är att fundera över vilken plattform som kan vara lämplig. Vi kan (t.ex.) göra följande plattformsval:
- C++: Här bygger vi allt själva. Minneshantering, trådhantering, packa upp HTTP, o.s.v.
- Java: Här får vi lite hjälp i och med att JVMen sköter minneshanteringen automatiskt.
- Webb-behållare: Om vi går över till Java EE och väljer att utnyttja en webb-behållare (typ Tomcat) så får vi ytterligare funktionalitet som t.ex. trådhantering. Med trådhantering menar jag att webb-behållaren automatiskt skapar en tråd varje gång en ny HTTP-request anländer till applikationen. Webb-behållaren hjälper oss att packa upp och packa ihop HTTP-paket. Webb-behållaren hjälper oss dessutom att bevara sessionsinformation.
- EJB-behållare: Om vi dessutom väljer att använda en EJB-behållare tillför vi ytterligare standardfunktionalitet till plattformen. Behållaren klarar inte HTTP eftersom EJB-behållaren inte är tänkt att implementera gränssnitt. Behållaren pratar istället RMI och Webbtjänster och ta emot meddelanden via JMS. EJB-behållaren kan automatiskt hantera transaktioner. Behållaren innehåller entitetsbönor som tillför automstisk datamappning mot databasen.
Bilden nedan illustrerar vilka typer av standardfunktioner de olika plattformarna/teknikerna erbjuder:
Bilden är tänkt att illustrera hur den del av applikationen du skriver själv krymper i takt med att du låter plattformen ta hand om mer och mer funktionalitet.
- I bilden har jag valt att lägga entitetsbönor som en låda utanför EJB-behållaren för att markera att det är fullt möjligt att utnyttja EJB-behållaren utan att använda entitetsbönor.