Aplicaciones basadas en Web

banner-aplicaciones

1. Diseño de Aplicaciones

Interfaz del usuario

La interfaz del usuario es el corazón de cualquier aplicación. Es la conexión entre la aplicación y el usuario final. El usuario final se comunica con la aplicación a través de comandos y menús. Los dos tipos de interfaces de usuario más comunes son las conducidas por comandos (como en las aplicaciones de DOS), y las conducidas por menús (como en las aplicaciones de WINDOWS). Un buen programa, con una interfaz de usuario diseñada pobremente, nunca alcanzará su potencial.

Muchas aplicaciones utilizan Interfaces de Usuario Gráficas (o Graphical User Interfaces GUI), que toman ventaja de ventanas predefinidas e iconos, para proporcionar una apariencia común y reducir el tiempo de desarrollo. Las soluciones basadas en WEB van un paso más adelante y utilizan un explorador GUI (generalmente FIREFOX o Internet EXPLORER), que se ha convertido en el estándar de la mayoría de las PC's.

Arquitectura de dos capas

La arquitectura tradicional de cliente/servidor también es conocida como arquitectura de dos capas. Requiere una interfaz de usuario que se instala y corre en una PC o estación de trabajo; y envía solicitudes a un servidor para ejecutar operaciones complejas. Por ejemplo, una estación de trabajo utilizada como cliente, puede correr un aplicación de interfaz de usuario que interroga a un servidor central de bases de datos.

Arquitectura de tres capas

La arquitectura de tres capas se refiere a un diseño reciente que introduce una capa intermedia al proceso. Cada capa es un proceso separado y bien definido corriendo en plataformas separadas.

En la arquitectura tradicional de tres capas, se instala una interfaz de usuario en la computadora del usuario final (el cliente). La arquitectura basada en WEB transforma la interfaz de búsqueda existente (el explorador de WEB), en la interfaz del usuario final.
La parte funcional de la arquitectura de tres capas generalmente es conocida como la capa intermedia o el servidor de aplicaciones. Este es donde la mayoría de los procesos ocurren.

La tercera capa comúnmente es el sistema de administración de la base de datos. Es decir donde los datos requeridos por la capa intermedia son almacenados. La tercera capa se localiza en un servidor separado conocido como el servidor de base de datos.

2. Servidor de Aplicaciones

