IPF Architecture

IPF architecture

IPF architecture in OSGi environments described elsewhere

IPF's architecture in OSGi environments is described in the architecture section of the OSGi support page. It complements the information presented here.

Component architecture

The following figure gives an overview of the IPF components, their dependencies and their namespaces (abbreviated package names). The components of the ihe subpackages (white color) are shown in the next section. The last subsection describes the namespaces and components in more detail. The component names match the jar file names in the Maven repository. The IPF component architecture is also closely related to the project structure in the code repository.

IHE components

The next figure shows the IPF IHE components. The Camel-independent components are contained in the ipf.commons.ihe package, Camel-specific IHE components are contained in the ipf.platform-camel.ihe package. IPF IHE components can be used to implement actor interfaces of IHE transactions. The transaction numbers (ITI) contained in the component name correspond to the transaction numbers in IHE specifications.

IPF and OSGi

All IPF components have been designed to run on an OSGi R4 version 4.1 platform. The osgi package additionally containes specialized OSGi bundles such as extender bundles and configuration fragments (not shown). For a detailed description about IPF and OSGi refer to the OSGi support section.

Namespace and component descriptions

Namespace Description
commons Namespace for commonly used libraries. Components in this namespace are independent of Apache Camel and have no dependencies to platform-camel.
modules Namespace for domain-specific (e.g. HL7) libraries and message processing components. Components in this namespace are independent of Apache Camel and have no dependencies to platform-camel.
osgi Namespace for IPF OSGi infrastructure and configuration bundles.
platform-camel Namespace for extensions to the Apache Camel routing and mediation engine. These extensions together with Apache Camel are referred to as the Open eHealth Integration Platform (IPF) from a technical viewpoint.
tutorials Namespace for tutorials demonstrating the features of the Open eHealth IPF (not shown in any of the figures).
archetypes Namespace for IPF project archetypes (not shown in any of the figures).
Component Description
commons-core A library that defines the common message processing API to be implemented by components contained in the modules folder. platform-camel provides special integration points for components implementing this common API. The API was defined for implementing message processing components independent of a certain integration infrastructure like Apache Camel. This increases their re-usability and allows applications to implement light-weight message processing functionality without implementing an integration platform or enterprise service bus.
commons-flow A library implementing the flow management services. It is used to monitor, query, audit and replay message flows. The management interfaces are based on JMX. An integration into Apache Camel is provided by platform-camel-flow.
commons-ihe-atna A library used by other IPF IHE components to implement IHE ATNA.
commons-ihe-xds-* Libraries used to implements IHE XDS.a and XDS.b actor interfaces. The libraries are Camel-independent
commons-map A code-mapping library.
commons-lbs A library providing storage for large binaries and javax.activation.DataSource implementations to represent stored binaries.
commons-event A library containing the Camel independent functionality of the Event infrastructure.
commons-test A library providing support for HTTP-based integration and performance tests.
commons-xml An XML library with focus on Schematron validation.
modules-cda A library for creating, parsing, navigating and rendering CDA documents. Also includes support for several CDA profiles.
modules-hl7 A library that implements extensions to the HAPI library.
modules-hl7dsl A library that implements a DSL for manipulating HAPI messages.
osgi-commons See IPF bundle overview.
osgi-extender-basic See IPF bundle overview.
osgi-extender-spring See IPF bundle overview.
osgi-config-log See IPF bundle overview.
osgi-config-jms See IPF bundle overview.
osgi-config-flow-repository See IPF bundle overview.
osgi-config-flow-manager See IPF bundle overview.
platform-camel-core A component that is required by most other platform-camel component. It provides:
platform-camel-flow A component that implements a flow management DSL for integrating commons-flow into Camel routes. The DSL was built with the DSL extension mechanism.
platform-camel-event A component offering the DSL extensions of the event infrastructure
platform-camel-hl7 A component that implements an HL7 message processing DSL for integrating modules-hl7 and modules-hl7dsl into Camel routes. The DSL was built with the DSL extension mechanism.
platform-camel-lbs-core A component offering the DSL extensions of the large binary support mechanism as well as the interface to adapt various endpoint technologies to the LBS.
platform-camel-lbs-cxf A component with adaptor implementations for using CXF endpoints with the large binary support.
platform-camel-lbs-http A component with adaptor implementations for using HTTP/Jetty endpoints with the large binary support.
platform-camel-lbs-mina A component with adaptor implementations for using MINA/HL7 endpoints with the large binary support.
platform-camel-ihe-mllp-* Provides MLLP-related functionality used by IPF PIX and PDQ components.
platform-camel-ihe-pix-* Components to implement actor interfaces of IHE PIX transactions. See IHE support.
platform-camel-ihe-pdq-* Components to implement actor interfaces of IHE PDQ transactions. See IHE support.
platform-camel-ihe-xds-* Components to implement actor interfaces of IHE XDS.a and XDS.b transactions. See IHE support.
platform-camel-test A component for measuring the performance characteristics of IPF applications. It provides DSL extensions used to measure processing time of messages (for route parts and whole routes) and the message throughput. Performance measurement reports can be created as well.
tutorials-basic A Hello World-level tutorial for getting started with platform-camel
tutorials-flow A tutorial demonstrating IPF flow management features.
tutorials-hl7 A tutorial demonstrating HL7 message processing features.
tutorials-lbs A tutorial demonstrating the use of the LBS with CXF and HTTP endpoints.
tutorials-osgi-* A tutorial demonstrating how to write IPF OSGi applications.
tutorials-ref A complete reference application that may be used as blueprint for production-ready IPF applications. The reference application is a comprehensive demonstration of IPF features.
tutorials-xds A tutorial that demonstrates how to use IPF XDS components.
ipf-archetype-* Archetypes for creating IPF integration projects with a ready-to-use Maven 2 and Eclipse configuration plus an example route and unit tests.
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.