The EPX architecture is based on the Java 2 Enterprise Edition (J2EE) platform, and as such makes use of several J2EE platform technologies such as Enterprise Java Beans (EJBs), and Java Servlets.
Custom applications developed for EPX must be written in Java, but do not necessarily require knowledge of the internal usage of J2EE technologies employed by EPX. The EPX public APIs available to custom applications are written entirely in Java and do not require extensible knowledge of EJBs or Java Servlets. The developer of a custom EPX application must be familiar with two basic packages in the EPX public API (facades and value objects):
com.enterworks.client.facade - this package contains all of the EPX public APIs, broken out into groups of functionalities called facades. Facades are responsible for interacting with the EPX EJBs to conduct the work of retrieving and storing objects on behalf of the custom application.
com.enterworks.shared.model - this package contains a collection of data object class definitions, called value objects that are manipulated by the custom application and passed into the various methods of the facade for persistence. The facades are also used to retrieve collections of existing value objects in this package for custom applications.
The following diagram depicts how a custom application fits within the EPX architecture: