Введение
Архитектурная модель программного обеспечения Архитектура событий (EDA) - это парадигма архитектуры программного обеспечения, касающаяся производства и обнаружения событий.
Event driven architecture (EDA) is a software architecture paradigm concerning the production and detection of events.
Обзор
Событие можно определить как "значительное изменение состояния". Например, когда потребитель покупает автомобиль, состояние автомобиля меняется с "на продажу" на "продан". Архитектура системы автодилера может рассматривать это изменение состояния как событие, происхождение которого может быть известно другим приложениям в рамках архитектуры. С формальной точки зрения, то, что производится, публикуется, распространяется, обнаруживается или потребляется, является (обычно асинхронным) сообщением, называемым уведомлением о событии, а не самим событием, которое является изменением состояния, которое вызвало эмиссию сообщения. События не путешествуют, они просто происходят. Однако термин "событие" часто используется метонимически для обозначения самого сообщения уведомления, что может привести к некоторой путанице. Это связано с тем, что архитектуры, управляемые событиями, часто разрабатываются на основе архитектур, управляемых сообщениями, где такая модель связи требует, чтобы один из входов был только текстом, сообщением, чтобы дифференцировать, как должно обрабатываться каждое сообщение. Эта архитектурная модель может применяться при проектировании и внедрении приложений и систем, которые передают события между свободно связанными программными компонентами и службами. Система, управляемая событиями, обычно состоит из эмитентов событий (или агентов), потребителей событий (или осадков) и каналов событий. Излучатели несут ответственность за обнаружение, сбор и передачу событий. Получатель события не знает потребителей события, он даже не знает, существует ли потребитель, и в случае его существования он не знает, как событие используется или далее обрабатывается. Умыватели несут ответственность за применение реакции, как только событие представлено. Реакция может быть полностью обеспечена или не полностью обеспечена самой раковиной. Например, раковина может просто иметь ответственность за фильтрацию, трансформацию и пересылку события другому компоненту или она может обеспечить самостоятельную реакцию на такое событие. Канал событий - это канал, по которому события передаются от источников событий к потребителям событий. Знание правильного распределения событий присутствует исключительно в канале событий. Физическая реализация каналов событий может основываться на традиционных компонентах, таких как ориентированное на сообщения среднее ПО или точка к точке связи, которые могут потребовать более подходящего строительства систем вокруг архитектуры, управляемой событиями, упрощает горизонтальную масштабируемость в распределенных вычислительных моделях и делает их более устойчивыми к сбоям. Это связано с тем, что состояние приложения может быть скопировано на нескольких параллельных снимках для обеспечения высокой доступности. Новые события могут быть инициированы в любом месте, но, что более важно, распространяются по сети хранилищ данных, обновляя каждый из них по мере их появления. Добавление дополнительных узлов становится тривиальным: вы можете просто взять копию состояния приложения, подать ему поток событий и запустить его. Архитектура, управляемая событиями, может дополнять архитектуру, ориентированную на сервисы (SOA), потому что сервисы могут быть активированы триггерами, запускаемыми при входящих событиях. Эта парадигма особенно полезна, когда раковина не обеспечивает никакой SOA 2.0, развивает последствия SOA и EDA архитектуры обеспечивают более богатый, более надежный уровень, используя ранее неизвестные причинно-следственные отношения для формирования новой модели событий. Эта новая модель бизнес-аналитики запускает дальнейшую автономную обработку человеком или автоматизированной обработкой, которая добавляет экспоненциальную ценность предприятию, вводя информацию с добавленной стоимостью в признанную модель, которая не могла быть достигнута ранее.
Building systems around an event driven architecture simplifies horizontal scalability in distributed computing models and makes them more resilient to failure. This is because application state can be copied across multiple parallel snapshots for high availability. New events can be initiated anywhere, but more importantly propagate across the network of data stores updating each as they arrive. Adding extra nodes becomes trivial as well: you can simply take a copy of the application state, feed it a stream of events and run with it. Event driven architecture can complement service oriented architecture (SOA) because services can be activated by triggers fired on incoming events. This paradigm is particularly useful whenever the sink does not provide any
SOA 2.0 evolves the implications SOA and EDA architectures provide to a richer, more robust level by leveraging previously unknown causal relationships to form a new event pattern. This new business intelligence pattern triggers further autonomous human or automated processing that adds exponential value to the enterprise by injecting value added information into the recognized pattern which could not have been achieved previously.
Структура события
Событие может состоять из двух частей, заголовка события и тело события. Заголовок события может включать в себя такую информацию, как название события, временная метка для события и тип события. Тело события предоставляет подробную информацию о обнаруженном изменении состояния. Тело события не должно путаться с шаблоном или логикой, которые могут применяться в ответ на возникновение самого события.
Слои потока событий
Архитектура, управляемая событиями, может быть построена на четырех логических уровнях, начиная с восприятия события (т.е. значительного временного состояния или факта), переходя к созданию его технического представления в форме структуры события и заканчивая непустым набором реакций на это событие.
Простая обработка событий
Простая обработка событий касается событий, которые напрямую связаны со специфическими, измеримыми изменениями состояния. В простой обработке событий происходит заметное событие, которое инициирует действие вниз по потоку (s). Простая обработка событий обычно используется для управления потоком работы в реальном времени, тем самым уменьшая время задержки и затраты. OLEP позволяет надежно составлять связанные события сложного сценария в гетерогенных системах. Таким образом, он позволяет создавать очень гибкие модели распределения с высокой масштабируемостью и обеспечивает высокую согласованность. Однако он не может гарантировать верхние пределы времени обработки.
Крайне свободная сцепка и хорошо распределенная
Архитектура, управляемая событиями, чрезвычайно слабо связана и хорошо распределена. Большое распространение этой архитектуры существует потому, что событие может быть почти чем угодно и существовать почти где угодно. Архитектура чрезвычайно слабо связана, потому что сам процесс не знает о последствиях своей причины. Например, если у нас есть система сигнализации, которая записывает информацию, когда открывается входная дверь, сама дверь не знает, что система сигнализации добавит информацию, когда дверь откроется, только что дверь была открыта.
Статьи
Статья, определяющая различия между EDA и SOA: как EDA расширяет SOA и почему это важно Джек ван Хоф. Пример реального мира бизнес-событий, протекающих в SOA: SOA, EDA и CEP - выигрышная комбинация Уди Дахана. Статья, описывающая концепцию данных о событиях: Аналитика для хакеров, как думать о данных о событиях Мишель Ветцлер. (Веб-архив)