Apache Jakarta
Apache Jakarta
Tomcat
Tomcat
20041058
20041058
Suh
Suh
,
,
Junho
Junho
Road Map
Road Map
Tomcat Overview
Tomcat Overview
History
History
What is Tomcat?
What is Tomcat?
Servlet
Servlet
Container
Container
Web Server Component
Web Server Component
Tomcat Execution Mode
Tomcat Execution Mode
Tomcat How it works?
Tomcat Overview
Tomcat Overview
What we need to make more dynamic web What we need to make more dynamic web
documents? documents?
Server that supports JSP, ASP, database etc Server that supports JSP, ASP, database etc……
We concentrates on SomethingWe concentrates on Something that support JSP.that support JSP.
Something is
Something is TomcatTomcat
Why it is popular??Why it is popular??
GNU license,
GNU license, it`sit`s free!free!
Road Map
Road Map
Tomcat Overview
Tomcat Overview
History
History
What is Tomcat?
What is Tomcat?
Servlet
Servlet
Container
Container
Web Server Component
Web Server Component
Tomcat Execution Mode
Tomcat Execution Mode
History
History
Before Tomcat
Before Tomcat
Competition of CGI
Competition of CGI
CGI(Perl
CGI(Perl, C), C) 1 processor/1 request1 processor/1 request Fast CGI
Fast CGI 1 processor/same request1 processor/same request ASP,PHP
ASP,PHP 1 thread/1 request script1 thread/1 request script Servlet
Servlet 1 thread/1 request compile1 thread/1 request compile JSP
JSP 1 thread/1 request 2 compile1 thread/1 request 2 compile
Born Tomcat
Born Tomcat
Servlet
Servlet 2.2api + 2.2api + jspjsp1.1api = Tomcat 3.11.1api = Tomcat 3.1 Servlet
Servlet apiapi 2.3 + JSP api2.3 + JSP api 1.2 = Tomcat 4.01.2 = Tomcat 4.0 Servlet
Servlet apiapi 2.4 + JSP api2.4 + JSP api 2.0 = Tomcat 5.0(latest)2.0 = Tomcat 5.0(latest)
Tomcat 3.1
Tomcat 3.1
including servletincluding servlet reloadingreloading
WAR file support and added connectors for the IIS WAR file support and added connectors for the IIS
and Netscape web servers and Netscape web servers
Tomcat 4.0
Tomcat 4.0
Implements a new servletImplements a new servletcontainer (called Catalina) that is container (called Catalina) that is based on completely new architecture
based on completely new architecture
JMX based administration features JMX based administration features
JSP and Struts based administration web application JSP and Struts based administration web application
New Coyote connector (HTTP/1.1, AJP 1.3 and JNI support) New Coyote connector (HTTP/1.1, AJP 1.3 and JNI support)
Rewritten Jasper JSP page compiler Rewritten Jasper JSP page compiler
Performance and memory efficiency improvements Performance and memory efficiency improvements
Enhanced manager application support for integration with Enhanced manager application support for integration with development tools
development tools
Custom Ant tasks to interact with the manager application Custom Ant tasks to interact with the manager application directly from
directly from build.xmlbuild.xmlscriptsscripts
Tomcat 5.0
Tomcat 5.0
resulting in improved performance, stability, and total cost of resulting in improved performance, stability, and total cost of ownership
ownership
Performance optimizations and reduced garbage collection Performance optimizations and reduced garbage collection
RefactoredRefactoredapplication deployerapplication deployer, with an optional standalone , with an optional standalone deployerdeployer allowing validation and compilation of a web application before allowing validation and compilation of a web application before putting putting it in production
it in production
Complete server monitoring using JMX and the manager web Complete server monitoring using JMX and the manager web application
application
Scalability and reliability enhancements Scalability and reliability enhancements
Improved TaglibsImproved Taglibshandling, including advanced pooling and tag handling, including advanced pooling and tag plugins
plugins
Improved platform integration, with native Windows and Unix Improved platform integration, with native Windows and Unix wrappers
wrappers
Embedding using JMX Embedding using JMX
Enhanced Security Manager support Enhanced Security Manager support
Integrated session clustering Integrated session clustering
Road Map
Road Map
Tomcat Overview
Tomcat Overview
History
History
What is Tomcat?
What is Tomcat?
Servlet
Servlet
Container
Container
Web Server Component
Web Server Component
Tomcat Execution Mode
Tomcat Execution Mode
Tomcat How it works?
Tomcat How it works?
What is Tomcat?
What is Tomcat?
Tomcat
Java-based web server + servlet container w/ JSP Most popular!!
Tomcat Current Version
4.1.27(stable) 5.0.12(beta)
Tomcat Component
Mysql, java, Tomcat4, ant, apache, tomcat connector&apr, mod_jk, jdbc
Road Map
Road Map
Tomcat Overview
Tomcat Overview
History
History
What is Tomcat?
What is Tomcat?
Servlet
Servlet
Container
Container
Web Server Component
Web Server Component
Tomcat Execution Mode
Tomcat Execution Mode
Tomcat How it works?
Tomcat How it works?
Servlet
Servlet
Container
Container
Servlet
Servlet
containers can be partitioned as:
containers can be partitioned as:
Standalone: Integral part of web server (as when using Standalone: Integral part of web server (as when using a Java
a Java--based web server)based web server)
Add-Add-on component to web server: Java container on component to web server: Java container implementation + web server
implementation + web server pluginplugin
ServletServletcode runs inside Java containercode runs inside Java container
Java container runs inside of JVMJava container runs inside of JVM
Road Map
Road Map
Tomcat Overview
Tomcat Overview
History
History
What is Tomcat?
What is Tomcat?
Servlet
Servlet
Container
Container
Web Server Component
Web Server Component
Tomcat Execution Mode
Tomcat Execution Mode
Tomcat How it works?
Tomcat How it works?
Web Server Component
Web Server Component
Web
Web
Server(Apache
Server(Apache
)
)
HTTP requests by returning
HTTP requests by returning ‘‘webweb’’resources (e.g., resources (e.g., HTML files, images,
HTML files, images, applets,CGIapplets,CGI output, output, ……) over the ) over the
Internet Internet
Servlet
Servlet
Container(Tomcat
Container(Tomcat
)
)
runtime shell that invokes
runtime shell that invokes servletsservlets on behalf of clientson behalf of clients software that runs
software that runs servletsservlets and manages them and manages them through their lifecycle
Road Map
Road Map
Tomcat Overview
Tomcat Overview
History
History
What is Tomcat?
What is Tomcat?
Servlet
Servlet
Container
Container
Web Server Component
Web Server Component
Tomcat Execution Mode
Tomcat Execution Mode
Tomcat How it works?
Tomcat How it works?
Tomcat Execution Mode
Tomcat Execution Mode
Stand
Stand
-
-
alone mode
alone mode
●
●Not as fast as Apache for static pagesNot as fast as Apache for static pages
●
●Not as configurable as ApacheNot as configurable as Apache
●
●Not as robust as ApacheNot as robust as Apache
●
●May not support functionality found only in Apache May not support functionality found only in Apache modules (e.g.,
modules (e.g., PerlPerl, PHP, security), PHP, security)
●
Tomcat Execution Mode
Tomcat Execution Mode
In
In
-
-
process add
process add
-
-
on
on
mode
mode
Suitable for multi
Suitable for multi--threaded single process serversthreaded single process servers Provides good performance
Provides good performance Limited in scalability
Limited in scalability
Out
Out
-
-
of
of
-
-
process add
process add
-
-
on mode
on mode
Poorer response time than for in
Poorer response time than for in--process process servletservlet container
container
Better scalability Better scalability Better stability Better stability
Road Map
Road Map
Tomcat Overview
Tomcat Overview
History
History
What is Tomcat?
What is Tomcat?
Servlet
Servlet
Container
Container
Web Server Component
Web Server Component
Tomcat Execution Mode
Tomcat Execution Mode
Tomcat How it works?
Tomcat how it works?
Tomcat how it works?
Tomcat interoperates with Apache Tomcat interoperates with Apache Apache in standalone mode
Tomcat in out-of-process add-on mode
Client
http://server/path/to/resource
Tomcat
AJPV12/13 TCP/8007
2
resource
5
3
4
Apache
adapter
1
Reference
Reference
http://http://jakarta.apache.org/tomcat/
http://http://jakarta.apache.org/tomcat/