IP Library Granted Patent US 11,562,044
Granted Patent B1
US 11,562,044 · App. 17/097,489 · Granted Jan 24, 2023

Systems and methods for integraton of electronic information cards into a client application

Inventors: Xiaochen Du (Fairfax, VA); Raul De Leon (Vienna, VA); Jose Manuel Nocedal De La Garza (Leesburg, VA); Liang Chen (Fairfax, VA); Jiao Xu (Fairfax, VA); Jiande Yu (McLean, VA)
Assignee: MicroStrategy Incorporated
G06F16/986G06F8/76G06F9/547G06F16/148G06F16/24565G06F16/9536G06F16/9538G06F40/143H04L63/0815G06Q10/101G06Q10/109G06Q30/0185
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 11,562,044
App. No.
17/097,489
Granted
Jan 24, 2023
Kind
B1
Abstract

Methods, systems, and apparatus, including computer programs stored on computer-readable media, for integrating electronic card display at a client via a software development kit (SDK) provided at one or more data servers are disclosed. A client-side application such as a web browser may request the SDK based on a code snippet included in a data file, such as a HyperText Markup Language (HTML) file for a web page. Once the SDK is received at the client, the client-side application may perform various functionalities enabled by the SDK, including determining terms in the data file that match keywords associated with electronic cards, requesting and receiving electronic card rendering data associated with the electronic cards, and modifying a display generated based on the data file to display an electronic card, upon detecting a trigger event in relation to a term within the web page that corresponds to the electronic card.

Claims (57)

1. A computer-implemented method of integrating electronic information card display at a client via a software development kit (SDK) provided at one or more data servers, the method comprising:

requesting, by the client, the SDK from the one or more data servers based on a code snippet in a first data file;

receiving, by the client, the SDK from the one or more data servers;

requesting, by way of the SDK at the client, a plurality of keywords specific to an organization of a current user of the client and associated with a plurality of electronic information cards from the one or more data servers;

receiving, by the client, the plurality of keywords specific to the organization of the current user of the client from the one or more data servers;

determining, by way of the SDK, one or more terms in the first data file that match one or more keywords of the plurality of keywords specific to the organization of the current user of the client;

determining, by way of the SDK, one or more electronic information cards of the plurality of electronic information cards that correspond to the one or more keywords specific to the organization of the current user of the client;

requesting, by way of the SDK, electronic information card rendering data associated with the one or more electronic information cards from the one or more data servers;

receiving, by the client, the electronic information card rendering data associated with the one or more electronic information cards from the one or more data servers;

determining, by way of the SDK, whether a trigger event associated with a term of the one or more terms has occurred; and

upon detecting the trigger event, modifying, by way of the SDK, a display based on the first data file to display an electronic information card that corresponds to a keyword of the one or more keywords matching the term, based on at least a portion of the electronic information card rendering data.

2. The computer-implemented method of claim 1 further comprising, prior to receiving the SDK from the one or more data servers:

sending, by the client, an authentication request to the one or more data servers; and

receiving, by the client, an authentication response from the one or more data servers.

3. The computer-implemented method of claim 2 , wherein the one or more data servers comprise a library server further in communication with an identity provider (IDP) server.

4. The computer-implemented method of claim 3 , wherein the library server supports security assertion markup language (SAML), OpenID Connect (OIDC), or Trusted to enable web-based single sign-on.

5. The computer-implemented method of claim 1 , wherein the one or more data servers comprise a library server, and wherein the code snippet is a JavaScript code configured to load the SDK from the library server.

6. The computer-implemented method of claim 1 , wherein the first data file is a Hypertext Markup Language (HTML) file.

7. The computer-implemented method of claim 6 , wherein the display is further based on a second data file, the second data file comprising a Cascading Style Sheets (CSS) file.

8. The computer-implemented method of claim 1 , wherein the one or more data servers comprise a master server, wherein the plurality of keywords and the electronic information card rendering data are requested from the master server via application programming interface (API) requests.

9. The computer-implemented method of claim 1 , wherein the received plurality of keywords are stored in a cache.

10. The computer-implemented method of claim 1 , wherein the electronic information card that corresponds to the keyword of the one or more keywords matching the term is displayed on a web page or a web-based application.

11. The computer-implemented method of claim 10 , wherein the keyword of the one or more keywords matching the term is also displayed on the web page or the web-based application, the displayed keywords being at least one of: underlined, bolded, italicized, bolded, and highlighted.

12. The computer-implemented method of claim 1 , wherein the electronic information card rendering data comprises:

Hypertext Markup Language (HTML) data configured to be inserted into the first data file for a display of the one or more electronic information cards on a web page or a web-based application; and

Cascading Style Sheets (CSS) data configured to be inserted into a second data file for a display of the one or more electronic information cards on a web page or a web-based application.

13. The computer-implemented method of claim 1 , wherein the received electronic information card rendering data is stored in a cache or an external storage.

14. The computer-implemented method of claim 1 , wherein the trigger event is a hover-over event or a click event associated with the term.

15. The computer-implemented method of claim 1 , further comprising:

modifying, by way of the SDK, the display based on the first data file to visually distinguish the one or more terms.

16. The computer-implemented method of claim 1 , wherein the modifying of the display to display the electronic information card is performed without use of a browser extension.

17. A system for integrating electronic information card display at a client via a software development kit (SDK), comprising:

one or more processors; and

one or more computer-readable media comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations for integrating electronic information card display at a client via a software development kit (SDK) provided at one or more data servers, the operations comprising:

requesting, by the client, the SDK from the one or more data servers based on a code snippet in a first data file;

receiving, by the client, the SDK from the one or more data servers;

requesting, by way of the SDK at the client, a plurality of keywords specific to an organization of a current user of the client and associated with a plurality of electronic information cards from the one or more data servers;

receiving, by the client, the plurality of keywords specific to the organization of the current user of the client from the one or more data servers;

determining, by way of the SDK, one or more terms in the first data file that match one or more keywords of the plurality of keywords;

determining, by way of the SDK, one or more electronic information cards of the plurality of electronic information cards that correspond to the one or more keywords specific to the organization of the current user of the client;

requesting, by way of the SDK, electronic information card rendering data associated with the one or more electronic information cards from the one or more data servers specific to the organization of the current user of the client;

receiving, by the client, the electronic information card rendering data associated with the one or more electronic information cards from the one or more data servers;

determining, by way of the SDK, whether a trigger event associated with a term of the one or more terms has occurred; and

upon detecting the trigger event, modifying, by way of the SDK, a display based on the first data file to display an electronic information card that corresponds to a keyword of the one or more keywords matching the term, based on at least a portion of the electronic information card rendering data.

18. The system of claim 17 , wherein the one or more data servers comprise a library server, and wherein the code snippet is a JavaScript code configured to load the SDK from the library server.

19. The system of claim 17 , wherein the first data file is a Hypertext Markup Language (HTML) file.

20. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations for integrating electronic information card display at a client via a software development kit (SDK) provided at one or more data servers, the operations comprising:

requesting, by the client, the SDK from the one or more data servers based on a code snippet in a first data file;

receiving, by the client, the SDK from the one or more data servers;

requesting, by way of the SDK at the client, a plurality of keywords specific to an organization of a current user of the client and associated with a plurality of electronic information cards from the one or more data servers;

receiving, by the client, the plurality of keywords specific to the organization of the current user of the client from the one or more data servers;

determining, by way of the SDK, one or more terms in the first data file that match one or more keywords of the plurality of keywords specific to the organization of the current user of the client;

determining, by way of the SDK, one or more electronic information cards of the plurality of electronic information cards that correspond to the one or more keywords specific to the organization of the current user of the client;

requesting, by way of the SDK, electronic information card rendering data associated with the one or more electronic information cards from the one or more data servers;

receiving, by the client, the electronic information card rendering data associated with the one or more electronic information cards from the one or more data servers;

determining, by way of the SDK, whether a trigger event associated with a term of the one or more terms has occurred; and

upon detecting the trigger event, modifying, by way of the SDK, a display based on the first data file to display an electronic information card that corresponds to a keyword of the one or more keywords matching the term, based on at least a portion of the electronic information card rendering data.

Assignments (4)
CHANGE OF NAME Recorded Aug 19, 2025
From: MICROSTRATEGY INCOPORATED
To: STRATEGY INC
Reel/Frame 072518/0669 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SECURITY INTEREST Recorded Jun 22, 2021
From: MICROSTRATEGY INCORPORATED
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056647/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2020
From: DU, XIAOCHEN; DE LEON, RAUL; DE LA GARZA, JOSE MANUEL NOCEDAL; CHEN, LIANG; XU, JIAO; YU, JIANDE
To: MICROSTRATEGY INCORPORATED
Reel/Frame 054583/0041 →