Topologías de ESB

Cuando nos planteamos la utilización de un bus de servicios empresariales (ESB) como parte de la adopción de nuestra Arquitectura SOA; normalmente existen 2 aproximaciones principales a la utilización del mismo: utilizar un único ESB como "tubo unificado" de comunicación de todos los servicios empresariales; o montar una topología de varios ESB que solventen problemáticas de integración a nivel departamental o de diversos dominios.

Cada una de las 2 aproximaciones tiene sus ventajas y desventajas:

  • Si dejamos que cada departamento implemente su propio ESB; estaremos dando libertad para que cada uno adopte la solución que quiera; no obstante la comunicación entre varios dominios tendrá que ser establecida de manera explícita.
  • Por el contrario, si utilizamos un único ESB; el control del mismo será único y todos los departamentos tendrán mayor rigidez a la hora de realizar sus integraciones o desarrollos; y además la comunicacion entre servicios interdepartamentales será casi nativo a la propia topología de un esb único.

En cualquier caso, el utilizar un único ESB no implica una anarquia en la utilización de servicios y la "no existencia" de bordes o límites entre departamentos. Normalmente, una aproximación de ESB único implica la creación de dominios y subdominios que establecen los límites del conjunto de servicios que expongan (tendremos servicios públicos a todos los dominios del ESB y privados para el propio dominio).

Cuando utilizamos registros de servicios, en el caso de ESB unificados, la sincronización entre registros (en caso de que existan varias instancias) es propia de este tipo de topologías. Si hablamos de buses diferentes; tiene que existir un proceso externo de sincronización (cuando sea necesario) o al menos el conocimiento de la existencia de diferentes registros (en un intento de favorecer la publicación y suscripción a servicios empresariales, para así buscar la reutilización como fin último de nuestros registros).
Incluso, cuando tratamos temas como el de la gobernabilidad es muy importante tener constancia de todos los posibles ESB que estemos utilizando (un cambio en un servicio de un ESB debe ser notificado a cualquier consumidor de otro ESB que pueda referenciarlo). Es por ello importante, definir los modelos de gobernabilidad que van a utilizarse, para asegurar siempre la consistencia y el conocimiento de la información que manejan.

A la hora de orquestar servicios con, por ejemplo, un motor BPEL, este necesita tener puntos de acceso a los servicios que utilice en cada uno de los buses de servicios que desee conectarse. Puede ocurrir, por ejemplo, que el motor BPEL esté integrado en el propio ESB (como por ejemplo ocurre en la especificación JBI en algunos casos) y eso facilite la orquestacion de servicios en un mismo ESB (en el caso de utilizar varios ESB, se deberán establecer gateways de comunicación entre ellos).
A raiz de esa comunicación entre buses es importante tener en cuenta la fiabilidad de las comunicaciones, ya que de utilizar buses independientes se deberán establecer métodos de comunicación que aseguren la fiabilidad de los mismos (siempre que sean necesarios y un simple protocolo http, por ejemplo, no sea suficiente).

La administración y la monitorización (BAM) en casos de buses unificados se simplifica ya que las consolas de administración están unificadas y, en el caso del BAM, la explotación de datos es más directa y fácil que cuando tenemos varios ESB’s separados.

Sea como sea, e independientemente de la solución escogida; hay que tener en cuenta siempre estos factores; ya que normalmente cuando nuestra arquitectura SOA crece, es importante tener siempre el control de todos ellos de la manera más simple y fiable posible.

¿Qué creeis? ¿Es mejor una aproximación topológica de un ESB unificado o una topología de diversos ESB’s departamentales? ¿Qué experiencias prácticas teneis al respecto?

[Recuerda que puedes plantear cualquier duda nueva o abrir cualquier tema de discusión en el nuevo Foro de Espacio SOA]

Nuevo Foro en Espacio SOA

Bueno, tras mucho tiempo desde que inicialmente pensé en crearlo, he decidido hacer de Espacio SOA un lugar más "social".

Por ello, he añadido un foro a la página web, donde la gente pueda expresar sus opiniones, exponer sus problemas (técnicos o no) y definitivamente, tener un lugar donde poder discutir libremente sobre cualquier tema.

El valor del foro se basa en la aportación de la gente; por ello, animo e invito a cualquiera a que participe en el mismo. Podeis realizar cualquier tipo de consulta o pregunta; ya sea sobre este blog, sobre aspectos de SOA o BPM en general (o en particular); problemas con herramientas de un fabricante concreto; cualquier cosa…
Estais invitados a registraros o participar de manera anónima (la decisión es vuestra).

