Professional Documents
Culture Documents
Real World Java Ee Patterns
Real World Java Ee Patterns
blog.adam-bien.com
Introduction
Expert Group Member (jcp.org) of Java EE 6, EJB 3.1, Time and Date and JPA 2.0
blog.adam-bien.com
Based on:
blog.adam-bien.com
1. EJBs Are Heavyweight
blog.adam-bien.com
EJBs Are Heavyweight
EJB 3 are just annotated Java classes (if you love XML
you can even use just Deployment Descriptors instead of
annotation)
blog.adam-bien.com
2. EJBs Are Not Portable
blog.adam-bien.com
EJBs Are Not Portable
blog.adam-bien.com
EJBs Are Not Extensible
blog.adam-bien.com
EJBs Are Not Extensible
blog.adam-bien.com
EJBs Are Not Extensible
blog.adam-bien.com
EJBs Are Not Extensible
blog.adam-bien.com
4. EJBs Are Slow
blog.adam-bien.com
EJBs Are Slow
blog.adam-bien.com
EJBs Are Too Complex
blog.adam-bien.com
EJBs Are Hard To Develop
@Stateless
public class SimpleSample{
public void doSomething() { /*business logic*/ }
}
blog.adam-bien.com
EJBs Are Hard To Develop
How to compile:
You will need the the EJB 3.0 / 3.1 API in the classpath, or at least the
@Stateless annotation.
How to deploy:
Just JAR the class and put the JAR into e.g: [glassfishv3-prelude-
b23]\glassfish\domains\domain1\autodeploy
How to use:
import javax.ejb.EJB;
public class MyServlet extends HttpServlet{
@EJB
private SimpleSample sample;
}
blog.adam-bien.com
Agile Manifesto
blog.adam-bien.com
Agile Manifesto in Java EE Context
blog.adam-bien.com
Entity Control Boundary
blog.adam-bien.com
Entity Control Boundary
blog.adam-bien.com
SOA Architecture
blog.adam-bien.com
SOA Architecture
blog.adam-bien.com
Service Facade
blog.adam-bien.com
Service Facade (Context)
blog.adam-bien.com
Service Facade
blog.adam-bien.com
Service Facade (Solution)
blog.adam-bien.com
Service Facade
blog.adam-bien.com
Service Facade (Conventions)
blog.adam-bien.com
Dual View Service Facade
blog.adam-bien.com
Service
blog.adam-bien.com
Service (Context)
blog.adam-bien.com
Service (Context)
blog.adam-bien.com
Service (Forces)
@Stateless
@Local(DeliveryService.class)
@TransactionAttribute(TransactionAttributeType.MANDATORY)
public class DeliveryServiceBean implements DeliveryService {
}
blog.adam-bien.com
Service (Conventions)
blog.adam-bien.com
Service (Conventions)
blog.adam-bien.com
Domain Driven Design
Seite
Domain Driven Design
blog.adam-bien.com
Domain Driven Design
The idea:
blog.adam-bien.com
Domain Driven Architecture
blog.adam-bien.com
DD Architecture
blog.adam-bien.com
Persistent Domain Object
blog.adam-bien.com
Persistent Domain Object (Context)
blog.adam-bien.com
Persistent Domain Object (Problem)
blog.adam-bien.com
Persistent Domain Object (Problem)
blog.adam-bien.com
Persistent Domain Object (Forces)
blog.adam-bien.com
Persistent Domain Object (Forces)
blog.adam-bien.com
Persistent Domain Object - sample
blog.adam-bien.com
Persistent Domain Object - procedural type checks...
blog.adam-bien.com
Type checks - the object oriented way
blog.adam-bien.com
Inheritance does the work
blog.adam-bien.com
The procedural construction
blog.adam-bien.com
Persistent Domain Object (Conventions)
blog.adam-bien.com
Gateway (Context)
blog.adam-bien.com
Gateway (Problem)
blog.adam-bien.com
Gateway (Problem)
blog.adam-bien.com
Gateway (Solution)
blog.adam-bien.com
Gateway (Solution)
blog.adam-bien.com
Gateway - the solution again...
blog.adam-bien.com
Gateway - sample:
blog.adam-bien.com
Gateway (Conventions)
blog.adam-bien.com
Thank you!
blog.adam-bien.com
Interested in „highend“ trainings, coaching, consulting?
…just send me an email => abien@adam-bien.com
blog.adam-bien.com