The present invention is illustrated by way of example and not limited in the accompanying figures in which like reference numerals indicate similar elements and in which:
Various aspects of the technology described herein are generally directed towards detecting workloads (devices, services, products and so forth) in a network environment that had not previously been configured to work with the network. This may be because the workload was just added to the network, or because it was detected sometime after it was added, but was not previously detectable by the appropriate software (or the software was not yet installed). Upon detection, the workload may be configured to work with network software, and the network software may be configured to work with the workload, thereby integrating the workload into the network.
In one example implementation, the workload detection and configuration mechanism is incorporated into a suite of network-related software programs typically used in an information technology (IT) infrastructure, and referred to herein as network software suite. Examples of programs that may be present within such a suite include an administration console, an email server program, an antivirus and/or spam filtering program, a file server program, and so forth. Other on-premise workloads may be external to the suite. Notwithstanding, it can be readily appreciated that instead of a suite, a standalone program or other entity (e.g., a dedicated device) may include the workload detection and configuration mechanism, or the mechanism may be part of another program such as an application program or operating system component, and so forth. Indeed, some or all of the components of the workload detection and configuration mechanism may not necessarily be literally on-premise and/or in one location, but rather can in whole or in part be accessed remotely, such as via a workload detection and configuration mechanism service that is used by an on-premise computer program, for example.
As such, the present invention is not limited to any particular embodiments, aspects, concepts, structures, functionalities or examples described herein. Rather, any of the embodiments, aspects, concepts, structures, functionalities or examples described herein are non-limiting, and the present invention may be used various ways that provide benefits and advantages in computing and network management in general.
One of the computing devices (e.g., 1024) is shown as maintaining the on-premise network software suite 108, which as described above need not be entirely “on-premise” in a literal sense. Further, it is understood that even in a configuration in which the network software suite 108 is literally “on-premise” within a network, the network software suite 108 may be distributed among more than one network device. Thus, for example, the network software suite may comprise one or more programs that run at least in part on the edge server 104; further although not shown as such in the example of
In one example implementation represented in
In general, the workload detection and configuration mechanism 220 enables a suite of network server software programs to not only be integrated with its own workloads, but also to integrate with external workloads comprising devices, products and services. To this end, the workload detection and configuration mechanism 220 detects such external workloads (e.g., the NAS device 240 and the other firewall 242), and provides integrated configuration of to fully integrate into the suite's own environment.
Detection of a device attached on the network (e.g., rather than locally) may take place in a number of ways, which may depend on the type of workload that is detected. For example, in an Active Directory® environment or with a similar directory service, queries may be made to determine what workloads (e.g., applications) are registered. Configuration data stores of local environments may also be queried. Probes can also be performed, such to use IP addresses to determine how the network is being traversed, e.g., to locate firewalls and the like. Device detection and integration may happen at the time that the suite is installed, or anytime thereafter, and need not be triggered by the immediate act of attaching the workload or workload installation.
To configure a workload once the workload is detected and recognized, the workload detection and configuration mechanism 220 attempts to locate configuration information for the detected workload, which in one example implementation is contained in a plug-in (e.g., a file or other data structure, such as containing configuration settings, instructions in executable code/script, and so forth). As represented in
In general, a plug-in comprises an updatable translation layer that provides information needed to translate between the software suite's actions and the workload's methods for configuration and integration. The configuration information may be available through industry standards or because the plug-in translates to a proprietary method. For example, one manufacturer's firewall may require different configuration steps and settings from those required by another manufacturer's firewall. Each may have a plug-in that executes the steps to configure the workload with the settings, possibly obtaining administrator preferences for variable settings via a user interface of the plug-in or a user interface of the suite to which the plug-ins interface. Note that the integration may be for configuring the workload as part of deployment, or integration may be during deployment and for continued use. The configuration may be entirely automated, but may be partially (or completely) manual.
By way of example, consider that the workload detection and configuration mechanism 220 detects the NAS device 240 on the network, and already has an appropriate plug-in (e.g., P3) for that device. The workload detection and configuration mechanism 220 may prompt the administrator to determine whether to configure the NAS for use with the suite 108, or configuration may be set to automatically occur. If the device is to be integrated, the workload detection and configuration mechanism 220 will access the plug-in's configuration information to configure the NAS device 240 as needed, and configure the suite software 108 to use the NAS device 240, e.g., to move at least some of the suite's data storage from being mapped to local drives to being mapped to the NAS device 240.
As another example, consider that the workload detection and configuration mechanism 220 discovers a firewall device 242 having Universal Plug-and-Play (UP&P) support. The workload detection and configuration mechanism 220 automatically prompts the administrator to determine whether to route Internet traffic through the device 242, and if so, and a plug-in (e.g., P4) is located for that firewall device 242. Using the configuration information, the workload detection and configuration mechanism 220 configures the firewall device 242 to have the appropriate ports open for the suite software 108. The workload detection and configuration mechanism 220 also modifies the suite's networking configuration to route Internet traffic through the firewall device 242.
Step 332 represents evaluating whether the detected workload is recognized by the suite software. For example, certain types and/or models of devices may be commonplace in networks, while other similar devices may already exist on the network, whereby the suite may already have access to information about that particular type. If not, step 334 represents prompting the administrator to obtain information about the detected workload, e.g., its type, manufacturer, model number and so forth, essentially any data needed to locate an appropriate plug-in for that workload.
Step 336 represents confirming whether it is okay to configure this device (and the suite software) for integration into the network. This confirmation may be obtained via a prompt to an administrator, or by some other mechanism, such as looking up stored instructions as to which workloads are pre-confirmed to automatically integrate, (e.g., followed by a prompt if not pre-confirmed). The process exemplified in
If configuration is confirmed, step 336 branches to step 338 to determine whether a plug-in containing configuration information is locally available for that workload. If not, step 338 branches to step 340 to search one or more remote locations for a plug-in, such as a device manufacturer's website; a remote location may be a remote site of a given organization, and/or the Internet. Note that in an alternative implementation, remote locations can be searched for a more recent update of a plug-in even when a local plug-in is available.
If no local plug-in is available at step 338 and none are found at step 342, some other action is taken at step 344. For example, the administrator may be notified that no plug-in could be found, and if integration is still desired, that manual configuration is necessary (or a plug-in needs to be provided).
In the event a local or remote plug-in is located, step 346 represents configuring the workload to work with the suite based on information in the plug-in. Step 348 represents configuring the suite to work with the workload. At this time, the workload is integrated into the suite.
To summarize, the suite includes a mechanism that detects workloads in a network environment, and automatically or with the user's intervention (e.g., to identify what make/model of the workload is, downloads the appropriate plug-in (if not already installed) to allow the suite to control and configure the device. In addition the plug-in contains the information for the type of device and the configuration that the suite needs to configure itself to work with it, and the information needed for the suite to configure the device to work with suite.
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to: personal computers, server computers, hand-held or laptop devices, tablet devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in local and/or remote computer storage media including memory storage devices.
With reference to
The computer 410 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer 410 and includes both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, 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. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, whether internal (e.g., a hard disk drive) or external (e.g., a USB drive), or any other medium which can be used to store the desired information and which can accessed by the computer 410. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that 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 includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer-readable media.
The system memory 430 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 431 and random access memory (RAM) 432. A basic input/output system 433 (BIOS), containing the basic routines that help to transfer information between elements within computer 410, such as during start-up, is typically stored in ROM 431. RAM 432 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 420. By way of example, and not limitation,
The computer 410 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media, described above and illustrated in
The computer 410 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 480. The remote computer 480 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 410, although only a memory storage device 481 has been illustrated in
When used in a LAN networking environment, the computer 410 is connected to the LAN 471 through a network interface or adapter 470. When used in a WAN networking environment, the computer 410 typically includes a modem 472 or other means for establishing communications over the WAN 473, such as the Internet. The modem 472, which may be internal or external, may be connected to the system bus 421 via the user input interface 460 or other appropriate mechanism. A wireless networking component such as comprising an interface and antenna may be coupled through a suitable device such as an access point or peer computer to a WAN or LAN. In a networked environment, program modules depicted relative to the computer 410, or portions thereof, may be stored in the remote memory storage device. By way of example, and hot limitation,
An auxiliary subsystem 499 (e.g., for auxiliary display of content) may be connected via the user interface 460 to allow data such as program content, system status and event notifications to be provided to the user, even if the main portions of the computer system are in a low power state. The auxiliary subsystem 499 may be connected to the modem 472 and/or network interface 470 to allow communication between these systems while the main processing unit 420 is in a low power state.
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.