DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Status of Claims:
Claims 1-20 are pending in Instant Application.
Priority
Examiner acknowledges Applicant’s claim to priority benefits of Application Numbers: 17/409,203 filed 08/23/2021; 15/912,856 filed 03/06/2018; 62/557,042 filed 09/11/2017; 62/557,041 filed 09/11/2017; and 62/554,942 filed 09/06/2017.
Information Disclosure Statement
The information disclosure statement(s) (IDS) submitted on 08/27/2024 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement(s) is being considered if signed and initialed by the Examiner.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1-20 rejected on the ground of nonstatutory double patenting as being unpatentable over claim 1-12 of U.S. Patent No. 12,072,851. Although the claims at issue are not identical, they are not patentably distinct from each other because they are drawn to obvious variations.
Claims of Instant Application
Claims of U.S. Patent No. 12,072,851
Reasons
1. A system for connection concentration, comprising: a microprocessor, and a software component executing thereon that provides connectivity between client applications and a database environment, including: providing, for access by the client applications, a plurality of inbound connections that are shared by the client applications and enable the client applications to communicate requests, via the inbound connections, to the database environment; and providing a plurality of outbound connections that are shareable and operate to communicate received requests to the database environment; associating one or more inbound connections with application contexts wherein a context information for a particular client application is associated with an application connection identifier; and selectively mapping pairs of inbound connections to outbound connections, based on the context information for the particular client application associated with an application connection identifier and a session state; wherein in response to a request received from a client application, a connection pair is borrowed and used to process the request, based on the application connection identifier and session state, including one of retrieving requested data from a cache or querying the database environment.
1. A system for connection concentration, comprising: a microprocessor, and a software component executing thereon that provides connectivity between client applications and a database environment, including: providing, for access by the client applications, a plurality of inbound connections that are shareable by the client applications and enable the client applications to communicate requests, via the inbound connections, to the database environment; providing a plurality of outbound connections that operate to communicate received requests to the database environment; multiplexing the inbound connections and the outbound connections for use with transaction requests, including maintaining one or more cursor maps for use with the inbound connections associated with the client applications and the outbound connections associated with the database environment; associating one or more of the inbound connections with an application context associated with a client application and including an application connection identifier; and selectively mapping the one or more inbound connections associated with the application context with one or more of the outbound connections, based on the application context for the client application and a session state, to provide a mapping of connections associated with the application context; wherein the software component operates to provide a session abstraction layer for use by the client applications, including that a first client application can use a first driver type to connect to the database environment, and a second client application can use a second driver type to connect to the database environment; wherein the software component tracks session states, request boundaries, and cursors to reuse database connections across the first and second client applications; wherein the software component uses the application context, session states, request boundaries, and cursors, to match an application connection to a database connection in a connection pool, wherein in response to a request received from the client application, a request boundary is determined, and a connection pair provided within the mapping of connections associated with the application context is used to process the request, including one of retrieving a requested data from a cache or querying the database environment for the requested data.
The limitations are similar; however, the instant application is broader than the patent.
2. The system of claim 1, wherein the software component operates as a transparency engine, wherein first and second client applications use different drivers to connect to the database environment, wherein the software component operates to detect request boundaries for requests from the first and second client applications that use different database drivers.
2. The system of claim 1, wherein the software component operates as a transparency engine, wherein first and second client applications use different drivers to connect to the database environment, wherein the software component operates to detect request boundaries for requests from the first and second client applications that use different database drivers.
Same claim limitations.
3. The system of claim 1, wherein the database environment is a cloud database service.
3. The system of claim 1, wherein the database environment is a cloud database service.
Same claim limitation.
4. The system of claim 1, wherein the software component is configured to connect a plurality of client applications to a database, using a protocol to perform non-blocking processing of data packets.
4. The system of claim 1, wherein the software component is configured to connect a plurality of clients applications to a database, using a protocol to perform non-blocking processing of data packets.
Same claim limitation.
5. The system of claim 1, wherein a first client application can use a first driver type to connect to the database environment, and a second client application can use a second driver type to connect to the database environment.
a first client application can use a first driver type to connect to the database environment, and a second client application can use a second driver type to connect to the database environment;
Same scope as claim 1 of the patent.
6. The system of claim 1, wherein the inbound connections are multiplexed with the outbound connections for use with transaction requests, including maintaining one or more cursor maps for use with the inbound connections associated with the client applications and the outbound connections associated with the database environment.
multiplexing the inbound connections and the outbound connections for use with transaction requests, including maintaining one or more cursor maps for use with the inbound connections associated with the client applications and the outbound connections associated with the database environment;
Same scope as claim 1 of the patent.
7. The system of claim 1, wherein the software component uses the application context, session states, request boundaries, and cursors, to match an application connection to a database connection in a connection pool.
wherein the software component uses the application context, session states, request boundaries, and cursors, to match an application connection to a database connection in a connection pool,
Same scope as claim 1 of the patent.
8-14
5-8
Method same as system.
15-20
9-12
Non-transitory computer readable storage medium same as system.
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1, 3, 6-8, 10, 13-15, 17, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Sah et al. (U.S. Publication No. 2016/0026683) [Applicant’s IDS] in view of Singh et al. (U.S. Patent No. 8,543,554) [Applicant’s IDS].
As per claim 1, Sah discloses a system for connection concentration (Sah: Abstract; a system for connection multiplexing), comprising:
a microprocessor (Sah: paragraph 0078; a microprocessor unit), and a software component executing thereon that provides connectivity between client applications and a database environment (Sah: paragraph 0289; An appliance 200 may be deployed intermediary to one or more clients 102a-n (generally referred to as clients 102) via network 104 and a plurality of servers 106a-n (generally referred to as servers 106) (i.e. database servers) via network 104′)…paragraph 0257; The appliance 200 may further include write vServer 708. The write vServer 708 may include software executable on a device), including:
providing, for access by the client applications, a plurality of inbound connections that are shared by the client applications and enable the client applications to communicate requests, via the inbound connections, to the database environment (Sah: fig. 1A and paragraph 0061; The client 102 via networks 104, 104′ and appliance 200 may request an application and data file from the server 106. Client devices 102a-102n send requests to appliance 200 via inbound connections, then appliance 200 forwards the requests to database servers 106a-106n via outbound connections); and
providing a plurality of outbound connections that are shareable and operate to communicate received requests to the database environment (Sah: fig. 1A and paragraph 0061; the appliance 200 may forward a request from the client 102 to the server 106. Client devices 102a-102n send requests to appliance 200 via inbound connections, then appliance 200 forwards the requests to database servers 106a-106n via outbound connections);
associating one or more inbound connections with application contexts wherein a context information for a particular client application is associated with an application connection identifier (Sah: paragraph 0269; The cursor map 716 may store the client cursor identifiers received in the SQL query. The cursor map includes entries for server side identifiers corresponding to one or more connections established between the appliance 200 and one or more of the servers 106); and
selectively mapping pairs of inbound connections to outbound connections, based on the context information for the particular client application associated with an application connection identifier and a session state (Sah: paragraph 0269; The appliance 200 may further include a cursor map 716. The cursor map 716 may include data structures such as lookup tables or hash tables to generate, store, and manage cursor identifiers associated with client side connections (i.e. inbound connections) and server side connections (i.e. outbound connections) to the appliance 200…paragraph 0111; the health monitoring program 216 may check any status, error or history logs provided by any program, process, service or task to determine any condition, status or error with any portion of the appliance 200).
Sah teaches at least in paragraph 0104 providing access, control and management of objects, data or content being cached by the appliance 200 in addition to access. Sah also teaches, at least in paragraph 0227, determining boundaries, and in paragraph 0244, multiplexing connections to one or more of a plurality of database servers. In addition, Sah teaches at least in paragraph 0255 that the vServer 704 may multiplex SQL queries using a cursor identifier, and in paragraph 0256 teaches forward the SQL query to the selected server.
However Sah does not explicitly mention wherein in response to a request received from a client application, a connection pair is borrowed and used to process the request, based on the application connection identifier and session state, including one of retrieving requested data from a cache or querying the database environment.
However Singh teaches:
wherein in response to a request received from a client application, a connection pair is borrowed and used to process the request, based on the application connection identifier and session state, including one of retrieving requested data from a cache or querying the database environment (Singh: col. 3, lines 51-58; when a user application submits a database query, it is received first by the query caching system which checks whether a cacheability rule has been specified that matches the incoming query. If such a rule does exist, then a lookup is performed in the cache for that particular query…col. 6, lines 42-43; the database accelerator 111 receives a connection request from a client system).
Therefore it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings as in Singh with the teachings as in Sah. The motivation for doing so would have been for defining and handling database query caching transparently (Singh: col. 1, lines 8-9).
As per claim 3, the modified Sah teaches the system of claim 1, wherein the database environment is a cloud database service (Sah: fig. 1A and paragraph 0058; a client 10 is in communication with a server 106 via network 104, 104′ and appliance 200…the client 102 may reside in a remote office of a company, e.g., a branch office, and the server 106 may reside at a corporate data center…paragraph 0247; The servers 106 may be database servers. The database servers 106 can be accessed remotely over a network, which corresponds to a cloud-based database environment).
As per claim 6, the modified Sah teaches the system of claim 1, wherein the inbound connections are multiplexed with the outbound connections for use with transaction requests, including maintaining one or more cursor maps for use with the inbound connections associated with the client applications and the outbound connections associated with the database environment (Sah: paragraph 0269; the cursor map includes entries for client side cursor identifiers received in an SQL query from one or more clients of the plurality of clients…the cursor map includes entries for server side identifiers corresponding to one or more connections established between the appliance 200 and one or more of the servers 106. The cursor map 716 may identify a relationship between one or more client cursor identifiers and one or more server cursor identifiers. The appliance 200 may use the cursor map 716 to identify one or connections to the servers 106 to multiplex based on a server cursor identifier).
As per claim 7, the modified Sah teaches the system of claim 1, wherein the software component uses the application context, session states, request boundaries, and cursors, to match an application connection to a database connection in a connection pool (Sah: paragraph 0277; identify one of the following predetermined data for the SQL query: client user name, client database, and request query object… paragraph 0111; the monitoring service 198 and/or monitoring agent 197 performs monitoring and performance measurement of any session or connection to the application…paragraph 0269; the cursor map includes entries for server side identifiers corresponding to one or more connections established between the appliance 200 and one or more of the servers 106… the appliance 200 may use the cursor map 716 to identify one or connections to the servers 106 to multiplex based on a server cursor identifier. Also see Singh: col. 9, lines 32-33; The database administrator also enters a connection limit (number of connections) for each of the servers…col. 12, lines 15-16; the accelerator 111 first determines whether an existing connection is available in the connection pool…col. 3, lines 51-58; when a user application submits a database query, it is received first by the query caching system which checks whether a cacheability rule has been specified that matches the incoming query. If such a rule does exist, then a lookup is performed in the cache for that particular query. If a matching query exists, then the response data previously cached for that query is returned to the client application).
The same motivation to combine as the independent claim applies here.
With respect to claim 8, it is substantially similar to claim 1 and is rejected in the same manner, the same art and reasoning applying. Further, Sah also teaches a method for connection concentration (Sah: Abstract; a method for connection multiplexing structured query language (SQL) queries among a plurality of database servers), comprising: providing a software component (Sah: paragraph 0065; the application comprises any type of software), executing on a microprocessor (Sah: paragraph 0078; a microprocessor unit), that provides connectivity between client applications and a database environment (Sah: paragraph 0289; An appliance 200 may be deployed intermediary to one or more clients 102a-n (generally referred to as clients 102) via network 104 and a plurality of servers 106a-n (generally referred to as servers 106) (i.e. database servers) via network 104′)).
Regarding claims 10, 13, and 14, they are substantially similar to claims 3, 6, and 7, respectively, and are rejected in the same manner, the same arts and reasoning applying.
With respect to claim 15, it is substantially similar to claim 1 and is rejected in the same manner, the same art and reasoning applying. Further, Sah also teaches a non-transitory computer readable storage medium (Sah: paragraph 0321; one or more computer-readable programs embodied on or in one or more articles of manufacture), including instructions stored thereon which when read and executed by one or more computers cause the one or more computers to perform the method (Sah: paragraph 0321; The term “article of manufacture” as used herein is intended to encompass code or logic accessible from and embedded in one or more computer-readable devices).
Regarding claims 17 and 20, they are substantially similar to claims 3 and 6, respectively, and are rejected in the same manner, the same arts and reasoning applying.
Claims 2, 5, 9, 12, 16, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Sah et al. (U.S. Publication No. 2016/0026683) [Applicant’s IDS], in view of Singh et al. (U.S. Patent No. 8,543,554) [Applicant’s IDS], and further in view of Hind et al. (U.S. Publication No. 2003/0135505).
As per claim 2, the modified Sah teaches the system of claim 1, wherein the software component operates as a transparency engine (Sah: paragraph 0141; the client agent 120 and/or interceptor may operate at or interface with the network stack 310 in a manner transparent to any application, a user of the client 102, and any other computing device, such as a server, in communications with the client 102. Also see Singh: col. 5, lines 56-57; a database accelerator according to the invention transparently inserted into the architecture).
However the modified Sah does not explicitly mention wherein first and second client applications use different drivers to connect to the database environment, wherein the software component operates to detect request boundaries for requests from the first and second client applications that use different database drivers.
However Hind teaches
wherein first and second client applications use different drivers to connect to the database environment, wherein the software component operates to detect request boundaries for requests from the first and second client applications that use different database drivers (Hind: paragraph 0020; the interface to the proxy database driver can conform to the interface of an underlying database connectivity driver, for example ODBC or JDBC. In this way, an application can be configured to operate with the proxy database driver merely be substituting a reference to the underlying database connectivity driver with a reference to the proxy database driver…paragraph 0023; end-users 115 can interact with the application 150 and can generate data requests 120 which first can be received in the application 160 at the edge server 150. The application 160, using the API of the database proxy driver 170, can request the establishment of a connection with a suitable database server. The database proxy driver 170, instead of merely establishing a connection with a pre-configured database server, can perform an edge task such as load balancing in order to identify a suitable database server with which a connection can be established. Once the database server has been identified, the database proxy driver 170, using the API of the underlying database connectivity driver 180, can establish a connection with the identified database server. Once a connection has been established, the data request 120 can be processed).
Therefore it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings as in Hind with the teachings as in Sah and Singh. The motivation for doing so would have been for providing database drivers which merely facilitate and control access to a database server (Hind: paragraph 0020).
As per claim 5, the modified Sah teaches the system of claim 1.
However the modified Sah does not explicitly mention wherein a first client application can use a first driver type to connect to the database environment, and a second client application can use a second driver type to connect to the database environment.
However Hind teaches:
wherein a first client application can use a first driver type to connect to the database environment, and a second client application can use a second driver type to connect to the database environment (Hind: paragraph 0020; the interface to the proxy database driver can conform to the interface of an underlying database connectivity driver, for example ODBC or JDBC…an application can be configured to operate with the proxy database driver merely be substituting a reference to the underlying database connectivity driver with a reference to the proxy database driver).
Therefore it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings as in Hind with the teachings as in Sah and Singh. The motivation for doing so would have been for providing database drivers which merely facilitate and control access to a database server (Hind: paragraph 0020).
Regarding claims 9 and 12, they are substantially similar to claims 2 and 5, respectively, and are rejected in the same manner, the same arts and reasoning applying.
Regarding claims 16 and 19, they are substantially similar to claims 2 and 5, respectively, and are rejected in the same manner, the same arts and reasoning applying.
Claims 4, 11, and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Sah et al. (U.S. Publication No. 2016/0026683) [Applicant’s IDS], in view of Singh et al. (U.S. Patent No. 8,543,554) [Applicant’s IDS], and further in view of Schwebke et al. (U.S. Publication No. 2017/0126775) [Applicant’s IDS].
As per claim 4, the modified Sah teaches the system of claim 1, wherein the software component is configured to connect a plurality of clients applications to a database, using a protocol (Sah: fig. 1A and paragraph 0042; one or more clients 102a-102n (also generally referred to as local machine(s) 102, or client(s) 102) in communication with one or more servers 106a-106n (also generally referred to as server(s) 106, or remote machine(s) 106) via one or more networks 104, 104′ (generally referred to as network 104). In some embodiments, a client 102 communicates with a server 106 via an appliance 200…paragraph 0106; multi-protocol compression engine 238 compresses bi-directionally between clients 102a-102n and servers 106a-106n).
However the modified Sah does not explicitly mention using a protocol to perform non-blocking processing of data packets.
However Schwebke teaches:
using a protocol to perform non-blocking processing of data packets (Schwebke: paragraph 0018; implements the RDP protocol by using a single, non-blocking thread that must process incoming and outgoing RDP packets).
Therefore it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings as in Schwebke with the teachings as in the modified Sah. The motivation for doing so would have been for creating a non-blocking thread by the cross-platform scripting language client at the RDP web client and for determining a protocol data unit (PDU) type of the packet and transcodes the received packet language client based, at least in part, on the determined PDU type (Schwebke: paragraph 0004).
Regarding claims 11 and 18, they are substantially similar to claim 4, and are rejected in the same manner, the same arts and reasoning applying.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KARINA J. GARCIA-CHING whose telephone number is (571)270-7159. The examiner can normally be reached Monday - Wednesday (9:00 AM - 5:00 PM).
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Vivek Srivastava can be reached at (571) 272-7304. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/KARINA J GARCIA-CHING/Examiner, Art Unit 2449
/VIVEK SRIVASTAVA/Supervisory Patent Examiner, Art Unit 2449