Laboratorio de Integración de Sistemas

103
Taller de Sistemas de Información Geográficos Empresariales Aplicaciones Empresariales y GIS

Transcript of Laboratorio de Integración de Sistemas

Page 1: Laboratorio de Integración de Sistemas

Taller de Sistemas de Información Geográficos

Empresariales

Aplicaciones Empresariales y GIS

Page 2: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 2

Motivación

Sistema de Información Geográfica

Sistema de Información Geográfica

Aplicación EmpresarialAplicación

Empresarial

Aplicación EmpresarialAplicación

Empresarial

Aplicación EmpresarialAplicación

Empresarial

Aplicación EmpresarialAplicación

Empresarial

Page 3: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 3

Aplicaciones EmpresarialesMiddlewareSOA y ESBArquitectura y Tecnologías GISAlternativas de Integración

Agenda

Page 4: Laboratorio de Integración de Sistemas

Taller de Sistemas de Información Geográficos Empresariales

Aplicaciones Empresariales

Page 5: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 5

Una Aplicación Empresarial es una aplicación de software desarrollada para administrar las operaciones, activos y recursos de una empresa

Ejemplos: Contabilidad, Seguimiento de envíos, Servicio al cliente, Nómina de empleados

Características: persistencia de datos, grandes volúmenes de datos, varias Interfaces de Usuario, integración con otras aplicaciones, acceso concurrente a datos.

Aplicaciones Empresariales

Page 6: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 6

El proceso de desarrollo de una aplicación empresarial involucra al menos:o Programadores de aplicaciones

o Administradores de base de datos

o Diseñadores de interfaz de usuario

o Integradores de aplicaciones

Complejidades: Administración, Matenibilidad, Escalabilidad,

Interoperabilidad, Seguridad, Confiabilidad, Accesibilidad y Usabilidad, Internacionalización

Aplicaciones Empresariales

Page 7: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 7

“Layers” es un estilo arquitectónico que comúnmente se utiliza para las Aplicaciones Empresariales

En este esquema las capas más altas utilizan servicios definidos por las capas más bajas

Esta división lógica entre capas de funcionalidad pueda basarse en distintas responsabilidades

Arquitectura en Capas (Layers)

Page 8: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 8

Microsoft Patterns & Practices. Microsoft Application Architecture Guide v2.0

Arquitectura en Capas (Layers)

Page 9: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 9

Las capas antes presentadas pueden estar ubicadas en la misma locación física (tier) o en diferentes locaciones físicas

Si se encuentran en locaciones físicas diferentes, existen fronteras físicas que deben ser tomadas en cuenta en el diseño

Arquitectura Física (Tiers)

Page 10: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 10

Este enfoque minimiza el número de servidores requeridos

Minimiza el impacto en performance inherente a la comunicación entre capas de diferentes lugares físicos

Sin embargo, compartir el mismo hardware, puede impactar la performance, por ejemplo, al acceder a recursos compartidos

Deployment No Distribuido

Page 11: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 11

Este enfoque permite configurar el hardware según las necesidades de cada capa

Esto permite ajustar las necesidades de escalabilidad según cada capa de la aplicación

Sin embargo, el uso de componentes distribuidos, impacta la performance a la hora de realizar llamadas remotas entre diferentes locaciones físicas

Deployment Distribuido

Page 12: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 12

Cliente / Servidor2-Tier3-TierN-Tier

Deployment Distribuido (N-Tiers)

Page 13: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 13

Cliente / Servidor

Microsoft Patterns & Practices. Microsoft Application Architecture Guide v2.0

Deployment Distribuido (N-Tiers)

Page 14: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 14

3-Tier

Microsoft Patterns & Practices. Microsoft Application Architecture Guide v2.0

Deployment Distribuido (N-Tiers)

Page 15: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 15

4-Tier

Microsoft Patterns & Practices. Microsoft Application Architecture Guide v2.0

Deployment Distribuido (N-Tiers)

Page 16: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 16

