SlideShare une entreprise Scribd logo
1  sur  19
Google Web Toolkit (GWT)
en entornos empresariales
Juan José Vázquez, Tecsisa


1 de Octubre de 2009         Tecsisa
Índice




 1.   Evolución de las aplicaciones web            2.   Google Web Toolkit
       o    Cliente “pesado” vs cliente “ligero”         o   ¿ Qué es GWT ?
       o    Del cliente “ligero” a Ajax                  o   Demo: desarrollo con Eclipse
       o    El paradigma Ajax                            o   Ejemplo de código
       o    Aplicaciones web ricas (RIAs)                o   Métricas
       o    Demo: RIAs                                   o   Beneficios de GWT para la empresa
       o    Librerías y frameworks para RIAs             o   Demo: Google Wave
                                                         o   Recursos



                                                   3.   Preguntas y Respuestas




1 de Octubre de 2009                                                                        Tecsisa   2
Evolución de las aplicaciones web
Cliente “pesado” vs cliente “ligero”




                     Cliente “pesado”                                       Cliente “ligero”
    La mayor parte de la aplicación se ejecuta en la      La mayor parte de la aplicación se ejecuta en el
    máquina del usuario.                                  servidor.
    La interfaz de usuario se compone de ventanas de      La interfaz de usuario se ejecuta en el navegador o
    escritorio del sistema operativo.                     browser. Se trata típicamente de aplicaciones web.

    Suelen implicar mayor número de conexiones a la       Los accesos a la base de datos se concentran
    base de datos (salvo en soluciones distribuidas).     empleando data sources y pools de conexiones.
    El despliegue de versiones de la aplicación en la     El despliegue de versiones de la aplicación se realiza
    organización implica instalar en cada puesto.         en el servidor de aplicaciones. Cada puesto necesita
                                                          tan sólo un navegador web.
    Típicamente las interfaces tienen gran riqueza e      Las interfaces suelen ser poco ricas y con
    interactividad sin comprometer la accesibilidad.      interactividad limitada que puede comprometer la
                                                          accesibilidad.
    Resulta más sencillo crear una buena experiencia de   Es difícil crear una buena experiencia de usuario.
    usuario.
    Los conocimientos técnicos requeridos para su         Implican un equipo multidisciplinar que cubra un
    desarrollo abarcan unas pocas tecnologías.            amplio espectro de habilidades técnicas.




1 de Octubre de 2009                                                                                           Tecsisa   3
Evolución de las aplicaciones web
Del cliente “ligero” a Ajax

          1990                            1995                         2000                             2005                        2010
    lista correo www-talk,
                                         World Wide Web                       HTML, WAI, XML, RDF/OWL, CSS,
   Internet Society (ISOC),                                                                                                  XHTML2 Working Group,
                                        Consortium (W3C),                 XForms, XHTML, WSDL, XSL, Xpath, DOM,
  The Internet Engineering                                                                                                          HTML 5
                                     lista correo www-style              Geolocation, Semantic Web, Web Services…
        Task Force (IETF)

HISTORIA


                                 HTML2, CSS, ECMAScript,                                                                   HTML 5, Chrome, CSS 2.1,
                                                                HTML 4, XHTML, CSS2,           Safari, Firefox, Flash 8,
HTML, Nexus, Mosaic             Netscape, IE, Java (Applet),                                                                 Silverlight, Flash 10,
                                                               Mozilla, JavaScript, Flash        IE 7, JavaScript 1.7
                                         ActiveX                                                                             GWT, jQuery, ExtJS…

CLIENTE



                                                                                                   PHP 5, J2EE 1.4,            PHP 5.3, JEE 6,
                                 Perl, Ruby, PHP, Python          PHP 4, J2EE, JSP,            Python 2.4, ASP.NET 2.0,    Python 2.4, ASP.NET 3.5,
    CGI, Python                      ASP, Java Servlet            Python 2, ASP.NET                 Ruby On Rails               SOA, RESTful…

SERVIDOR


                                                                                                  Ajax se populariza
                                   Ajax es posible (XHR)                                               Web 2.0

                         CLIENTE + SERVIDOR




