IP Library Granted Patent US 7,254,814
Granted Patent B1
US 7,254,814 · App. 09/967,111 · Granted Aug 7, 2007

Methods and apparatus for managing plug-in services

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,254,814
App. No.
09/967,111
Granted
Aug 7, 2007
Kind
B1
Abstract

Methods and apparatus operate in a computer system to manage initiation and operation of plug-in modules providing plug-in services. The plug-in manager obtains identities of a plurality of plug-in modules and retrieves a dependency list indicating respective plug-in services provided by, and required by, each plug-in module identified in the identities of the plug-in modules. The plug-in manager then calculates a plug-in initiation order based upon the dependency list indicating respective plug-in services provided by, and required by, each plug-in module. The plug-in manager then initiates service operation of plug-in modules according to the plug-in initiation order, such that if a first plug-in module provides a service required by a second plug-in module, the first plug-in module is initiated such that the service provided by the first plug-in module is available to the second plug-in module when required by the second plug-in module. In addition, the plug-in manager can operate a wait state operation within plug-in modules that provide services that depend upon each other in order to avoid service deadlocked situations.

Claims (142)

1. A method for managing services associated with a plurality of plug-in modules, the method comprising the steps of:

obtaining identities of a plurality of plug-in modules;

based on queries to the plurality of plug-in modules, retrieving dependency list information indicating respective plug-in services provided by, and required by, the plurality of plug-in modules;

wherein retrieving the dependency list information includes:

initiating a query to a first plug-in module of the plurality of plug-in modules;

in response to the query to the first plug-in module, receiving dependency information from the first plug-in module indicating that the first plug-in module requires a service provided by a second plug-in module;

initiating a query to the second plug-in module;

in response to the query to the second plug-in module, receiving dependency information from the second plug-in module;

calculating a plug-in initiation order based upon the received dependency information;

wherein calculating the plug-in initiation order includes:

producing the plug-in initiation order based on the dependency information received from the first plug-in module and the dependency information received from the second plug-in module; and

initiating service operation of plug-in modules according to the plug-in initiation order, such that if the first plug-in module provides a service required by the second plug-in module, the first plug-in module is initiated such that the service provided by the first plug-in module is available to the second plug-in module when required by the second plug-in module.

2. The method of claim 1 , wherein the step of obtaining identities of a plurality of plug-in modules includes the steps of:

receiving a list of services to be started within the computer system;

determining, for each service in the list of services, a respective plug-in module definition that can provide that service; and

placing the identity of each plug-in module definition determined in the step of determining into the identities of the plurality of plug-in modules.

3. The method of claim 1 , wherein the step of retrieving the dependency list information includes:

for each plug-in module identified in the identities of a plurality of plug-in modules, performing the steps of:

instantiating the plug-in module based upon a plug-in module definition associated with the identity of the plug-in module;

receiving a dependency response from the plug-in module, the dependency response indicating respective plug-in services provided by, and required by, the plug-in module; and

storing identities of the respective plug-in services provided by, and required by, the plug-in module as identified in the dependency response.

4. The method of claim 3 , wherein the step of instantiating the plug-in module comprises the steps of:

obtaining plug-in initiation information corresponding to the plug-in module definition associated with the identity of the plug-in module;

instantiating the plug-in module based upon a plug-in module definition associated with the identity of the plug-in module; and

passing the plug-in initiation information to the plug-in module for use by the plug-in module.

5. The method of claim 3 , wherein the step of instantiating the plug-in module comprises the step of:

querying a dependency interface associated with the plug-in module with a dependency query to obtain the dependency response from the plug-in module.

6. The method of claim 1 , wherein the step of calculating a plug-in initiation order based upon the dependency information comprises the step of:

arranging a placement of each plug-in module identified in the dependency list information within the plug-in initiation order such that plug-in modules not requiring services provided by other plug-in modules are placed earlier in the initiation order and such that plug-in modules requiring services provided by other plug-in modules are placed later in the initiation order.

7. The method of claim 6 , wherein the step of arranging placement of each plug-in module identified in the dependency list information within the plug-in initiation order comprises the steps of:

analyzing the dependency list information indicating respective plug-in services provided by, and required by, each plug-in module to determine which plug-ins provide services relied upon by other plug-in modules; and

creating, as the plug-in initiation order, at least one plug-in module dependency tree based on the step of analyzing, the at least one plug-in module dependency tree containing a hierarchical arrangement of nodes associated with respective plug-in modules, the hierarchical arrangement indicating the plug-in initiation order of the plug-in modules respectively associated with the nodes in the dependency tree.

8. The method of claim 7 , wherein initiating service operation of plug-in modules according to the plug-in initiation order comprises:

traversing the at least one plug-in module dependency tree according to the hierarchical arrangement of nodes and for each node encountered during the step of traversing, initiating service operation of the respective plug-in module associated with that node.