Espero que este foro pueda aportar mucho y buen contenido a toda la gente que lo visite.

Cualquier comentario al respecto será bienvenido.

WOA, parte de SOA

Leyendo este artículo de Ron Schmelzer en ZapThink; éste habla de WOA (Web Oriented Architecture) como una parte o subconjunto de SOA.

¿Realmente creeis que tiene sentido acuñar un nuevo término para algo como ésto?

Veamos un poco de que se trata:

Según los expertos en materia, "WOA es un estilo arquitectural, subconjunto de SOA, basado en la WWW con requisitos adicionales: links globales, descentralizado y procesador del estado de las aplicaciones a través de mensajes autodescriptivos".
Incluso, se refieren a WOA como "un conjunto de protocolos Web como HTTP y XML para suministrar una aproximación a los servicios web más simple y escalable".
Dion Hinchcliffe, va más alla, al hablar de WOA como "un uso de servicios via REST".

¿Pero tiene sentido hablar de otro nuevo término? Yo creo que no; se puede hablar de WOA (si realmente la "moda" quiere ponerle un nuevo término) pero creo que no pasa de ser una especialización de SOA (y por tanto parte de él).

Creo que al hablar de teorias es más importante el sentido general de los conceptos, aunque en la práctica es más poderosa la especialización.

De hecho, si te pasas al plano práctico y piensas en la implantación de SOA en una empresa, verás que las complicaciones pueden ser miles.
En cambio, si implementas un "WOA" puede ser más fácil conseguir una aproximación a la misma (hoy en día los conceptos de Web 2.0 están de moda y todos quieren tener algo de eso en su empresa) y a partir de ahí tener la semilla sobre la que germine una Arquitectura SOA a un nivel más global y teórico.

Referencia de Arquitectura SOA (Comité OASIS)

Me llega por correo a través de la lista [webservices-latinos], la publicación del primer borrador público de la Arquitectura de Referencia SOA de Oasis.

Según la descripción del propio documento, pretende ser abstracta en naturaleza, describiendo una posible plantilla o modelo sobre la cual construir una arquitectura concreta de SOA desde tres puntos de vista:

  1. El Negocio a través de los Servicios : como conducir el negocio al contexto de SOA.
  2. La Realización de los Servicios : los requisitos para construir una arquitectura SOA.
  3. El Propietario de la Arquitectura SOA : la Gobernabilidad y Gestión de los sistemas implicados en la arquitectura.

Será interesante su lectura…

Más información en la página oficial del Comité Oasis

SOA Forum 2008

La semana pasada pude asistir al SOA Forum que el IIR organizó en el Hotel Husa Princesa en Madrid. "SOA 2008 Next Generation" para ser más exacto, que es como se denominó el evento.

2 días de presentaciones, demos y paneles de expertos donde se volvieron a reunir la mayoría de los fabricantes de productos SOA/BPM y diversas empresas de servicios implantadores de estas tecnologías.

Faltaron algunos de los grandes como Bea Systems o Software AG, aunque se pudo extraer de los asistentes un poco la evolución de los productos, novedades y, para mi lo más interesante, los casos de exito de diversas empresas ya "expertas" en implantación de tecnologías SOA/BPM.

Además, se entregaron los primeros premios SOA Awards que se llevó Vitria casi por duplicado (M30 como "mejor herramienta de integración" y el proyecto "SERVEI DE TELECOMUNICACIONS D´ANDORRA" como "mejor implementación SOA", con productos Vitria nuevamente).

Lo que si denoté en cierta medida y comentándolo con gente que también asistió al evento, es la reincidencia una vez más en cuestiones bastantes elementales como "qué es SOA y qué no es SOA". Fue algo que se pudo ver como parte de algunas presentaciones de manera repetitiva y que a estas alturas provoca hasta cansancio.

Creo que la empresa española (representada por la mayoría de los asistentes al evento) sabe de sobra qué es SOA; es algo que se les ha metido por activa y pasiva los últimos años en numerosas conferencias, eventos y demás presentaciones de mano de la jungla de proveedores del mercado.

