Arquitectura Orientada a Servicios M.C. Juan Carlos Olivares Rojas Morelia, Michoacán, México,...

Post on 23-Jan-2016

224 views 0 download

Transcript of Arquitectura Orientada a Servicios M.C. Juan Carlos Olivares Rojas Morelia, Michoacán, México,...

Arquitectura Orientada a Servicios

M.C. Juan Carlos Olivares Rojas

Morelia, Michoacán, México, Octubre 2008

DisclaimerEl autor es responsable de toda la información contenida en esta presentación, la cual no refleja el punto de vista de toda la Línea de Investigación de Ingeniería de Software.

Parte del material de esta presentación se ha obtenido de diversas fuentes cada una de las cuales tiene propiedad intelectual, por lo que en esta presentación se tiene solamente algunos derechos reservados.

Agenda• Introducción

• SOA: una nueva piedra angular en el desarrollo de software

• Caso Práctico

• Conclusiones

Software Hoy en Día

• Mito: los programadores de ahora ya no programan como los de antes.

• Herramientas más fáciles y productivas• El software es cada día más complejo

ServicioServicio ServicioServicio ServicioServicio

ServicioServicio ServicioServicio ServicioServicio

BusBus

Solución

SOASOA

Arquitectura del Sistema

Desde el Punto de Vista del Usuario

Arquitectura de una Casa

Desde el Punto de Vista del Constructor

Planta Alta Planta Baja

Arquitectura de Hardware

Arquitectura Windows NT 5.0

Interfaces de Hardware(buses, Dispositivos de E/S , interrupcciones, intervalos de temporizadores, DMA, control de memoria cache , etc.)

Sistema de Despachador de Sistemas

Admon- de Tareas

Explorer

SvcHost.Exe

WinMgt.Exe

SpoolSv.Exe

Servicio de Control de

Gestión

LSASS

Man

ejado

r de

Ob

jetos

WindowsUSER,

GDI

Cach

é del

Sistem

a de

Arch

ivos

Manejador E/S

Subistema de Entornos

Aplicaciones de los Usuarios

Subsistema de DLLs

Procesos del Sistema Servicios Aplicaciones

Hilos de Sistemas

UserMode

KernelMode

NTDLL.DLL

Manejador del Sistema de Archivos y

Dispositivos

WinLogon

Manejador de Sesiones

Services.Exe POSIX

Windows DLLs

Ad

min

istrado

rD

e Plu

g an

d P

lay

Ad

min

istrado

rD

e En

ergía

Mo

nito

r de

Referen

ciasD

e Seg

urid

ad

Mem

oria

Virtu

al

Pro

cesos e

Hilo

s

Llam

ada a

Pro

cesos

Lo

cales Manejadorde Gráficos

Kernel

Hardware Abstraction Layer (HAL)

(interfaces invocables en el modo kernel)

Ad

min

istrado

rD

e Co

nfig

uració

n(R

egistro

)

OS/2

Windows

Arquitectura de un Sistema

Arquitectura de Datos

Almacén de Datos en Copo de Nieve

Arquitectura de Software

Servicios(SOA)

ArquitecturasMonolíticas

Antes 1950’shasta 1960’s

1970’s mediados 1980’s

Mediados1990’sComienzo 2000’s

HoyFinales 1990’s

Subrutinas/Llamadas a

Procedimientos Remotos

Invocación de Objetos Remotos

Procesamiento de Mensajes

Web

1980’s mediados 1990’s

Línea del Tiempo del Desarrollo de Arquitecturas

Mayor Flexibilidad

Motivación

“Casas de Perros”Proyectos EscolaresSIN ARQUITECTURAPoco $

CasasProyecto de PyMESARQUITECTURAS SIMPLESRentable $

EdificiosGrandes CorporativosARQUITECTURAS COMPLEJASMucho $$$$

Desarrollo de Software en la Academia

Arquitecturas Empresariales HoyAccounting Marketing

SupportProduct Development

Accounting Marketing

SupportProduct Development

Integración Años más Tarde

Enterprise Service Bus

•Agilidad

•SOA

•Servicios Web

•Middleware ESB

Servicios

Servicio: Nivel de abstracción

Ejemplo de Servicios en SOA

Contabilidad

ProveedorProveedor

Servicios CompartidosServicios Compartidos

Divisiones

ClienteCliente

Proceso de Negocio de una Aplicación

¿Qué es SOA?• “Conjunto de componentes que pueden ser

invocados, cuyas descripciones de interfaces se pueden publicar y descubrir”

• “SOA es un estilo de arquitectura que promueve descomponer la lógica funcional de una aplicación en unidades autónomas denominadas servicios”

De acuerdo al W3C

Arquitectura de Servicios Web

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

Características de SOASin SOA Con SOA

Orientado a Función Orientado a Procesos

Construido para Durar Construido para Cambiar

