Introducing Apache Tomcat 6 Mladen Turk Red Hat, Inc.

Slides:



Advertisements
Similar presentations
Introducing Apache Tomcat 6 Mladen Turk Red Hat, Inc.
Advertisements

Technology Overview JAVA Servlets CS-611 S. Witherspoon.
An architecture for webb applications, J2EE
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
Tomcat Configuration A Very, Very, Very Brief Overview.
© 2004 IBM Corporation BEA WebLogic Server Introduction and Training.
Session-01. What is a Servlet? Servlet can be described in many ways, depending on the context: 1.Servlet is a technology i.e. used to create web application.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
Java web development Servlet & Java server pages.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Java Servlets and JSP.
Apache Jakarta Tomcat Suh, Junho. Road Map Tomcat Overview Tomcat Overview History History What is Tomcat? What is Tomcat? Servlet Container.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Java Server Programming Jeff Schmitt Towson University October 15, 1998.
Understanding and Managing WebSphere V5
Tomcat Celsina Bignoli History of Tomcat Tomcat is the result of the integration of two groups of developers. – JServ, an open source.
Intro to Servlets Lec 26. Web-Based Enterprise Applications in Java Figure shows a simplified view of one application and its layers.
Fronting Tomcat with Apache Httpd Mladen Turk Red Hat, Inc.
Struts 2.0 an Overview ( )
Apache Tomcat Web Server SNU OOPSLA Lab. October 2005.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Applets & Servlets.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Java Servlets CS-422. Application Mapping Your servlet application will be mapped to a directory structure: –“myapp” maps to some directory C:/docs/apps/myapp.
Standalone Java Application vs. Java Web Application
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Shibboleth: Installation and Deployment Scott Cantor July 29, 2002 Scott Cantor July 29, 2002.
Struts: An Insiders View October Abstract Struts is the de facto standard framework for Java web applications, but where did it come from, and where.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
@ For more details visit : Opportunities for participation Modular Architecture Trace JIT compiler Interpreter Memory manager.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
Shibboleth: Installation and Deployment Scott Cantor July 29, 2002 Scott Cantor July 29, 2002.
Struts 2 introduction. Struts 2 framework Struts 2 A full-featured web application framework for the Java EE platform The Java Servlet API exposes the.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
1 G52IWS: Example Web-services Chris Greenhalgh. 2 Contents Software requirements AXIS web service run-time components Getting started with Jetty & AXIS.
Threads. Readings r Silberschatz et al : Chapter 4.
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
NJIT 1 Apache Tomcat (Version 6.0) THETOPPERSWAY.COM.
Session #2482 Implementing WebDAV Using J2EE TM and Open Source Technologies Juergen Pill Team Leader Software AG Remy Maucherat Software Engineer Sun.
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
Introduction to threads
APACHE TOMCAT WEB SERVER
Applications Active Web Documents Active Web Documents.
Object Oriented Programming in
OPERATING SYSTEM CONCEPT AND PRACTISE
Netscape Application Server
z/Ware 2.0 Technical Overview
Tomcat Celsina Bignoli
Java Servlets By: Tejashri Udavant..
Outline SOAP and Web Services in relation to Distributed Objects
Course Outcomes of Advanced Java Programming AJP (17625, C603)
Chapter 4: Threads 羅習五.
Processes The most important processes used in Web-based systems and their internal organization.
By Dr. Kodge Bheemashankar G
Outline SOAP and Web Services in relation to Distributed Objects
Knowledge Byte In this section, you will learn about:
Chapter 4: Threads.
MSIS 655 Advanced Business Applications Programming
Apache Tomcat Web Server
What’s changed in the Shibboleth 1.2 Origin
Chapter 2: System Structures
Distributed System Using Java 2 Enterprise Edition (J2EE)
Modified by H. Schulzrinne 02/15/10 Chapter 4: Threads.
Introduction to JBoss application server
Java Servlets and JSP.
PyWBEM Python WBEM Client: Overview #2
Presentation transcript:

Introducing Apache Tomcat 6 Mladen Turk Red Hat, Inc.

Agenda A brief history of time Tomcat versions Tomcat 6

What is Tomcat? Core features Additional features Servlet container JSP container HTTP server Additional features Native web server integration (AJP) Basic application server features (JNDI, JDBC, …) Clustering and session replication

What is Tomcat? Started at Sun Microsystems Reference Java Servlet and JSP implementation Donated to Apache Software Foundation in 1999 ASF TLP (Top-level Project) Since 2005 Before developed under Jakarta umbrella Apache ANT 120.000/mo. Geronimo 90.000/mo

What is Tomcat? Actively developed In average 1 release/month 10+ active committers 600.000 downloads/month (without counting mirrors) Apache ANT 120.000/mo. Geronimo 90.000/mo

