Arquitecturas Orientadas a Servicios (SOA) TEMA III: Arquitecturas Orientadas a Servicios



Documentos relacionados
1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta

Servicios Web: Orquestación y coreografías

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Introducción a SOA (II) Huibert Aalbers Senior Certified Software IT Architect

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

MARCANDO LA DIFERENCIA

Service Oriented Architecture: Con Biztalk?

3. Horario laboral referencial: Lunes Viernes 8:00 a.m. a 6:00 p.m.

Integración al Servicio de la Empresa

Consultoría en Arquitectura Empresarial, SOA y de Software

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Service Oriented Architecture

Título: Optimización de Procesos de Negocio con SOA / BPM Nombre y Apellido: Mario Bolo bolo@ar.ibm.com Fecha: 15/08/2012

ARQUITECTURAS DE PROCESOS DE NEGOCIOS INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Introducción. - Gráfica tomada del Artículo de José David Parra

JAVA EE 5. Arquitectura, conceptos y ejemplos.


Desarrollo y servicios web

Capítulo 5. Cliente-Servidor.

Tecnologías Grid Estándares grid

Glosario Plataforma de Interoperabilidad Libre Orientada a Servicios para el Estado Venezolano


MACROPROCESO GESTIÓN TECNOLÓGICA

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Plataforma de Administración Electrónica de la Comunidad Autónoma de la Región de

ARQUITECTURA ORIENTADA A SERVICIOS (SOA) EN LA JUNTA DE ANDALUCÍA

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

Boletín de Asesoría Gerencial SOA: enfoque técnico orientado a procesos

Sistema de gestión de tareas y proyectos

Plataforma de Interoperabilidad Libre Orientada a Servicios para el Estado Venezolano

Sistemas de Información Introducción a los Sistemas de Información: El Modelo Cliente/Servidor

Ingeniería de Software en SOA

Consideraciones para implementaciones BPM y EDA

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

La aplicación práctica en el mundo empresarial de los estándares Web

Cloud Security Alliance. Recomendaciones de Seguridad para Usuarios

Una puerta abierta al futuro

Resumen General del Manual de Organización y Funciones

Documentación Técnica Conector

Management(BPM) Gestión de Proceso de negocio con BPM. Universidad Inca Garcilaso de la Vega

Centro de Interoperabilidad Semántica y Sistema de Gestión de Mensajes de Intercambio

E-Government con Web Services

FOREST BPMS. Arquitectura Forest BPMS. Metodologia de implementación. Fase I Instalación

Arquitectura de desarrollo Fomento.Net

WebSphere Message Broker como Entreprise Service Bus

Implantación Plataforma SOA. La experiencia del Principado de Asturias

Creando Arquitecturas

Servicios Web con Java EE

Servicios Web con Java EE

La Intranet Gubernamental como elemento clave de la Interoperabilidad

Alfresco permite su integración y personalización en sistemas de gestión documental para implementar funcionalidades específicas

Plataforma de expediente

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Sistemas Ubicuos 4. Descubrimiento de servicios

5.1 Introducción a Servicios Web

Taller de Sistemas de Información 3. Presentación SCA

GUÍA TÉCNICA. Desarrollo de Sistemas de Información la plataforma Business Intellingence Pentaho

LA IMPORTANCIA DE SOA

Ingeniería de Software II Segundo Cuatrimestre 2007

FAST-SE: Un Componente JBI para transacciones guiadas por SLAs 1

RBAC4WFSYS: Modelo de Acceso para Sistemas Workflow basado en RBAC

WebServices bajo SOA. SOAagenda team Chile

Proyecto CAT Centro Atención al Trabajador

DISEÑO DE COMPONENTES DE SOFTWARE *

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

1 EL SISTEMA R/3 DE SAP AG

Jorge Ferrer Director General España y Portugal Arquitecto Software Liferay Spain Symposium

OLIMPO Servidor Universal

Tecnologías de componentes y proceso de diseño de aplicaciones basado en componentes

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

IDeP. Service Oriented Network Architecture SONA. IDeP SA La Punta, San Luis, Agosto 2008

Ofrezca la nueva tendencia de innovación empresarial con un entorno de red abierta

SIGPRE Sistema de Gestión Presupuestaria

System Center. la plataforma para una gestión ágil de los entornos de TI IDG COMMUNICATIONS, S.A.

Mª Luisa Gutiérrez Acebrón División de Informática y Tecnologías de la Información Ministerio de Justicia

Notas técnicas Tips de SAP Netweaver ABAP JAVA

