The Reactor Model: An Experiment in Declarative Concurrent Programming

Size: px
Start display at page:

Download "The Reactor Model: An Experiment in Declarative Concurrent Programming"

Transcription

1 The Reactor Model: An Experiment in Declarative Concurrent Programming *John Field (IBM Research) Maria-Cristina Marinescu (U. Carlos III, Madrid) Christian Stefansen (Google) Datalog 2.0, Oxford 17 March 2010

2 Do these apps have anything in common? cloud-based web 2.0 embedded network real-time data analysis

3 Yes. collection of distributed, concurrent components components are loosely coupled by messages, persistent data irregular concurrency, driven by realworld data ( reactive ) high data volumes fault-tolerance important

4 Why this is hard: an AJAX parable Zip Database City ZIP code Submit State Zip Lookup Servlet Merchant Credit Server Credit Card Number Submit Form + JScript Code Form Submission Servlet User Credit Servers

5 Web programming: state of the art requires extensive rewriting when moving applications between tiers or updating functionalty; doesn t compose, scale well babble of languages same logical data; many different physical representations <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " function gethttpobject() { xhtml1/dtd/xhtml1-strict.dtd"> var xmlhttp; <html xmlns=" > <?php /*@cc_on <head> (@_jscript_version >= 5) <title>zip Code to City and State * using Connects XmlHttpRequest</title> to the database. try { <script language="javascript" type="text/javascript"> * Return false if connection failed. xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); var url = "getcitystate.php?param="; */ // The server-side script } catch (e) { function handlehttpresponse() { function db_connect() { try { if (http.readystate == 4) { $database_name = 'mysql'; // Set this to your Database Name xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); if (http.responsetext.indexof('invalid') == -1) { $database_username = 'root'; // Set this to your MySQL username } catch (E) { // Use the XML DOM to unpack the city and state data # $database_password = ''; // Set this to your MySQL password xmlhttp = false; var xmldocument = http.responsexml; # Table structure for table `zipcodes` $result = mysql_pconnect('localhost',$database_username, $database_password); } var city = xmldocument.getelementsbytagname('city').item(0).firstchild.data; # if (!$result) return false; } var state = xmldocument.getelementsbytagname('state').item(0).firstchild.data; if (!mysql_select_db($database_name)) return document.getelementbyid('city').value = city; CREATE TABLE `zipcodes` ( return $result; xmlhttp = false; document.getelementbyid('state').value = state; `zipcode` mediumint(9) NOT '0', } isworking = false; $conn = db_connect(); // Connect to `city` database tinytext NOT NULL, if (!xmlhttp && typeof XMLHttpRequest!= 'undefined') { } if ($conn) { `state` char(2) NOT NULL default '', try { } $zipcode = $_GET['param']; // The `areacode` parameter smallint(6) passed to us NOT NULL default xmlhttp '0', = new XMLHttpRequest(); } $query = "select * from zipcodes PRIMARY where zipcode KEY (`zipcode`), = '$zipcode'"; xmlhttp.overridemimetype("text/xml"); var isworking = false; $result = mysql_query($query,$conn); UNIQUE KEY `zipcode_2` (`zipcode`), } catch (e) { function updatecitystate() { $count = mysql_num_rows($result); KEY `zipcode` (`zipcode`) xmlhttp = false; if (!isworking && http) { if ($count > 0) { ) TYPE=MyISAM; } var zipvalue = document.getelementbyid("zip").value; $city = mysql_result($result,0,'city'); } http.open("get", url + escape(zipvalue), true); $state = mysql_result($result,0,'state'); return xmlhttp; http.onreadystatechange = handlehttpresponse; } } isworking no = true; notion of } var http = gethttpobject(); // We create the HTTP Object http.send(null); if (isset($city) && isset($state)) { </script> } component // $return_value = $city. ",". $state; </head> } $return_value = '<?xml version="1.0" standalone="yes"?><zip><city>'.$city.'</city><state>'.$state.'</state></zip>'; <body> } <form action="post"> interface for fragile plumbing else { <p> $return_value = "invalid".",".$_get['param']; // Include Zip for debugging ZIP code: purposes composition } <input type="text" size="5" name="zip" id="zip" onblur="updatecitystate();" /> header('content-type: text/xml'); </p> echo $return_value; // This will become the response value for the XMLHttpRequest City: object?>6 <input type="text" name="city" id="city" /> State: <input type="text" size="2" name="state" id="state" /> </form> </body> </html> required to compose

6 A prettier picture: app composed from encapsulated, distributed components FormController ZipController DB InputWidget (city) InputWidget (card) SessionController Acct (merchant) InputWidget (state) ButtonWidget (next) InputWidget (zip) Acct (user) Acct ButtonWidget (submit) Acct

7 Web apps just one instance of reactive distributed applications have distributed control integrate front-end, back-end, and database data typically combine presentation logic, business logic, data query and access functionality can evolve and migrate between tiers dynamic instantiation of logical processes complex failure modes

8 Our (long-term) goals develop programming models for reactive distributed applications which have same model for presentation, business logic, data access simplify composition, evolution, and application maintenance target applications: web applications, distributed business applications, software supply chains this talk: initial experiments on a highly declarative model for this class of application some ideas have been incorporated in more recent work on a new scripting language for distributed applications (Thorn)

9 Reactors: key attributes Synthesis of ideas from synchronous languages: event handling, synchronization datalog: expressive data query language NB: here we are using datalog for computation, not just query actor model: simple model for dynamic creation of processes, asynchronous process interaction transactions: system evolves (only) from consistent state to consistent state concurrent computations isolated from one another XForms: declarative specification of web forms

