DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1 – 20 are pending for examination.
Examiner’s Note
The prior art rejection below cites particular paragraphs, columns, and/or line numbers in the references for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 12/11/24 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1 – 2 and 5 - 6 are provisionally rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1 - 7 of copending Application No. 18/325,027 (refer herein 027).
Claims 1 + 2 + 5 + 6 of application 18/325,026 (hereinafter 026)
Claims 1 – 7 of application 18/325,027 (hereinafter 027)
1. A method for operating a device application, the method comprising: receiving an output from a building block component of a multitude of building block components, each of the multitude of building block components are ignorant of processes of other building block components; translating the output, with a component adapter of a multitude of adaptors, into a message that is receivable by at least one of the multitude of adaptors; storing a state of the device application based on the output, the state is accessible by the multitude of adapters; and
the multitude of building block components are capable of receiving the message via the multitude of adaptors.
2. The method of claim 1, wherein the multitude of adaptors comprise a customer logic section that is configurable to execute one or more functions of the multitude of building block components.
The method of claim 2, wherein the custom logic section is configurable to execute a function of at least one of the multitude of building block components responsive to receiving the message.
6. The method of claim 5, wherein the custom logic section is configurable by a machine readable specification.
1. A method for operating a device application, the method comprising: receiving, by a device application containing a multitude of adaptors and a multitude of building block components, a building block component that is configured to perform a function; receiving an output from the building block component; translating, by an adaptor of the multitude of adaptors, the output from the building block component into a message that is receivable by the multitude of adaptors; and storing, based on the output, one or more states of the device application in a database that is accessible by the multitude of adaptors in the device application.
2. The method of claim 1, further comprising subscribing, by at least one of the multitude of adaptors, to the message.
4.The method of claim 3, wherein the at least one adaptor of the multitude of adaptors comprises a custom logic section.
3. The method of claim 2, wherein translating comprises transmitting the message on a channel; and wherein subscribing comprises selecting a channel to listen for the message.
5.The method of claim 4, wherein the custom logic section is configurable to execute a function of at least one of the multitude of building block components responsive to receiving the message.
The method of claim 5, wherein the custom logic section is configurable by a machine readable specification.
7. The method of claim 6, wherein each of the multitude of building block components comprise one or more functions that are ignorant of functions of other building block components (teaches last limitation of claim 1).
This is a provisional nonstatutory double patenting rejection because the patentably indistinct claims have not in fact been patented.
Claims 1 and 3 - 4 are provisionally rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1 - 7 of copending Application No. 18/325,027 (refer herein 027) in view of Nill et al., (US PUB 2018/0259922 hereinafter Nill).
Claims 1 + 3 + 4 of application 18/325,026 (hereinafter 026)
Claims 1 – 20 of application 18/325,027 (hereinafter 027)
1. A method for operating a device application, the method comprising: receiving an output from a building block component of a multitude of building block components, each of the multitude of building block components are ignorant of processes of other building block components; translating the output, with a component adapter of a multitude of adaptors, into a message that is receivable by at least one of the multitude of adaptors; storing a state of the device application based on the output, the state is accessible by the multitude of adapters; and the multitude of building block components are capable of receiving the message via the multitude of adaptors.
3. The method of claim 1, wherein the message is transmitted on a channel that is selectable by the adaptor.
4. The method of claim 3, further comprising subscribing, by at least one of the multitude of adaptors, to a topic on the channel; and wherein the message comprises the topic.
1. A method for operating a device application, the method comprising: receiving, by a device application containing a multitude of adaptors and a multitude of building block components, a building block component that is configured to perform a function; receiving an output from the building block component; translating, by an adaptor of the multitude of adaptors, the output from the building block component into a message that is receivable by the multitude of adaptors; and storing, based on the output, one or more states of the device application in a database that is accessible by the multitude of adaptors in the device application.
2. The method of claim 1, further comprising subscribing, by at least one of the multitude of adaptors, to the message.
3. The method of claim 2, wherein translating comprises transmitting the message on a channel; and wherein subscribing comprises selecting a channel to listen for the message.
4.The method of claim 3, wherein the at least one adaptor of the multitude of adaptors comprises a custom logic section.
5.The method of claim 4, wherein the custom logic section is configurable to execute a function of at least one of the multitude of building block components responsive to receiving the message.
6.The method of claim 5, wherein the custom logic section is configurable by a machine readable specification.
7. The method of claim 6, wherein each of the multitude of building block components comprise one or more functions that are ignorant of functions of other building block components (teaches last limitation of claim 1).
027 does not but Nill teaches subscribing to a topic on the channel; and wherein the message comprises the topic (“...The load control system may be configured to publish messages to a message broker using a first topic and may be configured to receive messages from the message broker by subscribing with the message broker to a second topic. The system may be configured to receive via the message broker a first message communicated by the load control system. The first message may have the first topic associated with it...” para. 0005).
It 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 to modify 027 by applying the teachings of Nill because Nil would provide a channel/broker that devices can use APIs to communicate API messages through (para. 0039).
Claims 8 – 9 and 12 - 13 are provisionally rejected on the ground of nonstatutory double patenting as being unpatentable over claims 8 – 14 of copending Application No. 18/325,027 (refer herein 027).
Claims 8 + 9 + 12 + 13 of application 18/325,026 (hereinafter 026)
Claims 8 – 14 of application 18/325,027 (hereinafter 027)
8. A computer system configured to develop a device application, the computer system comprising: a processor coupled to a memory, the processor configured to: receive an output from a building block component of a multitude of building block components, each of the multitude of building block components are ignorant of processes of other building block components; translate the output, with a component adapter of a multitude of adaptors, into a message that is receivable by at least one of the multitude of adaptors; and store a state of the device application based on the output, the state is accessible by the multitude of adapters; the multitude of building block components are capable of receiving the message via the multitude of adaptors.
9. The computer system of claim 8, wherein the multitude of adaptors comprise a customer logic section that is configurable to execute one or more functions of the multitude of building block components.
12. The computer system of claim 9, wherein the custom logic section is configurable to execute a function of at least one of the multitude of building block components responsive to receiving the message.
13. The computer system of claim 12, wherein the custom logic section is configurable by a machine readable specification.
8. A computer system configured to develop a device application, the computer system comprising: a processor coupled to a memory, the processor configured to: receive, by a device application containing a multitude of adaptors and a multitude of building block components, a building block component that is configured to perform a function; receive an output from the building block component; translate, by an adaptor of the multitude of adaptors, the output from the building block component into a message that is receivable by the multitude of adaptors; and store, based on the output, one or more states of the device application in a database that is accessible by the multitude of adaptors in the device application.
9. The computer system of claim 8, wherein the processor is further configured to subscribe, by at least one of the multitude of adaptors, to the message.
10. The computer system of claim 9, wherein translate comprises the processor configured to transmit the message on a channel; and wherein subscribe comprises the processor configured to select a channel to listen for the message.
11. The computer system of claim 10, wherein the at least one adaptor of the multitude of adaptors comprises a custom logic section.
12. The computer system of claim 11, wherein the custom logic section is configurable to execute a function of at least one of the multitude of building block components responsive to receiving the message.
13. The computer system of claim 12, wherein the custom logic section is configurable by a machine readable specification.
14. The computer system of claim 13, wherein each of the multitude of building block components comprise one or more functions that are ignorant of functions of other building block component (teaches last limitation of claim 8).
This is a provisional nonstatutory double patenting rejection because the patentably indistinct claims have not in fact been patented.
Claims 8 and 10 - 11 are provisionally rejected on the ground of nonstatutory double patenting as being unpatentable over claims 8 – 14 of copending Application No. 18/325,027 (refer herein 027) in view of Nill et al., (US PUB 2018/0259922 hereinafter Nill).
Claims 8 + 10 + 11 of application 18/325,026 (hereinafter 026)
Claims 8 - 14 of application 18/325,027 (hereinafter 027)
8. A computer system configured to develop a device application, the computer system comprising: a processor coupled to a memory, the processor configured to: receive an output from a building block component of a multitude of building block components, each of the multitude of building block components are ignorant of processes of other building block components; translate the output, with a component adapter of a multitude of adaptors, into a message that is receivable by at least one of the multitude of adaptors; and store a state of the device application based on the output, the state is accessible by the multitude of adapters; the multitude of building block components are capable of receiving the message via the multitude of adaptors.
10. The computer system of claim 8, wherein the message is transmitted on a channel that is selectable by the component adaptor.
11. The computer system of claim 10, wherein the processor is further configured to subscribe, by at least one of the multitude of adaptors, to a topic on the channel; and wherein the message comprises the topic.
8. A computer system configured to develop a device application, the computer system comprising: a processor coupled to a memory, the processor configured to: receive, by a device application containing a multitude of adaptors and a multitude of building block components, a building block component that is configured to perform a function; receive an output from the building block component; translate, by an adaptor of the multitude of adaptors, the output from the building block component into a message that is receivable by the multitude of adaptors; and store, based on the output, one or more states of the device application in a database that is accessible by the multitude of adaptors in the device application.
9. The computer system of claim 8, wherein the processor is further configured to subscribe, by at least one of the multitude of adaptors, to the message.
10. The computer system of claim 9, wherein translate comprises the processor configured to transmit the message on a channel; and wherein subscribe comprises the processor configured to select a channel to listen for the message.
11. The computer system of claim 10, wherein the at least one adaptor of the multitude of adaptors comprises a custom logic section.
12. The computer system of claim 11, wherein the custom logic section is configurable to execute a function of at least one of the multitude of building block components responsive to receiving the message.
13. The computer system of claim 12, wherein the custom logic section is configurable by a machine readable specification.
14. The computer system of claim 13, wherein each of the multitude of building block components comprise one or more functions that are ignorant of functions of other building block component (teaches last limitation of claim 8).
027 does not but Nill teaches subscribing to a topic on the channel; and wherein the message comprises the topic (“...The load control system may be configured to publish messages to a message broker using a first topic and may be configured to receive messages from the message broker by subscribing with the message broker to a second topic. The system may be configured to receive via the message broker a first message communicated by the load control system. The first message may have the first topic associated with it...” para. 0005).
It 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 to modify 027 by applying the teachings of Nill because Nil would provide a channel/broker that devices can use APIs to communicate API messages through (para. 0039).
Claims 15 – 16 and 19 are provisionally rejected on the ground of nonstatutory double patenting as being unpatentable over claims 15 – 20 of copending Application No. 18/325,027 (refer herein 027) in view of Williams et al., (US PUB 2016/0034995 hereinafter Williams).
Claims 15 + 16 + 19 of application 18/325,026 (hereinafter 026)
Claims 15 - 20 of application 18/325,027 (hereinafter 027)
15. A computer readable storage medium having data stored therein representing software executable by a computer, the software comprising instructions that, when executed, cause the computer readable storage medium to perform: receiving an output from a building block component of a multitude of building block components, each of the multitude of building block components are ignorant of processes of other building block components; translating the output, with a component adapter of a multitude of adaptors, into a message that is receivable by at least one of the multitude of adaptors; storing a state of a device application based on the output, the state is accessible by the multitude of adapters; and the multitude of building block components are capable of receiving the message via the multitude of adaptors.
16. The computer readable storage medium of claim 15, wherein the multitude of adaptors comprise a customer logic section that is configurable to execute one or more functions of the multitude of building block components.
19. The computer readable storage medium of claim 16, wherein the custom logic section is configurable to execute a function of at least one of the multitude of building block components responsive to receiving the message.
15. A computer readable storage medium having data stored therein representing software executable by a computer, the software comprising instructions that, when executed, cause the computer readable storage medium to perform: receiving, by a device application containing a multitude of adaptors and a multitude of building block components, a building block component that is configured to perform a function; receiving an output from the building block component; translating, by an adaptor of the multitude of adaptors, the output from the building block component into a message that is receivable by the multitude of adaptors; and storing, based on the output, one or more states of the device application in a database that is accessible by the multitude of adaptors in the device application.
16. The computer readable storage medium of claim 15, wherein the instructions further cause the computer readable storage medium to perform subscribing, by at least one of the multitude of adaptors, to the message.
17. The computer readable storage medium of claim 16, wherein translating comprises transmitting the message on a channel; and wherein subscribing comprises selecting a channel to listen for the message.
18. The computer readable storage medium of claim 17, wherein the at least one adaptor of the multitude of adaptors comprises a custom logic section.
19. The computer readable storage medium of claim 18, wherein the custom logic section is configurable to execute a function of at least one of the multitude of building block components responsive to receiving the message.
20. The computer readable storage medium of claim 19, wherein the custom logic section is configurable by a machine readable specification.
This is a provisional nonstatutory double patenting rejection because the patentably indistinct claims have not in fact been patented.
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.
Claims 1 - 20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
As to claim 1, the claim recites
“A method for operating a device application, the method comprising:
receiving an output from a building block component of a multitude of building block components, each of the multitude of building block components are ignorant of processes of other building block components;
translating the output, with a component adapter of a multitude of adaptors, into a message that is receivable by at least one of the multitude of adaptors;
storing a state of the device application based on the output, the state is accessible by the multitude of adapters; and
the multitude of building block components are capable of receiving the message via the multitude of adaptors”.
Step 1: the claim is directed to a process which is one of the statutory categories of invention.
Step 2A:
Prong 1: the limitations of " A method for operating a device application” and “translating the output, with a component adapter of a multitude of adaptors, into a message that is receivable by at least one of the multitude of adaptors" are all functions that can be reasonably performed in the human mind including observations and with or without the use of pen and paper through observation, evaluation, judgement and opinion.
Prong 2: the additional element of "receiving an output from a building block component of a multitude of building block components, each of the multitude of building block components are ignorant of processes of other building block components”; and “storing a state of the device application based on the output, the state is accessible by the multitude of adapters; and the multitude of building block components are capable of receiving the message via the multitude of adaptors” merely recite insignificant extra solution activity such as gathering, displaying, updating, transmitting and storing data which does not integrate the judicial exception into a practical application. See MPEP 2106.05(d).
Thus, these additional elements do not integrate the judicial exception into a practical application.
Step 2B:
The additional element of "receiving an output from a building block component of a multitude of building block components, each of the multitude of building block components are ignorant of processes of other building block components”; and “storing a state of the device application based on the output, the state is accessible by the multitude of adapters; and the multitude of building block components are capable of receiving the message via the multitude of adaptors” merely recite insignificant extra solution activity such as gathering, displaying, updating, transmitting and storing data which does not integrate the judicial exception into a practical application. See MPEP 2106.05(d).
Accordingly, the additional elements do not amount to significantly more than the abstract idea.
As to claim 2, The method of claim 1, wherein the multitude of adaptors comprise a customer logic section that is configurable to execute one or more functions of the multitude of building block components are all functions that can be reasonably performed in the human mind including observations and with or without the use of pen and paper through observation, evaluation, judgement and opinion.
As to claim 3, The method of claim 1, wherein the message is transmitted on a channel that is selectable by the adaptor are all functions that can be reasonably performed in the human mind including observations and with or without the use of pen and paper through observation, evaluation, judgement and opinion.
As to claim 4, The method of claim 3, further comprising subscribing, by at least one of the multitude of adaptors, to a topic on the channel merely recite insignificant extra solution activity such as gathering, displaying, updating, transmitting and storing data which does not integrate the judicial exception into a practical application. See MPEP 2106.05(d); and
wherein the message comprises the topic merely recite insignificant extra solution activity such as gathering, displaying, updating, transmitting and storing data which does not integrate the judicial exception into a practical application. See MPEP 2106.05(d).
As to claim 5, The method of claim 2, wherein the custom logic section is configurable to execute a function of at least one of the multitude of building block components responsive to receiving the message are all functions that can be reasonably performed in the human mind including observations and with or without the use of pen and paper through observation, evaluation, judgement and opinion.
As to claim 6, The method of claim 5, wherein the custom logic section is configurable by a machine readable specification merely recite instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea.
As to claim 7, The method of claim 1, further comprising executing, by one of the multitude of adaptors, a function of one of the multitude of building block components responsive to receiving the message are all functions that can be reasonably performed in the human mind including observations and with or without the use of pen and paper through observation, evaluation, judgement and opinion.
As to claim 8, this is a computer system of claim 1. See rejection for claim 1 above.
Further, the additional elements “a processor coupled to a memory” merely recite instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea.
As to claims 9 - 14, these claims recite similar scope of claims 2 - 7. See rejection for claims 2 - 7 above respectively.
As to claim 15, this is a computer readable storage medium of claim 1. See rejection for claim 1 above. Further, the additional elements “computer readable storage medium having data stored therein representing software executable by a computer” merely recite instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea.
As to claims 16 - 20, these claims recite similar scope of claims 2 - 5 and 7. See rejection for claims 2 - 5 and 7 above respectively.
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.
Claims 1 – 20 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 applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
As to claim 1,
Lines 5 – 6, limitation “receivable” is indefinite. Claimed limitations must be precise. The limitation must be – received --.
Lines 7 – 8, limitation “accessible” is indefinite. Claimed limitations must be precise. The limitation has to be – accessed --.
Lines 2 – 8, limitation “storing a state of the device applicant based on the output” is not clearly understood since “the output” seems not refer to “an output” in line 2. According to the specification (p. 0128), “At step 815, the process may store the state of the building block component based on output. The state is accessible by the multitude of adapters. In various embodiments, the run engine may store the state and output the state responsive to a request from any of the multitude of adapters. For example, an adapter may request a login state of the device application. The run engine could respond with a "LOGGED_IN" or "NOT_LOGGED_IN" message to the adapter.”.
At best, the output here are state of "LOGGED_IN" or "NOT_LOGGED_IN" while “an output” in line 2 refers to a result/output of a message processed by a building block component. For examination purpose, examiner treats “the output” in lines 7 – 8 are different limitation with “an output” in line 2.
line 9 – 10, limitation “the multitude of building block components are capable” is indefinite. Claimed limitations must be precise.
As to claims 2 and 5, limitation “is configurable to execute” is indefinite. Claimed limitations must be precise. The limitation must be – executes --.
As to claim 3, line 1, limitation “ is selectable” is indefinite. Claimed limitations must be precise. The limitation must be – is selected --.
As to claim 7, limitation “responsive to receiving” is indefinite. Claimed limitations must be precise. The limitation must be – to receive --.
As to claims 8 – 20, they claim similar limitations. They are rejected with same rejection.
Claim Rejections - 35 USC § 103
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 (i.e., changing from AIA to pre-AIA ) 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.
This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention.
Claims 1 – 2, 5, 7 – 9, 12, 14 – 16, and 19 - 20 are rejected under 35 U.S.C. 103 as being unpatentable over Williams et al., (US PUB 2016/0034995 hereinafter Williams) in view of Aswani at el., (US PUB 2024/0250817 hereinafter).
As to claim 1, Williams teaches a method for operating a device application, the method comprising:
receiving an output from a building block component of a multitude of building block components (“...In step 962, the request-processing process begins processing the request. In the while-loop of steps 964-969, entered when request processing needs to make a call to one of the many service providers, as detected in step 965, the request-processing process requests a service from an internal service-providing server, in step 966, and waits to receive a response to the request in step 967. Once a response has been received, the request-processing process continues processing the received request in step 968. When request processing has finished, as determined in step 969, then the request-processing process prepares a response message and queues the response message to the output queue in step 970. Otherwise, when as additional service call is needed, the while-loop iterates again...” para. 0068. Note: internal service-providing server is one of servers that processed requests or one of building block component of multiple of building block components processing request/response transferred between servers. The transferred request/response is the output) and (“...Both the consumer-web-application servers and provider-web-application servers access a large number of additional, internal servers and other computer systems that provide a number of services to the consumer-web-application servers and provider-web-application servers through API endpoint servers 710 that run an API-endpoint application. The API-endpoint-application servers 710 interact with aggregation-service servers 712, order-service servers 714, provider-service servers 716, email-service servers 718, customer-service servers 720, search-service servers 722, catalog-service servers 724, workflow-service servers 726, and cart-service servers 728 to provide complex services to the consumer-web-application servers and provider-web-application servers...” para. 0056. Note: servers 712 – 728 are one of multiple building block components that process requests to produce output and transfer to another server via API-endpoint servers) and (“...in processing received SMS/MMS messages, may generate requests to job-manager applications or API entry points, which are queued to circular queue 2223. Job-manager application threads receive the requests from circular queue 2223, either directly dequeuing the requests from circular queue 2223 or receiving requests forwarded by a module that monitors the output queue 2223, dequeues requests, and forwards the requests to appropriate job-manager-application threads and API-entrypoint-application servers...” para. 0091. Note: receiving results/output from another server of multiple servers or building block components), each of the multitude of building block components are ignorant of processes of other building block components (“...Both the consumer-web-application servers and provider-web-application servers access a large number of additional, internal servers and other computer systems that provide a number of services to the consumer-web-application servers and provider-web-application servers through API endpoint servers 710 that run an API-endpoint application. The API-endpoint-application servers 710 interact with aggregation-service servers 712, order-service servers 714, provider-service servers 716, email-service servers 718, customer-service servers 720, search-service servers 722, catalog-service servers 724, workflow-service servers 726, and cart-service servers 728 to provide complex services to the consumer-web-application servers and provider-web-application servers...” para. 0056. Note: servers 712 – 728 are multiple building block components, wherein each server processes requests to produce output and transfer to another server via API-endpoint servers and each server provides different services and processes/functions run independently or ignorant as described in the specification, para. 0028 - 0029) and (“...It should be emphasized that, in the distributed automated system, data may be distributed across multiple types of servers running different applications...” para. 0059. Note: each server provides different services and processes/functions run independently or ignorant as described in the specification) and (“...The additional API-endpoint-application servers 2206 may access functionality provided by the previously discussed API-endpoint application servers 2208 and provide functionality to the various applications, including the job-manager applications 2205, the SMS/MMS consumer applications 2203, and the SMS/MMS provider applications 2204, as indicated by the dashed lines 2209 in FIG. 22A. As discussed above, multiple virtual servers are generally instantiated to logically represent each endpoint. Load-balancing functionality is employed for distributing workload among the multiple servers of each service and interface...” para. 0089. Note: applications are processes running in servers and each server or virtual server run independently from each other. Each server is a building block server).
translating the output, with a component adapter of a multitude of adaptors (“...or example, in certain implementations, the routine may be able to match the telephone number to a table of current conversations in order to obtain the conversation identifier corresponding to the message, in the case that the message is a second or subsequent message received from a service consumer or service provider during the course of a conversation or information transaction...” para. 0093), into a message that is receivable by at least one of the multitude of adaptors (“...In step 2278, the entrypoint-return routine receives the information returned from the call to the API entrypoint and, in step 2279, looks up the context for the conversation with respect to which the consumer-application thread initially called the API entrypoint...” para. 0098);
[storing a state of the device application based on the output, the state is accessible by the multitude of adapters]; and
the multitude of building block components are capable of receiving the message via the multitude of adaptors (“..determines projects for which service provision is desired by service consumers, matches service providers with projects to automatically create a set of candidate service providers, provides information about the candidate service providers to service consumers, and receives selections of service providers by service consumers for scheduling of service provision. ....” para. 0030) and (“...which the consumer-application thread initially called the API entrypoint...” para. 0098).
Williams does not but Aswani teaches storing a state of the device application based on the output, the state is accessible by the multitude of adapters (“...The IDM generates an access token that is provided to a client device and stores session state information of the access token at a distributed cache. When the client device logs out from the IDM, the IDM removes the session state information from the distributed storage device. The API Gateway is able to request the session state information from distributed storage device. Based on receiving the session state information, the API Gateway authenticates the access token and grants the client device access to an end service...” abstract and para. 0020. Note: as rejected in 112/2(b) above, the output is just a state of the application when user logged out, different output in line 2) and (“....In at least embodiment, an Application Programming Interface (API) Gateway includes a memory storing computer-readable instructions, and a processor connected to the memory, wherein the processor is configured to execute the computer-readable instructions to receive, from a client device, an access token and a first request for access to an end service, determine whether the access token meets a first condition, in response to the access token being determined to meet the first condition, send a second request for the session state associated with the access token to a distributed cache maintaining a session state of the access token, receive, from the distributed cache, a session state response indicating the status of the session state associated with the access token, perform authentication of the access token based on the session state response indicating the status of the session state associated with the access token, ....” para. 0005).
It 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 to modify Williams by applying the teachings of Aswani because Aswani would store state of the token for the application so API can access to the application when receiving a request in order to continue the service (abstract 0005 – 0006).
As to claim 2, Williams modified by Aswani teaches The method of claim 1, Williams teaches wherein the multitude of adaptors comprise a customer logic section that is configurable to execute one or more functions of the multitude of building block components (“...Both the consumer-web-application servers and provider-web-application servers access a large number of additional, internal servers and other computer systems that provide a number of services to the consumer-web-application servers and provider-web-application servers through API endpoint servers 710 that run an API-endpoint application. The API-endpoint-application servers 710 interact with aggregation-service servers 712, order-service servers 714, provider-service servers 716, email-service servers 718, customer-service servers 720, search-service servers 722, catalog-service servers 724, workflow-service servers 726, and cart-service servers 728 to provide complex services to the consumer-web-application servers and provider-web-application servers...” para. 0056).
As to claim 5, Williams modified by Aswani teaches The method of claim 2, Williams teaches wherein the custom logic section is configurable to execute a function of at least one of the multitude of building block components responsive to receiving the message (“...Both the consumer-web-application servers and provider-web-application servers access a large number of additional, internal servers and other computer systems that provide a number of services to the consumer-web-application servers and provider-web-application servers through API endpoint servers 710 that run an API-endpoint application. The API-endpoint-application servers 710 interact with aggregation-service servers 712, order-service servers 714, provider-service servers 716, email-service servers 718, customer-service servers 720, search-service servers 722, catalog-service servers 724, workflow-service servers 726, and cart-service servers 728 to provide complex services to the consumer-web-application servers and provider-web-application servers...” para. 0056).
As to claim 7, Williams modified by Aswani teaches The method of claim 1, Williams teaches The method of claim 1, further comprising executing, by one of the multitude of adaptors, a function of one of the multitude of building block components responsive to receiving the message (“...The API-endpoint-application servers 710 interact with aggregation-service servers 712, order-service servers 714, provider-service servers 716, email-service servers 718, customer-service servers 720, search-service servers 722, catalog-service servers 724, workflow-service servers 726, and cart-service servers 728 to provide complex services to the consumer-web-application servers and provider-web-application servers. The service-aggregation servers 712 run an aggregation service that aggregates data from other of the service servers to create complex data objects that are returned through the API-endpoint servers to requesting consumer-web-application servers and provider-web-application servers. The order service, implemented by the order-service servers 714, provides services related to recording and tracking orders made by service consumers as well as maintaining data regarding service providers' availability and schedules. The customer service provided by customer-service servers maintains service-consumer information, including name, contact information, address information, account information, credit information, and other service consumer information...” para. 0056).
As to claim 8, this is a computer system of claim 1. See rejection for claim 1 above. Further, Williams teaches a processor coupled to a memory (“...instructions are loaded into an electronic memory within a computer system and executed on a physical processor...” para. 0039).
As to claims 9, 12 and 14, these claims recite similar scope of claims 2, 5 and 7. See rejection for claims 2, 5 and 7 above respectively.
As to claim 15, this is a computer readable storage medium of claim 1. See rejection for claim 1 above. Further, Williams teaches computer readable storage medium having data stored therein representing software executable by a compute (“...instructions are loaded into an electronic memory within a computer system and executed on a physical processor...” para. 0039).
As to claims 16, 19 - 20, these claims recite similar scope of claims 2, 5 and 7. See rejection for claims 2, 5 and 7 above respectively.
Claims 3 – 4, 10 – 11 and 17 - 18 are rejected under 35 U.S.C. 103 as being unpatentable over Williams in view of Aswani, and further in view of Nill et al., (US PUB 2018/0259922 hereinafter Nill).
As to claim 3, Williams modified by Aswani teaches The method of claim 1, Williams and Aswani do not but Nill teaches wherein the message is transmitted on a channel that is selectable by the adaptor (“...The load control system may be configured to publish messages to a message broker using a first topic and may be configured to receive messages from the message broker by subscribing with the message broker to a second topic....” para. 0005).
It 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 to modify Williams and Aswani by applying the teachings of Nill because Nil would provide a channel/broker that devices can use APIs to communicate API messages through (para. 0039).
As to claim 4, Williams modified by Aswani teaches The method of claim 1, Williams and Aswani do not but Nil teaches further comprising subscribing, by at least one of the multitude of adaptors, to a topic on the channel; and wherein the message comprises the topic (“...The load control system may be configured to publish messages to a message broker using a first topic and may be configured to receive messages from the message broker by subscribing with the message broker to a second topic. The system may be configured to receive via the message broker a first message communicated by the load control system. The first message may have the first topic associated with it...” para. 0005).
See motivation for claim 3 above.
As to claims 10 – 11 and 17 - 18, these claims recite similar scope of claims 3 - 4. See rejection for claims 3 - 4 above respectively.
Claims 6 and 13 are rejected under 35 U.S.C. 103 as being unpatentable over Williams in view of Aswani, and further in view of Dolby et al., (US PUB 2018/0357154 hereinafter Dolby).
As to claim 6, Williams modified by Aswani teaches The method of claim 1, Williams and Aswani do not but Dolby teaches The method of claim 5, wherein the custom logic section is configurable by a machine readable specification (“...OpenAPI specification is a machine understandable format, which enables, among other things, automatic synthesis of API and client code in various languages...” para. 0016).
It 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 to modify Williams and Aswani by applying the teachings of Dolby because Dolby’s API specification in machine understandable format and would unify the description of URL templates, HTTP request types, headers, parameters, and data required to interact with Web APIs as interactive APIs (para. 0016).
As to claim 13, this claim recites similar scope of claim 6. See rejection for claim 6 above.
Conclusion
The prior art made of record but not relied upon request is considered to be pertinent to applicant’s disclosure.
McClory, (US PUB 2018/0321993), discloses an application program interface (API) generation component generates API specifications information and generate one or more APIs exposed by an API gateway providing services (title, abstract and figures 1 – 9).
Black et al., (US PUB 2020/0100106), discloses a routing system via encrypted an application program interface (API) (title, abstract and figures 1 – 25).
Wang, (US PUB 2021/0365332), discloses an application program interface (API) capabilities in native cloud environment in a Kubernetes distributed (title, abstract and figures 1 – 8).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to PHUONG N HOANG whose telephone number is (571)272-3763. The examiner can normally be reached 9:5-30.
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, KEVIN YOUNG can be reached at 571-270-3180. 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.
/PHUONG N HOANG/Examiner, Art Unit 2194 /KEVIN L YOUNG/Supervisory Patent Examiner, Art Unit 2194