La arquitectura propuesta es un construir una aplicación .NET en tres capas que contenga una capa de servicios compartidos. Las arquitecturas SOA se basan en un ecosistema de servicios que permite automatizar procesos de negocio que involucran más de un sistema de manera simple, ya que los mismos sistemas exponen su funcionalidad compartida a través de servicios.
En nuestro caso, se construirá el sistema que expondrá servicios compartidos y consumirá otros expuestos por otras aplicaciones.
Las capas del sistema son:
1.- Capa de presentación.
La capa de presentación es la responsable de interactuar con el usuario de la aplicación. En este caso tendremos dos tipos de interfaz:
Ø WEB: da mayor accesibilidad a la aplicación pero la interfaz tiene limitaciones.
Ø Windows Form: es equivalente a una aplicación Windows hecha con VB, pero tiene todas las ventajas de .NET.
La capa de presentación maneja el contexto del usuario y le permite interactuar con la capa de negocio dónde esta implementada toda la lógica de la aplicación. Si en particular la lógica que se accede es compartida con otras aplicaciones lo hace a través de un Servicio.
2.- Capa de Negocio
La responsabilidad de esta capa es implementar lógica de negocio que será consumida por la interfaz del sistema y por otros sistemas a través de los servicios compartidos.
La idea es que todos los módulos que requieren una funcionalidad la encuentran en un solo lugar y con una sola versión, no hay copy paste de funcionalidades en formulario u otro lugar. En rigor los servicios utilizan también esa misma funcionalidad.
Existen tres tipos de componentes de negocio fundamentales:
Ø Lógica de Negocio, implementan la funcionalidad de negocio del sistema.
Ø Entidades de negocio, representan las entidades del sistema.
Ø Workflow, implementan procesos de negocio en los cuales participan entidades y lógica de negocio.
3.- Capa de Servicios.
La capa de servicios es el contenedor lógico en que se ubican los servicios compartidos. Estos servicios exponen la funcionalidad compartida del sistema, tanto para el mismo sistema como otras aplicaciones.
En el diagrama la línea roja que entra representa la llamada desde otra aplicación. La flecha negra, representa una llamada desde el mismo sistema al servicio. Ambas llamadas consumen componentes de la capa de lógica de negocio.
4.- Capa de acceso a Datos.
La capa de acceso a datos permite conectar la capa de negocio con los orígenes de datos. La idea es que es desde aquí donde se accede a los datos que la capa de negocio necesita para funcionar.
Además de bases de datos, los sistemas nuevos utilizan servicios expuestos por otras aplicaciones. Estos servicios son un origen da datos más, el cual se accede con un Proxy. Para la capa de negocio no existe diferencia entre leer un dato desde la DB o desde un servicio porque la capa de acceso a datos es la que se encarga de entregárselo.
Hola, me pareció muy clara tu explicación y me sirvió para entender el concepto de SOA.
Estoy tratando de armar un proyecto donde van a convivir varias aplicaciones, mi duda es la siguiente, si tengo una aplicacion de gestión para una metalurgica y otro sistema de gestión para una maderera, y ambas usan gestión de RRHH, en ese caso ¿debo hacer un servicio que sirva de interfaz entre la logica de negocio de RRHH para que pueda ser accedido por las otras aplicaciones?
Hola, me pareció muy clara tu explicación y me sirvió para entender el concepto de SOA.
Estoy tratando de armar un proyecto donde van a convivir varias aplicaciones, mi duda es la siguiente, si tengo una aplicacion de gestión para una metalurgica y otro sistema de gestión para una maderera, y ambas usan gestión de RRHH, en ese caso ¿debo hacer un servicio que sirva de interfaz entre la logica de negocio de RRHH para que pueda ser accedido por las otras aplicaciones?
Hola,
Gracias por los múltiples comentarios 😛
Ja ja ja
Bueno, si estas pensando en SOA y tiene lógica “publica” que es usada por otras aplicaciones corresponde que esa lógica esté implementada en servicios que pueda ser usados por otros sistemas.
Me suena razonable,
Salu2