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 2/22/2024.
Claims 1-24 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-5, 7, 8, 10-24 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 20210034347 to Robbins in view of U.S. Pub. No. 20190102162 Pitre et al.
Per claims 1, 11, and 12, Robbins teaches a method for updating application capabilities, the method comprising:
ingesting data, by a central system, from a plurality of data sources, the plurality of data sources comprising a configuration management database (CMDB), an IAM platform, and responses to a questionnaire (see at least paragraph [0032] “The engine 102 may use any means to obtain appropriate data/information for the purposes of installation of functionalities/components. The engine 102 may also obtain data from various third-party sources…”);
identifying, by the central system, one or more deployed application capabilities associated with one or more applications based on the ingested data from the IAM platform and/or the CMDB (see at least paragraph [0035] “…a search of the repository 106 may be conducted and the repository may generate a list of available functionalities/components for installation on the user device 104. The list may be supplied to the engine 102…”);
identifying, by the central system, one or more target capabilities based on the ingested data from the questionnaire (see at least paragraphs [0034 -0035] “The software application 108 may be configured to generate various updates to its functionalities/components and supply them to the system 100 for the implementation/installation on user devices 104…once the application 108 generates a functionality/component, the application may supply it to the engine 102…”);
identifying, by the central system, a capability gap by comparing the one or more deployed application capabilities to the one or more target capabilities, wherein the capability gap represents a target capability of the one or more target capabilities not included in the one or more deployed application capabilities (see at least paragraph [0035] “…the engine 102 may perform a comparison of the supplied functionalities/components with any versions of functionalities/components that may have been previously cached by the engine 102. In some implementations, the comparison may determine that one or more versions of the functionalities/components that may have been installed on one or more user devices 104 received modifications and/or is outdated and, thus, may require an appropriate update. Additionally, the engine 102 may determine that one or more functionalities/components that are included in the received list may need to be installed on one or more user devices 104. The engine 102 may then send a request to the repository 106 to obtain missing functionalities/components”);
automatically selecting, by the central system, one or more applications to update based on the identified capability gap (see at least paragraph [0038] “once the engine 102 receives the functionalities/components from the repository 106, the engine 102 may be configured to store/cache the functionalities/components. The engine 102 may also be configured to determine which user devices 104 may need to be updated with the received functionalities/components…”); and
automatically updating, by the central system, the one or more selected applications by deploying the one or more target capabilities not included in the one or more deployed application capabilities to the one or more selected applications via the IAM platform (see at least paragraph [0038] “once the engine 102 receives the functionalities/components from the repository 106, the engine 102 may be configured to store/cache the functionalities/components. The engine 102 may also be configured to determine which user devices 104 may need to be updated with the received functionalities/components and proceed with instantiation of the received functionalities/components on user devices…”).
Robbins does not explicitly teach a system for updating application capabilities across identity and access management (IAM) platforms.
Pitre teaches an analogous art relates to updating application across identity and access management (IAM), comprises:
updating application across identity and access management (IAM) platforms (see at least paragraph [0294] “FIG. 19 is a flow diagram 1900 of functionality for tenant application update management in a multi-tenant cloud-based IAM system in accordance with an embodiment”).
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 teaching of Robbins to incorporate the teaching of Pitre to control access to applications via identity and access management (IAM). One would have been motivated to combine Pitre’s approach with Robbins’s teaching in order to provide secure access to applications on a system or device regardless of from what device type or by what user type the applications are accessed (see at least paragraphs [0003 - 0004]).
Per claim 2, Robbins further teaches:
storing, by the central system, data associated with the identified capability gap, the selected one or more applications to update based on the identified capability gap, and the one or more updated applications in a database (see at least paragraph [0033] “…the database 106 may store a plurality of functionalities/components that may be accessed by the engine 102. The database 106 may receive various updates to the functionalities/components and store them for later installation on user devices 104. The updates may include new functionalities/components, updates to existing functionalities/components, deletions of functionalities/components, and/or any other functionalities/component…”).
Per claim 3, Pitre further teaches:
displaying, by the central system, a graphical user interface comprising a first visualization representing one or more of: the selected one or more applications and the identified capability gap the capability gap (see at least paragraph [0259] “IDCS administration console to display to customer's administrators an indication that new/updated behavior is available. The customer's administrator may then use the IDCS administration console to update each existing application to enable the new/updated behavior”).
Per claim 4, Robbins further teaches:
detecting, via the graphical user interface, a user input comprising an instruction to update the identified capability gap; and wherein automatically updating the one or more selected applications is performed in response to receiving the user input (see at least paragraph [0031] “…the user device 104 may generate an instruction/command to the engine 102 to process the request and/or extract data/functionalities/components from one or more the database 106 for installation on the user device 104”; see paragraph [0063] “one or more client computers having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described herein, or any combination of such back-end, middleware, or front-end components”).
Per claim 5, Robbins further teaches:
updating, by the central system, the graphical user interface to display a second visualization representing the one or more updated applications (see at least paragraph [0025] “…the current subject matter can provide a computing system and/or framework along with corresponding processes for automating deployment of computing components that may be related to an operation of one or more internal and/or external software applications installed on one or more user computing devices. The components may include computing functionalities, software applications, graphical user interface components, operating components…”).
Per claim 7, Robbins further teaches
wherein updating the one or more applications by deploying the one or more target capabilities not included in the one or more deployed application capabilities comprises: selecting IAM capabilities for each selected application; creating a data object to be uploaded into a selected IAM system; and transmitting the data object into the selected IAM system (see at least paragraph [0038] “The engine 102 may also be configured to determine which user device 104 may need to be updated with the received functionalities/components and proceed with instantiation of the received functionalities/components on user devices 104”).
Per claim 8, Robbins further teaches
wherein identifying the capability gap by comparing the one or more deployed application capabilities to the one or more target capabilities comprises: applying one or more rules from a rule set, wherein the one or more rules from the rule set are configured to cause the central system to select a first target capability; compare the first target capability to each deployed application capability; and in accordance with determining the first target capability is not associated with a corresponding deployed application capability, identifying the capability gap (see at least paragraph [0036] “…the comparison may determine that one or more versions (i.e. rules) of the functionalities/components that may have been installed on one or more user devices 104 received modifications and/or is outdated and, thus, may require an appropriate update. Additionally, the engine 102 may determine that one or more functionalities/components that are included in the received list may need to be installed on one or more user devices 104. The engine 102 may then send a request to the repository 106 to obtain missing functionalities/components”).
Per claim 10, Robbins further teaches:
identifying, by the central system, data ingested from the CMDB associated with the one or more updated applications (see at least paragraphs [0046-0050] “…the repository 106 may supply the requested list of functionalities/components to the engine 102. The repository 106 may include a list of applets, which may include an applet name, a version, a hash code, a binary code, and/or any other information…”); and transmitting, by the central system to the CMDB, a data object comprising updated data associated with the one or more updated applications (see at least paragraph [0050] “If the functionality/component contained in the supplied list has not been previously cached by the engine 102, the engine 102 may generated a request to the repository 106 provide the engine 102 with the functionality/component. The repository 106 may be configured to generate that functionality/component's binary file and provide it to the engine 102, which may, in turn, cache it and use the cached version during iterating process discussed above”).
Per claim 14, Robbins further teaches:
wherein the first data source is a configuration management database (CMDB) (see at least FIG. 1 “Repository/Database 106”).
Per claim 15, Pitre further teaches:
wherein the first data source is the IAM platform (see at least paragraph [0004] “ One embodiment is a system manages tenant application updates in a multi-tenant cloud-based identity and access management (IAM) system by defining one or more application templates…”).
Per claim 16, Robbins further teaches:
wherein the second data source is a questionnaire generated by the central system (see at least paragraph [0035] “…the engine 102 may be configured to query the repository 106 to determine whether the received functionality/component is the most up-to-date functionality/component”).
Per claims 13, 17 and 21, Robbins teaches a system for updating application capabilities, the system comprising one or more processors and a memory, the memory storing one or more computer instructions which when executed by the one or more processors, cause the system to:
receive data at a central system from a plurality of data sources (see at least paragraph [0032] “The engine 102 may use any means to obtain appropriate data/information for the purposes of installation of functionalities/components. The engine 102 may also obtain data from various third party sources…”);
identify one or more deployed application capabilities based on data from a first data source of the plurality of data sources (see at least paragraph [0035] “…a search of the repository 106 may be conducted and the repository may generate a list of available functionalities/components for installation on the user device 104. The list may be supplied to the engine 102…”);
identify one or more target application capabilities from a second data source of the plurality of data sources (see at least paragraphs [0034 -0035] “The software application 108 may be configured to generate various updates to its functionalities/components and supply them to the system 100 for the implementation/installation on user devices 104…once the application 108 generates a functionality/component, the application may supply it to the engine 102…”);
compare the one or more deployed application capabilities to the one or more target application capabilities to identify a capability gap, wherein the capability gap represents a target capability of the one or more target capabilities not included in the one or more deployed application capabilities (see at least paragraph [0035] “…the engine 102 may perform a comparison of the supplied functionalities/components with any versions of functionalities/components that may have been previously cached by the engine 102. In some implementations, the comparison may determine that one or more versions of the functionalities/components that may have been installed on one or more user devices 104 received modifications and/or is outdated and, thus, may require an appropriate update. Additionally, the engine 102 may determine that one or more functionalities/components that are included in the received list may need to be installed on one or more user devices 104. The engine 102 may then send a request to the repository 106 to obtain missing functionalities/components”);
automatically select, by the central system, one or more applications to update based on the identified capability gap (see at least paragraph [0038] “once the engine 102 receives the functionalities/components from the repository 106, the engine 102 may be configured to store/cache the functionalities/components. The engine 102 may also be configured to determine which user devices 104 may need to be updated with the received functionalities/components…”); and
automatically update, by the central system, the one or more selected applications by deploying the one or more target capabilities not included in the one or more deployed application capabilities to the one or more selected applications via an IAM platform (see at least paragraph [0038] “once the engine 102 receives the functionalities/components from the repository 106, the engine 102 may be configured to store/cache the functionalities/components. The engine 102 may also be configured to determine which user devices 104 may need to be updated with the received functionalities/components and proceed with instantiation of the received functionalities/components on user devices…”).
Robbins does not explicitly teach a system for updating application capabilities across identity and access management (IAM) platforms.
Pitre teaches an analogous art relates to updating application across identity and access management (IAM), comprises:
updating application across identity and access management (IAM) platforms (see at least paragraph [0294] “FIG. 19 is a flow diagram 1900 of functionality for tenant application update management in a multi-tenant cloud-based IAM system in accordance with an embodiment”).
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 teaching of Robbins to incorporate the teaching of Pitre to control access to applications via identity and access management (IAM). One would have been motivated to combine Pitre’s approach with Robbins’s teaching in order to provide secure access to applications on a system or device regardless of from what device type or by what user type the applications are accessed (see at least paragraphs [0003 - 0004]).
Per claims 18 and 22, Robbins teaches:
wherein the first data source is a configuration management database (CMDB) (see at least FIG. 1 “Repository/Database 106”).
Per claim 19 and 23, Pitre further teaches:
wherein the first data source is the IAM platform (see at least paragraph [0004] “One embodiment is a system manages tenant application updates in a multi-tenant cloud-based identity and access management (IAM) system by defining one or more application templates…”).
Per claim 20 and 24, Robbins further teaches:
wherein the second data source is a questionnaire generated by the central system (see at least paragraph [0035] “…the engine 102 may be configured to query the repository 106 to determine whether the received functionality/component is the most up-to-date functionality/component”).
Claims 6 and 9 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 20210034347 to Robbins in view of U.S. Pub. No. 20190102162 Pitre et al. and in further view of U.S. Pub. No. 20190394258 to Park.
Per claim 6, neither Robbins nor Pitre teaches:
normalizing, by the central system, the ingested data from the plurality of data sources to conform to a common data format.
However, Park teaches an analogous art relates to updating software application, comprises:
normalizing data from a plurality of data sources to conform to a common data format (see at least paragraph [0065] “Adapters are configured to understand the input and output stream protocol, and are responsible for converting the event data into a normalized form that can be queried by an application processor…”).
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 Robbins and Pitre to incorporate the teaching of Park to normalize data. One would have been motivated to normalize data to conform to a common format in order to optimize performance on data, to optimize data integrity, interoperability, etc.
Claims 6 and 9 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. 20210034347 to Robbins in view of U.S. Pub. No. 20190102162 Pitre et al. and in further view of U.S. Pub. No. 20150235270 to Partida.
Per claim 9, Robbins further teaches (“one or more client computers having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described herein, or any combination of such back-end, middleware, or front-end components…” see paragraph [0063] “…the repository 106 may request appropriate credentials (e.g., authentication) from the user device 104. The user device 104 may then supply its credentials via the API 112 to the repository 106…” see at least paragraph [0045]).
However, neither Robbins nor Pitre teaches
wherein the questionnaire is generated by: receiving, by the central system at a first user interface, a first set of user inputs indicating a selection of one or more questions from a question bank stored in a database of the central system; generating, by the central system, based on the first set of user inputs, a second user interface comprising the selected one or more questions; receiving, by the central system at the second user interface, a second set of user inputs, the second set of user inputs comprising responses to the selected one or more questions; generating, by the central system based on the second set of user inputs, a third user interface; receiving, by the central system at a third user interface, a third set of user inputs, the third set of user inputs for configuring a data object based on the second set of user inputs; and generating, by the central system based on the third set of user inputs, a configured data object.
Partida teaches an analogous art relates to upgrading software, comprises:
receiving a first set of user inputs indicating a selection of one or more questions from a question bank stored in a database of the central system; generating based on the first set of user inputs, a second user interface comprising the selected one or more questions; receiving, a second set of user inputs, the second set of user inputs comprising responses to the selected one or more questions; generating a third user interface; receiving a third set of user inputs, the third set of user inputs for configuring a data object based on the second set of user inputs; and generating, by the central system based on the third set of user inputs, a configured data object (see at least FIG2A-3B).
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 Robbins and Pitre to provide and obtain data from the user via a series of user interface screens. One would have been motivated to do so in order to obtain data from the user and to assess the data for software installation/updating purposes.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure:
US20150222604 relates to updating software via identity and access management.
US20200344268 relates to updating application’s functionality.
US20200073782 relate to identifying and updating software application capabilities.
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