Sunteți pe pagina 1din 18

09/11/2015

Conceptos
Evolucin de la tecnologa
Patrones
Ejemplo

Conceptos
Evolucin de la tecnologa
Patrones
Ejemplo

Arquitectura
Arquitectura de Computadores
Arquitectura de Software
Arquitectura de Sistemas

Mainframe terminales
PCs
Arquitectura cliente servidor
Arquitectura de tres capas
An ms complejidad
Complejidad tecnolgica
Complejidad humana

09/11/2015

Conceptos
Evolucin de la tecnologa
Patrones
Ejemplo

Conceptos
Evolucin de la tecnologa
Patrones
Ejemplo

Patrones
Antipatrones

Desarrollo de un software para


investigacin gentica

09/11/2015

Conceptos
Evolucin de la tecnologa
Complejidad actual

Arquitectura
Arquitectura de Computadores
Arquitectura de Software
Arquitectura de Sistemas

Arquitectura
(Del lat. architect ra)
1. f. Arte de proyectar y construir edificios.
2. f. Inform. Estructura lgica y fsica de los componentes
de un computador.
Diccionario de la Real Academia Espaola

En general, se refiere a la estructura interna, as como al


proceso de construccin. Aplica a muchos tipos diferentes de
construcciones complejas: edificios, embarcaciones,
computadoras, lenguaje, sistemas informticos, sistemas de
bases de datos

09/11/2015

Arquitectura de Computadores
Cmo se organiza una computadora?

Arquitectura de Software
La organizacin fundamental de un sistema, representada por
sus componentes, sus relaciones entre ellos y con su entorno,
y los principios que gobiernan su diseo y evolucin.
IEEE 1471-2000: Recommended Practice for Architecture Description of
Software-Intensive Systems

1. Proceso dentro del ciclo de vida


2. Topologa
3. Disciplina

09/11/2015

Arquitectura de Sistemas
IEEE: An architecture is the highest-level concept of a
system in its environment
Arquitectura como diseo, y arquitectura como estilo

Arquitectura de Sistemas
Martin Fowler: Yo defino la arquitectura como una palabra
que usamos cuando queremos hablar de diseo pero
queremos que suene importante
Arquitectura = diseo 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 quisiramos hacer un cambio en la
estructura de la planta baja ...

09/11/2015

Arquitectura de Sistemas
Responde: cmo se organiza un Sistema de Informacin?
Es un modelo conceptual
que define estructura,
comportamiento, y vistas
de un sistema
Es til para propsitos
tcnicos y organizativos

Arquitectura de Sistemas
- Para qu?
- Para

09/11/2015

Arquitectura de Sistemas
Una buena arquitectura mejorar las posibilidades de
cambiar la estructura de la planta baja

Arquitectura de Sistemas
No se ve igual en la academia y en la industria
Estilos arquitectnicos que oirn:
Arquitecturas Orientadas a Objetos
Arquitecturas en capas
Model-View-Controller (MVC)
Arquitecturas Orientadas a Servicios (SOA)

09/11/2015

Conceptos
Evolucin de la tecnologa
Ejemplo

Mainframe terminales
PCs
Arquitectura cliente servidor
Arquitectura de tres capas
An ms complejidad
Complejidad tecnolgica
Complejidad humana

Mainframe terminales
El procesamiento se realiza en el mainframe
La terminal no sirve para otra cosa
Problemas: costo, limitaciones de las
tecnologas para mainframe, aparicin de
las PCs

09/11/2015

PCs Aplicaciones de escritorio


El procesamiento se realiza en la PC
MS Office, mail, Internet, emuladores de
terminal
Problemas: Compartir documentos, acceso
concurrente, seguridad de la informacin,
volumen de informacin

Arquitectura cliente servidor


Parte del procesamiento se realiza en el
servidor, parte en el cliente
.NET, Oracle Forms-Reports-Graphics, Java
Swing
Problemas: Distribucin del software,
configuracin, escalabilidad, trfico de red

09/11/2015

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

An ms complejidad
Middleware basado en RPC (Remote Procedure Call), como Java RMI
(PolyGUI)
Colas de mensajes (MQSeries, JMS)
Web Services, BPEL
Virtualizacin, Proxy, Firewall, DMZ, VPN (Virtual Private Network), Load
Balancer, Cluster, SAN (Storage Area Network)
... una organizacin mediana/grande puede tener todas estas
tecnologas distribuidas en decenas de nodos

09/11/2015

Complejidad tecnolgica se puede manejar con una CMDB

Complejidad humana CTO y/o PM deberan tener las


herramientas...
CEO
(Director Ejecutivo)

CTO
(Director de Sistemas)

Architect

sysadmin

Net Admin

DBA

AS Admin

Developer

Tester

Project Manager

Functional

CSO (User)

09/11/2015

Conceptos
Evolucin de la tecnologa
Patrones
Ejemplo

Patrones
Antipatrones

Patrones
Una solucin conocida a un problema recurrente
Un patrn codifica conocimiento especfico acumula-do
por la experiencia en un dominio
Todos los sistemas bien estructurados siguen patrones

09/11/2015

Patrones
Segn GoF, un patrn debe tener 4 elementos:
Nombre, para identificarlo
Problema, indica cundo aplicarlo
Solucin, indica el diseo a seguir
Consecuencias, costos y beneficios

Patrones
Ejemplo: Patrn Adapter o Wrapper, convierte la interface de
una clase en lo que espera el cliente (ODBC, JDBC)

09/11/2015

Antipatrones
Sirven para identificar malas
prcticas
Proveen alternativas para
malas decisiones comunes
Ejemplos: hard-coded,
spaguetti-code, lava-flow,
God-object, JayWalking

Conceptos
Evolucin de la tecnologa
Patrones
Ejemplo

Desarrollo de un software para


investigacin gentica

09/11/2015

"

Contratados para el proyecto:


PM
MSc en BioInf.

Lder funcional
PhD en gentica

3 desarrolladores
Ing. en Comp.

2 funcionales
Lic. en Biologa

Participan, funcionarios de la empresa:

CTO

Architect

DBAs

AS Admin

Tester

Net Admin

Sysadmins

"

El CTO acuerda con el PM que tendrn los recursos para 3


ambientes
Ambiente de desarrollo
Ambiente de testing
Ambiente de produccin
El arquitecto acuerda con el PM que el software tendr una
arquitectura de 3 capas
Habr un sistema de versionado del cdigo, y un sistema de
bug tracking, deployados en el ambiente de desarrollo

09/11/2015

"

El sysadmin dice que no hay servidores, y propone


virtualizar desarrollo y testing en un solo servidor fsico

"

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 ms tiempo del previsto para tener listos
los servidores, y pide que alguien ms se haga cargo de la
instalacin 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

09/11/2015

"

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 saba 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 difcil
nadie la contesta
Dos das despus un disco se llena y se cae el ambiente de
desarrollo, con todo lo que tiene

"

El software entra en produccin en Beta


Ocurre un error en produccin que no haba 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

09/11/2015

"

Muchos ms problemas pueden ocurrir


Para los no-tcnicos, las claves son:
Conocer tanto como sea posible la infraestructura
tecnolgica y el lenguaje de los tcnicos
Tener documentacin actualizada
Ser tan especfico como sea posible (est prohibido decir
me da un error, no puedo entrar, )
Conocer a los tcnicos, porque despus de todo, son
personas

"

Ser especfico significa decir dnde (nombre), quin


(nombre), cmo (contexto) y qu (cdigo de error) sucede
Dev: No puedo entrar a la base, podrn 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: The account is locked
DBA: Bien, ya sabemos lo que sucede, se locke ese usuario en la base IGT
Dev: Podran deslockearlo?
DBA: Claro, qu usuario es?
Dev: Soy yo, Juan Prez
DBA: No existe el usuario Juan Prez
Dev: El usuario se llama JPEREZ2
DBA: Listo

S-ar putea să vă placă și