DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This Office Action is in response to the filing date of 1/18/2024.
Claims 1-20 are pending and have been considered below.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-4, 6, 8-11, 13, 15-18, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over CN118377518A to Li in view of U.S. Pub. No. 20240143404 to Enomoto.
Per claims 1, 8, and 15, Li teaches a system for discovering modular application components using continuous integration (CI) and continuous delivery (CD) (CI/CD) and a component marketplace (see at least page 29 “The project management service is used for managing the project where the code is located, such as managing the version. Pipeline service provides visualization, the continuous integration and continuous delivery (CI/CD) software production line that can be arranged helps enterprises to quickly transform, The DevOps continuous delivery efficient automation is realized, the application delivery period is shortened, and the research and development efficiency is improved…”), comprising: one or more memories; and one or more processors, communicatively coupled to the one or more memories (see at least page 14 “The at least one processor and the at least one memory communicate with each other. The at least one processor is configured to execute instructions stored in the at least one memory to cause a computing device or a cluster of computing devices to perform the code management method as described in any one of the first aspect or the first aspect…”), configured to:
receive, via a CI/CD pipeline, a first request to register code associated with one or more modular application components (see at least page 27, “The extension subsystem 100 receives the code upload request 1. The code uploading request is a request for uploading code…”);
The metadata of the first code is then generated to the hosting subsystem 200…”);
publish, to the component marketplace, the information related to the code associated with the one or more modular application components (see at least page 27, “The extension subsystem 100 sends the first code or the metadata of the first code to the hosting subsystem 200 according to the code upload request 1…”);
receive, from a developer device, a second request to access the one or more modular application components (see at least page 33 “The extended subsystem 100 receives the code download request. The code downloading request is used for requesting downloading code, such as downloading the third code. The third code may be the first code, the second code, or other codes…”); and
provide, to the developer device, access to the one or more modular application components (see at least page 33 “The extension subsystem 100 downloads a third code from a code repository on the extension subsystem 100 side…”).
Li further teaches “The front-end proxy service is used for providing an interface, such as an application programming interface (API) …The interface may include an interface for implementing code uploading and code downloading” see at least page 20) but does not explicitly teach:
perform, based on the first request to register the code associated with the one or more modular application components, one or more application program interface (API) calls to obtain information related to the code associated with the one or more modular application components from a release management
However, Enomoto teaches an analogous art relates to CI/CD pipeline (see at least paragraph [0041] “…the workload deployment system 102 may execute as an automation pipeline, such as a continuous integration and continuous deployment (CI/CD) pipeline (or a portion of a CI/CD pipeline)…”), comprises:
perform, based on the first request to register the code associated with the one or more modular application components, one or more application program interface (API) calls to obtain information related to the code (see at least paragraph [0059] “…during process 500, the workload deployment component 108 may retrieve object names and/or unique identifiers for objects and/or resources within the various source and destination environments associated with the workload deployment request. In various examples, the object names and/or unique identifiers for the various objects may be retrieved via the requests (e.g., API calls, database queries, etc.) made to the various computing environments…”).
It would have been obvious for a person of an ordinary skilled in the art as off the effective filing date of the claimed invention to modify the teaching of Li to incorporate the teaching of Enomoto to perform one or more API calls to obtain information. One would have been motivated to use the available API calls for obtaining information/data without needing to build everything from scratch.
Per claims 2, 9, and 16, Li further teaches:
wherein the first request is published to a component update stream topic by a release management system (see at least page 27, “The extension subsystem 100 receives the code upload request 1. The code uploading request is a request for uploading code…”).
Per claims 3, 10, 17, Li further teaches:
wherein the one or more processors are further configured to: route the second request to one or more users that own the code associated with the one or more modular application components, wherein access to the one or more modular application components is provided to the developer device based on the one or more users that own the code associated with the one or more modular application components granting the second request (see at least page 33 “…the extension subsystem may send an authentication request to the escrow subsystem 200 to request the escrow subsystem 200 to perform authentication so as to determine whether to allow the user to download the third code according to the authentication result…”).
Per claim 4, 11, and 18, Li further teaches:
wherein the one or more processors are further configured to: provide access to documentation associated with the one or more modular application components (see at least page 27 “…enabling the metadata of the first code to be synchronized to the hosting subsystem 200 side (e.g., a cloud environment)”)
Per claim 6, 13, and 20, Li further teaches:
wherein the first request is received based on one or more system in the CI/CD pipeline determining that the code associated with the one or more modular application components has passed a vulnerability check and one or more functional tests (see at least page 29 “Pipeline service provides visualization, The continuous integration and continuous delivery (CI/CD) software production line that can be arranged helps enterprises to quickly transform, The DevOps continuous delivery efficient automation is realized, the application delivery period is shortened, and the research and development efficiency is improved. The security check service is used for checking the security of the uploaded code. For example, the security check service can check whether there is a security vulnerability in the used third-party library by metadata. The rule checking service is used for checking whether the uploaded code is in accordance with the rule (such as various standards in the code development process). For example, the rule check service may check whether the function, variable, etc”).
Claims 5, 7, 12, 14, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over CN118377518A to Li in view of U.S. Pub. No. 20240143404 to Enomoto and in further view of U.S. Pub. No. 20180275970 to Woulfe.
Per claims 5, 12, and 19, neither Li nor Enomoto teach:
wherein the one or more processors are further configured to: provide access to one or more educational resources that provide guidelines for integrating the one or more modular application components into a modular software application.
However, Woulfe teaches an analogous art relates to CI/CD (see at least paragraph [0021] “continuous integration, continuous deployment, continuous delivery, machine learning and/or statistical analysis system”), comprises:
provide guidelines for integrating the one or more modular application components into a modular software application (see at least paragraph [0057] “Guidelines such as ensuring that the detected bug(s) are false positives can be provide”).
Therefore, it would have been obvious for a person of an ordinary skilled in the art as of the effective filling date of the claimed invention to modify the teachings of Li and Enomoto to incorporate the teaching of Woulfe to provide guidelines to ensure bugs are detected during code integration.
Per claims 7 and 14, neither Li nor Enomoto teach:
wherein the one or more processors are further configured to: use one or more artificial intelligence or machine learning algorithms to one or more of: predict one or more issue or bottlenecks in the CI/CD pipeline or performance of the one or more modular application components, automate a review of the code associated with the one or more modular application components, or suggest one or more optimizations to the code associated with the one or more modular application components based on an automated review of the code.
However, Woulfe teaches an analogous art relates to CI/CD (see at least paragraph [0021] “continuous integration, continuous deployment, continuous delivery, machine learning and/or statistical analysis system”), comprises:
use one or more artificial intelligence or machine learning algorithms to one or more of: predict one or more issue or bottlenecks in the CI/CD pipeline or performance of the one or more modular application components, automate a review of the code associated with the one or more modular application components, or suggest one or more optimizations to the code associated with the one or more modular application components based on an automated review of the code (see at least paragraph [0019] “The feature vectors can be converted into data used to train and test a machine learning model. The feature vectors can be split into a group that is used to train a machine learning model and a group that is used to test the machine learning model. The model can be used to assess the probability or risk of the presence of software bugs in a source code file. The model can be used to determine the risk of a code change or a set of code changes in a change list including bugs. The model can be used to determine whether an integration and/or deployment or delivery should be performed based on bug data. In accordance with some aspects of the subject matter described herein, a threshold can be defined such that if a determined risk factor based on the bug data exceeds the threshold, integration and/or deployment or delivery is blocked. Other ways of threshold comparison processing are contemplated. The risk factor for a change list can be used to determine to block or allow integration, deployment and/or delivery of the change list.…”).
Therefore, it would have been obvious for a person of an ordinary skilled in the art as of the effective filing date of the claimed invention to modify the teachings of Li and Enomoto to incorporate the teaching of Woulfe to use the machine learning for identifying risks factors for integration, deployment, and delivery of code. One would have been motivated to do so in order to block or allow integration, deployment or delivery of code.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US20240411544 relates to continuous integration and continuous deployment (CI/CD) pipeline.
US20240311146 relates to continuous integration and continuous deployment (CI/CD) pipeline.
US20240281248 relates to continuous integration and continuous deployment (CI/CD) pipeline.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to PHILLIP H NGUYEN whose telephone number is (571)270-1070. The examiner can normally be reached Monday-Friday 9:00AM-5:00PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Wei Zhen can be reached at (571) 272-3708. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/PHILLIP H NGUYEN/Primary Examiner, Art Unit 2191