SlideShare a Scribd company logo
Was haben die Kunden von morgen
Google Web Toolkit,                     heute im Web gesehen und
                                bedient? Sind wir auch in der Lage,
making a better web?                      derartig JavaScript-lastige
                                    Anwendungen zu bauen? Wenn
                               Ihre Kernkompetenzen im Java-EE-
                                      Umfeld angesiedelt sind, dann
                                           dürfte das GWT ein sehr
                                   interessantes Webframework für
                                Sie sein. In diesem Vortrag werden
papick g. taboada
                                 die Konzepte rund um GWT sowie
pgt technology scouting GmbH
                                     Architekturaspekte einer GWT-
                                             Anwendung betrachtet.
Web 1.0, 2.0, 3.0 ?!?
© 2012 by pgt technology scouting GmbH
the new Web
© 2012 by pgt technology scouting GmbH
the BetterWeb™ !
© 2012 by pgt technology scouting GmbH
Topics   ‣The BetterWeb™
         ‣ The architectural shift
         ‣ Standards?
         ‣ Developing smarter
         ‣ GWT does the job?
BetterWeb™ by apps?
© 2012 by pgt technology scouting GmbH
BetterWeb™ by buzzwords?
© 2012 by pgt technology scouting GmbH
BetterWeb™
               by new technologies?
               by new devices?
               by new frameworks?
               by new plugins?
               by new products?




© 2012 by pgt technology scouting GmbH
no downtime                             no $$$   awesome UX   it simply works




                               BetterWeb™ by UX
© 2012 by pgt technology scouting GmbH
easy, right?
© 2012 by pgt technology scouting GmbH
no
© 2012 by pgt technology scouting GmbH
Topics   ‣ The BetterWeb™
         ‣ The architectural shift
         ‣ Standards?
         ‣ Developing smarter
         ‣ GWT does the job?
step 1 - use the browser
© 2012 by pgt technology scouting GmbH
Browser                             Server


            event


                      espo    nse
          full html r

             event


                        spo   nse
          fu ll html re


             event


                        spo   nse
          fu ll html re
Browser                             Server


            event


                      espo    nse
          full html r

             event


                        spo   nse
          fu ll html re


             event


                        spo   nse
          fu ll html re
Browser                             Server


            event


                      espo    nse
          full html r

             event


                        spo   nse
          fu ll html re


             event


                        spo   nse
          fu ll html re
Browser                             Server


            event


                      espo    nse
          full html r

             event


                        spo   nse
          fu ll html re


             event


                        spo   nse
          fu ll html re
The web THEN
             and now
        Browsers where dumb html
         terminals
        High server side resource
         consumption




© 2012 by pgt technology scouting GmbH
Browser                               Server
                      first reques
                                       t


                              e sp   o n se
                  full html r
event



event

                    data reque
                                  st
event

                           data
event
                      data reque
                                       st


                           data
The web then
               and NOW
          Rich user interfaces in the
           Browser
          Server resource consumption
           reduced to a minimum




© 2012 by pgt technology scouting GmbH
The „ajax“ architectural shift
© 2012 by pgt technology scouting GmbH
step 2.1 - understand http
© 2012 by pgt technology scouting GmbH
step 2.2 - understand html
© 2012 by pgt technology scouting GmbH
step 2.3 - understand browsers
© 2012 by pgt technology scouting GmbH
connection bottleneck
© 2012 by pgt technology scouting GmbH
HTTP 1.1 Specification

8.1.4 Practical considerations



(...)

Clients that use persistent connections
SHOULD limit the number of
simultaneous connections that they
maintain to a given server. A single-user
client SHOULD NOT maintain more
than 2 connections with any server or
proxy.
(...)


 Chrome: 6 IE 6: 2 IE 7: 2 IE 8: 6 IE 10: 8 Safari: 6 Firefox: 6

                                         so what?
© 2012 by pgt technology scouting GmbH
even 20 would not be enough
© 2012 by pgt technology scouting GmbH
GWT - building a better web
Actually, a good way
to kill your mobile
data plan and
battery life.



                                                                    side note:




                                         1
                                                           this is why amazons
                                                         „silk“ or does really
                                                               improve the surf
                                                        experience on mobile
                                                      devices. In fact, it would
                                                      improve the UX on any
                                                    device. Why bother doing
                                                   it right, when we can have
                                                          the cloud computing
                                                         power to the rescue?

                                         one!!!


            that was                        page request.
© 2012 by pgt technology scouting GmbH
134 Requests

                            1/2 MB Download


MEDIOCRITY
It takes a lot less time and most people won't notice the
difference until it's too late.
                                           © http://despair.com
cache time to live? new versions? only fixes subsequent calls!




                          Caching helps, partially
© 2012 by pgt technology scouting GmbH
remember:
                                    less
                                  latency
                                     is
                                  BETTER

© 2012 by pgt technology scouting GmbH
the thing you want to build is a RCC
RPC




       RCCs == Rich Cloud Clients
© 2012 by pgt technology scouting GmbH
GWT - building a better web
GWT - building a better web
XML
                                            JavaScript
                            HTML
                                                    DOM/ DOM-Scripting

                             XMLHttpRequest
                                                         JSON




                                         Dynamic HTML
© 2012 by pgt technology scouting GmbH
The Ajax
       slippery slope
          ‣ Try “a little bit of script”
          ‣ Every body loves it!
           ‣ More!!!
             ‣ Errr - Do we know
                Javascript?
          ‣ Does it work with…
             ‣ Wait – this is hard!
