IP Library Granted Patent US 8,412,813
Granted Patent B2
US 8,412,813 · App. 11/436,102 · Granted Apr 2, 2013

Customizable asset governance for a distributed reusable software library

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,412,813
App. No.
11/436,102
Granted
Apr 2, 2013
Kind
B2
Abstract

In general, techniques are described that facilitate the reuse of software assets within an enterprise. A system, for example, is described that includes a repository to store artifacts, and an asset source to generate a software asset based on the artifacts. The system further includes an asset management system to receive the software asset from the asset source and store the software asset within an asset library. The system may further include a model having one or more elements, and an asset retrieval module to selectively retrieve a subset of the software assets from the asset library based on input from a user identifying one or more of the elements. The system may also include a subsystem that allows users to customize asset governance processes and tailor system behavior through an event-driven mechanism.

Claims (90)

1. A computer-implemented system comprising:

one or more computers;

a set of repositories configured to store electronic artifacts, at least one or more of the artifacts comprising software instructions;

a set of asset sources executing on the one or more computers, the set of asset sources being configured to monitor the repositories and to generate software assets in a normalized format upon detecting new or changed artifacts in the repositories, each of the software assets representing a set of related artifacts in the repositories that is reusable in different software development environments; and

an asset management system executing on the one or more computers, the asset management system being configured to capture the software assets from the asset sources, to store the software assets in an asset library, and to operate in accordance with a control process when the asset management system captures the software assets generated by the asset sources and stores the software assets, the control process being customizable by an administrator of the asset management system, the asset management system comprising:

a library process control (LPC) document that defines the control process, and

a control unit that processes the LPC document and performs the control process based on the content of the LPC document.

2. The system of claim 1 ,

wherein the LPC document comprises a set of preconditions and a set of actions, and

wherein the asset management system performs an action in the set of actions when all preconditions associated with the action in the set of preconditions are satisfied.

3. The system of claim 2 , wherein the control process evaluates the set of preconditions to determine whether all preconditions associated with the action are satisfied.

4. The system of claim 2 , wherein a precondition in the set of preconditions comprises approval from a set of users defined in the LPC document.

5. The system of claim 2 , wherein the action refers to a listener definition, wherein the listener definition contains a reference to an implementation that encapsulates substantive behavior of the asset management system.

6. The system of claim 5 , wherein the implementation is external to the asset management system.

7. The system of claim 1 , wherein the LPC document conforms to the extensible markup language (XML).

8. The system of claim 1 , further comprising a graphical interface by which the administrator edits the LPC document.

9. The system of claim 1 , wherein the LPC document defines a default procedure and the asset management system operates in accordance with the default procedure.

10. The system of claim 1 , wherein the LPC document defines the control process to a procedure for approval or rejection of the asset, and the asset management system operates in accordance with the procedure.

11. The system of claim 10 , wherein the procedure for approval or rejection of the asset comprises requesting approval of the artifact from a set of users defined in the LPD document, receiving replies form the set of users, and aborting the control process if any member of the set of users rejects the artifact.

12. The system of claim 1 , wherein the asset management system performs the control process in response to an event.

13. The system of claim 12 , wherein the event is a notification from one of the asset sources that the one of the asset sources has generated a software asset.

14. The system of claim 1 , wherein the control process governs how the asset management system handles requests to retrieve a software asset from the asset library.

15. The system of claim 1 , wherein the normalized form of the software assets complies with a computer data description language.

16. The system of claim 15 , wherein the computer data description language comprises the extensible markup language (XML).

17. The system of claim 1 , wherein the asset sources comprise a writable interface for editing the software assets.

18. The system of claim 1 , wherein the asset management system comprises an asset capture module to update the software assets based on additional artifacts.

19. The system of claim 18 , wherein the asset capture module includes a user interface to receive the additional artifacts from a user.

20. The system of claim 18 , wherein the asset capture module includes a script to generate the additional artifacts.

21. The system of claim 18 ,

wherein an asset template defines a schema for the software assets in accordance with a computer data description language; and

wherein the asset capture module updates the software assets in accordance with the asset template.

22. The system of claim 21 , wherein the asset capture module identifies missing artifacts from the software assets based on the asset template.

23. The system of claim 1 ,

wherein the asset management system further comprises a rules engine to generate metadata that maps the software assets to elements of one or more models that provide formal representations of the artifacts; and

