Facing Interaction-Rich RIAs: the Orchestration Model Sandy Pérez 1, Oscar Díaz 1, Santiago Meliá 2 and Jaime Gómez 2 1 ONEKIN Research Group 2 IWAD Group.

Slides:



Advertisements
Similar presentations
RESTful, Resource-Oriented Architectures: a Model-Driven Approach Sandy Pérez 1, Frederico Durao 2, Santiago Meliá 3, Peter Dolog 2, Oscar Díaz 1 1st International.
Advertisements

MWD1001 Website Production Using JavaScript with Forms.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Mashup-Aware Corporate Portals Sandy Pérez and Oscar Díaz ONEKIN Research Group University of the Basque Country San Sebastián (Spain) The 11th International.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
6/3/2015eBiquity1 Tutorial on AJAX Anubhav Kale (akale1 AT cs DOT umbc DOT edu)
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5, Analysis: Dynamic Modeling.
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
© 2009 Research In Motion Limited Methods of application development for mobile devices.
Active X Microsoft’s Answer to Dynamic Content Reference: Using Active X by Brian Farrar QUE
Cloud Computing Lecture #7 Introduction to Ajax Jimmy Lin The iSchool University of Maryland Wednesday, October 15, 2008 This work is licensed under a.
1 Software Testing and Quality Assurance Lecture 32 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
Does Ajax suck? CS575 Spring 2007 Chanwit Suebsureekul.
1 JavaScript & AJAX CS , Spring JavaScript.
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
3.02G Website Components 3.02 Develop webpages.. Website Components  The website MUST contain an Index/Home Page.  A business website should contain:
Client/Server Architectures
Presented by…. Group 2 1. Programming language 2Introduction.
ASP.NET AJAX. Content ASP.NET AJAX Ajax Control Toolkit Muzaffer DOĞAN - Anadolu University2.
IT 210 The Internet & World Wide Web introduction.
Chapter 10 Architectural Design
INTRODUCTION TO DHTML. TOPICS TO BE DISCUSSED……….  Introduction Introduction  UsesUses  ComponentsComponents  Difference between HTML and DHTMLDifference.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
1 Conceptual Modeling of User Interfaces to Workflow Information Systems Conceptual Modeling of User Interfaces to Workflow Information Systems By: Josefina.
May 16 – 18, 2007 Copyright 2007, Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide Build Great Web Application 'Fast and Easy'
Ruth Betcher Ruth Christie
XForms: A case study Rajiv Shivane & Pavitar Singh.
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
Server-side Scripting Powering the webs favourite services.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
Postacademic Interuniversity Course in Information Technology – Module C1p1 Contents Data Communications Applications –File & print serving –Mail –Domain.
Instructor, Dr. Khalili Bahram Jeevan Kumar Gogineni.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Tagging Aware Portlets Oscar Díaz, Sandy Pérez and Cristóbal Arellano ONEKIN Research Group University of the Basque Country San Sebastián (Spain) The.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
CSC480 Software Engineering Lecture 11 September 30, 2002.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Model-Driven Engineering of Behaviors in User Interfaces Efrem Mbaki & Jean Vanderdonckt Université catholique de Louvain (UCL) Louvain School of Management.
GWT Development with Activities and Places
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
1 Web Servers (Chapter 21 – Pages( ) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3 System Architecture.
School of Computing and Information Systems CS 371 Web Application Programming AJAX.
INT222 - Internet Fundamentals Shi, Yue (Sunny) Office: T2095 SENECA COLLEGE.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Incorporating Cooperative Portlets in Web Application Development Nathalie Moreno, José Raúl Romero, Antonio Vallecillo Universidad de Málaga {vergara,jrromero,av}
Prof. James A. Landay University of Washington Spring 2008 Web Interface Design, Prototyping, and Implementation Rich Internet Applications: AJAX, Server.
 AJAX technology  Rich User Experience  Characteristics  Real live examples  JavaScript and AJAX  Web application workflow model – synchronous vs.
XP 1 Charles Edeki AIU Live Chat for Unit 2 ITC0381.
Providing Personalized Mashups Within the Context of Existing Web Applications Oscar Díaz, Sandy Pérez and Iñaki Paz ONEKIN Research Group University of.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Vineel Vutukuri. What is SPA? Why SPA? Pros & Cons When to use SPA?
Technologies For Creating Rich Internet Applications Presenter's name
Section 10.1 Define scripting
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Object-Oriented Analysis and Design
Data Virtualization Tutorial… CORS and CIS
Section 17.1 Section 17.2 Add an audio file using HTML
Web Engineering.
AJAX.
4.01 Examine web page development and design.
4.01 Examine web page development and design.
Introduction to World Wide Web
The Internet and Electronic mail
Chengyu Sun California State University, Los Angeles
Presentation transcript:

Facing Interaction-Rich RIAs: the Orchestration Model Sandy Pérez 1, Oscar Díaz 1, Santiago Meliá 2 and Jaime Gómez 2 1 ONEKIN Research Group 2 IWAD Group University of the Basque Country University of Alicante San Sebastián (Spain) Alicante (Spain) The 8th International Conference on Web Engineering July 16th, 2008

S. Pérez, O. Díaz, S. Meliá & J. Gómez 2 Outline  An MDD process for RIAs  Obtaining the Orchestration Model  Down to code  Conclusions

S. Pérez, O. Díaz, S. Meliá & J. Gómez 3 An MDD process for RIAs  Artefacts: Conceptual model Navigational model Presentation model Orchestration model  Actors: OO-H Designer UI Designer Orchestration designer Model-to-model transformer Model-to-text transformer

S. Pérez, O. Díaz, S. Meliá & J. Gómez 4 Sample case. Conceptual model  Indicates the main entities and relationships found in the application domain.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 5 Sample case. Navigation model  Specifies the data to be presented (as a view on the Conceptual Model) and the order in which this data is to be presented.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 6 Sample case. Presentation model

S. Pérez, O. Díaz, S. Meliá & J. Gómez 7 Interaction dependency (ID)  RIAs are characterised by a rich- interaction setting that surpasses the boundaries of a single widget to spread along distinct widgets.  This allows widgets to react to actions not directly related to a user interaction with this widget Interactions on a widget A can also affect a nearby widget B

S. Pérez, O. Díaz, S. Meliá & J. Gómez 8 Presentation vs. Orchestration  The Presentation Model is a static representation of the widgets as structural components of a screenShot  The Orchestration Model captures interaction dependencies (ID) among widgets distribution of screenShots into pages  Orchestration is then an orthogonal concern from widgets themselves: distinct orchestration templates can be provided from the very same Presentation Model (where widgets are defined).

S. Pérez, O. Díaz, S. Meliá & J. Gómez 9 Sample case. Orchestration model

S. Pérez, O. Díaz, S. Meliá & J. Gómez 10 The process using SPEM notation

S. Pérez, O. Díaz, S. Meliá & J. Gómez 11 Obtaining the orchestration model 1.A skeleton is first automatically obtained from  the navigational model  the presentation model 2.Interaction dependencies are manually added to this skeleton. 3.Next, the Orchestration Model is heuristically enriched with pages. 4.And finally, it is validated by the Orchestration Designer.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 12 The curtain rises! What does this model-to-model transformation do?

S. Pérez, O. Díaz, S. Meliá & J. Gómez 13

S. Pérez, O. Díaz, S. Meliá & J. Gómez 14

S. Pérez, O. Díaz, S. Meliá & J. Gómez 15 The curtain rises! What does this activity involve?

S. Pérez, O. Díaz, S. Meliá & J. Gómez 16 Sample case ‘MailList’ Widget ‘MailDetails’ Widget

S. Pérez, O. Díaz, S. Meliá & J. Gómez 17 Cont.  if an in the MailList is selected then if is not spam then –the MailDetails widget should be refreshed with the contents of this . else –a confirmation from the user is required

S. Pérez, O. Díaz, S. Meliá & J. Gómez 18 Capturing the ID  if an in the MailList is selected then

S. Pérez, O. Díaz, S. Meliá & J. Gómez 19 Cont. if is not spam then the MailDetails widget should be refreshed with the contents of this . else a confirmation from the user is required

S. Pérez, O. Díaz, S. Meliá & J. Gómez 20 Synchronization is not always automatic. Sometimes additional user interaction can be required for orchestration sake. This leads to orchestral states. States whose rationales rest on some orchestrational purposes. Orchestral states

S. Pérez, O. Díaz, S. Meliá & J. Gómez 21 Orchestral state typology  Confirm serves to verify acceptance from the user.  Alert helps when we want to make sure that the information is passed to the user.  Prompt is used when a user’s input value is required.  SelectFromRange uses when there are several options and only one is permitted.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 22 The curtain rises! What does this activity involve?

S. Pérez, O. Díaz, S. Meliá & J. Gómez 23 Pages vs. screenShots  RIAs detach the unit of delivery from the unit of presentation  The unit of delivery: a page, which is the result of an HTTP request with an addressable URL  The unit of presentation: set of widgets simultaneously available or screenShot.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 24 How many screenshots are supported by a page?  page = screenShot Multi-page style (the traditional approach)  one page containing all screenShots Single-page style e.g. Google’s Mail  something in between e.g. a9.com

S. Pérez, O. Díaz, S. Meliá & J. Gómez 25 Guidelines principles?  Single-page style gives better results… more interactive and responsive web applications better user satisfaction  but… harder development.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 26 Criteria: initial download  Multi-page Only the content to be shown is downloaded.  Single-page The whole application is downloaded.  Drawbacks Content can be time-consuming to load (especially when it contains rich images) JavaScript code takes up some size and loading time at the client.  There are some techniques aimed to reduce the initial download in single-page application: Multi-Stage Download Code Compression On-Demand JavaScript  But this makes maintenance harder

S. Pérez, O. Díaz, S. Meliá & J. Gómez 27 Criteria: URL addressability  In Ajax, most server communication occurs through XMLHttpRequest which does not affect the page URL.  Hence, the application sticks with the same URL no matter how many transfers occur.  This causes some problems when developing single-page applications History support Bookmark support Deep linking support

S. Pérez, O. Díaz, S. Meliá & J. Gómez 28 Criteria: URL addressability  Normally, in a single-page application, the behaviour of browser history is simulated by updating the URL on the fly.  URL are updated by adding a fragment identifier, it ensures that the new URL does not redirect us to a new page. # fragment_identifier

S. Pérez, O. Díaz, S. Meliá & J. Gómez 29 Criteria: Indexing by search engines  Search engines point "robot" scripts to a website and have them accumulate a collection of pages.  However, robots probably won't distinguish among fragment identifiers.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 30 Single-page vs Multi-page  The best route for you will depend on what you are trying to do.  Normally, there is a reduced-page option that keeps the advantages of automatic history and bookmarking, but adds some of the advantages of a single page design.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 31 Back to the process… In order to make the developer life easier, we introduce a heuristic which helps the developer while partitioning the web application into pages.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 32 Sample case

S. Pérez, O. Díaz, S. Meliá & J. Gómez 33 The curtain rises! Finally, the Orchestration Designer validates the Orchestration Model.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 34 Down to code What does this activity involve?

S. Pérez, O. Díaz, S. Meliá & J. Gómez 35 Google Web Toolkit (GWT)  GWT is an open source Java software development framework  Main features: Ajax applications can be thoroughly coded in Java without resorting to JavaScript. When the application is deployed, the GWT compiler translates the Java application to browser compliant JavaScript and HTML

S. Pérez, O. Díaz, S. Meliá & J. Gómez 36 Supporting IDs in GWT The Message Broker pattern receives events notifications, determines the correct destinations, and routes the events to the correct destinations. By introducing the Subscriber role, widgets can be notified of events. The role Publisher allows widgets to propagate events.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 37 dfd If the Orchestral Widget has outgoing transitions stereotype as “SignalBroadcast” then the corresponding class implements the interface “Publisher”. The transition trigger involves the corresponding Java class has to implement a certain listener. The transition guard becomes an “if” statement inside the corresponding method. If the signal does not exist, the transition action is mapped to a Java class that implements the interface Signal. In order to propagate the signal, the Message Broker instance is obtained. A signal instance is created. Values are given to signal’s attributes. And finally, the signal is published.

S. Pérez, O. Díaz, S. Meliá & J. Gómez 38 Conclusions  Desktop-like interaction support is one of the hallmarks of RIA  This paper proposes the introduction of the Orchestration Model in existing web methods to face interactive-rich RIA. Interactions are captured through Interaction Dependencies (IDs) State machines are used to formalise IDs GWT is used as Ajax platform  Process wise, web development is supported as an MDD process Ecore and UML for meta-models QVT and MOFScript as the transformation languages

S. Pérez, O. Díaz, S. Meliá & J. Gómez 39 The end Thanks for your attention! Questions?