© 2012 by pgt technology scouting GmbH
copyright 2006, Leland Scott, Musings from Mars
                       Native DHTML speakers
© 2012 by pgt technology scouting GmbH
Fear browsers
                    with all of mind,
                     body and spirit
                                         When in danger,
                                         when in doubt,
                                          run in circles
                                         cry and shout




© 2012 by pgt technology scouting GmbH
© http://www.duccutters.com/FrancoisKnorreck-Snaefell.tpl




      Ajaxifying the web is not a solution™
© 2012 by pgt technology scouting GmbH
© http://www.duccutters.com/FrancoisKnorreck-Snaefell.tpl




      Ajaxifying the web is not a solution™
© 2012 by pgt technology scouting GmbH
No, no, no.
                                         Please no!
                                           Please!




 html + css + js is here to stay
© 2012 by pgt technology scouting GmbH
HTML5                      Chrome   Firefox   Safari   Opera

                                         canvas
                                         video
                            geolocation
                                  appcache
                                                                                           Vic Gundotra
                                    database                                          Google IO Keynote

                                     workers


                      HTML 5 here and now
© 2012 by pgt technology scouting GmbH
Topics   ‣ The Web?
         ‣ The architectural shift
         ‣Standards?
         ‣ Developing smarter
         ‣ GWT does the job?
GWT - building a better web
Java BetterWeb™ Standard?

                Industriestandard
• Java EE ist ein De-facto oder Quasi-Standard in
  der Entwicklung von unternehmenskritischen
  Anwendungen
• JSF Spezifikation ist Teil der Java EE Spezifikation
 Standard
Java EE Standard LOCK-IN



