google web toolkit (gwt) a78khan/cs446/additional... · pdf file google web toolkit (gwt)...

Click here to load reader

Post on 22-Mar-2020

7 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • WATERLOO CHERITON SCHOOL OF COMPUTER SCIENCE

    Google Web Toolkit (GWT)Google Web Toolkit (GWT) ““Architectural Impact Architectural Impact 

    on on  Web Applications”Web Applications”

    CS 446/646 ECE452 Jun 8th, 2011

    IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes.

    These slides are sometimes vague and incomplete on purpose to spark class discussions

  • 2WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    First Generation

    Client Tier Server Tier

    W

    W

    Web

    W

    CGI-Scripts Data Source

    Data Tier

    HTTP request (URL or Form posting)

    HTTP response (HTML Document)

  • 3WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    First Generation Shortcomings ● lack of a coherent architectural model

    – development = adhoc composition of scripts – limited interaction between scripts

    ● evolution – how do you evolve scripts? – written in different languages

    ● data/information sharing – has to be via an external repository – difficult to control transactions

  • 4WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    First Generation Shortcomings ● security

    – CGI based scripts still a nightmare for admins – scripts are executed in native environment

    ● server execution environment is directly exposed ● vulnerabilities in server code are also exposed

    ● throughput – a script launches a process – so what?

    ● tight coupling – each view is coupled to its corresponding script

  • 5WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    Second Generation

    Client Tier Server Tier

    Presentation JEE Container

    W

    W

    J

    J

    Web

    W

    JEE Server

    Servlet

    Services

    JDBC

    Data Source

    Data Tier

    HTTP request (URL or Form posting)

    HTTP response (HTML Document)

  • 6WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    Second Generation Shortcomings ● server focused

    – almost all improvements are on the server side ● client tier

    – still based on primitives ● HTML, javascript, CSS etc.

    – not dynamic ● request-response cycle

    – worse than first generation ???

  • 7WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    GWT

    SG + AJAX = GWT

    Not Exactly

    AJAX: Asynchronous JavaScript and XML

  • 8WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    GWT GWT is a lot more than that ● a paradigm shift away from

    – traditional (web application) building blocks – synchronous communication

    ● built on standards – integrates well with existing server applications & web

    services ● composite building blocks

    – HTML, javascript etc are low-level primitives ● separation of concerns

  • 9WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    GWT Components

    JRE Emulator

    Java-JS Compiler JSNI

    Async RPC

    GWT Servlet Ext

    RPC manager

    widgets

    XML/JSON

    i18N

    Browser Integration

    Core

    Browser Runtime Environment

  • 10WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    Java­JS Compiler Converts Java to Javascript ● src-to-src compiler ● high level typed language to a script language

    – does this make sense??? ● JS code optimization

    – browser engines – size – security / obfuscation – localization

  • 11WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    JRE Emulator Emulates ● core Java classes in Javascript

    Composite building blocks ● allows for building composite building blocks ● client tier built on

    – composite building blocks rather than low level primitives

  • 12WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    JSNI Java Script Native Interface ● wrapper

    – for Javascript inside Java code ● extension point

    – for integration with non GWT client components

    Have we seen of this before?

  • 13WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    RPC Remote Procedure Call ● replaces HTTP

    – for communication after app boot ● asynchronous – why?

    – breaks the request-response cycle ● supports various protocols

    – Ajax, JSON, GWT

    RPC- getName()

    RPC- getId()

    getId()

    getName()

    Time

    t0

    t1

    t2

    t3

  • 14WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    Servlet Extension Extension of JEE Servlet ● integration point with JEE application

    – get all the JEE benefits for free ● server component

    – facade for business functionality ● evolution

    – highly flexible

  • 15WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    GWT Components

    JRE Emulator

    Java-JS Compiler JSNI

    GWT Servlet Ext

    RPC manager

    widgets

    XML/JSON

    i18N

    Browser Integration

    Core

    Browser Runtime Environment

    async RPC

  • 16WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    Impact Scalability Reusability Interoperability Design by contract Evolution Development

  • 17WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    Scalability Improvement in server performance ● (near) stateless servers

    – client tier components truly reside in client tier – previously

    ● the state was maintained on the presentation tier ● the view was rendered on the client tier

    ● optimized communication strategy – via aggregation of control/data exchange – decrease in server load – better bandwidth usage

  • 18WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    Reusability Application ● single code base to support

    – multiple browser engines – internationalization

    ● i18N versions of the applications ● application broken over reusable modules

    Design & development ● OOD

    – what benefits do we get from OOD?

  • 19WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    Interoperability Integration / Extension points ● Javascript native interface (JSNI)

    – a layer of abstraction for integrating Javascript ● third party & legacy Javascript libraries

    ● server side integration – servlet extension

    ● plugs into the JEE platform ● also possible for other platforms

    – mashups ● use of diverse web services

  • 20WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    Design by Contract Client tier standardization ● browser runtime environment (BRE)

    – client code has to abide by the BRE interface – similar enhancement that JEE brought to server tier – isn't that strong coupling between GWT and an

    application client code? ● preserves the architectural integrity

  • 21WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    Evolution Organic growth ● OOA & OOD

    – what does this buy us? – OO Javascript

    Rich Internet Applications (RIA) ● HTML & HTTP as the basic building primitive ● prevails where others failed

    – Java applet, ActiveX, Adobe flex

  • 22WATERLOOCHERITON SCHOOL OF COMPUTER SCIENCE

    Development Java based Development ● well established

    – development tools & environments ● IDEs, profiling

    – testing strategies ● skill-set standardization

    – Java developers already exist

    Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22