Señores, implementemos SOA!! dejémonos de contar qué es y qué no es; creo que a estas alturas la mayoría de la gente ya tiene una idea bastante clara.
Creo que es el momento de dar el paso y comenzar proyectos con estas tecnologías. Incluso para proyectos ya existentes y "veteranos de SOA", habría que ir un poco más allá y empezar a implementar cosas como Gobernabilidad, BAM o Virtualización…

En fin, veremos a ver…

Gobernabilidad como Solución a los Errores en SOA

En otra ocasión ya hablé de Gobernabilidad en Arquitecturas SOA y de la importancia de su adopción casi desde el inicio del proyecto; como un método muy recomendado (y casi necesario) para la consecución satisfactoria del mismo.

Normalmente, muchos de los errores más comunes en proyectos SOA, tienen como solución la aplicación de una buena ejecución de gobernabilidad en la arquitectura:

  • Centralización de la información de los servicios: A medida que nuestra arquitectura crece y crece, el número de servicios puede llegar a ser inmanejable. Es frustrante que una de las máximas en SOA sea la reutilización de los servicios que se van desarrollando; y una y otra vez vemos como se rehacen y duplican los mismos desarrollos por equipos y departamentos distintos que no tienen conocimiento del total de los servicios existentes en la empresa y por tanto de las funcionalidades disponibles.

    La solución a este problema pasa por la utilización de un registro y repositorio de servicios; tan importante como necesario para centralizar toda la información existente. Así, gracias a ello, podremos rápidamente ver toda la colección de servicios que nos son accesibles, cual es su funcionalidad, como se pueden utilizar, etc…

  • Buenas prácticas de diseño: A menudo se crean servicios y más servicios; y uno de los principales problemas que nos encontramos es que en el momento en que se diseñaron no se pensaron para ser reutilizados más allá del ambito para el que fueron creados. Eso a menudo provoca que la reutilización sea bastante compleja o que haya que rediseñarlos o modificarlos para hacerlos más reutilizables.

    El problema de la remodelación de servicios radica principalmente en que suele venir acompañado de un impacto a los clientes del mismo que ya los estén utilizando y por tanto la modificación de estos (como si de una cadena se tratara). Por ello; es importante aplicar buenas prácticas de reutilización a la hora de construir servicios de tal manera que sean totalmente susceptibles de ser utilizados por cualquier cliente potencial.
    Además; es sumamente importante que los desarrollos estén probados correctamente a todos los niveles (funcionalidad, seguridad, etc..) y que cumplan políticas de interoperabilidad (WS-I) para la aceptación de los mismos en el sistema de gobernabilidad de la arquitectura.

  • Explotación correcta de los servicios: Cuando los servicios llegan a sistemas de producción; a menudo no hay un control exhausto o correcto que indique el uso de los mismos.
    Es importante la utilización de herramientas de monitorización que nos permitan tener controlados en todo momento los servicios que están siendo utilizados; asi como los clientes que están teniendo, etc… a fin de poder dimensionarlos correctamente y permitir que puedan ejecutarse sin provocar cuellos de botella.
  • Despliegues controlados / mantenimientos de versiones: El número creciente de versiones, dependencias, etc… hace que a veces halla problemas a la hora de desplegar y redesplegar nuevos desarrollos o correcciones de los ya existentes.
    Por ello, es importante controlar las versiones y las dependencias que se van creando; para que si algo sale mal, cuestiones tan importantes como un rollback de la instalación, sea rápido, fácil y sencillo. Iniciativas como OSGi posiblemente serán muy importantes en el futuro ya que solucionarán bastantes de estos problemas.

La gobernabilidad en SOA es muy importante. Preguntas como

  • ¿Qué ocurre si se cambia un servicio?
  • ¿Cómo se puede asegurar la calidad de un servicio?
  • ¿Cómo podemos asegurar que un servicio (nuevo o existente) cumple con las políticas de calidad y de seguridad establecidas por la empresa?
  • ¿Cómo podemos asegurar el rendimiento y los SLA de los servicios?

deben ser cotestadas con un Plan de Gobernabilidad SOA.

Probando SOA

Vale, estamos en ello; tenemos entre manos el proyecto SOA del siglo y es terriblemente importante que salga adelante y lo haga bien (con lo que cuesta todo como para no hacerlo)

Y es en este punto cuando nos planteamos como realizar pruebas correctas de la arquitectura para comprobar que realmente estamos construyendo una arquitectura orientada a servicios y no una simple aplicación muy cara.

