Authenticated Discoverability for UWP and Win32 Apps

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems lack a secure and company-specific mechanism for Universal Windows Applications (UWP) to discover and communicate with Win32 desktop applications, leading to cumbersome pre-arranged dependencies and lack of native registration/discoverability paradigms, which is burdensome for UWP-to-UWP communication and insecure for event propagation.

Innovation Solution

Implementing a system where UWP Apps declare their availability programmatically and authenticate through Digital Certificates, allowing Win32 Apps to securely register and communicate with trusted UWP Apps using the Desktop Bridge and Native Windows APIs, decoupling the dependency between UWP and Win32 App authors and enabling secure event broadcasting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If UWP Apps use pre-arranged App Service identifiers for communication, then communication between UWP Apps can be established, but the system becomes cumbersome and requires embedded knowledge of third-party App Services

Engineering Contradiction:
Improvecommunication reliabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

UWP Apps perform self-registration with the Win32 App by declaring their own App Service identifiers and event interests programmatically. The Win32 App automatically discovers and authenticates these Apps through a registration process, eliminating the need for pre-arranged dependencies and embedded third-party service knowledge.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

UWP Apps perform preliminary registration and authentication actions before actual communication occurs. The Apps declare their availability and event interests in advance, allowing the Win32 App to establish trusted connections proactively rather than requiring pre-configured service identifiers.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If Win32 Apps propagate events to all possible UWP Apps, then event coverage is maximized, but security is compromised and computational overhead increases

Engineering Contradiction:
Improveevent propagation coverageVSAvoidsecurity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

UWP Apps provide feedback to the Win32 App by declaring specific event types they are interested in receiving. The Win32 App uses this feedback to filter and propagate only relevant events to authenticated UWP Apps, achieving selective event distribution that balances coverage with security and performance.

Inventive Principle:
Principle #23Feedback

3Ease of operation

If UWP Apps embed third-party App Service identifiers, then direct communication is enabled, but dependency on pre-arranged configurations increases

Engineering Contradiction:
Improvecommunication easeVSAvoidsystem flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The Win32 App serves as an intermediary that mediates communication between multiple UWP Apps. Instead of UWP Apps directly embedding third-party service identifiers, they register with the Win32 App which manages the authentication and routing, providing a flexible intermediary layer that eliminates pre-arranged dependency chains.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11334660B2Authenticated discoverability of Universal Windows Applications to Win32 desktop applications
Publication Date: 2022.05.17 JPMORGAN CHASE BANK N A AS ADMINISTATIVE AGENT
  • US11334660B2 patent drawing
  • US11334660B2 patent drawing
  • US11334660B2 patent drawing

AI summary

A computer system, comprising one or more processors and a memory including instructions that, when executed, cause the one or more processors to at least: execute a first executable application; access a first registration request from a second executable application; validate a digital certification of the one or more components of the second executable; in response to the validating of the digital certification of the one or more components, save information from the first registration request into a registration store, wherein the information saved from the first registration request includes a unique identifier including (1) an identification of one or more types of events, and (2) a package family name; and send a raised event without requiring further authentication from the second executable application.