La arquitectura basada en el espacio ( SBA ) es una arquitectura de computación distribuida para lograr la escalabilidad lineal de aplicaciones de alto rendimiento con estado 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 cuadrícula.. 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í, por lo 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 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 de la industria de valores para implementar aplicaciones de negociación de valores electrónicos escalables.
Historia
La arquitectura basada en el espacio (SBA) se inventó y desarrolló originalmente en Microsoft en 1997–98. Internamente en Microsoft se conocía como plataforma de almacenamiento en caché distribuido de Youkon (YDC). Los primeros grandes proyectos web basados en él fueron MSN Live Search (lanzado en septiembre de 1999) y más tarde el almacén de datos de marketing de clientes de MSN (base de datos de varios terabytes en memoria compartida por todos los sitios de MSN), así como varios otros sitios de MSN lanzados en finales de la década de 1990 y principios de la de 2000. Consulte las patentes de EE. UU. 6,453,404 y 6,449,695: [1] [2] y otras patentes basadas en estas: [3]
Componentes de la arquitectura espacial
Una aplicación construida sobre 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 proporciona Spring Framework .
- Middleware virtual
- Un modelo de agrupación y tiempo de ejecución común, que se utiliza en toda la pila de middleware . Los componentes centrales de middleware en una arquitectura típica de SBA son:
Componente Descripción Cuadrícula de mensajería Maneja el flujo de transacciones entrantes, así como la comunicación entre servicios. Cuadrícula de datos Administra los datos en la memoria distribuida con opciones para sincronizar esos datos con una base de datos subyacente. Rejilla de procesamiento Componente de procesamiento paralelo basado en el patrón maestro / trabajador (también conocido como patrón de pizarra ) que permite el procesamiento paralelo de eventos entre diferentes servicios
- Modelo de servicios impulsado por POJO
- Un modelo de servicios livianos que puede tomar cualquier implementación estándar de Java y convertirla en un servicio distribuido débilmente acoplado. El modelo es ideal para la interacción con servicios que se ejecutan dentro de la misma unidad de procesamiento.
- Contenedor impulsado por SLA
- El contenedor controlado por SLA permite la implementación de la aplicación en un grupo dinámico de máquinas basado en acuerdos de nivel de servicio. Las definiciones de SLA incluyen la cantidad de instancias que deben ejecutarse para cumplir con las políticas de conmutación por error y escalado de aplicaciones, así como con otras políticas.
Ver también
Referencias
- ^ http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&co1=AND&d=PTXT&s1=%22Bere + Alexandre% 22 & s2 = cache & OS =% 22Bereznyi; + Alexandre% 22 + AND + cache & RS =% 22Bereznyi; + Alexandre% 22 + AND + cache
- ^ http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=2&f=G&l=50&co1=AND&d=PTXT&s1=%3Bere + Alexandre% 22 & s2 = cache & OS =% 22Bereznyi; + Alexandre% 22 + AND + cache & RS =% 22Bereznyi; + Alexandre% 22 + AND + cache
- ^ "Resultados de búsqueda de la base de datos de patentes: Bereznyi en la colección de patentes de Estados Unidos" .
- Bernhard Angerer, Programación basada en el espacio
- Joseph Ottinger, Arquitectura basada en el espacio
- Julian Browne, Ilustración de arquitectura basada en el espacio
- Julian Browne, agilidad basada en el espacio
- Julian Browne, Arquetipos basados en el espacio
- Owen Taylor, Arquitectura basada en el espacio: una implementación de TPC
- Udi Dahan, el software simplista, pensamiento arquitectónico basado en el espacio
- Mike Herrick, SBA & EDA Lecciones aprendidas
- Tobin Harris, Arquitectura basada en el espacio: uno para ver
- Udi Dahan, el software simplista, arquitectura basada en el espacio
- Guy Nirpaz (webcast), Arquitectura basada en el espacio - SOA escalable
Literatura
Artículos / artículos 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) . 2006 Segundo Simposio Internacional IEEE 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.
- Engelhardtsen, Fritjof Boger; Tommy Gagnes (2002). "Uso de JavaSpaces para crear sistemas distribuidos adaptables" (PDF) . Colegio Universitario Agder, Noruega.