Arquitectura En Capas
Enviado por tatiuska • 29 de Enero de 2013 • 1.490 Palabras (6 Páginas) • 413 Visitas
Arquitectura en Capas (Layers)
Se definen un conjunto de niveles o capas, cada nivel que se atraviesa se aproxima mas al nivel del conjunto de instrucciones maquina.
Sistemas en capas puros.
Cada capa puede solo comunicarse con las vecinas. Esta solución aunque puede ser menos eficiente en algunos casos, facilita la portabilidad de los diseños.
• Cada unidad del estilo es una capa que representa una máquina virtual.
– Una máquina virtual es un dispositivo abstracto de cómputo; típicamente es un programa que actúa como una interfaz entre otra unidad de software y el hardware (o bien otra máquina virtual).
• El estilo de capas tiene propiedades de modificabilidad muy deseables, lo cual lleva a querer representar sistemas con este estilo aunque no sea lo más apropiado.
• Las capas particionan completamente al software.
• Cada capa es una máquina virtual con una funcionalidad cohesa y una interfaz pública.
Propiedad Esencial de las Capas
• En una arquitectura de capas, las máquinas virtuales deben interactuar de una manera ordenada y preestablecida:
– Si (A,B) es la relación entre las capas entonces decimos que:
• la capa B se encuentra por debajo de la capa A, y
• la implementación de la capa A está autorizada a usar cualquiera de los servicios públicos que ofrece la máquina virtual de la capa B.
• Algunos esquemas de capas permiten usar solamente el nivel inmediatamente inferior, otros todos los de más abajo.
Cualidades de las Capas
• Una de las principales ventajas de usar máquinas virtuales en arquitecturas de capas es proveer portabilidad.
• Para eso, la interfaz de cada capa no debe exponer funciones que dependen de una plataforma particular.
• Como la relación esencial entre las capas es “su implementación está autorizada a usar” las facilidades de los niveles inferiores:
– las capas superiores tienen una gran flexibilidad y servicios disponibles para su uso,
– la visión del mundo de las capas inferiores es mucho más restingida y dependiente de la plataforma.
Capas inferiores y superiores
• Las capas inferiores:
– incluyen conocimiento de los computadores, canales de comunicación, mecanismos de distribución, despacho de procesos, etc.
– tienden a ser independientes de la funcionalidad de la aplicación
– si la aplicación cambia, rara vez se ven afectados
• Las capas superiores:
– son independientes de la plataforma donde habrán de ejecutar
– las capas inferiores les resuelven las dependencias del ambiente
– se ocupan casi exclusivamente de los detalles de la aplicación
Atributos de Calidad
• Un sistema puede evaluarse de dos formas para comprobar que cumple sus atributos de calidad:
– atributos observables mediante la ejecución:
• ¿Cómo se comporta el sistema durante la ejecución?
• ¿Entrega los resultados esperados?
• ¿Los entrega en un tiempo razonable?
• ¿Tienen los resultados una precisión tolerable?
• ¿Se comporta apropiadamente al interactuar con otros sistemas?
– atributos no observables en la ejecución:
• ¿Cuán fácil es integrar el sistema, probarlo o modificarlo?
• ¿Cuán caro ha sido su desarrollo?
• ¿Cuánto se tardó en tenerlo disponible en el mercado?
Atributos de Calidad Observables durante la Ejecución
• Performance
• Seguridad
• Disponibilidad
• Funcionalidad
• Usabilidad
Performance
• Tiempo que requiere el sistema para responder a un evento o estímulo, o bien el número de eventos procesados en un intervalo de tiempo.
• La performance de un sistema depende de:
– comunicación entre las componentes
– asignación de funcionalidad a las componentes
– algoritmos elegidos para implementar la funcionalidad
– codificación de los algoritmos
Performance y Arquitectura
• Puede analizarse la performance en la arquitectura mediante:
– análisis de las tasas de llegada
– distribución de los requerimientos de servicios
– tiempos de procesamiento
– tamaño de las colas
– latencia (tasa de servicio)
• Se puede simular el sistema mediante modelos estocásticos basados en información histórica de carga.
• Históricamente la performance ha sido muy importante, pero últimamente otras cualidades también lo son.
Seguridad
• Medida de la capacidad del sistema para resistir intentos de uso y negación de servicios a usuarios no autorizados sin restar servicios a los usuarios autorizados.
• Típicos ataques:
– negación de servicios - impedir que un servidor pueda dar servicios a sus usuarios. Se hace inundándolo con requerimientos o consultas.
– impostor de dirección IP - el atacante asume la identidad de un host confiable para el servidor. El atacante usualmente inhibe al host confiable mediante negación de servicios.
Seguridad y Arquitectura
• Estrategias de arquitectura para prevenir, detectar y responder a ataques de seguridad:
– poner un servidor de autentificación entre los usuarios externos y la porción del sistema que da los servicios;
– instalar monitores de redes para la inspección y el registro de los eventos de la red;
– poner el sistema detrás de un “firewall” de comunicaciones donde toda comunicación desde y hacia el sistema se canaliza a través de un proxy;
– construir el sistema sobre un kernel confiable que proporciona servicios de seguridad.
• Todas estas estrategias implican identificar componentes especializados y coordinar su funcionamiento con las demás componentes.
Disponibilidad
• Proporción del tiempo que el sistema está en ejecución.
• Se mide como el tiempo entre fallas o la rapidez en que el sistema puede reiniciar la operación cuando ocurre una falla.
D = tiempo promedio entre fallas
tiempo promedio entre fallas * tiempo medio de reparación
Disponibilidad y Arquitectura
• Técnicas de arquitectura para
...