lunes, 29 de octubre de 2007

SOA para CIOs

Continuando con la publicación de nuestro trabajo, esta semana os dejamos el punto de vista SOA que podría tener un Director General.

¿En que me va a ayudar SOA?

SOA es en esencia un concepto sencillo: consiste en estandarizar funciones o servicios de software, para que otro software pueda compartir información con ellos, dentro y fuera de la empresa. “Si miras a tu empresa, probablemente tendrás sistemas duplicados con mucha información copiada entre ellos. Por ejemplo, hay mucha inversión hoy en sistemas CRM, sin embargo las empresas no sacan tanto provecho de ellos. Con SOA podrás alcanzar un mejor retorno de la inversión y reutilizar piezas a nivel macro” dice Dave Mendlen, Director de Web Services Marketing en Microsoft.
SOA es la más actual en una lista de muchas estrategias orientadas a traer a la luz ese detalle que se estaba perdiendo. SOA promete a empresas un portafolio de servicios que pueden ser mezclados de forma rápida y encajados de forma efectiva para crear procesos automatizados, y por lo tanto reduciendo costes de aplicativos de manera significativa.
De acuerdo con una encuesta de Forrester Research, el 46% de las grandes corporaciones que usan SOA (y 27% de las medianas y pequeñas corporaciones) dicen usar SOA para “alcanzar la transformación estratégica del negocio”. Otras encuestas muestran que la expectativa más popular es generar una “ventaja competitiva” y “desarrollar nuevos productos y capacidades”. En una encuesta de CIO/Computerworld se puede observar que el 77% de los entrevistados dicen que SOA aporta más flexibilidad del negocio.
Hasta ahora las empresas que tuvieron más éxito con SOA son las que tuvieron éxito en implantaciones previas de tecnología: grandes empresas con grandes presupuestos destinados a TI (normalmente telcom y instituciones financieras). Estas suelen ser empresas con líderes sofisticados y que apoyan inversiones en tecnología.

¿Que ocurre con mis proveedores de TI?
En el nuevo mundo de SOA, los grandes proveedores están de forma repentina interesados en que sus aplicativos funcionen bien con los demás.
Antes, el miedo que los CIOs tenían de enfrentarse a demasiados problemas de integración le daba una ventaja a un proveedor cuando la empresa quería añadir un aplicativo a su lista. Era más fácil coger un aplicativo de su actual proveedor predominante que correr el riesgo de ir con uno nuevo, por más que ofreciera más funcionalidades, pues los desastres de integración se habían hecho muy conocidos en la industria.
SOA hace una afirmación radical: la tecnología es construida de acuerdo con los servicios especificados por el negocio, no por los procesos internos de un aplicativo de un proveedor. El proveedor ya no importa, lo que importa es la conectividad entre los aplicativos. Como resultado, algunas grandes corporaciones como SAP y Oracle han hecho con que su estrategia sea basada más en la capacidad de integración de sus programas con otros.

¿Debo adoptar SOA en mi empresa? ¿Cuánto cuesta?
La parte difícil de la decisión de implementar o no SOA viene del hecho que es muy difícil medir SOA. “No hay ninguna métrica que diga que si soy mas ágil, reduciré un X% de costes. La dificultad mas grande de SOA es reflejar en una hoja de cálculo su ROI”, dice Daniel Scholler, vicepresidente de investigación en Gartner.
¿Y como se haría un caso de negocio para SOA? ¿Se puede? Es una tarea difícil, pero tal y como afirma Randy Heffner, analista de Forrester Research, hay que hacerla “… no hables con el negocio sobre SOA porque a ellos no les importa. Al negocio solo le interesa escuchar hablar de SOA si reduce costes de aplicativos y los hace funcionar más rápido.”.
¿Y cuando es una buena idea usar SOA? Cuando existe complejidad. Pequeñas empresas consolidadas en una sola infraestructura y las cuales no tienen requerimientos complejos de integración de sistemas no son candidatos para SOA. Las empresas grandes con proveedores responsables de más de un 60% de su infraestructura también se lo tienen que pensar con cuidado antes de ir hacia SOA.
¿Cuanto podría costar? Crear un servicio requiere mas planificación y diseño que los desarrollos de aplicativos convencionales. Heffner (de Forrester) estima que el trabajo adicional necesario para crear desarrollos orientados a servicios pueden costar de 30% a 100% más caros en la fase de diseño, la cual normalmente equivale a 10% del coste total de un proyecto de aplicativos.
¿Y como SOA afectaría mi equipo de TI? Si tienes una empresa con estructura descentralizada, prepárate para las dificultades. SOA no solamente va hacia centralización además la requiere.
¿Cuales son las principales razones para implementar SOA? En primer lugar la reutilización de muchos de los activos en los cuales estas invirtiendo dinero para desarrollar. En segundo lugar, tiene un “time to market” mas rápido, ya que puedes combinar elementos de forma más rápida y puedes reaccionar más rápido a los cambios del entornos. Eso significa que la capacidad de medir el tiempo de creación de un nuevo producto ya no tarda meses, sino en días o semanas, por lo tanto generar ahorros. Eso quizás significa también que no se debería tratar de reinventar la arquitectura tecnológica si el entorno o industria no lo requiere, o no es lo suficientemente dinámico.

___________________

Mas información: www.cio.com

lunes, 22 de octubre de 2007

SOA para todos

El primer paso antes de pasar a explicar como SOA puede ser entendido y afectar al organigrama de la empresa, es conveniente empezar por definir ciertos conceptos básicos.

¿Qué es SOA?
Existen multitud de definiciones, prácticamente cada fabricante de software, autoridad académica o publicación especializada tiene la suya. Proponemos la siguiente definición integradora:
Arquitectura orientada a servicios, SOA, es una propuesta de arquitectura (o estructura base) para la comunicación entre servicios (o unidades de trabajo) que permite el diseño y construcción de soluciones de TI donde los procesos de negocio se organizan y colaboran de manera más eficiente y eficaz.
Como se puede observar en el nombre y la definición están incluidos los conceptos de arquitectura y servicio. Entendemos por arquitectura la estructura de un sistema, sus componentes, propiedades y relaciones entre los mismos. Aunque aplicado de manera intuitiva, se trata de un concepto relativamente moderno. Algunos ejemplos de arquitecturas son: cliente servidor, tres capas, punto a punto, computación distribuida, etc. Por otro lado, un servicio es una representación lógica de una actividad del negocio repetible (comprobar crédito, validar reserva de billete, etc.) que acepta una serie de llamadas y devuelve unos resultados mediante unos protocolos previamente definidos. Tanto para la arquitectura como para los servicios, la tecnología concreta que permite su realización queda fuera de la definición.

¿Por qué SOA?
Conviene citar la excelente respuesta a esta pregunta que da IBM [1]:

"Lo que hace la arquitectura orientada a servicios es crear un lenguaje para que los negocios y la IT hablen entre si. Y ese proceso es un proceso de negocios. Por lo tanto el analista de negocios observa el proceso, lo simula y entonces, uniendo las diferencias - a través del software o de la IT - obtiene el código que luego convierte en un idioma que la persona de IT pueda comprender.
Esto codifica el rol y el vínculo entre los negocios y la IT. Eleva ambos roles, en vez de realzar uno o minimizar otro. De esta manera los pone al mismo nivel y le da la posibilidad de comunicarse con el otro. Lo protege del síndrome de reescribir, revisar, rehacer todo."

Sandy Carter. Vice President, Strategy for Channels and Marketing IBM
Normalmente los objetivos a corto plazo de TI y de negocio son diferentes [2]. Negocio normalmente quiere que TI sea más ágil sin tener que pagar más, y prefiere o necesita desarrollos rápidos para poder ofrecerlos a los clientes. TI necesita recursos para mantener aplicaciones heredadas en perfecto estado y desarrollar nuevas soluciones, y prefiere construir infraestructura que soluciones puntuales. SOA trata de conciliar las dos visiones.

