Centro Oficial del BPM
Congreso Anual Contactar

Artículos

 

La arquitectura orientada a servicios (SOA) de Microsoft aplicada al mundo real (Parte I)

Por: Microsoft Corporation

 
     
 

Resumen

La capacidad para responder rápidamente ante los cambios y optimizar los procesos de negocio es un factor clave para la competitividad y el crecimiento de las organizaciones. La agilidad de éstas puede verse cuestionada si se apoya en entornos de IT que no pueden responder de forma flexible a los cambios que afectan a la actividad de negocio. Liberar el potencial que poseen las aplicaciones y recursos de IT y hacerlo disponible de forma general a toda la organización facilita la optimización de procesos y mejora la agilidad empresarial. La Arquitectura Orientada a Servicios (SOA, Service Oriented Architecture) es una filosofía de diseño que permite un mejor alineamiento de las Tecnologías de Información (IT) con las necesidades de negocio, permitiendo a empleados, clientes y socios comerciales responder de forma más rápida y adaptarse adecuadamente a las presiones del mercado.

En este documento analizamos los conceptos que subyacen a SOA y la visión de Microsoft sobre las aplicaciones de SOA en el mundo real. Microsoft dispone de una oferta completa para SOA que pone en manos de los desarrolladores, arquitectos y profesionales de IT las herramientas, tecnologías, marcos de trabajo y guía necesarios para crear y mantener soluciones basadas en SOA, así como el software de productividad personal que permitirá a los usuarios corporativos redefinir y optimizar los procesos de negocio de forma que aumente su productividad, se reduzcan los costes y se mejore la agilidad organizativa de forma general.

Introducción

Las empresas necesitan poder interconectar los procesos, personas e información tanto con la propia organización como -atravesando sus fronteras- con subsidiarias y socios comerciales. La falta de integración entre los componentes de IT –sistemas, aplicaciones y datos- hace difícil obtener una respuesta rápida y efectiva ante los cambios que afectan de forma natural a los negocios. La inflexibilidad genera costes, reduce la capacidad de respuesta ante los clientes, compromete el cumplimiento con las normativas legales y afecta negativamente a la productividad de los empleados.

En suma, una deficiente integración es uno de los problemas más importantes a los que las organizaciones deben hacer frente para mantener su competitividad y garantizar su crecimiento.

La Arquitectura Orientada a Servicios (SOA, Service Oriented Architecture) supone una estrategia general de organización de los elementos de IT, de forma que una colección abigarrada de sistemas distribuidos y aplicaciones complejas se pueda transformar en una red de recursos integrados, simplificada y sumamente flexible. Un proyecto SOA bien ejecutado permite alinear los recursos de IT de forma más directa con los objetivos de negocio, ganando así un mayor grado de integración con clientes y proveedores, proporcionando una inteligencia de negocio más precisa y más accesible con la cual se podrán adoptar mejores decisiones, y ayuda a las empresas a optimizar sus procesos internos y sus flujos de información para mejorar la productividad individual. El resultado neto es un aumento muy notable de la agilidad de la organización.

Si bien una adopción de SOA bien planificada y ejecutada puede mejorar la capacidad de respuesta de las organizaciones, no todos los esfuerzos de orientación a servicios han resultado satisfactorios. Los proyectos de SOA han tenido un éxito limitado cuando los desarrolladores los han intentado resolver de abajo arriba: implantar SOA por el gusto de tener SOA sin tener una referencia clara del contexto de negocio en el que debe desplegarse es un proyecto sin principios organizativos y sin rumbo. El resultado será una implementación caótica que no aportará beneficio alguno a la empresa. Por otra parte, una estrategia de mega-implementación descendente (“top-down”) para SOA exige una inversión colosal de recursos y tiempo, de manera que cuando el proyecto se concluye, la solución probablemente ya no refleja las necesidades del negocio.

En contraste con estas visiones, Microsoft prefiere lo que denominamos una táctica “de término medio”. En esta línea, los esfuerzos de SOA se dirigen a partir de una visión estratégica global y las necesidades de negocio, y se van completando mediante proyectos SOA incrementales, iterativos que se diseñan de forma que cumplan objetivos de negocio, respondiendo a una necesidad concreta cada vez. Microsoft lleva realizando proyectos SOA con éxito para sus clientes desde 1999, año en que se presentó el modelo de servicios Web y ha seguido en esta línea con las herramientas .NET Framework y SOA y con sus soluciones de diseño integradas en su plataforma de aplicaciones. Desde entonces, la visión de Microsoft sobre cómo aplicar SOA a las necesidades del mundo real ha ayudado a organizaciones de todos los tamaños a optimizar sus procesos de negocio a mejorar su agilidad y reducir sus ciclos de puesta en valor gracias a la aplicación de sus principios de diseño con SOA, sus buenas prácticas, herramientas y tecnologías.

Este documento describe el contexto de empresa desde donde surgió la necesidad de adoptar una estrategia de orientación a servicios y la forma en que Microsoft ha conseguido implementar SOA con éxito. Finalmente se hace una presentación de las herramientas y tecnologías SOA integradas en la plataforma de aplicaciones de Microsoft.

El contexto empresarial

Cada vez más las organizaciones dependen de su infraestructura de IT para alcanzar sus objetivos.

Pero en un entorno competitivo como el actual, aprovechar las oportunidades de negocio exige moverse con rapidez. Sin embargo, con frecuencia las Tecnologías de Información no permiten estas respuestas rápidas ni disponen de la flexibilidad necesaria para competir de forma efectiva. Un alto porcentaje de las ineficiencias organizativas tienen un mismo origen: el predominio de procesos manuales con un nivel de error elevado, sistemas ineficaces para compartir la información en el seno de la organización; la incapacidad de hacer un correcto seguimiento de los procesos de negocio desde principio a fin; el cumplimiento con las normativas legales aplicables obliga a manejar grandes cantidades de información y en formatos complicados de utilizar; y finalmente, las ineficiencias propias del servicio a clientes. Allí donde se produce cualquiera de estas situaciones, el impacto sobre la productividad de los empleados es negativo, y se pone en riesgo la capacidad de crecimiento y competencia de la propia empresa.

En la raíz de todas estas deficiencias está la información. No es un problema de escasez de información –de hecho, la información es el activo de más rápido crecimiento dentro de las organizaciones- sino de la imposibilidad de presentar la información de forma sencilla y útil a los usuarios y directivos de una manera coherente y sistemática. En última instancia, esto se debe a que las aplicaciones de línea de negocio y otras aplicaciones antiguas normalmente dan soporte a funcionalidades avanzadas –en áreas como la gestión financiera, marketing, control de clientes, etc.- pero sin poder compartir información entre ellas y, por consiguiente, no pueden aportar una visión general de los procesos de negocio cuando éstos abarcan varias áreas funcionales. Para lograr que la información se mueva a través de sistemas distintos (y generalmente incompatibles), dentro de las fronteras de la organización o a través de ellas, siempre es necesaria la intervención humana.

Hasta ahora esta intervención se ha hecho de dos formas. La primera es la de volver a introducir a mano los datos entregados por un sistema en otro distinto e incompatible. La segunda ha sido programar una interfaz especialmente diseñada para permitir la transferencia de información entre dos aplicaciones incompatibles.

Ambas soluciones son costosas e ineficientes debido en el primer caso a que se trata de un esfuerzo de duplicación de datos donde el error humano es frecuente, y en el segundo, porque conseguir un buen nivel de interoperabilidad e integración no solo es muy difícil a la hora de desarrollar una solución, sino porque su mantenimiento posterior es una verdadera pesadilla: cualquier cambio en cualquier aplicación puede hacer fallar la interfaz de transferencia e impedir la comunicación entre ellas.

Lo que se necesita es una herramienta basada en estándares para integrar sistemas y aplicaciones heterogéneos sobre una serie de plataformas y protocolos de comunicación heterogéneos, así como una metodología bien establecida para lograr el nivel óptimo de integración, de manera que la infraestructura subyacente facilite –en lugar de impedir- los cambios posteriores que puedan surgir como respuesta a la evolución en las necesidades de la empresa..

