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.
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.
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.