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

Presentacion Evolucion De Las Tecnologias

Embed Size (px)

Citation preview

Evolución de las tecnologías para el

desarrollo de aplicaciones distribuidas

TECNOLOGICO DE ESTUDIOS SUPERIORES DE CUAUTITLAN

IZCALLI

INTERFAZ DE USUARIO

INTERFAZ DE USUARIO• Cuando una persona tiene que usar y controlar

una maquina, un dispositivo electrónico o unequipo informático, lo hace a través de lo quese llama una interfaz de usuario. La tecnologíade interfaz de usuario, al igual que elhardware, ha pasado por una serie degeneraciones [TESLER, 1991]. Estasgeneraciones contienen o parecen contener alas anteriores, y se pueden clasificarcronológicamente como sigue [NIELSEN, 1993]:

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.

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

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.

1995-Futuro: interfaces no basadas en mandatos. Las formas comunesde añadir una dimensión a las interfaces de usuario consisten en añadirtiempo (en forma de animación), sonido o voz, así como una verdaderatercera dimensión espacial en forma de sistemas de realidad virtual. Lasdos predicciones más fáciles con respecto a la siguiente generación deinterfaces de usuario son que incluirán una dimensional dad más altacon más tipos de medios y que serán altamente portables ypersonales, a la vez que se utiliza tecnología de comunicaciones paraconseguir una gran conectividad. Todos los estilos de interfaz hastaahora han tenido en común, al menos, el concepto de mandato, y sebasaban en el principio de un diálogo explícito entre el usuario y elordenador en el que el usuario ordenaba al ordenador que hicieseciertas acciones específicas. En estos sistemas futuros, el ordenador seencargará de tomar la responsabilidad de la interacción, basando susacciones en sus observaciones del usuario, utilizando tecnologías comoel seguimiento del ojo, reconocimiento de gestos y análisis sema-inteligente de las acciones del usuario.

EVOLUCION DE LAS TECNOLOGIAS PARA

APLICACIONES DISTRIBUIDAS

• APLICACION

Aplicaciones independientes del sistema que soportan usuarios reales

o programas de aplicación.

ISO 9545

La Entidad de Aplicación trata con los

Servicios 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)

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

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

Soprtes de red

Obtencion e interrupcion de una conexión

Servidor de dominacion de dominio

De internet

Correo electronico

DNS

telnet

Transferencia de archivo

Trasferencia de hipertexto

CONTRERAS SANCHEZ LINDA IRAISHUERTA CAMACHO ANA KAREN

LOPEZ RODRIGUEZ EDUARDO MOISESMONTOYA ROMERO NELLY JAZMIN

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

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

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

Principalmente los cambios tecnológicos han surgido por lasnecesidades genuinas de la sociedad, los negocios y laeconomía principalmente. La administración solamentepermitirán que exista un nuevo sistema cuando se reduzca elcosto del sistema anterior.

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

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

Comunicación de datos

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

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.

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

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 .

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 ) .

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 ) .

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 .

Aplicaciones en Capas

• Fausto Loja Mora

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

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.

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

Escalables Deberían poder soportar más carga de trabajo sin

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

Disponibilidad Idealmente no deben dejar de prestar servicio

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.

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.

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.

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.

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.

El nivel de servicios de datos es responsable de: Almacenar los datos.

Recuperar los datos.

Mantener los datos.

La integridad de los datos.

• 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

• Model View Controller

View

Controller

Model

User

• 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

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.

• Demo de Service Interface

• MBI es una implementación de Service Interface

– Usando Remoting

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”

• 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.

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.

• Y donde programo …?

– Validaciones

• Locales

• Globales

– Formateo

– Valores calculados (ej: Edad, Factura.Total)

– ……

• 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.

View

Controller

Model

User

• Data Access Logic Components

DALC

BusinessComponent

BusinessEntityD

atabase

• 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

• 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.

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 datos External 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.

• Demo de Service Agent

• 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.

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”

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.

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

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”

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)

• 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”

• Demo Configuration Management Application Block

• 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

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

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

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”

• 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

• Persistencia

• Transacciones Distribuidas

• Performance

• Sesión

• Reportes

• 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

• 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.

• 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.