Martin Kruliš 3. 12. 2015 by Martin Kruliš (v1.1)1.

Slides:



Advertisements
Similar presentations
12 October 2011 Andrew Brown IMu Technology EMu Global Users Group 12 October 2011 IMu Technology.
Advertisements

Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Technical Architectures
JSP: JavaServer Pages Juan Cruz Kevin Hessels Ian Moon.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
Web architecture Dr Jim Briggs Web architecture.
Introduction to Web Interface Technology (CSE2030)
Introduction to Web Based Application. Web-based application TCP/IP (HTTP) protocol Using WWW technology & software Distributed environment.
The World Wide Web and the Internet Dr Jim Briggs 1WUCM1.
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
Definitions, Definitions, Definitions Lead to Understanding.
Introduction to Web Interface Technology (CSE2030)
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
2440: 141 Web Site Administration Web Server-Side Programming Professor: Enoch E. Damson.
It’s World Wide! I NTRODUCTION TO T HE WEB 1 Photo courtesy:
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
INTRODUCTION TO WEB DATABASE PROGRAMMING
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
HTTP; The World Wide Web Protocol
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
1 HTML and CGI Scripting CSC8304 – Computing Environments for Bioinformatics - Lecture 10.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
CIS 285 ROBINSON WINTER 2005 CIS 285 Web Application Development with Java CIS 285 Sinclair Community College Instructor: Mary Robinson.
Chapter 33 CGI Technology for Dynamic Web Documents There are two alternative forms of retrieving web documents. Instead of retrieving static HTML documents,
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
Copyright (c) 2010, Dr. Kuanchin Chen1 The Client-Server Architecture of the WWW Dr. Kuanchin Chen.
Introduction to Internet Programming (Web Based Application)
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
Putting What We Learned Into Context – WSGI and Web Frameworks A290/A590, Fall /16/2014.
Fundamentals of Database Chapter 7 Database Technologies.
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 7: HTTP and CGI Fundamentals of Web Programming.
The Web Architecture and ASP.NET. Slide 2 Review of the Web (1) It began with HTTP and HTML, which delivers static Web pages to browsers which would render.
Webcommerce Computer Networks Webcommerce by Linnea Reppa Douglas Martindale Lev Shalevich.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
1 Welcome to CSC 301 Web Programming Charles Frank.
1 CS122B: Projects in Databases and Web Applications Spring 2015 Notes 03: Web-App Architectures Professor Chen Li Department of Computer Science CS122B.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Copyright © 2002 ProsoftTraining. All rights reserved. JavaServer Pages.
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
ASP (Active Server Pages) by Bülent & Resul. Presentation Outline Introduction What is an ASP file? How does ASP work? What can ASP do? Differences Between.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
IS-907 Java EE World Wide Web - Overview. World Wide Web - History Tim Berners-Lee, CERN, 1990 Enable researchers to share information: Remote Access.
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Introduction and Principles Web Server Scripting.
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Overview Web Technologies Computing Science Thompson Rivers University.
1 LM 6 Database Applications Dr. Lei Li. Learning Objectives Explain three components of a client-server system Describe differences between a 2-tiered.
Introduction to Node.js® Jitendra Kumar Patel Saturday, January 31, 2015.
National College of Science & Information Technology.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
Server-side Scripting
WWW and HTTP King Fahd University of Petroleum & Minerals
Server-side Scripting
Lecture 1: Multi-tier Architecture Overview
Web Technologies Computing Science Thompson Rivers University
Web Servers (IIS and Apache)
Web Application Development Using PHP
Presentation transcript:

