![]() |
|
![]() |
|||
![]() |
|
Menu
Home
People
Teaching
Current Offering
Regular Offering
Course Archive
Research
Publications
BSc/MSc Theses
Industry Partners
Joint Research
Contact
News
20.09.2009
15.09.2009
09.09.2009
|
Event Handling in Mixed Mode Systems WS 07/08
ContentThis course covers two main topics: active systems that include active databases, reactive functionality services, and their parallels to aspect-oriented programming and reflective middleware, and real-time databases. Active databases have emerged to support monitoring applications that require reactive capabilities and large quantities of persistent data. In the case of monitoring applications that track changes to the underlying (passive) database the problem lies in the need to poll periodically the state of the database to detect changes. This is highly inefficient, not only because many unnecessary queries are executed but also because monitoring functions may be replicated across applications. In other words, performing monitoring and detecting events as part of the application code scatters this crosscutting concern throughout the application or requires wasteful and expensive polling in traditional databases. Moreover, the lack of a formal approach to the management of these concerns has made it difficult to maintain, adapt and extend applications according to new requirements. Isolating them from the application code enables developers to easily find and modify the pertinent functionality when a policy change is required thereby enhancing maintainability. Active databases solved this problem by representing the functionality in question in the form of Event-Condition-Action (ECA) rules. This paradigm is basically founded on the detection of situations of interest (events) and as a consequence a pre-defined reaction (action) is triggered whenever the guarding condition is true. Active databases are significantly more powerful than passive database management systems (DBMSs) since they can (efficiently) perform functions that in passive database systems must be encoded and scattered in applications. The same mechanism can also be used to perform tasks that require special-purpose subsystems in passive databases (e.g., integrity constraint enforcement, access control, view management, and statistics gathering). The most primitive incarnation of ECA rules is today commonplace in relational DBMSs in the form of triggers where events are restricted to database updates. It must be noticed that active databases and Aspect-Oriented Programming (AOP) improve the separation of concerns and allow the implementation of crosscutting concerns and both paradigms present astonishing similarities, not only in the basic approach of reacting to defined situations through the execution of code, but also in the invocation mechanisms and primitives used. In this course we will present the problems, draw some parallels between paradigms and sketch the solutions that have been proposed by the active database and middleware communities. In the second part of the course we focus on real-time systems and real-time databases. Many monitoring applications must react to detected situations within predefined timing constraints. The reactive functionality, be it in the form of an active database or a generic reactive middleware functionality must be capable of guaranteeing a response within the response-time requirements imposed by applications. We analyse the real-time requirements of monitoring applications and survey approaches that have been developed in the area of real-time operating systems and real-time databases. We will analyse how to guarantee predictability. In particular we want to process transactions under time constraints and take a closer look on the characteristics concurrency control, I/O, main memory databases and the operating system support for real-time database. Since active functionality tends to produce unforeseen tasks (in response to events) and real-time capabilities require predictability (i.e. a well defined work load) an inherent conflict arises in monitoring applications. We will wrap up by analysing this inherent conflict and suggesting relaxed real-time criteria for active capabilities and/or constraining the active functionality in order to meet stronger real-time requirements. SlidesUp-to-date slides will be made available throughout the course. BibliographyArticles
Books
Links
|
|||||||||