Qué es SOA

La Arquitectura SOA establece un marco de diseño para la integración de aplicaciones independientes de manera que desde la red pueda accederse a sus funcionalidades, las cuales se ofrecen como servicios. La forma más habitual de implementarla es mediante Servicios Web, una tecnología basada en estándares e independiente de la plataforma, con la que SOA puede descomponer aplicaciones monolíticas en un conjunto de servicios e implementar esta funcionalidad en forma modular.

¿Qué es un servicio exactamente? Un servicio es una funcionalidad concreta que puede ser descubierta en la red y que describe tanto lo que puede hacer como el modo de interactuar con ella. Desde la perspectiva de la empresa, un servicio realiza una tarea concreta: puede corresponder a un proceso de negocio tan sencillo como introducir o extraer un dato como “Código del Cliente”. Pero también los servicios pueden acoplarse dentro de una aplicación completa que proporcione servicios de alto nivel, con un grado de complejidad muy superior –por ejemplo, “introducir datos de un pedido”-, un proceso que, desde que comienza hasta que termina, puede involucrar varias aplicaciones de negocio.

La estrategia de orientación a servicios permite la creación de servicios y aplicaciones compuestas que pueden existir con independencia de las tecnologías subyacentes. En lugar de exigir que todos los datos y lógica de negocio residan en un mismo ordenador, el modelo de servicios facilita el acceso y consumo de los recursos de IT a través de la red. Puesto que los servicios están diseñados para ser independientes, autónomos y para interconectarse adecuadamente, pueden combinarse y recombinarse con suma facilidad en aplicaciones complejas que respondan a las necesidades de cada momento en el seno de una organización.

Las aplicaciones compuestas (también llamadas “dinámicas”) son lo que permite a las empresas mejorar y automatizar sus procesos manuales, disponer de una visión consistente de sus clientes y socios comerciales y orquestar sus procesos de negocio para que cumplan con las regulaciones legales y políticas internas. El resultado final es que las organizaciones que adoptan la orientación a servicios pueden crear y reutilizar servicios y aplicaciones y adaptarlos ante los cambios evolutivos que se producen dentro y fuera de ellas, y con ello adquirir la agilidad necesaria para ganar ventaja competitiva.

Servicios Web

La adopción de una solución de diseño basada en SOA no exige implantar servicios Web. No obstante, como ya comentamos anteriormente, los servicios Web son la forma más habitual de implementar SOA. Los servicios Web son aplicaciones que utilizan estándares para el transporte, codificación y protocolo de intercambio de información. Los servicios Web permiten la intercomunicación entre sistemas de cualquier plataforma y se utilizan en una gran variedad de escenarios de integración, tanto dentro de las organizaciones como con partners de negocios.

Los servicios Web se basan en un conjunto de estándares de comunicación, como son XML para la representación de datos, SOAP (Simple Object Access Protocol) para el intercambio de datos y el lenguaje WSDL (Web Services Description Language) para describir las funcionalidades de un servicio Web. Existen más especificaciones, a las que se denomina genéricamente como la arquitectura WS-*, que definen distintas funcionalidades para el descubrimiento de servicios Web, gestión de eventos, archivos adjuntos, seguridad, gestión y fiabilidad en el intercambio de mensajes y transacciones.

Microsoft anunció por vez primera su modelo de servicios Web en septiembre de 1999, y a partir de ese momento se inició una corriente innovadora que ha transformado profundamente el panorama de la arquitectura de aplicaciones. Desde la aparición de la versión 1.0 de .NET Framework, las inversiones de Microsoft en herramientas y su alto nivel de compromiso con los servicios Web dentro de la plataforma Windows han contribuido al fuerte desarrollo actual de la Orientación a Servicios.

Poco después Microsoft comenzó a colaborar con IBM para desarrollar la organización Web Services Interoperability Organization (WS-I), institución que promueve la interoperabilidad entre plataformas, sistemas operativos y lenguajes de programación. Actualmente en WS-I hay más de 150 miembros, y ha creado servicios Web que resuelven distintas áreas críticas en aspectos como la interoperabilidad, seguridad y fiabilidad de la mensajería.

Qué es SaaS

Otro concepto muy ligado a SOA es la noción de “Software como Servicio” (Saas, “Software as a Service”). En pocas palabras, SasS puede definirse como “software que se pone en explotación en la modalidad de servicio gestionado y que al cual se accede a través de Internet”.

El concepto de SaaS suele asociarse con los proveedores de servicios de aplicación (ASPs) de los años 90, que ofrecían aplicaciones “empaquetadas” a los usuarios corporativos a través de Internet.

Estos primeros intentos de poner en marcha soluciones de Software a través de Internet tenían más en común con las aplicaciones corporativas tradicionales (las que se instalan y utilizan dentro de la red interna de las empresas) que con las actuales aplicaciones SaaS en muchos aspectos, tales como el modelo de licencia y la arquitectura. Puesto que esas aplicaciones se crearon en principio como aplicaciones para un solo destinatario, su capacidad para compartir datos y procesos con otras aplicaciones estaba muy limitada y tendían a ser escasamente atractivas en comparación con sus equivalentes de instalación en local.

Hoy día las aplicaciones SaaS pretenden aprovechar las ventajas de la centralización a partir de una arquitectura de instancia única con múltiples usuarios y ofrecer una experiencia con funcionalidades avanzadas que compitan con ventaja frente a las aplicaciones instaladas localmente. Una aplicación SaaS normalmente la ofrece un proveedor de forma directa o un intermediario (llamado “agregador”) que empaqueta ofertas SaaS de distintos proveedores y las ofrece como una plataforma unificada de e aplicaciones o una suite de servicios de aplicación.

A diferencia del modelo de licencias habitual del software que se instala en las empresas, el acceso a las aplicaciones SaaS se suele basar en un modelo de suscripción, donde los clientes pagan una tarifa por adelantado para utilizarlas. Las estructuras de precios varían de unas aplicaciones a otras: algunos proveedores aplican una tarifa plana con acceso ilimitado a diversas funcionalidades de las aplicaciones, y otros aplican tramos tarifarios que dependen del nivel de utilización.

SaaS además se posiciona como uno de los pilares del desarrollo de la orientación a servicios. A los efectos de este documento, nos vamos a referir de forma general a SOA, incluyendo en este concepto tanto los servicios implantados en local como los alojados en Internet. Consideramos que SaaS es un componente fundamental en cualquier estrategia SOA de un cliente..

Qué es BPM

El concepto de BPM (Business Process Management) está también muy ligado a SOA. BPM es una disciplina de gestión que combina una visión centrada en procesos y de integración de funcionalidades que pretende mejorar la efectividad de las organizaciones. Una solución BPM dispone de los medios necesarios para la realización efectiva de estos procesos así como las funcionalidades necesarias para que los gestores de las empresas puedan controlar y modificar los flujos de trabajo (“workflows”) tanto manuales como automáticos.

La gestión de procesos de negocio tiene sus orígenes en los Sistemas de Gestión de Calidad Total y la reingeniería de procesos. Puesto que les añade un marco tecnológico de desarrollo, BPM es más que una combinación de estas disciplinas: BPM es una disciplina de gestión de procesos dirigida mediante Tecnologías de Información, capaz de mejorar la agilidad organizativa y que mejora la capacidad de las personas para introducir cambios en los procesos e innovar de forma rápida. Por consiguiente, BPM permite el alineamiento de las tecnologías de información con las actividades de negocio, tanto en el seno de la propia organización como fuera de ella, con socios comerciales, proveedores y clientes.

Los procesos de negocio pueden ser estructurados o no estructurados, dependiendo de hasta qué punto los pasos que comprenden son pasos bien establecidos – y susceptibles, por tanto, de automatización- o intercambiables, y generalmente ejecutados por personas solamente o por personas que interactúan con sistemas. Las personas son una parte esencial de prácticamente cualquier proceso de negocio: aplican las soluciones y disponen de la visión que hace avanzar a una empresa, por lo que el objetivo debe ser aumentar su capacidad para crear e innovar y ser más productivas (y no “hacer reingeniería” pretendiendo colocar a las personas fuera de los procesos).

Aunque BPM puede considerarse como una entidad al margen de las iniciativas SOA, la capacidad para definir nuevos procesos de negocio de forma flexible y rápida es mucho mayor si los recursos de los sistemas de IT se exponen en la forma de orientación a servicios. A los efectos de este whitepaper, nosotros nos referiremos a la composición y monitorización de procesos de negocio como una parte fundamental dentro del desarrollo de una estrategia SOA..

Beneficios de SOA

Los beneficios de SOA para una organización se plasman a dos niveles distintos: al del usuario corporativo y a nivel de la organización de IT. Desde el punto de vista de la empresa, SOA permite el desarrollo de una nueva generación de aplicaciones dinámicas que resuelven una gran cantidad de problemas de alto nivel, fundamentales para el crecimiento y la competitividad. Las soluciones SOA permiten entre otras cosas:

Mejorar la toma de decisiones. Al integrar el acceso a los servicios e información de negocio dentro de un conjunto de aplicaciones dinámicas compuestas, los directivos disponen de más información y de mejor calidad (más exacta y actualizada). Las personas, procesos y sistemas que abarcan múltiples departamentos pueden introducirse de forma más directa en una panorámica unificada, lo que permite conocer mejor los balances de costes y beneficios que se producen en las operaciones de negocio que se realizan a diario. Y al disponer de mejor información en un tiempo menor, las organizaciones pueden reaccionar de manera más ágil y rápida cuando surgen problemas o cambios.

Mejorar la productividad de los empleados. Un acceso óptimo a los sistemas y la información y la posibilidad de mejorar los procesos permiten a las empresas aumentar la productividad individual de los empleados. Estos pueden dedicar sus energías a los procesos importantes, los que generan valor añadido y a actividades de colaboración, semiestructuradas, en vez de aceptar las limitaciones y restricciones impuestas por los sistemas de IT rígidos y monolíticos. Más aún: puesto que los usuarios pueden acceder a la información en los formatos y modalidades de presentación (web, cliente avanzado, dispositivo móvil), que necesitan, su productividad se multiplica en una gran cantidad de escenarios de uso, habituales o nuevos.

Potenciar las relaciones con clientes y proveedores. Las ventajas de SOA trascienden las fronteras de la organización. Los beneficios que ofrece SOA trascienden los límites de la propia organización. Los procesos de fusión y compra de empresas se hacen más rentables al ser más sencilla la integración de sistemas y aplicaciones diferentes. La integración con partners comerciales y la optimización de los procesos de la cadena de suministro son, bajo esta perspectiva, objetivos perfectamente asequibles. Con SOA se puede conseguir mejorar la capacidad de respuesta a los clientes, habilitando por ejemplo portales unificados de servicios. Si los clientes y proveedores externos pueden disponer de acceso a aplicaciones y servicios de negocio dinámicos, no solamente se permite una colaboración avanzada, sino que se aumenta la satisfacción de clientes y proveedores. SOA permite flexibilizar los procesos críticos de compras y gestión de pedidos –habilitando modalidades como la subcontratación de ciertas actividades internas- superando las restricciones impuestas por las arquitecturas de IT subyacentes, y con ello consiguiendo un mejor alineamiento de los procesos con la estrategia corporativa.

SOA contribuye también a documentar el modelo de negocio de la empresa y a utilizar el modelo de negocio documentado para integrar en él y dar respuesta a las dinámicas de cambio que se produzcan y optimizarlo de acuerdo con ellas.

Desde el punto de vista de los departamentos de IT, la orientación a servicios supone un marco conceptual mediante el cual se puede simplificar la creación y mantenimiento de sistemas y aplicaciones integrados, y una fórmula para alinear los recursos de IT con el modelo de negocio y las necesidades y dinámicas de cambio que le afectan.

