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 .
Status of Claims:
Claims 1-20 are pending in Instant Application.
Priority
Priority is not claimed.
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-4, 6-18, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Benkreira et al. (U.S. Patent No. 11,272,330) in view of Jha (U.S. Patent No. 10,789,195).
As per claim 1, Benkreira discloses a system for queuing external communications using internal lambda functions (Lambda functions will be taught later. Benkreira: col. 6, lines 41-46; The system may then queue the message in a message queue based on the delivery time offset), the system comprising:
one or more processors (Benkreira: col. 7, lines 21-23; Each of these devices may also include processors and/or control circuitry to send and receive commands…claim 15; A system comprising: one or more processors); and
one or more non-transitory, computer-readable mediums comprising instructions that when executed by the one or more processors causes operations (Benkreira: claim 15; memory storing instructions that, when executed by the processors, cause the processors to effectuate operations) comprising:
receiving, at a serverless computing service, an internal communication corresponding to an external communication (A serverless computing will be taught later. Benkreira: claim 1; receive a text message for delivery to the first user account…claim 2; receiving, using control circuitry, a message for delivery to a first user account…col. 11, lines 15-18; the system may detect a communication between the first user account and a second user account), wherein the external communication is for delivery to a first user account at a first user device (Benkreira: col. 6, lines 5-8; receive a text message for delivery to the first user account), wherein a time of delivery for the external communication is based on an external communication location (Benkreira: col. 6, lines 5-8; wherein a time of delivery for the message is based on a home location of the first user account. For example, the system may retrieve the home location based on account data for the first user account), and wherein the external communication location is based on a current geographic location of the first user device (Benkreira: col. 3, lines 34-55; a location may be defined by global-positioning coordinates (“GPS”), governmentally assigned addresses (e.g., area codes, zip codes, etc.)…A location may also correspond to a “communication” location, which indicates that a user is outside of the home location…col. 9, lines 62-67; The system may retrieve, at the first mobile device (or server), a first time zone identifier corresponding to a current GPS location of the first mobile device);
receiving a first rule for delivery of the external communication (Benkreira: col. 4, lines 8-18; some notifications may be required to be sent at specific times and/or prevent from being sent at specific times. The system may therefore ensure that these specific times are met (relative to the local time of the user). For example, the system may apply a positive delivery time offset or a negative delivery time offset based on a temporary location of the user (and/or the local time zone of the temporary location). The system may then maintain the temporary location of the user for a certain time period and/or until certain criteria are met);
in response to receiving the internal communication, executing a first lambda function using a first stateless container at the serverless computing service to enforce the first rule (Benkreira teaches receiving communication to enforce the rules. See at least col. 4, lines 8-18. First lambda function using a first stateless container at the serverless computing service will be taught later), wherein the first lambda function performs operations comprising:
determining, while the internal communication is pending at the first stateless container, an external communication location based on metadata for the external communication (Benkreira: col. 6, lines 20-22; The system may then determine a communication location based on metadata for the communication. For example, the metadata for the communication (e.g., credit card transaction) may indicate a physical address of the merchant…col. 11, lines 31-33; the system may determine a communication location based on metadata for the communication);
retrieving, while the internal communication is pending at the first stateless container, a first time zone identifier corresponding to the external communication location (Benkreira: col. 6, lines 30-38; The system may then reference a time zone database. For example, the time zone database may contain code and data that represent the history of local time for many representative locations around the globe. It may be updated periodically to reflect changes made by political bodies to time zone boundaries, UTC offsets, and daylight-saving rules. The system may retrieve a first time zone identifier corresponding to the home location and retrieve a second time zone identifier corresponding to the temporary location);
determining a processing time offset for the external communication based on the first time zone identifier (Benkreira: col. 6, lines 39-41; The system may then compare the first time zone identifier to the second time zone identifier to determine a delivery time offset for the text message);
queuing the external communication in an internal communication queue based on the processing time offset (Benkreira: col. 6, lines 41-43; The system may then queue the message in a message queue based on the delivery time offset); and
transmitting the external communication to the first user device (Benkreira: col. 6, lines 43-46; the system may then determine a first mobile device (e.g., mobile device 206) corresponding to the first user account based on the account data and use input/output circuitry to transmit the message to a first mobile device);
However Benkreira does not explicitly mention serverless computing; and executing a first lambda function using a first stateless container at the serverless computing service.
However Jha teaches:
serverless computing (Jha: fig. 5 and col. 8, line 14; Serverless Lambda monitoring Selection 260); and
executing a first lambda function using a first stateless container at the serverless computing service (Jha: col 7, lines 20-28; The serverless application stack 150 may also include one or more user functions, such as an Amazon Lambda® function. As such, in the implementation of serverless application stack 150, the user functions may be created by a user, selected using SDK 100, and stored in a serverless provider container…col. 1, lines 33-39; to perform data processing using serverless computing the user is charged for the amount of resources used to run the code, where the code may be run inside stateless containers that can be triggered by a variety of events including hap requests, database events, queuing services, monitoring alerts, file uploads, scheduled events 5), etc).
Therefore it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings as in Benkreira with the teachings as in Jha. The motivation for doing so would have been to perform data processing using serverless computing, wherein the user is charged for the amount of resources used to run the code and the code may be run inside stateless containers triggered by a variety of events, including queuing services (Jha: col. 1, lines 25-39).
With respect to claim 2, it is substantially similar to claim 1 and is rejected in the same manner, the same art and reasoning applying. Further, Benkreira also teaches a method for queuing external communications using internal lambda functions (Benkreira: col. 13, lines 44-46; method of facilitating improved communications between users using text messages in mobile devices).
As per claim 3, the modified Benkreira discloses the method of claim 2, wherein receiving, at the first lambda function, the internal communication corresponding to the external communication further comprises: receiving a first rule for delivery of the external communication (Benkreira: col. 4, lines 8-18; some notifications may be required to be sent at specific times and/or prevent from being sent at specific times. The system may therefore ensure that these specific times are met (relative to the local time of the user). For example, the system may apply a positive delivery time offset or a negative delivery time offset based on a temporary location of the user (and/or the local time zone of the temporary location). The system may then maintain the temporary location of the user for a certain time period and/or until certain criteria are met); and determining to use the first lambda function to enforce the first rule (Benkreira: col. 4, lines 8-18; The system may therefore ensure that these specific times are met (relative to the local time of the user). For example, the system may apply a positive delivery time offset or a negative delivery time offset based on a temporary location of the user (and/or the local time zone of the temporary location). The system may then maintain the temporary location of the user for a certain time period and/or until certain criteria are met. See also Jha: col. 7, lines 20-28; The serverless application stack 150 may also include one or more user functions, such as an Amazon Lambda® function. As such, in the implementation of serverless application stack 150, the user functions may be created by a user, selected using SDK 100, and stored in a serverless provider container).
The same motivation to combine as the independent claim applies here.
As per claim 4, the modified Benkreira teaches the method of claim 2, wherein receiving, at the first lambda function, the internal communication corresponding to the external communication further comprises: receiving a first event data corresponding to the internal communication (Benkreira: col. 11, lines 21-23; the system may detect trigger events that cause the system to begin monitoring communications. See also Jha: col. 1, lines 33-39; code may be run inside stateless containers that can be triggered by a variety of events including hap requests, database events, queuing services, monitoring alerts, file uploads, scheduled events); receiving the first event data at a stateless container corresponding to the first lambda function (Jha: col. 1, lines 33-39; the code may be run inside stateless containers that can be triggered by a variety of events including queuing services…col. 7, lines 20-28; The serverless application stack 150 may also include one or more user functions, such as an Amazon Lambda® function. As such, in the implementation of serverless application stack 150, the user functions may be created by a user, selected using SDK 100, and stored in a serverless provider container); and processing the first event data using logic of the stateless container (Jha: col. 1, lines 33-39; serverless computing is used to perform data processing and the code may be run inside stateless containers triggered by events including queuing services).
The same motivation to combine as the independent claim applies here.
As per claim 6, the modified Benkreira discloses the method of claim 2, further comprising: determining, while the internal communication is pending at the first lambda function, a temporary location for the first user account based on the external communication location (Benkreira: col. 11, lines 64-67 and col. 12, line 1; the system may determine a temporary location for the first user account based on the communication location in response to determining that the home location does not correspond to the communication location); and retrieving, while the internal communication is pending at the first lambda function, a second time zone identifier corresponding to the temporary location (Benkreira: col. 6, lines 36-38; The system may retrieve a first time zone identifier corresponding to the home location and retrieve a second time zone identifier corresponding to the temporary location).
As per claim 7, the modified Benkreira discloses the method of claim 2, further comprising: retrieving the external communication location based on account data for the first user account (Benkreira: col. 6, lines 36-38; the system may retrieve the home location based on account data for the first user account…col. 11, lines 64-67 and col. 12, line 1; the system may determine a temporary location for the first user account based on the communication location in response to determining that the home location does not correspond to the communication location); determining a geographic address based on the external communication location (Benkreira: col. 11, lines 1-2; The system may then determine a geographic address based on the home location); and determining the first time zone identifier based on the geographic address (Benkreira: col. 12, lines 47-54; the system may retrieve a first time zone identifier corresponding to the home location, and the system may retrieve a second time zone identifier corresponding to the temporary location. For example, the system may determine a geographic address based on the home location. The system may then determine the first time zone identifier based on the geographic address).
As per claim 8, the modified Benkreira discloses the method of claim 2, wherein the external communication is an email communication, wherein the metadata comprises an IP address, and wherein the external communication location corresponds to a geographical location corresponding to the IP address (Benkreira: col. 11, lines 34-38; the communication may be an email communication, and the metadata may comprise an IP address. The system may then determine a communication location that corresponds to a geographical location corresponding to the IP address).
As per claim 9, the modified Benkreira discloses the method of claim 2, wherein the external communication is a text message delivered using Short Message Peer-to-Peer Protocol (“SMPP”) (Benkreira: col. 10, lines 57-60; the message may a text message delivered using Short Message Peer-to-Peer Protocol (“SMPP”)).
As per claim 10, the modified Benkreira discloses the method of claim 2, wherein the external communication is based on an electronic account action for the first user account (Benkreira: col. 11, lines 39-42; the communication may be an electronic account action (e.g., a credit card transaction) between the first user account and the second user account (e.g., a merchant)), wherein the metadata comprises location information for the electronic account action (Benkreira: col. 11, lines 42-43; the metadata may comprises location information for the electronic account), and wherein the external communication location corresponds to a geographical location corresponding to the location information (Benkreira: col. 11, lines 44-46; the communication location that corresponds to a geographical location corresponding to the location information).
As per claim 11, the modified Benkreira teaches the method of claim 2, wherein determining the external communication location based on the metadata for the external communication further comprises: determining a number of communications corresponding to communication locations that correspond to the external communication location (Benkreira: col. 12, lines 4-6; determine a number of communications corresponding to communication locations that do not correspond to the home location); comparing the number to a threshold number (Benkreira: col. 12, lines 7-8; compare the number to a threshold number); and determining the external communication location for the first user account based on the number exceeding the threshold number (Benkreira: col. 12, lines 8-11; determine the temporary location for the first user account based on the communication location based on the number equaling or exceeding the threshold number).
As per claim 12, the modified Benkreira discloses the method of claim 2, wherein determining the external communication location based on the metadata for the external communication further comprises: determining a frequency of communications corresponding to communication locations that correspond to the external communication location; comparing the frequency to a threshold frequency (Benkreira: col. 12, lines 14-16; determine a frequency of communications corresponding to communication locations that do not correspond to the home location); and determining the external communication location for the first user account based on the frequency exceeding the threshold frequency (Benkreira: col. 12, lines 18-21; determine the temporary location for the first user account based on the communication location based on the frequency equaling or exceeding the threshold frequency).
As per claim 13, the modified Benkreira discloses the method of claim 2, further comprising: determining an external communication characteristic based on the metadata (Benkreira: col. 12, lines 35-36; determine a communication characteristic based on the metadata); and comparing the external communication characteristic to communication characteristics that indicate a user corresponding to the first user account (Benkreira: col. 12, lines 38-41; compare the communication characteristic to communication characteristics that indicate a user corresponding to the first user account is outside of the home location).
As per claim 14, the modified Benkreira discloses the method of claim 2, wherein queuing the external communication in the internal communication queue further comprises: retrieving the internal communication queue, wherein the internal communication queue is for a future time period (Benkreira: col. 11, lines 5-6; retrieving the message queue, wherein the message queue is for a future time period); and queuing the external communication in the internal communication queue (Benkreira: claim 4; queuing the message in a message queue based on the delivery time offset).
As per claim 15, the modified Benkreira discloses the method of claim 2, further comprising: determining whether location data is available from a first user device corresponding to the first user account (Benkreira: col. 11, lines 23-25; determine whether location data is available from the first mobile device); and in response to determining that the location data is available from the first user device, updating the external communication location based on the location data (Benkreira: col. 2, lines 18-22; Upon detecting transactions outside the default location, the system may update an account of the user with a temporary location).
With respect to claim 16, it is substantially similar to claim 1 and is rejected in the same manner, the same art and reasoning applying. Further, Benkreira also teaches one or more non-transitory, computer-readable mediums comprising instructions that when executed by one or more processors causes operations comprising: (Benkreira: claim 12; a non-transitory, computer-readable medium for facilitating digital notifications in mobile communication networks, comprising instructions that, when executed by one or more processors, cause operations).
Regarding claims 17-18, they are substantially similar to claims 3-4, respectively, and are rejected in the same manner, the same arts and reasoning applying.
Regarding claim 20, it is substantially similar to claim 15, and is rejected in the same manner, the same arts and reasoning applying.
Claims 5 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Benkreira et al. (U.S. Patent No. 11,272,330), in view of Jha (U.S. Patent No. 10,789,195), and further in view of Mukherjee et al. (U.S. Publication No. 2025/0150368).
As per claim 5, the modified Benkreira discloses the method of claim 2, wherein receiving, at the first lambda function, the internal communication corresponding to the external communication further comprises: receiving the internal communication at a serverless computing service (Jha: col. 1, lines 25-39; A serverless computing system represents a type of cloud computing, where the cloud computing provider hosts user-generated computer code in so-called containers, to perform functions and operations desired by the user, and the code may be run inside stateless containers that can be triggered by events including queuing services…col. 7, lines 20-28; The serverless application stack 150 may also include one or more user functions, such as an Amazon Lambda® function).
However the modified Benkreira does not explicitly mention processing the internal communication using an object storage accessible to the serverless computing service.
However Mukherjee teaches:
processing the internal communication using an object storage accessible to the serverless computing service (Mukherjee: paragraph 0040; process 300 may include processing and transformation steps by implementing an event-driven serverless compute configured to be triggered automatically when any new data is ingested to the object storage service. the event-driven serverless compute reads the data in its native format, converts it to transformed data, and writes the transformed data to a distributed data store…an event-driven serverless compute by implementing an AWS Lambda function, where the event-driven serverless compute is triggered automatically when any new data is ingested to the object storage service).
Therefore it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings as in the modified Benkreira with the teachings as in Mukherjee. The motivation for doing so would have been to provide a distributed data store that can be a scalable object storage service such as Amazon S3, or another service with high availability, fault tolerance, and scalability, ensures that data is securely stored, easily retrievable, and ready for subsequent analysis and processing (Mukherjee: paragraph 0025).
Regarding claim 19, it is substantially similar to claim 5, and is rejected in the same manner, the same arts and reasoning applying.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KARINA J. GARCIA-CHING whose telephone number is (571)270-7159. The examiner can normally be reached Monday - Wednesday (9:00 AM - 5:00 PM).
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, Vivek Srivastava can be reached at (571) 272-7304. 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.
/KARINA J GARCIA-CHING/Examiner, Art Unit 2449
/VIVEK SRIVASTAVA/Supervisory Patent Examiner, Art Unit 2449