1 de Octubre de 2009                                                                                                          Tecsisa                 4
Evolución de las aplicaciones web
El paradigma Ajax (I)


“Ajax (Asynchronous JavaScript and XML) es un conjunto de técnicas de desarrollo
web que se aplican en el lado del cliente para crear aplicaciones web interactivas o
RIAs (Rich Internet Applications).” (Wikipedia)

    •      Disponible desde 1996, a través del ActiveX de Microsoft XMLHttpRequest (XHR) nacido
           durante el desarrollo del Outlook Web Access (OWA).
    •      Popularizado a partir de 2005 gracias al ensayo de Jesse James Garrett Ajax: A New Approach
           to Web Applications (1) y por aplicaciones como Google Maps, Google Suggest, Gmail, Flickr y
           Facebook entre otras.
    •      Ha revalorizado el uso del JavaScript dando lugar a numerosas librerías y frameworks que
           facilitan el desarrollo.
    •      Fuerte dependencia del navegador. Resulta difícil tener una aplicación 100% compatible con
           todos los navegadores (cross-browser).
    •      No está limitado al uso de XML y JavaScript, ni está obligado a ser asíncrono.
    •      Supone un reto para los analistas y desarrolladores al introducir nuevos patrones de
           interacción que impactan en la usabilidad de las aplicaciones.
(1) http://www.adaptivepath.com/ideas/essays/archives/000385.php




 1 de Octubre de 2009                                                                       Tecsisa       5
Evolución de las aplicaciones web
El paradigma Ajax (II)




1 de Octubre de 2009                Tecsisa   6
Evolución de las aplicaciones web
Aplicaciones web ricas (RIAs)


“Rich Internet Applications (RIAs) son aplicaciones que poseen la mayoría de
características de las aplicaciones de escritorio y que típicamente se ejecutan sobre
plug-ins del navegador web o sobre máquina virtuales.” (Wikipedia)

   •   Comparten los beneficios de las aplicaciones de escritorio con los de las aplicaciones web.
   •   Pueden verse como aplicaciones web de cliente “pesado”.
   •   Ajax, más el uso de sofisticadas librerías de JavaScript, hacen posible el desarrollo de RIAs
       que se ejecutan en el navegador web.
   •   Otras tecnologías permiten el desarrollo de RIAs, sin el uso de JavaScript, pero con la
       instalación de plug-ins en el navegador: Adobe Flash/Flex/AIR, OpenLaszlo, JavaFX, Mozilla
       XUL, Microsoft Silverlight entre otras.
   •   Presentan una alta interactividad “posibilitando” una buena experiencia de usuario.
   •   Permiten minimizar las comunicaciones con el servidor disminuyendo el tráfico.
   •   Son típicamente más rápidas que las aplicaciones web tradicionales.
   •   Pueden permitir la interacción off-line (i.e. Google Docs).
   •   Se mantienen e instalan más fácilmente pero la complejidad de las soluciones es mayor.

 1 de Octubre de 2009                                                                     Tecsisa      7
Evolución de las aplicaciones web
  Demo: RIAs



                         Open Laszlo                                              Google Docs




http://www.openlaszlo.org/lps_demos/demos/amazon/amazon.lzx?lzt=html&lzr=swf9   http://docs.google.com




   1 de Octubre de 2009                                                                                  Tecsisa   8
Evolución de las aplicaciones web
Librerías y frameworks para RIAs


Para aplicaciones Ajax (con el navegador suele ser suficiente):
                   Javascript                  Java                         .NET
       Prototype                   Google Web Toolkit (GWT)   Ajax.NET

       jQuery                      DWR                        ASP.NET AJAX

       Ext                         Echo                       WPF

       Script.aculo.us             ZK                                       Otros
       MooTools                    RichFaces                  Quicknet (PHP)

       Yahoo! UI Library           IceFaces                   Sajax (PHP)

       Dojo Toolkit                Ext JS                     Pyjamas (Python)



Además de otros frameworks que necesitan plug-ins o máquinas virtuales:
   •     Adobe Flash/Flex/Air, OpenLaszlo.
   •     Microsoft Silverlight.
   •     JavaFX.
   •     Mozilla XUL/Prism.

 1 de Octubre de 2009                                                               Tecsisa   9
