Maestría en Ingeniería de Software. Sistemas Distribuidos en Web I. MCC. Carlos Albeto Ochoa Rivera



Documentos relacionados
Arquitectura Cliente/Servidor

Arquitectura cliente/servidor

Introducción al Software basado en Componentes. Motivación. Un poco de historia.

4 ARQUITECTURA DE COMUNICACIONES

1. Introducción Perfiles de Usuarios Definir el primer perfil Añadir perfiles Introducción a Internet

Introducción a las redes de computadores

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca

Internet Servicios WEB (WWW)

INFORME TECNICO PREVIO DE EVALUACIÓN DE SOFTWARE N /UIE-PATPAL - FBB

Arquitectura cliente/servidor

LENGUAJES DE PROGRAMACIÓN 4 MÓDULOS. 56 Horas

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

DISEÑO E INTEGRACIÓN DE UN CONJUNTO DE APLICACIONES ORIENTADAS A ENTORNOS HOSPITALARIOS SOBRE DISPOSITIVOS PDA-WIRELESS Pase de Visita Médico

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

UNIVERSIDAD ESTATAL DE MILAGRO

Conceptos de redes. LAN (Local Area Network) WAN (Wide Area Network)

Capítulo 5. Cliente-Servidor.

Acceso al Disco Compartido y Dispositivos USB y DVD

11/06/2011. Alumno: José Antonio García Andreu Tutor: Jairo Sarrias Guzman

Profesor Santiago Roberto Zunino. Página 1

AUTORES: OBREGON CARLA ROMERO MARIA MARACAIBO FEBRERO 2012

Tema 1: Introducción a las Aplicaciones Web. Contenidos:

Escritorios virtuales

Mundo Azul.

Capítulo I. Marco Teórico

Características. Las características que tiene nuestro software son las siguientes:

QUÉ ES Y QUÉ ESTUDIAR PARA SER PROGRAMADOR WEB? ITINERARIO DE FORMACIÓN, PLAN DE ESTUDIOS O DE CARRERA. (CE00302D)

1.1.- Introducción a la Web Vemos una introducción al medio donde se encajan los lenguajes que vamos a tratar: la web.

Sistemas de Operación II

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

Introducción a Internet

UNIDAD DE COMPETENCIA 1: INSTALAR, CONFIGURAR Y ADMINISTRAR EL SOFTWARE PARA GESTIONAR UN ENTORNO WEB. Nivel: 3 ANEXO CLVI

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

La gestión de contenidos en el nuevo Portal del Ministerio de Hacienda

Generador GeneXus JAVA

MÓDULO OPTATIVO e Bussines

REQUERIMIENTOS NO FUNCIONALES

Capítulo 3 Middleware

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Estándares y lenguajes de marcado para el desarrollo de aplicaciones web orientadas a dispositivos moviles Esteban Saavedra Lopez

Introducción al curso CONTENIDOS Y REGLAS

Introducción a Gestión de Conocimiento y Capital Humano. Beneficios del Sistema. Arquitectura y Diseño del Aplicativo. Requerimientos del Sistema.

Capítulo 7: Introducción a la dinámica de servicios Web

SIGAN 1.0 SISTEMA DE INFORMACIÓN DE GESTIÓN ADMINISTRATIVA DE NÓMINA

Programación con PHP y MySql Instituto CBTech 5/14

OSORES DARDO LU: 2238

FileMaker Pro 14. Uso de una Conexión a Escritorio remoto con FileMaker Pro 14

Para tener una visión general de las revistas de estadística, ir a:

Windows Server 2012: Infraestructura de Escritorio Virtual

Administración de Sistemas Gestores de Bases de Datos (Online)

FileMaker Pro 13. Uso de una Conexión a Escritorio remoto con FileMaker Pro 13

Documento de Arquitectura de Software. KunaySoft. Autores: Juan Camilo González Vargas. Javier Leonardo Parra Laguna

1 Guión de Contenidos Criterios de evaluación Momentos de la evaluación Instrumentos o pruebas de evaluación...

CRECE CON INTERNET. Empieza a navegar por la Red

COMPONENTES SOFTWARE LIBRE BASES DE DATOS

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

MUNICIPALIDAD DISTRITAL DE MIRAFLORES

Planificación y administración de redes SNMP

Oferta tecnológica: Auditoría de rendimiento en Redes IP

NORMATIVA DE HOSTING VIRTUAL DE LA UNIVERSIDAD DE SEVILLA (SIC - JUNIO 2014)

UNIÓN INTERNACIONAL DE TELECOMUNICACIONES INTERFACES DE CENTRAL PARA OPERACIÓN, ADMINISTRACIÓN Y MANTENIMIENTO

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

GLOSARIO DE TÉRMINOS

Escuela Politécnica Superior de Jaén

