Багатоетапна подійно-орієнтована архітектура
Багатоетапна подійно-орієнтована архітектура (англ. staged event-driven architecture; надалі SEDA) - підхід до архітектури програмного забезпечення, за якого здійснюється декомпозиція складної подійно-орієнтованої програми на кілька етапів, з'єднаних у черги.[1]
Переваги
Дозволяє уникнути високих накладних витрат, пов'язаних з потоко-орієнтованими паралельними моделями і відокремити події і планування потоків від логіки прикладної програми. Здійснення вхідного контролю для кожної черги створює найкращі умови для завантаження сервісу завдяки запобіганню перевантаження ресурсів в умовах, коли попит на них перевищує можливості сервісу.
SEDA використовує динамічне управління для автоматичної настройки параметрів виконання програми (зокрема, планування параметрів на кожному етапі) і керування завантаженням (наприклад, виконання адаптивного розвантаження). Декомпозиція сервісів на ряд етапів також дозволяє забезпечити модульність і можливість повторного використання коду, а також розробку засобів налагодження програм для складних подійно-орієнтованих застосунків.
Примітки
- SEDA: An Architecture for Highly Concurrent Server Applications. http://www.genmaint.com/: Genmaint.com. Процитовано 17 березня 2011. «SEDA is an acronym for staged event-driven architecture, and decomposes a complex, event-driven application into a set of stages connected by queues.»(англ.)
Бібліографія
- Welsh, Matt; Culler, David; Brewer, Eric (December 2001). "SEDA: an architecture for well-conditioned, scalable internet services" in "SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles" (вид. 1st). Association for Computing Machinery. с. 230–243. ISBN 1-58113-389-8. (англ.)
- Никонов, Э.; Фролко, А. (2008). "Повышение отказоустойчивости многоэтапных событийно-управляемых систем анализа и обработки информации в сценариях стрессовой нагрузки". «Информационные Ресурсы России», №5, 2008. (рос.)
Див. також
Посилання
- Camel SEDA component provides asynchronous SEDA behavior. (англ.)
- Apache ServiceMix provides a Java SEDA wrapper, combining it with related message architectures (JMS, JCA & straight-through flow). (англ.)
- Criticism about how SEDA premises (threads are expensive) are no longer valid (англ.)
- JCyclone: Java open source implementation of SEDA (англ.)
- Mule ESB is another open-source Java implementation (англ.)
- SEDA: An Architecture for Highly Concurrent Server Applications describing the PhD thesis by Matt Welsh from Harvard University (англ.)
- A Retrospective on SEDA by Matt Welsh, July 26, 2010 (англ.)