web architecture 3 tier apps
play

Web Architecture, 3-Tier Apps PDBM 15.1, 15.6 Dr. Chris Mayfield - PowerPoint PPT Presentation

Web Architecture, 3-Tier Apps PDBM 15.1, 15.6 Dr. Chris Mayfield Department of Computer Science James Madison University Mar 24, 2020 Definitions What is The Internet? A global system of interconnected computer networks that use the Internet


  1. Web Architecture, 3-Tier Apps PDBM 15.1, 15.6 Dr. Chris Mayfield Department of Computer Science James Madison University Mar 24, 2020

  2. Definitions What is The Internet? A global system of interconnected computer networks that use the Internet protocol suite (TCP/IP) to link billions of devices worldwide. https://en.wikipedia.org/wiki/Internet What is the World Wide Web? An open source information space where documents and other web resources are identified by URLs, interlinked by hypertext links, . . . https://en.wikipedia.org/wiki/World Wide Web Mar 24, 2020 Web Architecture, 3-Tier Apps 2 of 14

  3. How the web works In short: ◮ Web servers “store” documents/etc ◮ Web clients (browsers) request them ◮ The Internet provides the file transfer https://en.wikipedia.org/wiki/Hypertext Transfer Protocol Request: GET /index.html HTTP/1.1 Host: www.example.com ... HTTP/1.1 200 OK Response: Date: Mon, 23 May 2005 22:38:34 ... Mar 24, 2020 Web Architecture, 3-Tier Apps 3 of 14

  4. How addresses work See https://en.wikipedia.org/wiki/Uniform resource locator https://www.google.com/search?q=hello&ie=UTF-8 protocol host path query Notes about the query string : ◮ Key=value pairs ◮ Begins with ? ◮ Separated by & ◮ URL encoding Mar 24, 2020 Web Architecture, 3-Tier Apps 4 of 14

  5. HTTP is stateless When you browse the web: ◮ Client asks for URL ◮ Server returns a file ◮ Otherwise disconnected How to simulate an application? ◮ URL parameters (via GET/POST) ◮ Server-side sessions (via cookies) (we will mainly focus on parameters) Mar 24, 2020 Web Architecture, 3-Tier Apps 5 of 14

  6. HTML forms <form action="query.jsp" method="get"> <input type="text" name="title"> <input type="submit" name="ins" value="Insert" /> <br> <a href="query.jsp?del =%7 BGo+Dukes !%7D">Delete </a> </form > Action ◮ Where to submit the form Method ◮ GET = parameters visible in URL query string ◮ POST = parameters in HTTP request headers Mar 24, 2020 Web Architecture, 3-Tier Apps 6 of 14

  7. Demo: Chrome DevTools https://developers.google.com/web/tools/chrome-devtools Mar 24, 2020 Web Architecture, 3-Tier Apps 7 of 14

  8. Three-tier architecture Source: https://en.wikipedia.org/wiki/Multitier architecture Mar 24, 2020 Web Architecture, 3-Tier Apps 8 of 14

  9. Languages and software Design principles ◮ Separation of concerns (data, logic, gui) ◮ Development: all tiers run on same machine ◮ Deployment: multiple machines for each tier Mar 24, 2020 Web Architecture, 3-Tier Apps 9 of 14

  10. Example: Java JSP = template for Java servlet ◮ See https://en.wikipedia.org/wiki/Java Servlet ◮ Goal: generate dynamic HTML response <html > <body > Hello! The time is now <%= new java.util.Date () %> <% // this block of code is called a scriptlet out.print("<br >Your machine ✬ s address is "); out.println(request. getRemoteHost ()); %> </body > </html > Mar 24, 2020 Web Architecture, 3-Tier Apps 10 of 14

  11. Example: PHP PHP stands for “PHP Hyptertext Preprocessor” ◮ https://en.wikipedia.org/wiki/Recursive acronym Scripting language for generating HTML pages <html > <body > Hello , today is <?php print(Date("l F d, Y")); ?>. </body > </html > Language Reference: ◮ https://www.php.net/manual/en/langref.php Mar 24, 2020 Web Architecture, 3-Tier Apps 11 of 14

  12. Example: Python Hello world application: from flask import Flask app = Flask(__name__) @app.route( ✬ / ✬ ) def hello_world (): return ✬ Hello , World! ✬ Mar 24, 2020 Web Architecture, 3-Tier Apps 12 of 14

  13. Rendering Templates Hello with a name: from flask import render_template @app.route( ✬ /hello/ ✬ ) @app.route( ✬ /hello/<name > ✬ ) def hello(name=None ): return render_template ( ✬ hello.html ✬ , name=name) hello.html template: <!doctype html > <title >Hello from Flask </title > {% if name %} <h1>Hello {{ name }}!</h1> {% else %} <h1>Hello , World!</h1> {% endif %} Mar 24, 2020 Web Architecture, 3-Tier Apps 13 of 14

  14. Other frameworks https://www.djangoproject.com https://nodejs.org http://rubyonrails.org Mar 24, 2020 Web Architecture, 3-Tier Apps 14 of 14

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