10 Basic reactor: database with external updates Δ + : (1, 5667, 2) Δ - : (1, 2344, 4) Δ + : (1, 5667, 2) Δ + : (5, 9364, 2) (1, 1277, 3) Δ - : (1, 2344, 4) (1, 1277, 3) Δ + : (1, 5667, 2) (1, 1277, 3) update bundle Δ + : additions Δ - : deletions (3, 7623, 7) (1, 2344, 4) s 0 (3, 7623, 7) (1, 2344, 4) (5, 9634, 2) s 1 (3, 7623, 7) (5, 9634, 2) s 2 time reactor encapsulates state in the form of fixed set of relations (sets of tuples) each update is a bundle of additions (Δ + ) and deletions (Δ - ), applied atomically Δ + and Δ - must be disjoint state updates arrive asynchronously, and are queued in most basic form of reaction, updates simply applied to previous state (s i-1 ) to yield new state (s i )

11 Inside a reaction: stimulus and response stimulus state response state (1, 1277, 3) Δ + : (5, 9364, 2) (1, 1277, 3) (1, 1277, 3) (3, 7623, 7) (3, 7623, 7) (3, 7623, 7) (1, 2344, 4) (1, 2344, 4) (1, 2344, 4) (5, 9634, 2) (5, 9634, 2) S i-1 ^s i s i ^s i+1 Mi-1 Mi Mi+1 time s i (response state): observable state of reaction i ^s i (stimulus state): result of applying update to s i -1 ( pre-state ) in the absence of any computational rules, s i = ^s i

12 Adding computation via rules -r ^r r ^s 0 s 0 ^s 1 s 1 ^s 2 s 2 rules...-r......^r......r... reaction s computation defined using datalog-style rules rules define value of each relation r, s,... as function of r, -s,... (pre-state values: values of r, s,... in previous reaction) ^r, ^s,... (stimulus values: result of applying update bundle to r, -s,...) r, s,... (can appear recursively in rules) reactor computation (reaction) is atomic: intermediate states of rule evaluation not visible to other reactors

13 only public relations can be updated from outside Reactor rule evaluation public orders: (int, int, int). log: (int, int, int). public ephemeral updatelog: (). contents of ephemeral relations do not persist between reactions public ephemeral relations can be used to model events log(orderid, itemid, qty) <- orders(orderid, itemid, qty). qty), updatelog(). not log(orderid, itemid, qty) <- not orders(orderid, itemid, qty). LHS negation denotes deletion rules evaluated whenever state is updated no change made to relation unless necessary to satisfy a rule semantics ensures unique solution rule declaration order irrelevant easy to compose rules to yield new functionality without concern for data or control dependencies ( aspect -like) extension of standard datalog semantics as usual, negation requires care

14 Multiple reactors R 1 : R 2 : R 3 : reactor s computation can generate new state updates for other reactors or the same reactor and can dynamically instantiate new reactors

15 Reactor references DB rdatabase: (ref DB).... rdatabase(new) <-... db.order(...) <- rdatabase(db), relations may contain references to other reactors reactors may be instantiated dynamically rules may refer to relations of remote reactors via references

16 Asynchronous interaction via future state (r^) -r ^r r r^ ^s 0 s 0 ^s 1 s 1 ^s 2 s 2...-r......^r......r......r^... future state value: r^ r^ defines asynchronous state updates (to this or other reactors via references) rules compute r^ as function of r, -r, ^r

17 Running example: order entry application asynchronous interaction synchronous interaction City ZIP code Next State Zip Lookup Servlet Zip Database synchronous interaction Merchant Credit Server Form + JScript Code Credit Card Number Submit synchronous interaction Form + JScript Code asynchronous interaction Form Submission Servlet User Credit Servers

18 Running example: order entry application City State ZIP code Submit Form + JScript Code Form Submission Servlet

19 Order entry: validation and FormController submission reactor references for composition InputWidget (city) Δ + SessionController InputWidget (state) Δ + Δ + Δ + InputWidget (zip) asynchronous request from FormController Δ + ButtonWidget (submit) asynchronous user inputs

20 references to UI widgets and session server FormController Order entry: validation and rcity: (ref InputWidget). rstate: (ref InputWidget). rzip: (ref InputWidget). rsubmit: (ref ButtonWidget). rsession: (ref SessionController). submission (private) ephemeral relation holds result of validation for current reaction only ButtonWidget (submit) nullary ephemeral relation used to model UI events ephemeral validated: (string, string, string). public ephemeral buttonpressed: () validated(z, c, s) <- zw.val(z), cw.val(c), sw.val(s), z <> "", c <> "", s <> "", rzip(zw), rcity(cw), rstate(sw). sc.commitorder^(z, c, s) <- buttonpressed(sb), validated(z, c, s), rsubmit(sb), rsession(sc). SessionController... public ephemeral commitorder: (string, string, string).... references to relations of remote reactors set of listeners that are notified when button pressed reference to future state of remote reference: spawns asynchronous reaction public label: (string). public listeners: (ref FormController) public ephemeral pressed: (). rf,buttonpressed(self) <- listeners(rf), pressed(). InputWidget (zip) public label: (string). public val: label: (string). (string). public val: label: (string). (string). public val: (string). public ephemeral filled: (). public ephemeral filled: (). public ephemeral filled: ()

21 Running example: order entry application Zip Database City ZIP code Next State Zip Lookup Servlet Form + JScript Code Form Submission Servlet

22 Order entry: adding AJAX -style asynchronous response from AjaxController asynchronous request from FormController zip lookup database accessed synchronously with receipt of request Δ + FormController Δ + AjaxController DB InputWidget (city) SessionController InputWidget (state) InputWidget (zip) ButtonWidget (submit) widgets updated synchronously with response

23 Order entry: adding AJAX -style FormController... rajax: (ref AjaxController). zip lookup public ephemeral formfilled: () public ephemeral lookupresult: (string, string). zc.lookupreq^(z, self) <- formfilled(zw), zw.val(z), rzip(zw), rajax(ac). cw.val(c), sw.val(s) <- loookupresult(c, s), rcity(cw), rstate(sw).... InputWidget (zip) when zip field is filled, asynchronous lookup public label: (string). request made public to val: label: (string). (string). AjaxController public val: label: (string). (string). public val: (string). public ephemeral filled: (). public ephemeral filled: (). public ephemeral filled: () AjaxController rdatabase: (ref DB). public ephemeral lookupreq: (string, ref FormController). when response received, widget fields are updated fc.lookupresult^(c, s) <- lookupreq(z, fc), db(z, c, s), rdatabase(db). DB response sent asynchronously after DB lookup public zipcitystate: (string, string, string).

