Está en la página 1de 169

ARQUITECTURAS DE SOFTWARE

Sistemas de flujo de datos (Dataflow) - Batch secuencial - Pipes-filters Sistemas llamada-respuesta - Programa principal (Main) y subrutinas, funciones, procedimientos - Sistemas OO - Capas jerrquicas Componentes independientes - Procesos que se comunican - Sistemas de eventos Mquinas virtuales - Interpretadores - Sistemas de reglas, basados en conocimiento Sistemas centrados en datos (repositorios) - Bases de Datos - Sistemas hipertexto - Pizarras (blackboard)

UCLA

Rodolfo Caneln

Estilos que definen la Arquitectura


Sistemas Distribuidos (procesamiento) Cliente/Servidor (fsica) Repositorio (Datos) O-O Wireless (Comunicacin)

UCLA

Rodolfo Caneln

Estilo - Cliente/Servidor
2 capas 3 capas n capas Tecnologa en el servidor Tecnologa en el cliente

UCLA

Rodolfo Caneln

Estilo - Cliente/Servidor
El par de entidades que ofrecen y requieren servicios constituye el modelo cliente/servidor

Client
UCLA

Interface

Server

Rodolfo Caneln

Modelo - Cliente/Servidor
El anlisis funcional de una aplicacin pone en evidencia tres

partes:

La interfaz usuario (presentacin). En general es grfica (GUI). Debe funcionar sobre varias plataformas La lgica de la aplicacin. Representa las reglas del negocio. Contempla el servidor de transacciones y/o el servidor del negocio (business services) El acceso a los datos. Contiene los procedimientos de acceso a los datos, la estructura de la(s) BD(s). Es el servidor de datos

UCLA

Rodolfo Caneln

Cliente/Servidor Dos Capas


Maquina Cliente (UNIX, Windows, Linux,...)

Servidor de Base de Datos

UCLA

Rodolfo Caneln

Estilo - Cliente/Servidor
Modelo de Dos Capas:

Este modelo se basa en que la conexin entre la aplicacin Java o el applet que se ejecuta en el navegador, se conectan directamente a la base de datos. Esto significa que el driver JDBC especfico para conectarse con la base de datos, debe residir en el sistema local. La base de datos puede estar en cualquier otra mquina y se accede a ella mediante la red. Esta es la configuracin tpica Cliente/Servidor: el programa cliente enva instrucciones SQL a la base de datos, sta las procesa y enva los resultados de vuelta a la aplicacin
UCLA Rodolfo Caneln

Modelo - Cliente/Servidor 3 Capas


La aplicacin del modelo cliente/servidor comporta estas tres

componentes (presentacin, lgica, datos) y conlleva a un modelo denominado en tres capas (estilo layers), en donde cada capa slo comunica con sus vecinos inmediatos

UCLA

Rodolfo Caneln

Modelo - Cliente/Servidor 3 Capas


Servidor de datos Interface Servidor de transacciones Interface

Capa datos

Capa lgica

GUI
UCLA Rodolfo Caneln

Capa presentacin

Modelo - Cliente/Servidor 3 Capas


Entre la GUI y el servidor de transacciones existe una relacin

cliente/servidor

La GUI juega el rol de cliente y el servidor de transacciones juega el rol de servidor La capa de transacciones debe poseer una interfaz perfectamente definida que describe los servicios ofrecidos, para jugar el rol de servidor

UCLA

Rodolfo Caneln

Modelo - Cliente/Servidor 3 Capas


Entre el servidor de transacciones y el servidor de datos existe

una relacin cliente/servidor

El servidor de transacciones juega el rol de cliente y el servidor de datos juega el rol de servidor La componente servidor de datos debe poseer una interfaz perfectamente definida que descibe los servicios de acceso a los datos ofrecidos, para jugar el rol de servidor

UCLA

Rodolfo Caneln

Cliente/Servidor Tres capas


Maquina Cliente (UNIX, Windows, ...)

Maquina Servidor

Servidor de Base de Datos


UCLA Rodolfo Caneln

Estilo - Cliente/Servidor
Modelo de Tres Capas:
En este modelo de acceso a las bases de datos, las instrucciones son enviadas a una capa intermedia entre Cliente y Servidor, que es la que se encarga de enviar las sentencias SQL a la base de datos y recoger el resultado desde la base de datos. En este caso el usuario no tiene contacto directo, ni a travs de la red, con la mquina donde reside la base de datos.

UCLA

Rodolfo Caneln

Arquitectura Web n-capas


Capa de Presentacin (1) cliente 1 cliente 2 cliente n

Capa de Funcionalidades de la Aplicacin (2)

Server Applications

Server Applications

Server Applications

SQL Net

Proxy n-Capas (4+)

BDD CONECTORES:

BDD

Repositorio (3)

ODBC, JDBC TCP/IP, HTTP, HTTPS, Socket, Objetos Distribuidos, CORBA, ORBA UCLA Rodolfo Caneln

Enfoque Re-Arquitectura
M i d d l e w a r e

Aplicaciones y programas modificados

Bases de datos

Programas de anlisis

Reportes y Anlisis

Una capa intermedia se crea entre las aplicaciones y las bases de datos. Usa tecnologa off-the-shell llamadas middleware y Enterprise Application Integration -EAI-. Permite cambiar las aplicaciones sin modificar las bases de datos. Reduce el tiempo de mantenimiento. No exige mucho cambio organizacional. UCLA
Rodolfo Caneln

Requiere de una amplia experticia tcnica. Markus, 2000

EJEMPLO BSC
Capa de Presentaci n (1) cliente 1 cliente 2 cliente n

Capa de Funcionalidades de la Aplicacin (2)

Server Applications Server Applications Server Applications

SQL Net BDD BDD Multi-DB

Proxy

Aplicacin para Bsc: Entorno PDVSA


Heterogeneos, Clientes Thin, Web Delivery, JDBC SQLnet 2.1, Cliente/Servidor 3 tier. Http, Https, Tcp/Ip, Objetos Serializados, Server Socket,Broker Server Aplication Patrones para Manejo de Eventos: Proactor , The asynchronous Completion Token Patrones de Sincronizacin : Scope Locking C++, Strategized locking Patrones de Concurrencia : Active Rodolfo Caneln Async Object, Half UCLA

Calidad de Software

Son los requerimientos que debe cumplir un sistema de software desde el punto de vista estructural o arquitectnico. Las caractersticas de calidad de un software, se presentan de acuerdo a tres puntos de vistas: el sistema, el negocio, la estructura arquitectnica.
UCLA Rodolfo Caneln

Calidad de Software
Modelo de Calidad ISO/IEC 9126-1 25010, 25030.

El modelo de calidad ISO 9126-1 es ahora un estndar en la industria del software y es definido en un alto nivel de abstraccin, en trminos de las visiones de calidad externa, interna y calidad en uso de las caractersticas de calidad.

UCLA

Rodolfo Caneln

Calidad de Software
(Modelo de Calidad ISO-9126-1)
Los modelos de calidad basados en productos se utilizan para medir el alcance de los atributos externos de un producto de software y relacionarlos con la calidad global del producto. La importancia de un diseo preciso de la arquitectura del software, ha crecido enormemente para la construccin de un sistema confiable.

UCLA

Rodolfo Caneln

Calidad de Software
Proporciona un framework para realizar

mediciones de las caractersticas especficas deseables, requeridas en el sistema final y percibidas por los diferentes participantes durante el proyecto de software Premisa: las caractersticas internas del producto en desarrollo afectan la calidad en uso y la calidad externa del producto final

UCLA

Rodolfo Caneln

ENFOQUES DE CALIDAD ISO 9126 (1998))


PRODUCTO DE SOFTWARE
INFLUENCIA CALIDAD INTERNA CALIDAD EXTERNA INFLUENCIA CALIDAD EN USO

PROCESO

EFECTOS DEL PRODUCTO DE SOFTWARE

INFLUENCIA CALIDAD DEL PROCESO

DEPENDE

DEPENDE

DEPENDE

CONTEXTOS DE USO

MEDIDAS DE PROCESO

MEDIDAS INTERNAS
UCLA

MEDIDAS EXTERNAS
Rodolfo Caneln

MEDIDAS DE CALIDAD EN USO

Calidad de Software
Calidad interna: reflejo de la estrategia y

filosofa del diseo, se evala con mtricas internas Calidad externa: calidad del producto entregado, se evala con mtricas externas Calidad en uso: vista de la calidad del usuario final como resultado de utilizar el software, se evala con mtricas externas
UCLA Rodolfo Caneln

Calidad de Software
Atributos observables en Tiempo de Ejecucin (Runtime)

Atributos o caractersticas que responden a preguntas sobre el sistema, tales como:


Provee resultados en tiempo razonable? Produce resultados deseados? Cmo se comporta en tiempo de ejecucin? Cmo responde a la conexin con otros sistemas?

UCLA

Rodolfo Caneln

Calidad de Software
Atributos observables en Tiempo de Ejecucin (Runtime)

1. Desempeo (performance):
Tiempo requerido para responder a un evento o conjunto de eventos procesados en un intervalo de tiempo. Rendimiento del tiempo de respuesta. Velocidad de generacin de pginas. Velocidad de generacin de grficos.

2. Seguridad (security):
Habilidad de un sistema para evitar un servicio a los usuarios no autorizados y proporcionarlo a los autorizados. Validacin de la entrada del usuario.

UCLA

Rodolfo Caneln

Calidad de Software
Atributos observables en Tiempo de Ejecucin (Runtime)

3. Disponibilidad (availability):
Porcin del tiempo que el sistema est operativo. Se asocia con Integridad (habilidad para mantenerse operativo en el tiempo) y con Tolerancia a fallas (habilidad para mantenerse operativo y recuperarse de posibles fallas).

Recuperacin de errores.

UCLA

Rodolfo Caneln

Calidad de Software
Atributos observables en Tiempo de Ejecucin (Runtime)

4. Funcionalidad (functionality): Habilidad del sistema para realizar el trabajo para el cual fue concebido.

Capacidad de recuperacin y bsqueda. Servicio de bsqueda en navegacin. Servicio relacionados con el dominio de la aplicacin. Proceso correcto de enlace

