19 April 2016

Java EE Patterns (edit)


  • Numbers on the arrows indicate a possible call sequence in a request. (thanks for the hint Nishant) 
  • patterns
    • Front Controller: initial point of contact for handling all related requests. The Front Controller centralizes control logic that might otherwise be duplicated, and manages the key request handling activities.
    • Transfer Object: carries multiple data elements across a tier
    • Transfer Object Assembler:  builds an application model as a composite Transfer Object. The Transfer Object Assembler aggregates multiple Transfer Objects from various business components and services, and returns it to the client. 
    • Persistent Domain Object: Rich domain object, ie. having rich behavior/bus.logic and persistent 
    • Web Service Broker: exposes and brokers one or more services using XML and web protocols.
      • The Web Service Broker can be generalised to a Protocol Broker.
    •  Service Facade: encapsulates business-tier components and exposes a coarse-grained service to remote clients. Clients access a Service Façade instead of accessing business components directly. 
    •  Service: Fine-grained, reusable logic in an EJB with local access only, product of decomposition
    • Data Access Object: abstracts and encapsulates all access to the persistent store. The Data Access Object manages the connection with the data source to obtain and store data. 
    • Asynchronous Resource Integrator: Invocation of a Service from a Message-Driven Bean (invoked by a messaging system via JMS)
    • Payload extractor: factor out the (reusable) type checking and error handling for a MDB message into a reusable interceptor; poison messages moved by the interceptor to a “dead letter queue” via a stateless EJB using the JMS API
    •  Resource Binder: put a custom resource into JNDI using a @Singleton with @Startup and the JNDI API (Context.(re)bind()).