Integración de Aplicaciones Empresariales (EAI) es la tarea de hacer que aplicaciones desarrolladas de forma independiente trabajen de forma conjunta con el fin de compartir datos y procesos de negocio

Integración de Aplicaciones

Page 17: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 17

Al integrar Aplicaciones Empresariales surgen varios desafíos:o Las redes no son confiables

o Las redes son lentas

o Las aplicaciones son diferentes a nivel de lenguajes de programación, formato de

datos, etc

o El cambio en las aplicaciones es inevitable

Integración de Aplicaciones

Page 18: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 18

Históricamente se han utilizado distintos enfoques para la integración:o Transferencia de archivos

o Base de datos compartidao Invocación de procedimientos remotos

Comunicación sincrónica

o Mensajería Comunicación asincrónica

o A nivel de Interfaz de Usuario

Integración de Aplicaciones

Page 19: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 19

Existen plataformas que facilitan el desarrollo e integración de aplicaciones empresariales

Las mismas brindan soluciones a varios de los problemas presentados

Permiten que el desarrollador se concentre en los aspectos relevantes para el negocio

.Net FrameworkJakarta Enterprise Edition (JEE)

Plataformas de Desarrollo Empresarial

Page 20: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 20

Es un Framework desarrollado por MicrosoftIncluye

o Una biblioteca de clases orientada al programador a fin de facilitar los problemas típicos de programación

o Una maquina virtual que administra la ejecución de programas escritos para esta plataforma

.NET Framework

Page 21: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 21

La biblioteca de clases provee una gran variedad de funcionalidades, entre las que se incluyen o Interfaz de usuarioo Acceso a datos

o Conectividad

o Aplicaciones webo Seguridad

.NET Framework

Page 22: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 22

Los programas escritos para el framework .NET ejecutan en un ambiente de software que administra los requerimientos de dicho programa

Este ambiente de ejecución, se denomina Common Language RuntimeSeguridadManejo de Memoria, Control de

Excepciones

.NET Framework

Page 23: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 23

.Net Framework

1. ASP.NET / ASP.NET MVC

2. AJAX

3. WPF

4. Silverlight

5. WCF

6. WS*

7. Workflow Foundation

8. Datatypes

9. Datasets

10. ADO.NET

11. LINQ

12. Entity Framework / NHibernate

13. Membership

14. SQL Server

1 2 3 4

5 6

78 9

10 11 12 5

13

14

Page 24: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 24

Jakarta Enterprise Edition

Definición original de Sun Microsystemso Java Enterprise Edition (Java EE) define el

estándar para el desarrollo de aplicaciones empresariales distribuidas, basadas en componentes, utilizando un modelo de múltiples capas.

o Sun fue comprada por Oracle quién se hizo cargo de Java.

o Actualmente Oracle donó a la Fundación Eclipse el proyecto JEE pero retiene el nombre Java=>Jakarta.

Page 25: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 25

Independencia del proveedor

La plataforma promueve la construcción de sistemas independientes de la plataformao Heredado de Java

La especificación es abierta, puede ser implementada por cualquier proveedor

Éste deberá cumplir dicho estándaro Hay procesos de certificacióno No implica que sólo debe soportar lo que el

estándar establece

Page 26: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 26

Servidores JEE

Representa el ambiente en el que ejecutan los componentes JEE

Estos componentes se denominan componentes server-side o componentes de aplicación JEE

Pueden tomar la forma de o Componentes web (JSP / Servlets / JSF)o Componentes de negocio (EJB)

Estos componentes ejecutan en un runtime denominado contenedor

Page 27: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 27

Servidores JEE

Page 28: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 28

Contenedores JEE

Los componentes web y de negocio, existen y ejecutan dentro de contenedores

Los componentes de aplicación JEE nunca interactúan directamente entre sío utilizan protocolos y métodos del contenedor para

interactuar entre ellos y con servicios de la plataforma

o este rol de intermediario le permite al contenedor inyectar servicios requeridos por los componentes

