Anda di halaman 1dari 23

Clave: 000-si-es-0021

Revisin: 0

Fecha: V/11

Pgina: Anexo VI Pg. 1

ANEXO 6 ARQUITECTURA SOA APLICACIONES .NET

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:

Caractersticas de las soluciones sobre plataforma .NET

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

Arquitectura SOA - Presentacin

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

Arquitectura SOA - Negocio


El bloque de negocio implementar las siguientes responsabilidades: Interfaces de servicio. Ofrecen la funcionalidad que albergan los componentes de negocio, y soportan las comunicaciones de estos con los componentes de la capa de presentacin.

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

Arquitectura SOA - Datos


El bloque de responsabilidades: datos implementar las siguientes

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.

Componentes Lgicos acceso

Acceso Datos

Agente de Servicios

Arquitectura SOA - Beneficios


Bajo acoplamiento. Transparencia de ubicacin. Re-Uso del cdigo. Roles de desarrollo enfocados. Desarrollo en paralelo.

Mayor testeabilidad (pruebas unitarias).


Mejor escalabilidad. Mejora disponibilidad.

Arquitectura Sistemas Enresa

Arquitectura Visin General

. ROC . . "" DE NEGOCIO

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

Cdigos nicos & Lista Valor

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

Data Access Layer (DAL)


Implementada de manera genrica una amplia gama de funciones, mtodos y propiedades de acceso a base de datos

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

Cdigos nicos & Lista Valor

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.

Cdigos nicos & Lista Valor

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.

Cdigos nicos & Lista Valor

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

Concurrencia OADs Cifrado de datos


Seguridad
Enresa.Nucleo.UI

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

Cdigos nicos & Lista Valor

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

Cdigos nicos & Lista Valor

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.

Ventanas independientes y modales


Se extiende SCSF para permitir visualizar ventanas independientes y modales. Con frecuencia surge la necesidad de reutilizar la funcionalidad de dicho control pero en una ventana separada independiente del marco principal de la aplicacin. Se agrupa la funcionalidad de gestin de mens, botoneras y eventos dentro de esa extensin.

Patrn MVP para SCSF


El objetivo de este patrn es el de separar la lgica de interfaz de usuario de la lgica de negocio. En el mbito de SGDes el patrn MVP se ha particularizado mediante clases genricas y abstractas.

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.

Informes genricos basados en datos tabulares


Se trata de un componente visual que nos permite la visualizacin, impresin y exportacin de los diferentes listados de datos que utilizamos en la aplicacin. Este componente de impresin nos permite independizarnos del modo de impresin. El componente visual permite : Impresin Envo del informe a correos electrnicas Exportacin a formato PDF Exportacin a formato Excel

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.

Servicios de inters general proporcionados (1)


Servicio de Avisos
Se trata de un servicio que suministra mtodos para la creacin de avisos automticos a los diferentes usuarios o servicios cuando se realizan determinadas acciones. Actualmente esos avisos son visualizados desde el mdulo de avisos de SGDes. Se pueden crear avisos automticamente a travs de este servicio suministrando ciertos datos, como el asunto del aviso, los destinatarios, prioridad, accin que genera el aviso, etc.

Servicio de Cdigos nicos


En la generacin de cdigos nicos de entidades basadas en base de datos siempre se presenta la problemtica de que esa generacin de datos debe hacerse de manera transaccional, nica, bloqueante y siendo coherente con la concurrencia. As pues se proporciona un ayudante con mecanismos para la obtencin de cdigos unicos que da respuesta a la problemtica expuesta. Evita la repeticin de cdigo y centraliza la problemtica.
Enresa.Nucleo

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.

Auditoria & Avisos

Cdigos nicos & Lista Valor

Avisos Cdigos nicos Lista-Valor

Gestin Tareas

Seguridad
Enresa.Nucleo.UI

Servicios de inters general proporcionados (2)


Seguridad
Toda la lgica de acceso se simplifica mediante el uso de dos gestores de seguridad, uno para cliente y otro para servidor, de tal manera que el programador que desee realizar verificaciones de seguridad slo tendr que usar un manager u otro segn el sitio donde la quiera aplicar. Estos managers se encargan, de manera transparente, de contactar con el servicio de seguridad SGA y de SGDes para realizar las validaciones de seguridad necesarias, de esta manera el programador no necesita conocer los detalles ni la arquitectura de la seguridad.

Modelo de Seguridad Avanzado


En SGDes surge la problemtica que se explica en el siguiente ejemplo. Un determinado usuario, puede tener permiso para realizar una accin determinada para la SAT nmero 1 cuando esta est en el estado Registrada y ese mismo usuario no tener ese permiso cuando la SAT ya no se encuentra en ese estado. Para cubrir esta funcionalidad SGDes necesita un modelo avanzado de seguridad, que se basa no slo en permisos de usuario sino que es una combinacin de permisos con estados de las entidades. Al verificar una combinacin de seguridad de una entidad, el servicio de seguridad, es capaz de distinguir que se trata de la aplicacin del modelo avanzado de seguridad, para lo cual buscar el modelo adecuado a esa entidad, lo invocar comprobando el permiso proveniente de SGA y delegar en el propio mdulo particular desde el que se invoco de la entidad el decidir si se tiene permiso o no.
Cdigos nicos & Lista Valor Auditoria & Avisos

Enresa.Nucleo

Modelo de seguridad

Gestin Tareas

Seguridad Enresa.Nucleo.UI

Servicios de inters general proporcionados (3)


Servicio de Actividades (Tareas)
Una actividad es considerada como una tarea asignada a una persona y que ser hecha o planificada en un periodo de tiempo. Este servicio permitir gestionar, planificar y programar actividades asociadas a distintos procesos, de una forma homognea as como la gestin de actividades independientes creadas por el usuario sin necesidad de estar asociadas a ningn proceso (son las conocidas como Actividades Genricas). Las actividades planeadas son actividades (tareas) planificadas para un periodo de tiempo cuya ejecucin an no ha sido programada.

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.

Actualmente en SGDes tenemos unos 1300 servicios de ambos tipos.


En el ejemplo anterior, alta de SAT, es un nico servicio orientado a proceso se usan llamadas a unos 10 servicios primitivos.

Anda mungkin juga menyukai