Estilos arquitectonicos Flashcards

1
Q

Que es un estilo arquitectonico?

A

Conjunto coordinado de restricciones que restinge las funciones de los elementos y las relaciones permitidas entre ellos.
Encapsula decisiones importantes sobre los elementos y hace hincapie en las relaciones. De esta manera pueden favorecer o desfavorecer distintos atributos de calidad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Que es Replicated Repository?

A
  • mas de 1 proceso otorgando el mismo servicio
  • Servidores descentralizados proveen la ilusion a los clientes de que hay 1 solo servidor centralizado
  • Ej: Distributed Filesystem
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Como afecta Replicated Repository a la escalabilidad, performance, confiabilidad y simplicidad?

A
  • Escalabilidad: Mejora
  • Performace: Mejora
  • Confiabilidad: Mejora, si se cae uno de los servidores, esyan los demas para seguir funcionando
  • Simplicidad: Empeora ya que capaz hay que tener los servidores con alguna sincronizacion
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Que es el estilo de Cache?

A

Replicacion de un resultado para poder reutilizarlos en el futuro si se hace la misma request.
Se usa en general cuando el conjunto de datos es mayor de lo que el cliente puede manejar o cuando el acceso completo al repositorio es innecesario.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Como afecta el estilo de Cache la performance y la simplicidad?

A
  • Performance: Mejora ya que reduce la cantidad de mensajes en la red.
  • Simplicidad: Mejora, es mas facil que implementar RR
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Que es el estilo Client-Server?

A
  • El servidor es reactivo, cada vez que le llega un request lo procesa y responde
  • El server no termina nunca
  • Separation of concerns
  • El cliente conoce al servidor, pero el servidor no conoce a los clientes
  • El servidor atiende a mas de un cliente
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Como afecta Client-Server a la simplicidad, escalabilidad, evolucionabilidad?

A
  • Simplicidad: Es muy facil de implementar como de explicar y entender.
  • Escalabilidad: Mejora ya que un mismo servidor puede atender muchos clientes a la vez
  • Evolucionabilidad: Cada parte puede evolucionar sin joder a la otra
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Que es el Layered System?

A
  • Puede haber N capas
  • Capas ordenadas jerarquicamente
  • Cada capa brinda funcionalidades a las capas de arriba
  • Reduce acoplamiento
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Como Layered System afecta a la extensibilidad, performance, reusabilidad, portabilidad?

A
  • Extensibilidad: mejora ya que se puede agregar una nueva layer facilmente sin afectar a las demas
  • Performance: La comunicacion entre capas agrega un overhead que agrega latencia
  • Reusabilidad: mejroa ya que cada capa podria usarse en otro sistema
  • Portabilidad: mejora
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Que es el Layered Client Server?

A

Puede heber n niveles. Por ejemplo se pueden agregar Load Balancers o Reverse proxies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Que es Client Stateless Server?

A
  • El server no guarda nada del estado, todo queda del lado del cliente
  • En cada requests el mensaje debe agregar todo el estado necesatio para poder darle contexto al server
  • Idempotencia: se le manda n veces el mismo request a un server y este solo lo procesa 1 vez
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Como Client Stateless Server afecta a la visibilidad, performance, connfiabilidad y escalabilidad?

A
  • Visibilidad: Mejora ya que todo va en el mensaje en tonces el mediador puede conseguir todo el estado mirando un mensaje
  • Performance: empeora ya que se manda mucha info repetida por la red
  • Confiabilidad: Mejora ya que si muere el server no se pierde toda la info de la sesion porq la tiene el cliente. Entonces no hay que recuperarla o volver a armarla.
  • Escalabilidad: mejora ya que un load balancer puede mandar cada request a un server indiferente porq el estado viene en el mensaje. No hace falta que mande los requests de un mismo usuario simpre a un mismo server como en stateful.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Que es el Remote Session?

A
  • El cliente inicia una sesion en el server, hace su trabajo yy luego cierra la sesion
  • El estado lo mantiene el server
  • Ej: Telnet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Como Remote Session afecta simplicidad, escalabilidad y visibilidad?

