This framework claims to support ON Demand B2B data interchanges for small enterprises
while requiring nothing more than broadband and a browser. In light of the fact that
Client-side java applications
are often required in the demos,
the thin client
claim may be on thin ice. This
command line
used to run one of the Demos calls a bat file on NT
that in turn
runs a Java Jar file using numerous command line args in the process. Although
not a thin client in the purest sense, there is a strong argument for the idea that in
the B2BPO Production Version, the client run-time software when
combined with a suitably equipped workstation with JDK 1.4.2+ and Java Web Start,
a B2BPO customer equipped with nothing more than a brower and a business to run
should look forward to complete turn
key functionality and zero Client install issues
. As explained at the very bottom,
with nothing more than an average user's level of knowledge about the business data
in the local file system, it is possible to set up your first B2BPO
data interfaces the day that you open for business.
On closer examination, the lengthy command line expressions from the Demos, used as Client-side
application launchers, can be neatly encapsulated by the JWS environment, providing a hands off,
zero install, thin-client
experience. From the command line expression used in the
Track3 Demo you can see that the bat file on the first line is passing an additional 8 lines
of arguments into a concluding java.exe expression
that you see
after the horizontal bar below:
bin/b2bpoll ... where the b2bpoll.bat executes the following : ____________________________________ "%JAVA_HOME%\bin\java.exe" -jar lib\polling-1.2.jar %CMD_LINE_ARGS%
Getting to the encapsulation and simple elegance of Java Web Start from the gobledygook in the
expression above is a stretch, but in order to understand how JWS solves the entire
problem, one must observe the file that is the object of the java.exe, the
polling-1.2.jar
and its contents
. The jar manifest of polling-1.2.jar, containing a list of elements that are easily subsumed
in JWS, appears below:
Created-By: 1.4.2-beta-b19 (Sun Microsystems Inc.) Built-By: r package: com.borneo.b2bpo Build-Jdk: 1.4.2-beta Extension-Name: b2bpo Specification-Vendor: Borneo Inc Specification-Title: B2B Data Interface Tools Implementation-Version: 1_2 Main-Class: com.borneo.client.FileEventClient Class-Path: config repository/axis.jar repository/commons-discovery.jar repository/commons-logging.jar repository/jaxrpc.jar repository/saaj.jar repository/xml-apis.jar repository/xercesImpl.jar repository/wsdl4j.jar repository/jaxp-api.jar repository/xercesImpl.jar repository/xalan.jar repository/xml-apis.jar repository/sax.jar repository/dom.jar repository/activation.jar repository/mail.jar repository/jax-qname.jar repository/namespace.jar repository/j2ee.jar repository/log4j-1.2.8.jar
Under the aegis of JWSand JNLP, a simple chunk of HTML collaborates with a download process, in effect pushing from the server a proxy java application run-time environment capable of handling all aspects of the client-side demo application. All of the complexity formerly seen in client side demos is now encapsulated in the .jnlp file
As the sample block of code from a .jnlp file
below demonstrates, JWS encodes for all of the Jar file Manifest data from the
above box using Java Network Launching Protocol and API
.
The .jar files now appear inside .jnlp tags forresources and jar
elements. Relevant information from the Manifest Header section above appears below,
inside the application-desc element.
<?xml version="1.0" encoding="utf-8"?> <!-- JNLP File for DemoTrack3 Application --> codebase="http://localhost:80/" href="DemoTrack3.jnlp"> <information> <title>B2BPO Demos</title> <vendor>Rags</vendor> <description>Java Application - Publish Files on a Topic</description> <description kind="short">Dummy</description> <offline-allowed/> </information> <resources> <j2se version="1.4.2"/> <jar href="repository/axis.jar"/> <jar href="repository/commons-discovery.jar"/> <jar href="repository/commons-logging.jar"/> <jar href="repository/jaxrpc.jar"/> ... </resources> <application-desc main-class="com.borneo.client.FileEventClient"> <argument>data.topic.action=subscribe</argument> <argument>util.timer.poll.period=15000</argument> <argument>3rd-Arg</argument> <argument>4th-Arg</argument> ... </application-desc> </jnlp>
As you can see, Java Command line args are handled by the .jnlp file's
final
section above. Now all that remains is the HTML hook to trigger the Browser's download of
DemoTrack3.jnlp
file,
which in turn initiates an elegant and totally encapsulated JWS execution of the entire ball of wax
that made the client side of the demo seem "fat" and complicated. The short block of HTML code below
accomplishes all this, and, in so doing, provides a compelling conclusion to the argument
that B2BPO infrastructure truely is thin client.
bin/b2bpoll <html> <head> <title>B2BPO - DemoTrack3</title> </head> <body> <a href="DemoTrack3.jnlp">Launch Demo Track 3</a> </body> </html>