NO ONE EVER GOT
FIRED FOR BUYING
                   {   MICROSOFT
                       IBM
                       ORACLE
                       ...
To JSF or to JSF,
that‘s the question.
http://de.wikipedia.org/wiki/   Proprietär

• Juristisch „urheberrechtlich geschützt“
• IT: Dinge, die nicht allgemein anerkannten
  Standards entsprechen („hauseigene
  Entwicklungen“)

• Freie-Software-Bewegung: alles was nicht frei
  (Lizenztechnisch) und Quelloffen ist.
WEB Standards   Java EE Standards




 Rich                               vintage (?)
Cloud                               web app
Thing                               architecture




                 Wait...
GWT & Standards
Warranty

Vendor independence?
Support
cloud

              HTML5
                                 IE6
                       IE10
                            IE9
          HTML4
      the Avatar UI    JS
                                Support
               Websphere
               5... 6... 7...    Java FX
                          Mobile



but, what about the future?
JBoss

Sencha
          Google                        (RichFaces)

(GXT)    GWT                     Prime Technology   JSF
                                   (PrimeFaces)
          Isomorphic Software                       Icesoft Technologies
             (Smart GWT)                                 (IceFaces)




                    blue or red pill?
AdWords, AdSense, Flights, Hotel Finder, Offers, Wallet, The New Blogger, Chrome Webstore, Product Search, Public
    Data, New Google Groups, Orkut, Google Takeout, Google Pagespeed, Google WebFonts, Google Tables



                         google is „dogfooding“
© 2012 by pgt technology scouting GmbH
Topics   ‣ The Web?
         ‣ The architectural shift
         ‣ Standards?
         ‣Developing smarter
         ‣ GWT does the job?
building the BetterWeb™
© 2012 by pgt technology scouting GmbH
Google Web Toolkit
                 	

 Google Web Toolkit (GWT) is an open source Java
                     development framework that lets you escape the matrix
                     of technologies that make writing AJAX applications so
                     difficult and error prone.


                 	

 With GWT, you can develop and debug AJAX
                     applications in the Java language using the Java
                     development tools of your choice. When you deploy
                     your application to production, the GWT compiler
                     translates your Java application to browser-compliant
                     JavaScript and HTML.


© 2012 by pgt technology scouting GmbH
GWT
                 	

 Google Web Toolkit (GWT) is an open source Java
                     development framework that lets you escape the matrix
                     of technologies that make writing AJAX applications so
                     difficult and error prone.


                 	

 With GWT, you can develop and debug AJAX
                     applications in the Java language using the Java
                     development tools of your choice. When you deploy
                     your application to production, the GWT compiler
                     translates your Java application to browser-compliant
                     JavaScript and HTML.


© 2012 by pgt technology scouting GmbH
GWT

                 open source framework
                 escape the matrix of technologies
                 develop and debug in Java
                 Java development tools
                 translates to browser-compliant JavaScript




© 2012 by pgt technology scouting GmbH
Standalone JS apps
© 2012 by pgt technology scouting GmbH
JS app can be anything
© 2012 by pgt technology scouting GmbH
development cycle
© 2012 by pgt technology scouting GmbH
Develop in Java
© 2012 by pgt technology scouting GmbH
Develop in Java
© 2012 by pgt technology scouting GmbH
Checkstyle




                                         Develop in Java
© 2012 by pgt technology scouting GmbH
Checkstyle

                                                           Findbugs,
                                                             PMD




                                         Develop in Java
© 2012 by pgt technology scouting GmbH
Checkstyle

                                                           Findbugs,
                                                             PMD

                                                            Patterns




                                         Develop in Java
© 2012 by pgt technology scouting GmbH
Checkstyle

                                                            Findbugs,
                                                              PMD

                                                            Patterns

                                                           Unit testing




                                         Develop in Java
© 2012 by pgt technology scouting GmbH
Checkstyle

                                                            Findbugs,
                                                              PMD

                                                            Patterns

                                                           Unit testing

                                                       Refactoring!




                                         Develop in Java
© 2012 by pgt technology scouting GmbH
it‘s about engineering
© 2012 by pgt technology scouting GmbH
One click start
© 2012 by pgt technology scouting GmbH
Use the webapp
© 2012 by pgt technology scouting GmbH
Debug in Java
© 2012 by pgt technology scouting GmbH
Cross compile to JS
© 2012 by pgt technology scouting GmbH
Distribute
© 2012 by pgt technology scouting GmbH
more than just a cross compiler
© 2012 by pgt technology scouting GmbH
panel


                                                 has



programmatic DOM                                 is           widget
manipulation                                           DOM
                                                       tree
declarative definition
event handling


        simple UI component model
© 2012 by pgt technology scouting GmbH
widget
                                         DOM
                                         tree



                                                  LOGIC in Java
         Java API
                                           LAYOUT in HTML/ CSS




                        separation of concerns
© 2012 by pgt technology scouting GmbH
I am not a widget!!




          very fast / efficient data grid
© 2012 by pgt technology scouting GmbH
@RemoteServiceRelativePath("echo")
    public interface EchoService extends RemoteService {
    
 String echo(String name);
    }


    public interface EchoServiceAsync {
    
 void echo(String name, AsyncCallback<String> callback);
    }


    public class EchoServiceImpl extends RemoteServiceServlet implements
    EchoService {
    
 public String echo(String name) {
    
 
 return name.toUpperCase();
    
 }
    }




                RPC style communication
© 2012 by pgt technology scouting GmbH
httprequest builder                        xml dom parser


                               i18n                      safeHTML templates
      logging
                                         css/ js obfuscation            requestFactory

          module concept                               code generator
                                                 permutations per browser/ language

         JSNI for native JS                                                     uiBinder

                                         and much more...
© 2012 by pgt technology scouting GmbH
living with the bottleneck
© 2012 by pgt technology scouting GmbH
!=


                        project layout vs. deployment layout
© 2012 by pgt technology scouting GmbH
sprites / client bundle
© 2012 by pgt technology scouting GmbH
doing the right thing
                    • inline css + js + html + images + sound into one
                          file

                    • browsers just get what they need (code,
                          language)

                    • caching done right!
                     • name patterns for cache configuration
                     • use new very unique filenames for each
                               compile output

© 2012 by pgt technology scouting GmbH
developer guided splits
© 2012 by pgt technology scouting GmbH
build what you need




                            architectural freedom
© 2012 by pgt technology scouting GmbH
do we know how?
© 2012 by pgt technology scouting GmbH
sometimes
© 2012 by pgt technology scouting GmbH
command pattern (dispatch)
                                place framework
                                                        eventbus
                                         model-view-presenter




                  Ray Ryan - lessons learned
© 2012 by pgt technology scouting GmbH
Topics   ‣ The Web?
         ‣ The architectural shift
         ‣ Standards?
         ‣ Developing smarter
         ‣GWT does the job?
Is GWT good for the BetterWeb™?
Good for business
• Sponsored/ developed by Google
                    • Lead by comitee
                    • Apache 2 licensed
                    • Leverages Java knowledge for web development
                    • brings software engineering to the web, suitable
                          for product development



© 2012 by pgt technology scouting GmbH
Better for developers
• End to end debugging
                    • No package/ deploy roundtrips
                    • Leverage Java knowledge and tooling



© 2012 by pgt technology scouting GmbH
Better for performance
• Split points reduce initial download
                    • Minimal server load by just loading data
                    • Reduced number of requests
                    • Uses client/ browser resources to free up server
                          resources




© 2012 by pgt technology scouting GmbH
Better for architects
• Build-What-You-Need™
                    • Leverage browser capabilities



© 2012 by pgt technology scouting GmbH
Papick G. Taboada
Dipl. Wi.-Ing. (TU)


                                                http://pgt.de
                                                pgt technology scouting GmbH




                                       PROJECT-
                      BERATUNG         UNTERSTÜTZUNG

                                    POC                   REVIEWS




                                 COACHING
                                 SCHULUNG
http://blog.oio.de
) OIO Kompass : Java Web-Frameworks )
      Eine Studie zu den Hintergründen der Auswahl von Java Web-Frameworks.




2011: 52 Teilnehmer | 250 Entwickler                2012: bereits über 200 Teilnehmer
http://www.oio.de/kompass/ueberblick-java-web-frameworks-vergleich/
time for questions?
© 2012 by pgt technology scouting GmbH
© Glenn Roberts | motorcyclemojo.com
                  © François Knorreck
