miércoles, 4 de diciembre de 2013

SOA

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 genera 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.
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.
• 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.

No hay comentarios:

Publicar un comentario