MLchartDataset catalogue

Patent · US10552134B2 · B2 · US

Method, device, and program storage device for autonomous software life cycle management

(11) Publication number
US10552134B2
(21) Application number
15/149,351
(22) Filing date
2016-05-09
(30) Priority date
2014-08-25
(43) Publication date
2020-02-04
(45) Date of grant
2020-02-04
(51) IPC
G06F 9/445; G06F 11/36; G06F 8/60; G06F 8/61; G06F 8/656; G06F 9/455
(52) CPC
  • G06F Electric digital data processing: 8/61, 11/3409, 11/3664, 11/3672, 11/368, 11/3698, 2201/865, 8/60, 8/656
(73) Assignee
General Electric Co
(72) Inventors
Ghulam Ali Baloch; Bradford Wayne Miller; Chung Hee Hwang; Viktor Holovashchenko
(54) Title
Method, device, and program storage device for autonomous software life cycle management
(57) Abstract

A method of searching for and installing a software product on a device is provided. One or more capabilities needed by the device to be served by a software product are determined. The one or more capabilities needed by the device are communicated from a software life cycle management agent on the device to a yellow pages agent outside the device, the communicating comprising formulating a request comprising a list of the capabilities encoded in a description language that defines the capabilities semantically. Then locations of one or more software products matching the one or more capabilities needed by the device may be received from the yellow pages agent. One of the one or more software products to install may be selected based on automatically evaluated criteria. Then the selected software product may be downloaded using its received location, and the selected software product may be installed on the device.

Full text
View on Google Patents

Claims (18)

  1. A method comprising: communicating a request from a software lifecycle management agent to one or more yellow pages agents outside a device for one or more software products that provide one or more capabilities needed by the device, wherein the request includes instructions to select the one or more software products, and wherein the instructions include a pre-determined threshold number of one or more capabilities that match the one or more capabilities needed by the device, and the selection via the instructions is based on the one or more software products including the threshold number, wherein yellow pages agents are modules operative to organize available software based on at least one of a category and capability; receiving locations of one or more software products matching the one or more capabilities needed by the device from the one or more yellow pages agents; downloading one of the one or more software products using its received location; and installing the selected software product on the device.
  2. The method of claim 1, further comprising scanning the device to determine hardware capabilities of the device.
  3. The method of claim 1, further comprising scanning the device to determine an operating system installed on the device.
  4. The method of claim 1, wherein the installing the selected software product on the device further includes: installing the selected software product in a sandbox on the device; performing testing of the selected software product in the sandbox; and determining, based on the testing, whether to complete installation of the selected software product on the device.
  5. The method of claim 1, wherein the installing is performed only after an analysis of: current resource utilization in the system.
  6. The method of claim 1, wherein the installing further comprises: storing information about the software product in a software inventory database.
  7. The method of claim 6, wherein the information includes an Open Service Gateway Initiative (OSGi) container.
  8. A device comprising: a sandbox; and a software testing agent, a software life cycle management agent executing on one or more hardware processors of the device, the software life cycle management agent configured to: communicate a request from a software lifecycle management agent to one or more yellow pages agents outside the device for one or more software products that provide one or more capabilities needed by the device, wherein the request includes instructions to select the one or more software products based on the one or more software products that include a threshold number of one or more capabilities that match the one or more capabilities needed by the device, wherein yellow pages agents are modules operative to organize available software based on at least one of a category and capability; receive locations of one or more software products matching the one or more capabilities needed by the device from the one or more yellow pages agents; download one of the one or more software products using its received location; install the selected software product in the sandbox and request the software testing agent to test the selected software product, wherein the software testing agent is configured to test the selected software product in the sandbox, and wherein the software life cycle management agent is further configured to determine, based on the testing, whether to complete installation of the selected software product on the device; and install the selected software product on the device, wherein installing the selected software product on the device further includes: installing the selected software product in a sandbox on the device; performing testing of the selected software product in the sandbox to determine at least one of: resource utilization compared to a preset threshold, a performance level compared to a performance threshold; and determining, based on the testing, whether to complete installation of the selected software product on the device.
  9. The device of claim 8, wherein the installing is performed only after an analysis of current resource utilization in the system.
  10. The device of claim 8, wherein the installing further comprises: storing information about the software product in a software inventory database.
  11. The device of claim 10, wherein the information includes an Open Service Gateway Initiative (OSGi) container.
  12. A non-transitory machine-readable storage medium comprising instructions, which when implemented by one or more machines, cause the one or more machines to perform operations comprising: communicating a request from a software lifecycle management agent to one or more yellow pages agents outside a device for one or more software products that provide one or more capabilities needed by the device, wherein the request includes instructions to select the one or more software products, and wherein the instructions include a pre-determined threshold number of one or more capabilities that match the one or more capabilities needed by the device, and the selection via the instructions is based on the one or more software products including the threshold number, wherein yellow pages agents are modules operative to organize available software based on at least one of a category and a capability; receiving locations of one or more software products matching the one or more capabilities needed by the device from the one or more yellow pages agents; downloading one of the one or more software products using its received location; and installing the selected software product on the device.
  13. The non-transitory machine-readable storage medium of claim 12, wherein the operations farther comprise scanning the device to determine hardware capabilities of the device.
  14. The non-transitory machine-readable storage medium of claim 12, wherein the operations further comprise scanning the device to determine an operating system installed on the device.
  15. The non-transitory machine-readable storage medium of claim 12, wherein the installing the selected software product on the device further includes: installing the selected software product in a sandbox on the device; performing testing of the selected software product in the sandbox; and determining, based on the testing, whether to complete installation of the selected software product on the device.
  16. The non-transitory machine-readable storage medium of claim 12, wherein the installing is performed only after an analysis of current resource utilization in the system.
  17. The non-transitory machine-readable storage medium of claim 12, wherein the installing further comprises: storing information about the software product in a software inventory database.
  18. The non-transitory machine-readable storage medium of claim 17, wherein the information includes an Open Service Gateway Initiative (OSGi) container.

