Presentacion Evolucion De Las Tecnologias

80
Evolución de las tecnologías para el desarrollo de aplicaciones distribuidas TECNOLOGICO DE ESTUDIOS SUPERIORES DE CUAUTITLAN IZCALLI

Transcript of Presentacion Evolucion De Las Tecnologias

Page 1: Presentacion Evolucion De Las Tecnologias

Evolución de las tecnologías para el

desarrollo de aplicaciones distribuidas

TECNOLOGICO DE ESTUDIOS SUPERIORES DE CUAUTITLAN IZCALLI

Page 2: Presentacion Evolucion De Las Tecnologias

INTERFAZ DE USUARIO

Page 3: Presentacion Evolucion De Las Tecnologias

INTERFAZ DE USUARIO• Cuando una persona tiene que usar y

controlar una maquina, un dispositivo electrónico o un equipo informático, lo hace a través de lo que se llama una interfaz de usuario. La tecnología de interfaz de usuario, al igual que el hardware, ha pasado por una serie de generaciones [TESLER, 1991]. Estas generaciones contienen o parecen contener a las anteriores, y se pueden clasificar cronológicamente como sigue [NIELSEN, 1993]:

Page 4: Presentacion Evolucion De Las Tecnologias

Hasta 1945: se hacía acceso directo de forma manual al hardware.

1945-1955: programación en modo catch o por lotes. La primera generación de interfaces no era interactiva, ya que la interacción entre el sistema y el usuario se restringía a un único punto en el tiempo.Se recomienda que tales modos catch proporcionen alguna opción al usuario para controlar continuamente el progreso del trabajo catch, de forma que pueda interrumpir o modificar el trabajo. Es muy frustrante tener un trabajo grande ejecutándose y que, cuando vaya a finalizar, tenga que descartarse porque se debería haber modificado el último mandato. Actualmente estas interfaces han tenido un renacimiento en los sistemas de acceso por medio del intercambio de mensajes de correo electrónico.

Page 5: Presentacion Evolucion De Las Tecnologias

