Middleware Systems Research Group, University of Toronto, Canada

PADRES Architecture Overview

A PADRES overlay network consists of brokers and clients. Brokers use content-based routing algorithms to route messages (advertisements, subscriptions, publications). Publishing clients advertise and publish messages which will be provided to the subscribing clients who are interested in receiving those messages. More details can be found in the content-based routing discussion.

While the PADRES system is perfectly suitable as a publish/subscribe middleware, much of the recent work on the system focuses on enterprise-grade features.

The base publish/subscribe system in PADRES supports powerful capabilities.

  • Scalable matching: PADRES implements a fast rule based matching engine.
  • Content-based routing: PADRES supports a scalable distributed content-based routing over a peer-to-peer broker overlay network.
  • Expressive subscription language: Subscriptions may specify constraints on the content of publications using logical expressions on the publication data.

In addition, PADRES includes features necessary for enterprise applications:

  • Composite subscriptions: A powerful feature allows subscriptions to specify correlated constraints on a set of publications.
  • Historic access: PADRES allows both historic and future data to be queried with a unified subscription language.
  • System monitoring and control: Useful management functions such as network monitoring and control are supported.

Finally, functions critical to an enterprise infrastructure are supported:

  • Load balancing: A load balancer ensures that load is evenly distributed among all of the broker resources in the system to promote better system responsiveness, robustness, availability, and most importantly, scalability.
  • Security: Secure routing protocols preserve the privacy and integrity of messages routed through the infrastructure, while Denial of Service protection mechanisms provide availability in the event of malicious attacks against the system.
  • Cyclic overlay: A flexible scheme to allow arbitrary overlay topologies reduces the system management complexity and supports routing around congested or broken parts of the network.
  • Fault resiliency: Failure detection and recovery algorithms handle various classes of failures and ensure the continual operation of the system. The routing scheme tolerates message losses and guarantees publication delivery. The routing and recovery algorithms are also able to exploit redundant paths in the overlay to allow for fast recovery of publication flows.

The PADRES prototype offers:

  • Logging infrastructure: The log4j framework is used in the PADRES code to build a flexible, standards-based, and high-performance logging infrastructure. Configuration files allow selective enabling of various logging subsystems at load time. The logging infrastructure is currently being used for distributed debugging, performance analysis, and program instrumentation.
  • Test framework: A test harness is developed using the JUnit test framework, and a comprehensive suite of test cases are implemented for various scenarios. As the PADRES code is under active development, the test suite is a simple way to perform regression tests and provides assurance on the software quality.