[download]

 
 
About Operation Trial Configuration Installation Servlets Parameters Tips

 

 

About jbooster

 

jbooster is an advanced Java applet(client) / servlet(server) system designed to speed up the internet experience of visitors to a web site. A JBoosted web site hosts a Java servlet which anticipates the pages a visitor will choose to follow. The servlet then sends those pages to the visitors web browser via the jbooster applet. For the visitor it appears as though each page is instantly loaded when they click on the link. The visitor is completely unaware that there is anything different about the web site, apart from its astonishing download speed!

From the web site administrator's point of view the jbooster system is remarkably easy to install and configure. Since it is Java based, it is platform independant and will run equally well on Linux, NT, Solaris OS (etc) based web servers. The jbooster client and administration applets will run on Java(1.1) enabled web browsers (all 4.0+ browsers and many 3.x browsers). There are no configuration files on the server to edit. Almost all configuration can be done via the control panel. Consequently the install process is the relatively simple task of adding the applet tags to each page(or including them in the footer!), and running the install programs. (Those using remote servers can install jbooster by ftp'ing the jbooster applet, swbooster and jbooster folders in the appropriate locations on the web server.)

N.B Since jbooster is a servlet based system the host web server will need to have Java servlets enabled. This requires the Java runtime environment and Java Servlets (3rd party products) to be installed. Both can be obtained, Java free of charge from http://java.sun.com, and servlets from any number of companies, in some cases free. (See Servlet software).

 

How It Works

 

The jbooster servlet maintains a separate link profile for each page that hosts the jbooster applet. By tracking the path of each user through the web site it builds up a profile of the most popular destinations from each page. It loads pages to the browser according to the current page profile. This behaviour can be customed (see configuration). The process is entirely automatic and it is not necessary to manually register pages with the servlet. New pages will automatically register themselves via the jbooster applet.

The applet is only 10kb so has almost no noticeable effect on download time. Having loaded once, it remains in the browser until it is closed down. So subsequent pages do not need to download the applet again. The applet can be set to pause a specified number of seconds before it begins to download new pages, and/or autodetect when the host page page has finished downloading (see configuration).

In order not to affect the look of host web sites, the jbooster design team created the applet to take up 0 width and 0 height. However even at 0 width and 0 height most browsers will display a single pixel. By default jbooster makes this pixel white, but this can be set to whatever color the web administrator chooses..

When a page is loaded for the first time it has no profile. In this situation jbooster will look through the current page for links to pages on the same server, and then load those up. In some situations this may be the desired behaviour all the time (eg a search results page). Using the configuration applet the jbooster applet can be set to ignore page profile information and always parse the current page for links.

 

Demonstration Version

 

The demonstration version of jbooster is identical in almost all respects to the licensed version. However it will display a message in the browsers status bar that it is a demonstration version. In addition to this, after approximately 60 days the applet will cease to run in the browser. The exact period of time remaining before the applet ceases functioning can be seen in the Java console (see Using Java Console) when jbooster is running. The licensed version of course has no such restrictions and can be purchased from the JStuff web site. Once purchased a license key will be sent by email. This can be entered via the license tab on the control panel.

 

Installation

 

Before installation begins, servlets must be operational on the web site. Because different servers and servlet implentations are different, JStuff is unable to take care of this step. Please refer to the Sun web site and documentation for the Java installation, and to the servlet vendor's documentation for the servlet's installation procedures.

A commen problem encountered after the jbooster install, is that the jbooster applet and admin applet cannot find the servlet (JBServlet.class). By default the applets look to /servlets/swbooster.JBServlet but on some servlet implementations the servlet alias is "servlet." In this case the servletPath parameter to the applets should be set to /servlet/swbooster.JBServlet.

Installing jbooster Using the Install Programs

The install software is Java based, however if Java is not installed the install software can pre-install it. (NB jbooster will only run if servlets are enabled on the web server, and Java on the computer hosting the web server.)

