SlideShare una empresa de Scribd logo
Desarrollando Web 2.0 en Comunidad Jaime Cid Arquitecto de Soluciones WEB y SOA Sun Microsystems http://blogs.sun.com/jaimecid
AGENDA 1  –  Nuevas olas tecnológicas 2  –   Web 2.0 3  –   Web 2.0 & Open Source 4  –  Tecnologías Web 2.0 5  – AJAX 6 – AJAX con Java EE (Frameworks) 7 – Scripting con Java EE 5 (Ruby, PHP, Groovy)
 
Cabalgando sobre las olas En la industria de la informatica y las comunicaciones se producen sucesivas olas tecnologicas que de cogerse en el momento oportuno proporcionan una ventana de oportunidad a personas y empresas. Por ello siempre hay que mirar el horizonte y esperar que llega una buena ola, para intentar subirse y que te lleve hasta la orilla.
Nuevas Olas Tecnológicas Virtualización Computación distribuida, Grid Web 2.0 Web Semántica Open Source SOA
Web 2.0
web 1.0 = read web 2.0 = read/write
La era de la participación Todos contribuyendo en la Web
¿Qué es Web 2.0? La Web como plataforma El navegador pasa a ser la única aplicación Correo, Calendario, Contactos, Fotos, Ofimática El usuario sube y almacena contenido en la Web Inteligencia Colectiva (Folksonomy) Categorización colaborativa basada en etiquetas (tags) La opinión de los usuarios cuenta y mucho. La información se comparte y se combina Agregación de datos de diferentes fuentes (Mashups) Interfaz de usuario equivalente al escritorio AJAX
Web 1.0  --> Web 2.0 DoubleClick  -->  Google AdSense Ofoto  -->  Flickr Akamai  -->  BitTorrent Britannica Online  -->  Wikipedia personal websites  -->  blogging domain name speculation  -->  search engine optimization page views  -->  cost per click screen scraping  -->  web services publishing / content  -->  participation / applications content management systems  -->  wikis directories (taxonomy)  -->  tagging ("folksonomy") stickiness   -->  syndication (RSS) work in progress -->  Beta plain HTML -->  AJAX
Web 2.0 Meme Map http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html
Mashups:  http://www.housingmaps.com/   http://beta.plazes.com/   http://clustrmaps.com/
Startup 2.0: Concurso Webs 2.0 http://blog.startup2.eu Una Web 2.0 debe tener un 50% o más de su estructura basada en al menos dos de los siguientes elementos o tecnologías: Blogs Wikis Tags (etiquetas) Mashups (con Google Maps, Yahoo, otros) AJAX Feeds (RSS, Atom) Redes sociales
Web 2.0 & Open Source
Web 2.0  y  Open Source Comunidades Usuarios siempre conectados Usa Open Source Mashups Volumen -> Exito Desarrollo en comunidad Desarrolladores siempre conectados Usa Web 2.0 Frameworks Exito -> Volumen
 
