Building Interactive Web Applications for HEP Using the Google Web Toolkit (GWT) Tony Johnson Scientific Computing Applications.

Slides:



Advertisements
Similar presentations
Fawaz Ghali AJAX: Web Programming's Toy.
Advertisements

Web Toolkit Julie George & Ronald Lopez 1. Requirements  Java SDK version 1.5 or later  Apache Ant is also necessary to run command line arguments 
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
Designer’s Challenge – Web-based Applications using Adobe Flex and OpenInsight Clay Borne President CLB IT.
1 GWT Google Web Toolkit Build AJAX apps in the Java language
February 11, 2007 Can Ajax be OS for the Browser? Kevin Hakman Co-Founder General Interface Ajax Toolkit Director, Developer Evangelism TIBCO Software.
© 2007 IBM Corporation IBM Emerging Technologies Enabling an Accessible Web 2.0 Becky Gibson Web Accessibility Architect.
Google Web Toolkit - Gufran Mohammed. Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications.
AJAX Presented by: Dickson Fu Dimas Ariawan Niels Andreassen Ryan Dial Jordan Nielson CMPUT 410 University of Alberta 2006.
MSc. Publishing on WWW JavaScript. What is JavaScript? A scripting language devised by Netscape Adds functionality to web pages by: Embedding code into.
Igor Gershovich Connected Testing, Inc.
Remote Visualization Explorations of Ajax & Web Services.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
What is Android? Android is among the most popular operating systems aimed towards mobile devices such as smartphones, and is currently the most widely.
Part or all of this lesson was adapted from the University of Washington’s “Web Design & Development I” Course materials.
Web 2.0 with AJAX Students : LASC Ioana KELEMEN Csilla POP Dan Adrian CIOBANU Dumitru Daniel Project leader : Ahmed RHIAT.
Quick Tour of the Web Technologies: The BIG picture LECTURE A bird’s eye view of the different web technologies that we shall explore and study.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
Web Design Basic Concepts.
Client/Server Architectures
RIA Introduce Comparison among several technology.
INTRODUCTION TO WEB DATABASE PROGRAMMING
HTML5 GAMING By Scott Benton. HTML5 New HTML Standard Previous Version of HTML, HTML 4.01, Released in 1999 Not an Official Standard Yet No Browsers Have.
1. 2 What’s New in NetBeans IDE What is NetBeans IDE?  Ready to use out of the box  Support for latest Java specifications & standards  Other.
Pittsburgh Java User Group– Dec Java PureFaces: A JSF Framework Extension.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
1 Web GIS: from Javascript to GWT Pieter De Graef – Community Manager & Lead Developer Geomajas.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
Some essentials difference syntax and concept for jquery developers Roohullah Afzali
Java Mobile Apps with GWT & PhoneGap Josh Marinacci, webOS Developer Advocate.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
AJAX Making Dynamic Web pages more Dynamic Jim Hendricks April 25th, 2006.
Web Programming: Client/Server Applications Server sends the web pages to the client. –built into Visual Studio for development purposes Client displays.
MOOD FOOD. PROMOTIONAL WEBSITE Front end of a cross-module project between Advanced Rich Internet Applications and Advanced Client Side Scripting. Promotional.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
Instructor, Dr. Khalili Bahram Jeevan Kumar Gogineni.
Google Web Toolkit An Overview By Shauvik Roy Choudhary.
The Web Architecture and ASP.NET. Slide 2 Review of the Web (1) It began with HTTP and HTML, which delivers static Web pages to browsers which would render.
Google Web Toolkit Paul Heiniz, Wolfgang Kluth, Jan Marten, Malte Behrendt Web Technologies – Prof. Dr. Ulrik Schroeder – WS 2010/111 The slides are licensed.
Ventsislav Popov Crossroad Ltd.. 1. What is AJAX?  AJAX Concept  ASP.NET AJAX Framework 2. ASP.NET AJAX Server Controls  ScriptManager, UpdatePanel.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
C# AND ASP.NET What will I do in this course?. MAJOR TOPICS Learn to program in the C# language with the Visual Studio IDE (Interactive Development Environment)
Building Rich Web Applications with Ajax Linda Dailey Paulson IEEE – Computer, October 05 (Vol.38, No.10) Presented by Jingming Zhang.
Web Design (1) Terminology. Coding ‘languages’ (1) HTML - Hypertext Markup Language - describes the content of a web page CSS - Cascading Style Sheets.
Wijmo Troy Taylor. What is Wijmo? -Wijmo is a kit of over 40 UI widgets, optimized for client-side web development. -HTML5 -jQuery -CSS3 -SVG.
Copyright © by Shayne R Flint Simplified Web Application Development Shayne R Flint Department of Computer Science Australian National University.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
WebOPI -Bring BOY OPI to the Web and Mobile Xihui Chen, Kay Kasemir Spring 2012 EPICS Meeting.
RIA and Web2.0 Development with no Coding Juan Camilo Ruiz Senior Product Manager Development Tools.
Contents : What is Silverlight? Silverlight Overview Silverlight Toolkit Overview Timeline & Packaging Silverlight V1.0 & V1.1 Properties of V1.0 Properties.
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
1 What is JQuery. jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax* interactions.
Google Web Toolkit Dynamic web on Java (Script) Jordan Jordanov 6 March 2008.
ZK AJAX FRAMEWORK  R.RAJESH. What is ZK?  ZK is an open-source Ajax Web application framework, written in Java that enables creation of rich graphical.
Features of JAS Plots Plots update in real time. Data for plots can be local or remote (use Java RMI to connect to JAS Data Server). Rich variety of styles.
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.
Ajax! Ajax Programming Ajax! Ajax Programming. Ajax! Ajax Programming Take a look at a typical desktop application (Spreadsheet app, etc.) The program.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Google Web Toolkit for Mobile Applications Development INGENUITY AT ITS BEST……………….
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
Online Data Monitoring Framework Based on Histogram Packaging in Network Distributed Data Acquisition Systems Tomoyuki Konno 1, Anatael Cabrera 2, Masaki.
Cloud Computing in Systems Programming Curriculum Gustavo Rodriguez-Rivera, Purdue University Enrique Kortright, IBM.
Netscape Application Server
Google Web Toolkit Tutorial
Google Web Toolkit - Gufran Mohammed
Web App vs Mobile App.
Web Client Side Technologies Raneem Qaddoura
Presentation transcript:

