Aspects of the subject matter described herein are 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 aspects of the subject matter described herein include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microcontroller-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.
Aspects of the subject matter described herein 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. Aspects of the subject matter described herein 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 both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer 110 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 both 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, or any other medium which can be used to store the desired information and which can be accessed by the computer 110. 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 any of the above should also be included within the scope of computer-readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 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, discussed above and illustrated in
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 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 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160 or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
Each of the servers 206-207 and the clients 210-213 may be implemented on one or more computers (e.g., computer 110 as described in conjunction with
In addition, the server 206 may host a document repository in which documents, files, versions thereof, and the like may be stored. One exemplary document repository is SharePoint® produced by Microsoft Corporation of Redmond, Wash. In other embodiments, the server 206 may host other document repositories without departing from the spirit or scope of aspects of the subject matter described herein.
The server 206 may also host a directory service that stores and organizes information about a network's users, shares, and resources. The directory service may allow network administrators to control access to resources available through the network. Exemplary directory services include Network Information Service (NIS), eDirectory, Red Hat directory server, Active Directory, Open Directory, Apache Directory Server, and Oracle Internet Directory to name a few.
The server 206 may also host a Dynamic Host Configuration Protocol (DHCP) process that supplies each other local node with an IP address at which the node is accessible, a subnet mask, a default gateway, an IP address for a Windows® Internet Name Service (WINS) server, and an IP address for a Domain Name System (DNS) server.
The server 207 may include a replica of the directory service (and associated data) which may be used in case the directory service on the server 206 becomes non-operational or corrupt. In addition, the server 207 may include other applications, such as an e-mail server, calendaring software, a message store, an anti-virus engine that examines e-mails, and the like.
The server 205 may comprise an edge server that provides services such as access to resources and entities available on the Internet, 235, firewall capability, spam filtering, authentication of remote users attempting to access resources connected to the network 230, anti-virus monitoring, port filtering, port forwarding, and the like.
The functions provided by each of the servers 205-207 may be distributed differently among the servers 205-207, more or fewer servers, and/or other devices (e.g., stand-alone firewalls, routers, and the like) without departing from the spirit or scope of aspects of the subject matter described herein.
Management components (e.g., management components 220-226) may be included on the servers 206-207 and the clients 210-213. A management component may include a component arranged to interact with a system administrator and to display the state of each node included in the configuration set. In one embodiment, the management component is included on a set of server nodes only. In another embodiment, the management component is included on server and client nodes.
A setup process may be executed on each node that is to be setup to provide services (e.g., servers 206-207). In one embodiment, the setup process may be executed by logging on to a node, inserting media, accessing a shared network drive from the node, or otherwise accessing storage media and accessing a setup program, and executing the setup program on each of the nodes. After a node is setup enough to know where other nodes in its configuration set are located, the node may obtain configuration data from one or more of these other nodes during its setup. Such configuration data may include, for example, the addresses of servers (e.g., DNS servers, e-mail servers, directory service server, and the like).
In another embodiment, a service, process, or the like (e.g., a management component) executes on each node that is to be setup to provide services. A system administrator may log into any node and, via the service, may setup each node of a configuration set without logging on to each node from the node's console.
In one embodiment, the configuration tool 310 of a node with which the system administrator is interacting (e.g., via a keyboard and other input devices) communicates via the communication component 315 with the management components of other functioning nodes to obtain setup status. The other nodes may not be setup and may hence be unable to communicate with the configuration tool 310, may be in the process of being setup and may be able to communicate their progress to the configuration tool 310, or may have completed setup and be able to respond to inquiries from the configuration tool 310.
The configuration tool 310 may poll or be notified of the setup progress on the local and remote nodes. Based on the progress, the configuration tool 310 may change a graphical representation of the progress via the user interface 305.
The system state 320 may store the current state of a setup together with information needed during a setup (e.g., server addresses and names and so forth). In one embodiment, the system state 320 is stored in a central database which may be accessed by any node. In another embodiment, the system state 320 is stored in data distributed across one or more of the nodes.
The graphical representation 405 shows three servers connected together by a network. More or fewer servers may be shown depending on how many servers are included in the configuration set. An arrow points to one of the servers to indicate that the server is currently being setup by the system administrator. In one embodiment, a graphical representation of one of the server's function is also displayed when the server is being configured. For example, when configuring a management server, a graphic indicating management functions (e.g., a bundle of wires) may be displayed next to the server. As another example, when configuring a server as an e-mail server, an envelope icon may be, displayed next to the server.
In another embodiment, the server that is currently being setup may be highlighted by, for example, being outlined in bold, displayed in another color, flashing, or some other graphical representation.
A graphical “X” 420 or some other graphical representation may be used to indicate that one of the servers is not configured to connect to other nodes in a network. The graphical “X” 420 may be colored red or some other color to make it stand out. When a server is configured to connect to other nodes in the network, its corresponding network link (e.g., the circles on the network below the servers) may be colored green or some other color. A server that has not been setup may not have network lines running to it. A server that has been setup but that is not currently able to communicate with other nodes in the network may show the graphical “X” 420. Animation (e.g., signals proceeding from servers through the network) may also be used to show connection state of a server.
Servers that have been setup may have a colored area associated with them. In one embodiment, this colored area is a circle underneath each server that has been setup. The colored area may appear to “light up” the servers that have been setup. Servers that have not been setup may be shaded in gray or some other color to indicate this state.
Hovering a cursor over a server or clicking on the server may cause a pop up to display text that indicates the setup state of the server. The text may include the server's name, server function (e.g., mail server, edge server, document server) and setup state (e.g., not setup, setup in progress, completely setup, functioning properly, and so forth). The text may also include links to a document or Web site for more information about the setup process or the product itself.
In one embodiment, the servers may be displayed in a topology that makes their function more apparent. For example, one of the servers may be shown connected to a cloud representing the Internet, another server may be shown next to mail, and another server may be shown next to documents. It will be recognized that many other representations may be used to denote the functions of servers without departing from the spirit or scope of the subject matter described herein.
For example, in one embodiment, the topology's elements (such as the cloud for the Internet connection) may be statically defined, where the picture elements remain visible. In this embodiment, the picture elements may change color (for example, become light grey) if not available). In another embodiment, the picture elements may be dynamic, where the picture elements appear when available. For example, if an Internet connection is available, the cloud appears as a picture element. If the Internet connection is not available, the cloud is not visible as a picture element.
The progress pane 410 may indicate a sequence of steps that need to be accomplished to setup a server. As each step is completed, this may be indicated by bolding text associated with the step and highlighting text associated with the next step. Alternatively, an icon such as a checkbox may be used to indicate steps that have been completed by setup.
The information pane 415 may be used to display informational text regarding a setup and to gather configuration settings (e.g., server name, IP addresses, DNS addresses, gateway addresses, subnet masks, and so forth) from the system administrator. Next, previous, finished, and cancel buttons may also be displayed for interacting with a setup program.
At block 610, a setup process is started. For example, referring to
At block 615 a graphical representation of the setup state of the nodes is displayed. This may occur while the setup process is executing, for example. Referring to
At block 620, a determination is made as to whether the setup state of any of the nodes has changed. If so, the actions continue at block 625; otherwise, the actions continue at block 630.
At block 625, the graphical representation is changed to correspond to the new setup state of the nodes. For example, if the second server completes its setup and a third server begins to be setup, this may be indicated by pointing an arrow at the third server (or otherwise highlighting it) and providing an indication that the second server has completed its setup.
At block 630, a determination is made as to whether the setup process has completed on all the nodes. If so, the actions continue at block 635; otherwise, the actions continue at block 620.
At block 635, the actions end. In another embodiment, the actions may continue until a user exits a setup state monitoring tool.
It should be understood that the actions described in conjunction with
As can be seen from the foregoing detailed description, aspects have been described related to displaying a graphical representation of setup state. While aspects of the subject matter described herein are 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 aspects of the claimed subject matter 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 various aspects of the subject matter described herein.