DETAILED ACTION
This office action is in response to the communication filed on December 16, 2025. Claims 1-20 are currently pending.
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 .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 12/16/25 has been entered.
Response to Arguments
Applicant's arguments filed on December 16, 2025 have been fully considered but they are not persuasive for the following reasons:
Applicant in Pages 8-10 of the Remarks argues that Palmeri, Mendez, Hakami, and Sareen do not teach or even suggest the amended feature “storing the subset of the plurality of data records in a data queue at the destination data storage environment”, as recited in amended independent claim 1 and similarly recited in amended independent claims 11 and 20.
Applicant’s arguments with respect to the amended feature in claim(s) 1, 11, and 20 have been considered but are moot in view of new grounds of rejection with newly cited prior art Hildebrand (US Pub 2021/0323850), as discussed in detail in the 103 rejection below.
Applicant in Pages 10-12 of the Remarks argues that Palmeri, Mendez, Hakami, and Sareen do not teach or even suggest the feature "wherein the subset of the plurality of data records are determined…comprising one or more rows that have changed…the one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters", as recited in independent claim 1 and similarly recited in independent claims 11 and 20.
Examiner respectfully disagrees. The cited prior art alone and/or in combination discloses the argued features.
In response to applicant's arguments against the references individually, one cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references. See In re Keller, 642 F.2d 413, 208 USPQ 871 (CCPA 1981); In re Merck & Co., 800 F.2d 1091, 231 USPQ 375 (Fed. Cir. 1986).
Palmeri in [0002], [0057], and [0238] discloses application server being called by remote applications on mobile computing devices to invoke various app functions.
Palmeri in [0069] and [0085] discloses configuring records and policies.
Palmeri in [0076] and [0188] discloses importing data to a app local database, offline content being queued locally on the client.
Palmeri in [0091] discloses storing data records for an app in a record management system and synchronizing data on user’s app on user device with the stored data records.
Palmeri in [0114] discloses server storing metadata about messages that are communicated via call from apps to the app kit logic.
Palmeri in [0157] and [0158] discloses metadata is synchronized among devices.
Palmeri in [0191] and [0192] discloses app is configured to refresh its list of data streams from the server by requesting data streams from the server, synchronizing data in local database of the client with data stored in the server.
Palmeri in [0162] and [0164] discloses requesting and transferring data based on push notifications.
Palmeri in [0191] and [0196] discloses client app persistently storing data locally in a cache.
Palmeri does not explicitly disclose request comprising configuration information indicating one or more filtering parameters for filtering data and a start time and a stop time, but the Mendez and Hakami references disclose the features.
Palmeri in [0050], [0051], and [0209] discloses server using a SQL database and a search query interface configured to receive, store, and respond to queries for metadata and data records, synchronization table comprising row and column indicators.
Palmeri in [0070], [0209], and [0210] discloses selecting rows corresponding to column indicators from table for synchronization.
Palmeri in [0091] discloses storing data records for an app in a record management system and synchronizing data on user’s app on user device with the stored data records.
Palmeri in [0191] and [0192] discloses app is configured to refresh its list of data streams from the server by requesting data streams from the server, synchronizing data in local database of the client with data stored in the server, rows in table representing a difference or changes that need to be synchronized.
Palmeri in [0162] and [0164] discloses requesting and transferring data based on push notifications for requests for synchronization.
Therefore, Palmeri discloses “wherein the subset of the plurality of data records are determined…comprising one or more rows that have changed…the one or more rows corresponding to one or more column indicators…”.
Palmeri does not explicitly disclose:
wherein the…data are determined…in accordance with one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters.
Mendez in [0043] discloses allowing a user to specify parameters including a frequency to synchronize stored data in a system with data in data sources to update the data to match the data from the data sources, users can choose specific streams and type of replication.
Mendez in [0046] and [0047] discloses the user can select a table from data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected table, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, a query generator configured to create one or more queries, such as database queries in query language SQL, in response to user selecting an integrated data source and a data table from the integrated data source.
Mendez in [0048] and [0080] discloses a user can configure and/or modify parameters to perform functions, a user can specify a replication frequency and time at which a system can synchronize data with the data in the data source.
Therefore, Mendez discloses a request comprises configuration information indicating one or more filtering parameters for filtering data.
Mendez in [0006] and [0010] discloses a user can integrate data sources in response to user input, user can configure parameters.
Mendez in [0046] discloses the user can select a table from data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected table, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources.
Mendez in [0054], [0056], and [0090] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time, user can edit and/or configure parameters by selecting table and column parameters.
Mendez in [0076], [0077], and [0079] discloses a user can configure data sources to integrate and replicate into a workspace.
Mendez in [0080], [0086], and [0088] discloses a user can specify replication frequency for a selected data source to specify at what time to synchronize replicated data with data in the data source, user can specify source and specific data tables, user can specify parameters.
Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply a data filter on the data columns, user can select data in one or more of the specified columns, user can limit the number of rows of data that are returned for the specified columns.
Mendez in [0096] discloses a user can configure a frequency of data replication for selected data sources.
Therefore, Mendez discloses “wherein the…data are determined…in accordance
with one or more rows corresponding to one or more column indicators indicated via the
one or more filtering parameters”.
It would have been obvious to a person of ordinary skill in the art, before the effective filing date of the claimed invention, having the teachings of Palmeri and Mendez, to have combined Palmeri and Mendez. The motivation to combine Palmeri and Mendez would be to synchronize stored data with data in data sources using user specified parameters.
Therefore, Palmeri, Mendez, and Hakami alone and/or in combination discloses the argued features "wherein the subset of the plurality of data records are determined…comprising one or more rows that have changed…the one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters", as recited in independent claim 1 and similarly recited in independent claims 11 and 20.
For the above reasons, Examiner states that rejection of the current Office action is proper.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-9 and 11-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Palmeri (US Pub 2015/0074407) in view of Mendez (US Pub 2022/0300850) in view of Hakami (US Pub 2014/0156597) and in further view of Hildebrand (US Pub 2012/0323850).
With respect to claim 1, Palmeri discloses a method for a push-based caching operation at a destination data storage environment of a data management system, comprising:
transmitting, to a source data storage environment configured to run one or more applications, a request to synchronize metadata for the one or more applications from the source data storage environment to the destination data storage environment, wherein the destination data storage environment is configured to locally cache the metadata for the one or more applications and wherein the request comprises…information indicating…a data stream comprising a plurality of data records at the source data storage environment to identify a subset of the plurality of data records…for pushing data to the destination data storage environment (Palmeri in [0002], [0057], and [0238] discloses application server being called by remote applications on mobile computing devices to invoke various app functions; Palmeri in [0069] and [0085] discloses configuring records and policies; Palmeri in [0076] and [0188] discloses importing data to a app local database, offline content being queued locally on the client; Palmeri in [0091] discloses storing data records for an app in a record management system and synchronizing data on user’s app on user device with the stored data records; Palmeri in [0114] discloses server storing metadata about messages that are communicated via call from apps to the app kit logic; Palmeri in [0157] and [0158] discloses metadata is synchronized among devices; Palmeri in [0191] and [0192] discloses app is configured to refresh its list of data streams from the server by requesting data streams from the server, synchronizing data in local database of the client with data stored in the server; Palmeri in [0162] and [0164] discloses requesting and transferring data based on push notifications; Palmeri in [0191] and [0196] discloses client app persistently storing data locally in a cache; here Palmeri does not explicitly disclose request comprising configuration information indicating one or more filtering parameters for filtering data and a start time and a stop time, but the Mendez and Hakami references disclose the features, as discussed below);
receiving, from the source data storage environment, the subset of the plurality of data records based at least in part on the…information, wherein the subset of the plurality of data records are determined from among the plurality of data records in the data stream during a…operation of the data stream at the source data storage environment in accordance with the subset of the plurality of data records comprising one or more rows that have changed at the source data storage environment and in accordance with one or more rows corresponding to one or more column indicators… (Palmeri in [0050], [0051], and [0209] discloses server using a SQL database and a search query interface configured to receive, store, and respond to queries for metadata and data records, synchronization table comprising row and column indicators; Palmeri in [0070], [0209], and [0210] discloses selecting rows corresponding to column indicators from table for synchronization; Palmeri in [0091] discloses storing data records for an app in a record management system and synchronizing data on user’s app on user device with the stored data records; Palmeri in [0191] and [0192] discloses app is configured to refresh its list of data streams from the server by requesting data streams from the server, synchronizing data in local database of the client with data stored in the server, rows in table representing a difference or changes that need to be synchronized; Palmeri in [0162] and [0164] discloses requesting and transferring data based on push notifications for requests for synchronization; here Palmeri does not explicitly disclose receiving data based at least in part on the configuration information, wherein the data are determined from a filtering operation of the data in accordance with one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters, corresponding to a query language indicated via the one or more filtering parameters, or both, but the Mendez reference disclose the features, as discussed below); and
storing the subset of the plurality of data records in a data queue at the…data storage environment (Palmeri in [0076] and [0188] discloses importing data to a app local database, offline content being queued locally on the client; here Palmeri does not explicitly disclose storing in a data queue at the destination data storage environment, but the Hildebrand reference discloses the feature, as discussed below).
Palmeri discloses, configuring records and policies, data streams, and receiving a subset of plurality of data records determined from the data stream at the source data storage environment based on the client request by synchronizing data records between a source data storage and a destination data storage environment, however, Palmeri does not explicitly disclose:
…wherein the request comprises configuration information indicating one or more filtering parameters for filtering…data…and a start time and a stop time…;
receiving data based at least in part on the configuration information, wherein the…data are determined from a filtering operation of the data…in accordance with one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters, corresponding to a query language indicated via the one or more filtering parameters, or both.
The Mendez reference discloses wherein a request comprises configuration information indicating one or more filtering parameters for filtering data and a start time (Mendez in [0043] discloses allowing a user to specify parameters including a frequency to synchronize stored data in a system with data in data sources to update the data to match the data from the data sources, users can choose specific streams and type of replication; Mendez in [0046] and [0047] discloses the user can select a table from data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected table, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, a query generator configured to create one or more queries, such as database queries in query language SQL, in response to user selecting an integrated data source and a data table from the integrated data source; Mendez in [0048] and [0080] discloses a user can configure and/or modify parameters to perform functions, a user can specify a replication frequency and time at which a system can synchronize data with the data in the data source; here Mendez and Palmeri do not explicitly disclose wherein the request comprises a start time and a stop time, but the Hakami reference discloses the feature, as discussed below);
receiving data based at least in part on the configuration information, wherein the data are determined from a filtering operation of the data in accordance with one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters, corresponding to a query language indicated via the one or more filtering parameters, or both (Mendez in [0006] and [0010] discloses a user can integrate data sources in response to user input, user can configure parameters; Mendez in [0046] discloses the user can select a table from data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected table, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources; Mendez in [0054], [0056], and [0090] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time, user can edit and/or configure parameters by selecting table and column parameters; Mendez in [0076], [0077], and [0079] discloses a user can configure data sources to integrate and replicate into a workspace; Mendez in [0080], [0086], and [0088] discloses a user can specify replication frequency for a selected data source to specify at what time to synchronize replicated data with data in the data source, user can specify source and specific data tables, user can specify parameters; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply a data filter on the data columns, user can select data in one or more of the specified columns, user can limit the number of rows of data that are returned for the specified columns; Mendez in [0096] discloses a user can configure a frequency of data replication for selected data sources).
Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the claimed invention, having the teachings of Palmeri and Mendez, to have combined Palmeri and Mendez. The motivation to combine Palmeri and Mendez would be to synchronize stored data with data in data sources using user specified parameters (Mendez [0043]).
Palmeri discloses synchronizing data records and metadata and receiving and transferring data based on push notifications, and Mendez discloses configuration information indicating filtering parameters and frequency and a time at which to synchronize data with the data in a data source, however, Palmeri and Mendez do not explicitly disclose:
wherein the request comprises…a start time and a stop time…;
Hakami discloses wherein a request comprises a start time and a stop time (Hakami in [0013], [0033], and [0034] discloses synchronization can happen at pre-defined times, such as when data is changed on the server and through notification received from the server or when a scheduled time is reached, client request to a server contains a start time of a synchronization window and an end time of the synchronization window, request presented in a push-based system, synchronization window is the window of time when data is synchronized to the client, synchronization window can be specified in synchronization configuration settings).
Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the claimed invention, having the teachings of Palmeri, Mendez, and Hakami, to have combined Palmeri, Mendez, and Hakami. The motivation to combine Palmeri, Mendez, and Hakami would be to synchronize data records at a specific time range using a synchronization window (Hakami: [0003]).
Palmeri discloses storing a subset of a plurality of data records in a data queue at a data storage environment, however, Palmeri, Mendez, and Hakami do not explicitly disclose:
storing…in a data queue associated with the destination data storage environment.
The Hildebrand reference discloses storing in a data queue associated with a destination data storage environment (Hildebrand in [0004] discloses data and metadata changes are synchronized to a second data storage; Hildebrand in [0037] and [0047] discloses a first in-memory queue associated with the first data storage subsystem and a second in-memory queue associated with a second data storage subsystem, which stores a replica of data from the first storage subsystem, data or metadata changes are sent to the second in-memory queue in the second storage subsystem).
Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the claimed invention, having the teachings of Palmeri, Mendez, Hakami, and Hildebrand to have combined Palmeri, Mendez, Hakami, and Hildebrand. The motivation to combine Palmeri, Mendez, Hakami, and Hildebrand would be to create consistent dataset in two storage subsystems to support application migration by employing in memory message queues for tracking data and metadata changes (Hildebrand: [0001] and [0037]).
With respect to claim 2, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the method of claim 1, wherein transmitting the request further comprises:
transmitting the one or more filtering parameters comprising the one or more column indicators for filtering the data stream according to the one or more column indicators (Palmeri in [0192] discloses transforming events and streams into a set of database tables configured as queues that represents differences in data that needs to be updated between the client and the server; Palmeri in [0209] and [0210] discloses synchronizing tracked changes in columns and rows of a synchronization table, reconciling missing data between client and server by performing synchronization; Mendez in [0046] discloses the user can select a table from data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected table, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply a data filter on the data columns, user can select data in one or more of the specified columns, user can limit the number of rows of data that are returned for the specified columns).
With respect to claim 3, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the method of claim 1, wherein transmitting the request further comprises:
transmitting the one or more filtering parameters comprising a query language filter for filtering the data stream according to the query language (Palmeri in [0192] discloses transforming events and streams into a set of database tables configured as queues that represents differences in data that needs to be updated between the client and the server; Palmeri in [0209] and [0210] discloses synchronizing tracked changes in columns and rows of a synchronization table, reconciling missing data between client and server by performing synchronization; Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0047] discloses a query generator configured to create one or more queries, such as database queries in query language SQL, in response to user selecting an integrated data source and a data table from the integrated data source; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 4, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the method of claim 1, wherein transmitting the request further comprises:
transmitting an enrichment request to modify a set of data records after filtering the data stream and prior to receiving the subset of the plurality of data records from the source data storage environment, wherein the subset of the plurality of data records comprises the modified set of data records (Palmeri in [0192] discloses transforming events and streams into a set of database tables configured as queues that represents differences in data that needs to be updated between the client and the server; Palmeri in [0209] and [0210] discloses synchronizing tracked changes in columns and rows of a synchronization table, reconciling missing data between client and server by performing synchronization; Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 5, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the method of claim 4, wherein the enrichment request indicates a selection of a subset of columns from a table included in the plurality of data records, and the subset of the plurality of data records comprises data corresponding to the subset of columns included in the table (Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 6, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the method of claim 4, wherein the enrichment request comprises a request to transform a value of a column associated with a data record based at least in part on applying a function, and the subset of the plurality of data records comprises data corresponding to the transformed value of the column associated with a data record (Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 7, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the method of claim 4, wherein the enrichment request comprises a request to combine data across a plurality of tables included in the plurality of data records, and the subset of the plurality of data records comprises data combined across the plurality of tables included in the plurality of data records (Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 8, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the method of claim 1, further comprising:
configuring the source data storage environment to drop one or more data records after filtering the data stream comprising the plurality of data records and prior to transmitting the subset of the plurality of data records to the destination data storage environment (Palmeri in [0192] discloses transforming events and streams into a set of database tables configured as queues that represents differences in data that needs to be updated between the client and the server; Palmeri in [0209] and [0210] discloses synchronizing tracked changes in columns and rows of a synchronization table, reconciling missing data between client and server by performing synchronization; Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 9, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the method of claim 1, further comprising:
storing the subset of the plurality of data records in a data queue associated with the source data storage environment (Palmeri in [0151] discloses data being queued for delivery in a data store before being sent off; Palmeri in [0192] and [0193] discloses transforming events and streams into a set of database tables configured as queues that represents differences in data that needs to be updated between the client and the server, changes are queued as sync able changes).
With respect to claim 11, Palmeri discloses an apparatus for a push-based caching operation at a destination data storage environment of a data management system, comprising:
a processor (Palmeri in [0273] and in Figure 4 discloses a processor);
memory coupled with the processor (Palmeri in [0273] and [0274] and in Figure 4 discloses a memory coupled with the processor); and
instructions stored in the memory and executable by the processor to cause the apparatus (Palmeri in [0273] and [0274] and in Figure 4 discloses a computer system including a memory and a processor, instructions stored in the memory and executable by the processor) to:
transmit, to a source data storage environment configured to run one or more applications, a request to synchronize metadata for the one or more applications from the source data storage environment to the destination data storage environment, wherein the destination data storage environment is configured to locally cache the metadata for the one or more applications and wherein the request comprises…information indicating…a data stream comprising a plurality of data records at the source data storage environment to identify a subset of the plurality of data records…for pushing data to the destination data storage environment (Palmeri in [0002], [0057], and [0238] discloses application server being called by remote applications on mobile computing devices to invoke various app functions; Palmeri in [0069] and [0085] discloses configuring records and policies; Palmeri in [0076] and [0188] discloses importing data to a app local database, offline content being queued locally on the client; Palmeri in [0091] discloses storing data records for an app in a record management system and synchronizing data on user’s app on user device with the stored data records; Palmeri in [0114] discloses server storing metadata about messages that are communicated via call from apps to the app kit logic; Palmeri in [0157] and [0158] discloses metadata is synchronized among devices; Palmeri in [0191] and [0192] discloses app is configured to refresh its list of data streams from the server by requesting data streams from the server, synchronizing data in local database of the client with data stored in the server; Palmeri in [0162] and [0164] discloses requesting and transferring data based on push notifications; Palmeri in [0191] and [0196] discloses client app persistently storing data locally in a cache; here Palmeri does not explicitly disclose request comprising configuration information indicating one or more filtering parameters for filtering data and a start time and a stop time, but the Mendez and Hakami references disclose the features, as discussed below);
receive, from the source data storage environment, the subset of the plurality of data records based at least in part on the…information, wherein the subset of the plurality of data records are determined from among the plurality of data records in the data stream during a…operation of the data stream at the source data storage environment in accordance with the subset of the plurality of data records comprising one or more rows that have changed at the source data storage environment and in accordance with one or more rows corresponding to one or more column indicators… (Palmeri in [0050], [0051], and [0209] discloses server using a SQL database and a search query interface configured to receive, store, and respond to queries for metadata and data records, synchronization table comprising row and column indicators; Palmeri in [0070], [0209], and [0210] discloses selecting rows corresponding to column indicators from table for synchronization; Palmeri in [0091] discloses storing data records for an app in a record management system and synchronizing data on user’s app on user device with the stored data records; Palmeri in [0191] and [0192] discloses app is configured to refresh its list of data streams from the server by requesting data streams from the server, synchronizing data in local database of the client with data stored in the server, rows in table representing a difference or changes that need to be synchronized; Palmeri in [0162] and [0164] discloses requesting and transferring data based on push notifications for requests for synchronization; here Palmeri does not explicitly disclose receiving data based at least in part on the configuration information, wherein the data are determined from a filtering operation of the data in accordance with one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters, corresponding to a query language indicated via the one or more filtering parameters, or both, but the Mendez reference disclose the features, as discussed below); and
storing the subset of the plurality of data records in a data queue at the…data storage environment (Palmeri in [0076] and [0188] discloses importing data to a app local database, offline content being queued locally on the client; here Palmeri does not explicitly disclose storing in a data queue at the destination data storage environment, but the Hildebrand reference discloses the feature, as discussed below).
Palmeri discloses, configuring records and policies, data streams, and receiving a subset of plurality of data records determined from the data stream at the source data storage environment based on the client request by synchronizing data records between a source data storage and a destination data storage environment, however, Palmeri does not explicitly disclose:
…wherein the request comprises configuration information indicating one or more filtering parameters for filtering…data…and a start time and a stop time…;
receive…data based at least in part on the configuration information, wherein the…data are determined from a filtering operation of the data…in accordance with one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters, corresponding to a query language indicated via the one or more filtering parameters, or both.
The Mendez reference discloses wherein a request comprises configuration information indicating one or more filtering parameters for filtering data and a start time (Mendez in [0043] discloses allowing a user to specify parameters including a frequency to synchronize stored data in a system with data in data sources to update the data to match the data from the data sources, users can choose specific streams and type of replication; Mendez in [0046] and [0047] discloses the user can select a table from data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected table, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, a query generator configured to create one or more queries, such as database queries in query language SQL, in response to user selecting an integrated data source and a data table from the integrated data source; Mendez in [0048] and [0080] discloses a user can configure and/or modify parameters to perform functions, a user can specify a replication frequency and time at which a system can synchronize data with the data in the data source; here Mendez and Palmeri do not explicitly disclose wherein the request comprises a start time and a stop time, but the Hakami reference discloses the feature, as discussed below);
receiving data based at least in part on the configuration information, wherein the data are determined from a filtering operation of the data in accordance with one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters, corresponding to a query language indicated via the one or more filtering parameters, or both (Mendez in [0006] and [0010] discloses a user can integrate data sources in response to user input, user can configure parameters; Mendez in [0046] discloses the user can select a table from data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected table, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources; Mendez in [0054], [0056], and [0090] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time, user can edit and/or configure parameters by selecting table and column parameters; Mendez in [0076], [0077], and [0079] discloses a user can configure data sources to integrate and replicate into a workspace; Mendez in [0080], [0086], and [0088] discloses a user can specify replication frequency for a selected data source to specify at what time to synchronize replicated data with data in the data source, user can specify source and specific data tables, user can specify parameters; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply a data filter on the data columns, user can select data in one or more of the specified columns, user can limit the number of rows of data that are returned for the specified columns; Mendez in [0096] discloses a user can configure a frequency of data replication for selected data sources).
Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the claimed invention, having the teachings of Palmeri and Mendez, to have combined Palmeri and Mendez. The motivation to combine Palmeri and Mendez would be to synchronize stored data with data in data sources using user specified parameters (Mendez [0043]).
Palmeri discloses synchronizing data records and metadata and receiving and transferring data based on push notifications, and Mendez discloses configuration information indicating filtering parameters and frequency and a time at which to synchronize data with the data in a data source, however, Palmeri and Mendez do not explicitly disclose:
wherein the request comprises…a start time and a stop time…;
Hakami discloses wherein a request comprises a start time and a stop time (Hakami in [0013], [0033], and [0034] discloses synchronization can happen at pre-defined times, such as when data is changed on the server and through notification received from the server or when a scheduled time is reached, client request to a server contains a start time of a synchronization window and an end time of the synchronization window, request presented in a push-based system, synchronization window is the window of time when data is synchronized to the client, synchronization window can be specified in synchronization configuration settings).
Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the claimed invention, having the teachings of Palmeri, Mendez, and Hakami, to have combined Palmeri, Mendez, and Hakami. The motivation to combine Palmeri, Mendez, and Hakami would be to synchronize data records at a specific time range using a synchronization window (Hakami: [0003]).
Palmeri discloses storing a subset of a plurality of data records in a data queue at a data storage environment, however, Palmeri, Mendez, and Hakami do not explicitly disclose:
storing…in a data queue associated with the destination data storage environment.
The Hildebrand reference discloses storing in a data queue associated with a destination data storage environment (Hildebrand in [0004] discloses data and metadata changes are synchronized to a second data storage; Hildebrand in [0037] and [0047] discloses a first in-memory queue associated with the first data storage subsystem and a second in-memory queue associated with a second data storage subsystem, which stores a replica of data from the first storage subsystem, data or metadata changes are sent to the second in-memory queue in the second storage subsystem).
Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the claimed invention, having the teachings of Palmeri, Mendez, Hakami, and Hildebrand to have combined Palmeri, Mendez, Hakami, and Hildebrand. The motivation to combine Palmeri, Mendez, Hakami, and Hildebrand would be to create consistent dataset in two storage subsystems to support application migration by employing in memory message queues for tracking data and metadata changes (Hildebrand: [0001] and [0037]).
With respect to claim 12, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the apparatus of claim 11, wherein the instructions to transmit the request are further executable by the processor to cause the apparatus to:
transmit the one or more filtering parameters comprising the one or more column indicators for filtering the data stream according to the one or more column indicators (Palmeri in [0192] discloses transforming events and streams into a set of database tables configured as queues that represents differences in data that needs to be updated between the client and the server; Palmeri in [0209] and [0210] discloses synchronizing tracked changes in columns and rows of a synchronization table, reconciling missing data between client and server by performing synchronization; Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 13, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the apparatus of claim 11, wherein the instructions to transmit the request are further executable by the processor to cause the apparatus to:
transmit the one or more filtering parameters comprising a query language filter for filtering the data stream according to the query language (Palmeri in [0192] discloses transforming events and streams into a set of database tables configured as queues that represents differences in data that needs to be updated between the client and the server; Palmeri in [0209] and [0210] discloses synchronizing tracked changes in columns and rows of a synchronization table, reconciling missing data between client and server by performing synchronization; Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0047] discloses a query generator configured to create one or more queries, such as database queries in query language SQL, in response to user selecting an integrated data source and a data table from the integrated data source; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 14, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the apparatus of claim 11, wherein the instructions to transmit the request are further executable by the processor to cause the apparatus to:
transmit an enrichment request to modify a set of data records after filtering the data stream and prior to receiving the subset of the plurality of data records from the source data storage environment, wherein the subset of the plurality of data records comprises the modified set of data records (Palmeri in [0192] discloses transforming events and streams into a set of database tables configured as queues that represents differences in data that needs to be updated between the client and the server; Palmeri in [0209] and [0210] discloses synchronizing tracked changes in columns and rows of a synchronization table, reconciling missing data between client and server by performing synchronization; Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 15, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the apparatus of claim 14, wherein the enrichment request indicates a selection of a subset of columns from a table included in the plurality of data records, and the subset of the plurality of data records comprises data corresponding to the subset of columns included in the table (Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 16, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the apparatus of claim 14, wherein the enrichment request comprises a request to transform a value of a column associated with a data record based at least in part on applying a function, and the subset of the plurality of data records comprises data corresponding to the transformed value of the column associated with a data record (Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 17, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the apparatus of claim 14, wherein the enrichment request comprises a request to combine data across a plurality of tables included in the plurality of data records, and the subset of the plurality of data records comprises data combined across the plurality of tables included in the plurality of data records (Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 18, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the apparatus of claim 11, wherein the instructions are further executable by the processor to cause the apparatus to:
configure the source data storage environment to drop one or more data records after filtering the data stream comprising the plurality of data records and prior to transmitting the subset of the plurality of data records to the destination data storage environment (Palmeri in [0192] discloses transforming events and streams into a set of database tables configured as queues that represents differences in data that needs to be updated between the client and the server; Palmeri in [0209] and [0210] discloses synchronizing tracked changes in columns and rows of a synchronization table, reconciling missing data between client and server by performing synchronization; Mendez in [0046] and [0048] discloses the user can select one or more tables of data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected tables, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, user can configure parameters of operations and/or functions; Mendez in [0054] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply data filter to the data columns, a summarize option to perform a summation of data in the specified columns, a join data option to join data from one or more columns and/or data sources, a sort option to sort data according to data in one or more of the specified columns, and/or a row limit option to limit the number of rows of data that are returned for the specified columns).
With respect to claim 19, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the apparatus of claim 11, wherein the instructions are further executable by the processor to cause the apparatus to:
store the subset of the plurality of data records in a data queue associated with the source data storage environment (Palmeri in [0151] discloses data being queued for delivery in a data store before being sent off; Palmeri in [0192] and [0193] discloses transforming events and streams into a set of database tables configured as queues that represents differences in data that needs to be updated between the client and the server, changes are queued as sync able changes).
With respect to claim 20, Palmeri discloses a non-transitory computer-readable medium storing code for a push-based caching operation at a destination data storage environment of a data management system, the code comprising instructions executable by a processor (Palmeri in [0273] and [0274] and in Figure 4 discloses a computer system including a non-transitory storage media storing instructions executable by a processor) to:
transmit, to a source data storage environment configured to run one or more applications, a request to synchronize metadata for the one or more applications from the source data storage environment to the destination data storage environment, wherein the destination data storage environment is configured to locally cache the metadata for the one or more applications and wherein the request comprises…information indicating…a data stream comprising a plurality of data records at the source data storage environment to identify a subset of the plurality of data records…for pushing data to the destination data storage environment (Palmeri in [0002], [0057], and [0238] discloses application server being called by remote applications on mobile computing devices to invoke various app functions; Palmeri in [0069] and [0085] discloses configuring records and policies; Palmeri in [0076] and [0188] discloses importing data to a app local database, offline content being queued locally on the client; Palmeri in [0091] discloses storing data records for an app in a record management system and synchronizing data on user’s app on user device with the stored data records; Palmeri in [0114] discloses server storing metadata about messages that are communicated via call from apps to the app kit logic; Palmeri in [0157] and [0158] discloses metadata is synchronized among devices; Palmeri in [0191] and [0192] discloses app is configured to refresh its list of data streams from the server by requesting data streams from the server, synchronizing data in local database of the client with data stored in the server; Palmeri in [0162] and [0164] discloses requesting and transferring data based on push notifications; Palmeri in [0191] and [0196] discloses client app persistently storing data locally in a cache; here Palmeri does not explicitly disclose request comprising configuration information indicating one or more filtering parameters for filtering data and a start time and a stop time, but the Mendez and Hakami references disclose the features, as discussed below);
receive, from the source data storage environment, the subset of the plurality of data records based at least in part on the…information, wherein the subset of the plurality of data records are determined from among the plurality of data records in the data stream during a…operation of the data stream at the source data storage environment in accordance with the subset of the plurality of data records comprising one or more rows that have changed at the source data storage environment and in accordance with one or more rows corresponding to one or more column indicators… (Palmeri in [0050], [0051], and [0209] discloses server using a SQL database and a search query interface configured to receive, store, and respond to queries for metadata and data records, synchronization table comprising row and column indicators; Palmeri in [0070], [0209], and [0210] discloses selecting rows corresponding to column indicators from table for synchronization; Palmeri in [0091] discloses storing data records for an app in a record management system and synchronizing data on user’s app on user device with the stored data records; Palmeri in [0191] and [0192] discloses app is configured to refresh its list of data streams from the server by requesting data streams from the server, synchronizing data in local database of the client with data stored in the server, rows in table representing a difference or changes that need to be synchronized; Palmeri in [0162] and [0164] discloses requesting and transferring data based on push notifications for requests for synchronization; here Palmeri does not explicitly disclose receiving data based at least in part on the configuration information, wherein the data are determined from a filtering operation of the data in accordance with one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters, corresponding to a query language indicated via the one or more filtering parameters, or both, but the Mendez reference disclose the features, as discussed below); and
storing the subset of the plurality of data records in a data queue at the…data storage environment (Palmeri in [0076] and [0188] discloses importing data to a app local database, offline content being queued locally on the client; here Palmeri does not explicitly disclose storing in a data queue at the destination data storage environment, but the Hildebrand reference discloses the feature, as discussed below).
Palmeri discloses, configuring records and policies, data streams, and receiving a subset of plurality of data records determined from the data stream at the source data storage environment based on the client request by synchronizing data records between a source data storage and a destination data storage environment, however, Palmeri does not explicitly disclose:
…wherein the request comprises configuration information indicating one or more filtering parameters for filtering…data…and a start time and a stop time…;
receive…data based at least in part on the configuration information, wherein the…data are determined from a filtering operation of the data…in accordance with one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters, corresponding to a query language indicated via the one or more filtering parameters, or both.
The Mendez reference discloses wherein a request comprises configuration information indicating one or more filtering parameters for filtering data and a start time (Mendez in [0043] discloses allowing a user to specify parameters including a frequency to synchronize stored data in a system with data in data sources to update the data to match the data from the data sources, users can choose specific streams and type of replication; Mendez in [0046] and [0047] discloses the user can select a table from data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected table, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources, a query generator configured to create one or more queries, such as database queries in query language SQL, in response to user selecting an integrated data source and a data table from the integrated data source; Mendez in [0048] and [0080] discloses a user can configure and/or modify parameters to perform functions, a user can specify a replication frequency and time at which a system can synchronize data with the data in the data source; here Mendez and Palmeri do not explicitly disclose wherein the request comprises a start time and a stop time, but the Hakami reference discloses the feature, as discussed below);
receiving data based at least in part on the configuration information, wherein the data are determined from a filtering operation of the data in accordance with one or more rows corresponding to one or more column indicators indicated via the one or more filtering parameters, corresponding to a query language indicated via the one or more filtering parameters, or both (Mendez in [0006] and [0010] discloses a user can integrate data sources in response to user input, user can configure parameters; Mendez in [0046] discloses the user can select a table from data associated with one or more data sources and can apply one or more SQL queries and/or filters to the data in the selected table, creating a SQL query in response to receiving selection of data parameters such as data filters, groups, and conditions, synchronizing data in a system with the data in the data sources; Mendez in [0054], [0056], and [0090] discloses a user can select events and create a funnel over a period of time to output a table with different columns based on the specific period of time, user can edit and/or configure parameters by selecting table and column parameters; Mendez in [0076], [0077], and [0079] discloses a user can configure data sources to integrate and replicate into a workspace; Mendez in [0080], [0086], and [0088] discloses a user can specify replication frequency for a selected data source to specify at what time to synchronize replicated data with data in the data source, user can specify source and specific data tables, user can specify parameters; Mendez in [0092] and [0093] discloses allowing user to select data to be returned from data sources using one or more filters or operations in a data entry field, user can specify columns of the data, user can select one or more operations to be performed on the data in the specified columns, user can select a filter option to apply a data filter on the data columns, user can select data in one or more of the specified columns, user can limit the number of rows of data that are returned for the specified columns; Mendez in [0096] discloses a user can configure a frequency of data replication for selected data sources).
Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the claimed invention, having the teachings of Palmeri and Mendez, to have combined Palmeri and Mendez. The motivation to combine Palmeri and Mendez would be to synchronize stored data with data in data sources using user specified parameters (Mendez [0043]).
Palmeri discloses synchronizing data records and metadata and receiving and transferring data based on push notifications, and Mendez discloses configuration information indicating filtering parameters and frequency and a time at which to synchronize data with the data in a data source, however, Palmeri and Mendez do not explicitly disclose:
wherein the request comprises…a start time and a stop time…;
Hakami discloses wherein a request comprises a start time and a stop time (Hakami in [0013], [0033], and [0034] discloses synchronization can happen at pre-defined times, such as when data is changed on the server and through notification received from the server or when a scheduled time is reached, client request to a server contains a start time of a synchronization window and an end time of the synchronization window, request presented in a push-based system, synchronization window is the window of time when data is synchronized to the client, synchronization window can be specified in synchronization configuration settings).
Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the claimed invention, having the teachings of Palmeri, Mendez, and Hakami, to have combined Palmeri, Mendez, and Hakami. The motivation to combine Palmeri, Mendez, and Hakami would be to synchronize data records at a specific time range using a synchronization window (Hakami: [0003]).
Palmeri discloses storing a subset of a plurality of data records in a data queue at a data storage environment, however, Palmeri, Mendez, and Hakami do not explicitly disclose:
storing…in a data queue associated with the destination data storage environment.
The Hildebrand reference discloses storing in a data queue associated with a destination data storage environment (Hildebrand in [0004] discloses data and metadata changes are synchronized to a second data storage; Hildebrand in [0037] and [0047] discloses a first in-memory queue associated with the first data storage subsystem and a second in-memory queue associated with a second data storage subsystem, which stores a replica of data from the first storage subsystem, data or metadata changes are sent to the second in-memory queue in the second storage subsystem).
Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the claimed invention, having the teachings of Palmeri, Mendez, Hakami, and Hildebrand to have combined Palmeri, Mendez, Hakami, and Hildebrand. The motivation to combine Palmeri, Mendez, Hakami, and Hildebrand would be to create consistent dataset in two storage subsystems to support application migration by employing in memory message queues for tracking data and metadata changes (Hildebrand: [0001] and [0037]).
Claim(s) 10 is/are rejected under 35 U.S.C. 103 as being unpatentable over Palmeri (US Pub 2015/0074407) in view of Mendez (US Pub 2022/0300850) in view of Hakami (US Pub 2014/0156597) in view of Hildebrand (US Pub 2012/0323850) and in further view of Sareen (US Pub 2006/0294469).
With respect to claim 10, Palmeri in view of Mendez in view of Hakami and in further view of Hildebrand discloses the method of claim 1,
Palmeri, Hakami, and Hildebrand discloses synchronizing data records between a source and a destination data storage environments and Mendez discloses synchronizing data between a source and a destination data storage environments, however, Palmeri, Mendez, Hakami, and Hildebrand do not explicitly disclose:
wherein each data…of the plurality of data…corresponds to a timestamp associated with a time source library common to the source…and the destination.
The Sareen reference discloses wherein each data of a plurality of data corresponds to a timestamp associated with a time source library common to a source and a destination (Sareen in [0006] and [0030] discloses storing files in a library and populating the files with metadata to allow the files to be easily located during a search, the library operated as a shared service system utilized by multiple devices to store, retrieve and share information in a collaborative working environment, user can search for and retrieve files from the library to user’s computing device; Sareen in [0059] and [0060] discloses establishing a synchronization relationship between an original file contained in a library and a copy of the file, a date stamp associated with the last modification date of the original file is encoded, monitor modification state of the original file contained in the library by comparing a present modification date stamp with the last modification date stamp associated with the original file; Sareen in [0061] and [0064] discloses synchronizing user’s copy of the file with the file stored in the library, a last modification timestamp is embedded into the file, comparing present timestamp associated with the original file in the library with last modified timestamp embedded into a copy of the file).
Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the claimed invention, having the teachings of Palmeri, Mendez, Hakami, Hildebrand, and Sareen, to have combined Palmeri, Mendez, Hakami, Hildebrand, and Sareen. The motivation to combine Palmeri, Mendez, Hakami, Hildebrand, and Sareen would be to be informed of updates or changes to original content by establishing a synchronization relationship between original content in a library and a copy of the original content (Sareen: [0008]).
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to REZWANUL MAHMOOD whose telephone number is (571)272-5625. The examiner can normally be reached M-F 9-5:30.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Ann J. Lo can be reached at 571-272-9767. 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.
/R.M/Examiner, Art Unit 2159 /ANN J LO/Supervisory Patent Examiner, Art Unit 2159