viernes, 17 de noviembre de 2017

ARQUITECTURA DE APLICACIONES WEB



ARQUITECTURA DE APLICACIONES WEB.


1. Estilos de Arquitectura


Indican:

Tipos de componentes y conectores involucrados.
Patrones y restricciones de interconexión o composición entre ellos: Invariantes del estilo.


Hay una serie de propiedades que lo caracterizan, determinando sus ventajas e inconvenientes, Condicionando la elección de uno a otro estilo.















2. Arquitectura N-capas.


modelo de desarrollo software y su objetivo es la separación de las partes que componen un sistema software o también arquitectura cliente-servidor:Capa de negocios, Capa de presentación y Capa de datos.


se lleva a cabo en varios niveles y ademas permite distribuye el trabajo de aplicación, de este modo, cada grupo es abstraído del resto de niveles.








Capas de presentación


comunica y captura la información del usuario en un mínimo proceso, también se conoce como interfaz gráfica y debe ser fácil y entendible para el usuario.
















Capa de aplicación




Es la ultima capa del modelo OSI y proporciona servicios a los usuarios, alguna de las funciones de estos son:




- Establece acuerdos para recuperación de errores.

- Establece la disponibilidad de los socios de comunicación deseados.

- Soporta aplicaciones de red directas e indirectas.













Capa de modelo del dominio/Negocio




También llamada capa de servicio, aquí se implementan los objetivos de la aplicación.Es el corazón de la aplicación y aporta un valor a la compañía.

son usados por diferentes implementaciones de capas de presentación como pueden ser paginas web, lineas de comandos o servicios web.
















Capa de infraestructura de persistencia de datos.


Proporciona una capa de abstracción para el acceso a datos que es independiente del esquema físico

proporciona un interfaz coherente para acceder a los datos, independiente de la infraestructura de objetos relacionales, a su vez se utiliza para transformar los datos recuperados de la base de datos en una colección de objetivos java.







2.1 Introducción.


Con la introducción de Internet y del Web en concreto, se han abierto infinidad de posibilidades en cuanto al acceso a la información desde casi cualquier sitio. Esto representa un desafío a los desarrolladores de aplicaciones, ya que los avances en tecnología demandan cada vez aplicaciones más rápidas, ligeras y robustas que permitan utilizar el Web.


Afortunadamente, tenemos herramientas potentes para realizar esto, ya que han surgido nuevas tecnologías que permiten que el acceso a una base de datos desde el Web, por ejemplo, sea un mero trámite. El único problema es decidir entre el conjunto de posibilidades la correcta para cada situación.




El viejo CGI ha cumplido con el propósito de añadir interactividad a las páginas Web pero sus deficiencias en el desarrollo de aplicaciones y en la escalabilidad de las mismas ha conducido al desarrollo de APIs específicos de servidor como Active Server Pages, ASP, y PHP, que son más eficientes que su predecesor CGI.




Para aprovechar el potencial de estas tecnologías y ofertar una solución de servidor más extensible y portable, Sun ha desarrollado la tecnología llamada servlet. Los servlets Java son muy eficientes, debido al esquema de threads en el que se basan y al uso de una arquitectura estándar como la JVM, Java Virtual Machine.




Otra nueva tecnología viene a sumarse a las que extienden la funcionalidad de los servidores Web, llamada Java Server Pages, JSP. Los JSP permiten juntar HTML, aplicaciones Java, y componentes como las Java Beans creando una página Web especial que el servidor Web compila dinámicamente en un server la primera vez que es llamada.














2.2 Revisión histórica.





Las tecnologías que se emplean para la construcción de aplicaciones Web no son las mejores para hacer aplicación "dinámicas" (aplicaciones con un razonable nivel de interactividad y responsividad de la GUI), porque no fueron diseñadas para tal fin.


La Web, en su concepción original, era un servicio concebido para compartir contenido estático (textos académicos, por ejemplo) entre usuarios de computadoras personales con capacidad de procesamiento muy limitada: alguna organización (como una universidad) publicaba estos contenidos, y los usuarios se limitaban a consultarlos. Es decir, estas aplicaciones de la primera Web (a veces renombrada luego como Web 1.0) eran fundamentalmente:

no interactivas

operaban sobre contenido poco mutable

de sólo texto

de comunicación unidireccional (la información siempre viaja desde el servidor al cliente, a pedido de un cliente)


Por esto, HTTP. el protocolo de comunicación empleado en la Web es:

Pedido-Respuesta (se abre una conexión por cada pedido, que surge del cliente, y el servidor la cierra cuando ha enviado la respuesta)

Stateless (el protocolo per-sé no maneja ninguna noción de memoria de pedidos anteriores)

Textual (se intercambian mensajes de sólo texto)

Basado en códigos de respuesta (incluso para los flujos de error; no hay memoria compartida, continuaciones, excepciones ni eventos)

Esto es esquemático y en su forma más básica, el protocolo es complejo y presenta muchos aspectos como tipos de contenido, métodos, cachés y conexiones persistentes, etc, que modifican sustancialmente la visión anterior.














2.3 Características, Importancia





Algunas aplicaciones basadas en la web utilizan una arquitectura de dos niveles y otras utilizan una arquitectura de n niveles formada por tres o más niveles.

Arquitectura de dos niveles

En una arquitectura de dos niveles, el cliente está en el primer nivel. El servidor de bases de datos y el servidor de aplicaciones web residen en la misma máquina servidor, que es el segundo nivel. El segundo nivel proporciona los datos y ejecuta la lógica empresarial para la aplicación web.


Arquitectura de n niveles