5. Usabilidad (usability): Como el usuario percibe y comunica con el sistema y comprende factores tales como: aprendizaje, desempeo, memorizacin, robustez, satisfaccin.

Capacidad de comprensin del sitio global. Capacidad esttica y de interfaz. Servicio de ayuda y realimentacin en lnea.
UCLA Rodolfo Caneln

Calidad de Software
Atributos No observables en Tiempo de Ejecucin (N-Runtime)

Caractersticas o atributos que responden a preguntas sobre el sistema, tales como:


Qu tan fcil se puede integrar, probar o modificar? Qu tan costoso es el desarrollo? Cul es el tiempo de mercadearlo, una vez concluido?

UCLA

Rodolfo Caneln

Calidad de Software
Atributos No observables en Tiempo de Ejecucin (Runtime)

1. Modificabilidad (modifiability):
Habilidad para realizar cambios rpidamente y a un costo razonable.

Incluye los aspectos: extensin, eliminacin, adaptacin (portabilidad), reestructuracin.


Facilidad de correccin. Adaptabilidad. Extensibilidad.


UCLA Rodolfo Caneln

Calidad de Software
Atributos No observables en Tiempo de Ejecucin (Runtime)

2. Portabilidad (portability):
Habilidad del sistema para ejecutarse bajo diferentes ambientes computacionales.

Clave: Encapsulacin Esconde la capa de portabilidad o el conjunto de servicios que permiten la portabilidad.

UCLA

Rodolfo Caneln

Calidad de Software
Atributos No observables en Tiempo de Ejecucin (Runtime)

3. Reusabilidad (reusability):
Habilidad de poseer una estructura que pueda ser utilizada por otros sistemas.

4. Integrabilidad (integrability):
Habilidad para hacer que componentes del sistema desarrolladas separadamente trabajen juntas correctamente.

UCLA

Rodolfo Caneln

Calidad de Software
Atributos No observables en Tiempo de Ejecucin (Runtime)

5. Interoperabilidad (interoperability):
Habilidad de que el sistema, visto como un conjunto de componentes, pueda trabajar con otros sistemas.

6. Facilidad de prueba (testing facility):


Facilidad de cmo el sistema puede ser probado y demostrar sus fallas a travs de pruebas.

UCLA

Rodolfo Caneln

Modelo de Calidad del software

Funcionalidad Confiabilidad

Usabilidad

Eficiencia

Mantenibilidad Portabilidad

- Convenienza - Correctitud - Interoperativ. - Seguridad - Conformidad

- Comporta- Madurez - Tol. Fallas - Recuperab. -Conformidad miento en - Entendibilidad - Aprendibilidad tiempo - Uso de - Operatividad recursos - Atraccin - Conformidad - Conformidad

- Analizabilidad - Flexibilidad a cambios - Estabilidad - Prueba - Conformidad

- Adaptabilidad - Inestabilidad - Co-existencia - Reemplazabilidad - Conformidad

Modelo de calidad segn ISO 9126 (Calidad externa e interna)


UCLA Rodolfo Caneln

Limitaciones del modelo de calidad de ISO 9126-1


Un solo modelo de calidad para todo el

proceso de desarrollo Las caractersticas internas se deben relacionar con la etapa especfica del proceso de desarrollo No ofrece mtodo o guidelines para el proceso de construccn del modelo de calidad

UCLA

Rodolfo Caneln

Requisitos No Funcionales APLICACIONES MOVILES


Reglas del negocio polticas Uso de protocolos de comunicacin de redes, Ancho de banda. Los requisitos pueden ser vistos en lneas generales como objetivos

principales, de hecho sensibles al cambiante ambiente. El contexto puede cambiar en una va tal que la puesta en operacin del objetivo no sea por tiempo valido o aceptable. En este sentido los requisitos pueden estar intermitentes entre los objetivos y la realidad actual. Por ejemplo, un objetivo para un servicio puede ser provedo para un usuario altamente interactivo. Si el contexto es favorable (Alto ancho de banda, Pantalla a color, Maquina virtual java disponible, entre otros.), El objetivo es trasladado a un servicio Usa un applet de Java para representar una cesta de compra (Finkestein y Savigni et .al, 2004).

UCLA

Rodolfo Caneln

Requisitos No Funcionales APLICACIONES MOVILES


Reglas de procesamiento: las reglas de procesamiento ms importantes de los

ambientes mviles en estudio son (Wohltorf . et. al, 2004) : Los servicios se ejecuta en un ancho espectro de dispositivos, cada uno con configuraciones y funcionalidades diferentes. Los servicios deben siempre ser garantizados dentro del espectro de cobertura. El usuario debe seleccionar el uso de los servicios ofrecidos. Se debe garantizar un ambiente en el cual los usuarios y dispositivos se conectan y desconectan dinmicamente a la red. Los servicios ejecutados en el espectro de cobertura son restringidos por el tipo de dispositivo y la tecnologa de la plataforma de comunicacin del proveedor de servicios. En particular se tiene: La mayora de los dispositivos son pequeos, no slo en el tamao sino tambin en el poder computacional, tamao de memoria, carga limitada de batera, entre otros. Aunque la mayora de los dispositivos tiene alguna forma de conexin., incluso con los nuevos estndares de redes como GPRS, Bluetooth, 802.11x, entre otros. El ancho de banda todava esta relativamente limitado comparado con las tecnologas de red existentes. Adems, las conexiones son normalmente inestables

UCLA

Rodolfo Caneln

RequisitosArquitecturales
REQUISITOS NO FUNCIONALES
Minimizacin en el consumo de recursos (bateras, almacenamiento de datos, tamao del display , entre otros).

PROPIEDAD DE CALIDAD
Efficiency (performance) Con respecto a la utilizacin de recursos ; propiedad cuantitativa -Atributo: consumo de recurso para cada dispositivo

SOLUCIN ARQUITECTURAL

MTRICA

Protocolo de comunicacin de redes, Ancho dePorcentaje [0..1] banda. Medida durante la ejecucin

Los Datos deben ser transmitidos completa, correctamente Reliability (consistency) Provee un mecanismo, es decir el manejo de laMiddleware incluyendo MEDIATOR y consistentes con conexiones transientes. replica actualizando en cada dispositivo; propiedad cualitativa -Atributo: presencia de mecanismo

Boolean

Tiempo de transmisin limitado. Tiempos de respuesta adecuados a un rango

Efficiency (performance) con respecto al tiempo de respuesta y conexiones; propiedad cuantitativa -Atributo: latency

Protocolo de comunicacin de redes, Ancho dePorcentaje [0..1] banda. Medida durante la ejecucin

Comunicacin flexible debe ser flexible a los requisitos de -Maintainability (changeability) Extensibilidad del ambiente de cambios y relaciones entre componentes que pueden ser ejecucin; propiedad cuantitativa estticos y dinmicos. -Atributo: Tamao -Portability (replaceability) Propiedad cuantitativa -Atributo: Tamao Solucin centralizada, donde la interfaz del dispositivo es Reliability (availability) Propiedad cualitativa distribuida por el middleware de la aplicacin a travs de -Atributo: presencia de un mecanismo, en este caso el middleware la red. soportado por el patrn agente MEDIATOR Reconfiguracion Dinmica de Interfaces Maintainability (changeability) Propiedad cuantitativa -Atributo: Tamao Reliability (consistency) propiedad cualitativa -Atributo: presencia de un mecanismo Portability (adaptability) propiedad cualitativa -Atributo: presencia de un mecanismo

Reflection [28] Mecanismo para observar el estado de un componente para permitir cambios dinmicos en la estructura y desempeo

-Medida de complejidad , es decir numero de componentes dinmicos en un periodo de tiempo -Medida de complejidad

Middleware incluyendo MEDIATOR

Boolean

Middleware incluyendo MEDIATOR

-Medida de complejidad -Boolean -Boolean

Tabla 3. Requisitos no funcionales, propiedad de calidad y solucin arquitectural.

UCLA

Rodolfo Caneln

REQUISITOS FUNCIONALES

SOLUCION ARQUITECTURAL

PROPIEDADES DE CALIDAD (INTERNA/EXTERNA)

Manejo de Datos

- Realiability (availability, consistency) Una instancia local provee una interface a un servicio local o Atributo: presencia de un mecanismo Mtrica: Boolean remoto. Ejemplo: Ejecutando localmente un web proxy - Efficiency (performance) con respecto al PushObject [17] Un dispositivo enva un objeto especfico con un requisito limitado espacio y al limitado tiempo de respuesta fuera. Ejemplos : SMS, OBEX Atributo: consumo de recursos de cada RequestObject [17] dispositivo Un dispositivo requiere un objeto especifico (Una pagina Mtrica: Porcentaje [0..1] web) desde otro dispositivo. Ejemplo : WAP - Maintainability (changeability) CannedCode [17] Propiedad cuantitativa Un dispositivo enva cdigo, el cual es ejecutado sobre otro Atributo: Tamao dispositivo. El cdigo no debe ser ejecutado sobre el dispositivo que envi. Ejemplo : WMLscript, web filters

LocalProxy [17]

Servicios Centrados al Usuario

- Maintainability (changeability) Encapsula funciones y datos de no orientados a objetos enAtributo: Tamao APIs concisas, portables, mantenibles y robustas interfacesMtrica: Medida de complejidad - Reliability (fault-tolerance) de clases ComponentConfigurator[28] Permite al componente reconfigurarse en tiempo de ejecucinAtributo: presencia de un mecanismo. vaciando, modificando, recompilando o encadenandoMtrica: Boolean -Usability(attractiveness, operability) estticamente la aplicacin. Atributo: presencia de un mecanismo. Interceptor[28] Permite transparentemente adicionar servicios cuando ciertosMetrica: Boolean

WrapperFaade[28]

eventos ocurran. Variantes: Chain-of-responsibility, Publisher/subscriber y Subject/observer.

Extension Interface[28]

Permite exportar mltiples interfaces por un componente. El componente funcionalmente es extendido y modificado.

Compartimiento de Datos

Repository [44]

-Reliability (availability, consistency) Atributo: presencia de un mecanismo. Mtrica: Boolean

UCLA

Rodolfo Caneln

