Aplicaciones Empresariales sobre Plataformas J2EE Open Source
Jorge Arias ( [email protected])Senior Technical ConsultantNovell Inc ( Andean Region)
© October 7, 2004 Novell Inc.2
AgendaAgenda
Motivación y Contexto
Implementación J2EE: Jboss AS
1
3
4
Agenda
Conclusiones5
Nivel de madurez de JBoss
Q&A6
Características de un aplicación empresarial2
© October 7, 2004 Novell Inc.3
Sistema Operacional
Office Suite
Web Browser
GroupwareRuntime MS
Viewers
Escritorio de trabajo
Aplicaciones de Negocio, Clientes a aplicaciones
Runtime JAVA
Abstracción de realidades
Categorización del mundo del desktop
¿ Para cuales capas de funcionalidaddebería pagar por un producto comercial ?
© October 7, 2004 Novell Inc.4
Sistema Operacional ( Enterprise Release)
Base dedatos
( RDBMS)
Servidor de Aplicaciones
J2EEDirectorio
de Servicios
Runtime MS
Runtimes
Consolas de operación y administración
Aplicaciones de negocio, CRM, ERP
Runtime JAVA
Abstracción de realidades
Categorización del mundo del datacenter
¿ Para cuales capas de funcionalidaddebería pagar por un producto comercial ?
© October 7, 2004 Novell Inc.5
AgendaAgenda
Motivación
Implementación J2EE: Jboss AS
1
3
4
Agenda
Conclusiones5
Nivel de madurez de JBoss
Q&A6
Características de un aplicación empresarial2
© October 7, 2004 Novell Inc.6
Prototipo de Aplicación Empresarial
Cliente
SAN
AppServer
Lógica Negocio (componentes)
Datos
Lógica Presentación
Datos
WebServer
DBServer
CRM ( Siebel )
ERP ( SAP)
AppServer
Lógica Negocio (componentes)
Empresas Externas
Cliente
HTTP, SOAP, WML, XML
RMI, CORBA, SOAP
Balanceo de CargaWebservices
LDAP ServerAutenticación Autorización
Integración
Replicacion & Clustering
Transacciones Distribuidas
¿ Escalable a cuántos usuarios ? ¿ Tiempos de respuesta bajos ? ¿ Robustez ?
© October 7, 2004 Novell Inc.7
Abstracción de sistemas vía webservices
Composición de procesos de negocio
Sistemas y plataformas consumiendo procesos de negocio
Aplicaciones Empresariales bajo un enfoque SOA (Services Oriented Architecture)
© October 7, 2004 Novell Inc.8
Aplicaciones Empresariales bajo un enfoque SOA
Procesos de negocio Integrados
Soluciones de negocio
Servicios estandarizados
Datos Aplicaciones
© October 7, 2004 Novell Inc.9
Evolución de paradigmas de para aplicaciones empresariales
Fuente: Gartner Group
Objetos
Componentes
Servicios
Servicios WebSOAP
Protocolo de comunicación:
Alcance
Ambientes empresarialesde gran escala
Integración B2B
MOM
ORB
Pequeñas empresasAplicaciones integradas
Aplicaciones distribuidas
Aplicación
Fuerte DébilAcoplamiento
Paradigma de desarrollo: OOD CBD SODA SODA
© October 7, 2004 Novell Inc.10
Arquitecturas de software para aplicaciones corporativas
Manejo Transaccional Seguridad Clustering
Integración Replicación Persistencia
Plataforma de ComponentesDistribuidos
Capa
Pr
esen
taci
ón
Capa
Se
rvic
ios
Del
neg
ocio
Capa
Dat
os y
Pe
rsis
tenc
ia
Capa
In
tegr
ació
n
AplicaciónCorporativaMulti-capas
Servidor de Aplicaciones
© October 7, 2004 Novell Inc.11
Caracteristicas externas de una aplicación empresarial
Guías de arquitectura, patrones de diseño
Herramientas de
productividad
Administración y depuración remota
Servicios Profesionales y soporte
Entrenamiento
Software
Aplicación Empresarial
© October 7, 2004 Novell Inc.12
AgendaAgenda
Motivación
Implementación J2EE: Jboss AS
1
3
4
Agenda
Conclusiones5
Nivel de madurez de JBoss
Q&A6
Características de una aplicación empresarial2
© October 7, 2004 Novell Inc.14
¿ Qué es JBoss AS?
• Implementación J2EE Open Source
• Basado en modelo de licencia GLP
• Estructurado alrededor de un kernel JMX
• Certificado para la especificación J2EE 1.4
JBoss SX
Java Management Extesions (JMX)
JBoss CX WebServer Deployment
EJB Container JBoss TX
JBoss AppServer
JBoss HA Platform JBoss Portal
JBoss SOA Impl.
© October 7, 2004 Novell Inc.15
¿ Qué es Jboss Inc. ?
• JBoss Inc. federa proyectos open source bajo el modelo “Professional Open Source ™ “
• JBoss Inc. emplea los desarrollares líderes de los siguientes proyectos. JBoss Application Server: J2EE based Tomcat Hibernate JBossCache/JGroups: Nukes, Workflow, rules, connectors
• JBoss inc, provee Soporte 24/7 Programa de indemnización. Certificaciones – J2EE, JASP ( JBoss Authorized Services Partner )
© October 7, 2004 Novell Inc.16
JBoss en números
• Una comunidad en crecimiento 40,000 kits de documentación vendidos. 500 contribuyentes de codigo a través del tiempo
• Un estandar en el mercado : #1 en uso de desarrollos J2EE Más de 4 Millones de downloads en los últimos dos años.
• Un estandar en el mercado: #1 en OEM
• Un estandar para los integradores de sistemas: #2 en crecimiento. ( CRN Survey)
• Un estandar en el mercado: # 3 en implantaciones en producción BZResearch survey.
• 13% in 2002
• 27% in 2003,
• Crecimiento más representativo de todas las implementaciones J2EE. JDJ survey: 70% de los usuarios lo emplean en deployments rápidos
© October 7, 2004 Novell Inc.17
Proveer una solución robusta y madura de J2EE
Evolución Corporativa de JBoss
Small ConsultancyJBoss Group
JBoss inc Professional Open Source
TrainingDocumentation
Consulting
Developer Support
Production Support
9/039/021/026/0110/00
Dev
elop
er
Tac
tical
E
nter
pris
e
New Projects
1/04
© October 7, 2004 Novell Inc.20
Evolución Arquitéctonica de JBoss
EJB
Application Server
Microkernel, JMX, J2EE API’s
Clustering, Tomcat, Web Services
Aspects, J2EE 1.4
4.03.23.02.01.0
Dev
elop
er
Tac
tical
E
nter
pris
e
• O/R Mapping• Portal• Byte Code Manipulation• …
JBoss Version
© October 7, 2004 Novell Inc.21
Contenedor EJB en JBoss
BeanLock Cache CMP
EngineTr
ansa
ctio
n
Lock
Conn
ectio
n
Sync
hron
izatio
n
Secu
rity
Cach
e
Microkernel
Data Source TransactionManager
Sync
hron
izatio
n
Repl
icatio
nCl
uste
ring
Sync
hron
izatio
nLo
ad b
alanc
ing
Sync
hron
izatio
nLo
ad b
alanc
ing
SOA
Conn
ecto
rs
EJB-Container
SOAP
RMI/JRMP
RMI/IIOP
© October 7, 2004 Novell Inc.22
Modelo de Invocación x Container
Client JVM
JMX Microkernel
Server JVM
EJB Container MBean
011101010101
RemoteInvoker
Typed Interface
Client Proxy
RemoteInvoker
EJB Container MBean
Service MBean
Invocation
Port 1234
Port 4321Client
Cadena de interceptores
Typed Interface
Cadena de interceptores
© October 7, 2004 Novell Inc.23
Projectos manejados x JBoss
• JBoss AS : Implementación J2EE, EJB, JMX, JMS, JCA, JAAS
• Hibernate : Framwork para resolver la impedancia O-R
• Tomcat : JSP/Servlet/Web server.
• JBossIDE : Eclipse integration, desarrollo dirigo por tag libraries, debugging local y remoto.
• JBossCache : Manejo distribuido de imagenes de datos ( Grid Computing).
• JGroups : Implementación IP Multicast confiable, base para laimplementación de cluster.
• Nukes : Implementación de portal y CMS ( Manejador de Contenido)
• JBossAOP : Aspect-Oriented Programming en JBoss 4.0.
• Javassist Librería de manipulación de bytecode Simple.
© October 7, 2004 Novell Inc.24
Capa de Aspectos
Sesiones Transaccionales
ACID
Acceso Seguro
Monitor en tiempo real
Configuracion cache
Monitor de tiempo y fecha
Cache de datos Persistentes
Cluster de Webservices
ClusteringRemoteInvokers ACID Monitoring PersistenceTransaction CacheSecurity
JBoss Microkernel (JMX)
JBoss AOP
© October 7, 2004 Novell Inc.25
JBoss AOP: Configuración
/** * * @@transaction(“RequiresNew”) */ public void somePOJOmethod() { … }
Explicito a través de Xdoclets
<class-metadata group=“transaction” class=“com.acme.POJO”> <method name=“get.*”> <trans-attribute>RequiresNew</transattribute> </method> </class-metadata> Implicito a través de XML
© October 7, 2004 Novell Inc.26
JBoss AOP: Aspectos a la carta
• La implementación de un middleware orientado por aspectos permite: Desarrollos fluidos e iteractivos Marca una clara separación entre la arquitectura del sistema y el
desarrollador de la aplicación.
• Las decisiones de arquitecturas pueden postergarse hasta etapas avanzadas del desarrollo ( Principio básico de Arquitectura de Software “Software Architecture Bootcap Book” )
• JBoss 4 es un verdadero middleware orientado a aspectos.
© October 7, 2004 Novell Inc.27
Jboss.net: WebServices• Especifica como pueden ser publicados los objetos como webservices:
Stateless Session Beans Web components POJO como servlet ( Plaint Old Java Object)
© October 7, 2004 Novell Inc.28
JBoss Hibernate
“Hibernate IS EJB 3.0 CMP”• Hibernate es el actual motor de persistencia de Jboss 4.x
• El mecanismo de cache de Hibernate esta integrado con la plataforma de cache de Jboss: JbossCache.
• Mapeo flexible e intuitivo
• Soporte para modelo de datos estructurados alrededor de objetos de granularidad fina.
• Potencia consultas compleadas.• Dual-Layer Caching Architecture (HDLCA)
• Persistencia transparente.
• Persistencia transitiva.
© October 7, 2004 Novell Inc.29
JBoss IDE
• JBoss IDE esta basado en Eclipse. Serie de plugins para Eclipse
• Permite el monitoreo y depuración de las instancias de Jboss.
• Permite controlar el ciclo de vida del servidor de aplicaciones ( Start, Stop, Deploy, undeploy) y assembly de los componentes web, negocio e integración.
• Soporte amigable y sofisticado con XDoclet Soporte para generación y completación. Soporte para AOP (completion and generation).
© October 7, 2004 Novell Inc.30
Jboss Cache
CACHE
EJB
WEB
CACHE
EJB
WEB
• Qué es JBossCache? Un mecanismo de caches transaccionales replicados para
Jboss. Considera componentes con o sin AOP.
• Provee funcionalidades de cache alrededor de los recursos frecuentemente más usados. Stateful Session Beans, HTTPSession Caches son usados a cualquier nivel en cualquier capa de la
arquitectura.
• Todos los accesos son a través del cache. Write-through (lazy or eager) Reads only access (Incrementa el desempeño por los hits!!) Items no residentes en el cache son cargados. (e.g. from
database) Items de bajo movimiento son bajandos del cache de
acuerdo a diferentes politicas (LRU, MRU)
© October 7, 2004 Novell Inc.31
JBoss Nukes ( Solución de Portal)
Identidades
ContainerGroupUser
Attribute
Reglas y Categorización
Manejador de ContenidoSearch
Personalización
Integración de aplicaciones
Soporte multi-idioma,
multidispositivo
AdministratorEnd-UserDeveloper
© October 7, 2004 Novell Inc.32
JBoss Clustering
Servidor Aplicaciones
Nodo B
Servidor Aplicaciones
Cluster
Nodo A
AplicaciónCliente
Jboss AppServer
Jboss Appserver
MecanismoBalanceo de carga
Esquema Round-Robin
1 3 5
2
46
Replicación de componentes & estado
Alta Disponibilidad - Replicación de Servicios
- Balanceo de carga.
© October 7, 2004 Novell Inc.33
AgendaAgenda
Motivación
Implementación J2EE: Jboss AS
1
3
4
Agenda
Conclusiones5
Nivel de madurez de JBoss
Q&A6
Características de un aplicación empresarial2
© October 7, 2004 Novell Inc.34
Valoración de Madurez de Producto
OSMM ( Open Source Madurity Model)• Metodología independiente de producto para valorar la madurez
de una solución open-source.• ¿ Está preparado el producto para una ambiente empresarial ?
Documentación
Integración Soporte
Servicios Profesionales
Entrenamiento
Software
SOLUCION OPEN-SOURCE
© October 7, 2004 Novell Inc.35
Valoración de Madurez de Producto
Documentación
Integración Soporte
Servicios Profesionales
Entrenamiento
Software
SOLUCION OPEN-SOURCE
¿ Estos indicadores los tenemos en cuenta a la hora de comprar un producto comercial ?
¿ Nuestros actuales proveedores de tecnología nos garantizan cada una de estas dimensiones de calidad y madurez de producto ?
© October 7, 2004 Novell Inc.36
Valoración de Madurez de Producto
Documentación
Integración Soporte
Servicios Profesionales
Entrenamiento
Software
JBOSS AS
© October 7, 2004 Novell Inc.37
Valoración de Madurez de JBossSoftware
Criterios de evaluación
• Funcionalidad: Certificado para J2EE 1.4, Paso la suite de pruebas de compatibilidad de SUN, pionero en kerneles JMX,AOP.• Historia: Disponible hace mas de 4 años. Más de 5 millones de downloads, Servidor de aplicaciones por excelencia de los desarrolladores. Miles de implantaciones a nivel mundial • Calidad: 1700 pruebas de compatibilidad despues de cada compilación + las 23000 pruebas del Sun CTS. 9 patches por mes.• Equipo de desarrollo: 91 miembros, Ingenieros activos 12, una de las comunidades mas activas. Compromiso de proyectos con universidades a nivel mundial ( Oxford, Cambridge, Stanford, Cornell, UCLA, etc )
Puntaje: 8/10- Aunsencia de un IDE integrado. ( Falencia ante productos comerciales)- Solución:Eclipse + Jboss Plug-in
© October 7, 2004 Novell Inc.38
Valoración de Madurez de JBoss
Opciones de soporte técnico para soluciones open-source
• Comunidad: JBoss posee una activa comunidad donde se publican preguntas y respuestas. Gran parte de las preguntas las responden empleados de Jboss ( Compromiso y calidad de las respuestas)• Comercial: Soporte pagado en dos modalidades: Desarrollo ( Orientado a los desarrollores que escriben la aplicación ) y Producción ( Orientado apoyar al staff de administración de la aplicación y datacenter)• On-site: Ingenieros de Jboss apoyando proyectos al interior de la empresa
Puntaje: 8/10- Algunas preguntas colocadas por los jueces en el foro de soporte de Jboss no fueron respondidas en el tiempo esperado o no se entrego un solucion directa al problema ( Efectividad) - Pregunta: ¿ Sí le aplicaramos la misma evaluación a las respuesta entregadas por las unidades de soporte de varias soluciones comerciales cuanto sacarían ?
Soporte
© October 7, 2004 Novell Inc.39
Valoración de Madurez de JBoss
Las opciones u ofertas de documentación para soluciones open-source
• Webposting informales publicados por usuarios de la comunidad o agenos a la misma• Tutoriales y referencias•Jboss Team le ha dado una prioridad alta a la generación de documentación.•Han creado un proyecto de contribucción de documentación.•La documentación técnica escrita por Jboss se vende a US30.•Hay publicaciones formales en SAMs publishing.
Puntaje: 6/10- La documentación libre entregada por Jboss en su website es considerada poco funcional.- No hay muchas publicaciones formales.
Documentación
© October 7, 2004 Novell Inc.40
Valoración de Madurez de JBoss
Tipos de entrenamiento para soluciones open-source • Posting informales de ejemplos “how-to” escritos por usuarios finales.• Tutoriales en linea creado por los desarrolladores.• Tutoriales publicados a nivel comercial.• Entrenamiento tipo “class-room” entregado por equipos de desarrollo OpenSource.• Entrenamiento tipo “class-room” entregado por entidades comerciales.
JBoss ofrece todos los cinco tipos de entrenamiento.
Puntaje: 8/10- Ausencia de tutoriales publicados a nivel comercial.
Entrenamiento
© October 7, 2004 Novell Inc.41
Valoración de Madurez de JBoss
¿ Qué tan fácil se integra esta solución con otros productos?
• Tecnologías J2EE: JMS, RMI, CORBA, JCA ( Conectores CRM, ERP, etc)• Tecnologías web: HTTP,SOAP• Arquitectura orientada a servicios: Webservices, SOAP, JAX-RPC.• Apoyo de fabricantes de soluciones CRM, ERP, etc.• Kernel basado en JMX ( CORBA, SNMP, HTTP, RMI, etc)
Puntaje: 10/10“Es considerado el servidor de aplicaciones con más facilidades de integración” ( Fuente: Theserverside.com )
Integración
© October 7, 2004 Novell Inc.42
Valoración de Madurez de JBoss
Opciones de soporte técnico para soluciones open-source:• E-mail, Onsite, Telefono, Soporte• Desarrollo de relaciones con firmas de consultoría, integradores, empresas fabricantes• Actualmente JBoss tiene relaciones con: Novell, HP, CA.• Toda la red de soporte de Novell apoya Jboss• Grupo de consultoria de Novell ( Anteriormente Cambridge Technology Partners)• Centros autorizados de servicios ( Platinum, Gold, Silver )
Puntaje: 8/10- Falta desarrollo de canales y relaciones con empresas de consultoria
Servicios Profesionales
© October 7, 2004 Novell Inc.43
Valoración de Madurez de JBoss
Documentación 6/10
Integración10/10
Soporte ( 8/10)
Servicios Profesionales ( 8/10 )
Entrenamiento 8 /10
Software = 8/10
Valoración de madurezJBOSS > = 80%
© October 7, 2004 Novell Inc.44
Valoración de Madurez de JBossDocumentación
IntegraciónSoporte
Servicios Profesionales
Entrenamiento Software
¿ Sí realizaramos este ejercicio a cada una de las implementaciones J2EE
comerciales, cuantas de ellas estarían en un verdadero estado de madurez ?
© October 7, 2004 Novell Inc.45
AgendaAgenda
Motivación
Implementación J2EE: Jboss AS
1
3
4
Agenda
Conclusiones5
Nivel de madurez de JBoss
Q&A6
Características de un aplicación empresarial2
© October 7, 2004 Novell Inc.46
Conclusiones
• JBoss AS es una sería, robusta y madura alternativa para construir aplicaciones empresariales de gran escala, caracterizadas por altas cargas de trabajo, acceso distribuidos de información, bajos tiempos de respuesta, entre otros requerimientos no funcionales.
• El modelo arquitectónico estructura alrededor de AOP y JMX hace de JBoss el pionero en la siguiente generación de plataformas J2EE para desplegar aplicaciones empresariales de gran escala.
• La arquitectura modular y flexible de JBoss AS permite que este pueda ser potenciado para implementar solidas soluciones bajo el enfoque orientado a servicios SOA.
© October 7, 2004 Novell Inc.47
AgendaAgenda
Motivación
Implementación J2EE: Jboss AS
1
3
4
Agenda
Conclusiones5
Nivel de madurez de JBoss
Q&A6
Características de un aplicación empresarial2