Você está na página 1de 24

PATRONES ARQUITECTURALES PARA APLICACIONES WEB

Ing. de software III Universidad del Cauca


Ing. Wilson Ortega

Introduccin

Despus de un buen anlisis de los requerimientos y casos de uso. El arquitecto propone una arquitectura en la forma de un documento de la arquitectura del software. El cual expresa la arquitectura a travs de un conjunto de vistas.
Bsicamente una aplicacin web ampla un sitio web habilitando al usuario a invocar lgica del negocio y como consecuencia cambia el estado del negocio en el servidor. Esto significa que hay tres componentes arquitecturales en una aplicacin web: el browser, el servidor web y el servidor.de aplicaciones.

Patrones

Un patrn arquitectural expresa un esquema de estructura de organizacin fundamental para el sistema software. Este provee un conjunto de subsistemas predefinidos, especifica responsabilidades e incluye reglas y guas para organizar las relaciones entre ellas. Las tres patrones ms comunes son:

Thin Web cliente Thick Web cliente

Web distribuido

Thin Web cliente

Usado en su mayor parte en aplicaciones basadas en Internet, en el cual hay poco control en la configuracin del cliente. El cliente requiere solo un browser estndar. Toda la lgica del negocio es ejecutada sobre el servidor. Aplicabilidad: Esta patrn es el ms apropiado para aplicaciones basadas en Internet o para estos ambientes en el cual el cliente tiene mnimo poder de cmputo o no hay control sobre esta configuracin. Casos conocidos: La mayora de aplicaciones de ecommerce usan este patrn dado que no se pueden perder clientes solo porque no tienen poder de computo.

Thin Web cliente


Estructura: Los mayores componentes de este patrn existen sobre el servidor. Los principales componentes son los siguientes:

Cliente browser Solo tiene la capacidad de aceptar y retornar cookies La aplicacin del usuario usa el browser para solicitar pginas web: cualquier pgina html o pgina servidor. La pgina web retornada contiene todo el formato de interface (texto, controles) el cual es suministrada por el browser del cliente sobre la pantalla del cliente Todas las interacciones con el sistema son a travs del browser

Thin Web cliente

Servidor Web Todos los accesos al sistema por parte del cliente los hace a travs del servidor Web. El cual acepta solicitudes para pginas Web. Si la solicitud es hecha para una pgina script, CGI, mdulo ISAPI o NSAPI el servidor delega el proceso al apropiado interpretador de script o mdulo ejecutable, en cualquier caso el resultado es una pgina con formato html, configurable para suministrarla por el browser html.
Conexin http Esta conexin es usada entre el cliente y el servidor para su comunicacin permitiendole enviar y recibir informacin. Puede tambin usar https, ms segura.

Thin Web cliente

Pgina cliente Contiene texto explicativo, tal como informacin de ayuda o formas de entradas (html).
Pgina servidor Estas pginas son ejecutables por mdulos del lado del servidor (NSAPI, ISAPI) estas pginas potencialmente tienen acceso a todas los recursos del lado del servidor incluyendo lgica del negocio, base de datos, sistemas herederos y cuentas del sistema.

Thin Web cliente

Servidor de aplicaciones

Responsable de ejecutar las pgina del lado del servidor, pueden ser cargadas en la misma mquina como el Web server. Motor primario para ejecutar lgica del negocio del lado del servidor Puede estar localizada en la misma mquina del servidor Web Puede ejecutar en el mismo espacio de procesos del servidor Web.

Thin Web cliente


Lo dinmico

Lo dinmico de este patrn se centra en la lgica del negocio cuando el cliente hace una solicitud al servidor va http. Cuando la solicitud es una pgina html, simplemente el servidor enva la pgina html, pero si es una pgina script, el servidor delega esta accin al servidor de aplicaciones. La aplicacin server interpreta el script de la pgina e interacta con los recursos del servidor (base de datos, servicio de e-mail, sistema herederos y otros). Esta pgina adems incluye formas, valores de campos, parmetros, el resultado es una pgina html configurable que es enviada al cliente. La lgica del negocio es invocada solo durante el proceso de solicitud de una pgina. Una vez la pgina solicitada es ejecutada el resultado es enviado de vuelta al cliente y la conexin entre el cliente y el servidor es terminada.

Thin Web cliente


Consecuencias Este tipo de arquitecturas conviene para aplicaciones donde el servidor puede responder dentro del tiempo esperado por el usuario y dentro del tiempo fuera (TimeOut) permitido por los valores de los usuarios (No mayor de unos cuantos segundos).

Otra limitacin es la dificultad para mejorar interfaces de usuario, porque solo se limita al uso de html (texto, algunos botones y campos).

Thick web cliente

Extiende el Thin con el uso de scripts del lado del cliente y objetos personalizables tal como controles Activex y JavaApplets. El cliente puede realizar alguna lgica del negocio.

Thick web cliente

Aplicabilidad

Cuando una aplicacin Web presenta cierta configuracin del cliente y cierta versin del browser es asumida y se desea una buena interface de usuario y alguna lgica del negocio puede ser ejecutada sobre el cliente. Visualizar y modificar modelos en varias dimensiones o para animar grficas financieras. La diferencia con el anterior, es el rol que juega el browser en la lgica del negocio del cliente.

Thick web cliente

Un ejemplo de este, es el monitoreo de los signos vitales de los pacientes, que se encuentran remotamente. Para esto se emplean por ejemplo Controles Activex. Esto se hace para medir la presin arterial, niveles de azucares y otros signos vitales que pueden ser usados por una agencia que necesite monitorear pacientes geogrficamente remotos para una asistencia bsica, y que sea capaz de reducir las visitas personales.
En algunas situaciones se requiere ejecutar lgica de negocio en el cliente para validar datos de entrada como formatos de fechas, correos, etc..

