An Introduction to the SAT Runtime

The Service Activator Toolkit (SAT) enables the development of service oriented OSGi bundle activators by making the registration of services and the acquisition of services easy.

Before learning about SAT it is important to have an understanding of the functionality of the OSGi Service Platform. The OSGi Service Platform Specification is available at the OSGi Alliance website.

By taking care of many of the complex OSGi Service Platform plumbing issues, the SAT runtime allows a developer to focus on building the application domain logic and defining how the application bundles collaborate.

What is the SAT Runtime?

The SAT runtime is a 100% pure Java toolkit that is packaged as OSGi bundles. The SAT runtime consists of:

The Benefits of Using SAT

The OSGi Service Platform was built as a horizontal component framework that is intended for a wide variety of vertical applications. The flexibility of the OSGi Service Platform comes at the cost of complexity. An application built for the OSGi Service Platform and that employs service oriented bundles is typically comprised of a variety of bundles, including:

Of course bundles that import or export multiple services are proportionally more complex. As the complexity increases, it becomes more difficult to create consistent, accurate and bug-free service oriented bundles.

Through a small number of assumptions, SAT greatly simplifies the creation of service oriented bundles as compared to using the OSGi framework's APIs directly. From an application perspective, it can be assumed that:

These assumptions are the cornerstone of SAT and consequently are typically true for service oriented bundles built using SAT. These assumptions are supported by SAT through a simple API to the OSGi framework. By using SAT, a developer can focus on the domain model of the application and handling the availability of services in a domain specific way.

The main benefits of using SAT can be summarized as:

Migrating to and from SAT

Since OSGi bundles and SAT bundles can co-exist, it is entirely possible to start using SAT on a project where OSGi bundles have already been built.