Tabla 4. Propiedades de calidad para cada funcionalidad y su solucin arquitectural.

Requisitos No Funcionales APLICACIONES MOVILES


Reglas del negocio asociadas al Dominio Requisitos no funcionales derivados de las reglas del negocio. Propiedades de Calidad asociadas a los requisitos no funcionales (Caractersticas de Calidad) ISO/IEC 9126-1 [15] Polticas

Uso de protocolos de comunicacin de redes, ancho de banda.

1. Cumplir con estndares, normativas con el fin de garantizar el servicio requerido.

Funcionalidad (Functionality) - Conformidad (Compliance)

Procesamiento

Los servicios se ejecutan en una diversidad de dispositivos, cada uno1. Las funcionalidades deben adaptarse a las caractersticas de los Dispositivos.

con configuraciones y funcionalidades diferentes.

Portabilidad (Portability) -Adaptabilidad (adaptability)

Los servicios deben ser garantizados dentro del rea de cobertura.

1. Hacer posible los servicios, lo cual implica, ancho de banda apropiado y garantizar las conexiones mviles, tenindose que solventar problemas de redes. 2. Tiempo de transmisin apropiado. Tiempos de respuesta adecuados dentro de un rango establecido.

Confiabilidad (confiability) -Disponibilidad (Availability) Eficiencia (eficiency) -Comportamiento del tiempo (Time Behaviour) con respecto al tiempo de respuesta y a las conexiones.

El usuario selecciona los servicios disponibles en el rea de cobertura. 1. Ofrecer funcionalidades que respondan a las necesidades de los usuarios.

2. Facilidad en la seleccin de los servicios ofrecidos.

Funcionalidad(Functionality) -Adecuada(Suitability) Usabilidad (usability) -Operabilidad (operability)

Los dispositivos se conecten y desconectan dinmicamente a la red.

1. Garantizar la disponibilidad del servicio al conectarse.

Confiabilidad (confiability) -Disponibilidad (availability)

UCLA

Rodolfo Caneln

Requisitos Funcionales
APLICACIONES MOVILES
Propiedades de calidad asociadas (Caractersticas de calidad ) ISO/IEC 9126-1 [15] Requisitos Funcionales Manejar Datos: Los datos deben ser transmitidos completa y correctamente. Confiabilidad (confiability) -Disponibilidad (availability) Con respecto a lo limitado del recurso de espacio) Eficiencia (Efficiency) -Comportamiento del tiempo (Behaviour time) (con respecto al tiempo de respuesta limitado). Funcionalidad (Functionality) -Precisin (accurancy) En el estndar QoS ISO [17], la integridad esta relacionada con acurrancy.

Servicios de informacin: gestiona informacin al usuario.

Usabilidad (Usability) -Atractivo (atractiveness) -Operabilidad (Operability) Portabilidad (Portability) -Adaptabilidad (adaptability) -Escalabilidad (Scalability)

Servicios de comunicacin: comunicacin entre usuarios, transporte de informacin y establecimiento de conexiones.

Portabilidad (Portability) -Conformidad (compliance) -Escalabilidad (Scalability) Funcionalidad (Functionability) -Seguridad (Security)

Servicios de administracin: (defecto, configuracin, Bitcora, ejecucin y seguridad)

Usabilidad (Usability) -Atractivo (Atractiveness) - Operabilidad (Operability)

Compartir Datos: Los dispositivos mviles formarn una red ad-hoc que se conecta entre ellos para intercambiar laConfiabilidad (Confiability) informacin y para proporcionar los servicios a los usuarios. -Disponibilidad (Availability) Funcionalidad (Functionality) -Interoperabilidad (Interoperability)

UCLA

Rodolfo Caneln

Topologa de aplicaciones WEB. Caso De Estudio


Internet es

un mecanismo Request/Response.
www.url.com
Request

Server Web Pages

HTTP protocol
Response

Workstation

HTML

El server web browser, un request y envia Desde unremoto procesa elusuario indica un un HTML es un request a recibido por URL. Esteresponse que es un server el UCLA browser y presentado al usuario Rodolfo una como remoto sobre el protocolo HTTP. Caneln pagina WEB.

Arquitectura para Web


Influencias de la Arquitectura Cliente y Usuario Final Proveedores de Contexto Proveedores de Servicios While World Desarrollo Organizacional Proveedores de Software Ambiente Tcnico Heterogneo Computacin Distribuida WWW Experiencia en Arquitecturas Internet y Hipertexto WWW

Requerimientos (Calidad) Acceso Remoto Interoperatibilidad Extensibilidad (de software y datos) Escalabilidad Upward Compatibility

Architect(s) WWW Consortium

Arquitectura libWWW Jigsaw Cliente/Servidor Sistema WWW

UCLA

Rodolfo Caneln

Topologa - 1era. Generacin


Zona Abierta
Cliente Servidor de informacin Servidor Web Lgica de Aplicacin Conexiones a Datos

Internet

IP No seguro Pginas Estticas UCLA Conversor de datos


Rodolfo Caneln

Topologa - 1ra. Generacin


Modelo Basado en Contenidos

Textual. Multimedia. Informacin Esttica. Objetivo: Disponer rpidamente del sitio. Reducir costos de implementacin. Informacin de acceso pblico. Utilizacin de herramientas para ayudar a construir la interfaz de las pginas. Indices de informacin. Herramientas de bsqueda.

UCLA

Rodolfo Caneln

Topologa - 2da. Generacin


Sitios Web Activos. Caracterizados por ofrecer pginas fabricadas dinmicamente o con fuerte componente dinmico. Primeras aplicaciones comerciales: Telecompra (con tarjeta de crdito). Telecatlogo. Telebanco. Tecnologa basada en HTML: Soporte de conexiones (cookies). Control de acceso. Programas del lado del cliente. Programas del lado del servidor.
UCLA Rodolfo Caneln

Topologa - 2da. Generacin


Mundo Exterior
Cliente
Cookie

Zona Abierta
Servidor de informacin Servidor Web Lgica de Aplicacin Conexiones a Datos Conexin con Backend.

Red Interna
Aplicacin Aplicacin Aplicacin Aplicacin

Internet

IP No seguro Pginas Estticas UCLA

Servidor de BD
Rodolfo Caneln

Topologa - 3era. Generacin


Manejar adecuadamente la informacin. Ofrecer mtodos y herramientas para desarrollar

fcilmente aplicaciones adecuadas a los negocios. Integrar aplicaciones de diversos fabricantes.

Uso de Middleware: Capa de software que reduce el esfuerzo de programacin para enlazar aplicaciones diferentes.

Ofrecer la posibilidad de actualizar facilmente las

plataformas (Uso de tecnologa O-O). Integrar Web e Internet:


La clave es la interfaz que sirve para intercambiar informacin entre compaas. Comunicaciones independientes de la plataforma.

UCLA

Rodolfo Caneln

Topologa - 3era. Generacin


Negocios. Middleware para integradores. Ventas.

Inventario. B2B.

Interfaces de Usuario. Movilidad. Personalizacin. HIC


UCLA Rodolfo Caneln

Topologa - 3era. Generacin


Objetivo

Poder vender a clientes a travs de la Internet. Implementar un sistema de gestin de rdenes de compra por la red. Funciones Inventario Gestin de rdenes de compra Informacin de precios Distribucin Clculo de impuestos Procesamiento de crditos Herramientas Middleware para acceder a la BD. Aplicaciones de personalizacin a clientes y Gestin de relaciones entre consumidores (CRM)

UCLA Rodolfo Caneln

Topologa - 3era. Generacin


Movilidad: Filtros de datos para dispositivos inalmbricos. Soporte de voz. Personalizacin: Traductores automticos (internacionalizacin). Gestin y explotacin de portales. Aplicaciones 3D. Evolucin de las UI. Orientadas a lnea: Directamente peticiones SQL. Formularios. Informes escritos. Interfaces grficas. Interfaces 3D.
UCLA Rodolfo Caneln

Topologa - 3era. Generacin


Mundo Exterior
Cortafuegos Ligero

Zona Abierta
Servidor de informacin Servidor Web Lgica de Aplicacin Conexiones a Datos Conexin con Backend. Cortafuegos del dominio

Red Interna
Nodo de Integracin Aplicacin Aplicacin Directorio Seguridad Aplicacin Sistemas de Gestin Servidor de BD Nodo de Gestin y Creacin de contenidos
Rodolfo Caneln

Cliente
Cookie

Internet

IP seguro y No seguro

Pginas Estticas UCLA

Estilos que definen la Arquitectura WEB


Sistemas Distribuidos (procesamiento) Cliente/Servidor (fsica) Repositorio O-O Wireless

UCLA

Rodolfo Caneln

Estilo Sistemas Distribuidos


Client-Dispatcher-Server:
Client doTask sendRequest requests service returns result Server acceptConnecting runService Dispatcher locationMap registerService requests connection unregisterService locateServer establishChannel getChannel receiveRequest accepts link

registers

establishes connection

UCLA

Rodolfo Caneln

Estilo Sistemas Distribuidos


Broker para comunicacin directa:
Server-side Registry (Broker) URL Objetos distribuidos RMI Object server URL Other WWW servers

WWW server

Client-side RMI WWW browser (Client)

RMI URL

UCLA

Rodolfo Caneln

Estilo - Cliente/Servidor
2 capas 3 capas n capas Tecnologa en el servidor Tecnologa en el cliente

UCLA

Rodolfo Caneln

Arquitectura Web n-capas


Capa de Presentacin (1) cliente 1 cliente 2 cliente n

Capa de Funcionalidades de la Aplicacin (2)

Server Applications

Server Applications

Server Applications

SQL Net

Proxy n-Capas (4+)

BDD CONECTORES:

BDD

Repositorio (3)

ODBC, JDBC TCP/IP, HTTP, HTTPS, Socket, Objetos Distribuidos, CORBA, ORBA UCLA Rodolfo Caneln

EJEMPLO BSC
Capa de Presentaci n (1) cliente 1 cliente 2 cliente n

Capa de Funcionalidades de la Aplicacin (2)

Server Applications Server Applications Server Applications

SQL Net BDD BDD Multi-DB

Proxy

Aplicacin para Bsc: Entorno PDVSA


