8/18/2019 Arquitectura Computadoras 100
1/18
Arquitectura Arquitectura de Computadores Arquitectura de Software Arquitectura de Sistemas
ConceptosEvolución de la tecnología
PatronesEjemplo
Mainframe – terminales PCs Arquitectura cliente – servidor Arquitectura de tres capas Aún más complejidad Complejidad tecnológica
Complejidad humana
ConceptosEvolución de la tecnología
PatronesEjemplo
8/18/2019 Arquitectura Computadoras 100
2/18
Patrones Antipatrones
ConceptosEvolución de la tecnología
PatronesEjemplo
Desarrollo de un software parainvestigación genética
ConceptosEvolución de la tecnología
PatronesEjemplo
8/18/2019 Arquitectura Computadoras 100
3/18
Arquitectura Arquitectura de Computadores Arquitectura de Software Arquitectura de Sistemas
ConceptosEvolución de la tecnología
Complejidad actual
Arquitectura
(Del lat. architect ra)
1. f. Arte de proyectar y construir edificios.2. f. Inform. Estructura lógica y física de los componentes
de un computador.
Diccionario de la Real Academia Española
En general, se refiere a la estructura interna, así como alproceso de construcción. Aplica a muchos tipos diferentes deconstrucciones complejas: edificios, embarcaciones,computadoras, lenguaje, sistemas informáticos, sistemas debases de datos
8/18/2019 Arquitectura Computadoras 100
4/18
Arquitectura de Computadores
¿Cómo se organiza una computadora?
Arquitectura de Software
“La organización fundamental de un sistema, representada por
sus componentes, sus relaciones entre ellos y con su entorno,y los principios que gobiernan su diseño y evolución.”
IEEE 1471-2000: Recommended Practice for Architecture Description ofSoftware-Intensive Systems
1. Proceso dentro del ciclo de vida 2. Topología 3. Disciplina
8/18/2019 Arquitectura Computadoras 100
5/18
Arquitectura de Sistemas
• IEEE: “An architecture is the highest-level concept of asystem in its environment”
• Arquitectura como “diseño”, y arquitectura como “estilo”
Arquitectura de Sistemas
• Martin Fowler: “Yo defino la arquitectura como una palabraque usamos cuando queremos hablar de diseño peroqueremos que suene importante”
• Arquitectura = diseño de alto nivel ... pero es importante !
• Como en un edificio: bosquejo, primeros planos, maqueta,vecinos, entrada de garage, basura, sombras, electricidad,sanitaria, datos, terminaciones ...
• Casi al terminar quisiéramos hacer un cambio en laestructura de la planta baja ...
8/18/2019 Arquitectura Computadoras 100
6/18
Arquitectura de Sistemas
• Responde: ¿cómo se organiza un Sistema de Información?
• Es un modelo conceptualque define estructura,comportamiento, y vistasde un sistema
• Es útil para propósitostécnicos y organizativos
Arquitectura de Sistemas
- ¿Para qué?- Para …
•
•
•
•
•
•
•
8/18/2019 Arquitectura Computadoras 100
7/18
Arquitectura de Sistemas
• Una buena arquitectura mejorará las posibilidades decambiar la “estructura de la planta baja”
Arquitectura de Sistemas
• No se ve igual en la academia y en la industria
• Estilos arquitectónicos que oirán:
• Arquitecturas Orientadas a Objetos
• Arquitecturas en capas
• Model-View-Controller (MVC)
• Arquitecturas Orientadas a Servicios (SOA)
8/18/2019 Arquitectura Computadoras 100
8/18
Mainframe – terminales PCs Arquitectura cliente – servidor Arquitectura de tres capas Aún más complejidad Complejidad tecnológica Complejidad humana
ConceptosEvolución de la tecnología
Ejemplo
Mainframe – terminales
• El procesamiento se realiza en el mainframe
• La terminal no sirve para otra cosa
• Problemas: costo, limitaciones de lastecnologías para mainframe, aparición de
las PCs
8/18/2019 Arquitectura Computadoras 100
9/18
PCs – Aplicaciones de escritorio
• El procesamiento se realiza en la PC
• MS Office, mail, Internet, emuladores determinal
• Problemas: Compartir documentos, accesoconcurrente, seguridad de la información,volumen de información
Arquitectura cliente – servidor
• Parte del procesamiento se realiza en elservidor, parte en el cliente
• .NET, Oracle Forms-Reports-Graphics, JavaSwing
• Problemas: Distribución del software,configuración, escalabilidad, tráfico de red
8/18/2019 Arquitectura Computadoras 100
10/18
Arquitectura de tres capas – la novedad es el “middleware”
• Parte del procesamiento se realiza en eldatabase server, parte en el applicationserver, parte en el cliente
• JEE, LAMP
• Problemas: aumentó la complejidad
Aún más complejidad
• Middleware basado en RPC (Remote Procedure Call), como Java RMI(PolyGUI)
• Colas de mensajes (MQSeries, JMS)
• Web Services, BPEL
• Virtualización, Proxy, Firewall, DMZ, VPN (Virtual Private Network), LoadBalancer, Cluster, SAN (Storage Area Network)
... una organización mediana/grande puede tener todas estastecnologías distribuidas en decenas de nodos
8/18/2019 Arquitectura Computadoras 100
11/18
Complejidad tecnológica – se puede manejar con una CMDB
Complejidad humana – CTO y/o PM deberían tener lasherramientas...
CEO CTO Architect sysadmin(Director Ejecutivo) (Director de Sistemas)
DBA AS Admin Developer Net Admin
Tester Project Manager Functional CSO (User)
8/18/2019 Arquitectura Computadoras 100
12/18
Patrones Antipatrones
ConceptosEvolución de la tecnología
PatronesEjemplo
Patrones
• Una solución conocida a un problema recurrente
• Un patrón codifica conocimiento específico acumula-dopor la experiencia en un dominio
• Todos los sistemas bien estructurados siguen patrones
8/18/2019 Arquitectura Computadoras 100
13/18
Patrones
• Según GoF, un patrón debe tener 4 elementos:
• Nombre, para identificarlo
• Problema, indica cuándo aplicarlo
• Solución, indica el diseño a seguir
• Consecuencias, costos y beneficios
Patrones
• Ejemplo: Patrón Adapter o Wrapper, convierte la interface deuna clase en lo que espera el cliente (ODBC, JDBC)
8/18/2019 Arquitectura Computadoras 100
14/18
Antipatrones
• Sirven para identificar malasprácticas
• Proveen alternativas paramalas decisiones comunes
• Ejemplos: hard-coded,spaguetti-code, lava-flow,God-object, JayWalking
Desarrollo de un software parainvestigación genética
ConceptosEvolución de la tecnología
PatronesEjemplo
8/18/2019 Arquitectura Computadoras 100
15/18
! "
Contratados para el proyecto:
PM Líder funcional 3 desarrolladores 2 funcionalesMSc en BioInf. PhD en genética Ing. en Comp. Lic. en Biología
Participan, funcionarios de la empresa:
CTO Architect DBAs Sysadmins
AS Admin Tester Net Admin
! "
• El CTO acuerda con el PM que tendrán los recursos para 3ambientes• Ambiente de desarrollo• Ambiente de testing• Ambiente de producción
• El arquitecto acuerda con el PM que el software tendrá unaarquitectura de 3 capas
• Habrá un sistema de versionado del código, y un sistema debug tracking, deployados en el ambiente de desarrollo
8/18/2019 Arquitectura Computadoras 100
16/18
! "
• El sysadmin dice que no hay servidores, y proponevirtualizar desarrollo y testing en un solo servidor físico
! "
• Los desarrolladores se quejan de que los funcionales notienen los requerimientos claros
• Los funcionales se quejan de que los desarrolladores nohacen esfuerzos por comprender el problema
• El sysadmin pide más tiempo del previsto para tener listoslos servidores, y pide que alguien más se haga cargo de la
instalación de los sistemas de versionado y bug tracking
• Los DBAs se pelean con los AS Admins para no hacersecargo de lo anterior
... hasta que el proyecto comienza a encaminarse
8/18/2019 Arquitectura Computadoras 100
17/18
! "
• Los funcionales piden una VPN para poder testear desdesus casas, ya que los resultados demoran mucho
• El Net Admin dice que debe consultarlo con el CSO
• El CSO se enoja porque no sabía nada de este proyecto, yles pide que fundamenten el pedido por escrito
• Los DBAs preguntan si las bases van a seguir creciendo alritmo que vienen creciendo. Como es una pregunta difícilnadie la contesta
• Dos días después un disco se llena y se cae el ambiente dedesarrollo, con todo lo que tiene
! "
• El software entra en producción en “Beta”
• Ocurre un error en producción que no había sido testeado
• El tester dice que “la gente del proyecto” no supo hacer loscasos de prueba
• El PM alega que nunca recibieron ayuda del tester
• Uno de los desarrolladores, por error, elimina una tabla y sesolicita que se recupere la base a un estado consistente
• El DBA contesta que va a demorar y que no toquen nadahasta que les avise que el ambiente quedó recuperado
8/18/2019 Arquitectura Computadoras 100
18/18
! "
• Muchos más problemas pueden ocurrir
• Para los no-técnicos, las claves son:
• Conocer tanto como sea posible la infraestructuratecnológica y el lenguaje de los técnicos
• Tener documentación actualizada
• Ser tan específico como sea posible (está prohibido decir“me da un error”, “no puedo entrar”, )
• Conocer a los técnicos, porque después de todo, sonpersonas
! "
• Ser específico significa decir dónde (nombre), quién(nombre), cómo (contexto) y qué (código de error) sucede
Dev: No puedo entrar a la base, ¿podrán fijarse qué pasa?DBA: ¿A qué base?Dev: A la de testingDBA: Tenemos 28 bases de testing…Dev: En la que yo trabajo, se llama IGTDBA: ¿Y qué error te da?Dev: “The account is locked”DBA: Bien, ya sabemos lo que sucede, se lockeó ese usuario en la base IGTDev: ¿Podrían deslockearlo?DBA: Claro, ¿qué usuario es?Dev: Soy yo, Juan PérezDBA: No existe el usuario “Juan Pérez”Dev: El usuario se llama JPEREZ2DBA: Listo