¿Qué no es SOA?
Quizás una buena manera de comprender que es SOA es revisar que no es. SOA no es un producto, una tecnología especifica, un lenguaje de programación, un sistema operativo, una herramienta, un estándar o un paquete de software que se pueda comprar a un fabricante de TI.
SOA es en definitiva una manera de pensar, una manera de organizar la fusión de distintas tecnologías y estándares para lograr el objetivo de reducir la distancia entre negocio y TI.

Un ejemplo
En este ejemplo (utilizado por accenture, SAP [3] y algunas publicaciones) se puede observar un paralelismo entre la industria del automóvil y la de las soluciones software. Si observamos la evolución del diseño y construcción de automóviles a lo largo del tiempo podemos diferenciar tres tipos de estrategias.

Al principio los modelos eran diseñados uno a uno, y tenían procedimientos de fabricación exclusivos. Los productos estaban altamente diferenciados a cambio de costes elevados de diseño y fabricación. Esta fase puede asimilarse a la de producción de software a medida.

El siguiente paso en la industria fue el que los fabricantes acordaron vender el mismo coche bajo dos nombres diferentes. Las piezas eran comunes y estaban dirigidas a compradores similares. El compartir piezas permitió la reducción de costes, pero a costa de la diferenciación del producto. Este quizás es el momento actual para el software, en la que por ejemplo los ERP dan soluciones similares a todos los usuarios y, aunque permiten cierta personalización, el producto final es básicamente el mismo.

La industria del automóvil, más antigua que la del software, se encuentra en nuestros días aún más avanzada. En el modelo actual de plataformas los fabricantes son capaces de ofertar coches muy diferenciados, pero el interior (sistema de frenos, electrónica, etc. son los mismos). Si los componentes internos son de una cierta calidad y están bien ajustados, la calidad del producto final también se ajustará al estándar. Para SOA estos componentes estándar son los servicios, y se puede cambiar un servicio tal y como Volkswagen cambia el alternador usado en el Audi A3 el VW Passat. El concepto de plataforma ha proporcionado a los fabricantes de automóviles la capacidad de fabricar productos muy diferenciados, más rápidamente, a un coste reducido y manteniendo la calidad deseada. La propuesta de valor de SOA es análoga.

El puzzle SOA
Lo que trata de conectar la infraestructura basada en SOA que estamos proponiendo es una serie de usuarios (internos como ventas, o externos como clientes, B2B, socios, etc.) que acceden a los sistemas de información a través de una nueva capa que permite localizar y orquestar los servicios ofrecidos.

Por supuesto detrás de esta simplificación existe un océano de definiciones, conceptos, estrategias y tecnologías que se tratarán de ir ampliando en los siguientes puntos.

_________________________________

[1] IBM – Arquitectura Orientada a Servicios Simplificada

[2] Yogish Pai SOA Blueprint - Why SOA?

[3] SAP INFO - Cutting the Gordian Knot

SOA para directivos

Con este artículo se inicia la publicación del trabajo final que hemos realizado. Se irá publicando a lo largo de 8 entregas en los que se intentará aproximar SOA a cada una de las direcciones que forman una empresa.

El concepto de SOA en sí mismo es suficiente para llenar decenas de manuales. Este documento, por tanto, pretende ser solo una guía introductoria a la materia, intentando acercar este concepto a cada uno de los tipos de directivos que componen la empresa, sean o no miembros del área tecnológica.

Esperamos que lo encontreis útil.

_vitaC_

jueves, 4 de octubre de 2007

Feed SOA

He estado intentando localizar un feed que de noticias especificas de SOA, la verdad, no hay mucho donde escoger. He encontrado este:

http://feeds.feedburner.com/dev2devsoa

Un saludo.