Page 29: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 29

Contenedores JEE

Un contenedor permite a los componentes interactuar con los servicios brindados por el servidor de aplicacioneso Seguridado Acceso a datos

o Transacciones

o Acceso a recursoso Comunicaciones

Page 30: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 30

Jakarta EE

1. Java Server Faces

2. Flex

3. Granite

4. AJAX

5. JAX-WS

6. WS*

7. jBPM

8. EJB3

9. Java Persistance API

10. Hibernate

11. PostgreSQL

https://jakarta.ee/

1 2 3 4

5 6

7 8

9 10

11

Page 31: Laboratorio de Integración de Sistemas

Taller de Sistemas de Información Geográficos Empresariales

Middleware

Page 32: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 32

Middleware es una capa de software distribuida, situada entre el sistema operativo y las aplicaciones, diseñado para manejar la heterogeneidad y complejidad inherente a los sistemas distribuidos

Middleware

Aplicación Distribuida Aplicación Distribuida

MIDDLEWARE API MIDDLEWARE API

Middleware Middleware

S.O. API

Sistema OperativoS.O. API

Sistema Operativo

RED

HO

ST

1

HO

ST

2

Page 33: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 33

El rol principal del middleware es facilitar la tarea de diseñar, programar, y administrar aplicaciones distribuidasProvee un ambiente de programación

distribuido simple, consistente e integrado

Middleware

Page 34: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 34

Evolución Middleware

Semantic Management of Middleware. Ramesh Jain. Amit Sheth. Springer 2006.

Page 35: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 35

Los MOMs proveen comunicación asincrónica a través de mensajes, utilizando colas de mensajes para su almacenamiento temporal

Message Oriented Middleware

G. Hohpe and B. Woolf, Enterprise Integration Patterns: Designing, Building, and

Deploying Messaging Solutions. Addison-Wesley Professional, October 2003.

Page 36: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 36

El principal objetivo de un MOM es transportar mensajes desde el equipo remitente al equipo receptor de una manera confiable

Algunos Patrones de Mensajeríao Point to point

o Request – Response

o Request – Callbacko Publish - Subscribe

Message Oriented Middleware

Page 37: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 37

Los servidores de aplicaciones proveen mecanismos para manejar toda o la mayoría de las interacciones entre los componentes de una aplicación distribuida

Proveen varias tecnologías de middleware (MOMs, etc) junto con el concepto de contenedor, que brinda un entorno de ejecución para los componentes de una aplicación

Application Servers

Page 38: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 38

En general se puede encontrar soporte para seguridad, transacciones, administración de aplicaciones y recursos, y balanceo de carga

Proveen una solución completa para la construcción e integración de aplicaciones empresariales

Application Servers

Page 39: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 39

Un Web Service es una aplicación de software identificada por una URI, cuyas interfaces y formas de acceso pueden ser definidas, descriptas y descubiertas como artefactos XML, y soporta la interacción directa con otros componentes de software utilizando mensajes basados en XML, intercambiados a través de protocolos basados en internethttp://www.w3.org/TR/ws-desc-reqs/#definitions

Web Services

Page 40: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 40

Primera Generación de WS

WSDL

Web Services

Description Language

(WSDL)

HTTP

SOAPSimple Object

Access Protocol

(SOAP)

Universal Description,

Discovery and Integration

(UDDI)

PublishFind

FTP, SMTP, etc.

Page 41: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 41

SOAP

Provee una forma estándar de estructurar mensajes utilizando XML

Define mecanismos para utilizar distintos protocolos de transporte para el envío de mensajes

Especifica un modelo de procesamiento que indica cómo se deben procesar los mensajes

Page 42: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 42

Mensaje SOAP

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>

...

</soap:Header>

<soap:Body>

...

<soap:Fault> ... </soap:Fault>

</soap:Body>

</soap:Envelope>

Page 43: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 43

WSDL

Lenguaje basado en XML que permite describir la interfaz y otras características de un Web Service

