|
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).
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.
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.
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.
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".
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. |
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.)
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
- 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.
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
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)
Any questions,
comments, or problems regarding jbooster should be directed to:
support@jstuff.net
http://www.jstuff.net
|