IP Library Granted Patent US 9,760,623
Granted Patent B2
US 9,760,623 · App. 13/969,101 · Granted Sep 12, 2017

System for lightweight objects

Inventors: Shu-Shang Sam Wei (Danville, CA); Roger W. Kilday (Danville, CA); Victor Spivak (San Mateo, CA); Meir Amiel (Pleasanton, CA); Venkat Chandrasekaran (Pleasanton, CA); Yik-Ping Li (Fremont, CA); David Buccola (Pleasanton, CA)
Assignee: Open Text Corporation
G06F17/30607G06F17/30587
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 9,760,623
App. No.
13/969,101
Granted
Sep 12, 2017
Kind
B2
Abstract

Creating an object is disclosed. An instance of a sharable type is created. An instance of a lightweight type is created. The sharable type is designated as a parent of the lightweight type. The instance of the sharable type is designated as a parent of the instance of the lightweight type. The instance of the sharable type may be shared by one or more other instances of the lightweight type.

Claims (65)

1. A system for storing a lightweight type, comprising:

a hardware processor configured to:

declare a lightweight type, comprising:

identify a previously declared heavyweight type;

determine whether a sharable type associated with a lightweight type is available,

wherein a composite of the lightweight type and the shareable type associated with the lightweight type corresponds to the previously declared heavyweight type;

in an event that the sharable type is not available:

determine whether the previously declared heavyweight type is available;

in an event that the previously declared heavyweight type is available:

modify the previously declared heavyweight type to be a parent of the lightweight type; and

in an event that the previously declared heavyweight type is not available:

create in memory the sharable type, comprising:

 selecting one or more heavyweight type instances sharing a common set of one or more higher class types;

 altering a corresponding heavyweight type to be a sharable parent that includes the common set of one or more higher class types;

 creating one or more sharable parent instances based on the sharable parent;

identify and create in memory the lightweight type based on identifying one or more lower class types that are not shared among the one or more heavyweight type instances, wherein the sharable type is designated as a parent of the lightweight type, and wherein an instance of the sharable type is capable of being shared by one or more instances of the lightweight type;

create the one or more instances of the lightweight type; and

designate the sharable parent or an instance of the sharable parent for at least one of the lightweight type and the one or more instances of the lightweight type.

2. The system as in claim 1 , wherein creating the sharable type comprises creating a new sharable type.

3. The system as in claim 1 , wherein creating the sharable type comprises modifying a previously declared non-sharable type.

4. The system as in claim 1 , wherein the hardware processor is further configured to receive an indication to create an object of the lightweight type.

5. The system as in claim 1 , wherein declaring the lightweight type comprises creating a new lightweight type.

6. The system as in claim 1 , wherein declaring the lightweight type comprises creating a subtype of another lightweight type.

7. The system as in claim 1 , wherein the hardware processor is further configured to store in a database the sharable type.

8. The system as in claim 1 , wherein the hardware processor is further configured to create in memory an instance of the sharable type.

9. The system as in claim 8 , wherein the instance of the sharable type is stored in a database.

10. The system as in claim 1 , wherein the hardware processor is further configured to store in a database an instance of the lightweight type.

11. The system as in claim 10 , wherein the instance of the lightweight type is stored in a database.

12. The system as in claim 1 , wherein the lightweight type is one of a plurality of lightweight types, wherein each of the plurality of lightweight types have the sharable type designated as a parent.

13. The system as in claim 1 , wherein the lightweight type inherits behavior from the sharable type.

14. The system of claim 1 , wherein the composite has similar behavior to the previously declared heavyweight type.

15. The system of claim 1 , wherein the hardware processor is further configured to validate the lightweight type created in memory, wherein validation of the lightweight type comprises determining whether the one or more instances of the lightweight type perform similarly to an instance of the previously declared heavyweight type.

16. The system of claim 1 , wherein an instance of the lightweight type inherits one or more of a behavior or data from the shareable type associated with the lightweight type.

17. A method for storing a lightweight type, comprising:

declaring a lightweight type, comprising:

identifying a previously declared heavyweight type;

determining, using a processor, whether a sharable type associated with a lightweight type is available, wherein a composite of the lightweight type and the shareable type associated with the lightweight type corresponds to the previously declared heavyweight type;

in an event that the sharable type is not available:

determining whether the previously declared heavyweight type is available;

in an event that the previously declared heavyweight type is available:

modifying the previously declared heavyweight type to be the lightweight type; and

in an event that the previously declared heavyweight type is not available:

creating in memory the sharable type, comprising:

selecting one or more heavyweight type instances sharing a common set of one or more higher class types;

altering a corresponding heavyweight type to be a sharable parent that includes the common set of one or more higher class types;

creating one or more sharable parent instances based on the sharable parent;

identifying and creating in memory the lightweight type based on identifying one or more lower class types that are not shared among the one or more heavyweight type instances, wherein the sharable type is designated as a parent of the lightweight type, and wherein an instance of the sharable type is capable of being shared by one or more instances of the lightweight type;

creating the one or more instances of the lightweight type; and

designating the sharable parent or an instance of the sharable parent for at least one of the lightweight type and the one or more instances of the lightweight type.

18. A computer program product for storing a lightweight type, the computer program product being embodied in a non-transitory computer readable medium and comprising computer instructions for:

declaring a lightweight type, comprising:

identifying a previously declared heavyweight type;

determining, using a processor, whether a sharable type associated with a lightweight type is available, wherein a composite of the lightweight type and the shareable type associated with the lightweight type corresponds to the previously declared heavyweight type;

in an event that the sharable type is not available:

determining whether the previously declared heavyweight type is available;

in an event that the previously declared heavyweight type is available:

modifying the previously declared heavyweight type to be the lightweight type; and

in an event that the previously declared heavyweight type is not available:

creating in memory the sharable type, comprising:

selecting one or more heavyweight type instances sharing a common set of one or more higher class types;

altering a corresponding heavyweight type to be a sharable parent that includes the common set of one or more higher class types;

creating one or more sharable parent instances based on the sharable parent;

identifying and creating in memory the lightweight type based on identifying one or more lower class types that are not shared among the one or more heavyweight type instances, wherein the sharable type is designated as a parent of the lightweight type, and wherein an instance of the sharable type is capable of being shared by one or more instances of the lightweight type;

creating the one or more instances of the lightweight type; and

designating the sharable parent or an instance of the sharable parent for at least one of the lightweight type and the one or more instances of the lightweight type.

Assignments (7)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: EMC CORPORATION
To: OPEN TEXT CORPORATION
Reel/Frame 041141/0250 →
RELEASE OF SECURITY INTEREST Recorded Jan 23, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC CORPORATION
Reel/Frame 041073/0443 →
PATENT RELEASE (REEL:40134/FRAME:0001) Recorded Jan 23, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: EMC CORPORATION, AS GRANTOR
Reel/Frame 041073/0136 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2013
From: WEI, SHU-SHANG SAM; KILDAY, ROGER W.; SPIVAK, VICTOR; AMIEL, MEIR; CHANDRASEKARAN, VENKAT; LI, YIK-PING; BUCCOLA, DAVID
To: EMC CORPORATION
Reel/Frame 031597/0044 →
Continuity (3)
Continuation 13161580 · Jun 16, 2011
Continuation 11906185 · Sep 28, 2007
Related Publication 20140059080A1 · Feb 27, 2014