UN ENFOQUE TEÓRICO E INTUITIVO A LA ARQUITECTURA ORIENTADA A SERVICIOS (SOA)



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

Una puerta abierta al futuro

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

Capítulo 5. Cliente-Servidor.

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

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

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

Service Oriented Architecture


Las Relaciones Públicas en el Marketing social

Service Oriented Architecture: Con Biztalk?

RBAC4WFSYS: Modelo de Acceso para Sistemas Workflow basado en RBAC

Capitulo I. Introducción

Ingeniería de Software en SOA

Diseño orientado a los objetos

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

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

Procesos Críticos en el Desarrollo de Software

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

Circular de Paquetes

SMSPymeX: SISTEMA AUTOMATIZADO DE RECEPCIÓN DE PEDIDOS MEDIANTE MENSAJES DE TEXTO SMS

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

El Software. Es lo que se conoce como el ciclo de vida del software.

ARQUITECTURAS DE SOFTWARE ORIENTADAS A SERVICIOS

e-commerce vs. e-business

Manual de Referencia. Apertura

Workflows? Sí, cuántos quiere?

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

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

Patrones de software y refactorización de código

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Infraestructura Tecnológica. Sesión 12: Niveles de confiabilidad

OBJETIVOS GENERALES DE LA EMPRESA

Capitulo III. Diseño del Sistema.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

IDEA DE NEGOCIO EDUGER LOGISTIC GERMAN EDUARDO BALSERO MORALES PROFESOR: GERARDO ANDRES ARCOS CELIS

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

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

UNIVERSIDAD DR. JOSE MATIAS DELGADO Facultad de Economía, Empresas y Negocios

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP

Ventajas del software del SIGOB para las instituciones

pymegnu v2.0 PRESENTACIÓN DE PRODUCTOS

Orientación acerca de los requisitos de documentación de la Norma ISO 9001:2000

Pag. 1

ELEMENTOS PARA TRANSACCIONES BAJO EL

Educación y capacitación virtual, algo más que una moda

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

Soporte Técnico de Software HP

CAPÍTULO 2 IMPORTANCIA DE LA ASIGNATURA OUTSOURCING EN TECNOLOGÍAS DE INFORMACIÓN

Introducción a las redes de computadores

Capítulo 2. Metodologías de selección de personal

2 EL DOCUMENTO DE ESPECIFICACIONES

Bechtle Solutions Servicios Profesionales

Trabajo lean (1): A que podemos llamar trabajo lean?

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Administración por Procesos contra Funciones

1.- INTRODUCCIÓN 2.- PARÁMETROS

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

Aproximación práctica a ITIL. Proyecto VeredaCS. F r00

Práctica 5. Curso

M.T.I. Arturo López Saldiña

CONCLUISIONES Y RECOMENDACIONES

El reto de las nuevas fuentes de información

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

Visión General de GXportal. Última actualización: 2009

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

CONCLUSIONES. De la información total que acabamos de facilitar al lector podemos realizar el siguiente resumen:

SOLUCIÓN HOSPEDADA. Introducción a los modelos de asociación de partners de Microsoft Dynamics CRM

FASCÍCULO. Decidir con inteligencia. Este es el momento.

ARC 101 Architecture Overview Diagram

Traducción del. Our ref:

Universidad de Colima Facultad de Ingeniería Mecánica y Eléctrica. Base de Datos I. Maestra: Martha E. Evangelista Salazar

Metodologías de diseño de hardware

Plan de estudios Maestría en Sistemas de Información y Tecnologías de Gestión de Datos

Marco Normativo de IT

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Comunicación: Herramientas Informáticas de Apoyo a la Educación: Experiencias. Autor: Ing. Hernán Mariño hernanmarino@uca.edu.ar

Interoperabilidad de Fieldbus

Accesibilidad web GUÍA FUNCIONAL

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Elementos requeridos para crearlos (ejemplo: el compilador)

CAPITULO I. Introducción. En la actualidad, las empresas están tomando un papel activo en cuanto al uso de sistemas y

Unidad 1. Fundamentos en Gestión de Riesgos

1 EL SISTEMA R/3 DE SAP AG