Description

This application is a continuation of and claims the benefit of priority to U.S. application Ser. No. 14/468,022, filed on Aug. 25, 2014, which is incorporated by reference herein in its entirety.

This application relates generally to software development and testing. More particularly, this application relates to an agent for autonomous software life cycle management.

Software life cycle management refers to the governance, development, and maintenance of computer software. Specifically, it typically encompasses requirements management, software architecture, computer programming, software testing, software management, change management, product management, and release management. The “life cycle” referred to involves the complete life of a software product, from design stages to distribution and release to maintenance.

While certain aspects of software life cycle management have been automated, it is still a largely manual process. For example, when testing computer software, a developer may utilize testing tools to help create test scenarios for the software, but the decisions as to which environments and configurations/settings to test are determined by a human. Furthermore, while tools exist to aid in update management, such as an automated tool that checks for an updated version of a software product every time the software product is run, such update management tools are limited in that they are only able to make a determination as to whether to update one particular software product with a newer version of the same software product.

Citations (30)

  • US6151643A
  • US6347398B1
  • US6314565B1
  • US7844963B2
  • US20040031052A1
  • US20040060044A1
  • US20120184255A1
  • US8634539B2
  • US8176483B2
  • US20080196020A1
  • US20090210870A1
  • US20090288079A1
  • US20100131943A1
  • US20110087692A1
  • US20110154314A1
  • US8819658B2
  • US20130067461A1
  • US9727322B2
  • US20120011083A1
  • US20120059805A1
  • US8578376B2
  • US20120290441A1
  • US20140298293A1
  • US20130185292A1
  • US20130318498A1
  • US8930917B2
  • US20140007070A1
  • US20160004520A1
  • US20160055072A1
  • US9348571B2