Aplicaciones más productivas y flexibles. La estrategia de orientación a servicios permite a IT conseguir una mayor productividad de los recursos de IT existentes –como pueden ser las aplicaciones y sistemas ya instalados e incluso los más antiguos- y obtener mayor valor de ellos de cara a la organización sin necesidad de aplicar soluciones de integración desarrolladas ex profeso para este fin. La orientación a servicios permite además el desarrollo de una nueva generación de aplicaciones compuestas que ofrecen capacidades avanzadas y multifuncionales para la organización con independencia de las plataformas y lenguajes de programación que soportan los procesos de base. Más aún: puesto que los servicios son entidades independientes de la infraestructura subyacente, una de sus características más importantes es su flexibilidad a la hora del diseño de cualquier solución.

Desarrollo de aplicaciones más rápido y económico. El diseño de servicios basado en estándares facilita la creación de un repositorio de servicios reutilizables que se pueden combinar en servicios de mayor nivel y aplicaciones compuestas en respuesta a nuevas necesidades de la empresa. Con ello se reduce el coste del desarrollo de soluciones y de los ciclos de prueba, se eliminan redundancias y se consigue su puesta en valor en menos tiempo. Y el uso de un entorno y un modelo de desarrollo unificados simplifica y homogeneíza la creación de aplicaciones, desde su diseño y prueba hasta su puesta en marcha y mantenimiento.

Aplicaciones más seguras y manejables. Las soluciones orientadas a servicios proporcionan una infraestructura común (y una documentación común también) para desarrollar servicios seguros, predecibles y gestionables. Conforme van evolucionando las necesidades de negocio, SOA facilita la posibilidad de añadir nuevos servicios y funcionalidades para gestionar los procesos de negocio críticos. Se accede a los servicios y no a las aplicaciones, y gracias a ello la arquitectura orientada a servicios optimiza las inversiones realizadas en IT potenciando la capacidad de introducir nuevas capacidades y mejoras. Y además, puesto que se utilizan mecanismos de autenticación y autorización robustos en todos los servicios –y puesto que los servicios existen de forma independiente unos de otros y no se interfieren entre ellos- la estrategia de SOA permite dotarse de un nivel de seguridad superior.

Cómo se resuelven los retos de SOA

Embarcarse en un proyecto de SOA supone tener que resolver una serie de retos, tanto a nivel organizativo como técnico, y estos retos pueden convertirse en verdaderas barreras insuperables si se ha partido de la idea de que SOA es el remedio para toda clase de males..

Para que las iniciativas de adopción de SOA tengan un fin satisfactorio, hay que asegurarse de que se cumplen una serie de condiciones indispensables:

Definir claramente los objetivos de negocio. El primer paso a la hora de adoptar SOA es identificar con claridad los problemas o retos empresariales más prioritarios. Cuando más precisa sea esa formulación, más fácilmente se podrá delimitar la dirección y el alcance de cualquier proyecto SOA. Disponer de una visión y un rumbo claros desde el principio hará mucho más fácil la ejecución de procesos cuya esencia es la integración de múltiples funciones.

Definir claramente el alcance del proyecto SOA. El objetivo de cualquier proyecto SOA no debe consistir en renovar de forma indiscriminada y masiva toda la infraestructura de IT. Este tipo de megaproyectos fracasan a la hora de implementarlos porque cuando por fin se ha conseguido crear la solución, las condiciones del negocio suelen haber cambiado tanto que los problemas que ahora deben resolverse ya no tienen mucho que ver con aquellos que se pretendían resolver cuando se inició el proyecto. El objetivo real de cada iniciativa SOA debe ser responder a necesidades concretas de negocio y crear soluciones en pasos discretos, incrementales e iterativos.

Evitar introducir SOA sin motives reales que lo justifiquen. La adopción de SOA no debe considerarse una necesidad tecnológica, sino organizativa: debe responder a las necesidades de la organización. Si la introducción de SOA solamente responde al puro gusto por disponer de SOA y se empiezan a crear servicios sin un significado de negocio claro, sin la granularidad adecuada o con demasiadas interconexiones, el resultado será una implementación excesivamente compleja, inmanejable y tremendamente costosa.

