US Pat. No. 9,436,439

METHOD AND APPARATUS FOR CODE VIRTUALIZATION AND REMOTE PROCESS CALL GENERATION

Ciambella Ltd., Tortola ...

1. A computer-implemented method for remotely generating a process call, comprising:
storing, in a process pool on a virtual code provider (VCP), a process code for execution on at least one classical service
component (CSC) remote to the VCP, the process pool comprising at least one process corresponding to the process code;

analyzing the process code for parameters of the at least one process;
correlating the parameters in the process code based on relationships to other parameters and at least one associated function
of the process code;

assigning parameters to at least one additional process requiring the parameters, the process pool comprising the at least
one additional process;

linking the at least one process and the at least one additional process from the process pool to a virtualized software development
kit (SDK);

generating, at the VCP, a code snippet for execution at a user device remote to the VCP and the at least one CSC, the code
snippet comprising

a call from the user device to the VCP for executing the at least one process or the at least one additional process at the
CSC, or both, and

a field for inserting parameter values for the at least one process or the at least one additional process; and
sending the code snippet to the user device.

US Pat. No. 10,055,238

METHOD AND APPARATUS FOR CODE VIRTUALIZATION AND REMOTE PROCESS CALL GENERATION

Ciambella Ltd., Tortola ...

1. A method for code virtualization and remote process call generation comprising:sending, from a server to at least one user device remote to the server, a collection of remote processes comprising at least one selectable remote process, each of the remote processes correlated to at least one remote service to be performed remote of the server and the at least one user device;
receiving, at the server from the user device, a selection of at least one remote process;
generating at the server, in response to receiving the selection of the at least one remote process, an executable code snippet for execution on the at least one user device, the code snippet comprising a call from the user device to the server, the call for execution of the remote process on the server;
sending the code snippet from the server to the at least one user device;
receiving, at the server from the user device, the call to execute the remote process on the server; and
executing the remote process, in response to receiving the call at the server from the at least one user device, wherein execution of the remote process on the server causes the remote service to be performed remote of the server and the at least one user device, and wherein the code virtualization is achieved.

US Pat. No. 9,239,705

METHOD AND APPARATUS FOR CUSTOMIZED SOFTWARE DEVELOPMENT KIT (SDK) GENERATION

Ciambella Ltd., Tortola ...

1. A method operative to generate a customized software development kit (SDK) in a virtual code provider (VCP) comprising
a memory and a processor, configured to perform the steps of the method, the method comprising:
analyzing a plurality of process code corresponding to a plurality of predefined functions offered by at least two classical
service components (CSCs);

retrieving native SDKs for each function of the plurality of functions;
receiving a programming language selection for a custom SDK;
determining whether the custom SDK is compatible with the programming language selection and converting the custom SDK if
determined the custom SDK is incompatible;

receiving, from a user device remote to the VCP, a selection of at least two functions among the plurality of predefined functions;
parsing SDK code from the native SDKs for the at least two selected functions;
linking the parsed SDK code;
storing the linked parsed SDK code as the custom SDK;
authenticating into the VCP and comparing the received selection with previous selections by users; and
determining a previously generated custom SDK has been generated for the received selections and transmitting the previously
generated custom SDK,

wherein each of the at least two CSCs are operable to provide a remote service to the user device.

US Pat. No. 9,619,112

METHOD AND APPARATUS FOR AUTOMATIC DEVICE PROGRAM GENERATION

Ciambella Ltd., Tortola ...

1. A computer-implemented method for automatic generation of a device program comprising:
selecting a physical controller from among a user interactive visual representation of each of a plurality of physical controllers
displayed in a graphical user interface (GUI) on a user device, wherein the selected physical controller is external to the
user device and is communicatively coupled to the user device;

generating, in the GUI, a user interactive pin layout comprising at least one pin for the external physical controller;
displaying, in the GUI, a plurality of operations for execution by the external physical controller;
selecting, in the GUI, an operation from among the plurality of operations for execution by the external physical controller,
wherein the operation comprises at least one remote call initiated from the external physical controller to a remote device,
and wherein the remote device is remote from the user device and the external physical controller;

selecting, in the GUI, a pin from the user interactive pin layout;
receiving, in the GUI, parameter data for the operation from at least one of a data entry field in the GUI or an external
database;

associating the pin from the user interactive pin layout to the received parameter data for the operation;
automatically generating, at the user device, a device program for the external physical controller based on the user interactive
pin layout, the received parameter data for the operation, and the operation, wherein the device program comprises the at
least one remote call; and

sending, from the user device, the device program for storage in a memory on the external physical controller and for execution
on the external physical controller.