Heterogeneos, Clientes Thin, Web Delivery, JDBC SQLnet 2.1, Cliente/Servidor 3 tier. Http, Https, Tcp/Ip, Objetos Serializados, Server Socket,Broker Server Aplication Patrones para Manejo de Eventos: Proactor , The asynchronous Completion Token Patrones de Sincronizacin : Scope Locking C++, Strategized locking Patrones de Concurrencia : Active Rodolfo Caneln Async Object, Half UCLA

Tecnologa en el Servidor

CGI: Shell, Perl, C. APIs Web Propietarias: ISAPI, NSAPI. ASP. PHP. Java Script. JSP JSP (Servlets). MIDLETS

UCLA

Rodolfo Caneln

Tecnologa en el Cliente
Tecnologa de Clientes:

Etiquetas:

SMG. HTML. Script. Applets. Thin/Fat.

XLETS

UCLA

Rodolfo Caneln

Atributos presentes en la Arquitectura WEB


1. Acceso Remoto 2. Interoperatibidad 3. Extensibilidad 4. Escalabilidad 5. Evolutiva 6. Reflexiva 7. Adaptable y Configurable

UCLA

Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Aplicaciones comerciales basadas en la Web estn siendo desarrollados muy rpidamente por necesidades comerciales, sin tener mucho cuidado de las prcticas de ingeniera. La calidad de estos productos no es discutida. Los desarrolladores de software no tienen una descripcin clara de las caractersticas de calidad de las aplicaciones Web.

UCLA

Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)

Se utilizar una tcnica basada en el estndar ISO 9126-1 para especificar las caractersticas de calidad relevantes de una aplicacin Web, refinadas hasta el nivel de sub-caracterstica, involucradas en el proceso de desarrollo arquitectnico de la aplicacin.

UCLA

Rodolfo Caneln

Calidad de Software
Atributos observables en Tiempo de Ejecucin (Runtime)

Caractersticas que responden a preguntas sobre el sistema, tales como:


Provee resultados en tiempo razonable? Produce resultados deseados? Cmo se comporta en tiempo de ejecucin? Cmo responde a la conexin con otros sistemas?

UCLA

Rodolfo Caneln

Calidad de Software
Atributos observables en Tiempo de Ejecucin (Runtime)
1. Desempeo (performance):

Tiempo requerido para responder a un evento o conjunto de eventos procesados en un intervalo de tiempo. Rendimiento del tiempo de respuesta. Velocidad de generacin de pginas. Velocidad de generacin de grficos.
2. Seguridad (security):

Habilidad de un sistema para evitar un servicio a los usuarios no autorizados y proporcionarlo a los autorizados. Validacin de la entrada del usuario.

UCLA

Rodolfo Caneln

Calidad de Software
Atributos observables en Tiempo de Ejecucin (Runtime)
3. Disponibilidad (availability):

Porcin del tiempo que el sistema est operativo. Se asocia con Integridad (habilidad para mantenerse operativo en el tiempo) y con Tolerancia a fallas (habilidad para mantenerse operativo y recuperarse de posibles fallas).

Recuperacin de errores Errores en los enlaces Errores de navegacin

UCLA

Rodolfo Caneln

Calidad de Software
Atributos observables en Tiempo de Ejecucin (Runtime)
4. Funcionalidad (functionality):

Habilidad del sistema para realizar el trabajo para el cual fue concebido.

Capacidad de recuperacin y bsqueda. Servicio de bsqueda en navegacin. Servicio relacionados con el dominio de la aplicacin. Proceso correcto de enlace

UCLA

Rodolfo Caneln

Calidad de Software
Atributos observables en Tiempo de Ejecucin (Runtime)
5. Usabilidad (usability):

Como el usuario percibe y comunica con el sistema y comprende factores tales como: aprendizaje, desempeo, memorizacin, robustez, satisfaccin.

Capacidad de comprensin del sitio global. Capacidad esttica y de interfaz. Servicio de ayuda y realimentacin en lnea.

UCLA

Rodolfo Caneln

Calidad de Software
Atributos No observables en Tiempo de Ejecucin (N-Runtime)
Caractersticas o atributos que responden a preguntas sobre el sistema, tales como:

Qu tan fcil se puede integrar, probar o modificar? Qu tan costoso es el desarrollo? Cul es el tiempo de mercadearlo, una vez concluido?

UCLA

Rodolfo Caneln

Calidad de Software
Atributos No observables en Tiempo de Ejecucin (Runtime)
1. Modificabilidad (modifiability):

Habilidad para realizar cambios rpidamente y a un costo razonable. Incluye los aspectos: extensin, eliminacin, adaptacin, reestructuracin.

Facilidad de correccin. Adaptabilidad. Extensibilidad.

UCLA

Rodolfo Caneln

Calidad de Software
Atributos No observables en Tiempo de Ejecucin (Runtime)
2. Portabilidad (portability):

Habilidad del sistema para ejecutarse bajo diferentes ambientes computacionales. Clave: Encapsulacin Esconde la capa de portabilidad o el conjunto de servicios que permiten la portabilidad.

UCLA

Rodolfo Caneln

Calidad de Software
Atributos No observables en Tiempo de Ejecucin (Runtime)
3. Reusabilidad (reusability):

Habilidad de poseer una estructura que pueda ser utilizada por otros sistemas.
4. Integrabilidad (integrability):

Habilidad para hacer que componentes del sistema desarrolladas separadamente trabajen juntas correctamente.

UCLA

Rodolfo Caneln

Calidad de Software
Atributos No observables en Tiempo de Ejecucin (Runtime)
5. Interoperabilidad (interoperability):

Habilidad del sistema, visto como un conjunto de componentes, pueda trabajar con otros sistemas.

Transferencia de data entre la aplicacin Web y otro software. Siguiendo estndares de conectividad y manejo de protocolos.

6. Facilidad de prueba (testing facility):

Facilidad de cmo el sistema puede ser probado y demostrar sus fallas a travs de pruebas.

Facilidad de prueba sin instalacin en el sitio del usuario final.


UCLA Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Visin externa: Funcionalidad: Capacidad de la aplicacin Web de proporcionar las funciones que satisfagan las necesidades de la misma o para la cual fue creada. Subcaractersticas:

Conveniencia: Ya que la aplicacin Web debe tener un conjunto apropiado de funciones para realizar las tareas que la misma debe cumplir: mecanismos de bsqueda de la aplicacin, mecanismos de navegacin y browsing, organizacin del contenido.
UCLA Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Funcionalidad (continuacin subcaractersticas):

Exactitud: Si la aplicacin es de tipo transaccional, debe proporcionar resultados correctos. Interoperabilidad: Es conveniente que la aplicacin Web interacte con otros sistemas especficos, por ejemplo, transferencia de data entre la aplicacin Web y otro software, estndares de conectividad y manejo de protocolos. Seguridad: En aplicaciones transaccionales y de UCLA Rodolfo Caneln comunicacin, es necesario prevenir de accesos no autorizados

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Visin externa: Confiabilidad: Capacidad de la aplicacin de mantener un nivel de funcionamiento especificado. Subcaractersticas:

Madurez: Referida a la frecuencia de fallas: presencia de errores en los enlaces, errores de navegacin. Recuperabilidad: Atributos de la aplicacin Web, necesarios para recuperacin en caso de fallas o de errores. Tolerancia a fallas: Atributos de la aplicacin Web necesarios para mantener un nivel de eficiencia en caso de falla.
UCLA Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Visin externa: Usabilidad: Capacidad de la aplicacin Web de ser aprendida, entendida, utilizada y ser atractiva a sus usuarios. Subcaractersticas:

Entendibilidad: Ya que es necesario que el usuario en poco tiempo reconozca la lgica de la aplicacin y para qu sirve, entendimiento global de la aplicacin Web, posesin de realimentacin y ayuda en lnea, etc.

UCLA

Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Usabilidad (continuacin subcaractersticas):

Aprendizaje: Esfuerzo necesario para aprender a usar la aplicacin Web, sobre todo en el caso de aplicaciones que se van a usar frecuentemente, como transaccionales, de entretenimiento, aplicaciones interactivas, etc. Atractividad: Las aplicaciones Web deben ser atractivas a sus usuarios. Operatividad: Esfuerzo necesario, para controlar y operar la aplicacin Web, facilidades de navegacin, facilidades para localizar la UCLA Rodolfo Caneln informacin, etc.

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Visin externa: Eficiencia: Capacidad del la aplicacin Web de proporcionar ejecucin apropiada, en base a unos recursos y unas condiciones especficas. Subcaractersticas:

Comportamiento en el tiempo: Rendimiento del tiempo de respuesta, velocidad de generacin de grficos, velocidad de generacin de pginas, etc. Utilizacin de recursos: Cantidad de recursos utilizados y duracin de su uso para ejecutar una funcin: imgenes , video, sonido.
UCLA Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
CARACTERISTICAS DE CALIDAD
FUNCIONALIDAD

SUBCARACTERISTI CAS
SEGURIDAD

CONFIABILIDAD

CONVENIENCIA EXACTITUD INTEROPERABILI DAD MADUREZ

USABILIDAD ENTENDIBILIDAD APRENDIZAJE EFICIENCIA COMPORTAMIENT O EN EL TIEMPO


UCLA

ATRACTIVIDAD OPERATIVIDAD

UTILIZACION DE RECURSOS
Rodolfo Caneln

MODELO DE CALIDAD PARA APLICACIONES WEB: VISION EXTERNA

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Visin interna: Mantenibilidad: Conjunto de atributos relacionados con el esfuerzo necesario para realizar modificaciones en una aplicacin Web.. Subcaractersticas:

Analizabilidad: Atributos relacionados con el esfuerzo necesario para diagnosticar deficiencias o causas de fallas: documentacin disponible, trazabilidad de la aplicacin, estructura de la aplicacin, etc. Cambiabilidad: Atributos de la aplicacin relacionados con el esfuerzo necesario para hacer modificaciones o corregir errores en la misma: uso de estndares de programacin, uso de modularidad,, desarrollo basado en componentes, etc.
UCLA Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Mantenibilidad (continuacin subcaractersticas):
Facilidad de prueba: Facilidad de prueba de la aplicacin. Estabilidad: Atributos de la aplicacin Web, relacionados con el riesgo de