En una arquitectura de n niveles, los objetos de aplicaciones están distribuidos entre varios niveles lógicos, generalmente tres o cuatro.




En una arquitectura de tres niveles, el servidor de bases de datos no comparte una máquina servidor con el servidor de aplicaciones web. El cliente está en el primer nivel, igual que en una arquitectura de dos niveles. En el tercer nivel, el servidor de bases de datos proporciona los datos.


En una arquitectura de cuatro niveles, puede existir más de un nivel lógico dentro del nivel medio o dentro del nivel del sistema de información empresarial. Por ejemplo:

El nivel medio está formado por más de un servidor web. Como alternativa, un cortafuegos intermedio puede separar el servidor web del servidor de aplicaciones en el nivel medio.




Un servidor de bases de datos del tercer nivel puede ser la fuente de los datos para un servidor web del nivel medio y otro servidor de bases de datos del cuarto nivel es la fuente de datos para un servidor de bases de datos del tercer nivel.










3. Arquitecturas distribuidas


Un sistema distribuido se puede demostrar por la arquitectura cliente-servidor, que forma la base para las arquitecturas de múltiples niveles; las alternativas son la arquitectura de intermediario como CORBA, y la arquitectura orientada a servicios (SOA). En esta arquitectura, el procesamiento de información no se limita a una sola máquina sino que se distribuye en varios ordenadores independientes.


Se encuentra en el medio del sistema y gestiona o apoya los diferentes componentes de un sistema distribuido. Ejemplos son monitores de transacción de procesamiento, convertidores de datos y los controladores de comunicación, etc.














3.1 El modelo Cliente / Servidor





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.










- Arquitectura Cliente/Servidor de 2 niveles






La arquitectura en 2 niveles se utiliza para describir los sistemas cliente/servidor en donde el cliente solicita recursos y el servidor responde directamente a la solicitud, con sus propios recursos. Esto significa que el servidor no requiere otra aplicación para proporcionar parte del servicio.










- Arquitectura Cliente/Servidor de 3 niveles





Los servicios del tercer nivel están protegidos del acceso directo de los componentes de cliente que residen en una red segura. La interacción debe producirse a través de los procesos del segundo nivel.

Comunicación entre niveles. Los tres niveles deben comunicarse entre ellos. Los protocolos abiertos estándar y las API expuestas simplifican esta comunicación. Puede escribir componentes de cliente en cualquier lenguaje de programación, como Java o C++. Estos clientes se ejecutan en cualquier sistema operativo, comunicándose con la capa de la lógica de la aplicación. Las bases de datos del tercer nivel pueden tener cualquier diseño, si la capa de la aplicación pueda consultarlas y manipularlas. La clave de esta arquitectura es la capa de la lógica de aplicación.












- Arquitectura Cliente/Servidor multinivel


Al hablar del desarrollo de aplicaciones Web resulta adecuado presentarlas dentro de las aplicaciones multinivel. Los sistemas típicos cliente/servidor pertenecen a la categoría de las aplicaciones de dos niveles. La aplicación reside en el cliente mientras que la base de datos se encuentra en el servidor. En este tipo de aplicaciones el peso del calculo recae en el cliente, mientras que el servidor hace la parte menos pesada, y eso que los clientes suelen ser maquinas menos potentes que los servidores. Ademas, esta el problema de la actualización y el mantenimiento de las aplicaciones, ya que las modificaciones a la misma han de ser trasladada a todos los clientes.














- Arquitectura Peer to peer





es una red de ordenadores en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre sí. Es decir, actúan simultáneamente como clientes y servidores respecto a los demás nodos de la red.

sirven para compartir e intercambiar información de forma directa entre dos o más usuarios ha propiciado que parte de los usuarios lo utilicen para intercambiar archivos cuyo contenido está sujeto a las leyes de copyright.










4 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.


proviene de la década de los 90. Hoy presenta su mejor cara, altamente eficiente, más abierta e interoperable. SOA sirve de apoyo a las organizaciones:


Ayudándolas a agilizar los procesos para que puedan hacer negocios de manera más eficiente.


Facilitando su adaptación al cambio.


Habilitando la posibilidad de implementar nuevas estrategias, acordes con el dinamismo de mercado.














5 Arquitecturas para cloud computing





Los modelos de la nube se suelen clasificar según el lugar donde se implementa el entorno de nube (la base de la distinción entre nube pública, nube privada, nube comunitaria y nube híbrida) y según la parte del servicio de TI y de la pila de aplicaciones que proporciona la nube (la distinción entre nubes de IaaS, PaaS y SaaS). Independientemente del modelo de nube que elija una empresa, las nubes tienden a tener ciertos elementos de arquitectura de cloud computing en común. Estos componentes de la arquitectura de cloud computing son los que constituyen la "nube".


suele incluir estos elementos comunes:


Nivel de virtualización. La virtualización de los servidores y la virtualización del almacenamiento juegan un papel clave en la arquitectura de cloud computing, puesto que ofrecen una de las principales ventajas de la nube: la agilidad. Un nivel de virtualización permite a los proveedores aprovisionar o desaprovisionar rápidamente servidores en la nube para satisfacer las necesidades de los usuarios del servicio.


Almacenamiento escalable horizontalmente. La escalabilidad es otro rasgo distintivo de la arquitectura de cloud computing y desde el punto de vista del almacenamiento, se suele derivar de tecnologías que aprovechan grandes grupos de componentes de hardware de consumo que se pueden ampliar de manera sencilla y económica según crece la demanda de infraestructura y recursos de almacenamiento.










6 Arquitecturas 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.




No hay comentarios.:

Publicar un comentario