© 2006 Leland Scott, Musings from Mars
       © Skimvision | Dreamstime.com

                © Andreas Morlok | pixelio.de
                        © BirgitH | pixelio.de
                   © RainerSturm | pixelio.de
                         © joujou | pixelio.de
                      © schubalu | pixelio.de
                        © Stihl24 | pixelio.de

              © starush | istockphoto.com
               © doram | istockphoto.com
         © princessdlaf | istockphoto.com
     © northlightimages | istockphoto.com
                © koun | istockphoto.com
         © luismmolina | istockphoto.com
         © id: 9109006 | istockphoto.com
             © wellglad | istockphoto.com
               © jgroup | istockphoto.com
        © id:12861033 | istockphoto.com
         © Henrik5000 | istockphoto.com
          © craftvision | istockphoto.com
                © tap10 | istockphoto.com
                © sitox | istockphoto.com


                                                 Thanks!
          © MilosJokic | istockphoto.com
            © iqoncept | istockphoto.com
           © pictafolio | istockphoto.com
           © pictafolio | istockphoto.com

© 2012 by pgt technology scouting GmbH

More Related Content

PDF
HTML5 - New UI Library for Games, Chad Austin, IMVU
PDF
SnowBall-victory
PDF
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
PDF
Startup eng-camp 3
PDF
GWT architecture best practices and lessons learned
KEY
Gwt, die bessere spinne
PDF
Architecture of a Modern Web App - SpringOne India
PDF
WEB I - 01 - Introduction to Web Development
HTML5 - New UI Library for Games, Chad Austin, IMVU
SnowBall-victory
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
Startup eng-camp 3
GWT architecture best practices and lessons learned
Gwt, die bessere spinne
Architecture of a Modern Web App - SpringOne India
WEB I - 01 - Introduction to Web Development

Similar to GWT - building a better web (20)

ZIP
Google Web Toolkit
PDF
HTML5, the Evolution of Smart Media
PPT
Velocity EU 2012 - Third party scripts and you
PPT
Upgrade Your Website to HTML5 - VSLive Conference New York @iRajLal
PDF
Drupalcamp New York 2009
PDF
Web Application Solutions
PDF
Siruna session at Drupalcon Paris 2009
PDF
Scalable Internet Servers and Load Balancing
PDF
Open web platform talk by daniel hladky at rif 2012 (19 april 2012 moscow)
PDF
Making mobile apps with web technology (revised)
PDF
Building Mobile Websites with Joomla
PDF
Amish Umesh - Future Of Web App Testing - ClubHack2007
PDF
David Leininger - Capturing Your Audience with Mobility
PDF
Html5 web sockets - Brad Drysdale - London Web 2011-10-20
PDF
Progressive Enhancement & Mobile [Funka 2012]
PDF
An Intro to Mobile HTML5
PDF
Orange Partner HTML5 Day
PDF
New trends on web platform
PDF
javascript_service_tutorial
PDF
javascript_service_tutorial
Google Web Toolkit
HTML5, the Evolution of Smart Media
Velocity EU 2012 - Third party scripts and you
Upgrade Your Website to HTML5 - VSLive Conference New York @iRajLal
Drupalcamp New York 2009
Web Application Solutions
Siruna session at Drupalcon Paris 2009
Scalable Internet Servers and Load Balancing
Open web platform talk by daniel hladky at rif 2012 (19 april 2012 moscow)
Making mobile apps with web technology (revised)
Building Mobile Websites with Joomla
Amish Umesh - Future Of Web App Testing - ClubHack2007
David Leininger - Capturing Your Audience with Mobility
Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Progressive Enhancement & Mobile [Funka 2012]
An Intro to Mobile HTML5
Orange Partner HTML5 Day
New trends on web platform
javascript_service_tutorial
javascript_service_tutorial
Ad

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Big Data Technologies - Introduction.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
MYSQL Presentation for SQL database connectivity
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Advanced methodologies resolving dimensionality complications for autism neur...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Big Data Technologies - Introduction.pptx
Unlocking AI with Model Context Protocol (MCP)
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
20250228 LYD VKU AI Blended-Learning.pptx
NewMind AI Weekly Chronicles - August'25 Week I
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Programs and apps: productivity, graphics, security and other tools
Review of recent advances in non-invasive hemoglobin estimation
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
“AI and Expert System Decision Support & Business Intelligence Systems”
Spectral efficient network and resource selection model in 5G networks
MYSQL Presentation for SQL database connectivity
Ad

