Sunteți pe pagina 1din 48

Master Oficial

en Sistemas Telemticos e Informticos


Arquitecturas Orientadas
a Servicios (SOA)
TEMA III: Arquitecturas Orientadas a
Servicios
Tema 3
Concepto y Estndares
1
2
Una Arquitectura Orientada a Servicios
(Service-oriented Architecture - SOA)
proporciona mtodos, integracin, infraestructura
para desarrollar aplicaciones inter-operables
basadas en servicios (Web) y en procesos
de negocio.
Concepto y Ejemplos de SOA
Las piezas b Las piezas b sicas son los servicios sicas son los servicios
Servicio: funci Servicio: funci n en la red bien definida que consta de una n en la red bien definida que consta de una
interfaz procesable y cuya implementaci interfaz procesable y cuya implementaci n es n es
reemplazable reemplazable
Para buscar un servicio con el cual conectarse, se puede Para buscar un servicio con el cual conectarse, se puede
consultar a otro servicio bien conocido que contiene consultar a otro servicio bien conocido que contiene
interfaces interfaces
Los protocolos de acceso a los servicios usan protocolos Los protocolos de acceso a los servicios usan protocolos
abiertos y estandarizados (HTTP, TCP/IP) como abiertos y estandarizados (HTTP, TCP/IP) como
transporte (para servicios de Internet) transporte (para servicios de Internet)
Mejora el modelo cliente Mejora el modelo cliente- -servidor en sistemas distribuidos servidor en sistemas distribuidos
para facilitar la interoperabilidad para facilitar la interoperabilidad
Concepto y Ejemplos de SOA
3
Concepto y Ejemplos de SOA
4
WS-Security
WS-ReliableMessaging
WS-Coordination, WS-AtomicTransaction, WS-BusinessActivity
Source: [Ferguson]
Pila de servicios Web
Concepto y Ejemplos de SOA
5
Principios de diseo tcnico de SOA
Cada servicio implementa una funcin de negocio discreta
Los servicios y sus implementaciones deben ser reutilizables
Los servicios comparten un contrato formal: interfaz de servicio (SLA)
Los servicios estn poco acoplados entre ellos
Composicin: se pueden ensamblar servicios para obtener otros ms
complejos
Autnomos: 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 localizacin: funcionan independientemente de
quin y dnde los usan
Concepto y Ejemplos de SOA
6
Definicin 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 tecnologa de informacin en el que los datos,
lgica 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
Concepto y Ejemplos de SOA
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: distribucin de carga en servidores
Extensibilidad: aadir servicios adicionales
Adaptabilidad: diferentes configuraciones
Contabilidad
Facilidad de operacin y despliegue: automatizacin de operaciones
Concepto y Ejemplos de SOA
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 orquestacin o nivel de procesos de negocio: BPEL
Registro de servicios
Nivel de mensajera: ESB, soporte para mensajes
Gestin de servicios: polticas de carga, seguridad, rendimiento
Concepto y Ejemplos de SOA
9
Fuente: JavaWorld
SOA Genrico
Concepto y Ejemplos de SOA
10
Concepto y Ejemplos de SOA
11
De BPM y EA a SOAD
Los mtodos clsicos (BPM, EA, OOAD) no son suficientes para
modelar: Servicios,Flujos, Componentes realizando servicios.
BPM carece de semntica (no como BPEL).
EA clsicos (TOGAF) no proporcionan vista de procesos y/o servicios.
Concepto y Ejemplos de SOA
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 travs de plataformas.
Concepto y Ejemplos de SOA
13
Jerarqua y elementos SOAD
Servicios diferentes colaborando (orquestration).
SOAD proporciona procesos de negocio y notacin para dichos
procesos.
SOAD proporciona roles (arquitecto, analista).
SOAD proporciona principios y factores de calidad (flexibilidad, bajo
acoplamiento, stateless).
SOAD debe proporcionar servicios reutilizables.
Concepto y Ejemplos de SOA
14
Ejemplo de proceso de negocio (orden de trabajo en automocin)
SERVICIOS
FLUJO DE TRABAJO
Concepto y Ejemplos de SOA
15
SOMA (Service-oriented modeling and architecture)
El modelo conceptual de la figura define la interaccin entre 3
entidades: el proveedor de servicios, el consumidor del servicio y el
broker del servicio el cual mantiene su registro.
Concepto y Ejemplos de SOA
16
SOMA (Service-oriented modeling and architecture)
Los estilos arquitectnicos que definen una SOA se basan en bajo
acoplamiento, servicios centrados en aspectos de negocio, flexibilidad, y
separacin entre descripcin, implementacin y biding.
SOA es una arquitectura IT corporativa y escalable para soportar
recursos bajo demanda que proporcionen valor de negocio.
Concepto y Ejemplos de SOA
17
SOMA (Service-oriented modeling and architecture)
Arquitectura SOA en niveles para servicios compuestos y procesos de
negocio.
La relacin 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 comunicacin y la integracin de la arquitectura se realiza mediante
un Enterprise Service Bus (ESB) (Jazz.net, IBM)
Concepto y Ejemplos de SOA
18
SOMA (Service-oriented modeling and architecture)
Identificacin de servicios en componentes antiguos
Decisiones de diseo arquitectnicas en cada nivel de la SOA deben reflejar el
uso de servicios y su composicin.
Mayor funcionalidad para servicios compuestos y pequea funcionalidad para
servicios individuales.
SOA es ms estratgico y centrado en el negocio mientras que el uso de
servicios Web es ms tctico.
Concepto y Ejemplos de SOA
19
Mtodo SOMA (Service-oriented modeling and architecture)
Identificacin de servicios: Identificar servicios de negocio en reas funcionales,
subsistemas y procesos (top-down), mientras que la solucin bottom-up examina legacy
assets como potenciales servicios candidatos.
Clasificacin de servicios: Los servicios identificados se organizan en una jerarqua
para determinar servicios compuestos y en que nivel o capa acta cada servicio.
Asignacin de servicios: Que servicios van a que subsistema y a cada capa de la
arquitectura SOA.
Realizacin de servicios: Implementacin del servicio, wrapper de legacy, o
externalizacin
Concepto y Ejemplos de SOA
20
Arquitectura de integracin 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 implementacin, el ncleo 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 mtodos del protocolo HTTP para manipular los datos.
Servicios Web orientados a recursos mediante mtodos POST y GET entre otros.
Concepto y Ejemplos de SOA
21
Arquitectura de integracin 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 lgico.
JTS utiliza servicios Web RESTful y las interacciones se realizan mediante el API REST.
JIA permite a nico JTS tener mltiples servidores trabajando con clientes, donde cada
servidor es responsable de administrar sus propias URLs y responder a las peticiones de
los clientes.
Concepto y Ejemplos de SOA
22
Arquitectura de integracin de Jazz (JIA)
Un nico JTS puede consistir en uno o varios servidores que actan 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 aaden funcionalidad extra).
Concepto y Ejemplos de SOA
23
Caractersticas de un ESB
Comunicacin mediante mensajes sobre el cual se define una capa de
abstraccin para integrar y proporcionar servicios
Un ESB no es una SOA pero proporcionan caractersticas para
implementarla
Componente HTTP
Herramientas de control de flujo
BPEL (Business Process Execution Language)
Scripting
Herramientas de transformacin XML
XSLT (eXtensible Stylesheet Language Transformations)
Integracin con servidores J2EE
Concepto y Ejemplos de SOA
24
Integracin de elementos en SOA
Concepto y Ejemplos de SOA
25
ESB
Concepto y Ejemplos de SOA
26
SAP NetWeaver BPM: Configuracin SOA para invocar servicios Web
que se publican en un Service Registry y simplificar la configuracin 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
Middleware para SOA
32
Arquitecturas Cloud
Es un paradigma que permite ofrecer servicios de computacin en la red.
A diferencia del Grid computing, ms enfocado a compartir recursos,
Cloud computing comparte servicios y en los que los recursos hardware
se encuentran virtualizados.
La virtualizacin de recursos fsicos es uno de los puntos fuertes de la
filosofa Cloud para ofrecer stos bajo demanda.
Puede existir un pago por uso de servicios.
33
Arquitecturas Cloud
Tipos de Cloud (modelos de despliegue)
Cloud pblico: Un proveedor de servicios ofrece recursos sobre Internet
como por ejemplo aplicaciones y almacenamiento.
Cloud privado: Es una infraestructura Cloud administrada por un
organizacin pero los recursos pueden pertenecer a la propia organizacin
o externos.
Cloud comunitario: Comparten infraestructuras entre diferentes
organizaciones pertenecientes a una comunidad especfica y administradas
Internamente o por un tercero.
Cloud hbrido: Es una composicin de dos o ms Cloud de los tipos
anteriores que constituyen una entidad nica.
34
Arquitecturas Cloud
Capas en Cloud
35
Arquitecturas Cloud
Software para Cloud
36
Arquitecturas Cloud
SOCCA (Service-oriented Cloud Computing Architecture)
Capa 1
Capa 2
Capa 3
Capa 4
37
Arquitecturas Cloud
SCA: Service Component Architecture
SCA es un modelo de programacin para abstraer funciones de negocio como
si fueran componentes y utilizarlos para ensamblar soluciones de negocio.
Los componentes SCA ofrecen servicios y como interactan entre si.
Una aplicacin SCA se construye con uno o varios componentes.
Los componentes SCA se pueden programar en diferentes lenguajes.
SCA fomenta la prctica de SOA para crear aplicaciones Cloud.
Plataforma Apache Tuscany (OASIS Open SCA)
38
Arquitecturas Cloud
39
Arquitecturas Cloud
<composite name="ExampleComposite" ...>
<component name="Component1"> ... </component>
<component name="Component2"> ... </component>
<component name="Component3"> ... </component>
</composite>
El Service Component Definition Language (SCDL) es un fichero XML que
define una composicin SCA, a modo de fichero de configuracin para
describir los componentes y como se interrelacionan
40
Arquitecturas Cloud
Cada componente implementa una lgica que se expone como uno o ms servicios.
Un servicio (cheurn verde) ofrece una serie de operaciones que son accesibles por
el cliente.
Un componente puede usar servicios de otros componentes (cheurn 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 ledo por el componente desde el fichero SCDL.
Los servicios y las referencias comunican un componente SCA con otro software
(binding).
Componente SCA
Componente
SCA
Aplicacin
no SCA
41
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>
OSGi Alliance: http://www.osgi.org
Consorcio para la interoperabilidad de aplicaciones y servicios basados
en una plataforma de integracin de componentes.
OSGi (Open Services Gateway initiative) proporciona:
Especificaciones
Implementaciones de referencia
Suites para testing
Certificacin
La adopcin de plataformas basadas en componentes reduce el time-to-market
y los costes de desarrollo ya que permite la integracin de mdulos pre-construidos
y pre-testeados.
42
OSGi
OSGi Framework
El OSGi framework se divide en niveles
L0. Entorno de ejecucin: Especificacin en Java 2.
L1: Mdulos: Define las polticas de carga de clases
sobre Java. Aade modularizacin y facilita el despliegue
de sistemas.
L2: Ciclo de vida: Aade wrappers que pueden ser
instalados dinmicamente y manejar mdulos en runtime.
L3: Registro de servicios: Esta capa aade un registro
de servicios para proporcionar cooperacin entre los
wrappers en ejecucin.
Seguridad Java 2
43
OSGi
Servicios del OSGi Framework
Servicios estndar: 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 ms lenta que
las invocaciones directas en OSGi.
Servicios del framework: Proporcionan servicios para administracin y permisos,
gestin de paquetes, inicializacin y soporte para URL.
Servicios del sistema: Proporcionan funcionalidad horizontal necesaria en
cualquier sistema, como son: Logs, configuracin, gestin de dispositivos,
gestin de usuarios, componentes en ejecucin, despliegue, etc.
44
OSGi
Servicios de protocolos: Define un nmero 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 gestin de
dispositivos mviles y proporcionada por el Open Mobile Alliance (OMA).
Servicios miscelneos:
Wire admin service: Conecta diferentes servicios definidos en ficheros de conf.
XML parser service: compatible con JAXP
Initial provisioning
Foreign application access
Servicios del OSGi Framework
45
OSGi
Arquitectura OSGi
Bundles: Componentes implementados por desarrolladores
Services: Conecta los bundles dinmicamente 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 cdigo
Security: Soporta los aspectos de seguridad
Execution Environment: Define los mtodos y clases disponibles para
una plataforma especfica.
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
OSGi
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
Referencias

S-ar putea să vă placă și