Una arquitectura basada en el espacio ( SBA ) es un enfoque de los sistemas informáticos distribuidos en el que los distintos componentes interactúan entre sí intercambiando tuplas o entradas a través de uno o más espacios compartidos. Esto contrasta con los enfoques de servicio de cola de mensajes más comunes , en los que los distintos componentes interactúan entre sí intercambiando mensajes a través de un agente de mensajes. En cierto sentido, ambos enfoques intercambian mensajes con algún agente central, pero la forma en que intercambian mensajes es muy diferente.
Una analogía podría ser donde un agente de mensajes es como una conferencia académica , donde cada presentador tiene el escenario y presenta en el orden en que está programado; mientras que un espacio de tuplas es como una no conferencia , donde todos los participantes pueden escribir en una pizarra común simultáneamente y todos pueden verla al mismo tiempo.
- Espacios de tuplas
- Cada espacio es como un 'canal' en un sistema de mensajería con el que los componentes pueden elegir interactuar.
- Los componentes pueden escribir una 'tupla' o 'entrada' en un espacio, mientras que otros componentes pueden leer entradas/tuplas del espacio, pero utilizando mecanismos más poderosos que los intermediarios de mensajes.
- La escritura de entradas en un espacio generalmente no está ordenada como en un agente de mensajes, pero puede estarlo si es necesario.
- Diseñar aplicaciones utilizando este enfoque es menos intuitivo para la mayoría de las personas y puede presentar una mayor carga cognitiva para apreciar y explotar.
- Brokers de mensajes
- Cada bróker normalmente admite varios "canales" con los que los componentes pueden elegir interactuar.
- Los componentes escriben 'mensajes' en un canal, mientras que otros componentes leen mensajes del canal.
- La escritura de mensajes en un canal generalmente se realiza en orden, donde generalmente se leen en el mismo orden.
- Diseñar aplicaciones usando este enfoque es más intuitivo para la mayoría de las personas, de la misma manera que las bases de datos NoSQL son más intuitivas que las SQL.
Un objetivo clave de ambos enfoques es crear sistemas débilmente acoplados que minimicen la configuración, especialmente el conocimiento compartido de quién hace qué, lo que conduce a los objetivos de mejor disponibilidad, resiliencia, escalabilidad, etc.
Más específicamente, una SBA es una arquitectura de computación distribuida para lograr una escalabilidad lineal de aplicaciones con estado y de alto rendimiento utilizando el paradigma del espacio de tuplas . Sigue muchos de los principios de transferencia de estado representacional (REST), arquitectura orientada a servicios (SOA) y arquitectura impulsada por eventos (EDA), así como elementos de computación en red . Con una arquitectura basada en el espacio, las aplicaciones se construyen a partir de un conjunto de unidades autosuficientes, conocidas como unidades de procesamiento (PU). Estas unidades son independientes entre sí, de modo que la aplicación puede escalar agregando más unidades. El modelo SBA está estrechamente relacionado con otros patrones que han demostrado ser exitosos para abordar el desafío de la escalabilidad de las aplicaciones, como la arquitectura de nada compartido (SN), utilizada por Google, Amazon.com y otras empresas conocidas. El modelo también ha sido aplicado por muchas empresas en la industria de valores para implementar aplicaciones escalables de negociación electrónica de valores.
Historia
La arquitectura basada en el espacio (SBA, por sus siglas en inglés) fue inventada y desarrollada originalmente en Microsoft en 1997-98. Internamente en Microsoft se la conocía como plataforma de almacenamiento en caché distribuido Youkon (YDC, por sus siglas en inglés). Los primeros proyectos web importantes basados en ella fueron MSN Live Search (lanzado en septiembre de 1999) y, posteriormente, MSN Customer marketing data store (una base de datos en memoria de varios terabytes compartida por todos los sitios de MSN), así como una serie de otros sitios de MSN lanzados a finales de los años 90 y principios de los 2000. Véanse las patentes estadounidenses 6.453.404 y 6.449.695: [1] [2] y otras patentes basadas en ellas: [3]
Componentes de la arquitectura basada en el espacio
Una aplicación creada según los principios de la arquitectura basada en el espacio normalmente tiene los siguientes componentes:
- Unidad de procesamiento
- La unidad de escalabilidad y conmutación por error. Normalmente, una unidad de procesamiento se construye a partir de un contenedor POJO (Plain Old Java Object), como el que ofrece Spring Framework .
- Middleware virtual
- Un modelo de clúster y tiempo de ejecución común, utilizado en toda la pila de middleware . Los componentes centrales del middleware en una arquitectura SBA típica son:
- Modelo de servicios impulsado por POJO
- Un modelo de servicios liviano que puede tomar cualquier implementación estándar de Java y convertirla en un servicio distribuido acoplado de forma flexible. El modelo es ideal para la interacción con servicios que se ejecutan dentro de la misma unidad de procesamiento.
- Contenedor controlado por SLA
- El contenedor controlado por SLA permite la implementación de la aplicación en un grupo dinámico de máquinas según los acuerdos de nivel de servicio. Las definiciones de SLA incluyen la cantidad de instancias que deben ejecutarse para cumplir con las políticas de escalamiento y conmutación por error de la aplicación, así como otras políticas.
Véase también
Referencias
- ^ Patente de Estados Unidos: 6453404
- ^ Patente de Estados Unidos: 6449695
- ^ "Resultados de la búsqueda en la base de datos de patentes: Bereznyi en la colección de patentes de EE. UU.".
Literatura
Artículos/documentos técnicos:
- Xu, Dezheng; Xiaoying Bai; Guilan Dai (2006). "Una arquitectura de coordinación basada en el espacio de tuplas para agentes de prueba en el marco MAST" (PDF) . Segundo Simposio Internacional IEEE de 2006 sobre Ingeniería de Sistemas Orientados a Servicios (SOSE'06) . Universidad de Tsinghua, China. págs. 57–66. doi :10.1109/SOSE.2006.6. ISBN. 0-7695-2726-4.S2CID 19977346 .
- Engelhardtsen, Fritjof Boger; Tommy Gagnes (2002). "Uso de JavaSpaces para crear sistemas distribuidos adaptativos" (PDF) . Agder University College, Noruega.