Notice of Pre-AIA or AIA Status
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
2. Applicant’s arguments filed on 05/18/2026, with respect to the 35 U.S.C. 103 rejection of claims 21-25, 27-35, 37 and 38 as being unpatentable over U.S. Patent No. 11922222 hereinafter Chawla in view of U.S. Publication No. 20220138004 hereinafter Nandakumar have been fully considered. However, upon further consideration, a new ground(s) of rejection is made in view of amended claims.
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
3. Claims 21-25, 27-35, 37 and 38-43 are rejected under 35 U.S.C. 103 as being
unpatentable over U.S. Patent No. 11922222 hereinafter Chawla in view of U.S.
Publication No. 20220138004 hereinafter Nandakumar, and further in view of U.S. Publication No. 20240378030 hereinafter Comeau.
As per claim 21, Chawla discloses:
A system for automating code (Col. 134 Lines 34-46 "In certain
embodiments, by changing one component, the control plane system 524 can
automatically configure an entire instance of the data intake and query
system 102 for the tenant. For example, if the tenant modifies an indexing node,
then the control plane system 524 may require that all components of a data
intake and query system 102 be instantiated for that tenant. In this way, the
control plane system 524 can sandbox different tenants or data. In some
embodiments, the control plane system 524 can automatically configure some of
the components of the data intake and query system 102 for single tenancy),
the system comprising at least one processor (Fig. 1, Col. 6 Line 62 -
Col. 7 Line 15 " A host device 104 can correspond to a distinct computing device
or system that includes or has access to data that can be ingested, indexed,
and/or searched by the system 102. Accordingly, in some cases, a client
device 106 may also be a host device 104 (e.g., it can include data that is
ingested by the system 102 and it can submit queries to the system 102). The
host devices 104 can include, but are not limited to, servers, sensors, routers,
personal computers, mobile devices, internet of things (IOT) devices, or hosting
devices, such as computing devices in a shared computing resource
environment on which multiple isolated execution environment (e.g., virtual
machines, containers, etc.) can be instantiated, or other computing devices in an
IT environment (e.g., device that includes computer hardware, e.g., processors,
non-transitory, computer-readable media, etc.). In certain cases, a host
device 104 can include a hosted, virtualized, or containerized device, such as an
isolated execution environment, that shares computing resources (e.g.,
processor, memory, etc.) of a particular machine (e.g., a hosting device or
hosting machine) with other isolated execution environments.") configured to:
receive an application code and associated metadata information for configuring an application to be run as an image on a software platform (Fig. 14, Col. 136 Line 43-48 "At block 1402, the control plane system 524 receives configurations of a component. In some embodiments, the component can correspond to a component of the data intake and query system 102, such as an indexing node 704, ingest manager 716, partition manager 708, search node 806, search head 804, bucket manager 714, etc." Col. 136 Lines 52-58 " The configurations can correspond to versions (e.g., software versions, releases, etc.) and/or parameters of the component. In some cases, the configurations can be based on the type of the component, a tenant associated with the component, and/or a type of the shared computing resource environment, or provider of the shared computing resource environment in which the component is to be instantiated.")
the metadata information specifies platform capabilities required by the application to implement functionalities (Col. 138 Lines 20-28 "In certain embodiments, the configurations can correspond to an unreleased version of the component. For example, as developers modify components, they may save the modifications as an alpha or beta version that is not accessible to the public, or they may save the version as a test version. In some such cases, the test version of the component can be received as a configuration. Any one or any combination of the above-described configurations can be received by the control plane system 524. );
wherein the image construction file is used to construct the image
hereby enabling a running instance of the application to accomplish the set of
functionalities (Col. 139 Lines 12-23 "As described herein, an image can include
computer executable instructions, system tools, system libraries and settings,
and other data so that when the image is instantiated or executed, an application
or program is provided within an isolated execution environment 1314. A non-
limiting example of an image is a Docker container image. Accordingly, the
image of the modified component can include computer executable instructions,
system tools, system libraries, and component parameters so that when the
image of the modified component is instantiated or executed, an instance of the
modified component is generated within an isolated execution
environment 1314.")
Chawla does not disclose:
automating code deployment
analyze the application code and the associated metadata information to assess resources required for implementing the set of functionalities when the application executes on the software platform;
select, based on the analysis, at least a subset of the assessed resources from a library of shared software resources made available by the software platform;
and generate an image construction file from the application code and the associated metadata information based on the selected resources, wherein the image construction file is used to construct the image for deployment on the software platform
Nandakumar discloses:
automating code deployment (para 0013 "Certain aspects of the present
disclosure provide for a data science workflow framework that incorporates tools
and methods for the seamless and user-friendly construction of AI and/or ML
pipelines and is configured to: remove or reduce integration barriers; reduce
required expertise for the development and deployment of AI products
framework; simplify/streamline integration of raw and heterogeneous data;
enable high-level and intuitive abstractions that specify pipeline construction
requirements; enable an intuitive and/or automated means, such as a graphical
user interface (GUI), for a user to specify ML model standards and
customize/configure components, data pipelines, data processing, data transport
mechanisms, streaming analytics, AI model libraries, pipeline execution methods,
orchestration, adapters, and computing resources.")
Therefore, it would have been obvious to one of ordinary skill in the art
before the effective filing date of the claimed invention to modify the method of
configure some of the components Chawla to include automating code
deployment, as taught by Nandakumar.
The motivation would have been to reduce required expertise for the
development and deployment of AI products framework (Nandakumar para
0013).
Chawla in view of Nandakumar does not disclose:
analyze the application code and the associated metadata information to assess resources required for implementing the set of functionalities when the application executes on the software platform
select, based on the analysis, at least a subset of the assessed resources from a library of shared software resources made available by the software platform
and generate an image construction file from the application code and the associated metadata information based on the selected resources, wherein the image construction file is used to construct the image for deployment on the software platform
Comeau discloses:
analyze the application code and the associated metadata information to assess resources required for implementing the set of functionalities when the application executes on the software platform (para 0038 “Further, sBOMs are useful for analyzing software vulnerabilities, such as for determining whether a given piece of software may be affected by vulnerabilities based on the software artifacts used in the given piece of software.”),
select, based on the analysis, at least a subset of the assessed resources from a library of shared software resources made available by the software platform (para 0039 “Through analyzing the network traffic, the technical solutions are able to determine a list of software artifacts which are downloaded and used to build a given piece of software. For each software artifact, corresponding metadata may be fetched from a suitable software database. The technical solutions utilize such metadata for the software artifacts to automatically generate a sBOM for the given piece of software. The generated sBOM provides a complete and accurate sBOM for every software artifact used in the given piece of software. The given piece of software, and its generated sBOM, may also be stored as a new software artifact in the software database.” Para 0040 “The software artifacts in the artifact storage system are analyzed upon ingest (and, optionally, periodically thereafter) so that the artifact storage system stores and maintains each software artifact's metadata. The software artifact metadata for a given software artifact includes, but is not limited to, the sBOM for the given software artifact.” Para 0044 “ For each observed download of a software artifact, the sBOM service 307 will retrieve the corresponding metadata from the artifact storage 315 via the artifact metadata API 317. It should be noted, however, that in some embodiments the software artifacts and their associated metadata may be stored in separate databases or other data stores (e.g., the software artifacts themselves may be stored in the artifact storage 315 while the software artifact metadata may be stored in a separate data store, the software artifacts may be stored in external data sources while only the software artifact metadata is stored in the artifact storage 315, etc.). The software artifact metadata for a given software artifact will include a complete sBOM, or a reference to a sBOM, for the given software artifact. The software artifact metadata may additionally include other relevant metadata (e.g., dates, hashes of the software artifact and/or its associated sBOM, etc.). The sBOM service 307 will respond to the request for the sBOM with a sBOM data structure containing references to all the downloaded software artifacts as well as their retrieved metadata. The sBOM data structure may also flag downloads that were not from sanctioned sources, or those that used insecure protocols. The complete sBOM data structure may then be included in the metadata of the newly-built software image generated by the software image builder 305 for the CI/CD software build job 303. The newly-built software image represents a new software artifact, and may be stored (along with its sBOM) in the artifact storage 315 such that it can be retrieved when used during building of downstream or other software products.”)
and generate an image construction file from the application code and the associated metadata information based on the selected resources, wherein the image construction file is used to construct the image for deployment on the software platform (para 0034 “A software component data structure for the given piece of software is generated in step 206. The software component data structure comprises information characterizing the one or more software component configurations for each of the identified one or more software artifacts downloaded for generating the software image for the given piece of software.” Para 0041 “ FIG. 3 shows a software development system architecture 300, including a CI/CD software development infrastructure 301, which instantiates a CI/CD software build job 303 configured to interact with a software image builder 305 (e.g., a software container image builder). The CI/CD software build job 303 requests deployment of a sBOM service 307.” Para 0044 “ When the CI/CD software build job 303 is complete, the CI/CD software build job 303 can use the sBOM service API 309 to retrieve a sBOM for the software image for the given piece of software which is generated by the software image builder 305. ”)
Therefore, it would have been obvious to one of ordinary skill in the art
before the effective filing date of the claimed invention to modify the method of
configure some of the components Chawla in view of Nandakumar to include analyze the application code and the associated metadata information to assess resources required for implementing the set of functionalities when the application executes on the software platform, select, based on the analysis, at least a subset of the assessed resources from a library of shared software resources made available by the software platform and generate an image construction file from the application code and the associated metadata information based on the selected resources, wherein the image construction file is used to construct the image for deployment on the software platform, as taught by Comeau.
The motivation would have been togenerate of software component data structures based on monitoring network traffic of software build processes (Comeau para 0003).
As per claim 22, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the at least one processor is further
configured to employ artificial intelligence for at least one of analyzing the code
and the associated metadata information or generating the image construction
file (Nandakumar para 0076 " FIG. 1 depicts a functional block diagram 100 of
an artificial intelligence operating system ("AiOS") 102. In accordance with
various embodiments, AiOS 102 comprises an integrated environment
comprising one or more software component 104 each pre-loaded with an AI OS
intelligent functionality. Software component 104 contains a built and tested code
block 106 that provides a mechanism 108 to encapsulate one or more operations
of a ML product lifecycle. AiOS 102 may comprise a library 110 of reusable or
customizable components. In accordance with various embodiments, one or
more component 104 may be linked in a sequential connection 114 and/or
parallel connection 116 comprising a topology of pipeline 118 for building an
analytic ML model. Software component 104 may be configured to accept one or
more streaming data sources 120. An analytic model created from
pipeline 118 consumes data source 120, typically in the form of a data stream.
An analytic data provide may utilize one or more data sources including, for
example, APACHE SPARK, HADOOP, AMAZON REDSHIFT, AZURE SQL Data
Warehouse, MICROSOFT SQL Server, and/or TERADATA. The analytic data
provider or source may utilize one or more example infrastructure systems
including: on-premises hardware, such as in-office computing and/or proprietary
datacenter computing; or off-premises hardware, such as cloud infrastructure
including AMAZON WEB SERVICES, MICROSOFT AZURE, IBM BLUEMIX,
and/or GOOGLE Cloud Platform. In accordance with various embodiments,
AiOS 102 is configured to enable user-friendly data science experimentation,
exploration, analytic model execution, prototyping, pipeline 118 construction, to
establish a complete end-to-end, transparent, AI pipeline building process for the
development, production, and deployment of reproducible, scalable, and
interoperable ML models and AI applications with governance." Though Chawla
discloses analyzing code, Nandakumar discloses employ artificial
intelligence for at least one of analyzing the code. The motivation would
have been to reduce required expertise for the development and
deployment of AI products framework (Nandakumar para 0013).).
As per claim 23, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the at least one processor is further
configured to employ artificial intelligence to infer at least one rule setting, or
parameter for generating the image construction file (Nandakumar para 0096 "In
accordance with certain aspects of the present disclosure, block definition
process 400 may proceed by executing one or more operations for publishing the
block in a block library of the Al OS (Step 420). Block definition process 400 may
proceed by executing one or more operations for estimating one or more
computing resources for the block based on the block's function, dataflow, and
execution requirements (Step 422). In various embodiments, the one or more
computing resources may be estimated by using one or more non-limiting
methods, such as heuristic, meta-heuristic, rules engine or algorithm based on
historical data, data flow simulations, source code static or dynamic tracing,
resource management tool, and combinations thereof." Though Chawla
discloses rule, Nandakumar discloses employ artificial intelligence to infer
at least one rule setting. The motivation would have been to reduce
required expertise for the development and deployment of AI products
framework (Nandakumar para 0013).).
As per claim 24, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the at least one processor is further
configured to scan the code and infer dependencies necessary for running the
application on the software platform and include references for the dependencies
in the image construction file (Chawla Col. 99 Lines 6-31 "As mentioned, the
metadata catalog 521 can include annotations or information about the datasets,
fields, users, or applications of the system 102 and can be revised as additional
information is learned. Non-limiting examples of annotations that can be added to
the dataset configuration records 904, other configurations, annotation tables or
entries, or other locations of the metadata catalog 521 or system 102, include but
are not limited to, the identification and use of fields in a dataset, number of fields
in a dataset, related fields, related datasets, number (and identity) of dependent
datasets, number (and identity) of datasets depended on, capabilities of a
dataset or related dataset source or provider, the identification of datasets with
similar configurations or fields, units or preferred units of data obtained from a
dataset, alarm thresholds, data categories (e.g., restrictions), users or groups,
applications, popular field, datasets, and applications (in total or by user or
group), etc. In certain cases, the annotations can be added as the
system 102 monitors system use (e.g., processing queries, monitoring query
execution, user interaction, etc.) or as the system 102 detects changes to the
metadata catalog 521 (e.g., one manual/automated change can lead to another
automated change), etc. Additional information regarding example annotations
are described in the Incorporated Applications, each of which is incorporated
herein by reference for all purposes.").
As per claim 25, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the associated metadata information
includes blacklisted elements, and wherein at least one processor is further
configured to identify the blacklisted elements and generate the image
construction file such that the running instance of the application denies requests
associated with the blacklisted elements (Chawla Col. 50 Line 4-17 “While
shown in FIG. 6A as distinct, these ingestion buffers 606 and 610 may be
implemented as a common ingestion buffer. However, use of distinct ingestion
buffers may be beneficial, for example, where a geographic region in which data
is received differs from a region in which the data is desired. For example, use of
distinct ingestion buffers may beneficially allow the intake ingestion buffer 606 to
operate in a first geographic region associated with a first set of data privacy
restrictions, while the output ingestion buffer 610 operates in a second
geographic region associated with a second set of data privacy restrictions. In
this manner, the intake system 110 can be configured to comply with all relevant
data privacy restrictions, ensuring privacy of data processed at the data intake
and query system 102." Col. 89 Line 57-67 "In some embodiments, the dataset
association records 902 can also be used to limit or restrict access to datasets
and/or rules. For example, if a user uses one dataset association record 902 they
may be unable to access or use datasets and/or rules from another dataset
association record 902. In some such embodiments, if a query identifies a
dataset association record 902 for use but references datasets or rules of
another dataset association record 902, the data intake and query
system 102 can indicate an error." Col. 99 Lines 6-31 "As mentioned, the
metadata catalog 521 can include annotations or information about the datasets,
fields, users, or applications of the system 102 and can be revised as additional
information is learned. Non-limiting examples of annotations that can be added to
the dataset configuration records 904, other configurations, annotation tables or
entries, or other locations of the metadata catalog 521 or system 102, include but
are not limited to, the identification and use of fields in a dataset, number of fields
in a dataset, related fields, related datasets, number (and identity) of dependent
datasets, number (and identity) of datasets depended on, capabilities of a
dataset or related dataset source or provider, the identification of datasets with
similar configurations or fields, units or preferred units of data obtained from a
dataset, alarm thresholds, data categories (e.g., restrictions), users or groups,
applications, popular field, datasets, and applications (in total or by user or
group), etc. In certain cases, the annotations can be added as the
system 102 monitors system use (e.g., processing queries, monitoring query
execution, user interaction, etc.) or as the system 102 detects changes to the
metadata catalog 521 (e.g., one manual/automated change can lead to another
automated change), etc. Additional information regarding example annotations
are described in the Incorporated Applications, each of which is incorporated
herein by reference for all purposes.").
As per claim 27, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the at least one processor is further
configured to incorporate into the image a mapping between the set of
functionalities and a list of resources provided by the software
platform and associated with the set of functionalities, thereby incorporating the
correspondence between the resources required for running the
application and the set of functionalities (Chawla Col. 68 Line 11-43 " In some
cases, the information relating to the indexing nodes 704 includes information
relating to one or more indexing node assignments. As described herein, an
indexing node assignment can include an indication of a mapping between a
particular indexing node 704 and an identifier (for example, a tenant identifier, a
partition manager identifier, etc.) or between a particular node and a data record
received from the intake system 110. In this way, an indexing node assignment
can be utilized to determine to which indexing node 704 a partition
manager 708 should send data to process. For example, an indexing node
assignment can indicate that a particular partition manager 708 should send its
data to one or more particular indexing nodes 704. As another example, an
indexing node assignment can indicate that some or all data associated with a
particular identifier (for example, data associated with a particular tenant
identifier) should be forwarded to one or more a particular indexing node 704 for
processing. In some cases, a computing device associated with the resource
catalog 720 can determine an indexing node assignment and can store the
indexing node assignment in the resource catalog 720. In some cases, an
indexing node assignment, is not stored in the resource catalog 720. For
example, each time the resource monitor 718 receives a request for an indexing
node assignment from a partition manager 708, the resource monitor 718 can
use information stored in the resource catalog 720 to determine the indexing
node assignment, but the indexing node assignment may not be stored in the
resource catalog 720. In this way, the indexing node assignments can be altered,
for example if necessary based on information relating to the indexing
nodes 704.").
As per claim 28, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 27, wherein the at least one processor is configured
to generate the mapping (Chawla Fig. 1, Col. 6 Line 62 - Col. 7 Line 15 and Fig.
14, Col. 136 Line 43-48)
As per claim 29, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the required resources
include software libraries providing common functionalities for multiple
applications (Chawla Col. 131 Lines 17-31 "For example, the image of the modified component can include the software version for the modified component, any particular parameters selected or modified by the tenant, software add-ons, system configurations, libraries, etc., to enable a host device 1304 to generate an isolated execution environment 1314 configured as the modified component. The parameters and/or software add-ons may be preconfigured or preinstalled with the pre-modified component or may have been installed/configured after the pre-modified component was instantiated (e.g., an image generated from the pre-modified component when it is first instantiated may be different from an image generated from the pre-modified component at a later time after one or more add-ons are installed, newer software versions are installed or parameters are changed).).
As per claim 30, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the required infrastructure resources
include at least one of central processing unit (CPU) load, memory storage,
network bandwidth, database space, libraries, frameworks, or peripheral
applications (Chawla 67 Lines 16-32 "In some cases, the resource
catalog 720 includes one or more metrics associated with one or more of the
indexing nodes 704 in the indexing system 112. For example, the metrics can
include, but are not limited to, one or more performance metrics such as CPU-
related performance metrics, memory-related performance metrics, availability
performance metrics, or the like. For example, the resource catalog 720 can
include information relating to a utilization rate of an indexing node 704, such as
an indication of which indexing nodes 704, if any, are working at maximum
capacity or at a utilization rate that satisfies utilization threshold, such that the
indexing node 704 should not be used to process additional data for a time. As
another example, the resource catalog 720 can include information relating to an
availability or responsiveness of an indexing node 704, an amount of processing
resources in use by an indexing node 704, or an amount of memory used by an
indexing node 704.").
As per claim 31, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the required resources
include at least one of frameworks, communication managers, storage
managers, or memory (Chawla 67 Lines 16-32 "In some cases, the resource
catalog 720 includes one or more metrics associated with one or more of the
indexing nodes 704 in the indexing system 112. For example, the metrics can
include, but are not limited to, one or more performance metrics such as CPU-
related performance metrics, memory-related performance metrics, availability
performance metrics, or the like. For example, the resource catalog 720 can
include information relating to a utilization rate of an indexing node 704, such as
an indication of which indexing nodes 704, if any, are working at maximum
capacity or at a utilization rate that satisfies utilization threshold, such that the
indexing node 704 should not be used to process additional data for a time. As
another example, the resource catalog 720 can include information relating to an
availability or responsiveness of an indexing node 704, an amount of processing
resources in use by an indexing node 704, or an amount of memory used by an
indexing node 704.").
As per claim 32, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the at least one processor is further
configured to predict future patterns of resource consumption (Nandakumar
para 0018 "In certain exemplary embodiments, an execution engine may perform
a variety of functions including, but not limited to, tracking information in a data
structure, deriving and resolving dependencies, storing-receiving metadata
and/or future data or results from asynchronous operations or call backs,
performing fault-tolerant, processing exceptions and execution errors, and
combinations thereof and/or the like. In certain exemplary embodiments, an
execution engine control logic may be derived from one or more annotated
decorators of one or more blocks enabling asynchronous, parallel, and portable
execution of heterogenous pipeline workloads independent of resource
allocations or constraints. " para 0105 "Certain objects and advantages of the
present disclosure is an AI OS (e.g., AiOS 102 of FIG. 1) that supports the
following: [0106] 1. Block Intelligence: This is the building block of the pipelines
that are run. They need to be estimated clearly in terms of the resources that
they require (which depends on the inputs provided), as well as the size and
volume of outputs that they produce (both batch and streaming). In various
embodiments, many test cases are generated under varying conditions and
testing the block against these. The data thus gathered is used to build ML
models which can predict their performance based on the inputs provided."
Though Chawla discloses resource, Nandakumar discloses predict future
patterns of resource consumption. The motivation would have been to
reduce required expertise for the development and deployment of AI
products framework (Nandakumar para 0013).).).
As per claim 33, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein analyzing the code and the associated
metadata information includes identifying patterns and extracting meaningful
information from the code and metadata information without human intervention
(Chawla Col. 88 Line 18-28 "Similarly, if a user enters a query, the metadata
catalog 521, can edit the dataset configuration record 904. With continued
reference to the example above, if another user enters the same query or the
same user executes the query at a later time (with or without prompting by the
system 102), the metadata catalog 521 can edit the corresponding dataset
configuration record 904. For example, the metadata catalog 521 can increment
a count for the number of times the query has been used, add information about
the users that have used the query, include a job ID, query results, and/or query
results identifier, each time the query is executed, etc.." Col. 142 Line 58 -Col.
143 Line 3 "Conditional language, such as, among others, "can," "could," "might,"
or "may," unless specifically stated otherwise, or otherwise understood within the
context as used, is generally intended to convey that certain embodiments
include, while other embodiments do not include, certain features, elements
and/or steps. Thus, such conditional language is not generally intended to imply
that features, elements and/or steps are in any way required for one or more
embodiments or that one or more embodiments necessarily include logic for
deciding, with or without user input or prompting, whether these features,
elements and/or steps are included or are to be performed in any particular
embodiment.").
As per claim 34, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the at least one processor is further
configured to scan the code in accordance with a set of rules included in the
associated metadata information (Chawla Col. 99 Lines 6-31 "As mentioned,
the metadata catalog 521 can include annotations or information about the
datasets, fields, users, or applications of the system 102 and can be revised as
additional information is learned. Non-limiting examples of annotations that can
be added to the dataset configuration records 904, other configurations,
annotation tables or entries, or other locations of the metadata catalog 521 or
system 102, include but are not limited to, the identification and use of fields in a
dataset, number of fields in a dataset, related fields, related datasets, number
(and identity) of dependent datasets, number (and identity) of datasets depended
on, capabilities of a dataset or related dataset source or provider, the
identification of datasets with similar configurations or fields, units or preferred
units of data obtained from a dataset, alarm thresholds, data categories (e.g.,
restrictions), users or groups, applications, popular field, datasets, and
applications (in total or by user or group), etc. In certain cases, the annotations
can be added as the system 102 monitors system use (e.g., processing queries,
monitoring query execution, user interaction, etc.) or as the system 102 detects
changes to the metadata catalog 521 (e.g., one manual/automated change can
lead to another automated change), etc. Additional information regarding
example annotations are described in the Incorporated Applications, each of
which is incorporated herein by reference for all purposes.").
As per claim 35, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 34, wherein the at least one processor is further
configured to take a remedial action upon determining non-compliance of the
code with the set of rules (Chawla Col. 50 Line 4-17 “While shown in FIG. 6A as
distinct, these ingestion buffers 606 and 610 may be implemented as a common
ingestion buffer. However, use of distinct ingestion buffers may be beneficial, for
example, where a geographic region in which data is received differs from a
region in which the data is desired. For example, use of distinct ingestion buffers
may beneficially allow the intake ingestion buffer 606 to operate in a first
geographic region associated with a first set of data privacy restrictions, while the
output ingestion buffer 610 operates in a second geographic region associated
with a second set of data privacy restrictions. In this manner, the intake
system 110 can be configured to comply with all relevant data privacy
restrictions, ensuring privacy of data processed at the data intake and query
system 102." Col. 89 Line 57-67 "In some embodiments, the dataset association
records 902 can also be used to limit or restrict access to datasets and/or rules.
For example, if a user uses one dataset association record 902 they may be
unable to access or use datasets and/or rules from another dataset association
record 902. In some such embodiments, if a query identifies a dataset
association record 902 for use but references datasets or rules of another
dataset association record 902, the data intake and query system 102 can
indicate an error." Col. 99 Lines 6-31 "As mentioned, the metadata
catalog 521 can include annotations or information about the datasets, fields,
users, or applications of the system 102 and can be revised as additional
information is learned. Non-limiting examples of annotations that can be added to
the dataset configuration records 904, other configurations, annotation tables or
entries, or other locations of the metadata catalog 521 or system 102, include but
are not limited to, the identification and use of fields in a dataset, number of fields
in a dataset, related fields, related datasets, number (and identity) of dependent
datasets, number (and identity) of datasets depended on, capabilities of a
dataset or related dataset source or provider, the identification of datasets with
similar configurations or fields, units or preferred units of data obtained from a
dataset, alarm thresholds, data categories (e.g., restrictions), users or groups,
applications, popular field, datasets, and applications (in total or by user or
group), etc. In certain cases, the annotations can be added as the
system 102 monitors system use (e.g., processing queries, monitoring query
execution, user interaction, etc.) or as the system 102 detects changes to the
metadata catalog 521 (e.g., one manual/automated change can lead to another
automated change), etc. Additional information regarding example annotations
are described in the Incorporated Applications, each of which is incorporated
herein by reference for all purposes.").
As per claim 37, the implementation of the system of claim 21 will execute
the non-transitory computer-readable medium of claim 37. The claim is
analyzed with respect to claim 21.
As per claim 38, the implementation of the system of claim 21 will execute
the method of claim 38. The claim is analyzed with respect to claim 21.
As per claim 39, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein analyzing the application code with the associated metadata information and generating the image construction file are performed by an artificial-intelligence-based agent (Nandakumar para 0076 " FIG. 1 depicts a functional block diagram 100 of
an artificial intelligence operating system ("AiOS") 102. In accordance with
various embodiments, AiOS 102 comprises an integrated environment
comprising one or more software component 104 each pre-loaded with an AI OS
intelligent functionality. Software component 104 contains a built and tested code
block 106 that provides a mechanism 108 to encapsulate one or more operations
of a ML product lifecycle. AiOS 102 may comprise a library 110 of reusable or
customizable components. In accordance with various embodiments, one or
more component 104 may be linked in a sequential connection 114 and/or
parallel connection 116 comprising a topology of pipeline 118 for building an
analytic ML model. Software component 104 may be configured to accept one or
more streaming data sources 120. An analytic model created from
pipeline 118 consumes data source 120, typically in the form of a data stream.
An analytic data provide may utilize one or more data sources including, for
example, APACHE SPARK, HADOOP, AMAZON REDSHIFT, AZURE SQL Data
Warehouse, MICROSOFT SQL Server, and/or TERADATA. The analytic data
provider or source may utilize one or more example infrastructure systems
including: on-premises hardware, such as in-office computing and/or proprietary
datacenter computing; or off-premises hardware, such as cloud infrastructure
including AMAZON WEB SERVICES, MICROSOFT AZURE, IBM BLUEMIX,
and/or GOOGLE Cloud Platform. In accordance with various embodiments,
AiOS 102 is configured to enable user-friendly data science experimentation,
exploration, analytic model execution, prototyping, pipeline 118 construction, to
establish a complete end-to-end, transparent, AI pipeline building process for the
development, production, and deployment of reproducible, scalable, and
interoperable ML models and AI applications with governance." Though Chawla
discloses analyzing code, Nandakumar discloses employ artificial
intelligence for at least one of analyzing the code. The motivation would
have been to reduce required expertise for the development and
deployment of AI products framework (Nandakumar para 0013).).
As per claim 40, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein at least a portion of the metadata information is derived by analyzing the application code to identify referenced external components or dependencies (Comeau Para 0040 “The software artifacts in the artifact storage system are analyzed upon ingest (and, optionally, periodically thereafter) so that the artifact storage system stores and maintains each software artifact's metadata. The software artifact metadata for a given software artifact includes, but is not limited to, the sBOM for the given software artifact.” Para 0044 “ For each observed download of a software artifact, the sBOM service 307 will retrieve the corresponding metadata from the artifact storage 315 via the artifact metadata API 317. It should be noted, however, that in some embodiments the software artifacts and their associated metadata may be stored in separate databases or other data stores (e.g., the software artifacts themselves may be stored in the artifact storage 315 while the software artifact metadata may be stored in a separate data store, the software artifacts may be stored in external data sources while only the software artifact metadata is stored in the artifact storage 315, etc.). Though Chawla discloses analyzing code, Comeau wherein at least a portion of the metadata information is derived by analyzing the application code to identify referenced external components or dependencies. The motivation would have been to generate of software component data structures based on monitoring network traffic of software build processes (Comeau para 0003).”).
As per claim 41, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein selecting the at least a subset of the assessed resources includes evaluating compatibility between the assessed resources and the available shared software resources in the library (Chawla Col. 133 Lines 11-19 “In some cases, the control plane system 524 can identify matching components by comparing an image of the modified component with images of other components of which it is aware. In certain cases, the control plane system 524 can identify matching components by comparing information about the modified components, such as its type (e.g., search node, indexing node, etc.), version, specific parameters, etc., with similar information about other components of which it is aware.” Col. 133 Lines 27-37 “In some cases, the control plane system 524 can identify matching components by comparing an image of the modified component with images of other components of which it is aware. In certain cases, the control plane system 524 can identify matching components by comparing information about the modified components, such as its type (e.g., search node, indexing node, etc.), version, specific parameters, etc., with similar information about other components of which it is aware.”) and (Nandakumar para 0095 “Block definition process 400 may proceed by executing one or more operations for block functional testing (Step 416) and block performance testing (Step 418). Step 416 may comprise one or more operations or sub-steps for identifying one or more block functions based on one or more expected performance specifications for the block. Step 416 may further comprise one or more operations or sub-steps for configuring an input data function or an output data function based on one or more specification for the functions. Step 418 may further comprise one or more operations or sub-steps for executing one or more performance test case. One or more performance test case may comprise one or more operations or sub-steps for comparing one or more expected outputs for the block with one or more actual outputs for the block. In accordance with various embodiments, block functional testing (Step 416) and block performance testing (Step 418) may comprise one or more testing methodologies or operations including, but not limited to, symbolic execution, dynamic, concolic testing, differential testing, mutation testing, cross-reference, fuzz testing, or combinations thereof and the like.” Though Chawla
discloses analyzing code, Nandakumar discloses herein selecting the at least a subset of the assessed resources includes evaluating compatibility between the assessed resources and the available shared software resources in the library (Nandakumar para 0013).).
As per claim 42, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein analyzing the application code together with the associated metadata information includes employing an inference model to infer resources required by the application based on platform capability requirements (Nandakumar para 0008 “ML algorithms execute as “pipelines” that ingest data (e.g., via batch data lakes, stream brokers, etc.) and performs computational tasks (e.g., feature engineering, model training, scoring, inference, etc.).” para 0064 “The fourth stage, Pipeline Deployment, comprises the activities concerned with the deployment of ML models and their inferences or predictions within an operational system, alongside components obtained using traditional software and system engineering methods.” Also see paragraph 0065-0068. Though Chawla discloses analyzing code, Nandakumar discloses wherein analyzing the application code together with the associated metadata information includes employing an inference model to infer resources required by the application based on platform capability requirements (Nandakumar para 0013).). and (Comeau Para 0040 “The software artifacts in the artifact storage system are analyzed upon ingest (and, optionally, periodically thereafter) so that the artifact storage system stores and maintains each software artifact's metadata. The software artifact metadata for a given software artifact includes, but is not limited to, the sBOM for the given software artifact.” Para 0044 “ For each observed download of a software artifact, the sBOM service 307 will retrieve the corresponding metadata from the artifact storage 315 via the artifact metadata API 317. It should be noted, however, that in some embodiments the software artifacts and their associated metadata may be stored in separate databases or other data stores (e.g., the software artifacts themselves may be stored in the artifact storage 315 while the software artifact metadata may be stored in a separate data store, the software artifacts may be stored in external data sources while only the software artifact metadata is stored in the artifact storage 315, etc.). Though Chawla discloses analyzing code, Comeau wherein wherein analyzing the application code together with the associated metadata information includes employing an inference model to infer resources required by the application based on platform capability requirements. The motivation would have been to generate of software component data structures based on monitoring network traffic of software build processes (Comeau para 0003).”).
As per claim 43, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the assessed resources include infrastructure resources (Chawla Col. 6 Lines 61-67 and Col. 8 Lines 44-Col. 9 Line 2).
4. Claims 26 and 36 are rejected under 35 U.S.C. 103 as being unpatentable over
Chawla in view of Nandakumar, and further in view of Comeau, and further in view of U.S. Publication No. 20220253347 hereinafter Jones.
As per claim 26, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the at least one processor is configured
(Chawla Fig. 1, Col. 6 Line 62 - Col. 7 Line 15)
Chawla in view of Nandakumar and Comeau does not disclose:
apply a scale to zero capability to the image
Jones discloses:
apply a scale to zero capability to the image (para 0018 "The practice of
running containers on demand, and in particular "scaling to zero" when idle, is
known as "serverless". A variety of open-source projects offer serverless
technologies, for example, the Knative Serving® project (Knative is a trademark
of Google LLC), which provides "scale to zero" for workloads running on the
Kubernetes container orchestration system. Scaling to zero involves allowing a
scaling service to terminate all instances of a service when there are no requests
for the service to process. It is accompanied by a corresponding ability to scale
the service up to one or more instances once such a request arrives.")
Therefore, it would have been obvious to one of ordinary skill in the art
before the effective filing date of the claimed invention to modify the method of
configure some of the components Chawla in view of Nandakumar and Comeau to include apply a scale to zero capability to the image, as taught by Jones.
The motivation would have been to reducing start latency
of serverless microservices associated with software services.
As per claim 36, Chawla in view of Nandakumar and Comeau discloses:
The system of claim 21, wherein the software platform (Chawla Fig. 14,
Col. 136 Line 43-48)
Chawla in view of Nandakumar and Comeau does not disclose:
a Software as a Service (SaaS) platform
Jones discloses:
a Software as a Service (SaaS) platform (para 0137 and 0138 " [0137]
Service Models are as follows: [0138] Software as a Service (SaaS): the
capability provided to the consumer is to use the provider's applications running
on a cloud infrastructure. The applications are accessible from various client
devices through a thin client interface such as a web browser (e.g., web-based e-
mail). The consumer does not manage or control the underlying cloud
infrastructure including network, servers, operating systems, storage, or even
individual application capabilities, with the possible exception of limited user-
specific application configuration settings.")
Therefore, it would have been obvious to one of ordinary skill in the art
before the effective filing date of the claimed invention to modify the method of
configure some of the components Chawla in view of Nandakumar and Comeau to include a Software as a Service (SaaS) platform, as taught by Jones.
The motivation would have been to provide a capability provided to a
user to use a provider's applications running on a cloud infrastructure.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to GARY S GRACIA whose telephone number is (571)270-5192. The examiner can normally be reached Monday-Friday 9am-6pm.
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, Philip Chea can be reached at 5712723951. 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.
/GARY S GRACIA/Primary Examiner, Art Unit 2499