Estrategias de desarrollo de SW para Outsourcing

Cómo lograr una implementación exitosa de SOA?

Bechtle Solutions Servicios Profesionales

Windows Server 2012: Infraestructura de Escritorio Virtual

Tema 1. Conceptos fundamentales de los Sistemas Operativos

RODRIGO TAPIA SANTIS com) has a. non-transferable license to use this Student Guide

Servicios Web. Capítulo 5: Introducción a los Servicios Web. Pedro Álvarez alvaper@unizar.es José Ángel Bañares banares@unizar.es

Versiones Fortimax. Versión SAAS

ESB. Norberto Fernández Departamento de Ingeniería Telemática Tecnologías de Distribución de Contenidos - UC3M 1

Capítulo 7: Introducción a la dinámica de servicios Web

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

XV Conferencia Colombiana de Usuarios Esri Bogotá, Agosto de 2013

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

UNIVERSIDAD DE SANTANDER UDES

SISTEMAS DE INFORMACIÓN III TEORÍA

BPM en la práctica Transitando del BPA al BPM con una metodología probada. Diego Karbuski - Diciembre 2012

F A B R I C I O M U Ñ O Z S. T E N I E N T E T É C N I C O D E A V I A C I Ó N

MÓDULO 1: FUNDAMENTOS DE BPM, GOBIERNO Y ORGANIZACIÓN POR PROCESOS

Universidad Nacional Autónoma de México Dirección de Sistemas Dirección General de Personal

Transcripción:

Master Oficial en Sistemas Telemáticos e Informáticos Arquitecturas Orientadas a Servicios (SOA) TEMA III: Arquitecturas Orientadas a Servicios Tema 3 Concepto y Estándares 1

Una Arquitectura Orientada a Servicios ( Service-oriented Architecture - SOA) proporciona métodos, integración, infraestructura para desarrollar aplicaciones inter-operables basadas en servicios (Web) y en procesos de negocio. 2

Las piezas básicas b son los servicios Servicio: función n en la red bien definida que consta de una interfaz procesable y cuya implementación n es reemplazable Para buscar un servicio con el cual conectarse, se puede consultar a otro servicio bien conocido que contiene interfaces Los protocolos de acceso a los servicios usan protocolos abiertos y estandarizados (HTTP, TCP/IP) como transporte (para servicios de Internet) Mejora el modelo cliente-servidor en sistemas distribuidos para facilitar la interoperabilidad 3

4

Pila de servicios Web Source: [Ferguson] WS-Security WS-ReliableMessaging WS-Coordination, WS-AtomicTransaction, WS-BusinessActivity 5

Principios de diseño técnico de SOA Cada servicio implementa una función de negocio discreta Los servicios y sus implementaciones deben ser reutilizables Los servicios comparten un contrato formal: interfaz de servicio (SLA) Los servicios están poco acoplados entre ellos Composición: se pueden ensamblar servicios para obtener otros más complejos Autónomos: cada servicio debe ser capaz de funcionar de forma independiente Sin estado: el uso de un servicio no debe depender de usos previos Transparentes de localización: funcionan independientemente de quién y dónde los usan 6

Definición de Arquitectura Orientada a Servicios Entorno de aplicaciones capaz de descomponer aplicaciones comunes de negocio y dividirlas en funciones individuales y procesos servicios. SOA permite construir, desplegar e integrar estos servicios independientemente de las aplicaciones y plataformas sobre las que se ejecutan. IBM Enfoque de organizar la tecnología de información en el que los datos, lógica y recursos de infraestructura se acceden mediante mensajes entre interfaces de red. MS Conjunto de componentes que pueden ser invocados, cuyos descripciones de interfaces pueden publicarse y descubrirse. W3C 7

Atributos de calidad para SOA Interoperabilidad: Web-Services Interoperability Organization WS-I Fiabilidad: WS-Reliability, WS-ReliableMessaging Disponibilidad: Service Level Agreement (SLA) Usabilidad Seguridad: WS-Trust, WS-Federation Rendimiento Escalabilidad: distribución de carga en servidores Extensibilidad: añadir servicios adicionales Adaptabilidad: diferentes configuraciones Contabilidad Facilidad de operación y despliegue: automatización de operaciones 8

Arquitectura corporativa SOA Nivel de infraestructura de servicios: funciones de uso general Nivel de servicios de negocio: workflow Composiciones de servicios: tareas de negocio en pasos simples Nivel de orquestación o nivel de procesos de negocio: BPEL Registro de servicios Nivel de mensajería: ESB, soporte para mensajes Gestión de servicios: políticas de carga, seguridad, rendimiento 9

