programmera.net -> ejb -> normal     för utskrift      info@programmera.net

Om EJB

1. Var passar EJB in i Java EE?
2. Varför behövs EJB?
3. EJB och SOA
4. Vilka komponenter måste tillhandahållas av Java EE servern?

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:

  1. 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.
  2. 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).
  3. 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:

  1. J2SE 1.3
  2. JDBC 2.0
  3. JNDI 1.2
  4. JavaMail 1.1
  5. JMS 1.0.2
  6. JTA 1.0.1
  7. JAXP 1.0