GWT - building a better web

  • 1. Was haben die Kunden von morgen Google Web Toolkit, heute im Web gesehen und bedient? Sind wir auch in der Lage, making a better web? derartig JavaScript-lastige Anwendungen zu bauen? Wenn Ihre Kernkompetenzen im Java-EE- Umfeld angesiedelt sind, dann dürfte das GWT ein sehr interessantes Webframework für Sie sein. In diesem Vortrag werden papick g. taboada die Konzepte rund um GWT sowie pgt technology scouting GmbH Architekturaspekte einer GWT- Anwendung betrachtet.
  • 2. Web 1.0, 2.0, 3.0 ?!? © 2012 by pgt technology scouting GmbH
  • 3. the new Web © 2012 by pgt technology scouting GmbH
  • 4. the BetterWeb™ ! © 2012 by pgt technology scouting GmbH
  • 5. Topics ‣The BetterWeb™ ‣ The architectural shift ‣ Standards? ‣ Developing smarter ‣ GWT does the job?
  • 6. BetterWeb™ by apps? © 2012 by pgt technology scouting GmbH
  • 7. BetterWeb™ by buzzwords? © 2012 by pgt technology scouting GmbH
  • 8. BetterWeb™  by new technologies?  by new devices?  by new frameworks?  by new plugins?  by new products? © 2012 by pgt technology scouting GmbH
  • 9. no downtime no $$$ awesome UX it simply works BetterWeb™ by UX © 2012 by pgt technology scouting GmbH
  • 10. easy, right? © 2012 by pgt technology scouting GmbH
  • 11. no © 2012 by pgt technology scouting GmbH
  • 12. Topics ‣ The BetterWeb™ ‣ The architectural shift ‣ Standards? ‣ Developing smarter ‣ GWT does the job?
  • 13. step 1 - use the browser © 2012 by pgt technology scouting GmbH
  • 14. Browser Server event espo nse full html r event spo nse fu ll html re event spo nse fu ll html re
  • 15. Browser Server event espo nse full html r event spo nse fu ll html re event spo nse fu ll html re
  • 16. Browser Server event espo nse full html r event spo nse fu ll html re event spo nse fu ll html re
  • 17. Browser Server event espo nse full html r event spo nse fu ll html re event spo nse fu ll html re
  • 18. The web THEN and now  Browsers where dumb html terminals  High server side resource consumption © 2012 by pgt technology scouting GmbH
  • 19. Browser Server first reques t e sp o n se full html r event event data reque st event data event data reque st data
  • 20. The web then and NOW  Rich user interfaces in the Browser  Server resource consumption reduced to a minimum © 2012 by pgt technology scouting GmbH
  • 21. The „ajax“ architectural shift © 2012 by pgt technology scouting GmbH
  • 22. step 2.1 - understand http © 2012 by pgt technology scouting GmbH
  • 23. step 2.2 - understand html © 2012 by pgt technology scouting GmbH
  • 24. step 2.3 - understand browsers © 2012 by pgt technology scouting GmbH
  • 25. connection bottleneck © 2012 by pgt technology scouting GmbH
  • 26. HTTP 1.1 Specification 8.1.4 Practical considerations (...) Clients that use persistent connections SHOULD limit the number of simultaneous connections that they maintain to a given server. A single-user client SHOULD NOT maintain more than 2 connections with any server or proxy. (...) Chrome: 6 IE 6: 2 IE 7: 2 IE 8: 6 IE 10: 8 Safari: 6 Firefox: 6 so what? © 2012 by pgt technology scouting GmbH
  • 27. even 20 would not be enough © 2012 by pgt technology scouting GmbH
  • 29. Actually, a good way to kill your mobile data plan and battery life. side note: 1 this is why amazons „silk“ or does really improve the surf experience on mobile devices. In fact, it would improve the UX on any device. Why bother doing it right, when we can have the cloud computing power to the rescue? one!!! that was page request. © 2012 by pgt technology scouting GmbH
  • 30. 134 Requests 1/2 MB Download MEDIOCRITY It takes a lot less time and most people won't notice the difference until it's too late. © http://despair.com
  • 31. cache time to live? new versions? only fixes subsequent calls! Caching helps, partially © 2012 by pgt technology scouting GmbH
  • 32. remember: less latency is BETTER © 2012 by pgt technology scouting GmbH
  • 33. the thing you want to build is a RCC
  • 34. RPC RCCs == Rich Cloud Clients © 2012 by pgt technology scouting GmbH
  • 37. XML JavaScript HTML DOM/ DOM-Scripting XMLHttpRequest JSON Dynamic HTML © 2012 by pgt technology scouting GmbH
  • 38. The Ajax slippery slope ‣ Try “a little bit of script” ‣ Every body loves it! ‣ More!!! ‣ Errr - Do we know Javascript? ‣ Does it work with… ‣ Wait – this is hard! © 2012 by pgt technology scouting GmbH
  • 39. copyright 2006, Leland Scott, Musings from Mars Native DHTML speakers © 2012 by pgt technology scouting GmbH
  • 40. Fear browsers with all of mind, body and spirit When in danger, when in doubt, run in circles cry and shout © 2012 by pgt technology scouting GmbH
  • 41. © http://www.duccutters.com/FrancoisKnorreck-Snaefell.tpl Ajaxifying the web is not a solution™ © 2012 by pgt technology scouting GmbH
  • 42. © http://www.duccutters.com/FrancoisKnorreck-Snaefell.tpl Ajaxifying the web is not a solution™ © 2012 by pgt technology scouting GmbH
  • 43. No, no, no. Please no! Please! html + css + js is here to stay © 2012 by pgt technology scouting GmbH
  • 44. HTML5 Chrome Firefox Safari Opera canvas video geolocation appcache Vic Gundotra database Google IO Keynote workers HTML 5 here and now © 2012 by pgt technology scouting GmbH
  • 45. Topics ‣ The Web? ‣ The architectural shift ‣Standards? ‣ Developing smarter ‣ GWT does the job?
  • 47. Java BetterWeb™ Standard? Industriestandard • Java EE ist ein De-facto oder Quasi-Standard in der Entwicklung von unternehmenskritischen Anwendungen • JSF Spezifikation ist Teil der Java EE Spezifikation Standard
  • 48. Java EE Standard LOCK-IN NO ONE EVER GOT FIRED FOR BUYING { MICROSOFT IBM ORACLE ...
  • 49. To JSF or to JSF, that‘s the question.
  • 50. http://de.wikipedia.org/wiki/ Proprietär • Juristisch „urheberrechtlich geschützt“ • IT: Dinge, die nicht allgemein anerkannten Standards entsprechen („hauseigene Entwicklungen“) • Freie-Software-Bewegung: alles was nicht frei (Lizenztechnisch) und Quelloffen ist.
  • 51. WEB Standards Java EE Standards Rich vintage (?) Cloud web app Thing architecture Wait...
  • 54. cloud HTML5 IE6 IE10 IE9 HTML4 the Avatar UI JS Support Websphere 5... 6... 7... Java FX Mobile but, what about the future?
  • 55. JBoss Sencha Google (RichFaces) (GXT) GWT Prime Technology JSF (PrimeFaces) Isomorphic Software Icesoft Technologies (Smart GWT) (IceFaces) blue or red pill?
  • 56. AdWords, AdSense, Flights, Hotel Finder, Offers, Wallet, The New Blogger, Chrome Webstore, Product Search, Public Data, New Google Groups, Orkut, Google Takeout, Google Pagespeed, Google WebFonts, Google Tables google is „dogfooding“ © 2012 by pgt technology scouting GmbH
  • 57. Topics ‣ The Web? ‣ The architectural shift ‣ Standards? ‣Developing smarter ‣ GWT does the job?
  • 58. building the BetterWeb™ © 2012 by pgt technology scouting GmbH
  • 59. Google Web Toolkit Google Web Toolkit (GWT) is an open source Java development framework that lets you escape the matrix of technologies that make writing AJAX applications so difficult and error prone. With GWT, you can develop and debug AJAX applications in the Java language using the Java development tools of your choice. When you deploy your application to production, the GWT compiler translates your Java application to browser-compliant JavaScript and HTML. © 2012 by pgt technology scouting GmbH
  • 60. GWT Google Web Toolkit (GWT) is an open source Java development framework that lets you escape the matrix of technologies that make writing AJAX applications so difficult and error prone. With GWT, you can develop and debug AJAX applications in the Java language using the Java development tools of your choice. When you deploy your application to production, the GWT compiler translates your Java application to browser-compliant JavaScript and HTML. © 2012 by pgt technology scouting GmbH
  • 61. GWT open source framework escape the matrix of technologies develop and debug in Java Java development tools translates to browser-compliant JavaScript © 2012 by pgt technology scouting GmbH
  • 62. Standalone JS apps © 2012 by pgt technology scouting GmbH
  • 63. JS app can be anything © 2012 by pgt technology scouting GmbH
  • 64. development cycle © 2012 by pgt technology scouting GmbH
  • 65. Develop in Java © 2012 by pgt technology scouting GmbH
  • 66. Develop in Java © 2012 by pgt technology scouting GmbH
  • 67. Checkstyle Develop in Java © 2012 by pgt technology scouting GmbH
  • 68. Checkstyle Findbugs, PMD Develop in Java © 2012 by pgt technology scouting GmbH
  • 69. Checkstyle Findbugs, PMD Patterns Develop in Java © 2012 by pgt technology scouting GmbH
  • 70. Checkstyle Findbugs, PMD Patterns Unit testing Develop in Java © 2012 by pgt technology scouting GmbH
  • 71. Checkstyle Findbugs, PMD Patterns Unit testing Refactoring! Develop in Java © 2012 by pgt technology scouting GmbH
  • 72. it‘s about engineering © 2012 by pgt technology scouting GmbH
  • 73. One click start © 2012 by pgt technology scouting GmbH
  • 74. Use the webapp © 2012 by pgt technology scouting GmbH
  • 75. Debug in Java © 2012 by pgt technology scouting GmbH
  • 76. Cross compile to JS © 2012 by pgt technology scouting GmbH
  • 77. Distribute © 2012 by pgt technology scouting GmbH
  • 78. more than just a cross compiler © 2012 by pgt technology scouting GmbH
  • 79. panel has programmatic DOM is widget manipulation DOM tree declarative definition event handling simple UI component model © 2012 by pgt technology scouting GmbH
  • 80. widget DOM tree LOGIC in Java Java API LAYOUT in HTML/ CSS separation of concerns © 2012 by pgt technology scouting GmbH
  • 81. I am not a widget!! very fast / efficient data grid © 2012 by pgt technology scouting GmbH
  • 82. @RemoteServiceRelativePath("echo") public interface EchoService extends RemoteService { String echo(String name); } public interface EchoServiceAsync { void echo(String name, AsyncCallback<String> callback); } public class EchoServiceImpl extends RemoteServiceServlet implements EchoService { public String echo(String name) { return name.toUpperCase(); } } RPC style communication © 2012 by pgt technology scouting GmbH
  • 83. httprequest builder xml dom parser i18n safeHTML templates logging css/ js obfuscation requestFactory module concept code generator permutations per browser/ language JSNI for native JS uiBinder and much more... © 2012 by pgt technology scouting GmbH
  • 84. living with the bottleneck © 2012 by pgt technology scouting GmbH
  • 85. != project layout vs. deployment layout © 2012 by pgt technology scouting GmbH
  • 86. sprites / client bundle © 2012 by pgt technology scouting GmbH
  • 87. doing the right thing • inline css + js + html + images + sound into one file • browsers just get what they need (code, language) • caching done right! • name patterns for cache configuration • use new very unique filenames for each compile output © 2012 by pgt technology scouting GmbH
  • 88. developer guided splits © 2012 by pgt technology scouting GmbH
  • 89. build what you need architectural freedom © 2012 by pgt technology scouting GmbH
  • 90. do we know how? © 2012 by pgt technology scouting GmbH
  • 91. sometimes © 2012 by pgt technology scouting GmbH
  • 92. command pattern (dispatch) place framework eventbus model-view-presenter Ray Ryan - lessons learned © 2012 by pgt technology scouting GmbH
  • 93. Topics ‣ The Web? ‣ The architectural shift ‣ Standards? ‣ Developing smarter ‣GWT does the job?
  • 94. Is GWT good for the BetterWeb™?
  • 96. • Sponsored/ developed by Google • Lead by comitee • Apache 2 licensed • Leverages Java knowledge for web development • brings software engineering to the web, suitable for product development © 2012 by pgt technology scouting GmbH
  • 98. • End to end debugging • No package/ deploy roundtrips • Leverage Java knowledge and tooling © 2012 by pgt technology scouting GmbH
  • 100. • Split points reduce initial download • Minimal server load by just loading data • Reduced number of requests • Uses client/ browser resources to free up server resources © 2012 by pgt technology scouting GmbH
  • 102. • Build-What-You-Need™ • Leverage browser capabilities © 2012 by pgt technology scouting GmbH
  • 103. Papick G. Taboada Dipl. Wi.-Ing. (TU) http://pgt.de pgt technology scouting GmbH PROJECT- BERATUNG UNTERSTÜTZUNG POC REVIEWS COACHING SCHULUNG
  • 105. ) OIO Kompass : Java Web-Frameworks ) Eine Studie zu den Hintergründen der Auswahl von Java Web-Frameworks. 2011: 52 Teilnehmer | 250 Entwickler 2012: bereits über 200 Teilnehmer
  • 107. time for questions? © 2012 by pgt technology scouting GmbH
  • 108. © Glenn Roberts | motorcyclemojo.com © François Knorreck © 2006 Leland Scott, Musings from Mars © Skimvision | Dreamstime.com © Andreas Morlok | pixelio.de © BirgitH | pixelio.de © RainerSturm | pixelio.de © joujou | pixelio.de © schubalu | pixelio.de © Stihl24 | pixelio.de © starush | istockphoto.com © doram | istockphoto.com © princessdlaf | istockphoto.com © northlightimages | istockphoto.com © koun | istockphoto.com © luismmolina | istockphoto.com © id: 9109006 | istockphoto.com © wellglad | istockphoto.com © jgroup | istockphoto.com © id:12861033 | istockphoto.com © Henrik5000 | istockphoto.com © craftvision | istockphoto.com © tap10 | istockphoto.com © sitox | istockphoto.com Thanks! © MilosJokic | istockphoto.com © iqoncept | istockphoto.com © pictafolio | istockphoto.com © pictafolio | istockphoto.com © 2012 by pgt technology scouting GmbH

