Architecture Design For Web-based Application Systems Instructor: Dr. Jerry Gao Class: CMPE296U Architecture Design For Web-Based Application Systems - (1994-1995) Hypertext Web Systems: Graphic Web Browsers + Hyperlinks + HTML files. Features: HTML-based thin client. Limited Server Functions. Application: Only for documentation sharing and accesses. Static Web Site construction. Pros: Simple and easy to set up. Cons: Very server processing functions No dynamic HTML generation. No support for user interaction Not easy to maintain and manage HTML user HTTP Browser client Internet/Intranet URL HTTP Server HTML Files Architecture Design For Web-Based Application Systems - (1995-1996) Interactive HTML-based Web Systems: Graphic Web Browsers + Hyperlinks + HTML files Plus: Forms, Tables, CGI, and Secured Transactions: SSL, S-HTTP, Firewalls Features: Supporting user interactions and requests HTML-based client, CGI-based Server program Secured communications and transactions Applications: DHTML web sites, Banking, On-line systems Pros: Cons: HTML & Forms Secured communications. Dynamic HTML generation. User friendly due to user interactions. Slow speed, limited client functions and GUI support. Unstructured server programs with low concurrence Firewall user CGI Browser Internet Web Server Gateway Programs client Database Server S-HHTP/SSL HTML Forms HTML Tables Architecture Design For Web-based Application Systems - (1996-1997) Complex Interactive Web Systems(a): Client: Server: Plus Web Browser + HTML + JavaScript, Web Server + CGI + Gateway Programs + Database Server secured transaction based on secured protocol and firewalls Features: Supporting better user interactions and requests HTML/JavaScript client, CGI-based Server program Secured communications and transactions Applications: Web-base application systems, tools, group-ware, On-line systems Pros: Global accesses, platform independent. Secured communication and transactions. Have a better GUI interface due to JavaScript features. Limited support for graphics and window applications Unstructured server programs with low concurrence Cons: HTML Forms HTML Tables HTML Forms + JavaScript client user Browser Tier 1 HTTPS or SSL Database Firewall Web Server Internet (a) CGI Tier 2 Gateway Programs Database Server Tier 3 Architecture Design For Web-Based Application Systems - (1995-1996) Complex Interactive Web-Based Systems (b): Client: Server: Plus Features: Web Browser + HTML + Java Applets Web Server + CGI (Gateway Programs) + Database Server secured transaction based on secured protocol & firewalls Supporting complex user interactions and requests HTML/JAVA client, CGI-based Server program Secured communications and transactions Applications: Web-base application systems, tools, group-ware, On-line systems Pros: Global accesses, platform independent. Secured communication and transactions. Supporting Complex GUI interface. Slow speed on Java applet download. Unstructured server programs with low concurrency Cons: HTML Forms HTML Tables HTML Forms + Java Applets client user Browser Tier 1 HTTPS or SSL Database Firewall CGI Web Server Internet (b) Gateway Programs Tier 2 Database Server Tier 3 Architecture Design For Web-Based Application Systems - (1996-1997 --> Future) Object Web: (a) Java Web: Java Applets + Mobile Components (RMI) Features: Supporting complex user interactions and requests RMI communications between clients and server No standard communication protocols. Java Client and Server. Applications: Intranet Web-base application systems, tools, group-ware. Pros: Intranet accesses, platform independent. Support multithreading server. Supporting Complex GUI interface. Cons: No secured communications. Client and server must be written in Java. Limitation on providing scalable servers. Java Client Server Stub Client Stub Network Server Client Stub RMI Database Server Database Architecture Design For Web-based Application Systems - (1996-1997 --> Future) Object Web: (b) JDBC-based: Java Applets + JDBC gateway programs Features: Supporting complex data-centered user interactions and requests RMI communications between clients and server Java Client and Server. Applications: Intranet Web-base application systems, tools, group-ware. Pros: Intranet accesses, platform independent. Support multithreading server. Supporting Complex GUI interface. Cons: No secured communications. Client and server must be written in Java. Limitation on providing scalable servers. Java Client Database Client Tier 1 Network (b) Database JDBC Database Gateway Tier 2 Database Server Tier 3 Architecture Design For Web-based Application Systems - (1996-1997 --> Future) Object Web: (c) Java and CORBA (such as JOE, Iona): OrbixWeb HTML Forms HTML Tables HTML Forms + Java Applets HTTP Web Server CGI Gateway Programs Database HTTP user Browser Internet client Tier 1 Database Server CORBA IIOP CORBA IIOP (c) Application Proxy Server ORB Tier 2 CORBA CORBA Tier 3 Application 1 CORBA avoids the CGI bottleneck CORBA provides a scalable server-to-server infrastructure CORBA extends Java with a distributed object infrastructure Application i Architecture Design For Web-based Application Systems - (1996-1997 --> Future) Object Web: (d) The Microsoft Object Web Tier 3 HTML Forms HTML Tables ActiveXs HTML Forms + DocObjects HTTP Web Server Gateway Programs SQL Server HTTP user Browser CGI/ISAPI Internet client Tier 1 Exchange Network OLE Network OLE (d) COM ORB Server Actives Tier 2 Repository/cash of DocObjects or ActiveX Doc. OLE TP Monitor Architecture Design For Web-based Application Systems - (1996-1997 --> Future) Object Web: (e) The CORBA/Cyberdog Object Web Tier 3 HTML Forms HTML Tables Compound Doc. HTML Forms + Java Applets HTTP Web Server Gateway Programs DBMS HTTP user Browser CGI Internet client Tier 1 CORBA IIOP & Compound Doc. Lotus Notes CORBA IIOP (d) ORB Server Actives Tier 2 Bento Doc. Or OODBMS TP Monitor Architecture Design For Web-based Application Systems Bridging Legacy Systems to the Web: TCP/IP SNA MVS System Encapsulation Program Java Applet An encapsulation programs puts a more friendly face on a legacy system user Place order Java Applets Ordering Encapsulation Program Legacy System An encapsulation can present an interface different from the legacy system Architecture Design For Web-based Application Systems Bridging Legacy Systems to the Web: Email Applet in Web Browser HTTP Java Email Server Web Server RMI Standalone Java Email Application A Java e-mail System Legacy E-mail System Java Email Encapsulation RMI/CORBA Legacy System Legacy Newer System Work Stations Translate a legacy interface into something newer clients can deal with Architecture Design For Web-based Application Systems Bridging Legacy Systems to the Web: RMI/CORBA Java client Native Methods Java Front-End SNA Hardware Legacy System Native methods to access a legacy system Java Applet in Web Browser Legacy System Legacy protocol CORBA Front-End CORBA Standalone Java Application C++ Application CORBA expands the accessibility of an encapsulation system Architecture Design For Web-based Application Systems Bridging Legacy Systems to the Web: New Workstations RMI/CORBA RMI/CORBA New Application Java Encapsulation Terminal Population Legacy Terminals Legacy Terminals Legacy terminals and new workstations access the new system Legacy System Legacy data All data Java client Java Encapsulation All data Newer Database New data New System An encapsulation can combine several systems together Architecture Design For Web-based Application Systems Bridging Legacy Systems to the Web: Legacy System Legacy Protocol Encapsulation RMI Java Web Server Servlet Web access to legacy systems involves a servlet Java Web Server Servlet Legacy Protocol Legacy System Java method calls Encapsulation Web access to legacy system involves a servlet and an encapsulation (servlet and encapsulation reside in the same machine) Client Architecture in Web-based Application Systems - 1994 - 1995: HTML-based Thin Client Layer - Hypertext client --> based on HTML pages + hypertext links - Simple interactions between users and systems - Stateless client-server Communications - No cash on the client side - No data verification and validation on the client side Structure: a) Linear Structure, d) Network Structure, (a) b) Tree Structure, c) Index Structure e) Simple Window Menu Structure (c) (b) GUI P1 GUI P2 GUI P2 GUI P4 (d) (e) Client Architecture in Web-based Application Systems 1995-1996: Thin Client Layer based on HTML + JavaScript - HTML forms + JavaScript + hypertext links - Simple interactions between users and systems - Stateless client-server Communications - Small data cash on the client side (cookies) - Simple data verification and validation on the client side - Dynamic generation of HTML pages, tables, links Structure: a) Linear Structure, d) Network Structure, (a) b) Tree Structure, c) Index Structure e) Simple Window Menu Structure (c) (b) GUI P1 GUI P2 GUI P2 GUI P4 (d) (e) Client Architecture in Web-based Application Systems 1996-1997: Java Client (Thin - Thick) - HTML forms embedded Java Applets - Cash data on the client side - Stateless/State client-server Communications - Completed data verification and validation on the client side - Support complex GUI structure and graphic display Structure: a) Single Applet b) Multiple Applets in a HTML page (with multiple frames) c) Multiple Applets in different HTML pages JavaIDL Application GUI Applet Tool Bar Communication Client DB Client Data Loader Work Flow Control Security Control Applet Loader Access Control Timer Help Application GUI Print Filter/Parse Client Architecture in Web-based Application Systems 1997 - Future: The Future Web Client (Three Client Models): a) Browser as Desktop: It assumes that people live within their browsers. This is the current Netscape model of the world. b) Web-Enabled Desktop Components: Every thing on the desktop is Web-enabled; the idea is that you will be able to access the Web from within any application or component without starting a browser. This is the Cyberdog model of the world; Microsoft will also support this model in Windows 97. c) Shippable Places: This lets you access the Web from within your places. A place can have multiple concurrent sessions with Web object servers. In addition, multiple places can be concurrently active on the same desktop. The Object Web may end up supporting all three models. A) Browser as Desktop B) Web-Enabled Desktop Components C) Shippable Places Server Architecture in Web-based Application Systems - Trade-off in building a web-based application server - Considering factors: - System performance - Fault tolerance - System scale-up - Complexity - System configuration and flexibilty - Technology selection: - CORBA-based server or DCOM-based server - Java server - Server made by C++/C - Interaction style between client and server - Distributed objects - Communication protocol, like HTTP/HTTPS, or TCP/IP socket - Single thread vs. multiple thread - Multiple servers vs. single server - Server configuration structure: single box vs. multiple boxes - Layered architecture - How to link a web-based application server to legacy software - How to link a web-based application server to applications - How to link a web-based application server to third-party software Server Architecture in Web-based Application Systems - Trade-off in building a web-based application server - Considering factors: - System performance - Fault tolerance - System scale-up - Complexity - System configuration - Technology selection: - CORBA-based server or DCOM-based server - Java server - Server made by C++/C - Interaction style between client and server - Distributed objects - Communication protocol, like HTTP/HTTPS, or TCP/IP socket - Single thread vs. multiple thread - Multiple servers vs. single server - Server configuration structure: single box vs. multiple boxes - Layered architecture - How to link a web-based application server to legacy software - How to link a web-based application server to applications - How to link a web-based application server to third-party software