A
  • Simplicidad: Es es mas facil de mantener y gestionar, ya que la interfaz del servidor es centralizada y los clientes solo necesitan interactuar con el servidor durante la sesion activa.
  • Escalabilidad: no es tan buena ya que el server debe tener los estados de muchos clientes
  • Visibilidad: es mala ya que solo se mandan los comandos y el estado no se ve nunca porq ese esta en el server solamente y no viaja en los mensajes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Que es Remote Data Access?

A
  • El cliente le envia als consultas al servidor en formato estandar
  • El server crea workspaces donde ejecuta las consultas
  • El estado se distribuye entre el cliente y el servidor
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Como Remote Data Access afecta a la eficiencia, escalabilidad y visibilidad?

A
  • Eficiencia: Mejora ya que los datasets grandes pueden ser reducidos del lado del server y despues pasarle esa reduccion al cliente
  • Escalabilidad: empeora ya que el server debe tener parte del estado
  • Visibilidad: es buena por el uso del lenguaje estandar
17
Q

A que nos referimos con ‘movilidad’ en el contexto del estilo arquitectonico ‘Mobile Code Styles’?

A

movilidad = cambiar dinamicamente la distancia entre el procesamiento y las fuentes/destinos de los datos

18
Q

Que es Virtual Machine?

A
  • Se ejecuta el codigo en un ambiente controlado
  • Busca satisfacer requerimentos de seguridad y confiabilidad
19
Q

Como Virtual Machine afecta a la visibilidad, portabilidad, extensibilidad?

A
  • Visibilidad: es dificil saber que va a hacer un ejecutable mirando solo su codigo
  • Portabilidad: mejora
  • Extensibilidad: mejora, es facil agregar funcionalidad sobre una plataforma generica
20
Q

Que es Remote Evaluation?

A
  • VM en el server
  • El cliente tiene el know-how para ejecutar un servicio pero no tiene los recursos
  • El cliente envia el conocimiento al server, este lo ejecuta y devuelve la respuesta
  • Entorno protegido, sin afectar a los otros clientes
  • Ej: motor de base de datos
21
Q

Como Remote Evaluation afecta a la visibilidad, escalabilidad, extensibilidad, eficiencia y confiabilidad?

A
  • Visibilidad: no es muy buena ya que el cliente manda codigo que no es muy facil de enteder eso ya de por si
  • Escalabilidad: empeora
  • Extensibilidad: mejora, los dos pueden agregarse cosas sin molestar al otro
  • Eficiencia: mejora, la accion del lado del cliente seria mas costosa
  • Confiabilidad: empeora, el server tiene menos control de la ejecucion
22
Q

Que es Code on Demand?

A
  • El cliente tiene los recursos
  • El server tiene el know how
  • El cliente le pide el know-how al server con un request y este se lo manda y el cliente lo ejecuta
  • Ej: HTML, front-end
23
Q

Como Code on Demand afecta a la configutabilidad, extensibilidad, escalabilidad, performance y visibilidad?

A
  • Configurabilidad: mejora, el server le puede mandar codigo disitinto a cada cliente
  • Extensibilidad: mejora
  • Escalabilidad: mejora ya que el server no tiene que ejecutar nada, lo ahce el cliente
  • Performance: mismo que arriba
  • Visibilidad: es mala ya que se manda codigo en vez de datos
24
Q

Que es Layered Code on Demand Client Cache Stateless Server?

A
  • Cerca del concepto de web actual
25
Q

Que es Mobile Agent?

A
  • Un componente entero es movido de un sitio remoto, incluyendo su estado, codigo y datos
  • Funciona en ambos sentidos, C->S y S->C
  • Gran flexibilidad en cuanto a cuando hacer el movimiento. Se puede hacer el movimeinto incluso en el medio de cuando se esta procesando algo
26
Q

Que es Event Based Integration?

A
  • El producer publica uno o mas eventos en lugar de invocar un componente directamente
  • Los consumers registran su interes por ciertos eventos
  • Cada vez que se publica un evento, el sistema invoca a todos los consumers interesados
  • Se reduce el acoplamiento ya que entre producers y consumers no hace falta que se conozcan
  • Se implementa como un Bus
  • Ej: Publisher-Subscriber
27
Q

Como Event Based Integration afecta a la extensibilidad, reusabilidad, evolucionabilidad, escalabilidad, simplicidad y eficiencia?

A
  • Extensibilidad: mejora, es facil de agregar funcionalidad ya que entre publishers y subscribers no hay acoplamiento
  • Reusabilidad: mejora ya que se pueden usar en diferentes sistemas
  • Evolucionabilidad: mejora
  • Escalabilidad: siempre se pueden agregar mas subscribers o publishers de manera facil. El problema es que si se cae el bus, se cae el sistema (Single Point of Failure)
  • Simplicidad: es casi imposible saber que va a pasar ya que no se sabe a quienes les va a llegar el evento o si hasta lo van a responder o que van a hacer con el
  • Eficiencia: mejora ya que se elimina la necesidad de polling
28
Q

Que es Distributed Objects?

A
  • Una cadena de invocaciones se conoce como accion
  • El estado se distribuye entre los objetos
  • Para interactuar los objetos deben conocer la identidad de los otros objetos
  • Debe existir un controlador que controle los objetos
29
Q

Como Distributed Objects afecta la visibilidad, evolucionabilidad?

A
  • Visibilidad: empeora ya que los objetos encapsulan el estado
  • Evolucionabilidad: mejora ya que cada objeto puede evolucionar sin molestar a los demas
30
Q

Que es Brokered Distributed Objects?

A
  • Se coloca un estilo de intermedarion para facilitar la comunicacion entre objetos
  • El broker resuelve la identidad del proceso
31
Q

Como Brokered Distributed Objects afecta a reusabilidad, evolucionabilidad y eficiencia?

A
  • Reusabilidad y Evolucionabilidad: mejora, si tengo que cambiar un objeto, levanto uno ya cambiado, cambio el redireccionamiento y mato al viejo
  • Eficiencia/Performance: empeora ya que hay mas interacciones de red
32
Q

Que es Data Centered Architectures?

A
  • Estructura central de datos, con el estado
  • Componentes independientes, que interactuan con dicho almacenamiento centralizado
  • Si el input stream decide/dispara los procesos a ser ejecutados, el repositorio podria ser una base de datos
  • Si el estado actual es quien decide los procesos a ser ejecutados, el repo podria denominarse blackboard. Aqui las fuentes de conocimiento se comunican mediante el blackboard y se coordinan por el estado del mismo.
33
Q

Que es Pipe and Filters?

A
  • Los filtros leen flujos de datos y se lo pasan al siguiente componente.
  • El flujo es incremental, o sea que es de a batches no es todo de una
  • Cada filtro es independiente de los demas. Estan desacoplados. No comparten estado.
34
Q

Como Pipe and Filters afecta a la simplicidad, reusabilidad, extensibilidad, evolucionabilidad, configurabilidad, testeabilidad y performance?

A
  • Simplicidad: facil de explicar
  • Reusabilidad: mejora, cada filro puede ser usado en otro sistema
  • Evolucionabilidad: mejora ya que los filtros son idenpendientes y desacoplados esntre si. Agregar funcionalidades a uno de ellos es facil y no involucra a los demas
  • Extensibilidad: es facil de agregar mas filtros
  • Configurabilidad: mejora, la app puede determinar que filtros usar dependiendo del usuario
  • Testeabilidad: mejora, permite ciertos analisis (deadlocks, throughput)
  • Performance: Favorece el procesamiento concurrente. Largas tuberias generan retrasos de propagacion, mas comunicacion, mas latencia.
35
Q

Que es Uniform Pipe and Filters?

A
  • Todos los filtros deben tener la misma interfaz
36
Q

Como Uniform Pipe and Filters afecta a la simplicidad, reusabilidad, extensibilidad, configurabilidad, visibilidad y performance?

A
  • Simplicidad: mejora
  • Reusabilidad, extensibilidad y configurabilidad: mejora, mayores posibilidades que en P&F
  • Visibilidad: mejora gracias a la estandarizacion de la comunicacion
  • Performance: empeora, la estandarizacion implica tener que hacer una serializacion y descerializacion de los datos
37
Q

Que es Batch Sequential?

A
  • Cada filtro debe terminar su procesamiento antes de que comience el siguiente filtro.
  • Aumenta la latencia y reduce el throughput.
  • Reduce las posibilidades de concurrencia