Migrating Web Frameworks Using Water Transformations Ahmed E. Hassan Richard C. Holt School of Computer Science University Of Waterloo.

Slides:



Advertisements
Similar presentations
Overview Environment for Internet database connectivity
Advertisements

Copyright © 2004 ProsoftTraining, All Rights Reserved. Lesson 11: Advanced Web Technologies.
/ department of mathematics and computer sciencedepartment of mathematics and computer science / architecture of information systems.
Consignment Tracking System An Overview - Aron Bury - Ian Searle - Ian Storey.
Modern Web Application Frameworks CSE 591 – Security and Vulnerability Analysis Spring 2015 Adam Doupé Arizona State University
DT228/3 Web Development WWW and Client server model.
Online Educational Game of Snakes and Ladders -Shalini Pradhan -Manali Joshi -Uttara Paingankar -Seema Joshi.
Languages for Dynamic Web Documents
Building Applications using ASP.NET and C# / Session 1 / 1 of 21 Session 1.
Server-Side vs. Client-Side Scripting Languages
Introduction to ASP.NET. 2 © UW Business School, University of Washington 2004 Outline Static vs. Dynamic Web Pages.NET Framework Installing ASP.NET First.
B.Sc. Multimedia ComputingMedia Technologies Database Technologies.
1 Software Testing and Quality Assurance Lecture 33 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
DT211/3 Internet Development Application Internet Development Application.
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.
Remote mailbox access gateway Software lab project.
Multiple Tiers in Action
Introduction to Web Based Application. Web-based application TCP/IP (HTTP) protocol Using WWW technology & software Distributed environment.
Active Server Pages Chapter 1. Introduction Understand how browsers and servers interacted when the Web was young Understand what early Internet and intranet.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
2440: 141 Web Site Administration Web Server-Side Programming Professor: Enoch E. Damson.
Software Architecture Group University of Waterloo CANADA Architecture Recovery Of Web Applications.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
McGraw-Hill/Irwin © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Beginning Active Server Pages Barry Sosinsky Valda Hilley Programming.
1 CS 131 Wrap Up Fall 2008 What Good is Programming?
Server- Side technologies Client-side vs. Server-side scripts PHP basic ASP.NET basic ColdFusion.
CSS Class 6 Make image into a button Create button with button element Group related form elements Control tab order Process form data.
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
Chapter 1: Introduction to Web
Java Omar Rana University of South Asia. Course Overview JAVA  C/C++ and JAVA Comparison  OOP in JAVA  Exception Handling  Streams  Graphics User.
JDeveloper 10g and JavaServer Faces: High-Performance UIs on the Web Avrom Roy-Faderman Senior Programmer May, 2006.
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
1 In the good old days... Years ago… the WWW was made up of (mostly) static documents. –Each URL corresponded to a single file stored on some hard disk.
HTML. Principle of Programming  Interface with PC 2 English Japanese Chinese Machine Code Compiler / Interpreter C++ Perl Assembler Machine Code.
HTML ~ Web Design.
Implementation - Part 2 CPS 181s March 18, Pieces of the Site-building Puzzle Page 180, figure 4.1.
IS 4506 Interactive Clients & Servers.  Overview Fat Client versus Fat Server Spectrum of Web content formats Active Server Pages Active Server Page.
Kingdom of Saudi Arabia Ministry of Higher Education Al-Imam Muhammad Ibn Saud Islamic University College of Computer and Information Sciences Chapter.
Implement An Online Management System for PBX Presented by: Bui Phuong Nhung Advisor: Dr. Wei, Chao-Huang.
Introduction to ASP.NET1. 2 Web applications in general Web applications are divided into two parts –The server part –The client part The server part.
Web Design (1) Terminology. Coding ‘languages’ (1) HTML - Hypertext Markup Language - describes the content of a web page CSS - Cascading Style Sheets.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Web Programming Brian Toone 8/27/2014. Outline for today 1.Understanding the architecture of the web 2.Overview of programming languages – Client-side.
CF101: Welcome to ColdFusion Simon Horwith CTO, Etrilogy Ltd.
CS1001 Lecture 9. Overview Security Security HTML HTML.
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.
The Problem of State. We will look at… Sometimes web development is just plain weird! Internet / World Wide Web Aspects of their operation The role of.
Client-side & Server-side Scripting ©Richard L. Goldman August 5, 2003 Requires PowerPoint 2002 or later for full functionality.
The Module Road Map Assignment 1 Road Map We will look at… Internet / World Wide Web Aspects of their operation The role of clients and servers ASPX.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
1) PHP – Personal Home Page Scripting Language 2) JavaScript.
Invitation to Computer Science 6 th Edition Chapter 10 The Tower of Babel.
COSC 2328 – Web Programming.  PHP is a server scripting language  It’s widely-used and free  It’s an alternative to Microsoft’s ASP and Ruby  PHP.
Sessions and cookies (part 2) MIS 3501, Fall 2015 Brad N Greenwood, PhD Department of MIS Fox School of Business Temple University 11/19/2015.
Web Page Designing With Dreamweaver MX\Session 1\1 of 9 Session 1 Introduction to PHP Hypertext Preprocessor - PHP.
Lect5.ppt - 02/23/06 CIS 4100 Systems Performance and Evaluation Lecture 6 by Zornitza Genova Prodanoff.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Ajax 101 for CF Programmers Randy Brown – Michigan State University
Active Server Pages v.s. Java Server Pages Presenters: Lan Guo Qunying Fan Pei-Xun Wu Date:
Web Programming Language
Section 6.3 Server-side Scripting
Chapter 2 Client/Server Applications
Sessions and cookies (part 2)
Some bits on how it works
Unit 6-Chapter 2 Struts.
PHP / MySQL Introduction
PHP + Oracle = Data-Driven Websites
PHP: Hypertext Preprocessor
Presentation transcript:

