gRPC Common Client Interface for Embedded System Resource Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional client-server architectures for embedded systems are inefficient due to high network traffic, excessive code size, and tight coupling between services, which consume limited system resources and reduce flexibility and reliability.

Innovation Solution

Implementing a transport network with a common client interface for optimized codebase, just-in-time resource allocation, subscription aggregation, distributed data aggregation, and independent microservices to manage system resources effectively and ensure service reliability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If legacy client-server architecture is used with multiple clients, then network communication is established, but network traffic increases proportionally with the number of clients consuming limited bandwidth

Engineering Contradiction:
Improvenetwork trafficVSAvoidnetwork bandwidth utilization
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

Multiple client connections are merged into a single connection to the service function node. The common client interface aggregates requests from multiple client applications and forwards them through one gRPC connection, eliminating redundant network traffic and optimizing bandwidth utilization in the embedded system.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The common client interface serves multiple client applications simultaneously through a single connection. This universal interface handles requests from any client application, making the connection multi-functional and reducing the need for multiple dedicated connections.

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

2Adaptability or versatility

If legacy client-server architecture is used with multiple Managed Objects, then service functionality is provided, but code size increases proportionally consuming limited storage and memory

Engineering Contradiction:
Improveservice functionalityVSAvoidcode size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system is segmented into independent microservices with a common client interface. Instead of having each Managed Object implemented as separate code, the functionality is divided into modular service functions that can be selectively instantiated, reducing overall code size while maintaining versatility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The service architecture transitions from static code inclusion to dynamic service instantiation. Service functions are loaded and activated on-demand based on subscription requests, allowing the system to provide diverse functionality without having all code permanently resident in memory.

Inventive Principle:
Principle #15Dynamics

3Ease of manufacture

If legacy client-server architecture is used with tight coupling between services, then service integration is achieved, but flexibility and reliability are reduced due to inter-service dependencies

Engineering Contradiction:
Improveservice integrationVSAvoidservice independence
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

Services are segmented into independent microservices that communicate through standardized gRPC interfaces. Each service function node operates independently with its own event processing logic, eliminating tight coupling and inter-service dependencies while maintaining integration through the common client interface.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The common client interface acts as an intermediary between client applications and service functions. It mediates all communication, translating client requests into service function calls and routing responses, thereby decoupling clients from specific service implementations and improving system reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If system resources are reserved for each client application in advance, then resource availability is ensured, but memory and storage are sub-optimally consumed

Engineering Contradiction:
Improveresource availabilityVSAvoidmemory and storage consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Resource allocation transitions from static pre-reservation to dynamic on-demand allocation. System resources such as memory and storage are allocated when service functions are instantiated in response to subscription requests and released when subscriptions are cancelled, optimizing resource utilization while ensuring availability when needed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Service functions allocate their own resources dynamically based on subscription demand. When a client application subscribes to a service function, the necessary resources are automatically allocated; when the subscription ends, resources are automatically released, eliminating the need for permanent resource reservation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20220400156A1Patterns to leverage GRPC in small footprint embedded system
Publication Date: 2022.12.15 INFINERA CORP
  • US20220400156A1 patent drawing
  • US20220400156A1 patent drawing
  • US20220400156A1 patent drawing

AI summary

Disclosed herein are network elements for use in a transport network. The network elements may comprise an embedded device comprising a processor, a communication device, and a non-transitory computer readable medium storing a common client interface comprising processor-executable code that when executed causes the processor to, responsive to receiving a request from a particular one of a plurality of client applications: allocate one or more system resource for the particular one of the plurality of client applications, the one or more system resource based at least in part on a request type of the request; establish, with the communication device, a connection with a remote network element in the transport network; and transmit the request to the remote network element; and responsive to receiving a response from the remote network element, transmit the response to the particular one of the plurality of client applications.