tener efectos inesperados producto de modificaciones. En una aplicacin Web, se pueden incorporar y desincorporar componentes sin afectar el desempeo de la aplicacin.

UCLA

Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Visin interna: Portabilidad: Atributos de la aplicacin Web que permiten su transferencia de una plataforma a otra. Subcaractersticas:

Adaptabilidad: Las aplicaciones Web deben tener alta escalabilidad, permitiendo a las mismas correr en diferentes plataformas. Instalabilidad: Esfuerzo necesario para instalar la aplicacin en un ambiente especfico. Slo es necesaria la instalacin en el servidor.
UCLA Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
CARACTERISTICAS DE CALIDAD
MANTENIBILIDAD

SUBCARACTERISTICAS

ANALIZABILIDAD

CAMBIABILIDAD

PORTABILIDAD

ADAPTABILIDAD

INSTALABILIDAD

MODELO DE CALIDAD PARA APLICACIONES WEB: VISION INTERNA UCLA Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Para personalizar el modelo de calidad ISO 9126-1, debemos estar conscientes de las propiedades esperadas de la arquitectura en la cual el sistema de software debe ser construido. Para el producto final hay valores de las metas de calidad que deben ser alcanzados o superados, entonces se dice que la arquitectura satisface las caractersticas de calidad requeridas.

UCLA

Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)
Actividades a realizar para evaluar las arquitecturas propuestas:
1. 2. 3.

Anlisis de los requerimientos funcionales y no funcionales del sistema para establecer las metas de calidad. Dar prioridad a las subcaractersticas de calidad tomando en cuenta los requerimientos de calidad del sistema. Presentacin de los estilos arquitectnicos a utilizarse para definir la arquitectura.

UCLA

Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)

Actividades a realizar para evaluar las arquitecturas propuestas (continuacin): 4. Uso del modelo de calidad ISO 9126-1 para evaluar los estilos. 5. Construccin de la tabla de comparacin. 6. Analizar los resultados obtenidos.

UCLA

Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)

Caractersticas Funcionalidad

Sub-Caractersticas Capas Conveniencia Si (Suitability) Interoperatibilidad Si Seguridad Mecanismos a nivel de protocolo y socket Madurez Tolerancia a Fallas Recuperabilidad Protocolo + Socket No Depende de mecanismos adicionales Velocidad de respuesta de la capa Mensaje de: solicitud y respuesta

Repositorio Si Si Mecanismo por cada requerimiento del cliente Depende de mecanismos adicionales Depende de mecanismos adicionales Depende del tiempo de respuesta del DataServer Invocaciones a la base de datos Si

O-O No Mecanismos a nivel de pase de mensajes Alta No No Depende del tiempo de respuesta del mensaje Paso de mensajes

Confiabilidad

Eficiencia

Comportamiento en el tiempo Utilizacin de recursos

UCLA

Rodolfo Caneln

Calidad de Software en WEB


(Modelo de Calidad ISO-9126-1)

Caractersticas Mantenibilidad

Sub-Caractersticas Analizabilidad Cambiabilidad Estabilidad Evaluabilidad Acoplamiento Modularidad

Capas Si Si Si Si Bajo Si Si Si Si

Portabilidad

Adaptabilidad Instalabilidad Reemplazabilidad

Repositorio Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales.

O-O Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales. Depende de mecanismos adicionales.

UCLA

Rodolfo Caneln

Conclusiones
-

La clasificacin y comparacin de estilos arquitectnicos son problemas complejos. La especificacin de los atributos de calidad usando un modelo de calidad basado en estndares internacionales ofrece una amplia y global visin de las caractersticas y atributos de calidad para arquitectura de software desde el punto de vista del arquitecto y del usuario. La evaluacin de estilos arquitectnicos respecto a atributos de calidad se basa en la definicin de modelos de calidad.

UCLA

Rodolfo Caneln

CLASES Siguen
Octubre Middleware Protocolos EAI Noviembre Caracterizacin Arquitectura Patrones Framework Construccin de la interfaz

UCLA

Rodolfo Caneln

Patrones de Aplicaciones WEB


Rodolfo Caneln

UCLA

Rodolfo Caneln

Patrones ms comunes: Thin Web Client (Cliente Web Ligero) Fat Web Client (Cliente Web Pesado) Web Delivery (Distribucin Web) No es una lista completa evolucin tecnolgica constante Es posible aplicar varios patrones a una misma

arquitectura (topologa)
UCLA

Rodolfo Caneln

Patrones de Aplicaciones Web


Expresa esquemas de organizacin

estructural bsica para sistemas Web Proporciona:


Conjunto de subsistemas predefinidos Especificacin de responsabilidades de cada subsistema Reglas y guas para organizar las relaciones entre subsistemas

UCLA

Rodolfo Caneln

Thin Web Client (Cliente Web Ligero)


Aplicabilidad

til para aplicaciones basadas en Internet Mnimo control de la configuracin del cliente El cliente slo necesita un browser Web que realiza peticiones de pginas Lgica del negocio ejecutada en el servidor

Usos Conocidos

Aplicaciones de comercio electrnico

UCLA

Rodolfo Caneln

Thin Web Client (Cliente Web Ligero)


Estructura

Mnima arquitectura para una aplicacin Web Sus principales elementos estn en el servidor

Elementos: Browser del cliente (Cte) Servidor Web (Cte) Conexin HTTP (Ctor) Pginas HTML (Cte) Pginas del servidor (Cte) Servidor de Aplicaciones (Cte)
UCLA

(Cte): Rodolfo Caneln Componente (Ctor): Conector

Thin Web Client (Cliente Web Ligero)


Vista lgica mnima del patrn
Browser + Cookies HTTP Servidor Web + Autenticacin +Gestin de Cookies Servidor de Aplicaciones Estado de Sesin

Pginas del Servidor + Active Server Pages + Java Servlets + ISAPI + NSAPI + CGI + Java Server Pages

Pginas HTML + Form +Entrada de Datos

UCLA

Rodolfo Caneln

Thin Web Client (Cliente Web Ligero)


Elementos Opcionales

Persistencia

Sistemas de Bases de Datos, etc.

Integracin con sistemas heredados

Sistemas Legacy, Sistemas Administrativos, etc.

UCLA

Rodolfo Caneln

Thin Web Client (Cliente Web Ligero)


Vista lgica completa del patrn
Browser + Cookies HTTP Servidor Web + Autenticacin + Gestin de Cookies Servidor de Aplicaciones + Estado de Sesin Sistema de Contabilidad de Mercado

Objetos del Negocio

Interfaz de Sistema Heredado

Pginas HTML + Form + Elementos de Entrada

Pginas del Servidor + Active SP + Java SP + Java Servlets + ISAPI + NSAPI + CGI
UCLA

Mapping de Persistencia

RodolfoPersistencia Caneln

Thin Web Client (Cliente Web Ligero)


Consecuencias (del uso de este patrn) Tiempo de Respuesta:

Adecuada para aplicaciones cuyas respuestas del servidor puedan ser completadas dentro del
tiempo de respuesta aceptable esperado por el usuario y del valor de timeout permitido por el browser del cliente

No adecuada si la aplicacin necesita permitir al usuario iniciar y controlar un proceso del negocio duradero Capacidad de sofisticacin limitada a lo soportado por el browser y la especificacin HTML
UCLA Rodolfo Caneln

Interfaz de usuario

Fat Web Client (Cliente Web Pesado)


Extiende el patrn Cliente Web Ligero con el uso de

scripts y objetos en el lado del cliente:

Scripts del cliente, Controles, Applets, Plug-ins

El cliente puede ejecutar algo de lgica del negocio:

el browser es ms que un contenedor de interfaces de usuario generalizado

UCLA

Rodolfo Caneln

Fat Web Client (Cliente Web Pesado)


Aplicabilidad til para aplicaciones Web en las que

pueda asumirse cierto control sobre


la configuracin del cliente y la versin del browser,

se desea una interfaz de usuario sofisticada, o el cliente puede ejecutar algo de lgica del negocio

Usos Conocidos Interfaces de usuario enriquecidas

colores, animaciones, simulaciones, asistentes de navegacin, etc..


UCLA Rodolfo Caneln

Validacin de datos

Fat Web Client (Cliente Web Pesado)


Estructura Uso de capacidades del browser:
Scripts del cliente que slo pueden interactuar con objetos en el cliente Comunicacin Cliente/Servidor va HTTP Componentes independientes o guiados por scripts en la pgina Peticin/envo/recepcin/parsing de documentos XML

Elementos:
Los del patrn Cliente Web Ligero Scripts del Cliente (Cte, Ctor) - Documentos XML (Cte, Ctor) Controles ActiveX (Cte, Ctor) - Applets de Java (Cte, Ctor) UCLA Rodolfo Caneln JavaBeans (Cte, Ctor)

Fat Web Client (Cliente Web Pesado)


Vista lgica del patrn
Control ActiveX Browser + DOM + Cookies Applet Java Script del Cliente Servidor Web + Autenticacin + Gestin de Cookies Pginas HTML + Form + Elementos de Entrada Documentos XML + Elemento + Atributo Pginas del Servidor + Active SP + Java SP + Java Servlets + ISAPI + NSAPI UCLA + CGI Mapping de Persistencia Objetos del Negocio Servidor de Aplicaciones + Estado de Sesin Sistema de Contabilidad de Mercado HTTP

Interfaz de Sistema Heredado

Persistencia
Rodolfo Caneln

Fat Web Client (Cliente Web Pesado)


Consecuencias (del uso de este patrn) Portabilidad

No todos los browsers soportan JavaScript o VBScript ActiveX slo soportado por clientes MS-Windows
y el usuario puede desactivar su uso

Cada browser implementa su propia versin de Java Diferencias en la implementacin del DOM Comprobar el comportamiento correcto de los scripts, controles o applets para cada browser y configuracin del cliente que deba ser soportada
UCLA Rodolfo Caneln

Pruebas

Web Delivery

(Distribucin Web)

Sistema de objetos distribuidos basado en un sitio Web Usa protocolos de comunicacin entre cliente y servidor

