IP Library Granted Patent US 7,853,508
Granted Patent B2
US 7,853,508 · App. 10/613,534 · Granted Dec 14, 2010

Method and system for object-oriented management of multi-dimensional data

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,853,508
App. No.
10/613,534
Granted
Dec 14, 2010
Kind
B2
Abstract

Methods and systems for managing and analyzing multi-dimensional data are provided. Example embodiments provide a Meta-Object Data Management System “MODMS,” which enables users to arrange and to rearrange hierarchical relationships of the data on an ad-hoc basis and allows the data to be analyzed using any set of attributes (dimensions) while the system is running. The MODMS represents heterogeneous data in a normalized (standardized) fashion using an object type management system that allows the arbitrary coercion of one type of object into another different type of object and automatically resolves attribute dependencies. In one embodiment, the MODMS comprises an object type management subsystem; a meta-object instantiation subsystem; one or more data repositories; and an input/output interface. These components cooperate to allow the creation, management, and analysis of relationships between many different types of single and multi-dimensional data. The MODMS may be used to implement an enterprise portfolio management system.

Claims (125)

1. A computer system for managing and analyzing enterprise portfolio data, comprising:

a memory;

a portfolio representation structure instantiated and stored in the memory as an object instance hierarchy that contains enterprise portfolio data from different types of investments, the enterprise portfolio data including financial investments and non-financial investments;

a portfolio manager component that is stored in the memory and that is configured, when executed, to add, to the portfolio representation structure, items that correspond to transactions on the enterprise portfolio data; and

a portfolio analyzer component that is stored in the memory and that is configured, when executed, to present a plurality of views of the enterprise portfolio data as represented by the portfolio representation structure, wherein the views dynamically calculate and present multi-dimensional characterizations of the enterprise portfolio data while items are added using the portfolio manager, thereby concurrently providing online transaction processing that may affect relationships among the enterprise portfolio data while supporting online analysis of the presented views of the enterprise portfolio data.

2. The system of claim 1 wherein the portfolio data is from heterogeneous data sources that store data in a plurality of formats.

3. The system of claim 1 wherein the portfolio data represents investments from distinctive parts of an organization.

4. The system of claim 3 wherein the organization parts include at least two of management, marketing, sales, product management, manufacturing, research, development, IT, finance, operations, consulting, engineering, and human resources.

5. The system of claim 1 wherein the portfolio data includes project management characterizations.

6. The system of claim 1 wherein the plurality of views includes at least one dimensioned attribute.

7. The system of claim 6 wherein the dimensioned attribute includes at least two of actual value, baseline value, plan value, target value, and scenario value.

8. The system of claim 1 , further comprising:

a meta-object data management system for managing the portfolio representation structure.

9. The system of claim 8 wherein the structure is hierarchical.

10. A method in a computer system for representing, managing, and analyzing investments of an organization, the computer system having a computer processor and a memory, the method comprising:

under control of the computer processor of the computer system,

instantiating a hierarchy of object instances, each object instance representing an investment of the organization, wherein at least two object instances represent data from categories of investments that are different from each other such that data from at least a first investment type and data from at least a second investment type, the first investment type different from the second investment type, are contained as different object instances in the same object instance hierarchy;

receiving a request to display data from a plurality of the object instances according to an attribute specification;

displaying the object instances of the plurality of object instances that match the attribute specification, in a manner that is in accordance with the attribute specification, so that multi-dimensional views of the matching objects are computed and displayed dynamically; and

processing changes to the hierarchy of object instances while displaying the object instances that match the attribute specification, thereby concurrently allowing online transaction processing that may affect the hierarchy of object instances while supporting online analysis of the displayed object instances.

11. The method of claim 10 wherein the request to display data according to an attribute specification is received as properties of a datasheet associated with an object instance in the hierarchy.

12. The method of claim 10 , each object instance having constituent attributes with associated values, wherein the displaying of the object instances that match the attribute specification further comprises:

determining from each matching object instance the constituent attributes and associated values;

dynamically constructing a virtual object instance to represent each aggregation of matching objects that is not already an instantiated object; and

displaying the constructed virtual objects along with the matching object instances.

13. The method of claim 12 wherein each virtual object instance automatically aggregates appropriate attributes of children object instances and children virtual object instances.

14. The method of claim 13 wherein at least one of the aggregated attributes represents time-phased data values.

15. The method of claim 13 wherein the attributes of the children instances specify whether they are to be aggregated to a parent virtual object instance.

16. The method of claim 12 wherein a value associated with at least one attribute is a dimensioned value.

17. The method of claim 16 wherein the dimensioned value comprises at least two of actual value, baseline value, plan value, target value, and scenario value.

18. The method of claim 10 further comprising defining, based on a datasheet, a dynamically created multi-dimensional view of the instantiated object hierarchy that is not previously stored in the computer system.

