Agenda
description
Transcript of Agenda
![Page 1: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/1.jpg)
Maestría en Bioinformática
Bases de Datos y Sistemas de Información
Arquitectura de Software
Ing. Alfonso Vicente, [email protected]
![Page 2: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/2.jpg)
Agenda
Arquitectura Arquitectura de Computadores Arquitectura de Software Arquitectura de Sistemas
ConceptosEvolución de la tecnología
PatronesEjemplo
![Page 3: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/3.jpg)
Agenda
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
![Page 4: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/4.jpg)
Agenda
Patrones Antipatrones
ConceptosEvolución de la tecnología
PatronesEjemplo
![Page 5: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/5.jpg)
Agenda
Desarrollo de un software para investigación genética
ConceptosEvolución de la tecnología
PatronesEjemplo
![Page 6: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/6.jpg)
Agenda
Arquitectura Arquitectura de Computadores Arquitectura de Software Arquitectura de Sistemas
ConceptosEvolución de la tecnología
Complejidad actual
![Page 7: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/7.jpg)
Conceptos
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 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
![Page 8: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/8.jpg)
Conceptos
Arquitectura de Computadores
¿Cómo se organiza una computadora?
![Page 9: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/9.jpg)
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
1. Proceso dentro del ciclo de vida2. Topología3. Disciplina
http://www.sei.cmu.edu/architecture/definitions.html
![Page 10: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/10.jpg)
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”
![Page 11: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/11.jpg)
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 ...
![Page 12: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/12.jpg)
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
![Page 13: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/13.jpg)
Conceptos
Arquitectura de Sistemas
- ¿Para qué?- Para …
Dimensión técnica Dimensión organizacional
• cumplir los objetivos y requerimientos del sistema
• permitir la distribución o particionamiento del sistema
• reducir los costos de mantenimiento
• incrementar el reuso y las posibilidades de integración
• comunicar el diseño de alto nivel
• proveer el contexto del sistema
• facilitar la gestión del trabajo
![Page 14: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/14.jpg)
Conceptos
Arquitectura de Sistemas
• Una buena arquitectura mejorará las posibilidades de cambiar la “estructura de la planta baja”
![Page 15: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/15.jpg)
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)
![Page 16: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/16.jpg)
Agenda
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
![Page 17: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/17.jpg)
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
![Page 18: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/18.jpg)
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
![Page 19: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/19.jpg)
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
![Page 20: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/20.jpg)
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
![Page 21: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/21.jpg)
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
![Page 22: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/22.jpg)
Evolución de la tecnología
Complejidad tecnológica – se puede manejar con una CMDB
![Page 23: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/23.jpg)
Evolución de la tecnología
Complejidad humana – CTO y/o PM deberían tener las herramientas...
CEO CTO Architect sysadmin
DBA AS Admin Developer Net Admin
Tester Project Manager Functional CSO
![Page 24: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/24.jpg)
Agenda
Patrones Antipatrones
ConceptosEvolución de la tecnología
PatronesEjemplo
![Page 25: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/25.jpg)
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
![Page 26: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/26.jpg)
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
![Page 27: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/27.jpg)
Patrones
Patrones
• Ejemplo: Patrón Adapter o Wrapper, convierte la interface de una clase en lo que espera el cliente (ODBC, JDBC)
![Page 28: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/28.jpg)
Patrones
Antipatrones
• Sirven para identificar malas prácticas
• Proveen alternativas para malas decisiones comunes
• Ejemplos: hard-coded, spaguetti-code, lava-flow, God-object, JayWalking
![Page 29: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/29.jpg)
Agenda
Desarrollo de un software para investigación genética
ConceptosEvolución de la tecnología
PatronesEjemplo
![Page 30: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/30.jpg)
Desarrollo de un SW para investigación genética
Contratados para 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 Architect DBAs Sysadmins
AS Admin Tester Net Admin
![Page 31: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/31.jpg)
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
![Page 32: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/32.jpg)
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
![Page 33: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/33.jpg)
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
![Page 34: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/34.jpg)
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
![Page 35: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/35.jpg)
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
![Page 36: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/36.jpg)
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
![Page 37: Agenda](https://reader035.fdocuments.net/reader035/viewer/2022070422/568165b5550346895dd8b0c1/html5/thumbnails/37.jpg)
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 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