SOA Genérico Fuente: JavaWorld 10

11

De BPM y EA a SOAD Los métodos clásicos (BPM, EA, OOAD) no son suficientes para modelar: Servicios,Flujos, Componentes realizando servicios. BPM carece de semántica (no como BPEL). EA clásicos (TOGAF) no proporcionan vista de procesos y/o servicios. 12

OOAD versus SOAD El nivel de granularidad es distinto en OOAD (nivel de clase) y SOAD (nivel de servicio). La herencia OO crea dependencias muy fuertes comparadas con el bajo acoplamiento de los servicios Web. No hay soporte para herencia a través de plataformas. 13

Jerarquía y elementos SOAD Servicios diferentes colaborando (orquestration). SOAD proporciona procesos de negocio y notación para dichos procesos. SOAD proporciona roles (arquitecto, analista). SOAD proporciona principios y factores de calidad (flexibilidad, bajo acoplamiento, stateless). SOAD debe proporcionar servicios reutilizables. 14

Ejemplo de proceso de negocio (orden de trabajo en automoción) FLUJO DE TRABAJO SERVICIOS 15

SOMA (Service-oriented modeling and architecture) El modelo conceptual de la figura define la interacción entre 3 entidades: el proveedor de servicios, el consumidor del servicio y el broker del servicio el cual mantiene su registro. 16

SOMA (Service-oriented modeling and architecture) Los estilos arquitectónicos que definen una SOA se basan en bajo acoplamiento, servicios centrados en aspectos de negocio, flexibilidad, y separación entre descripción, implementación y biding. SOA es una arquitectura IT corporativa y escalable para soportar recursos bajo demanda que proporcionen valor de negocio. 17

SOMA (Service-oriented modeling and architecture) Arquitectura SOA en niveles para servicios compuestos y procesos de negocio. La relación entre servicios y componentes es tal que los componentes de negocio de grano grueso hacen que los servicios sean responsable de proporcionar tal funcionalidad y de mantener la calidad del servicio. La comunicación y la integración de la arquitectura se realiza mediante un Enterprise Service Bus (ESB) (Jazz.net, IBM) 18

SOMA (Service-oriented modeling and architecture) Identificación de servicios en componentes antiguos Decisiones de diseño arquitectónicas en cada nivel de la SOA deben reflejar el uso de servicios y su composición. Mayor funcionalidad para servicios compuestos y pequeña funcionalidad para servicios individuales. SOA es más estratégico y centrado en el negocio mientras que el uso de servicios Web es más táctico. 19

Método SOMA (Service-oriented modeling and architecture) Identificación de servicios: Identificar servicios de negocio en áreas funcionales, subsistemas y procesos (top-down), mientras que la solución bottom-up examina legacy assets como potenciales servicios candidatos. Clasificación de servicios: Los servicios identificados se organizan en una jerarquía para determinar servicios compuestos y en que nivel o capa actúa cada servicio. Asignación de servicios: Que servicios van a que subsistema y a cada capa de la arquitectura SOA. Realización de servicios: Implementación del servicio, wrapper de legacy, o externalización 20

Arquitectura de integración de Jazz (JIA) JIA define un conjunto de servicios denominados Jazz Foundation Services (JFS), herramientas para utilizarlos y para crear servicios propios y utilizando interfaz RESTful. JIA es una arquitectura de referencia, un API, servicios comunes y herramientas para componer elementos. A nivel de implementación, el núcleo de JIA es el Jazz Team Server (JST) el cual implementa los JFS descritos en JIA. Herramientas para exponer datos y servicios. Un API REST que proporciona: URLs estables para los recursos de datos, representaciones documentadas de los recursos de datos, un protocolo y operaciones basados en métodos del protocolo HTTP para manipular los datos. Servicios Web orientados a recursos mediante métodos POST y GET entre otros. 21

Arquitectura de integración de Jazz (JIA) Cada Jazz Team Server proporciona Foundation Services que permiten a un conjunto de herramientas trabajar de forma conjunta como si fueran un único servidor lógico. JTS utiliza servicios Web RESTful y las interacciones se realizan mediante el API REST. JIA permite a único JTS tener múltiples servidores trabajando con clientes, donde cada servidor es responsable de administrar sus propias URLs y responder a las peticiones de los clientes. 22

Arquitectura de integración de Jazz (JIA) Un único JTS puede consistir en uno o varios servidores que actúan de manera conjunta. Los JFS suelen alojarse en un único servidor. Las extensiones se suelen implementar como aplicaciones Web (ficheros WAR empaquetados) y posteriormente desplegados. Algunas extensiones JTS pueden requerir su propio servidor de manera separada (herramientas de Rational que añaden funcionalidad extra). 23

