Service Logic Streaming to Reduce Network Overhead in SOA
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Service-oriented architectures (SOA) face performance degradation due to network and runtime service overhead, particularly in scenarios with frequent service requests, as client applications often need to send requests to servers for service execution, leading to latency and inefficiencies.
Innovation Solution
The system allows for the dynamic transfer of service logic software code between server and client, enabling client-side execution of services based on client capabilities and resource affinity, reducing the need for frequent server requests by streaming service logic code and allowing subsequent requests to be executed locally by the client.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If services are executed remotely on the server, then service functionality is provided, but network overhead and latency increase
Solution Approach 1:
The patent extracts service logic from the server and transfers it to the client. The service container on the client side downloads and executes service logic locally, eliminating the need for remote execution. This extraction moves the service execution from server to client, reducing network overhead and latency while maintaining service functionality.
Solution Approach 2:
The patent introduces a new dimension of service execution by implementing a service container environment on the client side. Instead of only server-based execution, the system now supports both server and client execution dimensions. The service container downloads, caches, and executes service logic locally, creating a hybrid execution model that reduces network dependency.
2Adaptability or versatility
If services are executed remotely on the server, then centralized control is maintained, but service overhead increases
Solution Approach 1:
The patent segments the service execution process into distinct components: service logic download, service logic caching, and local execution within the service container. This segmentation allows centralized control over service logic distribution while enabling decentralized local execution, reducing service overhead by eliminating repeated network round-trips for each service invocation.
Solution Approach 2:
The service container performs preliminary actions by downloading and caching service logic before it is needed for execution. The system pre-loads service logic into the client's service container, so when services are invoked, they can execute locally without real-time network communication. This preliminary action reduces service overhead significantly.
3Productivity
If service logic is transferred to client, then local execution is enabled, but network traffic increases
Solution Approach 1:
The service container implements a caching mechanism that downloads service logic once and stores it locally for repeated use. Instead of repeatedly downloading the same service logic for each service invocation, the system discards the need for repeated network transfers by recovering and reusing the cached service logic locally. This dramatically reduces network traffic after the initial download.
4Reliability
If frequent service requests are sent to server, then service functionality is accessed, but performance degrades
Solution Approach 1:
The service container enables the client to serve itself by locally executing service logic without requiring frequent server requests. The client-side service container downloads service logic once and autonomously executes services locally, making the system self-sufficient for service execution. This self-service capability eliminates performance degradation from frequent network requests while maintaining reliable service access.
Data Source
AI summary
A system and method for processing service request in service oriented architectures to minimize service overhead is provided. The method includes invoking a software service by a client by sending service request to a server hosting the software service. The method further includes receiving the software service request by the server and determining whether one or more portions of service logic software code should be executed by the client, based on information related to client capabilities. Thereafter, service logic software code is streamed to the client partly or in-total. The client executes service logic software code provided by the server. The server is pre-configured to execute or transfer one or more portions of service logic software code to the client based on client capability information and extent of affinity of the service for server-specific resources. The server executes the software service partly or in-total based on the configuration.


