Este artículo tiene varios problemas. Ayúdenos a mejorarlo o a discutir estos problemas en la página de discusión . ( Aprenda cómo y cuándo eliminar estos mensajes )
|
Una aplicación web (o web app ) es un software de aplicación al que se accede mediante un navegador web . Las aplicaciones web se entregan en la World Wide Web a los usuarios con una conexión de red activa. [1]
La página única y la progresiva son dos enfoques para que un sitio web se parezca más a una aplicación nativa .
En los modelos informáticos anteriores, como el cliente-servidor, la carga de procesamiento de la aplicación se compartía entre el código del servidor y el código instalado en cada cliente localmente. En otras palabras, una aplicación tenía su propio programa cliente precompilado que servía como interfaz de usuario y tenía que instalarse por separado en la computadora personal de cada usuario . Una actualización del código del lado del servidor de la aplicación normalmente también requeriría una actualización del código del lado del cliente instalado en cada estación de trabajo del usuario, lo que aumentaba el costo de soporte y reducía la productividad . Además, tanto los componentes del cliente como del servidor de la aplicación solían estar estrechamente vinculados a una arquitectura informática y un sistema operativo en particular , y su portabilidad a otros solía ser prohibitivamente costosa para todas las aplicaciones, excepto las más grandes (hoy en día, [ ¿cuándo? ] las aplicaciones nativas para dispositivos móviles también se ven obstaculizadas por algunos o todos los problemas anteriores). [ dudoso – discutir ]
En 1995, Netscape introdujo un lenguaje de programación del lado del cliente llamado JavaScript , que permitía a los programadores añadir algunos elementos dinámicos a la interfaz de usuario que se ejecutaba en el lado del cliente. De este modo, en lugar de enviar datos al servidor para generar una página web completa, los scripts integrados de la página descargada pueden realizar diversas tareas, como la validación de entradas o la visualización u ocultación de partes de la página. [2]
En 1999, el concepto de "aplicación web" fue introducido en el lenguaje Java en la versión 2.2 de la Especificación de Servlet. [2.1?]. [3] [ fuente no primaria necesaria ] En ese momento, tanto JavaScript como XML ya habían sido desarrollados, pero Ajax todavía no había sido acuñado y el objeto XMLHttpRequest recién había sido introducido en Internet Explorer 5 como un objeto ActiveX . [ cita requerida ]
Las aplicaciones como Gmail comenzaron a hacer que sus clientes fueran cada vez más interactivos desde principios de los años 2000. Un script de una página web puede ponerse en contacto con el servidor para almacenar o recuperar datos sin tener que descargar una página web completa. Esta práctica se conoció como Ajax en 2005. [4]
" Aplicaciones web progresivas ", término acuñado por la diseñadora Frances Berriman y el ingeniero de Google Chrome Alex Russell en 2015, [5] se refiere a aplicaciones que aprovechan las nuevas características compatibles con los navegadores modernos, que inicialmente se ejecutan dentro de una pestaña del navegador web, pero luego pueden ejecutarse completamente sin conexión y pueden iniciarse sin ingresar la URL de la aplicación en el navegador.
Las aplicaciones de PC tradicionales suelen ser de un solo nivel y residen únicamente en la máquina cliente. Por el contrario, las aplicaciones web facilitan inherentemente una arquitectura de varios niveles. [6] Aunque son posibles muchas variaciones, la estructura más común es la aplicación de tres niveles . [6] En su forma más común, los tres niveles se denominan presentación , aplicación y almacenamiento . Un navegador web es el primer nivel (presentación), un motor que utiliza alguna tecnología de contenido web dinámico (como ASP , CGI , ColdFusion , Dart , JSP/Java , Node.js , PHP , Python o Ruby on Rails ) es el nivel intermedio (lógica de la aplicación) y una base de datos es el tercer nivel (almacenamiento). [6] El navegador web envía solicitudes al nivel intermedio, que las atiende realizando consultas y actualizaciones en la base de datos y genera una interfaz de usuario.
Para aplicaciones más complejas, una solución de 3 niveles puede resultar insuficiente y puede resultar beneficioso utilizar un enfoque de n niveles, donde el mayor beneficio es dividir la lógica empresarial, que reside en el nivel de aplicación, en un modelo más detallado. [6] Otro beneficio puede ser agregar un nivel de integración que separe el nivel de datos del resto de niveles al proporcionar una interfaz fácil de usar para acceder a los datos. [6] Por ejemplo, se accedería a los datos del cliente llamando a una función "list_clients()" en lugar de realizar una consulta SQL directamente contra la tabla del cliente en la base de datos. Esto permite reemplazar la base de datos subyacente sin realizar ningún cambio en los otros niveles. [6]
Hay quienes consideran que una aplicación web es una arquitectura de dos niveles. Puede ser un cliente "inteligente" que realiza todo el trabajo y consulta a un servidor "tonto", o un cliente "tonto" que depende de un servidor "inteligente". [6] El cliente se encargaría del nivel de presentación, el servidor tendría la base de datos (nivel de almacenamiento) y la lógica empresarial (nivel de aplicación) estaría en uno de ellos o en ambos. [6] Si bien esto aumenta la escalabilidad de las aplicaciones y separa la pantalla y la base de datos, aún no permite una verdadera especialización de las capas, por lo que la mayoría de las aplicaciones superarán este modelo. [6]
This section needs additional citations for verification. (February 2018) |
Las brechas de seguridad en este tipo de aplicaciones son una preocupación importante porque pueden afectar tanto a la información de la empresa como a los datos privados de los clientes. La protección de estos activos es una parte importante de cualquier aplicación web y hay algunas áreas operativas clave que deben incluirse en el proceso de desarrollo. [7] Esto incluye procesos de autenticación, autorización, manejo de activos, entrada, registro y auditoría. Incorporar seguridad a las aplicaciones desde el principio puede ser más eficaz y menos disruptivo a largo plazo.
La escritura de aplicaciones web se simplifica con el uso de marcos de aplicaciones web . Estos marcos facilitan el desarrollo rápido de aplicaciones al permitir que un equipo de desarrollo se concentre en las partes de su aplicación que son exclusivas de sus objetivos sin tener que resolver problemas de desarrollo comunes como la administración de usuarios. [8] Muchos de los marcos en uso son software de código abierto .
Además, existe potencial para el desarrollo de aplicaciones en sistemas operativos de Internet , aunque actualmente no hay muchas plataformas viables que se ajusten a este modelo. [ cita requerida ]
Una aplicación web es un programa informático que utiliza navegadores web y tecnología web para realizar tareas a través de Internet.