web application development landscape: technologies and models€¦ · università di pisa web...
TRANSCRIPT
Università di Pisa
Web application development landscape: technologies and models
Dipartimento di Informatica
by Andrea Nicchi
Relatore: Prof. Antonio CISTERNINO Controrelatore: Prof. Giuseppe ATTARDI
Università di PisaWeb application development landscape: technologies and models
“ an Information System providing facilities to acces s complex data and interactive services via the Web” [10.02]
WEB APPLICATION
Dipartimento di Informatica
[10.02] Gnaho, C. (2001), Web-Based Information Systems Development – A User C entered Engineering
Approach , Lecture Notes in Computer Science, Vol. 2016, pp. 105 – 118.;
Università di PisaWeb application development landscape: technologies and models
Web Document;
HTTP Protocol;
Web Browser;
Web Server and Content Delivering;
AJAX and REST;
State Management: Session Control;
Web application development approaches;
Example: Shopping Cart.
TABLE OF CONTENTS
Dipartimento di Informatica
Università di PisaWeb application development landscape: technologies and models
Formalisms used for representing a web document:WEB DOCUMENT
Dipartimento di Informatica
- GML: IBM 1969;- SGML: ANSI 1983;
- HTML 4.01 - 1999;- XHTML 1.0 (bridge to XML);
HTML provides a semantic description of the content and establishes a document structure (a hierarchy of elements)
- HTML 5 - 2007.
Università di PisaWeb application development landscape: technologies and models
Defines: the way of exchange of the messages and th e format of the messages
HTTP PROTOCOL
Dipartimento di Informatica
Client/server structure, connection-oriented, stateless, no attempt is made to recover from failure;
HTTP uses the resource identification mechanism provided by Uniform Resource Identifier (URI)
Request-Response Message Paradigm;
HTTP MIME support content type.
( URI, URN );
Università di PisaWeb application development landscape: technologies and models
BROWSER: reference architecture
Dipartimento di Informatica
[4.01] Alan Grosskurth, Michael W. Godfrey, Architecture and evolution of the modern web browse r, David R. Cheriton School of Computer Science, University of W aterloo, Waterloo, 2006;
Conceptual Mozilla FireFox Architecture;Concrete Microsoft Internet Explorer.
Università di PisaWeb application development landscape: technologies and models
WEB SERVER: reference architecture
Dipartimento di Informatica
[5.11] Ahmed E. Hassan and Richard C. Holt Software Architecture Group (SWAG), A Reference Architecture for Web Servers , Dept. of Computer Science University of Waterloo, Ontario;
Università di PisaWeb application development landscape: technologies and models
WEB SERVER
Dipartimento di Informatica
Processing Model (Process-based, Thread-based and H ybrid model)
Pool size behaviour (Static approach and Dynamic ap proach)
Conceptual architecture Apache Server 1.4;
COMMERCIAL WEB SERVER
Concrete architecture Microsoft IIS 7.0;
Università di PisaWeb application development landscape: technologies and models
WEB SERVER CONTENT DELIVERING
Dipartimento di Informatica
Static Content
Dynamic Content
Simple HTMLAs-is page (header+content)
CGI: Common Gateway Interface
FastCGI: Fast Common Gateway InterfaceSSI: Server Side Include (.shtml)
PHP: PHP Hypertext Preprocessor /Personal Home PageJava ServletJSP: Java Server Pages (Java Beans, JSP 2.0 JSTL+EL )JSF: JavaServer Faces
ASP: Active Server Pages (ISAPI extension)
ASP .NET Web FormsASP .NET MVC (Front Controller + MVC Model 2)
Università di PisaWeb application development landscape: technologies and models
retrieving content from the server to be inserted into the current page and transmitting new or update information to the server, without causing a total refresh or re-rendering of the current page.
AJAX
(Asynchronous Javascript And XML or Asynchronous Javascript And XMLHttpRequest)
Dipartimento di Informatica
AJAX WITH HTML HIDDEN FRAME (<frameset>);
AJAX WITH HTML INTERNAL FRAME (<iframe>);
XMLHttpRequest object.
DHTML (JavaScript, CSS and DOM ) + XMLHttpRequest (XHR)
What
By
How
Università di PisaWeb application development landscape: technologies and models
A new approach to the web application design. “a coordinated set of architectural constraints that attempts to minimize latency and network communication while at the same time maximizing the independence and
scalability of component implementations” (Fielding 2000).
REST (REpresentational State Transfer )
Dipartimento di Informatica
1) data elements (resources, resource identifiers, representation);
2) connecting elements (client, server, cache, resolver, tunnel);
3) processing elements/components (user agents, origin server, intermediate comp.).
REST applied to HTTP1) nouns (URI);
2) verbs (actions: POST, GET, PUT,…);3) metadata (MIME-types,…);
4) contents (Content-type MIME type).
Architectural elements:
Università di PisaWeb application development landscape: technologies and models
Web Application State Management
Dipartimento di Informatica
Session Control;
State Mngt Patterns;
Web Application Approaches;
Università di PisaWeb application development landscape: technologies and models
Web Application State Management
Dipartimento di Informatica
Flow control problem
EP stands for Entry Page, AP(k)i stands for Application Page i of the Session k and FP stands for Final Page
User interacts:
browser;web page.
Università di PisaWeb application development landscape: technologies and models
Web Application State Management
Dipartimento di Informatica
Session control problem
WAS(i): stands for Web Application State at the stage i;SR(j): stands for State
Representation j.
A web application session is a sequence of related user requests and web server responses, which are treated as a single interaction.
Università di PisaWeb application development landscape: technologies and models
WEB APPLICATION: SESSION CONTROL
Dipartimento di Informatica
Client-side mechanisms (client’s web page or client’s local storage)
Server-side mechanisms
Cookies Hidden fields (visible with view source)
Application Object (multiple session vars, Lock, Unlock)
Session ObjectFile/Database
ViewState/Control State (“invisible” with view source – compressed and
encoded)
Query Strings
Università di PisaWeb application development landscape: technologies and models
Web Application State Management
Dipartimento di Informatica
Session Control;
State Mngt Patterns;
Web Application Approaches;
Università di PisaWeb application development landscape: technologies and models
WEB APPLICATION STATE MNGT PATTERNS
Dipartimento di Informatica
Split context
Università di PisaWeb application development landscape: technologies and models
WEB APPLICATION STATE MNGT PATTERNS
Dipartimento di Informatica
Robust split context
Università di PisaWeb application development landscape: technologies and models
WEB APPLICATION STATE MNGT PATTERNS
Dipartimento di Informatica
Secure Robust split context
Università di PisaWeb application development landscape: technologies and models
Web Application State Management
Dipartimento di Informatica
Session Control;
State Mngt Patterns;
Web Application Approaches;
Università di PisaWeb application development landscape: technologies and models
CGI Web Application
Dipartimento di Informatica
Università di PisaWeb application development landscape: technologies and models
ASP/PHP/JSP Web Application
Dipartimento di Informatica
Università di PisaWeb application development landscape: technologies and models
ASP.NET Web Form Web Application
Dipartimento di Informatica
Università di PisaWeb application development landscape: technologies and models
ASP.NET MVC Web Application
Dipartimento di Informatica
Università di PisaWeb application development landscape: technologies and models
JSF Web Application
Dipartimento di Informatica
Università di PisaWeb application development landscape: technologies and models
CMS based Web Application
Dipartimento di Informatica
a set of built-in functionalities such as:
set of templates;
database connection;
API for session control, authentication, authorization etc.
integrated shopping cart management;
integrated search engine
CMS-based Web applications as a Web application for the management and control of content
Università di PisaWeb application development landscape: technologies and models
Web Application Conceptual Architecture
Dipartimento di Informatica
The following architectural patterns describe the various type of Web Applications.
Università di PisaWeb application development landscape: technologies and models
Web Application Conceptual Architecture
Dipartimento di Informatica
the technology changes but the architecture doesn’t change
Exec cics receive map
Exec cics send map
Università di PisaWeb application development landscape: technologies and models
Shopping Cart Web Application
Dipartimento di Informatica
http://www.coronarie.it/shoc/Store.asp .
http://www.volucer.it/ShoCRP/RPStore.php
Paper Shopping Store
Università di PisaWeb application development landscape: technologies and models
Shopping Cart Web Application
Dipartimento di Informatica
http://www.coronarie.it/shoc/Store.asp .
Università di PisaWeb application development landscape: technologies and models
Shopping Cart Web Application
Dipartimento di Informatica
http://www.volucer.it/ShoCRP/RPStore.php
Università di PisaWeb application development landscape: technologies and models
GRAZIE !!!PER L’ATTENZIONE
Dipartimento di Informatica
Web application development landscape: technologies and models