Record as JSON
{
  "publication_number": "US10552134B2",
  "country": "US",
  "kind": "B2",
  "title": "Method, device, and program storage device for autonomous software life cycle management",
  "abstract": "A method of searching for and installing a software product on a device is provided. One or more capabilities needed by the device to be served by a software product are determined. The one or more capabilities needed by the device are communicated from a software life cycle management agent on the device to a yellow pages agent outside the device, the communicating comprising formulating a request comprising a list of the capabilities encoded in a description language that defines the capabilities semantically. Then locations of one or more software products matching the one or more capabilities needed by the device may be received from the yellow pages agent. One of the one or more software products to install may be selected based on automatically evaluated criteria. Then the selected software product may be downloaded using its received location, and the selected software product may be installed on the device.",
  "claims": [
    "1. A method comprising: communicating a request from a software lifecycle management agent to one or more yellow pages agents outside a device for one or more software products that provide one or more capabilities needed by the device, wherein the request includes instructions to select the one or more software products, and wherein the instructions include a pre-determined threshold number of one or more capabilities that match the one or more capabilities needed by the device, and the selection via the instructions is based on the one or more software products including the threshold number, wherein yellow pages agents are modules operative to organize available software based on at least one of a category and capability; receiving locations of one or more software products matching the one or more capabilities needed by the device from the one or more yellow pages agents; downloading one of the one or more software products using its received location; and installing the selected software product on the device.",
    "2. The method of claim 1, further comprising scanning the device to determine hardware capabilities of the device.",
    "3. The method of claim 1, further comprising scanning the device to determine an operating system installed on the device.",
    "4. The method of claim 1, wherein the installing the selected software product on the device further includes: installing the selected software product in a sandbox on the device; performing testing of the selected software product in the sandbox; and determining, based on the testing, whether to complete installation of the selected software product on the device.",
    "5. The method of claim 1, wherein the installing is performed only after an analysis of: current resource utilization in the system.",
    "6. The method of claim 1, wherein the installing further comprises: storing information about the software product in a software inventory database.",
    "7. The method of claim 6, wherein the information includes an Open Service Gateway Initiative (OSGi) container.",
    "8. A device comprising: a sandbox; and a software testing agent, a software life cycle management agent executing on one or more hardware processors of the device, the software life cycle management agent configured to: communicate a request from a software lifecycle management agent to one or more yellow pages agents outside the device for one or more software products that provide one or more capabilities needed by the device, wherein the request includes instructions to select the one or more software products based on the one or more software products that include a threshold number of one or more capabilities that match the one or more capabilities needed by the device, wherein yellow pages agents are modules operative to organize available software based on at least one of a category and capability; receive locations of one or more software products matching the one or more capabilities needed by the device from the one or more yellow pages agents; download one of the one or more software products using its received location; install the selected software product in the sandbox and request the software testing agent to test the selected software product, wherein the software testing agent is configured to test the selected software product in the sandbox, and wherein the software life cycle management agent is further configured to determine, based on the testing, whether to complete installation of the selected software product on the device; and install the selected software product on the device, wherein installing the selected software product on the device further includes: installing the selected software product in a sandbox on the device; performing testing of the selected software product in the sandbox to determine at least one of: resource utilization compared to a preset threshold, a performance level compared to a performance threshold; and determining, based on the testing, whether to complete installation of the selected software product on the device.",
    "9. The device of claim 8, wherein the installing is performed only after an analysis of current resource utilization in the system.",
    "10. The device of claim 8, wherein the installing further comprises: storing information about the software product in a software inventory database.",
    "11. The device of claim 10, wherein the information includes an Open Service Gateway Initiative (OSGi) container.",
    "12. A non-transitory machine-readable storage medium comprising instructions, which when implemented by one or more machines, cause the one or more machines to perform operations comprising: communicating a request from a software lifecycle management agent to one or more yellow pages agents outside a device for one or more software products that provide one or more capabilities needed by the device, wherein the request includes instructions to select the one or more software products, and wherein the instructions include a pre-determined threshold number of one or more capabilities that match the one or more capabilities needed by the device, and the selection via the instructions is based on the one or more software products including the threshold number, wherein yellow pages agents are modules operative to organize available software based on at least one of a category and a capability; receiving locations of one or more software products matching the one or more capabilities needed by the device from the one or more yellow pages agents; downloading one of the one or more software products using its received location; and installing the selected software product on the device.",
    "13. The non-transitory machine-readable storage medium of claim 12, wherein the operations farther comprise scanning the device to determine hardware capabilities of the device.",
    "14. The non-transitory machine-readable storage medium of claim 12, wherein the operations further comprise scanning the device to determine an operating system installed on the device.",
    "15. The non-transitory machine-readable storage medium of claim 12, wherein the installing the selected software product on the device further includes: installing the selected software product in a sandbox on the device; performing testing of the selected software product in the sandbox; and determining, based on the testing, whether to complete installation of the selected software product on the device.",
    "16. The non-transitory machine-readable storage medium of claim 12, wherein the installing is performed only after an analysis of current resource utilization in the system.",
    "17. The non-transitory machine-readable storage medium of claim 12, wherein the installing further comprises: storing information about the software product in a software inventory database.",
    "18. The non-transitory machine-readable storage medium of claim 17, wherein the information includes an Open Service Gateway Initiative (OSGi) container."
  ],
  "description_excerpt": "This application is a continuation of and claims the benefit of priority to U.S. application Ser. No. 14/468,022, filed on Aug. 25, 2014, which is incorporated by reference herein in its entirety.\n\nThis application relates generally to software development and testing. More particularly, this application relates to an agent for autonomous software life cycle management.\n\nSoftware life cycle management refers to the governance, development, and maintenance of computer software. Specifically, it typically encompasses requirements management, software architecture, computer programming, software testing, software management, change management, product management, and release management. The “life cycle” referred to involves the complete life of a software product, from design stages to distribution and release to maintenance.\n\nWhile certain aspects of software life cycle management have been automated, it is still a largely manual process. For example, when testing computer software, a developer may utilize testing tools to help create test scenarios for the software, but the decisions as to which environments and configurations/settings to test are determined by a human. Furthermore, while tools exist to aid in update management, such as an automated tool that checks for an updated version of a software product every time the software product is run, such update management tools are limited in that they are only able to make a determination as to whether to update one particular software product with a newer version of the same software product.",
  "cpc": [
    "G06F 8/61",
    "G06F 11/3409",
    "G06F 11/3664",
    "G06F 11/3672",
    "G06F 11/368",
    "G06F 11/3698",
    "G06F 2201/865",
    "G06F 8/60",
    "G06F 8/656"
  ],
  "ipc": [
    "G06F 9/445",
    "G06F 11/36",
    "G06F 8/60",
    "G06F 8/61",
    "G06F 8/656",
    "G06F 9/455"
  ],
  "assignees": [
    "General Electric Co"
  ],
  "inventors": [
    "Ghulam Ali Baloch",
    "Bradford Wayne Miller",
    "Chung Hee Hwang",
    "Viktor Holovashchenko"
  ],
  "filing_date": "2016-05-09",
  "publication_date": "2020-02-04",
  "grant_date": "2020-02-04",
  "priority_date": "2014-08-25",
  "application_number": "US-201615149351-A",
  "family_id": "55348415",
  "cited_by_count": 2,
  "citations": [
    "US6151643A",
    "US6347398B1",
    "US6314565B1",
    "US7844963B2",
    "US20040031052A1",
    "US20040060044A1",
    "US20120184255A1",
    "US8634539B2",
    "US8176483B2",
    "US20080196020A1",
    "US20090210870A1",
    "US20090288079A1",
    "US20100131943A1",
    "US20110087692A1",
    "US20110154314A1",
    "US8819658B2",
    "US20130067461A1",
    "US9727322B2",
    "US20120011083A1",
    "US20120059805A1",
    "US8578376B2",
    "US20120290441A1",
    "US20140298293A1",
    "US20130185292A1",
    "US20130318498A1",
    "US8930917B2",
    "US20140007070A1",
    "US20160004520A1",
    "US20160055072A1",
    "US9348571B2"
  ]
}

Record 2,337 of 8,000 in Patents full text (MLC-0201). Request the full dataset.