Un documento WSDL puede dividirse en dos partes:o descripción abstracta

o descripción concreta

Page 44: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 44

WSDL – Descripción Abstracta

La descripción abstracta describe de forma general la estructura de la interfaz del Web Service, que incluye operaciones, parámetros y tipos de datos abstractos

Los cuatro elementos XML que componen la descripción abstracta son:<wsdl:types>

<wsdl:message>

<wsdl:portType><wsdl:operation>

Page 45: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 45

WSDL – Descripción Concreta

La descripción concreta asocia a una descripción abstracta una dirección de red concreta, un protocolo de comunicación y estructuras de datos concretas

Los tres elementos XML que componen la descripción concreta son:<wsdl:binding>

<wsdl:service><wsdl:port>

Page 46: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 46

UDDI

Especificación que provee una forma estándar de publicar y descubrir Web Services

UDDI defineo un modelo de datos para almacenar información

de servicios y negocios

o interfaces para utilizar el registro UDDI Inquiry Publish

Page 47: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 47

Segunda Generación de WS

Surgen como forma de abordar problemáticas comunes en contextos empresariales

Se les conoce como WS-*Cada una aborda una problemática

específica:o Seguridad, Transacciones, Mensajería, etc

Page 49: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 49

WS-BPEL

Web Services Business Process Execution Language es un lenguaje para “orquestar” Web Services

WS-BPEL es un lenguaje de flujo basado en XML para la especificación formal de procesos de negocio y protocolos de interacción de negocio

Page 50: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 50

WS-BPEL

Page 51: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 51

Mensajería – WS-Addressing

WS-Addressing (WS-A) provee un mecanismo estándar para direccionar mensajes y Web Services

Define dos construcciones básicaso endpoint reference

Address, Reference Parameters, Metadata

o addressing properties To, From, ReplyTo, FaultTo,

Action, MessageID, RelatesTo

ReferenceParameters

Page 52: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 52

Metadata – WS-Policy

Define un modelo abstracto, independiente del dominio, que permite describir características, requerimientos y capacidades de un Web Service

Delega a otras especificaciones la definición de políticas particulares a un dominio.o WS-SecurityPolicyo WS-ReliableMessagingPolicy

Page 53: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 53

Transacciones en WS

Transacción Atómica: WS-AtomicTransactiono Propiedades ACIDo Corta Duración

o Ambiente seguro

o Diseñado principalmente para dar soporte a la interoperabilidad

Actividad de Negocio: WS-BusinessActivityo Larga Duracióno Se define un mecanismo de compensación

Page 54: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 54

Seguridad en WS

Alternativaso Seguridad a nivel de trasporte

oA través de HTTPS

oTecnología madura y existencia de expertos

o Seguridad a nivel de mensaje SOAPoWS-Security

Page 55: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 55

WS-Security

Define un conjunto de extensiones SOAP para brindar seguridad a nivel de mensaje

Se especifica cómo:o utilizar XML Signature en mensajes SOAPo utilizar XML Encryption en mensajes SOAP

o incluir Tokens de Seguridad en mensajes SOAP

Page 56: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 56

Especificaciones de WS

Actualmente la tecnología de Web Services está basada en un gran número de especificaciones que:o en general, son propuestas por la industria

Microsoft, IBM, Oracle, etc.

o son estandarizadas por distintas organizaciones W3C, OASIS, etc.

o son implementadas por distintos proveedores Apache, JBoss, Sun, Microsoft, IBM, Oracle, etc.

Page 58: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 58

Web Services REST

REST (REpresentational State Transfer)o Estilo arquitectónico para sistemas de hipermedia

distribuidos

o Todo es tratado como recursos que se identifican por URIs

o Toma ventaja de los verbos HTTP GET, POST, PUT, DELETE

Page 59: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 59

Web Services REST

La intención de una llamada a un RESTful Service, se obtiene del verbo HTTPo GET (recuperar), DELETE (eliminar)…

