3 tier web architectures
play

3-Tier Web Architectures Ramakrishnan & Gehrke, Chapter 7 - PowerPoint PPT Presentation

3-Tier Web Architectures Ramakrishnan & Gehrke, Chapter 7 www.w3schools.com www.webdesign.com 320302 Databases & Web Services (P. Baumann) 1 Overview Three-tier architectures Presentation tier Application tier 320302


  1. 3-Tier Web Architectures Ramakrishnan & Gehrke, Chapter 7 www.w3schools.com www.webdesign.com … 320302 Databases & Web Services (P. Baumann) 1

  2. Overview  Three-tier architectures  Presentation tier  Application tier 320302 Databases & Web Services (P. Baumann) 2

  3. Components of Data-Intensive Systems  Presentation • Primary interface to the user Needs to adapt to different display devices (PC, PDA, cell phone, voice access, …) •  Application (“business”) logic • Implements business logic (implements complex actions, maintains state between different steps of a workflow) • Accesses different data management systems  Data management • One or more standard database management systems  system architecture determines whether these three components reside on a single system (“tier) or are distributed across several tiers 320302 Databases & Web Services (P. Baumann) 3

  4. Client-Server Architectures  Work division: Thin client • Client implements only graphical user interface • Server implements business logic and data management  Work division: Thick client • Client implements both graphical user interface and business logic • Server implements data management 320302 Databases & Web Services (P. Baumann) 4

  5. Single-Tier Architectures  All functionality combined into a single tier • usually on a mainframe • User access through dumb terminals  Advantage app_n app_1 • Easy maintenance and administration server  Disadvantages • users expect graphical user interfaces • Heavy load on central system 320302 Databases & Web Services (P. Baumann) 5

  6. Disadvantages of Thick Clients  No central place to update the business logic  Security issues: Server needs to trust clients • Access control and authentication needs to be managed at the server • Clients need to leave server database in consistent state • One possibility: Encapsulate all database access into stored procedures  Does not scale to more than several 100s of clients • high data transfer volume between server and client • More than one server creates a problem: x clients, y servers => x*y connections 320302 Databases & Web Services (P. Baumann) 6

  7. The Three-Tier Architecture Presentation tier Client Program (Web Browser) Application Server Middle tier Data management tier Database Management System 320302 Databases & Web Services (P. Baumann) 7

  8. Example: Airline reservations Consider a system for making Client Program   online airline reservations • Log in different users • display forms and human-readable What is done in the different tiers?  output Application Server  • Logic to make reservations, cancel reservations, add new airlines, etc. Database System  • Airline info, available seats, customer info, etc. 320302 Databases & Web Services (P. Baumann) 8

  9. Technologies HTML HTML Javascript Javascript Client Program (Web Browser) XSLT XSLT Ajax JSP Servlets Application Server Cookies CGI Tables, XML Database Management System Stored Procedures 320302 Databases & Web Services (P. Baumann) 9

  10. Advantages of the Three-Tier Architecture Heterogeneous systems Integrated data access   • Tiers can be independently • Several database systems can be maintained, modified, and replaced handled transparently at the middle tier Scalability  • Central management of connections • Replication at middle tier permits Software development scalability of business logic  • Code for business logic is centralized Thin clients  • well-defined APIs between tiers allow • Only presentation layer at clients (web use of standard components browsers) 320302 Databases & Web Services (P. Baumann) 10

  11. Overview of Technologies: Client-side  Contents presented by browser (static) • Text, HTML/CSS, XML/DTD/XSL, images, movies, audio, ...  Contents interpreted by the browser • Dynamic HTML; Browser scripting: JavaScript, VBScript, ...  Programs executed in browser context • Java applets (byte code, virtual machine), ActiveX (native code)  Dedicated programs in browser context • Plug-ins (flash, ...)  External programs launched by browser • Helper applications  Security always an issue: keeping client machine safe from intruders 320302 Databases & Web Services (P. Baumann) 11

  12. Overview of Technologies: Server-side  Static contents (eg, HTML) with executable code • SSI (Server-Side Includes), XSSI • Server-side Scripting (Livewire, ASP, PHP, JSP, ...) Common requirements:  Generated contents - flexibility • Separate process per call: CGI - good string (HTML!) handling • Within server context: Fast-CGI, Servlets, ... - rich functionality  Server extensions - DB connectivity • Google APIs, NSAPI, IISAPI, Apache modules, ... Database gateways/frontends •  Application servers  Security always an issue: keeping the server safe from intruders 320302 Databases & Web Services (P. Baumann) 12

  13. Lecture Overview  Three-tier architectures  Presentation tier  Application tier 320302 Databases & Web Services (P. Baumann) 13

  14. The Presentation Tier  Recall: Functionality of the presentation tier • Primary interface to the user • Needs to adapt to different display devices (PC, PDA, cell phone, voice access?) • Simple functionality, such as field validity checking  Mechanisms: • HTML Forms: How to pass data to the middle tier • Dynamic HTML / JavaScript: Simple functionality at the presentation tier • Style sheets: Separating data from formatting (see earlier) 320302 Databases & Web Services (P. Baumann) 14

  15. HTML Forms  Common way to communicate data from client to middle tier  General format of a form: • <form action=“page.jsp” method=“GET” name=“loginForm”> <input type=… value=… name=…> </form>  Components of an HTML form tag: • action: URI that handles the content • method: HTTP GET or POST method • name: Name of the form; can be used in client-side scripts to refer to the form 320302 Databases & Web Services (P. Baumann) 15

  16. JavaScript  Goal: Add functionality to the presentation tier  Sample applications: • Detect browser type and load browser-specific page • Browser control: Open new windows, close existing windows (example: pop-up ads) • Client- side interaction (conditional forms elements, validation, …)  embedded directly in HTML, or external reference • <script language=“JavaScript” src=“validate.js”/> 320302 Databases & Web Services (P. Baumann) 16

  17. JavaScript: Example HTML Form: Associated JavaScript:   <form method=”GET“ name=“ LoginForm ” <script language="javascript"> action="TableOfContents.jsp"> function testEmpty() Login: { loginForm = document.LoginForm <input type="text" name="userid"/> if ( (loginForm.userid.value == "") || Password: (loginForm.password.value == "") ) <input type="password“ name=" password"/> { alert( „Error: Empty userid or password.„ ); <input type="submit“ value="Login“ return false; name="submit” onClick=“ testEmpty() ”/> } <input type=“reset” value=“Clear”/> else </form> return true; } </script> 320302 Databases & Web Services (P. Baumann) 17

  18. JavaScript: Browser Support  Consequence: Document Object Model (DOM)  different code needed for different very different across browser types browsers • Pertaining standard: see www.w3c.org/DOM/  Remedy: driver level • In particular, non-standard with browser-specific differentiation in MS Internet Explorer • Bad: browser sniffing • However, MS IE predominant (?) if (navigator.appName == 'MS IE 6.0') ... • Better: capability sniffing Example: access to forms  if (document.all && document.all.loginForm) • document.loginForm document.all.loginForm = .... • Best: build driver layer • document.all.loginForm hiding specifics through capability sniffing • … function changeElem( id, newValue ) 320302 Databases & Web Services (P. Baumann) 19

  19. Lecture Overview  Three-tier architectures  Presentation tier  Application tier 320302 Databases & Web Services (P. Baumann) 20

  20. The Middle (Application) Tier  Recall: Functionality of the middle tier • Encodes business logic • Connects to database system(s) • Accepts form input from the presentation tier • Generates output for the presentation tier  Mechanisms: • CGI: Protocol for passing arguments to programs running at the middle tier • Application servers: Runtime environment at the middle tier • Servlets: Java programs at the middle tier • PHP: Program parts in schematic documents (see earlier) • How to maintain state at the middle tier 320302 Databases & Web Services (P. Baumann) 21

  21. CGI: Common Gateway Interface  Goal: Transmit arguments from HTML forms to application programs running at the middle tier  Details of the actual CGI protocol unimportant • libraries implement high-level interfaces  Disadvantages: • application program invoked in new process at every invocation (remedy: FastCGI) • No resource sharing (database connections!) between application programs (remedy: application servers) 320302 Databases & Web Services (P. Baumann) 22

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend