Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cuando escuchamos SOA no sabemos a qué se refieren las siglas, los que las
entendemos sabemos que estas siglas se refieren a una Arquitectura Orientada a Servicios.
Al escuchar, por primera vez, este tipo de definiciones quizás se nos hace un poco
difícil comprender ¿Cómo la aplicamos en nuestra vida cotidiana? Por ello quisiera
compartir con ustedes cuáles son algunos de los ejemplos de la vida diaria, en donde la
Arquitectura SOA participa y es indispensable para garantizar el oportuno nivel de respuesta
para agilizar el proceso de validación de datos en cada caso.
1.- Cuando utilizamos nuestra tarjeta de débito para sacar dinero en el cajero automático.
1. 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.
2. Una vez aceptada la identidad la transacción consulta el saldo de la cuenta para
verificar los fondos.
3. El servicio de información actualiza el saldo y confirma la transacción al cajero.
4. 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 nuestro datos contra los millones de
registros de bases de datos de incidencia delictiva.
Cada vez que solicitamos un servicio de taxi ya sea por Uber o algún servicio similar,
estamos haciendo uso tanto de SOA como de Microservicios, aplicados a nuestra vida
diaria.
● Su versatilidad, que hace posible que los servicios puedan ser consumidos por los
clientes en aplicaciones o procesos de negocio distintos.
SOA permite la reutilización de activos existentes para nuevos servicios que se pueden
crear a partir de una infraestructura de TI que ya se había diseñado. De esta forma, permite
a las empresas optimizar la inversión por medio de la reutilización que, además, conlleva
otra ventaja: la interoperabilidad entre las aplicaciones y tecnologías heterogéneas.
Aunque también sucede, en muchos de los casos, que lo que se busca es la adaptación a
los cambios del entorno de mercado, o se decide implementar SOA como reacción ante las
acciones de la competencia, o como medida para optimizar la inversión en IT y minimizar
costes asociados.
Las organizaciones que ya trabajan con SOA pero busquen optimizar sus resultados con
Data Services, tendrán que observar las siguientes reglas:
Esta optimización es la vía más indicada para superar las limitaciones que adolecen a un
proyecto SOA, a través de la visualización de datos que ayuda a evitar:
● Falta de disponibilidad del servicio dependiente: que se da cuando este servicios
aún no está implementado y resulta en tiempos de inactividad o en la construcción
de componentes redundantes.
● Falta de disponibilidad de recursos: puede suceder cuando los recursos se tiene
que compartir entre distintos equipos de desarrollo.
● Restricciones de tiempo: la variable indefectiblemente asociada a todo proyecto y
que marca una de las limitaciones más importantes.
● Cambio de comportamiento del servicio dependiente: que, no sólo invalida los
flujos de trabajo presentes, sino que también incide en la consistencia de los datos.
● Comunicación.
● Integración de servicios.
● Capacidad de modificación.
● Rendimiento.
● Fiabilidad.
● Disponibilidad.
● Seguridad.
Sin embargo, ninguna de estas cuestiones resulta tan crítica como la gobernabilidad, un
aspecto que debe tomarse en consideración mucho antes que el propio diseño, de forma
previa a la implementación. Al tratarse de una estrategia de arquitectura, SOA implica
mucho más que la simple construcción de software.
El desarrollo e implementación de una arquitectura SOA se rige por los principios descritos
en el manifiesto SOA. Por otra parte la aplicación de la orientación a servicios se divide en 2
grandes etapas:
Origen
Los modelos de desarrollo han ido evolucionando con el paso de los años. En los
años 80 aparecieron los modelos orientados a objetos, en los 90 aparecieron los modelos
basados en componentes y en la actualidad han aparecido los modelos orientados a
servicios.1
Terminología
Término Definición / Comentario Servicio Una función sin estado, 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. 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. 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
Principios
No hay estándares en relación a la composición exacta de una arquitectura orientada a
servicios, aunque muchas fuentes de la industria han publicado sus propios principios.
En SOA la clave está en la interfaz, puesto que define los parámetros requeridos y la
naturaleza del resultado. Esto significa que define la naturaleza del servicio y no la
tecnología utilizada. Esta función permite realizar dos de los puntos críticos: los servicios
son realmente independientes y pueden ser manejados.
Capas de software
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.
Elementos de una arquitectura SOA, por Dirk Krafzig, Karl Banke, y Dirk Slama. 7
● XML
● HTTP
● SOAP
● REST
● WSDL
● UDDI
Hay que considerar, sin embargo, que un sistema SOA no necesariamente utiliza 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.
Beneficios
El gran beneficio de SOA es la agilidad que proporciona a las organizaciones que la usan.
Las características propias de SOA permiten a las organizaciones la capacidad de controlar
un problema de forma general, permitiendo una respuesta más rápida y eficaz y por tanto
adaptarse de la mejor forma a los cambios.8
Los beneficios que puede obtener una organización que adopte SOA son:
Mitos y realidades
Hay varios mitos asociados a SOA que son importantes entender antes de profundizar en el
tema. La siguiente tabla describe algunos de los principales mitos que rodean a SOA y los
hechos que ayudan a desacreditarlos.10
Mito Realidad
Las SOA requieren de SOA se puede realizar a través de servicios web pero los
servicios web servicios web no son un requisito necesario para implementar
SOA
Una arquitectura de No hay dos SOA iguales. Una arquitectura de referencia SOA
referencia SOA reduce puede no ofrecer la mejor solución para su organización
riesgo de implementación
SOA requiere una SOA debe ser gradual y construirse sobre sus inversiones
revisión completa de la actuales
tecnología y procesos de
negocios
Conclusión
Hoy en día las organizaciones tienen la necesidad de adaptarse a constantes cambios en el
mercado, y por tanto, deben ser capaces de adaptar sus procesos a unas condiciones
dinámicas como única forma de mantener y mejorar su competitividad.
A su vez, los sistemas que dan soporte a esos procesos deben poderse adaptar fácilmente
para responder de forma ágil a las necesidades del negocio. El estado del arte actual de la
tecnología da respuesta a este reto con SOA.
https://web.archive.org/web/20100521014149/http://blogs.tecsisa.com/?p=101
https://cgrw01.cgr.go.cr/rup/RUP.es/LargeProjects/soa.rup_soma/guidances/examples/reso
urces/soa_model_example.htm