diferentes a HTTP Pueden ejecutarse objetos reales en el contexto del cliente o el browser,

Con acceso a recursos del cliente Pueden comunicarse directamente con objetos del servidor y con otros browsers

UCLA

Rodolfo Caneln

Web Delivery

(Distribucin Web)

Aplicabilidad Existe un control significativo sobre la configuracin de cliente y de la red

No muy adecuado para aplicaciones basadas en Internet o cuando la red es poco fiable Ms adecuado para intranets (seguridad y rapidez)

Comunicacin directa y persistente entre cliente y servidor Combinado con otros patrones de arquitectura

UCLA

Rodolfo Caneln

Web Delivery
Usos Conocidos CNN Interactive Web Site

(Distribucin Web)

acceso pblico va browsers y HTML3.2 tras el sitio Web est una red basada en CORBA de browsers, servidores y objetos distribuidos Aplicacin Cliente Web Pesado para gestin de pacientes e historiales Aplicacin Distribucin Web para facturacin

Compaa de software para el cuidado de la salud

UCLA

Rodolfo Caneln

Web Delivery

(Distribucin Web)

Estructura Comunicacin entre cliente y servidor mediante protocolos diferentes a HTTP

Elementos:

Los del patrn Cliente Web Ligero y DCOM (protocolo Cte Ctor) IIOP (protocolo Cte Ctor) RMI (protocolo Cte Ctor)

UCLA

Rodolfo Caneln

Web Delivery

(Distribucin Web)

Dinmica El cliente participa en un sistema de objetos distribuidos

Comunica directamente con objetos del servidor Interfaz del cliente y Objetos del negocio
Descargados por el browser automticamente desde el servidor Comunicacin, asncrona e independiente, con objetos del servidor
UCLA Rodolfo Caneln

El Browser contiene ...


Web Delivery

(Distribucin Web)

Consecuencias (del uso de este patrn) Traslada parte de la carga del servidor al cliente Portabilidad (anlogo a Cliente Web Pesado) Requiere una red slida

Conexiones cliente - servidor de larga duracin Una cada del servidor puede ser muy problemtica

El cliente participa en un sistema de objetos distribuidos

Comunica directamente con objetos del servidor

UCLA

Rodolfo Caneln

Web Delivery
ActiveX del Cliente Browser Applet Java

(Distribucin Web)

Vista lgica del patrn

DCOM

Http, Https, CORBA Servidor de Aplicaciones Servidor Web Pginas del Servidor Pginas HTML IIOP

RMI

ActiveX del Servidor

Objetos del Negocio

Enterprise JavaBeans

Sist. Contabilidad UCLA de Mercado

Mapping de Interfaz de Rodolfo Caneln Persistencia Sistema Heredado

Persistencia

Patrones Arquitectnicos en Web


Ejemplo
Capa de Presentaci n (1) cliente 1 cliente 2 cliente n

Capa de Funcionalidades de la Aplicacin (2)

Server Applications Server Applications Server Applications

SQL Net BDD BDD Multi-DB

Proxy

Aplicacin para Bsc: Entorno PDVSA


Heterogeneos, Clientes Thin, Web Delivery, JDBC SQLnet 2.1, Cliente/Servidor 3 tier. Http, Https, Tcp/Ip, Objetos Serializados, Server Socket,Broker Server Aplication Patrones para Manejo de Eventos: Proactor , The asynchronous Completion Token Patrones de Sincronizacin : Scope Locking C++, Strategized locking Patrones de Concurrencia : ActiveRodolfo Caneln Async Object, Half UCLA

Patrones Arquitectnicos en Web


Microkernel o Socket Reflection Wrapper Faade Component Interceptor Extension Interface Multi-DataBase

Configurator

Patrones para Acceso y Configuracin de Servicio

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Acceso y Configuracin de Servicio) Separa un core funcional de las Microkernel o Socket
Reflection Wrapper Faade Component Interceptor Extension Interface Multi-DataBase
Favorece la mantenibilidad (facilidad Implementa servicios centrales,

funcionalidades de ms alto nivel. como facilidades de comunicacin o manejo de recursos.

Implementa servicios atmicos o

Configurator

mecanismos, encapsulando dependencias del sistema.

de cambios para la reutilizacin), la adaptabilidad (a diferentes ambientes) y la extensibilidad.


UCLA Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Acceso y Configuracin de Servicio) Proporciona un mecanismo para Microkernel o Socket
Reflection Wrapper Faade Component Interceptor Extension Interface Multi-DataBase
Favorece la mantenibilidad (facilidad

observar el estado de un componente con el fin de poder cambiar estructura y comportamiento de un sistema en tiempo dinmico.

Configurator

de cambios para la reutilizacin) y la adaptabilidad (a diferentes ambientes).


UCLA Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Acceso y Configuracion de Servicio) Encapsula las funciones y los Microkernel o Socket
Reflection Wrapper Faade Component
datos proporcionados por las APIs no orientadas a objeto, en clases de interfaces ms concisas, robustas, portables y mantenibles.

Configurator
Interceptor Extension Interface Multi-DataBase
Favorece la mantenibilidad,

portabilidad y confiabilidad (tolerancia a fallas).

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Acceso y Configuracin de Servicio) Permite la reconfiguracin de Microkernel o Socket
Reflection Wrapper Faade Component
componentes en tiempo de ejecucin, sin tener que modificar, recompilar o volver a enlazar estticamente la aplicacin.

Configurator
Interceptor Extension Interface Multi-DataBase
Favorece la mantenibilidad

(modularidad para testing) y la portabilidad (adaptabilidad).

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Acceso y Configuracin de Servicio) Permite agregar servicios en forma Microkernel o Socket
Reflection Wrapper Faade Component
Variantes del patrn: Chain-of-

transparente cuando ocurren ciertos eventos. responsability, Publisher/subscriber y Subject/observer.

Configurator
Interceptor Extension Interface Multi-DataBase
Favorece la mantenibilidad (facilidad

de cambios para la reutilizacin).

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Acceso y Configuracin de Servicio) Permite que mltiples interfaces Microkernel o Socket
Reflection Wrapper Faade Component
sean exportadas por un componente a fin de prevenir un aumento de interfaces y la ruptura del cdigo cliente la funcionalidad de un componente es extendida o modificada.

Configurator
Interceptor Extension Interface Multi-DataBase
Favorece la mantenibilidad (facilidad

de cambios para la reutilizacin).

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Acceso y Configuracin de Servicio) Permite la manipulacin de los datos Microkernel o Socket
Reflection Wrapper Faade Component
centrales de las BDs a travs de componentes externas independientes que pueden variar entre sistemas.

Organiza las BDs distribuidas sobre

Configurator
Interceptor Extension Interface Multi-DataBase

un modelo cliente/servidor, donde agentes o mediadores, aceptan los queries de los usuarios, los reconducen a las BDs disponibles y devuelven las respuestas adecuadas.

Favorece la mantenibilidad (facilidad

UCLA

de cambios para la reutilizacin) y la adaptabilidad (a diferentes Rodolfo Caneln ambientes).

Patrones Arquitectnicos en Web


Patrones para Manejo de Eventos
Reactor Asynchronous

Completion Token

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Manejo de Eventos)

Es un driver para que las

Reactor Asynchronous

aplicaciones multiplexen y despachen servicios que son liberados a uno o mas clientes.

Completion Token
Facilita el mecanismo de activacin

entre cliente y aplicacin, favoreciendo la adaptabilidad.

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Manejo de Eventos)

Permite a una aplicacin multiplexar

Reactor Asynchronous

eficientemente las respuestas de operaciones asncronas entre un proceso y un servicio.

Completion Token
Favorece la mantenibilidad.

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


Patrones para Sincronizacin
Strategized Locking Thread-Safe Interface

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Sincronizacin)

Mecanismo de sincronizacin que

Strategized Locking Thread-Safe Interface

protege a un componente en seccin critica desde accesos concurrentes.

Favorece la adaptabilidad (a

diferentes ambientes).

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Sincronizacin)

Minimiza la sobrecarga sobre un

Strategized Locking Thread-Safe Interface

lock para que el proceso no se bloquee (entre en un deadlock).

Favorece la mantenibilidad (facilita

el testing y evita errores terminales).

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


Patrones de Concurrencia
Active Object Monitor Objects Half Sync / Half Async

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Concurrencia)

Sincroniza los accesos al objeto

Active Object Monitor Objects Half Sync / Half Async

activo dentro del propio threads de control.

Favorece la mantenibilidad, la

extensibilidad, la adaptabilidad.

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Concurrencia)

Asegura la sincronizacin a un nico

Active Object Monitor Objects Half Sync / Half Async

mtodo a la vez en runtime.

Favorece la mantenibilidad (para

testing).

UCLA

Rodolfo Caneln

Patrones Arquitectnicos en Web


(para Concurrencia)

Acopla y desacopla servicios en

Active Object Monitor Objects Half Sync / Half Async

sistemas concurrentes, utilizando dos capas de intercomunicacin.

Favorece la extensibilidad, la

adaptabilidad.

UCLA

Rodolfo Caneln

Las caractersticas ms importantes de los ambientes mviles


La heterogeneidad: El procesamiento se llevara a cabo en un espectro ancho de dispositivos del cliente, cada uno con configuraciones y funcionalidades diferentes. El predominio de Dispositivos "Pequeos": Muchos dispositivos sern pequeos, no slo en el tamao sino tambin en el poder computacional, tamao de memoria, entre otros. Capacidades limitadas de la Red: La mayora de los dispositivos tendran alguna forma de conexin. Sin embargo, incluso con los nuevos estndares de redes como GPRS, Bluetooth, 802.11x, etc., El ancho de banda todava estara relativamente limitado comparado a las tecnologas de red existentes. Adems, las conexiones son normalmente inestables. La alta Movilidad: Los usuarios pueden llevar los dispositivos de un lugar a otro sin detener los servicios. Orientados al Usuario: Se relacionaran los servicios al usuario en lugar de a un dispositivo especfico o localizacin especfica. El Ambiente muy Dinmico: Un ambiente en el cual los usuarios y dispositivos siguen instalndose, dentro y fuera de la red. Aplicaciones Distribuidas: Una aplicacin simple tiene que ser desarrollada de una manera distribuida, es decir tiene que identificar partes que corran independientemente sobre otros dispositivos.
UCLA Rodolfo Caneln

