Arquitectura SOA de Oracle

En varios correos y comentarios en el blog me piden información sobre las arquitecturas SOA de referencia de los principales fabricantes de Middlware (IBM, Oracle, Software AG).

La arquitectura de IBM es todo un clásico que ya he tratado hace tiempo en el blog, puedes ver la entrada aquí.

La de Oracle, se puede ver en un extenso documento PDF aquí.

La de Software AG, el fabricantede Web Methods, se puede ver aquí, en las slides 2 y 3.

Por supuesto, en términos generales, las tres no difieren mucho. Los conceptos que se manejan son los mismos (como no podría ser de otra manera). Sobre todo, hacen hincapié en el desacoplamiento, la capa de procesos que usan servicios, los servicios que encapsulan la funcionalidad de los backends, etc. etc.

En el caso de Oracle, siempre me ha llamado la atención el concepto de “servicios de datos”. Por un lado, siempre he entendido que los servicios proporcionan una funcionalidad de negocio. Por lo tanto, no veo muy apropiado que un servicio sólo se ocupe de los datos ¿dónde está la lógica de negocio? ¿Quizás son servicios “privados” para su uso únicamente por los servicios de negocio?. Un poco “raro” si lo vemos desde este punto de vista.

Por otra parte, viéndolo desde otra perspectiva, es cierto también que en muchas ocasiones, con una funcionalidad muy CRUD (Alta, Baja, Modificación y Lectura) que se da en mucha parte del negocio, la “capa” de lógica de negocio es muy fina o prácticamente inexistente (más allá de la validación de datos).

En fin, lo que está claro es que son arquitecturas de referencia, nos sirve para situarnos y darnos una visión global, pero luego tenemos que adaptarlas a nuestra situación en concreto.