source: nutchez-0.1/tomcat/webapps/docs/funcspecs/fs-admin-apps.html @ 186

Last change on this file since 186 was 66, checked in by waue, 16 years ago

NutchEz - an easy way to nutch

File size: 16.2 KB
Line 
1<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Catalina Functional Specifications - Administrative Apps - Overall Requirements</title><meta value="Craig McClanahan" name="author"><meta value="craigmcc@apache.org" name="email"></head><body vlink="#525D76" alink="#525D76" link="#525D76" text="#000000" bgcolor="#ffffff"><table cellspacing="0" width="100%" border="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img border="0" alt="
2      Catalina Functional Specifications
3    " align="right" src="../images/tomcat.gif"></a></td><td><font face="arial,helvetica,sanserif"><h1>Apache Tomcat 6.0</h1></font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img border="0" alt="Apache Logo" align="right" src="../images/asf-logo.gif"></a></td></tr></table><table cellspacing="4" width="100%" border="0"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr size="1" noshade></td></tr><tr><!--LEFT SIDE NAVIGATION--><td nowrap="true" valign="top" width="20%"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Functional Specs</a></li></ul><p><strong>Administrative Apps</strong></p><ul><li><a href="fs-admin-apps.html">Overall Requirements</a></li><li><a href="mbean-names.html">Tomcat MBean Names</a></li><li><a href="fs-admin-objects.html">Administered Objects</a></li><li><a href="fs-admin-opers.html">Supported Operations</a></li></ul><p><strong>Internal Servlets</strong></p><ul><li><a href="fs-default.html">Default Servlet</a></li><li><a href="fs-invoker.html">Invoker Servlet</a></li></ul><p><strong>Realm Implementations</strong></p><ul><li><a href="fs-jdbc-realm.html">JDBC Realm</a></li><li><a href="fs-jndi-realm.html">JNDI Realm</a></li><li><a href="fs-memory-realm.html">Memory Realm</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td align="left" valign="top" width="80%"><table cellspacing="4" width="100%" border="0"><tr><td valign="top" align="left"><h1>Catalina Functional Specifications</h1><h2>Administrative Apps - Overall Requirements</h2></td><td nowrap="true" valign="top" align="right"><small><a href="printer/fs-admin-apps.html"><img alt="Printer Friendly Version" border="0" src="../images/printer.gif"><br>print-friendly<br>version
4                    </a></small></td></tr></table><table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Overview"><strong>Overview</strong></a></font></td></tr><tr><td><blockquote>
5
6
7  <table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#828DA6"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
8
9    <p>The purpose of this specification is to define high level requirements
10    for administrative applications that can be used to manage the operation
11    of a running Tomcat 6 container.  A variety of <em>Access Methods</em>
12    to the supported administrative functionality shall be supported, to
13    meet varying requirements:</p>
14    <ul>
15    <li><em>As A Scriptable Web Application</em> - The existing
16        <code>Manager</code> web application provides a simple HTTP-based
17        interface for managing Tomcat through commands that are expressed
18        entirely through a request URI.  This is useful in environments
19        where you wish to script administrative commands with tools that
20        can generate HTTP transactions.</li>
21    <li><em>As An HTML-Based Web Application</em> - Use an HTML presentation
22        to provide a GUI-like user interface for humans to interact with the
23        administrative capabilities.</li>
24    <li><em>As SOAP-Based Web Services</em> - The operational commands to
25        administer Tomcat are made available as web services that utilize
26        SOAP message formats.</li>
27    <li><em>As Java Management Extensions (JMX) Commands</em> - The operational
28        commands to administer Tomcat are made available through JMX APIs,
29        for integration into management consoles that utilize them.</li>
30    <li><em>Other Remote Access APIs</em> - Other remote access APIs, such
31        as JINI, RMI, and CORBA can also be utilized to access administrative
32        capabilities.</li>
33    </ul>
34
35    <p>Underlying all of the access methods described above, it is assumed
36    that the actual operations are performed either directly on the
37    corresponding Catalina components (such as calling the
38    <code>Deployer.deploy()</code> method to deploy a new web application),
39    or through a "business logic" layer that can be shared across all of the
40    access methods.  This approach minimizes the cost of adding new
41    administrative capabilities later -- it is only necessary to add the
42    corresponding business logic function, and then write adapters to it for
43    all desired access methods.</p>
44
45    <p>The current status of this functional specification is
46    <strong>PROPOSED</strong>.  It has not yet been discussed and
47    agreed to on the TOMCAT-DEV mailing list.</p>
48
49  </blockquote></td></tr></table>
50
51
52  <table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#828DA6"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="External Specifications"><strong>External Specifications</strong></a></font></td></tr><tr><td><blockquote>
53
54    <p>The implementation of this functionality depends on the following
55    external specifications:</p>
56    <ul>
57    <li><a href="http://java.sun.com/products/jdk/idl/index.html">Java
58        IDL</a> (for CORBA, included in the JDK)</li>
59    <li><a href="http://java.sun.com/products/JavaManagement/index.html">
60        Java Management Extensions</a></li>
61    <li><a href="http://java.sun.com/products/rmi/index.html">Remote
62        Method Invocation</a> (Included in the JDK)</li>
63    </ul>
64
65  </blockquote></td></tr></table>
66
67
68  <table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#828DA6"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Implementation Requirements"><strong>Implementation Requirements</strong></a></font></td></tr><tr><td><blockquote>
69
70    <p>The implementation of this functionality shall conform to the
71    following requirements:</p>
72    <ul>
73    <li>To the maximum extent feasible, all administrative functions,
74        and the access methods that support them, shall run portably
75        on all platforms where Tomcat 6 itself runs.</li>
76    <li>In a default Tomcat distribution, all administrative capabilities
77        shall be disabled.  It shall be necessary for a system
78        administrator to specifically enable the desired access methods
79        (such as by adding a username/password with a specific role to
80        the Tomcat user's database.</li>
81    <li>Administrative functions shall be realized as direct calls to
82        corresponding Catalina APIs, or through a business logic layer
83        that is independent of the access method used to initiate it.</li>
84    <li>The common business logic components shall be implemented in
85        package <code>org.apache.catalina.admin</code>.</li>
86    <li>The common business logic components shall be built as part of the
87        standard Catalina build process, and made visible in the
88        Catalina class loader.</li>
89    <li>The Java components required for each access method shall be
90        implemented in subpackages of <code>org.apache.catalina.admin</code>.
91        </li>
92    <li>The build scripts should treat each access method as optional,
93        so that it will be built only if the corresponding required
94        APIs are present at build time.</li>
95    <li>It shall be possible to save the configured state of the running
96        Tomcat container such that this state can be reproduced when the
97        container is shut down and restarted.</li>
98    <li>Adminstrative commands to start up and shut down the overall
99        Tomcat container are <strong>out of scope</strong> for the
100        purposes of these applications.  It is assumed that other
101        (usually platform-specific) mechanisms will be used for container
102        startup and shutdown.</li>
103    </ul>
104
105  </blockquote></td></tr></table>
106
107
108</blockquote></td></tr></table><table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Dependencies"><strong>Dependencies</strong></a></font></td></tr><tr><td><blockquote>
109
110
111  <table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#828DA6"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Environmental Dependencies"><strong>Environmental Dependencies</strong></a></font></td></tr><tr><td><blockquote>
112
113    <p>The following environmental dependencies must be met in order for
114    administrative applications to operate correctly:</p>
115    <ul>
116    <li>For access methods that require creation of server sockets, the
117        appropriate ports must be configured and available.</li>
118    </ul>
119
120  </blockquote></td></tr></table>
121
122
123  <table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#828DA6"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Container Dependencies"><strong>Container Dependencies</strong></a></font></td></tr><tr><td><blockquote>
124
125    <p>Correct operation of administrative applications depends on the
126       following specific features of the surrounding container:</p>
127    <ul>
128    <li>To the maximum extent feasible, Catalina components that offer
129        direct administrative APIs and property setters shall support
130        "live" changes to their operation, without requiring a container
131        restart.</li>
132    </ul>
133
134  </blockquote></td></tr></table>
135
136
137  <table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#828DA6"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="External Technologies"><strong>External Technologies</strong></a></font></td></tr><tr><td><blockquote>
138
139    <p>The availability of the following technologies can be assumed
140    for the implementation and operation of the various access methods
141    and the corresponding administrative business logic:</p>
142    <ul>
143    <li><a href="http://java.sun.com/j2se/">Java 2 Standard Edition</a>
144        (Version 1.2 or later)</li>
145    <li><a href="http://www.jcp.org/jsr/detail/154.jsp">Servlet 2.4</a>
146        (supported natively by Tomcat 6)</li>
147    <li><a href="http://www.jcp.org/jsr/detail/152.jsp">JavaServer Pages 2.0</a>
148        (supported natively by Tomcat 6)</li>
149    <li><a href="http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html">JavaServer Pages Standard Tag Library 1.0 (Jakarta Taglibs-Standard 1.0.3)</a></li>
150    <li><a href="http://jakarta.apache.org/struts/">Struts Framework</a>
151        (Version 1.0) - MVC Framework for Web Applications</li>
152    <li><strong>TO BE DETERMINED</strong> - Application for hosting SOAP
153        based web services</li>
154    </ul>
155
156  </blockquote></td></tr></table>
157
158
159</blockquote></td></tr></table><table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Functionality"><strong>Functionality</strong></a></font></td></tr><tr><td><blockquote>
160
161
162  <table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#828DA6"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Properties of Administered Objects"><strong>Properties of Administered Objects</strong></a></font></td></tr><tr><td><blockquote>
163
164  <p>Functional requirements for administrative applications are specified
165  in terms of <em>Administered Objects</em>, whose definitions and detailed
166  properties are listed <a href="fs-admin-objects.html">here</a>.  In general,
167  Administered Objects correspond to components in the Catalina architecture,
168  but these objects are defined separately here for the following reasons:</p>
169  <ul>
170  <li>It is possible that the administrative applications do not expose
171      every possible configurable facet of the underlying components.</li>
172  <li>In some cases, an Administered Object (from the perspective of an
173      administrative operation) is realized by more than one Catalina
174      component, at a finer-grained level of detail.</li>
175  <li>It is necessary to represent the configuration information for a
176      component separately from the component itself (for instance, in
177      order to store that configuration information for later use).</li>
178  <li>It is necessary to represent configuration information (such as
179      a Default Context) when there is no corresponding component instance.
180      </li>
181  <li>Administered Objects, when realized as Java classes, will include
182      methods for administrative operations that have no correspondence
183      to operations performed by the corresponding actual components.</li>
184  </ul>
185
186  <p>It is assumed that the reader is familiar with the overall component
187  architecture of Catalina.  For further information, see the corresponding
188  Developer Documentation.  To distinguish names that are used as both
189  <em>Administered Objects</em> and <code>Components</code>, different
190  font presentations are utilized.  Default values for many properties
191  are listed in [square brackets].</p>
192
193  </blockquote></td></tr></table>
194
195
196  <table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#828DA6"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Supported Administrative Operations"><strong>Supported Administrative Operations</strong></a></font></td></tr><tr><td><blockquote>
197
198  <p>The administrative operations that are available are described in terms
199  of the corresponding Administered Objects (as defined above), in a manner
200  that is independent of the access method by which these operations are
201  requested.  In general, such operations are relevant only in the context
202  of a particular Administered Object (and will most likely be realized as
203  method calls on the corresponding Administered Object classes), so they
204  are organized based on the currently "focused" administered object.
205  The available Supported Operations are documented
206  <a href="fs-admin-opers.html">here</a>.</p>
207
208  </blockquote></td></tr></table>
209
210
211  <table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#828DA6"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Access Method Specific Requirements"><strong>Access Method Specific Requirements</strong></a></font></td></tr><tr><td><blockquote>
212
213  <h5>Scriptable Web Application</h5>
214
215  <p>An appropriate subset of the administrative operations described above
216  shall be implemented as commands that can be performed by the "Manager"
217  web application.  <strong>FIXME</strong> - Enumerate them.</p>
218
219  <p>In addition, this web application shall conform to the following
220  requirements:</p>
221  <ul>
222  <li>All request URIs shall be protected by a security constraint that
223      requires security role <code>manager</code> for processing.</li>
224  <li>The default user database shall <strong>not</strong> contain any
225      user that has been assigned the role <code>manager</code>.</li>
226  </ul>
227
228  <h5>HTML-Based Web Application</h5>
229
230  <p>The entire suite of administrative operations described above shall be
231  made available through a web application designed for human interaction.
232  In addition, this web application shall conform to the following
233  requirements:</p>
234  <ul>
235  <li>Must be implemented using servlet, JSP, and MVC framework technologies
236      described under "External Technologies", above.</li>
237  <li>Prompts and error messages must be internationalizable to multiple
238      languages.</li>
239  <li>Rendered HTML must be compatible with Netscape Navigator (verson 4.7
240      or later) and Internet Explorer (version 5.0 or later).</li>
241  </ul>
242
243  </blockquote></td></tr></table>
244
245
246</blockquote></td></tr></table><table cellpadding="2" cellspacing="0" border="0"><tr><td bgcolor="#525D76"><font face="arial,helvetica.sanserif" color="#ffffff"><a name="Testable Assertions"><strong>Testable Assertions</strong></a></font></td></tr><tr><td><blockquote>
247
248  <p><strong>FIXME</strong> - Complete this section.</p>
249
250</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr size="1" noshade></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font size="-1" color="#525D76"><em>
251        Copyright &copy; 1999-2008, Apache Software Foundation
252        </em></font></div></td></tr></table></body></html>
Note: See TracBrowser for help on using the repository browser.