U N I V E R S I D A D
DE
SAN MARTIN DE PORRES FACULTAD DE INGENIERIA Y ARQUITECTURA
C CU UR RS SO O:: IIN NV VE ES STTIIG GA AC CIIO ON NO OP PE ER RA ATTIIV VA A II TTE EM MA A:: TTR RA AB BA AJJO OC CO ON NV VE EN NC CIIO ON N (( SSO OA A ))
P PR RO OFFE ES SO OR R::
IIN NG G.. JJO OS SÉ ÉV VIILLLLA AN NU UE EV VA AH HE ER RR RE ER RA A A ALLU UM MN NO O:: R RA AU ULL S SA AG GA AS STTE EG GU UII B BR RIIC CE EÑ ÑO O S SE EC CC CIIO ON N:: 3333 G G
La Molina, Noviembre del 2008
Arquitectura orientada a servicios
SOA
La Arquitectura Orientada a Servicios (en inglés Service Oriented Architecture), es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio. Permite la creación de sistemas altamente escalables que reflejan el negocio de la organización, a su vez brinda una forma estándar de exposición
e
invocación
de
servicios
(comúnmente
pero
no
exclusivamente servicios web), lo cual facilita la interacción entre diferentes sistemas propios o de terceros. SOA define las siguientes capas de software: •
Aplicaciones básicas - Sistemas desarrollados bajo cualquier arquitectura o tecnología, geográficamente dispersos y bajo cualquier figura de propiedad;
•
De exposición de funcionalidades - Donde las funcionalidades de la capa aplicativas son expuestas en forma de servicios (servicios web);
•
De integración de servicios - Facilitan el intercambio de datos entre elementos de la capa aplicativa orientada a procesos empresariales internos o en colaboración;
•
De composición de procesos - Que define el proceso en términos del negocio y sus necesidades, y que varia en función del negocio;
•
De entrega - donde los servicios son desplegados a los usuarios finales.
SOA proporciona una metodología y un marco de trabajo para documentar las capacidades de negocio y puede dar soporte a las actividades de integración y consolidación.
CONTENIDO
• Definiciones SOA • Diseño y desarrollo de SOA • Lenguajes de alto nivel • Diferencias con otras arquitecturas • Beneficios • 7 Razones por las que SOA hará tambalear su mundo • Conclusiones • Referencias Bibliograficas
Definiciones SOA Término
Definición / Comentario
Servicio
Una función sin estado (Existen servicios asíncronos en los que una solicitud a un servicio crea, por ejemplo, un archivo, y en una segunda solicitud se obtiene ese archivo), auto-contenida, que acepta una(s) llamada(s) y devuelve una(s) respuesta(s) mediante una interfaz bien definida. Los servicios pueden también ejecutar unidades discretas de trabajo como serían editar y procesar una transacción. Los servicios no dependen del estado de otras funciones o procesos. La tecnología concreta utilizada para prestar el servicio no es parte de esta definición.
Orquestación Secuenciar los servicios y proveer la lógica adicional para procesar datos. No incluye la presentación de los datos. Coordinación. Sin estado
No mantiene ni depende de condición pre-existente alguna. En una SOA los servicios no son dependientes de la condición de ningún otro servicio. Reciben en la llamada toda la información que necesitan para dar una respuesta. Debido a que los servicios son "sin estado", pueden ser secuenciados (orquestados) en numerosas secuencias (algunas veces llamadas tuberías o pipelines) para realizar la lógica del negocio.
Proveedor
La función que brinda un servicio en respuesta a una llamada o petición desde un consumidor.
Consumidor
La función que consume el resultado del servicio provisto por un proveedor.
Diseño y desarrollo de SOA La metodología de modelado y diseño para aplicaciones SOA se conoce como análisis y diseño orientado a servicios. La arquitectura orientada a servicios es tanto un marco de trabajo para el desarrollo de software como un marco de trabajo de implementación. Para que un proyecto SOA tenga éxito los desarrolladores de software deben orientarse ellos mismos a esta mentalidad de crear servicios comunes que son orquestados por clientes o middleware para implementar los procesos de negocio. El desarrollo de sistemas usando SOA requiere un compromiso con este modelo en términos de planificación, herramientas e infraestructura. Cuando la mayoría de la gente habla de una arquitectura orientada a servicios están hablando de un juego de servicios residentes en Internet o en una intranet, usando servicios web. Existen diversos estándares relacionados a los servicios web. Incluyen los siguientes: XML HTTP
SOAP WSDL UDDI
Hay
que
considerar,
sin
embargo,
que
un
sistema
SOA
no
necesariamente necesita utilizar estos estándares para ser "orientado a servicios" pero es altamente recomendable su uso. En un ambiente SOA, los nodos de la red hacen disponibles sus recursos a otros participantes en la red como servicios independientes a los que tienen acceso de un modo estandarizado. La mayoría de las definiciones de SOA identifican la utilización de Servicios Web (empleando SOAP y WSDL) en su implementación, no obstante se puede implementar SOA
utilizando cualquier tecnología basada en servicios.
Lenguajes de alto nivel Los lenguajes de alto nivel como BPEL o WS-coordinación llevan el concepto de servicio un paso adelante al proporcionar métodos de definición y soporte para flujos de trabajo y procesos de negocio.
Diferencias con otras arquitecturas Al contrario de las arquitecturas orientado a objetos, las SOAs están formadas por servicios de aplicación débilmente acoplados y altamente interoperables. Para comunicarse entre sí, estos servicios se basan en una definición formal independiente de la plataforma subyacente y del lenguaje de programación (p.ej., WSDL). La definición de la interfaz encapsula (oculta) las particularidades de una implementación, lo que la hace independiente del fabricante, del lenguaje de programación o de la tecnología de desarrollo (como Plataforma Java o Microsoft.NET). Con esta
arquitectura,
se
pretende
que
los
componentes
software
desarrollados sean muy reusables, ya que la interfaz se define siguiendo un estándar; así, un servicio C Sharp podría ser usado por una aplicación Java.
Beneficios Los beneficios que puede obtener una organización que adopte SOA son: •
Mejora en los tiempos de realización de cambios en procesos.
•
Facilidad para evolucionar a modelos de negocios basados en tercerización.
•
Facilidad para abordar modelos de negocios basados en colaboración con otros entes (socios, proveedores).
•
Poder para reemplazar elementos de la capa aplicativa SOA sin disrupción en el proceso de negocio
•
Facilidad para la integración de tecnologías disímiles
Este cuadro nos informa como es aplicado el SOA para un CLIENTE (ORACLE) en el sector manufacturero.
7 razones por las que SOA hará tambalear su mundo
1. SOA es un principio organizativo extraordinario 2. SOA se basa en estándares 3. SOA hace que RPG sea pertinente 4. SOA moderniza a los programadores que trabajan con RPG 5. SOA se une a su empresa 6. SOA incluye herramientas y tecnología 7. SOA perdurará
Conclusiones
Teniendo un claro concepto del tema, encuentro que es una forma muy útil en la organización del software, encuentro que la creación de esta ha sido muy útil a nivel empresarial, aparte de ayudar, el hecho de crear un hábito de orden permite una mayor facilidad de manejo al memento de futuras implementaciones. A nivel empresarial, es un estupendo servicio que ha sido útil a gran escala, ya que al complementar estos software's y no reemplazarlos ha creado un orden que permite facilitar el manejo de nuevas "propuestas" a largo plazo. En los últimos años, los servicios informáticos para empresas han evolucionado, a paso lento pero seguro, los problemas principal del desarrollo se software de uso empresarial o TI, es la personalización que requiere cada empresa, basándose en las necesidad de estas, la centralización de los sistemas actuales, el problema de compatibilidad , la capacitación necesaria que requiere el personal ejecutor, por que, no nos sirve de nada tener buenas soluciones empresariales sin el equipo capacitado para utilizarlas. La importancia de reutilizar recursos y la flexibilidad de estos no sólo ayudará a la empresa a ahorrar dinero si no que también traerá positivas consecuencias para el medio ambiente. Fomentar la idea del "reciclaje" en las empresas es algo de suma importancia en una sociedad que se ha acostumbrado a botar en vez de reparar. ¿Por qué eliminar desechos si podemos transformarlos, reutilizarnos o mejorarlos para nuevos proyectos? Los SOA van en una dirección distinta que la fórmula tradicional de diseño de recursos, ya que hace al sistema independiente de los resultados, por lo cual si quisiéramos analizar el sistema al revés no sería muy clara la configuración del diseño.
Referencias Bibliograficas
• http://www.espaciosoa.net/ • http://www.espaciosoa.net/foro/ • http://bussinesssoft.blogspot.com/2007/09/en-palabras-simples.html • http://tecnologia.infobaeprofesional.com/notas/46399-Que-es-SOA-laarquitectura-orientada-a-servicios.html • http://www.youtube.com/watch?v=d7akahcJSy0 • http://www.adictosaltrabajo.com/tutoriales/pdfs/soa.pdf