Estilos de arquitectura Flashcards

(55 cards)

1
Q

Qué es un estilo arquitectónico?

A

Un estilo arquitect´onico es un conjunto coordinado de restricciones arquitect´onicas
que restringe las funciones/caracter´ısticas de los elementos arquitect´onicos y las rela-
ciones permitidas entre esos elementos, dentro de cualquier arquitectura que se ajusta
a ese estilo.
Los estilos arquitect´onicos son m´etodos que combinan estructuras de soluciones
arquitect´onicas especificando un conjunto de componentes y sus responsabilidades.
Adem´as, establecen reglas que regulan c´omo se relacionan estos elementos entre s´ı. Estos
estilos permiten evaluar una variedad de arquitecturas alternativas, identificando sus
ventajas y desventajas en funci´on de las distintas caracter´ısticas de calidad requeridas.

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

Cómo se pueden clasificar los estilos arquitectónicos?

A

Los estilos arquitect´onicos se pueden clasificar de la siguiente manera (ojo, no es
una clasificación completa, sino una muestra representativa):
* Data Flow Styles
* Replication Styles
* Hierarchical Styles
* Mobile Code Styles
* Peer to Peer Styles

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

Respecto a replication styles, qué es el replicated repository?

A

Son una arquitectura en la que varios procesos brindan el mismo servicio. Los
servidores descentralizados trabajan juntos para dar a los clientes la impresi´on de que
hay un solo servidor central en lugar de un servidor centralizado.
Este enfoque se emplea en sistemas de archivos distribuidos,y sistemas de control de
versiones, como CVS/SVN (local), donde m´ultiples servidores colaboran para garantizar
el rendimiento y la disponibilidad.

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

Qué beneficios tiene el replicated repository?

A
  • Escalabilidad: Permite manejar picos de carga, usuarios y transacciones m´as
    grandes sin comprometer el rendimiento del sistema.
  • Performance: Como los datos se pueden obtener de los servidores m´as cercanos
    al cliente, se reduce la latencia de las solicitudes normales. Adem´as, permite
    trabajar en modo offline en situaciones en las que no se puede conectar al servidor
    central.
  • Confiabilidad: Una falla en uno de los servidores no causa una ca´ıda del servicio
    porque otros servidores pueden continuar brindando el servicio.
  • Simplicidad: La simplicidad en la manipulaci´on de datos replicados a nivel
    local compensa la complejidad de la replicaci´on, lo que facilita el uso del sistema
    para los clientes.

Genial muy lindo, pero una preocupaci´on importante en esta arquitectura es
mantener la consistencia de los datos. Para evitar inconsistencias y conflictos, es crucial
asegurarse de que los datos replicados siempre est´en sincronizados y actualizados entre
los servidores.

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

Respecto a replication styles, qué es cache?

A

Es una t´ecnica de arquitectura que implica la replicaci´on del resultado de una solic-
itud en un sistema, permitiendo que este resultado sea utilizado en futuras solicitudes
similares. Es una variante del concepto de ”Repositorios replicados” (RR) y se usa
principalmente en situaciones en las que el conjunto de datos posible 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
6
Q

Qué implementaciones hay de cache?

A
  • Lazy Population (Poblaci´on perezosa): En este m´etodo, la cach´e se llena
    o actualiza solo cuando es necesario; por ejemplo, cuando un cliente hace una
    solicitud y el resultado no est´a en la cach´e. Esto permite ahorrar recursos al
    replicar solo la informaci´on necesaria.
  • Active Population (Poblaci´on activa): En este caso, la cach´e se llena de
    manera proactiva, anticipando las solicitudes que es probable que se realicen en
    el futuro. Esta t´actica tiene como objetivo mejorar a´un m´as el rendimiento al
    preparar los datos antes de la solicitud.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qué beneficios tiene la cache?

A

El Cache es ampliamente utilizada en aplicaciones web para mejorar el
rendimiento y reducir la latencia. Algunos beneficios de su implementaci´on son:
* Performance: Aunque no ofrece mejoras tan significativas como la replicaci´on
de repositorios, a´un as´ı mejora el rendimiento del sistema al reducir el tiempo de
respuesta de las solicitudes.
* Simplicidad: es m´as sencillo de implementar en comparaci´on con la replicaci´on
de repositorios, lo que la convierte en una opci´on atractiva para sistemas con
requerimientos de recursos m´as modestos.

El cache requiere menos recursos de procesamiento y almacenamiento en com-
paraci´on con la replicaci´on de repositorios (RR), ya que solo replica datos relevantes
y puede transmitir solo cuando sea necesario. Debido a la naturaleza selectiva de la
cach´e, sin embargo, los beneficios en t´erminos de rendimiento percibido pueden ser
menores que los RR.

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