Verbo HTTP Significado en términos de CRUD (Create, Read, Update, Delete)

POST Crear un nuevo recurso a partir de los datos de la solicitud.

GET Leer un recurso.

PUT Actualizar un recurso a partir de los datos de la solicitud.

DELETE Eliminar un recurso.

Java Web Services: Up and Running, 1st Edition. Martin Kalin. O'Reilly. 2009

Page 60: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 60

Web Services REST

De este modo las URIs actúan como identificadores de recursos y los métodos HTTP como verbos que especifican operaciones sobre los mismos

Verbo HTTP / URI Significado en términos de CRUD

POST emps Crear un nuevo empleado a partir de los datos de la solicitud.

GET emps Leer una lista de todos los empleados.

GET emps?id=27 Leer el empleado 27.

PUT emps Actualizar la lista de empleados con los datos de la solicitud.

DELETE emps Eliminar la lista de empleados.

DELETE emps?id=27 Eliminar el empleado 27.

Java Web Services: Up and Running, 1st Edition. Martin Kalin. O'Reilly. 2009

Page 61: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 61

Web Services REST

Page 62: Laboratorio de Integración de Sistemas

Taller de Sistemas de Información Geográficos Empresariales

SOA y ESB

Page 63: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 63

Computación Orientada a Servicioso paradigma que basa el diseño de aplicaciones en

servicios para dar soporte al desarrollo ágil y flexible de aplicaciones distribuidas en ambientes heterogéneos

Un Servicio es una entidad de cómputo que expone una funcionalidad de negocio y es:o autónomao independiente de la plataforma

o puede ser descrita, publicada, descubierta y combinada

Orientación a Servicios

Page 64: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 64

Principioso Standardized Service Contracts

o Service Loose Coupling

o Service Abstractiono Service Reusabilityo Service Autonomy

o Service Statelessness

o Service Discoverabilityo Service Composability

Orientación a Servicios

http://www.soaprinciples.com/

Page 65: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 65

Arquitectura Orientada a Servicioso forma lógica de diseñar sistemas de software

para proveer servicios a través de interfaces públicas y descubribles

Arquitectura Orientada a Servicios

Page 66: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 66

Service Oriented Architecture

M. Papazoglou, Web Services: Principles and Technology, 1st ed. Prentice Hall, September 2007.

Page 67: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 67

Si bien los principios de SOA no dependen de una tecnología en particular, los Web Services se han convertido en el mecanismo preferido para su implementación

Actualmente, la forma más común de proveer una infraestructura de integración administrable, para Web Services y SOA, es a través de un ESB

Service Oriented Architecture

Page 68: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 68

Capa de Servicios

Microsoft Patterns & Practices. Microsoft Application Architecture Guide v2.0

Page 69: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 69

Enterprise Service Bus (ESB)

Un ESB es una plataforma de integración basada en estándares que combina mensajería, Web Services, transformación de datos, y ruteo inteligente, para conectar y coordinar de forma confiable la interacción de un gran número de aplicaciones a través de empresas con integridad transaccional

Page 70: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 7070

Enterprise Service Bus (ESB)

Page 71: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 71

Enterprise Service Bus (ESB)

En lugar de interactuar directamente las aplicaciones se comunican enviando mensajes a través del ESB

Los mensajes que fluyen a través del ESB son en general mensajes XML

71

Page 72: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 72

1

32

Enterprise Service Bus (ESB)

Page 73: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 73

Funcionalidades de ESB

Conectividad / AdaptadoresTransformación de MensajesRuteo IntermediarioFlujos de MediaciónMensajería AsincrónicaMonitoreo y AdministraciónOtras…

Page 74: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 74

Permiten satisfacer un requerimiento de integración común conocido como conversión de protocolo (protocol switch).

Este requerimiento se da cuando dos aplicaciones que necesitan integrarse no manejan un protocolo de comunicación común.

(Rademakers and Dirksen 2008)74

Conectividad y Adaptadores

Page 75: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 75