Building Interactive Web Applications for HEP Using the Google Web Toolkit (GWT) Tony Johnson Scientific Computing Applications

Goals At SLAC we have been developing web based frameworks for many experiments, most recently – Fermi Gamma Ray Telescope – Enriched Xenon Laboratory (EXO) Successfully able to control DAQ, Online Monitoring, Data Flow, Data Quality Monitoring entirely via web using “traditional” web interfaces Desire to provide more interactivity by exploiting – Higher quality, more interactive web based GUI’s – Asynchronous (AJAX) functionality – Support upcoming HTML5 functionality In particular we have been exploring use of Google Web Toolkit (GWT) for building web applications – Report on early experience and get suggestions/collaboration from others

What is Google Web Toolkit Toolkit for writing “web 2.0” applications – Built in support for rich set of “widgets” – Wide range of GUI functionality Resolution independent layout managers Full control over browser resize behavior Popup and pulldown menus Drag and Drop … – Retains best of web features Works with the web browser instead of fighting against it – (c.f. Embedded flash or Java Applets) Embed HTML Use CSS for look and feel (clean model-view-controller architecture) – Transparent support for different browsers IE, Firefox, Chrome, Safari, Opera, iPhone, Android – Client and Server side code written in a single language (Java) Same code can run in browser and on server Objects can be transferred from server to client transparently – Serialize Java object and recompose it as equivalent JavaScript object or vice-versa – Completely transparent Java compiled to JavaScript to run in browser

More on Java->JavaScript compiler Initial reaction “Yeah right, that’s really going to work well” – Actually it does – really well – Maybe because it was written by a compiler expert (not a physicist) – It not only compiles the code It optimizes the Java – Type Tightening – Converting non-overridden methods to static – Finalizing – Pruning and Dead Code Elimination – Method Call Inlining Then it optimizes the generated JavaScript code – Static Evaluation (DCE, but on JS AST) – Method Inliner – Unused Function Remover – Code Splitting Clusters, Obfuscates and Compresses – Continually being improved – Better performance than handwritten JavaScript code JavaScript XML parser, converted to Java and then compiled back to JavaScript gave 2x speed improvement

Why GWT Open source toolkit, active open-source community – Many third-party add-ons Good support from Google – Being used for Google’s own applications E.g. Google Wave (now cancelled  ), others – Actively promoted as toolkit for use by others Major track at googleIO (google developers conference) for last two years Keep investment in existing Java code and expertise – Your mileage may vary Ability to use all existing Java tooling – Full IDE support: Eclipse, Netbeans, Idea … Editing, code completion and inline documentation viewing, refactoring, build tools – Project management (maven: good GWT support built-in) – Debug client and server code directly in Java IDE using GWT “Hosted Mode” Changes to client code immediately reflected in browser New GWT specific tools:

SpeedTracer

GWT Designer

EXO DAQ GUI Ability to mix GWT into existing framework – Keep full resize behavior Fully distributed application – All state maintained on server – Multiple simultaneous browsers supported – Page updates in real time Compatible with all major browsers – Including Android, iPhone Fully distributed control of DAQ for EXO experiment Standard JSP GWT

EXO DAQ GUI Animated dialogs In production for several months

(Aside) Fetching Updates from Server Currently notification of events from server to client is a hack – Only client initiated communication possible Client has to poll Modified poll with server wait (Comet) – Doesn’t scale to large number of clients HTML5 will make this much easier – http extensions to support server-sent events (SSE) – Scalable – Reliable ClientServer wait for messages or timeout List getMessagesSince(time)

Improving online monitoring Dynamically load tree to speed up load time Improve resize behavior, maximize space for plots Drag and drop functionality for selecting/overlaying plots Popup menus for changing layout, colors, styles, axes, etc Dynamic updates Plan to have this released by November Plotting will still by done on server, but…

Next Generation Plotter Will give option of displaying plots directly in browser – More interactivity, smoother updates – Applicability may depend on overhead of transferring data Java 2D Java Apps PDF, Postscript, PNG etc HTML5 Canvas Abstract Plot Graphics GWTCanvas gwt-g2d WebGL gwt-g3d Android RootDatabaseNetwork

GWT issues GWT still developing rapidly – Many “old” deprecated features – <100% of Java JDK library available In particular graphics Many important features not part of core library – Drag and drop – Popup menus – Canvas – Advanced widgets Cross-browser support very good – Not quite perfect, still need to test on different browsers HTML5 features (e.g. canvas) still being developed – Probably too early to be using these in production Long-term support?

Conclusions The advent of AJAX and HTML5 makes it possible to create dynamic, interactive web applications without requiring any third-party browser add ones – GWT is a toolkit which simplifies development of such web applications Initial tests show that development is reasonably straightforward We will use several GWT applications for EXO experiment and expect to use it more in future Use of HTML5 features to improve plotting in future looks hopeful – Anyone interested in collaborating, warning us off? – GWT is successful enough that it is influencing other toolkits Pyjamas – GWT “port” for python Oracle: JavaFX – will compile to JavaScript in future (2012) Many others…