You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Overview

This document will describe the architectural design of an Interoperability Layer for use within the OpenHIE project. It describes the key components that should make up an interoperability layer and how this relates to the other service that are used in OpenHIE.

The interoperability layer considers of 2 separate sets of components:

  1. The core (thin proxy) component
  2. Orchestrators and adapter services

Together these 2 sets of components make up an interoperability layer. These can be seen in the diagram below. In the following section we will describe each of these in more details.

Key Requirements

The full requirements that the Interoperability Layer community have identified can be found here: What is an Interoperability Layer?

Here are the key list of requirements that are seen as beneficial for an interoperability layer:

  • Provide a central point for authentication and authorization to the HIE services
  • Log, audit and monitor communication with the components of the HIE
  • Provide error management and transaction monitoring information to the manager of the HIE
  • Provide transaction orchestration service and adapters to transform between message formats

The architecture

The core (thin proxy) component

This component can be through of as the entry point into the HIE. In provides some common mundane services so that other domain services don't have to implement these. This component basically just acts as a web service proxy while performing some additional functions on the incoming requests. The functions that this component should perform are as follow:

  • Each message that is received from a client should be logged (stored in its entirely with metadata) and audited (store key information about that transaction and who ran it).
  • Authentication and authorization services for the transaction within the HIE should be handled here.
  • Displaying and monitoring errors that occur between the services, making use of the logging function to do this.
  • A routing mechanism that routes request received to the correct upstream service.

The orchestrator and adapter services

This set of components provides services that manipulate the request that are sent to them. They are often implementation specific so they will change as the use cases that the HIE supports change. Each of these components are separate services that perform a specific function following the micro services pattern (http://yobriefca.se/blog/2013/04/29/micro-service-architecture/). There are 2 major types of these services:

  1. Orchestrators - This service type enables a business process to be executed, this normally involved one or more additional service being invoked to process the required transaction.
  2. Adapters – This service type adapts a incoming request to a form that the intended recipient of the request can understand.
  • No labels