Download - SOA - GeneXus
SOA - GeneXus
Paola Saavedra Martí[email protected]
Universo SOA
Servicio• Aplicación independiente
• Interfaz bien definida - Mensajes
• Contexto de clientes
• Instalación/despliegue
• Políticas propias de escalabilidad, tolerancia a fallos, manejo de excepciones
Arquitectura
• Colección de servicios expuestos en la red
• Desarrollo - Ensamble
• Protocolos estándar
Distintas visiones• Ejecutivo
Conjunto de servicios de negocio
• Arquitecto
Principios de diseño
• Desarrollador
Modelo de programación
Ventajas de SOA• Reduce nivel de acoplamiento
• Mejora la definición de roles de desarrollo
• Mejora la mantenibilidad
• Favorece el reuso
• Permite interoperabilidad
Motivaciones de Negocio
Procesos de Negocio
Implementaciones de IT
BRECHA - SOA
Es un concepto nuevo SOA?• Reuso
– Programación orientada a objetos– Componentes de software– Patrones de diseño / Frameworks
• Automatización y Monitoreo de procesos– BPM (Business Process Modeling)
• Integración de aplicaciones e interoperabilidad– Corba/DCom/EJB/Web Services
Se adoptará?• Implementación – Web Services
– Estandarización de protocolos – Estándares definidos Estándares adoptados
• Dinámica del mercado– Estandarización de Plataformas– EAI (Enterprise Application Integration) propietarias
COSTO
Arquitectura
Proveedor del Servicio
Consumidor el Servicio
Directorio de Servicios
Publicación del Servicio
Descubrimiento del Servicio
Asociación e invocación
1
3
2
Arquitectura
Servicios de administración
Se
rvicios d
e in
frae
structu
ra
Servicios comunes
Infra
estru
ctura
de
com
un
icació
n
Servicios de negocio compartidos
Servicios de acceso de información
Servicios de presentación
Aplicaciones compuestas
ERP Mainframe DB
Registrar
Buscar
Vincular
Servicios
ESB (Enterprise Service Bus)
• Implementaciones• Propietarias• Dependientes de plataforma y lenguaje• Generan alto nivel de acoplamiento
• Independencia de lenguaje-plataforma
• Soporte para múltiples tipos de mensajería
• Motor de orquestación de servicios
• Establecimiento y monitoreo de niveles de servicio
• Políticas de autenticación y autorización. Auditoria
ESB (Enterprise Service Bus)
ESB (Enterprise Service Bus)
ESBClienteAdministración de
servicios
Seguridad Auditoria Log
Facade
Aplicación personalizada
Aplicación personalizada
Aplicación empaquetada
Facade Facade
API
Seguridad Auditoria Log
ESB (Enterprise Service Bus)
ESBClienteAdministración de
servicios
Ruteo Transacción Orquestación Seguridad Auditoria Otros
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
Se
rvic
ios
de
Ne
go
cio
• Estándares de la industria: XML y HTTP
• Independiente del lenguaje y de la plataforma
• Es auto descriptivo – WSDL
• Protocolos– WSDL– UDDI– SOAP
Web Services
Arquitectura
Proveedor del Servicio
Consumidor el Servicio
Directorio de Servicios
Publicación del Servicio
Descubrimiento del Servicio
Invocación y respuesta
1
3
2
UDDI
4
SOAP
Definición del Servicio
WSDL
• Implementación
– Web Services– EJB– Protocolo Corba
• Monitoreo de Procesos– Componente de BPM
• Motor de Workflow
GeneXus
Implementación – Web Service
• Publicación
Fácil
Propiedad del Proceso GeneXus
Implementación – Web Service• Consumo
– WSDL Inspector
– Referencia de tipos de datos
– Utilización en cada objeto
Acceso a la Trn desde distintas Interfases
Publicación SOA/EJB
INTEGRACIÓN
Business Component
SIMPLE
Propiedad de la TRN
Tipo de datos con propiedades y
métodos
Business Component
Implementación - EJB
Procedimientos– Session Beans y Message Driven Beans
– Pueden ser llamados por aplicaciones GeneXus y/o aplicaciones externas
Business Components– Session Beans
SUBMIT
Un EJB con GeneXus
CALL
Message Driven Bean
Session Bean
Message Driven Beans
<ejb-jar> <enterprise-beans> <message-driven> <ejb-name>MyMDB</ejb-name> <ejb-class>com.jeffhanson.ejb.MyMDB</ejb-class> <transaction-type>Container</transaction-type> <message-driven-destination> <destination-type>javax.jms.Topic</destination-type> </message-driven-destination> <security-identity> <run-as-specified-identity> <role-name>system</role-name> </run-as-specified-identity> </security-identity> </message-driven> </enterprise-beans></ejb-jar >
Implementación - CORBA
Muchas gracias !
Paola Saavedra [email protected]