11.21.2009

WCF en una Arquitectura n-layer

Cuando desarrollamos aplicaciones n-layer y utilizamos diferentes tecnologías del framework, nos empezamos a cuestionar: ¿ y donde va esto? ¿qué rol juega esto en toda nuestra arquitectura? Esto es lo que normalmente sucede cuando empezamos a crear servicios – nótese que digo servicios no solamente servicios web – para exponer funcionalidad del negocio. La pregunta entonces es ¿Donde ponemos nuestros servicios? Es por esta razón que decidí escribir un post acerca de donde se deben ubicar los servicios en una arquitectura n-layer.

Esquema n-layer

En un esquema n-layer, debemos crear una capa de servicios – una librería -  la cual se ubicará sobre la capa de lógica de negocios. Esto nos va a permitir que los diversos usuarios se conecten siempre a la lógica de negocios ya sea con referencias directas a estas librerías o ingresando a través de la capa de servicios.

En el siguiente diagrama podemos ver esta distribución.

image En primera instancia este esquema nos permite darle mantenimiento a la aplicación de forma sencilla, ya que todos los cambios que le apliquemos a la lógica del negocio, se van a ver reflejados. Seguidamente nos permite activar workflows de negocio – que deberían ser parte de la lógica de negocios – ya sea directamente o a través de la capa de servicios.

Desde el punto de vista físico, acceder los componentes vía capa de servicios nos va a permitir tener un repositorio de componentes, desde donde podemos reutilizar nuestra lógica de negocios. Un escenario idea sería utilizar varios endpoints para cada servicio, permitiendo esto que si los servicios son consumidos dentro de la organización la comunicación se haga vía TCP, y si son consumidores externos que la comunicación se haga vía HTTP o HTTPS. Esto se puede lograr utilizando WCF y IIS 7.0 o superior + WAS.

Por último y no menos importante, usar la capa de servicios nos permitir programar usando contratos. Esto quiere decir que puedo cambiar la forma en que mi lógica de negocios este programada sin necesidad de solicitarle a los consumidores del servicio que realicen cambio alguno en sus sistemas – claro siempre y cuando no afecte el contrato ( la interface ).

Technorati Tags: ,,

11.18.2009

Costa Rica SOA & Cloud Computing User Group: 1era Presentación

El día de ayer lanzamos el grupo de usuarios en Costa Rica de SOA y Cloud Computing. Esta es la presentación que realizamos ayer. Más información en el blog de Yuri Porras.

CR SOA & Cloud Computing User Group