Java Reference
In-Depth Information
■
Discovery
—Provide a simple mechanism to discover which bundles are available
for deployment
■
Dependency deployment
—Provide a simple mechanism to deploy a bundle and its
transitive set of dependencies
To a c h i e v e t h e f i r s t g o a l ,
OBR
defines a simple bundle repository with an
API
for
accessing it and a common
XML
interchange format for describing deployable
resources. An
OBR
repository can refer to other
OBR
repositories, defining a federa-
tion of repositories. But it's not necessary to define federations, so it's possible to cre-
ate independent repositories specifically for your own purposes and applications. One
of the main goals of
OBR
was simplicity, so it's easy for anyone to provide a bundle
repository. One of the benefits of using an
XML
-based repository format is that no
server-side process is needed (although server-side processes are possible). Figure 10.1
shows the federated structure of an
OBR
repository.
The key concept of an
OBR
repository is a generic description of a resource and its
dependencies. A
resource
is an abstract entity used to represent any type of artifact such
as a bundle, a certificate, or a configuration file. The resource description allows an
agent to discover applicable artifacts, typically bundles, and deploy them along with
their transitive dependencies. Each resource description has
Zero or more requirements on other resources or the environment
■
Zero or more capabilities used to satisfy other resources' requirements
■
Resource requirements are satisfied by capabilities provided by other resources or
the environment.
OBR
maps bundle metadata from
Import-Package
and
Require-
Bundle
headers onto resource requirements and from
Export-Package
and
Bundle-
SymbolicName
headers onto resource capabilities. Figure 10.2 shows the relationship
among the repository entities.
Root
repository
Referral
Delegate4
Delegate1
Delegate2
Delegate3
Subdelegate
RepositoryAdmin
service
OBR
bundle
Management
agent
OSGi framework
Figure 10.1
The OBR proposed specification provides a federated index that allows a management
agent to resolve and install large numbers of bundles from a number of remote locations. The OBR index
files are aggregated by a
RepositoryAdmin
service that resolves bundle dependencies on behalf of a
management agent.