9. The method of claim 8 , wherein the step of initiating service operation of plug-in modules includes:

forwarding, via a dependency available interface associated with a respective plug-in module, a list of initiated plug-in services of other plug-in modules that are currently available for use by the respective plug-in module.

10. The method of claim 1 , wherein the step of initiating service operation of plug-in modules according to the plug-in initiation order comprises performing, for each respective plug-in module in the plug-in initiation order, the steps of:

determining, from a published list of services available by initiated plug-in modules, an identity of each initiated plug-in service required by the respective plug-in module;

forwarding to the respective plug-in module, via a dependency available interface associated with the respective plug-in module, the identity of each initiated plug-in service required by the respective plug-in module;

receiving a list of services initiated by the respective plug-in module; and

adding the list of services provided by the respective plug-in module to the published list of services.

11. The method of claim 1 , wherein the step of initiating service operation of plug-in modules according to the plug-in initiation order operates such that if the second plug-in module requires a service provided by the first plug-in module, the second plug-in module is initiated such that the service provided by the first plug-in module is available to the second plug-in module when required.

12. The method of claim 1 , wherein the first plug-in module is initiated via the step of initiating service operation of plug-in modules prior to initiation of the second plug-in module.

13. The method of claim 1 , wherein the first plug-in module is initiated via the step of initiating operation of plug-in modules after initiation of the second plug-in module, and wherein the second plug-in module includes a wait-state operation causing the second plug-in module to wait to provide the service offered by the second plug-in module until initiation of the first plug-in module.

14. The method of claim 1 , wherein the steps of obtaining, retrieving, calculating and initiating are performed by a multi-threaded plug-in manager and wherein the step of calculating a plug-in initiation order is performed by collectively operating a respective thread for each plug-in, each thread performing the step of initiating service operation of at least one plug-in module when all services required by that plug-in module are available.

15. The method as in claim 1 , wherein initiating service operation of the plug-in modules includes initiating at least partial concurrent execution of the first plug-in module and the second plug-in module.

16. The method as in claim 15 , wherein the second plug-in module depends on a given service provided by the first plug-in module.

17. The method as in claim 16 , wherein initiating service operation of the plug-in modules enables communication between the first plug-in module and the second plug-in module to enable each other to indicate when the given service is available.

18. The method as in claim 17 , wherein during the at least partial concurrent execution, the first plug-in module initiates a wait state and notifies the second plug-in module that the first plug-in module is available for service processing.

19. The method as in claim 17 , wherein during the at least partial concurrent execution, the first plug-in module initiates a wait state and notifies the second plug-in module that the first plug-in module is waiting for the second plug-in module to provide a particular service.

20. The method as in claim 1 further comprising:

utilizing services of initiated plug-in modules for purposes of managing resources associated with a respective storage area network.

21. The method as in claim 1 further comprising:

initiating a query to the second plug-in module; and

in response to the query to the second plug-in module, receiving dependency information from the second plug-in module indicating that the second plug-in module does not require services of any other plug-in modules.

22. A computer system comprising:

a memory;

a processor; and

an interconnection mechanism coupling the memory and the processor,

wherein the memory is encoded with a plug-in manager application that, when performed on the processor, produces a plug-in manager process that manages services associated with a plurality of plug-in modules encoded within the memory by performing the operation steps of:

obtaining identities of a plurality of plug-in modules including a first plug-in module and a second plug-in module;

initiating a query to the first plug-in module of the plurality of plug-in modules;

in response to the query to the first plug-in module receiving dependency information from the first plug-in module indicating that the first plug-in module requires a service provided by the second plug-in module;

initiating a query to the second plug-in module;

in response to the query to the second plug-in module, receiving dependency information from the second plug-in module

producing a plug-in initiation order based on the dependency information received from the first plug-in module and the dependency information received from the second plug-in module;

initiating service operation of plug-in modules on the processor according to the plug-in initiation order, such that if a first plug-in module provides a service required by a second plug-in module, the first plug-in module is initiated such that the service provided by the first plug-in module is available to the second plug-in module when required by the second plug-in module.

23. The computer system of claim 22 , wherein when the plug-in manager process performs the step of obtaining identities of the plurality of plug-in modules, the plug-in manager process performs steps of:

receiving a list of services to be started within the computer system;

determining, for each service in the list of services, a respective plug-in module definition that can provide that service; and

placing the identity of each plug-in module definition determined in the step of determining into the identities of the plurality of plug-in modules.

24. The computer system of claim 22 , wherein when the plug-in manager process performs a step of retrieving a dependency list information indicating respective plug-in services provided by, and required by, each plug-in module, the plug-in manager process performs the steps of:

for each plug-in module identified in the identities of a plurality of plug-in modules, performing the steps of:

instantiating the plug-in module in the memory based upon a plug-in module definition associated with the identity of the plug-in module;

receiving a dependency response from the plug-in module, the dependency response indicating respective plug-in services provided by, and required by, the plug-in module; and

storing, in the memory, identities of the respective plug-in services provided by, and required by, the plug-in module as identified in the dependency response.

25. The computer system of claim 24 , wherein when the plug-in manager process performs the step of instantiating the plug-in module, the plug-in manager process performs the steps of:

obtaining, in the memory, plug-in initiation information corresponding to the plug-in module definition associated with the identity of the plug-in module;

instantiating the plug-in module in the memory based upon a plug-in module definition associated with the identity of the plug-in module; and

passing the plug-in initiation information to the plug-in module in the memory for use by the plug-in module.

26. The computer system of claim 24 , wherein when the plug-in manager process performs the step of instantiating the plug-in module, the plug-in manager process performs the step of:

querying a dependency interface associated with the plug-in module with a dependency query to obtain the dependency response from the plug-in module.

27. The computer system of claim 22 , wherein when the plug-in manager process performs a step of producing the plug-in initiation order based upon the dependency information, the plug-in manager process performs the step of:

arranging a placement of each plug-in module identified in a dependency list within the plug-in initiation order such that plug-in modules not requiring services provided by other plug-in modules are placed earlier in the initiation order and such that plug-in modules requiring services provided by other plug-in modules are placed later in the initiation order.

28. The computer system of claim 27 , wherein when the plug-in manager process performs the step of arranging placement of each plug-in module identified in the dependency list within the plug-in initiation order, the plug-in manager process performs the steps of;

analyzing the dependency list indicating respective plug-in services provided by, and required by, each plug-in module to determine which plug-ins provide services relied upon by other plug-in modules; and

creating in the memory, as the plug-in initiation order, at least one plug-in module dependency tree based on the step of analyzing, the at least one plug-in module dependency tree containing a hierarchical arrangement of nodes associated with respective plug-in modules, the hierarchical arrangement indicating the plug-in initiation order of the plug-in modules respectively associated with the nodes in the dependency tree.

29. The computer system of claim 28 , wherein when the plug-in manager process performs the step of initiating service operation of plug-in modules according to the plug-in initiation order, the plug-in manager process performs the step of:

traversing the at least one plug-in module dependency tree in the memory according to the hierarchical arrangement of nodes and for each node encountered during the step of traversing, initiating service operation of the respective plug-in module associated with that node.

30. The computer system of claim 29 , wherein when the plug-in manager process performs the step of initiating service operation of the respective plug-in module associated with that node, the plug-in manager process performs the step of:

forwarding, via a dependency available interface associated with the respective plug-in module, a list of initiated plug-in services of other plug-in modules that are currently available for use by the respective plug-in module.

31. The computer system of claim 22 , wherein when the plug-in manager process performs the step of initiating service operation of plug-in modules according to the plug-in initiation order the plug-in manager process performs, for each respective plug-in module in the plug-in initiation order, the steps of:

determining, from a published list of services available by initiated plug-in modules, an identity of each initiated plug-in service required by the respective plug-in module;

forwarding to the respective plug-in module, via a dependency available interface associated with the respective plug-in module, the identity of each initiated plug-in service required by the respective plug-in module;

receiving a list of services initiated by the respective plug-in module; and

adding the list services provided by the respective plug-in module to the published list of services.

32. The computer system of claim 22 , wherein the step of initiating service operation of plug-in modules according to the plug-in initiation order operates in the plug-in manager process such that if the second plug-in module requires a service provided by the first plug-in module, the second plug-in module is initiated such that the service provided by the first plug-in module is available to the second plug-in module when required.

33. The computer system of claim 22 , wherein the plug-in manager initiates the first plug-in module via the step of initiating service operation of plug-in modules prior to initiation of the second plug-in module.

34. The computer system of claim 22 , wherein the plug-in manager process initiates the first plug-in module via the step of initiating operation of plug-in modules after initiation of the second plug-in module, and wherein the second plug-in module includes a wait-state operation causing the second plug-in module to wait to provide the service offered by the second plug-in module until initiation of the first plug-in module.

35. The computer system of claim 22 , wherein the steps of obtaining, receiving, producing, and initiating are performed by a multi-threaded plug-in manager and wherein the step of calculating a plug-in initiation order is performed by collectively operating a respective thread for each plug-in, each thread performing the step of initiating service operation of at least one plug-in module when all services required by that plug-in module are available.

36. The computer system as in claim 22 ,

wherein the dependency information received from the second plug-in module indicates that a third plug-in module is required by the second plug-in module.

37. The computer system as in claim 22 further supporting operations of:

based on contents of the dependency information received from the second plug-in module, identifying that the second plug-in module requires a service provided by a third plug-in module; and

initiating a query to the third plug-in module; and

in response to the query to the third plug-in module, receiving a dependency listing from the third plug-in module indicating that the third plug-in module does not require services of any other plug-in modules; and

wherein producing the plug-in initiation order includes producing the plug-in initiation order based on the dependency information received from the first plug-in module, the dependency information received from the second plug-in module, and the dependency listing received from the third plug-in module.

38. A computer program product having a computer-readable medium including computer program logic encoded thereon, that when executed on a computer system having a coupling of a memory and a processor, provides a plug-in manager process for managing plug-in services by causing the processor to perform the operations of:

obtaining identities of a plurality of plug-in modules including a first plug-in module and a second plug-in module;

initiating a query to the first plug-in module of the plurality of plug-in modules;

in response to the query to the first plug-in module, receiving dependency information from the first plug-in module indicating that the first plug-in module requires a service provided by the second plug-in module;

initiating a query to the second plug-in module;

in response to the query to the second plug-in module, receiving dependency information from the second plug-in module;

producing a plug-in initiation order based on the dependency information received from the first plug-in module and the dependency information received from the second plug-in module; and

initiating service operation of plug-in modules on the processor according to the plug-in initiation order, such that if a first plug-in module provides a service required by a second plug-in module, the first plug-in module is initiated such that the service provided by the first plug-in module is available to the second plug-in module when required by the second plug-in module.

39. The computer program product as in claim 38 , wherein the processor further performs operations of:

determining a list of plug-in services required by a software application; and

querying a set of plug-in modules to identify services provided by the set of plug-in modules.

40. The computer program product as in claim 39 , wherein the processor further performs operations of:

in response to querying the set of plug-in modules, identifying plug-in modules not identified by the software application as being necessary but which are identified by the set of plug-in modules as being necessary to carry out execution of an operation on behalf of the software application.

41. The computer program product as in claim 40 , wherein the processor further performs operations of:

initiating service operation of plug-in modules on the processor according to an order other than the plug-in initiation order, such that if a third plug-in module provides a service required by a fourth plug-in module, the third plug-in module being initiated after initiation of the fourth plug-in module, the third plug-in module initiating a wait state operation causing the third plug-in module to wait to provide the service offered by the third plug-in module until instantiation of the fourth plug-in module.

42. The computer program product as in claim 40 , wherein the processor initiates execution of the first plug-in module before execution of the second plug-in module, the first plug-in module initiating a wait state operation resulting in signaling to the second plug-in module, the signaling indicating that a respective service of the first plug-in module is not yet available to the second plug-in module.

43. The computer program product as in claim 42 , wherein the processor further performs operations of:

maintaining a list of services for a set of plug-in modules currently able to provide respective services; and

publishing the list of services for the software application to identify instantiated plug-ins currently providing the respective services.

44. The computer program product as in claim 38 , wherein initiating service operation of the plug-in modules includes:

initiating at least partial concurrent execution of the first plug-in module and the second plug-in module even though the second plug-in module requires the service provided by the first plug-in module.

45. The computer program product as in claim 38 , wherein initiating service operation of the plug-in modules includes initiating execution of a first plug-in module that implements a wait state operation, the wait state operation causing the first plug-in module to signal to a dependent second plug-in module that a respective service is not available.

46. A computer system comprising:

a memory;

a processor; and

an interconnection mechanism coupling the memory and the processor;

wherein the memory is encoded with a plug-in manager application that, when performed on the processor, produces a plug-in manager process that manages services associated with a plurality of plug-in modules encoded within the memory by operating on the computer system and causing the computer system to provide:

means for obtaining identities of a plurality of plug-in modules in the memory;

means for initiating a query to a first plug-in module of the plurality of plug-in modules;

means for receiving dependency information from the first plug-in module indicating that the first plug-in module requires a service provided by a second plug-in module in response to the query to the first plug-in module;

means for initiating a query to the second plug-in module;

means for receiving dependency information from the second plug-in module in response to the query to the second plug-in module;

means for producing a plug-in initiation order based on the dependency information received from the first plug-in module and the dependency information received from the second plug-in module;

means for initiating service operation of plug-in modules on the processor according to the plug-in initiation order, such that if a first plug-in module provides a service required by a second plug-in module, the first plug-in module is initiated such that the service provided by the first plug-in module is available to the second plug-in module when required by the second plug-in module; and

wherein the first plug-in module is initiated via the step of initiating operation of plug-in modules after initiation of the second plug-in module, and wherein the second plug-in module includes a wait-state operation causing the second plug-in module to wait to provide the service offered by the second plug-in module until initiation of the first plug-in module.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
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 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 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 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; 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; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/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 →
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 →