Desarrollo en Comunidad Jean-Francois Kohsuke Sahoo Filippo Jaime Ias, Wonseok Paul Cheng Geertjan Tom, Gordon Lexi Kirill
Alvaro Lopez Ortega, Dublin, Ireland Linux, OpenSolaris, GNOME, Cherooke, OpenJDK Álvaro López Ortega, un madrileño de 26 años que trabaja en Dublín, como ingeniero de Sun Microsystems. http://www.elpais.com/articulo/portada/madrileno/crea/servidor/web/libre/Cherokee/elpcibpor/20060105elpcibpor_2/Tes http://www.alobbs.com/album/guademy07
Carlos Sanchez, A Coruña, Spain http://www.jroller.com/page/carlossg 2005. My name is Carlos Sanchez, I'm from A Coruña, Spain where I studied Computer Engineering. I've been involved in the Open Source for several years at the Apache Software Foundation and other projects. Currently I spend most of the year in Los Angeles, CA. Junio 2006. Regreso a A Coruña (Softgal y Softgal Gestión, cuyo propietario es CXG Corporación Caixa Galicia) 23 de Junio de 2006. Tecnocom adquire Softgal. CXG entra en Tecnocom
Enterprise Java - Tomcat Remy Maucherat (France) – Jboss http://labs.jboss.com/developers/#RemyMaucherat Filip Hanik (Sweden) - JBoss Jean François Arcand (Prevost, Quebec) - Sun ... ... Nacho Ortega (Granada, Spain) – SIAPI http://jakarta.apache.org/site/whoweare.html http://www.jgroups.org/javagroupsnew/docs/members.html
Tecnologías Web 2.0
Tecnologías Web 2.0 en cliente CSS (Separación de Diseño y Contenido) RSS, RDF, ATOM (Sindicación y agregación de contenidos) AJAX (Aplicaciones Web basadas en HTML y XML con componentes asíncronos) JAVA WEB START, FLEX, LASZLO, FLASH (Clientes Ricos Ligeros no HTML) CAPTCHA (Palabra aleatoria y distorsionada sólo legible para ojos humanos que sirve para evitar el acceso de robots)
Tecnologías Web 2.0 en servidor SOAP, REST, JCC (Servicios Web) SSO, Registro, Federación de Identidad (Autenticación, Autorización y Seguridad en el acceso a las Aplicaciones WEB) JAVASCRIPT, RUBY, PYTHON, PHP, Groovy (Lenguajes de Script) Frameworks ágiles: RubyOnRails, Jruby, Grails
Contexto y Ecosistema Web 2.0 Soporte multinavegador (IE, Firefox, Opera, Safari, Netscape, otros) Soporte de Sistemas Operativos alternativos como Linux, Solaris o MacOSX Existencia de librerías y aplicaciones en Software Libre desarrolladas en comunidad. Uso abundante de Open Source en las versiones comerciales y enterprise
AJAX
Google Suggest http://www.google.com/webhp?complete=1
¿Qué es AJAX? AJAX es un acrónimo de  Asynchronous Javascript And XML AJAX utiliza JavaScript combinado con XML para recargar información del servidor sin refrescar la página A nivel técnico se basa en el soporte por parte del navegador del objeto  XMLHttpRequest El término AJAX fue acuñado por Jesse James Garrett en Febrero de 2005 Ventajas del uso de AJAX en aplicaciones WEB: Mejora cualitativa en la experiencia del usuario WEB Tecnología RIA (Rich Internet Application) evolutiva, y no rupturista como Flash, XUL y otras El ancho de banda consumido disminuye
Modelo Clásico vs. AJAX
Arquitectura Web basada en AJAX
Anatomía de una interacción AJAX
Casos de usos de AJAX Validación de formularios en tiempo real Identificador de usuario, números de serie, códigos postales, cupones de promoción, y otros campos se pueden validar contra el servidor antes de que el usuario envíe el formulario completo. Auto-Completar Direcciones de correo electrónico, nombres de personas o ciudades se pueden autocompletar según el usuario va escribiendo Operaciones Maestro - Detalle Basado en eventos del cliente, la página HTML actualiza información detallada de productos según se van seleccionando
Controles de interfaz de usuario (GUI) avanzados  Arboles, Menús, Barras de progreso, Zoom, Mapas que se actualizan sin refrescar la página Refresco automático sólo de datos Lás páginas HTML consultan al servidor y  actualizan resultados deportivos, cotizaciones de bolsa, temperaturas, o cualquier otro dato específico Notificación desde el servidor (PUSH) La página HTML recibe notificaciones del servidor, bien mediante “Polling” o “Comet Programming”  Casos de usos de AJAX
Estrategias de Diseño AJAX http://java.sun.com/developer/technicalArticles/J2EE/AJAX/DesignStrategies/index.html Hacérselo uno mismo desde cero Usar liberías cliente JavaScript como Dojo Usar un framework Cliente-Servidor (JSF, ADF, Dynamic Faces) Usar un framework de frameworks (wrap) como jMaki Usar un framework JAVA de Servidor como DWR o JSON-RPC Usar un framework JAVA de Generación de Aplicaciones como GWT (Google Web Toolkit)
Razones para usar librerías cliente en  JavaScript Proporcionan APIs de mayor nivel de abstracción Facilidad de desarrollo de aplicaciones AJAX Gestión de las incompatibilidades entre navegadores Sin necesidad conocer sus particularidades Gestión de la compatibilidad entre versiones Uso de IFrame si la versión de navegador no soporta XMLHttpRequest Gestión de navegación Botones atrás y adelante Marcadores y enlaces
Librerías Cliente  en JavaScript  DOJO Toolkit  (used by Struts, Sun, ...) http://dojotoolkit.com/ Script.aculo.us http://script.aculo.us/ Yahoo UI Widgets Prototype http://prototype.conio.net/
AJAX con Java EE (Frameworks)
jMaki: JavaScript AJAX Framework https://ajax.dev.java.net/screencast/jMakiDemo.html jMaki es una recopilación y selección de  frameworks JavaScript para generar aplicaciones AJAX utilizando JSP 2.0 tag libraries o componentes JSF 1.1 pudiendo funcionar por tanto en Servidores de Aplicaciones Java EE 5.0 o J2EE 1.4 Incluye componentes de Dojo, Scriptaculous, y Yahoo UI Widgets. http://ajax.dev.java.net/ http://developers.sun.com/ajax/  http://java.sun.com/javascript/
Frameworks JAVA de Servidor Tres tipos El servidor genera código JavaScript de manera automática (Google Web Toolkit) Frameworks JAVA de servidor Framework cliente/servidor basado en componentes JSF  Los componentes JSF encapsulan la complejidad de la programación AJAX Estandarización en JSR-299 (WebBeans)
Frameworks JAVA de Servidor DWR (Dynamic Web Remoting) http://dwr.dev.java.net/ JSON-RPC Shale Remoting (Struts Component Framework) http://struts.apache.org/struts-shale/shale-remoting/apidocs/
JSR-299 WebBeans Jboss (SEAM) Oracle (ADF) Apache (Struts Shale) Sun (Java EE 5, NetBeans) Google Sybase
http://java.sun.com/blueprints/ajax.html Java BluePrints Solutions Catalog for Java EE 5 AJAX FAQ for the Java Developer Java BluePrints Solutions Catalog for J2EE 1.4 Java BluePrints Solutions Catalog for J2EE 1.4 in NetBeans Article on using AJAX on the J2EE Platform
Blueprints AJAX Components Apr06  En Abril de 2006 se han añadido los siguientes: Rich Textarea Editor Buy Now Button Rating Component Los componentes AJAX de ejemplo que ya se incluían en los  Java BluePrints de AJAX han sido actualizados: Auto-Complete Text Field  Progress Bar  Map Viewer Select Value Text Field
AutoComplete (ejemplo)
Scripting con JAVA EE 5 (Ruby, PHP,  Groovy, ...)
Evolución de la plataforma Java EE Proyecto JPE J2EE 1.2 Servlet, JSP, EJB, JMS, JTA, JNDI, RMI/IIOP J2EE 1.3 EJB 2.0, Connector Architecture J2EE 1.4 Web Services, Management, Deployment, Async. Connector Java EE 5 Anotaciones EJB 3.0, JPA, API de Persistencia JSF, JSTL AJAX Web Services 2.0 Robustez Web Services & Gestión Facilidad de desarrollo & SOA Plataforma JAVA Empresarial
GlassFish & JAVA EE 5 RI Detalles de implementación Soporte de lenguajes de Script & AJAX WS 2.0 /XML Stack: JAXB 2.0, JAX-WS 2.0, StAX Rendimiento Web: HTTP (Grizzly), JSP (Jasper), Servlets (Catalina) Persistencia JPA & EJB 3.0: TopLink Essentials Clientes Ricos: AJAX y Java Web Start Calidad Empresarial: Gestión, LB, Clusters Herramientas & IDEs (Eclipse & NetBeans plugins)
Soporte de Lenguajes de Script La percepción de la plataforma JAVA es la siguiente: En JAVA EE 5 el soporte de lenguajes de script hace que se puedan usar múltiples lenguajes y seguir usando: JVM y Threads APIs JAVA Utilidades de gestión y administración
Graeme Rocher. Grails Brighton, East Sussex, GB, UK http://graemerocher.blogspot.com/ Creador de Grails, CTO de Skills Matter. Tenemos 7 desarrolladores en total. http://groovy.org.es/home/story/14 (Entrevista en Español, Marzo de 2007, Ignacio Brito - Belmond) Grails es un framework para aplicaciones web basado en los principios de "convención mejor que configuración" y DRY ("don't repeat yourself", "no te repitas"). Se basa en el lenguaje Groovy, y está diseñado para reutilizar frameworks y especificaciones que ya exsiten en Java, como Spring, Hibernate y JEE. Mi mujer es española y pasamos un montón de tiempo por allí, espero sinceramente que Grails tenga éxito en España!
AJAX y Scripting con Java EE 5 jMaki - http://ajax.dev.java.net Encapsula widgets AJAX Phobos -  http://phobos.dev.java.net Lenguajes de script en el servidor Comet y Grizzly Conexiones HTTP para contenido push DynaFaces -  http://jsf-extensions.dev.java.net AJAX y JSF Blueprints -  http://bpcatalog.dev.java.net Guías sobre muchos temas incluyendo AJAX
Proyectos JAVA EE 5 Project GlassFish Sun Java System  AS 9.x   Derby Open ESB Portal Server MQ Distributions Maven Rep Java EE RI & SDK Communities NetBeans™ IDE NetBeans Enterprise Pack 5.5 Tools Eclipse Plugin Users and Other Groups TmaxSoft JEUS 6 Oracle Top Link
Aplicaciones y Frameworks compatibles con JAVA EE 5 JSPwiki MyFaces ADF Integration ORB Wicket BIRT AJAX Shale Apache Httpd Dalma Facelets OSCache SiteMesh StringBeans Portal Tapestry Equinox jBPM WebDAV Project Tango OSWorkFlow CJUG-Classifieds BlogTrader WebSphere MQ DOJO Open ESB OpenSSO Java WSDP MC4J
Jérôme Louvel, Paris, France Restlet open source project, a REST framework for Java Noelios Consulting was started in Paris at the beginning 2004 by Jérôme Louvel, a software architect with significant experience in professional consulting and in software edition, both in France and in the USA. http://www.noelios.com/about/ http://www.infoq.com/articles/restlet-louvel-interview http://blog.noelios.com
Guillaume Nodet, Caen, France Arquitecto Software LogicBlaze (http://www.logicblaze.com/) Blog: http://gnodet.blogspot.com/ Caen, France Proyectos Open Source: Apache ServiceMix (JBI) Apache ActiveMQ
Java EE 5 (GlassFish) y las Nuevas Olas Tecnológicas Virtualización (Máquina virtual JAVA) Computación distribuida, Grid (...) Web 2.0 (AJAX, jMaki, Dynamic Faces, Phobos, Rome, WADL,  REST API, JRoller) Web Semántica (...) Open Source (GlassFish – Licencias CDDL & GPL) SOA (WS-*, OpenESB, JBI, BPEL)
Jaime Cid Arquitecto de Soluciones WEB y SOA Sun Microsystems http://blogs.sun.com/jaimecid
NetBeans 5.5 Demos en Flash RECOPILACIÓN DE DEMOS en FLASH http://www.netbeans.org/kb/55/flash.html WEB SERVICES http://www.netbeans.org/download/flash/platform_55/platform_ws/ BPEL  ORCHESTRATION http://netbeans.org/download/flash/netbeans_55b/web-service-orchestration.html TOPLINK & JAVA SERVER FACES http://jroller.com/page/edgar?entry=netbeans_demo_using_toplink_with CREATING A CRUD APPLICATION http://testwww.netbeans.org/kb/55/persistence-demo.html http://roumen.name/blog/persistence_demo/persistence.html JRUBY ON RAILS NETBEANS DEMO http://blogs.sun.com/roumen/entry/two_demos_jruby_on_rails

Más contenido relacionado

PPT
Jc Web20 Open Source Why Floss2007
PPT
Ajax tsis
PDF
Jc Web2.0 Java Ee5 Net Beans
PPT
Curso ajax
PPT
Barcelona Workshop 2008
PPT
PDF
GWT y SmartGWT - Introducción
PPTX
Desarrollo de Aplicaciones Web 2.0 con GWT
Jc Web20 Open Source Why Floss2007
Ajax tsis
Jc Web2.0 Java Ee5 Net Beans
Curso ajax
Barcelona Workshop 2008
GWT y SmartGWT - Introducción
Desarrollo de Aplicaciones Web 2.0 con GWT

La actualidad más candente (12)

PPTX
Linea del tiempo de los frameworks
PDF
Dreamweaver
PDF
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
PPTX
RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...
PDF
Curso de HTML5
PDF
Presentación extensiones interesantes joomla
PDF
Planificando las bases de una aplicación windows phone
PDF
Entendiendo Yii
PPTX
JqueryMobile
ODP
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
PPT
Herramientas web "Ajax"
Linea del tiempo de los frameworks
Dreamweaver
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...
Curso de HTML5
Presentación extensiones interesantes joomla
Planificando las bases de una aplicación windows phone
Entendiendo Yii
JqueryMobile
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
Herramientas web "Ajax"
Publicidad

Similar a Jc Web20 Open Source Why Floss2007 (20)

PPT
Web20
PPTX
Desarrollo de aplicaciones Web fundamenteos
PPT
Introduccion Ajax V1.0
PDF
Google Web Toolkit (GWT) en entornos empresariales
PPT
Conceptos Introductorios Del Web 2
PPTX
PPTX
S5-DAW-2022S1.pptx
PPTX
Taller 3 conexion
PPT
Conceptos acerca de Ajax
PPTX
Tecnologías web.pptx
PPT
Temas Relacionados Web 2
PPT
Programación web
PPT
Ajax y la web 2.0
PPTX
Leonardo
PDF
Tecnologias web
PDF
Curso de Ajax
PPT
Ajax Atlas
PDF
200405 - Aplicaciones Web
PPTX
Web 2.0 Ajax
Web20
Desarrollo de aplicaciones Web fundamenteos
Introduccion Ajax V1.0
Google Web Toolkit (GWT) en entornos empresariales
Conceptos Introductorios Del Web 2
S5-DAW-2022S1.pptx
Taller 3 conexion
Conceptos acerca de Ajax
Tecnologías web.pptx
Temas Relacionados Web 2
Programación web
Ajax y la web 2.0
Leonardo
Tecnologias web
Curso de Ajax
Ajax Atlas
200405 - Aplicaciones Web
Web 2.0 Ajax
Publicidad

Último (20)

PPTX
Conferencia orientadora Sinapsis y Receptores.pptx
PDF
Semana del 30 de junio al 04 de julio de 2025.pdf
PPT
modelos de presentación Diapositivas Gestion Administrativa del Inventario - ...
PPTX
teorias del pblamiento completo. pptx
DOCX
EL SENSOR PARA CUIDAR EL MEDIO AMBIENTE.docx
DOCX
FCE POLITICA tercer grado secundaria adolescentes
DOCX
RUTA DE TRABAJO III BLOQUE DE SEMANA DE GESTION DE LA IE JUAN SANTOS ATAHUALP...
PDF
Arquitectura Expresionista, ARQUITECTURA
PPTX
11avo sesion de clase de produccion de cuyes y conejos.....pptx
PPTX
Presentationoooooooooooooooooooooooooooo
PDF
NORMAS APA 7 EDICIÓN PARA DOCUMENTOS UNI
PPTX
2 rev industrial y dit.pptx mamkaakkakakaaka
PPTX
MISCELANIA - constitución política 410-5.pptx
PDF
programa-regular-abril-julio-2025-ii (1).pdf
PPTX
Derechos Reales Unidad ix facultad de con
PDF
Tema 5.pdfdjdjsjsjshdbsjsjsjsjsjsjsjsjsjsjsj
PDF
Curso online para participar en exel o deribados
PPTX
Plantilla Oficial bbvbcvbcvbcvbcvbcvbcbcvbcvb
PDF
Párchese y sobreviva al colegio.pdf, juego
PPTX
13 y 14.pptxmjgyggguuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
Conferencia orientadora Sinapsis y Receptores.pptx
Semana del 30 de junio al 04 de julio de 2025.pdf
modelos de presentación Diapositivas Gestion Administrativa del Inventario - ...
teorias del pblamiento completo. pptx
EL SENSOR PARA CUIDAR EL MEDIO AMBIENTE.docx
FCE POLITICA tercer grado secundaria adolescentes
RUTA DE TRABAJO III BLOQUE DE SEMANA DE GESTION DE LA IE JUAN SANTOS ATAHUALP...
Arquitectura Expresionista, ARQUITECTURA
11avo sesion de clase de produccion de cuyes y conejos.....pptx
Presentationoooooooooooooooooooooooooooo
NORMAS APA 7 EDICIÓN PARA DOCUMENTOS UNI
2 rev industrial y dit.pptx mamkaakkakakaaka
MISCELANIA - constitución política 410-5.pptx
programa-regular-abril-julio-2025-ii (1).pdf
Derechos Reales Unidad ix facultad de con
Tema 5.pdfdjdjsjsjshdbsjsjsjsjsjsjsjsjsjsjsj
Curso online para participar en exel o deribados
Plantilla Oficial bbvbcvbcvbcvbcvbcvbcbcvbcvb
Párchese y sobreviva al colegio.pdf, juego
13 y 14.pptxmjgyggguuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

Jc Web20 Open Source Why Floss2007

  • 1. Desarrollando Web 2.0 en Comunidad Jaime Cid Arquitecto de Soluciones WEB y SOA Sun Microsystems http://blogs.sun.com/jaimecid
  • 2. AGENDA 1 – Nuevas olas tecnológicas 2 – Web 2.0 3 – Web 2.0 & Open Source 4 – Tecnologías Web 2.0 5 – AJAX 6 – AJAX con Java EE (Frameworks) 7 – Scripting con Java EE 5 (Ruby, PHP, Groovy)
  • 3.  
  • 4. Cabalgando sobre las olas En la industria de la informatica y las comunicaciones se producen sucesivas olas tecnologicas que de cogerse en el momento oportuno proporcionan una ventana de oportunidad a personas y empresas. Por ello siempre hay que mirar el horizonte y esperar que llega una buena ola, para intentar subirse y que te lleve hasta la orilla.
  • 5. Nuevas Olas Tecnológicas Virtualización Computación distribuida, Grid Web 2.0 Web Semántica Open Source SOA
  • 7. web 1.0 = read web 2.0 = read/write
  • 8. La era de la participación Todos contribuyendo en la Web
  • 9. ¿Qué es Web 2.0? La Web como plataforma El navegador pasa a ser la única aplicación Correo, Calendario, Contactos, Fotos, Ofimática El usuario sube y almacena contenido en la Web Inteligencia Colectiva (Folksonomy) Categorización colaborativa basada en etiquetas (tags) La opinión de los usuarios cuenta y mucho. La información se comparte y se combina Agregación de datos de diferentes fuentes (Mashups) Interfaz de usuario equivalente al escritorio AJAX
  • 10. Web 1.0 --> Web 2.0 DoubleClick --> Google AdSense Ofoto --> Flickr Akamai --> BitTorrent Britannica Online --> Wikipedia personal websites --> blogging domain name speculation --> search engine optimization page views --> cost per click screen scraping --> web services publishing / content --> participation / applications content management systems --> wikis directories (taxonomy) --> tagging ("folksonomy") stickiness --> syndication (RSS) work in progress --> Beta plain HTML --> AJAX
  • 11. Web 2.0 Meme Map http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html
  • 12. Mashups: http://www.housingmaps.com/ http://beta.plazes.com/ http://clustrmaps.com/
  • 13. Startup 2.0: Concurso Webs 2.0 http://blog.startup2.eu Una Web 2.0 debe tener un 50% o más de su estructura basada en al menos dos de los siguientes elementos o tecnologías: Blogs Wikis Tags (etiquetas) Mashups (con Google Maps, Yahoo, otros) AJAX Feeds (RSS, Atom) Redes sociales
  • 14. Web 2.0 & Open Source
  • 15. Web 2.0 y Open Source Comunidades Usuarios siempre conectados Usa Open Source Mashups Volumen -> Exito Desarrollo en comunidad Desarrolladores siempre conectados Usa Web 2.0 Frameworks Exito -> Volumen
  • 16.  
  • 17. Desarrollo en Comunidad Jean-Francois Kohsuke Sahoo Filippo Jaime Ias, Wonseok Paul Cheng Geertjan Tom, Gordon Lexi Kirill
  • 18. Alvaro Lopez Ortega, Dublin, Ireland Linux, OpenSolaris, GNOME, Cherooke, OpenJDK Álvaro López Ortega, un madrileño de 26 años que trabaja en Dublín, como ingeniero de Sun Microsystems. http://www.elpais.com/articulo/portada/madrileno/crea/servidor/web/libre/Cherokee/elpcibpor/20060105elpcibpor_2/Tes http://www.alobbs.com/album/guademy07
  • 19. Carlos Sanchez, A Coruña, Spain http://www.jroller.com/page/carlossg 2005. My name is Carlos Sanchez, I'm from A Coruña, Spain where I studied Computer Engineering. I've been involved in the Open Source for several years at the Apache Software Foundation and other projects. Currently I spend most of the year in Los Angeles, CA. Junio 2006. Regreso a A Coruña (Softgal y Softgal Gestión, cuyo propietario es CXG Corporación Caixa Galicia) 23 de Junio de 2006. Tecnocom adquire Softgal. CXG entra en Tecnocom
  • 20. Enterprise Java - Tomcat Remy Maucherat (France) – Jboss http://labs.jboss.com/developers/#RemyMaucherat Filip Hanik (Sweden) - JBoss Jean François Arcand (Prevost, Quebec) - Sun ... ... Nacho Ortega (Granada, Spain) – SIAPI http://jakarta.apache.org/site/whoweare.html http://www.jgroups.org/javagroupsnew/docs/members.html
  • 22. Tecnologías Web 2.0 en cliente CSS (Separación de Diseño y Contenido) RSS, RDF, ATOM (Sindicación y agregación de contenidos) AJAX (Aplicaciones Web basadas en HTML y XML con componentes asíncronos) JAVA WEB START, FLEX, LASZLO, FLASH (Clientes Ricos Ligeros no HTML) CAPTCHA (Palabra aleatoria y distorsionada sólo legible para ojos humanos que sirve para evitar el acceso de robots)
  • 23. Tecnologías Web 2.0 en servidor SOAP, REST, JCC (Servicios Web) SSO, Registro, Federación de Identidad (Autenticación, Autorización y Seguridad en el acceso a las Aplicaciones WEB) JAVASCRIPT, RUBY, PYTHON, PHP, Groovy (Lenguajes de Script) Frameworks ágiles: RubyOnRails, Jruby, Grails
  • 24. Contexto y Ecosistema Web 2.0 Soporte multinavegador (IE, Firefox, Opera, Safari, Netscape, otros) Soporte de Sistemas Operativos alternativos como Linux, Solaris o MacOSX Existencia de librerías y aplicaciones en Software Libre desarrolladas en comunidad. Uso abundante de Open Source en las versiones comerciales y enterprise
  • 25. AJAX
  • 27. ¿Qué es AJAX? AJAX es un acrónimo de Asynchronous Javascript And XML AJAX utiliza JavaScript combinado con XML para recargar información del servidor sin refrescar la página A nivel técnico se basa en el soporte por parte del navegador del objeto XMLHttpRequest El término AJAX fue acuñado por Jesse James Garrett en Febrero de 2005 Ventajas del uso de AJAX en aplicaciones WEB: Mejora cualitativa en la experiencia del usuario WEB Tecnología RIA (Rich Internet Application) evolutiva, y no rupturista como Flash, XUL y otras El ancho de banda consumido disminuye
  • 30. Anatomía de una interacción AJAX
  • 31. Casos de usos de AJAX Validación de formularios en tiempo real Identificador de usuario, números de serie, códigos postales, cupones de promoción, y otros campos se pueden validar contra el servidor antes de que el usuario envíe el formulario completo. Auto-Completar Direcciones de correo electrónico, nombres de personas o ciudades se pueden autocompletar según el usuario va escribiendo Operaciones Maestro - Detalle Basado en eventos del cliente, la página HTML actualiza información detallada de productos según se van seleccionando
  • 32. Controles de interfaz de usuario (GUI) avanzados Arboles, Menús, Barras de progreso, Zoom, Mapas que se actualizan sin refrescar la página Refresco automático sólo de datos Lás páginas HTML consultan al servidor y actualizan resultados deportivos, cotizaciones de bolsa, temperaturas, o cualquier otro dato específico Notificación desde el servidor (PUSH) La página HTML recibe notificaciones del servidor, bien mediante “Polling” o “Comet Programming” Casos de usos de AJAX
  • 33. Estrategias de Diseño AJAX http://java.sun.com/developer/technicalArticles/J2EE/AJAX/DesignStrategies/index.html Hacérselo uno mismo desde cero Usar liberías cliente JavaScript como Dojo Usar un framework Cliente-Servidor (JSF, ADF, Dynamic Faces) Usar un framework de frameworks (wrap) como jMaki Usar un framework JAVA de Servidor como DWR o JSON-RPC Usar un framework JAVA de Generación de Aplicaciones como GWT (Google Web Toolkit)
  • 34. Razones para usar librerías cliente en JavaScript Proporcionan APIs de mayor nivel de abstracción Facilidad de desarrollo de aplicaciones AJAX Gestión de las incompatibilidades entre navegadores Sin necesidad conocer sus particularidades Gestión de la compatibilidad entre versiones Uso de IFrame si la versión de navegador no soporta XMLHttpRequest Gestión de navegación Botones atrás y adelante Marcadores y enlaces
  • 35. Librerías Cliente en JavaScript DOJO Toolkit (used by Struts, Sun, ...) http://dojotoolkit.com/ Script.aculo.us http://script.aculo.us/ Yahoo UI Widgets Prototype http://prototype.conio.net/
  • 36. AJAX con Java EE (Frameworks)
  • 37. jMaki: JavaScript AJAX Framework https://ajax.dev.java.net/screencast/jMakiDemo.html jMaki es una recopilación y selección de  frameworks JavaScript para generar aplicaciones AJAX utilizando JSP 2.0 tag libraries o componentes JSF 1.1 pudiendo funcionar por tanto en Servidores de Aplicaciones Java EE 5.0 o J2EE 1.4 Incluye componentes de Dojo, Scriptaculous, y Yahoo UI Widgets. http://ajax.dev.java.net/ http://developers.sun.com/ajax/ http://java.sun.com/javascript/
  • 38. Frameworks JAVA de Servidor Tres tipos El servidor genera código JavaScript de manera automática (Google Web Toolkit) Frameworks JAVA de servidor Framework cliente/servidor basado en componentes JSF Los componentes JSF encapsulan la complejidad de la programación AJAX Estandarización en JSR-299 (WebBeans)
  • 39. Frameworks JAVA de Servidor DWR (Dynamic Web Remoting) http://dwr.dev.java.net/ JSON-RPC Shale Remoting (Struts Component Framework) http://struts.apache.org/struts-shale/shale-remoting/apidocs/
  • 40. JSR-299 WebBeans Jboss (SEAM) Oracle (ADF) Apache (Struts Shale) Sun (Java EE 5, NetBeans) Google Sybase
  • 41. http://java.sun.com/blueprints/ajax.html Java BluePrints Solutions Catalog for Java EE 5 AJAX FAQ for the Java Developer Java BluePrints Solutions Catalog for J2EE 1.4 Java BluePrints Solutions Catalog for J2EE 1.4 in NetBeans Article on using AJAX on the J2EE Platform
  • 42. Blueprints AJAX Components Apr06 En Abril de 2006 se han añadido los siguientes: Rich Textarea Editor Buy Now Button Rating Component Los componentes AJAX de ejemplo que ya se incluían en los  Java BluePrints de AJAX han sido actualizados: Auto-Complete Text Field Progress Bar Map Viewer Select Value Text Field
  • 44. Scripting con JAVA EE 5 (Ruby, PHP, Groovy, ...)
  • 45. Evolución de la plataforma Java EE Proyecto JPE J2EE 1.2 Servlet, JSP, EJB, JMS, JTA, JNDI, RMI/IIOP J2EE 1.3 EJB 2.0, Connector Architecture J2EE 1.4 Web Services, Management, Deployment, Async. Connector Java EE 5 Anotaciones EJB 3.0, JPA, API de Persistencia JSF, JSTL AJAX Web Services 2.0 Robustez Web Services & Gestión Facilidad de desarrollo & SOA Plataforma JAVA Empresarial
  • 46. GlassFish & JAVA EE 5 RI Detalles de implementación Soporte de lenguajes de Script & AJAX WS 2.0 /XML Stack: JAXB 2.0, JAX-WS 2.0, StAX Rendimiento Web: HTTP (Grizzly), JSP (Jasper), Servlets (Catalina) Persistencia JPA & EJB 3.0: TopLink Essentials Clientes Ricos: AJAX y Java Web Start Calidad Empresarial: Gestión, LB, Clusters Herramientas & IDEs (Eclipse & NetBeans plugins)
  • 47. Soporte de Lenguajes de Script La percepción de la plataforma JAVA es la siguiente: En JAVA EE 5 el soporte de lenguajes de script hace que se puedan usar múltiples lenguajes y seguir usando: JVM y Threads APIs JAVA Utilidades de gestión y administración
  • 48. Graeme Rocher. Grails Brighton, East Sussex, GB, UK http://graemerocher.blogspot.com/ Creador de Grails, CTO de Skills Matter. Tenemos 7 desarrolladores en total. http://groovy.org.es/home/story/14 (Entrevista en Español, Marzo de 2007, Ignacio Brito - Belmond) Grails es un framework para aplicaciones web basado en los principios de "convención mejor que configuración" y DRY ("don't repeat yourself", "no te repitas"). Se basa en el lenguaje Groovy, y está diseñado para reutilizar frameworks y especificaciones que ya exsiten en Java, como Spring, Hibernate y JEE. Mi mujer es española y pasamos un montón de tiempo por allí, espero sinceramente que Grails tenga éxito en España!
  • 49. AJAX y Scripting con Java EE 5 jMaki - http://ajax.dev.java.net Encapsula widgets AJAX Phobos - http://phobos.dev.java.net Lenguajes de script en el servidor Comet y Grizzly Conexiones HTTP para contenido push DynaFaces - http://jsf-extensions.dev.java.net AJAX y JSF Blueprints - http://bpcatalog.dev.java.net Guías sobre muchos temas incluyendo AJAX
  • 50. Proyectos JAVA EE 5 Project GlassFish Sun Java System AS 9.x Derby Open ESB Portal Server MQ Distributions Maven Rep Java EE RI & SDK Communities NetBeans™ IDE NetBeans Enterprise Pack 5.5 Tools Eclipse Plugin Users and Other Groups TmaxSoft JEUS 6 Oracle Top Link
  • 51. Aplicaciones y Frameworks compatibles con JAVA EE 5 JSPwiki MyFaces ADF Integration ORB Wicket BIRT AJAX Shale Apache Httpd Dalma Facelets OSCache SiteMesh StringBeans Portal Tapestry Equinox jBPM WebDAV Project Tango OSWorkFlow CJUG-Classifieds BlogTrader WebSphere MQ DOJO Open ESB OpenSSO Java WSDP MC4J
  • 52. Jérôme Louvel, Paris, France Restlet open source project, a REST framework for Java Noelios Consulting was started in Paris at the beginning 2004 by Jérôme Louvel, a software architect with significant experience in professional consulting and in software edition, both in France and in the USA. http://www.noelios.com/about/ http://www.infoq.com/articles/restlet-louvel-interview http://blog.noelios.com
  • 53. Guillaume Nodet, Caen, France Arquitecto Software LogicBlaze (http://www.logicblaze.com/) Blog: http://gnodet.blogspot.com/ Caen, France Proyectos Open Source: Apache ServiceMix (JBI) Apache ActiveMQ
  • 54. Java EE 5 (GlassFish) y las Nuevas Olas Tecnológicas Virtualización (Máquina virtual JAVA) Computación distribuida, Grid (...) Web 2.0 (AJAX, jMaki, Dynamic Faces, Phobos, Rome, WADL, REST API, JRoller) Web Semántica (...) Open Source (GlassFish – Licencias CDDL & GPL) SOA (WS-*, OpenESB, JBI, BPEL)
  • 55. Jaime Cid Arquitecto de Soluciones WEB y SOA Sun Microsystems http://blogs.sun.com/jaimecid
  • 56. NetBeans 5.5 Demos en Flash RECOPILACIÓN DE DEMOS en FLASH http://www.netbeans.org/kb/55/flash.html WEB SERVICES http://www.netbeans.org/download/flash/platform_55/platform_ws/ BPEL ORCHESTRATION http://netbeans.org/download/flash/netbeans_55b/web-service-orchestration.html TOPLINK & JAVA SERVER FACES http://jroller.com/page/edgar?entry=netbeans_demo_using_toplink_with CREATING A CRUD APPLICATION http://testwww.netbeans.org/kb/55/persistence-demo.html http://roumen.name/blog/persistence_demo/persistence.html JRUBY ON RAILS NETBEANS DEMO http://blogs.sun.com/roumen/entry/two_demos_jruby_on_rails

Notas del editor

  • #28: AJAX term is new, but the technology is not that new.
  • #31: Now that we have discussed what AJAX is and what some higher-level issues are, let's put all the pieces together and show an AJAX- enabled J2EE application. Let's consider an example. A web application contains a static HTML page, or an HTML page generated in JSP technology contains an HTML form that requires server-side logic to validate form data without refreshing the page. A server-side web component (servlet) named ValidateServlet will provide the validation logic. Figure 1 describes the details of the AJAX interaction that will provide the validation logic.
  • #32: Some uses for AJAX interactions are the following: * Real-Time Form Data Validation: Form data such as user IDs, serial numbers, postal codes, or even special coupon codes that require server-side validation can be validated in a form before the user submits a form. * Autocompletion: A specific portion of form data such as an email address, name, or city name may be autocompleted as the user types. * Master Details Operations: Based on a client event, an HTML page can fetch more detailed information on data such as a product listing that enables the client to view the individual product information without refreshing the page. * Sophisticated User Interface Controls: Controls such as tree controls, menus, and progress bars may be provided that do not require page refreshes. * Refreshing Data on the Page: HTML pages may poll data from a server for up-to-date data such as scores, stock quotes, weather, or application-specific data. * Server-side Notifications: An HTML page may simulate a server-side push by polling the server for event notifications that may notify the client with a message, refresh page data, or redirect the client to another page.
  • #33: Some uses for AJAX interactions are the following: * Real-Time Form Data Validation: Form data such as user IDs, serial numbers, postal codes, or even special coupon codes that require server-side validation can be validated in a form before the user submits a form. * Autocompletion: A specific portion of form data such as an email address, name, or city name may be autocompleted as the user types. * Master Details Operations: Based on a client event, an HTML page can fetch more detailed information on data such as a product listing that enables the client to view the individual product information without refreshing the page. * Sophisticated User Interface Controls: Controls such as tree controls, menus, and progress bars may be provided that do not require page refreshes. * Refreshing Data on the Page: HTML pages may poll data from a server for up-to-date data such as scores, stock quotes, weather, or application-specific data. * Server-side Notifications: An HTML page may simulate a server-side push by polling the server for event notifications that may notify the client with a message, refresh page data, or redirect the client to another page.
  • #47: Too much stuff here... Need to thin it out or consolidate...
  • #48: You still have all those APIs, you still have that nice fast threaded JVM, but you can work in whatever language you want to. So the first thing we have to do is to stop mixing up the Java Language and the Java Platform, and make it clear to the world that other languages—in particular dynamic languages—work fine on the platform, and that there’s nothing wrong with using them.