IP Library Granted Patent US 12,730,615
Granted Patent B2
US 12,730,615 · App. 18/356,623 · Granted Sep 8, 2026

System and method for extending an application with user-defined content

Inventors: Dave Strenge (Ottawa, CA); Ryan McCluskey (Ottawa, CA); Graham Andrews (Ottawa, CA)
Assignee: Kinaxis, Inc.
G06F8/38G06F8/315G06F9/542
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,730,615
App. No.
18/356,623
Granted
Sep 8, 2026
Kind
B2
Abstract

Methods and systems that provide the tools and flexibility to build views that meet a user's needs by eliminating arbitrary limitations that are imposed by entrenched resource concepts that currently exist.

Claims (111)

1 . A computer-implemented method comprising:

retrieving, by a processor, a definition of a context;

creating, by the processor, an execution engine that executes within a canvas sandboxed iframe hosted by a host application;

applying, by the processor, an HTML layout;

generating, by the processor, one or more components;

addressing, by the processor, the context;

displaying, by the processor, a canvas via the canvas sandboxed Iframe;

generating, by the processor, one or more data sources;

addressing, by the processor, one or more events from a host via an API Client Proxy and Host Event Handlers over an event bus that does not give direct access to the host application;

disposing, by the processor, the canvas by closing the canvas sandboxed iframe and cleaning up the canvas.

2 . The computer-implemented method of claim 1 , wherein the canvas comprises:

a layout definition;

one or more component definitions;

state information;

one or more server side expressions;

one or more event handler definitions; and

one or more data source references.

3 . The computer-implemented method of claim 1 , wherein:

the execution engine is a JavaScript Engine; and

the one or more components are React Components.

4 . The computer-implemented method of claim 1 , wherein addressing the context comprises handling, by the processor, a context event associated with the context.

5 . The computer-implemented method of claim 1 , wherein the one or more events is:

an exhibition event, an API-Client response, or a close event.

6 . The computer-implemented method of claim 5 , wherein the one or more events is the exhibition event, and addressing the one or more events comprises:

executing, by the processor, a component handler for the exhibition event;

updating, by the processor, a state;

notifying, by the processor, each component listening to the state that the state has been updated;

where there is no error, sending, by the processor, the exhibition event and the updated state to the host; and

where there is an error, disposing, by the processor, the canvas.

7 . The computer-implemented method of claim 5 , wherein the one or more events is the API Client Response, and addressing the one or more events comprises:

updating, by the processor, a state;

notifying, by the processor, each component listening to the state that the state has been updated;

where there is no error, sending, by the processor, the exhibition event and the updated state to the host; and

where there is an error, disposing, by the processor, the canvas.

8 . The computer-implemented method of claim 5 , wherein the one or more events is the close event, and addressing the one or more events comprises:

disposing, by the processor, the canvas.

9 . A computing apparatus comprising:

a processor; and

a memory storing instructions that, when executed by the processor, configure the apparatus to:

retrieve, by the processor, a definition of a context;

create, by the processor, an execution engine that executes within a canvas sandboxed Iframe hosted by a host application;

apply, by the processor, an HTML layout;

generate, by the processor, one or more components;

address, by the processor, the context;

display, by the processor, a canvas via the canvas sandboxed iframe;

generate, by the processor, one or more data sources;

address, by the processor, one or more events from a host via an API Client Proxy and Host Event Handlers over an event bus that does not give direct access to the host application; and

dispose, by the processor, the canvas by closing the canvas sandboxed Iframe and cleaning up the canvas.

10 . The computing apparatus of claim 9 , wherein the canvas comprises:

a layout definition;

one or more component definitions;

state information;

one or more server-side expressions;

one or more event handler definitions; and

one or more data source references.

11 . The computing apparatus of claim 9 , wherein:

the execution engine is a JavaScript Engine; and

the one or more components are React Components.

12 . The computing apparatus of claim 9 , wherein addressing the context comprises handling, by the processor, a context event associated with the context.

13 . The computing apparatus of claim 9 , wherein the one or more events is:

an exhibition event, an API-Client response, or a close event.

14 . The computing apparatus of claim 13 , wherein the one or more events is the exhibition event, and when addressing the one or more events, the apparatus is further configured to:

execute, by the processor, a component handler for the exhibition event;

update, by the processor, a state;

notify, by the processor, each component listening to the state that the state has been updated;

where there is no error, send, by the processor, the exhibition event and the updated state to the host; and

where there is an error, dispose, by the processor, the canvas.

15 . The computing apparatus of claim 13 , wherein the one or more events is the API Client Response, and when addressing the one or more events, the apparatus is further configured to:

update, by the processor, a state;

notify, by the processor, each component listening to the state that the state has been updated;

where there is no error, send, by the processor, the exhibition event and the updated state to the host; and

where there is an error, dispose, by the processor, the canvas.

16 . The computing apparatus of claim 13 , wherein the one or more events is the close event, and when addressing the one or more events, the apparatus is further configured to:

dispose, by the processor, the canvas.

17 . A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:

retrieve, by a processor, a definition of a context;

create, by the processor, an execution engine that executes within a canvas sandboxed iframe hosted by a host application;

apply, by the processor, an HTML layout;

generate, by the processor, one or more components;

