Articulo de referencia

Aplicación web

Captura de pantalla de 2007 de Horde , una aplicación web de código abierto y de colaboración . Una aplicación web (o app web ) es un software de aplicación creado con tecnologí...

Captura de pantalla de 2007 de Horde , una aplicación web de código abierto y de colaboración .

Una aplicación web (o app web ) es un software de aplicación creado con tecnologías web que se ejecuta a través de un navegador web . [ 1 ] [ 2 ] Las aplicaciones web surgieron a finales de la década de 1990 y permitieron al servidor construir dinámicamente una respuesta a una solicitud, a diferencia de las páginas web estáticas . [ 3 ]

Las aplicaciones web se distribuyen habitualmente a través de un servidor web . Existen varios sistemas de capas que utilizan para comunicarse entre los navegadores web, la interfaz del cliente y los datos del servidor. Cada sistema tiene sus propias funciones, ya que operan de maneras diferentes. Sin embargo, existen numerosos riesgos de seguridad que los desarrolladores deben tener en cuenta durante el desarrollo; es fundamental tomar las medidas adecuadas para proteger los datos de los usuarios.

Las aplicaciones web suelen construirse utilizando un framework para aplicaciones web . Las aplicaciones de una sola página (SPA) y las aplicaciones web progresivas (PWA) son dos enfoques arquitectónicos para crear aplicaciones web que ofrecen una experiencia de usuario similar a la de las aplicaciones nativas , incluyendo características como una navegación fluida, compatibilidad sin conexión e interacciones más rápidas.

Las aplicaciones web suelen estar completamente alojadas en servicios remotos en la nube , pueden requerir una conexión constante a ellos y pueden reemplazar las aplicaciones de escritorio convencionales para sistemas operativos como Microsoft Windows , facilitando así el funcionamiento del software como servicio, ya que otorga al desarrollador el poder de controlar estrictamente la facturación en función del uso de los servicios remotos, así como la dependencia del proveedor al alojar los datos de forma remota. Los navegadores modernos como Chrome ofrecen aislamiento (sandboxing) para cada pestaña del navegador, lo que mejora la seguridad y restringe el acceso a los recursos locales. No se requiere instalación de software, ya que la aplicación se ejecuta dentro del navegador, lo que reduce la necesidad de gestionar instalaciones de software. Con el uso de servicios remotos en la nube, los clientes no necesitan administrar servidores, ya que esto se puede dejar en manos del desarrollador y el servicio en la nube, y pueden usar el software con un PC de baja potencia y recursos limitados, como un cliente ligero . El código fuente de la aplicación puede permanecer igual en todos los sistemas operativos y dispositivos de los usuarios gracias al diseño web responsivo , ya que solo necesita ser compatible con navegadores web que cumplan con los estándares web, lo que hace que el código sea altamente portable y ahorra tiempo de desarrollo. Numerosos frameworks de JavaScript y CSS facilitan el desarrollo.

Historia

El concepto de "aplicación web" se introdujo por primera vez en el lenguaje Java en la especificación Servlet versión 2.2, publicada en 1999. En aquel entonces, tanto JavaScript como XML ya se habían desarrollado, pero el objeto XMLHttpRequest se había introducido recientemente en Internet Explorer 5 como un objeto ActiveX . A principios de la década de 2000, aplicaciones como Myspace (2003), Gmail (2004), Digg (2004) y Google Maps (2005) comenzaron a hacer que sus interfaces de cliente fueran cada vez más interactivas. Un script de página web puede contactar con el servidor para almacenar y recuperar datos sin descargar la página web completa. Esta práctica se conoció como Ajax en 2005. Finalmente, fue reemplazada por las API web que utilizan JSON , a las que se accede de forma asíncrona mediante JavaScript en el lado del cliente.

En los primeros modelos informáticos, 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 localmente en cada cliente. En otras palabras, una aplicación tenía su propio programa cliente precompilado que servía como interfaz de usuario y debía instalarse por separado en el ordenador personal de cada usuario . Una actualización del código del servidor de la aplicación generalmente también requería una actualización del código del cliente instalado en cada estación de trabajo del usuario, lo que aumentaba los costes de soporte y disminuía la productividad . Además, tanto los componentes del cliente como del servidor de la aplicación estaban estrechamente ligados a una arquitectura informática y un sistema operativo específicos , lo que hacía que su portabilidad a otros sistemas fuera prohibitivamente cara, salvo para las aplicaciones más grandes.

Posteriormente, en 1995, Netscape introdujo JavaScript , un lenguaje de programación del lado del cliente que permitía a los programadores añadir elementos dinámicos a la interfaz de usuario que se ejecutaban en el cliente. Básicamente, en lugar de enviar datos al servidor para generar una página web completa, los scripts integrados en la página descargada podían realizar diversas tareas, como validar la entrada de datos o mostrar/ocultar partes de la página.

