Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduccin
Arquitectura fsica Distribucin de nodos en la red Mapeo componente software nodo computacional
Patrones de diseo de arquitectura Separacin de responsabilidades No existe forma de representar arquitectura software con las herramientas actuales (RUP-UML)
http://www.pdf4free.com
Sun Microsystems. Extensiones J2EE BEA Systems con Weblogic IBM con WebSphere Netscape (y Sun) con iPlanet Orin Oc4J Oracle 9IAS www.apache.org Desarrollo del servidor web apache, el ms difundido del mundo. Jakarta.apache.org Conjunto de frameworks y clases de utilidad como apoyo al desarrollo de aplicaciones basadas en java/J2EE. www.jboss.org Desarrollo del contenedor de EJBs Jboss. Gratuito y muy efectivo.
Modelo 2 Modelo 2X
Multicanalidad
http://www.pdf4free.com
Las ms primitivas Aplicaciones Web CGI Presentacin, negocio y persistencia mezclados El estado se almacena en el cliente y cada peticin supone una ejecucin completa independiente de estado (Transacction Script)
Browser
Script CGI
Database
Separacin de responsabilidades:
l l
JSPs llevan la lgica de presentacin (navegabilidad, visualizacin, etc.) Beans incrustados asumen las responsabilidades de negocio y datos
http://www.pdf4free.com
Struts es la implementacin del MVC que aporta Jakarta para aplicaciones web java. http://jakarta.apache.org/struts
http://www.pdf4free.com
Evolucin del modelo 2 para construir aplicaciones multicanal. Implementacin de referencia STXX (extiende Struts) http://stxx.sourceforg e.net/ Soluciones basadas en XML y XSLTs.
Escalabilidad Separacin de responsabilidades Portabilidad Componentizacin de los servicios de infraestructura Gestin de la sesin del usuario, cacheado de entidades Aplicacin de patrones de diseo
http://www.pdf4free.com
Escalabilidad Importancia?
Posible incremento vertiginoso del nmero de usuarios El correcto dimensionamiento de la aplicacin La adaptabilidad del sistema ante el incremento de demanda. Escalabilidad Horizontal Escalabilidad Vertical Cluster de servidores
Es importante:
l l
Varias opciones:
l l l
Escalabilidad Horizontal
Balanceador
Usuarios Internet
Sistema
Sistema
Distribuye por algoritmos predeterminados (Round Robin, LRU, etc.) las peticiones HTTP entre los distintos clones del sistema La seleccin del clon es por tanto aleatoria Problema: No garantiza que diferentes peticiones de un mismo usuario sean servidas por el mismo clon del sistema -> No hay mantenimiento de la sesin del usuario en servidor -> Condiciona el Diseo!. La sesin la debe mantener el desarrollador por otros medios:
l l
Examinan el paquete a nivel del protocolo HTTP para garantizar el mantenimiento de la sesin de usuario. Distintas peticiones del mismo usuario son servidas por el mismo clon del servidor. Ms lentos que los balanceadores HW Normalmente son soluciones baratas. Ej., mdulo mod_jk de apache.
http://www.pdf4free.com
Dispositivos HW que examinan la peticin a nivel de paquete HTTP. Trmino medio entre las dos anteriores. Garantizan el mantenimiento de sesin. Ms rpidos que los SW pero menos que los HW.
Escalabilidad Vertical
La separacin lgica entre capas se implementar de forma que permita la separacin fsica de las mismas. Es necesario un Middleware entre las capas para permitir la comunicacin remota.
Capa 1
Capa n
Mquina 1
MquinaMquina 1
Mquina 1
http://www.pdf4free.com
Habituales en los servidores de aplicaciones comerciales (Weblogic, WebSphere, iPlanet, etc.). Dependiendo de cmo se aplique puede clasificarse como horizontal o vertical. Distribuye y escala el sistema de modo transparente a usuario y administrador. Garantiza que sea cual sea la mquina que sirva la peticin http tendr acceso a la sesin del usuario (Replicacin de sesin) La replicacin de sesin es MUY costosa, produce bajo rendimiento del sistema.
Primeras tendencias eran evitar apoyarse en la sesin (objeto Session): slo haba balanceadores hw. Hoy en da, est aceptado y se fomenta su uso. OJO! Es MUY delicado. El uso excesivo del objeto session puede acarrear problemas de rendimiento, puesto que los objetos en sesin no se liberan hasta que no caduque la misma.
http://www.pdf4free.com
Separacin de Responsabilidades
Premisa base para la separacin de capas Distintas Responsabilidades no deben ser delegadas en la misma clase (separacin de incumbencias) Tendencia actual en aplicaciones WEB: l Arquitectura n-capas El modelo ms bsico es el de tres capas: l Capa de presentacin l Capa de negocio l Capa de persistencia
Independencia de capas
APLICACIN
SERVIDOR
nica capa fsica y lgica
http://www.pdf4free.com
10
CLIENTE
SERVIDOR
http://www.pdf4free.com
11
Presentacin
Negocio
Persistencia
Presentacin
Negocio Persistencia
http://www.pdf4free.com
12
Navegabilidad del sistema Validacin de datos de entrada Formateo de los datos de salida Internacionalizacin Renderizado de presentacin Etc.
Comprende las responsabilidades de lgica de negocio (o dominio) del sistema. Resultado del anlisis funcional:
l
La capa de negocio ha de ser independiente de la capa de presentacin y viceversa (en la medida de lo posible).
http://www.pdf4free.com
13
Comprende las responsabilidades de lgica de persistencia de las entidades que maneja el sistema en desarrollo.
l l l l l
Portabilidad
Una aplicacin web debe poder adaptarse a las distintas arquitecturas fsicas posibles en el despliegue. Las tareas de adaptacin a un nuevo entorno deben limitarse al mbito de la configuracin, no del desarrollo. Supuesto de ejemplo: Cliente reacio a las tecnologas de componentes J2EE (EJBs) por costes, rendimiento o simplemente, moda.
http://www.pdf4free.com
14
Servicio de infraestructura?: Componentes independientes del dominio. Rompen aparentemente la separacin vertical de capas. Dan lugar a la capa de infraestructura. Ej.:
l l l l l
Servicio de Log Pool JDBC Sistema de configuracin Gestor de permisos de acceso Etc.
Caducidad de la informacin Refresco de datos Rendimiento del sistema. Consumo de recursos del sistema.
http://www.pdf4free.com
15
Definicin de patrn de diseo GOF 94 Design Patterns Adems de una solucin vlida para problemas habituales, son un medio de entendimiento que facilita la comunicacin entre analista y desarrollador. Aceleran el desarrollo de Software Facilitan el mantenimiento En proceso de integracin en las herramientas CASE (Rose, Together, etc.).
http://www.pdf4free.com
16