Desarrollo JavaEE con Spring Framework Spring Agile Tour Perú 2008 Lennon Shimokawa http://www.lshimokawa.net
 
Agenda <ul><ul><li>Arquitectura JavaEE  </li></ul></ul><ul><ul><li>Introducción a Spring Framework </li></ul></ul><ul><ul>...
Arquitectura JavaEE
 
Problemas de JavaEE <ul><ul><li>La lógica de negocio debe estar en EJBs </li></ul></ul><ul><ul><li>Mucha configuración y d...
Introducción a Spring Framework
Historia de Spring <ul><ul><li>2002: Expert One-on-One J2EE Design and Development </li></ul></ul><ul><ul><li>2003: Nace c...
Filosofía de Spring <ul><ul><li>Programación basada en POJOs  </li></ul></ul><ul><ul><li>Ligero  </li></ul></ul><ul><ul><l...
Valores de Spring <ul><ul><li>Simple pero poderoso: ej. Spring JDBC </li></ul></ul><ul><ul><li>Flexibilidad: dividido en m...
Módulos de Spring
SpringSource
Subproyectos de Spring <ul><ul><li>Spring Framework </li></ul></ul><ul><ul><li>Spring Web Flow </li></ul></ul><ul><ul><li>...
Inversión de control
No nos llames, nosotros te llamamos.” “ Principio de Hollywood
Inversión de control <ul><ul><li>¿Que aspecto se invierte? </li></ul></ul><ul><ul><li>Diferencia entre framework y librerí...
Inyección de dependencias <ul><ul><li>Definición más específica de Inversión de Control </li></ul></ul><ul><ul><li>Diseño ...
Spring IoC Container
Ejemplo
Demanda
Tendencia de demanda Spring vs EJB, absoluto
Tendencia de demanda Spring vs EJB, relativo
Casos de éxito en el mundo
Voca Procesamiento de transacciones en Europa <ul><ul><li>5 billones de transacciones, $5 trillones anuales </li></ul></ul...
Bank of America <ul><ul><li>59 millones de clientes, 6 100 oficinas, 19 000 ATMs, 24 millones de usuarios de banca online ...
HSBC Arquitectura basada en Spring <ul><ul><li>10 000 oficinas en 83 países </li></ul></ul><ul><ul><li>40% reducción en có...
Casos de éxito en el Perú
Belcorp Módulo de interfases con el Sistema Comercial <ul><ul><li>Frameworks: Struts, Spring, iBatis </li></ul></ul><ul><u...
Hochschild Proyecto SISSALUD <ul><ul><li>Frameworks: Struts, Spring, Hibernate </li></ul></ul><ul><ul><li>Servidor: Tomcat...
Alicorp Proyecto SIDEX <ul><ul><li>ERP para distribuidoras de Alicorp  </li></ul></ul><ul><ul><li>Frameworks: Struts, Spri...
HSBC Internet Banking <ul><ul><li>Frameworks: JSF, Spring, Spring JDBC </li></ul></ul><ul><ul><li>Integración a WebSphere ...
Banco de Crédito del Perú Portlets <ul><ul><li>Portlet Lanzador de Aplicaciones, Clave Digital, Tipo de Cambio </li></ul><...
Preguntas
Upcoming SlideShare
Loading in...5
×

Desarollo JavaEE con Spring Framework

4,903

Published on

Presentación para Spring Agile 2009 en el Instituto Cevatec