US Pat. No. 10,067,490

METHOD AND APPARATUS FOR MODIFYING BEHAVIOR OF CODE FOR A CONTROLLER-BASED DEVICE

Ciambella Ltd., Tortola ...

1. A computer-implemented method for remotely modifying behavior of code for a controller-based device, comprising:receiving a modified profile from a user device at a code virtualization server, the modified profile being a modification of a profile associated with a code for the controller-based device,
the code for the controller-based device comprising a first code for execution on the controller-based device and a second code for execution on the code virtualization server,
the first code comprising a remote call from the controller-based device to the code virtualization server, the remote call configured to cause execution of the second code on the code virtualization server,
the profile comprising at least one parameter for being used to execute the second code, and
where the controller-based device is remote to the user device and the code virtualization server;
updating the profile with the modified profile on the code virtualization server; and
executing the second code on the code virtualization server using the updated profile upon receiving the remote call at the code virtualization server from the controller-based device, the execution of the second code using the updated profile causing a modification of the behavior of the code for the controller-based device.

US Pat. No. 9,619,122

METHOD AND APPARATUS FOR AUTOMATIC DEVICE PROGRAM GENERATION

Ciambella Ltd., Tortola ...

1. A computer-implemented method for automatic generation of a device program comprising:
selecting a physical controller from among a user interactive visual representation of each of a plurality of physical controllers
displayed in a graphical user interface (GUI) on a user device, wherein the selected physical controller is external to the
user device and is communicatively coupled to the user device;

displaying, in the GUI, a plurality of operations for execution by the external physical controller;
selecting, in the GUI, at least one operation from among the plurality of operations for execution by the external physical
controller, wherein the at least one operation comprises communicating data with an external data service, and wherein the
external data service is executed remotely from the user device and the external physical controller;

generating, in the GUI, a user interactive pin layout comprising at least one pin for the external physical controller;
selecting, in the GUI, a pin from the user interactive pin layout;
receiving, in the GUI, parameter data for the at least one operation from at least one of a data entry field in the GUI or
an external database;

associating the pin from the user interactive pin layout to the received parameter data for the at least one operation;
automatically generating, at the user device, a device program for the external physical controller based on the user interactive
pin layout, the received parameter data for the at least one operation, and the at least one operation, wherein the device
program comprises executable instructions for performing the at least one operation; and

sending, from the user device, the device program for storage in a memory on the external physical controller and for execution
on the external physical controller.

US Pat. No. 10,095,495

METHOD AND APPARATUS FOR AUTOMATIC SOFTWARE DEVELOPMENT FOR A GROUP OF CONTROLLER-BASED DEVICES

Ciambella Ltd., Tortola ...

1. A computer-implemented method for automatic generation of a program for a controller-based device in a group of controller-based devices, comprising:receiving, at a code virtualization server (CVS), from a user device, for a controller-based device from a plurality of controller-based devices displayed on a graphical user interface (GUI) on the user device, a selection comprising:
a controller type of the controller-based device,
a communication protocol to be used by the controller-based device for communicating with another controller-based device in a group of controller-based devices, the group comprising the plurality of controller-based devices, and
a function to be performed on the CVS based on a remote call from the controller-based device to the CVS;
automatically generating, on the CVS, a first code for execution on the controller-based device, the first code based on the controller type, the communication protocol, and the function,
wherein the first code comprises the remote call for performing the function on the CVS, and capable of routing the remote call from the controller-based device to the CVS;
dispatching the first code to the controller-based device for installation on the controller-based device;
receiving the remote call from the first code installed on the controller-based device; and
executing a second code including one or more predefined processes on the CVS based on receiving the remote call,
wherein each of the user device, the CVS and the controller-based device is remote from each other.

US Pat. No. 9,830,136

METHOD AND APPARATUS FOR FIRMWARE VIRTUALIZATION

Ciambella Ltd., Tortola ...

1. A method operative to virtualize firmware of a user device comprising:
storing, on a virtualized firmware platform (VFP), a virtualized firmware for being executed on the VFP corresponding to a
firmware stored in and for execution on the user device, wherein the virtualized firmware comprises parsed parameters that
are linked to at least one of the user device, the VFP, or a classical services component (CSC), which is remote to the VFP
and the user device;

receiving, on the VFP, firmware data from the firmware in the user device via a network, the firmware data comprising a command
for deploying at least one remote process on the VFP to access a service offered by the CSC;

