eclipse rich ajax platform (rap)

Similar documents
Rich Client GUI's with RCP & RAP

RAP (The Rich Ajax Platform)

Eclipse 4.0. Jochen Krause EclipseSource

The Eclipse Rich Ajax Platform

AD105 Introduction to Application Development for the IBM Workplace Managed Client

e4 Project 0.9 Release Review

Tools to Develop New Linux Applications

Eclipse as a Web 2.0 Application Position Paper

OSGi on the Server. Martin Lippert (it-agile GmbH)

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Developing Ajax Web Apps with GWT. Session I

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

Using Adobe Flex in JSR-286 Portlets

Getting the Most from Eclipse

The Next Generation of Eclipse: e4. Mike Milinkovich Executive Director Eclipse Foundation

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

An Easy Way to Web User Interfaces for Ground Segment Systems

Introduction Haim Michael. All Rights Reserved.

WSDM = Web Services Distributed Management, an open standard/specified ratified by OASIS

Foundations of User Interface Programming Using the Eclipse Rich Client Platform

Department of Computer Science. Erik Olsson Haglund Fredrik Häggbom. Scrumptious. A Scrum Planning Tool Case Study to Evaluate the Rich Ajax Platform

PGT T3CHNOLOGY SCOUTING. Google Webtoolkit. JSF done right?

Smart Client development with the Eclipse Rich Client Platform

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

Google Web Toolkit (GWT)

Drupal 8 THE VIDER ITY APPR OACH

GUI Testing to the edge. Quality is not a given and testing is fun

About Tom. CEO BestSolution Systemhaus GmbH. Eclipse Committer. Platform UI EMF. Projectlead: UFaceKit, Nebula. Member of the Architectual Council

DESIGN AND IMPLEMENTATION OF SAGE DISPLAY CONTROLLER PROJECT

COPYRIGHTED MATERIAL. Part I: Getting Started. Chapter 1: Introducing Flex 2.0. Chapter 2: Introducing Flex Builder 2.0. Chapter 3: Flex 2.

The Eclipse Rich Client Platform

Create-A-Page Design Documentation

Delivering Rich Internet Applications with Ajax4jsf

Eclipse 4 Eclipse Day Toulouse 24 mai 2012

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

Modern and Responsive Mobile-enabled Web Applications

The New Generation of the Eclipse Platform. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Expeditor Client for Desktop. Client Platform Overview

Building JavaServer Faces Applications

Etanova Enterprise Solutions

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

How ercp stacks up against Android and other Mobile Rich Client Platforms. Ken Walker, J9 Java Class Libraries David Girle, Client Solutions WPLC

Spring Web Services Tutorial With Example In

<put document name here> 1/13

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

Oracle Fusion Middleware 11g: Build Applications with ADF Accel

IBM Workplace Client Technology API Toolkit

Full Stack Web Developer

Regular Forum of Lreis. Speechmaker: Gao Ang

The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications

Say goodbye to the pains of Ajax. Yibo

Case Study: Dodging the Pitfalls of Enterprise Ajax Applications

Leveraging the Model-View- Presenter Pattern in Rich Client Applications

IBM Rational Developer for System z Version 7.5

Semantic Web T LS Update

Workbench and JFace Foundations. Part One, of a two part tutorial series

Building Mashups Using the ArcGIS APIs for FLEX and JavaScript. Shannon Brown Lee Bock

The Riena Project. Creation Review Christian Campo, Jürgen Wiesmaier

<Insert Picture Here> JavaFX Overview April 2010

Equinox Project 3.6 Release Review

ArcGIS Viewer for Microsoft Silverlight An Introduction

Web Client Architecture Guide

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich

Enriching Portal user experience using Dojo toolkit support in IBM Rational Application Developer v8 for IBM WebSphere Portal

Eclipse in Embedded. Neha Garg : Prerna Rustagi :

Unit - V 5.1 WEB SERVER. Apache Web Server. Configuring and using apache web server

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

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

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

8.3 cloud roadmap. Dr. Andrei Borshchev, CEO Nikolay Churkov, Head of Software Development. The AnyLogic Company Conference 2018 Baltimore

WindowBuilder Graduation & Release Review

10th ICALEPCS Int. Conf. on Accelerator & Large Expt. Physics Control Systems. Geneva, Oct 2005, FR2.6-6O (2005) EPICS Office

CIS 3308 Web Application Programming Syllabus

Goulwen Le Fur Obeo EclipseCon NA 2014

Widget Toolkits CS MVC

WebProtégé. Protégé going Web. Tania Tudorache, Jennifer Vendetti, Natasha Noy. Stanford Center for Biomedical Informatics

