Technical enterprise platform lays basis for Technology Architecture in TOGAF approach. Two mainstream platforms available currently in the market provide all enterprise wide services for building scalable and flexible enterprise applications: JEE and .NET. Web Services or REST services can be used as a communication bridge between them. JEE platform in its latest released version JEE 6 provides an excellent technical infrastructure for enterprise. JEE capitalises on Java programming language capabilities and JVM runtime environment enabling running of JEE applications on all operation systems platform supporting appropriate JEE version via vendor specific application servers.
An enterprise java application relies on application servers for underling containers services and makes use of two kinds of server-side containers: Web container (or Servlet container) and EJB container. Each container is built using proxy design pattern which intercepts all calls to living in the container components (usually POJO objects) and provides necessary injection capabilities and container services such as transaction or security. JEE refers to two client-side containers as well: application client container and applet container which are not a part of JEE application servers.
JEE 6 offers a rich set of capabilities for inter-component communication and communication with outer infrastructure dealing with state and transactions being able to support diverse non-functional requirements. Among such services and technologies are JTA, JMS, JPA, JAX-WS, JAAS, JNDI, JAXB, JCA and CDI. Layering of JEE platform enables usage of best practices for enterprise java stack formalized in appropriate design patterns. Some of patterns considered to be outdated since transition in 2006 from J2EE to JEE 5. The JEE design patterns can be seen as an aggregation and an extension to platform independent GoF design patterns.
JSF framework provides reach set of presentation capabilities and pre-build UI components for web applications. It has API for state management, server side data validation, data conversion, page navigation and event handling. JSF 2.0 is a primary choice for rich AJAX-based web applications in JEE world.
JEE applications would be complemented by Open Source frameworks such as Hibernate or Spring. JBoss application server, for example, is shipped with embedded Hibernate as a JPA persistence provider.