Поэтапная событийно-ориентированная архитектура
Поэтапная архитектура, управляемая событиями ( SEDA ), относится к подходу к архитектуре программного обеспечения , управляемое событиями, , который разлагает сложное приложение на набор этапов, соединенных очередями. [1] Это позволяет избежать высоких накладных расходов, связанных с потоков на основе моделями параллелизма (т. е. блокировки, разблокировки и опроса блокировок), а также отделяет планирование событий и потоков от логики приложения. Выполняя контроль доступа для каждой очереди событий , сервис может быть хорошо подготовлен к загрузке, предотвращая чрезмерное использование ресурсов, когда спрос превышает мощность сервиса.
SEDA использует динамическое управление для автоматической настройки параметров времени выполнения (например, параметров планирования каждого этапа), а также для управления нагрузкой (например, выполнение адаптивного сброса нагрузки ). Декомпозиция сервисов на набор этапов также обеспечивает модульность и повторное использование кода , а также разработку инструментов отладки для сложных приложений, управляемых событиями.
См. также
[ редактировать ]- Архитектура, управляемая событиями (EDA)
- Сервис-ориентированная архитектура (SOA)
- Конвейер (вычисления)
Ссылки
[ редактировать ]- ^ «Архитектура для высококонкурентных и хорошо организованных интернет-сервисов» (PDF) . Калифорнийский университет в Беркли. Архивировано из оригинала (PDF) 4 июля 2012 г. Проверено 2 марта 2023 г.
Разделив приложение на набор этапов с явными очередями между ними, разработчики приложений могут сосредоточиться на логике обслуживания и управлении параллелизмом для отдельных этапов, позже «подключая» их вместе в полноценный сервис. Очереди отделяют выполнение каждого этапа, позволяя разрабатывать этапы независимо.
Библиография
[ редактировать ]- Валлийский, Мэтт; Каллер, Дэвид; Брюэр, Эрик (декабрь 2001 г.), «SEDA: архитектура для хорошо обусловленных, масштабируемых интернет-сервисов» в «SOSP '01 Proceedings of the восемнадцатого симпозиума ACM по принципам операционных систем» (1-е изд.), Ассоциация вычислительной техники , стр. . 230–243, ISBN. 978-1-58113-389-9
Внешние ссылки
[ редактировать ]- Apache ServiceMix предоставляет оболочку Java SEDA, объединяющую ее со связанными архитектурами сообщений ( JMS , JCA и прямой поток).
- JCyclone : Java-реализация SEDA с открытым исходным кодом.
- Mule ESB — еще одна реализация Java с открытым исходным кодом.
- SEDA: Архитектура для высококонкурентных серверных приложений, описывающая докторскую диссертацию Мэтта Уэлша из Гарвардского университета.
- Ретроспектива SEDA Мэтта Уэлша, 26 июля 2010 г.