CRM es una estrategia de negocios centrada en el cliente no es un software

Control del Stock, aprovisionamiento y distribución a tiendas.

Nuevas Tendencias de Software y Creación de empresas.

CMMI (Capability Maturity Model Integrated)

CAPÍTULO 3 Servidor de Modelo de Usuario

Elección de un Sistema de Remuneraciones y Recursos Humanos. Según su modo de operar.

0. Introducción Antecedentes

II. Relación con Terceros

SÍNTESIS Y PERSPECTIVAS

INTRODUCCION AL DESARROLLO DE SISTEMAS DE INFORMACION

Buenas prácticas de manejo, pensando en la exportación. Fuente: Reinaldo Cubillos Veterinario. Máster en Sanidad y Producción Porcina.

El ABC del ERP. (Christopher Koch)

Guía de uso del Cloud Datacenter de acens

GUIA SOBRE LOS REQUISITOS DE LA DOCUMENTACION DE ISO 9000:2000

Transcripción:

UN ENFOQUE TEÓRICO E INTUITIVO A LA ARQUITECTURA ORIENTADA A SERVICIOS (SOA) Julián Astorga Campos Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática, San José, Costa Rica julianastorga@gmail.com Juan Luis Quirós Venegas Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática, San José, Costa Rica jlquiros@gmail.com Abstract SOA is a paradigm which enables us to design and to build systems which will have more flexibility, scalability and will be reusable. In a SOA environment service producers offer their services to potential consumers which will have access to them in a very standardized way. To reach a better understanding of this interaction we will represent the communication between the key elements of SOA using service automatons. Futhermore, a short reference to Web Services and SOA s is going to be made, also the reasons that make us to think about why SOA is the right solution under specific conditions. Keywords: SOA, services, software architecture, service automatons. Resumen SOA es un paradigma que permite diseñar y construir sistemas que serán flexibles, escalables y reutilizables. En un ambiente SOA, los productores de servicios hacen disponibles sus recursos a los consumidores como servicios independientes a los que tienen acceso de un modo estandarizado. Para lograr entender esa interacción, se representa la interacción entre los distintos elementos constitutivos de SOA mediante autómatas. Además, se hace referencia a la relación entre los Web Services y SOA s, así como a las razones que nos obligan a reflexionar si es correcto este enfoque bajo ciertas condiciones. Palabras clave: SOA, servicios, arquitectura de software, autómatas de servicio. 1. Introducción Indudablemente, existen cambios en el tiempo y estas variaciones siempre están ligadas con actos o acciones que nos obligan a analizarlos y a descifrarlos, con el fin de lograr un mejor entendimiento de nuestro entorno actual, así como intentar sacar provecho del mismo. Actualmente, ante la vorágine de cambios que embarga a nuestro mundo, podríamos afirmar que estamos viviendo un renacimiento del darwinismo: Ya no es el espécimen más fuerte quien