La verdad, cuando hablamos de testear una Arquitectura SOA, tenemos que plantearnos ciertas cuestiones y elegir las herramientas adecuadas; ya que difiere bastante de la forma tradicional de probar aplicaciones normales.

Es importante tener en mente la arquitectura, sus partes, sus dominios; e intentar dividir la misma en partes pequeñas que sean más faciles de probar; para posteriormente ir probando la integración de las mismas hasta llegar a un punto de arquitectura más o menos global.

Por ello, ante todo, tenemos que tener en mente unos objetivos a conseguir durante las pruebas de nuestra arquitectura:

  1. Los servicios son y deben ser siempre reutilizables. Es una de las máximas de SOA y si no conseguimos eso, posiblemente la arquitectura estará abocada al fracaso.
  2. Agilidad en los cambios: los procesos y la orquestación de servicios buscan la facilidad de composición de los mismos. Un cambio debería ser rápido y fácil de hacer si la capa base de servicios es la correcta y funciona correctamente.
  3. Monitorización : ey! eso que llaman BAM. Es importante tener siempre visible nuestra arquitectura, en tiempo real; para detectar errores, cuellos de botella y otros factores que indiquen la necesidad de un cambio para la optimización de la misma.
  4. Interoperabilidad : SOA habla de reutilización y como tal nuestra arquitectura al nivel más alto posible debería ser así. No solo se trata de que nuestros servicios sean reutilizables en referencia a nuestra arquitectura; sino que incluso lo sean de cara al exterior. Las posibilidades de reutilización entre empresas debe ser importante: por ello, cuanto más estándar, mejor que mejor.

Testear una arquitectura SOA pasa por tener en cuenta los dominios de la misma que debemos asegurar en fiabilidad y consistencia; esto es, que debemos probar:

  1. Pruebas a nivel de servicio: Son la base de SOA y por tanto la base de toda la arquitectura. Probarlos a nivel de su funcionalidad es importante; pero más importante es probarlos asegurandonos su reutilización (incluso habrá ya servicios como composición de otros).
    Es importante, tener en cuenta que los servicios no son aplicaciones en sí mismas y por tanto deben ser probados atendiendo a ese factor (son independientes, aislados, sin estados, etc…). La mejor manera para probarlos es definir los casos de prueba de los servicios y ejecutarlos para comprobar su correcto funcionamiento.
    Además, hay que tener en cuenta que los servicios son autónomos (sin dependencias de otros servicios) y con una granularidad adecuada (no se trata de que sean ni muy atómicos ni muy complejos; las necesidades determinarán en cada caso como deben ser; pero es importante que tengan un sentido a nivel funcional para la empresa).
  2. Pruebas a nivel de seguridad: intentar probar los servicios con una capa de seguridad añadida desde el principio puede ser más complejo de lo que parece. Es mejor probarlos de manera simple y aislados y luego probar la capa de seguridad que tenga nuestra arquitectura añadida a los servicios.
  3. Pruebas de orquestación: como estamos hablando de composición; en algún momento tendremos orquestación de servicios y este dominio debería ser probado a partir de unos servicios fiables y seguros. En este momento estaremos hablando de pruebas que determinan la correcta comunicación entre servicios; el trabajo de manera conjunta.
    Estaremos hablando también de procesos de negocio (pruebas a nivel BPM) por lo que debemos verlo como una capa superior a probar.
  4. Pruebas de gobernabilidad: la gobernabilidad de SOA es algo muy importante y en buena medida puede ser determinante para la consecución satisfactoria de nuestra arquitectura. Es importante probar las políticas de las distintas capas que se hayan definido, los ciclos de vida y cualquier concepto de gobernabilidad que se haya introducido y deba ser probado.
  5. Pruebas de integración: bueno, más o menos tenemos todo probado; solo quedaría verlo en producción sin ningún error.
    Antes de eso es importante hacer pruebas de integración de nuestra arquitectura. El objetivo de estas pruebas es principalmente, determinar el correcto funcionamiento de las interfaces de comunicación de los distintos componentes.

Aunque no lo parezca, probar una arquitectura SOA definiendo diversos niveles y dominios de aplicación es realmente importante; ya que sino podemos encontrarnos con desagradables sorpresas.

Por ello, es recomendable que esta fase de pruebas (el Plan de Pruebas) este siempre presente en la planificación de cualquier arquitectura de este tipo.

Articulos Interesantes:

What is SOA test?
SOA Testing
SOA World - Approaching SOA Testing
Ready to Test SOA, Web Services, ESBs and BI?

