IP Library › Granted Patent US 12,353,411
Granted Patent B2
US 12,353,411 · App. 17/822,512 · Granted Jul 8, 2025

Database systems and client-side query transformation methods

Inventors: Eldor Khalyknazarov (Allen, TX); Puneet Dhaliwal (Dublin, CA); Dai Duong Doan (Alameda, CA)
G06F16/24534G06F16/2445
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,353,411
App. No.
17/822,512
Granted
Jul 8, 2025
Kind
B2
Abstract

Database systems and methods are provided for providing record data to an application extension associated with a native application at a client device. One method involves a cross-platform service receiving, from the native application, a query for record data associated with a record at a database system on behalf of the application extension, determining a data source for retrieving the record data based at least in part on a configuration of the native application, converting the query into a transformed query having a different format associated with the identified data source, retrieving the record data from the identified data source using the transformed query, and providing the record data to the application extension via the native application, wherein the application extension is configurable to generate a component of a graphical user interface display using the record data.

Claims (34)

1. A method of providing record data to an application extension associated with a native application at a client device to generate a graphical user interface (GUI) display at the client device, the method comprising:

receiving, at a cross-platform service at the client device from the native application on behalf of the application extension, a query for the record data associated with a record at a database system coupled to a network in an agnostic format that comprises a general purpose programming language;

determining, by the cross-platform service, an identified data source from among a plurality of potential data sources for retrieving the record data based at least in part on a configuration of the native application at the client device and a current operating context when the query is received, the plurality of potential data sources comprising a first data source supporting a first domain-specific programming language different from the agnostic format and a second data source supporting a second domain-specific programming language different from the first domain-specific programming language, resulting in the identified data source comprising one of the first data source and the second data source;

converting, by the cross-platform service at the client device, the query from the agnostic format into a transformed query having a different format than the agnostic format, the different format comprising respective one of the first domain-specific programming language and the second domain-specific programming language associated with the identified data source;

transmitting, by the cross-platform service at the client device, the transformed query in the respective one of the first domain-specific programming language and the second domain-specific programming language to the identified data source to retrieve the record data associated with the record at the database system coupled to the network from the identified data source using the transformed query; and

providing, by the cross-platform service, the record data to the application extension via the native application to cause the application extension to generate a component of the GUI display at the client device using the record data that is associated with the record at the database system coupled to the network and that was retrieved from the identified data source using the transformed query.

2. The method of claim 1 , wherein the respective one of the first domain-specific programming language and the second domain-specific programming language comprises one of a Structured Query Language (SQL), a Salesforce Object Query Language (SOQL) and GraphQL.

3. The method of claim 1 , wherein: the identified data source comprises the database system when the configuration of the native application corresponds to an online mode; and the respective one of the first domain-specific programming language and the second domain-specific programming language is supported by the database system.

4. The method of claim 3 , wherein retrieving the record data comprises the cross-platform service providing the transformed query to an application programming interface (API) associated with an application platform at the database system over the network.

5. The method of claim 1 , wherein determining the identified data source comprises identifying a local cache at the client device as the identified data source when the configuration of the native application corresponds to an offline mode.

6. The method of claim 1 , wherein determining the identified data source comprises identifying a data service executing at the client device as the identified data source when the configuration of the native application identifies the data service as enabled.

7. The method of claim 6 , wherein the cross-platform service retrieving the record data from the identified data source using the transformed query comprises: providing the transformed query to the data service; and receiving a response to the transformed query from the data service, the response comprising the record data, wherein the data service is configurable to retrieve the record data from the database system when the configuration of the native application corresponds to an online mode and retrieve the record data from a data service cache associated with the data service at the client device when the configuration of the native application corresponds to an offline mode.

8. The method of claim 1 , further comprising downloading, by the cross-platform service prior to receiving the query, application configuration metadata associated with the configuration of the native application from the database system to a local cache at the client device, wherein determining the identified data source comprises the cross-platform service identifying the identified data source using the application configuration metadata in the local cache.

9. The method of claim 1 , wherein: the client device comprises a mobile device; the native application comprises a mobile application; and determining the identified data source comprises the cross-platform service at the client device determining the identified data source based on whether or not the mobile device is connected to the network.

10. A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor, are configurable to cause the processor to perform operations comprising:

receiving, at a cross-platform service at a client device from a native application on behalf of an application extension, a query for record data associated with a record at a database system coupled to a network in an agnostic format that comprises a general purpose programming language;

