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