1 / 37

Agenda

Maestría en Bioinformática Bases de Datos y Sistemas de Información Arquitectura de Software Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy. Agenda. Arquitectura Arquitectura de Computadores Arquitectura de Software Arquitectura de Sistemas. Conceptos Evolución de la tecnología

ikia
Download Presentation

Agenda

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Maestría en BioinformáticaBases de Datos y Sistemas de InformaciónArquitectura de SoftwareIng. Alfonso Vicente, PMPalfonso.vicente@logos.com.uy

  2. Agenda • Arquitectura • Arquitectura de Computadores • Arquitectura de Software • Arquitectura de Sistemas Conceptos Evolución de la tecnología Patrones Ejemplo

  3. Agenda • Mainframe – terminales • PCs • Arquitectura cliente – servidor • Arquitectura de tres capas • Aún más complejidad • Complejidadtecnológica • Complejidadhumana Conceptos Evolución de la tecnología Patrones Ejemplo

  4. Agenda • Patrones • Antipatrones Conceptos Evolución de la tecnología Patrones Ejemplo

  5. Agenda • Desarrollo de un software para investigación genética Conceptos Evolución de la tecnología Patrones Ejemplo

  6. Agenda • Arquitectura • Arquitectura de Computadores • Arquitectura de Software • Arquitectura de Sistemas Conceptos Evolución de la tecnología Complejidad actual

  7. Conceptos • Arquitectura • (Del lat. architectūra) • f. Arte de proyectar y construir edificios. • 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 al proceso de construcción. Aplica a muchos tipos diferentes de construcciones complejas: edificios, embarcaciones, computadoras, lenguaje, sistemas informáticos, sistemas de bases de datos

  8. Conceptos Arquitectura de Computadores ¿Cómo se organiza una computadora?

  9. Conceptos • 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 of Software-Intensive Systems • Proceso dentro del ciclo de vida • Topología • Disciplina • http://www.sei.cmu.edu/architecture/definitions.html

  10. Conceptos • Arquitectura de Sistemas • IEEE: “An architecture is the highest-level concept of a system in its environment” • Arquitectura como “diseño”, y arquitectura como “estilo”

  11. Conceptos • Arquitectura de Sistemas • Martin Fowler: “Yo defino la arquitectura como una palabra que usamos cuando queremos hablar de diseño pero queremos que suene importante” • Arquitectura = diseño de alto nivel ... pero es importante ! • Como en un edificio: bosquejo, primeros planos, maqueta, vecinos, entrada de garages, basura, sombras, electricidad, sanitaria, datos, terminaciones ... • Casi al terminar quisiéramos hacer un cambio en la estructura de la planta baja ...

  12. Conceptos • Arquitectura de Sistemas • Responde: ¿cómo se organiza un Sistema de Información? • Es un modelo conceptual • que define estructura, • comportamiento, y vistas • de un sistema • Es útil para propósitos • técnicos y organizativos

  13. Conceptos Arquitectura de Sistemas - ¿Para qué? - Para …

  14. Conceptos • Arquitectura de Sistemas • Una buena arquitectura mejorará las posibilidades de cambiar la “estructura de la planta baja”

  15. Conceptos • 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)

  16. Agenda • Mainframe – terminales • PCs • Arquitectura cliente – servidor • Arquitectura de tres capas • Aún más complejidad • Complejidadtecnológica • Complejidadhumana Conceptos Evolución de la tecnología Ejemplo

  17. Evolución de la tecnología • Mainframe – terminales • El procesamiento se realiza en el mainframe • La terminal no sirve para otra cosa • Problemas: costo, limitaciones de las tecnologías para mainframe, aparición de las PCs

  18. Evolución de la tecnología • PCs – Aplicaciones de escritorio • El procesamiento se realiza en la PC • WordPerfect, Lotus, … MS Office, mail, Internet, emuladores de terminal • Problemas: Compartir documentos, acceso concurrente, seguridad de la información, volumen de información

  19. Evolución de la tecnología • Arquitectura cliente – servidor • Parte del procesamiento se realiza en el servidor, parte en el cliente • Clipper, Visual Basic, Oracle Forms (4.5), Java Swing • Problemas: Distribución del software, configuración, escalabilidad, tráfico de red

  20. Evolución de la tecnología • Arquitectura de tres capas – la novedad es el “middleware” • Parte del procesamiento se realiza en el database server, parte en el application server, parte en el cliente • JEE, LAMP • Problemas: aumentó la complejidad

  21. Evolución de la tecnología • Aún más complejidad • Middleware basado en RPC, como Java RMI (PolyGUI) • Colas de mensajes (MQSeries, JMS) • Web Services, BPEL • Virtualización, Proxy, Firewall, DMZ, VPN, Load Balancer, Cluster, SAN • ... una organización mediana/grande puede tener todas estas tecnologías distribuidas en decenas de nodos

  22. Evolución de la tecnología Complejidadtecnológica – se puedemanejar con una CMDB

  23. Evolución de la tecnología Complejidadhumana – CTO y/o PM deberíantenerlasherramientas... CEO CTO Architectsysadmin DBA AS AdminDeveloper Net Admin Tester Project Manager Functional CSO

  24. Agenda • Patrones • Antipatrones Conceptos Evolución de la tecnología Patrones Ejemplo

  25. Patrones • Patrones • Una solución conocida a un problema recurrente • Un patrón codifica conoci-miento específico acumula-do por la experiencia en un dominio • Todos los sistemas bien estructurados siguen patro-nes

  26. Patrones • 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

  27. Patrones • Patrones • Ejemplo: Patrón Adapter o Wrapper, convierte la interface de una clase en lo que espera el cliente (ODBC, JDBC)

  28. Patrones • Antipatrones • Sirven para identificar malas prácticas • Proveen alternativas para malas decisiones comunes • Ejemplos: hard-coded, spaguetti-code, lava-flow, God-object, JayWalking

  29. Agenda • Desarrollo de un software para investigación genética Conceptos Evolución de la tecnología Patrones Ejemplo

  30. Desarrollo de un SW para investigación genética • Contratadospara el proyecto: • PM Líder funcional 3 desarrolladores 2 funcionales • MSc en BioInf. PhD en genética Ing. en Comp. Lic. en Biología • Participan, funcionarios de la empresa: • CTO ArchitectDBAsSysadmins • AS AdminTester Net Admin

  31. Desarrollo de un SW para investigación genética • El CTO acuerda con el PM que tendrán los recursos para 3 ambientes • Ambiente de desarrollo • Ambiente de testing • Ambiente de producción • El arquitecto acuerda con el PM que el software tendrá una arquitectura de 3 capas • Habrá un sistema de versionado del código, y un sistema de bug tracking, deployados en el ambiente de desarrollo

  32. Desarrollo de un SW para investigación genética • El sysadmin dice que no hay servidores, y propone virtualizar desarrollo y testing en un solo servidor físico

  33. Desarrollo de un SW para investigación genética • Los desarrolladores se quejan de que los funcionales no tienen los requerimientos claros • Los funcionales se quejan de que los desarrolladores no hacen esfuerzos por comprender el problema • El sysadmin pide más tiempo del previsto para tener listos los 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 hacerse cargo de lo anterior • ... hasta que el proyecto comienza a encaminarse

  34. Desarrollo de un SW para investigación genética • Los funcionales piden una VPN para poder testear desde sus 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, y les pide que fundamenten el pedido por escrito • Los DBAs preguntan si las bases van a seguir creciendo al ritmo que vienen creciendo. Como es una pregunta difícil nadie la contesta • Dos días después un disco se llena y se cae el ambiente de desarrollo, con todo lo que tiene

  35. Desarrollo de un SW para investigación genética • 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 los casos de prueba • El PM alega que nunca recibieron ayuda del tester • Uno de los desarrolladores, por error, elimina una tabla y se solicita que se recupere la base a un estado consistente • El DBA contesta que va a demorar y que no toquen nada hasta que les avise que el ambiente quedó recuperado

  36. Desarrollo de un SW para investigación genética • Muchos más problemas pueden ocurrir • Para los no-técnicos, las claves son: • Conocer tanto como sea posible la infraestructura tecnoló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, son personas

  37. Desarrollo de un SW para investigación genética • 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 testing • DBA: Tenemos 28 bases de testing… • Dev: En la que yo trabajo, se llama IGT • DBA: ¿Y qué error te da? • Dev: “Theaccountislocked” • DBA: Bien, ya sabemos lo que sucede, se lockeó ese usuario en la base IGT • Dev: ¿Podrían deslockearlo? • DBA: Claro, ¿qué usuario es? • Dev: Soy yo, Juan Pérez • DBA: No existe el usuario “Juan Pérez” • Dev: El usuario se llama JPEREZ2 • DBA: Listo

More Related