1. Var passar EJB in i Java EE?
EJB (Enterprise Java Beans) är del av Java EE-specifikationen (Java EE-specifikationen beskriver hur en Java-applikationsserver ska fungera). Java EE-specifikationen kräver att en Java EE-server har två behållare:
- Webb-behållaren som kör Servlets och JSP.
- EJB-behållaren som kör EJBs.
En längre diskussion om Java EE finns på sidan
Java EE/Vad är Java EE? .
2. Varför behövs EJB?
SUN påstår att det finns tre fördelar med EJB, dessa är:
- Högre nivå på koden: EJB underlättar för programmeraren genom att ta hand om vissa besvärliga delar som egentligen inte har med din specifika problemställning att göra. Dessa "besvärliga delar" är RMI, Transaktionshantering och Säkerhet.
- Starkare MVC-separering: Genom att placera affärslogiken i EJB kan man minska storleken på klienten så att klientutvecklare kan koncentrera sig på presentationen av data. Då klienten är JSP/Servlets kan man alltså låta dessa klasser enbart koncentrera sig på kommunikationen med browsern (d.v.s. att bygga ihop HTML-sidorna).
- Modulariserad utveckling: EJB är portabla komponenter vilket innebär att de kan flyttas till vilken Java EE-server som helst. EJB packas nämligen i sin egen .jar-fil och har sin egen deployment descriptor. Man kan alltså utnyttja existerande EJBs för att bygga nya applikationer utan att ändra i själva klasserna, det räcker med att ändra i deployment descriptorn.
3. EJB och SOA
En term som på sista tiden (2005 och framåt) har blivit mycket populär är SOA (Service Oriented Architecture). En definition på SOA är:
- "A way of designing and implementing enterprise applications that deals with the intercommunication of loosely coupled, coarse grained (business level), reusable artifacts (services) that are accessed through well-defined, platform independent, interface contracts."
EJB uppfyller denna definition mycket bra.
4. Vilka komponenter måste tillhandahållas av Java EE servern?
För att EJB2.0 ska kunna köra måste Java EE-servern tillhandahålla följande komponenter:
- J2SE 1.3
- JDBC 2.0
- JNDI 1.2
- JavaMail 1.1
- JMS 1.0.2
- JTA 1.0.1
- JAXP 1.0