De Wikipedia, la enciclopedia libre
  (Redirigido desde aplicaciones web )
Saltar a navegación Saltar a búsqueda

Una aplicación web (o aplicación web ) es un software de aplicación que se ejecuta en un servidor web , a diferencia de los programas de software basados ​​en computadora que se ejecutan localmente en el sistema operativo (SO) del dispositivo. El usuario accede a las aplicaciones web a través de un navegador web con una conexión de red activa. Estas aplicaciones se programan utilizando una estructura modelada cliente-servidor : el usuario (" cliente ") recibe servicios a través de un servidor externo alojado por un tercero. Ejemplos de aplicaciones web de uso común incluyen: correo web , ventas minoristas en línea, banca en línea y subastas en línea .

Definición y términos similares [ editar ]

La distinción general entre una página web dinámica de cualquier tipo y una "aplicación web" no está clara. Los sitios web a los que se hace referencia con mayor frecuencia como "aplicaciones web" son aquellos que tienen una funcionalidad similar a una aplicación de software de escritorio o una aplicación móvil . HTML5 introdujo soporte de lenguaje explícito para crear aplicaciones que se cargan como páginas web, pero que pueden almacenar datos localmente y continuar funcionando sin conexión.

Las aplicaciones de una sola página son más similares a las aplicaciones porque rechazan el paradigma web más típico de moverse entre distintas páginas con diferentes URL . Los marcos de una sola página se pueden utilizar para acelerar el desarrollo de una aplicación web de este tipo para una plataforma móvil.

Aplicación web móvil [ editar ]

Hay varias formas de dirigirse a los dispositivos móviles al crear aplicaciones web:

  • El diseño web receptivo se puede utilizar para hacer una aplicación web, ya sea un sitio web convencional o una aplicación de una sola página, visible en pantallas pequeñas que funcionan bien con pantallas táctiles.
  • Las aplicaciones web progresivas (PWA) son aplicaciones web que se cargan como páginas web o sitios web normales, pero pueden ofrecer al usuario funciones como trabajar sin conexión y acceso al hardware del dispositivo que tradicionalmente solo está disponible para aplicaciones móviles nativas.
  • Las aplicaciones nativas o "aplicaciones móviles" se ejecutan directamente en un dispositivo móvil, al igual que una aplicación de software convencional se ejecuta directamente en una computadora de escritorio, sin un navegador web (y potencialmente sin la necesidad de conectividad a Internet); estos suelen estar escritos en Java (para dispositivos Android ) o Objective-C o Swift (para dispositivos iOS ). Recientemente, los frameworks permiten el desarrollo de aplicaciones nativas para todas las plataformas usando lenguajes distintos a cada lengua nativa estándar.
  • Las aplicaciones híbridas integran un sitio web dentro de una aplicación nativa, posiblemente utilizando un marco híbrido. Esto permite el desarrollo utilizando tecnologías web (y posiblemente copiando directamente el código de un sitio web móvil existente) al tiempo que conserva ciertas ventajas de las aplicaciones nativas (por ejemplo, acceso directo al hardware del dispositivo, operación fuera de línea, visibilidad de la tienda de aplicaciones). Los marcos de aplicaciones híbridas incluyen Apache Cordova , Electron , Flutter , Haxe , React Native y Xamarin .

Historia [ editar ]

En modelos informáticos anteriores, como 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 aumenta el costo de soporte y disminuye la productividad . Además, tanto los componentes de cliente como de servidor de la aplicación generalmente estaban estrechamente ligados a una arquitectura de computadora en particular yEl sistema operativo y la portabilidad a otros era a menudo prohibitivamente costoso para todas las aplicaciones, excepto para las más grandes (hoy en día, las aplicaciones nativas para dispositivos móviles también se ven obstaculizadas por algunos o todos los problemas anteriores).

Por el contrario, las aplicaciones web utilizan documentos web escritos en un formato estándar como HTML y JavaScript , que son compatibles con una variedad de navegadores web. Las aplicaciones web se pueden considerar como una variante específica de software cliente-servidor en la que el software cliente se descarga en la máquina cliente cuando se visita la página web correspondiente, utilizando procedimientos estándar como HTTP . Las actualizaciones del software web del cliente pueden ocurrir cada vez que se visita la página web. Durante la sesión, el navegador web interpreta y muestra las páginas y actúa como el cliente universal para cualquier aplicación web.

En los primeros días de la Web , cada página web individual se entregaba al cliente como un documento estático, pero la secuencia de páginas aún podía proporcionar una experiencia interactiva, ya que la entrada del usuario se devolvía a través de elementos de formulario web incrustados en el marcado de la página. Sin embargo, cada cambio significativo en la página web requería un viaje de ida y vuelta al servidor para actualizar toda la página.