To install the jbooster client (applet and profile data) download and run the jbooster client install program. It will ask for the web root directory. This is the base directory the web server hosts pages from. (eg http://www.website.com/index.htm might translate to e:\inetpub\wwwroot\index.htm -in this case the web root directory is e:\inetpub\wwwroot).

To install the jbooster server side software(servlets), download and run the jbooster servlet install program. It will ask for the servlets root directory. This is the directory that the web server sends servlet requests to. (eg. http://www.website.com/servlets/SimpleServlet might translate to e:\tomcat\servlets\SimpleServlet.class - in this case the servlet root directory is e:\tomcat\servlets).

The jbooster control panel (controlpanel.html and adminApplet.jar) by default will be placed at site root though it is possible to put them anywhere as long as they are both in the same directory. Preferably they should be in a password protected directory, however if directory listing on the web server is turned off and the two are placed in a location not linked to on the site, this is probably security enough.


Installing jbooster on a Remote Server

To install jbooster run the client install and servlet install programs. When prompted for the web root and servlet root directories as described above, install into separate empty directories. Inside the directory that client install program installed to, will be the jbooster.jar, adminApplet.jar, readme.html, controlpanel.html, and the folder, jbooster. Inside the directory servlet install program installed to, will be the swbooster folder. The swbooster folder can be simply ftp'ed into the remote servers servlets root directory as is(e.g e:\inet\wwwroot\servlets\swbooster).

The jbooster folder must be placed at the web site root directory (ie Where the index.html or default.html file is. eg c:\inet\wwwroot\jbooster). If the web server is hosted on a Unix/Linux system it is necessary to set permissions. Do this by "chmod"ing the sPrefs.sp file in the jbooster folder and jbooster.bst, next.bst, and aPref.ap files in the jbdata folder with 777. Preferably the jbooster folder should not be web accessible (ie. Like a cgi-bin directory, the visitor should not be able to browse the directory, though the servlet should.). Though using the control panel it is possible to shift the location the servlet looks for the jbdata folder.(See Control Panel)

The controlpanel.html, adminApplet.jar and jbooster.jar should be placed at site root. Though by changing the parameters to the applet it is possible to put them in a different place if so desired.

 

Installing the Applet Tags on the Web Site

After the folders are in the correct location and file permissions are set correctly, the following tags should be placed on each web page.

<APPLET

ARCHIVE = "jbooster.jar"
CODEBASE = "/"
CODE = "swbooster.Jbooster.class"
NAME = "jbooster"
WIDTH = 0
HEIGHT = 0
HSPACE = 0
VSPACE = 0
>

</APPLET>

 

 

Though the applet is invisible on the page and can be placed anywhere, at the bottom of the page is best. If your page has a footer included using SSI / asp or similar technologies then this is the perfect place to put the applet. It need only be installed there, rather than on each individual html file.If the site uses frames then a copy of the applet should placed on the pages that are linked to and appear in the "main" frame. Only one copy of the applet should be running at one time.

Thats it, having done this, jbooster should be installed and operational.


Supported File Types

 

jbooster will download html pages without regard to whether they are generated by cgi/servlets/asp/cold fusion etc. From each of those html pages it will download all files with the following extensions:

  • .jpg
  • .gif
  • .png
  • .swf
  • .wav
  • .avi

One custom file type can be selected per page, by default this is set to .qt or .js, but any extension can be set. This is done via the applet preferences tab on the control panel.
NB this file extension is used for loading other pages, not the current page. If you intend to use custom file types, it is probably best to set the custom file type in the default applet preferences soon after installing jbooster, to make it apply site wide. jbooster for security reasons will not accept file extensions ".bat", ".exe" or ".vbs".

Control Panel

 

On it's own jbooster is a powerful tool for any site author/administrator, but its ease of configuration, and number of configuration options, make it even more powerful. The jbooster Control Panel can be accessed via the administrators browser at http://www.yoursitename.com/jbooster/controlpanel.html. It is a very large applet and so may take up to 30 seconds to load. Once loaded you will see a list of all pages jbooster is currently maintaining profiles for. By selecting from that list you can see which other pages are frequently visited from there. The settings for each page's applet, can be individually edited from here, as can the overall servlet settings.

Applet Settings

Image Files To Load Max no.of image files to pre load per page.
Other Files To Load Max no.of non image files to pre load per page.(NB jbooster considers .png files to be non image files.)
Pre-Load Delay Delay before beginning boost session. If this is too short, jbooster will begin downloading other pages before the current page has finished loading. This will seriously slow down the current page download.
Background Color

The color to set the jbooster applet. Only 1 pixel will show, but by setting this correctly, even that 1 pixel won't show. Must be in hexadecimal format. No '#' required.
e.g FFFFFF

Custom File Extension This adds another file type to the list of file types to download.(see Supported File Types)
Auto Determine Download Start Time This instructs the jbooster applet to detect when the current page has finished loading, before beginning to download new pages. This can be used in conjunction with the pre-load delay parameter (pre-load delay will occur first, followed by the auto-determined download). This can affect download time on current page. Use carefully. (see Tips)
Send Output to Console Since jbooster works invisibly, there are times when you may be unsure how it is working. By checking this box, a log of jbooster operations on this page will be sent to the browser's Java console. Be careful to use this sparingly or it can bog down the browser Java VM. (see Using Java Console)
Always Parse Page If this is checked, jbooster will ignore profile information it receives from the servlet and search the current page for links to other pages. It will then load those pages in order it finds the links (ie from top to bottom.) This is useful for search results pages.

Servlet Settings

JB Data Directory This folder holds all the data jbooster generates. By default it is in the jbooster folder at the web directory root. Preferably the jbdata directory should remain here, but if the web server does not allow the administrator to turn off directory access to web site visitors, anybody could browse this directory. This is not really a security risk, but if desired by editing this setting the data folder can be placed in a non web accessible location. Unix permissions are 777 for the 3 files contained aPrefs.ap, jbooster.bst and next.bst.
Session Timeout jbooster tracks visitors as they move through the site. For this purpose it assigns each visitor a "session." This variable sets the length of time a session can remain inactive, before being deleted.
No. of Sessions This sets the number of concurrent sessions jbooster will track.
Data Save Interval The jbooster servlet stores most of the session and counter data it uses internally. This data is periodically saved to prevent its loss should the server or servlet be restarted. This sets the interval at which it saves that data.
Max no. of Pages to Track This sets the total number of pages jbooster will store profiles for.
Max Size of Links Profile This sets the maximum number of links from each page jbooster will store information on.
Data Half Life jbooster maintains two parallel sets of counter and links profile data, one old, one new. The half life setting determines the no. of days after which the old data is replaced by the new, and a fresh set of "new" data created. This is necessary because almost all sites are in a constant state of upgrade. Some pages disappear, some become more popular, and some lose popularity.

HTML Parameters

 

In addition to setting the jbooster applet settings from the control panel, some preferences can be sent to the applet by adding <param> tags to the html page. (See setting html parameters.)

Parameters that Manipulate the URL

In general, only if the host site uses URL rewriting will these HTML parameters be necessary. However if the site uses forms, then you will probably need to use some of them. Often a web site which uses CGI, or similar server side scripting, will add information to the end of a page's URL. Such information includes the output of forms, userIDs etc. Thus the URL www.jstuff.net could become www.jstuff.net?phone=12345678&uid=#4567a3Xc1. In this situation jbooster servlet will faithfully note that it has not seen this page address before and create a new links profile for it. But this could mean that jbooster will create as many links profiles as past visitors to the site(since each will likely have a different user ID, and enter different data into a form.) In this situation it is necessary to manipulate the URL before jbooster servlet sees it. There are three ways to do this, the "userID", "truncateURL" and "removeFromURL" parameters.
NB In the above example the parameters would need to be on the page called "www.jstuff.net?phone=12345678&uid=#4567a3Xc1" not necessarily on the page which contains the link!

userID Parameter
The userID parameter looks like this:
<PARAM name="userID" value="**=**">
( where **=** will be the user ID information that is tagged onto the end of the URL.)

jbooster applet will scan the URL of the current page and if it finds the stated userID, will remove it before registering itself with the jbooster servlet. It will then add the userID to the end of any page URLs it requests for download from the server. When it adds the user ID back on, it will precede it with either an ampersand mark(&) or a question mark(?). This parameter is intended for use on web sites which use URL rewriting to pass user IDs and session information between browser and server. The contents of the parameter will need to be set in the same way the URLs are rewritten for this to work properly (ie via a CGI script or something similar). An example might make all of this clearer.


The url of a car database search page might be:
http://www.cardatabase.com/cgi-bin/cars.cgi?viewsearch=1&uid=jbrown

The corresponding userID parameter would be <PARAM name="userID" value="uid=jbrown">
The jbooster servlet would receive the following as the applet id/profile name:
/cgi-bin/cars.cgi?viewsearch=1&


The jbooster servlet would then send the appropriate profile back to the applet. The applet will in such a case, before downloading each page, add the user ID to the end of each URL it downloads. So if the profile it receives includes the URL:
/cgi-bin/cars.cgi?viewpicture=1235

this would be downloaded as:
http://www.cardatabase.com/cgi-bin/cars.cgi?viewpicture=1235&uid=jbrown

Of course though the parameter is called the userID parameter it could just as easily be used to hold session IDs or some other information.
NB. The jbooster applet will indiscriminately remove what is contained in the userID parameter, and then add it on to each subsequent URL it receives in its profile from the servlet. Be careful when using this parameter.

truncateURL Parameter
The truncateURL parameter looks like this:
<PARAM name="truncateURL" value="true">

The action of this parameter is much simpler than that of userID. It will merely cut off anything after the URL of the current page, before it registers itself with the jbooster servlet.

http://www.cardatabase.com/cgi-bin/cars.cgi?moreDetails=true&carID=12234&uid=1235
will be registered with the servlet as:
/cgi-bin/cars.cgi

This can be used in conjunction with the userID parameter such that pages pre-downloaded according to links profile information would be appended with the userID in the userID parameter.

removeFromURL Parameter
The removeFromURL parameter looks like this:
<PARAM name="removeFromURL" value="fruit=banana">

The action of this parameter is different to truncateURL in that it will remove from the URL only a specified string of text.
http://www.cardatabase.com/cgi-bin/cars.cgi?moreDetails=true&carID=12234&4WD=true
With <PARAM name="removeFromURL" value="carID=12234">

Will be registered with the servlet as:
/cgi-bin/cars.cgi?moreDetails=true&&4WD=true

This can also be used in conjunction with the userID parameter such that pages downloaded according to profile information would be appended with the userID in the userID parameter.

Other Parameters

filex Parameter
This parameter allows the jbooster applet to ignore profile information and download a pre-determined list of pages. This could be useful when building and testing your site. It could also be used to direct jbooster to download a page that the user will never actually go to. Such a page might merely hold images that are used throughout the site.

Another scenario in which this parameter could be used, is where there are only a few possible destinations for the user from the current page. As an example, an e mail form page usually results in either a "mail was sent successfully" or "mail could not be sent," page.

Once again, if the site uses URL rewriting it is possible to dynamically determine this parameter, and it can be used in conjunction with the userID parameter.

The format of the filex parameter is:

<PARAM name="file0" value="/apple.html">
<PARAM name="file1" value="/banana.html">
<PARAM name="file2" value="vegetables/carrot.html">

The parameters must be named from 0 upwards. If there is a break in the sequence, jbooster will ignore any file parameters after the break. Links can be document relative or site root relative. Any links to external web sites (on different sites) will not be loaded.

servletPath Parameter
By default jbooster and the adminApplet assume that the jbooster servlet is located at the URL:
www.mywebsite.com/servlets/swbooster.JBServlet
(where www.mywebsite.com is the URL of your site.)


(NB there is no need to add a ".class" extension to the end of JBServlet. Also java needs a period(.) not a slash(/) between swbooster and JBServlet. The period tells Java that JBServlet is part of a package called swbooster).

Should this not be the case, say if swbooster.JBServlet is in a directory called "other" within the servlets directory, you would need to add this parameter to each applet.
<PARAM name = "servletPath" value="/servlets/other/swbooster.JBServlet">

The format of the servletPath parameter is:
<PARAM name="servletPath" value="pathtoJBServlet">
(document or site root relative URLs will work. But site root relative is recommended.)

 

 

Using Java Console

 

Most Java enabled web browsers have a "Java Console." Java error messages as well as other information will often be displayed here. The console allows the user to see what is happening inside the Java virtual machine on their web browser. If the "Send Output toConsole" box is checked on the jbooster control panel, a log and and any error messages from the applets operation's on that page will be posted to the console. If the site is running a demonstration version of jbooster, the applet will display the date on which jbooster will expire in the console.

Some versions of Netscape and Internet Explorer are different, but in general the Java console can be enabled and displayed in the following way:

Internet Explorer:
to enable - Tools>>Internet Options>>Advanced>>Java VM - Use Java Console (will need to restart computer)
to display - View>>Java Console

Netscape Navigator:
to enable - by enabling Java, the console should automatically be enabled. To enable Java - Edit>>Preferences>>Advanced>>enable Java
to display - Tasks>>Tools>>Java Console or Communicator>>Tools>>Java Console

Tips

 

  • The jbooster applet should be placed at the bottom of each page for best performance. Just before the closing body tag (</body>) is good.
    (If desired a web development tool such as Macromedia Dreamweaver can be used to replace all the </body> tags in the site with the applet tags and the </body> tag. This can speed up installing jbooster on your web site. The adminstrator should however be careful to avoid putting the applet tags on each frame in a frameset.)

  • On the site's opening page do not use the "Auto Determine Download Start Time," instead set the Pre-Load Delay to approximately 2/3 of that page's download time on a normal connection. On the other pages use "Auto Determine Download Start Time" with no Pre-Load Delay.

  • jbooster works better on pages with many small image/non-image files, rather than pages with a few large files.

  • There are no major drawbacks in leaving the servlet parameters Max. No. of Pages to Track and Links Profile Max Size at their maximum settings.

  • Streaming audio/video and shockwave/flash files can handle their own download. jbooster can of course download them but if the user clicks on the link before the file has downloaded completely, the browser will have to start the download again. By contrast, shockwave and streaming audio/video, can begin even if only partially downloaded, if they are handling their own download. If the file size is small it should be handled by jbooster. If it is large, consider setting the Other Files to Load applet parameter to 0 or a low setting. This may be particularly true where the opening page of a web site contains a Flash movie, and the Auto Determine Download Start Time box is checked..

  • Be sure to use the truncateURL, userID, and removeFromURL parameters if you are using forms that generate unique URLs. (See HTML Parameters.) Otherwise your site can quickly use up the maximum 500 page profile allocation. If jbooster has been added to the site using a footer/asp or similar include methods, it can be easy to overlook that pages that contain forms may need html paramters set using the same cgi/asp or include technology.

Setting HTML Parameters

 

The jbooster applet need not be at the web site root necessarily. To change where the web page loads it from the CODEBASE tag needs to be edited. Set at "/" it will look for at at web site root. If set to "." it will look for in the same directory as the current page. In other situations it can be set much the same as you might set as image tag, document relative or site root relative. There is no need to put a trailing "/" however. Nor is there a need to put "jbooster.jar" since the ARCHIVE tag sets this.

Applet parameters set from the html page are placed between the applet opening and closing tags, and take the following format.
<PARAM name="fruit" value="banana">

In the situation where the userID parameter is set with , UID=madonna, and the servletPath parameter with, /servlets/jstuff/swbooster.JBServlet, the entire applet code on the html page would be as follows:

<APPLET

ARCHIVE = "jbooster.jar"
CODEBASE = "/"
CODE = "swbooster.Jbooster.class"
NAME = "jbooster"
WIDTH = 0
HEIGHT = 0
HSPACE = 0
VSPACE = 0
>

<PARAM name="userID" value="UID=madonna">
<PARAM name="servletPath" value="/servlets/jstuff/swbooster.JBServlet">

 

</APPLET>

 

Servlet Software

Servlet software comes in two forms, stand alone Java and servlet enabled servers, and servlet add-ons for existing web servers. These companies all provide servlet software that can be downloaded from their web sites.

http://www.caucho.com - RESIN (Stand alone server and add on)
http://www.allaire.com - JRUN (Stand alone server)
http://www.sun.com/software/jwebserver - Java Web Server (Stand alone server)
http://jakarta.apache.org - Tomcat (add on)

Contact

Any questions, comments, or problems regarding jbooster should be directed to:
support@jstuff.net
http://www.jstuff.net