Respecto a Hierarchical styles, qué es client server?

A

El ”servidor-cliente” (servidor cliente, CS) es el estilo arquitect´onico m´as com´un
para aplicaciones basadas en red. El servidor y el cliente son los dos componentes
principales de la arquitectura de este estilo.
El componente que ofrece servicios y responde a las peticiones de los clientes es el
servidor. Es responsable de enviar o rechazar las solicitudes y responder a ellas.
El componente llamado cliente solicita servicios al servidor a trav´es de un conector.
El cliente sabe del servidor, pero no sabe de todos los clientes. Un servidor puede
manejar a muchos clientes.
Este estilo se destaca por la clara separaci´on de responsabilidades entre el servidor
y el cliente. El cliente se encarga de solicitar servicios y el servidor de proporcionarlos.
Esta separaci´on simplifica el dise˜no y facilita la evoluci´on de ambos componentes de
forma independiente.

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

Qué beneficios tiene el estilo de arquitectura client server?

A

Beneficios
* Escalabilidad: Debido a que el servidor es el componente que generalmente
requiere una mayor capacidad y recursos para atender a m´ultiples clientes, la
arquitectura ”Client-Server” permite un crecimiento m´as sencillo del sistema.
* Simplicidad: La separaci´on de funciones hace que el dise˜no general del sistema
sea m´as sencillo, lo que facilita el desarrollo y mantenimiento del software.
* Evolucionabilidad: La separaci´on de funciones permite que el cliente y el
servidor evolucionen de manera independiente. Siempre y cuando se mantenga
la interfaz entre ellos, las modificaciones en uno de los componentes no necesari-
amente afectar´an al otro.

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

Respecto a Hierarchical styles, qué es layered server?

A

Es un estilo arquitect´onico en el que las capas jer´arquicas organizan el sistema.
Cada capa proporciona servicios a la capa superior mientras que la capa inferior los
utiliza. Este m´etodo oculta las capas internas a las capas superiores para reducir el
acoplamiento entre las diferentes partes del sistema.

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

Qué beneficios y desventajas tiene layered server?

A

Beneficios
* Evolucionabilidad: Permite evolucionar cada capa de manera independiente
sin afectar a las dem´as.
* Extensibilidad: Es posible agregar nuevas capas a medida que se requieran
nuevas funcionalidades o servicios en el sistema.
* Reusabilidad: Las capas pueden ser dise˜nadas de forma modular y reutilizarse
en diferentes sistemas o contexto.
* Portabilidad: Las capas se pueden portar y utilizar en diferentes sistemas o
plataformas.

Sin embargo presenta una desventaja en la Performance, porque la adici´on de
capas puede introducir overhead y latencia en el sistema.

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

Respecto a Hierarchical styles, qué es layered client server?

A

El enfoque arquitect´onico ”Cliente Servidores de capas” (LCS) combina el concepto
de capas con el estilo ”Cliente Servidores de capas” (CS) en sistemas basados en
red. Para proporcionar una estructura m´as jer´arquica y modular, en este caso, las
arquitecturas CS se organizan en capas.

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

Qué es el reverse proxy?

A

El ”Reverse Proxy”, tambi´en conocido como proxy inverso, es una capa de aplicaci´on
accesible desde varios clientes y es un componente crucial de las arquitecturas LCS. Las
solicitudes de los clientes son recibidas por esta capa y luego enviadas a los componentes
del servidor. Adem´as, el ”Reverse Proxy” tiene la capacidad de traducir o modificar
las solicitudes antes de enviarlas a los servidores, lo que mejora la funcionalidad.

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

Qué beneficios tiene layered client server?

A

En cuesti´on a los beneficios, se suman los beneficios entre CS y LS.

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

Qué es un load balancer?

A

Es una parte importante de las arquitecturas de sistemas distribuidos que se
encarga de recibir solicitudes (requests) de los clientes y distribuirlas entre un grupo
de servidores, luego direccionando la respuesta del servidor seleccionado al cliente
correspondiente.
Su objetivo principal es mejorar el rendimiento y la disponibilidad del sistema
asegur´andose de que el tr´afico de las solicitudes se distribuya de manera equitativa y
se gestione de manera eficiente entre los servidores.

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

En qué se relaciona un load balancer y la arquitectura stateless?

A

La relaci´on entre el load balancer y arquitectura stateless, es que al servidor al
que se env´ıa una solicitud espec´ıfica no importa, ya que cada solicitud incluye todos
los datos necesarios para su procesamiento de manera independiente. Esto facilita la
distribuci´on eficiente de la carga y contribuye a la escalabilidad y la estabilidad del
sistema al eliminar la necesidad de preocuparse por la persistencia del estado en los
servidores individuales

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