ASIGNATURA DE GRADO: TECNOLOGÍAS WEB. Esta es la guía del curso de la asignatura "Tecnologías Web", perteneciente a los estudios de grado de la UNED.

8. RESULTADOS PREVISTOS

Introducción a la Computación

Sage SalesLogix Visión General

2.3. Lenguajes de programación del lado Servidor. ASP.NET (Active Server Pages).

Qué es una aplicación web

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Sistemas distribuidos

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Bechtle Solutions Servicios Profesionales

ESCUELA POLITÉCNICA NACIONAL 28 DE OCTUBRE, 2015 ORTIZ JÁCOME LEONARDO JOSÉ

Empleo. CURSO FORMATIVO Desarrollo de Aplicaciones Móviles. Coordinador Académico Antonio José Martín Sierra

CAPITULO 6 6. INSTRUMENTACION. 6.1 Introducción a Internet y a la educación a distancia Internet

VIVIENDO EN LÍNEA. IC3 Redes

Módulo: APLICACIONES INFORMÁTICAS Y OPERATORIA DE TECLADOS.

Tecnologías utilizadas Programas utilizados: Lenguajes utilizados: Diagramas Diagrama de clases Servidor...

7.1 Java vs.net, la lucha se acrecienta


UNIVERSIDAD AUTÓNOMA DEL CARIBE

Determinar el tiempo de realizar las diferentes actividades para la implementación del sistema EVECP.

ING. YURI RODRIGUEZ ALVA

Descripción de Arquitectura Repositorio de metadatos de componentes de software

TAREA #6 Tipos de Software y Documentos Colaborativos.

Reducción del Coste Total de Propiedad (TCO) en la Administración Local

UNIVERSIDAD DE CÓRDOBA

Técnico de Soporte Informático TEMA 02 NUEVAS TECNOLOG AS

4. Base de datos XML nativa: Marklogic

Sistemas de Información Introducción a los Sistemas de Información: El Modelo Cliente/Servidor

Comunicación entre procesos

CONCLUISIONES Y RECOMENDACIONES

Introducción al Desarrollo de Aplicaciones Web D R A. M A R I C E L A B R A V O

WINDOWS : TERMINAL SERVER

Transcripción:

Maestría en Ingeniería de Software Sistemas Distribuidos en Web I MCC. Carlos Albeto Ochoa Rivera

Descripción general Actualmente existe la tendencia de desarrollo de software que trabaje en un ambiente de red, con acceso a la información desde cualquier lugar a través de Internet, por ello en esta experiencia educativa se revisan los elementos básicos para poder desarrollar sistemas distribuidos bajo esta plataforma web siguiendo una metodología para su diseño e implementación.

Objetivo general Al terminar el curso el alumno conocerá a detalle el funcionamiento de los sistemas distribuidos así como también las diferentes metodologías y lenguajes de script para desarrollar sistemas distribuidos en Web.

Contenidos temáticos Introducción a los sistemas distribuidos Características Ventajas y Desventajas Campos de aplicación El modelo cliente servidor Comunicación de aplicaciones El modelo de comunicación El modelo RPC Java RMI CORBA, DCOM Samba Metodologías para el desarrollo Web Usabilidad HDM OOHDM Object-Oriented Hypermedia Design Model

Contenido temático... Herramientas para el Desarrollo Web HTML XHTML CSS DHTML Elementos Multimedia Desarrollo Web dinámico Javascript Lenguajes de Script Conectividad con base de datos JAVA (Applets)

Evaluación Investigación y proyecto de programación con seguimiento mediante TSP (50%) Se aplicarán dos exámenes escritos que comprendan todo lo visto en clase antes de la aplicación del examen. (20%) Ejercicios prácticos. (30%)

Actividad 1. Qué es un Sistema Distribuido? 2. Cuál es la diferencia entre un Sistema Distribuido y una Red de Computadoras? 3. Qué entiende por Arquitectura Cliente Servidor? 4. Cuáles son los elementos de una Arquitectura Cliente Servidor? 5. Qué características muestra el modelo Cliente Servidor? 6. Cuáles son las ventajas y desventajas del modelo Cliente Servidor? 7. Qué servicios ofrece el modelo Cliente Servidor?

Índice Definición y concepto Clasificación de sistemas distribuidos Aspectos referentes al proceso de ingeniería Caso particular: aplicaciones Web Aspectos relativos al coste

Definición y concepto Un sistema distribuido es aquel en el que dos o más máquinas colaboran para la obtención de un resultado. En todo sistema distribuido se establecen una o varias comunicaciones siguiendo un protocolo prefijado mediante un esquema cliente servidor.

Definición y concepto En un esquema cliente servidor, se denomina cliente la máquina que solicita un determinado servicio y se denomina servidor la máquina que lo proporciona. El servicio puede ser la ejecución de un determinado algortimo, el acceso a determinado banco de información o el acceso a un dispositivo hardware.

