The GEMFrame runtime engine is architected as a pure J2EE application, using best practices and patterns, and leveraging modern Web Services and Java API’s.
For simplicity, GEMFrame can be decomposed into logical layers with clearly defined responsibilities.
This layer is responsible for generating web-based UI and the overall user experience. GEMFrame UI and user experience are built using the widely used Model-View-Controller framework Struts. The use of Struts ensures the separation between the user workflow and the business process workflow, thus providing great agility.
The look and feel of the UI can be easily changed by applying CSS style-sheets.
GEMFrame offers a customizable user interface layout based on “tiles” – standard, collapsible screen elements. The exact layout an end user view depends on their role and personal settings, with role being defined by the security model in use.
Service Layer with Integration API
Service Layer defines object representations of ECM entities (documents, workflows, queues, etc.) and any operations/services on them. Service-oriented integration API provides an easy access to GEMFrame services for external applications.
GEMFrame utilizes a rich server-side event model and API for plug-ins. When a business process requires sophisticated logic and complex in-process integration with a third party system, GEMFrame can be easily extended through the use of plug-ins – segments of custom Java code that listen for events and have control over the business data and application’s behavior. This approach is an effective alternative to embedding complex integration logic into the application itself.
ECM Access Layer
ECM Access Layer is a thin abstract layer defining interfaces for accessing content and process data. This abstract layer makes the application largely ECM/BPM platform agnostic, and facilitates the integration of disparate repositories into a single logical content store.
ECM Connector is a realization of Access Layer Interface for specific content or process engine. Connectors encapsulate all ECM-specific functionality making the Service Layer of GEMFrame totally independent from an ECM platform.
GEMFrame supports connectivity to various content repositories by enabling several Content Connectors. A GEMFrame-based solution can be easily migrated to another ECM platform by simply changing an appropriate connector.
As an enterprise application platform, GEMFrame can be integrated with any standard enterprise security model. Normally, GEMFrame leverages the security model of underlying ECM platform that provides record level security.
In addition, GEMFrame introduces role-based access to business functions. The roles are typically mapped onto LDAP groups.
The following diagram presents a high level overview of GEMFrame design with an emphasis on ECM platform independence and multi-layer architecture.