En 1995, Netscape introdujo un lenguaje de programación del lado del cliente llamado JavaScript que permite a los programadores agregar algunos elementos dinámicos a la interfaz de usuario que se ejecuta en el lado del cliente. Entonces, en lugar de enviar datos al servidor para generar una página web completa, los scripts incrustados de la página descargada pueden realizar varias tareas, como la validación de entrada o mostrar / ocultar partes de la página.

En 1996, Macromedia introdujo Flash , un reproductor de animación vectorial que se podía agregar a los navegadores como un complemento para incrustar animaciones en las páginas web. Permitió el uso de un lenguaje de secuencias de comandos para programar interacciones en el lado del cliente sin necesidad de comunicarse con el servidor.

En 1999, el concepto de "aplicación web" se introdujo en el lenguaje Java en la versión 2.2 de la Especificación de Servlet. [2.1?]. [1] [2] En ese momento, tanto JavaScript como XML ya se habían desarrollado, pero Ajax aún no se había acuñado y el objeto XMLHttpRequest se había introducido recientemente en Internet Explorer 5 como un objeto ActiveX.

En 2005, se acuñó el término Ajax, y aplicaciones como Gmail comenzaron a hacer que los lados de sus clientes fueran cada vez más interactivos. Un script de página web puede ponerse en contacto con el servidor para almacenar / recuperar datos sin descargar una página web completa.

En 2007, Steve Jobs anunció que las aplicaciones web, desarrolladas en HTML5 utilizando la arquitectura AJAX , serían el formato estándar para las aplicaciones de iPhone. No se requería ningún kit de desarrollo de software (SDK) y las aplicaciones se integrarían completamente en el dispositivo a través del motor del navegador Safari . Este modelo se cambió más tarde para la App Store, como un medio para prevenir los jailbreakers y apaciguar a los desarrolladores frustrados.

En 2014, se finalizó HTML5 , que proporciona capacidades gráficas y multimedia sin la necesidad de complementos del lado del cliente. HTML5 también enriqueció el contenido semántico de los documentos. Las API y el modelo de objetos de documento (DOM) ya no son una idea tardía, sino que son partes fundamentales de la especificación HTML5. La API de WebGL allanó el camino para gráficos 3D avanzados basados ​​en el lienzo HTML5 y el lenguaje JavaScript. Estos tienen una importancia significativa en la creación de aplicaciones web enriquecidas verdaderamente independientes de la plataforma y el navegador .

En 2016, durante la conferencia anual de Google IO , Eric Bidelman (Ingeniero de programas de desarrolladores de personal sénior) presentó Progressive Web Apps (PWA) como un nuevo estándar en el desarrollo web. Jeff Burtoft, director de programas principal de Microsoft , dijo que "Google abrió el camino con las aplicaciones web progresivas y, después de un largo proceso, decidimos que necesitábamos brindarle soporte completo". Como tal, tanto Microsoft como Google admitían el estándar PWA.

Interfaz [ editar ]

A través de Java , JavaScript , CSS , Flash , Silverlight y otras tecnologías, son posibles métodos específicos de la aplicación, como dibujar en la pantalla, reproducir audio y acceder al teclado y al mouse. Muchos servicios han trabajado para combinar todos estos en una interfaz más familiar que adopta la apariencia de un sistema operativo. Técnicas de uso general como arrastrar y soltartambién son compatibles con estas tecnologías. Los desarrolladores web a menudo usan secuencias de comandos del lado del cliente para agregar funcionalidad, especialmente para crear una experiencia interactiva que no requiera recargar la página. Recientemente, se han desarrollado tecnologías para coordinar las secuencias de comandos del lado del cliente con tecnologías del lado del servidor como ASP.NET , J2EE , Perl / Plack y PHP .

Ajax , una técnica de desarrollo web que utiliza una combinación de varias tecnologías, es un ejemplo de tecnología que crea una experiencia más interactiva.

Estructura [ editar ]

Las aplicaciones generalmente se dividen en fragmentos lógicos llamados "niveles", donde a cada nivel se le asigna un rol. [3] Las aplicaciones tradicionales constan solo de 1 nivel, que reside en la máquina cliente, pero las aplicaciones web se prestan a un enfoque de n niveles por naturaleza. [3] Aunque son posibles muchas variaciones, la estructura más común es la aplicación de tres niveles . [3] En su forma más común, los tres niveles se denominan presentación , aplicación y almacenamiento , en este orden. 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 medio (lógica de la aplicación) y una base de datos es el tercer nivel (almacenamiento). [3] El navegador web envía solicitudes al nivel medio, 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 quedarse corta, y puede ser beneficioso utilizar un enfoque de n niveles, donde el mayor beneficio es romper la lógica empresarial, que reside en el nivel de la aplicación, en un enfoque más detallado. modelo. [3] 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. [3] 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. [3]

