PublicidadTradicionalmente, una aplicación web se ejecuta cada vez más en el lado del servidor. También existen enfoques como variantes de distribución que proporcionan una ejecución de una aplicación web con mayor carga de cliente. El cliente web se está convirtiendo en una entidad cada vez más independiente para liberar recursos del lado del servidor. Estos enfoques son particularmente relevantes para las aplicaciones B2C –como Facebook o Gmail– ya que se espera que tales proyectos generen un gran número de usuarios. La experiencia del usuario también se puede mejorar eliminando la necesidad de activar la comunicación cliente-servidor para cada interacción con el cliente web, lo que ralentiza los tiempos de respuesta de las aplicaciones web. Por definición, una aplicación de Internet enriquecida (RIA) requiere un mayor nivel de Lógica del programa en el cliente, por ejemplo, para realizar cálculos en el cliente en lugar de en el servidor. En rigor, también son RIA los proyectos web con aplicaciones web que utilizan JavaScript (incluido AJAX), applets de Java, animaciones Flash, complementos ActiveX, etc., siempre que estos elementos intervengan en la interacción con el usuario. Una web de una sola página La aplicación combina el enfoque RIA con servicios web. Aquí, la capa de presentación completa de una aplicación web se implementa en el lado del cliente. En el cliente también se pueden ejecutar funciones adicionales del concepto del lado del servidor, así como el almacenamiento de datos como buffer para el funcionamiento fuera de línea de las aplicaciones web. Por tanto, se trata de una arquitectura de cliente pesado para aplicaciones web. En este enfoque, el servidor web sólo es responsable de distribuir Javascript, CSS y archivos de imagen, y de entregar cargas útiles a través de servicios web (por ejemplo, a través de REST API). Estos enfoques suelen dar lugar a las llamadas aplicaciones híbridas. Combina las ventajas de las aplicaciones nativas y las aplicaciones web al poder acceder a los componentes de software del dispositivo móvil y operar diferentes plataformas al mismo tiempo. Ventajas de Web AppLas aplicaciones web sólo requieren un navegador web en la computadora del usuario, que generalmente ya está disponible. A diferencia de las aplicaciones de escritorio tradicionales, no es necesario instalar ningún software adicional, excepto complementos del navegador como Flash. Como resultado, las aplicaciones web alcanzan un alto grado de independencia de plataforma, siempre que se admitan muchos navegadores. Si es necesario cambiar la lógica de una aplicación web, los cambios sólo son necesarios en una ubicación central (en el servidor web) que tiene un efecto positivo en los costes de mantenimiento. Esto también se traduce en ventajas en materia de seguridad: las vulnerabilidades de seguridad se pueden solucionar inmediatamente y, aunque la aplicación web esté completamente comprometida, normalmente ningún otro programa del sistema del usuario está en riesgo. Contras de la aplicación web Para utilizar una aplicación web, se requiere una conexión al servidor web. La velocidad de datos de la conexión también debe diseñarse para cumplir con los requisitos de la aplicación web. Por definición, esto excluye las aplicaciones web para una serie de casos de uso, como el uso móvil sin conexión. Las aplicaciones web identifican a los usuarios que han iniciado sesión por ID de sesión. Esto puede provocar problemas de seguridad. Idealmente, las aplicaciones web deberían funcionar correctamente con todos los navegadores web. En la práctica, sin embargo, esto no es algo natural, ya que los navegadores interpretan HTML de forma diferente, a pesar de los estándares existentes (W3C). Las ligeras diferencias en la visualización entre diferentes navegadores suelen ser insignificantes, pero aún más graves son las diferencias en la interpretación de JavaScript, por lo que a menudo es necesario utilizar cambios de navegador, a veces incluso para diferentes versiones de navegador. Además, el ciclo de solicitud descrito anteriormente solo permite un procesamiento asincrónico, lo que excluye o complica significativamente una serie de áreas de aplicación (por ejemplo, edición de vídeo) como aplicación web. Además, las posibilidades para implementar opciones de interacción con el usuario, así como el acceso a los recursos de hardware del cliente, son mucho más limitadas.

Source link