Las caractersticas ms importantes de los ambientes mviles


Disponibilidad: Hacer posible la disponibilidad, ancho de banda y la reliability de las conexiones mviles, tenindose que solventar problemas de redes. Seguridad: Privacidad, integridad y autentificacin es un uso importante. Los datos en escenarios mviles son generalmente confidenciales [5,6,7,12], pero las comunicaciones inalmbricas son bastante inseguras. Interfaces Dinmicas: Cuando diseamos interfaces de usuarios para dispositivos mviles, especialmente para ambientes heterogneos, tenemos que considerar requerimientos de usuarios especiales tanto como las capacidades de los dispositivos involucrados. Un requisito importante para los sistemas de computacin mviles son la habilidad de adaptarse en tiempo de ejecucin, para manejar nuevos requerimientos como la movilidad del usuario, la variabilidad del recurso, cambios en las necesidades del usuario y fallas del sistema descritos en [5,16], con lo cual tenemos que las investigaciones actuales para construir las aplicaciones distribuidas no son eficaces en un ambiente mvil.

UCLA Rodolfo Caneln

Nuevos requisitos que deben ser incorporados en Diversidad: La cual se define como la La adaptacin a la la infraestructura

habilidad para que las aplicaciones puedan adaptar su funcionalidad segn los requisitos del dispositivo, redes, entre otros. La Interaccin creciente con las conexiones punto a punto: Muchos de estos dispositivos formarn una red ad-hoc que se conecta entre ellos para intercambiar la informacin y para proporcionar los servicios a los usuarios. El Modelo de Computacin flexible: En un ambiente de computacin mvil, hay varias maneras de acceder tipos diferentes de datos segn las necesidades de los diferentes usuarios. Una combinacin de cdigo y movilidad de los datos debe permitir construir un modelo de computacin flexible.

UCLA

Rodolfo Caneln

Modelo Conceptual APLICACIONES MOVILES


Usuario
Usa 1..*

Dispositivos mviles

Se_Adaptan 1..* Tienen 1..*

Funciones del Usuario

Telfonos inteligentes

Pads
Se_Ejecutan 1..*

Otros Handhelp

Funciones del dispositivo

Servicios

Tiene_asociado_Un 1..* Influye_en

Contexto

Ambiente Computacional Informacin


1..* Tiene_Asociado

QoS

1..*

Ambiente del usuario Red

Comunicacin

Procesadores Disponibles Dispositivos I/O Disponibles

Localizacin

Perfil

Ambiente Fsico Administracin Recursos Interaccin Conectividad Iluminacin

Nivel de ruido

UCLA

Rodolfo Caneln

Componentes de las aplicaciones

GUI /Client Side

MIDDLEWARE

Servicios y Aplicaciones

Seguridad

UCLA

Rodolfo Caneln

Figura 2-5. Componentes de las aplicaciones

Componentes de las aplicaciones

GUI cliente

Mediator

Contexto

Servicios y Aplicaciones

Seguridad

Figura 2-5. Componentes de las aplicaciones

UCLA

Rodolfo Caneln

Requisitos No Funcionales APLICACIONES MOVILES


Reglas del negocio asociadas al Dominio Requisitos no funcionales derivados de las reglas del negocio. Propiedades de Calidad asociadas a los requisitos no funcionales (Caractersticas de Calidad) ISO/IEC 9126-1 [15] Polticas

Uso de protocolos de comunicacin de redes, ancho de banda.

1. Cumplir con estndares, normativas con el fin de garantizar el servicio requerido.

Funcionalidad (Functionality) - Conformidad (Compliance)

Procesamiento

Los servicios se ejecutan en una diversidad de dispositivos, cada uno1. Las funcionalidades deben adaptarse a las caractersticas de los Dispositivos.

con configuraciones y funcionalidades diferentes.

Portabilidad (Portability) -Adaptabilidad (adaptability)

Los servicios deben ser garantizados dentro del rea de cobertura.

1. Hacer posible los servicios, lo cual implica, ancho de banda apropiado y garantizar las conexiones mviles, tenindose que solventar problemas de redes. 2. Tiempo de transmisin apropiado. Tiempos de respuesta adecuados dentro de un rango establecido.

Confiabilidad (confiability) -Disponibilidad (Availability) Eficiencia (eficiency) -Comportamiento del tiempo (Time Behaviour) con respecto al tiempo de respuesta y a las conexiones.

El usuario selecciona los servicios disponibles en el rea de cobertura. 1. Ofrecer funcionalidades que respondan a las necesidades de los usuarios.

2. Facilidad en la seleccin de los servicios ofrecidos.

Funcionalidad(Functionality) -Adecuada(Suitability) Usabilidad (usability) -Operabilidad (operability)

Los dispositivos se conecten y desconectan dinmicamente a la red.

1. Garantizar la disponibilidad del servicio al conectarse.

Confiabilidad (confiability) -Disponibilidad (availability)

UCLA

Rodolfo Caneln

Requisitos Funcionales
APLICACIONES MOVILES
Propiedades de calidad asociadas (Caractersticas de calidad ) ISO/IEC 9126-1 [15] Requisitos Funcionales Manejar Datos: Los datos deben ser transmitidos completa y correctamente. Confiabilidad (confiability) -Disponibilidad (availability) Con respecto a lo limitado del recurso de espacio) Eficiencia (Efficiency) -Comportamiento del tiempo (Behaviour time) (con respecto al tiempo de respuesta limitado). Funcionalidad (Functionality) -Precisin (accurancy) En el estndar QoS ISO [17], la integridad esta relacionada con acurrancy.

Servicios de informacin: gestiona informacin al usuario.

Usabilidad (Usability) -Atractivo (atractiveness) -Operabilidad (Operability) Portabilidad (Portability) -Adaptabilidad (adaptability) -Escalabilidad (Scalability)

Servicios de comunicacin: comunicacin entre usuarios, transporte de informacin y establecimiento de conexiones.

Portabilidad (Portability) -Conformidad (compliance) -Escalabilidad (Scalability) Funcionalidad (Functionability) -Seguridad (Security)

Servicios de administracin: (defecto, configuracin, Bitcora, ejecucin y seguridad)

Usabilidad (Usability) -Atractivo (Atractiveness) - Operabilidad (Operability)

Compartir Datos: Los dispositivos mviles formarn una red ad-hoc que se conecta entre ellos para intercambiar laConfiabilidad (Confiability) informacin y para proporcionar los servicios a los usuarios. -Disponibilidad (Availability) Funcionalidad (Functionality) -Interoperabilidad (Interoperability)

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Problemas en la construccin de interfaces


1.- Dificultad para construir software usable 2.- Se desestima la necesidad de un grupo de desarrollo multidisciplinario 3.- Problemas de comunicacin entre los miembros de un grupo multidisciplinario 4.- En la prctica no se reconoce la relevancia del usuario 5.- Falta de integracin entre la Interaccin Humano-Computador y la Ingeniera de Software.

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Construccin de software usable


Usabilidad
Cualidad del software cuyos indicadores son facilidad de aprendizaje, facilidad de memorizacin, satisfaccin del usuario, eficiencia en cuanto al uso y baja rata de errores
UCLA Rodolfo Caneln

Usuario

Patrones de Interaccin Mvil

Grupo multidisciplinario de desarrollo


Especialistas en IHC Especialistas en el dominio

Diseador Grfico
Para el diseo de Interfaces de Usuario se requiere un equipo que incluya al usuario, especialistas del dominio de la aplicacin y a especialistas de otras disciplinas

Psiclogo

Usuario
UCLA Rodolfo Caneln

...

Patrones de Interaccin Mvil

En que se basa el diseo de interfaces?


Aplicacin de principios y lineamientos Anlisis de interfaces exitosas Evaluaciones de usabilidad Resultados de estudios en el rea Cognitiva, social, educativa,

etc.
Estudios empricos.

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Guas de Diseo

Los principios son conceptos de alto nivel que orientan la actividad del diseo de la interfaz Los lineamientos son reglas que se establecen en una organizacin para el diseo y desarrollo de interfaces referentes al look and feel

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Limitaciones de los principios y lineamientos


Son abstractos (darle control al usuario, pero...) Son generales (usar bien los colores, pero...) Independientes del contexto (utilizar teclado y ratn, pero...) No se relacionan a un problema especfico (divulgacin

progresiva, pero...)

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Patrn de Interaccin: definicin

Un patrn de interaccin describe una solucin exitosa a un problema recurrente concerniente a la interfaz de usuario, en un contexto dado

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Antecedentes
90s
Patrones en Computacin

Patrones en IHC Patrones de interaccin como una herramienta apropiada para la captura y reutilizacin de las experiencias y conocimientos de los expertos
UCLA Rodolfo Caneln

Patrones de Interaccin Mvil

Patrones de Diseo
Un patrn de interfaz sirve para:
Describir un problema, su contexto y la solucin Generalizar una solucin Facilitar la comunicacin entre miembros de distintas

disciplinas Registrar el conocimiento y la experiencia Facilitar el prototipaje de la interfaz de usuario.

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Para qu usar patrones?


El uso de Patrones de Interaccin en la construccin de la interfaz de usuario, facilita:

La construccin de software usable, La comunicacin entre los miembros del grupo de desarrollo multidisciplinario, Para la construccin del prototipo de interfaz (incorporando esta actividad al proceso de desarrollo de software).

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Estructura de un Patrn de Interfaz


Nombre, clasificacin, confianza y autor Problema Solucin Contexto Fuerzas Usabilidad Consecuencias Ejemplos y /o Contraejemplos Patrones Relacionados El nombre comunica la idea central La clasificacin indica tipo de patrn La confianza es, segn el autor, la madurez del patrn El autor del patrn Problema que resuelve este patrn Solucin que ha mostrado tener xito en este contexto Condicin(es) en la(s) cual(es) se puede usar el patrn. Los conflictos que pueden restringir la solucin Describe el impacto de usabilidad en la interfaz al aplicar el patrn. Describe los resultados de aplicar el patrn. Muestras de soluciones exitosas y/o de un mal uso del patrn. Otros patrones con los que est relacionado este patrn
UCLA Rodolfo Caneln