Características de un ESB Comunicación mediante mensajes sobre el cual se define una capa de abstracción para integrar y proporcionar servicios Un ESB no es una SOA pero proporcionan características para implementarla Componente HTTP Herramientas de control de flujo BPEL (Business Process Execution Language) Scripting Herramientas de transformación XML XSLT (extensible Stylesheet Language Transformations) Integración con servidores J2EE 24

Integración de elementos en SOA 25

ESB 26

Middleware para SOA SAP NetWeaver BPM: Configuración SOA para invocar servicios Web que se publican en un Service Registry y simplificar la configuración y uso de WS. Los WS se importan dentro del SAP NetWear Developer Studio antes de ser registrados. 27

Middleware para SOA Ejemplo con SAP NetWeaver BPM 28

Middleware para SOA Oracle/SOA Service Oriented Architecture Application Server Enterprise (BPEL Process Manager, Business Activity Monitoring, XML Publisher, Service Registry, SOA Suite for Oracle Middleware) ORACLE SOA Suite Web Center (Oracle Web Logic Server, soporte BPEL for long-running processes, Capa intermedia con Oracle B2B, XML, Enterprise Service Bus, etc.) 29

Middleware para SOA ORACLE Composite Editor de un proyecto SOA 30

Middleware para SOA IBM WebSphere Application Server Soporte para: Java 2 EE 5 Servicios Web Web 2.0 BPEL WS-Security Enterprise Architect kit para SOA Enterprise service Bus para virtualizar servicios Conectividad a servicios de terceros Interoperabilidad con SOAP 31

Arquitecturas Cloud Es un paradigma que permite ofrecer servicios de computación en la red. A diferencia del Grid computing, más enfocado a compartir recursos, Cloud computing comparte servicios y en los que los recursos hardware se encuentran virtualizados. La virtualización de recursos físicos es uno de los puntos fuertes de la filosofía Cloud para ofrecer éstos bajo demanda. Puede existir un pago por uso de servicios. 32

Arquitecturas Cloud Tipos de Cloud (modelos de despliegue) Cloud público: Un proveedor de servicios ofrece recursos sobre Internet como por ejemplo aplicaciones y almacenamiento. Cloud privado: Es una infraestructura Cloud administrada por un organización pero los recursos pueden pertenecer a la propia organización o externos. Cloud comunitario: Comparten infraestructuras entre diferentes organizaciones pertenecientes a una comunidad específica y administradas Internamente o por un tercero. Cloud híbrido: Es una composición de dos o más Cloud de los tipos anteriores que constituyen una entidad única. 33

Arquitecturas Cloud Capas en Cloud 34

Arquitecturas Cloud Software para Cloud 35

Arquitecturas Cloud Capa 4 Capa 3 Capa 2 Capa 1 SOCCA (Service-oriented Cloud Computing Architecture) 36

Arquitecturas Cloud SCA: Service Component Architecture SCA es un modelo de programación para abstraer funciones de negocio como si fueran componentes y utilizarlos para ensamblar soluciones de negocio. Los componentes SCA ofrecen servicios y como interactúan entre si. Una aplicación SCA se construye con uno o varios componentes. Los componentes SCA se pueden programar en diferentes lenguajes. SCA fomenta la práctica de SOA para crear aplicaciones Cloud. Plataforma Apache Tuscany (OASIS Open SCA) 37

Arquitecturas Cloud 38

Arquitecturas Cloud El Service Component Definition Language (SCDL) es un fichero XML que define una composición SCA, a modo de fichero de configuración para describir los componentes y como se interrelacionan <composite name="examplecomposite"...> <component name="component1">... </component> <component name="component2">... </component> <component name="component3">... </component> </composite> 39

Arquitecturas Cloud Cada componente implementa una lógica que se expone como uno o más servicios. Un servicio (cheurón verde) ofrece una serie de operaciones que son accesibles por el cliente. Un componente puede usar servicios de otros componentes (cheurón morado) que pertenecen a su dominio o a otro y se denominan referencias. Una referencia es una interfaz a operaciones que el componente necesita. Un componente puede definir una o varias propiedades (cuadrado amarillo) que contienen un valor que debe ser leído por el componente desde el fichero SCDL. Los servicios y las referencias comunican un componente SCA con otro software (binding). Componente SCA Componente SCA Aplicación no SCA 40

