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.