Thick web cliente

Usos conocidos

Scripting del lado del cliente Plug-ins, controles Javascript es a menudo usado en la configuracin del cliente JavaApplets y controles Activex son a menudo usados para crear sofisticados jerarquas de tres vistas (mens desplegables). Ejemplo para animaciones tenemos Shockwave Activex control y plug-ins sirven para animaciones. Microsoft agent control, acepta comando de voces para ejecutar acciones en el browser.

Thick web cliente

Estructura

La comunicacin entre el cliente y el servidor son hechos va http Los objetos controles Activex , JavaApplet estn limitados a interactuar con los objetos del cliente. Los objetos (Activex, Applet) pueden acceder a los recursos del cliente y pueden ser bajados a travs de http, por esta razn son tpicamente autenticados por terceros.

Thick web cliente

Scripts clientes:

JavaScript o VBScript embebidos en una pgina html. Controles Activex: Objetos COM pueden ser referenciados por un script cliente y bajado al client, tiene full acceso a los recursos del cliente. El browser tiene la capacidad de rechazar un Activex o advertir al cliente del control. Se usan autenticaciones y firmas por terceros de los controles, por seguridad. Java Applet: Contiene y compila componentes que corren en el contexto del browser, por seguridad tienen restricciones al acceso de los recursos de lado del cliente. Sirven para complicadas interfaces y para analizar gramaticalmente documentos XML o para encapsular complicada lgica del negocio.

Thick web cliente

Dinmico Tiene la habilidad de ejecutar lgica del negocio en el cliente Todas las comunicaciones entre el servidor y el cliente se da por la solicitud de un pgina La lgica del negocio puede ejecutarse en el cliente con scripts, controles o applets Los scripts del cliente son usados para validar datos de entrada Ejemplo una aplicacin de e-commerce emplea javascript para validar incompatibilidades. Los JavaApplets o Activex tiene funciones asociadas a las pginas, por ejemplo cuando se mueve el mouse ocurre un evento.

Thick web cliente

Los eventos tiene acceso a la interface DOM del browser. Esta interface es un estndar de la W3C para script, controles y acceso a applet y el contenido de la pgina html. El uso de XML como un mecanismo estndar de intercambio de informacin entre el cliente y el servidor es permitido por el uso de componentes especiales sobre el cliente. controles Activex o JavaApplet estn colocados en el cliente para solicitar o enviar un documento XML.

Ejemplo: un Java Applet embebido en una pgina HTML que podra hacer una solicitud http al servidor web por un documento XML, el servidor encuentra y proceso la informacin y enva de vuelta un documento formato XML. El applet en el cliente debe aceptar el documento XML parseado, e interacta con el actual documento HTML en el browser para desplegar el contenido al usuario.

Thick web cliente

Consecuencias

Incompatibilidad con los browser, no todos los browsers soportan javascripts o vbscripts.

Implementacin del DOM en algunos casos depende del browser


Es necesario hacer pruebas con todos los posibles escenarios para cada cliente que lo soportar y sobre todo los browsers que soportar la lgica del negocio. (Nunca asuma el comportamiento en un browser).

Web Distribuido

Mecanismo tradicional de distribucin de objetos cliente/servidor, visto como una aplicacin Web con objetos distribuidos.
Aplicabilidad

Apropiado cuando hay un significativo control sobre el cliente y la configuracin de la red. Este patrn es poco usado para aplicaciones basadas en Internet, o cuando hay poco control sobre la configuracin del cliente o las comunicaciones de la red son pocos confiables. Lo ms importante de esta arquitectura es apalancar la existencia de objetos de negocios en el contexto de una aplicacin Web con comunicacin directa y persistente entre el cliente y el servidor, con esto se superan los problemas mencionados anteriormente. No debe ser usada sola, sino combinada con las dos anteriores.

Web Distribuido

Usos conocidos

CNN, detrs del sitio Web hay una sofisticada red basada en CORBA, browsers, servidores y objetos distribuidos.

Una aplicacin de atencin mdica, una aplicacin Web para el manejo de pacientes, registros mdicos y facturacin. Es un thick cliente en lo que respecta a clientes y pacientes y manejo de registros mdicos, con una aplicacin Web distribuida para operaciones de facturacin.

Web Distribuido

Estructura

La principal diferencia entre este y los dems es la comunicacin entre el cliente y el servidor. Incluye todos los elementos del thin web cliente y: DCOM: COM distribuidos, es el protocolo de objetos distribuidos de Microsoft, este permite a los objetos de una mquina interactuar con los objetos de otra mquina. IIOP: Protocolo Internet Inter-ORB es el protocolo OMGs CORBA para interactuar con objetos distribuidos o cualquier red basada en TCP/IP. RMI (JMRP): Mtodo de invocacin remota, es la va Java que permite interactuar con otras mquinas. JMRP (Protocolo Java de Mtodo remoto), es el nativo del RMI.

Web Distribuido

Dinmico

El browser es usado para contener una interface de usuario y algunos objetos de negocios para comunicar los objetos del lado del servidor. Comunicacin entre el cliente y los objetos del servidor ocurren con los protocolos IIOP, RMI y DCOM. Una de las fortalezas es que el browser tiene la capacidad de descargar componentes del servidor. Quiere decir que cualquier computador con un browser puede acceder a la aplicacin, sin necesidad de instalar un software especial manualmente. Este componente es bajado guardado en el cliente y se conectan con los objetos del servidor.

Web Distribuido

Consecuencias

Requiere una slida red Gastan mucho tiempo las conexiones http entre el cliente y el servidor y espordicamente se pierde el servidor, lo cual no es problema para los patrones anteriores.

Você também pode gostar