Chapter 3. Service Management Framework Runtime 43
and managed deployment of services. The primary targets for the OSGi
specifications are set top boxes, service gateways, cable modems, consumer
electronics, PCs, industrial computers, cars and more. These devices that
implement the OSGi specifications will enable service providers like telcos, cable
operators, utilities, and others to deliver differentiated and valuable services over
their networks.
The OSGi specification enables the separation of the service interface from the
service implementation, allowing scalability and extensibility. The SMF
framework uses the information in the bundle manifests to populate its service
registry and to manage and resolve bundle dependencies. Each bundle has it’s
own class loader and name space, and the references between bundles, to
access each others services, is managed by the framework.
There are tools designed specifically for bundle creation and management. Many
are wizard-based, to allow you to easily create the required classes, methods
and other template code for your packages, whereupon you then write the core
logic to those services. WebSphere Device Developer is extended by a number
of tools including the Bundle Development Kit and the other Extension Services
tools. There is also a reference platform for the tooling that includes a bundle
server for testing your code without the need for a production level server.
In sum, the OSGi platform is designed to enable devices of any shape and size
to execute a consistent, modular program model, on a well-architected set of
frameworks and core services. This framework provides services and bundle life
cycle management to enable dynamic loading, starting and stopping, and more
importantly, bundle and service sharing in the VM instance that is running the
SMF platform.
3.1.2 What is SMF?
The Service Management Framework (SMF) Runtime is IBM’s implementation of
the OSGi Service Platform.
SMF is a Java application, running in a JVM. In essence, SMF is the host
environment in which the bundles execute. It manages the life cycle of bundles
(installing, starting, stopping, updating and uninstalling) and through the bundle
manifest, the dependencies of bundles on one another. These bundles can
represent several separate applications or portions of applications, all running in
the same JVM.
Core and custom bundles
Core bundles provide the basic functionality of the platform. More simply, system
bundles are the SMF platform itself, and custom bundles are the ones you and