Aplicaciones Web
En
la ingeniería de software se denomina aplicación
web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a
un servidor web a través de Internet o de una intranet mediante un navegador.
En otras palabras, es una aplicación software que se codifica en un lenguaje
soportado 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 web
mails, wikis, weblogs, tiendas en línea y la propia Wikipedia que son ejemplos
bien conocidos de aplicaciones web.
Imagen 1: Aplicación Web.
Es
importante mencionar que 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.
Estructura de las aplicaciones Web
Aunque
existen muchas variaciones posibles, una aplicación web está normalmente
estructurada como una aplicación de tres-capas. En su forma más común, el
navegador web ofrece la primera capa y un motor capaz de usar alguna tecnología
web dinámica (ejemplo: PHP, Java Servlets o ASP, ASP.NET, CGI, ColdFusion,
embPerl, Python (programminglanguage) o Ruby onRails) constituye la capa de en medio.
Por último, una base de datos constituye la tercera y última capa.
El
navegador web manda peticiones a la capa de en medio que ofrece servicios
valiéndose de consultas y actualizaciones a la base de datos y a su vez
proporciona una interfaz de usuario.
Ventajas:
- Ahorra tiempo: Se
pueden realizar tareas sencillas sin necesidad de descargar ni instalar ningún
programa.
- No hay problemas de compatibilidad:
Basta tener un navegador actualizado para poder utilizarlas.
- No ocupan espacio en nuestro disco duro.
- Actualizaciones inmediatas:
Como el software lo gestiona el propio desarrollador, cuando nos conectamos
estamos usando siempre la última versión que haya lanzado.
- Consumo de recursos bajo:
Dado que toda (o gran parte) de la aplicación no se encuentra en nuestro
ordenador, muchas de las tareas que realiza el software no consumen recursos
nuestros porque se realizan desde otro ordenador.
- Multiplataforma: Se
pueden usar desde cualquier sistema operativo porque sólo es necesario tener un
navegador.
- Portables: Es
independiente del ordenador donde se utilice (un PC de sobremesa, un
portátil...) porque se accede a través de una página web (sólo es necesario
disponer de acceso a Internet). La reciente tendencia al acceso a las
aplicaciones web a través de teléfonos móviles requiere sin embargo un diseño
específico de los ficheros CSS para no dificultar el acceso de estos usuarios.
- La disponibilidad suele ser alta porque el
servicio se ofrece desde múltiples localizaciones para asegurar la continuidad
del mismo.
- Los virus no dañan los datos porque éstos
están guardados en el servidor de la aplicación.
- Colaboración:
Gracias a que el acceso al servicio se realiza desde una única ubicación es
sencillo el acceso y compartición de datos por parte de varios usuarios. Tiene
mucho sentido, por ejemplo, en aplicaciones online de calendarios u oficina.
- Los navegadores ofrecen cada vez más y
mejores funcionalidades para crear aplicaciones web ricas (RIAs).
Inconvenientes:
- Habitualmente ofrecen menos funcionalidades que las aplicaciones de escritorio. Se debe a
que las funcionalidades que se pueden realizar desde un navegador son más
limitadas que las que se pueden realizar desde el sistema operativo. Pero cada
vez los navegadores están más preparados para mejorar en este aspecto. La
aparición de HTML 5 representa un hito en este sentido. Es posible añadir
funcionalidades a estas aplicaciones gracias al uso de Aplicaciones de Internet
Ricas.
- 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. Así que la disponibilidad del servicio está supeditada
al proveedor.
Lenguajes de Programación
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
JavaServerPages (JSP)
- JavaScript
- Perl
- Ruby
- Python
- HTML
- XML
- ASP/ASP.NET,
Imagen 2: Lenguajes de programación.
Se
utilizan para servir los datos adecuados a las necesidades del usuario, en
función de cómo hayan sido definidos por el dueño de la aplicación. Los datos
se almacenan en alguna base de datos estándar.