Patent Publication Number: US-9407506-B2

Title: Multi-entity management

Description:
BACKGROUND 
     Large corporate entities, such as enterprises and cloud-computing providers, typically include a significant number of server devices and managed client devices on a computer network. The infrastructure required to service these devices on the network has various complex settings that need to be configured, and the infrastructure services provision the devices on the network with IP addresses and other network configuration settings. A typical enterprise generally includes a large number of these infrastructure services distributed throughout the network, and for configuration or troubleshooting scenarios, a network and/or system administrator needs to update various entities that have single or multiple infrastructure services. The entity management of a typical multi-entity management system is a multi-step process for actions such as to configure, overwrite, append, delete, and find-and-replace. All of the many processes for management operation by a network and/or system administrator is all the more complex for the large number of entities of infrastructure services that are servicing the thousands of client devices in the network with the network configuration settings, such as for example, DHCP (dynamic host configuration protocol) scope options and scope properties, as well as DHCP server options and server properties. Maintaining, troubleshooting, and repairing a large network is manually intensive and time consuming for an administrator. 
     A network and/or system administrator can utilize a typical multi-management framework to facilitate managing a large network that may include servicing of thousands of client devices with network configuration settings. However, a conventional multi-management framework only provides for single-entity operations, such as to overwrite or set a configuration setting of a configuration object (e.g., DHCP scope option) of an entity (e.g., DHCP scope), or to append an array of settings with a value for a single entity. The conventional multi-management framework does not provide for multi-entity configuration setting changes. For example, updating a network configuration setting on multiple client devices throughout a large network involves updating the configuration objects of the infrastructure services that are servicing the many client devices. Updates, such as to find a value from a collection of values for an object across the multiple entities and replace the value with a new value, is not supported. Rather, the typical multi-management framework technique to update, append, or find-and-replace a value for an object across multiple entities is to delete the object and then create a new object with the updated, appended, or replaced value. 
     SUMMARY 
     This Summary introduces simplified concepts of multi-entity management, and the concepts are further described below in the Detailed Description and/or shown in the Figures. This Summary should not be considered to describe essential features of the claimed subject matter, nor used to determine or limit the scope of the claimed subject matter. 
     Multi-entity management is described. In embodiments, a multi-entity system can include an infrastructure service (e.g., DHCP) that services client devices configured for network connectivity on a network. A multi-entity manager instantiates a configuration dialog for display with user-selectable controls that are selectable to initiate a single-step configuration operation of one or more of the network configuration settings for the DHCP entities, such as scope properties, scope options, classes, server properties, and server options. 
     In embodiments, the single-step configuration operation can be one of: an overwrite operation to change a value of a network configuration setting; an append operation to append a value to an array of values of a network configuration setting; a find-and-replace operation to find a value and replace the value of a network configuration setting; or a delete operation to delete a value of a network configuration setting. The configuration dialog is implemented for selection of multiple network entities having multiple configured objects, and for selection of the single-step configuration operation to edit selected ones of the multiple configured objects. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Embodiments of multi-entity management are described with reference to the following Figures. The same numbers may be used throughout to reference like features and components that are shown in the Figures: 
         FIG. 1  illustrates an example multi-entity system in accordance with one or more embodiments of multi-entity management. 
         FIG. 2  illustrates an example of a configuration dialog user interface in accordance with one or more embodiments of multi-entity management. 
         FIG. 3  illustrates another example of a configuration dialog user interface in accordance with one or more embodiments of multi-entity management. 
         FIG. 4  illustrates example method(s) of multi-entity management in accordance with one or more embodiments. 
         FIG. 5  illustrates various components of an example device that can implement embodiments of multi-entity management. 
     
    
    
     DETAILED DESCRIPTION 
     Embodiments of multi-entity management are described. A network and/or system administrator (also referred to as an IT administrator) can select multiple entities with multiple configured objects that have a single setting or a collection of settings to perform an overwrite, append, delete, or find-and-replace operation in a single-step configuration operation. The single-step configuration operations can each be executed on a list of managed entities in a large network, such as on a resultant filtered set of network configuration settings at multiple client devices that are connected in the network. The single-step configuration operations can be conditional within a configuration dialog that is displayable in a user interface, from which the network administrator can initiate a single-step configuration operation. 
     The configuration dialog is flexible and the network and/or system administrator can easily change and configure network configuration settings for quick and efficient administrative response. Embodiments of multi-entity management provide a mechanism by which the administrator can manage the multi-entity system and implement the single-step configuration operations, such as an overwrite, append, delete, or find-and-replace operation performed in a single-step configuration. Embodiments of multi-entity management also improve the management operation for a large number of complex managed entities in a network with multiple configuration settings like DHCP scope options and scope properties, and DHCP server options and server properties. 
     While features and concepts of multi-entity management can be implemented in any number of different devices, systems, network, environments, and/or configurations, embodiments of multi-entity management are described in the context of the following example devices, systems, and methods. 
       FIG. 1  illustrates an example multi-entity system  100  in which various embodiments of multi-entity management can be implemented. The example system includes a network  102 , such as a private or corporate network and/or an enterprise computer network. The network can be implemented to include wired and/or wireless networks, and can also be implemented using any type of network topology and/or communication protocol. The network may be represented or otherwise implemented as a combination of two or more networks, to include IP-based networks and/or the Internet. 
     In this example, the multi-entity system  100  includes multiple DHCP (dynamic host configuration protocol) servers  104 , DNS (domain name system) servers  106 , multiple client devices  108 , and a management server  110 . The multi-entity system also includes the network extended at  112 , such as a datacenter or an extension of an enterprise, that includes other DNS servers  114 , DHCP servers  116 , application servers  118 , and another management server  120 . The multi-entity system may also include any other type of networked computing devices, server devices, and services implemented by devices. The client devices  108  can include any wired and/or wireless devices, and may be implemented as user devices, portable devices, computer devices, and/or networked devices. Any of the servers and/or client devices can be implemented with various components, such as one or more processors and memory devices, as well as any number and combination of differing components as further described with reference to the example device shown in  FIG. 5  to implement embodiments of multi-entity management. 
     The server device  122  is an example implementation of any one of the DHCP servers  104  and  116 . A server device in the multi-entity system may have four or more levels of dimensions, and the network of the multi-entity system can include a large number of servers and its entities. A system may include multiple DHCP servers, where each server includes multiple DHCP scopes, each server scope includes multiple scope options, and each server scope option includes an array of values. DHCP options can be configured for specific values and enabled for assignment and distribution to DHCP clients based on either server, scope, class or client-specific levels. 
     In the example multi-entity system  100 , the example server device  122  includes DHCP server scopes  124 , which each include multiple scope options  126 , and each server scope option may include multiple option values  128 . The server scope options  126  and option values  128  are pushed out to the network client devices  108  as network configuration settings and information, such as a default gateway identifier, software configuration information, a proxy server address, a time server address, an IP address, a MAC address, a list of DNS servers, etc. For example, a computer client device has configuration information such as an IP address, a MAC address, a list of DNS servers the device is configured with, other network configuration settings, and other properties that are serviced by a DHCP scope from a DHCP server. 
     In implementations, the management servers  110 ,  120  are IP address management (IPAM) servers implemented as multi-entity managers. For example, the management server  110  communicates with the DHCP servers  104  and the DNS servers  106 , as well as with domain controllers (DC) and network policy servers (NPS) (not shown), to manage network configuration settings on the DHCP and DNS servers. Similarly, the management server  120  communicates with the DNS servers  114  and the DHCP servers  116  to manage network configuration settings on the DHCP and DNS servers. Network configuration settings of the client devices  108  are stored on the DHCP servers  104  and the DNS servers  106 . Configurations of the servers, as well as the network configurations of the client devices, can be updated on the DHCP and DNS servers, and the servers then propagate the changes to the client devices as defined by respective DHCP and DNS roles. 
     In this example, the management server  110  includes a multi-entity manager  130  that instantiates a configuration dialog  132  for display with user-selectable controls that are selectable to initiate a single-step configuration operation of one or more of the server configurations and network configuration settings for the client devices  108  that are updated on the DHCP servers  104  and the DNS servers  106 . In implementations, the multi-entity manager  130  and the configuration dialog  132  can be implemented as computer-executable instructions, such as software applications, and executed by one or more processors to implement the various embodiments described herein. Further, although the multi-entity manager  130  is shown as a component of the management server  110  in the example system, the multi-entity manager may be implemented as a separate entity, or as a component of any one of the servers and/or devices. 
     A network and/or system administrator may use a computing device  134  to display a configuration dialog user interface  136  that is run from the management server  110 . From the configuration dialog user interface, the administrator can initiate a single-step configuration operation, such as an overwrite operation to change an option value of a network configuration setting; an append operation to append a value to an option value of a network configuration setting; a find-and-replace operation to replace an option value of a network configuration setting; or a delete operation to delete an option value of a network configuration setting. For example, a DNS server in the multi-entity system may fail, in which case all of the entities are updated with new configuration information to update the address for a new DNS server replacement. For example, in the dialog user interface, the network administrator can select a set of DHCP scopes or DHCP servers, set the fields, and apply the configuration to seamlessly update all of the entities in the multi-entity system. 
     In embodiments, a network and/or system administrator can select multiple entities with multiple configured objects that that have single settings or a collection of settings and perform an overwrite, append, delete, or find-and-replace operation in a single step. For an overwrite operation, an object is selected in the dialog user interface to be overwritten and in the empty set of fields, the values to be overwritten are provided. The same can be repeated for multiple objects in the same dialog and apply the configuration. For an append operation, an object is selected in the dialog user interface to append a particular value and in the empty set of fields, the values to be appended are provided. The same can be repeated for multiple objects in the same dialog and apply the configuration. For a find-and-replace operation, the value to find and the value to replace is provided in the empty set of fields in the dialog user interface. The same can be repeated for multiple objects in the same dialog and apply the configuration. For a delete operation, an object is selected to be deleted in the dialog user interface. The same can be repeated for multiple objects in the same dialog and apply the configuration. All of the described operations can be executed on the list of managed entities, such as on a filtered resultant set or otherwise. 
       FIG. 2  illustrates an example  200  of a configuration dialog user interface in accordance with one or more embodiments of multi-entity management as described herein. In this example, the configuration dialog is implemented to edit DHCP scope, and two properties of two DHCP scopes are selected for modification. Although only two DHCP scopes are shown selected in this example, any other object types can be selected for multi-edit in embodiments of multi-entity management, and there is no upper limit on the number of scopes selected. The number of selected scopes to edit may be in the tens or hundreds (but there is no upper limit of this typical example), and can apply to different DHCP servers. In this example, the two selected DHCP scopes are listed at  202  and the configuration operation to Append is shown selected at  204 . In the drop-down menu, a network and/or system administrator may also select other configuration operations, such as an overwrite, delete, or find-and-replace operation. The administrator can also select configuration options at  206  to configure the selected DHCP scopes. For example, multiple options can be added to multiple scopes that are associated with multiple servers. Two of the configured options are shown at  208 , such as to append to the selected DHCP scopes. 
       FIG. 3  illustrates another example  300  of a configuration dialog user interface in accordance with one or more embodiments of multi-entity management as described herein. In this example, the configuration dialog is implemented to edit DHCP scope, and two properties of two DHCP scopes are selected for modification. Although only two DHCP scopes are shown selected in this example, any other object types can be selected for multi-edit in embodiments of multi-entity management, and there is no upper limit on the number of scopes selected. The number of selected scopes to edit may be in the tens or hundreds (but there is no upper limit of this typical example), and can apply to different DHCP servers. In this example, the two selected DHCP scopes are listed at  302  and the configuration operation to Find and Replace is shown selected at  304 . In the drop-down menu, a network and/or system administrator may also select other configuration operations, such as an append, overwrite, or delete operation. 
     The administrator can also select configuration options at  306  to configure the selected DHCP scopes. For example, a find-and-replace configuration operation can be applied to multiple scopes on multiple servers for multiple options having multiple values, of which only one option value is being selectively replaced. Two of the configured options are shown at  308 , such for a DNS server option value 10.10.10.1 being replaced by option value 10.10.10.2 for the 006 DNS server in a multi-entity system. Similarly, a router option value 10.2.3.4 is being replaced by option value 10.2.3.40 for the 003 router in the multi-entity system. 
     Example method  400  is described with reference to  FIG. 4  in accordance with one or more embodiments of multi-entity management. Generally, any of the services, functions, methods, procedures, components, and modules described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. A software implementation represents program code that performs specified tasks when executed by a computer processor. The example methods may be described in the general context of computer-executable instructions, which can include software, applications, routines, programs, objects, components, data structures, procedures, modules, functions, and the like. The program code can be stored in one or more computer-readable storage media devices, both local and/or remote to a computer processor. The methods may also be practiced in a distributed computing environment by multiple computer devices. Further, the features described herein are platform-independent and can be implemented on a variety of computing platforms having a variety of processors. 
       FIG. 4  illustrates example method(s)  400  of multi-entity management. The order in which the method blocks are described are not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement a method, or an alternate method. 
     At block  402 , one or more objects (e.g., DHCP scope and/or DHCP servers) are selected to edit. For example, the objects are selected from within the multi-entity manager  130  at the management server  110  ( FIG. 1 ). At block  404 , a configuration dialog is launched to facilitate editing the selected objects. For example, the configuration dialog  132  is launched from the multi-entity manager  130 . 
     At block  406 , a configuration dialog is displayed with user-selectable controls that are selectable to initiate a single-step configuration operation of one or more network configuration settings at server devices in a network. For example, the multi-entity manager  130  at the management server  110  initiates a configuration dialog  132  that is displayed as a configuration dialog user interface  136 . Examples of the configuration dialog user interface are shown in  FIGS. 2 and 3 . The configuration dialog includes user-selectable controls that are selectable to initiate a single-step configuration operation of one or more network configuration settings on DHCP entities of the DHCP servers  104  and  116  on the network  102 . 
     At block  408 , a selection of a configuration operation is received to one of overwrite, append, delete, or find-and-replace a network configuration setting value. For example, the multi-entity manager  130  at the management server  110  receives a selection of a configuration operation in the configuration dialog user interface  136  to one of overwrite, append, delete, or find-and-replace a network configuration setting value. 
     At block  410 , a selection of server scopes to configure is received and, at block  412 , an input of values to configure the network configuration settings is received. For example, the multi-entity manager  130  at the management server  110  receives a selection of server scopes to configure, as well as a selection of scope values to configure in the configuration dialog user interface  136 . At block  414 , the selected configuration operation is applied to configure the selected network configuration settings and/or server scope values at the server devices. For example, the multi-entity manager  130  at the management server  110  applies the selected configuration operation to configure the selected server scope values at the server devices in the network  102 . 
       FIG. 5  illustrates various components of an example device  500  that can be implemented as any of the devices, server devices, or services implemented by devices, described with reference to the previous  FIGS. 1-4 . The example device  500  includes communication devices  502  that enable wired and/or wireless communication of device data  504 , such as received data, data that is being received, data scheduled for broadcast, data packets of the data, etc. The device data or other device content can include configuration settings of the device, media content stored on the device, and/or information associated with a user of the device. Media content stored on the device can include any type of audio, video, and/or image data. 
     The device includes one or more data inputs  506  via which any type of data, media content, and/or inputs can be received, such as user-selectable inputs and any other type of audio, video, and/or image data received from any content and/or data source. The device  500  also includes communication interfaces  508 , such as any one or more of a serial, parallel, network, or wireless interface. The communication interfaces provide a connection and/or communication links between the device and a communication network by which other electronic, computing, and communication devices communicate data with the device. 
     The device  500  includes one or more processors  510  (e.g., any of microprocessors, controllers, and the like) which process various computer-executable instructions to control the operation of the device. Alternatively or in addition, the device can be implemented with any one or combination of software, hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits which are generally identified at  512 . Although not shown, the device can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. 
     The device  500  also includes one or more memory devices  514  (e.g., computer-readable storage media) that enable data storage, such as random access memory (RAM), non-volatile memory (e.g., read-only memory (ROM), flash memory, etc.), and a disk storage device. A disk storage device may be implemented as any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable disc, and the like. The device may also include a mass storage media device. 
     Computer readable media can be any available medium or media that is accessed by a computing device. By way of example, and not limitation, computer readable media may comprise storage media and communication media. Storage media include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store information and which can be accessed by a computer. 
     Communication media typically embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier wave or other transport mechanism. Communication media also include any information delivery media. A modulated data signal has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. 
     A memory device  514  provides data storage mechanisms to store the device data  504 , other types of information and/or data, and various device applications  516 . For example, an operating system  518  can be maintained as a software application with the memory device and executed on the processors. The device applications may also include a device manager, such as any form of a control application, software application, signal processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, and so on. In this example, the device applications  516  include a multi-entity manager  520  and a configuration dialog  522  that implements embodiments of multi-entity management as described herein. 
     The device  500  also includes an audio and/or video processing system  524  that generates audio data for an audio system  526  and/or generates display data for a display system  528 . The audio system and/or the display system may include any devices that process, display, and/or otherwise render audio, video, display, and/or image data. Display data and audio signals can be communicated to an audio device and/or to a display device via an RF (radio frequency) link, S-video link, composite video link, component video link, DVI (digital video interface), analog audio connection, or other similar communication link. In implementations, the audio system and/or the display system are external components to the device. Alternatively, the audio system and/or the display system are integrated components of the example device, such as an integrated touch-screen display. 
     Although embodiments of multi-entity management have been described in language specific to features and/or methods, the appended claims are not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations of multi-entity management.