Assumption of WIS
Generally, a WIS consists of two parts:
- a backend WWW server,
- a client application embedded in a Web front-end page.
The below figure shows this structure in details. There, the client
application can be further divided into two parts: a user interface
part (UI) and a data access part (DA). The UI part receives input from
a user while the DA part sends the input data to the backend server
and receives a result page from there.
To realize navigational integration of WISs, a client application of
any WIS must be wrapped and be manipulated from outside. To do so, a
client application must satisfy the following constraints:
- The UI part and the DA part must be separately implemented.
- The data in the UI part must be able to be accessed and updated
by a certain wrapping technique.
- Similarly, the DA part must be able to be invoked from outside by
a wrapping technique.
Under these constraints, the WIS shown in the first figure is wrapped
as shown second figure. There, the UI part and the DA part of the
client application are wrapped by appropriate wrapper
programs. Further, we prepare a proxy executor (PE) as
a system-side server; it coordinates the behaviors of wrappers when
executing a client application for the navigational integration.
This figure shows also how the PE coordinates wrappers for running a
wrapped client-application. That is,
- firstly, a user tries to access the UI part of a WIS; this access
is sent to PE at first, and then is redirected to the wrapper of the
UI part.
- By the second constraint, this wrapper can rewrite data of the UI
part appropriately. A page of this UI is then displayed to the user.
- User gives an input or clicks a link in the page. This action is
redirected to the UI through its wrapper. Then the UI passes back a
service request to the DA part through PE.
- By the third constraint, the wrapper of the DA part can
convert this request to a native form, and passes it to the DA part.
The DA will then generate a result page.
In this way, a wrapped WIS works in the same way as a native WIS
does. The exception is that result-pages of wrapped WISs can be
rewritten accordingly before being passed to users.
Experience in Wrapping
We have had tests in wrapping various client applications, i.e.,
ordinary Web documents, CGI-forms and java applets. Developing
wrappers for Web documents or CGI-forms can be done easily by letting
wrappers rewrite contents of HTML files. However, developing wrappers
for Java applets is nontrivial. To satisfy the required three
constraints, an original java applet must: (i) implement methods of
its UI part and DA part separately, (ii) provides public methods
to access and update data of the UI part, and (iii) provides public
methods that can be invoked to receive a request to the DA part.
In implementation, if a developer owns all necessary Java class files
of a given Java applet, a wrapper for it can be developed by using the
inheritance technique from the original classes. If not, the wrapper
can be developed by writing new java classes for both UI part and DA
part, which (i) dynamically download original class files from remote
sites, (ii) get the exported interfaces of the class files via the
java reflection API, and (iii) create an instance of the original
class and invoke its methods. The detail of implementation can be seen
in [JavaBeans,JavaSecrets].
[JavaBeans] D. Brookshier. JavaBeans Developer's
Reference. New Riders Publishing, Indianapolis Indiana, 1997.
[JavaSecrets] E. R. Harold. Java Secrets. IDG
Books Worldwide, Inc, 1997.