Local Server Event Service for Client Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The divergence in server and client development environments leads to complexities in interoperative development due to differences in languages, APIs, and data standards, requiring developers to understand and manage two distinct environments for server and client applications.

Innovation Solution

Implementing a convergent server and client development environment on a single device, where a local server monitors and processes local events on behalf of client applications, allowing client applications to subscribe to events and execute server scripts associated with those events, using a consistent development environment like Node.js.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If server and client applications are developed in separate specialized environments with different languages and APIs, then each application can be optimized for its specific context, but the interoperative development complexity increases significantly

Engineering Contradiction:
Improvecontext optimizationVSAvoiddevelopment complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges server and client development environments by implementing a local server on the client device that executes server-side code (e.g., Node.js) alongside client-side code. This convergence allows developers to use the same programming language and APIs for both server and client applications, reducing development complexity while maintaining context-specific optimizations through the local server architecture.

Inventive Principle:
Principle #5Merging (Combining)

2Speed

If client applications directly monitor and process local events, then response time is reduced, but computational resources and security management burden increase

Engineering Contradiction:
Improveevent response timeVSAvoidcomputational burden
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The patent introduces a local server as an intermediary between client applications and local events. The local server monitors events and executes server scripts on behalf of client applications, enabling fast event response while offloading computational burdens from client applications. The server handles resource-intensive tasks such as event monitoring and script execution, while client applications focus on user interface and business logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If client applications execute server-side code locally, then development consistency improves, but device resource consumption increases

Engineering Contradiction:
Improvedevelopment consistencyVSAvoiddevice resources
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent implements a universal local server environment that can execute both server-side and client-side code on the client device. This multi-functional approach allows the same development environment and programming language to be used for both server and client applications, improving development consistency. The local server shares system resources and provides a unified platform for developing and deploying applications across different contexts.

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

Data Source

PatentUS11223704B2Event service for local client applications through local server
Publication Date: 2022.01.11 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11223704B2 patent drawing
  • US11223704B2 patent drawing
  • US11223704B2 patent drawing

AI summary

In server/client architectures, the server application and client applications are often developed in different languages and execute in different environments specialized for the different contexts of each application (e.g., low-level, performant, platform-specialized, and stateless instructions on the server, and high-level, flexible, platform-agnostic, and stateful languages on the client) and are often executed on different devices. Convergence of these environments (e.g., server-side JavaScript using Node.js) enables the provision of a server that services client applications executing on the same device. The local server may monitor local events occurring on the device, and may execute one or more server scripts associated with particular local events on behalf of local clients subscribing to the local event (e.g., via a subscription model). These techniques may enable development of local event services in the same language and environment as client applications, and the use of server-side code in the provision of local event service.