Cloud Application Programming Model Sidecar Event Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud-based applications executing in cloud platforms are limited in the resources they can connect to, as existing frameworks do not provide event handlers for all types of events, restricting access to unsupported resources.

Innovation Solution

Implementing an event-driven runtime with generic event handlers that communicate through a sidecar, such as a DAPR sidecar in Kubernetes, to enable connections to unsupported resources by processing requests and returning results to the application.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a cloud platform framework provides event handlers for supported resources, then resource connectivity is enabled for those resources, but the framework cannot connect to unsupported resources

Engineering Contradiction:
Improveresource connectivityVSAvoidframework limitation
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a sidecar as an intermediary component that bridges the gap between the cloud platform framework and unsupported resources. The sidecar receives events from the framework, translates them into resource-specific protocols, and forwards requests to unsupported resources, thereby enabling connectivity without modifying the framework itself.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the resource connection functionality by separating the framework's core event handling from the resource-specific connection logic. The sidecar acts as an independent module that handles resource connectivity, allowing the framework to remain simple while enabling extended resource access through compositional architecture.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If applications use custom drivers to connect to unsupported resources, then resource accessibility is achieved, but development burden increases

Engineering Contradiction:
Improveresource accessibilityVSAvoiddevelopment burden
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The sidecar automatically handles resource connection, protocol translation, and error handling without requiring applications to write custom drivers. The framework simply needs to send events to the sidecar, and the sidecar manages the complex interactions with unsupported resources, making the system self-sufficient and reducing development effort.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The sidecar provides universal support for multiple unsupported resource types through a single component. Instead of requiring separate custom drivers for each resource type, the sidecar implements a unified approach to handle various resource protocols and formats, thereby reducing development burden while maintaining broad accessibility.

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

Data Source

PatentUS11204818B1Cloud application programming model
Publication Date: 2021.12.21 SAP SE
  • US11204818B1 patent drawing
  • US11204818B1 patent drawing
  • US11204818B1 patent drawing

AI summary

Methods, systems, and computer-readable storage media for receiving, by an application programming framework within the cloud platform, a first request from an application, determining, by a generic event handler of the application programming framework, to handle the first request, transmitting, by the generic event handler, a second request to a sidecar that is executed within the cloud platform, the sidecar processing the second request to communicate with an unsupported resource and provide a first result comprising data from the unsupported resource, receiving, by the generic event handler and from the sidecar, the first result, and transmitting, from the generic event handler, a first response to the application, the first response comprising at least a portion of the data of the first result.