Anatomy of an Advanced Web Application

Web Architecture and Information Management [./]
Summer 2011 — INFO 153 (CCN 42509)

Erik Wilde, Dilan Mahendran, and Brad Andrews, UC Berkeley School of Information
2011-08-01

Creative Commons License [http://creativecommons.org/licenses/by/3.0/]

This work is licensed under a CC
Attribution 3.0 Unported License
[http://creativecommons.org/licenses/by/3.0/]

Contents Erik Wilde, Dilan Mahendran, and Brad Andrews: Anatomy of an Advanced Web Application

Contents

Erik Wilde, Dilan Mahendran, and Brad Andrews: Anatomy of an Advanced Web Application

(2) Abstract

The widespread adoption of client-side scripting and AJAX techniques has resulted in web applications becoming easier use but harder to understand. No longer is it the case that HTML is used simply to present a document to be read. Now HTML, Javascript and CSS are used together to build dynamic applications that run in the browser. These applications often depend on APIs, resources intended for use by programs rather than people. On the server side, richly complicated "backend" applications give access to databases and other resources while responding to the browser's frontend requests.



Getting Advanced

Outline (Getting Advanced)

  1. Getting Advanced [6]
  2. Server-side frameworks [5]

(4) AJAX Flow Diagram

img/ajax-diagram.png
Courtesy of http://loadstorm.com/2009/load-testing-ajax-loadstorm


(5) AJAX Auto Complete with JQuery(JavaScript)/PHP/Mysql



(6) Web Service APIs



(7) Javascript Object Notation (JSON)



(8) Javascript Object Notation (JSON)

  1. Client side Javascript Objects
    • JSON parser transforms object to string
    • URL encoded JSON is sent to the server via HTTP request
  2. Server Side
    • Decode incoming JSON string with parser into object
    • The object can now be handled by any prefered server side language
  3. Client-side
    • Returned JSON string is transformed into new object with JSON parser on client


(9) JSON Example

{ 
  'name': 'Web Architecture & Information Management',
  'semester': 'Summer 2011',
  'students': [
    { 
      'name': 'Angie Fredette',
      'year': 1 
    },
    { 
      'name': 'Philip Fall',
      'year': 4 
    },
    { 
      'name': 'Olivia Odum',
      'year': 2 
    } 
  ] 
}


Server-side frameworks

Outline (Server-side frameworks)

  1. Getting Advanced [6]
  2. Server-side frameworks [5]

(11) What happens on the server?



(12) Server-side frameworks



(13) Common Frameworks



(14) How a server-side framework works

img/rails2.png

thepaisano.wordpress.com [http://thepaisano.wordpress.com/2008/04/24/stop-flipping-the-bird/]



(15) Into the Cloud...



Erik Wilde, Dilan Mahendran, and Brad Andrews: Anatomy of an Advanced Web Application

(16) Conclusions



Erik Wilde, Dilan Mahendran, and Brad Andrews: Anatomy of an Advanced Web Application

(17) Administrative Details



2011-08-01 Web Architecture and Information Management [./]
Summer 2011 — INFO 153 (CCN 42509)