Stream Server Client Affinity in Distributed Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional stream processing systems struggle to maintain affinity between clients and stream processing nodes, leading to challenges in providing responses to clients in a client-server architecture, especially when dealing with real-time data streams.

Innovation Solution

Incorporating a client-server architecture with HTTP server functionality, where client context information is propagated among stream processing nodes to maintain affinity, allowing for efficient correlation and delivery of stream processing results back to clients through a system that includes multiple stream processing nodes and an HTTP stream server.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a conventional stream processing system is used, then data stream processing capability is provided, but client-server affinity is lost making response delivery difficult

Engineering Contradiction:
Improveclient affinityVSAvoidsystem architecture
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a stream server as an intermediary component between clients and stream processing nodes. The stream server receives requests from clients, manages request identifiers, and coordinates communication between clients and processing nodes. This intermediary maintains the client-server relationship and affinity while enabling distributed stream processing across multiple nodes, resolving the contradiction between maintaining reliability and managing system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple stream processing nodes are used, then processing capacity is increased, but maintaining client affinity becomes more difficult

Engineering Contradiction:
Improveprocessing capacityVSAvoidclient affinity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The stream server implements a universal request management mechanism that works across multiple stream processing nodes. It generates and manages request identifiers that are propagated to any processing node handling the request, ensuring that client affinity is maintained regardless of which specific node processes the data. This multi-functional approach allows the system to scale processing capacity while preserving client relationships.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system implements a feedback mechanism where request identifiers are propagated from the stream server through processing nodes back to the client. This feedback loop ensures that responses can be correctly routed back to the originating client even when processed by different nodes, maintaining affinity across distributed processing while increasing overall capacity.

Inventive Principle:
Principle #23Feedback

3Productivity

If stream processing is implemented without HTTP server functionality, then processing efficiency is improved, but integration with existing Web services becomes difficult

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidWeb service integration
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The stream server is designed with multi-functionality, implementing both HTTP server capabilities and stream processing coordination functions. This allows the system to integrate with existing Web service infrastructure using standard HTTP protocols while maintaining efficient stream processing operations. The dual functionality enables seamless integration without sacrificing processing efficiency.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9277030B2Stream processing using a client-server architecture
Publication Date: 2016.03.01 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9277030B2 patent drawing
  • US9277030B2 patent drawing
  • US9277030B2 patent drawing

AI summary

A method of responding to requests using stream processing includes, responsive to a client request, assigning a processing thread for handling the client request. A return connection is established within the processing thread. A server request derived from the client request is sent to a stream server configured to interact with a plurality of stream processing nodes. The server request includes a thread identifier specifying the processing thread. The processing thread for handling the client request is maintained in an idle state pending a write response message from the stream server. Responsive to receiving the write response message comprising a stream processing result and the thread identifier from the stream server, the processing thread specified by the thread identifier is returned to an active state using a processor. A client response comprising the stream processing result is returned to the client over the return connection.