Track 2 - Construct Entirely New Interface - JWS Thin Client

In the earlierTrack 2 demo, a java command line application was needed for data Publishing. The application controls construction of Web Service Request objects encapsulating the new Data being Published as well as activities that get Connections and that make WebService Calls over the connection.

By making use of Java Web Start and by keeping things very simple for users, this example is B2B data publishing for Dummies. No command line processing environment is necessary. No Java Virtual machine is required to launch Java applications at the Command Line. After requesting the URL for a form in your browser, after filling it out, and submitting it, ALL YOU NEED to do to invoke Web Start is to clik on a link in a page you see in your browser immediately after submitting the Form. All subsequent processes for publishing are transparent and are completely managed for you by Java Web Start (JWS) and by JNLP. JWS will download and cache all resources required for the publishing activity while JNLP controls the application launcher for the Publishing process on your workstation. Because it happens automatically at the clik on a link, in this scenario, you are not required to download or install anything.Using information that you supplied in the form (see table below explaining the fields ), JWS will publish the correct Files to the Post Office.

Complete the JWS Publishing Form

The link below along with the instruction box will guide the completion of the Publish Topic Name Form (JWS). The field Labels for the list of form fields appears as the Middle Column in the box below. The Argument Name appears in the left hand column, and is the command-line argument identifier for the same piece of information when running a Java Command line program. The URL for the real form is here. The webapp requires authentication, so on a challenge, use the following for credentials:

  • user=dogtown
  • password=zboys
Successful interaction with the topic creation form will result in this browser


data.topic.name=                  Topic Name             <---- What Topic is being used
data.topic.action=                Topic Action           <---- ( publish OR subscribe )
data.source.filename=             File Name              <---- filename OR regex NOT Both
OR
data.source.regex=                File Name Pattern      <---- filename OR regex NOT Both
data.source.lastfile=             Last File Time         <---- Controls selection of Files         
data.source.filesize.filter=      FileFilter MaxSize     <---- Disallow files larger than
data.source.sourcedirectory=      Local Directory        <---- On what Path is data

exchangesession.client.username=  UserID               <---- For authenticate/ authorization
exchangesession.client.password=  Password             <---- For authenticate/ authorization
exchangesession.host.server=      Server IP            <---- Data destination ( subscription )
exchangesession.host.protocol=    Protocol             <---- subscription type (grid OR poll) 
util.template.xsl=                XSLT File Name       <---- For XML Translation  
util.timer.poll.period=           Polling Interval     <---- Interval for Polling ( milliseconds ) 
wsdl.service.addr.host=           Wsdl HostAddr        <---- Requests route to this WebSrvc EndPoint

The controls at the bottom of the form for "Subscription Start" and for "Subscription End" are not required to publish. The above expression data.source.regex=tm11.*, results in an interface sending 2 files to the destination system defined by the values provided to the Subscription Form. This works because of a Demo Default scenario where resources in the download include a couple of files in the /data/outbnd directory that match the regex property above.

You may change the values of these 2 properties and you may send your own files across the interface by using new values to point the properties at directories and files on your PC or LAN. Adjust the following properties to send your own files:

  • data.source.sourcedirectory
  • data.source.filename
  • data.source.regex
Remember that the properties data.source.regex and data.source.filename are mutually exclusive, USE ONE OR THE OTHER. Instructions for setting properties are available by going to Instructions(long) and scrolling down to the command line parm entry. Note: demo will limit fileSizes to 20K. Larger files will be ignored unless you really dig thru the install package to discover the workaround. The "FileFilter Max Sz" field is where you would adjust the filter's limit.

Submit the form and you will get a response with a link to start JWS. Clik the link to launch JWS. Note that ONLY the First time, there will be some additional latency for downloading and for caching the application under the JWS and JNLP protocol. Each subsequent run will used locally cached information and will be very quick. Only one time will there be download related delay.

Java Web Start Launcher - Runs Client Application

First wait 30 Seconds while the ONE TIME ONLY Download Completes. Transparently, the previous clik invokes the following JWS actions:

  • get the .jnlp file referred to by the HTML Link
  • compare the resources and libraries enumerated in the .jnlp to any previously cached on the Client
  • download/ refresh necessary application resources
  • update Client side JWS application caches
  • Launch the application under a JWS Security Policy Manager

On Launch, you will see a Java Web Start Console begin the application. As the run progresses, the console will scroll the Standard Output returned by the application doing the publishing. For comparison purposes, the non-JWS demo doing equivalent Publishing work produced the same output that you can see below this link with additional documentation in Sections Titled "Output Part 1, 2, 3".