Binding CRUD Protocols to State Machines via Reverse Proxy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud services face interruptions that degrade user experience and incur significant organizational costs due to the lack of effective replication and recovery mechanisms in distributed systems, leading to potential losses and loss of goodwill.

Innovation Solution

Implementing a Distributed Agreement Protocol, such as the Paxos protocol, to bind a CRUD-type protocol like HTTP as a state machine across geographically distributed replica services, ensuring that operations are performed identically and can be quickly taken over in case of interruptions at one location, using a reverse proxy at each location.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cloud services are deployed in distributed locations, then service availability and recovery capability are improved, but system complexity and coordination overhead increase

Engineering Contradiction:
Improveservice availabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a reverse proxy as an intermediary component that sits between clients and the distributed service replicas. This reverse proxy abstracts the complexity of service discovery, load balancing, and failover management from the core service logic. When service interruptions occur, the reverse proxy automatically routes requests to healthy replicas without requiring complex coordination protocols among service instances, thus improving availability while managing system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the cloud service into multiple independent replicas deployed across different geographical locations. Each replica operates autonomously with its own state machine, allowing local failures to be isolated and handled independently. This segmentation enables the system to maintain service availability by routing requests to functional replicas while avoiding the complexity of tightly-coupled distributed consensus mechanisms.

Inventive Principle:
Principle #1Segmentation

2Stability of the object's composition

If CRUD-type protocols are bound as state machines using Distributed Agreement Protocol, then operational consistency across replicas is improved, but protocol complexity and implementation difficulty increase

Engineering Contradiction:
Improveoperational consistencyVSAvoidprotocol complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent employs state machine replication where each replica maintains a copy of the service state and executes the same sequence of operations. By binding CRUD-type protocols to deterministic state machines, the system ensures that identical operations produce identical state transitions across all replicas. This copying approach achieves operational consistency without requiring complex distributed consensus protocols, as each replica independently executes the same operation sequence.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent performs preliminary binding of CRUD-type protocols to state machines during service deployment and configuration. This upfront preparation establishes the operational semantics and state transition rules before the service begins processing requests. By pre-defining the state machine behavior and operation ordering, the system ensures consistent execution across replicas without requiring complex runtime coordination, thus reducing protocol complexity.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If reverse proxy is used to bind protocols at each location, then service takeover capability during interruptions is improved, but infrastructure complexity and deployment overhead increase

Engineering Contradiction:
Improveservice takeover capabilityVSAvoidinfrastructure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The reverse proxy serves as an intermediary layer that manages service takeover during interruptions. When a service replica becomes unavailable, the reverse proxy automatically detects the failure and redirects client requests to healthy replicas without requiring changes to the core service logic. This intermediary approach simplifies failover management by centralizing the complexity in the proxy layer rather than requiring complex coordination among service instances.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The reverse proxy implements self-service mechanisms for detecting service availability and automatically routing requests. Health check protocols and load balancing logic are embedded within the proxy itself, allowing it to autonomously manage service takeover without external intervention. This self-service capability improves reliability while containing infrastructure complexity within the proxy layer rather than propagating it across the entire distributed system.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3624426B1Binding CRUD-type protocols in distributed agreement protocols
Publication Date: 2021.05.26 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3624426B1 patent drawingFigure 1
  • EP3624426B1 patent drawingFigure 2
  • EP3624426B1 patent drawingFigure 3

AI summary

Various embodiments enable redundant or replica services, such as "cloud" services, to be run at geographically distributed locations. Each replica is capable of performing operations that are generally, identically performed across all replicas. In the event of an interruption at one location, services in other locations can quickly and automatically take over operations. In one or more embodiments, a Distributed Agreement Protocol is utilized to bind a CRUD-type protocol as a state machine. Binding takes place through the use of a reverse proxy that is located at each of the locations at which the service is distributed. In at least some embodiments, the Distributed Agreement Protocol is implemented as the Paxos protocol or a variant thereof, and/or the CRUD-type protocol comprises the HTTP protocol.