wherein the asset management system further comprises an asset retrieval module to selectively retrieve a software asset from the asset library based on the metadata.

24. The system of claim 23 ,

wherein the asset retrieval module receives user input from a user, wherein the input comprises one or more elements of the models; and

wherein the asset retrieval module selectively retrieves a software asset from the asset library based on the user input and the models.

25. The system of claim 23 , wherein the models comprises at least one of a process model, a structural model, a resource model, and an implementation model.

26. The system of claim 1 , wherein the artifacts comprise one of source code, binary code, a requirements specification, a design document, a model, a use case, and a collaboration diagram.

27. The system of claim 1 ,

wherein the set of asset sources comprise a multi-level hierarchy of asset sources executing on one or more computers to monitor the repositories and to generate software assets upon detecting a new or updated artifact,

wherein higher-level asset sources of the hierarchy receive software assets from lower-level asset sources of the hierarchy and combine the received software assets to form aggregate software assets,

wherein the asset management system receives the aggregate software assets from the hierarchy of asset sources and stores the aggregate software assets within the asset library, and

wherein the control process governs how the asset management system captures the aggregate software assets and stores the aggregate software assets.

28. The system of claim 27 , wherein the asset management system further comprises at least two asset capture tools communicatively coupled to different asset sources of different levels of the hierarchy.

29. A method comprising:

storing, with a set of repositories, electronic artifacts, at least one or more of the artifacts comprising software instructions;

executing, with one or more computers, a set of asset sources that monitors the repositories and generates software assets in a normalized format upon detecting a new or changed artifact in the repositories, wherein each of the software assets represents a set of related artifacts in the repositories that is reusable in different software development environments; and

executing, with the one or more computers, an asset management system that captures the software assets from the asset sources, stores the software assets in an asset library, and operates in accordance with a control process when the asset management system captures the software assets generated by the asset sources and stores the software assets, the control process being customizable by an administrator of the asset management system, wherein executing the asset management system comprises:

processing a library process control (LPC) document that defines the control process; and

performing the control process based on the content of the LPC document.

30. The method of claim 29 , wherein the LPC document is specified by the administrator.

31. The method of claim 29 , wherein performing the control process comprises:

evaluating whether a set of preconditions defined in the LPC document are satisfied; and

performing an action defined in the LPC document when all preconditions that are associated with the action in the set of preconditions are satisfied.

32. The method of claim 31 , wherein evaluating a set of preconditions comprises evaluating whether a set of users has indicated approval.

33. The method of claim 31 , wherein performing the action comprises:

accessing an implementation of the action specified by the LPC document;

transferring properties specified in the LPC document to the implementation; and

receiving a result from the implementation.

34. The method of claim 33 , wherein the implementation is located on a remote system.

35. The method of claim 29 , wherein performing the control process comprises:

requesting approval of the artifact from a set of users;

receiving replies from the set of users; and

aborting the process if any member of the set of users rejects the artifact.

36. The method of claim 35 , wherein requesting approval comprises sending an electronic message to the set of users.

37. The method of claim 35 , wherein receiving replies comprises receiving an electronic message from the set of users.

38. The method of claim 29 , wherein the LPC document conforms to the extensible markup language (XML).

39. The method of claim 29 , wherein the normalized format of the software assets conforms to the extensible markup language (XML).

40. The method of claim 29 , wherein the asset sources generate the software assets in accordance with an asset template that defines a schema for the software assets.

41. The method of claim 29 , wherein the asset sources identify additional artifacts required for the software assets and invoke an asset capture module in the asset management system to update the software assets to include the additional artifacts.

42. The method of claim 29 ,

wherein the software assets comprise metadata that maps the software assets to elements of one or more models that provide formal representations of the artifacts; and

wherein the method further comprises:

receiving input from a user, wherein the input comprises one or more elements of the models; and

retrieving software assets from the asset library based on the elements of the model in the input and the metadata of the software assets.

43. The method of claim 42 , wherein executing the asset management system comprises customizing the control process to govern how the asset management system retrieves the software assets from the asset library.

44. The method of claim 29 , wherein the artifact comprises one of source code, binary code, a requirements specification, a design document, a model, a use case, and a collaboration diagram.

45. The method of claim 29 ,

