IP Library Granted Patent US 10,387,129
Granted Patent B2
US 10,387,129 · App. 15/638,148 · Granted Aug 20, 2019

Deployment of environment-agnostic services

Inventors: Marc-Thomas Schmidt (Danville, CA); Suparna Pal (Dublin, CA); Vipul Parmar (San Jose, CA)
Assignee: General Electric Company
G06F8/60G06F8/31G06F9/445G06F9/46
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,387,129
App. No.
15/638,148
Granted
Aug 20, 2019
Kind
B2
Abstract

Systems and methods for deploying runtime environment-agnostic services are presented. In an example embodiment, an indication is received of a runtime environment in which a first programming code and a second programming code are to execute. The second programming code includes a dependency to the first programming code that is abstracted from the runtime environment. An artifact of the first programming code and an artifact of the second programming code are accessed from a data store based on the indication of the runtime environment. The artifact of the first programming code and the artifact of the second programming code are integrated to yield integrated programming code. The integrated programming code is deployed to the indicated runtime environment.

Claims (64)

1. A method for deployment of runtime environment-agnostic services, the method comprising:

receiving, by an integration/deployment manager executing on at least one hardware processor of a computing system, an indication of a runtime environment in which a first programming code and a second programming code are to execute, the second programming code comprising a dependency to the first programming code that is abstracted from the runtime environment, the indication of the runtime environment being an indication that the environment is at a cloud system deployed at the cloud, or is a client device, the first programming code being source or binary code for a software service, the second programming code being source or binary code for a software application that depends upon the software service;

storing a device profile and a service template at a data store, the device profile being logically connected to the service template;

wherein the device profile comprises configuration information referencing the software application, wherein the service template includes the dependency of the second programming code to the first programming code and the dependency comprises an abstraction of an endpoint to be called to access the software service, wherein the service template references a first artifact, the first artifact being an executable image of the software service;

after receiving a command to deploy software in a particular environment, accessing the first artifact of the first programming code from the data store by the integration/deployment manager based at least in part on the indication of the runtime environment and using the service template;

after receiving the command to deploy software in a particular environment, accessing a second artifact of the second programming code from the data store by the integration/deployment manager based at least in part on the indication of the runtime environment;

subsequently integrating the first artifact of the first programming code and the second artifact of the second programming code by the integration/deployment manager to yield integrated programming code, wherein the integrating is effective to resolve runtime dependencies between the first artifact and the second artifact;

deploying the integrated programming code to the indicated runtime environment by the integration/deployment manager; and

such that the integrated programming code is deployable and executable at the cloud system or the client device and is the only version of the software application that is deployed at the cloud system or client device to avoid the occurrence of multiple versions of the software application.

2. The method of claim 1 , wherein:

a cloud computing system comprises the computing system and the indicated runtime environment.

3. The method of claim 1 , wherein:

the integrating of the first artifact of the first programming code and the second artifact of the second programming code comprises incorporating the artifact of the first programming code and the artifact of the second programming code in one or more software containers; and

the deploying of the integrated programming code comprises the computing system transmitting, via a communication network, the one or more software containers to a client system providing the indicated runtime environment for execution on a container engine.

4. The method of claim 1 , further comprising:

wherein the accessing of the first artifact of the first programming code and the accessing of the second artifact of the second programming code are based on the configuration information.

5. The method of claim 4 , wherein:

the configuration information referencing the software application comprises a solution template, the solution template comprising configuration information referencing one or more software services included in the software application; and

the method further comprises integrating artifacts of programming code for the one or more software services to produce the artifact of the second programming code for the software application.

6. The method of claim 4 , wherein:

the configuration information comprises first configuration information for the first artifact of the first programming code corresponding to the indicated runtime environment.

7. The method of claim 6 , wherein:

the service template further comprises second configuration information for the first artifact of the first programming code corresponding to another runtime environment separate from the indicated runtime environment.

8. The method of claim 6 , wherein:

the first configuration information comprises an indication of an artifact type of the first artifact of the first programming code.

9. The method of claim 6 , wherein:

the first configuration information comprises an indication of a storage location of the first artifact of the first programming code.

10. The method of claim 6 , wherein:

the first configuration information comprises an indication of a method by which the first artifact of the first programming code is accessed.

11. The method of claim 6 , wherein:

the first configuration information comprises an indication of a deployment type of the first artifact of the first programming code.

12. The method of claim 6 , wherein:

the first configuration information comprises an indication of a location to which the first artifact of the first programming code is to be deployed within the indicated runtime environment.

13. The method of claim 6 , wherein:

