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.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-4, 10, 11-14, 20 are rejected under 35 U.S.C. 103 as being unpatentable over Alamouti et al. US 20210042160 A1 in view of Mehta et al. US 20200195719 A1.
Regarding claim 1, Alamouti teaches the invention substantially as claimed including:
An apparatus, comprising:
one or more processors ([0089] at least a processor (e.g. 502), a memory (e.g. 504), and/or various other applications or modules stored in the memory which when executed by the processor(s) carry out the methods and approaches described herein); one or more computer-readable non-transitory storage media comprising instructions that, when executed by the one or more processors, cause one or more components of the apparatus to perform operations ([0012] computer readable media may comprise tangible, non-transitory computer readable storage media having computer executable instructions executable by a processor, the instructions that, when executed by the processor, cause the processor to carry out any combination of the various methods and approaches provided herein) comprising:
receiving a first notification message associated with an instance of an edge application at an edge site of an edge network (Fig 9 Client application sends API request to Edge node activation module with API Gateway);
receiving a subset of a unique identifier associated with the instance of the edge application from an application processing interface (API) router agent associated with the edge application ([0099] The API gateway makes the API end-points for each service accessible from all other nodes in a cluster. By providing this API gateway, the edge node activation module 508 provides functionalities that abstract the complexity of dealing with other microservices in different clusters; Examiner notes: API Gateways share API information with other edge networks so that microservice functionalities are exposed to other edge devices to use);
determining, using the subset of the unique identifier, a complete unique identifier associated with the instance of the edge application ([0118] the edge node activation module 922 … determines a type of one or more microservices required to service the request; Examiner notes: HTTP requests in Alamouti, the edge node activation module determines the destination URL of the API request including the exposed end points);
generating a second notification message corresponding to an API call using the complete unique identifier associated with the instance of the edge application; exposing the second notification message to the API router agent associated with the edge application ([0119] if the determined type of microservice required to service the request is of a global nature or corresponds to a globally hosted microservice, then the API gateway 924 sends an http/https request 906 to the API gateway 908);
Alamouti does not explicitly teach determining a network connection with the API router agent associated with the edge application; and in response to determining the network connection is stable, exposing the second notification message to the API router agent associated with the edge application.
However, Mehta teaches determining a network connection with the API router agent associated with the edge application; and in response to determining the network connection is stable, exposing the second notification message to the API router agent associated with the edge application ([0339] the region notification service 1542A can wait for the network connection to become stronger (e.g., above a threshold link strength level) before delivering messages from the work queue to the master storage manager 140 (e.g., the synchronization service 456); [0340] The region notification service 1542A can ensure delivery of messages to these components by waiting to deliver messages when a network connection is strong).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Mehta’s network-based message delivery with the existing system. A person of ordinary skill in the art would have been motivated to make this combination to provide the resulting system with the advantage of continued operation during network issues (see Mehta [0339] The region notification service 1542A may be configured to operate even if network issues are present).
Regarding claim 2, Alamouti and Mehta teach the apparatus of claim 1.
Mehta further teaches in response to determining the network connection is stable, sending the second notification message to the API router agent associated with the edge application to interpret the second notification message as a direct API call for the edge application to respond ([0086] Communication pathways 114 in some cases may also include application programming interfaces (APIs) including, e.g., cloud service provider APIs, virtual machine management APIs, and hosted service provider APIs; [0339] the region notification service 1542A can wait for the network connection to become stronger (e.g., above a threshold link strength level) before delivering messages from the work queue to the master storage manager 140 (e.g., the synchronization service 456)).
Regarding claim 3, Alamouti and Mehta teach the apparatus of claim 2.
Alamouti further teaches in response to determining the network connection is stable, performing, using the API router agent associated with the edge application, a direct API call of a local API exposed by the edge application ([0090] expose the services using the API gateway. To this end, the edge node activation module 508 is configured to discover, connect, and communicate with other edge nodes in one or more clusters (within or across). The memory 504 also includes one or more microservices (μS) depicted as 518, 520 and 522 in FIG. 5. The microservice 522 is shown to be a part of user interface (UI) apps 524. The memory 504 also includes other UI apps 526 without a microservice therein. All the microservices (518, 520 & 522) and the UI apps (524 & 526) are accessible through a 3rd party exposed API depicted as 528 in FIG. 5).
Regarding claim 4, Alamouti and Mehta the apparatus of claim 1.
Mehta further teaches in response to determining the network connection is not stable, deferring, using the API router agent associated with the edge application, the second notification message to the edge application until the network connection with the edge application is re-established (([0339] the region notification service 1542A can wait for the network connection to become stronger (e.g., above a threshold link strength level) before delivering messages from the work queue to the master storage manager 140 (e.g., the synchronization service 456)).
Regarding claim 10, Alamouti and Mehta teach the apparatus of claim 1.
Alamouti further teaches wherein the API call is secure to be accessed by a tenant owning the edge site ([0100] At the edge node, security becomes a crucial aspect of how microservices communicate. Certain elements like firewalls and network partitioning are very common in central cloud but may not generally exist on the edge. Therefore, it may be necessary to handle multiple levels of security. For instance, on the link-local cluster, it is not possible to use https because nodes in the cluster do not have domain names. The communication between nodes within the same link-local network are therefore encrypted. In addition, the API of each microservice is protected via tokens. Generally, the edge node activation module 508 runs in a trustless network environment. Therefore, it cannot be assumed that the firewalls protect the microservices running on edge nodes. In an embodiment, dealing with having a valid and non-expired token is abstracted by the sidecar pattern. Since that there are some special nodes that may manage data from other nodes (e.g. cache node, or link-local proxy node), user payload may need to be encrypted so that it is only visible to authorized parties. In an embodiment, acquiring the key, encrypting, and decrypting of user payload are also abstracted by the sidecar).
Regarding claims 11-14, they are the computer-implemented methods of claims 1-4 respectfully. Therefore, they are rejected for the same reasons as claims 1-4 respectfully.
Regarding claim 20, it is the non-transitory computer-readable medium of claim 1 respectfully. Therefore, it is rejected for the same reasons as claim 1 respectfully.
Alamouti teaches non-transitory computer-readable medium comprising instructions that are configured, when executed by a processor, to ([0089] The memory corresponds to non-transitory computer readable medium having instructions implementing the various technologies described herein).
Claims 5-8 and 15-18 are rejected under 35 U.S.C. 103 as being unpatentable over Alamouti et al. US 20210042160 A1 in view of Mehta et al. US 20200195719 A1 in view of Sun et al. US 20240143323 A1.
Regarding claim 5, Alamouti and Mehta teach the apparatus of claim 1.
Alamouti and Mehta do not explicitly teach determining the complete unique identifier associated with the instance of the edge application using a tenant identifier, a site identifier, a unique application identifier, a unique deployment identifier, an instance number, and an end-point.
However, Sun teaches determining the complete unique identifier associated with the instance of the edge application using a tenant identifier, a site identifier, a unique application identifier, a unique deployment identifier, an instance number, and an end-point ([0031] the Internet can provide file transfer, remote login, email, news, RSS, and other services through any known or convenient protocol, such as, but not limited to the TCP/IP protocol, Open System Interconnections (OSI), FTP, UPnP, iSCSI, NSF, ISDN, PDH, RS-232, SDH, SONET, etc; [0061] API messages address to or received from a first group of clients (identified by IP addresses) are routed differently than API messages addressed to or received from a second group of clients. In some embodiments, a given policy maps different policy actions to different routes, with the different routes being identified by unique identifiers; [0062] routes 408 and services 406 are defined by data objects managed and stored by the API gateway 400. For example, a service data object that defines a service 406 includes a name (e.g., example_service) and upstream API connection information. In some examples, the connection information is provided as a single string representing a URL or as multiple individual values for protocol, host, port, and path. In some embodiments, services 406 have a one-to-many relationship with upstream APIs 404, which enables creation and application of sophisticated traffic management behaviors; Examiner notes: the API service requested must be identified in the client’s request according to the protocol used for instance in an URL link. In TCP/IP, destination IP addresses + ports must be specified as well as API endpoints in HTTP requests see https://www.geeksforgeeks.org/computer-networks/tcp-ip-model/).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Sun’s unique service identifiers with the existing system. A person of ordinary skill in the art would have been motivated to make this combination to provide the resulting system with the advantage of selective routing for service requests by clients (see Sun [0060] routes 408 represent different interactions with a service 406 by multiple clients, in some examples, and enables different controls to be discriminatively or selectively realized for the same service).
Regarding claim 6, Alamouti, Mehta, and Sun teach the apparatus of claim 5.
Sun further teaches wherein the instance number is optionally created as an edge application decision depending on an API description in the first notification message ([0057] The API gateway 400 takes requests from API clients 402 and passes the requests to the appropriate upstream API based on the configuration of routes 408. In some examples, the requests are received on a data plane or an API message layer (e.g., an application layer, Layer 7). For example, the API gateway 400 decrypts, combines, filters, processes, parses, and/or the like data packets in order to form API messages and message data for routing; [0061] with geolocation policies across different routes, API messages addressed to or received from clients located in a first location are routed differently than API messages addressed to or received from clients located in a second location).
Regarding claim 7, Alamouti, Mehta, and Sun teach the apparatus of claim 5.
Alamouti further teaches determining an end-point corresponding to the instance of the edge application ([0067] the microservices enabled on the edge nodes expose their services through a common embedded webserver. API endpoints for each service are accessible from all other edge nodes in an edge cluster).
Sun further teaches accessing router data associated with the instance of the edge application, wherein the router data includes the tenant identifier and the site identifier (Fig 5 URL examples; [0062] upstream API connection information. In some examples, the connection information is provided as a single string representing a URL or as multiple individual values for protocol, host, port, and path; Examiner notes: the URL format includes domain host and different site identifiers in the path);
Regarding claim 8, Alamouti, Mehta, and Sun teach the apparatus of claim 7.
Sun further teaches determining, using the router data, the end-point, and the subset of the unique identifier, the complete unique identifier associated with the instance of the edge application ([0070] FIG. 5A illustrates an example of a request for causing creation of a routing data object (e.g., a HTTP POST request). In the illustrated example, the request is addressed to a URL of a specific service to which the created routing data object will point. In the illustrated example, the request includes the match expression to be used by the created routing data object. In particular, the match expression includes a matching rule http.path==“/mock”, generally indicating that API requests having a request path of /mock will be matched with the created routing data object. This match expression results in said API requests being routed to the service example_service under which the routing data object is created).
Regarding claims 15-18, they are the computer-implemented methods of claims 5-8 respectfully. Therefore, they are rejected for the same reasons as claims 5-8 respectfully.
Claims 9 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Alamouti et al. US 20210042160 A1 in view of Mehta et al. US 20200195719 A1 in view of Sun et al. US 20240143323 A1 in view of Jin et al. US 20140075460 A1.
Regarding claim 9, Alamouti and Mehta teach the apparatus of claim 1.
Alamouti and Mehta do not explicitly teach the first notification message includes a description of the API to expose and the first notification message includes a protocol and one or more end-points.
However, Sun teaches the first notification message includes a description of the API to expose and the first notification message includes a protocol and one or more end-points ([0055] the main attribute of a service is a uniform resource locator (URL) that is specified by a single string (e.g., example_service in the illustrated example), or by a protocol, host, port, and path individually).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Sun’s API request contents with the existing system. A person of ordinary skill in the art would have been motivated to make this combination to provide the resulting system with the advantage of URL formatted API requests (see Sun [0030] gateway node 206 positioned between a client 202 and one or more HTTP APIs.).
Alamouti, Mehta, and Sun do not explicitly teach the description of the first notification message is received in Open-API format.
However, Jin teaches the description of the first notification message is received in Open-API format ([0026] The invocation request includes an OpenAPI function parameter, and the OpenAPI function parameter is not only used to indicate which function the user needs to complete, but also used to indicate an OpenAPI type the selection device needs to select).
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to have combined Jin’s usage of OpenAPI with the existing system. A person of ordinary skill in the art would have been motivated to make this combination to provide the resulting system with the advantage of API standardization (see Jin [0003] With the development of an OpenAPI technology, OpenAPI providers become more and more, the number of OpenAPIs available on the Internet (Internet) also increases continuously, and the number of OpenAPIs with the same function also increases continuously, which provides more selections for a user).
Regarding claim 19, it is the computer-implemented method of claim 9 respectfully. Therefore, it is rejected for the same reasons as claim 9 respectfully.
Conclusion
Any inquiry concerning this communication or earlier communications from the
examiner should be directed to HARRISON LI whose telephone number is (703) 756-1469. The
examiner can normally be reached Monday-Friday 9:00am-5:30pm ET.
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, Aimee Li can be reached on (571) 272-4169. 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.
/H.L./
Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195