Qué beneficios tiene un load balancer?

A
  • Escalabilidad: Soporta un volumen de usuarios/requests m´as alto.
  • Elasticidad: Seg´un el caso, podr´ıa escalar acorde a la demanda.
  • Disponibilidad: Las capas pueden ser dise˜nadas de forma modular y reutilizarse
    en diferentes sistemas o contexto.
  • Fiabilidad: El balanceador de carga mejora la confiabilidad del sistema al
    eliminar un solo punto de falla al distribuir el tr´afico entre varios servidores.
  • Performance: Mejor uso de los recursos escasos. En algunos casos, el bal-
    anceador de carga puede tratar ciertos tipos de solicitudes de manera diferenciada.
  • UX: Reduce el n´umero de errores visibles por el usuario.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Qué es un reverse proxy?

A

Es una parte importante de las arquitecturas de sistemas distribuidos que sirve
como intermediario entre los servidores reales y los clientes. Su funci´on principal es
recibir solicitudes de clientes, reenviarlas al servidor correspondiente y devolver la
respuesta del servidor al cliente. Una de sus caracter´ısticas principales es ocultar
la identidad de los servidores reales, actuando como una cara p´ublica o fachada del
sistema

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

Qué beneficios tiene un reverse proxy?

A

Seguridad: Act´ua como una barrera de seguridad que oculta la identidad y
ubicaci´on de los servidores reales. Al hacerlo, protege los servidores de posibles
ataques directos y reduce la exposici´on de vulnerabilidades. Esconde los servidores asi ecita explotar vulnerabilidades y puede implementar mecanismos de proteccion
contra ataques DoS
* Escalabilidad: Permite una mayor flexibilidad en el manejo de recursos, ya que
puede agregar o eliminar servidores reales de manera din´amica y transparente.
* Performance: Mejora el rendimiento del sistema al realizar t´ecnicas de acel-
eraci´on web, como el almacenamiento en cach´e, compresi´on y terminaci´on SSL

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

Respecto a Hierarchical styles, qué es Client-Stateless-Server?

A

Es un m´etodo arquitect´onico que proviene del estilo ”Client-Server” (CS), pero
tiene una limitaci´on: no se puede almacenar el estado de la sesi´on en el componente
servidor. En este caso, el propio cliente debe proporcionar toda la informaci´on necesaria
para comprender las solicitudes del cliente, y el servidor no mantiene ning´un tipo de
contexto o estado de la sesi´on. El cliente tiene todo el control sobre el estado.
¿Que es el estado? Cualquier informaci´on sobre la sesi´on del cliente que el servidor
debe recordar y mantener entre varias solicitudes se conoce como estado.

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

Qué beneficios y desvdentajas tiene Client-Stateless-Server?

A

Beneficios
* Visibilidad: Al no mantener el estado, simplifica la tarea de un sistema de
monitoreo.
* Confiabilidad: Al no depender del estado del servidor, el CSS facilita la
recuperaci´on ante fallos parciales o interrupciones.
* Escalabilidad: Permite asignar libremente un servidor para procesar una
solicitud.

Desventajas
* Performance: Al transmitir toda la informaci´on requerida con cada solicitud,
puede haber una transmisi´on de datos repetitiva a trav´es de la red, lo que puede
afectar el rendimiento en comparaci´on con sistemas que almacenan el estado en
el servidor.

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

Qué es Client-Cache-Stateless-Server?

A

Es un enfoque arquitect´onico que combina caracter´ısticas de ”Client Stateless
Server” (CSS) y Client Cache($). Esta arquitectura incorpora una capa de mediadores
de cach´e adicional para mejorar el rendimiento y la eficiencia del sistema.
Los clientes interact´uan con un servidor que no mantiene estado (CSS) en C$SS, lo
que significa que no almacena datos de sesi´on entre solicitudes. El servidor responde
de manera independiente y sin dependencia de estados anteriores a cada solicitud del
cliente, que contiene toda la informaci´on necesaria para ser comprendida y procesada.
Sin embargo, para mejorar el rendimiento y la eficiencia, se agrega la funcionalidad
de cach´e (Client Cache, $) en alg´un lugar de la arquitectura. Los mediadores4 de cach´e
almacenan copias temporales de respuestas a solicitudes previas para que, si un cliente
hace una solicitud id´entica o similar a una que ya ha sido atendida, el servidor pueda
evitar repetir todo el procesamiento y simplemente devolver la respuesta desde la cach´e.

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

Qué beneficios tiene Qué es Client-Cache-Stateless-Server?

A

