ajax & gwt · adass ‘09 roby - ajax web vs. classic web classic web 14 ajax allows for...

31
ADASS ‘09 Roby - AJAX & GWT Trey Roby 1

Upload: others

Post on 21-May-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

AJAX & GWT

Trey Roby

1

Page 2: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Change

The Web is Changing

2

Things we never imagined Central to people’s lives Great Opportunity

Page 3: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

A Very Brief History of

Computing

3

Page 4: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Microsoft

Entered the Main Frame world Everything batch Introduced interactive programming to business

4

How did Microsoft make it big?

Page 5: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Classic Web BrowserApplication

Batch processing front end1. Fill out form2. Server processes3. Get results

5

Page 6: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

AJAX Revolution

Google Maps - Feb 8, 2005 Started it all - 4 1/2 years ago Millions of people wanted to use it

Changed the way we think about web-development

6

Page 7: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Everywhere

Google– Calendar – Word processor– Gmail - fastest growing

Yahoo has revamped website– Finance, Mail

News websites YouTube, NetFlix, Hulu, Facebook Slashdot.org Specialty sites

– doodle.com, rememberthemilk.com Adobe Photoshop coming to web Apple announced new web-development environment

– http://280slides.com/ Microsoft will rewrite website

7

Page 8: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Technologies Behind The Revolution

8

Page 9: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

AJAX

Asynchronous JavaScript and XML

Nothing new

Technologies– JavaScript– Dynamic HTML– CSS– DOM– XML– JASON

Emphasis on JavaScript speed

9

Page 10: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Dynamic HTML

Web Page can change without reload

HTML document– viewed as a tree– Each tag is a node

Scripts can change any part of tree

Any change immediately shows up on page

DOM - Document Object Model

10

Page 11: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

DOM

11

Page 12: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

JavaScript

Powerful scripting language Very flexible Runs in browser C like Easy to get started Event driven

– onclick– onfocus– onresize– onkeydown– onmousemove

DOM– access DOM– change DOM

12

Page 13: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Asynchronous Calls

JavaScript can make Asynchronous HTTP calls

Synchronous Call?– call made – results return immediately– typical program function call

Asynchronous Call to Server?– function call is made– results return later– a method (function) is called upon completion– results can be used to change DOM

13

Page 14: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

AJAX Web vs. Classic Web

Classic Web

14

Ajax allows for multiple, lighter, server calls and more dynamic web pages

AJAX Web

– One server call = Whole Page Load– Server call = UI Generation– Server call = Large Overhead

– One Server call = data only– One Server call = Page update

– One Server call = small overhead– Page can generate results without server call

– Server call required for useful results

Page 15: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Classic Web Application

1. Send Form Request

Server

Browser

BrowserBrowserBrowserBrowserBrowserBrowser

Form Request

HTMLPage

2. Server 1) retrieves data2) builds UI 3) generates HTML

3. Server returns HTML Page

4. Browser shows HTML page

Browser

Server

15

Page 16: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

JavaScript/Ajax Based Web Application

1. Compiled JavaScript client runs on browser

Server

Browser(JavaScript)

BrowserBrowserBrowserBrowserBrowserBrowser

Data

DataResults

2. Sends data request

3. Server returns data

4. Client manages & presents data

Browser(JavaScript)

16

5. Happens again & again on same page

Page 17: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Browser becomes Application Environment

Application code runs on browser

Return of interactive programming

Heavy client

17

Page 18: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Heavy Client

Better use browser computing power

Takes advantage full browser potential

Faster

Interactive

Better user experience

18

Page 19: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Challenges in using AJAX

19

Page 20: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

AJAX Challenges

Browsers work differently

Browser API can be slightly different

Requires constant checking of browser type

Many, many browser subtleties

20

Page 21: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

JavaScript Weaknesses

Not strongly typed– Scripting language

Weak debugger support

No compilation– syntax errors caught at runtime– Can’t optimize

Does not work well with large applications

21

Page 22: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Great Opportunity / Lots of problems

Opportunity – Stunning web applications– Great benefit to user– Easy to use

Problems– Hard to debug– Lots of testing on Browsers– Have to be AJAX guru– Easy to write bad Java Script

22

Page 23: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

What is the Solution?

Google Web Toolkit

23

Page 24: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

GWT

Google Web Toolkit

One approach to AJAX

Well Supported

Java instead of JavaScript

Attempts to fix the AJAX challenges

Free

24

Page 25: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Benefits of GWT

Handles cross browser issues

Benefits of compilation

More optimal

Java better for large applications

Great debugging support

Java code reuse

Natively call JavaScript

No plugins

25

Page 26: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

How it works

Compiles Java into JavaScript

Creates one JavaScript file per browser type

Only builds what you use

Provides UI support

Comes with a development browser for debugging

Provides an RPC environment for server calls

Allows for anything JavaScript can do

26

Page 27: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

How to develop with GWT

27

WriteCodein Java

Debugger

TestBrowser

Compile into JavaScript

IE

Firefox

Safari

Chrome

Deploy toWeb Server

Web Server

Page 28: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Spitzer Heritage Archive

Name resolution on the browser Input field validation Coordinate conversion Tabular displays without page reload

– Sort– Page– Update– Row clicking

True FITS Visualization– Zooming– Changing color / Stretch– Magnifier / Thumbnail– Crop– Ra, Dec, Flux readout

28

Example

Show FITS data and mouse readout

Page 29: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -

Example: Web Fits Viewer

29

Move Mouse Over Image

See MouseReadout

Page 30: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -30

BrowserRequest Fits

•Displays Image•Stores Projection

Mouse Paused

Calls Server with Image Pixel

Displays Flux Value

Server

•Reads Fits File•Return Projection and Image

Retrieve flux value from FITS file using Image Pixel

Return only the specific Flux Value

Mouse Moved- Capture mouse x, y- Converts to World Coordinates- Displays RA/DEC

Page 31: AJAX & GWT · ADASS ‘09 Roby - AJAX Web vs. Classic Web Classic Web 14 Ajax allows for multiple, lighter, server calls and more dynamic web pages AJAX Web – One server call =

ADASS ‘09 Roby -31