|
by: Benoy Jose
Java Client Provisioning
Introduction:
From the onset java had projected itself as an Internet
language capable of providing reliable, robust, platform
independent applications that would transcend the barriers of
the Internet. To this end, java introduced developer friendly
packages like Swing, AWT, Servlets, EJBs, JSPs to augment its
power to easily develop web applications. These technologies
have fared well and propelled java as the most suitable and
reliable language to create web enabled high-end applications.
The advent of web services and Mobile devices has introduced a
new twist to the field of distributed computing. Web services
enable diverse applications to talk to and interoperate with
each other. The increasing demand for mobile applications is
opening a new era in distributed computing.
Java introduced technologies like JNLP (Refer article "Article
on Java Web start") to cater to this increasing demand, but plug
and play applications and mobile applications are still
premature. The J2EE client provisioning specification is one
such attempt to provide plug and play applications especially
for mobile and small devices.
This specification defines the rules to allow application
servers conforming to the J2EE specification to host client
services and applications that can be delivered to micro and
mobile devices. The way this can be accomplished is with the aid
of a provisioning server that would allow client devices to
discover services advertised on the server. The chosen service
can then be delivered to the device based on parameters like
application type, client type, subscription status, etc. The
service could be in the form of java bytecodes or jar files that
would be downloaded on to the client machine and run on the
client.
The target device could be any J2EE compliant device capable of
handling J2EE applications. Presently services are targeted for
Java Micro edition devices, MIDP clients and JNLP enabled
desktop clients. More would be included as the specification
gains acceptance in the industry.
Architecture:
The client provisioning specification is designed to function
as a non-intruding part of any J2EE compliant server. A
provisioning server handles any request from client devices.
When a request is received the provisioning server would check
with the repository of applications registered with it and
provide access to the application if it is available.
Though java can handle multiple platforms, provisioning
applications may have to cater to different protocols on
different platforms. A Mobile device may need data in XML
format, while a JNLP application may need a JNLP file to process
a request. The provisioning server would need to cater to the
needs of all these kinds of requests and protocols. To alleviate
this problem the specification defines a provisioning adapter. A
provisioning adapter defines the provisioning protocol required
to provisioning on particular client platform. Provisioning
adapters are discussed in detail later in the article. The
provisioning API provides a client/device independent API that
uses the provisioning adapters to provide support for multiple
platforms and protocols.
The Actors:
To understand the specification better we shall discuss the
roles of people involved in client provisioning.
The Client user is the end user or the user of a client device.
The client user interacts with the provisioning server to
discover application bundles and have application bundles
delivered to his or her device. The client user is not assumed
to be technically trained. He typically would be a subscriber of
services that are advertised by the provisioning server.
The provisioning application developer is familiar with J2EE
programming and the provisioning API. Each server is based on a
business model and the provisional application developer is the
person who can program or customize the client applications to
conform to the business model of the provisioning server. He or
she develops J2EE components that use the provisioning API to
customize the provisioning server.
The bundle developer is usually a programmer whose job is to
build interesting client bundles that can be run on client
devices. Since the client bundle needs to be in the format
specified by the specification, it is bundled by a tool that
would build it as per the provisioning specification. The bundle
developer is not familiar with the business model of the company
running the provisioning server; he just creates client modules
that do specific tasks.
The Stocker is responsible for configuring/adding and sorting
the client applications on the provisioning server. The stocker
knows the environment in which the provisioning server is
deployed, and may adjust the bundle packaging attributes to suit
a particular deployment scenario.
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.
|