determining an identified data source from among a plurality of potential data sources for retrieving the record data based at least in part on a configuration of the native application at the client device and a current operating context when the query is received, the plurality of potential data sources comprising a first data source supporting a first domain-specific programming language different from the agnostic format and a second data source supporting a second domain-specific programming language different from the first domain-specific programming language, resulting in the identified data source comprising one of the first data source and the second data source;

converting, at the client device, the query into a transformed query having a different format than the agnostic format, the different format comprising the respective one of the first domain-specific programming language and the second domain-specific programming language associated with the identified data source;

transmitting, by the cross-platform service at the client device, the transformed query in the respective one of the first domain-specific programming language and the second domain-specific programming language to the identified data source to retrieve the record data associated with the record at the database system coupled to the network from the identified data source using the transformed query; and

providing, by the cross-platform service, the record data to the application extension via the native application to cause the application extension to generate a component of a graphical user interface (GUI) display at the client device using the record data that is associated with the record at the database system coupled to the network and that was retrieved from the identified data source using the transformed query.

11. The non-transitory machine-readable storage medium of claim 10 , wherein the respective one of the first domain-specific programming language and the second domain-specific programming language comprises one of a Structured Query Language (SQL), a Salesforce Object Query Language (SOQL) and GraphQL.

12. The non-transitory machine-readable storage medium of claim 10 , wherein the instructions are configurable to cause the processor to: identify the database system as the identified data source when the configuration of the native application corresponds to an online mode; and transform the query from the agnostic format into the transformed query in a domain-specific language supported by the database system.

13. The non-transitory machine-readable storage medium of claim 10 , wherein the instructions are configurable to cause the processor to identify a local cache at the client device as the identified data source when the configuration of the native application corresponds to an offline mode.

14. The non-transitory machine-readable storage medium of claim 10 , wherein the instructions are configurable to cause the processor to identify a data service executing at the client device as the identified data source when the configuration of the native application identifies the data service as enabled.

15. The non-transitory machine-readable storage medium of claim 14 , wherein the instructions are configurable to cause the processor to: provide the transformed query to the data service; and receive a response to the transformed query from the data service, the response comprising the record data, wherein the data service is configurable to retrieve the record data from the database system when the configuration of the native application corresponds to an online mode and retrieve the record data from a data service cache associated with the data service at the client device when the configuration of the native application corresponds to an offline mode.

16. The non-transitory machine-readable storage medium of claim 10 , wherein the instructions are configurable to cause the processor to download application configuration metadata associated with the configuration of the native application from the database system to a local cache at the client device, wherein determining the identified data source comprises identifying the identified data source using the application configuration metadata in the local cache.

17. A computing device comprising:

at least one non-transitory machine-readable storage medium that stores software for a native application having an application extension integrated therewith and a cross-platform service; and

at least one processor, coupled to the at least one non-transitory machine-readable storage medium, to execute the software that implements the native application and the cross-platform service and that is configurable to:

receive, at the cross-platform service from the native application on behalf of the application extension, a query for record data associated with a record at a database system coupled to a network in an agnostic format that comprises a general purpose programming language;

determine, by the cross-platform service, an identified data source from among a plurality of potential data sources for retrieving the record data based at least in part on a configuration of the native application at the computing device and a current operating context when the query is received, the plurality of potential data sources comprising a first data source supporting a first domain-specific programming language different from the agnostic format and a second data source supporting a second domain-specific programming language different from the first domain-specific programming language, resulting in the identified data source comprising one of the first data source and the second data source;

convert, by the cross-platform service at the computing device, the query from the agnostic format into a transformed query having a different format than the agnostic format, the different format comprising respective one of the first domain-specific programming language and the second domain-specific programming language associated with the identified data source;

transmit, by the cross-platform service at the computing device, the transformed query in the respective one of the first domain-specific programming language and the second domain-specific programming language to the identified data source to retrieve the record data associated with the record at the database system coupled to the network from the identified data source using the transformed query; and