Tomcat versions Major version related to Servlet/JSP Spec JVM required depends on the JVM required by spec Spec maintained by JCP (Java Community Process) Servlet/JSP Spec Apache Tomcat version 2.5 2.1 6.0.x 2.4 2.0 5.5.x 2.3 1.2 4.1.x 2.2 1.1 3.3.x

Tomcat release process Follows the ASF release guidelines Needs 3 +1 votes from the committers When “enough” work is done Release manager is volunteer Urgent releases Security related issues Not discussed publicly during report-patch-release process Private email list

Enough Tire Kicking! Can we look under the hood?

Servlet 2.5 Specification JSR-000154 Created via Java Community Process (http://jcp.org) JSE 5.0 dependency JDK 5.0 is minimum platform requirement Allow multiple url-pattern in servlet-mapping <servlet-mapping> <servlet-name>OneFancyServlet</servlet-name>     <url-pattern>/foo/*</url-pattern>     <url-pattern>/bar/*</url-pattern> </servlet-mapping>

Servlet 2.5 Specification Annotations support Alternatives to some XML entries in web.xml @Resource: Class or variable “resource injection” request @Resources: Similar as @Resource but holds the array or @Resource annotations @RunAs: Used to replace <run-as> entries in web.xml @DeclareRoles: Alternative to <security-role> in web.xml Come from JSR 250 (Common Annotations for the Java Platform)

Tomcat 6 Source Restructured code base No multiple repositories Reduced duplicate code Removed obsolete items Reduced distribution size

Tomcat 6 Distribution Restructured distribution /server/* and /shared/* are gone! /lib/* location of common libraries Windows service wrapper for WIN64 (EMT64 and IA64) Reduced distribution size

Tomcat 6 Distribution Additional components Downloadable from /extras/* Full commons-logging implementation Tomcat uses a package renamed commons-logging API implementation which is hard-coded to use the java.util.logging API. Web Services support (JSR 109) Tomcat provides factories for JSR 109 which may be used to resolve web services references. Place the generated catalina-ws.jar as well as jaxrpc.jar and wsdl4j.jar (or another implementation of JSR 109) in the Tomcat /lib/ folder.

Tomcat 6 Distribution Windows Installer Installs and setup the Tomcat as a Windows service Optionally download native tcnative-1.dll component located at heanet.ie

Running Tomcat 6 Use provided OS mechanism On Windows use tomcat6.exe and tomcat6w.exe The famous ./catalina.sh run

Running Tomcat 6 APR was not found message Fallbacks automatically to the standard Java IO implementation

Running with APR Uses Tomcat Native (tcnative) Wrapper over Apache Portable Runtime (APR) Replaces common JSE network stack

Running with APR Build or download native package Needs to be in LD_LIBRARY_PATH or PATH on Windows

How Native works The traditional model is Thread per connection Each client is assigned one thread during the connection lifetime.

How Native works Uses Thread per request During KeepAlive thread is assigned to next client

How native works Higher concurrency Able to handle 10000+ concurrent clients

How native works Sendfile support Uses OS feature for zero-copy.

The benefits of using Native Performance Uses zero-copy for static content Uses OpenSSL instead JSSE Zero GC – no Java objects are created Scalability Thread per request allows more HTTP/1.1 concurrent connections Lower CPU and memory usage

Some numbers 50 concurrent users Log scale: zoom on 4MB file serving 160 Req/Sec 60 Req/Sec

Some numbers Sendfile lowers down the memory and CPU usage

Tomcat Manager

Tomcat NIO Connector Developed on APR principles Use JSE NIO features No need for extra native package Not for static content delivery and SSL Allows thread per connection model Something NIO wasn’t designed for Extends the standard blocking Servlet model

Tomcat Advanced IO The Comet Process servlets asynchronously! Receive events when data is available for reading on the connection. Not usable with AJP (for now)

Comet events The Servlet is awaken on event BEGIN READ END Implement the org.apache.catalina.CometProcessor interface The servlet is valid until the END event BEGIN Called at the beginning of the processing of the connection. Valid until the END or ERROR events. READ Indicates that input data is available. It is not allowed to attempt reading data from the request object outside of the execution of this method. END Indicates the end of the processing Can be fired by application reload

Tomcat 6 Documentation Download Support Bug database http://tomcat.apache.org/tomcat-6.0-doc/ Download http://tomcat.apache.org/download-60.cgi Support Tomcat users mailing list http://tomcat.apache.org/lists.html Bug database We don’t make bugs but anyhow … http://tomcat.apache.org/bugreport.html

Q & A

This page intentionally left blank Mladen Turk