En la ingeniería de software se denomina aplicación web a aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de internet o de una intranet mediante un navegador.
Es un programa que se codifica en un lenguaje interpretable por los navegadores web en la que se confía la ejecución al navegador.
Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, a la independencia del sistema operativo, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales.
Existen aplicaciones como los correos web, wikis, blogs, tiendas en línea y la propia Wikipedia que son ejemplos bastante conocidos de aplicaciones web.
Una página web puede contener elementos que permiten una comunicación activa entre el usuario y la información.
Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y enviar formularios, participar en juegos diversos y acceder a gestores de base de datos de todo tipo.
Antiguamente computación cliente-servidor, cada aplicación tenía su propio programa cliente que servía como interfaz de usuario que tenía que ser instalado por separado en cada computadora personal de cada usuario.
El cliente realizaba peticiones a otro programa, el servidor, que le daba respuesta.
Una mejora en el servidor, requería normalmente una mejora de los clientes instalados en cada computadora personal, añadiendo un coste de soporte técnico y disminuyendo la productividad.
Las aplicaciones web generan dinámicamente una serie de páginas en un formato estándar, como HTML o XHTML, soportados por los navegadores web comunes.
Se utilizan lenguajes interpretados en el lado del cliente, directamente o a través de plugins tales como JavaScript, Java, Flash, etc., para añadir elementos dinámicos a la interfaz de usuario.
El Consorcio WWW, en inglés: World Wide Web Consortium (W3C), es un consorcio internacional que genera recomendaciones y estándares que aseguran el crecimiento de la World Wide Web a largo plazo.
Creado en octubre de 1994 y está dirigido por Tim Berners-Lee, el creador original del URL (Uniform Resource Locator, Localizador Uniforme de Recursos).
Del HTTP (HyperText Transfer Protocol, Protocolo de Transferencia de HiperTexto) y del HTML (Hyper Text Markup Language, Lenguaje de Marcado de HiperTexto), que son las principales tecnologías sobre las que se basa la Web.
Cada página web en particular se envía al cliente como un documento estático, pero la secuencia de páginas ofrece al usuario una experiencia interactiva.
Durante la sesión, el navegador web interpreta y muestra en pantalla las páginas, actuando como cliente para cualquier aplicación web.
Una aplicación web está normalmente estructurada como una aplicación de tres-capas.
- El navegador web ofrece la primera capa, interpretando el código.
- El servidor que ofrece este código y toda la información es la segunda capa.
- Una base de datos constituye la tercera y última capa.
El navegador web manda peticiones a la capa intermedia, la cual ofrece servicios valiéndose de consultas y actualizaciones a la base de datos y proporciona una interfaz de usuario.
Capa del navegador
Utilizados lenguajes o arquitecturas que no son propiamente lenguajes de programación, como HTML o XML.
Se utilizan para servir los datos adecuados a las necesidades del usuario, en función de como hayan sido definidos por el dueño de la aplicación.
Los desarrolladores web generalmente utilizan lenguajes interpretados (scripts) en el lado del cliente para añadir más funcionalidades, especialmente para ofrecer una experiencia interactiva que no requiera recargar la página cada vez.
Existen tecnologías para coordinar estos lenguajes con las tecnologías en el lado del servidor, por ejemplo, AJAX que es una técnica de desarrollo web que usa una combinación de varias tecnologías.
Tecnologías
- HTML
- CSS (Casi todas las páginas contienen, al menos, un trozo de código escrito en JavaScript).
Capa del servidor
Existen numerosos lenguajes de programación empleados para el desarrollo de aplicaciones web en el servidor, entre los que destacan:
- PHP
- Java, con sus tecnologías Java Servlets y JavaServer Pages (JSP)
- Javascript en su modalidad SSJS: Server Side Javascript (Javascript del lado del servidor).
- Perl
- Ruby
- Python
- Node.js
- C# y Visual Basic con sus tecnologías ASP/ASP.NET
Capa de persistencia
Los datos se almacenan en alguna base de datos estándar.
Estrategia de uso de Software como servicio y a las compañías desarrolladoras se les denomina proveedores de servicios de aplicación (ASP).
Ventajas;
- Ahorra tiempo
- Consumo de recursos bajo
- Multiplataforma
- Virus/malware
- Aumento de funcionalidades
- Compatibilidad
- Portables
- Espacio
- Actualizaciones inmediatas
- Disponibilidad
- Colaboración
Inconvenientes;
- Requieren navegadores web totalmente compatibles para funcionar.
- Desaparece si así lo requiere el desarrollador o si el mismo se extingue.
- El usuario, no tiene libertad de elegir la versión de la aplicación web que quiere usar.
- El desarrollador de la aplicación web puede rastrear cualquier actividad que el usuario haga.
- Ofrecen menos funcionalidades que las aplicaciones de escritorio.
- La disponibilidad depende de un tercero, el proveedor de la conexión a internet o el que provee el enlace entre el servidor de la aplicación y el cliente.