wherein the set of asset sources comprise a multi-level hierarchy of asset sources executing on one or more computers to monitor the repositories and to generate software assets upon detecting a new or updated artifact,

wherein higher-level asset sources of the hierarchy receive software assets from lower-level asset sources of the hierarchy and combine the received software assets to form aggregate software assets,

wherein the asset management system receives the aggregate software assets from the hierarchy of asset sources and stores the aggregate software assets within the asset library, and

wherein performing the control process comprises governing how the asset management system captures the aggregate software assets and stores the aggregate software assets.

46. A non-transitory computer-readable medium comprising instructions to cause one or more processors to:

store electronic artifacts in a set of repositories, at least one or more of the artifacts comprising software instructions;

execute a set of asset sources that monitors the repositories and generates software assets in a normalized format upon detecting a new or changed artifact in the repositories, wherein each of the software assets represents a set of related artifacts in the repositories that is reusable in different software development environments; and

execute an asset management system that captures the software assets from the asset sources, stores the software assets in an asset library, and operates in accordance with a control process when the asset management system captures the software assets generated by the asset sources and stores the software assets, the control process being customizable by an administrator of the asset management system, wherein the instructions to cause the one or more processors to execute the asset management system comprise instructions to cause the one or more processors to:

process a library process control (LPC) document that defines the control process; and

perform the control process based on the content of the LPC document.

Assignments (14)
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 7, 2019
From: BRIGHTWOOD LOAN SERVICES LLC, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
Reel/Frame 049996/0115 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jul 22, 2019
From: PERFORCE SOFTWARE, INC.; PERFORCE INTERMEDIATE HOLDINGS, LLC; AKANA, INC.; GLIFFY, INC.; KLOCWORK INC.; OPENLOGIC, INC.; ROGUE WAVE HOLDING CORP.; ROGUE WAVE HOLDINGS, INC.; ROGUE WAVE SOFTWARE, INC.; RWS, INC.; TOTALVIEW TECHNOLOGIES, INC.; TOTALVIEW TECHNOLOGIES LLC; VISUAL NUMERICS, INC.; ZEROTURNAROUND USA, INC.; ZEROTURNAROUND, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 049823/0752 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Jul 22, 2019
From: ANTARES CAPITAL LP, AS COLLATERAL AGENT
To: AKANA, INC.
Reel/Frame 049823/0685 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 8, 2019
From: AKANA, INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 049688/0800 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
To: BRIGHTWOOD LOAN SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 048290/0241 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.
To: ANTARES CAPITAL LP, AS COLLATERAL AGENT
Reel/Frame 049859/0124 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Feb 8, 2019
From: FIRST EAGLE PRIVATE CREDIT, LLC (F/K/A/ NEWSTAR FINANCIAL, LLC (NEWSTAR FINANCIAL, LLC F/K/A NEWSTAR FINANCIAL, INC.))
To: ROGUE WAVE SOFTWARE, INC.; ROGUE WAVE HOLDINGS, INC.; KLOCWORK INC.; TOTALVIEW TECHNOLOGIES, INC.; TOTALVIEW TECHNOLOGIES LLC; RWS, INC.; OPENLOGIC, INC.; VISUAL NUMERICS, INC.; AKANA, INC.
Reel/Frame 048289/0928 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
To: BRIGHTWOOD LOAN SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 048290/0223 →
RELEASE OF SECURITY INTEREST Recorded Dec 6, 2016
From: MULTIPLIER CAPITAL, LP
To: AKANA, INC.
Reel/Frame 040842/0358 →
SECURITY INTEREST Recorded Nov 29, 2016
From: AKANA, INC.
To: NEWSTAR FINANCIAL, INC.
Reel/Frame 040456/0699 →
SECURITY AGREEMENT Recorded Apr 7, 2016
From: AKANA, INC.
To: MULTIPLIER CAPITAL, LP
Reel/Frame 038381/0780 →
MERGER Recorded Jan 12, 2016
From: LOGICLIBRARY, INC.
To: SOA SOFTWARE, INC.
Reel/Frame 037468/0790 →
CHANGE OF NAME Recorded Apr 15, 2015
From: SOA SOFTWARE, INC
To: AKANA, INC.
Reel/Frame 035440/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2006
From: CARLSON, BRENT A.; GRASER, TIMOTHY J.
To: LOGICLIBRARY, INC.
Reel/Frame 018130/0936 →