Notice of Pre-AIA or AIA Status
1. 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
2. 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 08/06/2026 has been entered.
DETAILED ACTION
3. This Office Action is in response to the filing with the office dated 08/06/2026.
Claims 21, 29-32, 35 and 39 have been amended. Claim 41 has been added. Claims 21, 35 and 40 are independent claims. Claims 21-41 are pending in this office action.
Priority
4. Applicant's claim for the benefit of a prior-filed provisional Application No. 62/376,189 filed on 08/17/2016 is acknowledged by the examiner.
Applicant's claim for the benefit of parent Application no: 15/666,500 filed on 08/01/2017 is acknowledged by the examiner.
Response to amendment/arguments
5. Applicant’s arguments with respect to the rejection of independent claims 21, 35 and 39 and dependent claims 22, 36 and 40 under 35 U.S.C. § 102 (a)(i) and 103(a) have been fully considered and are moot in view of the new grounds of rejection. Please see the rejection below.
Claim Rejections - 35 U.S.C. § 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 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.
6. Claims 21, 24-30, 33-35, 38, 39 and 41 are rejected under 35 U.S.C. 103 as being unpatentable over Dorin; Dov Yaron (US 9679012 B1) in view of in view of Mehra; Vinod (US 20120331000 A1) and in further view of WAGNER; Michael J.(US 20080189393 A1).
Regarding independent claim 21, Dorin; Dov Yaron (US 9679012 B1) teaches, a computer-implemented method for executing database queries based on external tables Col 11 Lines 59-64 (58) FIG. 4 is a diagram of using an extension service to perform a join on data stored in a second distributed system. A segment node 414 of a first distributed system 410 can perform a join of data in a first table 416 with an external table 417 that represents data stored on a distributed system 420. Also see Col 18 Lines 11 (110)), the method comprising: generating, by a database system, an execution plan for a database query (Col 6 Lines 59-62 (22) When the master node 112 receives a query, the master node 112 parses the query and generates a query plan. The query plan defines the operations that the master node 112 will distribute to the segment nodes to fulfill the query), the execution plan comprising one or more external table operators for processing data of an external table stored by an external system that is external to the database system (Col 6 Lines 48-58 (21) when a segment node of the first distributed system 110 receives a request to access data represented by the external table, the external table protocol causes the segment node to communicate with an extension service that provides direct streaming and conversion of data stored in the second distributed system 120 (i.e., here the external system is a different distributed system, which is a second distributed system and has external table represents data in the second distributed system). Also see Col 7 Lines 15-34, Abstract);
and executing, by the database system, the execution plan, comprising: sending, by the database system, to the external system, a data request for the external table, wherein the data request for the external system to use in establishing a data stream connection with the database system (Col 6 Lines 48-58 (21) the system 110 can represent the data stored in the second distributed system 120 as an external table. An external table has an associated protocol that invokes an extension service when a scan of the external table is requested by a segment node. Thus, when a segment node of the first distributed system 110 receives a request to access data represented by the external table, the external table protocol causes the segment node to communicate with an extension service that provides direct streaming and conversion of data stored in the second distributed system 120 table (i.e., the external system/ second distributed system based on the protocol causes the external table to communicate/ create data stream connection with the first database system) Moreover, each segment node can stream data from the second distributed system 120 in parallel by communicating with a separate extension service. In some implementations, each segment node executes its own separate extension service. Also see Col 7 Lines 15-34 (24));
and responsive to establishing the data stream connection with the external system, performing one or more of receiving a data stream from the external system or sending a data stream to the external system via the data stream connection (Col 6 Lines 48-58 (21) when a segment node of the first distributed system 110 receives a request to access data represented by the external table, the external table protocol causes the segment node to communicate with an extension service that provides direct streaming and conversion of data stored in the second distributed system 120 (i.e., a request to create a data stream connection with one or more external table operators. Also see Col 7 Lines 15-34 (24)).
Dorin et al fails to explicitly teach, sending, by the database system, to the external system, a data request for the external table, wherein the data request includes data stream connection information comprising at least a network address and a port of the database system for the external system to use in establishing a data stream connection with the database system; receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators, the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system
Mehra; Vinod (US 20120331000 A1) teaches, sending, by the database system, to the external system, a data request for the external table, wherein the data request includes data stream connection information for the external system to establish a data stream connection with the database system (Paragraph [0052] the subscribing client device 108 transmitting or otherwise communicating, to the distributing application server 104, a handshake request for negotiating a streaming connection (or channel) with the distributing application server 104, wherein the streaming engine 136 transmits or otherwise communicates a handshake response message that indicates the types of connections supported by the distributing application server 104 (i.e., sending a handshake request to the distributing server));
receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators (Paragraph [0052] in response to receiving the handshake request, the streaming engine 136 transmits a handshake response message indicating that the streaming engine 136 will support a long-polling streaming connection with the subscribing client device 108 (Examiner interprets receiving by the client device/ database system a handshake response message to create a streaming connection associated requests with database. For more detail about streaming connection associated with database is taught in Paragraphs [0018] discloses “the application servers communicate with the data tables based upon the data stored or otherwise maintained by a database and by comparing the list of streaming queries maintained in the database, a connection is established to perform the operations/ requests”. Also see Paragraphs [0026], [0031], [0032]));
and responsive to establishing the data stream connection with the external system, performing one or more of receiving a data stream from the external system or sending a data stream to the external system via the data stream connection (Paragraph [0052] In response, the subscribing client device 108 transmits or otherwise communicates a subscription request 604 identifying the streaming query that the user of the client device 108 would like to subscribe to, wherein the streaming engine 136 receives the streaming request and provides the streaming request to the subscription engine 137 for updating the active subscription table 138 to maintain an association between the subscribing client device 108 and the streaming query that the subscribing client device 108 is subscribing to).
Therefore it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Dorin et al by receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators, as taught by Mehra et al (Paragraph [0052]).
One of the ordinary skill in the art would have been motivated to make this modification, by doing so, one advantage of the subject matter described herein is that when the application system 100 is a multi-tenant system, users associated with the same tenant can be notified of data transactions initiated on behalf of other users associated with that tenant substantially in real-time while reducing the load on the multi-tenant database and the application server(s). Another advantage of the subject matter described herein is that the notification data is provided to subscribed users in accordance with their permissions and/or security settings, which may be established by an administrator associated with that tenant. For example, as described above, row level and field level security checks are applied based on the permissions and/or security settings associated with the user of the client device 108 before providing data to the client device 108. In this manner, the client device 108 is only provided fields of data that are viewable or accessible by the user of the client device 108, and those fields of data are only provided for database entries that are viewable or accessible by the user of the client device 108 as taught by Mehra et al (Paragraph [0067]).
Dorin et al and Mehra et al fails to explicitly teach, data stream connection information comprising at least a network address and a port of the database system; the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system.
WAGNER; Michael J.(US 20080189393 A1) teaches, the data request includes data stream connection information comprising at least a network address and a port of the database system for the external system to use in establishing a data stream connection with the database system (Paragraphs [0043]-[0045] discloses, sending a data request which includes data stream connection comprising IP/ network address and a port number corresponding to the target device intended to be accessed by the client to establish a data stream connection. Also see Paragraph [0050]);
receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators, the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system (Fig. 3, Paragraph [0048] the external processor 28 instructs the internal processor 22 to open a communication connection 160 between the internal processor 22 and the target device 24. The internal processor 22 sends an initiation communication 162 to the target device 24, and the target device 24 provides a response communication 164 in order to establish the communication connection 160);
WAGNER et al also teaches, responsive to establishing the data stream connection with the external system, performing one or more of receiving a data stream from the external system or sending a data stream to the external system via the data stream connection (Fig. 2, Paragraph [0048] After the successfully establishing the communication connections 150 and 160, the external processor 28 and internal processor 22 provide a virtual communication connection between the client 30 and the target device 24 by providing a logical communication connection, for example a virtual TCP session, over the persistent communication connection 140).
Therefore it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Dorin et al and Mehra et al by providing the data request includes data stream connection information comprising at least a network address and a port of the database system; the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system, as taught by WAGNER et al (Paragraphs [0046], [0048).
One of the ordinary skill in the art would have been motivated to make this modification, by doing so, advantageously, in the illustrative embodiment of the system 20, the internal processor 22 initiates the persistent communication connection with the external processor 28 and internal processor 22 and also initiates the communication connection with the target device 24, therefore, the pre-existing protocols of the gateway 40 generally require no modification and neither the client 30 nor the external processor 28 require an outside IP address for the gateway 40, the internal processor 22, or the target device 24. Additionally, in the illustrative embodiment of the system 20, the remote access to the target device 24 can be initiated by the client 30 without having to install applications specifically supporting remote access or reverse connections on the client 30 and the target device 24 as taught by WAGNER et al (Paragraph [0036]).
Regarding dependent claim 24, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 21.
Dorin et al further teaches, wherein executing the execution plan further comprises: providing an execution result of execution of an external table operator of the one or more external table operators to another operator of the execution plan (Col 14 Lines 10-19 (79) Both FIGS. 6A and 6B represent functionally equivalent query plans for a join operation between a first table stored in a first distributed system and an external table that represents data stored in a second distributed system. The join operation requires determining rows of a table T1 and an external table T2 that have a particular attribute in common. As described above with reference to FIG. 5, to compute a join operation on distributed tables, one option is for the system to broadcast the data of either table in its entirety to each of the segment nodes (i.e., providing an execution result of the external table operator to another operator by joining the operators).
Regarding dependent claim 25, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 24.
Dorin et al further teaches, wherein the other operator receives data as input from the external table operator and the database system pipelines execution of the other operator with execution of the external table operator such that the database system starts execution of the other operator before all the data of the data stream is received from the external system (Col 14 Lines 20-30 (80) In FIG. 6A, the query plan specifies by the scan operation 616 that the rows of table T2 should be read. The query plan also specifies by the broadcast operation 614 that the rows read from table T2 should be broadcast to each of the segment nodes of the system. (81) Each segment node will then read only a portion of the table T1 according to the scan operation 612, e.g., a portion as assigned by a master node of the system. Each segment node will then compute a join according to the join operation 610 using the assigned portion of the table T1 and the entirety of the broadcast table T2) (i.e., the other operator which is the table T1 receives data as input from external table which is table T2)).
Regarding dependent claim 26, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 24.
Dorin et al further teaches, wherein the other operator provides data as input to the external table operator and the database system pipelines execution of the external table operator with the other operator such that the database system starts processing the external table operator to transmit data to the external system before the other operator has provided all the data to the external table operator (Col 14 Lines 20-30 (80) In FIG. 6A, the query plan specifies by the scan operation 616 that the rows of table T2 should be read. The query plan also specifies by the broadcast operation 614 that the rows read from table T2 should be broadcast to each of the segment nodes of the system. (81) Each segment node will then read only a portion of the table T1 according to the scan operation 612, e.g., a portion as assigned by a master node of the system. Each segment node will then compute a join according to the join operation 610 using the assigned portion of the table T1 and the entirety of the broadcast table T2) (i.e., the other operator which is the table T1 receives data as input from external table which is table T2)).
Regarding dependent claim 27, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 21.
Dorin et al further teaches, wherein the database query is a first database query (Col 6 Lines 3-9 (17) A user of a user device 102 can access data stored in the distributed system 110 by communicating with a master node 112. The master node 112 coordinates with the segment nodes 114a-114n to respond to requests for data from the user device 102. The user device 102 can issue a query, e.g. in structured query language (SQL) or object query language (OQL), to the master node 112 (i.e., the user request to access data is the first query). Also see Col 6, Lines 59 (22) When the master node 112 receives a query), wherein sending the data request by the database system is in response to a request to execute a second database query received from the external system, the second database query requesting information stored in a system table of the database system (Col 7 Lines 4-34 (23), (24) the master node 112 can generate a query plan that assigns the segment node 114a to operate on a first partition 117a of an external table that is partitioned into multiple partitions 117a-n. The data for the external table actually resides on the second distributed system 120, stored as part of the first fragment 126a managed by the data node 124a (i.e., here the second database query is the query that access the data from the external table).
Regarding dependent claim 28, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 27.
Dorin et al further teaches, wherein the database system stores the data stream connection information in the system table such that the execution of the second database query results in the data request sending the data stream connection information to the external system (Col 7 Lines 44-67, Col 8 Lines 1-50 (27)-(34) The accessor 260 implements the functionality to access fragments of data stored by the second distributed system. For example, if the second distributed system is an HBase system, the accessor 260 can use an HBase application programming interface (API) to obtain data fragments 264 from the HBase system (i.e., sending the data stream connection information which is the port no, host name, machine name or network address and directory or file name as taught in Paragraph (27), (30) which is stored in the system catalog/ system table)).
Regarding dependent claim 29, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 21.
Dorin et al further teaches, wherein the external table operator is an external table scan operator, and wherein receiving the data stream includes receiving a set of records from the external system via the data stream connection (Col 6 Line 44-54 (21) the system 110 can represent the data stored in the second distributed system 120 as an external table. An external table has an associated protocol that invokes an extension service when a scan of the external table is requested by a segment node. Thus, when a segment node of the first distributed system 110 receives a request to access data represented by the external table, the external table protocol causes the segment node to communicate with an extension service that provides direct streaming and conversion of data stored in the second distributed system 120. Col 14, Lines 20-30 (80) In FIG. 6A, the query plan specifies by the scan operation 616 that the rows of table T2 should be read. The query plan also specifies by the broadcast operation 614 that the rows read from table T2 should be broadcast to each of the segment nodes of the system (i.e., receiving set of records from the external table T2). (81) Each segment node will then read only a portion of the table T1 according to the scan operation 612, e.g., a portion as assigned by a master node of the system. Each segment node will then compute a join according to the join operation 610 using the assigned portion of the table T1 and the entirety of the broadcast table T2)).
Regarding dependent claim 30, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 21.
Dorin et al further teaches, wherein the external table operator is an external table scan operator, and wherein sending the data stream includes sending a set of records to the external system via the data stream connection (Col 14, Lines 37-46 (83) In contrast, the query plan in FIG. 6B specifies that the table T1 is broadcast to the segment nodes instead of the table T2. The query plan specifies by the scan operation 622 and the broadcast operation 624 that the rows of the table T1 should be read and broadcast in their entirety to all of the other segment nodes. Each of the segment nodes can then perform the join operation 620 using the broadcast contents of the table T1 and only portions of the table T2 according to the scan operation 626, e.g., a portion as assigned by the master node of the system (i.e., sending a set of records to the external table T2).
Regarding dependent claim 33, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 21.
Dorin et al further teaches, further comprising receiving, by the database system, a description of the external table in a data definition language statement that registers the external table with the database system (Col 7 Lines 58-67, Col 8 1-3 (27) A user can define an external table on the first distributed system 210 that represents data stored by the second distributed system 220. To do so, the user specifies the fragmenter 240, the accessor 260, and the resolver 270 when creating the external table. For example, a user can issue the following command to create an external table: CREATE EXTERNAL TABLE Customers ( customer_id INT, first_name TEXT, last_name TEXT) ) LOCATION: (‘pxf://<hostname>:<port>? Fragmenter=HdfsDataFragmenter& Accessor=TextFileAccessor& Resolver=TextResolver’) (i.e., CREATE statement data definition language statement)).
Regarding dependent claim 34, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 21.
Dorin et al further teaches, wherein the database system comprises a plurality of compute nodes, each compute node executing an external table operator of the one or more external table operators, wherein each compute node receives a different data stream connection from the external system for performing parallel data transfer (Col 15 Lines 64-67, Col 16 Lines 1-3 (94) The system computes a result for the query according to the selected query plan (750). After selecting a query plan, the system can execute the query plan. Scan operations on the external table in the query plan can cause the system to invoke multiple extension services that will stream the data in parallel to the segment nodes of the first distributed system).
Regarding independent claim 35, Dorin; Dov Yaron (US 9679012 B1) teaches, a computer readable non-transitory storage medium storing instructions thereon, the instructions when executed by a processor cause the processor to perform the steps (Col 20 Lines 4-12 (121) Computers suitable for the execution of a computer program include, by way of example, can be based on general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data) of: generating, by a database system, an execution plan for a database query (Col 6 Lines 59-62 (22) When the master node 112 receives a query, the master node 112 parses the query and generates a query plan. The query plan defines the operations that the master node 112 will distribute to the segment nodes to fulfill the query), the execution plan comprising one or more external table operators for processing data of an external table stored by an external system that is external to the database system (Col 6 Lines 48-58 (21) when a segment node of the first distributed system 110 receives a request to access data represented by the external table, the external table protocol causes the segment node to communicate with an extension service that provides direct streaming and conversion of data stored in the second distributed system 120 (i.e., here the external system is a different distributed system, which is a second distributed system and has external table represents data in the second distributed system). Also see Col 7 Lines 15-34, Abstract);
and executing, by the database system, the execution plan, comprising: sending, by the database system, to the external system, a data request for the external table, wherein the data request includes data stream connection information in establishing a data stream connection with the database system (Col 6 Lines 48-58 (21) the system 110 can represent the data stored in the second distributed system 120 as an external table. An external table has an associated protocol that invokes an extension service when a scan of the external table is requested by a segment node. Thus, when a segment node of the first distributed system 110 receives a request to access data represented by the external table, the external table protocol causes the segment node to communicate with an extension service that provides direct streaming and conversion of data stored in the second distributed system 120 table (i.e., the external system/ second distributed system based on the protocol causes the external table to communicate/ create data stream connection with the first database system) Moreover, each segment node can stream data from the second distributed system 120 in parallel by communicating with a separate extension service. In some implementations, each segment node executes its own separate extension service. Also see Col 7 Lines 15-34 (24));
and responsive to establishing the data stream connection with the external system, performing one or more of receiving a data stream from the external system or sending a data stream to the external system via the data stream connection (Col 6 Lines 48-58 (21) when a segment node of the first distributed system 110 receives a request to access data represented by the external table, the external table protocol causes the segment node to communicate with an extension service that provides direct streaming and conversion of data stored in the second distributed system 120 (i.e., a request to create a data stream connection with one or more external table operators. Also see Col 7 Lines 15-34 (24)).
Dorin et al fails to explicitly teach, sending, by the database system, to the external system, a data request for the external table, wherein the data request includes data stream connection information comprising at least a network address and a port of the database system for the external system to use in establishing a data stream connection with the database system; receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators, the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system.
Mehra; Vinod (US 20120331000 A1) teaches, sending, by the database system, to the external system, a data request for the external table, wherein the data request includes data stream connection information for the external system to establish a data stream connection with the database system (Paragraph [0052] the subscribing client device 108 transmitting or otherwise communicating, to the distributing application server 104, a handshake request for negotiating a streaming connection (or channel) with the distributing application server 104, wherein the streaming engine 136 transmits or otherwise communicates a handshake response message that indicates the types of connections supported by the distributing application server 104 (i.e., sending a handshake request to the distributing server));
receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators (Paragraph [0052] in response to receiving the handshake request, the streaming engine 136 transmits a handshake response message indicating that the streaming engine 136 will support a long-polling streaming connection with the subscribing client device 108 (Examiner interprets receiving by the client device/ database system a handshake response message to create a streaming connection associated requests with database. For more detail about streaming connection associated with database is taught in Paragraphs [0018] discloses “the application servers communicate with the data tables based upon the data stored or otherwise maintained by a database and by comparing the list of streaming queries maintained in the database, a connection is established to perform the operations”. Also see Paragraphs [0026], [0031], [0032]));
and responsive to establishing the data stream connection with the external system, performing one or more of receiving a data stream from the external system or sending a data stream to the external system via the data stream connection (Paragraph [0052] In response, the subscribing client device 108 transmits or otherwise communicates a subscription request 604 identifying the streaming query that the user of the client device 108 would like to subscribe to, wherein the streaming engine 136 receives the streaming request and provides the streaming request to the subscription engine 137 for updating the active subscription table 138 to maintain an association between the subscribing client device 108 and the streaming query that the subscribing client device 108 is subscribing to).
Therefore it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Dorin et al by receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators, as taught by Mehra et al (Paragraph [0052]).
One of the ordinary skill in the art would have been motivated to make this modification, by doing so, one advantage of the subject matter described herein is that when the application system 100 is a multi-tenant system, users associated with the same tenant can be notified of data transactions initiated on behalf of other users associated with that tenant substantially in real-time while reducing the load on the multi-tenant database and the application server(s). Another advantage of the subject matter described herein is that the notification data is provided to subscribed users in accordance with their permissions and/or security settings, which may be established by an administrator associated with that tenant. For example, as described above, row level and field level security checks are applied based on the permissions and/or security settings associated with the user of the client device 108 before providing data to the client device 108. In this manner, the client device 108 is only provided fields of data that are viewable or accessible by the user of the client device 108, and those fields of data are only provided for database entries that are viewable or accessible by the user of the client device 108 as taught by Mehra et al (Paragraph [0067]).
Dorin et al and Mehra et al fails to explicitly teach, the data request includes data stream connection information comprising at least a network address and a port of the database system for the external system to use in establishing a data stream connection with the database system; the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system
WAGNER; Michael J.(US 20080189393 A1) teaches, the data request includes data stream connection information comprising at least a network address and a port of the database system for the external system to use in establishing a data stream connection with the database system (Paragraphs [0043]-[0045] discloses, sending a data request which includes data stream connection comprising IP/ network address and a port number corresponding to the target device intended to be accessed by the client to establish a data stream connection. Also see Paragraph [0050]);
receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators, the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system (Fig. 3, Paragraph [0048] the external processor 28 instructs the internal processor 22 to open a communication connection 160 between the internal processor 22 and the target device 24. The internal processor 22 sends an initiation communication 162 to the target device 24, and the target device 24 provides a response communication 164 in order to establish the communication connection 160);
WAGNER et al also teaches, responsive to establishing the data stream connection with the external system, performing one or more of receiving a data stream from the external system or sending a data stream to the external system via the data stream connection (Fig. 2, Paragraph [0048] After the successfully establishing the communication connections 150 and 160, the external processor 28 and internal processor 22 provide a virtual communication connection between the client 30 and the target device 24 by providing a logical communication connection, for example a virtual TCP session, over the persistent communication connection 140).
Therefore it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Dorin et al and Mehra et al by providing the data request includes data stream connection information comprising at least a network address and a port of the database system; the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system, as taught by WAGNER et al (Paragraphs [0046], [0048).
One of the ordinary skill in the art would have been motivated to make this modification, by doing so, advantageously, in the illustrative embodiment of the system 20, the internal processor 22 initiates the persistent communication connection with the external processor 28 and internal processor 22 and also initiates the communication connection with the target device 24, therefore, the pre-existing protocols of the gateway 40 generally require no modification and neither the client 30 nor the external processor 28 require an outside IP address for the gateway 40, the internal processor 22, or the target device 24. Additionally, in the illustrative embodiment of the system 20, the remote access to the target device 24 can be initiated by the client 30 without having to install applications specifically supporting remote access or reverse connections on the client 30 and the target device 24 as taught by WAGNER et al (Paragraph [0036]).
Regarding dependent claim 38, Dorin et al and Mehra et al and WAGNER et al teach, the computer readable non-transitory storage medium of claim 35.
Dorin et al further teaches, wherein executing the execution plan further comprises: providing an execution result of execution of an external table operator of the one or more external table operators to another operator of the execution plan (Col 14 Lines 10-19 (79) Both FIGS. 6A and 6B represent functionally equivalent query plans for a join operation between a first table stored in a first distributed system and an external table that represents data stored in a second distributed system. The join operation requires determining rows of a table T1 and an external table T2 that have a particular attribute in common. As described above with reference to FIG. 5, to compute a join operation on distributed tables, one option is for the system to broadcast the data of either table in its entirety to each of the segment nodes (i.e., providing an execution result of the external table operator to another operator by joining the operators).
Regarding independent claim 39, Dorin; Dov Yaron (US 9679012 B1) teaches, a computer-implemented system for scheduling queries for execution in a database system, the system comprising: a computer processor; and a computer-readable storage medium storing instructions thereon, the instructions when executed by the computer processor cause the processor to perform the steps (Col 20 Lines 4-12 (121) Computers suitable for the execution of a computer program include, by way of example, can be based on general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data) of: generating, by a database system, an execution plan for a database query (Col 6 Lines 59-62 (22) When the master node 112 receives a query, the master node 112 parses the query and generates a query plan. The query plan defines the operations that the master node 112 will distribute to the segment nodes to fulfill the query), the execution plan comprising one or more external table operators for processing data of an external table stored by an external system that is external to the database system (Col 6 Lines 48-58 (21) when a segment node of the first distributed system 110 receives a request to access data represented by the external table, the external table protocol causes the segment node to communicate with an extension service that provides direct streaming and conversion of data stored in the second distributed system 120 (i.e., here the external system is a different distributed system, which is a second distributed system and has external table represents data in the second distributed system). Also see Col 7 Lines 15-34, Abstract);
and executing, by the database system, the execution plan, comprising: sending, by the database system, to the external system, a data request for the external table, wherein the data request includes data stream connection in establishing a data stream connection with the database system system (Col 6 Lines 48-58 (21) the system 110 can represent the data stored in the second distributed system 120 as an external table. An external table has an associated protocol that invokes an extension service when a scan of the external table is requested by a segment node. Thus, when a segment node of the first distributed system 110 receives a request to access data represented by the external table, the external table protocol causes the segment node to communicate with an extension service that provides direct streaming and conversion of data stored in the second distributed system 120 table (i.e., the external system/ second distributed system based on the protocol causes the external table to communicate/ create data stream connection with the first database system) Moreover, each segment node can stream data from the second distributed system 120 in parallel by communicating with a separate extension service. In some implementations, each segment node executes its own separate extension service. Also see Col 7 Lines 15-34 (24));
and responsive to establishing the data stream connection with the external system, performing one or more of receiving a data stream from the external system or sending a data stream to the external system via the data stream connection (Col 6 Lines 48-58 (21) when a segment node of the first distributed system 110 receives a request to access data represented by the external table, the external table protocol causes the segment node to communicate with an extension service that provides direct streaming and conversion of data stored in the second distributed system 120 (i.e., a request to create a data stream connection with one or more external table operators. Also see Col 7 Lines 15-34 (24));
Dorin et al fails to explicitly teach, sending, by the database system, to the external system, a data request for the external table, wherein the data request includes data stream connection information comprising at least a network address and a port of the database system for the external system to use in establishing a data stream connection with the database system; receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators, the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system;
Mehra; Vinod (US 20120331000 A1) teaches, sending, by the database system, to the external system, a data request for the external table, wherein the data request includes data stream connection information for the external system to establish a data stream connection with the database system (Paragraph [0052] the subscribing client device 108 transmitting or otherwise communicating, to the distributing application server 104, a handshake request for negotiating a streaming connection (or channel) with the distributing application server 104, wherein the streaming engine 136 transmits or otherwise communicates a handshake response message that indicates the types of connections supported by the distributing application server 104 (i.e., sending a handshake request to the distributing server));
receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators (Paragraph [0052] in response to receiving the handshake request, the streaming engine 136 transmits a handshake response message indicating that the streaming engine 136 will support a long-polling streaming connection with the subscribing client device 108 (Examiner interprets receiving by the client device/ database system a handshake response message to create a streaming connection associated requests with database. For more detail about streaming connection associated with database is taught in Paragraphs [0018] discloses “the application servers communicate with the data tables based upon the data stored or otherwise maintained by a database and by comparing the list of streaming queries maintained in the database, a connection is established to perform the operations”. Also see Paragraphs [0026], [0031], [0032]));
and responsive to establishing the data stream connection with the external system, performing one or more of receiving a data stream from the external system or sending a data stream to the external system via the data stream connection (Paragraph [0052] In response, the subscribing client device 108 transmits or otherwise communicates a subscription request 604 identifying the streaming query that the user of the client device 108 would like to subscribe to, wherein the streaming engine 136 receives the streaming request and provides the streaming request to the subscription engine 137 for updating the active subscription table 138 to maintain an association between the subscribing client device 108 and the streaming query that the subscribing client device 108 is subscribing to).
Therefore it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Dorin et al by receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators, as taught by Mehra et al (Paragraph [0052]).
One of the ordinary skill in the art would have been motivated to make this modification, by doing so, one advantage of the subject matter described herein is that when the application system 100 is a multi-tenant system, users associated with the same tenant can be notified of data transactions initiated on behalf of other users associated with that tenant substantially in real-time while reducing the load on the multi-tenant database and the application server(s). Another advantage of the subject matter described herein is that the notification data is provided to subscribed users in accordance with their permissions and/or security settings, which may be established by an administrator associated with that tenant. For example, as described above, row level and field level security checks are applied based on the permissions and/or security settings associated with the user of the client device 108 before providing data to the client device 108. In this manner, the client device 108 is only provided fields of data that are viewable or accessible by the user of the client device 108, and those fields of data are only provided for database entries that are viewable or accessible by the user of the client device 108 as taught by Mehra et al (Paragraph [0067]).
Dorin et al and Mehra et al fails to explicitly teach, the data request includes data stream connection information comprising at least a network address and a port of the database system for the external system to use in establishing a data stream connection with the database system; the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system.
WAGNER; Michael J.(US 20080189393 A1) teaches, the data request includes data stream connection information comprising at least a network address and a port of the database system for the external system to use in establishing a data stream connection with the database system (Paragraphs [0043]-[0045] discloses, sending a data request which includes data stream connection comprising IP/ network address and a port number corresponding to the target device intended to be accessed by the client to establish a data stream connection. Also see Paragraph [0050]);
receiving, by the database system, from the external system, a request to create the data stream connection associated with the one or more external table operators, the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system (Fig. 3, Paragraph [0048] the external processor 28 instructs the internal processor 22 to open a communication connection 160 between the internal processor 22 and the target device 24. The internal processor 22 sends an initiation communication 162 to the target device 24, and the target device 24 provides a response communication 164 in order to establish the communication connection 160);
WAGNER et al also teaches, responsive to establishing the data stream connection with the external system, performing one or more of receiving a data stream from the external system or sending a data stream to the external system via the data stream connection (Fig. 2, Paragraph [0048] After the successfully establishing the communication connections 150 and 160, the external processor 28 and internal processor 22 provide a virtual communication connection between the client 30 and the target device 24 by providing a logical communication connection, for example a virtual TCP session, over the persistent communication connection 140).
Therefore it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Dorin et al and Mehra et al by providing the data request includes data stream connection information comprising at least a network address and a port of the database system; the request being directed to the network address and the port of the database system, such that the external system connects to the database system as a client of the database system, as taught by WAGNER et al (Paragraphs [0046], [0048).
One of the ordinary skill in the art would have been motivated to make this modification, by doing so, advantageously, in the illustrative embodiment of the system 20, the internal processor 22 initiates the persistent communication connection with the external processor 28 and internal processor 22 and also initiates the communication connection with the target device 24, therefore, the pre-existing protocols of the gateway 40 generally require no modification and neither the client 30 nor the external processor 28 require an outside IP address for the gateway 40, the internal processor 22, or the target device 24. Additionally, in the illustrative embodiment of the system 20, the remote access to the target device 24 can be initiated by the client 30 without having to install applications specifically supporting remote access or reverse connections on the client 30 and the target device 24 as taught by WAGNER et al (Paragraph [0036]).
Regarding dependent claim 41, Dorin et al and Mehra et al and WAGNER et al teach, the computer-implemented method of claim 21.
WAGNER et al further teaches, wherein executing, by the database system, the execution plan, further comprises after sending the data request to the external system, waiting, by the database system, for the external system to initiate the data stream connection (Paragraphs [0046]-[0048] discloses, sending a request to initiate communication to the target device, waiting to initiate the data stream connection (Examiner interprets waiting process as validating the user and then instructing the internal processor to open a connection between the internal processor and the target device. The internal processor sends an initiation communication to the target device, and the target device provides a response communication in order to establish the communication connection)).
9. Claims 22, 23, 31, 32, 36, 37 and 40 are rejected under 35 U.S.C. 103 as being unpatentable over Dorin; Dov Yaron (US 9679012 B1) in view in view of Mehra; Vinod (US 20120331000 A1), WAGNER; Michael J.(US 20080189393 A1) and in further view of GHARE; GAURAV D (US 20170289240 A1).
Regarding dependent claim 22, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 21.
Mehra et al further teaches, wherein executing, by the database system, the execution plan (Paragraph [0021] the database 110 may include a database management system or other equivalent software that supports querying the data tables 114 (e.g., determining an optimal query plan and retrieving a particular subset of data from the data tables 114 in response to a query initiated or otherwise provided by a virtual application) and outputting the result of a query statement to a querying application server 102, 104 (i.e., determining an optimal/ execution plan and executing the results), further comprises: …executable code configured to provide data to the database system (Paragraph [0025] the application platform 122 authenticates the user and generates the virtual application 124 at run time based upon information provided by the user of the client device 106 and/or data associated with the user (or the user's tenant) maintained by the database 110 (e.g., in one or more of the data tables 114). In this regard, the virtual application 124 includes code, data and/or other dynamic web content provided to the client device 106 that can be parsed, executed or otherwise presented by the browser application 107 running on the client device 106 (i.e., generating the code). Paragraph [0028] the application platform 132 and/or virtual application 134 generates or otherwise provides a streaming engine 136 that is utilized to establish a streaming connection with the client device 108 for providing data used to generate substantially real-time notifications of data transactions satisfying a streaming query that the user of the client device 108 is subscribed to (i.e., application platform and/or virtual application generates a code which is utilized to establish a streaming connection).Also see Paragraph [0027]);
Dorin et al also teaches, wherein executing, by the database system, the execution plan (Col 6 Lines 59-66 (22) discloses “receiving a query by the first distributed system and generating a query plan/ execution plan and executing the plan by the first distributed system”).
Dorin et al, Mehra et al and WAGNER et al fails to explicitly teach, generating executable code configured to provide data to the database system; and sending the generated executable code to the external system for executing to provide the data stream to the database system.
GHARE; GAURAV D (US 20170289240 A1) teaches, generating executable code configured to provide data to the database system; and sending the generated executable code to the external system for executing to provide the data stream to the database system (Paragraph [0038] In at least some embodiments, control plane 310 may implement stream processing function interpretation 350. Stream processing interpretation 350 may provide various libraries, compilers, or any other kind of interpreter that may receive a stream processing function (e.g., operations, input data streams, destinations, etc.) and generate an executable form (e.g., object code, byte code, workflow, or other set of instructions) (i.e., generating executable code). For example, in some embodiments, processing nodes 370 may implement a common execution engine so that stream processing functioning interpretation 350 may provide an executable that can run on any available processing node (i.e., sending the executable code to different processing nodes and provide the connection between different processing nodes). In some embodiments, stream processing function interpretation 350 may validate received stream processing functions for errors (e.g., same input and result destination), leaving interpretation and execution to other components, such as execution engines located at processing nodes 370. In various embodiments, stream processing function 350 may evaluate input data streams to determine a data scheme for the execution of a stream processing function. For instance, stream processing function interpretation may access and analyze a group of data records to determine a schema for the data stream, including labeling or identifying common or expected attributes in data records, which may be provided back to a client via interface 312).
Therefore it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Dorin et al, Mehra et al and WAGNER et al by generating executable code …; and sending the generated executable code to the external system for executing to provide the data stream to the database system as taught by GHARE et al (Paragraph [0037)).
One of the ordinary skill in the art would have been motivated to make this modification, by doing so, a managed stream processing system may offer a library of predefined stream processing functions or operations to be included within functions which may be customized to build various stream processing applications, including business-critical streaming applications like real time traffic congestion analysis, emergency call monitoring, fraud detection, and industrial sensor analytics as taught by GHARE et al (Paragraph [0016)).
Regarding dependent claim 23, Dorin et al, Mehra et al, WAGNER et al and GHARE et al teach, the computer-implemented method of claim 22.
GHARE et al further teaches, wherein the executable code includes code configured to at least one of establish the data stream connection with the database system or send data of the data stream to the database system (Paragraph [0059] In at least some embodiments, stream processing function interface 700 may implement a function specification element 740 which may provide various controls, interfaces, or other graphical elements to upload, select, specify, and initiate the execution of a stream processing function, as illustrated in FIG. 7B. For example, a function, such as function 742 may be graphically illustrated to illustrate the various connections between stream sources, operations and result destinations. Operations, such as selected operation 748, connections, sources, or result destinations may be selected, reconfigured, added, or removed from function 742 by manipulating the representative graphical elements. User interface elements, such as element 744, may be implemented to allow a user to select previously saved or defined operation (e.g., from stream processing functions library 340 in FIG. 3) inclusion in function 742. Function specification 740 may also implement a user interface element 746 to upload operations (or entire functions). For instance, selecting the upload operation element 746 may initiate a series of user interface windows or interactions to perform a data transfer from a client to managed stream processing service 220 that includes a code file or executable object. Also see Paragraph [0038] (i.e., the executable code includes input data stream such as (e.g., data stream names, network addresses, or other identification information)).
Mehra et al also teaches, …establish the data stream connection with the database system or send data of the data stream to the database system (Paragraph [0022] upon definition of a query statement for a streaming query that is being defined by a user of client device 106 via the virtual application 124, the application server 102 and/or application platform 122 may parse or otherwise analyze the query statement to identify the database object(s) referenced in the query statement along with the field(s) of the database object(s) referenced in the query statement, and store that identified metadata in association with the other definition information for the streaming query in the definition table 118 (i.e., sending the code/ operations to be performed by providing a data stream to the database based on the query by setting up a data stream connection). Also see Paragraph [0028] As described in greater detail below in the context of FIG. 5, the subscription engine 137 monitors the notification table 116 for data transactions that correspond to a streaming query that is subscribed to by the client device 108, in response to identifying a data transaction satisfying the client device 108 user's subscribed streaming query, the subscription engine 137 obtains, from the data tables 114, data associated with that notification-triggering data transaction and provides at least a portion of the obtained data to the streaming engine 136 along with the identifier for the subscribed client device 108 that should receive the obtained data. The streaming engine 136 communicates or otherwise provides the portion of the obtained data to the browser application 109 via the streaming connection associated with the received subscribed client device identifier, and in turn, the browser application 109 generates or otherwise provides a notification of the data transaction that satisfied the subscribed streaming query to the user of the client device 108 substantially in real-time based on the portion of obtained data provided by the streaming engine 136 on the application server 104).
Regarding dependent claim 31, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 21.
Dorin et al, Mehra et al and WAGNER et al fails to explicitly teach, wherein the external table operator is an external table modify operator, and wherein receiving the data stream includes receiving a set of records from the external system via the data stream connection, and further comprising: modifying the set of records; and sending the set of records, as modified, to the external system via the data stream connection.
GHARE; GAURAV D (US 20170289240 A1) teaches, wherein the external table operator is an external table modify operator, and wherein receiving the data stream includes receiving a set of records from the external system via the data stream connection, and further comprising: modifying the set of records; and sending the set of records, as modified, to the external system via the data stream connection
wherein the external table operator is an external table modify operator, and wherein receiving the data stream includes receiving a set of records from the external system via the data stream connection, and further comprising: modifying the set of records; and sending the set of records, as modified, to the external system via the data stream connection (Paragraph [0046] Stream processing nodes 400 may implement function application engine(s) 420 to perform the operation(s) of the stream processing function on data records retrieved by stream data retrieval 410. In some embodiments, function application engine(s) 420 may be implemented for a specific scheme or structure of data records. For example, in some embodiments data records may specify data records in a relational format with rows as different data records and columns as different attributes. Function application engine(s) 420 may act as a storage engine (e.g., SQLengine) that applies the specified operations (e.g., select, add, remove, modify, etc.) to data records according to the data scheme of the data records. Thus if function application engine 420 were a SQL storage engine, for instance, function application engine 420 would treat a data record as a table and perform the specified operations upon attributes of a data records that mapped to different columns of the table. Also see Figs. 7A ,7B and 8 and related paragraphs which shows the modifying the operations and the sending and receiving is done using stream connection. Also see Paragraph [0049], [0051] ).
Therefore it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Dorin et al, Mehra et al and WAGNER et al wherein the external table operator is an external table modify operator, and wherein receiving the data stream includes receiving a set of records from the external system via the data stream connection, and further comprising: modifying the set of records; and sending the set of records, as modified, to the external system via the data stream connection as taught by GHARE et al (Paragraph [0037)).
One of the ordinary skill in the art would have been motivated to make this modification, by doing so, a managed stream processing system may offer a library of predefined stream processing functions or operations to be included within functions which may be customized to build various stream processing applications, including business-critical streaming applications like real time traffic congestion analysis, emergency call monitoring, fraud detection, and industrial sensor analytics as taught by GHARE et al (Paragraph [0016)).
Regarding dependent claim 32, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented method of claim 21.
Dorin et al, Mehra et al and WAGNER et al fails to explicitly teach, wherein the external table operator is an external table delete operator, and wherein sending the data stream includes sending a set of records to the external system via the data stream connection for deletion.
GHARE; GAURAV D (US 20170289240 A1) teaches, wherein the external table operator is an external table delete operator, and wherein sending the data stream includes sending a set of records to the external system via the data stream connection for deletion (Paragraph [0046] Stream processing nodes 400 may implement function application engine(s) 420 to perform the operation(s) of the stream processing function on data records retrieved by stream data retrieval 410. In some embodiments, function application engine(s) 420 may be implemented for a specific scheme or structure of data records. For example, in some embodiments data records may specify data records in a relational format with rows as different data records and columns as different attributes. Function application engine(s) 420 may act as a storage engine (e.g., SQL engine) that applies the specified operations (e.g., select, add, remove, modify, etc.) to data records according to the data scheme of the data records. Thus if function application engine 420 were a SQL storage engine, for instance, function application engine 420 would treat a data record as a table and perform the specified operations upon attributes of a data records that mapped to different columns of the table. Also see Figs. 7A, 7B and 8 and related paragraphs which shows the modifying the operations and the sending and receiving is done using stream connection. Also see Paragraph [0049], [0051]).
Therefore it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Dorin et al, Mehra et al and WAGNER et al wherein the external table operator is an external table delete operator, and wherein sending the data stream includes sending a set of records to the external system via the data stream connection for deletion as taught by GHARE et al (Paragraph [0037)).
One of the ordinary skill in the art would have been motivated to make this modification, by doing so, a managed stream processing system may offer a library of predefined stream processing functions or operations to be included within functions which may be customized to build various stream processing applications, including business-critical streaming applications like real time traffic congestion analysis, emergency call monitoring, fraud detection, and industrial sensor analytics as taught by GHARE et al (Paragraph [0016)).
Regarding dependent claim 36, Dorin et al, Mehra et al and WAGNER et al teach, the computer readable non-transitory storage medium of claim 35.
Mehra et al further teaches, wherein the instructions when executed by a processor further cause the processor to execute, by the database system, the execution plan (Paragraph [0021] the database 110 may include a database management system or other equivalent software that supports querying the data tables 114 (e.g., determining an optimal query plan and retrieving a particular subset of data from the data tables 114 in response to a query initiated or otherwise provided by a virtual application) and outputting the result of a query statement to a querying application server 102, 104. (i.e., determining an optimal/ execution plan and executing the results)), including: … executable code configured to provide data to the database system (Paragraph [0025] the application platform 122 authenticates the user and generates the virtual application 124 at run time based upon information provided by the user of the client device 106 and/or data associated with the user (or the user's tenant) maintained by the database 110 (e.g., in one or more of the data tables 114). In this regard, the virtual application 124 includes code, data and/or other dynamic web content provided to the client device 106 that can be parsed, executed or otherwise presented by the browser application 107 running on the client device 106 (i.e., generating the code). Paragraph [0028] the application platform 132 and/or virtual application 134 generates or otherwise provides a streaming engine 136 that is utilized to establish a streaming connection with the client device 108 for providing data used to generate substantially real-time notifications of data transactions satisfying a streaming query that the user of the client device 108 is subscribed to (i.e., application platform and/or virtual application generates a code which is utilized to establish a streaming connection).Also see Paragraph [0027]);
Dorin et al also teaches, wherein the instructions when executed by a processor further cause the processor to execute, by the database system, the execution plan (Col 6 Lines 59-66 (22) discloses “receiving a query by the first distributed system and generating a query plan/ execution plan and executing the plan by the first distributed system”).
Dorin et al, Mehra et al and WAGNER et al fails to explicitly teach, generating executable code configured to provide data to the database system; and sending the generated executable code to the external system for executing to provide the data stream to the database system.
GHARE; GAURAV D (US 20170289240 A1) teaches, generating executable code configured to provide data to the database system; and sending the generated executable code to the external system for executing to provide the data stream to the database system (Paragraph [0038] In at least some embodiments, control plane 310 may implement stream processing function interpretation 350. Stream processing interpretation 350 may provide various libraries, compilers, or any other kind of interpreter that may receive a stream processing function (e.g., operations, input data streams, destinations, etc.) and generate an executable form (e.g., object code, byte code, workflow, or other set of instructions) (i.e., generating executable code). For example, in some embodiments, processing nodes 370 may implement a common execution engine so that stream processing functioning interpretation 350 may provide an executable that can run on any available processing node (i.e., sending the executable code to different processing nodes and provide the connection between different processing nodes). In some embodiments, stream processing function interpretation 350 may validate received stream processing functions for errors (e.g., same input and result destination), leaving interpretation and execution to other components, such as execution engines located at processing nodes 370. In various embodiments, stream processing function 350 may evaluate input data streams to determine a data scheme for the execution of a stream processing function. For instance, stream processing function interpretation may access and analyze a group of data records to determine a schema for the data stream, including labeling or identifying common or expected attributes in data records, which may be provided back to a client via interface 312).
Therefore it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Dorin et al, Mehra et al and WAGNER et al by generating executable code …; and sending the generated executable code to the external system for executing to provide the data stream to the database system as taught by GHARE et al (Paragraph [0037)).
One of the ordinary skill in the art would have been motivated to make this modification, by doing so, a managed stream processing system may offer a library of predefined stream processing functions or operations to be included within functions which may be customized to build various stream processing applications, including business-critical streaming applications like real time traffic congestion analysis, emergency call monitoring, fraud detection, and industrial sensor analytics as taught by GHARE et al (Paragraph [0016)).
Regarding dependent claim 37, Dorin et al, Mehra et al, WAGNER et al and GHARE et al teach, the computer readable non-transitory storage medium of claim 36.
GHARE et al further teaches, wherein the executable code includes code configured to at least one of establish the data stream connection with the database system or send data of the data stream to the database system (Paragraph [0059] In at least some embodiments, stream processing function interface 700 may implement a function specification element 740 which may provide various controls, interfaces, or other graphical elements to upload, select, specify, and initiate the execution of a stream processing function, as illustrated in FIG. 7B. For example, a function, such as function 742 may be graphically illustrated to illustrate the various connections between stream sources, operations and result destinations. Operations, such as selected operation 748, connections, sources, or result destinations may be selected, reconfigured, added, or removed from function 742 by manipulating the representative graphical elements. User interface elements, such as element 744, may be implemented to allow a user to select previously saved or defined operation (e.g., from stream processing functions library 340 in FIG. 3) inclusion in function 742. Function specification 740 may also implement a user interface element 746 to upload operations (or entire functions). For instance, selecting the upload operation element 746 may initiate a series of user interface windows or interactions to perform a data transfer from a client to managed stream processing service 220 that includes a code file or executable object. Also see Paragraph [0038] (i.e., the executable code includes input data stream such as (e.g., data stream names, network addresses, or other identification information)).
Regarding dependent claim 40, Dorin et al, Mehra et al and WAGNER et al teach, the computer-implemented system of claim 39.
Mehra et al further teaches, wherein the instructions when executed by a processor further cause the processor to execute, by the database system, the execution plan, including: generating executable code configured to provide data to the database system; and sending the generated executable code to the external system for executing to provide the data stream to the database system (Paragraph [0021] the database 110 may include a database management system or other equivalent software that supports querying the data tables 114 (e.g., determining an optimal query plan and retrieving a particular subset of data from the data tables 114 in response to a query initiated or otherwise provided by a virtual application) and outputting the result of a query statement to a querying application server 102, 104. (i.e., determining an optimal/ execution plan and executing the results)), further comprises: …executable code configured to provide data to the database system (Paragraph [0025] the application platform 122 authenticates the user and generates the virtual application 124 at run time based upon information provided by the user of the client device 106 and/or data associated with the user (or the user's tenant) maintained by the database 110 (e.g., in one or more of the data tables 114). In this regard, the virtual application 124 includes code, data and/or other dynamic web content provided to the client device 106 that can be parsed, executed or otherwise presented by the browser application 107 running on the client device 106 (i.e., generating the code). Paragraph [0028] the application platform 132 and/or virtual application 134 generates or otherwise provides a streaming engine 136 that is utilized to establish a streaming connection with the client device 108 for providing data used to generate substantially real-time notifications of data transactions satisfying a streaming query that the user of the client device 108 is subscribed to (i.e., application platform and/or virtual application generates a code which is utilized to establish a streaming connection).Also see Paragraph [0027]);
Dorin et al also teaches, wherein the instructions when executed by a processor further cause the processor to execute, by the database system, the execution plan (Col 6 Lines 59-66 (22) discloses “receiving a query by the first distributed system and generating a query plan/ execution plan and executing the plan by the first distributed system”).
Dorin et al, Mehra et al and WAGNER et al fails to explicitly teach, generating executable code configured to provide data to the database system; and sending the generated executable code to the external system for executing to provide the data stream to the database system.
GHARE; GAURAV D (US 20170289240 A1) teaches, generating executable code configured to provide data to the database system; and sending the generated executable code to the external system for executing to provide the data stream to the database system (Paragraph [0038] In at least some embodiments, control plane 310 may implement stream processing function interpretation 350. Stream processing interpretation 350 may provide various libraries, compilers, or any other kind of interpreter that may receive a stream processing function (e.g., operations, input data streams, destinations, etc.) and generate an executable form (e.g., object code, byte code, workflow, or other set of instructions) (i.e., generating executable code). For example, in some embodiments, processing nodes 370 may implement a common execution engine so that stream processing functioning interpretation 350 may provide an executable that can run on any available processing node (i.e., sending the executable code to different processing nodes and provide the connection between different processing nodes). In some embodiments, stream processing function interpretation 350 may validate received stream processing functions for errors (e.g., same input and result destination), leaving interpretation and execution to other components, such as execution engines located at processing nodes 370. In various embodiments, stream processing function 350 may evaluate input data streams to determine a data scheme for the execution of a stream processing function. For instance, stream processing function interpretation may access and analyze a group of data records to determine a schema for the data stream, including labeling or identifying common or expected attributes in data records, which may be provided back to a client via interface 312).
Therefore it would have been obvious to one of the ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Dorin et al, Mehra et al and WAGNER et al by generating executable code …; and sending the generated executable code to the external system for executing to provide the data stream to the database system as taught by GHARE et al (Paragraph [0037)).
One of the ordinary skill in the art would have been motivated to make this modification, by doing so, a managed stream processing system may offer a library of predefined stream processing functions or operations to be included within functions which may be customized to build various stream processing applications, including business-critical streaming applications like real time traffic congestion analysis, emergency call monitoring, fraud detection, and industrial sensor analytics as taught by GHARE et al (Paragraph [0016)).
Closest Prior art
10. The prior art made of record and not relied upon is considered pertinent to the applicant’s disclosure. Klein, Johannes (US 20020038313 A1) teaches, The SQL compiler and SQL executor in a database management system are extended to process queries requiring streaming mode processing of data stored in a table. A scan operator performs table access functions during execution of the streaming mode query. The scan operator first performs an initial scan to access rows in a specified database table, and then performs a delta scan to access new rows added to the table, as well as rows modified by other queries. The scan operator continues to process new data added to the table until the initiating user or application closes the associated cursor. A set of data structures are provided to keep track of active scan operators, including a session control block that includes fields for Keeping track of whether the scan operator is performing an initial scan or a delta scan. The session control block also includes, for streaming mode scan operators, a delta scan list of new and modified rows to be processed in the delta scan. was suspended because of rows locked by the transaction are automatically rescheduled for execution (Abstract).
11. Examiner has pointed out particular references contained in the prior arts of record in the body of this action for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and Figures may apply as well. It is respectfully requested from the applicant, in preparing the response, to consider fully the entire references as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior arts or disclosed by the examiner. It is noted that any citation to specific pages, columns, figures, or lines in the prior art references any interpretation of the references should not be considered to be limiting in any way. A reference is relevant for all it contains and may be relied upon for all that it would have reasonably suggested to one having ordinary skill in the art. In re Heck, 699 F.2d 1331-33, 216 USPQ 1038-39 (Fed. Cir. 1983) (quoting In re Lemelson, 397 F.2d 1006, 1009, 158 USPQ 275, 277 (CCPA 1968))).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SUMAN RAJAPUTRA whose telephone number is (571) 272-4669. The examiner can normally be reached between 8:00 AM - 5:00 PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Tony Mahmoudi (571) 272-4078 can be reached. 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.
/S. R./
Examiner, Art Unit 2163
/ALEX GOFMAN/Primary Examiner, Art Unit 2163