Editor's Notes

  • #2: \n
  • #3: Hard to define &amp;#x2013; what is the web 2.0?\n\n Set of public web applications?\n Survivors of the .com crash?\n Set of Buzzwords?\n Set of technologies used?\n
  • #4: Hard to define &amp;#x2013; what is the web 2.0?\n\n Set of public web applications?\n Survivors of the .com crash?\n Set of Buzzwords?\n Set of technologies used?\n
  • #5: \n
  • #6: \n
  • #7: What are Web 2.0 Apps, and where did they come from?\n \n DoubleClick &amp;#x2192; Google AdSense\n Ofoto (Kodakgallery) &amp;#x2192; Flickr\n &amp;#x201E;Akamai &amp;#x2192; BitTorrent\n mp3.com &amp;#x2192; Napster (iTunes?)\n Britannica Online &amp;#x2192; Wikipedia\n personal websites &amp;#x2192; blogging\n Evite &amp;#x2192; Upcoming.org and EVDB\n domain name speculation &amp;#x2192; search engine optimization\n page views &amp;#x2192; cost per click\n screen scraping &amp;#x2192; web services\n publishing &amp;#x2192; participation\n content management systems &amp;#x2192; wikis\n directories (&amp;#x201D;taxonomy&amp;#x201C;) &amp;#x2192; tagging (&amp;#x201D;folksonomy&amp;#x201C;)\n stickiness &amp;#x2192; syndication\n
  • #8: Web 2.0 buzzwords we probably should know...\n RSS\n Atom\n Trackbacks\n Pingbacks\n Social bookmarking\n Podcasting (audio, video)\n Blogs, blogosphere\n RIAs &amp;#x2013; Rich Internet Applications\n
  • #9: Builds on known DHTML technologies\n HTML\n Javascript\n CSS\n Less plugin based&amp;#x2026;\n no Java applets\n no Flash applets\n etc&amp;#x2026;\n
  • #10: Rich user experience\n by great ideas \n by great user interface\n by good services\n by low pricing\n
  • #11: \n
  • #12: \n
  • #13: \n
  • #14: \n
  • #15: From:\nFast, Easy, Beautiful &amp;#x2013; Pick Three\nGoogle Developer Days 2007\n\nCopyright Google\n
  • #16: From:\nFast, Easy, Beautiful &amp;#x2013; Pick Three\nGoogle Developer Days 2007\n\nCopyright Google\n
  • #17: From:\nFast, Easy, Beautiful &amp;#x2013; Pick Three\nGoogle Developer Days 2007\n\nCopyright Google\n
  • #18: Browsers where dumb html terminals\n Page roundtrips \n Latency\n High amount of data transferred over and over again\n High server side resource consumption\n
  • #19: From:\nFast, Easy, Beautiful &amp;#x2013; Pick Three\nGoogle Developer Days 2007\n\nCopyright Google\n
  • #20: With Ajax\n Background, asynchronous communication\n With DHTML\n Application runtime platform\n Easy, really VERY *easy* deployment\n
  • #21: \n
  • #22: \n
  • #23: \n
  • #24: \n
  • #25: \n
  • #26: \n
  • #27: \n
  • #28: \n
  • #29: \n
  • #30: \n
  • #31: \n
  • #32: \n
  • #33: \n
  • #34: \n
  • #35: \n
  • #36: \n
  • #37: \n
  • #38: todo: bild\n
  • #39: No Plugins\nJust Javascript, HTML and CSS\n\n
  • #40: \n
  • #41: \n
  • #42: \n
  • #43: TODO tabelle abpinseln\n\n
  • #44: \n
  • #45: Papick\n
  • #46: Papick\n - ja JSF ist Standard innerhalb einer Spezifikation\n - nein GWT ist nicht Standard in diesem Kontext\n
  • #47: Papick\n - ja JSF ist Standard innerhalb einer Spezifikation\n - nein GWT ist nicht Standard in diesem Kontext\n
  • #48: \n
  • #49: Papick\n
  • #50: Papick\nDer Kontext verschiebt sich zu offenen quasi-Standards \n Wir m&amp;#xFC;ssen uns fragen: Hat unser Kontext jetzt noch G&amp;#xFC;ltigkeit?\n
  • #51: Wechsel zu TOM\n- Propriet&amp;#xE4;re Komponenten: blaue K&amp;#xE4;stchen\n- Alles andere sind quasi-Standards bzw. Gremien die f&amp;#xFC;r Standards stehen \n \n
  • #52: Tom\nSpannungsfeld: Wir wollen nicht abh&amp;#xE4;ngig von einem Hersteller sein, wollen aber Support und Gew&amp;#xE4;hrleistung\n-&gt; Schizophren\n\nGgf. Verliere ich beides &amp;#x2026;\n
  • #53: Tom\n Politisch ist die Frage nach Zukunftssicherheit wichtig\n im Web-Umfeld schwierig zu sagen\n Standards helfen nur bedingt: Wir k&amp;#xF6;nnen sp&amp;#xE4;ter dar&amp;#xFC;ber sprechen wann welche Standards uns keine Zukunftssicherheit geboten haben\n- Es gibt einen HTML Standard und wir stecken trotzdem auf dem IE6 fest&amp;#x2026;\n\n Wenn Standards uns schon keine Zukunftssicherheit bieten, dann brauchen wir also einen Blick in die Kristallkugel.\n Es gibt heute sehr viel Javascript\n Es gibt mobile Clients, die wir bislang nicht auf dem Radar hatten\n Es gibt NoSQL und Cloud &amp;#x2013; worauf der JEE Standard noch keine Antworten parat hat\n HTML 5 sorgt f&amp;#xFC;r neue Browser und l&amp;#xF6;sen der IE6 Umklammerung\n\n&gt; Welche Schl&amp;#xFC;sse wir daraus ziehen, muss wiederum jeder f&amp;#xFC;r sein Prokjekt beurteilen\n Das Web von heute ist HTML/JS/Browser-basiert, mehr Sicherheit k&amp;#xF6;nnen wir nicht aus der Kristallkugel ziehen\n
  • #54: Papick: Was darfs sein: Rot oder blau?\n\nTom: \nBei JSF hab ich die Wahl zwischen zwei Implementierungen, diese sind austauschbar\nErst mit der Wahl einer Komponentenbibliothek lege ich mich wirklich fest und komme dann wahrscheinlich schwerer weg\nRichfaces geh&amp;#xF6;rt zu Redhat, damit erfolgreiches Unternehmen mit guten zukunftsaussichten\n\n\nPapick:\nGWT == abh&amp;#xE4;ngigkeit von Google wg. Compiler\nVorteil von Google: Keine Zeit und Geldprobleme, GWT ist politisch wichtig f&amp;#xFC;r Google\nHeisst : Ich habe mich entschieden meine Komponenten selbst zu schreiben.\n
  • #55: \n
  • #56: \n
  • #57: \n
  • #58: \n
  • #59: \n
  • #60: \n
  • #61: GWT application are standalone rich client applications running in the browser\n Can use RPC to fetch/ send data to the server, as rich clients do.\n
  • #62: \n
  • #63: \n
  • #64: Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful. \n\n
  • #65: Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful. \n\n
  • #66: Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful. \n\n
  • #67: Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful. \n\n
  • #68: Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful. \n\n
  • #69: Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful. \n\n
  • #70: \n
  • #71: \n
  • #72: \n
  • #73: \n
  • #74: \n
  • #75: \n
  • #76: - DOM Abstraktion\n- Json, HTTP, HTML API\n- Browser History API\n- Unified event modell\n\n
  • #77: \n
  • #78: \n
  • #79: \n
  • #80: \n
  • #81: \n
  • #82: \n
  • #83: \n
  • #84: \n
  • #85: \n
  • #86: \n
  • #87: \n
  • #88: \n
  • #89: \n
  • #90: \n
  • #91: \n
  • #92: \n
  • #93: \n
  • #94: \n
  • #95: \n
  • #96: \n
  • #97: \n
  • #98: \n
  • #99: \n
  • #100: \n
  • #101: \n
  • #102: \n
  • #103: \n
  • #104: \n
  • #105: \n
  • #106: \n