HILDA: HIgh level Language for Data driven Application. Fan Yang, Jayavel Shanmugasundaram, Mirek Riedewald, Johannes Gehrke, Alan Demers

Similar documents
Hilda: A High-Level Language for Data-Driven Web Applications

1 File Processing Systems

What is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World

PL/SQL Programming Workbook

Chapter 1: Introduction

Cache Database: Introduction to a New Generation Database

A Unified Platform for Data Driven Web Applications with Automatic Client-Server Partitioning

Modern Databases. Database Systems Lecture 18 Natasha Alechina

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Database System Concepts

The ObjectStore Database System. Charles Lamb Gordon Landis Jack Orenstein Dan Weinreb Slides based on those by Clint Morgan

Course 6232A: Implementing a Microsoft SQL Server 2008 Database

Enterprise Application Development In Java with AJAX and ORM

OBJECTS AND DATABASES. CS121: Introduction to Relational Database Systems Fall 2015 Lecture 21

D61830GC30. MySQL for Developers. Summary. Introduction. Prerequisites. At Course completion After completing this course, students will be able to:

Chapter 3. Database Environment - Objectives. Multi-user DBMS Architectures. Teleprocessing. File-Server

1. INTRODUCTION TO RDBMS

XFlash A Web Application Design Framework with Model-Driven Methodology

EVALUATION OF SERVER-SIDE TECHNOLOGY FOR WEB DEPLOYMENT

A Workbench for Prototyping XML Data Exchange (extended abstract)

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

SQL Server for developers. murach's TRAINING & REFERENCE. Bryan Syverson. Mike Murach & Associates, Inc. Joel Murach

SQL Databases Course. by Applied Technology Research Center. This course provides training for MySQL, Oracle, SQL Server and PostgreSQL databases.

Logistics. Database Management Systems. Chapter 1. Project. Goals for This Course. Any Questions So Far? What This Course Cannot Do.

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar

Database Application Developer Tools Using Static Analysis and Dynamic Profiling

Overview RDBMS-ORDBMS- OODBMS

Chapter 13. Introduction to SQL Programming Techniques. Database Programming: Techniques and Issues. SQL Programming. Database applications

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS

Specialized Programme on Web Application Development using Open Source Tools

Programming in C# with Microsoft Visual Studio 2010

Object Oriented Database Management System for Decision Support System.

Developing ASP.NET MVC 4 Web Applications MOC 20486

ICOM 6005 Database Management Systems Design. Dr. Manuel Rodríguez Martínez Electrical and Computer Engineering Department Lecture 2 August 23, 2001

U III 5. networks & operating system o Several competing DOC standards OMG s CORBA, OpenDoc & Microsoft s ActiveX / DCOM. Object request broker (ORB)

Web Application Architectures

COM 440 Distributed Systems Project List Summary

Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)

Database Management Systems: Relational, Object-Relational, and Object-Oriented Data Models COT/4-02-V1.1

Oracle SQL Developer for Database Developers. An Oracle White Paper June 2007

Qint Software - Technical White Paper

CHAPTER 20 TESING WEB APPLICATIONS. Overview

Chapter 1: Introduction. Database Management System (DBMS) University Database Example

Middleware Lou Somers

Oracle Database: Program with PL/SQL

Rapid web development using AJAX and Python

MS Designing and Optimizing Database Solutions with Microsoft SQL Server 2008

Objectives of Lecture 1. Labs and TAs. Class and Office Hours. CMPUT 391: Introduction. Introduction

A Framework For Rapid Development Of OLTP Information Systems: Transformation Of SQL Statements To Three-Tier Web Applications

Computer Information Systems (CIS)

Java (12 Weeks) Introduction to Java Programming Language

Business Application Services Testing

Distributed Database Design

Object Oriented Databases (OODBs) Relational and OO data models. Advantages and Disadvantages of OO as compared with relational

Realization of Inventory Databases and Object-Relational Mapping for the Common Information Model

Visual Basic. murach's TRAINING & REFERENCE

BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE By using the RETE Algorithm Benefits of RETE Algorithm...

Embedded BI made easy

PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.

irods and Metadata survey Version 0.1 Date March Abhijeet Kodgire 25th

General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support

Service Oriented Architectures

Oracle SQL Developer for Database Developers. An Oracle White Paper September 2008

ECS 165A: Introduction to Database Systems

Software Engineering

Database Programming with PL/SQL: Learning Objectives

Chapter 1: Introduction. Database Management System (DBMS)

Object-Oriented Databases Course Review

Oracle Database: Program with PL/SQL

æ A collection of interrelated and persistent data èusually referred to as the database èdbèè.

The SQL-based All-Declarative FORWARD Web Application Development Framework

The Relational Model. Why Study the Relational Model? Relational Database: Definitions. Chapter 3

Developing ASP.NET MVC 4 Web Applications

Database Concepts. Database & Database Management System. Application examples. Application examples

Build Your Knowledge!

Generating Enterprise Applications from Models

Oracle Database: Program with PL/SQL

MULTICULTURAL CONTENT MANAGEMENT SYSTEM

Chapter 9: Object-Based Databases

From Object Oriented Conceptual Modeling to Automated Programming in Java

Skills for Employment Investment Project (SEIP)


Quiz! Database Indexes. Index. Quiz! Disc and main memory. Quiz! How costly is this operation (naive solution)?

Oracle Database: Program with PL/SQL

Artificial Intelligence. Class: 3 rd

DIABLO VALLEY COLLEGE CATALOG

