You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by pi...@locus.apache.org on 2000/09/22 01:22:24 UTC
cvs commit: jakarta-tomcat-4.0/invocation README
pier 00/09/21 16:22:23
Added: invocation README
Log:
Let's describe what this Invocation stuff is.
Revision Changes Path
1.1 jakarta-tomcat-4.0/invocation/README
Index: README
===================================================================
-------------------------------------------------------------------------
APACHE INVOCATION README
-------------------------------------------------------------------------
Abstract:
---------
Invocation is an abstraction of a generic invocation mechanism for
Java based services. It is composed of two major parts: a set of Java
classes (interfaces and exceptions) to be implemented by the service
provider, and some native code dealing with the underlying operating
system, accessing to the service thru JNI.
The Java portion of Invocation:
-------------------------------
While the usual main(String args[]) method is well suited for generic
applications, having only one entry point when developing networked
services is not enough.
In UNIX based operating systems, for example, a set of signals to be
sent to running processes expands the invocation paradigm, so that,
after the service process is usually started with a call to the
main(int argc, char *argv[]) function, signal handling provides
alternate ways to invoke the process.
For example, it usually happens that UNIX daemons upon reception of
the HUP signal, the service is stopper, configuration are re-read
from disk, and the service is started againg with the new
configurations, or, upon reception of a TERM signal, the service is
stopped (freeing all resources allocated) and the process is
terminated.
The org.apache.invocation.InvocationAbstraction interface works in
the same way. It defines three major entry points:
- start(String args[]) is the parallel to the main(String args[])
method used by applications. Command line
parameters are passed to the instance and the
service is started.
- restart() this method is called when the service must be stopped,
configurations re-read from the disk, and the service
brought back on line with the new configuration. It's
behaviour is similar to the usual behaviour of the HUP
signal in unix daemons.
- stop() this method is called before the Java VM is terminated. The
service should release all resources allocated during its
execution, save temporary data, and be prepared to exit.
It's behaviour is similar to the usual behaviour of the
TERM signal in unix daemons.
For more information on the behaviour of those methods and how they
work, please consult the JavaDOC documentation included into the
org.apache.invocation package.
The native portion of Invocation:
---------------------------------
The native portion of Invocation is made of two major components:
A system-indipendant library based on JNI handling the creation and
destruction of the Java Virtual Machine, and providing an easy way to
access to the service start(String argv[]), restart() and stop()
methods as described above.
An Operating-System dependant set of sources dealing with calls from
the underlying operating system:
- in UNIX operating systems we listen for TERM and HUP sinals, and
appropriate calls are made in the system-indipendant library to
access to the appropriate Java method in the service. This will
make the Java service behave like a standard UNIX daemon.
- in Microsoft Windows operating systems we provide two different
modes of operation: a GUI based one that will allow the user to
access to the above-mentioned methods thru a standard tray-icon
menu (there's no console allocated for the Java Process, wich is
for most of us Windows users a major pain). Another mode to operate
under Windows is thru the Win32 Service API (WinNT and Win2K only)
thru the standard Control-Panel Service tab.
Future Plans:
-------------
Fix, debug and correct (that's the first major issue), and think
about ports to different operating systems (MacOS/9, IBM...).
-------------------------------------------------------------------------
Copyright (c) 2000 The Apache Software Foundation. All rights reserved. *
- $Revision: 1.1 $
- $Date: 2000/09/21 23:22:22 $
-------------------------------------------------------------------------