(p t y) lt d. 1995/04149/07. Course List 2018

20. Eclipse and Framework Extension Languages

Checklist: Requirements GUI Test tool for Java and/or Web

Advanced User Interface Programming Using the Eclipse Rich Client Platform

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

CaptainCasa Enterprise Client. Why, where, how JavaFX makes sense

Financial. AngularJS. AngularJS.

Building modern enterprise applications from scratch: lessons learned DOAG 2014 Dr. Clemens Wrzodek

Oracle Developer Day

Mix It Up: Visual Studio 2010 and ASP.NET 4.0. Singapore 25 March 2009

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect

SDP22: The IBM Jazz Foundation and the IBM

Financial. AngularJS. AngularJS. Download Full Version :

Performance evaluation of J2EE

Development of web applications using Google Technology

Packaging for Websphere Development Studio was changed with V6R1.

Pick A Winner! In What Tool Should I Develop My Next App?

IGME-330. Rich Media Web Application Development I Week 1

Application Integration with WebSphere Portal V7

May 22, 2013 Ronald Reagan Building and International Trade Center Washington, DC USA

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

AJAX Programming Overview. Introduction. Overview

Introduction to Eclipse

First Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009

Transcription:

eclipse rich ajax platform (rap) winner Jochen Krause CEO Innoopract Member of the Board of Directors Eclipse Foundation jkrause@innoopract.com GmbH

outline rich ajax platform project status and background technology overview

eclipse rich ajax platform project rap aims to enable developers to build rich, AJAX-enabled web applications by using the eclipse development model, plug-ins and a java-only api eclipse plays a significant role in the rich client world provides advanced concepts and technologies that can be easily built upon enforces solid architecture (e.g.: promotes creation of apis, loose coupling) the goal of the project is to extend the reach of the eclipse platform to the web project status: approved in June 2006, now in validation phase large part of code contribution from Innoopract has been approved (now in CVS) no builds yet, small code contribution still waiting for approval

eclipse rich ajax platform project - continued rap did not start from scratch, the code contribution brings: w4t, a widget toolkit that allows development of ajax web ui's in plain java technlology has proved to be stable, e.g. with the eclipse download configurator service http://yoxos.com/ondemand - handling 500 concurrent users easily the project has received the winner The award honours and recognises the most remarkable and outstanding european contributions in the world of Java and Eclipse.

current trends in application development the most commonly applied technology for developing user interfaces in the past decade, templating for (simple) HTML, is getting replaced by two new major trends: rich client applications (with concepts for keeping the client up to date) rich internet application, with a strong focus on ajax technologies eclipse has succeeded in delivering a state of the art rich client framework, but the rich client camp is getting pressure from ajax enabled webapps the ajax world to date is very colorful, with many very promising technologies and projects. Most of the effort seems to be focused on providing client-side widget toolkits and a communication layer to the server.

why rap? ajax suffers from dev. complexity although ajax is a promising vision, the development complexity is very high better tools can help e.g. eclipse atf http://eclipse.org/atf/ better javascript editors are desperately needed (this can be an area for collaboration) frameworks and toolkits can deal with the low level stuff qooxdoo js gui framework Kabuki Ajax Toolkit Dojo OpenRico

how does rap compare to google gwt? google gwt is a cool technology provides a java api running on an emulated java engine in the browser (needs javascript to work) javascript is in charge of drawing the user interface eventhandling in GWT is on the client side (+ RPC calls to the server to access data) GWT enables a "standalone SWT" comparable approach can scale to 100 thousands of concurrent users rap is a cool technology, too provides a java api runs standard html and javascript in the browser (can work with javascript disabled) the browsers rendering engine draws the ui, refreshes happen through transfer of html snippets RAP relays most client-side events to the server for processing (solely ui related events can be processed on the client). running mainly on the server it can access the full java api enable the full usage of the eclipse plugin model can scale to thousands of concurrent users

outline rich ajax platform project status and background an eclipse platform strategy

rap leverages and extends the eclipse platform rap enables developers to employ the eclipse concepts for developing ajax applications, leveraging the advanced eclipse programming model plugin concept based on osgi, implemented by Eclipse Equinox workbench concept a powerful UI metaphor that facilitates providing a consistent user experience a widget toolkit encapsulates all ajax technologies behind Java objects and rendering kits only developers who want to create their own widgets need to deal with javascript and ajax eclipse as a platform becomes an attractive alternative for ajax development not only for ajax tooling

a brief example webworkbench look & feel of the eclipse workbench in a browser adding type ahead search implementation is not yet based on the eclipse workbench model hand-coded workbench, like creating the workbench look & feel directly in swt showcasing feasibility, performance, look & feel

