ENTERPRISE MANAGEMENT SYSTEM
FIELD OF THE INVENTION
The present invention relates to networked computer systems and, more particularly, to a network management system for use in classrooms, offices, and large organizations.
BACKGROUND OF THE INVENTION
The advent of the personal computer has transformed the way schools, businesses, governments, and other enterprises perform their daily tasks. The personal computer has become an indispensable tool for students and employees due its capabilities and multimedia functionality for individual use in word processing, database management, inventory control, and computer-aided instruction. Although computers are beginning to be networked together to share files, programs, and electronic mail, there is a long-felt need for better interworking between personal computers in an enterprise-wide network, possibly in different cities, especially in the areas of collaboration, monitoring, and communication.
Conventional computer networks have been developed to address some of these needs; however, these approaches tend to be complicated and expensive, requiring complex wiring and hardware devices as well as elaborate, inflexible software packages. For example, U.S. Patent No. 4,538,993 discloses a computer teaching system for use in a networked, classroom setting. The computer teaching system includes a teacher station coupled to a main switching console, which is directly wired in parallel to specially designed student controllers, coupled to respective student computers. The main switching console includes a series of hardware switches for selectively connecting to any of the student computers for viewing the screen display thereof. The teacher station employs two video monitors, one to display the output of the teacher station computer and the other to display the screen of one of the student computers. This system requires complex wiring and additional controller devices at each station, is expensive to implement, and is geographically limited in extent.
Another conventional teaching system is descπbed m U S Patent No 4,759,717 In this system, the teacher computer and the student computers are serially connected in a closed loop More specifically, this teaching system requires a specially-designed external hardware controller provided for each student computer Each hardware controller is responsive to a command from a teacher terminal for displaying an analog video signal from the closed-loop network or transmitting a video signal to another computer on the closed-loop network This conventional system also requires additional controller devices and is geographically limited in extent U S Patent 5,002,491 descπbes a electronic classroom system that operates on a local area network and provides a communication protocol for propπetary classroom application software implementing specific tunctions such as distπbuted testing taking and student performance evaluation Since this electronic classroom system requires propπetary application software, this system cannot be used for collaboration and momtoπng with off-the-shelf, third-party software, such as most popular word processor, spreadsheet, and multimedia applications, which do not know about the propπetary communications protocol
SUMMARY OF THE INVENTION
Accordingly, there exists a long-felt need for an enterpπse-wide, networking solution that fosters collaboration and communication between users in the enterpnse using third-party productivity, multimedia, and instructional applications and implements momtoπng functions for a supervisor There is a need for such a networking solution to be inexpensive and not require special-purpose hardware controllers and switching consoles These and other needs are addressed by the present invention, which provides a novel enterpnse management system including a supervisor computer system and one or more user computer systems The computer systems in an embodiment of the enterpnse management system are configured to capture their respective screen displays and transmit the captured display data to another computer system for viewing Consequently, users can collaborate with each other because they can view the screens of their fellow students and employees, while a supervisor such as a
•>
teacher or manager can monitor the activities of the students or employees By capturing the screen display data, the enterprise network system does not require third-paπy software applications to make proprietary network calls and can, therefore work with popular software packages useful in classrooms and offices In addition, embodiments of the enterpnse management system can be implemented on existing local area and wide area networks, even with satellite links In preferred embodiments, support for point-to-point and broadcast communication is provided, especially for sending and receiving text messages, real-time, interactive "chat" sessions, and playing high speed audio/video One aspect of the invention involves a computer network compnsing a supervisor computer system, a user computer system, and a network communications infrastructure for transmitting packets of information between the supervisor computer system and the user computer system The supervisor computer system is configured to send a view command through the network to the user computer system, requesting display data for the user computer system, to receive the display data from the user computer system, and to display the user display data on a computer display belonging to the supervisor computer system The user computer system is configured to receive the view command, and, m response to the view command, capture the user display data and transmit the user display data to the supervisor computer system
Additional objects, advantages, and novel features of the present invention will be set forth in part in the descπption that follows, and in part, will become apparent upon examination or may be learned by practice of the invention The objects and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the appended claims
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and m which FIG 1(a) depicts an embodiment of a enterpnse management system for collaboration, monitoπng, and communication
FIG. 1(b) depicts an alternative embodiment of the enterprise management system including a satellite link.
FIG. 2 is a high-level schematic of a computer system that can be used to implement an embodiment. FIG. 3 is a flowchart illustrating a log on operation.
FIG. 4 is an exemplary screen display of a supervisor computer system according to one embodiment.
FIG. 5 is a flowchart illustrating a view screen operation.
FIG. 6 is a flowchart illustrating a view group operation.
DESCRIPTION OF THE PREFERRED EMBODIMENT
A method and apparatus for managing a computer network is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
NETWORK OVERVIEW FIG. 1(a) depicts a network topology 100 of an enterprise management system according to an embodiment. The network topology 100 includes at least one supervisor computer system 110 and one or more user computer systems 120, 122, 124, 126, and 128. Although one supervisor computer system 110 and five user computer systems 120, 122, 124, 126, and 128 are depicted in FIG. 1(a), it is to be understood that the present invention is not limited to these particular number of computer system, and, in fact, the present invention has been found to be especially useful in computer networks with a large number of user computers, e.g. fifty or more.
The supervisor computer system 110 and the user computer systems 120-128 are interconnected by a networking communications infrastructure 130, which is preferably a packet-switch network implementation capable of supporting TCP/IP
such as Ethernet and Token-Ring. One aspect of the present invention is directed to a technique for high-speed network communications. Accordingly, network commands are packaged and transmitted in packets of blocked data. Each data packet is no more than a predetermined maximum in size, for example, 30kB. The data packet comprises a header and a string of data. The header is fixed-length and contains the following fields for identifying the data packet as a command as shown in TABLE 1 :
TABLE 1
Preferably, only a small percentage of the normal network commands are used. In particular, it has been found that, based on the nature of the data being transmitted, that it is not necessary for network stability to implement all of the normal TCP/IP redundancy checking. It is estimated that this results in a dramatic increase in network speed (for example, a 10%-20% faster network rate), while suffering only a negligible decline in network stability. Therefore, fast transmission of full motion video can be accomplished. Another aspect of the present invention is directed to exploiting idle processors among the computer systems of the network. Idle processing power within the network is detected and then used for sending and receiving network commands. Receiving network commands is given a higher priority than sending network commands. With this priority setting, the incoming network commands and data are reliably captured by the individual processors at high speed. There are various ways to determine how busy or idle the individual computer processors are, but the present invention is not limited to any particular method. For example, each of the computer systems 110, 120-128 may be installed with a resident program that establishes a
regular timer, which is delayed if the processor is too busy. Thus, the resident program automatically detects that the processor is idle and. in response, engage the processor to receive and send network commands, giving higher priority to receiving the network commands. In accordance with one embodiment, the geographical limitations of conventional enterprise management systems are overcome by including a satellite link. Referring to FIG. 1(b) the network includes a satellite 132 coupling supervisor computer system 110 to a local area network 136 of user computer systems 120, 122, 124, 126, and 128 via satellite links 134a and 134b. Satellite links 134a and 134b provide low-level networking functions between supervisor computer system 110 and local area network 136. A server 138 is provided to facilitate the interface between the user computer systems 120-128 and the satellite link 134b, and may include providing connectivity to the satellite link 134b through a wide area network or even the Internet.
HARDWARE OVERVIEW
FIG. 2 is a block diagram that illustrates a computer system 200 that can implement the supervisor computer system 110 and user computer systems 120-128 according to one embodiment. Computer system 200 includes a bus 202 or other communication mechanism for communicating information, and a processor 204 coupled with bus 202 for processing information. Computer system 200 also includes a main memory 206, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 202 for storing information and instructions to be executed by processor 204. Main memory 206 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 204. Computer system 200 further includes a read only memory (ROM) 208 or other static storage device coupled to bus 202 for storing static information and instructions for processor 204. A storage device 210, such as a magnetic disk or optical disk, is provided and coupled to bus 202 for storing information and instructions. Computer system 200 may be coupled via bus 202 to a display 212, such as a cathode ray tube (CRT), for displaying information to a computer user. An input
-i
device 214, including alphanumeric and other keys, is coupled to bus 202 for communicating information and command selections to processor 204. Another type of user input device is cursor control 216, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 204 and for controlling cursor movement on display 212. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
According to one embodiment of the invention, network management functionality, including collaboration, monitoring, and communications, is provided by respective computer systems 200 executing one or more sequences of one or more instructions contained in main memory 206 in response to processor 204. Such instructions may be read into main memory 206 from another computer-readable medium, such as storage device 210. Execution of the sequences of instructions contained in main memory 206 causes processor 204 to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 206. In alternative embodiments, hard- wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term "computer-readable medium" as used herein refers to any medium that participates in providing instructions to processor 204 for execution. Such a medium may take many forms, including but not limited to non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as storage device 210. Volatile media include dynamic memory, such as main memory 206. Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise bus 202. Transmission media can also take the form of acoustic or light waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium
with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM. any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 204 for execution. For example, the instructions may initially be borne on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 200 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to bus 202 can receive the data carried in the infrared signal and place the data on bus 202. Bus 202 carries the data to main memory 206, from which processor 204 retrieves and executes the instructions. The instructions received by main memory 206 may optionally be stored on storage device 210 either before or after execution by processor 204.
Computer system 200 also includes a communication interface 218 coupled to bus 202. Communication interface 218 provides a two-way data communication coupling to a network link 220 that is connected to a local network 222. For example, communication interface 218 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a coπesponding type of telephone line. As another example, communication interface 218 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 218 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 220 typically provides data communication through one or more networks to other data devices. For example, network link 220 may provide a connection through local network 222 to a host computer 224 or to data equipment operated by an Internet Service Provider (ISP) 226. ISP 226 in turn provides data communication services through the world wide packet data communication network, now commonly referred to as the "Internet" 228. Local network 222 and Internet 228 both use electrical, electromagnetic or optical signals that carry digital data streams.
The signals through the various networks and the signals on network link 220 and through communication interface 218, which carry the digital data to and from computer system 200, are exemplary forms of carrier waves transporting the information. Computer system 200 can send messages and receive data, including program code, through the network(s), network link 220 and communication interface 218. In the Internet example, a server 230 might transmit a requested code for an application program through Internet 228, ISP 226, local network 222 and communication interface 218. In accordance with the invention, one such downloaded application provides for network management as described herein. The received code may be executed by processor 204 as it is received, and or stored in storage device 210, or other non-volatile storage for later execution. In this manner, computer system 200 may obtain application code in the form of a carrier wave.
ENTERPRISE MANAGEMENT FIG. 3 is a flowchart illustrating steps taken by a supervisor computer system
110 referred to as "teacher" and a user computer system 120 referred to as "student." Although FIG. 3 is illustrated with respect to a classroom setting by way of an example, it is to be understand that the following discussion is applicable to enterprise settings generally, for example, to various offices within a company or an agency of a local or national government. At step 300, preferably at boot-time, the computer systems undergo an initialization process, including memory allocation 302 and network resetting 304.
After the supervisor computer system 110 initializes, it checks a local file of user accounts stored in computer-readable medium and periodically transmits an MT_GIVE_YOUR_NAME message in a data packet to the user computer systems 120- 128 (step 310). The user account file contains a list of users of the enterprise management and defined groups of the users. Each user account gives the network name of the user computer system 120 and a list of rights that a user may be assigned for authorization of specific tasks. After the user computer system 120 initializes, it prepares to log on (step 320) by sending a MT_CAN_I_LOG_IN_NOW message to the supervisor computer system
110. In response, at step 312, the supervisor computer system 110 checks the user account for the user computer system 120. and, if log on is authorized according to the user account information (step 322), sends a
MT_LOGIN_OK_AND_HEREJS_YOUR_INFORMATION command to the user computer system 120. In response, the user computer system 120 and proceeds to perform its main operations (step 330). On the other hand, if the user computer system 120 is not authorized to log on (step 322), then the supervisor computer system 110 will ignore the log on attempt. In one embodiment, the user computer system 120 will continue to attempt logging on (step 322) until the supervisor add the user computer system 120 to the user account.
FIG. 4 is an example of a screen display 400 during operation of an embodiment of an enterprise management system, in which the main user information to the functionality of the embodiment is interfaced through a toolbar 410 labeled "SmartSchool." The toolbar 410 comprises a plurality of buttons 412-428, which are typically activated by a cursor control device 216 when the cursor is positioned over the button 412-428 or through key inputs of input device 214.
In this example, button 412 is configured to perform a "View Screen" command. In response, the computer system presents a display window 440 for eventually displaying the display data for a selected computer system. The display window 440, when activated (e.g. by a right-button mouse click), presents menus and dialog boxes (not shown) for selecting a user computer system 120 or a predefined group of user computer systems 120-128 to the view the screen or screens thereof. As shown in FIG. 4, display window 440 displays, by way of an example, the contents of user computer system 120. including an enterprise management system toolbar 442, a third-party word processing application (e.g. WordPerfect®) window 444, and a chat session 446 in accordance with an embodiment. One sequence of networking commands to implement the view screen functionality is described in more detail hereinafter with reference to FIGS. 5 and 6.
Button 414 is configured for a "Send/Broadcast Message" command, whereby, upon activation, a send message window 430 is displayed. The user or supervisor interacts with the send message window in order to select a user or group of users (including the supervisor) for sending a message. Upon activation of the "Send"
button, the message is transmitted to the destinations, whereupon the destination computer system receives the message and emits an audible sound such as a beep. When a user or supervisor hears the beep, he may activate the "Check Message" button 416 and read the message when it is displayed on the screen. Button 418 is provided for establishing a chat session, whereby users can type messages to one another in an interactive manner, thereby facilitating collaboration and communication. The screen display 440 of user computer system 120 includes a chat session window 446 showing chat messages that have been exchanged.
Button 420 is configured for a "Control Other Terminal" operation. When this control button 420 is activated, the activator is presents with a dialog box for selecting another computer system or group of computer systems. In one embodiment there are four sets of control commands that are invoked: user commands, user rights, toolbar controls, and "risk zone" operations.
User commands relate to locking or unlocking the computer system of another, and enabling or disabling the user input devices (keyboard 214 and cursor control 216). When the user input device is disabled, the supervisor (or user with appropriate permissions) is able to transmit over specific keyboard strokes or mouse movements and clicks as input to the controlled computer system. When the controlled computer system receives the input command in a packet, it places the command in the input buffer for the computer system to execute. By this facility, a supervisor, or suitably empowered user, is able to take control over another computer system and execute commands thereon. Feedback is provided for the supervisor via the displaying the captured screen displays.
The control button 420 also allow user rights to be enabled and disabled. In specific, groups of rights can be granted or revoked and each button of the toolbar 410 or 442 for the user can be disabled or enabled. One of the rights is the ability to reconfigure a user computer system 120 into a supervisor computer system by granting the full rights thereof, such as the ability to take control over another computer system for executing commands thereon. Changing the user rights, including reconfiguring a user computer system 120 into a supervisor computer system 110, can be accomplished by sending a network command from the supervisor computer system 110 to the user computer system 120 for granting specified rights to
the user computer system 120. When the user computer system 120 receives the network command, it acquires the specified rights, including reconfiguring itself as another supervisor computer system.
Toolbar controls are also provided for controlling the toolbar 410, with such features as being on top other windows, beeping, hiding or showing, and showing the current time in the title bar. The "risk zone" operations are provided for shutting down, restarting, or logging off the current or another computer system.
Button 422 provides "Supertool" functionality for high performance networked, multimedia applications, for example, audio/video from an file or a camera. Button 424 is provided for customizing various aspects of the enterprise management system, such as the transfer speed of packets, the sensitivity, screen capture parameters (e.g. as soon as possible), and the size of the data packets. Button 426 is an "About" button, providing help and vendor information about the enterprise management system, and button 428 is provided for exiting the enterprise management system.
VIEWING SCREENS FIG. 5 is a flowchart illustrating steps taken in implementing a view screen request, invoked through view screen button 412, according to one embodiment. At step 500, the requesting computer system (refened to as "Terminal X") sends a MT_SCREEN_CAPTURE_START command to the requested computer system (referred to as "Terminal Y"). Terminal Y then receives and processes the view command, captures the display data for the display 212 (most computer systems 200 already store a copy of the screen and the mouse position in main memory 206 and sends packets of display data back to Terminal X in one or more MT_SCREEN_IMAGES commands (step 502).
If Terminal X sends a refresh command, MT_RESEND YOUR_SCREEN (step 504), then execution loops back to step 502, where the screen and the mouse position are captured for another time and transmitted to Terminal X in one or more packets. If Terminal X has not sent a stop command, such as MT_STOP_VIEW_THIS_USER, within a period of time or if Terminal Y is idle (step 506), then execution also loops back to step 502. where the screen and the mouse position are captured for another
time and transmitted to Terminal X in one or more packets. On the other hand, if Terminal X did send the stop command, then Terminal Y stops sending display data back to Terminal X (step 508).
A feature of one embodiment is iteratively displaying the screens of a group of users, defined in the user accounts file. Referring to FIG. 6, the supervisor (referred to as "teacher") selects users (referred to as "students") whose screen is to be viewed (step 600). This may be performed by selecting a predefined group of users in a dialog box. In addition, the teacher sets a time interval Z through a control in the dialog box. In response, the supervisor computer system 110 sends view commands to the selected students (step 602), which is acknowledged by the user computer systems 120-128 until all them has responded (step 604). The first selected user computer system 120 captures and sends the display data back to the supervisor computer system 110 .as described hereinabove (step 606). After waiting for time interval Z (step 608), the next user computer system 122 captures and sends the display data back to the supervisor computer system 110, as described hereinabove (step 610). If the supervisor computer system 110 has sent a stop view command (step 612), then the selected user computer systems 120-128 stop capturing and transmitting their respective display data. Otherwise, execution continues back to step 608. In this manner, the supervisor is able to iteratively monitor the screens and activities of the selected users.
Collaboration is fostered with an enterprise management system by capturing display data for a computer system or a group of computer systems, because users can view the progress of fellow users even with third-party applications that were developed without knowledge of the enterprise management system, such as many standard word processors, database management systems, and the like . Monitoring functions are provided by the enterprise management system since a supervisor can select which user screens to view. Better communication is enabled through the display of other screens, as well as, with the text messaging, chat sessions, and high- speed audio/video features.
SUBSTΓΓLΠΈ SHEET (RULE 26)
While this invention has been described in connection with what is presently considered to be the most practical and prefeπed embodiment, it is to be understood that the invention is not limited to the disclosed embodiment, but on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.