Beneficios
* Performance: El uso del cach´e para almacenar respuestas previas reduce el
tiempo y los recursos necesarios para procesar solicitudes repetitivas.

24
Q

Qué es Layered-Client-Cache-Stateless-Server?

A

Es un estilo arquitect´onico que combina caracter´ısticas de los estilos ”Layered
Client Server” y ”Client Cache Stateless Server”. Para mejorar el rendimiento, la
eficiencia y la escalabilidad del sistema, se agregan componentes de proxy y cach´e en
esta arquitectura.
El LC$SS utiliza un enfoque de capas jer´arquicas donde los clientes interact´uan con
un servidor que no mantiene estado (Client Stateless Server, CSS), y cada solicitud del
cliente contiene toda la informaci´on necesaria para comprender y procesar. Adem´as,
incluye componentes de cach´e que almacenan copias temporales de respuestas previa-
mente atendidas, as´ı como componentes de proxy que funcionan como intermediarios
entre los clientes y los servidores reales.
En relaci´on a los beneficios y contras, se suman ambos aspectos de LCS y C$SS.

25
Qué es Remote session?
Proviene del estilo ”Client-Server” (CS) y tiene como objetivo reducir la complejidad y aumentar la reutilizaci´on de los componentes del cliente. En esta arquitectura, los clientes inician una sesi´on en el servidor, solicitan sus servicios y cierran la sesi´on al final. Es un estilo arquitect´onico que simplifica la interacci´on del cliente con el servidor durante una sesi´on activa al centralizar el estado de la aplicaci´on en el servidor.
26
Qué beneficios y desventajas tiene Remote session?
Beneficios * Simplicidad: Es es m´as f´acil de mantener y gestionar, ya que la interfaz del servidor es centralizada y los clientes solo necesitan interactuar con el servidor durante la sesi´on activa. Desventajas * Escalabilidad: El server requiere mantener el estado de la app. * Visibilidad: Dado que el estado de la aplicaci´on se mantiene completamente en el servidor, el monitor o el sistema de monitoreo debe tener acceso al estado completo del servidor.
27
Qué es Remote Data access?
Es un estilo arquitect´onico que se deriva del estilo ”Client-Server” (CS) y busca distribuir el estado de la aplicaci´on entre el cliente y el servidor. En esta arquitectura, el cliente env´ıa consultas al servidor remoto en un formato est´andar, como SQL, y el servidor procesa estas consultas en un workspace para obtener un conjunto potencialmente grande de datos. Luego, el cliente puede realizar m´as operaciones sobre este dataset sin necesidad de transmitir todos los datos nuevamente.
28
Qué beneficios y desventajas tiene remote data access?
Beneficios * Performance: Datasets grandes pueden ser reducidos del lado del servidor, sin transmisi´on de datos. * Visibilidad: El uso de consultas de lenguaje est´andar como SQL permite que el cliente y el servidor se comuniquen de manera consistente. Sin embargo, esto tambi´en podr´ıa requerir que el monitor tenga acceso al estado del servidor. Desventajas * Escalabilidad: El server requiere mantener el estado de la app. * Confiabilidad: Si una operaci´on falla, el workspace puede quedar en un estado desconocido.
29
Qué es una virtual machine?
Todos los estilos de Mobile Code se basan en esta arquitectura. Este m´etodo asegura la confiabilidad y la seguridad al ejecutar el c´odigo en un ambiente controlado proporcionado por la m´aquina virtual. Un motor de lenguaje de scripting como Perl o Python es un ejemplo com´un de la arquitectura de la m´aquina virtual. En este caso, la m´aquina virtual del lenguaje interpreta y ejecuta el c´odigo escrito en el lenguaje de scripting, lo que crea un ambiente controlado para la ejecuci´on del c´odigo.
30
Qué beneficios y desventjaas tienen las virtual machines?
Beneficios * Portabilidad: Separa el c´odigo de su implementaci´on/aplicaci´on en una plataforma espec´ıfica. * Extensibilidad: Es m´as f´acil crear funcionalidad sobre una plataforma gen´erica. Desventajas fuente. * Visibilidad: Es dif´ıcil saber que va a hacer un ejecutable mirando s´olo su c´odigo fuente
31
Qué es Remote Evaluation?
Es una mezcla de caracter´ısticas de ”m´aquina virtual” (VM) y ”Client-Server” (CS). En esta arquitectura, el cliente sabe c´omo (know-how) ejecutar un servicio, pero carece de los recursos necesarios para hacerlo eficientemente, como CPU, memoria o acceso a una fuente de datos. El cliente env´ıa el ”conocimiento” o el c´odigo requerido al servidor para que este ´ultimo lo ejecute utilizando sus propios recursos en lugar de ejecutar la operaci´on localmente. El cliente recibe el resultado una vez que se completa la ejecuci´on en el servidor. SQL es un ejemplo com´un de esta arquitectura. El cliente env´ıa una consulta SQL al servidor en este caso, que puede leer y ejecutar el c´odigo SQL para recuperar los datos de una base de datos necesarios.
32
Qué beneficios y desventajas tiene Remote evaluation?
Beneficios * Performance: En lugar de usar los recursos del servidor para realizar la operaci´on del lado del cliente, donde podr´ıa haber falta de recursos, se utilizan los recursos del servidor. * Extensibilidad: Los componentes del servidor se pueden ajustar para satisfacer las necesidades particulares del cliente. Desventajas * Visibilidad: El cliente env´ıa c´odigo en lugar de un simple request. * Escalabilidad: A mayor carga, mayor consumo de recursos. * Confiabilidad: El servidor tiene menos control de la ejecuci´on.
33
Qué es Code On Demand?
Esta arquitectura, la cual deriva de VM y CS, el cliente tiene los recursos (como CPU, memoria o acceso a una fuente de datos) para ejecutar un servicio, pero no tiene el conocimiento o la experiencia necesarios para realizar la operaci´on de manera efectiva. El cliente env´ıa una solicitud al servidor pidi´endole el c´odigo que representa el ”know-how” necesario en lugar de enviar los datos al servidor para que se realice el procesamiento. El cliente ejecuta el c´odigo del servidor localmente para completar la operaci´on. JavaScript (JS) en aplicaciones web es un ejemplo com´un de la arquitectura ”Code on Demand”. En este caso, el cliente tiene la capacidad de ejecutar c´odigo JavaScript, pero el servidor puede proporcionar scripts adicionales que se ejecutan localmente en el navegador del cliente para mejorar la experiencia del usuario o proporcionar funcionalidades adicionales.
34
Qué beneficios y desventajas tiene Code On Demand?
Beneficios * Configurabilidad y Extensibilidad: Permite agregar nuevas funcionalidades a un cliente ya desplegado sin cambiar el c´odigo fuente original. * Escalabilidad: Utilizar los recursos de los clientes para ejecutar el c´odigo, reduce la carga en el servidor. * Performance: La ejecuci´on se realiza interactuando localmente con el cliente, sin necesidad del servidor. Desventajas * Visibilidad: El servidor env´ıa c´odigo al cliente en lugar de datos.
35
Qué es Layered Code on Demand Client Cache Stateless Server¡
Esta arquitectura deriva de LC$SS + COD y se acerca m´as al concepto actual de la web y habla de casos en los que los navegadores permiten la ejecuci´on de applets o extensiones de protocolos. Como ejemplo, esta arquitectura podr´ıa ser un tipo de navegador web que permite la ejecuci´on de extensiones o applets para mejorar la funcionalidad de las p´aginas web. Es importante destacar no se relaciona directamente con protocolos espec´ıficos como HTTP o REST. Esto se debe a que se refiere m´as al concepto general de permitir que el 28 servidor proporcione c´odigo ejecutable al cliente y que este lo ejecute localmente para aumentar sus capacidades y mejorar la interacci´on con el servidor o otras aplicaciones web.
36
Qué es Mobile Agent?
Esta arquitectura combina las caracter´ısticas REV y (COD). Un componente completo, que incluye su estado, c´odigo y datos, se mueve de un sitio remoto a otro mediante este m´etodo. Los agentes m´oviles pueden trabajar en ambos sentidos, es decir, pueden pasar del cliente al servidor (c → s) o del servidor al cliente (s →c), dependiendo de la situaci´on. Los agentes m´oviles ofrecen una gran flexibilidad en cuanto a cu´ando y d´onde hacer el movimiento. Por ejemplo, una aplicaci´on en ejecuci´on puede estar procesando una tarea espec´ıfica y, en un momento determinado, decidir moverse a otra ubicaci´on. Esto podr´ıa ocurrir para estar m´as cerca del pr´oximo conjunto de datos o para aprovechar recursos espec´ıficos de otra m´aquina.
37
Qué es Event Based Integration?
Es un estilo de integraci´on de componentes en el que se utiliza un enfoque Peer-to- Peer para la comunicaci´on entre los componentes. En lugar de invocar directamente a otros componentes, un componente puede publicar uno o m´as eventos de esta manera. En lugar de ser invocados directamente, otros componentes se registran para recibir notificaciones sobre eventos espec´ıficos que puedan ser relevantes para vos. El sistema invoca a todos los componentes registrados cuando se produce un evento. Algunos ejemplos de EBI son: Smalltalk, MVC, Publisher/Subscriber.
38
Qué beneficios y desventajas tiene Event Based Integration?
Beneficios * Extensibilidad: Es f´acil agregar nuevos componentes que respondan a eventos existentes o nuevos. * Reusabilidad: Establece un mecanismo de integraci´on y una interfaz de eventos com´un. * Evolucionabilidad: Permite reemplazar componentes sin afectar a otros. * Performance: En algunos sistemas, principalmente dominados por monitoreo, se elimina la necesidad de polling. Desventajas * Escalabilidad: La cantidad de notificaciones de eventos y la tormenta de eventos pueden tener un impacto en el funcionamiento del sistema. Adem´as, si no se gestiona adecuadamente, el filtrado de eventos puede agregar complejidad y crear puntos de falla ´unicos en el sistema. * Entendimiento: Dif´ıcil predecir qu´e ocurrir´a ante un evento (ej. orden). Tampoco se sabe si alguien responder´a.
39
Qué es Distribuited Objetcs?
Es un estilo de arquitectura Peer-to-Peer que organiza el sistema como un conjunto de componentes interactivos que act´uan como pares. Este estilo representa los compo- nentes como objetos con un estado interno oculto o protegido, as´ı como sus operaciones asociadas. Las invocaciones de operaciones permiten que los objetos se comuniquen entre s´ı y pueden provocar una serie de invocaciones en otros objetos. Cada objeto funciona como una entidad abstracta que encapsula su estado interno y las operaciones que pueden realizar sobre ese estado. Una operaci´on en un objeto puede invocar operaciones en otros objetos, lo que puede dar lugar a cadenas de invocaciones que pueden extenderse a lo largo de varios objetos. El estado de la aplicaci´on se distribuye entre los objetos del sistema, lo que permite que diferentes partes del sistema mantengan su propio estado y trabajen juntas para lograr un objetivo com´un.
40
Qué beneficios y desventajas tiene distribuited objects?
Beneficios * Evolucionabilidad: Los objetos tiene interfaz p´ublica, estado privado. Desventajas sistema.
41
Qué es Brokered distributed objects?
Este estilo es una mezcla de los estilos ”Distributed Objects” (DO) y y ”Layered Client Server” (LCS). Tiene como objetivo resolver el problema de la identidad de los objetos distribuidos al agregar un intermediario (broker) que facilita la comunicaci´on entre los objetos distribuidos. El problema de la identidad se reduce ya que los clientes utilizan nombres de servicio generales en lugar de identidades espec´ıficas. El broker se encarga de identificar la identidad del objeto espec´ıfico al que se env´ıa la solicitud cuando un cliente env´ıa una solicitud con un nombre de servicio gen´erico.
42
Qué beneficios y desventajas tiene Brokered distribuited objects?
Beneficios * Evolucionabilidad y Reusabilidad: Los nombres de servicio gen´ericos facilitan la reutilizaci´on y evoluci´on de los componentes. Desventajas * Eficienciay Performance percibida: Dado que cada solicitud debe pasar a trav´es del intermediario para que se determine la identidad del objeto espec´ıfico, el uso del intermediario introduce una mayor cantidad de interacciones de red.
43
Qué son las Data Centered Architectures?
Son un estilo arquitect´onico en el que una estructura central de datos que almacena el estado del sistema es el componente principal. Este almacenamiento centralizado permite que los componentes independientes del sistema realicen sus operaciones y procesos. El repositorio central puede variar seg´un c´omo se decida qu´e procesos ejecutar. El repositorio puede ser una base de datos que almacena los datos de entrada si el input stream decide/dispara los procesos a ejecutar. Por otro lado, el repositorio puede ser conocido como blackboard si el estado actual del sistema determina qu´e procesos deben ejecutarse. En este caso, el repositorio es donde los componentes consultan y actualizan el estado compartido.
44
Qué es Blackboard?
Es una arquitectura en la que un componente central llamado blackboard permite la comunicaci´on entre m´ultiples fuentes de conocimiento. El blackboard funciona como una estructura de datos compartida con informaci´on sobre c´omo resolver un problema. En situaciones en las que la soluci´on de un problema complejo requiere el aporte de conocimiento de diversas fuentes, se utiliza este estilo arquitect´onico. Veamos algunas caracter´ısticas principales de esto: * Fuentes de conocimiento: Son componentes independientes que tienen conocimientos espec´ıficos para abordar varios aspectos del problema. Cada fuente de conocimiento es responsable de analizar el estado actual del blackboard, proporcionar informaci´on relevante y realizar modificaciones en ´el. * Iteraciones para llegar a la soluci´on: La soluci´on de problemas es iterativa. El blackboard se modifica mientras las fuentes de conocimiento trabajan juntas. * Control coordinado por el estado del blackboard: La coordinaci´on de las fuentes de conocimiento solo depende del estado actual del blackboard. Las fuentes de conocimiento responden oportunamente a los cambios del blackboard.
45
Qué es pipe & filter?
Este estilo se basa en la creaci´on de flujos de datos de salida mediante el proce- samiento de flujos de datos de entrada por parte de filtros independientes. El flujo de datos se procesa gradualmente y cada filtro es un componente independiente. Este estilo es adecuado para problemas que se dividen en etapas independientes y permite el desacoplamiento completo entre los filtros. Es ´util para el procesamiento eficiente de grandes vol´umenes de datos y facilita el desarrollo y la reutilizaci´on de componentes. Sin embargo, el flujo de datos puede estar sobrecargado y el filtro m´as lento puede afectar el rendimiento. Este estilo ve el sistema como una serie de transformaciones consecutivas. Es beneficioso cuando se puede abordar un problema mediante un flujo continuo de datos, como un ”r´ıo”. Permite medir el throughput del sistema, que es la cantidad de datos que puede procesar el sistema en un per´ıodo de tiempo determinado. Una red puede ser representada por una tuber´ıa, donde la salida de un filtro puede ser la entrada de varios filtros, lo que permite un procesamiento de datos m´as complejo y eficiente
46
Qué beneficios y desventajas tiene pipe & filter?
Beneficios * Simplicidad: Se puede entender el sistema como una composici´on simple del comportamiento de los filtros individuales. * Reusabilidad: Los filtros pueden reusarse y conectarse entre s´ı, siempre que est´en de acuerdo con sus interfaces. * Extensibilidad: Nuevos filtros pueden agregarse. * Evolucionabilidad: Los filtros pueden reemplazarse por una versi´on mejorada, sin impactar en los restantes. * Configurabilidad: La aplicaci´on podr´ıa determinar los filtros a utilizar. * Verificabilidad: Permiten ciertos an´alisis (deadlocks, throughput, etc.). * Performance Perc.: Favorece el procesamiento concurrente. Desventajas * Performance Perc: Largas tuber´ıas generan retrasos de propagaci´on. Podr´ıa verse afectada si el problema no se adapta al flujo de datos. Si uno o varios filtros no pueden procesar sus entradas incrementalmente y deben esperar a tener todos los datos disponibles para procesarlos en batch.
47
Qué es Uniform Pipe & Filter?
Es una extensi´on del estilo ”Pipe & Filter” (PF) que incluye una restricci´on adicional: todos los filtros deben tener la misma interfaz. Con esta restricci´on, los filtros que se desarrollaron de manera independiente se pueden combinar libremente para crear nuevas aplicaciones.
48
Cuáles son las ventajas y desventajas de Uniform Pipe & filter?
Beneficios * Simplicidad: M´as f´acil entender c´omo funciona un filtro (vs PF). * Reusabilidad: Mayores posibilidades que en PF. 32 * Extensibilidad: Mayores posibilidades que en PF. * Configurabilidad: Mayores posibilidades que en PF. * Visibilidad: Es m´as f´acil para un componente monitorear la interacci´on entre dos filtros cualesquiera. Desventajas * Performance: Los datos podr´ıan requerir ser convertidos desde/hacia el formato original/definido por la interfaz.
49
Qué es Batch sequential?
Es similar a ”Pipe & Filter” (PF) o ”Uniform Pipe & Filter”(UPF) pero con una diferencia clave: cada filtro debe terminar su procesamiento antes de que comience el siguiente filtro. Esto hace m´as sencillo dividir el sistema en subsistemas independientes, pero puede aumentar la latencia y reducir el throughput. Adem´as, disminuye las oportunidades de competici´on en el procesamiento de datos.
50
Web es igual a internet?
La respuesta es no, no son lo mismo. El internet es un sistema de redes de computadoras interconectadas. Mientras que la Web es un sistema de documentos hipertexto interrelacionados, accedidos a traves de internet. Podr´ıamos ver a la web como una aplicacion ”corriendo” sobre internet
51
Qué atributos de calidad tiene la web?
* Low Entry-barrier (Usability): Cualquier persona puede contribuir y partic- ipar en la Web porque la creaci´on de informaci´on es voluntaria. * Extensibilidad: La web debe ser capaz de adaptarse y incorporar nuevas funcionalidades a medida que se desarrolla. * Disponibilidad: La web puede presentar condiciones adversas y las mejores aplicaciones construidas sobre la web deben poder resistir a ellas. * Internet-Scale 1. Anarchic Scalability: La web debe ser capaz de adaptarse y incorporar nuevas funcionalidades a medida que se desarrolla. Las relaciones a largo plazo y la coordinaci´on centralizada entre los componentes del sistema no existen en la Web. Los clientes no pueden conocer todos los servidores y los servidores no pueden mantener un estado entre solicitudes. 2. Independent Deployment:: Las partes del sistema de la Web pueden evolucionar a diferentes ritmos. * Distributed Hypermedia (Hipertexto Distribuido): Las instrucciones sobre qu´e se puede hacer con los datos se trata igual que a los datos. Tanto los datos como sus instrucciones son manejadas por el server.
52
Qué es REST?
Es un estilo arquitect´onico para dise˜nar sistemas de software que se utilizan ampliamente en aplicaciones web y servicios web. Los sistemas se consideran colecciones de recursos que se pueden identificar a trav´es de URLs en el contexto de REST. Cada recurso es una entidad o un conjunto de datos que se puede acceder, crear, actualizar o eliminar a trav´es de las operaciones est´andar de HTTP, como GET (obtener), POST (crear), PUT (actualizar) y DELETE (eliminar). Estas operaciones se realizan mediante solicitudes HTTP a trav´es de la web. La caracter´ıstica principal de REST es la interfaz uniforme (Uniform Interface), que establece un conjunto de reglas que todos los servicios web basados en REST deben seguir.
53
Qué es la interfaz uniforme que deben seguir en REST?
Identificaci´on de Recursos: Todo recurso debe tener 1 ID y el ID puede cambiar. (Simplicity, Visibility, Reusability). * Los m´etodos de acceso con misma sem´antica: todas las operaciones de acceso (m´etodos) tienen el mismo significado y comportamiento para todos los recursos en el sistema. (Visibility, Scalability y Availability (posibilita LS y $)). * Manipulaci´on de Recursos a trav´es de Representaciones: Los recursos pueden tener m´ultiples representaciones, como JSON, XML o HTML. Capturan el estado actual ´o deseado de un recurso. Se transfieren entre componentes. (Simplicity, Visibility, Reusability, Evolvability (information hiding)). * Mensajes Auto-descriptivos: Cada mensaje HTTP debe ser autodescriptivo y contener toda la informaci´on que el servidor necesita para comprender y procesar 34 la solicitud. (Visibility, Scalability y Availability (posibilita LS y $), Evolvability (extensible communication)) * HATEOAS (Hipertexto como Motor de Estado de la Aplicaci´on): En las respuestas, el servidor debe proporcionar enlaces a otros recursos relacionados. Esto permite que el cliente explore y navegue a trav´es de los enlaces hipertexto de la aplicaci´on. (Simplicity, Visibility, Reusability, Evolvability (loose coupling), Adaptable (late binding of application transitions))
54
Qué es Application state y resource state?
La informaci´on sobre ”d´onde est´a” o en qu´e punto se encuentra un cliente durante su interacci´on con el servidor se refiere al Application State en REST. En otras palabras, el Application State indica el estado actual de la aplicaci´on del cliente mientras interact´ua con el servidor. (Esta del lado del cliente) Por otro lado, el Resource State se refiere al estado de un recurso espec´ıfico que est´a almacenado en el servidor y que puede ser modificado a trav´es del env´ıo de representaciones o datos al servidor mediante solicitudes HTTP. ¿Y esto como se relaciona bien con REST? Bueno, en REST, Application State y el Resource State se manejan de manera independiente. El servidor no almacena datos sobre el estado de la aplicaci´on para cada cliente porque REST es una arquitectura sin estado. Por el contrario, el estado de la solicitud se almacena en el cliente y se env´ıa al servidor para cada solicitud relevante. El servidor responde con el estado de recursos actualizado en respuesta a la solicitud del cliente.
55
Qué es la HyperMedia?
En REST este concepto es clave, Hypermedia significa que la informaci´on de control de aplicaci´on puede estar dentro o sobre la presentaci´on de la informaci´on. Esta informaci´on sobre el control de aplicaci´on se representa en un lenguaje que las m´aquinas pueden leer y se utiliza para conectar recursos y describir sus capacidades. Permite la navegaci´on y la interacci´on entre recursos mediante enlaces (links). Los enlaces son relaciones hypermedia que permiten organizar la informaci´on de manera adaptable y brindan instrucciones sobre c´omo usar la informaci´on en la aplicaci´on. Estos enlaces permiten que el servidor muestre al cliente un men´u de opciones que le permite acceder a recursos relacionados o realizar acciones espec´ıficas. La presencia de Hypermedia en las respuestas del servidor permite que el cliente interact´ue din´amicamente con la aplicaci´on, lo cual permite que el cliente decide qu´e es lo que va a pasar.