Definición y concepto Por extensión, se puede aplicar el esquema clienteservidor dentro de una misma máquina, donde el proceso servidor y el proceso cliente son dos procesos independientes que corren dentro de la misma instancia de sistema operativo. Es por tanto un elemento primordial para que haya un sistema distribuido, la presencia de un medio físico de comunicación entre ambas máquinas, y será la naturaleza de este medio la que marque en muchos casos la viabilidad del sistema.

Clasificación Se clasifican los sistemas cliente servidor de acuerdo al nivel de abstracción del servicio que se ofrece. Se distinguen tres componentes básicos de software: Interacción con el usuario Lógica de Aplicación Repositorio de datos

Clasificación 1. Representación distribuida. La interacción con el usuario se realiza básicamente en el servidor. El cliente hace de pasarela, de sistema de acceso a los elementos hardware pantalla y teclado. Base de datos Lógica de aplicación Interface de usuario Terminal físico

Clasificación 2. Representación remota. Los datos se envían sin formatear, y es el cliente el responsable de formatear los datos y realizar las acciones de interacción con el usuario. En este caso, la aplicación y la base de datos se encuentran en el servidor Base de datos Lógica de aplicación Interface avanzado de usuario Terminal inteligente Intarface básico de usuario

Clasificación 3. Lógica distribuida. En el cliente se llevan a cabo la interacción con el usuario y la parte más trivial de la lógica de la aplicación. En este caso, se llevan a cabo controles básicos de rango de campos, campos obligatorios, etc, mientras que el grueso de la lógica permanece en el servidor. Base de datos Lógica de aplicación Computadora de escritorio Lógica básica de aplicación Interface de usuario

Clasificación 4. Gestión remota de datos. Tanto la interacción con el usuario como la aplicación residen en el cilente, siendo el servidor el depositario de los datos. Base de datos Computadora de escritorio Lógica de aplicación Interface de usuario

Clasificación 5. B.D. Distribuidas. El cliente debe conocer la topología de la red, así como la disposición y ubicación de los datos. En este caso, se delega parte de la gestión de base de datos a los clientes. Base de datos Base de datos Computadora de escritorio Distribución de datos Lógica de aplicación Interface de usuario

Clasificación Cliente servidor a tres niveles (three tier). La aplicación se distribuye en los tres niveles: aplicación, datos e interface de usuario Base de datos Lógica de aplicación Computadora de escritorio Interface de usuario

Aspectos a tener en cuenta en el proceso de ingeniería Protocolos de comunicaciones: Son más importantes que la propia arquitectura distribuida o centralizada. Un buen protocolo permite que se pueda pasar, sin un coste adicional de rediseño o codificación, de una arquitectura centralizada a una distribuida, y viceversa: Pipes RPC SQL Remoto HTTP X11 Otros

Aspectos a tener en cuenta Middleware. Es la herramienta o conjunto de herramientas que nos permitiran gestionar y coordinar los mecanismos de comunicación. Independiza el servicio y su implementación, del S.O. y protocolos de comunicaciones Permite la convivencia de distintos servicios en una misma máquina Modelo OO: CORBA

Aspectos a tener en cuenta Fase de análisis: Prácticamente no hay diferencias respecto a un S.I. tradicional Se debe definir la política de empresa: fat client o fat server. Se debe definir el coste en comunicaciones que puede asumir la organización.

Aspectos a tener en cuenta Fase de diseño El diseño de entidades, en raras ocasiones se verán éstas afectadas Aparecerán nuevos conjuntos de datos en los DFDs. No se trata de nuevas entidades, sino de información que debe viajar entre nodos Respecto al diseño de tablas, se debe especificar su implementación: Desde qué nodos debe ser accesible Qué nivel de acceso se precisa desde cada uno de ellos Cómo implementarlo

Aspectos a tener en cuenta Implementación BB.DD. Distribuidas No hay entornos puramente distribuidos. Debe analizarse, tabla a tabla, qué distribuir, qué centralizar y cómo hacerlo: Tabla única Tablas con réplica simétrica on line Tablas con réplica simétrica off line ** Tabla maestra más copias instantáneas Tabla maestra más copias instantáneas actualizables ** Especial atención a las secuencias!! Especial atencíón a los conflictos de réplica (**)

Aspectos a tener en cuenta Diseño de procesos Se deberán tener en cuenta, no tan sólo los procesos de réplica y su periodicidad, sino el ancho de banda que consuman, máxime si implican tarificación por paquetes trasnmitidos: Pipes y sockets > Aproximación analítica Middleware > Información a transmitir + Sobrecoste en ancho de banda + Sobrecoste en tiempo de proceso Protocolos propietarios (SQL) > Recurrir a benchmarks o referencias del fabricante Analizados los consumos de ancho de banda y tiempo estimado de proceso, se deberá replantear la idoneidad de ubicación de cada proceso Extremar las pruebas cuando se requiera diseñar e implementar protocolos de comunicación

Aspectos a tener en cuenta Fase de pruebas. Debido a la complejidad del sistema, serán necesarias varias fases: Pruebas de funcionalidad de la aplicación. Se puede llevar a cabo sobre máquinas de desarrollo y estaciones de trabajo de forma paralela Pruebas de carga del servidor Pruebas de integridad de datos. Son especialmente importantes en el caso de bases de datos distribuidas Pruebas transaccionales Pruebas de red

Desarrollos Web Caso particular de desarrollo cliente servidor con representación remota, en la cual disponemos de un protocolo standard: HTTP y un middleware denominado WebServer. Cada página puede desencadenar la solicitud de numerosos peticiones adicionales para finalizar el proceso de representación remota. Se dispone de un lenguaje standard de definición y formateo de páginas: HTML

Desarrollos Web Incrustación de la lógica de aplicación en el servidor Web: CGI: Common Gateware Interface Cada petición HTTP genera un nuevo proceso, el cual analiza la solicitud y genera un resultado. Cada proceso corresponde a una transacción. Es flexible, ideal para pequeñas aplicaciones de uso reducido No escala adecuadamente Páginas ASP: Caso particular de CGI Entorno propietario Microsoft Aspectos de rendimiento bastante mejorados

Desarrollos Web Incrustación de la lógica de aplicación en el servidor Web Servlets: Ejecución de aplicaciones Java en el servidor que procesan la petición y generan la página de respuesta No generan un proceso adicional por cada petición Utilizan un lenguaje de alto nivel (Java) Objetos CORBA: Pemite la integración de objetos CORBA con el servidor Web, creando una estructura cliente servidor multinivel Es la solución más generalista y adaptable Permite fácil, flexible y eficiente integración con BBDD

Desarrollos Web Esquema general Navegador HTTP Procesos CGI Parámetros proceso Web Server Servidor CORBA CORBA Conector CORBA Base de datos Servlet RMI Máquina virtual Java

Nuevos tipos de dispositivos Dispositivos que acceden hoy a internet: Internet Explorer, Netscape, Set Top Box, Móviles WAP, PDAs Palm Pilot, Windows CE,... Previsiones para los próximos años: 2.002 el 50% de las transacciones habituales se podrán realizar desde dispositivos móviles 2.003 el 80% de los usuarios realizarán algún tipo de transacción desde dispositivos móviles 2.004 los se querrán realizar el 100% de las transacciones desde dispositivos móviles 2.005 Se esperan más de 1.000 millones de usuarios móviles de internet

Nuevos tipos de dispositivos Problema a resolver: Necesidad de adaptar el interface de usuario a cada tipo de dispositivo Medidas a tomar: Separar la lógica de aplicación del interface de usuario Utilizar métodos estándar de comunicación entre la lógica de aplicación y el interface de usuario Uso de herramientas que permitan adaptar rápidamente las aplicaciones a los nuevos tipos de dispositivos que irán apareciendo

Nuevos tipos de dispositivos Tendencia actual Navegador Móvil Usuario http Wml binario Web Server WAP Server Gestor comunicaciones Páginas HTML Páginas WML Interface de usuario XML Servidor Aplicaciones Lógica de negocio SQL Base de datos Datos

Nuevos tipos de dispositivos Variante de los fabricantes BBDD Navegador Móvil Usuario http Wml binario Web Server WAP Server Gestor comunicaciones Páginas HTML Páginas WML Interface de usuario XML Lógica de negocio Base de datos Datos

Nuevos tipos de dispositivos Variante de los fabricantes pasarelas Navegador http Web Server SQL Base de datos Páginas HTML Móvil Wml binario WAP Server Reglas de traducción WML Usuario Gestor comunicaciones Interface de usuario Interface de usuario Lógica de negocio Datos

Estrategia a seguir Valorar la durabilidad temporal de las tecnologías a aplicar Separar, en el diseño e implentación de la aplicación, las capas de lógica de aplicación e interface de usuario Prestar mucha atención a los nuevos tipos de dispositivos Examinar con lupa los atajos ofrecidos por los fabricantes

Costes sistema distribuido Elementos a valorar: Coste de las comunicaciones: Valorar alternativas presentadas por los nuevos proveedores de telecomunicaciones. No descartar el tirar líneas propias Evaluar el coste adicional en hardware, software y gestión que implica una arquitectura distribuida. Si las comunicaciones lo permiten, saldrá más rentable una arquitectura centralizada El impacto de los protocolos de comunicaciones será vital en el desglose posterior de costes. Se deben dedicar todos los esfuerzos necesarios para evaluar cuál es el protocolo óptimo.