Migrating Web Frameworks Using Water Transformations Ahmed E. Hassan Richard C. Holt School of Computer Science University Of Waterloo

Web Applications A software system whose functionality is delivered through the web Web browser is used as the client HTTP state-less protocol is used as the communication protocol Many development frameworks have been proposed – JSP, NSP, ASP, ASP+, CF Active pages are their building blocks

Introduction to Active Pages Simple html file: (foo.html) Welcome to CNN.COM AP file: (foo.ap) Welcome to

Introduction to Active Pages Interesting AP file: (foo2.ap) Welcome to

Introduction to Active Pages file.apfile.html Data Tables COM/ CORBA Objects Web Server Pre-processor Data Flow

Structure of an Active Page Active Page Client ScriptsServer ScriptsHTML JavaScriptPerlVBScript JavaScript

Web Application Development Frameworks Abstract details of developing an application: –access control –client state maintenance –relational database access –file manipulations on the server Each framework: –uses its own programming language –Each framework provides a set of built-in objects

Migrating from ASP to NSP Language Transformation: –ASP uses VBScript –NSP uses JavaScript Object Model Transformation: –Different set of built-in objects

ASP vs NSP built-in objects CanonicalASPNSP Request Response Session Client Application Project Server ErrorASPErrorSsjs_onError

ASP Example 1: 2: Main Page 3: 4: Welcome to your account, 5: To display balance click here 6: 7: Please Login first, click here 8: 9:

Island Grammars Used for robust parsing and extraction Recover from errors and handle ill defined grammars: –Island: Tokens of interest (VBScript Code) Parsed and expanded –Water: Un-interesting tokens (HTML/Comments) Skipped

Water Transformations Extends the idea of Island Grammars for code transformations Converts Water to special Islands Performs code transformation on Islands using traditional approaches Convert back the special post-transform. Islands to Water

Migration Overview rmComment (in Perl) rmHTML (in Perl) ASP file VBScript code Lang Trans. (in TXL) Object Model Trans. (TXL) addComment (in Perl) addHTML (in Perl) NSP file JavaScript code

1: 2: Main Page 3: 4: Welcome to your account, 5: To display balance click here 6: 7: Please Login first, click here 8: 9: 1: HTMLCALL(); 2: if Session("loggedIn") Then ‘ User already logged in 3: HTMLCALL(); 4: Response.Write(Session("username")) 5: HTMLCALL(); 6: Else ‘ User needs to login 7: HTMLCALL(); 8: End If 9: HTMLCALL(); Input ASP file After rmHTML

1: HTMLCALL(); 2: if Session("loggedIn") Then ‘ User already logged in 3: HTMLCALL(); 4: Response.Write(Session("username")) 5: HTMLCALL(); 6: Else ‘ User needs to login 7: HTMLCALL(); 8: End If 9: HTMLCALL(); 1 : HTMLCALL(); 2 : if Session("loggedIn") Then 3 : COMMENTCALL(); 4 : HTMLCALL(); 5 : Response.Write(Session("username")) 6 : HTMLCALL(); 7 : Else 8 : COMMENTCALL(); 9 : HTMLCALL(); 10: End If 11: HTMLCALL(); After rmCmt After rmHTML

1 : HTMLCALL(); 2 : if Session("loggedIn") Then 3 : COMMENTCALL(); 4 : HTMLCALL(); 5 : Response.Write(Session("username")) 6 : HTMLCALL(); 7 : Else 8 : COMMENTCALL(); 9 : HTMLCALL(); 10: End If 11: HTMLCALL(); 1 : HTMLCALL(); 2 : if (Client.loggedIn)) { 3 : COMMENTCALL(); 4 : HTMLCALL(); 5 : write(Client.username)) ; 6 : HTMLCALL(); 7 : } else { 8 : COMMENTCALL(); 9 : HTMLCALL(); 10: } 11: HTMLCALL(); After TXL Trans. After rmCmt

Conclusion An approach to migrate ASP to NSP is presented: –Language Transformation –Object Model Transformation Pre/Post processing steps are used to massage the input and transform it to a traditional program The approach preserves the location of the comments and HTML compared to the source code to ease future maintenance