alcanza la supervivencia, ni tampoco el más inteligente, sino el espécimen que es más receptivo al cambio [1]; afirmación tácitamente aceptada por el mundo económico y tecnológico. En otras palabras, es la flexibilidad el factor clave de nuestra sociedad. Mas, los procesos y los sistemas también van evolucionando, siendo una característica inherente de los mismos que ese crecimiento esté unido a un incremento de la complejidad de ellos. Además, hemos llegado a un punto, en el cual las visiones antiguas para resolver estos problemas de estabilidad y evolución de los sistemas dejan de ser efectivas, dejan de brindar esa armonía resultante de la centralización de los paquetes de software; consecuentemente, un nuevo enfoque debe emerger como solución a estos límites. Indudablemente, ese nuevo paradigma reside en aceptar la heterogeneidad de las soluciones y las necesidades informáticas y es, desde esa perspectiva, donde emerge la Arquitectura Orientada a Servicios (SOA). Este enfoque no solo brinda una respuesta que ayuda a los sistemas a mantener su escalabilidad y flexibilidad mientras evolucionan, sino que también brinda la satisfacción de alcanzar un facilitador que una los cambios en tecnologías de la información y los cambios en los procesos de múltiples organizaciones. Por lo tanto, podríamos definir SOA no como un objeto a comprar, mas sí una nueva forma de pensamiento que beneficia la arquitectura y diseño de sistemas. En consecuencia, en este artículo, se pretende mostrar que los conceptos y características asociadas a SOA no son difíciles de comprender, esto debido a que se opta por un enfoque intuitivo o informal para abordar el tópico en cuestión. Igualmente, en las próximas secciones se pretende brindar una definición de SOA, que contenga sus respectivas características básicas. Asimismo, se presenta una simplificación del enfoque basado en service automaton 1, para demostrar la funcionalidad de un service registry, la asociación de los SOA s con los Web Services y esclarecer cuando no es apto optar por un SOA. 2. Fundamentos de SOA Primeramente, podemos decir que SOA se encuentra en todas partes, por más que esta proposición suene un poco abstracta [6]. Si tomamos una máquina dispensadora de bebidas, la cual, si se le ingresa una moneda, dispensa una bebida, ya sea té o café (representados por los símbolos café C y té T ). Se podría tomar que la máquina es el service provider, el cliente es el service consumer y la empresa que instala las máquinas es el service broker, ya que instala la máquina ( o sea sabe cual servicio se debe ofrecer al cliente ) con la capacidad de leer las monedas de un país específico. Según Gebhardt[3], la arquitectura de software describe la estructura de un sistema, cuyo núcleo está compuesto de componentes, que gozan de características externamente visibles y por capacidades especiales para comunicarse con otros componentes. Sin embargo, todo anhelo de toda filosofía de construcción de sistemas informáticos radica en el hecho de minimizar las dependencias entre los componentes. Por lo tanto, podríamos afirmar que SOA es un modelo de componentes, cuyas funcionalidades están implementadas como servicios reutilizables, independientes y con un grado mínimo de acople. Estos servicios serán invocados mediante interfaces previamente definidas, que deben ser independientes del hardware, del sistema operativo y del lenguaje de programación. Asimismo, la información es habilitada por medio de componentes atómicos e independientes, cuya comunicación se da gracias a mecanismos estandarizados. Además, los elementos intrínsecos de todo SOA se pueden listar de la siguiente forma: Fig. 1: Triángulo de la Arquitectura Orientada a Servicios 1 Según los autores, una traducción del término anglosajón sería autómata de servicio. 2

- Service Requestor Consumidor de Servicio La función que consume el resultado del servicio provisto por un proveedor. - Service Provider Proveedor de Servicio La función que brinda un servicio en respuesta a una llamada o petición desde un consumidor. - Service Broker.- Registro de Servicios El consumo y registro de servicios es facilitado mediante un registro de servicios, donde los servicios son descritos mediante protocolos y mensajes. Este panorama general de los conceptos que engloban un SOA y las características básicas de este paradigma se pueden complementar con una visión más detallada de la interacción de los elementos estructurales de esta filosofía de arquitectura de software, con un especial énfasis en las funcionalidades de un service registry, con el fin de comprender el rol de cada elemento dentro de un sistema que promueva las características SOA. 3. Representación de la interacción de los elementos estructurales de SOA mediante un "service automaton" Indiscutiblemente, un sistema basado en un SOA necesita interactuar idóneamente con los otros servicios que están presentes en la solución, con el fin de poder garantizar un rendimiento óptimo. Por lo tanto, a la hora de querer utilizar un servicio, el service requester envía una solicitud al service broker, para poder conocer al service provider que mejor pueda satisfacer el servicio requerido. Además, vale mencionar que un service provider tuvo que publicar su servicio al service broker, con el fin de que pueda ofrecer sus servicios. Sin embargo, ya sea por razones internas de la empresa que haya implementado el servicio a proveer o por cuestiones de propiedad intelectual, un proveedor de servicios no hace público información acerca de la estructura interna de su servicio, mas sí todas las posibilidades de interacción con el mismo. Consecuentemente, si un service broker posee múltiples proveedores de servicios P 1,, P n, entonces es él quien decide cual de las interacciones solicitadas R es cumplida satisfactoriamente por el servicio P. Para profundizar el estudio de este proceso, nos valdremos de los service automatons propuestos por Massuthe y Wolf [2], para poder resolver ese problema de concordancia entre el servicio solicitado y la búsqueda del servicio correcto ofrecido por P para resolver R. Por lo tanto, un service automaton refleja el flujo interno de un servicio, así como el comportamiento de la comunicación entre R y P mediante sus interfaces, cuya representación se da con las etiquetas de las transiciones del service automaton. Una etiqueta!x representa enviar un mensaje por el canal x, mientras que?x significa recibir un mensaje por el canal x, además r sería equivalente a la representación de є. Cabe resaltar, que el contenido del mensaje no es importante a la hora de utilizar este método. Igualmente, un estado de transición en cada estado de cada service automaton ( tanto para R como para P ) concuerde, por lo que una comunicación exitosa de los servicios de R y P es expresada como una propiedad de la tabla de transiciones ( si ambos servicios alcanzan un estado final al procesar todas las transacciones ). Tomando como ejemplo las definiciones de autómatas según Aho [4], un service automaton se puede definir de la siguiente manera: Definición de un service automaton: Un service automaton es un autómata no determinista A = [ I ; Q ; T ; q 0 ; Ω ] que consiste de - una interface I - un conjunto finito de estados Q - un conjunto finito de estados T Q x L x Q de transiciones donde L = {?x I x Є Iin } U{!x I x Є Iout } U { r } - un estado inicial q 0 Є Q 3