Gestionar el proceso. Los servicios y aplicaciones se corresponden con procesos y los outputs de información deseados a través de las diversas áreas funcionales de la organización. Puesto que representan procesos compartidos, es necesario que se les asigne un propietario para que puedan inventariarse y gestionarse a fin de garantizar que cumplen en todo momento con las directivas corporativas y responden adecuadamente a las necesidades que los justifican.

Ejecución de un proyecto SOA. Un ejemplo práctico

Una vez hemos analizado SOA a un nivel relativamente elevado, es el momento de descender un poco y ver cómo se desarrolla en la práctica un proyecto SOA en una organización. Vamos a utilizar un ejemplo ficticio que servirá para poner de manifiesto cuál consideramos que es la mejor estrategia para un proyecto típico bajo esta arquitectura.

Atención centrada en los condicionantes de la empresa

Antes de que un desarrollador escriba la primera línea de código es imprescindible identificar cuáles son los principales elementos motrices de la empresa de cara al proyecto SOA y las dependencias existentes entre el propio negocio y las tecnologías que lo soportan. Ignorar el contexto empresarial puede dar origen a un proyecto donde la infraestructura SOA se implante sin motivo o donde las inversiones realizadas no tengan un correlato adecuado con las necesidades y prioridades de la propia empresa.

Se aplican generalmente dos tipos de estrategia para implementar SOA: la denominada “descendente” (“top-down” en inglés) y la “ascendente” (o “botton-up”). Ambas tienen sus propios puntos débiles que pueden poner en riesgo el éxito del proyecto. Muchas organizaciones que han intentado poner en marcha una infraestructura SOA aplicando el enfoque top-down han descubierto después que cuando la infraestructura por fin se ha puesto en servicio, está desconectada de las necesidades reales del negocio. Y a la inversa, un enfoque ascendente puede también fracasar porque puede originar una implementación caótica de servicios creados sin tener en cuenta los objetivos de la organización.

Existe una metodología híbrida, denominada de “término medio” (“middle-out”) que es una síntesis equilibrada de estas dos anteriores. Los condicionantes principales de la empresa y la visión estratégica se emplean en primer lugar para establecer con claridad el rumbo y las prioridades del proyecto.

Basándose en ellos, se inicia un proceso iterativo de múltiples pasos orientados a crear pequeños fragmentos de funcionalidades de alto nivel, y en cada iteración se entrega a la organización una nueva aplicación dinámica que se utiliza para generar retorno de la inversión. Microsoft lleva mucho tiempo defendiendo esta visión práctica, “del mundo real” para la adopción de arquitecturas orientadas a servicios: esta estrategia tiene la ventaja de una rápida puesta en valor y genera resultados de negocio en todos sus pasos incrementales e iterativos, facilitando un correcto alineamiento de los recursos de IT con las condiciones de negocio, aunque varíen éstas con el tiempo.

El ejemplo siguiente muestra cómo se lleva a cabo una definición clara de los elementos condicionantes del negocio.

Ejemplo: Condicionantes de negocio para SOA en una gran empresa

Northern Electronics es un fabricante de componentes electrónicos con sede en Everett, Washington, y dispone de una fábrica en Nanjing, China, de la cual es accionista mayoritario.

La compañía está padeciendo diversas presiones competitivas y está buscando la forma de aumentar su ventaja mediante una gestión más eficiente de su cadena de valor. Existe un consenso general dentro de la compañía al respecto de que, para conseguirlo, habrá que identificar y aprovechar las oportunidades de consolidación y automatización de las actividades de negocio que componen la cadena de valor.

La gestión de pedidos en Northern Electronics involucra a los departamentos de ventas, clientes, almacén y logística. Los envíos de productos, debido a que requieren un esfuerzo notable de coordinación con otras empresas –empresas de transporte, almacenamiento, etc.- siempre han sido especialmente conflictivos. La gestión de incidencias –conseguir que la persona adecuada disponga de la información necesaria para resolver los problemas cuando surgen- ha sido ineficiente debido al elevado número de pasos manuales que requiere. El resultado final es que la compañía ha incurrido en unos sobrecostes de gestión y en algunos casos han derivado en pérdida de negocio.