DEMO see http://yoxos.com/ondemand/

rap architecture overview client side W4T, JFace widget toolkit, mvc, handling of distributed environment server side

www widget toolkit explained

wigdet toolkit www windowing toolkit (w4t) OO programming interface composition of wigets into a component tree event driven ui lifecycle management of the request AJAX engine rendering kits userdefined components

extensible user defined components extend WebComponent implement rendering kits for markup generation reuse of existing js libraries

life cycle (request management) 4 phases of request handling - access form versioning of the WebForm - read data read request data, apply data to model - process action process user action - render create markup, update ui components that represent model data

ajax engine for partial ui updates send request (client-side) collect form data and submit via XmlHttpRequest detect changed components (server-side) hash code based algorithm to trace component state renders only markup for widgets that need to be updated apply response (client-side) received HTML fragments are applied to document transparent for application developer

rendering kits targeted output for a variety of browsers (ie, firefox, opera, safari) AJAX renderer for partial page updates script renderer for browsers with AJAX-functionality turned off noscript Render as fallback for browsers with strict security settings dynamic loading based on namespaces

rap architecture overview client side W4T, JFace runtime OSGi server side extension points modularity, dependency management (bundles / plugins) based on standard jee technology

eclipse OSGi on the server side equinox is providing an incubator for running eclipse inside a web app and interacting with a servlet server side integration - main problems have been solved and are part of Eclipse 3.2 embedding in a servlet container war file to demo is available starting an eclipse platform server side http://www.eclipse.org/equinox/incubator/server/eclipse_serverside_integration.php rap is mainly reusing equinox technology and act as a client for this project a rap sample application using equinox is available for download can be launched with equinox launcher using a equinox http bundle shows reuse of a common core plugin between rcp and rap http://wiki.eclipse.org/index.php/rapexamples

eclipse runtime - on the server side late bindings declarativ loose coupling contributing extending existing implementations ONCE per web application (alternatively running osgi as a server with http service)

taking plugins to web applications eclipse plugin concept is enabled on the server side inside a web app everything is a plugin (server side) core plugins can be reused if they are stateless ui is assembled by contributions (server side) providing a well thought out development model

DEMO see http://wiki.eclipse.org/index.php/rapexamples

rap architecture overview client side web workbench W4T, JFace runtime OSGi server side selection service, action sets, viewparts widget toolkit, mvc, handling of distributed environment extension points modularity, dependency management (bundles / plugins) based on standard jee technology

workbench strong coupling between workbench, swt and jface in rcp need to reimplement core apis for rap to align with widget toolkit (swt api under exploration) challenges ahead: workbench session vs. application scope memory considerations multi user / logins layouts absolute positioning, formlayout integration with existing web applications

the (right) balance of server and client side framework provides client-side handling for workbenchparts (open, close, resize) widgets can provide client side event processing (e.g. expanding a tree) other event processing happens (mostly) server side implementation in java ui changes are calculated on the server side, client will get partial updates data binding happens on the server side (jface is the eclipse standard)

collaboration with other ajax approaches is important rap benefits from simple integration of widgets based on common ajax frameworks rap's widget toolkit is extensible server side java api (might be moving to swt) rendering kits provide implementation (html, css, js) a canvas can be filled with client side life server side needs info about client state problems to avoid: possible incompatibilities between different libraries different versions of libraries

rap plan tentative planing: 2006-06 - 2006-09 initial code contribution: Java component library for UI development 2006-09 M1: OSGi running exemplary inside web applications on selected open source servers 2006-10 M2: Moving widget toolkit to org.eclipse packages, re(de)fine widget toolkit api (get involved: https://bugs.eclipse.org/bugs/show_bug.cgi?id=158930) 2007-01 M3: Basic WebWorkbench implementation running on OSGi 2007-03 M4: Provide all API for Release 1.0 2007-05 RC1: Code freeze for 1.0

conclusion ajax is here to stay, but it has yet to overcome some obstacles ajax does not need to be in contradiction with rich clients the technologies can complement each other shielding ajax complexities is one of the hottest topics today a java api (swt) has proved to work in rich ui development, but there is also a strong movement to build javascript libraries give rap a try - http://eclipse.org/rap/

references Eclipse RAP project http://eclipse.org/rap/ Eclipse Rich Client platform http://eclipse.org/rcp/ Eclipse ATF project http://eclipse.org/atf Google Web Toolkit http://code.google.com/webtoolkit/ qooxdoo JavaScript GUI framework http://qooxdoo.org

Q&A Contact info: http://eclipse.org/rap/ Jochen Krause jkrause@innoopract.com