19. The method of claim 10 wherein the hierarchy of object instances includes one or more parent object instances each having one or more child object instances, wherein each child object instance of a parent object instance represents a relationship whereby the investment represented by the parent object instance is an aggregation of the child object instances associated with the parent object instance.

20. The method of claim 10 wherein the investments are part of an enterprise portfolio management system.

21. The method of claim 20 wherein the investments comprise heterogeneous data types in the form of at least two of financial investments, project management, collections of projects, programs, assets, human resources, products, portfolios, initiatives, applications, operations, processes, and activities.

22. The method of claim 20 , the enterprise portfolio management system managing enterprise portfolios, wherein the enterprise portfolios comprise at least two of engineering, marketing, product management, manufacturing, sales, information technology, finance, human resources, research, development, and professional services portfolios.

23. The method of claim 10 wherein the investments include time-phased data.

24. The method of claim 23 wherein the time-phased data is stored in a manner that indicates a first designated time period in a virtual object instance and is stored in a manner that indicates a second designated time period in the object instances that are children of the virtual object instance that stores the time-phased data.

25. The method of claim 24 wherein the first designated time period is at least one of weekly, monthly, quarterly, and annually.

26. The method of claim 24 wherein the second designated time period is at least one of daily and hourly.

27. The method of claim 24 wherein the second designated time period is a custom defined range.

28. The method of claim 24 wherein the first designated time period is a custom defined range.

29. The method of claim 23 wherein a change to time-phased data of a virtual object instance is automatically reflected in changes to object instances that are children of the virtual object instance in which the change occurred.

30. The method of claim 10 wherein the object instances of the plurality that match the attribute specification is filtered based upon a security role associated with the request.

31. The method of claim 10 , further comprising:

indicating that the request to display data according to the attribute specification is to be applied to a different plurality of object instances of the hierarchy; and

automatically modifying the display of the object instances to include object instances from the different plurality that match the attribute specification.

32. The method of claim 31 wherein the indication is to copy the request and the display of object instances includes the object instances from the plurality that match the attribute specification in addition to objects instances from the different plurality.

33. The method of claim 31 wherein the indication is to move the request and the object instances from the plurality that match the attribute specification are removed from the display unless the object instances from the plurality that match are also instances of the different plurality.

34. The method of claim 10 , each object instance having constituent attributes with associated values, further comprising:

associating a chart definition with the request to display data according to the attribute specification, the chart definition having an associated set of chart parameters; and

automatically determining values for the associated chart parameters based upon the constituent attributes of the object instances that match the attribute specification.

35. The method of claim 34 , further comprising:

presenting a chart that corresponds to the chart definition, such that the values displayed by the chart are automatically determined from the values associated with the constituent attributes of the object instances that match the attribute specification.

36. The method of claim 34 , further comprising:

associating the chart definition with a request to display data from a different plurality of object instances according to a second attribute specification; and

automatically re-determining the values for the associated chart parameters based upon the constituent attributes of the object instances from the different plurality that match the second attribute specification.

37. The method of claim 36 wherein the second attribute specification is the same as the attribute specification.

38. The method of claim 36 wherein the chart definition is moved.

39. The method of claim 36 wherein the chart definition is copied.

40. A computer-readable memory medium containing instructions for controlling a computer system to represent, manage, and analyze investments of an organization, by performing:

instantiating a hierarchy of object instances, each object instance representing an investment of the organization, wherein at least two object instances represent data from types of investments that are different from each other such that data from at least a first investment type and data from at least a second investment type, the first investment type different from the second investment type, are contained as different object instances in the same object instance hierarchy;

receiving a request to display data from a plurality of the object instances according to an attribute specification;

displaying the object instances of the plurality of object instances that match the attribute specification, in a manner that is in accordance with the attribute specification, so that multi-dimensional views of the matching objects are computed and displayed dynamically; and

processing changes to the hierarchy of object instances while displaying the object instances that match the attribute specification, thereby concurrently allowing online transaction processing that may affect the hierarchy of object instances while supporting online analysis of the displayed object instances.

41. The memory medium of claim 40 wherein the request to display data according to an attribute specification is received as properties of a datasheet associated with an object instance in the hierarchy.

42. The memory medium of claim 40 , each object instance having constituent attributes with associated values, wherein the displaying of the object instances that match the attribute specification further comprises:

determining from each matching object instance the constituent attributes and associated values;

dynamically constructing a virtual object instance to represent each aggregation of matching objects that is not already an instantiated object; and

displaying the constructed virtual objects along with the matching object instances.

43. The memory medium of claim 42 wherein each virtual object instance automatically aggregates appropriate attributes of children object instances and children virtual object instances.

44. The memory medium of claim 43 wherein at least one of the aggregated attributes represents time-phased data values.