Los ESBs también incluyen capacidades de transformación de mensajes.

Estas capacidades posibilitan, por ejemplo, que aplicaciones que utilizan distintos formatos o modelos de datos puedan comunicarse.

(Rademakers and Dirksen 2008)75

Transformación de Mensajes

Page 76: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 76

El ruteo inteligente permite determinar dinámicamente el destino de un mensaje (seleccionando de varios destinos posibles)

Basado en contenido, contexto, balanceo de carga, etc

RUTEO

76

Ruteo Inteligente

Page 77: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 77

Los ESB incluyen funcionalidades de monitoreo que proveen valores para distintas métricaso tiempos de respuesta,o cantidad de mensajes procesados por servicio,o errores en la invocación de servicios, etc

Esto permite detectar:o cuellos de botella, o incumplimiento de requerimientos de calidad de

servicio, etc

77

Monitoreo y Administración

Page 78: Laboratorio de Integración de Sistemas

Taller de Sistemas de Información Geográficos Empresariales

Arquitectura y Tecnologías GIS

Page 79: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 79

En las últimas décadas el Software GIS ha pasado de ser un software “standalone” de escritorio, a tener la típica arquitectura en capas de las aplicaciones empresariales

Arquitectura y Tecnologías GIS

Page 80: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 80

GeoDBMS

Un GeoDBMS da soporte al almacenamiento y consulta de objetos geográficos.

El enfoque común es extender un DBMS con elementos geográficos:o Tiposo Funciones

o Metadatos

SELECT r.nombre, ST_LENGTH(r.geom) AS longitud

FROM Calles r WHERE r.codigo=223;

Page 81: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 81

GeoDBMS

Las extensiones geográficas a un DBMS deben cumplir con el estándar Open Geospatial Consortium (OGC) conocido como:o Simple Features Standard, SQL Option

Algunas extensiones SFS son:o Oracle Spatial

o PostGIS

o MySQL Spatial Extensionso ESRI ArcSDE

Page 82: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 82

Map Server

Un Servidor de Mapas es un componente de SW que generalmente se ejecuta sobre un Servidor Web o Servidor de Aplicaciones

Su objetivo principal es proveer a clientes de Internet mapas generados dinámicamente (a partir de datos vectoriales o raster)

Page 83: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 83

Map Server

La tendencia actual es que los servidores de mapas implementen estándares de Web Services geográficos (de la OGC):o Web Map Service (WMS)

• proveen mapas sólo lectura

o Web Feature Service (WFS)• acceso y manipulación de objetos

geográficos (protocolos basados en XML)

Page 84: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 84

Map Viewer

Un Map Viewer es una aplicación cliente que despliega un mapa en una interfaz de usuarioo en general son aplicaciones Web-based que

obtienen mapas desde Map Servers (ej. via WMS)

Ejemploso Google Maps

o OpenLayers

Page 85: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 85

Map Editor

Un Map Editor permite además crear mapas, modificar objetos, realizar geo-procesamiento avanzado

Son generalmente aplicaciones desktop pero hay alternativas Web-based

Se pueden comunicar con Map Servers (vía WMS o WFS) o con geo-databases (vía SQL)

Ejemplos: gvSIG, QGIS

Page 86: Laboratorio de Integración de Sistemas

Taller de Sistemas de Información Geográficos Empresariales

Alternativas de Integración

Page 87: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 87

Escenarios de Integración

Aplicación EmpresarialGIS

Page 88: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 88

Alternativas de Integración

Integración a nivel de Base de Datos Integración a nivel de Servicios Integración a nivel de Interfaz de Usuario

Page 89: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 89

Integración a nivel de BD

Page 90: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 90

Integración a nivel de BD

Utilizar un database-linko Es posible vía las capacidades de algunos DBMS

o productos de terceros (ej. dblink)

o Este mecanismo permite acceder a una BD externa a través de vistas

Utilizar mecanismos de ETLo Se deben implementar mecanismos para extraer

información del a BD empresarial yalmacenarla en la geo-DB

