Que es Service-oriented architecture (SOA)

SOAEn los 煤ltimos a帽os hemos escuchado haber de SOA por todas partes, SOA aqui SOA alla y SOA por todas partes, Pero que es realmente SOA ya que en ocasiones聽confundimos SOA con alguna tecnolog铆a o alg煤n producto. Sin embargo no es mas un tipo de arquitectura de software la cual esta dise帽ada para los ambientes de integraci贸n, Pero antes de entrar a detalle me gustar铆a hacer un poco de historia.

Antes del debut de SOA ten铆amos la Arquitectura de ManFrame y Cliente-Servidor las cuales no quiero decir que sean obsoletas o pasadas de moda ya que cada un ofrece ventajas y desventajas que pueden ser decisivas seg煤n nuestro escenario de negocio.

Mainframe

Bien,聽ManFrame es una arquitectura que su enfoque central radica en un servidor super聽potente capas de hacer miles de transacciones por si sola y administrar miles聽de usuarios concurrentes desde una 煤nica ubicaci贸n. Esto desde luego es una gran ventaja pero tenia el gran inconveniente que todo es centralizado.

Cliente-Servidor

A diferencia de Mainframe el cliente servidor es una arquitectura mas f谩cil de encontrar ya que muchos de los aplicativos que usamos en muestra computadora la utilizan, Este tipo de arquitectura se caracteriza聽en que una parte del programa se encuentra instalada en nuestra computadora y esta otra parte llamada Servidor la聽cual es otro software que atiende las peticiones le cliente por medio de un protocolo como TCP/IP. Esta arquitectura ayuda en que parte del procesamiento se realiza por parte del cliente pero para almacenar o realizar consultas en tiempo real se comunicaba con el servidor.

Service-oriented architecture (SOA)

Como observamos en las arquitecturas anteriores estas se enfocan聽煤nicamente en si mismas聽sin importarles mucho la forma en la cual nos comunicamos con otras aplicaciones, ya que cada una tenia un protocolo 煤nico de comunicaci贸n 聽y era dif铆cil interactuar con otros sistemas.

Sin embargo SOA es diferente ya que esta dise帽ado no solo para complacer al sistema al cual estamos dise帽ando si no tambi茅n ve un poco mas y esto es por que se preocupa por la forma en que este sistema se deber谩 comunicar con los demas, ya sea consumiendo servicios de proveedores externos e internos o simplemente exponiendo servicios para que otras aplicaciones se puedan comunicarse con el.

La principal ventaja que ofrece SOA es que su activo principal no son las aplicaciones o sistemas si no los Contratos聽que expone y es que con una definici贸n correcta de un contrato podr铆amos incluso cambiar el aplicativo por otro y nadie se diera cuenta. Un contrato define la forma en que se realizara la comunicaci贸n, establece el formato de entrada del servicio y de salida lo que ayuda a que cualquier cliente pueda interpretarlos sin ning煤n problema.

Otra de las ventajas que ofrece SOA es que utiliza protocolos de comunicaci贸n Est谩ndar como WebServices lo cual le permite comunicarse con cualquier aplicaci贸n sin importar en que lenguaje este desarrollada.

Cada servicio que se desarrolla en SOA se realiza bajo la premisa de que sera reutilizado al m谩ximo y que sera de utilidad para otros sistemas por lo cual cada servicio deber谩 ser planeado con cuidado para que sea lo mas simple posible y a si aumentar el grado de re-utilizaci贸n que tendr谩.

A continuaci贸n les dejo un esquema muy simple de como la arquitectura SOA nos puede ayudar en las integraciones de los diferentes sistemas que se encuentran en una empresa.

SOA

 

Del lado derecho tenemos las aplicaciones a las cuales necesitamos comunicarnos para realizar un proceso de integraci贸n y cada una tiene expuesto un conjunto de servicios, En el medio tenemos la capa de orquestaci贸n donde creamos servicios de integraci贸n a partir de otros servicios existentes. y del lado izquierdo tenemos las aplicaciones las cuales requieren una integraci贸n con alg煤n sistema interno o externo.

 

En resumen SOA es una arquitectura dise帽ada para la integraci贸n de todos los distintos aplicativos que conforman la infraestructura del cliente, pero tambi茅n busca la integraci贸n con aplicativos externos como de proveedores.

 

Si quieres conocer mas de SOA y de Integraciones con BPEL aqu铆 te dejo algunos links de otros de mis Post.

Que es una composici贸n SOA

Que es la virtualizacion de servicios

Como crear un BPEL

Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *