Content-Filter Publish-Subscribe Engine for Interprocess Communication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing publish-subscribe systems face inefficiencies due to the need for subscribers to constantly wake up and evaluate published events for useful information, leading to increased OS resource consumption and unnecessary notification events.
Innovation Solution
A content-filter publish-subscribe system that allows subscribers to specify filters based on object attribute conditions, enabling the publish-subscribe engine to evaluate and selectively distribute notification events, reducing the load on the operating system and optimizing interprocess communication.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If subscribers wake up each time an event is published to evaluate published events, then subscribers can receive useful information from publishers, but OS resource consumption increases and unnecessary notification events are generated
Solution Approach 1:
The system performs preliminary action by having subscribers register their information requirements with the publish-subscribe engine before events are published. The engine pre-configures filtering rules based on these requirements, so that when events are published, only relevant events are evaluated and distributed. This eliminates the need for subscribers to wake up and evaluate all events, reducing OS resource consumption while ensuring useful information is received.
Solution Approach 2:
The publish-subscribe engine acts as an intermediary between publishers and subscribers. It receives published events, evaluates them against pre-registered filtering rules, and selectively distributes only relevant events to appropriate subscribers. This intermediary function prevents unnecessary notification events from reaching subscribers, reducing their wake-up frequency and OS resource consumption while ensuring they receive all useful information.
2Loss of information
If subscribers evaluate all published events, then no useful information is lost, but the number of notification events distributed increases unnecessarily
Solution Approach 1:
The system performs preliminary action by having subscribers register their information requirements with the publish-subscribe engine before events are published. The engine pre-configures filtering rules based on these requirements, so that when events are published, only relevant events are evaluated and distributed. This eliminates the need for subscribers to wake up and evaluate all events, reducing OS resource consumption while ensuring useful information is received.
Solution Approach 2:
The system extracts only the relevant portions of published events that match subscriber requirements. The publish-subscribe engine evaluates events against filtering rules and extracts/distributes only those events that contain useful information for specific subscribers. This extraction approach maintains information completeness for each subscriber while dramatically reducing the total number of notification events distributed across the system.
3Adaptability or versatility
If the publish-subscribe system distributes all published events to all subscribers, then all subscribers receive all information, but system load and resource consumption increase
Solution Approach 1:
The system applies local quality by customizing information distribution for each subscriber based on their specific requirements. Instead of uniformly distributing all events to all subscribers, the publish-subscribe engine evaluates events against subscriber-specific filtering rules and distributes only relevant events to each subscriber. This ensures each subscriber receives complete information for their needs while reducing overall system resource consumption by avoiding redundant event distribution.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In a publish-subscribe system, a subscribing process may specify a condition relating to an object's attribute value. The condition may be retained in a data structure, and evaluated against a to be published event. If the condition is satisfied or occurred, the publish-subscribe system transmits a notification event to the subscribing process indicating the existence of the published event.