IP Library › Granted Patent US 8,615,531
Granted Patent B2
US 8,615,531 · App. 12/240,883 · Granted Dec 24, 2013

Programmatic data manipulation

Inventor: Daniel Arthursson (Linkoeping, SE)
Assignee: Xcerion Aktiebolag
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 8,615,531
App. No.
12/240,883
Granted
Dec 24, 2013
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 (41)

1. A computer-readable medium having computer executable instructions stored thereon, that, in response to execution by a processor of a computing device, cause the computing device to perform actions to apply a data manipulation primitive on an XML document, the actions comprising:

identifying an operation in an application that provides logic to modify data in the XML document using a data manipulation primitive;

evaluating an expression in the application into an XBind referencing a set of data in the XML document affected by the data manipulation primitive, wherein the XBind has a URL and a base path, and wherein the set of data is less than the entire XML document; and

calling a document object to implement the data manipulation primitive as specified in the operation, wherein the document object is a runtime representation of the XML document, wherein the data manipulation primitive is implemented by the document object at runtime as the application is executing, and wherein implementing the data manipulation primitive as specified in the operation includes:

causing a transaction to be generated, wherein the transaction includes an XML fragment comprising information representing implementation of a relative change to the XML document and information representing reversal of the relative change to the XML document.

2. The computer-readable medium as recited in claim 1 , wherein the data manipulation primitive that is implemented on the XML document at runtime is one selected from the group of replace, replaceText, append, prepend, insert, remove, remove children, new, and delete.

3. The computer-readable medium as recited in claim 1 , wherein to implement the data manipulation primitive as specified in the operation includes evaluating an expression into text, comprising:

identifying a user interface component referenced in the expression; and

if the user interface component is atomic and not associated with a data binding, accessing text input into the user interface component directly from a corresponding runtime object.

4. The computer-readable medium as recited in claim 1 , wherein logic in the application adheres to the MVC design paradigm and wherein the data manipulation primitive is used in the process logic of the application to modify contents of a data model.

5. The computer-readable medium as recited in claim 1 , wherein to implement the data manipulation primitive as specified in the operation includes performing a transform of data from a source format into a destination format and inserting the data in the destination format into the XML document.

6. The computer-readable medium as recited in claim 5 , wherein the transform is an Extensible Style Sheet Language transform that defines how data formatted in accordance with a first XML schema is translated into a format that adheres to a second XML schema.

7. The computer-readable medium as recited in claim 1 , wherein the data manipulation primitive is defined by an application in a store element having a type attribute for identifying a particular type of data manipulation primitive to implement, a select attribute for referencing a location within the XML document to be affected by the data manipulation primitive, and a value attribute to be evaluated to provide content for a target of the data manipulation primitive.

8. A computer-implemented method for inserting data from a source document in a source format into a destination document in a destination format, the method comprising:

identifying, by a computer, an operation in an application that provides logic for performing a data transform;

obtaining, by the computer, data in the source format from the source document, wherein the logic of the operation identifies the source document, and wherein the data in the source format from the source document is less than the entire source document;

applying, by the computer, the transform defined in the operation on the data in the source format, wherein the transform is applied at runtime while the application is executing;

creating, by the computer, an XBind that includes the transformed data, an identification of the destination document, and an indication of a location in the destination document to be affected by the operation; and

creating, by the computer, a transaction that represents a relative change to the destination document and that includes information for reverting the relative change to the destination document, the transaction including the XBind.

9. The method as recited in claim 8 , further comprising:

causing a data bus to implement the relative change represented in the transaction.

10. The method as recited in claim 8 , wherein the transformed data in the destination format provides a basis for applying logic defined in a second application.

11. The method as recited in claim 8 , wherein the transform is an Extensible Style Sheet Language transform that defines how data formatted in accordance with a first XML schema is translated into a format that adheres to a second XML schema.

12. The method as recited in claim 8 , wherein obtaining data in the source format from the source document includes evaluating an expression defined in the application into an XBind that points to a subset of data in the source document.

13. The method as recited in claim 8 , wherein to apply the transform defined in the operation includes providing an XML virtual machine configured to execute applications in which application functionality is separated in accordance with the MVC design paradigm, the logic of the transform being defined in a model XML document.

14. A computer-readable medium having computer-executable instructions stored thereon that, in response to execution by a processor of a computing device, cause the computing device to provide components for applying a data manipulation primitive to an XML document, the components comprising:

an application component that defines a change operation for modifying a subset of data in the XML document using a data manipulation primitive, the subset of data in the XML document being less than the entire XML document;

a document object providing a runtime representation of the XML document having methods for performing a plurality of data manipulation primitives on the XML document;

a change handler configured to:

parse the change operation defined in the application component;

from logic in the change operation, generate an XBind that references the subset of data in the XML document affected by the change operation; and

call a method of the document object to implement the data manipulation primitive, wherein the method call provides the document object with the XBind that references the subset of data in the XML document affected by the change operation; and

a transaction manager configured to create a transaction that represents a relative change to the XML document as defined in the change operation, wherein the transaction includes information for reverting the relative change to the XML document.

15. The computer-readable medium as recited in claim 14 , further comprising:

a communication channel operative to abstract network communications between a local client computing device and a network service;

wherein the transaction manager is further configured to cause the transaction to be transmitted to the network service using the communication channel.

16. The computer-readable medium as recited in claim 14 , wherein the change handler is further configured to perform an Extensible Style Sheet Language transform on data formatted in accordance with a first XML schema into a second XML schema before implementing the data manipulation primitive on the XML document.

17. The computer-readable medium as recited in claim 14 , wherein the data manipulation primitives implemented by the change handler are selected from the group of replace, replaceText, append, prepend, insert, remove, remove children, new, and delete.

18. The computer-readable medium as recited in claim 1 , wherein to implement the data manipulation primitive as specified in the operation further includes:

causing the transaction to be stored in a local transaction queue; and

causing transactions in the local transaction queue to be transmitted over the network to implement the transactions on a remote computing device.

Assignments (1)
NUNC PRO TUNC ASSIGNMENT EFFECTIVE 09/27/2007 Recorded Mar 18, 2009
From: ARTHURSSON, DANIEL
To: XCERION AKTIEBOLAG
Reel/Frame 022413/0357 →
Continuity (22)
Provisional Application 60976216 · Sep 28, 2007
Provisional Application 60976222 · Sep 28, 2007
Provisional Application 60976246 · Sep 28, 2007
Provisional Application 60976249 · Sep 28, 2007
Provisional Application 60976252 · Sep 28, 2007
Provisional Application 60976258 · Sep 28, 2007
Provisional Application 60976266 · Sep 28, 2007
Provisional Application 60976269 · Sep 28, 2007
Provisional Application 60976275 · Sep 28, 2007
Provisional Application 60976281 · Sep 28, 2007
Provisional Application 60976283 · Sep 28, 2007
Provisional Application 60976292 · Sep 28, 2007
Provisional Application 60976301 · Sep 28, 2007
Provisional Application 60976304 · Sep 28, 2007
Provisional Application 60976308 · Sep 28, 2007
Provisional Application 60976311 · Sep 28, 2007
Provisional Application 60976312 · Sep 28, 2007
Provisional Application 60976320 · Sep 28, 2007
Provisional Application 60976325 · Sep 28, 2007
Provisional Application 60976327 · Sep 28, 2007
Provisional Application 60976339 · Sep 28, 2007
Related Publication 20090164592A1 · Jun 25, 2009