google web toolkit (gwt)a78khan/cs446/lectures/2011_06-jun_08_g… · rpc remote procedure call...

Click here to load reader

Post on 21-May-2020

0 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

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

    on on Web Applications”Web Applications”

    CS 446/646 ECE452Jun 8th, 2011

    IMPORTANT NOTICE TO STUDENTSThese 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 OFCOMPUTER SCIENCE

    First Generation

    Client Tier Server Tier

    W

    W

    Web

    W

    CGI-Scripts DataSource

    Data Tier

    HTTP request(URL or Form posting)

    HTTP response(HTML Document)

  • 3WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

    First GenerationShortcomings● 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 OFCOMPUTER SCIENCE

    First GenerationShortcomings● 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 OFCOMPUTER SCIENCE

    Second Generation

    Client Tier Server Tier

    Presentation JEE Container

    W

    W

    J

    J

    Web

    W

    JEE Server

    Servlet

    Services

    JDBC

    DataSource

    Data Tier

    HTTP request(URL or Form posting)

    HTTP response(HTML Document)

  • 6WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

    Second GenerationShortcomings● 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 OFCOMPUTER SCIENCE

    GWT

    SG + AJAX = GWT

    Not Exactly

    AJAX: Asynchronous JavaScript and XML

  • 8WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

    GWTGWT 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 OFCOMPUTER SCIENCE

    GWT Components

    JREEmulator

    Java-JSCompiler JSNI

    Async RPC

    GWTServlet Ext

    RPC manager

    widgets

    XML/JSON

    i18N

    Browser Integration

    Core

    Browser Runtime Environment

  • 10WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

    JavaJS CompilerConverts 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 OFCOMPUTER SCIENCE

    JRE EmulatorEmulates● 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 OFCOMPUTER SCIENCE

    JSNIJava 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 OFCOMPUTER SCIENCE

    RPCRemote 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 OFCOMPUTER SCIENCE

    Servlet ExtensionExtension 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 OFCOMPUTER SCIENCE

    GWT Components

    JREEmulator

    Java-JSCompiler JSNI

    GWTServlet Ext

    RPC manager

    widgets

    XML/JSON

    i18N

    Browser Integration

    Core

    Browser Runtime Environment

    async RPC

  • 16WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

    ImpactScalabilityReusabilityInteroperabilityDesign by contractEvolutionDevelopment

  • 17WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE

    ScalabilityImprovement 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 OFCOMPUTER SCIENCE

    ReusabilityApplication● 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 OFCOMPUTER SCIENCE

    InteroperabilityIntegration / 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 OFCOMPUTER SCIENCE

    Design by ContractClient 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 OFCOMPUTER SCIENCE

    EvolutionOrganic 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 OFCOMPUTER SCIENCE

    DevelopmentJava based Development● well established

    – development tools & environments● IDEs, profiling

    – testing strategies● skill-set standardization

    – Java developers already exist

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