Tema 1, Programación Web
1
Aplicaciones WEB
Programación WEB
Curso 2012/2013
Email- [email protected]
Universidad Católica San Antonio de Murcia - Tlf: (+34) 968 27 88 00 [email protected] - www.ucam.edu
Magdalena Cantabella Sabater
Tema 1, Programación Web
2
- Una aplicación web es una aplicación cliente/servidor de cliente ligero, basada en WWW
(tecnologías, lenguajes, protocolos...)
- Ejemplos de aplicaciones web
- Tienda virtual (Comercio electrónico)
- Banca on-line
- Campus virtual
- Reserva de entradas o billetes
- Intranet corporativa
- Blog
- Secretarías virtuales
- Buscador
- ...
Definición
Tema 1, Programación Web
3
- Aplicaciones dividas en dos partes:
- Situadas en ordenadores distintos (surgen con las redes)
- Servidor:
- Centraliza los datos y el proceso de los datos
- Soporta clientes simultáneos
- Máquina con dimensionamiento más exigente
- Cliente:
- Envía peticiones de servicios y recibe sus respuestas
- Interface con el usuario
- Máquina con dimensionamiento menos exigente
Aplicaciones Cliente-Servidor
Cliente Servidor Red
petición
respuesta
datos
Tema 1, Programación Web
4
- Interfaz gráfica para interacción con usuario
- Lógica de negocio en el cliente
- Procesa los datos (el servidor actúa como un disco duro remoto)
- Movimiento de datos que sobrecarga la red.
Ej. Si los datos de cada cliente ocupan 10 KB, y hay 100.000 Clientes, habrá
que enviar 10GB para realizar una consulta!
Cliente pesado
Cliente Servidor Red
petición
datos
selecc.
datos
Procesamiento
Presentación
Selección
Tema 1, Programación Web
5
- Interfaz gráfica para interacción con usuario
- Lógica de negocio en el servidor
- Sólo se envían los resultados de la operación.
- Poca carga de proceso
- El cliente apenas realiza proceso de datos (validaciones…)
- Ej. Procedimientos almacenados en BD parametrizados
Pueden devolver cursores (conjuntos de datos que se pueden recorrer)
Cliente ligero
Cliente Servidor Red
petición datos
Procesamiento Presentación
Selección
resultado
Tema 1, Programación Web
6
- El cliente web: aplicación que envía peticiones HTTP
- Normalmente: navegador, que recibe código HTML
- El software cliente suele estar instalado en el S.O
- Puede no ser un navegador convencional: otro servidor, robot de
búsqueda, aplicación solicita o envía datos por HTTP (ej. licencia),...
- Puede no alojarse en un PC convencional: PDA, móvil,...
- Puede tratar HTML, XML, texto, formatos binarios (PDF, JPEG,...)
- Pequeña capacidad de proceso: scripting de lado del cliente
- Puede extenderse (plugins, visualizadores externos,…)
Aplicaciones Web: el cliente
Cliente Servidor web Red
HTTP Request
página
Procesamiento
Presentación
HTTP Response
Cookies
HTML
CSS
…
URL
Cookies
…
Tema 1, Programación Web
7
7
- El servidor web: aplicación que recibe peticiones HTTP
- Recibe petición URL mediante HTTP.
- Descodifica URL y procesa la petición
- Responde como HTTP (página correcta, Error 404 Not Found...)
- Cliente solicita imágenes en sucesivas peticiones HTTP
- Cliente compone la página, ejecuta JavaScript y visualiza por pantalla
- Ejemplos:
- Internet Information Server (IIS) v4 WNT, v5 W2K y XP, v6 W2K3
- Apache. Multiplataforma.
Aplicaciones web: el servidor
Cliente Servidor web Red
HTTP Request
página
Procesamiento
Presentación
HTTP Response
Cookies
HTML
CSS
…
URL
Cookies
…
Aplicación
Servidor web
Tema 1, Programación Web
8
- Escucha en un puerto. Por defecto:
- Puerto TCP 80 para HTTP
- Puerto TCP 443 para HTTPS
- Soporta concurrencia
- Un solo servidor puede contener múltiples aplicaciones
- Posibilidad de cifrar la comunicación: Servidor Seguro
- Se ejecuta como un usuario de S.O. específico.
- Accede a recursos de la máquina:
- Disco duro: permisos sobre usuario del servidor web
- Base de datos: permisos sobre usuario del servidor o usuario remoto
- Posibilidad de exigir autenticación remota:
- Usuario y password (autenticación básica)
- Certificado digital (usando SSL)
Aplicación Servidor Web
Tema 1, Programación Web
9
9
- Puede ocultar una estructura compleja en varios niveles
Aplicación Servidor Web
Cliente
Proxy caché
Red
HTTP Request
Presentación
HTTP Response
Cookies
HTML
CSS
…
URL
Cookies
… Balanceador de carga
Servidores web
Servidores de BD
Servidores de ficheros
Servidores de apps
Tema 1, Programación Web
10
- Limitación:
- Limitadas por tecnologías que no fueron diseñadas pensando en
aplicaciones: HTML, HTTP...
- Problemas con interface
- Problemas en control de comunicación
- Ventajas:
- Basadas en estándares
- No se requiere instalación de software en cliente
- Sin problemas por instalación de software (librerías,…)
- Propagación de actualizaciones inmediata
- Aceptación del usuario: “todo el mundo sabe navegar”
- Fácil coexistencia con firewalls
- Futuro: Romper las limitaciones con XHTML, XML, SOAP, objetos
distribuidos, etc..
Aplicaciones Web
Tema 1, Programación Web
11
Aplicación cliente-servidor
Software cliente específico, que el
cliente debe tener instalado
Interface como cualquier aplicación
del sistema. Windows: ventanas,
menús,...
Software servidor específico, que
el servidor debe tener instalado
Protocolo red entre C y S:
Protocolos propietarios.
Múltiples posibilidades.
Generalmente TCP/IP
Aplicación web
Software cliente: Navegador web. Las
respuestas son páginas web.
Interface: Páginas web programadas en
HTML
Software específico, que es ejecutado
por un servidor web
Protocolo red entre C y S:
Protocolo HTTP(S)
(pero: no orientado conexión,
pro: facilita config. firewall)
Comparativa
Tema 1, Programación Web
12
- Páginas que no cambian de contenido en el tiempo
- Recuperadas desde el sistema de archivos del servidor
- No requieren procesamiento: sólo transmitir el contenido
- Inconvenientes graves:
- Dificultad de actualización y mantenimiento.
- Ej. Aplicar un descuento a todos los productos en una tienda web.
Cada precio es mostrado en múltiples páginas.
- Acceso limitado a la información: posibilidad de usar índices
(difíciles de mantener), difícil hacer búsquedas...
- No es un enfoque inherentemente malo, pero sí limitado: no es
adecuado para sitios con páginas cambiantes.
Enfoque estático
HTTP Request
Presentación
HTTP Response
Servidor
web
página,
imagen o
doc
estático
Tema 1, Programación Web
13
- Páginas que cambian de contenido con el tiempo
- Resultado procedente de la ejecución de un programa
- CGI: programa cuya salida es HTML
- Página activa: HTML + código de programación embebido
- Existen muchas tecnologías:
- ASP: para IIS PHP: multiplataforma, Apache
- JSP: multiplataforma Coldfusion: multiplataforma
- Extensiones PL/SQL de Oracle: sólo para IAS y BD Oracle
- Perl: multiplataforma …
- Fáciles de mantener: páginas actualizadas automáticamente
- Ejemplo:
<% si contraseña es correcta entonces %>
<h2> Bienvenido al servidor web </h2>
<% si no %>
<h2> Contraseña incorrecta </h2>
<% fin si %>
¿Problemas con la caché?
Enfoque dinámico
Tema 1, Programación Web
14
- Contenidos recuperados de..
- El propio HTML de la página activa o CGI
- Datos enviados por el usuario (URL, formularios, cookies)
- Datos leídos de la base de datos
- Datos leídos de un fichero (ej. Fichero de propiedades)
- Información del entorno (Sistema Operativo y Servidor Web)
- Información de sesión, aplicación
Páginas Activas
página
activa
Intérprete
Bases
Datos
HTTP Request Interface
CGI
HTTP Response
Servidor
web
página,
imagen o
doc
estático
Datos
entorno
Tema 1, Programación Web
15
15
Modelos de aplicaciones web
Tema 1, Programación Web
16
- Aplicaciones accesibles de forma pública
- Desde cualquier lugar del mundo
Modelo internet
Organización
Internet
Tema 1, Programación Web
17
- Aplicaciones web internas a la organización
- No accesibles desde fuera de la organización
- Limitar acceso a nivel de configuración de red
- Limitación de IP por programa
- Identificación usuario/password,
permisos que determinan la información visible
Modelo intranet
Organización
Internet
Tema 1, Programación Web
18
- Intranet parcialmente accesible a usuarios externos
- Acceso a través de firewall
- Identificación usuario/password,
permisos que determinan la información visible
- Apropiado para:
- Miembros de la organización en itinerancia
- Empresas asociadas (B2B): clientes, proveedores
Modelo extranet
Organización
Internet
Tema 1, Programación Web
19
- Aplicaciones de uso interno, en servidores externos
- La organización alquila el uso de aplicaciones web
- Lógica reside en el ASP: El proveedor realiza las actualizaciones
- Datos residen en el ASP: El proveedor realiza backup
- Fuerte infraestructura de red (caídas, rendimiento...)
- Indemnización por ausencia de servicio
- Alta disponibilidad: Enlaces y equipos redundantes
- Desconfianza
Modelo ASP (Application Service Provider)
Organización
Internet
Tema 1, Programación Web
20
- Ventajas para el cliente:
- No se requieren instalaciones
- Copias de seguridad y actualizaciones por el proveedor
- Accesible desde cualquier punto
- Ventajas para el proveedor:
- Fin de las copias ilegales
- Control del tiempo exacto de uso
- No requiere distribución.
- En la instalación
- En las actualizaciones
Modelo ASP (Application Service Provider)
Tema 1, Programación Web
21
21
- El desarrollo web (Web Development) se divide en:
- Diseño gráfico (Web Design)
- Se centra en la estética de la web
- Herramientas WYSIWYG (DreamWeaver), Flash, Photoshop
- Programación Web (Web Programming)
- Se centra en desarrollo de aplicaciones informáticas para Web
- Tecnologías:
- Lenguajes etiquetados (HTML, XML,...)
- Lenguajes interpretados en cliente (JavaScript, VBScript)
- Páginas activas (ASP, JSP, PHP, ...)
- Bases de datos (MySQL, Access, SQL Server, Oracle...)
- Ingeniería del software para web (Web Engineering)
- Especificación de requisitos
- Prototipado
- Herramientas de diseño (Modelo E-R, Mapa Web, UML)
Web development
Tema 1, Programación Web
22
Cliente
Ejemplo de equipo de desarrollo web
Responsable
Proyecto / Controller
Diseñadores
Gráficos
Analistas
Programadores
Ingenieros de
Sistemas
Técnicos de
Sistemas
Planificación, control fases,
Control presupuestos, …
Tema 1, Programación Web
23
Cliente
Equipo explotación web
Responsable
Técnico
Diseñadores
Gráficos
Analistas
Programadores
Ingenieros de
Sistemas
Técnicos de
Sistemas
Responsable
Canal
Atención Cliente
Helpdesk
Desarrollo
de negocio
Administración
canal
Marketing…
Tema 1, Programación Web
24
El trabajo en equipo es esencial; te permite echarle la culpa a otro
(Anónimo)
Top Related