Entity Java Beans Jorg Janke Open Source ERP & CRM
Objectives Know J2EE & EJB Buzzwords Understanding of J2EE Architecture Understanding of EJB Architecture Know next steps to explore J2EE & EJB
Java Application Tiers
Java Application Tiers (Detail)
J2SE
EJB Types Session Beans Stateless Stateful Entity Bean Bean Managed Persistency Container Managed Persistency (CMP) Message Bean
Stateless Session Bean
Stateful Session Bean
Entity Bean
Message Bean
EJB Source Code Home Interface (extends EJBHome) Create - Find (for Entity) Factory Pattern Remote Interface (EJBObject) “Business Methods” Proxy Pattern Bean Class (EntityBean/SessionBean) Deployment descriptor (ejb-jar.xml)
EJB Runtime Home (“create”, “find”) Home Object Stub Home Object EJB (“business methods”) EJB Object Stub EJB Object Bean (“the entity”) Enterprise Bean Object
EJB Container - Client Client Container Home Stub Object Stub RMI-IIOP Home Object EJB Object Enterprise Bean Object JNDI
EJB Use Context ctx = new InitialContext(); JNDI to LDAP or other Directory Service BeanHome home = ctx.lookup(“myBean"); Container finds/creates Factory BeanRemote bean = home.create(); Container creates EJB Object -> myBean Bean.doSomething(); Business Method “Proxy”
Getting started The hard way Download, Install & Implement the J2EE Reference Implementation (Cloudscape) The easy way Select a IDE J2EE support often in “Enterprise Edition” Free: Forte / NetBeans
Now you have your IDE … Check what Containers are supported (or included) Download & Install the Container E.g. JBoss includes Tomcat IDEs provide Wizards / Templates Packaging & Deployment
For a live demo … visit me
JBuilder New …
New Module (multiple Beans)
New Session Bean
Stateless Session Bean
Session Bean Properties
Home Interface
Remote Interface
Bean Class
Deployment Descriptor
Add additional methods …
Create Test Client
Client 1 – Lookup
Client 1 - Create
Client 1 – Business Methods
Entity Bean
Home Interface
Remote Interface
Bean Class
Client 2
Client 2 – Lookup / Create
Client 2 – Business Methods
Java Application Tiers
How do EJBs “fit in” Application Server Business Objects Coarse Grained Objects Fine Grained Objects (not suited) Local Interface
What is J2EE compliant Server providing Web Services Servlet, JSP JNDI, RMI, JDBC EJB Services EJB with CMP JMS, JTA, JAAS Compliance Test Version 1.2, 1.3, … License Application using One of the technologies Servlet or RMI & JDBC will do
When to use EJBs You need a EJB project for your CV Highly shared, long lived objects Entity Beans Container Managed Persistency (CMP) Data Access Object Receiving Messages (JMS) (Simple) Transaction Support (outside JDBC) Security Support
Compiere & J2EE Compiere does not use EJBs EJB Container (candidate: JBoss) Additional Installation effort Additional Operation effort Plus: Could be installed automatically Compiere’s Business Objects (Invoice,..) dynamically are generated Based on Data Dictionary Business Objects & Behavior are “personalized”
Intro Resources Deployathon J2EE “community” sites (O’Reilly)
Thanks You can download the presentation My contact: