Introduction to Web Applications

Slides:



Advertisements
Similar presentations
Lecture 11 Server Side Interaction
Advertisements

An architecture for webb applications, J2EE
BICS546 Client/Server Database Application Development.
15 Chapter 15 Web Database Development Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
Introduction to ASP.NET. 2 © UW Business School, University of Washington 2004 Outline Static vs. Dynamic Web Pages.NET Framework Installing ASP.NET First.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
Lecture 2 Web application architecture. Themes Architecture : The large scale structure of a system, especially a computer system Design choice: The need.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 1.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
Week 2 IBS 685. Static Page Architecture The user requests the page by typing a URL in a browser The Browser requests the page from the Web Server The.
Multiple Tiers in Action
Introduction to Web Based Application. Web-based application TCP/IP (HTTP) protocol Using WWW technology & software Distributed environment.
Interpret Application Specifications
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.
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Applets & Servlets.
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.
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
Week 7 Lecture Web Database Development Samuel Conn, Asst. Professor
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
Internet Basics Dr. Norm Friesen June 22, Questions What is the Internet? What is the Web? How are they different? How do they work? How do they.
Introduction to Internet Programming (Web Based Application)
11/16/2012ISC329 Isabelle Bichindaritz1 Web Database Application Development.
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
20-753: Fundamentals of Web Programming 1 Lecture 1: Introduction Fundamentals of Web Programming Lecture 1: Introduction.
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Overview Web Session 3 Matakuliah: Web Database Tahun: 2008.
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.
WEB SERVER SOFTWARE FEATURE SETS
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
Chapter 10 1 Figure 10-1: Database-enabled intranet-internet environment.
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.
Java Server Pages Can web pages be created specially for each user?
CX Introduction to Web Programming
Introduction to Internet Programming (Web Based Application)
Introduction Servlets and JSP
Section 6.3 Server-side Scripting
WWW and HTTP King Fahd University of Petroleum & Minerals
Netscape Application Server
Web Development Web Servers.
Servlet Fudamentals.
Java Servlets By: Tejashri Udavant..
MVC and other n-tier Architectures
Web Software Model CS 4640 Programming Languages for Web Applications
Web Applications Security What are web Applications?
Introduction to J2EE Architecture
PHP / MySQL Introduction
Web App vs Mobile App.
Web Application Software
Web Technology and DBMSs
Introduction to Java Server Pages
Web Development Using ASP .NET
Chapter 27 WWW and HTTP.
Lecture 1: Multi-tier Architecture Overview
Introduction to Servlets
ASP.NET Module Subtitle.
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Back end Development CS Programming Languages for Web Applications
Architecture of the web
State Handling CS 4640 Programming Languages for Web Applications
Scripted Page Web Application Development (Java Server Pages)
Back end Development CS Programming Languages for Web Applications
State Handling CS 4640 Programming Languages for Web Applications
Web Application Development Using PHP
Presentation transcript:

Introduction to Web Applications Jeff Offutt http://www.cs.gmu.edu/~offutt/ SWE 432 Design and Implementation of Software for the Web

Web Applications A web application uses enabling technologies to make web site contents dynamic allow users of the system to implement business logic on the server Web applications let users affect state on the server A web application is a program deployed on the web An enabling technology makes web pages interactive and responsive to user input 21 September 2018 © Offutt

Web Application Failures Web applications have many problems Oct 2004: Paypal waived transaction fees for an entire day because of a service outage after an upgrade Aug 2006 and July 2008: Amazon failure caused businesses to lose information and revenue Sep 2011: 2 hours downtime of Target’s web site and its 1 day intermittently functioning delayed and cancelled customers’ orders Mar 2012: The BodyShop BOGO turned into an extra discount Sep 2012: online attacks on Bank of America, JPMorgan Chase, Citigroup, US Bank, Wells Fargo, and PNC Oct 2013: Healthcare system failed on launch 21 September 2018 © Offutt

Traditional Computing Use A user works with software on her computer 21 September 2018 © Offutt

Client – Server Computing A user works with software or data on a separate computer called a server Client requests data Client PC Server returns data Compute or DB Server 21 September 2018 © Offutt

Web Applications Many users work with servers and databases that can be reached through the Internet with the HyperText Transfer Protocol SQL Records HTML HTTP Request Internet Client Browser Client Browser Client Browser 21 September 2018 © Offutt

