CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 21, 2005
Chapter 4: Web Technologies Web Services: Concepts, Architectures and Applications G. Alonso et. al. Springer Verlag
HTTP client wide area network (Internet) HTTP proxy HTTP server HTTP gateway firewall HTTP tunnel Copyright Springer Verlag Berlin Heidelberg 2004 HTTP requests processed through intermediaries
HTTPS client Secure Sockets Layer (SSL) HTTPS server TCP/IP network layer application layer Copyright Springer Verlag Berlin Heidelberg 2004 HTTPS servers and clients encrypts all communications
client server (resource manager) middleware wide area network (Internet) HTTP client HTTP server Copyright Springer Verlag Berlin Heidelberg 2004 Extending a 3-tier architecture using the web
middleware Web server client browser java virtual machine applet wide area network (Internet) firewall server (resource manager) Copyright Springer Verlag Berlin Heidelberg 2004 Applets as a way to implement remote clients
middleware Web server browser wide area network (Internet) firewall HTTP GET request client CGI program server (resource manager) Copyright Springer Verlag Berlin Heidelberg 2004 Common Gateway Interface (CGI)
middleware browser wide area network (Internet) firewall HTTP GET request client Web server Java server process Java thread server (resource manager) Copyright Springer Verlag Berlin Heidelberg 2004 Servlets replaces CGI
connection to resource mgmt layer presentation layer resource management layer application logic layer client application server Web server wide area network (Internet) firewall HTTP browser other protocols other servers ( , SOAP,..) Copyright Springer Verlag Berlin Heidelberg 2004 Application servers
support for communication and presentation Servlets JavaServer Pages (JSP) Enterprise Java Beans (EJB) Java DataBase Connectivity (JDBC) Java Naming and Directory Interface (JNDI) support for the application integration Java 2 Connector Architecture (J2CA) Java Message Service (JMS) Java transaction API (JTA) Java API for XML Processing (JAXP) JavaMail Java Authentication and Authorization Service (JAAS) support for access to resource managers Copyright Springer Verlag Berlin Heidelberg 2004 J2EE Platform
application logic layer presentation layer services (load balancing, pooling, caching, transaction, persistence,…) administration (management and security) applicatio n server EJB JDBC EJB JNDI J2CA resource adapter other adapters DBMS applications enterprise system 1 enterprise system 2 enterprise system n EJB container JMS Copyright Springer Verlag Berlin Heidelberg 2004 J2EE-based Application server
EJB Beans Session Beans – can be stateful (e.g. shopping cart) or stateless Entity beans – persistent objects – typically saved in databases Message-driven beans Container
Web server server servers for other connections (e.g., WAP) presentation layer ServletsJSPs multidevice content delivery personalization logic connection to resource mgmt layer resource management layer application logic layer services (load balancing, pooling, caching,…) XML support Web services support administration (management and security) application server client Copyright Springer Verlag Berlin Heidelberg 2004 Application server support presentation layer
client server (resource manager) middleware client server (resource manager) middleware wide area network (Internet) Copyright Springer Verlag Berlin Heidelberg 2004 Connecting multiple 3-tier systems in a WAN
client server (resource manager) middleware client server (resource manager) middleware wide area network (Internet) remote-middleware protocol WAN communication protocol remote-middleware protocol WAN communication protocol Copyright Springer Verlag Berlin Heidelberg 2004 Direct Integration of Middleware Platforms
client wide area network (Internet) Web server client Web server firewall HTTP tunnel server (resource manager) server (resource manager) middleware remote-middleware protocol WAN communication protocol middleware remote-middleware protocol WAN communication protocol Copyright Springer Verlag Berlin Heidelberg 2004 B2B Interactions using Tunneling through HTTP