Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Patrones Arquitecturales Para Aplicaciones Web

641 views

Published on

Published in: Technology
  • Be the first to comment

Patrones Arquitecturales Para Aplicaciones Web

  1. 1. PATRONES ARQUITECTURALES PARA APLICACIONES WEB Ing. de software III Universidad del Cauca Ing. Wilson Ortega
  2. 2. Introducción <ul><li>Después de un buen análisis 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 través de un conjunto de vistas. </li></ul><ul><li>Básicamente una aplicación web amplía un sitio web habilitando al usuario a invocar lógica del negocio y como consecuencia cambia el estado del negocio en el servidor. Esto significa que hay tres componentes arquitecturales en una aplicación web: el browser, el servidor web y el servidor.de aplicaciones . </li></ul>
  3. 3. Patrones <ul><li>Un patrón arquitectural expresa un esquema de estructura de organización fundamental para el sistema software. Este provee un conjunto de subsistemas predefinidos, especifica responsabilidades e incluye reglas y guías para organizar las relaciones entre ellas. Las tres patrones más comunes son: </li></ul><ul><ul><li>Thin Web cliente </li></ul></ul><ul><ul><li>Thick Web cliente </li></ul></ul><ul><ul><li>Web distribuido </li></ul></ul>
  4. 4. Thin Web cliente <ul><li>Usado en su mayor parte en aplicaciones basadas en Internet, en el cual hay poco control en la configuración del cliente. El cliente requiere solo un browser estándar. Toda la lógica del negocio es ejecutada sobre el servidor. </li></ul><ul><li>Aplicabilidad : Esta patrón es el más apropiado para aplicaciones basadas en Internet o para estos ambientes en el cual el cliente tiene mínimo poder de cómputo o no hay control sobre esta configuración. </li></ul><ul><li>Casos conocidos : La mayoría de aplicaciones de e-commerce usan este patrón dado que no se pueden perder clientes solo porque no tienen poder de computo. </li></ul>
  5. 5. Thin Web cliente <ul><li>Estructura : Los mayores componentes de este patrón existen sobre el servidor. Los principales componentes son los siguientes: </li></ul><ul><li>Cliente browser </li></ul><ul><ul><li>Solo tiene la capacidad de aceptar y retornar cookies </li></ul></ul><ul><ul><li>La aplicación del usuario usa el browser para solicitar páginas web: cualquier página html o página servidor. </li></ul></ul><ul><ul><li>La página web retornada contiene todo el formato de interface (texto, controles) el cual es suministrada por el browser del cliente sobre la pantalla del cliente </li></ul></ul><ul><ul><li>Todas las interacciones con el sistema son a través del browser </li></ul></ul>
  6. 6. Thin Web cliente <ul><li>Servidor Web </li></ul><ul><ul><li>Todos los accesos al sistema por parte del cliente los hace a través del servidor Web. El cual acepta solicitudes para páginas Web. </li></ul></ul><ul><ul><li>Si la solicitud es hecha para una página script, CGI, módulo ISAPI o NSAPI el servidor delega el proceso al apropiado interpretador de script o módulo ejecutable, en cualquier caso el resultado es una página con formato html, configurable para suministrarla por el browser html. </li></ul></ul><ul><li>Conexión http </li></ul><ul><ul><li>Esta conexión es usada entre el cliente y el servidor para su comunicación permitiendole enviar y recibir información. </li></ul></ul><ul><ul><li>Puede también usar https, más segura. </li></ul></ul>
  7. 7. Thin Web cliente <ul><li>Página cliente </li></ul><ul><ul><li>Contiene texto explicativo, tal como información de ayuda o formas de entradas (html). </li></ul></ul><ul><li>Página servidor </li></ul><ul><ul><li>Estas páginas son ejecutables por módulos del lado del servidor (NSAPI, ISAPI) estas páginas potencialmente tienen acceso a todas los recursos del lado del servidor incluyendo lógica del negocio, base de datos, sistemas herederos y cuentas del sistema. </li></ul></ul>
  8. 8. Thin Web cliente <ul><li>Servidor de aplicaciones </li></ul><ul><ul><li>Responsable de ejecutar las página del lado del servidor, pueden ser cargadas en la misma máquina como el Web server. </li></ul></ul><ul><ul><li>Motor primario para ejecutar lógica del negocio del lado del servidor </li></ul></ul><ul><ul><li>Puede estar localizada en la misma máquina del servidor Web </li></ul></ul><ul><ul><li>Puede ejecutar en el mismo espacio de procesos del servidor Web. </li></ul></ul>
  9. 9. Thin Web cliente <ul><li>Lo dinámico </li></ul><ul><li>Lo dinámico de este patrón se centra en la lógica del negocio cuando el cliente hace una solicitud al servidor vía http. </li></ul><ul><li>Cuando la solicitud es una página html, simplemente el servidor envía la página html, pero si es una página script, el servidor delega esta acción al servidor de aplicaciones. La aplicación server interpreta el script de la página e interactúa con los recursos del servidor (base de datos, servicio de e-mail, sistema herederos y otros). Esta página además incluye formas, valores de campos, parámetros, el resultado es una página html configurable que es enviada al cliente. </li></ul><ul><li>La lógica del negocio es invocada solo durante el proceso de solicitud de una página. Una vez la página solicitada es ejecutada el resultado es enviado de vuelta al cliente y la conexión entre el cliente y el servidor es terminada. </li></ul>
  10. 10. Thin Web cliente <ul><li>Consecuencias </li></ul><ul><li>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). </li></ul><ul><li>Otra limitación es la dificultad para mejorar interfaces de usuario, porque solo se limita al uso de html (texto, algunos botones y campos). </li></ul>
  11. 11. Thick web cliente <ul><li>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 lógica del negocio. </li></ul>
  12. 12. Thick web cliente <ul><li>Aplicabilidad </li></ul><ul><ul><li>Cuando una aplicación Web presenta cierta configuración del cliente y cierta versión del browser es asumida y se desea una buena interface de usuario y alguna lógica del negocio puede ser ejecutada sobre el cliente. </li></ul></ul><ul><ul><li>Visualizar y modificar modelos en varias dimensiones o para animar gráficas financieras. </li></ul></ul><ul><ul><li>La diferencia con el anterior, es el rol que juega el browser en la lógica del negocio del cliente. </li></ul></ul>
  13. 13. Thick web cliente <ul><ul><li>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 presión arterial, niveles de azucares y otros signos vitales que pueden ser usados por una agencia que necesite monitorear pacientes geográficamente remotos para una asistencia básica, y que sea capaz de reducir las visitas personales. </li></ul></ul><ul><ul><li>En algunas situaciones se requiere ejecutar lógica de negocio en el cliente para validar datos de entrada como formatos de fechas, correos, etc.. </li></ul></ul>
  14. 14. Thick web cliente <ul><li>Usos conocidos </li></ul><ul><ul><li>Scripting del lado del cliente </li></ul></ul><ul><ul><li>Plug-ins, controles </li></ul></ul><ul><ul><li>Javascript es a menudo usado en la configuración del cliente </li></ul></ul><ul><ul><li>JavaApplets y controles Activex son a menudo usados para crear sofisticados jerarquías de tres vistas (menús desplegables). </li></ul></ul><ul><ul><li>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. </li></ul></ul>
  15. 15. Thick web cliente <ul><li>Estructura </li></ul><ul><ul><li>La comunicación entre el cliente y el servidor son hechos vía http </li></ul></ul><ul><ul><li>Los objetos controles Activex , JavaApplet están limitados a interactuar con los objetos del cliente. </li></ul></ul><ul><ul><li>Los objetos (Activex, Applet) pueden acceder a los recursos del cliente y pueden ser bajados a través de http, por esta razón son típicamente autenticados por terceros. </li></ul></ul>
  16. 16. Thick web cliente <ul><ul><li>Scripts clientes: </li></ul></ul><ul><ul><ul><li>JavaScript o VBScript embebidos en una página html. </li></ul></ul></ul><ul><ul><ul><li>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. </li></ul></ul></ul><ul><ul><ul><li>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 lógica del negocio. </li></ul></ul></ul>
  17. 17. Thick web cliente <ul><li>Dinámico </li></ul><ul><ul><li>Tiene la habilidad de ejecutar lógica del negocio en el cliente </li></ul></ul><ul><ul><li>Todas las comunicaciones entre el servidor y el cliente se da por la solicitud de un página </li></ul></ul><ul><ul><li>La lógica del negocio puede ejecutarse en el cliente con scripts, controles o applets </li></ul></ul><ul><ul><li>Los scripts del cliente son usados para validar datos de entrada </li></ul></ul><ul><ul><li>Ejemplo una aplicación de e-commerce emplea javascript para validar incompatibilidades. </li></ul></ul><ul><ul><li>Los JavaApplets o Activex tiene funciones asociadas a las páginas, por ejemplo cuando se mueve el mouse ocurre un evento. </li></ul></ul>
  18. 18. Thick web cliente <ul><ul><li>Los eventos tiene acceso a la interface DOM del browser. Esta interface es un estándar de la W3C para script, controles y acceso a applet y el contenido de la página html. </li></ul></ul><ul><ul><li>El uso de XML como un mecanismo estándar de intercambio de información entre el cliente y el servidor es permitido por el uso de componentes especiales sobre el cliente. controles Activex o JavaApplet están colocados en el cliente para solicitar o enviar un documento XML. </li></ul></ul><ul><ul><ul><li>Ejemplo: un Java Applet embebido en una página HTML que podría hacer una solicitud http al servidor web por un documento XML, el servidor encuentra y proceso la información y envía de vuelta un documento formato XML. El applet en el cliente debe aceptar el documento XML parseado, e interactúa con el actual documento HTML en el browser para desplegar el contenido al usuario. </li></ul></ul></ul>
  19. 19. Thick web cliente <ul><li>Consecuencias </li></ul><ul><ul><li>Incompatibilidad con los browser, no todos los browsers soportan javascripts o vbscripts. </li></ul></ul><ul><ul><li>Implementación del DOM en algunos casos depende del browser </li></ul></ul><ul><ul><li>Es necesario hacer pruebas con todos los posibles escenarios para cada cliente que lo soportará y sobre todo los browsers que soportará la lógica del negocio. (Nunca asuma el comportamiento en un browser). </li></ul></ul>
  20. 20. Web Distribuido <ul><li>Mecanismo tradicional de distribución de objetos cliente/servidor, visto como una aplicación Web con objetos distribuidos. </li></ul><ul><li>Aplicabilidad </li></ul><ul><ul><li>Apropiado cuando hay un significativo control sobre el cliente y la configuración de la red. </li></ul></ul><ul><ul><li>Este patrón es poco usado para aplicaciones basadas en Internet, o cuando hay poco control sobre la configuración del cliente o las comunicaciones de la red son pocos confiables. </li></ul></ul><ul><ul><li>Lo más importante de esta arquitectura es apalancar la existencia de objetos de negocios en el contexto de una aplicación Web con comunicación directa y persistente entre el cliente y el servidor, con esto se superan los problemas mencionados anteriormente. </li></ul></ul><ul><ul><li>No debe ser usada sola, sino combinada con las dos anteriores. </li></ul></ul>
  21. 21. Web Distribuido <ul><li>Usos conocidos </li></ul><ul><ul><li>CNN, detrás del sitio Web hay una sofisticada red basada en CORBA, browsers, servidores y objetos distribuidos. </li></ul></ul><ul><ul><li>Una aplicación de atención médica, una aplicación Web para el manejo de pacientes, registros médicos y facturación. Es un thick cliente en lo que respecta a clientes y pacientes y manejo de registros médicos, con una aplicación Web distribuida para operaciones de facturación. </li></ul></ul>
  22. 22. Web Distribuido <ul><li>Estructura </li></ul><ul><ul><li>La principal diferencia entre este y los demás es la comunicación entre el cliente y el servidor. </li></ul></ul><ul><ul><li>Incluye todos los elementos del thin web cliente y: </li></ul></ul><ul><ul><ul><li>DCOM : COM distribuidos, es el protocolo de objetos distribuidos de Microsoft, este permite a los objetos de una máquina interactuar con los objetos de otra máquina. </li></ul></ul></ul><ul><ul><ul><li>IIOP : Protocolo Internet Inter-ORB es el protocolo OMGs CORBA para interactuar con objetos distribuidos o cualquier red basada en TCP/IP. </li></ul></ul></ul><ul><ul><ul><li>RMI (JMRP): Método de invocación remota, es la vía Java que permite interactuar con otras máquinas. JMRP (Protocolo Java de Método remoto), es el nativo del RMI. </li></ul></ul></ul>
  23. 23. Web Distribuido <ul><li>Dinámico </li></ul><ul><ul><li>El browser es usado para contener una interface de usuario y algunos objetos de negocios para comunicar los objetos del lado del servidor. </li></ul></ul><ul><ul><li>Comunicación entre el cliente y los objetos del servidor ocurren con los protocolos IIOP, RMI y DCOM. </li></ul></ul><ul><ul><li>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 aplicación, sin necesidad de instalar un software especial manualmente. Este componente es bajado guardado en el cliente y se conectan con los objetos del servidor. </li></ul></ul>
  24. 24. Web Distribuido <ul><li>Consecuencias </li></ul><ul><ul><li>Requiere una sólida red </li></ul></ul><ul><ul><li>Gastan mucho tiempo las conexiones http entre el cliente y el servidor y esporádicamente se pierde el servidor, lo cual no es problema para los patrones anteriores. </li></ul></ul>

×