IP Library Granted Patent US 7,730,103
Granted Patent B2
US 7,730,103 · App. 11/106,574 · Granted Jun 1, 2010

Apparatus and method for efficient encoding of application definition using contiguous arrays

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 7,730,103
App. No.
11/106,574
Granted
Jun 1, 2010
Kind
B2
Abstract

A system and method for the simplification of data structures, particularly those used for wireless communications, encodes data structures for efficient storage and access. Wireless devices are provisioned with user applications for accessing remote services, such as World Wide Web services. The user applications comprise a plurality of component definitions which typically describe complex data structures for execution by a runtime environment. The runtime environment is conditioned to use a manner to encode such data structures in flat arrays of primitive types.

Claims (32)

1. A system for simplifying the representation of a plurality of components, each component defined by a component definition using a complex data structure, the system comprising:

a wireless device storing a runtime environment for executing applications comprising component definitions, the runtime environment comprising computer executable code for: accepting as input a plurality of component definitions defining a plurality of components, each component definition using a complex data structure containing multiple levels of nesting and multiple objects; and defining a simplified data structure comprising three arrays to represent the plurality of complex data structures,

wherein the three arrays comprise:

a first array of primitive types storing structural description information regarding each of said plurality of components,

a second array of primitive types storing properties of each field of each of said plurality of components, and

a third array storing objects representing default values of each said field of said plurality of components,

and wherein the computer executable code associates the arrays to provide references between the arrays by:

setting an index within the first array to indicate where field definitions of one of said plurality of components start within the second array; and

setting a further index within the second array to reference an object in the third array indicative of a default value of one of said component fields.

2. The system as claimed in claim 1 wherein the computer executable code uses said simplified data structure while executing an application defined by the at least one component definition and while persisting the component described by the component definition.

3. The system as claimed in claim 1 wherein the computer executable code traverses a particular one of the at least one component definitions in depth first traverse order to sequentially define the simplified data structure for the component definitions within the arrays.

4. The system as claimed in claim 1 wherein the structural description information comprises a definition type and a definition identifier to distinguish a particular simplified data structure among those having a common definition type.

5. The system as claimed in claim 1 wherein said primitive types comprise at least one of: byte, integer, long, and String.

6. A method for simplifying the representation of a plurality of components, each component described by a component definition using a complex data structure, the method comprising:

provisioning a runtime environment which executes applications comprising component definitions with computer executable code for: accepting as input a plurality of component definitions defining a plurality of components, each component definition using a complex data structure containing multiple levels of nesting and multiple objects; and defining a simplified data structure comprising three arrays to represent the plurality of complex data structures,

wherein the three arrays comprise:

a first array of primitive types storing structural description information regarding each of said plurality of components;

a second array of primitive types storing properties of each field of each of said plurality of components; and

a third array storing objects representing default values of each said field of said plurality of components,

and wherein the computer executable code associates the arrays to provide references between the arrays by:

setting an index within the first array to indicate where field definitions of one of said plurality of components start within the second array; and

setting a further index within the second array to reference an object in the third array indicative of a default value of one of said component fields.

7. The method as claimed in claim 6 wherein the computer executable code uses said simplified data structure while executing an application defined by the at least one component definition and while persisting the component described by the component definition.

8. The method as claimed in claim 6 wherein the computer executable code traverses a particular one of the at least one component definitions in depth first traverse order to sequentially define the simplified data structure for the component definitions within the arrays.

9. The method as claimed in claim 6 wherein said primitive types comprise at least one of: byte, integer, long, and String.

10. A memory for storing data for access by a runtime environment for executing on a data processing device an application comprising a plurality of component definitions defining a plurality of components, each component definition using a complex data structure containing multiple levels of nesting and multiple objects, comprising:

a data structure stored in said memory, said data structure comprising three arrays for representing the plurality of complex data structures, the three arrays comprising:

a first array of primitive types for storing structural description information regarding each of said plurality of components,

a second array of primitive types storing properties of each field of each of said plurality of components, and

a third array storing objects representing default values of each said field of said plurality of components;

said first array including an index indicating where field definitions of one of said plurality of components start within said second array; and

said second array including a further index referencing an object in said third array indicative of a default value of one of said component fields.

Assignments (6)
SECURITY INTEREST Recorded Apr 13, 2026
From: SEALED AIR CORPORATION; CRYOVAC, LLC; SHANKLIN CORPORATION; SEALED AIR IP HOLDINGS, LLC; SEALED AIR CORPORATION (US)
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 075384/0016 →
SECURITY INTEREST Recorded Apr 9, 2026
From: SEALED AIR CORPORATION; CRYOVAC, LLC; SHANKLIN CORPORATION; SEALED AIR IP HOLDINGS, LLC; SEALED AIR CORPORATION (US)
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 075378/0512 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Nov 6, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034179/0923 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2005
From: VITANOV, KAMEN; DOKTOROVA, LAURA; SHENFIELD, MICHAEL; QING, RICHARD X.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 016775/0070 →