Google Web Toolkit
¿Qué es GWT?

                    Framework Java open source que facilita el desarrollo de aplicaciones Ajax
                    más robustas y más fácilmente mantenibles, mejorando la productividad de
                    los desarrolladores y el rendimiento de los usuarios.

•      Permite que las aplicaciones web se desarrollen y depuren en Java usando IDEs ampliamente
       extendidos en las organizaciones como NetBeans, Eclipse, RSA o IntelliJIdea.
•      Provee un compilador de Java a JavaScript que optimiza el resultado y lo habilita para
       visualizarse correctamente en todos los navegadores (cross-browser) de forma eficiente. El
       enfoque es: JavaScript es el código máquina del navegador.
•      Posee dos modos de funcionamiento:
        –   Hosted Mode: permite ejecutar y depurar la aplicación sobre la JVM con el consiguiente ahorro de
            tiempo.
        –   Web Mode: la aplicación se ejecuta en su versión final como HTML + JavaScript.

•      Soporte para el botón “back” del navegador y la “historia“ de la navegación.
•      Comunicación con el servidor a través de RPC, XML o JSON.
•      Librería de componentes o “widgets” reutilizables y extensibles al estilo de Java Swing.
•      Soporte para la internacionalización de las aplicaciones y testing unitario.


    1 de Octubre de 2009                                                                               Tecsisa   10
Google Web Toolkit
Demo: desarrollo con Eclipse




                       Veamos una demo de GWT




1 de Octubre de 2009                            Tecsisa   11
Google Web Toolkit
Ejemplo de código

                 /**
                  * Punto de entrada a la aplicación
                  * GWT Demo.
                  */
                 public class GwtDemo implements EntryPoint {

                       public void onModuleLoad() {

                           // Se crea un botón y una etiqueta
                           final Button btnSaludo = new Button("Saluda");
                           final Label lblHolaMundo = new Label();

                           // Maneja el clic del botón
                           btnSaludo.addClickHandler(new ClickHandler() {
                               public void onClick(ClickEvent event) {
                                   lblHolaMundo.setText("Hola Mundo!");
                               }
                           });

                           // Los widgets se añaden al panel
                           RootPanel.get().add(btnSaludo);
                           RootPanel.get().add(lblHolaMundo);
                       }
                 }




1 de Octubre de 2009                                                        Tecsisa   12
Google Web Toolkit
Métricas: tamaño script compilado




                                    Fuente: Google, 2007



1 de Octubre de 2009                                   Tecsisa   13
Google Web Toolkit
Métricas: ancho de banda y tiempo de arranque




                                                Fuente: Google, 2007




1 de Octubre de 2009                                            Tecsisa   14
Google Web Toolkit
Beneficios de GWT para la empresa


•      Permite desarrollar aplicaciones web ricas en menor tiempo, con menor coste y reutilizando
       los recursos humanos y técnicos de los que ya se disponía para el desarrollo OO:
        –   IDEs + plug-ins específicos como Google Plugin for Eclipse o GWT Designer (estilo ASP.NET)
        –   Patrones OO
        –   Detección de errores en tiempo de compilación
        –   Reutilización de widgets o componentes (creación de librerías corporativas)
        –   Encapsulación de buenas prácticas de desarrollo Ajax (hazlo bien una vez, aplícalo siempre)
        –   Testing unitario
        –   Integración continua
        –   Cross-browser
        –   Internacionalización

•      Optimización del tráfico de red.
•      Ideal para el desarrollo de interfaces en entornos SOA y cloud computing.
•      Proyecto open source (licencia Apache 2.0) pero tutelado por Google que lo aplica en el
       desarrollo de sus aplicaciones.
•      Miles de usuarios en las listas de desarrollo y cientos que contribuyen y prueban.

    1 de Octubre de 2009                                                                                  Tecsisa   15
Google Web Toolkit
Demo: Google Wave


                       Google Wave: Developer preview




1 de Octubre de 2009                                    Tecsisa   16
Recursos


