Sunteți pe pagina 1din 3

ARQUITECTURA ORIENTADA A SERVICIOS – SOA

¿QUÉ ES SOA?

SOA es un enfoque de desarrollo de aplicaciones de software empresarial, en el cual los procesos del software se descomponen
en servicios, que después se hacen disponibles y visibles en una red. Cada servicio provee funcionalidades para poder ser
adecuado a las necesidades de la empresa, mientras esconde los detalles subyacentes de implementación. SOA aborda la
complejidad, inflexibilidad y debilidades de los enfoques existentes en los diseños de procesos, flujos de trabajo e integración
de aplicaciones. Infraestructura de alto nivel basada en best practices y patrones para crear soluciones basadas en servicios,
de alta cohesión y bajo acoplamiento

Un servicio es una funcionalidad construida como un componente reusable para ser utilizado en un proceso de negocio.

SERVICIOS DE SOA

Servicios de negocios:

 Servicios de grano grueso que definen las operaciones comerciales centrales.


 Representado a través de XML, Business Process Execution Language (BPEL) y otros.

Servicios empresariales:

 Implemente la funcionalidad definida por los servicios empresariales.


 Confíe principalmente en los servicios de aplicaciones y servicios de infraestructura para cumplir con las solicitudes
comerciales.

Servicios de aplicación:

 Servicios específicos que se limitan a un contexto de aplicación específico.


 Una interfaz de usuario dedicada puede invocar directamente los servicios.

Servicios de infraestructura:

 Implemente tareas no funcionales como autenticación, auditoría, seguridad y registro.


 Se puede invocar desde servicios de aplicaciones o servicios empresariales.

BENEFICIOS DE LA ARQUITECTURA SOA PARA LAS EMPRESAS Y DEPARTAMENTOS DE TI

Favorece la toma de decisiones: con SOA es posible hacer la integración de la información dentro de un conjunto de
aplicaciones dinámicas compuestas, por lo que los directivos de las organizaciones podrán tener acceso a información no solo
más exacta y actualizada, sino también en menor tiempo, lo que les otorgará la posibilidad de reaccionar manera rápida y ágil
ante posibles problemas o cambios dentro de la organización.

Favorece la productividad de los empleados: la arquitectura SOA permite un acceso óptimo a los sistemas, información,
y a la posibilidad de mejora de los procesos de negocio, lo que a su vez se traduce en el aumento de la productividad individual
de tus empleados.

Ayuda a potenciar las relaciones con clientes y proveedores: con SOA es posible aumentar la capacidad de respuesta a
los clientes, ya que, por ejemplo, permite hacer la habilitación de portales unificados de servicios. Adicionalmente, gracias a
sus numerosas ventajas permite hacer la integración exitosa con socios comerciales y optimización de cadenas de suministro.

Mayor productividad de los recursos TI ya existentes: esto se debe a que la arquitectura SOA provee aplicaciones más
productivas y flexibles, lo que les permite a las organizaciones obtener mayor valor, para la empresa, de los recursos de TI
ya existentes.

Aplicaciones seguras y manejables: SOA pone a disposición de las empresas una infraestructura que les permite desarrollar
servicios más seguros, predecibles y gestionables, pero además facilita la posibilidad de hacer la integración de nuevos
servicios, así como funcionalidades para poder hacer la gestión de procesos de negocios críticos.

