Una aplicación web es una aplicación que no se ejecuta en nuestro ordenador si no en un servidor de remoto. Para utilizar esta aplicación utilizamos un navegador web estándar con el que accedemos al servidor donde se ejecuta la aplicación utilizando la tecnología web.
En una aplicación web las tareas más importantes se realizan en el servidor (que es más potente) permitiendo el uso de clientes poco potentes como smartphones o tablets. Las aplicaciones web tienen sentido asumiendo que disponemos de redes de comunicación de alta capacidad en cualquier lugar.
Podemos indicar como ventajas:
- No requieren la instalación de ningún software. Cualquier navegador web estándar nos sirve como cliente.
- No es necesario realizar actualizaciones en los clientes. Las actualizaciones se realizan en el servidor por lo que siempre se dispone de la última versión.
- La información está centralizada. Normalmente una aplicación web utiliza una base de datos común para todos los usuarios.
- Una aplicación web es más segura ya que el software no sale del servidor. El cliente solo recibe la respuesta en HTML.
- Al estar el servidor en un centro de proceso de datos se pueden configurar copias de seguridad automáticas.
- Gracias al desarrollo de las redes de comunicación las aplicaciones web se pueden utilizar en cualquier lugar y desde cualquier dispositivo.
- No es necesario actualizar el cliente con un hardware cada vez más potente. Cualquier dispositivo, aunque sea antiguo, es válido.
Como único inconveniente podríamos decir que el funcionamiento off-line no es posible. No podemos utilizar nuestra aplicación web si no estamos conectados.
Como ejemplo de aplicaciones web podemos indicar las siguientes:
- CMS (Content Management System): WordPress, Drupal, Joomla
- Trabajo colaborativo: Feng, Orange HRM
- Aprendizaje: Moodle
- CRM (Customer Relationship Management) : Sugar CRM
- ERP (Enterprise Resource Planning): OpenERP
- Tienda Online: Prestashop, Magento, Zen Cart
Las aplicaciones web siguen una arquitectura cliente servidor en la que el cliente inicia las peticiones o solicitudes, y espera la respuesta del servidor. En una aplicación web el cliente es una navegador web estándar manejado por el cliente final. Si el cliente fuera otro ordenador estaríamos hablando de un «servicio web» y no de una «aplicación web».
El servidor de una aplicación web espera las peticiones de los clientes. Es un elemento pasivo: recibe la solicitud, la procesa y envía la respuesta. Un servidor de una aplicación web puede manejar muchos clientes simultáneamente y no es accesible por el usuario final. Solo el gestor de la aplicación tiene acceso a la aplicación y al sistema operativo.
La arquitectura habitual es una arquitectura a tres niveles como se muestra en la siguiente figura:
La aplicación web suele utilizar una base de datos donde se almacenan los datos que van cambiando. Esta base de datos suele estar en un servidor independiente sin ningún tipo de acceso externo. Esto le da más seguridad y permite que pueda haber varios servidores de aplicación todos trabajando con los mismos datos. Esta base de datos suele ser base de datos SQL estándar como MySQL.
La mayoría de las aplicaciones web están escritas en lenguaje PHP aunque también se utiliza Python. En el caso de PHP el servidor puede ser un servidor web Apache con las librerías PHP. Esto permite que Apache interprete el código PHP en el que está escrito la aplicación web.
Las aplicaciones web indicadas en esta página están todas escritas en lenguaje PHP y contemplan una base de datos MySQL para los datos.