| Characteristic | Web Services | JMS | JCA |
|---|---|---|---|
| sync vs. async | sync | async | |
| security/encryption | yes, WS-Security | yes | |
| transactions | yes | yes | yes |
| reliability (guaranteed delivery) | yes | yes | |
| batch | |||
| systems use same technology | java-non java | java-java | java-legacy/EIS |
Thursday, October 22, 2009
J2EE Integration and Messaging
work in progress
GoF Design Patterns
work in progress
underlined patterns are ones I have personally used
| Name | Description |
|---|---|
| Creational Patterns (AbFacBuildFacProSingle) | |
| Abstract Factory | interface for creating family of related/dependent objects without specifying concrete classes |
| Builder | separates construction from representation; same construction process can create different objects |
| Factory Method | interface for creating an object; lets subclasses decide which class to instantiate |
| Prototype | |
| Singleton | controls access to finite number of instances |
| Structural Patterns (AdBriComDecFaFlyProx) | |
| Adapter | convert one interface to one the client expects |
| Bridge | functional abstraction -> internal implementation |
| Composite | hierarchical tree structures with elements of varying complexity but a uniform interface |
| Decorator | add or remove functionality without changing external appearance |
| Facade | unifying interface on top of a group of interfaces/components of a subsystem |
| Flyweight | sharing/reusing objects |
| Proxy | surrogate controls access to real object |
| Behavioral Patterns (ChainComIntItMedMemObStateStratTempVis or C2I2M2-OSS-TV) | |
| Chain of Responsibility | message handled where it is first received or directed on to another object for handling |
| Command | |
| Interpreter | |
| Iterator | sequentially access items in a collection that is separate from the underlying collection |
| Mediator | object that manages message distribution among other objects |
| Memento | represents snapshot of object's state |
| Observer | broadcast messages to interested listeners |
| State | object alters behavior when internal state changes |
| Strategy | group of classes that represent a set of possible behaviors |
| Template Method | |
| Visitor | think of using the enhanced for to iterate over a list in java and perform some operation on that list |
J2EE Persistence Strategies
This is a summary of the J2EE persistence strategies that a Sun Certified Enterprise Architect should be familiar with (use scrollbars at bottom to view entire table):
*a = stateless session beans more scalable than stateful
| Strategy | Ease of Development | Performance | Scalability | Extensibility | Security | Strategy |
|---|---|---|---|---|---|---|
| CMP | relatively simple; preferred over BMP | container dependent | EJB container dependent *a | varies by implementation | EJB provided | CMP |
| BMP | more involved | very efficient w/control over SQL | EJB container dependent *a | varies by implementation | EJB provided | BMP |
| JDO | simple | possibly some performance penalty | developer managed | varies by implementation | developer managed | JDO |
| JPA | the simplest | possibly some performance penalty | EJB container dependent *a | varies by implementation | EJB provided | JPA |
| ORM/DAOs | simple | possibly some performance penalty | developer managed | varies by implementation | developer managed | ORM/DAOs |
| JDBC | most time-consuming and involved | theoretical best performance | developer managed | varies by implementation | developer managed | JDBC |
| iBatis/DAO | somewhere between ORM and JDBC | excellent performance | developer managed | varies by implementation | developer managed | iBatis/DAO |
not covered by SCEA exam
Spring can help level the playing field outside EJB in some of the above developer managed areas by helping with transactioning, scalability and security.