PowerDesigner WarehouseArchitect The Model for Data Warehousing Solutions. A Technical Whitepaper from Sybase, Inc.

Introduction to Object-Oriented and Object-Relational Database Systems

Getting Started with the Internet Communications Engine

Foglight. Dashboard Support Guide

SOFTWARE TESTING TRAINING COURSES CONTENTS

Bubble Code Review for Magento

Go Ria / Mobile. Automatic Conversion of Magic / unipaas Applications to RIA / Mobile

What s really under the hood? How I learned to stop worrying and love Magento

Introduction to Database Systems. Chapter 1 Introduction. Chapter 1 Introduction

Chapter 2 Database System Concepts and Architecture

Core Syllabus. Version 2.6 B BUILD KNOWLEDGE AREA: DEVELOPMENT AND IMPLEMENTATION OF INFORMATION SYSTEMS. June 2006

A Modular Approach to Teaching Mobile APPS Development

The Service Revolution software engineering without programming languages

10CS73:Web Programming

Transcription:

HILDA: HIgh level Language for Data driven Application Fan Yang, Jayavel Shanmugasundaram, Mirek Riedewald, Johannes Gehrke, Alan Demers

Data Driven Application E.g. online shopping, online auctions Usually follows standard three-tier architecture database application logic web interface Representative frameworks J2EE-based application servers Java Servlets/JSPs ASP PHP WebML Strudel Relational transducer

Impedance mismatch Different data model for different layers Hard to develop and maintain Not declarative Low level Drawbacks Limit optimization opportunities No unified handling of Queries and Updates Strudel, AutoWeb are declarative but no updates No structured programming for Web Sites Websites are connected graphs of pages jump between pages is like goto statement No single entry and single exit as in function calls

Drawbacks(Cont.) No support for Conflict detection Application level conflicts are hard to detect Mixes Application Logic and Presentation Separation between application logic and presentation should be enforced

Hilda Overview Outline CMS Case Study Syntax and semantics of AUnit Mini-CMS with Hilda AUnit inheritance PUnit Implementation Future work Summary

CMS Assignment Creation Viewing student grades Student group Management

Hilda Overview A single data model relational model Represent the state of all parts of the application Application Unit(AUnit) Single entry and single exit Instances of AUnits form a regular tree structures Models application logic and web site navigation as state transitions Presentation Unit(PUnit) HTML-based presentation construct Associated with an AUnit and describe how the conent of the AUnit is to be presented AUnit deals with application logic and web site structure while PUnit deal with presentation issues like page layout, font size etc.

Application Unit Single entry and single exit Optional input and output schema Instances of AUnit Activation : creation of an instance Deactivation : destroying of an instance Basic AUnit Can interact with users E.g. ShowRow: show a row(input) to the user in web browser. UpdateRow: show a row(input) to the user and get users update(output) SelectRow: let user choose one row(output) from a table(input) User-defined AUnit Optional local schema and local query Optional persistent schema and persistent query Child AUnits(Basic or User-defined) Logic to activate instances of child AUnits(Called Activator) Root AUnit(main function)

User-defined AUnit All information are defined using Relational model OutputSchema { Table1(id:integer, value:string) } SQL is used to specify update operation E.g Table1 :- SELECT * FROM Table1 Table1 :- SELECT genkey(), foo Activator Activation table and query: For each tuple in activation table, we activate one instance of child AUnit. Input query: Prepare input for child AUnit instances output handlers: Handle output from the returned child AUnit instance. May cause the instance itself return

Get Persistent user name schema as input defines tables used for course management For each course, activate one CourseAdmin instance Prepare input for each CourseAdmin instances activated Action will be performed, when one child instance returns

Short hand for input and output schema One instance of CreateAssignment always will be activated Show the list of assignments

Condition to check New assignment infomation Contruct the output User s input tables and cause the instance to return Intialize local table Reset the date if Update assignment the constraint is information not satisfied Get a new problem

State Transition Activation phase(bootstrap for each session) For each incoming session, a new instance of Root AUnit is activated. An nested tree-structure is created recursively which keeps all application states in all three layers. We call it activation tree. The process is idempotent and considered as an atomic action State transition consists of return phase and reactivation phase Return phase Initiated by returning from instance of Basic AUnit One of the output handlers of the activator which activates the returned instance will be invoked. If the handler is a return handler, the parent will return and deactivates itself. Go on recursively until we invoke an non-return handler or the root

State Transition(Cont.) Reactivation phase Proceed just like activation phase except that Instances with identical activation tuple in previous state preserve their local tables Returned instances lose their local state. Intuitively activation tree not by the return phase shouldn t run local query and lose their local tables

Inheritance AUnit support inheritance for code reuse Add extra input, output, local and persistent tables Add extra activator Add more condition for activation query Add actions for handler We use AUnit to define both application logic and content and structure of the website Separate them further using inheritance First consider the general application logic Then refine the structure of the website by inheritance

The course user chosen from course list Show a course list Activate only one CoureAdmin instance for the course chosen by the user

PUnit HTML based Only in charge of how information are shown not what to show.

Hilda Overview Outline CMS Case Study Syntax and semantics of AUnit Mini-CMS with Hilda AUnit inheritance PUnit Implementation Future work Summary

Compiler

Compiler(Cont.) Local and persistent tables are stored in database Input and output are passed around as view definition. Activation tables are cached in main memory for fast creation of activation tree Each Aunit is translated to a java class with tohtml method which recursively call tohtml methods of its children.

Future work Client-Server code Partitioning Data Caching Application concurrency control

Question?