Revisin: 0
Fecha: V/11
Arquitectura SOA
El modelo arquitectnico planteado por Microsoft para el desarrollo de aplicaciones o servicios distribuidos, pasa a describirse brevemente a continuacin, como modelo de referencia:
Arquitectura N Capas conforme a las buenas practicas y patrones definidos por Microsoft Segmentacin de cliente y servicios de negocio siguiendo enfoque SOA a travs de una interfaz de servicios
El bloque de presentacin implementar las siguientes responsabilidades: Interfaz de Usuario: Es el encargado de gestionar la interaccin directa con el usuario. Componentes de Interfaz Usuario: En el caso de interacciones complejas en el que se requieren el uso de varias vistas o formularios se hace necesario el uso de un componente de segundo nivel encargado de dicho control. Permiten formatear y procesar los datos de usuario, as como la adquisicin y validacin de los mismos. Agente de Servicios : Es el encargado de interactuar con los servicios de la capa de negocio.
Client
IU CIU AS
Entidades de Negocio. En la mayora de los casos es necesario el intercambio de datos entre componentes, los componentes de negocio (entities) son estructuras de datos, implementables mediante objetos, Datasets, XML, etc. Ej. Lista de lneas de formulario desde los componentes lgicos de acceso a datos a los componentes de la interfaz de usuario para que este pueda visualizar dicha lista.
Componentes Empresariales. Implementan la lgica que conlleva la funcionalidad del aplicativo. Ej. Las validaciones deben comprobar la existencia de determinados valores en algunas tablas del sistema, si estos no existen en algunos casos debern agregarlos. Componentes Empresariales Entidades de Negocio
Servidores de Aplicacin
Flujos de Trabajo (Procesos de Negocio). Gestionan la lgica de estados asociadas a los procesos de negocio. Ej: Consolidar un formulario, iniciar la validacin del formulario, grabar la informacin en la base de datos, realizar los clculos pertinentes e informar de su realizacin. Gestin centralizada para el mantenimiento de versiones. Escalabilidad Horizontal. Optimizacin de las conexiones de acceso a la informacin. Centralizacin de servicios.
Proceso de Negocio
BC SI
BF EE
Capa Negocio
Componentes de lgica de acceso a datos. Su funcin principal es la de encapsular la lgica de obtencin de datos, centralizando los accesos, de manera que facilitan su configuracin y mantenimiento. Seran los encargados de acceder fsicamente a la base de datos. Agente de Servicio. Encapsula la lgica necesaria para permitir a un componente empresarial, la utilizacin de un servicio externo, implementa la semntica de la comunicacin con dicho servicio.
Acceso Datos
Agente de Servicios
VB. NET
ACCESO A DATOS
~,
.otT ..........
Enresa.Nucleo. Introduccin
La librera Enresa.Nucleo contiene clases y mtodos autnomos de la aplicacin SGDes. Las clases de esta librera podrn ser utilizadas en cualquier proyecto ya que no tienen referencias ni usan otras libreras propias de proyecto sino nicamente libreras propias de .NET Framework.
Enresa.Nucleo
Auditoria & Avisos
Entity Framework DAL BLL FBLL Cach Servicio de Copia de objetos Servicio de Clonado de objetos Logging Transacciones Serializacin Genrica a XML Genrico del patrn Factora Genrico del patrn Singleton Diccionario Serializable Concurrencia OADs
Gestin Tareas
Seguridad
Enresa.Nucleo.UI
Enresa.Nucleo
Entity Framework (EF)
Tanto el acceso fsico a datos como para la navegacin y transporte de los datos por las diferentes capas se realizar a travs de Microsoft Entity Framework (EF)
Enresa.Nucleo
Auditoria & Avisos
Business Logic Layer (BLL) La lgica de negocio aplicable y particular a las instancias de datos deber aadirse en esta capa. Faade Business Logic Layer (FBLL)
Esta capa se utiliza para aislar a los clientes de los cambios que subyacen a la lgica de negocio. Esta capa reside entre los servicios web de negocio y los procesos de negocio.
Cdigos nicos & Lista Valor
Entity Framework DAL BLL FBLL Cach Servicio de Copia de objetos Servicio de Clonado de objetos Logging Transacciones Excepciones Serializacin Genrica a XML Patrones Diccionario Serializable Concurrencia OADs Seguridad Cifrado de datos
Enresa.Nucleo.UI
Gestin Tareas
Enresa.Nucleo
Cach
Se proporcionan clases para manejo de cachs basado en el estndar e implementacin de Enterprise Library 3.1. Se Proporciona un helper que independiza las aplicaciones que lo utilicen de la implementacin real del cach, permitiendo cambiar el mecanismo de cach o la versin sin necesidad de modificar la implementacin de las aplicaciones que usen este servicio.
Enresa.Nucleo
Auditoria & Avisos
Copia de Objetos
.NET Framework 3.5 no posee libreras de copia de objetos de diferentes tipos, slo algunos namespaces poseen sus propios mtodos de copia de objetos restringiendo esa copia a objetos del mismo tipo.
Clonado de Objetos
.NET Framework slo permite el clonado de objetos que hayan implementado la interfaz IClonable. Dicho ayudante contiene varios mtodos que devuelven un objeto clon con los valores idnticos a un objeto original
Logging
Se proveen clases para manejo de los mecanismos de LOG basado en el estndar e implementacin de Enterprise Library 3.1. Este helper independiza las aplicaciones que lo utilicen de la implementacin real del LOG, permitiendo cambiar el mecanismo de LOG o la versin de la Enterprise Library sin necesidad de modificar la implementacin de las aplicaciones que usen este helper.
Seguridad
Entity Framework DAL BLL FBLL Cach Servicio de Copia de objetos Servicio de Clonado de objetos Logging Transacciones Excepciones Serializacin Genrica a XML Patrones Diccionario Serializable Concurrencia OADs Cifrado de datos
Enresa.Nucleo.UI
Gestin Tareas
Enresa.Nucleo
Transacciones
Se proporciona un mecanismo capaz de detectar e interceptar cualquier mtodo marcado como transaccional, garantizndose as la ejecucin de todas las operaciones del mtodo de manera transaccional. El mecanismo se fundamenta en la extensin de las Enterprise Libraries para interceptacin dinmica de llamadas.
Enresa.Nucleo
Auditoria & Avisos
Serializacin XML
Se proporcionan dos clases de serializacin / deserializacin de cualquier tipo de objeto mediante el cual todas las propiedades pblicas del objeto sern presentadas en formato estndar XML. Este mecanismo permite, desde un nivel alto de abstraccin, crear informacin XML sin necesidad de tener que conocer en detalle el mecanismo de serializacin XML.
Cdigos nicos & Lista Valor
Gestin de Excepciones
La gestin y tratamiento de excepciones es tratada de acuerdo a Enterprise Libraries basando su configuracin en ficheros de configuracin
Entity Framework DAL BLL FBLL Cach Servicio de Copia de objetos Servicio de Clonado de objetos Logging Transacciones Excepciones Serializacin Genrica a XML Patrones Diccionario Serializable Concurrencia OADs Seguridad Cifrado de datos
Enresa.Nucleo.UI
Gestin Tareas
Enresa.Nucleo
Patrn Factora
El patrn de diseo Factory Method consiste en utilizar una clase constructora abstracta con unos cuantos mtodos definidos y otros abstractos para la creacin de objetos. De esta forma realizamos la implementacin homogenea de dicho patrn en todos sus entornos de utilizacin.
Enresa.Nucleo
Auditoria & Avisos
Patrn Singleton
El patrn de diseo Singleton (instancia nica) est diseado para restringir la creacin de objetos pertenecientes a una clase o el valor de un tipo a un nico objeto. En Enresa.Nucleo se proporciona una implementacin del patrn mediante la derivacin de una clase genrica. Esta clase encapsula y automatiza la creacin dinmica del objeto Singleton garantizando la existencia de un nico objeto en tiempo de ejecucin.
Diccionario Serializable
Una de las limitaciones conocidas de .NET Framework 3.1 es que su clase genrica de tablas Hash (Dictionary(Of T, K)) no permite serializacin ni XML ni binaria. Para solventar esta carencia, Enresa.Nucleo proporciona un diccionario serializable a XML. La clase suministrada proporciona los mismos mtodos que de cualquier diccionario y adems proporciona mtodos que son capaces de serializar a XML
Seguridad
Entity Framework DAL BLL FBLL Cach Servicio de Copia de objetos Servicio de Clonado de objetos Logging Transacciones Excepciones Serializacin Genrica a XML Patrones Diccionario Serializable Concurrencia OADs Cifrado de datos
Enresa.Nucleo.UI
Gestin Tareas
Enresa.Nucleo
Concurrencia
El control de concurrencia de EF nativo no es vlido en el contexto de escenarios desconectados (servicios). Para solventar este problema, se extiende el modelo de tal manera el propio nucleo es capaz de detectar si existe alguna modificacin y lanzar una excepcin de control de concurrencia si es necesario.
OADs
El mecanismo de OADs para las diferentes entidades del sistema viene especificado desde SGA. Como la aplicacin de los OADs a cada entidad es particular, se delega dicha implementacin a un mtodo abstracto en cada clase de acceso a datos. El sistema invocar de manera dinmica dicha implementacin en cada caso particular cuando se realicen operaciones de lectura o actualizacin. Es responsabilidad de cada clase de acceso a datos la correcta aplicacin de los OADs.
Enresa.Nucleo
Auditoria & Avisos
Cifrado de datos
Se proporcionan mtodos estndares para el cifrado / descrifrado de datos basados en estndares de clave publica mediante algoritmos MD5.
Acceso a Datos Cach Servicio de Copia de objetos Servicio de Clonado de objetos Logging Transacciones Excepciones Serializacin Genrica a XML Patrones Diccionario Serializable
Gestin Tareas
Enresa.Nucleo.UI
En la librera Enresa.Nucleo.UI se proporcionan una serie de clases, mtodos y funcionalidades utilizadas en toda la aplicacin SGDes siempre desde la capa de Interfaz de Usuario.
Enresa.Nucleo
Auditoria & Avisos
Extensin de SCSF Modulizacin del proyecto Extensin SCSF Modelo de eventos SCSF Particularizacin del MVP para SCSF Validador de errores Gestin Tareas Informes genricos Mailing Paginador Integracin con GEDI
Seguridad
Enresa.Nucleo.UI
Enresa.Nucleo.UI
Extensin de SCSF. Marco de referencia visual
Desde un punto visual, SGDes, como la mayora de las aplicaciones, se estructura en tres partes principales: Los mdulos que son la parte donde se ubica la funcionalidad propia de la aplicacin. El marco de trabajo de la aplicacin (Enresa.SGDes.UI) que es el contenedor principal desde donde se cargan, descargan, gestionan, visualizan y se operan los diferentes mdulos de la aplicacin. Gestin de toda la lgica de comunicacin, administracin y patrones de mdulos que en este proyecto han sido adaptadas para enriquecer funcionalidades no recogidas nativamente (SCSF).
Todo sistema modular debe tender a cumplir los principios de modulizacin en lo referente a alta cohesin y bajo nivel de acoplamiento.
La comunicacin entre los mdulos debe ser mnima y estar perfectamente definida y diferenciada mediante interfaces y paso de mensajes. Para el cumplimiento de estos principios se introduce el modelo Smart Client Software Factory (SCSF) de Microsoft que permite la realizacin de aplicaciones totalmente modulares y provee los mecanismos necesarios para la comunicacin entre ellos. Adems se realiza una extensin del modelo SCSF para adaptar los patrones y libreras de SCSF al modelo propio de SGDes.
Enresa.Nucleo
Auditoria & Avisos
Extensin de SCSF
Modulizacin del proyecto Extensin SCSF Modelo de eventos SCSF Particularizacin del MVP para SCSF Gestin Validador de errores Tareas Informes genricos Mailing Paginador Integracin con GEDI
Seguridad
Enresa.Nucleo.UI
Enresa.Nucleo.UI
Extensin de SCSF. Mdulos y ventanas
SCSF
Es un conjunto enorme y complejo de patrones, libreras, recomendaciones y buenas prcticas desarrollado e impulsado por MS para la realizacin de interfaces grficas. Indra desarrolla una extensin de este modelo para acercarlo y adaptarlo a las necesidades particulares de Enresa.
Mdulos
Los mdulos son la parte ms importante de la aplicacin ya que es en ellos donde reside la propia funcionalidad de la aplicacin. Se realiza el encapsulado de la funcionalidad de gestin de mdulos de tal manera, que los mdulos SGDes delegan la gestin de botoneras, mens del mdulo y organizacin de submdulos al gestor de interfaz, simplificando y reaprovechando los mecanismos de funcionamiento de manera centralizada. Desde el marco de ejecucin, Enresa.Nucleo.UI, se ha implementado todo el mecanismo para la gestin de mens, botoneras, submdulos, eventos y comunicacin, de tal manera que cualquier mdulo (sea de SGDes o no) que cumpla con la interfaz indicada tendr toda la gestin de mens, opciones, botoneras, etc ya implementada.
Enresa.Nucleo.UI
Componentes Visuales proporcionados (1)
Validador de Errores Personalizado
Se trata de un componente que se utiliza en la capa de interfaz de usuario para establecer el comportamiento y visualizacin de la validacin de errores en formularios de entrada de datos. Mediante este componente se establecen los controles de usuario que son de obligatorio cumplimiento unificando la gestin y actualizacin de la UI para sealar los campos que se encuentren en situacin errnea. Tambin permite visualizar mensajes de error genricos asociado a cualquier control de usuario de la interfaz.
Mailing
Se trata de un componente que provee de mecanismos para facilitar el envo de correo entres los distintos tipos de usuarios y servicios de la aplicacin. Con el objetivo de hacer independiente el consumo del servicio de mail y su implementacin a la vez que abstraernos del protocolo interno de envo que se utilice (SMTP, SMS, IMAP), se ha creado la interfaz IMail, que provee de las funciones necesarias para abstraernos del proceso del envo.
Paginador
Componente visual utilizado en listados de datos en los que se muestran una gran cantidad de registros, de forma que estos puedan ser mostrados por pginas. Esto se corresponde con l soporte que le da los servicios ya existentes de bsquedas paginadas.
Enresa.Nucleo.UI
Componentes Visuales proporcionados (2)
Para la integracin de cualquier sistema con GEDI se ha realizado una capa que independiza y evita al programador la necesidad de conocer el funcionamiento y uso de GEDI. El componente posee una serie de mtodos estticos que para cubrir las operaciones bsicas de GEDI tales como subir ficheros, obtener listas de documentos, cambios de estado a documentos, cambios de clases documentales, etc. Estos mtodos internamente realizan la configuracin contra el servicio de GEDI e invocan las funciones necesarias y el orden oportuno para llevar a cabo la operacin.
Servicio de Lista-Valor
El servicio proporciona mtodos para la obtencin de entidades abstractas (de diferente ndole) que se tratan como listas de valores y que, adems, pueden estar relacionadas entre s. Por ejemplo, bajo este modelo podemos gestionar una lista de colores, una lista de provincias y una lista de ciudades. Se proporcionan servicios para que cuando pidamos Dame la lista de Colores, el procedimiento devuelva una lista con Rojo, Azul, Amarillo y cuando se pida la lista de provincias se devuelva dicha lista.
Gestin Tareas
Seguridad
Enresa.Nucleo.UI
Enresa.Nucleo
Modelo de seguridad
Gestin Tareas
Seguridad Enresa.Nucleo.UI
Las actividades planeadas pueden generar automticamente actividades programadas cuando estas son creadas o programadas, en funcin del tipo de periodicidad que hayamos seleccionado.
Dentro de SGDes se ha desarrollado un mdulo que explota estos servicios para gestin como G. Actividades
Servicios en datos
En Arquitecturas SOA hablamos de servicios desde varios niveles: Los que podemos denominar servicios primitivos u orientados a entidades, que son servicios que realizan operaciones primitivas o de lgica de entidades. Los que denominamos orientados a procesos, que son servicios que realizan una serie de operaciones primitivas con el objetivo de realizar un proceso de mas alto nivel. Los servicios orientados a proceso, usan y se apoyan en los servicios primitivos. Por ejemplo, en el mbito de SGDes, un servicio orientado a proceso sera el alta de una SAT, que internamente invocar a una serie de servicios primitivos como son la peticin de un nuevo cdigo, la validacin del contratista, el alta del registro SAT, etc.