Universidad de Cantabria Internet Servicios WEB (WWW) Arquitectura de Aplicaciones WEB Febrero-2006 Ricardo Sáez Marta Zorrilla Internet- Arquitectura aplicaciones 1
Cliente/Servidor & Intranet/Internet Internet- Arquitectura aplicaciones 2
Cliente/Servidor Tradicional Cliente Interface de Usuario y lógicade la aplicación Servidor Base de datos y lógicade la aplicación Basado en Red Un servidorcon muchas estaciones cliente Internet- Arquitectura aplicaciones 3
Cliente-Servidorde Tres-Capas GUI del Cliente Servidor logica de la aplicación Separación lógica no requiere necesariamente la separación física Servidor Base de Datos Internet- Arquitectura aplicaciones 4
Aplicaciones Distribuidas Servidor 1 Servicios de lógica Servidor 2 Servicios de lógica Cliente RED Servidor 3 Servicios de lógica Servidor 5 Servicios de datos Servidor 4 Servicios de datos Internet- Arquitectura aplicaciones 5
Clientes Pesados (Thick) Cliente: Interface y lógica Rendimiento Instalación compleja Mantenimiento y actualizaciones Internet- Arquitectura aplicaciones 6
Clientes Ligeros (Thin) Cliente: Interface Rendimiento Instalacion remota sencilla Mantenimiento y actualizaciones Lógica centralizada Internet- Arquitectura aplicaciones 7
Clientes ligeros Browser Ventajas Interface de usuario universal Coste Acceso desde equipos heterogéneos Acceso muy difundido Requisitos de hardware Inconvenientes Estándares de Browser HTML en fase inicial Herramientas de desarrollo poco maduras Internet- Arquitectura aplicaciones 8
Otros Clientes ligeros Windows CE Network computers NetPC Visual Basic, C++, Java Internet- Arquitectura aplicaciones 9
Aplicaciones Web Estáticas Internet Cliente Web HTTP sobre una red TCP/IP HTTP sobre una red TCP/IP Servidor Web Documento HTML Documento HTML Documento HTML Internet- Arquitectura aplicaciones 10
Aplicaciones Web Estáticas Virtudes Imagen de empresa: efecto contrario si no se tiene capacidad de síntesis Solución económica Problemas Actualización y Mantenimiento not found, siempre hay un enlace que se olvida Velocidad, si no hay un análisis cuidadoso Internet- Arquitectura aplicaciones 11
Aplicaciones Web Dinámicas Internet Plug-ins HTTP sobre TCP/IP Servidor Web HTTP sobre TCP/IP NSAPI CGI ISAPI Servidor Aplicaciones Applets Cliente Web Documentos HTML Base de Datos Internet- Arquitectura aplicaciones 12
Aplicaciones Web Dinámicas Virtudes Mantenimiento escaso Informaciónen tiempo real Conectividad de entornos heterogéneos Problemas Seguridad Compatibilidad browser-applets Paso de intranet a internet Internet- Arquitectura aplicaciones 13
Aplicaciones WebOLTP IIOP DCOM Internet APPLETS HTTP sobre TCP/IP Servidor Web HTTP sobre TCP/IP NSAPI CGI ISAPI IIOP DCOM SERVLETS CTS ORB TP Java JavaBeans ActiveX Cliente Web Documentos HTML ODBC JDBC Base de Datos Base de Datos Base de Datos Internet- Arquitectura aplicaciones 14
Browsers Browsers Microsoft Internet Explorer Netscape Navigator Mozilla User interface HTML/Visual Basic Scripting Edition/ JScript Java ActiveX Internet- Arquitectura aplicaciones 15
Herramientas de Desarrollo Cliente Visual Basic PowerBuilder Delphi Java C++ FrontPage y otros editores Internet- Arquitectura aplicaciones 16
Herramientas de Desarrollo Logicade la Aplicación Visual Basic Visual InterDev PowerBuilder Delphi Java C++ Microsoft Exchange Internet- Arquitectura aplicaciones 17
Herramientas de Desarrollo Base de Datos Stored procedures y triggers Visual Basic Modelo E/R Modelo de Objetos Java C++ JSQL Internet- Arquitectura aplicaciones 18
Dinamismo e interactividad en las Páginas Web HTML: Lenguaje puramente descriptivo. Páginas prácticamente estáticas. No permite: Estructuras iterativas o condicionales. Definición de funciones para utilizar en diversas partes del documento. Declarar variables. Realizar cálculos matemáticos.... Internet- Arquitectura aplicaciones 19
Dinamismo e interactividad en las Páginas Web Aumento de dinamismo e interactividad: Necesidad de recurrir a otros Lenguajes y Tecnologías. Requisitos de este nuevo Lenguaje de Programación: Complementación con HTML. Posibilitar el cambio de la información que se muestra en la página Web de una forma dinámica (mediante el acceso a Bases de Datos u otras Tecnologías). Permitir la interactividad con el usuario de manera que exista un cierto grado de comunicación con el usuario. Internet- Arquitectura aplicaciones 20
Programación Lado Cliente - Programación Programación del Lado Cliente Lado Servidor Programas residen junto a la página Web en el Servidor pero son transferidos al cliente para que este los ejecute. Ejemplos de Lenguajes de Programación del Lado Cliente son: Java, JavaScript o VBScript Ventajas: Se descarga de trabajo al Servidor. Respuestas a las acciones de los usuarios no necesitan realizar transmisiones por la red. Se pueden integrar los Programas en las Páginas alojadas en cualquier Servidor Web. Internet- Arquitectura aplicaciones 21
Programación Lado Cliente - Programación Lado Servidor Programación del Lado Servidor Programas son ejecutados por el Servidor y lo que se envía al cliente es la Respuesta o resultado de dicha ejecución Ejemplos de Lenguajes de Programación del Lado Servidor son: ASP, JSP, ColdFusion o PHP Ventajas: Al cliente sólo se le transfiere el resultado de la ejecución de la página. En los equipos de los clientes no se requiere ningún Software especial. Todo lo necesario debe ser instalado en el Servidor. Todos los clientes podrán visualizar la página correctamente (no hay necesidad de Plug-ingso programas intérprete). Código fuente en Servidor Privacidad. Internet- Arquitectura aplicaciones 22
Introducción Open Source (Código abierto) Hace referencia a la libre disponibilidad por parte del usuario de un Software y su código fuente. Libre disponibilidad en cuanto a utilizar, modificar y distribuir el software y su código fuente y no respecto al coste o precio de adquisición. El Software Open Sourceno tiene por qué ser gratuito. Aunque de tener un precio de adquisición este suele ser muy reducido. No obliga a que las aplicaciones derivadas de un Software Open SourcePermanezcan con el código abierto. Actualmente hay Software OpenSourcede todo tipo: Sistemas Operativos (Linux), paquetes ofimáticos (OpenOffice), Navegadores (Mozilla), Servidores Web (Apache), Bases de Datos (MySQL),... Internet- Arquitectura aplicaciones 23
Open Source (Código abierto) Ventajas Ahorro de costes. Distribución software gratuita o de coste muy bajo. El código de los programas es abierto No depende de una sola empresa y permite adecuar el programa a las necesidades de cada uno. Mayor calidad y seguridad de los programas. Reactivación de la competencia. Rapidez de desarrollo (evolución y lanzamiento de versiones). Relación y colaboración directa con los usuarios. Internet- Arquitectura aplicaciones 24
Inconvenientes Open Source (Código abierto) Dificultad en cambiar o dejar de utilizar determinadas aplicaciones comerciales. No es la mejor opción para determinadas empresas que basan su negocio en algoritmos secretos o patentados. Necesidad de un proceso de adaptación y formación por parte del usuario y las empresas. Existencia de proyectos y comunidades y proyectos sin estructuras jerárquicas y organizativas claras Sensación de desorganización. Comunidades con tendencias demasiado elitistas que alejan al usuario no técnico. Internet- Arquitectura aplicaciones 25