Arquitectura Computadoras 100

Embed Size (px)

Citation preview

  • 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