Aplicación web
De Wikipedia, la enciclopedia libre
Una aplicación web es una aplicación informática que los usuarios utilizan accediendo a un servidor web a través de Internet o de una intranet. Las aplicaciones web son populares debido a la practicidad del navegador web como cliente ligero. La habilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software en miles de potenciales clientes es otra razón de su popularidad. Aplicaciones como los webmails, wikis, weblogs, MMORPGs, tiendas en línea y la Wikipedia misma son ejemplos bien conocidos de aplicaciones web.
Tabla de contenidos |
[editar] Historia
En los primeros tiempos de la computación cliente-servidor, cada aplicación tenía su propio programa cliente y su interfaz de usuario, estos tenían que ser instalados separadamente en cada estación de trabajo de los usuarios. Una mejora al servidor, como parte de la aplicación, requería típicamente una mejora de los clientes instalados en cada una de las estaciones de trabajo, añadiendo un costo de soporte técnico y disminuyendo la eficiencia del personal.
En contraste, las aplicaciones web generan dinámicamente una serie de páginas en un formato estándar, soportado por navegadores web comunes como HTML o XHTML. Se utilizan lenguajes interpretados del lado del cliente, tales como JavaScript, para añadir elementos dinámicos a la interfaz de usuario. Generalmente cada página web individual es enviada al cliente como un documento estático, pero la secuencia de páginas provee de una experiencia interactiva.
[editar] Interfaz
Las interfaces web tienen ciertas limitantes en la funcionalidad del cliente. Métodos comunes en las aplicaciones de escritorio como dibujar en la pantalla o arrastrar-y-soltar no están soportadas por las tecnologías web estándar. Los desarrolladores web comúnmente utilizan lenguajes interpretados del lado del cliente para añadir más funcionalidad, especialmente para crear una experiencia interactiva que no requiera recargar la página cada vez (cosa que suele molestar a los usuarios). Recientemente se han desarrollado tecnologías para coordinar estos lenguajes con tecnologías del lado del servidor, como por ejemplo PHP. AJAX, es una técnica de desarrollo web que usa una combinación de varias tecnologías.
[editar] Consideraciones técnicas
Una ventaja significativa en la construcción de aplicaciones web que soporten las características de los browsers estándar es que deberían funcionar igual independientemente de la versión del sistema operativo instalado en el cliente. En vez de crear clientes para Windows, Mac OS X, GNU/Linux, y otros sistemas operativos, la aplicación es escrita una vez y es mostrada casi en todos lados. Sin embargo, aplicaciones inconsistentes de HTML, CSS, DOM y otras especificaciones de browsers pueden causar problemas en el desarrollo y soporte de aplicaciones web. Adicionalmente, la habilidad de los usuarios a personalizar muchas de las características de la interfaz (como tamaño y color de fuentes, tipos de fuentes, inhabilitar Javascript) puede interferir con la consistencia de la aplicación web.
Otra (poco común) aproximación es utilizar Macromedia Flash o Java applets para producir parte o toda la interfaz de usuario. Como casi todos los browsers incluyen soporte para estas tecnologías (usualmente por medio de plug-ins), aplicaciones basadas en Flash o Java pueden ser implementadas con aproximadamente la misma facilidad. Como hacen caso omiso de las configuraciones de los browsers estas tecnologías permiten más control sobre la interfaz, aunque incompatibilidad entre implementaciones de Flash o Java puedan traer nuevas complicaciones. Por las similitudes con una arquitectura cliente-servidor, con un cliente un poco “especializado”, hay disputas sobre si llamar a estos sistemas “aplicaciones web”; un término alternativo es “aplicación enriquecida de Internet”.
[editar] Estructura
Aunque muchas variaciones son posibles, una aplicación web está comúnmente estructurada como una aplicación de tres-capas. En su forma más común, el navegador web es la primera capa, un motor usando alguna tecnología web dinámica (ejemplo: CGI, PHP, Java Servlets o ASP) es la capa de en medio, y una base de datos como última capa. El navegador web manda peticiones a la capa media, que la entrega valiéndose de consultas y actualizaciones a la base de datos generando una interfaz de usuario.
[editar] Uso en negocios
Una estrategia que está emergiendo para las empresas proveedoras de software, es proveer acceso vía web al software. Para aplicaciones previamente distribuidas como de escritorio, esto puede requerir el desarrollo de una aplicación totalmente nueva o simplemente adaptar la aplicación para usar una interfaz web. Estos programas permiten al usuario pagar una cuota mensual o anual para usar la aplicación, sin necesidad de instalarla en la computadora del usuario. Las compañías que siguen esta estrategia son llamadas Proveedores de Aplicaciones de Servicio (ASP por sus siglas en inglés), este modelo de negocios está atrayendo la atención de la industria del software.
[editar] Lenguajes de programación
Existen numerosos lenguajes de programación utilizados para el desarrollo de Aplicaciones Web, entre los que destacan:
Aunque ciertamente ASP no es un lenguaje de programación, sino una arquitectura de desarrollo web en la que se pueden usar por debajo distintos lenguajes (por ejemplo VB.NET o C# para ASP.NET, o VBScript/JScript para ASP).
[editar] Ejemplos de aplicaciones web
- 24SevenOffice. solución ERP/CRM.
- Basecamp por 37Signals.
- Backpack por 37Signals.
- Blinksale.
- Bouchard Translator. Traductor en línea de fuente abierta.
- eRequirements. Administrador de requerimientos para desarrollo de aplicaciones web.
- eZ publish Administrador de contenido de fuente abierta.
- Flickr por Ludicorp. Administrador de fotografías.
- Gmail por Google. Correo electrónico.
- MyWebDesktop.net.
- NetSuite ERP/CRM
- PhantomEZForm Creador de formularios web.
- Salesforce.com CRM
- Stellent UCM. Administrador de contenidos.
- SugarCRM CRM
- Younicycle.com.
- blt-Search.
- AceProject. Administración de proyectos.
- Zheta. Framework por objetos hecho con PHP.
[editar] Véase también
- HTML dinámico.
- LAMP: Linux, Apache, MySQL y Perl/Python/PHP.
- Servicios Webs.
- World Wide Web Consortium (estándares web).