1955-1965: lenguajes de mandatos. También denominadas interfaces en línea. Los sistemas de tiempo compartido se inventaron alrededor de 1960 como un medio para permitir a varios usuarios tener acceso simultáneo interactivo a un único servidor [LEE et al., 19921. Éstas eran básicamente interfaces de una dimensión, en las que el usuario sólo podía interactuar con el ordenador en una línea que servía como línea de mandato. Cuando el usuario pulsaba la tecla de antro (Retorno o Entre), no se podía modificar la entrada. De forma similar, cuando el ordenador presentaba una salida al usuario, no se podía modificar para reflejar cambios en los datos. La interacción se limitaba a diálogos pregunta respuesta

Page 6: Presentacion Evolucion De Las Tecnologias

1980-1995: ventanas, iconos, menús y ratón. También denominadas interfaces gráficas de usuario.

La mayoría de las interfaces actuales de usuario pertenecen a esta categoría, a veces denominada sistemas WIMP (Windows, Iconos, Menús and Pontín de vice). Las interfaces Windows añaden casi una tercera dimensión a las dos dimensiones inherentes a cada ventana debido a la posibilidad de superponer ventanas (está claro que superponer ventanas no es verdaderamente una tercera dimensión, ya que no es posible ver el contenido de la ventana que está debajo, por tanto, podríamos decir que tienen “dos dimensiones y media”). El estilo de interacción utilizado en muchas interfaces gráficas de usuario es la manipulación directa [SHNEIDERMAN, 1983], la cual se basa en la representación visual de los objetos del diálogo que tengan interés para el usuario. Esto permite al usuario controlar el diálogo con sólo mover los objetos por la pantalla y manipularlos con el ratón. Sin embargo, las interfaces de manipulación directa pueden resultar más difíciles de utilizar que las tradicionales, debido a que son más dependientes de un control fino sobre el ratón.

Page 7: Presentacion Evolucion De Las Tecnologias

1995-Futuro: interfaces no basadas en mandatos. Las formas comunes de añadir una dimensión a las interfaces de usuario consisten en añadir tiempo (en forma de animación), sonido o voz, así como una verdadera tercera dimensión espacial en forma de sistemas de realidad virtual. Las dos predicciones más fáciles con respecto a la siguiente generación de interfaces de usuario son que incluirán una dimensional dad más alta con más tipos de medios y que serán altamente portables y personales, a la vez que se utiliza tecnología de comunicaciones para conseguir una gran conectividad. Todos los estilos de interfaz hasta ahora han tenido en común, al menos, el concepto de mandato, y se basaban en el principio de un diálogo explícito entre el usuario y el ordenador en el que el usuario ordenaba al ordenador que hiciese ciertas acciones específicas. En estos sistemas futuros, el ordenador se encargará de tomar la responsabilidad de la interacción, basando sus acciones en sus observaciones del usuario, utilizando tecnologías como el seguimiento del ojo, reconocimiento de gestos y análisis sema-inteligente de las acciones del usuario.

Page 8: Presentacion Evolucion De Las Tecnologias
Page 9: Presentacion Evolucion De Las Tecnologias

EVOLUCION DE LAS TECNOLOGIAS PARA

APLICACIONES DISTRIBUIDAS

• APLICACION

Page 10: Presentacion Evolucion De Las Tecnologias

Aplicaciones independientes del sistema que soportan usuarios reales

o programas de aplicación.ISO 9545La Entidad de Aplicación trata con losServicios OSI y las comunicaciones(capa de presentación).Se define en términos de:• ASEs (Application Service Elements),• ASOs (Association Service Objects) y• CFs (Control Functions)

CAPA DE APLICACIÓN OSI

Page 11: Presentacion Evolucion De Las Tecnologias

Entidad de Aplicación: – Representa el conjunto de capacidades de comunicación de un proceso de aplicación en particular, por ejemplo su capacidad de intercambiar archivos o mensajes – Está formado por un conjunto de ASEs • Asociación de las entidades de aplicación: – Como una conexión en OSI se define como un servicio al usuario (capa superior), la capa de aplicación no tiene conexiones, sino que sus entidades establecen ASOCIACIONES (relaciones cooperativas) para intercambiar información entre ellas de APDU’s sobre la capa de presentación

Page 12: Presentacion Evolucion De Las Tecnologias

ASE (Association Service Element): – Son los componentes básicos de la entidad. – Sirven a un propósito específico de comunicación o intercambio – Cada ASE se define por un servicio y un protocolo – Las ASE’s se combinan de diferentes formas para formar diferentes entidades de aplicación. • ASO (Association Service Object): – Es un componente compuesto de una entidad que contiene una o mas ASEs y/o ASOs con una función de control (CF) (encapsulamiento de ASEs). • CF (Control Function): – Es el control del dialogo para el intercambio entre los pares y la administración de la asociacion

Page 13: Presentacion Evolucion De Las Tecnologias

Soprtes de redObtencion e interrupcion de una conexiónServidor de dominacion de dominioDe internetCorreo electronicoDNS

Ejemplos

Page 14: Presentacion Evolucion De Las Tecnologias

telnetTransferencia de archivoTrasferencia de hipertexto

Page 15: Presentacion Evolucion De Las Tecnologias

EVOLUCION DE LAS TECNOLOGIAS DE LAS

BASES DE DATOS

CONTRERAS SANCHEZ LINDA IRAIS

HUERTA CAMACHO ANA KARENLOPEZ RODRIGUEZ EDUARDO

MOISESMONTOYA ROMERO NELLY

JAZMIN

Page 16: Presentacion Evolucion De Las Tecnologias

La sofisticación de la tecnología moderna de las bases de datos es el resultado de la evolución que a lo largo de varias décadas ha tenido lugar en el procesamiento de los datos y en la gestión de la información. La tecnología de acceso a datos se ha desarrollado desde los métodos primitivos de los años 50 hasta los potentes e integrados sistemas de la actualidad, esto es concebido por las necesidades, demandas y oportunidades de la administración y, de otro, restringida por las limitaciones de la tecnología.

Page 17: Presentacion Evolucion De Las Tecnologias

Los primeros sistemas de procesamiento de datos ejecutaron las tareas administrativas para reducir el papeleo. En la actualidad estos sistemas se han dirigido hacia la producción y la gestión de la información, esto se ha convertido en un recurso vital para las compañías y globales.

Actualmente, la función mas importante de los sistemas de bases de datos es proporcionar el fundamento a los sistemas de información para la gestión corporativa.

Page 18: Presentacion Evolucion De Las Tecnologias

Principalmente los cambios tecnológicos han surgido por las necesidades genuinas de la sociedad, los negocios y la economía principalmente. La administración solamente permitirán que exista un nuevo sistema cuando se reduzca el costo del sistema anterior.

Las nuevas tecnologías tales como las Bases Orientadas a Objetos y la plataforma Cliente/Servidor platean nuevos problemas mas versátiles que darán lugar a sistemas mas potentes en el futuro. Hay un estrecha relación entre las tecnologías de bases de datos y las necesidades de las empresas para facilitar sus tareas.

Page 19: Presentacion Evolucion De Las Tecnologias

Una clasificación de los modelos de datos son:

Modelo relacionalBase de datos relacionalModelo entidad-relaciónBase de datos jerárquicaBase de datos en red

Page 20: Presentacion Evolucion De Las Tecnologias

Comunicación de datos

Page 21: Presentacion Evolucion De Las Tecnologias

Son todas aquellas que cubren una extensa área geográfica .Son generalmente una serie de dispositivos de conmutación interconectados .

Redes de área amplia ( Wan )

Page 22: Presentacion Evolucion De Las Tecnologias

En estas redes se establece un camino a través de los nodos de la red dedicado a la interconexión de dos estaciones. En cada enlace, se dedica un canal lógico a cada conexión.

Conmutaciónón de circuitos

Page 23: Presentacion Evolucion De Las Tecnologias

En cada nodo, el paquete se recibe totalmente, se almacena y seguidamente se transmite al siguiente nodo.

Conmutación de paquetes

Page 24: Presentacion Evolucion De Las Tecnologias

Al conseguir con la nueva tecnología una tasa de errores muy pequeña y una velocidad de transmisión elevada, no es necesario adjuntar mucha información de cabecera a cada paquete y por tanto las velocidades de transmisión son elevadísimas comparadas con el sistema de conmutación de paquetes .

Retransmisión de tramas

Page 25: Presentacion Evolucion De Las Tecnologias

En retransmisión de tramas se usan paquetes de tamaño variable y en ATM se usan paquetes de tamaño fijo , con lo que se ahorra información de control de cada trama y por tanto se aumenta la velocidad de transmisión ( cada paquete se llama aquí "celda" ) . En este sistema , se dedican canales virtuales de velocidades de transmisión adaptables a las características de la transmisión ( es parecido a la conmutación de circuitos ) .

Modo de transferencia asíncrona

Page 26: Presentacion Evolucion De Las Tecnologias

Es un sistema de transmisión de enfoque universal y de velocidad de transmisión muy rápida . Está basado en conmutación de circuitos ( banda estrecha ) y en conmutación de paquetes ( banda ancha ) .

RDSI y RDSI de banda ancha

Page 27: Presentacion Evolucion De Las Tecnologias

Son de cobertura pequeña.velocidades de transmisión muy elevadas. utilizan redes de difusión en vez de

conmutación. no hay nodos intermedios .

Redes de área local ( LAN )

Page 28: Presentacion Evolucion De Las Tecnologias

Aplicaciones en Capas

• Fausto Loja Mora

Page 29: Presentacion Evolucion De Las Tecnologias

El modelo de aplicaciones en capas, permite que las aplicaciones puedan ser distribuidas en sus componentes

Aplicaciones en capas

Page 30: Presentacion Evolucion De Las Tecnologias

Desarrollos paralelos (en cada capa)

Aplicaciones más robustas debido al encapsulamiento   Mantenimiento y soporte más sencillo (es más sencillo cambiar

un componente que modificar una aplicación monolítica)   Mayor flexibilidad (se pueden añadir nuevos módulos para

dotar al sistema de nueva funcionalidad)   Alta escalabilidad. La principal ventaja de una aplicación

distribuida bien diseñada es su buen escalado, es decir, que puede manejar muchas peticiones con el mismo rendimiento simplemente añadiendo más hardware. El crecimiento es casi lineal y no es necesario añadir más código para conseguir esta escalabilidad.

Ventajas

Page 31: Presentacion Evolucion De Las Tecnologias

Acceso a bases de datos (BD)Normalmente con BD relacionales

EscalablesDeberían poder soportar más carga de trabajo

sin necesidad de modificar el software (sólo añadir más máquinas)

DisponibilidadIdealmente no deben dejar de prestar servicio

Características

Page 32: Presentacion Evolucion De Las Tecnologias

Seguras No todos los usuarios pueden acceder a la

misma funcionalidad Integración

Es preciso integrar aplicaciones construidas con distintas tecnologías

Tipo de interfaz De entorno de ventanas (clientes desktop):

normalmente sólo tiene sentido en intranets. Web: En Internet y en intranets.

Características

Page 33: Presentacion Evolucion De Las Tecnologias

Separación clara entre la interfaz gráfica y la Capa de componentes Capa de componentes: encapsulan la lógica de

negocio. Ejemplo => aplicación bancaria▪ Capa de componentes: conjunto de clases que nos

permiten: crear cuentas, destruirlas, encontrarlas por distintos criterios, hacer transferencias bancarias, etc.

La capa de componentes debería ser reusable con distintas interfaces gráficas

En el ejemplo de la aplicación bancaria podría haber dos clientes: uno Web y otro desktop.

Características

Page 34: Presentacion Evolucion De Las Tecnologias

Transaccionales Propiedades ACID (Atomicity-Consistency-Isolation-Durability) Operaciones atómicas (Atomicity) son operaciones que se completan

en su totalidad o no se completan en absoluto. Así, en el ejemplo anterior de la transferencia tanto el crédito como el débito deben haber sido exitosos para que el estado de transformación sea exitoso (para que haga efectos), de otro modo el estado de la transformación falla, y el sistema es regresado a su último estado conocido.

Transformaciones consistentes (Consistency) preservan la integridad interna de los recursos involucrados. Por ejemplo, el borrar registros de una tabla primaria viola la integridad referencial de la base de datos si hay registros relacionados que concuerden.

Transformaciones aisladas (Isolation) parecen ocurrir serialmente, una detrás de otra, creando la ilusión de que ninguna transformación está siendo ejecutada al mismo tiempo.

La durabilidad (Durability) se refiere a la habilidad para almacenar los resultados de una transformación de estado, usualmente en un disco, de tal modo que los resultados de una transformación puedan ser recuperados en caso de una falla del sistema.

Características

Page 35: Presentacion Evolucion De Las Tecnologias

Aplicaciones de 1 capa

Page 36: Presentacion Evolucion De Las Tecnologias

Aplicaciones de 2 capas

Page 37: Presentacion Evolucion De Las Tecnologias

Aplicaciones de 3 capas

Page 38: Presentacion Evolucion De Las Tecnologias

La capa de servicios de presentación es responsable de:Obtener información del usuario. Enviar la información del usuario a los

servicios de negocios para su procesamiento. Recibir los resultados del procesamiento de los

servicios de negocios. Presentar estos resultados al usuario.

Presentación

Page 39: Presentacion Evolucion De Las Tecnologias

El nivel de servicios de negocios es responsable de: Recibir la entrada del nivel de presentación. Interactuar con los servicios de datos para

ejecutar las operaciones de negocios para los que la aplicación fue diseñada a automatizar (por ejemplo, la preparación de impuestos por ingresos, el procesamiento de ordenes y así sucesivamente).

Enviar el resultado procesado al nivel de presentación.

Negocio

Page 40: Presentacion Evolucion De Las Tecnologias

El nivel de servicios de datos es responsable de:Almacenar los datos. Recuperar los datos. Mantener los datos. La integridad de los datos.

Datos

Page 41: Presentacion Evolucion De Las Tecnologias

Aplicaciones de 3 capas

Page 42: Presentacion Evolucion De Las Tecnologias

Aplicaciones de N capas

Page 43: Presentacion Evolucion De Las Tecnologias

Arquitectura PAG

Page 44: Presentacion Evolucion De Las Tecnologias

Capa de Presentación

• UI Components–Muestran información al usuario,

generalmente se usan en ventanas o páginas (user components, server components)

• UI Process Components– Implementan procesos de UI– Se pueden reutilizar desde distindos UI

components y distintas capas de presentación

Page 45: Presentacion Evolucion De Las Tecnologias

Capa de Presentación• Model View Controller

View

Controller

Model

Use

r

Page 46: Presentacion Evolucion De Las Tecnologias

Capa de Presentación

• Model View Controller– Tiene algunos “problemas” en su

implementación:• Concepto de Proceso• Responsabilidad de navegación• Hace falta intercambiar más información

entre el Controller y la View

Page 47: Presentacion Evolucion De Las Tecnologias

Demo UIP

Page 48: Presentacion Evolucion De Las Tecnologias

Capa de Lógica de Negocio

Page 49: Presentacion Evolucion De Las Tecnologias

Capa de Lógica de Negocios

Service Interface Solo una capa de acceso a la lógica de

negocio Expuesta generalmente con WebServices o

Remoting Se pueden usar otras formas de acceso:

BizTalk, Message Queue, etc. Al ser el punto de acceso a toda la capa de

negocio, por lo tanto se utiliza para implementar todos los servicios globales:▪ Transacciones, Seguridad, Monitoreo, Caching, etc.

Page 50: Presentacion Evolucion De Las Tecnologias

Capa de Lógica de Negocios

• Demo de Service Interface• MBI es una implementación de

Service Interface–Usando Remoting

Page 51: Presentacion Evolucion De Las Tecnologias

Capa de Lógica de Negocios

Business Entities Son objetos solo con propiedades para

mantener una instancia en memoria. Deben soportar la distinción entre una

instancia y un conjunto de instancias. “Pueden” mapearse con las tablas de la base

de datos, si la base está bien modelada. El assembly en el que se definen se encuentra

en Business Layer y Presentation Layer Hay varias formas de implementar esto:▪ Datasets, Typed Datasets o Custom Objects▪ Discusión sobre este tema en “Designing Data Tier

Components and Passing Data Through Tiers”

Page 52: Presentacion Evolucion De Las Tecnologias

Capa de Lógica de Negocios

• Business Components– Son objetos que definen solo métodos que se

ejecutan en el contexto de un Business Entity.– FacturaBO.AplicarDescuento( factura, descuento )– ClienteBO.ValidarCredito( cliente, monto, plazo )

– Alunos métodos requieren acceder a la base de datos.

– Porque están separados?• Separación de assemblies. Porque las entidades se usan

en Business Layer y Presentation Layer, mientras que los Business Components solo están en Business Layer.

• Es la única forma si se usan DataSets.• Evitar la propagación de la lógica de negocio.

Page 53: Presentacion Evolucion De Las Tecnologias

Capa de Lógica de Negocios

Business Workflow Hay métodos que no pertenecen a ningún

objeto. :S Facturar( Vendedor, Cliente, Items[] )

Estos métodos se pueden “agrupar” en objetos o tener un objeto por método.

Idealmente ▪ Hay un método de Service Interface por cada Business

Workflow, pero hay métodos de la Service Interface que usar directamente los Business Object

Aunque▪ Si la Service Interface tiene “hardcoded” un método de

Business Workflow un cambio, tiene impactos no deseados.

Page 54: Presentacion Evolucion De Las Tecnologias

Capa de Lógica de Negocios

• Y donde programo …?– Validaciones• Locales• Globales

– Formateo– Valores calculados (ej: Edad,

Factura.Total)–……

Page 55: Presentacion Evolucion De Las Tecnologias

Capa de Datos

• Data Access Logic Components– Objetos sin comportamiento que solo saben

guardar un Business Entity en la base de datos.– Generalmente son clases con métodos estáticos.– Utilizan alguna forma de acceso a datos

simplificado como Data Access Application Block.– Debe ser una única clase que sea llamada por el

Business Component de forma que no se tenga en cuenta el origen de los datos.

– Realiza todas las conversiones y validaciones necesarias que estén relacionadas con el modelo de base de datos.

Page 56: Presentacion Evolucion De Las Tecnologias

Capa de Datos

View

Controller

Model

Use

r

Page 57: Presentacion Evolucion De Las Tecnologias

Capa de Datos• Data Access Logic Components

DALC

BusinessComponent

BusinessEntity

Data

base

Page 58: Presentacion Evolucion De Las Tecnologias

Capa de Datos

• Se puede implementar:– Escribiendo código ADO.NET para cáda

método de cada objeto: Create, Open, Update, Delete, Find.

–Usando SqlDataAdapter, si se usan DataSets como Business Entities.

– Alguna herramienta de Object Relational Mapping.

– Demo

Page 59: Presentacion Evolucion De Las Tecnologias

Demo Mini-Distributed App

Page 60: Presentacion Evolucion De Las Tecnologias

Capa de Datos

• Data Access Application Block– Versión 1.0

• Una sola clase con con todos métodos estáticos que soporta los siguientes features: ExecuteReader, ExecuteDataSet, ExecuteNonQuery, ExecuteXmlReader, cache de parámetros y discovery.

– Versión 3.0• Una clase abstracta con los siguientes métodos: v1.0

más, FillDataSet, UpdateDataset. Execute_____TypeParams.

• Todos los métodos están programados usando las interfaces de ADO.NET. Se usan proveedores muy simples para devolver las clases propias de cada driver ADO.NET.

Page 61: Presentacion Evolucion De Las Tecnologias

Capa de Datos

Data Sources Representan los origenes de datos OLTP Solo son accedidos por la capa DALC

Service Agents Conectores para acceso a una fuente de datos

externa Generalmente son asincrónicos realizan una

fuerte conversión de datosExternal Services

Sistemas externos generalmente Batch que se acceden en forma sincrónica o asincrónica.

La conectividad puede estar apoyada por alguna tecnología de Store-and-Forward.

Page 62: Presentacion Evolucion De Las Tecnologias

Capa de Datos

• Demo de Service Agent

Page 63: Presentacion Evolucion De Las Tecnologias

Capa de Infraestructura

• Son servicios para las aplicaciones• Dado que no pertenecen a ninguna capa, se

definen por fuera aunque en algunos casos se implementen o usen en alguna capa.

• Son los siguientes:– Seguridad

• AuthZ, AuthN, Comunicación segura, Aditoría, Manejo de Perfiles.

– Operaciones• Manejo de excepciones, Monitoreo, Execución

asincrónica, Metadatos, Configuración.– Comunicaciones

• Formato, Protocolo, Asincronismo.

Page 64: Presentacion Evolucion De Las Tecnologias

Seguridad Autenticación.

Generalmente se utiliza el soporte de la plataforma, en Windows: SSPI(Kerberos, NTLM), Passport, etc.

Para aplicaciones Web se usa el soporte de IIS Aunque se puede implementar un soporte liviano

basado en Forms y cookies. Ver ▪ “Improving Web Application Security: Threats and

Countermeasures”▪ “Authentication in ASP.NET: .NET Security Guidance” ▪ “Building Secure ASP.NET Applications”.

Autorización Dado que basarse en el soporte de la plataforma es

muy complicado, se desarrolla este soporte para la aplicación.

Ver “Designing Application-Managed Authorization”

Page 65: Presentacion Evolucion De Las Tecnologias

Seguridad Comunicación segura

En .NET la comunicación está basada en Remoting, WebServices o algún tipo de comunicación propietaria.

Nuevamente se puede utilizar el soporte de base, sea SSL (WebServices), o algún canal seguro de Remoting (NamedPipes).

Es un problema de la capa de Service Interface Aditoría

Registro de las operaciones realizadas:▪ Tecnico▪ Lógico

Manejo de Perfiles Concepto de usuario de la aplicación que contiene

configuración. Todas las capas colaboran, soportada en conjunto con

la Autorización.

Page 66: Presentacion Evolucion De Las Tecnologias

Operaciones

Manejo de excepciones Registro de todas las excepciones Dos tipos de excepciones (idea de MBI)▪ Tecnicas▪ Funcionales

Usar la InnerException Usando Exception Management Application

Block (EMAB) o Log4Net Ver “Exception Management in .NET” Responsabilidad de la capa Service Interface

Page 67: Presentacion Evolucion De Las Tecnologias

Exception Management Application Block

Page 68: Presentacion Evolucion De Las Tecnologias

Operaciones

Monitoreo Control de la aplicación mientras está en ejecución▪ Performance Counters▪ WMI

Responsabilidad de la capa Service Interface Ver “Monitoring in .NET Distributed Applications

Design”Execución asincrónica

Soportado internamente (Remoting Asincrónica) o externamente (MSMQ).

Se puede desarrollar un soporte genérico Ver “Asynchronous Invocation Application Block”

Page 69: Presentacion Evolucion De Las Tecnologias

Operaciones

Metadatos “Información sobre la información o la

estructura del software” Se puede usar en▪ Tiempo de diseño: generación de código▪ Tiempo de ejecución: aspectos estáticos

(deployment, configuración, seguridad, etc) Integración. Si se usan DataSets se

pueden publicar los XSD de forma que el modelo de datos sea público. (Idea de MBI)

Page 70: Presentacion Evolucion De Las Tecnologias

Operaciones

• Configuración– Configuración disponible en toda la aplicación.– Generalmente hay dos tipos

• Capa de presentación– Ubicación de la capa de lógica (Remoting, WebService),

propiedades de seguridad de Web o Windows, etc.

• Capa de lógica y de datos.– Coneción a la base de datos, exposición de servicios,

parámetros de seguridad, etc

– Se puede implementar como un Singleton, con una clase aprovechando XmlSerialization.

– Ver “Configuration Management Application Block”

Page 71: Presentacion Evolucion De Las Tecnologias

Operaciones

• Demo Configuration Management Application Block

Page 72: Presentacion Evolucion De Las Tecnologias

Comunicaciones

• Muy basado en las opciones de Remoting y WebServices

• Puntos que se pueden configurar– Formato• Binario, SOAP, Custom Xml, Custom Binary.

– Protocolo• HTTP, TCP, BiDirectional TCP, NamedPipes,

SMTP, Jabber, IM, etc

Page 73: Presentacion Evolucion De Las Tecnologias

Comunicaciones

• Intra-aplicación • Inter-aplicación

Page 74: Presentacion Evolucion De Las Tecnologias

Requerimientos comunes

Caching Puede ser necesario en todas las capas▪ Presentación▪ Lógica▪ Datos

Soluciones▪ ASP.NET. Caching ASP.NET▪ Caching Application Block

Warnings▪ Sincronización en ambientes distribuidos▪ Soluciones: TTL o Metadatos

▪ Mantenimiento▪ Flush, Disable, Failover

Page 75: Presentacion Evolucion De Las Tecnologias

Requerimientos comunes

Balanceo de Carga / Alta disponibilidad Network Load Balancer.▪ Con WebServices 100% soportado▪ Con Remoting solo SingleCall▪ Basado en el servidor▪ Balanceo estadístico genérico

Custom ClientChannelSink▪ Que soporte un balanceo desde el cliente, itera

por un listado de servidores cambiando el URI.▪ Puede ser un balanceo “inteligente”

Page 76: Presentacion Evolucion De Las Tecnologias

Requerimientos comunes

• Concurrencia– Buscar una opción para mantener la

concurrencia de datos– Dado que hay un ambiente distribuido

sin estado en el servidor, hay que relajar la concurrencia de los datos = optimista.

– Se puede usar• SqlDataAdapter• Un Object Relational Mapping tool

Page 77: Presentacion Evolucion De Las Tecnologias

Requerimientos comunes

• Persistencia• Transacciones Distribuidas• Performance• Sesión• Reportes

Page 78: Presentacion Evolucion De Las Tecnologias

Requerimientos comunes

• Persistencia– Programar los DALC puede ser bastante

largo y repetitivo– Se pueden usar herramientas ORM– Generación de código usando

CodeSmith, XSLT, etc.• Transacciones Distribuidas–No es un atributo del componente sino

del contexto de ejecución– Implementar soporte transaccional en la

capa de Service Interface

Page 79: Presentacion Evolucion De Las Tecnologias

Requerimientos comunes

• Performance– Optimización del acceso a la base de datos– Atención al tamaño de los objetos para serializar– Paginación inteligente obligatoria

• Sesión– Modelo totalmente state-less– La sesión se mantiene del Service Interface

hacia adelante– En WinForms no hay demasiados problemas– En ASP.NET hay distintas opciones cada una con

su costo asociado.

Page 80: Presentacion Evolucion De Las Tecnologias

Requerimientos comunes

• Reportes– QUE PROBLEMA !!!– Depende de la herramienta que se use.– Si bien es un problema de Capa de

Presentación algunas herramientas necesitan acceso directo a la base de datos.

– Otras usan DataSets lo cual se complica si hay sets de datos muy grandes.

– Recomendación: Sentido común.