web server and application servers -...
TRANSCRIPT
Web Server And
Application Servers
Sunnie Chung
Adapted from Lecture of
Daniel L. Silver, Ph.D.
Outline
� The Apache HTTP server
� Java application servers
� The need for more powerful middleware
� J2EE
� A comparision of the leading application
servers on the market
Evolution on the Web
Publishing
Time or Maturity
Functio
nality Interactivity
Transactions
Processes
Static web pages
Dynamic web pages
Web-enabled
applicatons
HTTP Servers
CGI Servers
App.
Servers
The Apache HTTP Server
� What is unique about the development of Apache?
See www.apache.org
– What other software system shares this characteristic?
� First created in 1995 by Rob McCool, NCSA
� Survey says: 63% of the HTTP server market
� Available for Unix, Linux, Windows (NT, 98)
� Homework: Where did it get its name?
The Apache HTTP Server
� Architecture:
– Modular in nature
– Promotes slim and simple configurations
– Modules can be compiled and loaded as needed such as
» Core - core apache features – required!
» mod_access, mod_auth - administration of host and user group
access
» mod_action, mod_cgi - Action on requested CGI script files
» mod_asis - “as is” delivery of certain file types (e.g. *.txt)
» mod-alias - Access to directories not in the apache root
» mod_usretrack -User tracking via cookies
Apache HTML Processing
Internet
Browser
Client
Apache
HTTP Server
http/https
../store15/index.html
http://eagle.acadiau.ca/store15/index.html
HTTP
admin
Apache CGI Processing
Internet
Browser
Client
Apache
HTTP Server
http/https
../store15/cgi-bin/Hello.cgi
mod.CGI
Unix
Op. sys.
http://eagle.acadiau.ca/store15/cgi-bin/Hello.cgi
HTTP
admin
Java Application Servers
� Application servers were created originally to field multiple simultaneous CGI requests, the divide and conquer approach
� Java servlets were introduced by Sun as a method of providing the benefits of server-side processing while taking advantage of many great Java characteristics:– Developers new the langauge
– Simple to understand
– There were lost of objects and methods already written
– Code was portable to many different servers (JVM)
– Faster than CGIs
Tomcat Java Servlet Processing
Internet
Browser
Client
HTTP Server
FirstServlet.class
http://eagle.acadiau.ca/store15/servlet/FirstServlet
Tomcat
Java App.
Server
Tomcat
admin
Java Bean
Tomcat JSP Processing
Internet
Browser
Client
HTTP Server
Java Bean
http://eagle.acadiau.ca/store15/index.jsp
Class DB
Tomcat
Java App.
Server
Pointer to internal .class file
for index.jsp
E-Comm DB
Store category
or product data
../store15/index.jsp
The E-Business Architecture
SupCM
SellCM
Partners, Suppliers
Customers, Distributors
CRM
ERP
PM
KM
Middleware
Employees Stakeholders
A new era of
Cross-Functional
Integrated
Applications
Constructing the E-Business
Architecture
� A New Era of Cross-Functional Integrated
Applications
– CRM = Customer Relationship Management
– ERP = Enterprise Resource Planning
– SupCM = Supply Chain Management
– SellCM = Selling Chain Management
– PM = Procurement (Operational Resource)
Management
– KM = Knowledge Management (DW/Analytics)
– Middleware = Integration Applications
The Need for More Powerful
Middleware� More efficient use of server resources
� Flexibility - ever changing products, technology, business process
� Multi-channel interfaces has forced separation of:
– Customer (web) interface aspect
– Enterprise (application) interface aspects
� End-to-end transaction integrity required
� Security – a primary concern
� Integration – ability to integrate with other and often older computer systems
Java has Risen to the Challenge
� Why Java?
– Object-oriented
– Platform independent
– Network aware
– Multi-threaded (easy to develop applications
that do two or more things at a time)
– Relatively fast learning curve
– Faster development times
J2EE
� In 1999, Sun Microsystems announced a
comprehesive Java based middleware
architecture and technolgy called Java 2
Enterprise Edition or J2EE:
– Full server side Java standard development
platform
– Solid backend for many wireless applications
– Solid infrastructure with many commonly used
components (Java Beans … think objects)
J2EE
� J2EE provides:
– EJB – Enterprse Java Beans, handle critical tasks of E-commerce such as transactions and DB access
– JSPs – Java Server Pages, brings flexibility to user interfaces
– Java Servlets provide link between user interface and backend enterprise applications
– JDBC – Java Database Connectivity, standard interface for access to relational DB
Java Enterprise Edition (Java EE)
Application Servers
� Java EE is an open standard for building web-based enterprise applications
� Containers provide several features so that application developers won’t have to write everything from scratch
� Java EE provides the consumer with several choices between platform and vendor
� Open source application servers are gaining a lot of momentum due to low cost of entry and improving quality
Typical Scenario
� Create a web application that is secure, reliable and can serve large quantities of data to thousands of concurrent users.
� Problem:
– It needs to be in production within 6 months.
� One Solution:
– Hire lots of programmers to implement security, scalability, database features
� Difficult to find skillset
� High cost to build and maintain application
� Could be error prone
Key Observations - Java EE
� Key observation made by application server vendors
– Most web applications require similar features such as
database access, security, scalability, etc.
– Provide these features that are fully tested in a container to
be leveraged by application developers
» Similar to Java and C++ libraries
– Allows application programmers to focus on business logic
instead of writing all features from scratch
Services Provide by Java EE
� Web Services
� RMI for distributed applications
� Load balancing / clustering
� Database integration
� System management
� Message-oriented middleware
� Security
� Dynamic redeployment
� and many others….
Java EE Containers
Source: http://java.sun.com/javaee/5/docs/tutorial/doc/bnaay.html
Vendors
� Commercial
– IBM WebSphere Application Server
– BEA WebLogic
– Oracle OC4J
� Open Source
– JBoss Application Server
– Apache Geronimo
– Sun Glassfish
– Apache Tomcat (only a web container)
Alternatives
� Spring / Hibernate solution
– New EJB specification is very similar to Hibernate
– Spring and Hibernate are not based on specifications
– Not as mature as Java EE
� Microsoft .Net
– Similar functionality
– Forced into one platform and one vendor
– One of the key features of web services is the
interoperability of .Net and Java EE.
Advantages and Disadvantages
� Advantages
– Many, many features provided to the application developer
– Shorter development cycle
– Low cost of entry, especially when using open source application servers
� Disadvantages
– Less flexibility on architecture
– Troubleshooting can be very difficult, especially if you uncover a bug in the vendor’s code
– Sometimes your application doesn’t require all the features available - this could hinder performance
» Being addressed by open source community
Additional Information
� Java EE 5 Tutorial -http://java.sun.com/javaee/5/docs/tutorial/doc/index.html
� Apache Tomcat (only a servlet engine) -http://tomcat.apache.org/
� JBoss Application Server -http://www.jboss.org/
� Apache Geronimo -http://geronimo.apache.org/
Common Characteristics of
Application Servers
� Connectivity to various applications and DBs on various operating environments and hardware
� Provides an integrated IDE for all aspects
� Support for reusable distributed components (CORBA, COM, EJB)
� Performance management (load balancing, caching, monitoring)
� Robust and reliable software – redundancy, backup/recovery
� User-friendly administrative, diagnostic tools
� Strong security framework
3-Tier Architectural of Modern
Web Servers
Internet
Browser
Database
Server
Client 1
Server A
Server BBank
Server
URL
HTTP
TCP/IP
Browser
Client 2 HTTP
Server
App.
Server
index.html
prog1.cgi
ERP
prog2.class
The Major Application
Server Providers
� BEA – WebLogic (7.0) - 24% of market
� IBM – WebSphere (4.0) – 33%
� Oracle – Oracle(Ias (1.0) – 12%
� SUN – Sun ONE (was iPlanet) – 8%
� Macromedia – ColdFusion (MX)
Comparison of Major
Application Servers
� Refer to class handout
� BEA - WebLogic (7.0)
– The most widely used server on the market
– Very scalable
– Bridges cap between SUN Java J2EE and MS COM
– Robust features, great security framework
– Support for wireless mobile clients (J2ME)
– Maintenance and support is managable
– Number 1 with many commercial users
Comparison of Major
Application Servers
� IBM – WebSphere (4.0)
– Java technology based – full J2EE support
– Sophisticated integration capabilities to COM and
CORBA systems
– Scales well
– Fits well with DB2 and other IBM E-Business products
– Support for wireless mobile clients (J2ME)
– Requires greater care and feeding
– Excellent for large companies
Comparison of Major
Application Servers
� Oracle – Oracle(Ias (1.0)
– Claim to be the worlds leading wireless mobile
application server
– J2EE and XML programming model that
radically simplifies development, installation
and management
– Well situated for wireless web apps
– Good choice for medium to large companies
Comparison of Major
Application Servers
� SUN – Sun ONE (was iPlanet)
– Excellent scaling and robustness
– Automatic failover capabilities
– Integrate XML parser to facilitate B2B apps
– Version 6.5 promises new developer tools and
resources
– SUN has been the Java leader on the Web
– Always worth considering
Comparison of Major
Application Servers
� Macromedia – ColdFusion (MX)
– An easy-to-use web development environment
» Kawa (discontinued)
» Macromedia Flash MX
» Dreamweaver MX
– Uses its own powerful server-side scripting language
– Has moved to the Java architecture
– Also will support .NET and J2EE
– Great for small to medium sized companies
The E-Business Architecture
SupCM
SellCM
Partners, Suppliers
Customers, Distributors
CRM
ERP
PM
KM
Middleware
Employees Stakeholders