provide, by the cross-platform service, the record data to the application extension via the native application to cause the application extension to generate a component of a graphical user interface (GUI) display at a client device using the record data that is associated with the record at the database system coupled to the network and that was retrieved from the identified data source using the transformed query.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2022
From: KHALYKNAZAROV, ELDAR; DHALIWAL, PUNEET; DOAN, DAI DUONG
To: SALESFORCE, INC.
Reel/Frame 060911/0795 →
Continuity (1)
Related Publication 20240070151A1 · Feb 29, 2024
References Cited (183)
US 5577188A · Zhu · 1996 [cited by applicant]
US 5608872A · Schwartz et al. · 1997 [cited by applicant]
US 5649104A · Carleton et al. · 1997 [cited by applicant]
US 5715450A · Ambrose et al. · 1998 [cited by applicant]
US 5761419A · Schwartz et al. · 1998 [cited by applicant]
US 5819038A · Carleton et al. · 1998 [cited by applicant]
US 5821937A · Tonelli et al. · 1998 [cited by applicant]
US 5831610A · Tonelli et al. · 1998 [cited by applicant]
US 5873096A · Lim et al. · 1999 [cited by applicant]
US 5913214A · Madnick · 1999 [cited by examiner]
US 5918159A · Fomukong et al. · 1999 [cited by applicant]
US 5963953A · Cram et al. · 1999 [cited by applicant]
US 6092083A · Brodersen et al. · 2000 [cited by applicant]
US 6161149A · Achacoso et al. · 2000 [cited by applicant]
US 6169534B1 · Raffel et al. · 2001 [cited by applicant]
US 6178425B1 · Brodersen et al. · 2001 [cited by applicant]
US 6189011B1 · Lim et al. · 2001 [cited by applicant]
US 6216135B1 · Brodersen et al. · 2001 [cited by applicant]
US 6233617B1 · Rothwein et al. · 2001 [cited by applicant]
US 6266669B1 · Brodersen et al. · 2001 [cited by applicant]
US 6295530B1 · Ritchie et al. · 2001 [cited by applicant]
US 6324568B1 · Diec et al. · 2001 [cited by applicant]
US 6324693B1 · Brodersen et al. · 2001 [cited by applicant]
US 6336137B1 · Lee et al. · 2002 [cited by applicant]
US D454139S · Feldcamp et al. · 2002 [cited by applicant]
US 6367077B1 · Brodersen et al. · 2002 [cited by applicant]
US 6393605B1 · Loomans · 2002 [cited by applicant]
US 6405220B1 · Brodersen et al. · 2002 [cited by applicant]
US 6434550B1 · Warner et al. · 2002 [cited by applicant]
US 6446089B1 · Brodersen et al. · 2002 [cited by applicant]
US 6535909B1 · Rust · 2003 [cited by applicant]
US 6549908B1 · Loomans · 2003 [cited by applicant]
US 6553563B2 · Ambrose et al. · 2003 [cited by applicant]
US 6560461B1 · Fomukong et al. · 2003 [cited by applicant]
US 6574635B2 · Stauber et al. · 2003 [cited by applicant]
US 6577726B1 · Huang et al. · 2003 [cited by applicant]
US 6601087B1 · Zhu et al. · 2003 [cited by applicant]
US 6604117B2 · Lim et al. · 2003 [cited by applicant]
US 6604128B2 · Diec · 2003 [cited by applicant]
US 6609150B2 · Lee et al. · 2003 [cited by applicant]
US 6621834B1 · Scherpbier et al. · 2003 [cited by applicant]
US 6654032B1 · Zhu et al. · 2003 [cited by applicant]
US 6665648B2 · Brodersen et al. · 2003 [cited by applicant]
US 6665655B1 · Warner et al. · 2003 [cited by applicant]
US 6684438B2 · Brodersen et al. · 2004 [cited by applicant]
US 6711565B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6724399B1 · Katchour et al. · 2004 [cited by applicant]
US 6728702B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6728960B1 · Loomans et al. · 2004 [cited by applicant]
US 6732095B1 · Warshavsky et al. · 2004 [cited by applicant]
US 6732100B1 · Brodersen et al. · 2004 [cited by applicant]
US 6732111B2 · Brodersen et al. · 2004 [cited by applicant]
US 6754681B2 · Brodersen et al. · 2004 [cited by applicant]
US 6763351B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6763501B1 · Zhu et al. · 2004 [cited by applicant]
US 6768904B2 · Kim · 2004 [cited by applicant]
US 6772229B1 · Achacoso et al. · 2004 [cited by applicant]
US 6782383B2 · Subramaniam et al. · 2004 [cited by applicant]
US 6804330B1 · Jones et al. · 2004 [cited by applicant]
US 6826565B2 · Ritchie et al. · 2004 [cited by applicant]
US 6826582B1 · Chatterjee et al. · 2004 [cited by applicant]
US 6826745B2 · Coker · 2004 [cited by applicant]
US 6829655B1 · Huang et al. · 2004 [cited by applicant]
US 6842748B1 · Warner et al. · 2005 [cited by applicant]
US 6850895B2 · Brodersen et al. · 2005 [cited by applicant]
US 6850949B2 · Warner et al. · 2005 [cited by applicant]
US 7062502B1 · Kesler · 2006 [cited by applicant]
US 7069231B1 · Cinarkaya et al. · 2006 [cited by applicant]
US 7181758B1 · Chan · 2007 [cited by applicant]
US 7289976B2 · Kihneman et al. · 2007 [cited by applicant]
US 7340411B2 · Cook · 2008 [cited by applicant]
US 7356482B2 · Frankland et al. · 2008 [cited by applicant]
US 7401094B1 · Kesler · 2008 [cited by applicant]
US 7412455B2 · Dillon · 2008 [cited by applicant]
US 7508789B2 · Chan · 2009 [cited by applicant]
US 7620655B2 · Larsson et al. · 2009 [cited by applicant]
US 7698160B2 · Beaven et al. · 2010 [cited by applicant]
US 7730478B2 · Weissman · 2010 [cited by applicant]
US 7779475B2 · Jakobson et al. · 2010 [cited by applicant]
US 8014943B2 · Jakobson · 2011 [cited by applicant]
US 8015495B2 · Achacoso et al. · 2011 [cited by applicant]
US 8032297B2 · Jakobson · 2011 [cited by applicant]
US 8082301B2 · Ahlgren et al. · 2011 [cited by applicant]
US 8095413B1 · Beaven · 2012 [cited by applicant]
US 8095594B2 · Beaven et al. · 2012 [cited by applicant]
US 8209308B2 · Rueben et al. · 2012 [cited by applicant]
US 8275836B2 · Beaven et al. · 2012 [cited by applicant]
US 8457545B2 · Chan · 2013 [cited by applicant]
US 8484111B2 · Frankland et al. · 2013 [cited by applicant]
US 8490025B2 · Jakobson et al. · 2013 [cited by applicant]
US 8504945B2 · Jakobson et al. · 2013 [cited by applicant]
US 8510045B2 · Rueben et al. · 2013 [cited by applicant]
US 8510664B2 · Rueben et al. · 2013 [cited by applicant]
US 8566301B2 · Rueben et al. · 2013 [cited by applicant]
US 8646103B2 · Jakobson et al. · 2014 [cited by applicant]
US 10423396B1 · Yang · 2019 [cited by applicant]
US 11269618B1 · Webster et al. · 2022 [cited by applicant]
US 20010044791A1 · Richter et al. · 2001 [cited by applicant]
US 20020072951A1 · Lee et al. · 2002 [cited by applicant]
US 20020082892A1 · Raffel · 2002 [cited by applicant]
US 20020129352A1 · Brodersen et al. · 2002 [cited by applicant]
US 20020140731A1 · Subramanian et al. · 2002 [cited by applicant]
US 20020143997A1 · Huang et al. · 2002 [cited by applicant]
US 20020162090A1 · Parnell et al. · 2002 [cited by applicant]
US 20020165742A1 · Robbins · 2002 [cited by applicant]
US 20030004971A1 · Gong · 2003 [cited by applicant]
US 20030018705A1 · Chen et al. · 2003 [cited by applicant]
US 20030018830A1 · Chen et al. · 2003 [cited by applicant]
US 20030066031A1 · Laane et al. · 2003 [cited by applicant]
US 20030066032A1 · Ramachandran et al. · 2003 [cited by applicant]
US 20030069936A1 · Warner et al. · 2003 [cited by applicant]
US 20030070000A1 · Coker et al. · 2003 [cited by applicant]
US 20030070004A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030070005A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030074418A1 · Coker et al. · 2003 [cited by applicant]
US 20030120675A1 · Stauber et al. · 2003 [cited by applicant]
US 20030151633A1 · George et al. · 2003 [cited by applicant]
US 20030159136A1 · Huang et al. · 2003 [cited by applicant]
US 20030187921A1 · Diec et al. · 2003 [cited by applicant]
US 20030189600A1 · Gune et al. · 2003 [cited by applicant]
US 20030195950A1 · Huang · 2003 [cited by examiner]
US 20030204427A1 · Gune et al. · 2003 [cited by applicant]
US 20030206192A1 · Chen et al. · 2003 [cited by applicant]
US 20030225730A1 · Warner et al. · 2003 [cited by applicant]
US 20040001092A1 · Rothwein et al. · 2004 [cited by applicant]
US 20040010489A1 · Rio et al. · 2004 [cited by applicant]
US 20040015981A1 · Coker et al. · 2004 [cited by applicant]
US 20040027388A1 · Berg et al. · 2004 [cited by applicant]
US 20040073549A1 · Turkel · 2004 [cited by applicant]
US 20040128001A1 · Levin et al. · 2004 [cited by applicant]
US 20040186860A1 · Lee et al. · 2004 [cited by applicant]
US 20040193510A1 · Catahan et al. · 2004 [cited by applicant]
US 20040199489A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040199536A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040199543A1 · Braud et al. · 2004 [cited by applicant]
US 20040249854A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040260534A1 · Pak et al. · 2004 [cited by applicant]
US 20040260659A1 · Chan et al. · 2004 [cited by applicant]
US 20040268299A1 · Lei et al. · 2004 [cited by applicant]
US 20050050555A1 · Exley et al. · 2005 [cited by applicant]
US 20050091098A1 · Brodersen et al. · 2005 [cited by applicant]
US 20060021019A1 · Hinton et al. · 2006 [cited by applicant]
US 20070074215A1 · Bethea · 2007 [cited by applicant]
US 20080249972A1 · Dillon · 2008 [cited by applicant]
US 20080294615A1 · Furuya · 2008 [cited by applicant]
US 20090063414A1 · White et al. · 2009 [cited by applicant]
US 20090100342A1 · Jakobson · 2009 [cited by applicant]
US 20090177744A1 · Marlow et al. · 2009 [cited by applicant]
US 20090183111A1 · Adams · 2009 [cited by applicant]
US 20110054776A1 · Petrov · 2011 [cited by applicant]
US 20110197032A1 · Patey · 2011 [cited by applicant]
US 20110247051A1 · Bulumulla et al. · 2011 [cited by applicant]
US 20120042218A1 · Cinarkaya et al. · 2012 [cited by applicant]
US 20120218958A1 · Rangaiah · 2012 [cited by applicant]
US 20120233137A1 · Jakobson et al. · 2012 [cited by applicant]
US 20120316955A1 · Panguluri et al. · 2012 [cited by applicant]
US 20130124562A1 · Christensen · 2013 [cited by examiner]
US 20130162529A1 · Turk · 2013 [cited by applicant]
US 20130212497A1 · Zelenko et al. · 2013 [cited by applicant]
US 20130218948A1 · Jakobson · 2013 [cited by applicant]
US 20130218949A1 · Jakobson · 2013 [cited by applicant]
US 20130218966A1 · Jakobson · 2013 [cited by applicant]
US 20130247216A1 · Cinarkaya et al. · 2013 [cited by applicant]
US 20140143710A1 · Zhao et al. · 2014 [cited by applicant]
US 20140215312A1 · Hicks et al. · 2014 [cited by applicant]
US 20140280483A1 · Schmidt et al. · 2014 [cited by applicant]
US 20150026692A1 · Ghosh · 2015 [cited by applicant]
US 20150040104A1 · Mall et al. · 2015 [cited by applicant]
US 20150249725A1 · Hurst · 2015 [cited by examiner]
US 20150295987A1 · Finocchiaro · 2015 [cited by examiner]
US 20170169114A1 · Ben-Tzur · 2017 [cited by examiner]
US 20180040036A1 · Dor · 2018 [cited by examiner]
US 20180121426A1 · Barsness · 2018 [cited by applicant]
US 20200117756A1 · Garimella · 2020 [cited by examiner]
US 20200349207A1 · Venkiteswaran · 2020 [cited by applicant]
US 20210232639A1 · P · 2021 [cited by applicant]
US 20210287214A1 · Wettan · 2021 [cited by examiner]
US 20210397438A1 · Sirov · 2021 [cited by applicant]
US 20220129282A1 · Lee et al. · 2022 [cited by applicant]
US 20220261260A1 · Momchilov · 2022 [cited by applicant]
US 20220385671A1 · Silverstein · 2022 [cited by examiner]
US 20230037019A1 · Mata Rodriguez et al. · 2023 [cited by applicant]
US 20230098023A1 · Kirmse · 2023 [cited by examiner]