Las " aplicaciones web progresivas ", término acuñado por la diseñadora Frances Berriman y el ingeniero de Google Chrome Alex Russell en 2015, se refieren a aplicaciones que aprovechan las nuevas funciones compatibles con los navegadores modernos, las cuales inicialmente se ejecutan dentro de una pestaña del navegador web, pero posteriormente pueden ejecutarse completamente sin conexión y pueden iniciarse sin necesidad de ingresar la URL de la aplicación en el navegador.

Estructura

Las aplicaciones tradicionales para PC suelen ser de una sola capa, residiendo únicamente en la máquina del cliente. En cambio, las aplicaciones web facilitan inherentemente una arquitectura de múltiples capas. Si bien son posibles muchas variaciones, la estructura más común es la de tres capas . En su forma más común, las tres capas se denominan presentación , aplicación y almacenamiento . La primera capa, presentación, se refiere al propio navegador web. La segunda capa se refiere a cualquier motor que utilice tecnología de contenido web dinámico (como ASP , CGI , ColdFusion , Dart , JSP/Java , Node.js , PHP , Python o Ruby on Rails ). La tercera capa se refiere a una base de datos que almacena datos y determina la estructura de la interfaz de usuario. Básicamente, al utilizar el sistema de tres capas, el navegador web envía solicitudes al motor, que luego las procesa realizando consultas y actualizaciones en la base de datos y genera una interfaz de usuario.

La solución de tres niveles puede resultar insuficiente al tratar con aplicaciones más complejas y podría ser necesario reemplazarla por un enfoque de n niveles; cuyo mayor beneficio radica en cómo la lógica de negocio (que reside en el nivel de aplicación) se desglosa en un modelo más detallado. [ 4 ] Otro beneficio sería agregar un nivel de integración, que separa el nivel de datos y proporciona una interfaz fácil de usar para acceder a los datos. [ 4 ] 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 en la tabla de clientes de la base de datos. Esto permite reemplazar la base de datos subyacente sin realizar ningún cambio en los otros niveles. [ 4 ]

Algunos consideran que una aplicación web tiene una arquitectura de dos niveles. Esto puede implicar un cliente "inteligente" que realiza todo el trabajo y consulta un servidor "tonto", o un cliente "tonto" que depende de un servidor "inteligente". [ 4 ] 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 de negocio (nivel de aplicación) estaría en uno de ellos o en ambos. [ 4 ] Si bien esto aumenta la escalabilidad de las aplicaciones y separa la visualización de 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. [ 4 ]

Seguridad

Las brechas de seguridad en este tipo de aplicaciones son motivo de gran preocupación, ya que pueden afectar tanto a información empresarial como a datos privados de los clientes. Proteger estos activos es fundamental para cualquier aplicación web, y existen áreas operativas clave que deben incluirse en el proceso de desarrollo. [ 5 ] Esto incluye procesos de autenticación, autorización, gestión de activos, entrada de datos, registro y auditoría. Integrar la seguridad en las aplicaciones desde el principio suele ser más eficaz y menos perjudicial a largo plazo.

Desarrollo

El desarrollo de aplicaciones web se simplifica con el uso de frameworks . Estos frameworks facilitan el desarrollo rápido de aplicaciones , permitiendo que un equipo de desarrollo se centre en las partes de la aplicación que son únicas para sus objetivos, sin tener que resolver problemas comunes de desarrollo como la gestión de usuarios. [ 6 ]

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.

Véase también

Referencias

  1. "Aplicación web | Definición, historia, desarrollo, ejemplos, usos y datos | Britannica" . www.britannica.com . Encyclopædia Britannica . Consultado el 4 de noviembre de 2024 .
  2. "¿Qué es una aplicación web? - Explicación de las aplicaciones web - AWS" . Amazon Web Services, Inc. Consultado el 4 de noviembre de 2024 .
  3. "Aplicaciones web" . DocForge . Archivado del original el 19 de abril de 2015. Consultado el 9 de noviembre de 2024 .
  4. 1 2 3 4 5 6 Petersen, Jeremy (4 de septiembre de 2008). "Beneficios de usar el enfoque de n niveles para aplicaciones web" . Archivado del original el 1 de diciembre de 2017. Recuperado el 24 de noviembre de 2017 .
  5. "Consejos principales para el desarrollo seguro de aplicaciones" . Dell.com. Archivado del original el 22 de mayo de 2012. Consultado el 22 de junio de 2012 .
  6. Múltiple (wiki). "Marco de aplicación web" . Docforge . Archivado del original el 20 de junio de 2020. Recuperado el 6 de marzo de 2010 .
  • Recomendación preliminar de HTML5 : cambios en HTML y las API relacionadas para facilitar la creación de aplicaciones web.
  • Grupo de Trabajo sobre Aplicaciones Web del Consorcio World Wide Web (W3C)
  • PWA en Web.dev por Google Developers .