IP Library › Granted Patent US 11,838,358
Granted Patent B2
US 11,838,358 · App. 17/156,430 · Granted Dec 5, 2023

Network operating system

Inventor: Daniel Arthursson (Linköping, SE)
Assignee: Xcerion Aktiebolag
H04L67/1095G06F8/65G06F9/455G06F9/45504G06F9/54G06F9/542H04L67/01H04L67/02H04L67/568G06F9/45529H04L67/56
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,838,358
App. No.
17/156,430
Granted
Dec 5, 2023
Kind
B2
Abstract

Generally described, the present invention is directed to a network operating system that provides more effective ways of leveraging the connectivity of computer networks. In one embodiment, an XML virtual machine is implemented that accepts high-level application code written in an XML programming language as input. Functionality is provided to interpret or translate the application code written in an XML programming language into code that is suitable for execution across computer platforms. Moreover, the XML virtual machine supports the Model View Controller (MVC) design paradigm that facilitates true data abstraction from applications to a common data model. Multi-instance applications, with each instance potentially supporting multiple views, may be created and executed.

Claims (65)

1. A server-side computing device including at least one processor and a non-transitory computer-readable medium having computer executable instructions stored thereon that, in response to execution by the at least one processor, cause the server-side computing device to perform actions comprising:

facilitating concurrent access to a shared document by multiple client-side computing devices by:

receiving a transaction from an originating client-side computing device that represents a relative data update and committing the data update to the shared document in an atomic operation; and

pushing the transaction to one or more listening client-side computing devices;

wherein facilitating concurrent access to the shared document by multiple client-side computing devices further includes:

when no client-side computing devices are yet accessing the shared document, allowing a first client-side computing device to subscribe as a listener for modifications to the shared document;

instructing the first client-side computing device to gather transactions that represent data updates without immediately propagating them to the server-side computing device;

subscribing a second client-side computing device as a listener for modifications to the shared document; and

in response to the subscription of the second client-side computing device:

instructing the first client-side computing device to immediately propagate at least one transaction that represents data updates from the first client-side computing device to the server-side computing device for subsequent propagation to client-side computing devices subscribed as listeners for modifications to the shared document; and

instructing the second client-side computing device to immediately propagate at least one transaction that represents data updates from the second client-side computing device to the server-side computing device for subsequent propagation to client-side computing devices subscribed as listeners for modifications to the shared document.

2. The server-side computing device of claim 1 , wherein pushing the transaction to one or more listening client-side computing devices includes:

maintaining a subscription list associated with the listening client-side computing devices that identifies subscribed objects that the listening client-side computing devices have registered as a listener;

receiving a notification that a subscribed object has experienced a data update; and

performing a lookup in a message chain associated with the subscribed object and sending a notification to the listening client-side computing devices associated with the subscription list identified in the message chain.

3. The server-side computing device of claim 1 , wherein facilitating concurrent access to the shared document by multiple client-side computing devices further includes:

providing the shared document in response to a request by the second client-side computing device when the document is already opened by the first client-side computing device; and

establishing settings that notify both the first and second client-side computing devices that the document is shared.

4. The server-side computing device of claim 1 , wherein the actions further comprise:

receiving the at least one transaction that represents data updates to the shared document from the first client-side computing device;

determining that the second client-side computing device is a listener for the data updates; and

propagating the at least one transaction to the second client-side computing device.

5. The server-side computing device of claim 1 , wherein at least one data update is a change in state to a user interface component.

6. A computer-implemented method of facilitating concurrent access to a shared document by multiple client-side computing devices, the method comprising:

receiving, by a server-side computing device, a transaction from an originating client-side computing device that represents a relative data update and committing the data update to the shared document in an atomic operation;

pushing the transaction to one or more listening client-side computing devices;

when no client-side computing devices are yet accessing the shared document, allowing a first client-side computing device to subscribe as a listener for modifications to the shared document;

instructing the first client-side computing device to gather transactions that represent data updates without immediately propagating them to the server-side computing device;

subscribing a second client-side computing device as a listener for modifications to the shared document; and

in response to the subscription of the second client-side computing device:

instructing the first client-side computing device to immediately propagate at least one transaction that represents data updates from the first client-side computing device to the server-side computing device for subsequent propagation to client-side computing devices subscribed as listeners for modifications to the shared document; and

instructing the second client-side computing device to immediately propagate at least one transaction that represents data updates from the second client-side computing device to the server-side computing device for subsequent propagation to client-side computing devices subscribed as listeners for modifications to the shared document.

7. The computer-implemented method of claim 6 , wherein pushing the transaction to one or more listening client-side computing devices includes:

maintaining a subscription list associated with the listening client-side computing devices that identifies subscribed objects that the listening client-side computing devices have registered as a listener;

