relational database support for event-based middleware functionality
Many of the popular relational database management systems (RDBMS) provide features for operating in a distributed environment, such as remote table queries and updates, and support for distributed transactions. In practice, however, much application software targets a more minimal set of functionality than is offered by the SQL standards. Independently of the database tier, engineering concepts such as the enterprise service bus and service oriented architecture have led to the development of communication middleware to support distributed applications. For applications that require reliable delivery of messages, complex event processing, and integrated archiving of data, impedance mismatches are likely to emerge between the database system and the communications middleware---for example with respect to data-types, event filtering that is based on information in the database, and in terms of coordinating access control policy. This paper describes event-based middleware functionality that is supported directly within the database system. In contrast to previous approaches (e.g. being able to name remote tables in SQL statements), the programming of event-based communication operations within the database is explicit. We present initial performance results that compare an augmented PostgreSQL database system to an environment in which a database and an event-based middleware package are used side-by-side. These results demonstrate the viability of our approach.
database queues publish/subscribe