System Architecture Overview

The OIPA system is implemented as a multi-tier J2EE-based server-side application. The presentation, business logic and data access have been developed and maintained as independent layers that run inside a single JVM. The Spring framework is used as a component container to assemble the components together and to access available services across the layers.

This is an architectural diagram of the OIPA application:

The following is the glossary of terms used in the diagram:

Data Access Layer (Dal) – an architectural layer that consists of Dal objects and which implements the data access, hiding the details of implementation within the tier.

Business Logic Layer (Bll) – an architectural layer composed of Bll objects that implements business logic as services available to the presentation layer, and also deals with some infrastructure aspects such as caching and transactional processing.

Data Carrier Layer (Dcl) – data carrier objects that carry data throughout the system.

Presentation Layer – an architectural layer responsible for implementation of the presentation logic; consists of the two tiers, HTML Pages and Presentation Services.

HTML Pages – Front pages using Oracle JET Framework. Oracle JET supports the Model-View-ViewModel (MVVM) architectural design pattern. In MVVM, the Model represents the application data, the View is the presentation of the data and the ViewModel exposes data from the Model to the view and maintains the application's state.

Presentation Services (UIP)– a technology-independent presentation tier that provides presentation services to an outer presentation tier.

RESTful Services – Service layer built using RESTful frameworks.

Service Delegates - Delegate layer which redirects service requests to appropriate pages

UIP - A Facade between User interface layer and Business Layer

Model – an object implemented for a user interface page that contains data displayed on the page; a data carrier between the two presentation tiers.

SRE (Shared Rules Engine) – a standalone component responsible for executing OIPA transactions and business rules

APE (Application Process Executor) – a class that implements a business rule executed within a transaction.

Extensions – configurable call interceptors that allow modification of the out-of-box functionality for client-specific implementations.

AsFile/Services – a component that exposes the business layer services as web services.

 

An application's data access details are hidden from the rest of the application inside of the Data Access layer. Java Persistence API is used to implement the data persistence for most of the data access requirements. Data access from the Shared Rules Engine that sometimes requires a greater degree of control over the generated SQL traffic is implemented using JDBC. The services provided by the Data Access layer are available through the Spring container and exchange data using the Data Carrier (Dcl) objects.

The Business Logic layer contains generic business logic shared between all custom implementations of the system that is complemented by the configured business rules. The exposed services include activity processing, accounting, allocations, and so on. The layer also deals with such infrastructure aspects of the application as transactional and grid processing, and caching. The services provided by the Business Logic layer are consumed by the presentation layer with the data exchanged through the Dcl objects, by the cycle agent for the batch processing, and also exposed through the web services to be used by external systems.

The Application UI is built on HTML5 using Oracle JET Framework.

The Shared Rules Engine is a separate and independent component responsible for processing activities and math configured in the OIPA business rules. The web services component that uses the Apache Axis framework allows configurable electronic submissions into OIPA and, in general, exposes OIPA business services to external systems.

The following is a list of the most significant frameworks and technologies used by OIPA:

  • Spring framework as an application component container
  • JPA as a primary method to access persistent data
  • JDBC for accessing persistent data from SRE to ensure maximum data access performance
  • Oracle JET framework to implement browser-based user interface
  • JAX-WS and JAX-RS to implement web services
  • Coherence cache for caching rarely changed persistent data
  • Coherence processing pattern as a grid computing framework