Adapters:
A provisioning adapter is a software component that implements
a particular provisioning model. A Provisioning model is the way
in which a client device interacts with a provisioning server.
Provisioning models define a networking protocol used for
delivery of client bundles to the device, and may define a
choreography of interactions using this protocol for delivering
a bundle. Some examples are J2ME MIDP and JNLP protocols.
Provisioning adapters are written by J2EE developers who
understand the details of a provisioning model.
A provisioning server can host one or more provisioning adapter
components. Provisioning servers can be extended to support
delivery to a new client device by configuring a suitable
provisioning adapter for that client device into the
provisioning server.
The Adapter Component Model defined by the Client Provisioning
Specification is responsible for managing network connections
from client devices and passing requests on to the provisioning
server. Adapters are responsible for translating sequences of
network interactions from the client device the adapter supports
into the semantics of delivery defined by the provisioning API.
For example, the provisioning adapter may need to translate an
HTTP request into a call to retrieve a content file from a
particular client bundle by calling a provisioning application's
DeliveryComponent, or for notifying the DeliveryComponent of a
client notification of successful installation.
The contract between an adapter component and the provisioning
framework is defined by the javax.provisioning.adapter.Adapter
interface. Provisioning adapters must expose a Java class with a
public no arguments constructor that implements this interface
to the provisioning server.
Stocking:
Once the code that implements the provisioning portal has been
written by the J2EE developer and deployed onto a Client
Provisioning conformant application server, the next task is to
ensure that there are client bundles in the repository
accessible to the provisioning portal. This process of adding
and removing client bundles from the repository is known as
stocking.
The task of stocking consists of three main tasks: the first
one is pre-verification. This verifies the client bundle. It
checks if the client bundle conforms to the formats it claims it
is. It also checks for API signatures, viruses etc. The second
step is to add and register the client with the provisioning
server. The third step is to describe the client bundle to the
provisioning server. The provisioning server has the
intelligence to discover and deliver client bundles to client
devices. For this purpose it needs to have the description about
the various client bundles added and registered with it. The
client provisioning specification defines a standard packaging
format for client bundles for conveying this information. It is
envisioned that different implementations of the Client
Provisioning specification will provide tools that can stock
their provisioning server with client bundles. In standardizing
the packaging format, the client bundle developer is assured
that his or her client bundle can be provisioned by any
provisioning server conforming to this specification.
The standard packaging format consists of a Provisioning Archive
or a PAR file and a XML descriptor called the provisioning
descriptor. The PAR file is similar to a Java Archive file or
JAR file.
A PAR file can contain one or more logical bundles that the
provisioning server will provision. The PAR file will also carry
the provisioning descriptor. The provisioning descriptor
contains information that the client bundle developer wishes to
convey to the provisioning server administrator in order to
stock it successfully into the Repository.
Conclusion:
At the time of writing of this article the Java Client
Provisioning framework is at the proposed final Draft stage of
the Java Community process. It is going to be some time before
the final draft is accepted and becomes a standard in the
industry. The recent surge in the Mobile devices market is a
good sign for client provisioning. As more vendors and customers
move to the mobile market the demand for interactive services
based on the provisioning framework would go up.
Benoy Jose is a web developer with over six years of experience in J2EE and Microsoft technologies. He is a Sun Cetified programmer and enjoys writing technical and non-technical articles for various magazines.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.