Diferencia entre revisiones de «Arquitectura orientada a servicios»

Contenido eliminado Contenido añadido
Sin resumen de edición
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 190.41.153.85 a la última edición de Diegusjaimes
Línea 1:
La '''Arquitectura Orientada a Servicios''' (en inglés '''S'''ervice '''O'''riented '''A'''rchitecture), 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 [[Servicio Web|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 varía 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.
 
 
== Definiciones SOA ==
{| {{tablabonita}}
! valign="TOP" | Término
! valign="TOP" | Definición / Comentario
|-
| valign="TOP" | Servicio
| valign="TOP" | 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''.
|-
| valign="TOP" | Orquestación
| valign="TOP" | Secuenciar los servicios y proveer la lógica adicional para procesar datos. No incluye la presentación de los datos. Coordinación.
|-
| valign="TOP" | Sin estado
| valign="TOP" | 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.
|-
| valign="TOP" | Proveedor
| valign="TOP" | La función que brinda un servicio en respuesta a una llamada o petición desde un consumidor.
|-
| valign="TOP" | Consumidor
| valign="TOP" | 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: