Estilos arquitectonicos Flashcards
Que es un estilo arquitectonico?
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.
Que es Replicated Repository?
- 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
Como afecta Replicated Repository a la escalabilidad, performance, confiabilidad y simplicidad?
- 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
Que es el estilo de Cache?
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.
Como afecta el estilo de Cache la performance y la simplicidad?
- Performance: Mejora ya que reduce la cantidad de mensajes en la red.
- Simplicidad: Mejora, es mas facil que implementar RR
Que es el estilo Client-Server?
- 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
Como afecta Client-Server a la simplicidad, escalabilidad, evolucionabilidad?
- 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
Que es el Layered System?
- Puede haber N capas
- Capas ordenadas jerarquicamente
- Cada capa brinda funcionalidades a las capas de arriba
- Reduce acoplamiento
Como Layered System afecta a la extensibilidad, performance, reusabilidad, portabilidad?
- 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
Que es el Layered Client Server?
Puede heber n niveles. Por ejemplo se pueden agregar Load Balancers o Reverse proxies.
Que es Client Stateless Server?
- 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
Como Client Stateless Server afecta a la visibilidad, performance, connfiabilidad y escalabilidad?
- 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.
Que es el Remote Session?
- El cliente inicia una sesion en el server, hace su trabajo yy luego cierra la sesion
- El estado lo mantiene el server
- Ej: Telnet
Como Remote Session afecta simplicidad, escalabilidad y visibilidad?
- 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
Que es Remote Data Access?
- 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