Bibliografía:
    •    GWT in Action: Easy Ajax with the Google Web Toolkit (Manning Publications)
    •    GWT in Practice (Manning Publications)
    •    Pro Web 2.0 Application Development with GWT (Apress)
    •    Google Web Toolkit Applications (Addison-Wesley Professional)



Web:
    •    http://code.google.com/webtoolkit [Sitio principal]
    •    http://googlewebtoolkit.blogspot.com [Blog GWT]
    •    http://code.google.com/p/google-web-toolkit [Código fuente, incidencias, etc.]
    •    http://programa-con-google.blogspot.com [Blog desarrollo Google en castellano]
    •    http://www.tecsisa.com/index.igw?item=1635&lang=es_ES&site=1 [Artículo en
         castellano]



 1 de Octubre de 2009                                                                  Tecsisa   17
Preguntas y Respuestas




                         ¿?
1 de Octubre de 2009          Tecsisa   18
Información de contacto




Juan José Vázquez
jvazquez@tecsisa.com




TECSISA
Calle del Arte, 21
Oficina 6ºC
28033 Madrid

www.tecsisa.com




 1 de Octubre de 2009     Tecsisa   19

Contenu connexe

Tendances

Presentación WebRTC y Lynckia
Presentación WebRTC y LynckiaPresentación WebRTC y Lynckia
Presentación WebRTC y LynckiaJavier Cerviño
 
Estandares Web W3C
Estandares Web W3CEstandares Web W3C
Estandares Web W3Codil_paredes
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Micael Gallego
 
Windows communication foundation by Marcos Acosta
Windows communication foundation by Marcos AcostaWindows communication foundation by Marcos Acosta
Windows communication foundation by Marcos AcostaMarcos Acosta
 
Introducción a desarrollo de micro servicios
Introducción a desarrollo de micro serviciosIntroducción a desarrollo de micro servicios
Introducción a desarrollo de micro servicioswesovi
 
MongoDB y Microservicios Parte 1: Power Microservices con Docker, Kubernetes,...
MongoDB y Microservicios Parte 1: Power Microservices con Docker, Kubernetes,...MongoDB y Microservicios Parte 1: Power Microservices con Docker, Kubernetes,...
MongoDB y Microservicios Parte 1: Power Microservices con Docker, Kubernetes,...MongoDB
 
t3chfest 2016 - Implementando microservicios, como y por que
t3chfest 2016 - Implementando microservicios, como y por quet3chfest 2016 - Implementando microservicios, como y por que
t3chfest 2016 - Implementando microservicios, como y por queFátima Casaú Pérez
 
Microservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebMicroservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebRoberto Allende
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xmlhherbozo
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoManuel Carrasco Moñino
 

Tendances (18)

Comenzando con GWT
Comenzando con GWTComenzando con GWT
Comenzando con GWT
 
Curso ajax
Curso ajaxCurso ajax
Curso ajax
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Análisis del Whitepaper DB4O
Análisis del Whitepaper DB4OAnálisis del Whitepaper DB4O
Análisis del Whitepaper DB4O
 
Presentación WebRTC y Lynckia
Presentación WebRTC y LynckiaPresentación WebRTC y Lynckia
Presentación WebRTC y Lynckia
 
Estandares Web W3C
Estandares Web W3CEstandares Web W3C
Estandares Web W3C
 
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
Tema 3: Despliegue de aplicaciones web (Desarrollo Aplicaciones Web)
 
Windows communication foundation by Marcos Acosta
Windows communication foundation by Marcos AcostaWindows communication foundation by Marcos Acosta
Windows communication foundation by Marcos Acosta
 
Introducción a desarrollo de micro servicios
Introducción a desarrollo de micro serviciosIntroducción a desarrollo de micro servicios
Introducción a desarrollo de micro servicios
 
WebRTC
WebRTCWebRTC
WebRTC
 
MongoDB y Microservicios Parte 1: Power Microservices con Docker, Kubernetes,...
MongoDB y Microservicios Parte 1: Power Microservices con Docker, Kubernetes,...MongoDB y Microservicios Parte 1: Power Microservices con Docker, Kubernetes,...
MongoDB y Microservicios Parte 1: Power Microservices con Docker, Kubernetes,...
 