El responsable de operaciones asigna un gestor de proyecto para crear un inventario de los procesos que componen la gestión de pedidos, con el objetivo de conocer los roles de las personas que intervienen en ellos, sus actividades y las tecnologías que se aplican para esos procesos desde el principio hasta el final.

Según va creciendo la lista del inventario de procesos, es cada vez más evidente que hay un elevado número de pasos manuales relacionados con la toma de datos de clientes, seguimiento del inventario y planificación de la logística que añaden tiempo, errores e ineficiencias al proceso. Más aún: la deficiente integración entre aplicaciones antiguas y las de línea de negocio –las bases de datos de clientes y sistemas de inventario y contabilidad- no permiten el nivel de inteligencia de negocio que se requiere para responder con rapidez a los cambios dentro del proceso de cumplimentación de pedidos.

Los ejecutivos de la empresa quieren empezar a integrar y automatizar los procesos para eliminar las ineficiencias dentro del proceso de envío de pedidos de clientes y el personal de IT ha sugerido que la arquitectura SOA para integración puede contribuir a crear dentro de Northern Electronics una infraestructura tecnológica flexible y bien interconectada. Los directivos de Northern Electronics destacan la visión de negocio y los condicionantes más importantes, que se emplean para identificar y delimitar el alcance de un conjunto de funcionalidades SOA bien definidas y orientadas, necesarias para dar cobertura al proceso una vez ha sido rediseñado y optimizado en la teoría.

Una estrategia de pasos progresivos

Una vez que los principales condicionantes del negocio están claramente definidos, puede comenzar el proceso de implementación. Partiendo de una visión y unas prioridades claramente definidas, cada proyecto de implementación es un paso progresivo con creación (“exposición”) de nuevos servicios, agregación (“composición”) de dichos servicios dentro de procesos más amplios, y puesta de estos agregados a disposición de los usuarios (“consumo”) dentro de la empresa.

Exposición

La fase de exposición de esta metodología SOA se centra en generar los servicios necesarios a partir de las aplicaciones y datos disponibles. La creación de servicios puede ser de grano fino (un servicio individual que se corresponde con un proceso de negocio individual, como puede ser por ejemplo “insertar código de producto”), o de grano grueso (múltiples servicios que van juntos para realizar una serie de funciones de negocio relacionadas entre sí, como “procesar un pedido”).

La fase de exposición viene también muy condicionada por la forma en que se implementan los servicios. La funcionalidad de los recursos de IT subyacentes puede hacerse disponible de forma directa –nativa- si esas aplicaciones ya son, por sí mismas, compatibles con los servicios Web o pueden hacerse disponibles como servicios Web utilizando algún adaptador.

Composición

Cuando los servicios ya están creados se pueden combinar en servicios de mayor nivel de complejidad, aplicaciones o procesos de negocio multifuncionales. Puesto que los servicios son entidades independientes entre sí y también con respecto a la infraestructura de IT en la cual se basan, pueden combinarse y reutilizarse con la máxima flexibilidad. Y según van evolucionando los procesos de negocio, las reglas y prácticas internas pueden ajustarse sin las restricciones impuestas por las limitaciones que afectan a las aplicaciones de base.

Consumo

Después de crear una nueva aplicación o proceso de negocio, la funcionalidad resultante se pone a disposición (consumo) por parte de usuarios finales o de otros sistemas de IT. Al crear aplicaciones compuestas que consumen estos servicios y procesos, la organización dispone ahora de aplicaciones dinámicas que permiten mejorar la productividad y la visión interna del rendimiento de la empresa. Los usuarios pueden consumir los servicios compuestos utilizando distintos medios, como pueden ser portales Web, clientes avanzados, aplicaciones de Office y dispositivos móviles.

Más información sobre Arquitectura Orientada a Servicios (SOA) en www.microsoft.com/soa.

 

 

 

 

 
   
© Club-BPM 2006. Todos los derechos reservados.