o Definir periodicidad de carga

Page 91: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 91

Integración a nivel de BD

¿database-link vs ETL? ¿es siempre posible este enfoque?

Page 92: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 92

Integración a nivel de Servicios

Los servicios geográficos tienen interfaces bien conocidas, por lo que invocarlos desde aplicaciones empresariales no presenta mayores desafíos

Page 93: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 93

Integración a nivel de Servicios

El principal desafío es proveer datos provenientes de aplicaciones de negocio a través de interfaces geográficas

La problemática se da porque:o Muchos clientes (ej. Map Viewers) están

diseñados para consumir sólo WS Geográficos

o Los Map Servers proveen poco soporte para consumir servicios externos (ej. WS SOAP)

¿Qué alternativas hay?

Page 94: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 94

Integración a nivel de Servicios

Un posible enfoque es desarrollar un componente que consuma ambos servicios, integre los datos y los provea a través de una interfaz geográfica

La obtención de datos yla integración es trasparente tanto para elcliente como para el Map Server

Page 95: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 95

Integración a nivel de Servicios

Una alternativa para implementar el componente de integración es aprovechar los mecanismos que brindan los ESBs

Page 96: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 96

Integración a nivel de Servicios

Otra posible problemática de integración es cómo utilizar un WS Geográfico en un proceso WS-BPEL

Habría que brindar una interfaz SOAP para el WS Geográficoo Para esto existe una recomendación del OGC

Se podría también utilizar los mecanismos de los ESBs para implementar esta conversión

Page 97: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 97

Integración a nivel de UI

Las organización están notando los beneficios de agregar mapas a sus aplicaciones existentes

Una posible alternativa es agregar un Map Viewer a la UI de las aplicaciones empresariales

Page 98: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 98

Escenarios de Integración

Page 99: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 99

Integración a nivel de UI

Dada la heterogeneidad tecnológica, muchas veces la mejor opción es utilizar un viewer basado en javascript (ej. OpenLayers)

Si una organización no tiene su propio dataset geográfico, podría utilizar mapas de propósito general (ej, google maps)

Page 100: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 100

Integración a nivel de UI

Otro posible escenario es enriquecer los datos brindado por un Map Viewer con datos de Negocio

En este caso, se puede utilizar la integración a nivel de servicios descripta previamente

Si esto no es posible, la integración se debe hacer a nivel del clienteo Qué problemáticas presenta esta solución?

Page 101: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 101

Tecnologías GIS Empresariales

Varias tecnologías empresariales están siendo extendidas para tener soporte geográfico

Algunos Ejemplos:o Soporte en BD (postgis, etc)o Hibernate Spatial

o GeoMajas

o GeoFaces

Page 102: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 102

Referencias

G. Hohpe and B. Woolf, Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley Professional, October 2003.

J. McGovern, O. Sims, A. Jain, and M. Little, Enterprise Service Oriented Architectures: Concepts, Challenges, Recommendations

D. Chappell, Enterprise Service Bus. O'Reilly Media, Inc., July 2004. M. Papazoglou, Web Services: Principles and Technology, 1st ed.

Prentice Hall, September 2007. G. Alonso, F. Casati, H. Kuno, and V. Machiraju, Web Services, 1st

ed. Springer, October 2003. M. P. Papazoglou, P. Traverso, S. Dustdar, and F. Leymann.

"Service-oriented computing: State of the art and research challenges", Computer, vol. 40, no. 11, pp. 38-45, 2007.

The SOA Source Book http://www.opengroup.org/soa/source-book/intro/

Page 103: Laboratorio de Integración de Sistemas

INCO - Facultad de Ingeniería – Montevideo, Uruguay 103

Referencias

Rienzi, B., Sosa, R., Foti, P., González, L.: Benefits and challenges of using geographic information systems to enhance social security services. (2010).

Bruno Riezi, Laura González: Towards an ESB-Based Enterprise Integration Platform for Geospatial Web Services. (2013).