Sei sulla pagina 1di 5

INGENIERIA DE SOFTWARE

ARQUITECTURA ORIENTADA A SERVICIOS


SOA





2. Introduccin

Las empresas necesitan poder interconectar los procesos, personas e informacin tanto con la
propia organizacin como -atravesando sus fronteras- con subsidiarias y socios comerciales. La falta
de integracin entre los componentes de IT sistemas, aplicaciones y datos- hace difcil obtener una
respuesta rpida y efectiva ante los cambios que afectan de forma natural a los negocios. La
inflexibilidad genera costes, reduce la capacidad de respuesta ante los clientes, compromete el
cumplimiento con las normativas legales y afecta negativamente a la productividad de los
empleados.
En suma, una deficiente integracin es uno de los problemas ms importantes a los que las
organizaciones deben hacer frente para mantener su competitividad y garantizar su crecimiento.
La Arquitectura Orientada a Servicios (SOA, Service Oriented Architecture) supone una estrategia
general de organizacin de los elementos de IT, de forma que una coleccin abigarrada de sistemas
distribuidos y aplicaciones complejas se pueda transformar en una red de recursos integrados,
simplificada y sumamente flexible. Un proyecto SOA bien ejecutado permite alinear los recursos de
IT de forma ms directa con los objetivos de negocio, ganando as un mayor grado de integracin
con clientes y proveedores, proporcionando una inteligencia de negocio ms precisa y ms
accesible con la cual se podrn adoptar mejores decisiones, y ayuda a las empresas a optimizar sus
procesos internos y sus flujos de informacin para mejorar la productividad individual. El resultado
neto es un aumento muy notable de la agilidad de la organizacin.

3. Objetivos

El presente trabajo pretende dar un conocimiento , tanto a nivel de concepto como de tecnologas
utilizadas, de las arquitecturas orientadas a servicio. La investigacin de estudios realizados y la
recopilacin de datos tienen como fin llegar a alcanzar los siguientes objetivos:

Conocer el porqu y las necesidades de la arquitectura orientada a servicio.
Entender el significado y conceptos bsicos de SOA.
Explicar la relacin y las diferencias entre SOA y los Web Services.
Identificar los elementos que forman parte de la arquitectura SOA y cmo llevar a cabo su
implementacin.


4. SOA: Arquitectura Orientada a Servicio

4.1 La aparicin de SOA

Los sistemas IT han evolucionado exponencialmente, lo cual se ha transmitido en un crecimiento de
la complejidad del software de las empresas. Las tecnologas tradicionales han alcanzado su lmite
de capacidad y en las empresas cada vez se pide una respuesta ms rpida a los requerimientos de
negocio, reducciones de costes y a la integracin de nuevos patrones y de nuevos clientes. Las
organizaciones de IT han buscado diferentes implementaciones antes de llegar a desarrollar SOA y
los problemas bsicos con lo que se han encontrado y con los que hemos de contar cuando
queramos hacer implementaciones de SOA son:

Complejidad: Los entornos son complejos. Las obligaciones de cumplir los presupuestos y la
eficiencia de operacin hacen necesario una reutilizacin de los sistemas, ms que un reemplazo de
stos

Programacin redundante y no reutilizable: las aplicaciones igual que las empresas se van
desarrollando a partir de fusiones y adquisiciones, lo cual hace que se tenga que trabajar con
aplicaciones redundantes o aplicaciones con funciones que no son fcilmente reutilizables

Interfaces mltiples: Si tenemos que interconectar N sistemas existentes necesitamos N(N-1)
interfaces para hacer posible esta realizacin, con lo que si queremos introducir un nuevo sistema
deber crear documentacin, testear y mantener 2N nuevos interfaces.

4.2 Servicio

El acrnimo SOA significa Arquitectura Orientada a Servicio. El concepto ms importante de SOA es
el de SERVICIO. Segn el CBDI (Component Based Development and Integration) Forum su
definicin sera: Vehculo a partir del cual las necesidades de los clientes son satisfechas de
acuerdo con el contrato negociado (implcito o explcito), el cual incluye el acuerdo de servicio
(Service Agreement), la funcin ofrecida etc. Otra definicin posible que podemos encontrar, es la
que nos da el W3C (World Wide Web Consortium): Componente capaz de realizar una tarea.

Se puede definir un servicio como un paquete funcional de software al cual se puede acceder a
travs de una infraestructura de red. Los servicios son autnomos, autocontenidos y uno no puede
tener control, ni autoridad sobre ellos. Un ejemplo de servicio puede ser, dentro de un entorno de
negocio, una transaccin simple (como obtener la cuota de stock, conseguir las direcciones de los
clientes), una transaccin de negocio ms compleja (calendario de entregas, cobertura de
ventas) o servicios de sistema (autenticacin de usuario, mensaje de conexin). Las funciones de
negocio desde el punto de vista de aplicacin no son funciones de sistema, y son atmicas (aunque
estn formadas por funciones ms pequeas, se considera como un paquete indivisible). Las
transacciones de negocio tienen que implementarse como una composicin de funciones de bajo
nivel transparentes al que las llama. Por ltimo los servicios de sistema son funciones genricas que
pueden ser abstradas fuera de la plataforma particular, como Microsoft Windows o Linux.
La riqueza funcional de las aplicaciones nos la da el nivel de granularidad. La granularidad es la
capacidad de descomponer las aplicaciones de negocio en servicios y tiene implicaciones prcticas,
no es slo un proceso de abstraccin. Los servicios pueden ser de baja granularidad o funciones
complejas de alta granularidad (fine-grained o coarse-grained respectivamente) [10].
Generalmente, los servicios son funciones coarse-grained ya que suelen ser el resultado de ejecutar
varias operaciones fine-grained; por ejemplo, abrir una cuenta est compuesto por identificar al
usuario y crear una cuenta nueva etc. Esta es la manera de desarrollar un entorno de aplicaciones
basadas en componentes, donde los servicios se definen como un conjunto de componentes
reusables que pueden ser usados para la construccin de nuevas aplicaciones, o para integrar los
recursos de software ya existentes.