Transcript of "Desarollo JavaEE con Spring Framework"

  1. 1. Desarrollo JavaEE con Spring Framework Spring Agile Tour Perú 2008 Lennon Shimokawa http://www.lshimokawa.net
  2. 3. Agenda <ul><ul><li>Arquitectura JavaEE </li></ul></ul><ul><ul><li>Introducción a Spring Framework </li></ul></ul><ul><ul><li>Inversión de control </li></ul></ul><ul><ul><li>Ejemplo </li></ul></ul><ul><ul><li>Demanda </li></ul></ul><ul><ul><li>Casos de éxito </li></ul></ul><ul><ul><li>Preguntas </li></ul></ul>
  3. 4. Arquitectura JavaEE
  4. 6. Problemas de JavaEE <ul><ul><li>La lógica de negocio debe estar en EJBs </li></ul></ul><ul><ul><li>Mucha configuración y descriptores XML </li></ul></ul><ul><ul><li>Modelo distribuido, overhead causa problemas de performance </li></ul></ul><ul><ul><li>Alto tiempo de despliegue, dificulta las pruebas </li></ul></ul><ul><ul><li>Código Java dentro de los JSPs </li></ul></ul><ul><ul><li>Problemas con CMP y JDBC </li></ul></ul>
  5. 7. Introducción a Spring Framework
  6. 8. Historia de Spring <ul><ul><li>2002: Expert One-on-One J2EE Design and Development </li></ul></ul><ul><ul><li>2003: Nace como proyecto Open Source </li></ul></ul><ul><ul><li>2004: Spring 1.0 </li></ul></ul><ul><ul><li>2006: Spring 2.0 </li></ul></ul><ul><ul><li>2007: Spring 2.5 </li></ul></ul><ul><ul><li>2008: SpringSource  </li></ul></ul><ul><ul><li>2009: Spring 3.0 </li></ul></ul>
  7. 9. Filosofía de Spring <ul><ul><li>Programación basada en POJOs </li></ul></ul><ul><ul><li>Ligero </li></ul></ul><ul><ul><li>Facilita las buenas prácticas de programación </li></ul></ul><ul><ul><li>Modelo de programación consistente </li></ul></ul><ul><ul><li>Facilita las pruebas </li></ul></ul><ul><ul><li>No invasivo </li></ul></ul><ul><ul><li>No reinventa la rueda </li></ul></ul>
  8. 10. Valores de Spring <ul><ul><li>Simple pero poderoso: ej. Spring JDBC </li></ul></ul><ul><ul><li>Flexibilidad: dividido en módulos, puntos de extensión </li></ul></ul><ul><ul><li>Elección: ej. web, persistencia, configuración </li></ul></ul>
  9. 11. Módulos de Spring
  10. 12. SpringSource
  11. 13. Subproyectos de Spring <ul><ul><li>Spring Framework </li></ul></ul><ul><ul><li>Spring Web Flow </li></ul></ul><ul><ul><li>Spring Web Services </li></ul></ul><ul><ul><li>Spring Security </li></ul></ul><ul><ul><li>SpringSource dm Server </li></ul></ul><ul><ul><li>Spring Dynamic Modules </li></ul></ul><ul><ul><li>Spring Batch </li></ul></ul><ul><ul><li>Spring Integration </li></ul></ul><ul><ul><li>Spring LDAP </li></ul></ul><ul><ul><li>Spring IDE </li></ul></ul><ul><ul><li>Spring Modules </li></ul></ul><ul><ul><li>Spring JavaConfig </li></ul></ul><ul><ul><li>Spring Rich Client </li></ul></ul><ul><ul><li>Spring .NET </li></ul></ul><ul><ul><li>Spring BeanDoc </li></ul></ul>
  12. 14. Inversión de control
  13. 15. No nos llames, nosotros te llamamos.” “ Principio de Hollywood
  14. 16. Inversión de control <ul><ul><li>¿Que aspecto se invierte? </li></ul></ul><ul><ul><li>Diferencia entre framework y librería </li></ul></ul><ul><ul><li>Ejemplo: EJB (ejbActivate, ejbPassivate) </li></ul></ul><ul><ul><li>Martin Fowler: Inyección de dependencias </li></ul></ul>
  15. 17. Inyección de dependencias <ul><ul><li>Definición más específica de Inversión de Control </li></ul></ul><ul><ul><li>Diseño en el que los colaboradores de los objetos son configurados por una entidad externa </li></ul></ul><ul><ul><li>Formas de inyección: setter, constructor, method </li></ul></ul><ul><ul><li>Setter Injection vs Constructor Injection </li></ul></ul><ul><ul><li>Dependency Injection vs Service Locator </li></ul></ul>
  16. 18. Spring IoC Container
  17. 19. Ejemplo
  18. 20. Demanda
  19. 21. Tendencia de demanda Spring vs EJB, absoluto
  20. 22. Tendencia de demanda Spring vs EJB, relativo
  21. 23. Casos de éxito en el mundo
  22. 24. Voca Procesamiento de transacciones en Europa <ul><ul><li>5 billones de transacciones, $5 trillones anuales </li></ul></ul><ul><ul><li>12 000 transacciones por segundo, 6x performance del mainframe </li></ul></ul><ul><ul><li>70% de salarios y 90% de utilidades en Reino Unido </li></ul></ul>
  23. 25. Bank of America <ul><ul><li>59 millones de clientes, 6 100 oficinas, 19 000 ATMs, 24 millones de usuarios de banca online </li></ul></ul>Aplicación de análisis de trading
  24. 26. HSBC Arquitectura basada en Spring <ul><ul><li>10 000 oficinas en 83 países </li></ul></ul><ul><ul><li>40% reducción en código de framework, 25% reducción en código de aplicación </li></ul></ul>
  25. 27. Casos de éxito en el Perú
  26. 28. Belcorp Módulo de interfases con el Sistema Comercial <ul><ul><li>Frameworks: Struts, Spring, iBatis </li></ul></ul><ul><ul><li>Integración con SAP con JCo </li></ul></ul><ul><ul><li>Servidor: Oracle Application Server </li></ul></ul>
  27. 29. Hochschild Proyecto SISSALUD <ul><ul><li>Frameworks: Struts, Spring, Hibernate </li></ul></ul><ul><ul><li>Servidor: Tomcat </li></ul></ul>
  28. 30. Alicorp Proyecto SIDEX <ul><ul><li>ERP para distribuidoras de Alicorp </li></ul></ul><ul><ul><li>Frameworks: Struts, Spring, JCo </li></ul></ul><ul><ul><li>Uso de AJAX con DWR y Prototype </li></ul></ul><ul><ul><li>Invocación a lógica de negocio a BAPI's </li></ul></ul><ul><ul><li>Servidor: SAP Netweaver </li></ul></ul>
  29. 31. HSBC Internet Banking <ul><ul><li>Frameworks: JSF, Spring, Spring JDBC </li></ul></ul><ul><ul><li>Integración a WebSphere MQ con Spring JMS </li></ul></ul><ul><ul><li>Ejecución de StoredProcedures con Spring JDBC </li></ul></ul><ul><ul><li>Auditoría con Spring AOP </li></ul></ul><ul><ul><li>Servidor: WebSphere Application Server v6.1 </li></ul></ul>
  30. 32. Banco de Crédito del Perú Portlets <ul><ul><li>Portlet Lanzador de Aplicaciones, Clave Digital, Tipo de Cambio </li></ul></ul><ul><ul><li>Frameworks: Spring Portlet MVC, Spring, Spring JDBC </li></ul></ul><ul><ul><li>Integración con arquitectura empresarial </li></ul></ul><ul><ul><li>Servidor: WebSphere Portal Server v6.0 </li></ul></ul>
  31. 33. Preguntas

×