N-Tier Web Architecture Large web applications run on many computers that have to coordinate with each other. Amazon and Netflix have thousands of servers. middleware network middleware Client Web Servers Application Servers DB Servers Browser Javascripts HTML PHP ASP JSP, etc Java C# 21 September 2018 © Offutt

How the Software Works HTML Browser Browser Java Servlet—idProgram <body> <form method=post action=idProgram Name=idForm> Name: <input type=text name=userName> Age: <input type=text name=age> Email: <input type=text name=Email> </form> </body> </html> HTML Name : George Age : 23 Email : Browser to server out.println (“<html>\n”); out.println (“<body>\n”); out.println (“<p>Your name is “); out.println (req.getParameter (userName)); out.println (“\n<p>Your age is “); out.println (req.getParameter (age)); out.println (“\n<p>Your email is “); out.println (req.getParameter (Email)); out.println (“</body>”); out.println (“</html>”); Java Servlet—idProgram Your name is George Your age is 23 Your email is Browser to client 21 September 2018 © Offutt

Server Side Processing HTTP Request data Web server UI implemented in a browser Container engine Program components Client Server HTML HTTP Response 21 September 2018 © Offutt

Execution Overview Server Container engine Program component 1 8 Incoming request on port 8080 Server Response back to requestor HTTP Request HTTP Response 7 2 Web server Request / Response Objects Modified Response Objects 6 3 Container engine Create thread / call method Return 5 Program component 4 21 September 2018 © Offutt

Web Software Container Engine Web App 1 Web App 2 C2a C1a C2b C1b C2d C1c C2c Shared memory Shared memory Shared memory Web applications are constructed from diverse, distributed, and dynamically generated web components 21 September 2018 © Offutt

Session Management HTTP client-server communication is connnectionless As soon as the request is made and fulfilled, the connection is terminated Communication is simple and resistant to network problems How can servers keep track of state of different clients? Session : A single coherent use of the system by the same user Example : shopping carts Cookies : A string of characters that a web server places on a browser’s client to keep track of a session Usually used as an index into a table (dictionary) on the server Most dictionaries expire after a period of time (15 to 30 minutes) We will come back to this later … 21 September 2018 © Offutt

Enabling Technologies – CGI CGI : Common Gateway Interface allows clients to execute applications on the server The first enabling technology CGI applications usually reside in a special “safe” directory Can be written in any language; PERL was most common CGI apps typically : process data modify server state return information (usually an HTML page) 21 September 2018 © Offutt

Enabling Technologies Problems with CGI Each and every execution of a CGI module requires a new process on the web server CGI posed some significant security risks CGI does not automatically provide session management services Perl is a difficult language in which to write large applications Solution : Plug-ins on the Web server 21 September 2018 © Offutt

Enabling Technologies Web Server Plug-ins A plug-in is an extension to a web server that allows a different program to handle certain types of requests images, sound, video (first plug-ins) compiled module applications scripted page applications Plug-ins typically keep an active process as long as the web server is active 21 September 2018 © Offutt

Enabling Technologies - Plug-ins Compiled Modules Compiled modules are executable program components that the server uses Common compiled module application plug-ins : Microsoft’s .NET ASP J2EE Java servlets Compiled modules are efficient and very effective They allow programmers to clearly separate the front- end from the back-end Aids design Complicates implementation 21 September 2018 © Offutt

Enabling Technologies - Plug-ins Scripted Pages Scripted pages look like HTML pages that include code to process business logic Execution is on the server, not on the client unlike JavaScripts They have HTML with program statements that get and process data JSPs are compiled and run as servlets very clean and efficient PHP scripts are interpreted within the server 21 September 2018 © Offutt

Enabling Technologies - Plug-ins Scripted Pages Common scripted pages: Adobe’s ColdFusion Microsoft’s Active Server Pages (ASP) PHP Java Server Pages (JSP) Scripted pages are generally easy to develop and deploy They mix logic with HTML, so can be difficult to read and maintain Not as effective for heavy-duty engineering 21 September 2018 © Offutt

Summary Web Programming The major difference is deployment Software is deployed across the Web using HTTP Other deployment methods include bundling, shrink-wrapping, embedding, and contracting New software technologies New conceptual language constructs for programming Integration Data management Control connections These differences affect every aspect of how to engineer high quality software 21 September 2018 © Offutt

What We Will Study We will learn about these concepts in the context of several technologies PHP Ajax Servlets JSPs 21 September 2018 © Offutt