IP Library Granted Patent US 9,083,625
Granted Patent B2
US 9,083,625 · App. 13/731,869 · Granted Jul 14, 2015

Communication with components using component-independent driver

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,083,625
App. No.
13/731,869
Granted
Jul 14, 2015
Kind
B2
Abstract

An improved technique for communicating with components of an electronic system includes operating a driver according to a designated protocol but agnostically to the components themselves. Information about particular system components is supplied to the driver by respective data sources. To obtain discovery information about a component, the driver accesses a data source for the component and communicates with the component using the designated protocol. The driver thus operates merely as a conduit for component-specific information, which is supplied by the data sources rather than by the driver itself.

Claims (54)

1. A method of communicating with components of an electronic system, comprising:

receiving, by a driver configured to communicate in a designated protocol, requests to obtain discovery information from multiple components of the electronic system, wherein the multiple components include a plurality of network components, a plurality of storage components and a plurality of compute components; and

in response to the requests and for each of the components, operating the driver, including:

accessing a data source for a component type of a respective component, the data source including a set of predefined component-specific references that specify discoverable characteristics of the component, wherein the set of predefined component-specific references includes a filter for limiting the results of an enumerate instruction executed by the driver to a set of desired characteristics, and wherein accessing the data source for each component of the electronic system includes accessing different data sources for different components of the electronic system;

requesting, in the designated protocol and via a set of generic, component-independent constructs of the driver, information specified by the set of predefined references in the data source for the respective component;

receiving, in the designated protocol, the requested information from the respective component; and

storing the received information in a configuration record.

2. The method of claim 1 , wherein the driver is a compiled software construct executable by a set of processors of the electronic system, and wherein each data source is an uncompiled computer-readable construct located outside the driver.

3. The method of claim 1 , wherein each of the components has an associated provider that has a unique network address on a network of the electronic system, wherein receiving the requests to obtain discovery information from multiple components includes receiving the unique network address of the provider of each of the respective components.

4. The method of claim 1 , wherein at least one of the components is an aggregating component that includes multiple sub-components, the aggregating component having a provider that has a unique network address and each of the sub-components having a provider that has a unique network address.

5. The method of claim 1 , wherein the protocol is one of:

(i) Simple Network Management Protocol (SNMP), (ii) Common Interface Model (CIM), or (iii) XML-API.

6. The method of claim 1 ,

wherein the protocol is SNMP,

wherein the set of predefined component-specific references of each of the data sources for the components includes SNMP object IDs (OIDs), each OID indicating a data object stored in a MIB (management information base) for the respective component type, and

wherein requesting, by the driver, the information specified by the set of predefined references includes executing an SNMP get instruction for each OID specified in a respective data source.

7. The method of claim 1 ,

wherein the protocol is CIM,

wherein the set of predefined component-specific references of each of the data sources for the components includes CIM classes, and

wherein requesting, by the driver, the information specified by the set of predefined references includes executing an enumerate instruction for each class specified in the respective data source.

8. The method of claim 1 , wherein the set of predefined component-specific references includes a set of relationships among different CIM classes listed in the respective data source.

9. The method of claim 1 , wherein the set of predefined component-specific references includes a metric indicating a health status of the component.

10. The method of claim 1 , further comprising:

receiving a new component of a new type in the electronic system; receiving a new data source specific to the new type of component;

operating the driver to obtain discovery information about the new component, the driver including no modifications in the compiled software construct to accommodate the new component; and

translating the configuration record into an instance for the new component in a persisted object model.

11. The method of claim 1 , wherein the driver is built using a Java Spring Framework, and wherein accessing the data source includes Spring-injecting the data source for the respective component into the driver.

12. A computerized apparatus, comprising:

a set of processors; and

memory, coupled to the set of processors, the memory storing executable instructions, which when executed by the set of processors cause the set of processors to perform a method of communicating with components of an electronic system, wherein the method comprises:

receiving, by a driver configured to communicate in a designated protocol, requests to obtain discovery information from multiple components of the electronic system, wherein the multiple components include a plurality of network components, a plurality of storage components and a plurality of compute components; and

in response to the requests and for each of the components, operating the driver, including:

accessing a data source for a component type of a respective component, the data source including a set of predefined component-specific references that specify discoverable characteristics of the component, wherein the set of predefined component-specific references includes a filter for limiting the results of an enumerate instruction executed by the driver to a set of desired characteristics, and wherein accessing the data source for each component of the electronic system includes accessing different data sources for different components of the electronic system;

requesting, in the designated protocol and via a set of generic, component-independent constructs of the driver, information specified by the set of predefined references in the data source for the respective component;

receiving, in the designated protocol, the requested information from the respective component; and

storing the received information in a configuration record.

13. The computerized apparatus of claim 12 , wherein the driver is a compiled software construct executable by the set of processors, and wherein each data source is an uncompiled computer-readable construct stored in the memory outside the driver.

14. The computerized apparatus of claim 12 ,

wherein the protocol is SNMP,

wherein the set of predefined component-specific references of each of the data sources for the components includes SNMP object IDs (OIDs), each OID indicating a data object stored in a MIB (management information base) for the respective component type, and

wherein requesting, by the driver, the information specified by the set of predefined references includes executing an SNMP get instruction for each OID specified in a respective data source.

15. The computerized apparatus of claim 12 , wherein the driver is built using a Java Spring Framework, and wherein accessing the data source includes Spring-injecting the data source for the respective component into the driver.

16. A non-transitory computer readable medium including instructions which, when executed by a set of processors of a computerized apparatus, cause the set of processors to perform a method of communicating with components of an electronic system, the method comprising:

receiving, by a driver configured to communicate in a designated protocol, requests to obtain discovery information from multiple components of the electronic system, wherein the multiple components include a plurality of network components, a plurality of storage components and a plurality of compute components; and

in response to the requests and for each of the components, operating the driver, including:

accessing a data source for a component type of a respective component, the data source including a set of predefined component-specific references that specify discoverable characteristics of the component, wherein the set of predefined component-specific references includes a filter for limiting the results of an enumerate instruction executed by the driver to a set of desired characteristics, and wherein accessing the data source for each component of the electronic system includes accessing different data sources for different components of the electronic system;

requesting, in the designated protocol and via a set of generic, component-independent constructs of the driver, information specified by the set of predefined references in the data source for the respective component;

receiving, in the designated protocol, the requested information from the respective component; and

storing the received information in a configuration record.

17. The computerized apparatus of claim 16 ,

wherein the driver is a compiled software construct executable by the set of processors, wherein each data source is an uncompiled computer-readable construct, wherein the protocol is CIM,

wherein the set of predefined component-specific references of each of the data sources for the components includes CIM classes, and

wherein requesting, by the driver, the information specified by the set of predefined references includes executing an enumerate instruction for each class specified in a respective data source.

18. The computerized apparatus of claim 16 , wherein the driver is built using the Java Spring Framework, and wherein accessing the data source includes Spring-injecting the data source for the respective component into the driver.

Assignments (5)
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 →
MERGER Recorded Mar 25, 2020
From: VCE IP HOLDING COMPANY LLC
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052224/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2016
From: VCE COMPANY, LLC
To: VCE IP HOLDING COMPANY LLC
Reel/Frame 040576/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2014
From: ZHANG, VICTOR
To: VCE COMPANY, LLC
Reel/Frame 032078/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2013
From: NANDYALAM, RAJESH; MADHIPATLA, VENKATESH; RUSSELL, NEIL
To: VCE COMPANY, LLC
Reel/Frame 029773/0068 →