24 Running example: order entry application Zip Database City ZIP code Next State Zip Lookup Servlet Merchant Credit Server Credit Card Number Submit Form + JScript Code Form Submission Servlet User Credit Servers

25 Order entry: dynamic widget instantiation FormController ZipController DB InputWidget (city) InputWidget (card) SessionController InputWidget (state) ButtonWidget (next) InputWidget (zip) ButtonWidget (submit) dynamically instantiate new widgets when next button pressed

26 Order entry: dynamic widget instantiation FormController new widgets instantiated when next button pressed... rnext: (ref ButtonWidget) rcard: (ref InputWidget). rsubmit: (ref ButtonWidget). old widget reference removed... City State rcard(new), rsubmit(new), not rnext(_) <- buttonpressed(nb), validated(_,_,_), -rnext(nb). sc.commitorder^(z, c, s, cc) <- buttonpressed(sb), rsubmit(sb) validated(z, c, s), cw.val(cc), cc <> "", rcard(cw) rsession(sc). NB: must refer to prestate to ensure stratification ZIP code Next Credit Card Number Submit Form + JScript Code... commitorder now validates and sends credit card info

27 Order entry: adding synchronous / atomic account transfer FormController ZipController DB InputWidget (city) InputWidget (card) SessionController Acct (merchant) InputWidget (state) ButtonWidget (next) InputWidget (zip) ButtonWidget (submit) transfer between user and merchant accts must occur synchronously and atomically Acct (user) Acct Acct

28 Order entry: adding synchronous / atomic account transfer SessionController Acct (merchant)... cardaccts: (ref Acct, string). rmerchantacct: (ref Acct). ordertotal: (int). ephemeral ruseracct: (ref Acct). ruseracct(ua) <- commitorder(_,_,_,cc), cardaccts(ua, cc). ua.balance(b - amt) := ua.-balance(b), ordertotal(amt), commitorder(_,_,_,_), ruseracct(ua). ma.balance(b + amt) := ma.-balance(b), ordertotal(amt), commitorder(_,_,_,_), rmerchantacct(ma). syntactic sugar for asserting new value; retracting old value for singleton cell predicate FAIL is syntactic sugar for a predefined inconsistency, hence can be used to define consistency constraints public balance: (int). FAIL <- balance(x), balance(y), x <> y. FAIL <- balance(x), x < 0. Acct (user) Acct (user) examples of inconsistent rules: r(...) <-. not r(...) <-. such rules are mutually unsatisfiable public balance: (int). public balance: (int). public balance: (int). FAIL <- balance(x), balance(y), FAIL x <> <- y. balance(x), balance(y), FAIL FAIL x <- <> balance(x), <- y. balance(x), x < balance(y), 0. FAIL x <- <> balance(x), y. x < 0. FAIL <- balance(x), x < 0. reactions that yield inconsistency roll back to pre-state

29 Reactor semantics: some issues (I) Handling reactor references: given reference of form c.r(x) <-... rewrite as r (c, x) <-... Head negation: compute positive and negative information separately explicitly check for consistency before committing result translate rules to datalog with goal (rhs) negation only Rules required to be stratified to ensure unique solution stratification check must account for remote references

30 Reactor semantics: some issues (II) Scope extrusion semantics for composite synchronous reactions defines which reactor instances are affected scope of reaction extrudes to reactor R whenever another reaction attempts to write to response state of relation of R Optimistic concurrency control composite reactions operate on snapshots of reactor state reaction rolls back, update re-queued if states of reactors have changed prior to commitment Reactor instantiation: in each reaction... for each new instance in rule head......generate a globally unique reference for each combination of values bound to variables in the rules modeled using functors

31 Related work actor model transactional languages (Argus, Camelot) synchronous languages (Esterel, Lustre, Signal,...) concurrent constraint programming process calculi (Pi calculus, Join calculus, Ambient calculus,...) tierless web programming models (Links, Hop, Google Web Toolkit...) stream-oriented web programming models (Flapjax,...) modern relational databases (triggers, constraints,...) various web services standards event-condition-action rules Axml <your missing reference goes here>

32 Review data, rather than ports or channels as interface to process expressive data query and transformation declarative, data-driven, compositional specification of functionality in an ``aspect-like'' manner constraints/assertions expressible in core language synchronous and asynchronous interaction in same model simple transactional model dynamic process creation

33 Details Theoretical Computer Science 09

34 Questions?

35 Head Negation public orders: (int, int, int). log: (int, int, int) log(id, itemid, qty) <- orders(id, itemid, qty). not log(id, itemid, qty) <- not orders(id, itemid, qty). transforms to (roughly) public orders: (int, int, int). log: (int, int, int) ephemeral ordersδ + : (int, int, int). ephemeral ordersδ - : (int, int, int). ephemeral logδ + : (int, int, int). ephemeral logδ - : (int, int, int). logδ + (id, itemid, qty) <- ^orders(id, itemid, qty), ordersδ + (id, itemid, qty). logδ - (id, itemid, qty) <- not ^orders(id, itemid, qty), ^log(id, itemid, qty), not ordersδ + (id, itemid, qty). if (logδ + logδ = ) then log := ^log logδ + \ logδ +