45. The memory medium of claim 42 wherein a value associated with at least one attribute is a dimensioned value.

46. The memory medium of claim 45 wherein the dimensioned value comprises at least two of actual value, baseline value, plan value, target value, and scenario value.

47. The memory medium of claim 40 further comprising instructions that control the processor by: defining, based on a datasheet, a dynamically created multi-dimensional view of the instantiated object hierarchy that is not previously stored in the computer system.

48. The memory medium of claim 40 wherein the hierarchy of object instances includes one or more parent object instances each having one or more child object instances, wherein each child object instance of a parent object instance represents a relationship whereby the investment represented by the parent object instance is an aggregation of the child object instances associated with the parent object instance.

49. The memory medium of claim 40 wherein the investments are part of an enterprise portfolio management system.

50. The memory medium of claim 40 wherein the investments include time-phased data.

51. The memory medium of claim 50 wherein the time-phased data is stored in a manner that indicates a first designated time period in a virtual object instance and is stored in a manner that indicates a second designated time period in the object instances that are children of the virtual object instance that stores the time-phased data.

52. The memory medium of claim 50 wherein a change to time-phased data of a virtual object instance is automatically reflected in changes to object instances that are children of the virtual object instance in which the change occurred.

53. The memory medium of claim 40 wherein the object instances of the plurality that match the attribute specification is filtered based upon a security role associated with the request.

54. The memory medium of claim 40 , further comprising instructions that control the computer processor by:

indicating that the request to display data according to the attribute specification is to be applied to a different plurality of object instances of the hierarchy; and

automatically modifying the display of the object instances to include object instances from the different plurality that match the attribute specification.

55. The memory medium of claim 40 , each object instance having constituent attributes with associated values, further comprising instructions that control the computer processor by:

associating a chart definition with the request to display data according to the attribute specification, the chart definition having an associated set of chart parameters; and

automatically determining values for the associated chart parameters based upon the constituent attributes of the object instances that match the attribute specification.

56. The memory medium of claim 55 , further comprising instructions that control the computer processor by

presenting a chart that corresponds to the chart definition, such that the values displayed by the chart are automatically determined from the values associated with the constituent attributes of the object instances that match the attribute specification.

57. The memory medium of claim 55 , further comprising instructions that control the computer processor by:

associating the chart definition with a request to display data from a different plurality of object instances according to a second attribute specification; and

automatically re-determining the values for the associated chart parameters based upon the constituent attributes of the object instances from the different plurality that match the second attribute specification.

58. A portfolio management system for representing, managing, and analyzing investments of an organization, comprising:

a memory;

a portfolio management component that is stored in the memory and that is configured, when executed, to instantiate a hierarchy of object instances according to received data, each object instance representing an investment of the organization, wherein at least two object instances represent data from types of investments that are different from each other such that the data from the different investment types are contained as different object instances in the same object instance hierarchy; and

a portfolio analysis component that is stored in the memory and that is configured, when executed, to:

receive a request to display data from a plurality of the object instances according to an attribute specification;

display the object instances of the of the plurality of object instances that match the attribute specification in a manner that is in accordance with the attribute specification, so that multi-dimensional views of the matching objects are computed and displayed dynamically; and

process changes to the hierarchy of object instances while displaying the object instances that match the attribute specification, thereby concurrently allowing online transaction processing that may affect the hierarchy of object instances while supporting online analysis of the displayed object instances.

59. The system of claim 58 wherein the request to display data according to an attribute specification is received as properties of a datasheet associated with an object instance in the hierarchy.

60. The system of claim 58 , each object instance having constituent attributes with associated values, wherein the portfolio analysis component is further structured, when executed, to display of the object instances that match the attribute specification by:

determining from each matching object instance the constituent attributes and associated values;

dynamically constructing a virtual object instance to represent each aggregation of matching objects that is not already an instantiated object; and

displaying the constructed virtual objects along with the matching object instances.

61. The system of claim 60 wherein each virtual object instance automatically aggregates appropriate attributes of children object instances and children virtual object instances.

62. The system of claim 61 wherein at least one of the aggregated attributes represents time-phased data values.

63. The system of claim 60 wherein a value associated with at least one attribute is a dimensioned value.

64. The system of claim 63 wherein the dimensioned value comprises at least two of actual value, baseline value, plan value, target value, and scenario value.

65. The system of claim 58 wherein the portfolio analysis component is further structured, when executed, to: define, based on a datasheet, a dynamically created multi-dimensional view of the instantiated object hierarchy that is not previously stored in the computer system.

66. The system of claim 58 wherein the hierarchy of object instances includes on or more parent object instances each having one or more child object instances, wherein each child object instance of a parent object instance represents a relationship whereby the investment represented by the parent object instance is an aggregation of the child object instances associated with the parent object instance.

