16.01.2014 Views

Diploma Thesis Santiago Gómez Sáez - IAAS

Diploma Thesis Santiago Gómez Sáez - IAAS

Diploma Thesis Santiago Gómez Sáez - IAAS

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2.5. OSGi Framework<br />

cycle management, addition, and monitoring and control of the components conforming to<br />

the environment defined by the JBI specification.<br />

2.5. OSGi Framework<br />

The OSGi framework provides loose coupling between modules in a Java environment.<br />

It provides a strong support for module versioning and third party modules referencing.<br />

The OSGi defines a framework for deployment support in a Java Virtual Machine (JVM)<br />

of downloaded or extended resources known as bundles. This framework requires OSGifriendly<br />

devices a minimum system’s resources usage by providing dynamic code-loading<br />

and bundle lifecycle management. An OSGi bundle is the packaging of a group of Java classes<br />

and required and provided capabilities’ meta-data as a JAR file for providing functionality to<br />

end users, which can be exposed as bundle services or just run internal processes. A valid<br />

OSGi bundle can be installed in any valid OSGi container due to the standardized packaging<br />

and bundle management.<br />

OSGi bundles can be downloaded, extended and installed remotely or locally in the platform<br />

when needed without the need of system reboot. Installation and update of bundles during<br />

their lifecycle are also managed by the framework, which uses a service registration for<br />

selection, update notifications, or registry of new service objects offered by a deployed bundle.<br />

This feature is the main key for connecting bundles whose’s services require during runtime<br />

capabilities provided by another bundles. The framework defines a bundle’s requirement<br />

capability as a dependency.<br />

The OSGi framework defines 5 different layers and a bundle’s lifecycle [OSG11]. An optional<br />

Security Layer provides the infrastructure for deploying and managing applications which<br />

must be controlled during runtime. The Module Layer lists the rules for package sharing<br />

between the deployed bundles. The lifecycle of a bundle can be modified during runtime<br />

through an API provided in the lifecycle layer. The main operations implemented are install,<br />

update, start, stop or uninstall.<br />

Apache ServiceMix 4.3.0 is built on and OSGi-based runtime kernel, which provides a<br />

lightweight container that enables the deployment of various bundles [RD09]. Its architecture<br />

and functionalities are described in the following section.<br />

2.6. Apache ServiceMix<br />

In this diploma thesis we extend a multi-tenant aware version of Apache ServiceMix 4.3.0,<br />

referred to it in this document as ServiceMix. Essl evaluates different available ESB solutions<br />

in the market, and as output of his work provides a selection decision for extending ServiceMix<br />

in order to support multi-tenancy [Ess11]. As mentioned in Section 2.3, a multi-tenant ESB<br />

solution in a PaaS environment must support tenant-aware communication, and tenant-aware<br />

administration and management. The support is provided by Muhler and Gomez in their<br />

15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!