Martin Kruliš by Martin Kruliš (v1.1)1

 Serving Static Pages by Martin Kruliš (v1.1)2 Web Server Client ` HTTP Request GET /myweb/index.html... HTTP Request GET /myweb/index.html... Internet HTTP Response HTTP/ OK Content-Length: 1019 Content-Type: text/html;... HTTP Response HTTP/ OK Content-Length: 1019 Content-Type: text/html;... index.html Apache configuration /var/www/myweb/

 Serving Dynamic Content by Martin Kruliš (v1.1)3 Web Server Client ` HTTP Request GET /myweb/app.cgi... HTTP Request GET /myweb/app.cgi... Internet HTTP Response HTTP/ OK Content-Length: 2049 Content-Type: text/html;... HTTP Response HTTP/ OK Content-Length: 2049 Content-Type: text/html;... /var/www/myweb/ app.cgi stdin stdout

 Common Gateway Interface ◦ One of the first standards for generating dynamic web content ◦ NSCA specification from 1993 how to invoke command line applications  Current version CGI 1.1 (RFC 3875) from 2004 ◦ Specifies only the interface  Application may be written in any language  Important information and headers are set as environ- ment variables, POST body is directed to std. input  Response is taken from the std. output by Martin Kruliš (v1.1)4 Example 1

 CGI Issues ◦ Starting a process takes some system time ◦ Each process handles exactly one request  Unable to keep session/shared data in memory  Fast CGI Improvement ◦ Fast CGI server runs independently from web server  Keeps the process pool, resources, … ◦ Communicates with web server via socket/TCP ◦ Multi-request processing may be achieved by multiplexing or multiple connections (or both) by Martin Kruliš (v1.1)5

 Integrating Scripting Modules by Martin Kruliš (v1.1)6 Web Server Client ` HTTP Request GET /myweb/index.php... HTTP Request GET /myweb/index.php... Internet HTTP Response HTTP/ OK Content-Length: 1984 Content-Type: text/html;... HTTP Response HTTP/ OK Content-Length: 1984 Content-Type: text/html;... /var/www/myweb/ mod_php index.php

 PHP: Hypertext Preprocessor ◦ Popular language originally designed for the web  The language has integrate API for handling requests  Things like URL parameters, POSTed data, headers, or server settings are presented in global variables ◦ PHP script code can be directly interleaved with HTML (or other type of generated content)  The script is embedded between marks  The PHP interpret process the script and replace its body with its output in the document by Martin Kruliš (v1.1)7 Example 2

 Web Server Gateway Interface ◦ Universal interface between web servers and web applications designed for the Python language  Interface is called WSGI middleware and it is implemented by both sides (server and application) ◦ Specific new features  Routing requests to application objects (by URL)  Multiple applications may run in one process  Content post-processing (e.g., by XSLT)  Load balancing (remote processing, forwarding, …) ◦ Similar APIs  Rack (Ruby), PSGI (Perl), JSGI (JavaScript) by Martin Kruliš (v1.1)8 Example 3

 ASP.NET ◦ Microsoft solution built on.NET platform  Supports all.NET languages (C#, VB, …) ◦ Successor to Microsoft’s Active Server Pages ◦ Requires Microsoft IIS web server  Mono version ( mod_mono and FastCGI) exists ◦ WebForms  Basic building blocks for ASP.NET web pages  Similar HTML interleaving syntax as PHP  The idea is to design web pages in the same manner as desktop applications by Martin Kruliš (v1.1)9

 ASP.NET ◦ WebForms  Event-based model, events may be processed at server  The forms automatically serializes the whole state ◦ Razor syntax  Block starts and does not require explicit closing ◦ MVC  Alternative type of ASP.NET applications  Default view engine is either Razor (.cshtml,.vbhtml), or Web Forms (.aspx)  Controllers are.NET classes, methods are actions  Routers select controller class and invoke an action by Martin Kruliš (v1.1)10

 Java Server Pages ◦ Java-based solution for dynamic web pages ◦ Requires web server with servlet container  Apache Tomcat, Jetty, … ◦ Supports both “simple” PHP-like approach and MVC  Uses marks for scriptlet-HTML interleaving  MVC usually uses JavaBeans as the model and Java servlets as the controller ◦ Java compilation  Compiler is integrated in the web server and compiles the page when first needed (or when changed) by Martin Kruliš (v1.1)11

 Ruby on Rails ◦ Ruby scripting language + Rails web framework ◦ Basic philosophy  DRY (Don’t Repeat Yourself) – avoid code duplication  Convention Over Configuration – our way is the “best” ◦ Very strict style of application development  Improves efficiency, but ties your hands ◦ Specific structure of the application  Reflects the MVC pattern  $> rails new myapp  Generates new application structure in./myapp by Martin Kruliš (v1.1)12

 Representational State Transfer (REST) ◦ Architectural abstraction for distributed systems ◦ The application is formed by resources  Resources are identified by URL ◦ Components of the application communicate over the network and exchange resource representations  Representation is typically HTML, XML, or JSON ◦ The API is built over HTTP and is hypertext driven  GET  DELETE by Martin Kruliš (v1.1)13

 JavaScript Server-side Platform ◦ Basically a Google V8 JavaScript engine compiled as CLI script interpreter  V8 is used in Chrome and it is the fastest JS interpreter ◦ Contains many pre-built packages for server-side application development (sockets, HTTP, …)  HTTP server is embedded in the application, so the programmer may tune it for specific needs ◦ Aims for fast developed single-language solutions  Using Javascript on client and server allows some level of code sharing by Martin Kruliš (v1.1)14 Example 4

by Martin Kruliš (v1.1)15

 Client-server Architectures ◦ Strict separation of two application parts  Client - data presentation, user interface  Server – business logic, data storage ◦ Both sides are connected via specific API (HTTP)  The communication latency and overhead influence the application design ◦ Three-tier architecture  Server part is overloaded, so we separate the data storage and management into separate tier ◦ Thick client  Functionality is slowly shifting to the client-side by Martin Kruliš (v1.1)16

 Specific Issues of the Server Side ◦ Traditional web applications  Work in batches – client wants to perform a large task with each HTTP request  Download a page full of formatted data  Submit a form and generate a response  Difficult state management (HTTP is stateless)  Code replication and dependency injections ◦ Modern web applications  Just a remote API for AJAX calls  Difficult to integrate AJAX API into existing applications, or create applications that work both ways by Martin Kruliš (v1.1)17

 Model-View-Controller by Martin Kruliš (v1.1)18 Database View Model Invoking actions Dataflow Controller

 Model-View-Controller ◦ A guideline how to divide code and responsibility ◦ Basis for many frameworks ◦ Model  Uniform data API for the application  Communicates with DB/file storage/…  Simplifies portability to other storage types  Transparently handles encoding, integrity checks, transactions, data pre/post-processing, … by Martin Kruliš (v1.1)19

 Model-View-Controller ◦ View  User interface, data presentation  Typically responsible for generating HTML  Automatic sanitization of presented data ( chars)  Translations for multilingual applications  Templates  Mechanisms that separate HTML coding from application programming  Allow implementing View features (mentioned above) in declarative (instead of imperative) manner by Martin Kruliš (v1.1)20

 Model-View-Controller ◦ Controller  Integrates business (application) logic  Issues commands to view and model  Process user requests  Requests for displaying content (typically GET request)  Requests for modifying app. status (typically POST req.)  Typically implements other design patterns  Front controller, command, …  Alternative – Model-View-Presenter  More advanced form of MVC  View is more separated and does not access model directly by Martin Kruliš (v1.1)21

by Martin Kruliš (v1.1)22