-
-
-
-
URL copied!
Una arquitectura basada en SOA está fuertemente basada en la interacción de distintos servicios que se componen y combinar para cumplir un determinado objetivo. Uno de los principales desafíos en el éxito de un emprendimiento SOA consiste en la manera de realizar la interacción entre los servicios. Esto último se define como orquestación. Una apropiada orquestación de servicios en una arquitectura SOA garantiza una adecuada reutilización de servicios, que es una de las máximas que se persiguen. Sin embargo, para lograr esto es necesario partir de una correcta identificación de servicios. Esto es, ¿qué servicios deben interactuar? ¿Cómo? ¿Por qué este esquema y no otros? Tales preguntas son abordadas en la referencia [1], y se describen a continuación las principales ideas.
Identificando servicios
Existen ciertos aspectos que deben considerarse al momento de definir e identificar los servicios dentro de una arquitectura SOA. Los más importantes mencionados en [1] son:
Flexibilidad. Un sistema es más flexible que otro cuando es más adaptable a cambios. En el mundo de los servicios, esto se logra especificando muchos servicios pequeños, con una única funcionalidad. De esta manera, los servicios pueden componerse fácilmente. Por otro lado, si se definen pocos servicios, “cargados” de funcionalidad, el sistema resultante será menos flexible y difícil de modificar.
Performance. La manera de combinar servicios repercute en la performance del sistema. Existen lenguajes como BPEL (Business Process Execution Language) que se utiliza para definir la orquestación de servicios, WDSL (Web Service Definition Language) para definir sus interfaces, y SOAP (Simple Object Access Protocol) para el intercambio de mensajes. Los mencionados lenguajes están basados en XML y favorecen la legibilidad. Sin embargo, crean una sobrecarga en la ejecución del sistema. Cuantos más servicios estén involucrados, mayor será la sobrecarga.
Reuso. Es importante es este punto tener un control centralizado de todos los servicios definidos, de manera de poder detectar rápidamente la posibilidad de utilizar un servicio ya definido en vez de reinventar la rueda implementándolo nuevamente. De la misma manera que lo analizado en flexibilidad, cuantos más pequeños sean los servicios, más chances habrá de reutilizarlos.
Estrategias posibles
La manera más natural según establece [1] es proceder siguiendo una metodología top-down. Una vez definidos los procesos involucrados, el paso siguiente es establecer qué servicios serán necesarios. En este punto deben considerarse los aspectos ya mencionados previamente: flexibilidad, performance y reuso. Como ya se estableció, muchos servicios pequeños favorecen el reuso y la flexibilidad, pero en detrimento de la performance. Luego, es importante destacar que no existe un balance ideal u óptimo. Ante cada sistema se deberá buscar la mejor manera de combinar todos los aspectos.
Sin embargo, existen heurísticas que pueden emplearse. La más conocida impulsa seleccionar aquellos procesos dentro de la arquitectura que logran hacer una diferencia frente a los competidores. Quizás algún servicio referido a un aspecto administrativo no sea tan distintivo frente a la competencia, pero sí posiblemente lo sea un servicio que afecte directamente la utilización del sistema por parte de los usuarios. Estos últimos servicios deben priorizarse para lograr flexibilidad y reuso, ya que son los que impulsarán la diferencia frente a la competencia. Vale la pena mencionar que esta es sólo una estrategia posible, que incluso puede no tener sentido en algunos sistemas. Ante cada nuevo desafío, se deben combinar de la mejor manera performance, reuso y flexibilidad.
Conclusiones
La identificación de los servicios involucrados forma un papel clave para el éxito de un emprendimiento SOA. No debe subestimarse la decisión de cuántos servicios definir, y la manera en que los mismos interactuarán, ya que de esto depende cuán flexible, performante y fácil de reusar será el sistema resultante.
Referencias:
[1] http://www.theenterprisearchitect.eu/blog/2007/04/26/soa-and-service-identification/
Top Insights
Escribiendo User Stories en Agile
AutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyWhat is TM Forum Frameworx and how to...
UncategorizedAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyImpact Mapping en Metodologías ágiles
AutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyTop Authors
Blog Categories
Trabajemos juntos
Contenido Relacionado
Expansión sin fronteras: Cómo la IA revoluciona los negocios y la UX
La inteligencia artificial generativa pasa a ser parte como un pilar fundamental de la innovación en diversas industrias. ¿Cuáles son los próximos pasos? Por Gabriel Arango, LatAm Technology Director En un mundo cada vez más digital y competitivo, las empresas se enfrentan al imperativo de tomar decisiones inteligentes para modernizarse, buscando reducir costos, impulsar la innovación, mejorar la … Continue reading Identificación de Servicios en SOA →
Conocer más
Open Banking: Innovaciones relacionadas al banking en el sector Fintech
El Open Banking, potenciado por la Inteligencia Artificial Generativa (GenAI), está redefiniendo el panorama de los servicios financieros. Según Igor Mikhalev, jefe de estrategia de tecnologías emergentes en la consultora EY, aproximadamente el 20% de los bancos minoristas y comerciales han implementado soluciones de GenAI o están listos para lanzarlas de manera inminente (Meggeson, 2024). … Continue reading Identificación de Servicios en SOA →
Conocer más
5 razones por las que tu proyecto necesita un Business Analyst
Contar con un Business Analyst (BA) en tu equipo no solo te ayudará a delegar tareas más operativas, sino que también potenciará al equipo de desarrollo y contribuirá significativamente al éxito de tu proyecto de desarrollo de software.
Conocer más
7 claves para ser un miembro de un equipo efectivo
Un gran desarrollador necesita trabajar tanto en sus habilidades técnicas como en sus habilidades blandas, ya que estas forman la base para cualquier profesional que quiera ser una pieza efectiva e inspirar un cambio positivo en su equipo y organización. He recopilado una serie de recomendaciones que considero básicas y de vital importancia para trabajar … Continue reading Identificación de Servicios en SOA →
Conocer más
Share this page:
-
-
-
-
URL copied!