Beruflich Dokumente
Kultur Dokumente
Clase 7:
Arquitectura de Software
Hugo R. Cordero S.
Clase 1
Objetivos
2
1. Introducción
2. ¿Qué es la Arquitectura de Software?
3. El rol del Arquitecto de Software
4. Arquitecturas y tecnologías
5. Middleware
Introducción
4
Antecedentes
Los ingenieros de software siempre han empleado
arquitecturas de software, muy a menudo sin darse
cuenta
Orientado a problemas identificados por los
profesionales e investigadores
Dificultades propias de la Ingeniería de software
Características particulares para la programación en conjunto
Necesidad de reutilización del software
Muchas ideas se originaron en otros dominios (no
informáticos)
Introducción
5
Bancos
Tiendas
Militares
Juegos
Pueden ser Grandes, complejos, heterogéneos,
distribuidos
Diferentes tipos: ERP, CRM, SCM, DSS, GIS, etc.
Introducción
6
Definiciones - SEI
“La arquitectura de software de un programa o un sistema
computacional es la estructura o estructuras del sistema, la
cual comprende elementos de software, las propiedades
externas visibles de estos elementos, y las relaciones entre
ellos.”
La Arquitectura define la estructura
11
Excesiva dependencia C1 C2 C3 C4 C1 C2 C3 C4
de componentes no es
bueno
Principales problemas AL
Reducir la dependencia
Third Party
directa de estos Four components are directly
Component
modificables
C component only
Dependency
Comunicaciones de componentes
13
Comunicación involucra:
Mecanismos de traspaso de datos, ejemplo:
Llamada de funciones
Invocación remota de métodos
Mensajes asincrónicos
Control del flujo
Flujo de mensajes entre componentes requeridos por la funcionalidad
Secuenciamiento
Concurrencia/Paralelismo
Sincronización
La Arquitectura direcciona los RNFs
14
Desarrolladores
Analistas
Diseñadores
Probadores
Arquitectos
Administradores
Usuarios
Clientes
Vendedores
El rol del Arquitecto
20
lo mismo
construir esto…
El rol del Arquitecto
22
Que esto:
¿Qué hace el Arquitecto?
23
Muchas responsabilidades:
Definir, documentar y comunicar la arquitectura
Enlace con los Stakeholders
Asegurarse que todos la entiendan y la sigan
Conocimiento de la tecnología
Resolver los problemas técnicos
Plantear iniciativas sobre cuestiones de herramientas y
selección de entornos
Administración de riesgos relacionados con la arquitectura
Extensa lista en:
http://www.sei.cmu.edu/architecture/research/previousresear
ch/duties.cfm
¿Qué hace el Arquitecto?
24
Tuberías y filtros
De llamada y retorno
Programa principal / subrutina
Basado en componentes
Cliente / Servidor
Arquitectura de capas
Modelo Vista Controlador
Entre Pares
Broker
Orientado a servicios
Arquitecturas y Tecnologías
28
Diferentes tecnologías
Plataformas de desarrollo: Java / .NET / PHP
Middlewares
Servidores de aplicaciones, MOM, BPMs, Message Brokers
Herramientas de desarrollo / pruebas
Lenguajes de programación
Gestores de versiones
Gestores de contenidos y portales
Base de datos
Frameworks
Etc.
Arquitecturas y Tecnologías
29
Abstract
Architectural Patterns/Styles
Cliente / Servidor
Denota generalmente muchos Cliente
clientes y un solo servidor
subsistema
Hay diferentes variantes Cliente
subsistema
Servidor
Servidor
Arquitecturas
32
Arquitectura de N niveles
Surgió de un "cliente-servidor" de
sistemas de información de
negocio
En estos días es un estilo
arquitectónico que se puede
aplicar a sistemas donde existen
clientes, procesamiento y
persistencia de datos
Arquitecturas
33
Almacén
Datos
Servidor
Arquitecturas
34
Servidor de
Aplicaciones
Lógica de
Aplicación
Servidor
Base Datos Almacén
de Datos
Arquitecturas
35
Formatea la información
Presentation que se mostrará.
Recepciona los eventos
de interación.
Application
Ejecuta la lógica de la
aplicación.
Data
Almacena y provee
acceso a los datos
componentes de
• Es una implementación Aplicación
de la arquitectura
• Separación entre la presentación
Almacén
y componentes de la aplicación de Datos
es todo un esfuerzo
Arquitecturas
37
Applications
Soporte de sistemas de
archivos, red, y administración
UI Services de procesos.
System Services
Kernel Administración de
interrupciones, programación de
Hardware eventos, y manejador de
dispositivos.
De la capa de Transporte
Objetos distribuidos
Orientados a mensaje
Servidores de aplicaciones
JEE y .NET
Message Brokers
Orquestadores de Procesos de
Negocio
Workflows
BPMS
Resumen
49