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 next three subsections give an overview of the IPF components, their dependencies and their namespaces (abbreviated package names). 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.

Platform core components

OSGi infrastructure components

Although all IPF components have been enabled to run on an OSGi platform, this section only shows components from the org.openehealth.ipf.osgi namespace. These are extender bundles and configuration fragments for the IPF service bundles. For details refer to the OSGi support section.

Platform manager components

Project archetype components

Namespace and component descriptions

Namespace Description
commons Namespace for commonly used libraries. There are no dependencies to the platform-camel and platform-servicemix namespaces.
modules Namespace for domain-specific (e.g. HL7) libraries and message processing components. There are no dependencies to the platform-camel and platform-servicemix namespaces.
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.
platform-servicemix Namespace for extensions to the Apache ServiceMix enterprise service bus. This package currently doesn't contain any components. It will focus on extensions to ServiceMix 4 and the OSGi-based ServiceMix 4 Kernel
platform-manager Namespace for the Eclipse RCP-based Integration Platform Manager. It is the graphical front-end to the components commons-flow and platform-camel-flow and is made up of Eclipse plugins (OSGi bundles) where each plugin is a separate Eclipse project (not shown as component in the next table). The server communication is purely JMX-based, therefore, you can alternatively use a generic JMX client for flow management as well.
tutorials Namespace for tutorials demonstrating the features of the Open eHealth IPF.
ipf-archetypes Namespace for IPF project archetypes.
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 and platform-servicemix provide 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, Apache ServiceMix or OpenESB. 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. A flow management front-end is provided by platform-manager.
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 tests.
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-hl7 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-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-event A component offering the DSL extensions of the event infrastructure
platform-camel-http An HTTP component based on the Camel HTTP component. This component is offered due to current issues of the HTTP component in Camel 1.6.
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.
ipf-archetype-basic Archetype for creating integration projects using IPF core features for embedded and single-node deployments.
ipf-archetype-default Archetype for creating integration projects using IPF core, flow management and HL7 processing features for embedded and single-node deployments. Currently work in progress.
ipf-archetype-cluster Archetype for creating integration projects using IPF core, flow management and HL7 processing features for multi-node deployments. Currently work in progress.
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.