La arquitectura impulsada por eventos por etapas ( SEDA ) se refiere a un enfoque de la arquitectura de software que descompone una aplicación compleja impulsada por eventos en un conjunto de etapas conectadas por colas. [1] Evita la alta sobrecarga asociada con los modelos de concurrencia basados en subprocesos (es decir, bloqueo, desbloqueo y sondeo de bloqueos) y desacopla la programación de eventos y subprocesos de la lógica de la aplicación. Al realizar un control de admisión en cada cola de eventos , el servicio puede estar bien acondicionado para cargarse, lo que evita que los recursos se sobrecomprometan cuando la demanda excede la capacidad del servicio.
SEDA emplea un control dinámico para ajustar automáticamente los parámetros de tiempo de ejecución (como los parámetros de programación de cada etapa), así como para gestionar la carga (como la ejecución de un deslastre de carga adaptativo ). La descomposición de los servicios en un conjunto de etapas también permite la modularidad y la reutilización de código , así como el desarrollo de herramientas de depuración para aplicaciones complejas impulsadas por eventos.
Véase también
Referencias
- ^ "Una arquitectura para servicios de Internet altamente concurrentes y bien condicionados" (PDF) . Universidad de California en Berkeley. Archivado desde el original (PDF) el 4 de julio de 2012 . Consultado el 2 de marzo de 2023 .
Al dividir una aplicación en un conjunto de etapas con colas explícitas entre ellas, los diseñadores de aplicaciones pueden centrarse en la lógica del servicio y la gestión de la concurrencia para etapas individuales, "conectándolas" posteriormente para formar un servicio completo. Las colas desacoplan la ejecución de cada etapa, lo que permite desarrollar etapas de forma independiente.
Bibliografía
- Welsh, Matt; Culler, David; Brewer, Eric (diciembre de 2001), "SEDA: una arquitectura para servicios de Internet escalables y bien acondicionados" en "SOSP '01 Actas del decimoctavo simposio de la ACM sobre principios de sistemas operativos" (1.ª ed.), Association for Computing Machinery , págs. 230-243, ISBN 978-1-58113-389-9
Enlaces externos
- Apache ServiceMix proporciona un contenedor Java SEDA, combinándolo con arquitecturas de mensajes relacionadas ( JMS , JCA y flujo directo).
- JCyclone: implementación de SEDA en código abierto en Java
- Mule ESB es otra implementación de Java de código abierto
- SEDA: una arquitectura para aplicaciones de servidor altamente concurrentes que describe la tesis doctoral de Matt Welsh de la Universidad de Harvard
- Una retrospectiva sobre SEDA por Matt Welsh, 26 de julio de 2010