PyEDA: Event-Driven Architecture Overview for Fast Intelligent Automation
E N D
Presentation Transcript
PyEDA Python Event Driven Architecture By Abe Usher (abe.usher@sharp-ideas.net)
Outline • What is an event-driven architecture? • Why PyEDA? • PyEDA architecture • PyEDA logic • PyEDA examples • Future work
What is an event-based architecture? • Application development focused on detecting, analyzing, and reacting to conditions in information repositories in near real-time • Event: a condition within a dataset that can be evaluated as true or false (e.g. 5 is an integer that falls within the range 1-10)
Why PyEDA? • The information “sense and respond” cycle must be very fast in the cyber realm • PyEDA facilitates quick creation of ad-hoc monitoring of special events • Knowledge workers cannot possibly watch and interpret all incoming data streams for hundreds of conditions • Intelligent automation of event detection provides knowledge workers with more time for their primary function: analysis • I have created a GPLed application that facilitates event-drive architecture. This framework is instantiated in the application PyEDA.
Hype vs. reality • Hype: • “An event processing language is an essential element in developing event driven business solutions. This really is the next big thing.” Roy Schulte, VP of Research at Gartner group • “Real time intelligence is information delivered now based on rapidly occurring changes inside and outside the enterprise” from iSpheres.com Web site • Reality: • “Real time” and near real time processing is not the solution for all problem domains. However, commercial companies that employ real time data analysis (Wal-Mart, Dell) enjoy huge competitive advantages over their competitors. • IT enterprises can realize substantial time savings, operational efficiencies, and knowledge discovery through the application of event driven architectures.
PyEDA architecture terms • Event source: a data repository that can be queried by automated means • Event monitor: a software agent that continuously checks for the existence of special events • Event catalog: collection of event metadata in XML format that includes event conditions and responses • Event log: a text log file in syslog format of all event monitor actions • Event notification (destination): an entity that receives data as a result of an event being detected
PyEDA logic • Execute Event Monitor: • Loop forever: • For each alert: • Is the time_since_last_check > check_interval? • If no: wait • If yes: log * check for alert condition: • Reset time_since_last_check to now • If alert condition does not exist: • (log and wait) • If alert condition does exist: • (log and alert)
PyEDA physical architecture Each red box is a separate physical system
Future work • Finish implementing PyEDA GPL source code • Create demonstration application of PyEDA with MySQL • Create demonstration application of PyEDA with MS-SQL
PyEDA examples • (TBD)