Introduction Haim Michael. All Rights Reserved.

Similar documents
Developing Ajax Web Apps with GWT. Session I

DESIGN AND IMPLEMENTATION OF SAGE DISPLAY CONTROLLER PROJECT

Create-A-Page Design Documentation

Web Application Security

"Charting the Course... WebSphere Portal 8 Development using Rational Application Developer 8.5. Course Summary

Financial. AngularJS. AngularJS.

eclipse rich ajax platform (rap)

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How!

Financial. AngularJS. AngularJS. Download Full Version :

Development of web applications using Google Technology

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

Say goodbye to the pains of Ajax. Yibo

AJAX Programming Chris Seddon

,

Chapter 10 Web-based Information Systems

RIA Security - Broken By Design. Joonas Lehtinen IT Mill - CEO

IBM JZOS Meets Web 2.0

SSC - Web applications and development Introduction and Java Servlet (I)

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

Oracle Developer Day

XPages development practices: developing a common Tree View Cust...

5.1 Registration and Configuration

APIs - what are they, really? Web API, Programming libraries, third party APIs etc

Web Frameworks MMIS 2 VU SS Denis Helic. March 10, KMI, TU Graz. Denis Helic (KMI, TU Graz) Web Frameworks March 10, / 18

IT6503 WEB PROGRAMMING. Unit-I

GRITS AJAX & GWT. Trey Roby. GRITS 5/14/09 Roby - 1

AJAX Programming Overview. Introduction. Overview

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript

GWT MOCK TEST GWT MOCK TEST I

REST AND AJAX. Introduction. Module 13

PROCE55 Mobile: Web API App. Web API.

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

Etanova Enterprise Solutions

Oracle Developer Day

Programming for Digital Media. Lecture 7 JavaScript By: A. Mousavi and P. Broomhead SERG, School of Engineering Design, Brunel University, UK

CSC309: Introduction to Web Programming. Lecture 11

THE NEW ERA OF WEB DEVELOPMENT. qooxdoo. Andreas Ecker, Derrell Lipman

20486-Developing ASP.NET MVC 4 Web Applications

Web Architecture AN OVERVIEW

Web Programming. Lecture 11. University of Toronto

Session 12. RESTful Services. Lecture Objectives

<Insert Picture Here>

1 Introduction. 2 Web Architecture

GWT: The Technical Advantage. Presenter: Anirudh Dewani Company Name: Google

Google Web Toolkit (GWT)

Part of this connection identifies how the response can / should be provided to the client code via the use of a callback routine.

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

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

An Overview of. Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology

User Interaction: jquery

Web Engineering (CC 552)

Java SE7 Fundamentals

Assignment: Seminole Movie Connection

Google Web Toolkit for quick relief of AJAX pain. Kelly Norton & Miguel Méndez

Using Adobe Flex in JSR-286 Portlets

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

Copyright Descriptor Systems, Course materials may not be reproduced in whole or in part without prior written consent of Joel Barnum

Founder & CEO

AJAX and JSON. Day 8

AJAX: Rich Internet Applications

AJAX in Apache MyFaces A New Approach To Web Applications

Google Web Toolkit (GWT) Basics. Sang Shin Java Technology Architect & Evangelist Sun Microsystems, Inc.

Implementing a Numerical Data Access Service

Web 2.0 Käyttöliittymätekniikat

Federated Search in an Age of Web Services

Assignment #3 CSCI 201 Spring % of course grade Title Weathermeister Back-End API Integration

Developing Applications with Java EE 6 on WebLogic Server 12c

Oracle Service Cloud Integration for Developers Ed 1

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

All India Council For Research & Training

a Very Short Introduction to AngularJS

1. Implementation of Inheritance with objects, methods. 2. Implementing Interface in a simple java class. 3. To create java class with polymorphism

Discovery data feed for Eid 2.0

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

Working with Javascript Building Responsive Library apps

PRIMIX SOLUTIONS. Core Labs. Tapestry : Java Web Components Whitepaper

Developing ASP.NET MVC Web Applications (486)

Java EE 6: Develop Web Applications with JSF

Developing ASP.NET MVC 5 Web Applications

CSCE 120: Learning To Code

Preface 7. 1 Introduction to OpenUI5 9

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

Google Web Toolkit. David Geary. code.google.com/webtoolkit. corewebdeveloper.com

GWT and jmaki: Expanding the GWT Universe. Carla Mott, Staff Engineer, Sun Microsystems Greg Murray, Ajax Architect, Sun Microsystems

Web Applica+on Development. Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Develop Mobile Front Ends Using Mobile Application Framework A - 2

20486: Developing ASP.NET MVC 4 Web Applications

Front End Programming

Layered UI and Adaptation Policies for Ubiquitous Web Applications

