FaaS Shell Script Execution with Non-Serializable Objects
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Serverless computing platforms face challenges in executing shell client scripts with non-serializable object parameters due to the inability to store or transmit objects, limiting the use of shell clients built on the .NET framework.
Innovation Solution
A script execution service (SES) is introduced that receives serializable data calling for non-serializable objects, using argument transformation scripts to construct objects in a shell session, allowing shell scripts to execute with objects as parameters by querying the operating system and generating objects on demand.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If shell client scripts with non-serializable object parameters are transmitted to a FaaS platform, then the functionality of shell clients built on .NET framework can be utilized, but objects cannot be stored or transmitted due to non-serializability
Solution Approach 1:
The solution segments the transmission process into two parts: first transmitting serializable data (script and object construction instructions) to the FaaS platform, then executing object construction locally in the shell session. This separation allows the script to be transmitted reliably while the non-serializable objects are constructed in-context where serialization is not required.
Solution Approach 2:
The system performs preliminary actions by transmitting the script and object construction instructions to the FaaS platform before actual execution. The objects are constructed in advance within the shell session context, ensuring they are ready when the script executes without requiring transmission of the actual object instances.
2Adaptability or versatility
If objects are constructed in the shell session before script execution, then non-serializable objects can be used as parameters, but additional steps are required to construct objects from serializable data
Solution Approach 1:
The system introduces an intermediary mechanism: instructions containing serializable data that describe how to construct objects are transmitted to the FaaS platform. These instructions act as a mediator between the transmittable script and the non-serializable objects, enabling object construction within the shell session without direct object transmission.
Solution Approach 2:
The system changes the parameter representation from direct object instances to serializable instruction sets. Instead of transmitting objects directly, the script receives parameters in the form of construction instructions that can be serialized, then transforms these into actual objects within the shell session context.
3Productivity
If scripts are executed on a server-side FaaS platform, then resource allocation is dynamically managed, but shell client scripts requiring local objects cannot be executed
Solution Approach 1:
The system adds a temporal dimension to the execution model: scripts are transmitted to the server-side FaaS platform for execution, but object construction occurs in a separate phase within the shell session. This dimensional separation allows server-side execution benefits while maintaining access to local object construction capabilities.
Data Source
AI summary
Systems and methods are described for utilizing non-serializable object parameters with a function as a service (“FaaS”) platform. A user can select, in a user interface of a web application, a server and a command for executing in a shell client. The web application can generate instructions for constructing an object in a shell client that corresponds to the server. The web application can retrieve a shell script associated with the selected command. The web application can send the instructions and shell script to a FaaS. The FaaS can execute, in a shell client, a script that constructs the object as a parameter in a shell session. In the same shell session, the FaaS can execute the shell script, causing the shell client to use the object as a parameter for the shell script.