36 Reactor syntax REACTOR ::= def reactor-type-name = { {DECL.}* } ENUM ::= enum enum-type-name = { {atom-name,}+ } DECL ::= ( RELATION-DECL RULE-DECL ). RELATION-DECL ::= [public public write public read] [ephemeral] rel-name : ( {TYPE,}* ) RULE-DECL ::= HEAD-CLAUSE <- {BODY-CLAUSE,}+ HEAD-CLAUSE ::= [not] [var-name.]rel-name[^] ( {(_ var-name),}* ) BODY-CLAUSE ::= [not][var-name.][^ -]rel-name ( {(_ var-name),}* ) BASIC-PREDICATE BASIC-PREDICATE ::= EXP (< > <> =) EXP TYPE ::= int string enum-type-name ref reactor-type-name EXP ::= var-name NUMERIC-LITERAL STRING-LITERAL EXP (+ - * / %) EXP new reactor-name self

Ajax Simplified Nicholas Petreley Abstract Ajax can become complex as far as implementation, but the concept is quite simple. This is a simple tutorial on Ajax that I hope will ease the fears of those

More information

Thorn: From Scripting to Robust Concurrent Components

Thorn: From Scripting to Robust Concurrent Components Thorn: From Scripting to Robust Concurrent Components IBM Research Bard Bloom John Field* Nate Nystrom Purdue Brian Burg Johan Östlund Gregor Richards Jan Vitek Tobias Wrigstad Cambridge Rok Strniša JAOO

More information

THE VERSATILE ACTOR: TOWARD COMPOSITIONAL PROGRAMMING OF DISTRIBUTED APPLICATIONS

THE VERSATILE ACTOR: TOWARD COMPOSITIONAL PROGRAMMING OF DISTRIBUTED APPLICATIONS THE VERSATILE ACTOR: TOWARD COMPOSITIONAL PROGRAMMING OF DISTRIBUTED APPLICATIONS PsiEta 2010 John Field, IBM Research 2010 IBM Collaborators 2 Actors Carlos Varela Thorn Bard Bloom Brian Burg Jakob Dam

More information

JavaScript + PHP AJAX. Costantino Pistagna

JavaScript + PHP AJAX. Costantino Pistagna JavaScript + PHP AJAX Costantino Pistagna What s is Ajax? AJAX is not a new programming language It s a new technique for better and faster web applications. JavaScript can communicate

More information

First Version Web 1.0: customer.jsp

First Version Web 1.0: customer.jsp First Version Web 1.0: customer.jsp

More information

Use of PHP for DB Connection. Middle and Information Tier. Middle and Information Tier

