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 .
Examiner Notes
Examiner cites particular columns and line numbers in the references as applied to the claims below for 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 cited 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 or disclosed by the examiner.
Specification
The disclosure is objected to because of the following informalities: paragraph [0096], where it states "affected".
Appropriate correction is required.
Claim Rejections
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-20 are rejected under 35 U.S.C. 103(a)(2) as being unpatentable by Yeager (U.S. Pub No. US 2004/0088347 A1) in view of Win (U.S. Pub No. US 2018/0247296 A1).
Regarding claim 1, Yeager teaches, the initiation at the apparatus, a service request via a peer-to-peer API call from the apparatus to a recipient device ([0010]- “An initiating peer may generate a mobile agent to perform one or more tasks on and/or to gather information from other peers in the peer-to-peer network.”),
For clarity of the record, the Examiner would like to point to Figure 1 of the application, which depicts the layout of the initiator device. Within it, is a “API server”, which according to paragraph [0003] of the Specification “can be called from a mobile app, in order to perform certain functionality” and a “Service Daemon”, which according to paragraph [0014] of the Specification where “A peer-to-peer API call between two mobile devices may be used to discover and invoke an API that is running on one of the mobile devices”, that it “may listen for API calls, intercept them, and provide a list of API implementation(s) and location(s) of API server.”. Paragraph [0010] of Yeager’s application establishes that mobile agents [can be used] “to perform one or more tasks on and/or to gather information from other peers in the peer-to-peer network“ [from within the peer], as figured in Figure 34 of the application. Thus, it is understood that the functionality of the mobile agent, is similar to the combined functionality of the API and service daemon when initiating a service request to the recipient device, while it is understood that this originates from a prior device, as the peer-to-peer call is between two devices.
transmit, from the apparatus, a query to the recipient device whether the recipient device is able to fulfill the service request via an API implementation on the recipient device corresponding with an API implementation on the apparatus; receive, at the apparatus, a confirmation from the recipient device that the recipient device is able to fulfill the service request (([0587]- “Another peer may discover advertisement 808 by sending a discovery query message that may include criteria that the resource corresponding to advertisement 808A may match to one or both of peer 200B and peer 200C, and one or both of peer 200B and peer 200C sending a response message that may contain advertisement 808 to the other peer.”), [0589]- “ FIG. 30 illustrates discovering advertisements according to one embodiment. Peer 200A may broadcast discovery query message 820. Discovery query message 820 may be formatted in accordance with a peer-to-peer platform discovery protocol.”
The examiner would like to point out that it is understood that the peer to peer discovery protocol is an API and formatting it to the discovery protocol us corresponding with an API implementation.
“Discovery query message 820 may include criteria specifying a particular type of resource in which the peer is interested. When the discovery query message 820 reaches a peer 200B that has advertisements 808A and 808 B for resources matching the criteria in the discovery query message, peer 200B may respond by sending peer 200A a response message 822 that may include the advertisements 808A and 808 B. Peer 200A may also receive one or more response messages from one or more other peers. [...]”
For clarity of the record, the Examiner would like to point to Figure 1 of the application, which depicts the process of communication between two devices. In this figure, the initiator device sends a query to the recipient asking about the capacity to do a function and the recipient sends a “confirmation”, related to the query back, as explained in paragraph [0030]- “a query to the recipient device 120 whether the recipient device 120 is able to fulfill the service request via an API implementation on the recipient device” and “a confirmation from the recipient device 120 that the recipient device 120 is able to fulfill the service request”. The same process is depicted in Figure 30 of Yeager’s application, which depicts a peer sending a query message, which contains criteria regarding what is being sought from the initial peer to the second peer, and a response from the second peer which the initial peer’s will use to guide its next actions accordingly.
Yeager does not but, Win teaches, An apparatus for application programming interface (API) communication, the apparatus comprising: a non-transient computer-readable storage medium having executable instructions embodied thereon; and one or more hardware processors configured to execute the instructions to: ([0048]- “In some implementations, executable instructions associated with a client application are stored on computer readable media in an encrypted form. During operation of the client application, the executable instructions are retrieved from the computer readable media, decrypted, and executed by a processor on the client device.”, [0187] – “These peripheral subsystems may include a storage subsystem 2606, comprising a memory subsystem 2608 and a file storage subsystem 2610, one or more user interface input devices 2612, one or more user interface output devices 2614, and a network interface subsystem 2616.”, [0190]- “The applications (programs, code modules, instructions) that, as a result of being executed by one or more processors, may provide the functionality of one or more embodiments of the present disclosure, and may be stored in the storage subsystem 2606. These application modules or instructions may be executed by the one or more processors 2602” )
Win also teaches that the claimed medium and processors include both transitory and non-transitory media, as seen in paragraph [214], “Operations of processes described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. Processes described herein (or variations and/or combinations thereof) may be performed under the control of one or more computer systems configured with executable instructions and may be implemented as code (e.g., executable instructions, one or more computer programs or one or more applications) executing collectively on one or more processors, by hardware or combinations thereof. The code may be stored on a computer-readable storage medium, for example, in the form of a computer program comprising a plurality of instructions executable by one or more processors. The computer-readable storage medium may be non-transitory. Additionally, paragraph [242] of Yeager teaches examples of non-transitory media that could be applicable in this case; “Computer system 180 typically includes a computer-accessible memory medium 184 on which computer programs according to various embodiments may be stored. The term “computer-accessible memory medium,” which may be referred to herein as “memory,” may include an installation medium, e.g., a CD-ROM, DVD or floppy disks, a computer system memory such as DRAM, SRAM, EDO DRAM, SDRAM, DDR SDRAM, Rambus RAM, etc., or a non-volatile memory such as a magnetic media, e.g., a hard drive, or optical storage, or a combination thereof. The memory 184 may include other types of memory as well, or combinations thereof. In addition, the memory 184 may be located in a first computer in which the programs are executed, or may be located in a second different computer that connects to the first computer over a network. In the latter instance, the second computer provides the program instructions to the first computer for execution. The instructions and/or data according to various embodiments may also be transferred upon a carrier medium. In some embodiments, a computer readable medium may be a carrier medium such as network 106 and/or a wireless link upon which signals such as electrical, electromagnetic, or digital signals may be conveyed.”
Therefore, it would be obvious to a person with ordinary skill in the art at the time of the invention to modify Yeager to include the features taught by Win because doing so would have predictably improved the overall efficiency of the system.
Regarding Claim 2, Yeager in view of Win teaches initiate completion of the service via an API server on the recipient device and independent of a central server. ([0009]- “FIGS. 1A and 1B are examples illustrating the peer-to-peer model. FIG. 1A shows two peer devices 104A and 104B that are currently connected. Either of the two peer devices 104 may serve as a client of or a server to the other device”)
For clarity of the record, the Examiner would like to point to paragraph [0024] of the Specification, which states, “Embodiments of the present disclosure provide an advantage in that API communication can be completed directly between two devices, for example between API servers on each of the devices, and independent of a central server, or any server external to the devices. This enables the devices to communicate with each other in additional ways that are not limited to capabilities of a central server associated with a particular platform or communications network”. Thus, it is understood that communication between two devices done where information is being sent from one device to another device and vice versa, without the inclusion of another device.
Regarding claim 3, Yeager in view of Win teaches transmit, from the apparatus, a service daemon query to check with a service daemon of the recipient device whether the recipient device is able to fulfill the service request ([0010]- “An initiating peer may generate a mobile agent to perform one or more tasks on and/or to gather information from other peers in the peer-to-peer network.”, [0083]- “The mobile agent handler 1402 may enable peer 200 to use mobile agents among the services, programs, or tools available to function within or interact with the peer-to-peer network. Mobile agent handler 1402 may be implemented in any of a variety of ways including, but not limited to, as a software module (e.g. a service or application), a demon, and a daemon.”).
For clarity of the record, the Examiner would like to point to Figure 1 of the application, which depicts the layout of the initiator device. Within it, is a “API server”, which according to paragraph [0003] of the Specification “can be called from a mobile app, in order to perform certain functionality” and a “Service Daemon”, which according to paragraph [0014] of the Specification “may listen for API calls, intercept them, and provide a list of API implementation(s) and location(s) of API server.”. Paragraph [0010] of Yeager’s application establishes that mobile agents [can be used] “to perform one or more tasks on and/or to gather information from other peers in the peer-to-peer network“ [from within the peer], as figured in Figure 34 of the application, and paragraph [0083] further explains that the usage of these mobile agents can be extended to the usage of a [server] daemon to accomplish this. Thus, it is understood that the functionality of the mobile agent can be extended to act as a server daemon to send queries from the initial device to the receiving device.
Regarding claim 4, Yeager in view of Win teaches discover, by the apparatus, an application on the recipient device associated with the API implementation that is configured to fulfill the service request ([0126]- “the mobile agent may have been created to discover certain types of peers for the initiating peer, such as peers that have certain data, provide certain services, have certain connections, or have some other property or combination of properties in the peer-to-peer network.”)
For clarity of the record, the Examiner would like to point to paragraph [0025] of the Specification, which states “The initiator device 110 may be configured to discover, by the initiator device 110, an application on the recipient device 120 associated with the API implementation 122 that is configured to fulfill the service request, and which may correspond with an API implementation 112 on the initiator device. This discovery aspect enables devices to not only communicate directly with each other, but also to discover additional capabilities”. Thus, it is understood that both the process explain in Yeager’s application and the one explained in this application have similar if not the same functionality; to discover a peer or application based on criteria established to fulfill a request established by the initiator.
Regarding claim 5, Yeager in view of Win teaches transmit by the apparatus, a service advertisement advertising services offered by the apparatus that are available to another device via a peer-to-peer API call ([0589]- “Discovery query message 820 may include criteria specifying a particular type of resource in which the peer is interested. When the discovery query message 820 reaches a peer 200B that has advertisements 808A and 808 B for resources matching the criteria in the discovery query message, peer 200B may respond by sending peer 200A a response message 822 that may include the advertisements 808A and 808 B. Peer 200A may also receive one or more response messages from one or more other peers. Each of these response messages may include advertisements for resources for resources also matching the criteria in the discovery query message. After receiving the resource advertisements, peer 200A may access the corresponding resource.”).
For clarity of the record, the Examiner would like to point to paragraph [0026], which states “The initiator device 110 may be configured to transmit a service advertisement advertising services offered by the initiator device 110 that are available to another device via a peer-to-peer API call. Such a service advertisement may, for example, be detected by or used by the recipient device 120 to discover services available at the initiator device”. Thus, it can be understood that the initial apparatus has a means to advertise services to the receiving device.
Regarding claim 6, Yeager in view of Win teaches, initiate completion of the service via an application on the recipient device associated with the API implementation that is configured to fulfill the service request ([0168]- “At each successfully visited peer node, an indication that the mobile agent has visited the peer node may be stored in the mobile agent to indicate the visited peer node is present in the peer group.”, [0203]- “In one embodiment, to send the mobile agent to a next peer node, the peer node may determine if the mobile agent has completed the itinerary. If the mobile agent has not completed the itinerary, the peer node may send the mobile agent to a next peer node indicated by the itinerary. If the mobile agent has completed the itinerary, the peer node may return the mobile agent to the initiating peer node”)
For clarity of the record, the Examiner would like to point to paragraph [0140] of the Specification, which states, “means for initiating completion of a service associated with the service request based on receipt of the confirmation of ability to fulfill the service request.” and [0028] of the specification, which states, “and initiate completion of the service associated with the service request based on receipt of the confirmation of ability to fulfill the service request”. Thus, it is understood that the indication made by the mobile agent on the visited peer acts as a means of receipt dictated in the claim, which is used as verification of a completed action or service. It is only after the indication is made and the service completed in compliance to what as detailed in the service request.
Regarding claim 7, Yeager in view of Win teaches, initiate completion of the service such that the service is initiated at the recipient device and completed at another device [0589]- “Peer 200A may broadcast discovery query message 820. Discovery query message 820 may be formatted in accordance with a peer-to-peer platform discovery protocol. Discovery query message 820 may include criteria specifying a particular type of resource in which the peer is interested. When the discovery query message 820 reaches a peer 200B that has advertisements 808A and 808 B for resources matching the criteria in the discovery query message, peer 200B may respond by sending peer 200A a response message 822 that may include the advertisements 808A and 808 B.[…] After receiving the resource advertisements, peer 200A may access the corresponding resource.”)
For clarity of the record, the Examiner would like to point to paragraph [0028] of the specification, which states, “and initiate completion of the service associated with the service request based on receipt of the confirmation of ability to fulfill the service request”. Here, it is understood that Yeager’s fig. 30 depicts a process of discovery that is sent to a recipient peer (peer 200B) from the initial peer, peer A). This peer sends a response to the query, which is then used by Peer A to determine what next course of action to take; here in this case, it is to receive resource advertisements and possibly access the corresponding resource. Thus, it is understood, that the completion of what was request was not done by the recipient device (peer), but by another (the initial) device (peer).
Regarding claim 8, Yeager in view of Win teaches, wherein the apparatus is associated with a first user and is distinct from the recipient device, and the recipient device is associated with a second user ([0009]- “FIGS. 1A and 1B are examples illustrating the peer-to-peer model. FIG. 1A shows two peer devices 104A and 104B that are currently connected. Either of the two peer devices 104 may serve as a client of or a server to the other device. FIG. 1B shows several peer devices 104 connected over the network 106 in a peer group. In the peer group, any of the peer devices 104 may serve as a client of or a server to any of the other devices.”
For clarity of the record, the Examiner would like to point to paragraph [0028] of the Specification, which states, “As mentioned above, the initiator device 110 may be associated with a first user and may be distinct from the recipient device 120, where the recipient device 120 is associated with a second user.”. The devices depicted in Fig 1A, 104A and 104B and Fig 1B, 104A-104F of Yeager’s application show separate different devices, like a computer, a laptop, a phone, that can be manned by different users and could be viewed as different users on the network used to connect them. Thus, it is understood that such provisions can be understood as “different users”, where the first user, i.e., the computer, is distinct from the second user, the phone.
Claim 9 recites substantially the same limitations as recited in claim 1. Thus, for the same reasons presented in claim 1, Win and Yeager teach claim 9.
Regarding Claim 10, which recites, A method of application programming interface (API) communication, the method comprising: initiating, at an apparatus, a service request via a peer-to-peer API call from the apparatus to a recipient device; transmitting, from the apparatus, a query to the recipient device whether the recipient device is able to fulfill the service request via an API implementation on the recipient device corresponding with an API implementation on the apparatus; receiving, at the apparatus, a confirmation from the recipient device that the recipient device is able to fulfill the service request; and initiating completion of a service associated with the service request based on receipt of the confirmation of ability to fulfill the service request. To perform the steps of the apparatus of claim 1. Thus, for the same reasons presented with respect to claim 1, claim 10 is taught by Yeager
Claims 11-17 recites substantially the same limitations as recited in claim 2-8, respectively applied to the method of claim 10. Thus, for the same reasons presented with respect to claims 2-8, Yeager teaches claims 11-17.
Regarding claim 18, which recites, The method of claim 10 wherein the apparatus comprises the recipient device and the method further comprises: initiating, at a first application at the apparatus, the service request via a peer-to-peer API call from the first application at the apparatus to a second application at the apparatus; transmitting, from the first application, the query to the second application whether the second application is able to fulfill the service request via an API implementation at the second application corresponding with an API implementation at the first application; receiving, at the first application, a confirmation from the second application that the second application is able to fulfill the service request; and initiating completion of the service associated with the service request based on receipt of the confirmation of ability to fulfill the service request. To perform the steps of the apparatus of claim 10. Thus, for the same reasons presented with respect to claim 10, claim 18 is taught by Yeager
Regarding Claim 19, which recites, A non-transient computer-readable storage medium having instructions embodied thereon, the instructions being executable by one or more processors to perform a method of application programming interface (API) communication, the method comprising: initiating, at an apparatus, a service request via a peer-to-peer API call from the apparatus to a recipient device; transmitting, from the apparatus, a query to the recipient device whether the recipient device is able to fulfill the service request via an API implementation on the recipient device corresponding with an API implementation on the apparatus; receiving, at the apparatus, a confirmation from the recipient device that the recipient device is able to fulfill the service request; and initiating completion of a service associated with the service request based on receipt of the confirmation of ability to fulfill the service request. To perform the steps of the apparatus of claim 1. Thus, for the same reasons presented with respect to claim 1, claim 19 is taught by Yeager
Claim 20 recites substantially the same limitations as recited in claim 2, respectively applied to the method of claim 1. Thus, for the same reasons presented with respect to claims 2, Yeager teaches claim 20.
Win and Yeager are considered to be analogous art to the claimed invention as they are reasonably penitent to the problem faced by the inventor of application programming interface communication. Therefore, it would have been obvious to one of ordinary skill in the art that usage of computer readable media (used as storage), and processors, both having executable instructions taught by Win could include the methods of initiating, transmitting, and receiving information between two entities, as taught by Yeager.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SAMUEL NWUHA whose telephone number is (571)272-9367. The examiner can normally be reached Monday-Friday; 7:30 am - 5:00pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, 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.
/SAMUEL OBINNA NNAJI NWUHA/Examiner, Art Unit 2194
/KEVIN L YOUNG/Supervisory Patent Examiner, Art Unit 2194