Web Service Orchestration Server for Asynchronous Transaction Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing applications face challenges when interacting with asynchronous web-based services, as they typically expect rapid responses, leading to timeouts and errors when dealing with services that take minutes, days, or weeks to respond, causing functional issues.
Innovation Solution
The implementation of a web service orchestration server that manages long-running processes by suspending execution until responses are received from asynchronous services, using two-way proxies and flow coordination to handle both synchronous and asynchronous transactions, allowing for successful completion of collaborative processes across multiple web services.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If applications wait for responses from web-based services within a short time period, then the application can function properly with synchronous services, but it will time-out and generate errors when interacting with asynchronous services that take minutes, days, or weeks to respond
Solution Approach 1:
The system performs preliminary actions by launching the process and sending the request to the asynchronous service, then suspending execution before waiting for the response. This allows the system to prepare everything in advance and pause at the optimal point, resuming later when the response arrives, thereby avoiding timeout errors while maintaining proper application functionality.
Solution Approach 2:
The system dynamically adjusts its operation mode based on the service response time characteristics. For synchronous services, it uses traditional blocking waits within short time periods. For asynchronous services, it implements suspension and resumption mechanisms, allowing execution to be paused and later continued, thereby adapting to varying response times without generating errors.
2Reliability
If the system suspends execution to wait for asynchronous service responses, then it can handle long-running processes successfully, but it requires complex flow coordination and state management mechanisms
Solution Approach 1:
The system introduces an intermediary orchestration layer that manages the suspension and resumption of processes. This intermediary component handles the complexity of flow coordination, state persistence, and response matching, isolating the complexity from the individual processes and allowing them to be suspended and resumed without requiring complex logic within each process itself.
Solution Approach 2:
The system extracts the flow coordination and state management logic from the individual process execution flow and places it in a dedicated orchestration mechanism. This separation allows the core process logic to remain simple while the complex coordination handling is delegated to a specialized component that manages suspensions, resumptions, and response correlations.
3Ease of manufacture
If the system uses traditional synchronous communication methods, then the implementation is simple and direct, but it cannot successfully complete processes that require waiting for asynchronous service responses spanning minutes, days, or weeks
Solution Approach 1:
The system performs preliminary setup by launching the process and sending requests before the actual work completes. By suspending execution at the right moment and preserving state information, it avoids the need for continuous monitoring and complex polling mechanisms, maintaining implementation simplicity while supporting long-running processes that may take minutes, days, or weeks to complete.
Data Source
AI summary
A system and method for managing service interactions launches a process that is defined by a programming abstraction based on a syntax of a general purpose programming language. Interaction with a service, such as a web-based service, is initiated and the process requests the service to perform an action. Execution of the process is suspended until a response is received from the service. Execution of the process continues after receiving a response from the service.


