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 .
Information Disclosure Statement
The information disclosure statement (IDS) submitted on April 7, 2026 is being considered by the examiner.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1, 3-9, 11, 12 and 15-21 are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Adeel et al. (U.S. Publication No. 2024/0045980 A1, hereinafter referred to as “Adeel”).
Regarding claim 1, Adeel discloses a data processing method, comprising: (“data processing method)(e.g., paragraphs [0032] and [0039])
receiving a service request carrying a tenant identification from a first tenant; (“Thus, the service discovery function 120 may send the data processing request 134 with the tenant identifier to the particular microservice such that the microservice executes the data processing request 134 on data that is associated with the tenant identifier.”)(e.g., paragraphs [0032]-[0033] and [0060])
determining, based on the tenant identification, first tenant information of the first tenant from a tenant table located in a public space of a database; (“At block 504, the API gateway 112 may retrieve a tenant identifier that corresponds to the user identifier of the user. For example, the API gateway 112 may use a translation table that lists one or more unique tenant identifiers of individual tenants that are serviced by the microservices platform 102, as well as one or more unique user identifiers that identify authorized users associated with each tenant.”)(e.g., paragraphs [0019], [0031] and [0061])
invoking at least one first microservice associated with the first tenant using the first tenant information; and (“The service discovery function 120 may be further configured to determine, based on a data processing request that is invoked using a tool of the tools 110, the appropriate microservice of the microservice 104(1)-104(N) that is to be initially invoked to process data.”)(e.g., paragraphs [0016], [0024], [0027] and [0041])
performing a data processing on a data table in a first tenant space associated with the first tenant in the database based on the first tenant information and a data change instruction, in response to acquiring the data change instruction, wherein the data change instruction is generated in a process of invoking the at least one first microservice. (“At block 412, a particular blob data store that is identified by the tenant identifier may be accessed in relation to the one or more data files based at least on the metadata stored in the particular local database. At block 414, data processing as requested in the data processing request may be performed on the one or more data files. For example, the data processing may include storing the one or more data files in the corresponding blob data store. However, when the one or more data files are already stored in the corresponding blob data store, the data processing may include providing access to, retrieving, modifying, or deleting the one or more data files.”)(e.g., paragraphs [0022], [0034] and [0059]).
Regarding claim 3, Adeel discloses the method according to claim 1. Adeel further discloses wherein the invoking at least one first microservice associated with the first tenant using the first tenant information comprises: determining an access path for each of the at least one first microservice based on the first tenant information; and (“Once the data processing request 134 with the tenant identifier is received at a microservice (e.g., microservice 104(1)) of the microservices platform, the microservice may retrieve the metadata stored in a corresponding local database of the microservice that is identified by the tenant identifier. The metadata may then be used by the microservice to access a corresponding blob data store (e.g., blob data store 132(1)) that is identified by the tenant identifier in relation to the one or more data files. The access to the corresponding blob data store and/or the one or more data files in the corresponding blob data store may enable the microservice to perform data processing as requested in the data processing request on the one or more data files. For example, the data processing may include storing the one or more data files in the corresponding blob data store.”)(e.g., figures 4-5 and paragraphs [0022], [0033] and [0034])
forwarding, based on the access path for each of the at least one first microservice, the service request to the at least one first microservice respectively to invoke the at least one first microservice. (“In such an example, the blob storage platform 130 may be part of a content delivery network (CDN). Accordingly, the microservice may provide the user device that initiated the data processing request with an access token, such as an Azure shared access signature (SAS) token, that enables the user device to access the one or more video files for a limited amount of time from the blob storage platform 130. In some instances, the use of the Azure SAS token may be combined with the use of Azure private endpoints. With the use of the Azure private endpoints, the user device may be provided with secure access to the video files over a private virtual network link while the SAS token is kept private, e.g., without sending the SAS token directly to a web browser.”)(e.g., figures 4-5 and paragraphs [0022] and [0032]-[0036])
Regarding claim 4, Adeel discloses the method according to claim 1. Adeel further discloses wherein the service request further carries user credential information; and (“The user identifier may have been used by the authorized user, along with an authorization credential (e.g., a password, a biometric input, etc.) to authenticate to a user authentication function of the microservices platform 102 and gain access to the platform.”)(e.g., paragraph [0030])
the method further comprises: performing, in response to receiving the service request, an access authentication on the user credential information to obtain an authentication result; and (“The user identifier may have been used by the authorized user, along with an authorization credential (e.g., a password, a biometric input, etc.) to authenticate to a user authentication function of the microservices platform 102 and gain access to the platform.”)(e.g., paragraph [0030])
in a case that the authentication result indicates a successful authentication, determining the first tenant information of the first tenant from the tenant table based on the tenant identification. (“Upon receiving the data processing request 134 with the user identifier, the API gateway 112 may retrieve a tenant identifier (e.g., “ABC01234”) of a tenant that corresponds to the user identifier. The tenant identifier may have been previously assigned to the tenant via the tenant management tool. For example, the API gateway 112 may use a translation table that lists one or more unique tenant identifiers of individual tenants that are serviced by the microservices platform 102, as well as one or more unique user identifiers that identify authorized users associated with each tenant.”)(e.g., paragraphs [0030]-[0032])
Regarding claim 5, Adeel discloses the method according to claim 4. Adeel further discloses further comprising: performing, in response to receiving a user login request from the first tenant, a login verification on user information carried in the user login request to obtain a verification result; (“Thus, when an authorized user of a tenant desires to request a data processing operation to be performed by the microservices platform 102 on data associated with the tenant, the authorized user of the tenant may use a web browser on a user device to interact with one of the tools 110 and initiate a data processing request 134. The data processing request 134 may include a user identifier of the authorized user that uniquely identifies the authorized user. For example, the user identifier may be “customer1.getac.cloud.com”. The user identifier may have been used by the authorized user, along with an authorization credential (e.g., a password, a biometric input, etc.) to authenticate to a user authentication function of the microservices platform 102 and gain access to the platform.”)(e.g., paragraphs [0029]-[0030])
in a case that the verification result indicates a successful login verification, generating the user credential information based on the user information; and (“Upon receiving the data processing request 134 with the user identifier, the API gateway 112 may retrieve a tenant identifier (e.g., “ABC01234”) of a tenant that corresponds to the user identifier. The tenant identifier may have been previously assigned to the tenant via the tenant management tool. For example, the API gateway 112 may use a translation table that lists one or more unique tenant identifiers of individual tenants that are serviced by the microservices platform 102, as well as one or more unique user identifiers that identify authorized users associated with each tenant. Once a corresponding tenant identifier has been retrieved, the API gateway 112 may associate the data processing request 134 with the tenant identifier. For example, the API gateway 112 may supplement the data processing request 134 with an additional data field that holds the corresponding tenant identifier. Alternatively, or concurrently, the data processing request 134 may include a database connection string, and the API gateway 112 may insert the corresponding tenant identifier into the database connection string.”)(e.g., paragraphs [0031]-[0034])
returning the user credential information to the first tenant. (“The user identifier may have been used by the authorized user, along with an authorization credential (e.g., a password, a biometric input, etc.) to authenticate to a user authentication function of the microservices platform 102 and gain access to the platform.”)(e.g., paragraphs [0030]-[0034]).
Regarding claim 6, Adeel discloses the method according to claim 1. Adeel further discloses further comprising: creating, in response to a tenant creation request for a second tenant, a second tenant space in the database based on second tenant information carried in the tenant creation request. (“The access to the corresponding blob data store and/or the one or more data files in the corresponding blob data store may enable the microservice to perform data processing as requested in the data processing request on the one or more data files. For example, the data processing may include storing the one or more data files in the corresponding blob data store.” “each tenant of the multiple tenants” is considered to include a second tenant.)(e.g., abstract, figures 4-5 and paragraphs [0034])
Regarding claim 7, Adeel discloses the method according to claim 6. However, Adeel does not appear to specifically disclose wherein the creating, in response to a tenant creation request for a second tenant, a second tenant space in the database based on second tenant information carried in the tenant creation request comprises: generating, in response to the tenant creation request, a random string of a preset length; (“Upon receiving the data processing request 134 with the user identifier, the API gateway 112 may retrieve a tenant identifier (e.g., “ABC01234”) of a tenant that corresponds to the user identifier. The tenant identifier may have been previously assigned to the tenant via the tenant management tool. For example, the API gateway 112 may use a translation table that lists one or more unique tenant identifiers of individual tenants that are serviced by the microservices platform 102, as well as one or more unique user identifiers that identify authorized users associated with each tenant.”)(e.g., paragraph [0031])
generating an initial tenant space in the database by using the random string as a schema space name; (“Along with the blob storage platform 130, a multi-tenant search database 136 may be deployed for use with the microservices platform 102. For example, the multi-tenant search database 136 may be a single database that supports a multi-tenant capable full-text search engine, such as an Elasticsearch engine. This is in contrast to the data storage scheme used internally within the microservices and with the blob storage platform 130. The data that is stored in the multi-tenant search database 136 may belong to multiple tenants and are indexed using tenant identifiers of the multiple tenants. For the purpose of accessing data in the multi-tenant search database 136 to perform a search, a data processing request in the form of a search request may be initiated by a user at a user device, in which the data search request includes a user identifier of the user. Following the retrieval of a tenant identifier that corresponds to the user identifier, the API gateway 112 may embed the tenant identifier in a database connection string of the search request and forward the search request to a microservice that interfaces with the multi-tenant search database 136. The microservice may then use the tenant identifier associated with the search request to search for data that are associated with the tenant identifier and fulfills the search request.”)(e.g., paragraph [0038])
creating a plurality of initial data tables in the initial tenant space based on the second tenant information; and (“Along with the blob storage platform 130, a multi-tenant search database 136 may be deployed for use with the microservices platform 102. For example, the multi-tenant search database 136 may be a single database that supports a multi-tenant capable full-text search engine, such as an Elasticsearch engine. This is in contrast to the data storage scheme used internally within the microservices and with the blob storage platform 130. The data that is stored in the multi-tenant search database 136 may belong to multiple tenants and are indexed using tenant identifiers of the multiple tenants. For the purpose of accessing data in the multi-tenant search database 136 to perform a search, a data processing request in the form of a search request may be initiated by a user at a user device, in which the data search request includes a user identifier of the user. Following the retrieval of a tenant identifier that corresponds to the user identifier, the API gateway 112 may embed the tenant identifier in a database connection string of the search request and forward the search request to a microservice that interfaces with the multi-tenant search database 136. The microservice may then use the tenant identifier associated with the search request to search for data that are associated with the tenant identifier and fulfills the search request.”)(e.g., paragraph [0038])
initializing the plurality of initial data tables using a plurality of data tables comprised in the public space of the database to obtain the second tenant space. (“At block 504, the API gateway 112 may retrieve a tenant identifier that corresponds to the user identifier of the user. For example, the API gateway 112 may use a translation table that lists one or more unique tenant identifiers of individual tenants that are serviced by the microservices platform 102, as well as one or more unique user identifiers that identify authorized users associated with each tenant.”)(e.g., paragraphs [0019], [0031] and [0061])
Regarding claim 8, Adeel discloses the method according to claim 7. Adeel further discloses wherein the creating a plurality of initial data tables in the initial tenant space based on the second tenant information comprises: determining at least one second microservice associated with the second tenant based on the second tenant information; and (“Furthermore, the business logic (e.g., data routing paths listed in the routing table) that is used by communication broker service 118 may be modified as new microservices are added to the microservices platform 102 or removed from the microservices platform 102, or as the software architecture of the microservices platform 102 is updated. For example, there may be an existing data routing path in a routing table that routes the output data of a first microservice to a second microservice. However, when a third microservice is added to the microservices platform, another data routing path may be added to the routing table that routes the output data of the first microservice to the third microservice. Likewise, the routing table may list routing paths that route the output data of the first microservice to a second microservice and a third microservice of the microservices platform. However, when the second microservice is removed from the microservices, the routing table may be modified so that the routing path for the routing of output data from the first microservice to the second microservice may be eliminated from the routing table. In some embodiments, the tools 110 may include an application that enables a user to modify the business logic via a web interface that is accessible via a web browser, such as the web browser 114. Such ability may simplify the reconfiguration of the microservices platform 102 and/or the development of new microservices for the microservices platform 102.”)(e.g., paragraph [0022])
creating the plurality of initial data tables in the initial tenant space based on a data table associated with each of the at least one second microservice. (“For example, the service discovery function 120 may include logic that dictates that data of one or more first particular data types or from devices of one or more first particular device types are to be initially routed to one or more first microservices for processing, while data of one or more second particular data types or from devices of one or more second particular device types are to be initially routed to one or more second microservices for processing. Such routing may be performed by placing the incoming data or data storage location information of the incoming data in the data distribution inbox of the corresponding microservice. The incoming data may be labeled with tenant identifiers of the tenant that has the ownership of the data. For example, each data source device may be configured to generate a tenant identifier that identifies a piece of incoming data (e.g., a data packet, a data file, etc.) that is generated by the data source device. The tenant identifier may be used by a microservice to route the corresponding piece of incoming data for storage in a blob data store that is only accessible to the tenant. Furthermore, the microservice may also store database management data for the piece of incoming data in a local database of a microservice that is only accessible to the tenant.”)(e.g., paragraph [0023]).
Regarding claim 9, Adeel discloses the method according to claim 7. Adeel further discloses wherein the initializing the plurality of initial data tables using a plurality of data tables comprised in the public space of the database to obtain the second tenant space comprises: determining a plurality of target data tables from the plurality of data tables comprised in the public space of the database based on the plurality of initial data tables, wherein the plurality of target data tables correspond to the plurality of initial data tables respectively; and (“For example, the business logic may include a routing table that specifies that microservice 104(2) and 104(3) are configured to always receive data that is outputted by the microservice 104(1). Once the one or more recipient microservices are identified based on the business logic, the communication broker service 118 may direct the distributed queue management service 116 to distribute the message data from the microservice to the one or more corresponding data distribution inboxes of the one or more additional microservices.”)(e.g., paragraphs [0019], [0022] and [0023])
performing a data synchronization on the plurality of initial data tables using the plurality of target data tables to initialize the plurality of initial data tables, so as to obtain the second tenant space. (“Once the one or more recipient microservices are identified based on the business logic, the communication broker service 118 may direct the distributed queue management service 116 to distribute the message data from the microservice to the one or more corresponding data distribution inboxes of the one or more additional microservices.” “For example, the service discovery function 120 may include logic that dictates that data of one or more first particular data types or from devices of one or more first particular device types are to be initially routed to one or more first microservices for processing, while data of one or more second particular data types or from devices of one or more second particular device types are to be initially routed to one or more second microservices for processing. Such routing may be performed by placing the incoming data or data storage location information of the incoming data in the data distribution inbox of the corresponding microservice.”)(e.g., paragraphs [0016] and [0019]-[0023]).
Regarding claim 11, Adeel discloses an electronic device comprising a memory and a processor, wherein the memory stores instructions executable by the processor, and when executed by the processor, the instructions cause the processor to execute the method according to any one of claim 1. (e.g., figures 1-3 and paragraph [0047]).
Regarding claim 12, Adeel discloses a non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are configured to cause the computer to execute the method according to any one of claim 1. (e.g., paragraphs [0044] and [0049])
Claims 15-21 have substantially similar limitations as stated in claims 3-9, respectively; therefore, they are rejected under the same subject matter.
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.
The factual inquiries 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.
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 2, 14 and 22 are rejected under 35 U.S.C. 103 as being unpatentable over Adeel in view of Aritsuka et al. (U.S. Publication No. 2024/0250916 A1, hereinafter referred to as “Aritsuka”).
Regarding claim 2, Adeel discloses the method according to claim 1. Adeel further discloses wherein the performing a data processing on a data table in a first tenant space associated with the first tenant in the database based on the first tenant information and a data change instruction, in response to acquiring the data change instruction comprises: concatenating, in response to acquiring the data change instruction, the first tenant information with the data change instruction to obtain a target data change instruction; (“However, when the one or more data files are already stored in the corresponding blob data store, the data processing may include providing the user device with access to, retrieving, modifying, or deleting the one or more data files. For example, the microservice may provide the user device with access to the one or more data files (e.g., one or more video files) such that a user at the user device may view the data files via a web browser or some other application installed on the user device.”)(e.g., paragraphs [0034] and [0059])
However, Adeel does not appear to specifically disclose determining the first tenant space from the database based on a space name comprised in the first tenant information; and executing the target data change instruction to perform the data processing on the data table in the first tenant space.
On the other hand, Aritsuka, which relates to multitenant management system and method (title), does disclose determining the first tenant space from the database based on a space name comprised in the first tenant information; and (“A storage system (an example of a multitenant management system) according to the embodiment allocates different name spaces for individual tenants or system management other than the tenants, executes authentication of a tenant user or a system manager user for each name space, sets an access privilege for a specific resource type and a privilege to execute a specific operation, and executes an authorization determination process for the privileges for each name space. The storage system allows a user registered in a certain name space to designate a resource range associated with another name space and execute access and operation by managing the resource range associated with a tenant or a system without limiting the resource range to a name space.”)(e.g., paragraphs [0048], [0083] and [0085])
executing the target data change instruction to perform the data processing on the data table in the first tenant space. (“The “system edit role” is a role (for example, “Role 5”, “Role 6” exemplified in FIG. 5, or the like) that permits creation, deletion, setting change, update, or the like of a resource belonging to the system resource. The “system scope” defines the system resource as an access range. The user belonging to Group S0 has a privilege to execute an operation defined by the system edit role in the resource access range defined by the system scope. Since the system manager belongs to Group S0, the system manager can execute an operation permitted by the system edit role on the system resource.” “When the Tenant 1 manager accesses a resource associated with Tenant 1 and executes an operation, the Tenant 1 manager first logs in the system (the storage system). The authentication platform 230 illustrated in FIG. 9 determines whether the logged-in person is a legitimate user registered in the name space for Tenant 1 management. After authentication is successful (OK) for the legitimate user, the Tenant 1 manager makes a request for executing a resource operation command. The authorization platform 240 illustrated in FIG. 9 determines a privilege to execute the requested command based on user information and policy information set for the user.”)(e.g., paragraphs [0112], [0113], [0136] and [0149]).
Adeel relates to maintaining data security in a multi-tenant microservice. In Adeel, a microservice platform that includes a plurality of microservices for providing data processing functions for data of multiple tenants may be implemented. E.g., abstract. However, Adeel does not appear to specifically disclose determining the tenant space based on the space name, and to perform the target change instruction to perform the data processing on the data table in the first tenant space. On the other hand, Aritsuka, which relates to a multitenant management system and method (title) provides that tenant space can be determined based on space name of the tenant information and that this provides an effective manner for providing access to resources allowing for users to be effectively registered even when users have the same name. E.g., paragraphs [0007]-[0009]. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of Applicant’s claimed invention to incorporate the determination of the space of the tenant as disclosed in Aritsuka to Adeel to expand the capabilities of the multitenant system by providing enhanced ways for users to access and utilize the system.
Claims 14 and 22 have substantially similar limitations as stated in claim 2; therefore, they are rejected under the same subject matter.
Conclusion
The prior art made of record, listed on form PTO-892, and not relied upon is considered pertinent to applicant's disclosure.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to RICHARD L BOWEN whose telephone number is (571)270-5982. The examiner can normally be reached Monday through Friday 7:30AM - 4:00PM EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Aleksandr Kerzhner can be reached at (571)270-1760. 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.
/RICHARD L BOWEN/ Primary Examiner, Art Unit 2165