Arquitectura de aplicaciones web





La aplicación web es una aplicación software que se codifica en un lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador.





Estilos Arquitectónios

Un estilo describe una clase de arquitectura o piezas de la misma.

Cada estilo describe una categoría de sistemas que incluye:
  1. Estilo arquitectónico es una descripción de la interacción  de datos y la interacción de control
  2. Un conjunto de componentes(una base de datos o módulos de cómputo) que realizan una función requerida por el sistema.
  3. Uno conjunto de conectores que permiten la comunicación, coordinación y cooperación entre los computadores.
  4. Restricciones que definen como se integran los componentes para formar el sistema.
Tipos de estilos
  • Estilos de flujo de datos
  • Estilos centrados en datos
  • Estilos de llamada y remoto
  • Estilos de código móvil
  • Estilos heterogénios
  • Estilos Peer-to-Peer

Arquitectura en N-capas

La arquitectura basada en capas se enfoca en la distribución de roles y responsabilidades de forma jerárquica proveyendo una forma muy efectiva de separación de responsabilidades. El rol indica el modo y tipo de interacción con otras capas, y la responsabilidad indica la funcionalidad que está siendo desarrollada.

En la arquitectura en tres niveles existe un nivel intermedio. Esto significa que la arquitectura generalmente está compartida por: 

Un cliente, es decir, el equipo que solicita los recursos, equipado con una interfaz de usuario (generalmente un navegador web) para la presentación.

 El servidor de aplicaciones (también denominado software intermedio), cuya tarea es proporcionar los recursos solicitados, pero que requiere de otro servidor para hacerlo.

El servidor de datos, que proporciona al servidor de aplicaciones los datos que éste le solicitó.

Introducción
CONCEPTO: Las aplicaciones web utilizan lo que se conoce como clientes livianos (light clients) los cuales no ejecutan demasiadas labores de procesamiento para la ejecución de la aplicación misma. Desde el punto de vista de la arquitectura se distinguen dos lados; uno es el cliente, donde se encuentra el usuario final utilizando la aplicación por medio de un navegador (como Internet Explorer o Mozilla Firefox). A través de este cliente web, el usuario interactúa con la aplicación localizada al otro lado, en el servidor, que es donde residen realmente los datos, reglas y lógica de la aplicación.

Reseña Histórica

La esencia del concepto es no dejar que el cliente realice demasiadas tareas, sino solo lo necesario para que lleve a cabo su trabajo y dejar que en el lado del servidor se realicen las operaciones importantes: almacenamiento de datos, transacciones, reglas del negocio y la lógica del programa. El concepto de aplicación web ha tomado una mayor relevancia con el auge de las redes locales y la popularidad de Internet, ofreciendo la oportunidad de acceso a dichas aplicaciones a través de computadores y otros dispositivos móviles. Internet ha elevado y extendido aún más el concepto de aplicación web para servir a usuarios ubicados en cualquier sitio donde se tenga acceso a Internet.

Modelo cliente servidor

TCP es un protocolo orientado a conexión. No hay relaciones maestro/esclavo. Las aplicaciones, sin embargo, utilizan un modelo cliente/servidor en las comunicaciones.
Un servidor es una aplicación que ofrece un servicio a usuarios de Internet; un cliente es el que pide ese servicio. Una aplicación consta de una parte de servidor y una de cliente, que se pueden ejecutar en el mismo o en diferentes sistemas.

Los usuarios invocan la parte cliente de la aplicación, que construye una solicitud para ese servicio y se la envía al servidor de la aplicación que usa TCP/IP como transporte.


El servidor es un programa que recibe una solicitud, realiza el servicio requerido y devuelve los resultados en forma de una respuesta. Generalmente un servidor puede tratar múltiples peticiones(múltiples clientes) al mismo tiempo.


Arquitectura Cliente/Servidor de 2 niveles


La arquitectura de dos capas en la actualidad es muy utilizada, aunque con muchas fallas, todavía no se ha podido dejar de usar. Estas arquitecturas fueron las primeras en aprovecharse de la estructura cliente-servidor

Las capas que esta arquitectura presenta son las siguientes:
• nivel de aplicación
este nivel es en el que se encuentra toda la interfaz del sistema y es la que el usuario puede disponer para realizar su actividad con el sistema.