- un conjunto Ω Q de estados finales Como resultado de la aplicación del enfoque de service automatons a los servicios del caso del dispensador de bebidas presentado en la sección anterior, se producirán los siguientes service automatons : Fig2. Service Automaton para P V [2] Fig3. Service Automaton para R C y R E [2] Cabe destacar que dos autómatas en comunicación R y P deben poseer interfaces I tal que un autómata envía únicamente mensajes que puedan ser recibidos por el otro autómata y viceversa, por lo que se puede generalizar que I inr = I outp y I outr = I inp. Por último, para poder garantizar que el servicio solicitado R sea resuelto satisfactoriamente por P, nos valemos de la siguiente definición: Definición de la interacción de un service automata: Sean P y R 2 service automatas. Sea QR QP =, el sistema de transición R + P = [Q; T; q 0 ; Ω ] consiste de - conjunto de estados Q QR x QP x buffermensajes (MC), - conjunto de transiciones T Q x ( LP U LR) x Q, - estado inicial q 0 - conjunto Ω Q de estados finales Esta definición establece que R y P se mueven libremente en la transición R + P y que una acción de recibido se da únicamente cuando el mensaje está presente en el buffer de mensajes. Si al final de la aplicación de las transiciones se llega a un estado final de R como de P y el buffer de mensajes está vacío, implica que R sí puede ser resuelto por P. Para ejemplificar este concepto, se muestran los diagramas de transición para R+P y R+P, asimismo una representación no tan estricta de como los autómatas de servicio interactúan entre ellos para demostrar que un servicio solicitado puede ser realizado por un proveedor de servicios (tanto un caso de aceptación como otro de rechazo): 4

Fig4. Transiciones de R C +P y R E +P [2] Fig5. Servicio solicitado R C sí es satisfecho por P V [2] Fig6. Servicio solicitado R E no es satisfecho por P V [2] Consecuentemente, al aplicar un enfoque simplificado del método service automaton propuesto por Massuthe y Wolf [2], logramos comprender no solo los elementos estructurales intrínsecos de este paradigma, sino que también logramos entender como estos elementos interactúan entre sí, para satisfacer la solicitud de un servicio. Este conocimiento de los fundamentos de SOA nos permite establecer una base sólida para ver como es que los SOA s hacen un intensivo uso de la web para facilitar las interacciones de los mismos. 4. SOA s y Web Services Web Services representan una forma de poder realizar ciertos aspectos técnicos de SOA, mas ellos mismos te pueden introducir ciertos problemas. Primero, los estándares no son lo suficientemente maduros para garantizar interoperabilidad. Segundo, Web Services por sí solos no garantizan un nivel de bajo acoplamiento apropiado. 5

