DETAILED ACTION
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 .
Claim Objections
2. Claim 1 is objected to because of the following informalities:
In claim 1 line 3, the claim recites the limitation “a combination optimization module” should read “a combination optimization module,”. There should be a comma at the end of line 3 of claim 1.
Appropriate correction is required.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
3. Claims 6, 8, and 16-18 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, or for pre-AIA the applicant regards as the invention.
Claim 6 recites the limitation "the application programming interface" in lines 2-3 and 4. There is insufficient antecedent basis for this limitation in the claim.
Claim 8 recites the limitations "the least service data" in line 2 and 3; and “the service data combination” in lines 3 and 4. There is insufficient antecedent basis for these limitations in the claim.
Claim 16 recites the limitation "the application programming interface" in lines 3 and 4. There is insufficient antecedent basis for this limitation in the claim.
Claim 17 recites the limitation "the optimization setting" in lines 4-5 and 6. There is insufficient antecedent basis for this limitation in the claim.
Claim 18 recites the limitations “the optimization setting”, "the least service data" and “the service data combination”. There is insufficient antecedent basis for these limitations in the claim.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
4. Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Independent claim 1 recites a series of steps and therefore, is a process. As such, claim 1 is one of the statutory categories. The claim recites “wherein the processor executes the service combination module to generate a plurality of target data according to the initial data, wherein the processor executes the graph storage module to search a data graph according to the plurality of target data, so as to obtain a plurality of service data combinations, wherein the processor executes the combination optimization module to filter out an optimized service data combination from the plurality of service data combinations” which is merely a concept can be performed in the human mind. Human mind through observation and evaluation can perform the above steps with a pen and paper. The above claim steps describe basic human-like tasks (receiving data, looking up items, and picking the best option) performed on a computer. These limitations, as drafted, are a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components. Thus, the claim recites a mental process and is directed to a judicial exception.
This judicial exception is not integrated into a practical application because the claim recites the additional element: “receive initial data”, which indicates mere data gathering activity that the courts have found to be insignificant extra-solution activity. The addition of insignificant extra-solution activity does not amount to an inventive concept. See MPEP 2106.05(g). The claim further recites “A service combination device, comprising: a storage device, configured to store a service combination module, a graph storage module, and a combination optimization module a processor, coupled to the storage device and configured to”. The processor in all steps is recited at a high level of generality, i.e., as a generic processor performing a generic computer function for processing data. This generic processor limitation is no more than mere instructions to apply the exception using a generic computer component. As such, the inclusion of generic computer components being used to implement the abstract idea does not amount to significantly more than the abstract idea. MPEP 2106.05(b). Accordingly, these additional elements do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. See MPEP 2106.05(h).
As discussed with respect to Step 2A Prong Two, the additional elements in the claim amount to no more than mere instructions to apply the exception using a generic computer component. The same analysis applies here in 2B, i.e., mere instructions to apply an exception using a generic computer component cannot integrate a judicial exception into a practical application at Step 2A or provide an inventive concept in Step 2B. Thus, the claim 1 is ineligible.
As such, independent claim 11 is also ineligible for the same reason as the claim 1 above.
Regarding claims 2, 5-6, 12 and 15-16, claims further recite the limitations which indicate mere data gathering activities that the courts have found to be insignificant extra-solution activity. The addition of insignificant extra-solution activity does not amount to an inventive concept. Furthermore, claims include no additional elements that would integrate the judicial exception into a practical application or would amount to significantly more than the abstract idea. Thus, the claims are ineligible.
Regarding claims 3, 7, 9, 13, 17 and 19, claims further recite the limitations which indicate the limitations amount to no more than mere instructions to apply the exception using a generic computer component. Use of a computer or other machinery in its ordinary capacity for economic or other tasks or simply adding a general-purpose computer or computer components after the fact to an abstract idea (e.g., a fundamental economic practice or mathematical equation) does not integrate a judicial exception into a practical application or provide significantly more. Furthermore, claims include no additional elements that would integrate the judicial exception into a practical application or would amount to significantly more than the abstract idea. Thus, the claims are ineligible.
Regarding claims 4, 8, 10, 14, 18 and 20, claims further recite the limitations which further recite mental processes and are directed to perform mental processes that fall into the “Mental Processes” groupings of abstract ideas and are directed to a judicial exception. Furthermore, claims include no additional elements that would integrate the judicial exception into a practical application or would amount to significantly more than the abstract idea. Thus, the claims are ineligible.
Claim Rejections - 35 USC § 103
5. In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
6. Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Tran et al. (US 2016/0226736 A1) hereinafter Tran, in view of Porter et al. (US 9,684,524 B1) hereinafter Porter.
As to claim 1, Tran discloses a service combination device, comprising: a storage device (Para. 106), configured to store a service combination module, a graph storage module, and a combination optimization module
a processor (Para. 105), coupled to the storage device and configured to receive initial data (Para. 23, If the service that creates the trace data is called by another service, then the trace data may also identify that other service. For example, if service A calls service B, then trace data created by service B includes data that identifies service A. Trace data, i.e., initial data, may also indicate which API was used to make the call. Para. 24, If the first service that generates the trace data is not the root service (but rather is a downstream service), then some of the trace data (such as page key and trace ID) may be received, i.e., receive initial data, from an upstream service.),
wherein the processor executes the service combination module to generate a plurality of target data according to the initial data (Para. 19, Each of one or more nodes in a call graph may be associated with one or more data items, i.e., a plurality of target data. Example data items include total latency, wait time, and "self-latency." "Total latency" of a particular service, i.e., the initial data, refers to the entire time from when the particular service received a call until the particular service provided a final result of the call. "Wait time" of a particular service refers to the time that the particular service waits for one or more downstream services to complete processing the call(s) issued by the particular service. Thus, the processor executes the service combination module to generate a plurality of target data according to the initial data.),
wherein the processor executes the graph storage module to search a data graph according to the plurality of target data, so as to obtain a plurality of service data combinations (Fig. 1, 3A, Para. 14, Call graph 100, i.e. a data graph, includes a node 110 for service A, a node 120 for service B, a node 130, for service C, a node 140 for service D, and a node 150 for service E. Services A-E are depended services of a particular web application. Service A may be a front-end service that receives a request from a client device, such as a smartphone executing a mobile application that creates the request. (Alternatively, service A may be started by a batch job that calls service A.) In response to receiving the request, service A calls service B, which in tum (eventually) calls services D and E. Service A also calls service C. Para. 17, a call graph, i.e. a data graph, may represent the results of processing multiple client requests. Some client requests associated with a call graph may rely on a first set of services represented in the call graph while other client requests associated with the call graph may rely on a second set of services, i.e. a plurality of service data combinations, represented in the call graph, where the first set is different than the second set. Thus, the processor executes the graph storage module to search a data graph according to the plurality of target data, so as to obtain a plurality of service data combinations.).
Tran does not explicitly disclose wherein the processor executes the combination optimization module to filter out an optimized service data combination from the plurality of service data combinations.
However, in the same field of endeavor, Porter discloses wherein the processor executes the combination optimization module to filter out an optimized service data combination from the plurality of service data combinations (Fig. 2A-2B, Col. 5 lines 8-11, The trace data generated for multiple services and multiple service interactions may be sent to the optimization system 150, i.e. the combination optimization module, for aggregation and analysis. Col. 6 lines 60-67-Col. 7 lines 1-6, “Using the optimizer functionality 180, the optimization system 150 may determine an optimized configuration 185 for at least a portion of the one or more call graph(s). The optimized configuration 185 for a set of services may represent an improvement on the existing configuration of the set of services with respect to one or more performance metrics (e.g., network latency or transit times, throughput, reliability or availability, cost, etc.) for at least a portion of the one or more call graphs. Accordingly, the optimized configuration 185 may be determined based on the one or more performance metrics 165 in order to optimize one or more call paths of the one or more call graphs 175.”. Col. 11 lines 59-67-Col. 12 lines 1-2, “a service relocation controller 220 may implement a provisioning and configuration functionality (potentially in conjunction with other components) to cause one or more hosts to be added to the service-oriented system 300, cause one or more hosts to be removed from the service-oriented system 300, cause one or more services to be removed from one or more hosts, and/or cause one or more services to be added to one or more hosts. The number of hosts and/or configuration of the hosts may be modified in accordance with the optimized configuration 185.”. Thus, the processor executes the combination optimization module to filter out an optimized service data combination from the plurality of service data combinations.).
Therefore, it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the system of Tran by using the optimization system such as the combination optimization module to analyze trace data and generate one or more call graphs such as the data graph based on connectivity information withing the trace data as disclosed by Porter (Col. 6 lines 26-39). Each call graph may include a plurality of nodes representing services and one or more edges (also referred to as call paths) representing service interactions (Porter, Col. 6 lines 31-34). One of the ordinary skills in the art would have motivated to make this modification in order to generate suitable reports and/or visualizations (e.g., call graph visualizations) based on the trace data as suggested by Porter (Col. 6 lines 45-47).
As to claim 11, Tran discloses a service combination method, comprising: receiving initial data by a processor (Para. 105, Para. 23, If the service that creates the trace data is called by another service, then the trace data may also identify that other service. For example, if service A calls service B, then trace data created by service B includes data that identifies service A. Trace data, i.e., initial data, may also indicate which API was used to make the call. Para. 24, If the first service that generates the trace data is not the root service (but rather is a downstream service), then some of the trace data (such as page key and trace ID) may be received, i.e., receive initial data, from an upstream service.);
executing a service combination module by the processor to generate a plurality of target data according to the initial data (Para. 19, Each of one or more nodes in a call graph may be associated with one or more data items, i.e., a plurality of target data. Example data items include total latency, wait time, and "self-latency." "Total latency" of a particular service, i.e., the initial data, refers to the entire time from when the particular service received a call until the particular service provided a final result of the call. "Wait time" of a particular service refers to the time that the particular service waits for one or more downstream services to complete processing the call(s) issued by the particular service. Thus, executing a service combination module by the processor to generate a plurality of target data according to the initial data.);
executing a graph storage module by the processor to search for a data graph according to the plurality of target data, so as to obtain a plurality of service data combinations (Fig. 1, 3A, Para. 14, Call graph 100, i.e. a data graph, includes a node 110 for service A, a node 120 for service B, a node 130, for service C, a node 140 for service D, and a node 150 for service E. Services A-E are depended services of a particular web application. Service A may be a front-end service that receives a request from a client device, such as a smartphone executing a mobile application that creates the request. (Alternatively, service A may be started by a batch job that calls service A.) In response to receiving the request, service A calls service B, which in tum (eventually) calls services D and E. Service A also calls service C. Para. 17, a call graph, i.e. a data graph, may represent the results of processing multiple client requests. Some client requests associated with a call graph may rely on a first set of services represented in the call graph while other client requests associated with the call graph may rely on a second set of services, i.e. a plurality of service data combinations, represented in the call graph, where the first set is different than the second set. Thus, executing a graph storage module by the processor to search for a data graph according to the plurality of target data, so as to obtain a plurality of service data combinations.).
Tran does not explicitly disclose executing a combination optimization module by the processor to filter out an optimized service data combination from the plurality of service data combinations.
However, in the same field of endeavor, Porter discloses executing a combination optimization module by the processor to filter out an optimized service data combination from the plurality of service data combinations (Fig. 2A-2B, Col. 5 lines 8-11, The trace data generated for multiple services and multiple service interactions may be sent to the optimization system 150, i.e. the combination optimization module, for aggregation and analysis. Col. 6 lines 60-67-Col. 7 lines 1-6, “Using the optimizer functionality 180, the optimization system 150 may determine an optimized configuration 185 for at least a portion of the one or more call graph(s). The optimized configuration 185 for a set of services may represent an improvement on the existing configuration of the set of services with respect to one or more performance metrics (e.g., network latency or transit times, throughput, reliability or availability, cost, etc.) for at least a portion of the one or more call graphs. Accordingly, the optimized configuration 185 may be determined based on the one or more performance metrics 165 in order to optimize one or more call paths of the one or more call graphs 175.”. Col. 11 lines 59-67-Col. 12 lines 1-2, “a service relocation controller 220 may implement a provisioning and configuration functionality (potentially in conjunction with other components) to cause one or more hosts to be added to the service-oriented system 300, cause one or more hosts to be removed from the service-oriented system 300, cause one or more services to be removed from one or more hosts, and/or cause one or more services to be added to one or more hosts. The number of hosts and/or configuration of the hosts may be modified in accordance with the optimized configuration 185.”. Thus, executing a combination optimization module by the processor to filter out an optimized service data combination from the plurality of service data combinations.).
Therefore, it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the system of Tran by using the optimization system such as the combination optimization module to analyze trace data and generate one or more call graphs such as the data graph based on connectivity information withing the trace data as disclosed by Porter (Col. 6 lines 26-39). Each call graph may include a plurality of nodes representing services and one or more edges (also referred to as call paths) representing service interactions (Porter, Col. 6 lines 31-34). One of the ordinary skills in the art would have motivated to make this modification in order to generate suitable reports and/or visualizations (e.g., call graph visualizations) based on the trace data as suggested by Porter (Col. 6 lines 45-47).
As to claims 2 and 12, the claims are rejected for the same reasons as claims 1 and 11 above. In addition, Tran discloses wherein the graph storage module is a database (Para. 20, “The data of a call graph may be stored in file or in a table of a database (or in one or more other types of data objects) that lists each service that is called during the processing of a client request by a particular web application.”. Thus, the graph storage module is a database.), and the plurality of service data combinations comprise service directionality parameters, wherein the data graph comprises a plurality of service data, a plurality of input data, and a plurality of output data, wherein the data graph further comprises a connection relationship and a mapping relationship of the plurality of service data, the plurality of input data, and the plurality of output data (Para. 13, “A "service call graph" is a directed graph that represents calling relationships between services of a web site. Each node in a service call graph (or "call graph") represents a service hosted at the web site. Each edge indicates an application programming interface (API) call from one service to another. The first (or "root" or "top") node in a call graph corresponds to a service (referred to herein as the "root service") that is called as the result of a request from a client of the web site. The root service may be a service that is responsible for responding to the client request by calling one or more other services. Thus, the root service may call many services in response to receiving a client request”. Para. 19, Each of one or more nodes in a call graph may be associated with one or more data items. Example data items include total latency, wait time, and "self-latency.", i.e., service directionality parameters. "Total latency" of a particular service refers to the entire time from when the particular service received a call until the particular service provided a final result of the call. "Wait time" of a particular service refers to the time that the particular service waits for one or more downstream services to complete processing the call(s) issued by the particular service. Thus, the data graph comprises a plurality of service data, a plurality of input data, and a plurality of output data, wherein the data graph further comprises a connection relationship and a mapping relationship of the plurality of service data, the plurality of input data, and the plurality of output data.).
As to claims 3 and 13, the claims are rejected for the same reasons as claims 1 and 11 above. In addition, Tran discloses further comprising a service combination operation interface for receiving the initial data, wherein the service combination module outputs the optimized service data combination to the service combination operation interface, and displays the optimized service data combination on a display, wherein the optimized service data combination is at least one of target data description and target service data (Para. 38, A summary view indicates at least some of the services on which the corresponding web application relies and one or more metrics, such as an average latency of each service or group of services. In the summary view, some services may be grouped by type or other criteria. Thus, a single label in the summary view may correspond to multiple services on which the corresponding web application relies. Such groups may be referred to as "containers." For example, multiple depended services of a particular web application may be related to providing profile data to an end user. Statistics for such "profile" services are combined into a single container referred to, in the summary view, as "Profile Services.", i.e. the optimized service data combination. Para. 40, a call graph view is generated and displayed on a computer screen, i.e. a display. A call graph view shows a service call graph on a per API call basis from initial page view to each downstream service. The call graph view allows developers to assess, in granular detail, the services and APIs upon which the developers' applications depend and, optionally, how those services perform. Thus, the optimized service data combination is at least one of target data description and target service data.).
As to claims 4 and 14, the claims are rejected for the same reasons as claims 1 and 11 above. In addition, Tran discloses wherein the service combination module splits the initial data into the plurality of target data (Para. 19, Each of one or more nodes in a call graph may be associated with one or more data items, i.e., the plurality of target data. Example data items include total latency, wait time, and "self-latency." "Total latency" of a particular service, i.e., the initial data, refers to the entire time from when the particular service received a call until the particular service provided a final result of the call. "Wait time" of a particular service refers to the time that the particular service waits for one or more downstream services to complete processing the call(s) issued by the particular service. Thus, the service combination module splits the initial data into the plurality of target data.).
As to claims 5 and 15, the claims are rejected for the same reasons as claims 4 and 14 above. In addition, Porter discloses wherein the initial data is target service data, and the target service data relates to calling data of an application programming interface, and the initial data further comprises a raw data description (Col. 27 lines 34-45, metadata relating to service interactions may be collected (e.g., by the log reporting agent 2350) and used in the generation of call graphs. In various embodiments, the metadata includes, but is not limited to, any of the following: a timestamp, an indication of whether the interaction is on the client side or server side, the name or other identifier of the application programming interface (API), i.e. the initial data, invoked for the interaction, the host name, data that describes the environment (e.g., a version number of a production environment or test environment), and/or any other metadata, i.e. the target service data, that is suitable for building the call graphs and/or comparing one set of call graphs to another. Thus, the initial data is target service data, and the target service data relates to calling data of an application programming interface, and the initial data further comprises a raw data description.).
As to claims 6 and 16, the claims are rejected for the same reasons as claims 4 and 14 above. In addition, Porter discloses wherein the initial data is a target data description, the target data description is related to result data obtained after calling the application programming interface, and the initial data further comprises a raw data description, and the raw data description is initial data input into the application programming interface (Col. 27 lines 34-45, “metadata relating to service interactions may be collected (e.g., by the log reporting agent 2350) and used in the generation of call graphs. In various embodiments, the metadata includes, but is not limited to, any of the following: a timestamp, an indication of whether the interaction is on the client side or server side, the name or other identifier of the application programming interface (API) invoked for the interaction, the host name, data that describes the environment (e.g., a version number of a production environment or test environment), and/or any other metadata that is suitable for building the call graphs and/or comparing one set of call graphs to another.”. Thus, the initial data is a target data description, the target data description is related to result data obtained after calling the application programming interface, and the initial data further comprises a raw data description, and the raw data description is initial data input into the application programming interface.).
As to claims 7 and 17, the claims are rejected for the same reasons as claims 1 and 11 above. In addition, Porter discloses wherein the storage device stores an optimization setting, wherein according to the optimization setting, the combination optimization module selects the optimized service data combination corresponding to the optimization setting from the plurality of service data combinations (Fig. 2A-2B, Col. 5 lines 8-11, The trace data generated for multiple services and multiple service interactions may be sent to the optimization system 150, i.e. the combination optimization module, for aggregation and analysis. Col. 6 lines 60-67-Col. 7 lines 1-6, “Using the optimizer functionality 180, the optimization system 150 may determine an optimized configuration 185 for at least a portion of the one or more call graph(s). The optimized configuration 185 for a set of services may represent an improvement on the existing configuration of the set of services with respect to one or more performance metrics (e.g., network latency or transit times, throughput, reliability or availability, cost, etc.) for at least a portion of the one or more call graphs. Accordingly, the optimized configuration 185 may be determined based on the one or more performance metrics 165 in order to optimize one or more call paths of the one or more call graphs 175.”. Col. 11 lines 59-67-Col. 12 lines 1-2, “a service relocation controller 220 may implement a provisioning and configuration functionality (potentially in conjunction with other components) to cause one or more hosts to be added to the service-oriented system 300, cause one or more hosts to be removed from the service-oriented system 300, cause one or more services to be removed from one or more hosts, and/or cause one or more services to be added to one or more hosts. The number of hosts and/or configuration of the hosts may be modified in accordance with the optimized configuration 185.”. Thus, the combination optimization module selects the optimized service data combination corresponding to the optimization setting from the plurality of service data combinations.).
As to claims 8 and 18, the claims are rejected for the same reasons as claims 7 and 17 above. In addition, Porter discloses wherein the optimization setting is a setting of the least service data, wherein the combination optimization module selects the service data combination with the least service data from the plurality of service data combinations, and takes the service data combination as the optimized service data combination (Fig. 2A-2B, Col. 5 lines 8-11, The trace data generated for multiple services and multiple service interactions may be sent to the optimization system 150, i.e. the combination optimization module, for aggregation and analysis. Col. 6 lines 60-67-Col. 7 lines 1-6, “Using the optimizer functionality 180, the optimization system 150 may determine an optimized configuration 185 for at least a portion of the one or more call graph(s). The optimized configuration 185 for a set of services may represent an improvement on the existing configuration of the set of services with respect to one or more performance metrics (e.g., network latency or transit times, throughput, reliability or availability, cost, etc.) for at least a portion of the one or more call graphs. Accordingly, the optimized configuration 185 may be determined based on the one or more performance metrics 165 in order to optimize one or more call paths of the one or more call graphs 175.”. Col. 11 lines 59-67-Col. 12 lines 1-2, “a service relocation controller 220 may implement a provisioning and configuration functionality (potentially in conjunction with other components) to cause one or more hosts to be added to the service-oriented system 300, cause one or more hosts to be removed from the service-oriented system 300, cause one or more services to be removed from one or more hosts, and/or cause one or more services to be added to one or more hosts. The number of hosts and/or configuration of the hosts may be modified in accordance with the optimized configuration 185.”. Thus, the optimization setting is a setting of the least service data, wherein the combination optimization module selects the service data combination with the least service data from the plurality of service data combinations, and takes the service data combination as the optimized service data combination.).
As to claims 9 and 19, the claims are rejected for the same reasons as claims 1 and 11 above. In addition, Porter discloses further comprising a service list module, wherein the service list module stores a callable service list (Col. 6 lines 26-34, “Using the data flow analysis functionality 170, the optimization system 150 may analyze the trace data 130A-130N and generate one or more call graphs 175 based on connectivity information within the trace data. Each call graph may represent the flow of requests from service to service and may identify service dependencies. Each call graph may include a plurality of nodes representing services and one or more edges (also referred to as call paths) representing service interactions.”. Thus, the service list module stores a callable service list.), and each service data combination in the plurality of service data combinations comprises a plurality of service data and sequence parameters (Col. 6 lines 29-39, “Each call graph may represent the flow of requests from service to service and may identify service dependencies. Each call graph may include a plurality of nodes representing services and one or more edges (also referred to as call paths) representing service interactions. Each of the call graphs 175 may include a hierarchical data structure that include nodes representing the services and edges representing the interactions.”. Col. 25 lines 33-38, “For instance, since a root request may result in a service call which may propagate into multiple other services calls throughout the service oriented system, a call graph may in some cases include a deep and broad tree with multiple branches each representing a sequences of service calls.”. Thus, each service data combination in the plurality of service data combinations comprises a plurality of service data and sequence parameters.).
As to claims 10 and 20, the claims are rejected for the same reasons as claims 9 and 19 above. In addition, Porter discloses wherein the callable service list comprises a plurality of data descriptions corresponding to the plurality of service data (Col. 3 lines 66-67-Col. 4 lines 1-3, “descriptions of operations offered by one or more of the services may include Web Service Description Language (WSDL) documents, which may in some cases be provided by a service broker accessible to the services and components.”. Thus, the callable service list comprises a plurality of data descriptions corresponding to the plurality of service data.),
wherein when the data graph does not have the corresponding plurality of target data, the processor executes the service list module to obtain a plurality of data descriptions respectively corresponding to the plurality of target data according to the callable service list, wherein the service list module creates the plurality of service data into the data graph according to the corresponding plurality of data descriptions (Col. 27 lines 1-32, “Since the request identifiers of various embodiments may include a request stack of multiple interaction identifiers, multiple layers of redundancy may be utilized to overcome a log data loss. In this example, since the outbound log data for service 2510 is lost, request identifiers 2512, 2514, and 2516 may not be available. Accordingly, the call graph generation logic may be configured to utilize a request identifier from a lower depth level to reconstruct the pertinent portion of the call graph. While request identifiers 2512, 2514, and 2516 may be not be available due to data loss, the request identifier 2542 (and 2544) is available. Since request identifier 2542 includes a stack or "history" of interaction identifiers, that request identifier may be utilized to obtain information that would have been available if request identifier 2516 were not lost to data failure. Since request identifier 2542 has a depth level that is two levels lower than the depth level of request identifier 2502, the call graph generation logic may utilize the third most recent (not the second most recent as was the case in the previous example) interaction identifier. In this example, the third most recent interaction identifier is evaluated since that position would contain the interaction identifier generated by service 2500 in the illustrated embodiment. If the call graph generation logic determines that the most recent interaction identifier of request identifier 2502 matches the third most recent interaction identifier of request identifier 2542, the call graph generation logic may determine that service 2500 called service 2510 even if the log data for service 2510 is unavailable (e.g., due to data loss). Accordingly, the call graph generation logic may indicate an edge (representing a service call) exists between service 2500 and service 2510 within the generated call graph data structure.”. Thus, the service list module creates the plurality of service data into the data graph according to the corresponding plurality of data descriptions.),
wherein the graph storage module searches the data graph according to the plurality of target data, and then obtains the plurality of service data combinations (Col. 26 lines 5-25, “call graph generation logic 2420 may be configured to compare request identifiers in order to determine that a given service called another service in the process of fulfilling the root request. For example, in one embodiment, the call graph generation logic may compare a request identifier from a given service's outbound request log to the request identifier from another service's inbound request log. If a match is detected, the call graph generation logic may indicate that the service corresponding to that outbound request log called the service corresponding to that inbound request log. For example, call graph generation logic may discover a request identifier equivalent to request identifier 2502 within the outbound request log associated with service 2500. In this example, call graph generation logic may also locate a request identifier equivalent to request identifier 2502 within the inbound log of service 2510. In response to this match, call graph generation logic may indicate that an edge (representing a service call) exists between two particular nodes of the call graph (e.g., the node corresponding to service 2500 and the node corresponding to service 2510).”. Thus, the graph storage module searches the data graph according to the plurality of target data, and then obtains the plurality of service data combinations.).
Conclusion
7. The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Peterson et al. (US 10,091,061 A1) teaches providing service-oriented system optimization.
Porter et al. (US 9,559,928 A1) teaches providing integrated test coverage measurement in distributed systems.
TANKERSLEY et al. (US 2018/0024901 A1) teaches monitoring performance of a system at a service level using key performance indicators derived from machine data.
8. Any inquiry concerning this communication or earlier communications from the examiner should be directed to MOHAMMAD SOLAIMAN BHUYAN whose telephone number is (571)272-7843. The examiner can normally be reached on Monday - Friday 9:00am-5:00pm EST.
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, Charles Rones can be reached on 571-272-4085. The fax phone number for the organization where this application or proceeding is assigned is 571 -273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/Mohammad S Bhuyan/Examiner, Art Unit 2168
/CHARLES RONES/Supervisory Patent Examiner, Art Unit 2168