Ciclo de Desarrollos Largos

Ciclos de Desarrollo Incrementales

Aplicaciones Aisladas Aplicaciones Orquestadas

Fuerte Acoplamiento Bajo Acoplamiento

Orientada a Objetos Orientado a Mensajes

CLIENTES GRUPO EJECUTIVO

Proceso: Gestión solicitud crédito

BPMDashboard,KPI (Key Performance Indicator)

BAM

Crear cliente

RealizarAnálisis crediticio

ValidarRiesgo

CrearCrédito

Desembolsarcrédito

SERVICIOS

RiesgoCréditoCRM Core Bancario

EMPLEADOS

EIS

PORTAL

¿Qué es SOA?

¿Qué es SOA?

Servicios Reutilizables

Crédito Inversiones

CRM

ServicioHistorial

Servicio de Acceso

ChecaCrédito

Detecciónde Fraudes

DWH

ServicioClientes

Servicio Datos

Internet

HistorialAdeudo

s ChequesFondo Retiro

Fuentes de Información

Cálculo de Intereses

ChecaInversiones

Bancos Finanzas

Acceso Multiplataforma

Componetes de Negocio

Reutilizables

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

Middleware de Servicios

Composición de AplicacionesServicio A (Verificación de Crédito)

Portlet A

Servicio D (Colocar una Orden)

Servicio B (Balance de Cuenta)

Servicio C (Verificación de Inventario)

Portlet B

Portlet C

Portlet D

Agenda• Introducción

• SOA: una nueva piedra fundamental en el desarrollo de software

• Caso Práctico

• Conclusiones

Arquitectura SOA de Oracle

Apps Bulk ELT

Adapters

Partners

B2B

RFID

SES

DB

Multi Protocol Routing

XSLTTransform

Enterprise Service Bus

NativeBPEL

Business Rules

Human Workflow

BPEL Process Manager

ROUTING & ORCHESTRATION

Messaging

UDDI

Policies

Security

Web Services Manager

Registry

Events AnalyticsBusiness

Monitoring System Monitoring

EMBAM BI

App DevFramework

&Web Center

JDeveloper

Analyst Tools

BPA Suite

AIA Foundation PackAIA Foundation Pack

J2EE Application Server

ODI

Process Integration Packs

Enterprise Business Service & Object Library SOA Governance

SOA ReferenceArchitecture

SOA ProgrammingModel

La Pila de Protocolos WS-*

De acuerdo al W3C

JAVA Integration Server

J2EE + JBI

Manages diverse data and content in a

unified manner

Integrated environment for design

and creation of solution

assets

Manage and secure services,

applications &

resources

Facilitates better decision-making with real-time business information

Enables collaboration between people,

processes & information

Orchestrate and automate business

processes

Connect with trading partners

Build on a robust, scaleable, and secure services environment

Facilitates interactions with existing information and application assets

Optimizes throughput, availability and performance

Arquitectura SOA de IBM

Business Innovation & Optimization Services

Dev

elo

pm

ent

Ser

vice

s

Interaction Services Process Services Information Services

Partner Services Business App Services Access Services

Enterprise Service Bus: Facilitates communication between services

IT S

ervi

ceM

anag

emen

t

Infrastructure Services

Agenda• Introducción

• SOA: una nueva piedra fundamental en el desarrollo de software

• Caso Práctico

• Conclusiones

Caso de Uso

Fallecimiento de una Persona

Identificar Servicios• Alta fallecimiento

• Cerrar Vínculos

• Fin de Trámites

• Fin de Relaciones Laborales

Orquestación del Proceso de Negocio

Diagrama de Flujo de Trabajo

© Bull36

Parte Práctica

• Consumir/Construir Servicios Distintas Plataformas– Java– .NET– Office

• Composición de Servicios Web utilizando NetBeans– Hola Mundo

Agenda• Introducción

• SOA: una nueva piedra fundamental en el desarrollo de software

• Caso Práctico

• Conclusiones

Conclusiones• SOA no es una moda, es un estilo

arquitectónico que tiene muchos años de madurez.

• El desarrollo de software es un proceso socio-tecnológico, por lo que para tener éxito implantando una Arquitectura Orientada a Servicios no sólo requiere de tecnologías sino de personas.

• Se debe pensar en grande pero actuar en pequeño.

Conclusiones• Existen actualmente problemas de

interoperabilidad debido a las diferentes implementaciones de la arquitectura.

• No hay un estándar “de jure” para SOA.

• Puede ser que en el futuro surjan nuevas arquitecturas más poderosas.

• Se debe tener cuidado en crear arquitecturas de tipo espagueti.

¿Preguntas?E-mail: jcolivar@itmorelia.edu.mxMSN: juancarlosolivares@hotmail.comWeb: http://antares.itmorelia.edu.mx/~jcolivar/

Ubicación: Coordenadas (19.72388, -101.1848) Edificio J