Sin embargo, a pesar que SOA es una tendencia de la arquitectura de software que enfatiza en la construcción de aplicaciones intercomunicables y con bajo sentido de acople, es ampliamente aceptado decir que un web service es un SOA, los cuales deben cumplir estos dos requerimientos: - Las interfaces de comunicación deben estar basadas en un protocolo de transporte como http, ftp, smtp, CORBA. - Los mensajes deben ser en formato xml. Por lo tanto, es necesario hacer la advertencia en no caer en aspectos muy específicos de web services, ya que los mismos no serán el estándar final para la integración de sistemas, por lo que web services se deben de utilizar solamente cuando aspectos de infraestructura específicos son de gran importancia. Además, se debe reconocer cuando no es prudente optar por un SOA, lo que resultaría en un enfoque erróneo para solucionar un problema. 5. Cuándo no es apto optar por un SOA? Existen situaciones en las cuales no es recomendable optar por un SOA [5], las cuales son: 1. Cuando se tiene un ambiente de TI homogéneos Si se utiliza las tecnologías de un solo proveedor, entonces es posible que la sobrecarga adicional de una SOA no sería eficaz en función del costo para usted, un SOA es muchas veces un poco práctico. Además, entornos heterogéneos de hardware no podrán beneficiarse de una SOA menos que también tienen una infraestructura heterogénea de software -- es decir, diferentes sistemas operativos o de middleware. 2. Cuando ocurre en tiempo real el rendimiento es crítico Confiar en la comunicación asíncrona para proporcionar acoplamiento entre los consumidores y los productores de servicios, SOA s no están bien adaptadas a las situaciones que requieren aplican estrictamente los tiempos de respuesta. Mas, SOA es un excelente método para las empresas que buscan formas de acelerar el procesamiento de sus archivos, sin tener que deshacerse de sus aplicaciones. 3. Cuando las cosas no cambian Si hay pocas razones para cambiar la lógica de negocio, presentación, flujo de datos, proceso, o cualquier otro aspecto de la aplicación, conversión de estas aplicaciones a un SOA podría no regresar valor suficiente para hacer que el esfuerzo valga la pena. Claramente, no se puede garantizar que este paradigma es apto para todas las soluciones de software, ya que pueden existir condiciones que impidan que una solución basada en este paradigma tenga realmente el impacto deseado. Sin embargo, la arquitectura orientada a servicios está emergiendo como una solución muy interesante cuando las necesidades de los clientes radican en la flexibilidad, reutilización y bajo acoplamiento. 6. Conclusiones En síntesis, en este artículo se logró establecer una explicación intuitiva de los conceptos relacionados con SOA, en la cual se optó por una gran simplicidad en la definición de los conceptos intrínsecos del misma, sin dejar de lado sus cualidades más importantes, ni aspectos de importancia como los Web Services. Finalmente, se establecieron ciertos parámetros mínimos que ayudan al programador a discernir acerca de la conveniencia del uso de un SOA en una situación particular. 6

De igual forma, para futuros escritos, resultaría favorable ahondar en el estudio de modelos que permitan a las empresas adoptar, de forma poco traumática, este paradigma. Igualmente, sería beneficioso estudiar como se comportan los SOA s en ambientes de desarrollo ágil y como herramientas de cuarta generación soportan la creación de SOA s. Bibliografía [1] Josuttis, Nicolai M. SOA in Practice. O Reilly Media, Inc. Agosto, 2007 [2] Massuthe, Meter y Wolf, Karsten. An Algorithm for Matching Nondeterministic Services with Operating Guidelines. 2006 [3] Gebhardt, Mike. Serviceorientierte vs. Event-basierte Architekturen. Johann Wolfgang Goethe Universität. 2005 [4] Aho, Alfred V & Sethi, Ravi & Ullman, Jeffrey D.: Compilers: Principles, Techniques and Tools, Addison Wesley. 1979. [5] Blommberg, Jason. When not to use an SOA. http://www.zapthink.com/report.html?id=zapflash- 02162004. (29.10.2007) [6] He, Hao. What is Service Oriented Architecture? http://webservices.xml.com/pub/a/ws/2003/09/30/soa.html. (29.10.2007) 7