×

Seal-based regulation for software deployment management

  • US 9,383,984 B2
  • Filed: 01/13/2014
  • Issued: 07/05/2016
  • Est. Priority Date: 01/13/2014
  • Status: Active Grant
First Claim
Patent Images

1. A method of managing a deployment of a software package, the method comprising the steps of:

  • during a build phase of the software package in a software development lifecycle, a computer generating a plurality of quality assurance (QA) seals indicating respective environments which are distributed target computing environments, the plurality of QA seals specifying that a software package, within which the QA seals are embedded prior to a deployment of the software package to the respective environments, has a compatibility with and a permission to be deployed to the respective environments, one QA seal included in the plurality of QA seals being a first data structure which includes (1) a first security token including an encryption mechanism that indicates whether the software package has been tampered with or otherwise changed, (2) a first profile including a name, a version, a build date, an identifier, and an author or manufacturer of a component of the software package, (3) a second profile including details about hardware, middleware, and applications required in a first environment in which the software package is permitted to be deployed, the first environment being included in the respective environments, (4) a third profile including an identifier and a name of a user who is responsible for verifying contents of the software package prior to the one QA seal being embedded in the software package, (5) a first specification of one or more phases of a software development lifecycle for which the one QA seal is generated, (6) a fourth profile specifying steps of a workflow of the software development lifecycle, a name and an identifier of a reviewer of the software package, a status of an approval of the software package, and a status of the software package at key decision checkpoints, (7) a fifth profile specifying dependencies of hardware and software required in the deployment of the software package in the first environment, and (8) first metadata including a timestamp of a completion of a generation of the one QA seal, a history of modification of the one QA seal, a status of an approval of the one QA seal, and a phase of the one QA seal, and another QA seal included in the plurality of QA seals being a second data structure which includes (1) the security token, (2) the first profile including the name, the version, the build date, the identifier, and the author or manufacturer of the component of the software package, (3) a sixth profile including details about hardware, middleware, and applications required in a second environment in which the software package is permitted to be deployed, the second environment being included in the respective environments, (4) a seventh profile including an identifier and a name of a user who is responsible for verifying contents of the software package prior to the other QA seal being embedded in the software package, (5) a second specification of one or more phases of a software development lifecycle for which the other QA seal is generated, (6) the fourth profile specifying the steps of the workflow of the software development lifecycle, the name and the identifier of the reviewer of the software package, the status of the approval of the software package, and the status of the software package at the key decision checkpoints, (7) an eighth profile specifying the dependencies of the hardware and the software required in the deployment of the software package in the second environment, and (8) second metadata including a timestamp of a completion of a generation of the other QA seal, a history of modification of the other QA seal, a status of an approval of the other QA seal, and a phase of the other QA seal;

    during the build phase, the computer storing the plurality of QA seals in a first data repository;

    subsequent to the build phase, subsequent to a test phase of the software package in the software development lifecycle, and prior to an initiation of the deployment of the software package to the environments in the software development lifecycle, the computer generating first and second QA seals for deploying the software package to the first and second environments, respectively, embedding the first and second QA seals into the software package, and storing in a second data repository the software package within which the first and second QA seals are embedded, the first QA seal including one profile identical to the second profile included in the one QA seal and another profile identical to the fifth profile included in the one QA seal;

    in response to the initiation of the deployment of the software package to the respective environments, the computer retrieving the software package from the second data repository;

    the computer retrieving the first and second QA seals embedded in the retrieved software package;

    the computer performing a first lookup of the retrieved first QA seal in the plurality of QA seals stored in the first data repository and in response, determining the retrieved first QA seal matches the one QA seal included in the plurality of QA seals stored in the first data repository and determining the retrieved first QA seal does not match any other QA seal included in the plurality of QA seals;

    the computer performing a second lookup of the retrieved second QA seal in the plurality of QA seals stored in the first data repository and in response, determining that the retrieved second QA seal does not match any QA seal included in the plurality of QA seals stored in the first data repository;

    in response to the initiation of the deployment of the software package, the computer obtaining details of the first environment to which the software package is being deployed, the details specifying hardware and software included in the first environment;

    the computer reading the details about the hardware, middleware, and applications required in the first environment included in the one profile in the retrieved first QA seal;

    the computer determining the details about the hardware, middleware, and applications required in the first environment which were read in the one profile in the retrieved first QA seal match the obtained details specifying the hardware and software included in the first environment;

    based on the retrieved first QA seal matching the one QA seal included in the plurality of QA seals, the retrieved first QA seal not matching any other QA seal included in the plurality of QA seals, and the details about the hardware, middleware, and applications required in the first environment which were read in the one profile in the retrieved first QA seal matching the obtained details specifying the hardware and software included in the first environment, the computer determining the retrieved first QA seal indicates the software package is compatible with the first environment;

    the computer reading dependencies of hardware and software required in the deployment of the software package in the other profile in the retrieved first QA seal;

    the computer determining the dependencies are satisfied based on the first environment specified by the other profile in the retrieved first QA seal;

    the computer reading the first metadata in the retrieved first QA seal, and in response, determining the software package is approved for a release to the first environment specified by the one profile in the retrieved first QA seal;

    based on the software package being compatible with the first environment, the dependencies being satisfied, and the software package being approved for the release to the first environment, the computer generating a notification of an authorization of the deployment of the software package to the first environment; and

    based on the retrieved second QA seal not matching any QA seal included in the plurality of QA seals stored in the first data repository, the computer generating a notification indicating that the deployment of the software package to the second environment is not authorized.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×