Distributed Service Discovery via Local Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In networked computing systems, the need for a central coordinator device to maintain dynamic records of available services leads to high demands on bandwidth, throughput, and computational load, especially when numerous devices provide services and their availability changes frequently.

Innovation Solution

Implementing a system with dispatcher and forwarder applications on service providing and requesting devices that maintain local caches of available services, allowing for local decision-making and reducing reliance on a central service list device, thereby distributing the load and eliminating the need for frequent queries to a central coordinator.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If a central coordinator device is used to maintain a database of available services, then service information can be centrally managed and queried, but the coordinator device experiences high computational load, bandwidth consumption, and throughput demands

Engineering Contradiction:
Improveservice information availabilityVSAvoidcoordinator device computational load and bandwidth
Core Design Contradiction:
Loss of informationVSPower

Solution Approach 1:

The patent segments the centralized service information management into distributed components. Each device maintains local service information and can independently query or provide service data without requiring all queries to pass through a central coordinator. This segmentation reduces the computational load and bandwidth demands on any single device while maintaining service information availability across the network.

Inventive Principle:
Principle #1Segmentation

2Reliability

If a central coordinator device maintains real-time service availability information, then accurate service discovery is enabled, but the system requires expensive and difficult to operate highly-available, high-bandwidth, and high-throughput infrastructure

Engineering Contradiction:
Improveservice discovery accuracyVSAvoidcoordinator device infrastructure requirements
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where devices autonomously manage and update their own service information in local databases. When a device starts or stops a service, it automatically updates its local record and can notify peers. This self-service approach eliminates the need for complex centralized infrastructure while maintaining reliable service discovery through distributed peer-to-peer queries.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If numerous devices frequently start and stop services, then service dynamism and adaptability are improved, but the central coordinator device must process large numbers of requests, increasing its operational demands

Engineering Contradiction:
Improveservice availability dynamicsVSAvoidcoordinator device request processing capacity
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by having devices pre-register their service capabilities and maintain updated local service databases before being queried. When services start or stop, devices proactively update their local information rather than waiting for coordinator queries. This preliminary maintenance of service information reduces the number of requests that need to be processed in real-time, decreasing the operational demands on the coordinator device while maintaining high adaptability to service changes.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10440099B2Accessing services provided by computing devices in a network
Publication Date: 2019.10.08 APPLE INC
  • US10440099B2 patent drawing
  • US10440099B2 patent drawing
  • US10440099B2 patent drawing

AI summary

The described embodiments perform operations to enable access to services provided by applications executing on service providing devices by applications executing in service requesting devices. In the described embodiments, a service providing device executes a “dispatcher” system service that performs operations for interfacing between service-providing applications and service requesting devices. For example, the dispatcher application performs operations for advertising the availability of services on the service providing device and for proxying communication between the service and service requesting devices. In addition, service requesting devices execute a “forwarder” system service that performs operations for interfacing between service-requesting applications and service providing devices. For example, the forwarder application performs operations for recognizing when applications are to access services, selecting an available service for an application to access, and for proxying communication between the application and a service providing device.