address, by the processor, the context;

display, by the processor, a canvas via the canvas sandboxed iframe;

generate, by the processor, one or more data sources;

address, by the processor, one or more events from a host via an API Client Proxy and Host Event Handlers over an event bus that does not give direct access to the host application; and

dispose, by the processor, the canvas by closing the canvas sandboxed Iframe and cleaning up the canvas.

18 . The non-transitory computer-readable storage medium of claim 17 , wherein the canvas comprises:

a layout definition;

one or more component definitions;

state information;

one or more server-side expressions;

one or more event handler definitions; and

one or more data source references.

19 . The non-transitory computer-readable storage medium of claim 17 , wherein:

the execution engine is a JavaScript Engine; and

the one or more components are React Components.

20 . The non-transitory computer-readable storage medium of claim 17 , wherein addressing the context comprises:

handle, by the processor, a context event associated with the context.

21 . The computer-readable storage medium of claim 17 , wherein the one or more events is:

an exhibition event, an API Client Response, or a close event.

22 . The computer-readable storage medium of claim 21 , wherein the one or more events is the exhibition event, and when addressing the one or more events, the computer-readable storage medium including instructions that when executed by the computer, further cause the computer to:

execute, by the processor, a component handler for the exhibition event;

update, by the processor, a state;

notify, by the processor, each component listening to the state that the state has been updated;

where there is no error, send, by the processor, the exhibition event and the updated state to the host; and

where there is an error, dispose, by the processor, the canvas.

23 . The computer-readable storage medium of claim 21 , wherein the one or more events is the API Client Response, and when addressing the one or more events, the computer-readable storage medium including instructions that when executed by the computer, further cause the computer to:

update, by the processor, a state;

notify, by the processor, each component listening to the state that the state has been updated;

where there is no error, send, by the processor, the exhibition event and the updated state to the host; and

where there is an error, dispose, by the processor, the canvas.

24 . The computer-readable storage medium of claim 21 , wherein the one or more events is the close event, and when addressing the one or more events, the computer-readable storage medium including instructions that when executed by the computer, further cause the computer to:

dispose, by the processor, the canvas.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2025
From: STRENGE, DAVID; MCCLUSKEY, RYAN; ANDREWS, GRAHAM
To: KINAXIS INC.
Reel/Frame 071614/0083 →
Continuity (2)
Provisional Application 63391175 · Jul 21, 2022
Related Publication 20240028428A1 · Jan 25, 2024
References Cited (38)
US 8561028B1 · Zuckerman · 2013 [cited by applicant]
US 9396234B2 · Lynch et al. · 2016 [cited by applicant]
US 9916475B2 · Enck et al. · 2018 [cited by applicant]
US 10013400B1 · Zetlen · 2018 [cited by applicant]
US 10162607B2 · Callahan et al. · 2018 [cited by applicant]
US 10331420B2 · Nagar · 2019 [cited by applicant]
US 10747942B1 · Siroker · 2020 [cited by applicant]
US 11875104B2 · Abrahami · 2024 [cited by applicant]
US 20100228602A1 · Gilvar · 2010 [cited by examiner]
US 20120004950A1 · Julian · 2012 [cited by examiner]
US 20120192155A1 · Silbey et al. · 2012 [cited by applicant]
US 20130198607A1 · Mischook · 2013 [cited by examiner]
US 20130304523A1 · Tobin, Jr. · 2013 [cited by examiner]
US 20140279060A1 · Memarian · 2014 [cited by examiner]
US 20170131874A1 · Redenbach · 2017 [cited by examiner]
US 20170235470A1 · Baluja · 2017 [cited by examiner]
US 20170262294A1 · Yakan · 2017 [cited by examiner]
US 20170329579A1 · Laethem et al. · 2017 [cited by applicant]
US 20170357716A1 · Bellegarda · 2017 [cited by examiner]
US 20170374130A1 · AbiEzzi · 2017 [cited by examiner]
US 20180088915A1 · Yang · 2018 [cited by applicant]
US 20190005228A1 · Singh et al. · 2019 [cited by applicant]
US 20190155581A1 · Callahan et al. · 2019 [cited by applicant]
US 20190324986A1 · Schwartz · 2019 [cited by examiner]
US 20190332359A1 · Laethem et al. · 2019 [cited by applicant]
US 20200057714A1 · Ounce · 2020 [cited by applicant]
US 20200183761A1 · Roy · 2020 [cited by examiner]
US 20210034225A1 · Harazi · 2021 [cited by examiner]
US 20210297495A1 · Cambell et al. · 2021 [cited by applicant]
US 20210358460A1 · Wirtz · 2021 [cited by examiner]
US 20220334857A1 · Lam · 2022 [cited by examiner]
US 20220337536A1 · Meersma · 2022 [cited by examiner]
US 20220413843A1 · Agarwal et al. · 2022 [cited by applicant]
US 20230004637A1 · Wang · 2023 [cited by examiner]
US 20230086308A1 · Lim et al. · 2023 [cited by applicant]
CN 112363794A · 2021 [cited by applicant]
CN 113190214A · 2021 [cited by applicant]
Linkola, Lasse. “Design and implementation of modular frontend architecture on existing application.” Information Technology (2021). [cited by applicant]