receiving a notification that a subscribed object has experienced a data update; and

performing a lookup in a message chain associated with the subscribed object and sending a notification to the listening client-side computing devices associated with the subscription list identified in the message chain.

8. The computer-implemented method of claim 6 , further comprising:

providing the shared document in response to a request by the second client-side computing device when the document is already opened by the first client-side computing device; and

establishing settings that notify both the first and second client-side computing devices that the document is shared.

9. The computer-implemented method of claim 6 , further comprising:

receiving the at least one transaction that represents data updates to the shared document from the first client-side computing device;

determining that the second client-side computing device is a listener for the data updates; and

propagating the at least one transaction to the second client-side computing device.

10. The computer-implemented method of claim 6 , wherein at least one data update is a change in state to a user interface component.

11. A non-transitory computer-readable medium having computer-executable instructions stored thereon that, in response to execution by one or more processors of a server-side computing device, cause the server-side computing device to perform actions comprising:

receiving a transaction from an originating client-side computing device that represents a relative data update and committing the data update to the shared document in an atomic operation;

pushing the transaction to one or more listening client-side computing devices;

when no client-side computing devices are yet accessing the shared document, allowing a first client-side computing device to subscribe as a listener for modifications to the shared document;

instructing the first client-side computing device to gather transactions that represent data updates without immediately propagating them to the server-side computing device;

subscribing a second client-side computing device as a listener for modifications to the shared document; and

in response to the subscription of the second client-side computing device:

instructing the first client-side computing device to immediately propagate at least one transaction that represents data updates from the first client-side computing device to the server-side computing device for subsequent propagation to client-side computing devices subscribed as listeners for modifications to the shared document; and

instructing the second client-side computing device to immediately propagate at least one transaction that represents data updates from the second client-side computing device to the server-side computing device for subsequent propagation to client-side computing devices subscribed as listeners for modifications to the shared document.

12. The computer-readable medium of claim 11 , wherein pushing the transaction to one or more listening client-side computing devices includes:

maintaining a subscription list associated with the listening client-side computing devices that identifies subscribed objects that the listening client-side computing devices have registered as a listener;

receiving a notification that a subscribed object has experienced a data update; and

performing a lookup in a message chain associated with the subscribed object and sending a notification to the listening client-side computing devices associated with the subscription list identified in the message chain.

13. The computer-readable medium of claim 11 , wherein the actions further comprise:

providing the shared document in response to a request by the second client-side computing device when the document is already opened by the first client-side computing device; and

establishing settings that notify both the first and second client-side computing devices that the document is shared.

14. The computer-readable medium of claim 11 , wherein the actions further comprise:

receiving the at least one transaction that represents data updates to the shared document from the first client-side computing device;

determining that the second client-side computing device is a listener for the data updates; and

propagating the at least one transaction to the second client-side computing device.

15. The computer-readable medium of claim 11 , wherein at least one data update is a change in state to a user interface component.

Assignments (2)
NUNC PRO TUNC ASSIGNMENT Recorded May 25, 2023
From: ARTHURSSON, DANIEL
To: XCERION AKTIEBOLAG
Reel/Frame 063767/0862 →
NUNC PRO TUNC ASSIGNMENT Recorded May 25, 2023
From: ARTHURSSON, DANIEL; BRISTAV, MARCUS
To: XCERION AKTIEBOLAG
Reel/Frame 063787/0162 →
Continuity (24)
Continuation 14754512 · Jun 29, 2015
Continuation 12240888 · Sep 29, 2008
Provisional Application 60976308 · Sep 28, 2007
Provisional Application 60976327 · Sep 28, 2007
Provisional Application 60976252 · Sep 28, 2007
Provisional Application 60976292 · Sep 28, 2007
Provisional Application 60976281 · Sep 28, 2007
Provisional Application 60976304 · Sep 28, 2007
Provisional Application 60976266 · Sep 28, 2007
Provisional Application 60976216 · Sep 28, 2007
Provisional Application 60976283 · Sep 28, 2007
Provisional Application 60976222 · Sep 28, 2007
Provisional Application 60976275 · Sep 28, 2007
Provisional Application 60976269 · Sep 28, 2007
Provisional Application 60976312 · Sep 28, 2007
Provisional Application 60976311 · Sep 28, 2007
Provisional Application 60976258 · Sep 28, 2007
Provisional Application 60976325 · Sep 28, 2007
Provisional Application 60976246 · Sep 28, 2007
Provisional Application 60976249 · Sep 28, 2007
Provisional Application 60976301 · Sep 28, 2007
Provisional Application 60976339 · Sep 28, 2007
Provisional Application 60976320 · Sep 28, 2007
Related Publication 20210258377A1 · Aug 19, 2021