Arquitecturas Cloud <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetnamespace="http://helloworld" xmlns:hw="http://helloworld" name="helloworldws"> <component name="helloworldservicecomponent"> <implementation.java class="helloworld.helloworldimpl" /> <reference name="compo1service" target="componentone" /> <reference name="compo2service" target="componenttwo" /> <service name="helloworldservice"> <interface.wsdl interface="http://helloworld#wsdl.interface(helloworld)" /> <binding.ws uri="http://localhost:8085/helloworldservice"/> </service> </component> <component name="componentone"> <implementation.java class="helloworld.compo1impl"/> </component> <component name="componenttwo"> <implementation.java class="helloworld.compo2impl"/> </component> </composite> 41

OSGi OSGi Alliance: http://www.osgi.org Consorcio para la interoperabilidad de aplicaciones y servicios basados en una plataforma de integración de componentes. OSGi (Open Services Gateway initiative) proporciona: Especificaciones Implementaciones de referencia Suites para testing Certificación La adopción de plataformas basadas en componentes reduce el time-to-market y los costes de desarrollo ya que permite la integración de módulos pre-construidos y pre-testeados. 42

OSGi OSGi Framework El OSGi framework se divide en niveles L0. Entorno de ejecución: Especificación en Java 2. L1: Módulos: Define las políticas de carga de clases sobre Java. Añade modularización y facilita el despliegue de sistemas. Seguridad Java 2 L2: Ciclo de vida: Añade wrappers que pueden ser instalados dinámicamente y manejar módulos en runtime. L3: Registro de servicios: Esta capa añade un registro de servicios para proporcionar cooperación entre los wrappers en ejecución. 43

OSGi Servicios del OSGi Framework Servicios estándar: Definidos encima del Framework OSGi Alliance soporta diversos servicios que se ofrecen mediante interfaces Java. La interfaz se puede describir con los wrappers ( bundles ) y registrar con el Service Registry. Este concepto es similar a las arquitecturas SOA, pero la diferencia principal es que los servicios Web requieren una capa de transporte que suele ser más lenta que las invocaciones directas en OSGi. Servicios del framework: Proporcionan servicios para administración y permisos, gestión de paquetes, inicialización y soporte para URL. Servicios del sistema: Proporcionan funcionalidad horizontal necesaria en cualquier sistema, como son: Logs, configuración, gestión de dispositivos, gestión de usuarios, componentes en ejecución, despliegue, etc. 44

OSGi Servicios del OSGi Framework Servicios de protocolos: Define un número de servicios que mapean a protocolos externos al OSGi service, como son: HTTP, Universal plug and play (UPnP) y DMT admin (Device Management Tree) para especificar la gestión de dispositivos móviles y proporcionada por el Open Mobile Alliance (OMA). Servicios misceláneos: Wire admin service: Conecta diferentes servicios definidos en ficheros de conf. XML parser service: compatible con JAXP Initial provisioning Foreign application access 45

OSGi Arquitectura OSGi Bundles: Componentes implementados por desarrolladores Services: Conecta los bundles dinámicamente y ofrece un modelo publish-find-bind para plain old Java objects (POJO) Life-Cycle: API para instalar y actualizar bundles Modules: Define como un bundle importa y exporta código Security: Soporta los aspectos de seguridad Execution Environment: Define los métodos y clases disponibles para una plataforma específica. 46

OSGi Software para OSGi Apache Felix (Implementa la plataforma de servicios OSGi R44) http://felix.apache.org/site/index.html Eclipse Equinox: http://www.eclipse.org/equinox/ Knopflerfish OSGi (Plataforma OSS): http://www.knopflerfish.org/ AQute Snippets (Snippets: ejemplos de codigo OSGi): http://www.aqute.biz/snippets/homepage 47

Referencias http://en.wikipedia.org/wiki/service-oriented_architecture http://www.soapatterns.org/ http://www.ibm.com/developerworks/library/ar-archtemp/ http://www.ibm.com/developerworks/library/ws-soa-design1/ http://www.bpmi.org/ http://www.opengroup.org/architecture/togaf/ http://www.ibm.com/developerworks/webservices/library/ws-soad1/ http://www.webservices.org/ http://jazz.net/about/about-jazz-architecture.jsp http://es.wikipedia.org/wiki/java_business_integration#implementaciones_jbi http://www.osgi.org/about/howosgi Web Services Architecture http://www.w3.org/tr/2002/wd-ws-arch-20021114/ NexOF-RA http://www.nexof-ra.eu/ Cloud http://www.keithpij.com/home/tabid/36/entryid/27/default.aspx