• nivel de la base de datos.
este nivel de la base de datos también llamado el repositorio de datos, es la capa en donde se almacena toda la información ingresada en el sistema y que se deposita en forma permanente.


Existen herramientas para el desarrollo en dos capas por ejemplo visual basic, access y sql.


Arquitectura Cliente/Servidor de 3 niveles


La arquitectura de dos capas si bien ayudó en unos años atrás, se vio la necesidad de crear una nueva arquitectura ya que en dos capas se tenía algunos problemas en la capa de aplicación ya que la principal desventaja de esta era el peso que tenia para el cliente.

Existe una fuerte y bien avanzada tendencia a adoptar una arquitectura de tres capas.

y es así que se creó la arquitectura de tres capas las cuales son:

• Nivel de aplicación

la diferencia de este nivel aplicado ahora en una arquitectura de tres capas es que solo tiene que trabajar con la semántica propia de aplicación, sin tener que preocuparse de cómo esta implementado este ni de su estructura física.

• Nivel de dominio de la aplicación.

En cambio este nivel se encarga de toda la estructura física y el dominio de aplicación.
algo muy importante y que es la mayor ventaja de esta arquitectura es que ahora únicamente se cambia la regla en el servidor de aplicación y esta actuará en todos los clientes, cosa que ni sucedía con la arquitectura en dos capas que si alguna regla se la cambia, se tenía que ir a cada cliente a realizar el cambio.

• Nivel de repositorio.
Sigue siendo la capa en donde se almacenan los datos y toda la información.

Las herramientas para el desarrollo de tres capas son:

• visual basic en lo que se refiere a la capa de aplicación
• sql server en lo que se refiere al repositorio de datos.

• mts en lo que se refiere al nivel del dominio de aplicación


Arquitectura Cliente/Servidor multinivel





En una aplicación distribuida en n-capas los diferentes procesos están distribuidos en diferentes capas no sólo lógicas, sino también físicas. los procesos se ejecutan en diferentes equipos, que pueden incluso residir en plataformas o sistemas operativos completamente distintos. cada equipo posee una configuración distinta y está optimizado para realizar el papel que le ha sido asignado dentro de la estructura de la aplicación, de modo que tanto los recursos como la eficiencia global del sistema se optimicen.


Arquitectura peer to peer


Redes descentralizadas y distribuidas en las cuales las aplicaciones pueden comunicarse entre sí, intercambiando información sin la intervención de un servidor central. El ejemplo más conocido es Napster, que fue uno de los primeros que hizo posible que los usuarios registrados compartieran sus archivos. La clave fundamental de ‘peer to peer’ es que los nodos son tratados de igual a igual.


Arquitectura orientada a servicios


Es el nexo que une las metas de negocio con el sistema de software. Su papel es el de aportar flexibilidad, desde la automatización de las infraestructura y herramientas necesarias, consiguiendo al mismo tiempo, reducir los costes de integración. SOA se ocupa del diseño y desarrollo de sistemas distribuidos y es un potente aliado a la hora de llevar a cabo la gestión de grandes volúmenes de datos, datos en la nube y jerarquías de datos.


Arquitectura de cloud computing


son los diseños y desarrollo de arquitecturas software que hacen un uso eficiente de los servicios en cloud(Servicios en la nube. Paradigma que permite ofrecer servicios de computación a través de una red, que usualmente es Internet).


Arquitectura para dispositivos móviles


A diferencia de las computadoras “tradicionales”, los dispositivos móviles tienen características particulares que incluyen:

- Duración limitada de la batería.
- Posible tamaño pequeño de la pantalla.
- Conectividad intermitente.
- Posibilidad de que el dispositivo se pierda fácilmente.
- Posibilidad de realizar cálculos demandantes.
- Variedad de sensores que permiten recolectar información.

Acceso a infraestructura que facilita la instalación y actualización de aplicaciones (mercados de apps).

Los puntos descritos previamente aunados al hecho de que los dispositivos móviles están siempre a la mano, ha dado lugar a distintos tipos de aplicaciones con drivers particulares. Recordemos que en el contexto de arquitectura de software, los drivers, se refieren a los requerimientos que influyen en el diseño de la arquitectura. Estos drivers generalmente incluyen requerimientos funcionales primarios, atributos de calidad y restricciones





Comentarios