Deploying Hyperon

Solution Architecture

Before we analyze possible ways of integrating Hyperon with your application, let's specify a few concepts. There are 3 groups of users, that will use Hyperon:

  • USER - application business end-user.
  • DEV - application developer. Developer codes the application and Hyperon Functions. The developer is also usually responsible for designing parameters and inputting test parameter values.
  • BA - business analyst. Initially BAs input final parameters values. Experienced BAs can perform highly sophisticated parameter redesigns without the necessity of application code change.

Let's see how Hyperon can be integrated independently of the business application's stack by using REST API.

Here are short descriptions of components in the diagram:

  • Business Application - Java application that has its business logic, parametrization externalized to Hyperon. The application is e.g. sales portal, product management system, policy life system. The parametrization is accessed via embedded Hyperon Runtime Library.
  • Hyperon Runtime Library - provides robust API for parameter/function/domain access for its host Application. The library is responsible for retrieving data from Hyperon Database schema and caching it as an in-memory index within the Business Application. At fixed intervals the library checks for schema alterations and updates itself asynchronously. Therefore no network traffic is necessary while Application calls API as configuration data is already cached. That approach significantly expedites parametrization calls.
  • Hyperon Database schema - storage for Hyperon externalized parametrization repository. Data is altered via Hyperon Studio. Hyperon Runtime Library accesses     the schema in fully read-only mode.
  • Hyperon Studio - the complex web-based user interface for setting up parametrization. The tool includes parameters and functions repository, domain definition and configuration, testing, and export-import capabilities.

There is a dedicated JVM module called Hyperon-Runtime that can be used in any JVM-based application. Let's see how Hyperon can be integrated by looking at basic components and interactions between them.