Ayuda a minimizar los riesgos a pérdidas de datos: esto se debe principalmente a que SOA ofrece rendimiento,
escalabilidad y seguridad.

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 aplicativa son expuestas en forma de
servicios (generalmente como 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. Por lo tanto, si tenemos generada una arquitectura SOA, lo que nos plantea
es la posibilidad de facilitar la integración entre las distintas aplicaciones para conseguir maximizar el beneficio obtenido con
nuestra infraestructura.

DISEÑO 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.

 Contratos estandarizados: los servicios dentro del mismo inventario, deben estar acordes a los mismos principios
de diseño de contratos.
 Bajo acoplamiento: de los servicios respecto a su entorno y, a su vez, imponer bajo acoplamiento a sus
consumidores.
 Abstracción: con unos contratos que sólo contienen lo esencial y sin que exista más información que la publicada
en los contratos.
 Reutilización: la reutilización es el principal objetivo de una SOA. Un servicio debe ser explotado al máximo de
tal manera que sea posible su uso en diferentes contextos y pueda cumplir diferentes objetivos. De esta manera los
servicios podrán ser reusables dentro de la misma aplicación.
 Autonomía: ejerciendo un alto control sobre el entorno de ejecución subyacente.
 Ausencia de estado: Para maximizar la escalabilidad del servicio, y para aprovechar al máximo los umbrales de
rendimiento se requieren inventarios de servicios, de tal forma que se trabaje en el interior y los servicios y la
arquitectura que los rodean puedan ser los responsables de la administración de los estados. De esta forma los
servicios no guardarán ningún tipo de información, ya que esto disminuye su capacidad de ampliación y por ende
afecta también su disponibilidad.
 Capacidad de ser descubiertos: complementados con metadatos que hacen que puedan ser adecuadamente
descubiertos e interpretados.
 Capacidad de ser combinados: poder descomponer y brindar múltiples soluciones para luego unificarlas en un
proceso, en vez de realizar un programa complejo y poco reutilizable, que, además, no pueda evolucionar a través
del tiempo.

VENTAJAS DE LA SOA

La arquitectura orientada a servicios es fuente de ventaja competitiva ya que, por su configuración:

 Aumenta la eficiencia en los procesos.


 Amortiza la inversión realizada en sistemas.
 Reduce costes de mantenimiento.
 Fomenta la innovación orientada al desarrollo de servicios.
 Simplifica el diseño, optimizando la capacidad de organización.

PRINCIPALES DIFERENCIAS ENTRE MICROSERVICIOS Y SOA

 Granularidad de servicio: los componentes de servicio dentro de una arquitectura de microservicios son
generalmente servicios de un solo propósito que hacen una cosa muy, muy bien. Con SOA, los componentes de
servicio pueden variar en tamaño en cualquier lugar, desde pequeños servicios de aplicaciones hasta servicios
empresariales muy grandes.
 Compartir componentes: compartir componentes es uno de los principios básicos de SOA. De hecho, el uso
compartido de componentes es de lo que se tratan los servicios empresariales. SOA mejora el uso compartido de
componentes, mientras que MSA intenta minimizar el uso compartido a través del "contexto acotado". Un contexto
acotado se refiere al acoplamiento de un componente y sus datos como una sola unidad con dependencias mínimas.
 Capa de middleware vs API: el patrón de arquitectura de microservicios generalmente tiene lo que se conoce
como una capa de API, mientras que SOA tiene un componente de middleware de mensajería. El middleware de
mensajería en SOA ofrece una gran cantidad de capacidades adicionales que no se encuentran en MSA, incluyendo
mediación y enrutamiento, mejora de mensajes, transformación de mensajes y protocolos. MSA tiene una capa API
entre servicios y consumidores de servicios.
 Servicios remotos: las arquitecturas SOA se basan en la mensajería SOAP como protocolos primarios de acceso
remoto. La mayoría de los MSA se basan en dos protocolos: REST y mensajería simple y es homogéneo.
 Interoperabilidad heterogénea: SOA promueve la propagación de múltiples protocolos heterogéneos a través de
su componente de middleware de mensajería. MSA intenta simplificar el patrón de arquitectura reduciendo el
número de opciones para la integración.
SOAP WEB SERVICES

SOAP (Simple Object Access Protocol), es un protocolo estandarizado con reglas predefinidas que nos permitirá realizar
servicios web sin estado, a través de TCP y con un formato XML. Tiene un enfoque basado en funciones y aunque no tiene
estado de forma predeterminada es posible hacer que una API SOAP sea controlada, las llamadas al API no pueden ser
almacenadas en caché, en cuanto a la seguridad este cuenta con WS-SECURITY con soporte SSL y cumplimiento de ACID
incorporado, requiere mas ancho de banda y potencia de cálculo. Utiliza varios protocolos de transferencia como HTTPS,
SMTP, UDP, entre otros. Se recomienda para aplicaciones empresariales, apps de alta seguridad, entorno distribuido,
servicios financieros, servicios de telecomunicaciones. La ventaja de este protocolo es su alta seguridad, estandarización y
extensibilidad. Una desventaja es que tiene menor rendimiento, más complejidad y menos flexibilidad.

REST

REST (Representational State Transfer), estilo arquitectónico con pautas sueltas y recomendaciones, se encuentra
controlado por datos, sin estado debido a que no hay sesiones del lado del servidor. Las llamadas a la API se pueden almacenar
en caché, soporta HTTPS y SSL, requiere menos recursos y el no contiene formato de mensaje ya que se envían por medio
de JSON, XML, el único protocolo de transferencia es HTTP y se recomienda usar para aplicaciones públicas, servicios web
y móviles y redes sociales. La ventaja es que tiene escalabilidad, mejor rendimiento, facilidad de navegación y flexibilidad.
Una desventaja es que es menos seguro y no es apto para entornos distribuidos.

EJEMPLOS

1.- Cuando utilizamos nuestra tarjeta de débito para sacar dinero en el cajero automático.

 La identidad del usuario es validada por la institución bancaria a través de un NIP contra el Chip de seguridad de
la tarjeta.
 Una vez aceptada la identidad la transacción consulta el saldo de la cuenta para verificar los fondos.
 El servicio de información actualiza el saldo y confirma la transacción al cajero.
 El cajero automático dispensa el dinero y emite un recibo de la transacción.

2.- Cuando utilizamos nuestra tarjeta de crédito en algún establecimiento para adquirir bienes o servicios.

3.- Cuando utilizamos nuestro teléfono y el consumo de tiempo utilizado es facturado automáticamente en nuestro plan en
tiempo real.

4.- Cuando pasamos por migración y se verifican nuestros datos contra los millones de registros de bases de datos de
incidencia delictiva.

Estas operaciones deben realizarse en lapsos de centésimas de segundo, aun cuando se procesen billones de transacciones en
todo el mundo cada segundo, es por ello que los operadores de este tipo de transacciones requieren de una Arquitectura de
Software que permita alcanzar estos niveles de rendimiento y respuesta para asegurar al usuario una respuesta aceptable.

También existe en nuestra vida diaria Arquitecturas de Software que han evolucionado del concepto de SOA, tales como los
Microservicios, los cuales permiten asegurar la confiabilidad y consistencia de operación de aplicaciones como Netflix,
Amazon, Uber y algunas otra más.

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