Hay quienes ven una aplicación web como una arquitectura de dos niveles. Este 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". [3] El cliente manejaría el 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. [3] Si bien esto aumenta la escalabilidad de las aplicaciones y separa la pantalla y la base de datos, todavía no permite una verdadera especialización de capas, por lo que la mayoría de las aplicaciones superarán este modelo. [3]

Uso comercial [ editar ]

Una estrategia emergente para las empresas de software de aplicaciones es proporcionar acceso web al software previamente distribuido como aplicaciones locales. Dependiendo del tipo de aplicación, puede requerir el desarrollo de una interfaz basada en navegador completamente diferente, o simplemente adaptar una aplicación existente para usar una tecnología de presentación diferente. Estos programas permiten al usuario pagar una tarifa mensual o anual por el uso de una aplicación de software sin tener que instalarla en un disco duro local. Una empresa que sigue esta estrategia se conoce como proveedor de servicios de aplicaciones (ASP), y los ASP están recibiendo actualmente mucha atención en la industria del software.

Las brechas de seguridad en este tipo de aplicaciones son una preocupación importante porque pueden involucrar tanto información empresarial como datos privados de 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. [4] Esto incluye procesos de autenticación, autorización, manejo de activos, entrada y registro y auditoría. La integración de la seguridad en las aplicaciones desde el principio puede ser más eficaz y menos disruptiva a largo plazo.

Las aplicaciones web del modelo de computación en la nube son software como servicio (SaaS). Hay aplicaciones comerciales proporcionadas como SaaS para empresas por una tarifa fija o dependiente del uso. Otras aplicaciones web se ofrecen de forma gratuita y, a menudo, generan ingresos a partir de los anuncios que se muestran en la interfaz de la aplicación web.

Desarrollo [ editar ]

La escritura de aplicaciones web a menudo se simplifica mediante el uso del marco de aplicación 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 únicas para sus objetivos sin tener que resolver problemas de desarrollo comunes como la administración de usuarios. [5] Muchos de los marcos en uso son software de código abierto .

El uso de marcos de aplicaciones web a menudo puede reducir la cantidad de errores en un programa, tanto al simplificar el código como al permitir que un equipo se concentre en el marco mientras que otro se enfoca en un caso de uso específico. En las aplicaciones que están expuestas a constantes intentos de piratería en Internet, los problemas relacionados con la seguridad pueden deberse a errores en el programa. Los marcos también pueden promover el uso de mejores prácticas [6] como GET after POST .

Además, existe potencial para el desarrollo de aplicaciones en sistemas operativos de Internet , aunque actualmente no existen muchas plataformas viables que se ajusten a este modelo.

Aplicaciones [ editar ]

Ejemplos de aplicaciones de navegador son software de oficina simple ( procesadores de texto , hojas de cálculo en línea y herramientas de presentación ), pero también pueden incluir aplicaciones más avanzadas como administración de proyectos, diseño asistido por computadora , edición de video y punto de venta .

Ver también [ editar ]

  • Software como servicio (SaaS)
  • web 2.0
  • Ingeniería web
  • servicios web
  • Ciencias Web
  • Widget web
  • Aplicación de una sola página
  • Ajax (programación)
  • Herramientas de desarrollo web
  • Juego de navegador
  • Economía API
  • Aplicación movil
  • Aplicación web progresiva

Referencias [ editar ]

  1. Alex Chaffee (17 de agosto de 2000). "¿Qué es una aplicación web (o" aplicación web ")?" . Consultado el 27 de julio de 2008 .
  2. ^ Davidson, James Duncan; Cobarde, Danny (17 de diciembre de 1999). Especificación de Java Servlet ("Especificación") Versión: 2.2 Versión final . Sun Microsystems . págs. 43–46 . Consultado el 27 de julio de 2008 .
  3. ^ a b c d e f g h i j Petersen, Jeremy. "Beneficios de utilizar el enfoque de n niveles para aplicaciones web" .
  4. ^ "Consejos principales para el desarrollo seguro de aplicaciones" . Dell.com. Archivado desde el original el 22 de mayo de 2012 . Consultado el 22 de junio de 2012 .
  5. ^ Múltiple (wiki). "Marco de aplicación web" . Docforge . Consultado el 6 de marzo de 2010 .
  6. ^ Múltiple (wiki). "Marco" . Docforge . Consultado el 6 de marzo de 2010 .

Enlaces externos [ editar ]

  • Plataforma arquitectónica en línea
  • Recomendación de borrador de HTML5 , cambios en HTML y API relacionadas para facilitar la creación de aplicaciones basadas en web.
  • El otro camino por delante : un artículo que sostiene que el futuro está en el servidor, no en interfaces enriquecidas en el cliente.
  • Aplicaciones web en Curlie
  • Grupo de trabajo de aplicaciones web en el Consorcio World Wide Web (W3C)
  • PWA en Web.dev de Google Developers.