El servidor de aplicaciones fue introducido como parte del diseño de tres capas. Es relativamente nuevo y aún no bien definido. Las empresasdel mundo entero están esforzándose para producir su propia versión de lo que creen que es un servidor de aplicaciones. Martin Marshall, de Zona Research, sugiere que hay confusión en el término servidor de aplicaciones. La definición más común de un servidor de aplicaciones es la de software corriendo en una capa intermedia entre un cliente pequeño basado en un explorador y una base de datos. Generalmente se acepta que un servidor de aplicaciones maneja todas las transacciones lógicas y de conectividad que históricamente compartían el cliente y el servidor en un diseño cliente/servidor. La aplicación lógica ha sido movida de clientes grandes y pasados de moda a nuevos servidores de aplicaciones como capa intermedia.

    Cliente/Servidor

    Cliente/Servidor se refiere a una relación cooperativa entre dos o más entidades. En la mayoría de los casos, el cliente requiere recursos y servicios que el servidor le proporciona. Ambos procesos pueden existir en una máquina o en máquinas separadas que se comunican a través de una red. La mayoría de las soluciones cliente/servidor son arquitecturas de dos capas. Esto significa que la aplicación lógica es dividida entre las aplicaciones del cliente y la base de datos.

    Basada en WEB


    La arquitectura basada en WEB realmente es una forma modificada de la nueva arquitectura de tres capas que utiliza un explorador en la estación de trabajo en lugar de la interfaz típica del usuario. Las soluciones basadas en WEB utilizan el protocolo World Wide WEB, a través de la Internet o una intranet, para conectar las tres partes de la aplicación.

    La World Wide WEB (WWW) es una combinación de servidores de Internet que utilizan formatos estándares como HTML (Hypertext markup Language) para proporcionar ligas a otros documentos, gráficas y archivos de audio y video. Sin embargo, no todos los servidores de Internet están en la WWW. También pueden encontrarse en intranets que sólo son accesibles a usuarios internos. El crecimiento de la WWW creó un ``boom'' que ha conducido al desarrollo de aplicaciones e instrumentos que son útiles para más que sus intenciones originales de Internet. Parte del `` boom'' de la WWW ha sido la creación de exploradores de WEB. Los dos más populares son el Internet EXPLORER de MICROSOFT y el NETSCAPE Navigator. Uno de los resultados más excitantes de estos exploradores ha sido la posibilidad de incorporarlos a soluciones que se extienden más allá de la exploración en Internet.

      Ventajas del sistema de dos capas


      • El desarrollo de aplicaciones en un ambiente de dos capas es mucho más rápido que en ambientes anteriores, pero no es necesariamente más rápido que con el nuevo ambiente de tres capas.
        • Las herramientas para el desarrollo con dos capas son robustas y evaluadas. Las técnicas de prototipo se emplean fácilmente.
        • Las soluciones de dos capas trabajan bien en ambientes no dinámicos estables, pero no se ejecutan bien en organizaciones rápidamente cambiantes.

      Desventajas del sistema de dos capas


      • Los ambientes de dos capas requieren control excesivo de las versiones y demandan esfuerzo de distribución de la aplicación cuando se les hacen cambios. Esto se debe al hecho de que la mayoría de la aplicación lógica existe en la estación de trabajo del cliente.
        • La seguridad del sistema en un diseño de dos capas es compleja y a menudo requiere administración de las bases de datos, debido al número de dispositivos con acceso directo al ambiente de esas bases de datos.
        • Las herramientas del cliente y de la base de datos, utilizadas en diseños de dos capas, constantemente están cambiando. La dependencia, a largo plazo, de cualquier herramienta, puede complicar el escalamiento futuro o las implementaciones.

      Ventajas de una arquitectura de tres capas


      • Las llamadas de la interfaz del usuario, en la estación de trabajo, al servidor de capa intermedia, son más flexibles que en el diseño de dos capas, ya que la estación sólo necesita transferir parámetros a la capa intermedia.
        • Con la arquitectura de tres capas, la interfaz del cliente no es requerida para comprender o comunicarse con el receptor de los datos. Por lo tanto, esa estructura de los datos puede ser modificada sin cambiar la interfaz del usuario en la PC.
        • El código de la capa intermedia puede ser reutilizado por múltiples aplicaciones si está diseñado en formato modular. Esto puede reducir los esfuerzos de desarrollo y mantenimiento, así como los costos de migración.
        • La separación de roles en tres capas, hace más fácil reemplazar o modificar una capa sin afectar a los módulos restantes.
        • Separando la aplicación de la base de datos, hace más fácil utilizar nuevas tecnologías de agrupamiento y balance de cargas.
        • Separando la interfaz del usuario de la aplicación, libera de gran procesamiento a la estación de trabajo y permite que las actualizaciones de la aplicación sean centralizadas en el servidor de aplicaciones.

      Desventajas de las arquitecturas de tres capas y basadas en WEB


      • Los ambientes de tres capas pueden incrementar el tráfico en la red y requerir más balance de carga y tolerancia a las fallas.
        • Los exploradores actuales no son todos iguales. La estandarización entre diferentes proveedores ha sido lenta en desarrollarse. Muchas organizaciones son forzadas a escoger uno en lugar de otro, mientras que cada uno ofrece sus propias y distintas ventajas.
        Los éxitos pasados de los sistemas cliente/servidor, en su mayoría están relacionados con soluciones en pequeña escala, que proporcionan acceso a sistemas basados en un legado anticuado. Las cada vez más crecientes necesidades de los clientes, así como también el crecimiento acelerado de la Internet y las redes amplias, han forzado a las organizaciones a moverse hacia las empresas de mercado de soluciones. Con este movimiento se crean expectativas de crecimiento del desempeño, de la flexibilidad, y de la escalabilidad; así como de una disminución del tiempo de desarrollo, de la administración y de los costos a largo plazo.

        Más y más organizaciones se están moviendo a soluciones de tres capas para alcanzar estas metas. La arquitectura de tres capas supera limitaciones del diseño de dos capas, separando la presentación, el procesamiento y los datos en soportes separados. La presentación de las herramientas no necesariamente debe cambiar, sino que los cálculos y los accesos de datos se mueven a la capa intermedia para aumentar el desempeño y la seguridad, así como para disminuir los esfuerzos de implementación de las nuevas versiones o de los cambios en el código.

        Para cada una de las organizaciones técnicas, la arquitectura de tres capas incrementa la habilidad para responder a los cambios y les permite reutilizar código, simplifica el mantenimiento y hace más fácil la migración a nuevas plataformas. Conforme continúa la transformación de las prácticas obsoletas, las organizaciones deben cambiar y crecer junto con las necesidades del medio, ofreciendo soluciones viables.

        A medida que avanza la tecnología, el medio necesita cambiar sus prácticas para utilizar las nuevas herramientas. La orientación hacia los productos cliente/servidor parece estar yendo más lejos cada día de los sistemas de cómputo centralizados y más hacia la computación distribuida. El medio también está acercándose a productos ``abiertos'' y estándar, y alejándose del software propietario, mientras que crece el uso de servidores de aplicaciones. Con el movimiento hacia la computación distribuida, y hacia los productos fáciles de utilizar, ha habido un incremento en el número de proveedores de servicio de aplicaciones (Application Service Providers o ASP). Los ASP son la tercera parte de las compañías que administran y distribuyen servicios basados en software a clientes en la Internet o en una red amplia, generalmente desde un centro de datos centralizado. También son una forma de satisfacer las necesidades del medio, así como de reducir los costos de mantenimiento de recursos humanos adicionales y de adquirir nuevo hardware o actualizaciones de software.