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

Compare with Current View Page History

« Previous Version 3 Next »

Introduction

The purpose of this tutorial is not at all to teach you on SOA but to draw your attention on points that the developer(s)/deployer(s) will be confronted during the design/development and release management phases.

Designing a Service Oriented Architecture seems very obvious for most of us but implies that different parameters are taken into account :

  • Identification of the layers of the application,
  • Definition of the services,
  • Granularity (what are the boundaries of a service, ...),
  • Dependency with libraries,
  • Infrastructure,

In this second part of the tutorial we will investigate some of the points mentioned and applied them to a real application. The application will be designed around different components (= bundles in the OSGI jargon) and deployed into ServiceMix Kernel. ServiceMix Kernel or SMXKNL is an OSGI platform created top of Apache Felix OSGI server and integrating Spring Dynamic Modules facilitating the build of Spring application and PAX components who provide tools managing deployment of component and web support.

For more information about the projects mentioned, I recommend that you have a look on their respective web site.

Here is the list of the points that we will address in this tutorial :

  • Create a simple service (derived from the camel-osgi example) module (interface + implementation) and package it as a bundle,
  • Create a Camel context with a small routing and package it as a separate bundle,
  • The Camel routing will use an OSGI reference to call the simple service

The second part of this tutorial will be derived from the Reporting incident tutorial and will show you a more real application (which is web based) can be re-scoped into a OSGI application.

Prerequisites

This tutorial uses:

Note: The sample project can be downloaded, see the resources section.

Step 1 : Initial Project Setup

Next, you import these projects into your favorite workspace of Eclipse.

Step 2 : Develop the interface

  • No labels