t3chfest 2016 - Implementando microservicios, como y por que
t3chfest 2016 - Implementando microservicios, como y por quet3chfest 2016 - Implementando microservicios, como y por que
t3chfest 2016 - Implementando microservicios, como y por que
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones web
 
Microservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebMicroservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la Web
 
Implementando una Arquitectura de Microservicios
Implementando una Arquitectura de MicroserviciosImplementando una Arquitectura de Microservicios
Implementando una Arquitectura de Microservicios
 
Atix19
Atix19Atix19
Atix19
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xml
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 

En vedette

En vedette (20)

Paulo Freire
Paulo FreirePaulo Freire
Paulo Freire
 
Empezar Otra Vez
Empezar Otra VezEmpezar Otra Vez
Empezar Otra Vez
 
SíNtesis Informativa (23 11 2009)
SíNtesis Informativa (23 11 2009)SíNtesis Informativa (23 11 2009)
SíNtesis Informativa (23 11 2009)
 
Examen Practico De Excel
Examen Practico De ExcelExamen Practico De Excel
Examen Practico De Excel
 
ContratatacionpublicaExoneracionesyseace
 ContratatacionpublicaExoneracionesyseace ContratatacionpublicaExoneracionesyseace
ContratatacionpublicaExoneracionesyseace
 
PROGRAMACIÓN UNIDAD 7
PROGRAMACIÓN UNIDAD 7 PROGRAMACIÓN UNIDAD 7
PROGRAMACIÓN UNIDAD 7
 
Digitale Innovation und neue Geschäftsmodelle
Digitale Innovation und neue GeschäftsmodelleDigitale Innovation und neue Geschäftsmodelle
Digitale Innovation und neue Geschäftsmodelle
 
Andrew Carnegie
Andrew CarnegieAndrew Carnegie
Andrew Carnegie
 
Diapositivas
DiapositivasDiapositivas
Diapositivas
 
Las Personas Enfermas
Las Personas EnfermasLas Personas Enfermas
Las Personas Enfermas
 
Imagenes Del Mundo
Imagenes Del MundoImagenes Del Mundo
Imagenes Del Mundo
 
Flobbo Test
Flobbo TestFlobbo Test
Flobbo Test
 
E Comerce
E ComerceE Comerce
E Comerce
 
Enfoquecuantitativoycualitativoenlainvestigacin 120410165102-phpapp01
Enfoquecuantitativoycualitativoenlainvestigacin 120410165102-phpapp01Enfoquecuantitativoycualitativoenlainvestigacin 120410165102-phpapp01
Enfoquecuantitativoycualitativoenlainvestigacin 120410165102-phpapp01
 
Pres 3
Pres 3Pres 3
Pres 3
 
Integracion energetica
Integracion energeticaIntegracion energetica
Integracion energetica
 
Símbolos Patrios
Símbolos PatriosSímbolos Patrios
Símbolos Patrios
 
Prehistoria2
Prehistoria2Prehistoria2
Prehistoria2
 
Acuarelas
AcuarelasAcuarelas
Acuarelas
 
Documento leccion evaluativa telematica
Documento leccion evaluativa telematicaDocumento leccion evaluativa telematica
Documento leccion evaluativa telematica
 

Similaire à GWT para empresas

Similaire à GWT para empresas (20)

Ajax tsis
Ajax tsisAjax tsis
Ajax tsis
 
Temas Relacionados Web 2
Temas Relacionados Web 2Temas Relacionados Web 2
Temas Relacionados Web 2
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Linea del tiempo de los frameworks
Linea del tiempo de los frameworksLinea del tiempo de los frameworks
Linea del tiempo de los frameworks
 
Herramientas web "Ajax"
Herramientas web "Ajax"Herramientas web "Ajax"
Herramientas web "Ajax"
 
EQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILASEQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILAS
 
Web20 With Ajax
Web20 With AjaxWeb20 With Ajax
Web20 With Ajax
 
Web20
Web20Web20
Web20
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
Ajax tecnologia
Ajax tecnologiaAjax tecnologia
Ajax tecnologia
 
Aprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptAprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScript
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Web 2.0 Ajax
Web 2.0 AjaxWeb 2.0 Ajax
Web 2.0 Ajax
 
