Managed Secure Sockets for Serverless IoT Connections
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Managing long-lived connections between client devices and servers is complex and costly, requiring significant infrastructure for handling communication protocols and security credentials, especially for applications with numerous devices.
Innovation Solution
Implementing a socket service within a provider network that enables managed secure sockets and socket peering, allowing clients to establish and manage connections without needing dedicated server infrastructure, using a socket service that authenticates clients, applies client-defined function mappings, and routes data asynchronously.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a large fleet of servers is deployed to manage numerous client devices and maintain secure connections, then the system can handle more devices and connections, but the infrastructure cost and complexity increase significantly
Solution Approach 1:
The patent introduces a socket service as an intermediary component that sits between client devices and the application server. This socket service handles connection management, authentication, and data routing, allowing the application server to focus on business logic while the socket service manages the complex infrastructure of maintaining numerous secure connections across multiple protocols
Solution Approach 2:
The socket service is designed to be multi-functional, supporting multiple communication protocols (HTTP, WebSockets, MQTT, TCP, UDP) and handling various operations (connection management, authentication, data routing, peer-to-peer linking) through a single unified service, thereby reducing the need for separate infrastructure components for each function
2Reliability
If dedicated server infrastructure is used to handle communication protocols and security credentials, then secure connections can be maintained, but the cost and operational burden increase
Solution Approach 1:
The socket service implements self-service mechanisms by automatically authenticating clients using credentials managed by the service itself, handling connection establishment and termination without manual intervention, and dynamically routing data based on client-defined function mappings, thereby reducing operational burden while maintaining security
Solution Approach 2:
The socket service acts as a security intermediary that handles authentication and credential verification between clients and the application server, allowing the application server to trust the socket service's authentication decisions and focus on business logic without managing security credentials directly
3Productivity
If manual configuration of intermediary infrastructure is performed to route data between devices, then data can be transmitted between specific devices, but the configuration process becomes burdensome especially for large numbers of devices
Solution Approach 1:
The system performs preliminary action by pre-configuring function mappings that associate client devices with target endpoints before data transmission occurs. When a client connects, the socket service automatically applies the appropriate function mapping to route data, eliminating the need for manual per-connection configuration and enabling rapid setup for large numbers of devices
Solution Approach 2:
The routing configuration is made dynamic through client-defined function mappings that can be updated and modified without requiring system downtime or manual reconfiguration. The socket service dynamically applies these mappings to active connections and new connections, allowing flexible adaptation to changing routing requirements
Data Source
AI summary
A socket service may be used to implement client-defined function mappings (e.g., custom protocols) for sockets hosted by the socket service so that when a particular socket is opened for a particular client device, the socket operates according to a particular client-defined function mapping requested by the particular client device. To establish a particular client-defined function mapping, a socket manager may receive request from a user that specifies a particular endpoint (e.g., a client-registered function). When a client device requests a socket to be opened, the client device requests the particular client-defined function mapping to be associated with the socket. When the socket is opened, the endpoint is invoked. The particular client-defined function mapping may also specify one or more receive criteria for data received at the socket. If the one or more receive criteria is met, the endpoint is invoked by sending the data to the endpoint.