the first configuration information comprises an indication of at least one other software service, wherein deployment of the software service depends upon availability of the at least one other software service in the indicated runtime environment.

14. A system comprising:

one or more hardware processors; and

a memory storing instructions that, when executed by at least one of the one or more hardware processors, cause the system to perform operations comprising:

receiving an indication of a runtime environment in which a first programming code and a second programming code are to execute, the second programming code comprising a dependency to the first programming code that is abstracted from the runtime environment, the indication of the runtime environment being an indication that the environment is at a cloud system deployed at the cloud, or is a client device, the first programming code being source or binary code for a software service, the second programming code being source or binary code for a software application that depends upon the software service;

storing a device profile and a service template at a data store, the device profile being logically connected to the service template;

wherein the device profile comprises configuration information referencing the software application, wherein the service template includes the dependency of the second programming code to the first programming code and the dependency comprises an abstraction of an endpoint to be called to access the software service, wherein the service template references a first artifact, the first artifact being an executable image of the software service;

after receiving a command to deploy software in a particular environment, accessing the first artifact of the first programming code from a data store based at least in part on the indication of the runtime environment and using the service template;

after receiving the command to deploy software in a particular environment, accessing a second artifact of the second programming code from the data store based at least in part on the indication of the runtime environment;

subsequently integrating the first artifact of the first programming code and the second artifact of the second programming code to yield integrated programming code, wherein the integrating is effective to resolve runtime dependencies between the first artifact and the second artifact; and

deploying the integrated programming code to the indicated runtime environment;

such that the integrated programming code is deployable and executable at the cloud system or the client device and is the only version of the software application that is deployed at the cloud system or client device to avoid the occurrence of multiple versions of the software application.

15. The system of claim 14 , wherein:

a cloud computing system comprises the system and the indicated runtime environment.

16. The system of claim 14 , wherein:

the deploying of the integrated programming code comprises transmitting the integrated programming code to the client device via a communication network.

17. The system of claim 16 , wherein:

the integrating of the first artifact of the first programming code and the second artifact of the second programming code comprises incorporating the first artifact of the first programming code and the second artifact of the second programming code into one or more software containers for execution on a container engine in the client device.

18. The system of claim 16 , wherein:

the client device is communicatively coupled to an industrial asset; and

the software application is configured to process data received at the client device.

19. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one hardware processor of a machine, cause the machine to perform operations comprising:

receiving an indication of a runtime environment in which a first programming code and a second programming code are to execute, the second programming code comprising a dependency to the first programming code that is abstracted from the runtime environment, the indication of the runtime environment being an indication that the environment is at a cloud system deployed at the cloud, or is a client device, the first programming code being source or binary code for a software service, the second programming code being source or binary code for a software application that depends upon the software service;

storing a device profile and a service template at a data store, the device profile being logically connected to the service template;

wherein the device profile comprises configuration information referencing the software application, wherein the service template includes the dependency of the second programming code to the first programming code and the dependency comprises an abstraction of an endpoint to be called to access the software service, wherein the service template references a first artifact, the first artifact being an executable image of the software service;

after receiving a command to deploy software in a particular environment, accessing a first artifact of the first programming code from a data store based at least in part on the indication of the runtime environment;

after receiving the command to deploy software in a particular environment, accessing a second artifact of the second programming code from the data store based at least in part on the indication of the runtime environment;

subsequently integrating the first artifact of the first programming code and the second artifact of the second programming code to yield integrated programming code, wherein the integrating is effective to resolve runtime dependencies between the first artifact and the second artifact; and

deploying the integrated programming code to the indicated runtime environment;

such that the integrated programming code is deployable and executable at the cloud system or the client device and is the only version of the software application that is deployed at the cloud system or client device to avoid the occurrence of multiple versions of the software application.

Assignments (4)
SECURITY INTEREST Recorded Mar 2, 2026
From: INNOVATEPRO MANAGEMENT USA LLC
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 073942/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2026
From: GE VERNOVA ELECTRIFICATION SOFTWARE HOLDINGS LLC
To: INNOVATEPRO MANAGEMENT USA LLC
Reel/Frame 073924/0810 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2023
From: GENERAL ELECTRIC COMPANY
To: GE DIGITAL HOLDINGS LLC
Reel/Frame 065612/0085 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2017
From: SCHMIDT, MARC-THOMAS; PAL, SUPARNA; PARMAR, VIPUL
To: GENERAL ELECTRIC COMPANY
Reel/Frame 042869/0821 →
Continuity (1)
Related Publication 20190004779A1 · Jan 3, 2019