AJAX
AJAXAJAX
AJAX
 
ajax
ajaxajax
ajax
 
Ajax
AjaxAjax
Ajax
 
Ajax
AjaxAjax
Ajax
 
Ajax
AjaxAjax
Ajax
 
Web 2,0
Web 2,0Web 2,0
Web 2,0
 

Dernier

Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Dernier (13)

Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

GWT para empresas

  • 1. Google Web Toolkit (GWT) en entornos empresariales Juan José Vázquez, Tecsisa 1 de Octubre de 2009 Tecsisa
  • 2. Índice 1. Evolución de las aplicaciones web 2. Google Web Toolkit o Cliente “pesado” vs cliente “ligero” o ¿ Qué es GWT ? o Del cliente “ligero” a Ajax o Demo: desarrollo con Eclipse o El paradigma Ajax o Ejemplo de código o Aplicaciones web ricas (RIAs) o Métricas o Demo: RIAs o Beneficios de GWT para la empresa o Librerías y frameworks para RIAs o Demo: Google Wave o Recursos 3. Preguntas y Respuestas 1 de Octubre de 2009 Tecsisa 2
  • 3. Evolución de las aplicaciones web Cliente “pesado” vs cliente “ligero” Cliente “pesado” Cliente “ligero” La mayor parte de la aplicación se ejecuta en la La mayor parte de la aplicación se ejecuta en el máquina del usuario. servidor. La interfaz de usuario se compone de ventanas de La interfaz de usuario se ejecuta en el navegador o escritorio del sistema operativo. browser. Se trata típicamente de aplicaciones web. Suelen implicar mayor número de conexiones a la Los accesos a la base de datos se concentran base de datos (salvo en soluciones distribuidas). empleando data sources y pools de conexiones. El despliegue de versiones de la aplicación en la El despliegue de versiones de la aplicación se realiza organización implica instalar en cada puesto. en el servidor de aplicaciones. Cada puesto necesita tan sólo un navegador web. Típicamente las interfaces tienen gran riqueza e Las interfaces suelen ser poco ricas y con interactividad sin comprometer la accesibilidad. interactividad limitada que puede comprometer la accesibilidad. Resulta más sencillo crear una buena experiencia de Es difícil crear una buena experiencia de usuario. usuario. Los conocimientos técnicos requeridos para su Implican un equipo multidisciplinar que cubra un desarrollo abarcan unas pocas tecnologías. amplio espectro de habilidades técnicas. 1 de Octubre de 2009 Tecsisa 3
  • 4. Evolución de las aplicaciones web Del cliente “ligero” a Ajax 1990 1995 2000 2005 2010 lista correo www-talk, World Wide Web HTML, WAI, XML, RDF/OWL, CSS, Internet Society (ISOC), XHTML2 Working Group, Consortium (W3C), XForms, XHTML, WSDL, XSL, Xpath, DOM, The Internet Engineering HTML 5 lista correo www-style Geolocation, Semantic Web, Web Services… Task Force (IETF) HISTORIA HTML2, CSS, ECMAScript, HTML 5, Chrome, CSS 2.1, HTML 4, XHTML, CSS2, Safari, Firefox, Flash 8, HTML, Nexus, Mosaic Netscape, IE, Java (Applet), Silverlight, Flash 10, Mozilla, JavaScript, Flash IE 7, JavaScript 1.7 ActiveX GWT, jQuery, ExtJS… CLIENTE PHP 5, J2EE 1.4, PHP 5.3, JEE 6, Perl, Ruby, PHP, Python PHP 4, J2EE, JSP, Python 2.4, ASP.NET 2.0, Python 2.4, ASP.NET 3.5, CGI, Python ASP, Java Servlet Python 2, ASP.NET Ruby On Rails SOA, RESTful… SERVIDOR Ajax se populariza Ajax es posible (XHR) Web 2.0 CLIENTE + SERVIDOR 1 de Octubre de 2009 Tecsisa 4
  • 5. Evolución de las aplicaciones web El paradigma Ajax (I) “Ajax (Asynchronous JavaScript and XML) es un conjunto de técnicas de desarrollo web que se aplican en el lado del cliente para crear aplicaciones web interactivas o RIAs (Rich Internet Applications).” (Wikipedia) • Disponible desde 1996, a través del ActiveX de Microsoft XMLHttpRequest (XHR) nacido durante el desarrollo del Outlook Web Access (OWA). • Popularizado a partir de 2005 gracias al ensayo de Jesse James Garrett Ajax: A New Approach to Web Applications (1) y por aplicaciones como Google Maps, Google Suggest, Gmail, Flickr y Facebook entre otras. • Ha revalorizado el uso del JavaScript dando lugar a numerosas librerías y frameworks que facilitan el desarrollo. • Fuerte dependencia del navegador. Resulta difícil tener una aplicación 100% compatible con todos los navegadores (cross-browser). • No está limitado al uso de XML y JavaScript, ni está obligado a ser asíncrono. • Supone un reto para los analistas y desarrolladores al introducir nuevos patrones de interacción que impactan en la usabilidad de las aplicaciones. (1) http://www.adaptivepath.com/ideas/essays/archives/000385.php 1 de Octubre de 2009 Tecsisa 5
  • 6. Evolución de las aplicaciones web El paradigma Ajax (II) 1 de Octubre de 2009 Tecsisa 6
  • 7. Evolución de las aplicaciones web Aplicaciones web ricas (RIAs) “Rich Internet Applications (RIAs) son aplicaciones que poseen la mayoría de características de las aplicaciones de escritorio y que típicamente se ejecutan sobre plug-ins del navegador web o sobre máquina virtuales.” (Wikipedia) • Comparten los beneficios de las aplicaciones de escritorio con los de las aplicaciones web. • Pueden verse como aplicaciones web de cliente “pesado”. • Ajax, más el uso de sofisticadas librerías de JavaScript, hacen posible el desarrollo de RIAs que se ejecutan en el navegador web. • Otras tecnologías permiten el desarrollo de RIAs, sin el uso de JavaScript, pero con la instalación de plug-ins en el navegador: Adobe Flash/Flex/AIR, OpenLaszlo, JavaFX, Mozilla XUL, Microsoft Silverlight entre otras. • Presentan una alta interactividad “posibilitando” una buena experiencia de usuario. • Permiten minimizar las comunicaciones con el servidor disminuyendo el tráfico. • Son típicamente más rápidas que las aplicaciones web tradicionales. • Pueden permitir la interacción off-line (i.e. Google Docs). • Se mantienen e instalan más fácilmente pero la complejidad de las soluciones es mayor. 1 de Octubre de 2009 Tecsisa 7
  • 8. Evolución de las aplicaciones web Demo: RIAs Open Laszlo Google Docs http://www.openlaszlo.org/lps_demos/demos/amazon/amazon.lzx?lzt=html&lzr=swf9 http://docs.google.com 1 de Octubre de 2009 Tecsisa 8
  • 9. Evolución de las aplicaciones web Librerías y frameworks para RIAs Para aplicaciones Ajax (con el navegador suele ser suficiente): Javascript Java .NET Prototype Google Web Toolkit (GWT) Ajax.NET jQuery DWR ASP.NET AJAX Ext Echo WPF Script.aculo.us ZK Otros MooTools RichFaces Quicknet (PHP) Yahoo! UI Library IceFaces Sajax (PHP) Dojo Toolkit Ext JS Pyjamas (Python) Además de otros frameworks que necesitan plug-ins o máquinas virtuales: • Adobe Flash/Flex/Air, OpenLaszlo. • Microsoft Silverlight. • JavaFX. • Mozilla XUL/Prism. 1 de Octubre de 2009 Tecsisa 9
  • 10. Google Web Toolkit ¿Qué es GWT? Framework Java open source que facilita el desarrollo de aplicaciones Ajax más robustas y más fácilmente mantenibles, mejorando la productividad de los desarrolladores y el rendimiento de los usuarios. • Permite que las aplicaciones web se desarrollen y depuren en Java usando IDEs ampliamente extendidos en las organizaciones como NetBeans, Eclipse, RSA o IntelliJIdea. • Provee un compilador de Java a JavaScript que optimiza el resultado y lo habilita para visualizarse correctamente en todos los navegadores (cross-browser) de forma eficiente. El enfoque es: JavaScript es el código máquina del navegador. • Posee dos modos de funcionamiento: – Hosted Mode: permite ejecutar y depurar la aplicación sobre la JVM con el consiguiente ahorro de tiempo. – Web Mode: la aplicación se ejecuta en su versión final como HTML + JavaScript. • Soporte para el botón “back” del navegador y la “historia“ de la navegación. • Comunicación con el servidor a través de RPC, XML o JSON. • Librería de componentes o “widgets” reutilizables y extensibles al estilo de Java Swing. • Soporte para la internacionalización de las aplicaciones y testing unitario. 1 de Octubre de 2009 Tecsisa 10
  • 11. Google Web Toolkit Demo: desarrollo con Eclipse Veamos una demo de GWT 1 de Octubre de 2009 Tecsisa 11
  • 12. Google Web Toolkit Ejemplo de código /** * Punto de entrada a la aplicación * GWT Demo. */ public class GwtDemo implements EntryPoint { public void onModuleLoad() { // Se crea un botón y una etiqueta final Button btnSaludo = new Button("Saluda"); final Label lblHolaMundo = new Label(); // Maneja el clic del botón btnSaludo.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { lblHolaMundo.setText("Hola Mundo!"); } }); // Los widgets se añaden al panel RootPanel.get().add(btnSaludo); RootPanel.get().add(lblHolaMundo); } } 1 de Octubre de 2009 Tecsisa 12
  • 13. Google Web Toolkit Métricas: tamaño script compilado Fuente: Google, 2007 1 de Octubre de 2009 Tecsisa 13
  • 14. Google Web Toolkit Métricas: ancho de banda y tiempo de arranque Fuente: Google, 2007 1 de Octubre de 2009 Tecsisa 14
  • 15. Google Web Toolkit Beneficios de GWT para la empresa • Permite desarrollar aplicaciones web ricas en menor tiempo, con menor coste y reutilizando los recursos humanos y técnicos de los que ya se disponía para el desarrollo OO: – IDEs + plug-ins específicos como Google Plugin for Eclipse o GWT Designer (estilo ASP.NET) – Patrones OO – Detección de errores en tiempo de compilación – Reutilización de widgets o componentes (creación de librerías corporativas) – Encapsulación de buenas prácticas de desarrollo Ajax (hazlo bien una vez, aplícalo siempre) – Testing unitario – Integración continua – Cross-browser – Internacionalización • Optimización del tráfico de red. • Ideal para el desarrollo de interfaces en entornos SOA y cloud computing. • Proyecto open source (licencia Apache 2.0) pero tutelado por Google que lo aplica en el desarrollo de sus aplicaciones. • Miles de usuarios en las listas de desarrollo y cientos que contribuyen y prueban. 1 de Octubre de 2009 Tecsisa 15
  • 16. Google Web Toolkit Demo: Google Wave Google Wave: Developer preview 1 de Octubre de 2009 Tecsisa 16
  • 17. Recursos Bibliografía: • GWT in Action: Easy Ajax with the Google Web Toolkit (Manning Publications) • GWT in Practice (Manning Publications) • Pro Web 2.0 Application Development with GWT (Apress) • Google Web Toolkit Applications (Addison-Wesley Professional) Web: • http://code.google.com/webtoolkit [Sitio principal] • http://googlewebtoolkit.blogspot.com [Blog GWT] • http://code.google.com/p/google-web-toolkit [Código fuente, incidencias, etc.] • http://programa-con-google.blogspot.com [Blog desarrollo Google en castellano] • http://www.tecsisa.com/index.igw?item=1635&lang=es_ES&site=1 [Artículo en castellano] 1 de Octubre de 2009 Tecsisa 17
  • 18. Preguntas y Respuestas ¿? 1 de Octubre de 2009 Tecsisa 18
  • 19. Información de contacto Juan José Vázquez jvazquez@tecsisa.com TECSISA Calle del Arte, 21 Oficina 6ºC 28033 Madrid www.tecsisa.com 1 de Octubre de 2009 Tecsisa 19