Use of PHP for DB Connection. Middle and Information Tier. Middle and Information Tier Use of PHP for DB Connection 1 2 Middle and Information Tier PHP: built in library functions for interfacing with the mysql database management system $id = mysqli_connect(string hostname, string username,

More information

Use of PHP for DB Connection. Middle and Information Tier

Use of PHP for DB Connection. Middle and Information Tier Client: UI HTML, JavaScript, CSS, XML Use of PHP for DB Connection Middle Get all books with keyword web programming PHP Format the output, i.e., data returned from the DB SQL DB Query Access/MySQL 1 2

More information

Ur/Web: A Simple Model for Programming the Web. Adam Chlipala MIT CSAIL POPL 2015 January 15, 2015

Ur/Web: A Simple Model for Programming the Web. Adam Chlipala MIT CSAIL POPL 2015 January 15, 2015 Ur/Web: A Simple Model for Programming the Web Adam Chlipala MIT CSAIL POPL 2015 January 15, 2015 Ur / Web Ur A new general-purpose typed functional language λ Web Tools for implementing modern three-tier

More information

Create-A-Page Design Documentation

Create-A-Page Design Documentation Create-A-Page Design Documentation Group 9 C r e a t e - A - P a g e This document contains a description of all development tools utilized by Create-A-Page, as well as sequence diagrams, the entity-relationship

More information

Collage: A Declarative Programming Model for Compositional Development and Evolution of Cross-Organizational Applications

Collage: A Declarative Programming Model for Compositional Development and Evolution of Cross-Organizational Applications Collage: A Declarative Programming Model for Compositional Development and Evolution of Cross-Organizational Applications Bruce Lucas, IBM T J Watson Research Center (bdlucas@us.ibm.com) Charles F Wiecha,

More information

AJAX and PHP AJAX. Christian Wenz,

AJAX and PHP AJAX. Christian Wenz, AJAX and PHP Christian Wenz, AJAX A Dutch soccer team A cleaner Two characters from Iliad A city in Canada A mountain in Colorado... Asynchronous JavaScript + XML 1 1 What is AJAX?

More information

Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming

Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Nicolas Bettenburg 1 Universitaet des Saarlandes, D-66041 Saarbruecken, nicbet@studcs.uni-sb.de Abstract. As traditional

More information

Java SE7 Fundamentals

Java SE7 Fundamentals Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various

More information

JavaScript CS 4640 Programming Languages for Web Applications

JavaScript CS 4640 Programming Languages for Web Applications JavaScript CS 4640 Programming Languages for Web Applications 1 How HTML, CSS, and JS Fit Together {css} javascript() Content layer The HTML gives the page structure and adds semantics Presentation

More information

An Introduction to AJAX. By : I. Moamin Abughazaleh

An Introduction to AJAX. By : I. Moamin Abughazaleh An Introduction to AJAX By : I. Moamin Abughazaleh How HTTP works? Page 2 / 25 Classical HTTP Process Page 3 / 25 1. The visitor requests a page 2. The server send the entire HTML, CSS and Javascript code

More information

XMLHttpRequest. CS144: Web Applications

XMLHttpRequest. CS144: Web Applications XMLHttpRequest http://oak.cs.ucla.edu/cs144/examples/google-suggest.html Q: What is going on behind the scene? What events does it monitor? What does it do when

More information

JavaScript CS 4640 Programming Languages for Web Applications

JavaScript CS 4640 Programming Languages for Web Applications JavaScript CS 4640 Programming Languages for Web Applications 1 How HTML, CSS, and JS Fit Together {css} javascript() Content layer The HTML gives the page structure and adds semantics Presentation

More information

ajax1.html 1/2 lectures/7/src/ ajax1.html 2/2 lectures/7/src/

ajax1.html 1/2 lectures/7/src/ ajax1.html 2/2 lectures/7/src/ ajax1.html 1/2 3: ajax1.html 5: Gets stock quote from quote1.php via Ajax, displaying result with alert(). 6: 7: David J. Malan 8: Dan Armendariz 9: Computer Science E-75 10: Harvard Extension School 11:

More information

Ajax Application Design

Ajax Application Design Ajax Application Design Reuven M. Lerner Abstract Asynchronous is the operative word with Ajax, and here's what it's all about. During the past few months, I've used this column to explore a number of

More information

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev Transactum Business Process Manager with High-Performance Elastic Scaling November 2011 Ivan Klianev Transactum BPM serves three primary objectives: To make it possible for developers unfamiliar with distributed

More information

CSC 405 Computer Security. Web Security

CSC 405 Computer Security. Web Security CSC 405 Computer Security Web Security Alexandros Kapravelos akaprav@ncsu.edu (Derived from slides by Giovanni Vigna and Adam Doupe) 1 The XMLHttpRequest Object Microsoft developers working on Outlook

More information

At the Forge Beginning Ajax Reuven M. Lerner Abstract How to put the A (asynchronous) in Ajax. Many programmers, myself included, have long seen JavaScript as a way to change the appearance of a page of

More information

Enterprise Software Architecture & Design

Enterprise Software Architecture & Design Enterprise Software Architecture & Design Characteristics Servers application server, web server, proxy servers etc. Clients heterogeneous users, business partners (B2B) scale large number of clients distributed

More information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

More information

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Poor co-ordination that exists in threads on JVM is bottleneck

More information

XAP: extensible Ajax Platform

XAP: extensible Ajax Platform XAP: extensible Ajax Platform Hermod Opstvedt Chief Architect DnB NOR ITUD Hermod Opstvedt: XAP: extensible Ajax Platform Slide 1 It s an Ajax jungle out there: XAML Dojo Kabuki Rico Direct Web Remoting

More information

Ajax Ajax Ajax = Asynchronous JavaScript and XML Using a set of methods built in to JavaScript to transfer data between the browser and a server in the background Reduces the amount of data that must be

More information

Introduction to Scheme

Introduction to Scheme How do you describe them Introduction to Scheme Gul Agha CS 421 Fall 2006 A language is described by specifying its syntax and semantics Syntax: The rules for writing programs. We will use Context Free

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Contents. Demos folder: Demos\14-Ajax. 1. Overview of Ajax. 2. Using Ajax directly. 3. jquery and Ajax. 4. Consuming RESTful services

Contents. Demos folder: Demos\14-Ajax. 1. Overview of Ajax. 2. Using Ajax directly. 3. jquery and Ajax. 4. Consuming RESTful services Ajax Contents 1. Overview of Ajax 2. Using Ajax directly 3. jquery and Ajax 4. Consuming RESTful services Demos folder: Demos\14-Ajax 2 1. Overview of Ajax What is Ajax? Traditional Web applications Ajax

More information

Introduction to Ajax

Introduction to Ajax Introduction to Ajax with Bob Cozzi What is AJAX? Asynchronous JavaScript and XML A J a X Asynchronous data retrieval using the XMLHttpRequest object from JavaScript Data is retrieved from the server as

More information

Functional Programming. Pure Functional Languages

Functional Programming. Pure Functional Languages Functional Programming Pure functional PLs S-expressions cons, car, cdr Defining functions read-eval-print loop of Lisp interpreter Examples of recursive functions Shallow, deep Equality testing 1 Pure

More information

WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES. Introduction. Production rules. Christian de Sainte Marie ILOG

WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES. Introduction. Production rules. Christian de Sainte Marie ILOG WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES Christian de Sainte Marie ILOG Introduction We are interested in the topic of communicating policy decisions to other parties, and, more generally,

More information

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes Java CORE JAVA Core Java Programing (Course Duration: 40 Hours) Introduction to Java What is Java? Why should we use Java? Java Platform Architecture Java Virtual Machine Java Runtime Environment A Simple

More information

Ajax. Ronald J. Glotzbach

Ajax. Ronald J. Glotzbach Ajax Ronald J. Glotzbach What is AJAX? Asynchronous JavaScript and XML Ajax is not a technology Ajax mixes well known programming techniques in an uncommon way Enables web builders to create more appealing

More information

CSE 130 Programming Language Principles & Paradigms Lecture # 20. Chapter 13 Concurrency. + AJAX Discussion

CSE 130 Programming Language Principles & Paradigms Lecture # 20. Chapter 13 Concurrency. + AJAX Discussion Chapter 13 Concurrency + AJAX Discussion Introduction Concurrency can occur at four levels: Machine instruction level (Processor) High-level language statement level Unit level Program level (OS) Because

More information

How browsers talk to servers. What does this do?

How browsers talk to servers. What does this do? HTTP HEADERS How browsers talk to servers This is more of an outline than a tutorial. I wanted to give our web team a quick overview of what headers are and what they mean for client-server communication.

More information

Ajax Ajax Ajax = Asynchronous JavaScript and XML Using a set of methods built in to JavaScript to transfer data between the browser and a server in the background Reduces the amount of data that must be

More information

Module 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains 2 components

Module 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains 2 components Module 5 JavaScript, AJAX, and jquery Module 5 Contains 2 components Both the Individual and Group portion are due on Monday October 30 th Start early on this module One of the most time consuming modules

More information

World Wide Web PROGRAMMING THE PEARSON EIGHTH EDITION. University of Colorado at Colorado Springs

World Wide Web PROGRAMMING THE PEARSON EIGHTH EDITION. University of Colorado at Colorado Springs PROGRAMMING THE World Wide Web EIGHTH EDITION ROBERT W. SEBESTA University of Colorado at Colorado Springs PEARSON Boston Columbus Indianapolis New York San Francisco Upper Saddle River Amsterdam Cape

More information

quiz 1 details wed nov 17, 1pm see handout for locations covers weeks 0 through 10, emphasis on 7 onward closed book bring a , 2-sided cheat she

quiz 1 details wed nov 17, 1pm see handout for locations covers weeks 0 through 10, emphasis on 7 onward closed book bring a , 2-sided cheat she quiz 1 details wed nov 17, 1pm see handout for locations covers weeks 0 through 10, emphasis on 7 onward closed book bring a 8.5 11, 2-sided cheat sheet 75 minutes 15% of final grade resources old quizzes

More information

MediaCMD HTTP/Ajax Interface

MediaCMD HTTP/Ajax Interface MediaCMD HTTP/Ajax Interface (c) copyright 1998-2018 Drastic Technologies Ltd. All Rights Reserved. www.drastic.tv 1 MediaCMD HTTP/Ajax Interface...1 Overview...4 Full MediaCmd Ajax/XML Access...5 VVWXMLMediaCmd

More information

Software Architecture and Engineering: Part II

Software Architecture and Engineering: Part II Software Architecture and Engineering: Part II ETH Zurich, Spring 2016 Prof. http://www.srl.inf.ethz.ch/ Framework SMT solver Alias Analysis Relational Analysis Assertions Second Project Static Analysis

More information

Module7: AJAX. Click, wait, and refresh user interaction. Synchronous request/response communication model. Page-driven: Workflow is based on pages

Module7: AJAX. Click, wait, and refresh user interaction. Synchronous request/response communication model. Page-driven: Workflow is based on pages INTERNET & WEB APPLICATION DEVELOPMENT SWE 444 Fall Semester 2008-2009 (081) Module7: Objectives/Outline Objectives Outline Understand the role of Learn how to use in your web applications Rich User Experience

More information

TIME SCHEDULE MODULE TOPICS PERIODS. HTML Document Object Model (DOM) and javascript Object Notation (JSON)

TIME SCHEDULE MODULE TOPICS PERIODS. HTML Document Object Model (DOM) and javascript Object Notation (JSON) COURSE TITLE : ADVANCED WEB DESIGN COURSE CODE : 5262 COURSE CATEGORY : A PERIODS/WEEK : 4 PERIODS/SEMESTER : 52 CREDITS : 4 TIME SCHEDULE MODULE TOPICS PERIODS 1 HTML Document Object Model (DOM) and javascript

More information

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript PHP Curriculum Module: HTML5, CSS3 & JavaScript Introduction to the Web o Explain the evolution of HTML o Explain the page structure used by HTML o List the drawbacks in HTML 4 and XHTML o List the new

More information

Real Application Security Administration

Real Application Security Administration Oracle Database Real Application Security Administration Console (RASADM) User s Guide 12c Release 2 (12.2) E85615-01 June 2017 Real Application Security Administration Oracle Database Real Application

More information

A.A. 2008/09. What is Ajax?

A.A. 2008/09. What is Ajax? Internet t Software Technologies AJAX IMCNE A.A. 2008/09 Gabriele Cecchetti What is Ajax? AJAX stands for Asynchronous JavaScript And XML. AJAX is a type of programming made popular in 2005 by Google (with

More information

Comprehensive Angular 2 Review of Day 3

Comprehensive Angular 2 Review of Day 3 Form Validation: built in validators: added to template: required minlength maxlength pattern form state: state managed through NgModel classes: control has been visited: ng-touched or ng-untouched control

More information

Notes General. IS 651: Distributed Systems 1

Notes General. IS 651: Distributed Systems 1 Notes General Discussion 1 and homework 1 are now graded. Grading is final one week after the deadline. Contract me before that if you find problem and want regrading. Minor syllabus change Moved chapter

More information

Fall Semester (081) Module7: AJAX

Fall Semester (081) Module7: AJAX INTERNET & WEB APPLICATION DEVELOPMENT SWE 444 Fall Semester 2008-2009 (081) Module7: AJAX Dr. El-Sayed El-Alfy Computer Science Department King Fahd University of Petroleum and Minerals alfy@kfupm.edu.sa

More information

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc.

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc. When the Servlet Model Doesn't Serve Gary Murphy Hilbert Computing, Inc. glm@hilbertinc.com Motivation? Many decision makers and programmers equate Java with servlets? Servlets are appropriate for a class

More information

At the Forge Prototype Reuven M. Lerner Abstract Prototype eases the burden of using JavaScript in Ajax. During the last few months, we have looked at ways to use JavaScript, a version of which is included

More information

CMPT 354 Database Systems I

CMPT 354 Database Systems I CMPT 354 Database Systems I Chapter 8 Database Application Programming Introduction Executing SQL queries: Interactive SQL interface uncommon. Application written in a host language with SQL abstraction

More information

CERTIFICATE IN WEB PROGRAMMING

CERTIFICATE IN WEB PROGRAMMING COURSE DURATION: 6 MONTHS CONTENTS : CERTIFICATE IN WEB PROGRAMMING 1. PROGRAMMING IN C and C++ Language 2. HTML/CSS and JavaScript 3. PHP and MySQL 4. Project on Development of Web Application 1. PROGRAMMING

More information

The course is supplemented by numerous hands-on labs that help attendees reinforce their theoretical knowledge of the learned material.

The course is supplemented by numerous hands-on labs that help attendees reinforce their theoretical knowledge of the learned material. Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA2442 Introduction to JavaScript Objectives This intensive training course

More information

Transbase R PHP Module

Transbase R PHP Module Transbase R PHP Module Transaction Software GmbH Willy-Brandt-Allee 2 D-81829 München Germany Phone: +49-89-62709-0 Fax: +49-89-62709-11 Email: info@transaction.de http://www.transaction.de Version 7.1.2.30

More information

AJAX Programming Chris Seddon

AJAX Programming Chris Seddon AJAX Programming Chris Seddon seddon-software@keme.co.uk 2000-12 CRS Enterprises Ltd 1 2000-12 CRS Enterprises Ltd 2 What is Ajax? "Asynchronous JavaScript and XML" Originally described in 2005 by Jesse

More information

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1 Basic Concepts :- 1. What is Data? Data is a collection of facts from which conclusion may be drawn. In computer science, data is anything in a form suitable for use with a computer. Data is often distinguished

More information

Functional Programming. Pure Functional Languages

Functional Programming. Pure Functional Languages Functional Programming Pure functional PLs S-expressions cons, car, cdr Defining functions read-eval-print loop of Lisp interpreter Examples of recursive functions Shallow, deep Equality testing 1 Pure

More information

Identity, State and Values

Identity, State and Values Identity, State and Values Clojure s approach to concurrency Rich Hickey Agenda Functions and processes Identity, State, and Values Persistent Data Structures Clojure s Managed References Q&A Functions

More information

DOT NET Syllabus (6 Months)

DOT NET Syllabus (6 Months) DOT NET Syllabus (6 Months) THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate Language (IL) Just- In- Time Compilation and CLS Disassembling.Net Application to IL

More information

AJAX(Asynchronous Javascript + XML) Creating client-side dynamic Web pages

AJAX(Asynchronous Javascript + XML) Creating client-side dynamic Web pages AJAX(Asynchronous Javascript + XML) Creating client-side dynamic Web pages AJAX = Asynchronous JavaScript and XML.AJAX is not a new programming language, but a new way to use existing standards. AJAX is

More information

<Insert Picture Here>

<Insert Picture Here> Oracle Forms Modernization with Oracle Application Express Marc Sewtz Software Development Manager Oracle Application Express Oracle USA Inc. 540 Madison Avenue,

More information

Enhancing Datalog with Epistemic Operators to Reason About Systems Knowledge in

Enhancing Datalog with Epistemic Operators to Reason About Systems Knowledge in Enhancing Datalog with Epistemic Operators to Enhancing ReasonDatalog About Knowledge with Epistemic in Distributed Operators to Reason About Systems Knowledge in Distributed (Extended abstract) Systems

More information

Jinx Malware 2.0 We know it s big, we measured it! Itzik Kotler Yoni Rom

Jinx Malware 2.0 We know it s big, we measured it! Itzik Kotler Yoni Rom Jinx Malware 2.0 We know it s big, we measured it! Itzik Kotler Yoni Rom This is how your browser looks like before Jinx has loaded This is how your browser looks like after Jinx has loaded Did you see

More information

A synchronous J avascript A nd X ml

A synchronous J avascript A nd X ml A synchronous J avascript A nd X ml The problem AJAX solves: How to put data from the server onto a web page, without loading a new page or reloading the existing page. Ajax is the concept of combining

More information

Platform as a Service lecture 2

Platform as a Service lecture 2 Politecnico di Milano Platform as a Service lecture 2 Building an example application in Google App Engine Cloud patterns Elisabetta Di Nitto Developing an application for Google App Engine (GAE)! Install

More information

Persistent Data Structures and Managed References

Persistent Data Structures and Managed References Persistent Data Structures and Managed References Clojure s approach to Identity and State Rich Hickey Agenda Functions and processes Identity, State, and Values Persistent Data Structures Clojure s Managed

More information

CS50 Quiz Review. November 13, 2017

CS50 Quiz Review. November 13, 2017 CS50 Quiz Review November 13, 2017 Info http://docs.cs50.net/2017/fall/quiz/about.html 48-hour window in which to take the quiz. You should require much less than that; expect an appropriately-scaled down

More information

Flang typechecker Due: February 27, 2015

Flang typechecker Due: February 27, 2015 CMSC 22610 Winter 2015 Implementation of Computer Languages I Flang typechecker Due: February 27, 2015 Project 3 February 9, 2015 1 Introduction The third project is to implement a type checker for Flang,

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

Setting Up a Development Server What Is a WAMP, MAMP, or LAMP? Installing a WAMP on Windows Testing the InstallationAlternative WAMPs Installing a

Setting Up a Development Server What Is a WAMP, MAMP, or LAMP? Installing a WAMP on Windows Testing the InstallationAlternative WAMPs Installing a Setting Up a Development Server What Is a WAMP, MAMP, or LAMP? Installing a WAMP on Windows Testing the InstallationAlternative WAMPs Installing a LAMP on Linux Working Remotely Introduction to web programming

More information

Computer Science nd Exam Prof. Papa Tuesday, April 28, 2016, 6:00pm 7:20pm

Computer Science nd Exam Prof. Papa Tuesday, April 28, 2016, 6:00pm 7:20pm Computer Science 571 2 nd Exam Prof. Papa Tuesday, April 28, 2016, 6:00pm 7:20pm Name: Student ID Number: 1. This is a closed book exam. 2. Please answer all questions on the test Frameworks and Agile

More information

CS 342 Lecture 7 Syntax Abstraction By: Hridesh Rajan

CS 342 Lecture 7 Syntax Abstraction By: Hridesh Rajan CS 342 Lecture 7 Syntax Abstraction By: Hridesh Rajan 1 Reading SICP, page 11-19, Section 1.1.6 Little Schemer, Chapter 2 2 The Idea of Syntax Abstraction Problem. Often programming tasks are repetitive,

More information

Reminder from last time

Reminder from last time Concurrent systems Lecture 5: Concurrency without shared data, composite operations and transactions, and serialisability DrRobert N. M. Watson 1 Reminder from last time Liveness properties Deadlock (requirements;

More information

Credits: Some of the slides are based on material adapted from

Credits: Some of the slides are based on material adapted from 1 The Web, revisited WEB 2.0 marco.ronchetti@unitn.it Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf 2 The old web: 1994 HTML pages (hyperlinks)

More information

Courses For Event Java Advanced Summer Training 2018

Courses For Event Java Advanced Summer Training 2018 Courses For Event Java Advanced Summer Training 2018 Java Fundamentals Oracle Java SE 8 Advanced Java Training Java Advanced Expert Edition Topics For Java Fundamentals Variables Data Types Operators Part

More information

AJAX. Introduction. AJAX: Asynchronous JavaScript and XML

AJAX. Introduction. AJAX: Asynchronous JavaScript and XML AJAX 1 2 Introduction AJAX: Asynchronous JavaScript and XML Popular in 2005 by Google Create interactive web applications Exchange small amounts of data with the server behind the scenes No need to reload

More information

Manual Trigger Sql Server 2008 Insert Update Delete Selection

Manual Trigger Sql Server 2008 Insert Update Delete Selection Manual Trigger Sql Server 2008 Insert Update Delete Selection Since logon triggers are server-scoped objects, we will create any necessary additional objects in master. WHERE dbs IN (SELECT authenticating_database_id

More information

INTRODUCTION TO.NET. Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.)

INTRODUCTION TO.NET. Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.) INTRODUCTION TO.NET Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate Language (IL) Just- In-

More information

JavaScript. Training Offer for JavaScript Introduction JavaScript. JavaScript Objects

JavaScript. Training Offer for JavaScript Introduction JavaScript. JavaScript Objects JavaScript CAC Noida is an ISO 9001:2015 certified training center with professional experience that dates back to 2005. The vision is to provide professional education merging corporate culture globally

More information

Enterprise Web based Software Architecture & Design

Enterprise Web based Software Architecture & Design IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark class discussions Enterprise Web based

More information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP 2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries

More information

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system

More information

Case Study: Dodging the Pitfalls of Enterprise Ajax Applications

Case Study: Dodging the Pitfalls of Enterprise Ajax Applications www.thinwire.com Case Study: Dodging the Pitfalls of Enterprise Ajax Applications A Quick Introduction: Joshua Gertzen Lead Architect of the ThinWire Ajax RIA Framework Core Technology Architect for CCS

More information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing Applications with Java EE 6 on WebLogic Server 12c Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need

More information

Functional Programming. Pure Functional Programming

Functional Programming. Pure Functional Programming Functional Programming Pure Functional Programming Computation is largely performed by applying functions to values. The value of an expression depends only on the values of its sub-expressions (if any).

More information

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

Delivery Options: Attend face-to-face in the classroom or remote-live attendance. XML Programming Duration: 5 Days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options. Click here for more info. Delivery Options:

More information

Remote Health Service System based on Struts2 and Hibernate

Remote Health Service System based on Struts2 and Hibernate St. Cloud State University therepository at St. Cloud State Culminating Projects in Computer Science and Information Technology Department of Computer Science and Information Technology 5-2017 Remote Health

More information

Static Webpage Development

Static Webpage Development Dear Student, Based upon your enquiry we are pleased to send you the course curriculum for PHP Given below is the brief description for the course you are looking for: - Static Webpage Development Introduction

More information

IBM Rational Software

IBM Rational Software IBM Rational Software Development Conference 2008 Introduction to the Jazz Technology Platform: Architecture Overview and Extensibility Scott Rich Distinguished Engineer, Jazz Architect IBM Rational SDP21

More information

AJAX. Lab. de Bases de Dados e Aplicações Web MIEIC, FEUP 2010/11. Sérgio Nunes

AJAX. Lab. de Bases de Dados e Aplicações Web MIEIC, FEUP 2010/11. Sérgio Nunes AJAX Lab. de Bases de Dados e Aplicações Web MIEIC, FEUP 2010/11 Sérgio Nunes Server calls from web pages using JavaScript call HTTP data Motivation The traditional request-response cycle in web applications

More information

Paxos Made Live. An Engineering Perspective. Authors: Tushar Chandra, Robert Griesemer, Joshua Redstone. Presented By: Dipendra Kumar Jha

Paxos Made Live. An Engineering Perspective. Authors: Tushar Chandra, Robert Griesemer, Joshua Redstone. Presented By: Dipendra Kumar Jha Paxos Made Live An Engineering Perspective Authors: Tushar Chandra, Robert Griesemer, Joshua Redstone Presented By: Dipendra Kumar Jha Consensus Algorithms Consensus: process of agreeing on one result

More information

Web Engineering (CC 552)

Web Engineering (CC 552) Web Engineering (CC 552) Introduction Dr. Mohamed Magdy mohamedmagdy@gmail.com Room 405 (CCIT) Course Goals n A general understanding of the fundamentals of the Internet programming n Knowledge and experience

More information

Abstract. 1. Introduction. 2. AJAX overview

Abstract. 1. Introduction. 2. AJAX overview Asynchronous JavaScript Technology and XML (AJAX) Chrisina Draganova Department of Computing, Communication Technology and Mathematics London Metropolitan University 100 Minories, London EC3 1JY c.draganova@londonmet.ac.uk

More information

10.1 Overview of Ajax

10.1 Overview of Ajax 10.1 Overview of Ajax - History - Possibility began with the nonstandard iframe element, which appeared in IE4 and Netscape 4 - An iframe element could be made invisible and could be used to send asynchronous

More information

wemx WebService V1.0

wemx WebService V1.0 wemx WebService 2 wemx WebService WEMX WEBSERVICE... 1 1. WEB SERVICE INTRODUCTION... 6 1.1. SYSTEM PAGE... 6 1.2. USER PAGE... 7 1.3. WEB SERVICE API... 8 2. SYSTEM PAGE PROVIDED BY THE WEB SERVICE...

More information

Oracle Database. Installation and Configuration of Real Application Security Administration (RASADM) Prerequisites

Oracle Database. Installation and Configuration of Real Application Security Administration (RASADM) Prerequisites Oracle Database Real Application Security Administration 12c Release 1 (12.1) E61899-04 May 2015 Oracle Database Real Application Security Administration (RASADM) lets you create Real Application Security

More information

Comp 426 Midterm Fall 2013

Comp 426 Midterm Fall 2013 Comp 426 Midterm Fall 2013 I have not given nor received any unauthorized assistance in the course of completing this examination. Name: PID: This is a closed book exam. This page left intentionally blank.

More information