En 1991, Tim Berners Lee crea la World Wide Web, el cual es un sistema de distribucin de documentos de hipertexto o hipermedios interconectados y accesibles va Internet.
sta se clasifica en:
Web 1.0:
Es considerado como el acceso ms sencillo y comprensible al universo de la informacin disponible en Internet.
Enlaza pginas o documentos localizados en la red sin importar su ubicacin fsica o geogrfica. Pocos productores de contenidos y muchos lectores de estos contenidos. Paginas estticas. La actualizacin de los sitios no se realiza en forma peridica. Sitios direccionales y no colaborativos. Los usuarios son lectores consumidores. Interaccin mnima reducida a formularios de contacto, inscripcin boletines, etc.
3
Web 2.0:
Es la segunda generacin web. Se pasa de una web informativa, creada por expertos, a una web social donde cualquiera puede participar fcilmente.
Aparecen aplicaciones Web muy potentes y sencillas de manejar enfocadas al usuario final. El usuario es quien crea y comparte Conocimiento compartido Facilidad de utilizacin de las herramientas Es dinmica Permite servicios y multimedia
Web 3.0:
La web semntica aade a la web sintctica lo necesario para crear un entorno donde podamos acceder a la informacin que necesitamos de un modo exacto y completo.
Se facilita el procesado de la informacin y se resuelven los problemas de la interoperabilidad entre aplicaciones.
Metadatos Identificadores de recursos Reduce la mediacin de operadores humanos Creacin colectiva y colaborativa de recursos
4
1.2 Arquitectura de las aplicaciones web
Modelo cliente-servidor
La arquitectura tradicional de cliente/servidor tamin es conocida como arquitectura de dos capas. Requiere una interfaz de usuario que se instala y se ejecuta en una PC o estacin de trabajo y enva solicitudes a un servidor para ejecutar operaciones complejas.
Ventajas El desarrollo de aplicaciones en un amibente de dos capas funciona adecuadamente, pero no es necesariamente lo ms eficiente. Las herramientas para el desarrollo con dos capas son robustas y ampliamente evaluadas Las tcnicas de ingeniera de software de prototipo se emplean fcilmente. Las soluciones de dos capas trabajan ien en ambientes no dinmicos estales, pero no se ejecutan bien en organizaciones rpidamente cambiantes.
Desventajas: Los ambientes de dos capas requieren control excesivo de las versiones y demandan esfuerzo de distriucin de la aplicacin cuando se les hacen camios. Esto se dee al hecho de que la mayora de la aplicacin lgica existe en la estacin de trabajo del cliente. La seguridad del sistema en un diseo de dos capas es compleja y a menudo requiere administracin de las bases de datos; esto es deido al nmero de dispositivos con acceso directo al amibente de esas bases de datos. Las herramientas del cliente y de la base de datos, utilizadas en diseos de dos capas, constantemente estn cambiando. La dependencia a largo plazo de cualquier herramienta, puede complicar el escalamiento futuro o las implementaciones.
5
Arquitectura de tres capas
La arquitectura de tres capas es un diseo reciente que introduce una capa intermedia en el proceso. Cada capa es un proceso separado y bien definido corriendo en plataformas separadas. En la arquitectura tradicional de tres capas se instala una interfaz de usuario en la computadora del usuario final (el cliente). La arquitectura asada en Web transforma la interfaz de bsqueda existente (el explorador de Web), en la interfaz del usuario final.
Las diferentes capas suelen ser: Capa 1: Cliente de aplicacin: Navegador Web Capa 2 : Servidor de Aplicaciones: Apache, Servidor Tomcat con servlets Capa 3 : Servidor de Datos: base de datos, servidor SMTP
Ventajas: Las llamadas de la interfaz del usuario en la estacin de trabajo, al servidor de capa intermedia, son ms flexibles que en el diseo de dos capas, ya que la estacin solo necesita transferir parmetros a la capa intermedia. Con la arquitectura de tres capas, la interfaz del cliente no es requerida para comprender o comunicarse con el receptor de los datos. Por lo tanto, esa estructura de los datos puede ser modificada sin cambiar la interfaz del usuario en la PC. El cdigo de la capa intermedia puede ser reutilizado por mltiples aplicaciones si est diseado en formato modular. La separacin de roles en tres capas, hace ms fcil reemplazar o modificar una capa sin afectar a los mdulos restantes.
Desventajas: Los ambientes de tres capas pueden incrementar el trfico en la red y requiere ms balance de carga u tolerancia a las fallas. Los exploradores actuales no son todos iguales. 6
La estandarizacin entre diferentes proveedores ha sido lenta en desarrollarse. Muchas organizaciones son forzadas a escoger uno en lugar de otro, mientras que cada uno ofrece sus propias y distintas ventajas.
1.3 Tecnologas para el desarrollo web
Servidor
Un servidor web es un programa que se ejecuta continuamente en un computador, mantenindose a la espera de peticiones de ejecucin que le har un cliente o un usuario de Internet. El servidor web se encarga de contestar a estas peticiones de forma adecuada, entregando como resultado una pgina web o informacin de todo tipo de acuerdo a los comandos solicitados.
Gracias a los avances en conectividad y la gran disponibilidad de banda ancha, hoy en da es muy comn establecer los servidores web dentro de la propia empresa, sin tener que recurrir a caros alojamientos en proveedores externos. Esto es posible gracias a Apache, uno de los mejores y el ms utilizado entre los servidores Web que existen. Apache ha construido una gran reputacin entre los servidores web gracias a su gran estabilidad, confiabilidad y el gran aporte del grupo de voluntarios que planean y desarrollan todo lo relativo a esta plataforma, desde la documentacin hasta el mismo cdigo en si.
Lenguajes de programacin web
HTML Lenguaje esttico. Basado en etiquetas. El estndar lo define el W3C (World Wide Web Constortium). Interpretado. Extensiones de archivos .html .htm. Texto estructurado. Archivos pequeos. Fcil aprendizaje. Compatible en todos los exploradores. Esttico. Interpretacin diferente dependiendo del navegador. Exceso de etiquetas. JavaScript Interpretado. Similar a Java. Orientado a objetos. El estndar definido y mantenido por W3C a travs del DOM. Lenguaje de scripting seguro y fiable. Los scripts tienen capacidades limitadas. Se ejecuta en el lado del cliente. Cdigo visible por cualquier usuario. El cdigo debe descargarse completamente. Puede poner en riesgo la seguridad del sitio con el uso XSS (Cross Site Scripting). Problemas en navegadores antiguos. PHP Interpretado. Usado principalmente para sitios dinmicos. Del lado del servidor. Embebido en HTML. Necesita de servidor Web. Extensiones de archivo .php. Lenguaje libre. Multiplataforma. Descataca su conectividad con MySQL. 7
Fcil de aprender. Lenguaje rpido. Soporta objetos. Capacidad de conexin con la mayora de motores de BD. Expande su potencial a travs de mdulos. Ampliamente documentado. No hay que definir tipos de variables. Gran cantidad de funciones. Necesita de servidor Web. Todo el trabajo se realiza en el servidor. La legibilidad del cdigo puede verse afectada. Soporte a objetos an es muy deficiente. Dificulta la organizacin por capas de la aplicacin. Hay que asegurar la implementacin. ASP.NET Es un framework de desarrollo. Comercializado por microsoft. Se puede usar C#, VB.NET o J# en los desarrollos Web. Los archivos son extensin .aspx. Las aplicaciones necesitan de Framework de .NET. Se ejecuta en el lado del servidor. Completamente orientado a objetos. Controles de usuario personalizados. Permite la divisin por capas: diseo y cdigo. Facilita el mantenimiento de grandes aplicaciones. Rpido en la respuesta del servidor. Seguro. Mayor uso de recursos JSP Orientado a desarrollar pginas Web en Java. Lenguaje multiplataforma. Se ejecuta en el lado del servidor. Similar a ASP.NET en la potencia de los desarrollos. Necesita para su funcionamiento el servidor Tomcat. Permite separar el cdigo dinmico del esttico. Las pginas se compilan en la primera peticin. La extensin de archivo es .jsp. El cdigo JSP se puede incrustar en HTML. Utiliza el motor de servlets de Java. Ejecucin rpida de servlets. Multiplataforma. Cdigo bien estructurado. Se escribe en Java. Integridad con los mdulos de Java. Complejidad en el aprendizaje. Python Lenguaje multipropsito. Lenguaje interpretado. Lenguaje multiparadigma: POO. Programacin estructurada. Programacin funcional. Programacin orientada a aspectos.. Libre y de fuente abierta. Lenguaje de propsito general. Gran cantidad de funciones y libreras. Sencillo y rpido de programar. Multiplataforma. Orientado a objetos. Portable. Lento por ser interpretado. Perl Toma elementos del lenguaje C y shell. Es interpretado. Lenguaje de propsito general. Soporta programacin estructurada, POO y programacin funcional. Gran cantidad de mdulos. Rico en sintaxis. Poderoso en el manejo de expresiones regulares.
8
Entornos de programacin web
Es un programa compuesto por un conjunto de herramientas para un programador, puede dedicarse en exclusiva a un slo lenguaje de programacin o bien, poder utilizarse para varios. Consiste en un editor de cdigo, un compilador, un depurador y un constructor de interfaz grfica, su meta es proveer un marco de trabajo amigable para los programadores de algn lenguaje de programacin.
Los IDE (ambientes integrados de desarrollo) para aplicaciones Web son muy numerosos, algunos son especficos para lenguajes del lado del servidor. Por ejemplo, Visual Studio solo soporta ASP.NET del lado del servidor.
Entre varios IDEs destacan algunos: Microsoft Visual Studio. Microsoft Web Developer Express. Mono (para ASP.NET). Net Beans. Jbuilder. Eclipse.
1.4 Administracin de servidores El servidor Apache HTTP, tambin llamado simplemente Apache, es el estndar en la entrega de servicios web y ha abierto el camino para la mayor expansin de las capacidades de la web. Apache se basa en una plataforma de servicio web de fuente abierta originalmente desarrollada para servidores de Linux/Unix, pero se configur posteriormente para que funcione con Windows y otros sistemas operativos. El servidor web Apache est equipado con muchas capacidades, lo que le permite admitir varias secuencias de comando y mdulos para la web. Este servidor admite la Interfaz de entrada comn (CGI en ingls) y el Server Side Includes (SSI). CGI se usa como un medio comn de comunicacin entre el software externo y el servidor web, mientras que SSI es un archivo de comandos para el servidor. Los usuarios de Apache tambin pueden instalar otros mdulos tales como un directorio de inicio para usuarios, redireccin de URL, autenticacin del usuario y acceso annimo del usuario, entre otros. Aunque el servidor web Apache sea gratuito, no deja de ser ms rpido en comparacin con los servidores web ms caros del mercado que cuestan cientos 9
de dlares. Los servidores Apache pueden manejar ms de un milln de visitas por da sin dificultades.
1.5 Planificacin de aplicaciones web
Diseo: Consiste en organizar la interfaz del sitio web mediante un diseo que puede ser una plantilla o generado manualmente por el desarrollador.
Estandares:
Las normas a cumplir para conseguir la Accesibilidad de un sitio, y por lo tanto atender a este tipo de audiencias, estn separadas en tres reas a las que se les asigna diferente nivel de Prioridad. Estas son consecutivas y pueden certificarse individualmente.
10
Prioridad 1: o Los puntos de verificacin de esta prioridad tienen que ser satisfechos, porque, de lo contrario, uno o ms grupos de usuarios encontrarn imposible acceder a la informacin del documento. Satisfacer este punto de verificacin es un requerimiento bsico para que algunos grupos puedan usar estos documentos Web.
Prioridad 2: o Los puntos de verificacin de esta prioridad deben ser satisfechos, porque, de lo contrario, uno o ms grupos tendrn dificultades en el acceso a la informacin del documento. Satisfacer este punto de verificacin eliminar importantes barreras de acceso a los documentos Web.
Prioridad 3: o Los puntos de verificacin de esta prioridad pueden ser satisfechos, porque, de lo contrario, uno o ms grupos de usuarios encontrarn alguna dificultad para acceder a la informacin del documento. Satisfacer este punto de verificacin mejorar la accesibilidad de los documentos Web.