slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Introductions PowerPoint Presentation
Download Presentation
Introductions

Loading in 2 Seconds...

play fullscreen
1 / 26

Introductions - PowerPoint PPT Presentation


  • 65 Views
  • Uploaded on

Introductions. Two decades in software development Software Engineering Solutions, Inc. www.swengsol.com Technical Reviewer: Core JavaServer Faces 3 rd Edition “Top 1000” reviewer at Amazon.com. Why another Tomcat book?. Current focus is on administrators

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Introductions' - byrd


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introductions
Introductions
  • Two decades in software development
  • Software Engineering Solutions, Inc. www.swengsol.com
  • Technical Reviewer: Core JavaServer Faces 3rd Edition
  • “Top 1000” reviewer at Amazon.com.
why another tomcat book
Why another Tomcat book?
  • Current focus is on administrators
  • Tend to view Tomcat as a black box
  • Exactly HOW does it do what it does?
pieces of the puzzle
Pieces of the Puzzle
  • Java EE
  • HTML over HTTP
  • Servlet Container.
uniform resource locators
Uniform Resource Locators

context

path

servlet

path

path

info

query

string

path

parameters

scheme

host

port

http://

www.swengsol.com

:80

/myWebApp

?id=x123

;jsessionid=…

/invoices/EditInvoice

/adobe

servlet specification
Servlet Specification
  • WAR file format
  • Servlet
  • Filter
  • Listener
  • Session
  • web.xml
slide11

The Tomcat Servlet Container

Nested Components

Top Level Components

Containers

Connectors

slide12

Container Overview

  • A valve:
    • Extends Tomcat functionality
    • Is Tomcat-specific
    • Must be super-efficient

Note the shading …

Pipeline pattern

Context helpers

our “baby server”

containment server and service
Containment: Server and Service

Protocol-specific processing

Protocol-agnostic processing

<Server port="8005" shutdown="SHUTDOWN">

<Service name="Catalina">

containment connectors
Containment: Connectors

<Connector port="80" protocol="HTTP/1.1" … />

containment catalina engine
Containment: Catalina Engine

<Engine name="Catalina"

defaultHost="localhost”

baseDir=“…”>

</Engine>

containment virtual host
Containment: Virtual Host
  • Each FQHN resolves to a specific IP address
  • Needs dedicated IP addresses

IP-based

containment virtual host1
Containment: Virtual Host
  • Multiple FQHNs resolve to a single IP address
  • Host: request header interrogated
  • Simple but requires help with SSL

Name-based

containment virtual host2
Containment: Virtual Host

Relative to CATALINA_BASE

<Host

name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true" … >

containment context
Containment: Context

Vendor-agnostic

Vendor-specific

<Context path="/examples" ...>

Relative to appBase

Context Fragment locations:

META-INF/context.xml

CATALINA_HOME/conf/<EngineName>/<HostName>/<contextPath>.xml

slide21

Advanced Topics:

Java Class Loading First Principles

  • Benefits
    • Late Binding (assembly of functionality)
    • Security (single choke point)
    • Customization (encrypt, generate, locate)
    • Variance across Time
    • Variance across Space
    • Isolation Zones
slide22

Advanced Topics:

Java Class Loading First Principles

  • Rules
    • Consistency (always return same instance)
    • Delegation (security)
    • Visibility (Delegation hierarchy + CL inversion)
slide23

Advanced Topics:

Java Class Loading First Principles

  • Available Options
    • Implicit class loading:MyClass myClass = new MyClass()
    • Explicit class loading:ClassLoader ldr = ClassLoader.getSystemClassLoader();Class cls = ldr.loadClass("MyClass");MyClass myClass = (MyClass) cls.newInstance();
slide24

Advanced Topics:

Java Class Loading

  • Lets you override core JDK classes
  • JAVA_HOME/lib/endorsed
  • No parent
  • Native code in JVM
  • Core Java classes from rt.jar
  • JRE_HOME/jre/lib/ext(implicit CLASSPATH)
  • Classes on CLASSPATH
  • Truncated by Tomcat
  • CATALINA_HOME/lib
  • Visible to web apps and Tomcat code
  • Directory configured in [catalina.properties]
  • Visible only to Tomcat code
  • Directory configured in catalina.properties
  • Visible to all web apps
  • WEB-INF/classes and WEB-INF/lib
  • Delegates to parent for standard Java classes
slide25

Advanced Topics:

Web Application Class Loading

[1]

[3]

[2]

thank you
Thank You!
  • damodarchetty@gmail.com
  • www.swengsol.com
  • 651 270 8457for training/consulting opportunities.