SOA, SaaS y otros menesteres…

Se habla mucho ultimamente en Internet de SaaS (Software as a Service) y las posibles implicaciones que tendrá de aquí a un tiempo (algunos predicen que el futuro pasa por este tipo de servicios empresariales).

SaaS tiene sus origenes en ASP (Application Service Provider), cuya misión era almacenar paquetes de software de manera centralizada que luego se instalaban en diversos clientes (los cuales pagaban por ello a distintos niveles: departamental, unipersonal, etc…). La idea, era que la tediosa tarea de mantener actualizados los paquetes de software y en perfecto funcionamiento recayera en gente propietaria del ASP y no en los distintos clientes que pudieran utilizarlo.

Quizá por evolución, quizá por los inconvenientes de esta soluciones (imagina actualizar software por medio de una red con velocidades de hace 15 años: podría llegar a ser una tarea insufrible), surgió SaaS como una nueva manera suministrar aplicaciones a los distintos clientes.
La principal diferencia de SaaS con respecto a ASP radica en que en el caso de SaaS el acceso es por medio de un navegador de internet (son clientes ligeros), tanto en el uso de los paquetes como la administración de los mismos. Además, el concepto de SaaS se basa en los Servicios Web y la solución de API por medio de WSDL’s para su reutilización.

Después de esta pequeña introducción, está claro porque SaaS es realmente un gran amigo de SOA. Aquí, entran en uso nuevamente conceptos como SOA Global: imaginemos cientos y miles de servicios web con distintas funcionalidades que se expongan siempre bajo un mismo formato (WSDL) y se permita su reutilización sin importar donde estén o quien los gobierne.

Otro concepto bastante usado en los mismos terminos que SaaS y SOA juntos, sería el de Composición de Aplicaciones o también llamados Mashups: ahora se han puesto de moda, servicios como Dapper, Kapow o Yahoo Pipes; que nos permiten juntar en cuestión de minutos y en un mismo contexto fuentes de información totalmente diversas y de distintos tipos. Todo ello, nuevamente, gracias al uso de estándares e interfaces de uso común.

Es decir, tenemos SaaS como una forma de proveer servicios web; tenemos mashups como una forma de componerlos en aplicaciones compuestas; la pregunta es: ¿y donde cae SOA en este saco?

Yo creo que la respuesta es bastante fácil: tradicionalmente se ha pensado en SOA como una forma de crear arquitecturas en un entorno empresarial para organizaciones de diversas indoles. Pero creo, que hay que ir un paso más alla, y es precisamente ahí donde las grandes empresas pueden ofrecer servicios de cara al exterior como una nueva fuente de ingresos. Los servicios web de la SOA Global, una SOA no empresarial, sino de Internet; donde poco importe la empresa que los suministre sino la posibilidad de tenerlos accesibles a cualquier nivel y cualquier propósito.
Imagina que la omnipotente Telefónica expusiera servicios para uso público que permitieran consultar el saldo de una persona o alguna forma de enviar sms con cargo al usuario. O que alguno de los grandes bancos españoles expusiera servicios para consulta de cuentas bancarias.
Vale, se que en algunos casos más de uno me diría que eso no son servicios que un banco o una empresa de telecomunicaciones debería dejar usar de cualquier manera, ya que las implicaciones de seguridad que tienen son enormes.
Pero la realidad es que la tecnología está ahí, y realmente es algo factible y que permitiría la creación de aplicaciones de cualquier tipo y totalmente orientadas al usuario final.

Creo que a medida que SOA se vaya introduciendo más y más en las empresas, se empezará a dar soluciones orientadas al publico general (ya no vale solo un megaportal empresarial para los usuarios de la empresa, hay que expandirse más alla, dar la posibilidad a terceros de usar la tecnología existente para construir nuevas aplicaciones). ¿Por qué no utilizar todos los medios disponibles a nuestro alcance para ofrecer servicios mucho más abiertos y con muchas más posibilidades?

En los últimos meses, en el proyecto personal en que ando metido me he dado cuenta de que las empresas son muy reticentes a dejarte usar sus servicios y sus sistemas. Vaya, encima de que estoy dándoles un nuevo canal de ingresos, ponen pegas. Sí, vale, yo también lo hago por el interés, pero, ¿no repercute de manera beneficiosa para ambos?. Yo creo firmemente que es así y por ello voy a seguir evolucionando mi idea en ese sentido…

