Beruflich Dokumente
Kultur Dokumente
Logro
Al finalizar la unidad el alumno:
Contenido
Introduccin a la arquitectura Arquitectura Fsica
o Separacin Horizontal (HW y SW) o Separacin Vertical o Cluster de servidores Arquitectura Lgica o Mainframe o Cliente / Servidor o 3 capas o N capas Servicios transversales Frameworks o Struts o Spring o Seam Tecnologas y lenguajes de programacin Servidores de aplicaciones HTML CSS
Arquitectura
La arquitectura se encarga de implementar patrones de diseo de tal manera que el software generado cumpla con los siguiente lineamientos:
Escalabilidad Separacin de responsabilidades Portabilidad Componentizacin de los servicios de infraestructura Gestin de la sesin del usuario
Escalabilidad
Por qu es importante? Posible incremento vertiginoso del nmero de usuarios
Cmo solucionarlo? El correcto dimensionamiento de la aplicacin. La adaptabilidad del sistema ante el incremento de demanda. Opciones: Escalabilidad Horizontal Escalabilidad Vertical Cluster de servidores
Separacin de responsabilidades
Por qu es importante? Es parte del proceso de escalamiento. Cmo solucionarlo? Distintas Responsabilidades no deben ser delegadas en la misma clase.
Portabilidad
Por qu es importante? Cuando los sistemas crecen muchas veces se separan fsicamente en distintos equipos. Cmo solucionarlo? 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.
Arquitectura Fsica
Separacin Horizontal HW
Sistema
Sistema
Sistema
Arquitectura Fsica
Separacin Horizontal SW
Se examina el paquete a nivel del protocolo HTTP para garantizar el mantenimiento de la sesin de usuario. Una peticin siempre regresa al mismo servidor, lo que permite mantener la sesin del cliente. Es una solucin barata (Se puede implementar con Apache).
Separacin Horizontal Mixta (HW / SW)
Son equipo de Hardware que examinan los paquetes a nivel de protocolo Es una solucin intermedia.
Arquitectura Fsica
Cluster de servidores
Arquitectura Lgica
Mainframe Cliente / Servidor 3 Capas
Aplicacin
Presentacin y Negocio
Presentacin
Cliente
Servidor
Negocio Persistencia
Servidor
Servidor
Capa de presentacin
Comprende las responsabilidades de lgica de presentacin:
Navegabilidad del sistema Validacin de datos de entrada Formateo de los datos de salida Internacionalizacin Renderizado de presentacin Otros
Capa de Negocio
Comprende las responsabilidades de lgica de negocio (o dominio) del sistema.
Reglas de negocio Debe ser independiente Debe poder ser probado (test)
Capa de Persistencia
Comprende las responsabilidades de lgica de persistencia de las entidades que maneja el sistema en desarrollo.
Servicios transversales
Son componentes independientes del dominio. Rompen con la separacin vertical de las capas. Dan lugar a una capa considerada como de infraestructura.
Algunos ejemplo:
o Servicio de Logging o Pool de JDBC o Sistema de configuracin o Manejo de Permisos y Seguridad o Manejo de la sesin
Frameworks
Struts
Es una herramienta de soporte para el desarrollo web Esta basado en el patrn de diseo MVC Actualmente se encuentran disponible las versiones 1.3 y 2 Normalmente se integra con otros frameworks para dar soporte a todas las capas. La combinacin ms comn es "Struts/Spring/Hibernate" o ms recientemente "Struts/
Spring / JPA"
Frameworks
Spring
Es un framework open source basado en el patrn de Inversin de control que ayuda a desarrollar aplicaciones Web.
Caractersticas: Inversin de control Programacin orientada a aspecto Manejo de acceso a datos Manejo de transacciones Implementacin del modelo MVC Convencin antes que configuracin Soporte para realizar Testing Seguridad
Frameworks
Seam Es un framework cuyo objectivo es provee un contenedor que permita unir JSF con EJBs facilmente. Existen dos versiones diferenciadas 2.x y 3.x. La 3.x es un complementador de la tecnologa CDI. Caractersticas: Acceso desde JSF a componentes Seam Extensin de los contextos Libreras de soporte (Genera PDF, Excel, Seguridad, etc) Se integra con Richfaces y IceFaces Permite generar un CRUD rpidamente mediante lnea de comandos.
Tecnologas y lenguajes
Se puede desarrollar web dinmicas en distintos lenguajes:
Java - Empresarial ASP. Net - Empresarial PHP - Sencilla y rpida Ruby - Elegante y fcil de usar Python - Elegante y fcil de usar
Cada lenguaje presenta diferentes patrones para el desarrollo.
Servidor de aplicaciones
Se popularizaron con el lenguaje Java por lo que un servidor de aplicaciones hace referencia a Java EE. Componentes:
Servidor de pginas web (Recursos estticos) Contenedor web (JSP y Servlets) Contenedor EJB (Enterprise Java Beans)
Sin embargo Microsoft considera a IIS (Internet information server) como un servidor de aplicaciones.
Servidor de aplicaciones
Caractersticas comunes:
Middleware (Software de conectividad) Proveen un API para interactuar con el servidor (til para entornos de produccin). Soportan una gran variedad de estndares. Soporta conexiones a diferentes fuentes de datos, sistemas y dispositivos.
Servidor de aplicaciones
Algunos servidores comerciales:
HTML
Lenguaje de marcado de hypertexto (Hyper text Mark Language) Es usado para describir la estructura y contenido de un texto. Se escribe en forma de etiquetas. Es la base de la mayora de pginas web existentes en el mundo.
Elementos HTML
Los elementos son la estructura bsica de HTML Tiene dos propiedades: Atributos y contenidos La mayora de elementos est compuesto de una etiqueta de apertura y otra de cierre. Dentro se encuentra el contenido. Formato:
<elemento atributo="valor">contenido</elemento>
Existe HTML y XHTML que es una combinacin entre XML y HTML, XHTML es estricto respecto a la notacin utilizada. Para declarar un file XHTML debe usarse la extensin .xhtml y usarse el siguiente
DOCTYPE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
CSS
CSS es un lenguaje utilizado para definir la presentacin de un documento en HTML y XML (XHTML) CSS naci por la necesidad de separar la presentacin del contenido. Tiene un sintaxis muy sencilla:
selector [, selector2, ...] [:pseudo-class] { propiedad: valor; [propiedad2: valor2; ...] } /* comentarios */ Formas de utilizar el CSS o Estilos en lnea o Hoja de estilos interna o Hoja de estilos externa
Limitaciones
Los selectores no pueden usarse de forma ascendente Dificultad para alineamientos No todos los navegadores soportan toda la especificacin Falta de expresiones numricas Las pseudo clases no puede deshabilitarse desde el navegador