WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

16
WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013

Transcript of WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Page 1: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

WHAT IS A WEB APP?Van Kelly

Yeshiva University

July 6, 2013

Page 2: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

APPS BEFORE THE WEB

Page 3: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Timeshare Application Architecture

Terminaluser interaction(text and block

graphics) Mainframedata + programs

Page 4: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Standalone Apps with GUI

Netbeui or Netware over

Ethernet or ARCnet

File ServerPCall app

functionality

Page 5: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Two-Tier Client-Server Applications

"Fat" Clientpresentation logic +

business rules

Serverdatabase

ODBC/JDBC over Ethernet

Page 6: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Three-Tier Application Architecture

"Thin" Clientpresentation logic

Application Serverbusiness rules

Data Serverbusiness data

Private Protocol over TCP

SocketODBC/JDBC

Page 7: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

MVC Business Logic

"Thin" Clientpresentation logic

Application Serverbusiness rules

Data Serverbusiness data

Model

View

Controller

V

M C

Page 8: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Three-Tier App Components• Disruptive economics = a vigorous market of "components"• Components = instantiable "templates" for software

• super-encapsulated – "objects on steroids"• abstracted away locality – worked locally or remotely• configurable at compile-time or run-time• standardized deployment packages – plug & play• MS: "Lego for software"

• Component examples• GUI widgets• spreadsheets, chart/graph generators• network services (e.g. FTP servers)• HTML/CSS rendering engine• app infrastructure (message queues)• all MS Office apps were also components

• Needed language support (C++ bad, VB worked)

Page 9: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Apps on the Web? How?• Browsers are unstable, slow• The Web was designed to serve paged documents/forms• Page refreshes take too long (>10 seconds)• The web has no "state"• HTML is not a rich UI language• JavaScript is just a toy for writing stuff like tic-tac-toe• Web UIs look nothing like "real" UIs• Web protocols have nothing like MVC• Web software is nothing like components

Page 10: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Web App 1.0

Java Appletpresentation logic

Application Serverbusiness rules

Data Serverbusiness data

Web ServerJava applet

HTTP

TCP Socket JDBC

Page 11: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Canonical Example: Hangman

Page 12: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Web App 1.5

BrowserHTML + CSS + JS or

Flash

Application Serverbusiness rules

Data Serverbusiness data

Web Serverpresentation logic

(PHP)

HTTP

*CGI

JDBC

Page 13: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Web App 1.9: "RESTful"

BrowserHTML + CSS + JS

Application Serverpresentation logic +

business rules

Data Serverbusiness data

HTTP

mod_*

JDBC

V

M C

Web Serverproxy + caching

Page 14: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Web App 2.0: "AJAX"

BrowserHTML + CSS +

JS presentation logicApplication Serverpresentation logic +

business rules

Data Serverbusiness data

HTTP

mod_*

JDBC

V

M C

Web Serverproxy + caching

Page 15: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Web App 2.5: Single Page Apps (SPA)

"Fat Client" in BrowserHTML + CSS +

JS presentation logic + business rules

Data Serverbusiness data

Web Serverapp download +

data proxy

HTTP

JSON

V

M C

Page 16: WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.

Web Components (Web App 3.0?)• Current web "components" are just plug-ins for a specific

server environment (e.g., WordPress)• Web Components promise universal component-like

interfaces• Support only in Firefox and Chrome for now.• W3C Component Model:

• HTML/JS templates• Decorators• Custom HTML Elements• Shadow DOM – a gory mess of new browser infrastructure to allow

fine-grained encapsulation• HTML Imports