Date: 2004-01-27T13:38:58 Editor: 203.45.72.167 <> Wiki: Apache Geronimo Wiki Page: Architecture/WebContainer URL: http://wiki.apache.org/geronimo/Architecture/WebContainer
no comment Change Log: ------------------------------------------------------------------------------ @@ -2,12 +2,15 @@ [[TableOfContents]] = Overview = + The implementation of the Geronimo web tier will be guided by the use cases outlined below. It is the intent of this project to meet these use-cases without resorting to implementation specific configuration. = Use Cases = + == Webapp Deployment == + A webapplication in either EAR, WAR or unpacked format is deployed by standard geronimo mechanisms into the default geronimo web container. All filters, servlets and listeners will be able to be configured from the standard servlet 2.4 web.xml deployment descriptor. EJBs deployed within an EAR that use link resolution should also be able to be resolved. @@ -19,6 +22,7 @@ Optional WEB-INF/"impl"-web.xml files may be used for Jetty/Tomcat/etc specific configuration, but their use will be discouraged for all but exceptional cases. == Connector Configuration == + The default and/or additional HTTP connectors for the default geronimo web container will be configured and managed via standard geronimo mechanisms. The majority of common parameters, statistics and JSR77 lifecycle commands for HTTP connectors will be able to be managed without using implementation specific configuration or @@ -32,6 +36,7 @@ == Virtual hosts == + Virtual hosts must be able to be defined within geronimo web containers, defined by one or more host and/or domain names. Virtual hosts may be configured for logging, security, statistics, etc. @@ -41,6 +46,7 @@ == Physical hosts == + The deployment of a web app may be targetted deploy against a specific subset of web connectors, so that it will be available only on specific physical interfaces, ports, protocols etc. Typically this will be to allow additional network security to be applied to administration @@ -48,13 +54,16 @@ == Web Component Dependencies == + It will be possible to define dependencies between web components and web applications: + * A web connector may be dependent one or more web applications. Thus until all the webapps are started, a dependent web connector will not be started. If the web application is stopped, then the dependent web connector will also be stopped and the node will be unavailable. This will allow a geronimo node to enter/leave a web cluster based on application availability rather than connector availability. * A webapp may be dependent on another webapp, so that a webapp that uses the resources of another will only be started if the webapp on which it depends is started. == Web Services == + Other geronimo components may define a web service interfaces. In order to deploy these components, some web infrastructure (connectors, SOAP servlet) may need to be initialized, perhaps dynamically. Ideally this will not be within the default web container, as this is unlikely to have desirable @@ -67,8 +76,10 @@ == Components == + The geronimo web tier will be composed of JSR77 components that may be aggregated into various configurations. These subservices will include: + * Web applications: Directories, WARs, WARs within EARs, dynamically created * Web connectors: HTTP, HTTPS, AJP, etc. * Web request logs: NCSA format, file, DB, etc. @@ -76,6 +87,7 @@ * Realms: JACC, Single sign on. * Web container: A collection of other web components. * Virtual host: A partitioning of a web container + These components may be implemented as components only for the purposes of Geronimo configuration and management. The actual implementation may actually be decomposed differently (or not at all), but such details will be hidden from the average @@ -83,6 +95,7 @@ == Web Container == + A web container is the deployment target of a webapplication. All webapplications that are deployed in the same web container will share the following services and configuration: @@ -92,17 +105,16 @@ * realm * session manager * collection of virtual hosts -A Geronimo server may have multiple web containers deployed. A single web container may -be configured as the default web container for the server. -All web components may optionally name (by ObjectName) the web container they are for. If +A Geronimo server may have multiple web containers deployed. A single web container may +be configured as the default web container for the server. All web components may optionally name (by ObjectName) the web container they are for. If a web component does not name a web container, then it is for the default container. - Only ServletContexts deployed within the same web container are visible to the ServletContext.getContext() API. == Virtual Host == + A web container may be partitioned into virtual hosts, each which may be configured with: * A primary host name. This is the name used to identify the virtual host within the container. @@ -117,6 +129,7 @@ == Configuration == + Web applications will use a geronimo-web.xml file for their geronimo specific configuration. They may also have impl-web.xml for implementation dependent configuration, but this is to be discouraged in all but exceptional cases.