4.3 Beneficios de adoptar SOA

SOA te facilita el cumplimiento de las normas en toda la empresa para los procesos de
negocio.
Reduce costos y tiempo en el desarrollo y mantenimiento de aplicaciones, incrementando
la calidad de los servicios y la productividad de la empresa, dado que todas las aplicaciones
pretenden satisfacer un servicio.
Las metodologas para SOA facilitan la integracin entre nuevas aplicaciones as como con
los sistemas existentes.
El desarrollo de aplicaciones ms productivas, flexibles, ms seguras y manejables para
gestionar procesos de negocio crticos a medida que evolucionan o cambian las
necesidades de negocio.

4.4 Estructura y caractersticas de los Servicios

Los servicios son una forma de encapsular componentes/programas reusables (building blocks)
para proveer funcionalidad a otros usuarios y a otros servicios. Cuando un servicio provee servicios
a otro, al servicio que invoca lo llamaremos consumidor, para distinguirlo del usuario. Con los
servicios se interacta mediante el intercambio de mensajes. Un servicio consiste de 3 elementos

Contrato: El uso de la funcionalidad que provee un servicio es gobernada por un contrato.
Especifica el propsito, la funcionalidad, las restricciones y el modo de uso del servicio. Es definido
por el negocio, en trminos del negocio.

Implementacin: La funcionalidad en s misma que provee el servicio, puede ser realizada
utilizando cualquier tecnologa.

Interfaces: Para acceder a la funcionalidad el consumidor necesita interfacear con el servicio.
Proveen la forma de acceder a la funcionalidad de acuerdo al contrato. Un servicio puede ofrecer
mltiples interfaces para permitir su consumo de diferentes maneras.

Las caractersticas funcionales de los servicios son:

Invocacin: sincrnica o asincrnica
Intercambio: uni-direccional, bi-direccional
Complejidad: referido a la granularidad
Las caractersticas no-funcionales:

Requerimientos de Volmenes
Calidad del Servicio
Tiempo de ejecucin del Servicio


5. Ventajas e inconvenientes de implementar SOA

5.1 Ventajas

El concepto bsico de SOA es el de proveer de un conjunto bsico de servicios a los que cada
aplicacin puede acceder para realizar su funcin. En esencia, la idea se refiere a escribir el cdigo
una vez para despus utilizarlo en cualquier sitio. En consecuencia, el resultado es menos cdigo,
menos costes y el incremento de estandarizaciones. El SQA (Software Quality Assurance) total
decrece desde que hay menos cdigo para documentar y la documentacin de empresa ya existe
para los servicios SOA. Adems, se deben compilar y debuggar menos lneas de cdigo lo cual
ahorra tiempo de programacin.



En el ejemplo vemos tres aplicaciones que deben autentificar a los usuarios antes de acceder al
sistema. En vez de tener cada aplicacin su propia autenticacin, todas usan el servicio de
autenticacin de la empresa. Esto tiene un beneficio inmediato y es que si se detecta cualquier tipo
de vulnerabilidad en el servicio de autenticacin, slo se habr de arreglar una vez, y no tres como
en el caso de tener cada aplicacin su propia autenticacin. Otro beneficio es la simplificacin de
manejo, por ejemplo en el caso de que un empleado abandone la empresa slo ha de darse de baja
una vez, ya que la base de datos es compartida para todas las aplicaciones que disponen del
servicio de autenticacin.

5.2 Inconvenientes

El primer inconveniente con el que nos encontramos al desplegar SOA es que las arquitecturas
existentes no estn diseadas para soportar SOA. Es por ello que una migracin hacia SOA necesita
una gran planificacin, reprogramacin y adquisiciones. Muchos negocios no tienen presupuesto
suficiente para hacer un cambio de este tipo teniendo una arquitectura funcional.

Otro inconveniente es que SOA no es tan escalable o tan fcil de conseguir como otras soluciones.
SOA depende de XML y comunicaciones de red que requieren anlisis y serializacin continua, lo
cual provoca que incremente el tiempo de transaccin y que se haya de invertir en hardware
adicional para llevar a cabo estas acciones.






Conclusiones

Las soluciones SOA permiten a organizaciones integracin de sus recursos de IT actuales y
acceder a ellos, para lograr que la organizacin funcione de manera ms eficiente.

La implementacin de SOA, que parte de una correcta comprensin de los problemas y
condicionantes del negocio, permite a las organizaciones alinear sus recursos de IT con las
necesidades de negocio.

SOA no implica el uso de tecnologas de servicio web, hay implementaciones SOA que no
utilizan servicios web. Sin embargo los servicios Web son la principal tecnologa para
habilitar y realizar SOA hoy en da.

Los beneficios por la Implementacin de SOA: mejorar la satisfaccin del cliente,
incrementar competitividades, mejoramiento de costos de TI, reduccin del tiempo cclico
de las empresas y aumento de las utilidades.

Potrebbero piacerti anche