67. The system of claim 58 wherein the investments are part of an enterprise portfolio management system.

68. The system of claim 58 wherein the investments include time-phased data.

69. The system of claim 68 wherein the time-phased data is stored in a manner that indicates a first designated time period in a virtual object instance and is stored in a manner that indicates a second designated time period in the object instances that are children of the virtual object instance that stores the time-phased data.

70. The system of claim 68 wherein a change to time-phased data of a virtual object instance is automatically reflected in changes to object instances that are children of the virtual object instance in which the change occurred.

71. The system of claim 58 wherein the object instances of the plurality that match the attribute specification is filtered based upon a security role associated with the request.

72. The system of claim 58 wherein the portfolio analysis component is further structured, when executed, to:

receive an indication that the request to display data according to the attribute specification is to be applied to a different plurality of object instances of the hierarchy; and

automatically modify the display of the object instances to include object instances from the different plurality that match the attribute specification.

73. The system of claim 58 , each object instance having constituent attributes with associated values, further comprising:

a charting tool that is structured, when executed, to:

associate a chart definition with the request to display data according to the attribute specification, the chart definition having an associated set of chart parameters; and

automatically determine values for the associated chart parameters based upon the constituent attributes of the object instances that match the attribute specification.

74. The system of claim 73 wherein the charting tool is further structured, when executed, to present a chart that corresponds to the chart definition, such that the values displayed by the chart are automatically determined from the values associated with the constituent attributes of the object instances that match the attribute specification.

75. The system of claim 73 wherein the charting tool is further structured, when executed, to:

associate the chart definition with a request to display data from a different plurality of object instances according to a second attribute specification; and

automatically re-determine the values for the associated chart parameters based upon the constituent attributes of the object instances from the different plurality that match the second attribute specification.

Assignments (17)
RELEASE OF SECURITY INTEREST REEL/FRAME 039136/0241 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: SERENA SOFTWARE, INC
Reel/Frame 062623/0123 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042383/0830 →
SECURITY INTEREST Recorded Jul 12, 2016
From: SERENA SOFTWARE, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 039136/0241 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY'S NAME PREVIOUSLY RECORDED AT REEL: 026073 FRAME: 0206. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Jun 9, 2016
From: LEHMAN COMMERCIAL PAPER INC., AS RESIGNING ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: BARCLAYS BANK PLC, AS ADMINISTATIVE AGENT
Reel/Frame 038963/0840 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 032679/0596 Recorded May 2, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: SERENA SOFTWARE, INC.
Reel/Frame 038589/0480 →
RELEASE OF SECURITY AGREEMENT Recorded Apr 17, 2014
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: SERENA SOFTWARE, INC.
Reel/Frame 032712/0493 →
RELEASE OF SECURITY INTEREST Recorded Apr 16, 2014
From: COMERICA BANK
To: SERENA SOFTWARE, INC. (SUCCESSOR BY MERGER TO PACIFIC EDGE SOFTWARE, INC.)
Reel/Frame 032691/0576 →
SECURITY INTEREST Recorded Apr 15, 2014
From: SERENA SOFTWARE, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 032679/0596 →
SECURITY AGREEMENT Recorded Apr 4, 2011
From: SERENA SOFTWARE, INC., A DELAWARE CORPORATION
To: BARCLAYS BANK PLC. AS ADMINISTRATIVE AGENT
Reel/Frame 026073/0206 →
SECURITY AGREEMENT Recorded Feb 11, 2011
From: SERENA SOFTWARE, INC.
To: LEHMAN COMMERCIAL PAPER, AS COLLATERAL AGENT
Reel/Frame 025783/0444 →
MERGER Recorded Jun 1, 2007
From: PACIFIC EDGE SOFTWARE, INC.
To: SERENA SOFTWARE, INC.
Reel/Frame 019370/0764 →
SUPPLEMENT NO. 1 TO SECURITY AGREEMENT Recorded May 11, 2007
From: SERENA SOFTWARE, INC.
To: LEHMAN COMMERCIAL PAPER INC., AS COLLATERAL AGENT
Reel/Frame 019284/0692 →
SECURITY AGREEMENT Recorded Feb 15, 2006
From: PACIFIC EDGE SOFTWARE, INC.
To: COMERICA BANK
Reel/Frame 017171/0975 →
SECURITY AGREEMENT Recorded Feb 8, 2006
From: PACIFIC EDGE SOFTWARE, INC.
To: COMERICA BANK
Reel/Frame 017140/0898 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2003
From: SCUMNIOTALES, JOHN; BURKE, ERIC; CAHN, ROBERT; FANNON, THOMAS; BURNS, MITCHEL; LESTER, MICHAEL; HILL, JEFF
To: PACIFIC EDGE SOFTWARE, INC.
Reel/Frame 014159/0903 →