mapping the firmware data to the corresponding virtualized firmware;
parsing the firmware data;
inserting the firmware data into the virtualized firmware;
executing the virtualized firmware on the VFP;
deploying the at least one remote process on the VFP as a part of the execution of the virtualized firmware on the VFP; and
accessing the service offered by the CSC.

US Pat. No. 10,798,780

METHOD AND APPARATUS FOR CREATING AND MANAGING CONTROLLER BASED REMOTE SOLUTIONS

Ciambella Ltd., Tortola ...

1. A computer-implemented method for creating a controller based remote solution, comprising:receiving, at a code virtualization server (CVS), via a graphical user interface (GUI) of a user device remote to the CVS, at least one of
a selection of a blank template in which a controller device is selected, and a solution corresponding to a conventional system is built via the GUI, or
a selection of a pre-defined solution comprising a controller device installed in a conventional system,
the controller device operable to monitor and control the conventional system, wherein the controller device and the conventional system are remote to the user device and the CVS;
receiving, via the GUI, at the CVS, at least one parameter of the selected solution, the at least one parameter comprising at least one of a monitored parameter of the conventional system, a condition for the monitored parameter, or a remote program parameter for executing a remote program, wherein the remote program is executed remote to the user device and the controller device;
generating, on the CVS, an automatically generated controller program (AGCP) for execution by the controller device, the AGCP comprising a call for executing the remote program based on the condition being met; and
sending the AGCP for installation on the controller device.

US Pat. No. 10,409,562

METHOD AND APPARATUS FOR AUTOMATICALLY GENERATING AND INCORPORATING CODE IN DEVELOPMENT ENVIRONMENTS

Ciambella Ltd., Tortola ...

1. A computer-implemented method for automatically generating and incorporating code in a development environment (DE), the method comprising:while a program for a target device is being composed using the DE on a user device,
displaying an automatic code generation user interface (ACGUI) on the user device, separate from the DE or in a context of the DE;
receiving, via the ACGUI, a selection of a function from a plurality of available functions for generating code automatically corresponding to the selected function;
receiving at least one parameter for executing the automatically generated code to perform the function;
automatically generating the code in the ACGUI based on the selected function and the at least one parameter,
the automatically generated code configured to perform the selected function upon execution of the automatically generated code on the target device;
incorporating the automatically generated code in the program for the target device;
sending the program to the target device for installation and execution on the target device, wherein the user device is remote to the target device; and
receiving, on the ACGUI on the user device, instructions to initiate testing of the automatically generated code.

US Pat. No. 10,282,185

METHOD AND APPARATUS FOR FIRMWARE VIRTUALIZATION

Ciambella Ltd., Tortola,...

1. A method operative to virtualize firmware of a user device comprising:storing, on a virtualized firmware platform (VFP), a virtualized firmware for being executed on the VFP, the virtualized firmware corresponding to a firmware stored in and for execution on the user device;
receiving, on the VFP, firmware data from the firmware in the user device via a network, the firmware data comprising a command for deploying at least one remote process on the VFP;
mapping the firmware data to the virtualized firmware;
inserting the firmware data into the virtualized firmware;
executing the virtualized firmware on the VFP; and
deploying the at least one remote process on the VFP as a part of the execution of the virtualized firmware on the VFP.

US Pat. No. 10,732,969

METHOD AND APPARATUS FOR CREATING AND MANAGING CONTROLLER BASED REMOTE SOLUTIONS

Ciambella Ltd., Tortola ...

1. A computer-implemented method for creating and managing a controller based remote solution, the method comprising:receiving, at a code virtualization server (CVS), from a graphical user interface (GUI) on a user device remote to the CVS, an input of a solution designed on the GUI, the solution comprising:
at least one controller communicably coupled with and operable to control at least one of a sensor or an actuator, wherein the at least one controller is remote to the CVS and the user device,
a condition at the at least one of the sensor or the actuator,
an action for execution by the at least one controller, wherein the action is executed upon the condition being met,
at least one parameter for the solution, and
a function for being called by the at least one controller for being executed remotely to the at least one controller;
automatically generating on the CVS, based on the input solution, a program for execution on the at least one controller, wherein the program comprises code to check if the condition is met, and to execute the action when the condition is met;
embedding, in the automatically generated controller program (AGCP), a remote call from the at least one controller to the CVS for executing the function on the CVS;
sending the AGCP from the CVS to a storage on the user device, or sending the AGCP from the CVS to the at least one controller, for installation on the at least one controller;
receiving, at the CVS from the at least one controller, the remote call for executing the function; and
executing the function on the CVS, wherein executing the function further comprises provisioning a remote service, wherein the remote service is other than a service provided by the at least one controller or the CVS.