Links interesantes:

Is Web 2.0 The Global SOA?
Soa4All
SaaS, Composite Applications, and SOA: Understanding their Differences and Making Them Work Together

OSGi, un Futuro para SOA?

En 1999 se creo la Alianza OSGi (Open Services Gateway Initiative) en un intento de crear un modelo de componentes dinámicos para sistemas embebidos de red; orientado principalmente a la plataforma JAVA y que permitía la gestión de la carga dinámica, el versionado y los ciclos de vida de servicios en forma de paquetes (o componentes).

Con el tiempo, OSGi ha evolucionado más allá de un simple uso para redes domésticas (como fue concebido inicialmente) a un modelo de contenedor capaz de solucionar muchos de los problemas que existen actualmente en los servidores de aplicaciones (empaquetado, abstracción de los paquetes, carga dinámica de los mismos, dependencias, gestión del ciclo de vida, versionados, etc…).

En OSGi, un paquete o componente es poco más que un jar tradicional de Java, con sus interfaces, implementaciones y un fichero manifiesto. Dicho componente se podrá definir por cierta meta-información de su fichero manifiesto que especificará los servicios exportados y los permisos necesarios para poder ser reutilizados por otros componentes.
Además, OSGi nos permitirá la gestión del ciclo de vida del software (tales como instalación, parada, redespliegue, arranque o desinstalación de paquetes) chequeando las dependencias existentes para el paquete tratado y evitando conflictos de ejecución.
Nos permite también la gestión de versiones de los paquetes, permitiendo la coexistencia de distintas versiones según necesidades y dependencias establecidas.
Por último, OSGi nos permite un modelo de Programación Orientado a Servicios (aquí basa su modelo en SOA), ya que (al contrario de EJB o RMI que necesita definir interfaces remotas) los servicios son publicados y registrados en el contenedor automáticamente durante la carga de los mismos.

Actualmente, todos los que usamos el framework de Eclipse 3.0, estamos usando OSGi de manera indirecta (Eclipse lo adoptó y de hecho fue uno de los mayores propulsores de OSGi en su momento; ahora evolucionado al Proyecto Equinox).
Lo importante, es la adopción de este modelo como parte de las estrategias para los productos de diversos fabricantes (Apache Felix, Newton, BEA mSA, etc…) y principalmente en el lado del servidor (que es donde OSGi puede sacar su mayor potencial a relucir como parte de los servidores de aplicaciones).

Algunos hablan de OSGi como el próximo middleware universal, las posibilidades de descubrimiento y reutilización de servicios y las posibles alianzas entre OSGi y Spring (suma todas las características enunciadas sobre OSGi a la facilidad de uso de Spring a base de inyección de dependencias y la programación orientada a aspectos) o entre OSGi y SCA (en este sentido OASIS tiene pendiente la estandarización de SCA).

Links interesantes:

OSGi Alliance
An Introduction to OSGi on the Server Side
Interesante discusión sobre si OSGi es SOA
Power Combination: SCA, OSGi and Spring
On SOA, OSGi and More
Universal Middleware: What’s Happening With OSGi and Why You Should Care

JSWEB 2008

Comienza un año más el periodo para mandar artículos (tanto de ámbito científico como industrial) a las ya IV Jornadas Científico-Técnicas en Servicios Web y SOA (JSWEB 2008).
Estas jornadas (que cada año se organizan en una Universidad distinta de España; este año en Sevilla, el 29 y 30 de Octubre) pretenden ser un encuentro y referencia para profesionales, empresas e investigadores interesados en la aplicaciones de los Servicios Web y las Arquitecturas Orientadas a Servicios.

Este año, me han invitado a participar como miembro del comité cientifico-técnico, lo cual es un honor y espero estar a la altura (gracias a Jose Carlos del Arco, el gran precursor de estas Jornadas por su trabajo y dedicación a algo que ya es una referencia en el mundo SOA y de los Servicios Web en España).

Los temas principales de interés de las jornadas este año son (entre otros):

  1. Fundamentos de los servicios Web y SOA
  2. Tecnología y servicios Web
  3. Ingeniería de servicios Web
  4. Aplicaciones de los servicios Web y SOA

Desde aquí mi apoyo y promoción de este evento para que cada año pueda mejorar en todos los sentidos y ser el mejor punto de encuentro principalmente entre empresas y universidades en lo que a Servicios Web y SOA se refiere.

(Más información en la página oficial del evento)