GWT - CREATE APPLICATION

DreamFactory Customer Privacy and Security Whitepaper Delivering Secure Applications on Salesforce.com

CT51 WEB TECHNOLOGY ALCCS-FEB 2014

Using the Visualization API with GWT and Other Advanced Topics. Itai Raz May 27, 2009

Networking & The Web. HCID 520 User Interface Software & Technology

1 Front-end Technologies - Historical Overview

FUSE Ajax Tutorial. 07/06 Version 1.2

of making things look better with CSS, and you have a much better platform for interface development.

Architectural patterns

Etanova Enterprise Solutions

Transcription:

Architecture

Introduction Applications developed using Vaadin include a web application servlet based part, user interface components, themes that dictate the look & feel and a data model that enables the binding of user interface components with data sources.

The com.vaadin.application Class When developing a Vaadin based web application we define a class that extends com.vaadin.application. For each session the server maintains an object instantiated from that class we define. That object is responsible for creating the user interface components and for receiving their events.

The User Interface Components The user interface components are created and laid out by the application. Each server side component has a client side Java Script based component with whom the user interacts. The server side component communicates with its client side component.

User Interface Events When the user interacts with the user interface events are created. They are first processed on the client side using JavaScript, and then they are passed over all the way through the HTTP server to the terminal adapter. The terminal adapter is responsible for communicating this data to the server side component. We can handle those events on the server side.

User Interface Events package com.example.my_vaadin; import com.vaadin.application; import com.vaadin.ui.*; import com.vaadin.ui.button.clickevent; import com.vaadin.ui.button.clicklistener; public class My_vaadinApplication extends Application { @Override public void init() { Window mainwindow = new Window("My_vaadin Application"); final Label label = new Label("Hello Vaadin user"); Button btbonga = new Button("bonga"); Button btkaponga = new Button("kaponga"); mainwindow.addcomponent(btbonga); mainwindow.addcomponent(btkaponga); mainwindow.addcomponent(label);

User Interface Events } } btkaponga.addlistener(new ClickListener() { private static final long serialversionuid = 1L; public void buttonclick(clickevent event) { label.setvalue("kaponga"); } }); btbonga.addlistener(new ClickListener() { private static final long serialversionuid = 1L; public void buttonclick(clickevent event) { label.setvalue("bonga"); } }); setmainwindow(mainwindow);

User Interface Events

Client Side Engine The client side engine is responsible for rendering the user interface. It uses the Google Web Toolkit (GWT) framework. The client side engine communicates with the server side Terminal Adapter and informs it about user interactions. The client side engine uses the UIDL language when informing the Terminal Adapter about user events. UIDL stands for User Interface Definition Language. It is a JSON based language. The communication is mad using asynchronous HTTP or HTTPS requests.

Terminal Adapter The controls reside on the server side. They render themselves back to the web browser using the terminal adapter. The terminal adapter is an additional abstraction layer responsible for rendering the user interface controls back to the web browser.

Terminal Adapter The client side engine communicates with the terminal adapter using advance asynchronous requests. The terminal adapter passes over these requests to the relevant controls.

Terminal Adapter We can adjust the terminal adapter to work with any technology we want. We are not limited for using the Google Web Toolkit. It will be transparent for our application code.

Themes While the user interface logic is handled by the code we write in Java its presentation is handled by the themes via CSS. Vaadin provides default themes we can use. We can develop new ones. The themes can include HTML templates that define a custom layout. The themes can include images in use by the CSS and/or the HTML templates.

UIDL The terminal adapter renders the user interface back to the web browser using UIDL. UIDL stands for User Interface Definition Language. It is a JSON based language. www.uidl.net

Data Models The Vaadin framework provides us with a data model we can use when interfacing the data the user interface components display. The user interface components can use that interface for updating the application data in a direct way. We can bind a control with a specific separated data source, such as a specific database table.

AJAX Ajax stands for Asynchronous JavaScript and XML. It is a technique for writing JavaScript code that interacts with the server side and updates the user interface in an asynchronous way.

Google Web Toolkit The Google Web Toolkit (GWT) is a software development kit for developing rich internet applications without having to use JavaScript or other web browser technologies.

JSON JSON stands for JavaScript Objects Notation. It is a light weight data interchange format we can easily generate and parse. Parsing JSON messages is much faster comparing with XML ones.

Java Servlets The Vaadin framework is implemented on top of the Java Servlets API. When the web container receives the first request for the URL address the application is registered with, it instantiates the ApplicationServlet class. HttpServlet ApplicationServlet

Java Servlets When the first HTTP request for our application URL arrives the ApplicationServlet class is instantiated. Using the HttpSession interface each session is associated with an Application instance. During the application lifetime each user action is related to the proper Application instance.