Patrones de Interaccin Mvil

Ejemplo de un Patrn de Interaccin


Nombre Problema Solucin
Formatos de datos de fechas Martijn van Welie

El usuario desea introducir datos de fechas y no desea preocuparse por la sintaxis del dato Permitir que el usuario elija la fecha de un calendario tal como se encuentra en el mundo real y que solo realice seleccin el usuario no tipea. Todos los sistemas que requieran que el usuario introduzca fechas (importante en interfaces internacionales)

Contexto Fuerzas

- Los datos de fechas tienen mltiples sintaxis

Principio Usabilidad Ejemplo

- Guiar al usuario y prevenir errores - Convenciones culturales determinan la sintaxis esperada

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Patrones de Interaccin Mvil


El Problema
La tecnologa wireless Dispositivos mviles Redes Diferentes usuarios Diferentes dispositivos Diferentes Dispositivos Influencia altamente El Cmo? y la Forma de Interaccin de los Usuarios con dispositivos mviles de manera reciproca

Aunado Implica
Visualizar la Problemtica considerando varias reas

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

EL PROBLEMA reas del Problema


La aplicacin tiene que ser desarrollada de manera distribuida Involucrarse en los problemas de red La seguridad de los datos

Requisitos especiales de los usuarios

Capacidades de los dispositivos involucrados


UCLA Rodolfo Caneln

Patrones de Interaccin Mvil

EL PROBLEMA Patrones de Diseo

Con frecuencia un diseador se enfoca sobre un rea especfica del problema, descuidando otras reas del Problema

Aunado Problemtica que se presenta en las fases iniciales de diseo Pudiese causar

Fallas completas en el Diseo

Patrones de Diseo
UCLA

Posible Solucin
Rodolfo Caneln

Patrones de Interaccin Mvil

Patrones de Diseo
Los patrones se derivan del diseo de software exitoso y que pueden ser reutilizados como bloques de construccin para nuevos diseos. Patrones Mviles
Los patrones mviles cubren reas del problema que los autores encontraron frecuentemente en los escenarios mviles Los patrones mviles relacionados pueden agruparse en patrones de clases, utilizando una Jerarqua de Patrones.
UCLA Rodolfo Caneln

Patrones de Interaccin Mvil

Jerarqua de Patrones

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Jerarqua de Patrones
Los patrones mviles no solo son aplicables en los escenarios mviles

Los patrones de diseo que aparecen frecuentemente en escenarios mviles son buenos candidatos para nuevos proyectos

UCLA

Rodolfo Caneln

Descripcin de Patrones de Diseo Mviles describir los patrones de diseo mviles se utiliza el esquema de Para
descripcin de Patrones utilizados por Gamma. Pattern Name
Intent Also Known As Motivation Applicability Consequences Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns
UCLA Rodolfo Caneln

Patrones de Interaccin Mvil

Pattern Name
De la descripcin propuesta usada en el desarrollo de software orientado a objeto: Se reemplaza la seccin Implementation por Examples Se agrega la seccin Classes

Synopsis Context Forces Solutions Consequences Examples Related Patterns Classes

Patrones de Interaccin Mvil

Estructura de un Patrn Mvil


Nombre Sinopsis Contexto Fuerza Solucin Consecuencias Ejemplos Patrones Relacionados Clases El nombre comunica la idea central Problema que resuelve este patrn Condicin(es) en la(s) cual(es) se puede usar el patrn. Los conflictos que pueden restringir la solucin Solucin que ha mostrado tener xoto en este contexto. Describe los resultados de aplicar el patrn Muestra de soluciones exitosas y/o de un mal uso del patrn Otros patrones con los que est relacionado este patrn Dan informacin adicional de la estructura a un diseador
UCLA Rodolfo Caneln

Patrones de Interaccin Mvi

Proxy
Se utiliza cuando es imposible referenciar a un objeto, por

ejemplo porque resida en otro procesador Una ventaja es que ofrece la posibilidad de que el servidor pueda estar en un espacio de direcciones distinto al cliente en un sistema Distribuido La principal desventaja es la perdida de performance cuando hay un solo cliente porque podran comunicarse directamente. Otra desventaja es que debe conocer la direccin del servidor Broker.

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Proxy - Patrn Mvil de Interaccin


SINOPSIS
Un dispositivo no tiene la capacidad de ejecutar una tarea requerida. Este conecta a otro dispositivo con un alto poder computacional el cual acta como un delegado.

CONTEXTO

Considere un usuario en un browser Web con un dispositivo handhelp. La resolucin de la pantalla del dispositivo es actualmente pobre entonces elementos como grficos y tablas son dificultosos de mostrar.

FUERZAS

Un usuario requiere una tarea especifica : Busca seguridad en el ancho de banda de la red Busca seguridad en los recursos computacionales ( memoria) sobre el dispositivo local Espera apropiadas I/O acorde a las capacidades locales disponibles.

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Proxy - Patrn Mvil de Interaccin


SOLUCION
El dispositivo no se conecta directamente al punto final del servicio requerido pero pregunta a otro dispositivo o computador para ejecutar esta tarea. Este otro dispositivo o computador se llama proxy : Acepta requerimientos de servicios desde otro dispositivo Conecta al actual proveedor de servicio y ejecuta el requerimiento Procesa los resultados Enva de regreso al dispositivo inicial

UCLA

Rodolfo Caneln

Patrones de Interaccin Mv

Proxy - Patrn Mvil de Interaccin


CONSECUENCIAS
Este patrn, es un patrn general y usado en varios escenarios mviles. Frecuentemente, los dispositivos usados por los usuarios finales tienen capacidades pobres. En este patrn hay 2 ptos cruciales: El proxy en caso de fallar , la ejecucin de las tareas son habilitadas, siempre que el dispositivo que requiera y el proveedor del servicio esten en linea. El enlace de comunicacin entre el dispositivo que requiere y el proxy, si este enlace es roto , la tarea no puede ser ejecutada. Obviamente , el proxy tiene que tener mas capacidades que el dispositivo del usuario final. Como el proxy provee un servicio especifico el dispositivo mvil tiene que poder encontrar el proxy dentro de la red esto trae las siguientes consecuencias: Un proxy tiene que tener una direccin fija en la red El proxy tiene que estar en lnea cuando un servicio sea requerido. Actualmente un proxy es usualmente una estacin de trabajo tradicional, no un dispositivo mvil

UCLA

Rodolfo Caneln

Patrones de Interaccin Mv

EJEMPLOS

Proxy - Patrn Mvil de Interaccin

ProxyWeb ( http://www.intellisync.com) permite a usuarios handhelp usar browser sin forzar las limitaciones. El proxy preprocesa las paginas , descarga las imgenes y pre calcula el layout apropiado. Como resultado la cantidad de datos transferidos al dispositivo es reducido drsticamente. PocketDreamTeam es la versin PalmOS.

PATRONES RELACIONADOS

PushObject, RequestObject

CLASES

ServiceUsage, MobileService

UCLA

Rodolfo Caneln

Patrones de Interaccin Mv

Proxy - Estructura
Client
Subject Request( )

...
Real Subject Request( )
Real Subject

...

Proxy Request( )

UCLA

Rodolfo Caneln

Patrones de Interaccin Mv

Editor de documentos (Ej.)


DocumentEditor Graphic
Draw() GetExtend() Store() Load() If (Image==0) { Image=LoadImage(Name); } Image->Draw(); If (Image==0) { return extend; }else { return Image->GetExtend(); }
Rodolfo Caneln

Image
Draw() GetExtend() Store() Load() ImageImp extend

ImageProxy Image
Draw() GetExtend() Store() Load() Name extend
UCLA

Patrones de Interaccin Mvil

Ventajas
Principalmente los patrones son una herramienta para

describir diseos.

Los patrones vienen con una lista de implicaciones y

consecuencias. (un diseador est consiente de los pro y los contra de un patrn especfico). diseos exitosos.

Los patrones permiten a un diseador reutilizar los

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Anlisis Crtico
Los patrones mviles propuestos por el autor pueden considerarse Alejandrinos?

El esquema propuesto para describir los patrones a pesar de hacer referencia al esquema presentado por Gamma, ha sido bastante modificado, se aproxima mucho mas al esquema propuesto para describir los patrones de interaccin presentado por Colocar autor ojo Rodolfo.

El trabajo presentado abre las puertas a un rea especfica de la investigacin, y son muchos los beneficios para los diseadores de aplicaciones mviles que traera el enriquecimiento de la jerarqua de patrones presentada por el autor.

UCLA Rodolfo Caneln

Patrones de Interaccin Mvil

Conclusiones
La jerarqua de patrones presentada no pretende estar completa.

En el futuro se espera completar la coleccin de patrones mviles; en tal sentido se analizan las aplicaciones existentes en la computacin mvil y los frameworks. la seccin Clases que indica cmo un patrn se integra en la jerarqua de patrones. Las clases del patrn dan informacin adicional de la estructura a un diseador, as pueden clasificarse los problemas y soluciones relacionadas a un patrn especfico ms fcilmente los patrones de movilidad tienen una caracterstica fuertemente informal.

Al esquema presentado para describir los patrones mviles se le incorpor

Comparado a los acercamientos ms formales (por ejemplo [Borchers J.]),

UCLA

Rodolfo Caneln

Patrones de Interaccin Mvil

Bibliografa
Thomas Plan, Richard Guy and Rajive Bagrodia . Universitu of California At los angeles .A scalable, Distributed Middleware Service Architecture to Support Mobile Internet Applications. 7 workshop on wireless mobile Internet. Rome 2001. Jonathan Knudse . Wireless Java: Developing with JavaTM 2 Micro Edition July 2001. Sun Microsystems Inc. Connected, Limited Device Configuration (JSR-30), 2001 Tim Lindholm and Frank Yellin . The Java Virtual Machine Specification (Java Series), Second Edition. Addison-Wesley, 1999, ISBN 0-201-43294-3 August 1998. Development of a Java-based version of ExploreNet http://www.cs.ucf.edu/ExploreNet/ - 27.6KB - explorenet: 17

UCLA

Rodolfo Caneln