WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Workgroup organized network manager with workstation comparison system    
United States Patent5586322   
Link to this pagehttp://www.wikipatents.com/5586322.html
Inventor(s)Beck; Robert E. (1105 E. Mayfair Rd., Arlington Heights, IL 60004); Schoenberger; Ronald L. (37 Oxford, Clarendon Hills, IL 60514)
AbstractA workgroup organized network manager for controlling the operation of individual workstations within a computer network. The workgroup organized network manager organizes workstations into workgroups and controls the distribution of information to each of the workstations within a defined workgroup. The tasks each workstation performs are defined by a specification consisting of programs. A library of programs is maintained on a host workstation designated as a controlling workstation within the workgroup. The host workstation keeps track of activity occurring on the individual workstations within the workgroup. A file maintenance and inventory system compares the attributes of files, directories, and software located on the workstation to check for discrepancies between files, directories, or software intended to be identical and for locating missing or extra files, directories, and software.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5586322
Workgroup organized network manager with workstation comparison system - US Patent 5586322 Drawing
Workgroup organized network manager with workstation comparison system
Inventor     Beck; Robert E. (1105 E. Mayfair Rd., Arlington Heights, IL 60004); Schoenberger; Ronald L. (37 Oxford, Clarendon Hills, IL 60514)
Owner/Assignee    
Patent assignment
All assignments
Publication Date     December 17, 1996
Application Number     08/459,528
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 2, 1995
US Classification     707/200 707/9
Int'l Classification     C06F 013/00 C06F 017/00
Examiner     Black; Thomas G.
Assistant Examiner     Homere; Jean R.
Attorney/Law Firm     Fitch, Even, Tabin & Flannery
Address
Parent Case     CROSS-REFERENCE TO RELATED APPLICATION This application is a continuation of application Ser. No. 07/986,116 filed Dec. 4, 1992, now abandoned, which is a continuation-in-part of U.S. patent application Ser. No. 07/898,191, filed on Jun. 11, 1992, now U.S. Pat. No. 5,440,739.
Priority Data    
USPTO Field of Search     395/650 395/600 395/200.19 395/200.03 364/DIG. 1
Patent Tags     workgroup organized network manager workstation comparison
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5473772
Halliwell
717/171
Dec,1995

[0 after 0 votes]
5450606
Shiga
717/170
Sep,1995

[0 after 0 votes]
5440739
Beck

Aug,1995

[0 after 0 votes]
5278946
Shimada
706/53
Jan,1994

[0 after 0 votes]
5276879
Barry
718/106
Jan,1994

[0 after 0 votes]
5228137
Kleinerman
703/26
Jul,1993

[0 after 0 votes]
5019963
Alderson
707/201
May,1991

[0 after 0 votes]
4999766
Peters
707/10
Mar,1991

[0 after 0 votes]
4905162
Hartzband
706/52
Feb,1990

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A method of analyzing files located at a first land a second workstation to determine the differences between the first and second workstations, each file located at the first and second workstation having attributes identifying the characteristics of the files including the file name and other attributes, said method comprising:

at each workstation, and for each file on the workstation that is to be analyzed, computing a check value as an additional file attribute, the check value attribute for each file being computed from the entire file contents of each file, and being suitable for comparison use in determining whether a given file is identical in content to another file;

selecting a workstation to be a collection workstation;

retrieving said check value attributes of files located at the first workstation and storing the check value attributes on the collection workstation in a first workstation file attribute record;

retrieving said check value attributes of files located at the second workstation and storing the check value attributes on the collection workstation in a second workstation file attribute record;

comparing the file names and at least one check value attribute of each file in the first workstation file attribute record to the file names and the corresponding check value attribute in the second workstation file attribute record to determine if the same files exist at both workstations and whether the files located at the first and second workstation are different with respect to said check value attributes; and

producing an exception report indicating the existence of differences between corresponding files on the two workstations.

2. The method of analyzing files located at a first and second workstation as recited in claim 1, said method further comprising the steps of:

modifying said exception report by eliminating the references to differences that are intentional and not to be corrected;

generating from the exception report so modified a set of commands designed to adjust the files on the second workstation to match those on the first workstation, thereby correcting the differences; and

executing said commands to bring the files in the two workstations into substantial agreement with each other.

3. The method of analyzing files located at a first.sub.-- and second workstation as recited in claim 2, said method further comprising the steps of:

substituting replacement file or file path names for the file or file path names found in at least one of said workstation file attribute records prior to said comparison step.

4. The method of analyzing files located at a first and a second workstation as recited in claim 2, said method further comprising the steps of:

determining which files are located at the first workstation and not at the second workstation based on said file name comparison step; and

adding files determined to be located at the first workstation and not at the second workstation based on said determining step to the second workstation.

5. The method of analyzing files located at a first and a second workstation as recited in claim 2, said method further comprising the steps of:

determining which files are located at the second workstation and not at the first workstation based on said file name comparison step; and

moving the files located at the second workstation and not at the first workstation from the second workstation.

6. The method of analyzing files as recited in claim 1, said method further comprising the steps of:

saving at least one of said workstation file attribute records as a record of the state of the corresponding workstation for use in later analysis of the workstations;

on at least one later date, once again generating workstation file attribute records for the workstations;

carrying out said comparison step by comparing the once again generated workstation file attribute records with the saved workstation file attribute records; and

following each such comparison, generating an exception report indicating changes that have occurred to the files on the workstation over time.

7. A method of analyzing files in a computer network comprising a plurality of computer workstations to determine the differences between the workstations, each file located at the individual workstations having attributes identifying the characteristics of the files including the file name and other attributes, said method comprising:

at each workstation, and for each file on the workstation that is to be analyzed, computing a check value as an additional file attribute, the check value attribute for each file being computed from the entire file contents of each file, and being suitable for comparison use in determining whether a given file is identical in content to another file;

selecting a workstation to be a collection workstation;

retrieving said check value attributes of files located at the individual workstations and storing the check value attributes on the collection workstation in workstation file attribute records:

comparing the file names and at least one check value attribute of each file in each workstation file attribute record to those in the other workstation file attribute records to determine if the same files exist at all workstations and whether the files located at the individual workstations are different with respect to said at least one check value attribute; and

producing an exception report indicating the existence of differences between corresponding files on the individual workstations.

8. The method of analyzing files as recited in claim 7, said method further comprising the steps of:

modifying said exception report by eliminating the references to differences that are intentional and not to be corrected;

generating from the exception report so modified a set of commands designed to adjust the files on the individual workstations to match those on the other workstations, thereby correcting the differences; and

executing said commands to bring the files in the workstations into substantial agreement with each other.

9. The method of analyzing files as recited in claim 8, said method further comprising the steps of:

substituting replacement file of file path names for the file or file path names found in at least one of said workstation file attribute records prior to said comparison step.

10. The method of analyzing files as recited in claim 8, said method further comprising the steps of:

establishing a desired configuration which specifies what files are to be present on each workstation;

determining which files are located at any workstations and are not specified in the desired configuration based on said file name comparison step; and

adding files determined to be located at many workstations and not at one or a few workstations based on said determining step to the one or a few workstations.

11. The method of analyzing files as recited in claim 8, said method further comprising the steps of:

establishing a desired configuration which specifies what files are to be present on each workstation;

determining which files are located at any workstations and are not specified in the desired configuration based on said file name comparison step; and

removing the files located at one or a few workstation and not at many workstations from the one or a few workstations.

12. The method of analyzing files as recited in claim 7, said method further comprising the steps of:

saving at least one of said workstation file attribute records as a record of the state of the corresponding workstation for use in later analysis of the workstations;

on at lest one later date, once again generating workstation file attribute records for the workstations;

carrying out said comparison step by comparing the once again generated workstation file attribute records with the at least one saved workstation file attribute records; and

following each such comparison generating an exception report indicating changes that have occurred to the files on the workstations over time.

13. A system for analyzing files located on plural workstations to determine any differences in such files, each file having attributes identifying characteristics including the file name and other attributes, said system comprising;

a first workstation having first files located thereon;

a second workstation having second files located thereon;

first means for computing a first set of check values as additional file attributes, at said first workstation for each file to be analyzed, the check value attributes being computed from the entire file contents of each of said files;

second means for computing a second set of check values as additional file attributes, at said second workstation for each file to be analyzed, the check value attributes being computed from the entire file contents of each of said files, said first and second check value attributes being suitable for comparison use in determining whether two of said files are identical in content;

a workstation selected as a collection workstation for retrieving said check value attributes of files located at the first workstation and storing the check value attributes on the collection workstation in a first workstation file attribute record, and for retrieving said check value attributes of files located at the second workstation and storing the check value attributes on the collection workstation in a second workstation file attribute record;

collection workstation means for comparing the file names and the check value attribute of each file in the first workstation file attribute record to the file names and the corresponding check value attribute in the second workstation file attribute record to determine if the same files exist at both workstations and whether the files located at the first and second workstation are different with respect to said check value attributes; and

collection workstation means indicating the existence of differences between corresponding files on said first and second workstations for adjusting the files on the second workstation to match those on the first workstation, thereby correcting the differences to bring the files in said workstations into substantial agreement with each other.

14. A system for analyzing files located on plural workstations in accordance with claim 13, wherein said collection workstation comprises one of either said first workstation or said second workstation.

15. A system for analyzing files located on plural workstations in accordance with claim 13, wherein said collection workstation comprises a third workstation having third files located thereon.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention relates to computer software for controlling the operation of individual workstations within a computer network. In particular, the invention relates to a workgroup organized network manager which organizes people into groups and computers into workgroups. As used within this invention, a workgroup represents an organization of people and a group of computers connected together by a network. The host computer controls the workgroup. A user at the host computer creates specifications for controlling the operation of the computers in the workgroup. The present invention acts as an agent for the user and implements the specifications on the clients. The invention implements the specifications either periodically or on command. The workgroup organization limits how individuals may use the invention to manipulate the computers in the workgroup. The invention also limits which computers are controlled.

BACKGROUND OF THE INVENTION

Networks consist of a number of interconnected computers which can include a centralized computers connected to remote terminals, a number of individual mini-computers or microcomputers linked to each other, or a combination thereof. In each instance, however, the function of the network is to provide a means for communicating information throughout the network. The minicomputer or microcomputer based centralized file server or a centralized computer typically includes a large central database of information which is accessed by the users at either remote terminals or computer stations. Economies of scale are achieved in these types of systems by storing the massive amounts of information contained in the central database in one central location.

Computer networks consisting of linked mini-computers or personal computers are not necessarily dedicated to accessing information from a large central database of information. These networks, called distributed systems, instead can be directed to the sharing of information created and maintained at each of the mini-computers or workstations within the network. While the distributed system type of network does not lend itself to the control of large amounts of information, as does the central database type of network, it is usually more flexible in the type and variety of tasks that it can perform. Each individual workstation can communicate with other workstations on the network and files can be shared therebetween. This flexibility, however, also means it is more difficult to control the computers so that they will operate in a similar fashion and produce similar results.

A communication software package or a device driver controls transmission of data or information from one workstation to another over communication lines. In addition to the communication software package, other software packages are available which operate to provide additional features not present in the standard communication software packages.

For instance, a time and schedule management software package allows users to view, track, and schedule time-related activities. Users can manage a personal schedule and other users' schedules as well. Permissions can be granted to allow a user to view or modify the scheduler of another user. In addition, permissions can be tailored to suit each user on a network. Users can be defined as parts of a group, with groupwide clearances assigned to all members of a particular group. In addition, defaults can be set for each group or new user, and when a user is added, the setup for that user will not require modifications. While this type of software package can organize workstations into groups having group wide clearances assigned to all members of a group, the tasks performed by the workstation is limited to the performance of calendar or scheduling type tasks and cannot be used for any other purpose.

Another type of software package for use on a network maintains identical copies of files on multiple computers. The files to be copied, the destination of those files, and the operations performed for updating files are all specified at a source workstation. Whenever files are updated, the file is updated at the source workstation and then sent from the source workstation to the various destination workstations. While this type of software makes updating files a simpler task than previously available, this type of software package cannot control the distribution of information to predefined workgroups nor is there any organizational structure to limit access to particular users. In addition, the destination workstation cannot trigger the source computer to update destination workstation files and therefore cannot be guaranteed the latest versions of the files when they are needed. These packages also do not allow the execution of non-file related commands over the network and do not provide for delayed execution of processes if stations are not available at the time of an update. The stations in the workgroups cannot, therefore, be controlled as a group.

SUMMARY OF THE INVENTION

The present invention is a system of computer programs to organize networked computer workstations into workgroups that are controlled by specifications. The workgroups consist of groups of computers on the network and the people who use the invention to manage them. The computers on the network can include but are not limited to mainframes, minicomputers, servers, and personal computers. For ease of discussion, these machines are referred to as workstations hereinafter. The specifications are the commands that are executed to accomplish the desired results.

Typically, workgroups consist of two or more workstations, in which one workstation is designated to be a host workstation and the remaining workstations are designated to be client workstations. A workgroup is not limited to any maximum number of workstations and a workstation may be part of many workgroups. Workgroups also consist of groups of people, with varying responsibilities, that operate the workgroup. The responsibilities may be distributed between several different people or may be allocated to one person.

The host workstation provides the means for setting up the workgroup and for defining the responsibilities of the people who operate the workgroup. The specifications are also developed on the host and are implemented by installing them in the host workgroup library. As part of the workgroup setup, the workstations which may become clients are defined and then may be addressed by the specifications. A client station administrator defines workstations to be a client by entering the host station name into a client copy of the invention which resides in the client workstation. The client station administrator thus prevents the invention from making changes on the client, if specified. Either a host station or a client station can initiate the execution of the specification on a client since the client and host station are linked together through the software.

The people who operate the invention are designated as station administrators (both host and client), workgroup leaders, workgroup programmers and client users. The administrators install and maintain the invention, define rules of operation and set up the workgroups. The workgroup leaders designate the workgroup programmers and define the limits they operate under. The workgroup programmers write the specifications which actually control the workstations. The client users (engineers, accountants, draftspersons, etc. who actually use the stations) use the files and environment provided through the invention.

Specifications define how a programmer manages client workstations. The invention implements the specifications automatically on all of the client workstations having defined specifications. The effort required to manage a workgroup is reduced to planning and writing specifications instead of repeating similar tedious defining actions on each client workstation. In addition, the invention provides log files showing the history of each workgroup and audit trails showing all implemented specification statements.

Each individual client workstation within a workgroup operates according to a specification defined by a program or programs on the host workstation. The specification defines the parameters within which the workstations and workgroups operate. Because workstations are controlled by the specification, individual workstations can be automatically configured for individual tasks.

Specifications are programs containing specification statements that have been entered into a workgroup library. Programs may be written separately or may be modified at a later time. The client only executes specification statements it has not executed before. The statements are active as long as they remain in the library.

Specification statements typically are equivalent to several commands in the native operating system. The invention checks to see that all of the native commands can be completed successfully before executing the specification statement. This prevents the clients from being left in an intermediate state because some of the native commands did not succeed.

Some specifications may pend. Pending specifications are specifications that will not execute until some condition or conditions are satisfied on the client. When the conditions are satisfied, then the specification statements are executed.

Active specifications (those entered into the workgroup library) may be referenced at any time. If a new workstation is added to the workgroup, the specification can be referenced immediately and the workstation set to the same configuration as the other stations in the workgroup. If a client station is disconnected when the host requests that the clients implement the specification, then the station will not be in the correct configuration. Since the invention on the client station recognizes which computer is the host within its workgroup (and thus the location of the workgroup library), the invention on the client can implement the specification when the client rejoins the network.

Before a client station implements the workgroup's specification contained in the library, the invention on the client must retrieve a copy of the workgroup library. The invention uses a single computer account, that exists on all stations, for sending files and other computer network communication. A workgroup's specification can have several programmers. When the invention executes each specification command on a client, the command is executed as if by the command's programmer. It is similar to the programmer logging on to the client and then executing the command. The invention does not use the programmer's computer account or password, thereby enabling the programmer, on the host computer, to control and modify the clients in his workgroup simply by placing specification commands in the workgroup library. The invention tightly controls access to workgroup libraries. Only clients who are members of the workgroup can access the workgroup's library and only clients can access it through the invention.

In addition, the present invention includes a workstation comparison system for comparing the files and directories that are located on the individual workstations to determine whether any discrepancies exist between files or directories that are intended to be the same, to determine if extra files exist or if files are missing from a workstation. For instance, if all workstations within a workgroup are loaded with an identical file or directory, the present invention can determine if the file or directory has been properly loaded on each workstation. In this way, errors are located by comparing the files or directories which are common on some or all of the workstations.

The present invention collects the attributes of the files or directories from workstations of interest at the host workstation. The attributes of a file include the type of file, mode or protection of the file, number of links, owner and group that the file belongs to, the date, the size, and checksum. Once these attributes are collected by host workstation, the attributes associated with the workstations of interest are compared. Any difference is noted and flagged as a potential source of a problem. While the workstation comparison system is currently written for a UNIX system for use with the Workgroup Organized Network Manager, the workstation comparison system can exist by itself and can be written for other computer systems and in other languages for analyzing the files or directories on other computer workstations. Once differences between files or directories are located, extra files are located, or files are found to be missing, the present invention includes the means to change the incorrectly programmed workstation to one which is programmed correctly.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of a networked computer system organized into workgroups.

FIG. 2 is a block diagram illustrating the creation of a library file by a load program with a plurality of files as input.

FIG. 3 is a block diagram illustrating the creation of a program file by a program called create.sub.-- prgm.

FIG. 4 is a block diagram illustrating a number of program modules and their interaction with and creation of a number of files.

FIG. 5 is a flow diagram of the compact program module.

FIG. 6 is a flow diagram of the interp.sub.-- 1 program module.

FIGS. 7A-7C is a flow diagram of a copy.sub.-- ref function module.

FIGS. 8A-8C is a flow diagram of a directory function module.

FIGS. 9A-9B is a flow diagram of a remove function module.

FIG. 10 is a flow diagram of an execute program module.

FIG. 11 is a flow diagram of a program update program module.

FIG. 12 is a flow diagram of the interp function module.

FIG. 13 is a flow diagram of an inventory collect program for collecting attribute data of files and directories.

FIG. 14 is a flow diagram of a compare model program for comparing files located on a model workstation to a target workstation.

FIGS. 15A and 15B are a flow diagram of subroutine of the compare model program of FIG. 14 for determining similarities and differences between files located on a model workstation and a target workstation.

FIG. 16 is a flow diagram of a subroutine for determining whether file names have substitute or equivalent expressions.

FIG. 17 is a flow diagram of a subroutine for replacing regular file names with substitute or equivalent expressions.

FIG. 18 is a flow diagram of a compare station program for comparing the files located on a number of computer workstations.

FIGS. 19A, 19B and 19C are a flow diagram of subroutine of the compare station program of FIG. 18 for determining similarities and differences between the files located on a number of computer workstations.

FIG. 20 is a flow diagram of a make program program.

FIG. 21 is a flow diagram of a change mode subroutine.

FIG. 22 is a flow diagram of a copy function subroutine.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 illustrates a networked computer system 10 containing a plurality of workstations 12. Each workstation 12 is further identified by a letter, A through H, to aid in the later discussion. Each workstation comprises a video display terminal 14, a computer 16 and a keyboard 18. Each workstation 12 communicates to other workstations 12 via the network as is understood by those skilled in the art.

The present invention is a system of computer programs that organizes and manages workstations 12 within the network 10. While the present invention is written in the C language and UNIX scripting languages and is directed to be used on a UNIX operating system, the present invention is not limited to UNIX and other embodiments will become apparent to those skilled in the art. The present invention controls as many workstations as are contained within the network and is not limited to the number illustrated here.

The workstations 12 of the network 10 are organized into workgroups consisting of workstations selected to be within the organized workgroup by an administrator. For instance, as illustrated in FIG. 1, the network 10 is divided into a first workgroup 22 consisting of workstations 12A through 12D, a second workgroup 24 consisting of workstations 12E through 12H, and a third workgroup 26 consisting of workstations 12D and 12H.

Workgroups correspond most directly to the organization of workgroups in a business, manufacturing, or design environment or other organization such as sections, departments, and projects. For instance, in a manufacturing facility, the workgroup 22 might consist of the electrical engineering department, the workgroup 24 might consist of the mechanical engineering department, and the workgroup 26 might consist of one electrical engineer and one mechanical engineer chosen to work on a specific project.

The workgroups and the individual workstations comprising the workgroups are selected by the administrator according to the individual requirements of each workgroup. As each workgroup is dedicated to the production of a certain type of work product in the case of an engineering design firm, the invention manages each workstation within the workgroup according to specifications that can be defined within the invention. Of course, the present invention has many other applications, for instance, delivering software to various departments within a business organization, analyzing computers in a network, and determining disk space on the workstations.

Before the present invention is operational, the system of programs comprising the invention must be installed on every workstation in the network 10 and certain variables must be defined to give structure to the network according to the individual requirements of the workgroups and workstations.

Once the invention is installed, workgroups can be defined. The definition of a workgroup includes designating one of the workstations 12 to be a workgroup host, designating a number of individual workstations to be workgroup clients, and designating a group of people having defined responsibilities that use the invention to manage the workstations. This and other information is put into a number of files on the workgroup host.

FIG. 2 illustrates a block diagram of certain files on the workgroup host which are created to run the present invention. The files which are created are the stations file 30, the programmers file 32, the rules file 34 and the specification program file 36. These files are input to a load program 38, which checks and adds the specification program file to the workgroup library file 40. Each workgroup has one each of the stations file 30, the programmers file 32, and the rules file 34, but can have many specification program files 36. The stations file 30 contains a list of labels that specify combinations of workstations used by the workgroup. For instance, each label for workgroup 22 as shown in FIG. 1, would be limited to stations 12A, 12B, 12C, and 12D. Each label is saved in the stations file 30. Once the stations have been defined and stored in the stations file 30, the programmers given authority to create the specification programs are defined.

Programmers are individuals who are given the authority to act as a programmer within a defined workgroup. Once each of the programmers has been chosen, each programmer is defined to have the capability of performing certain specification commands on assigned workstations. This information is saved in programmers file 32. The specification commands the programmer may be allowed to use include a copy command, a directory command, a remove file command, a remove all command, a refresh command, an execute command and a remove directory command. Each of these commands typically is equivalent to several commands in the UNIX operating system. The details of these commands will be described later. In addition to the station file and the programmer file, the rules file needs to be defined.

The rules file 34 is established by the workgroup leader and the system administrator. The rules file 34 contains rules used by the load program 38 to check specification programs written by the programmer before adding the specification programs to the workgroup library 40. The rules provided with the invention maintain various levels of security in addition to that provided by UNIX. A mechanism is also provided to allow the host administrator to add to or modify the rules to meet security or other requirements.

A specification program file 36 is a file which is created by a programmer previously defined in the programmers file 32. The workgroup programmers develop specification programs using the specification programming language provided by the present invention. In addition, the invention contains a create.sub.-- prgm 46, shown in FIG. 3, that can automatically generate specification commands for files in a list, thereby relieving the programmer of much effort when creating new programs. The create.sub.-- prgm 46 provides a choice of refresh or copy instructions to move files. The generate program will be discussed later.

The specification program file 36 contains individual specification commands written by the programmer to manage the client computers in a workgroup. The load program 38 checks these commands according to the rules file 34. When the programmer loads a specification program, the program is written into the workgroup library 40. Loading the specification program makes the commands within the program active. The present invention implements the specifications 47 contained in the workgroup library 40 on the client computers or stations. Once loaded, the specification program is active and may be referenced by the invention on any workgroup client as long as it remains in the workgroup library 40. How clients implement the specification in the workgroup library 40, will be discussed later. The present invention includes eight specification commands with various options. These instructions are shown in the following Table 1. The instructions are copy, refresh, direct, rm.sub.-- file, rm.sub.-- dir, rm.sub.-- dir, rm.sub.-- all, execute and #.

TABLE 1 ______________________________________ h host.sub.-- file -c client.sub.-- file -o owner -g group p protection -s labels -d date h host.sub.-- file -c client.sub.-- file -o owner -g group p protection -s labels -d date dir -c client.sub.-- directory -o owner -g group -p protection s labels -d date execute -h host.sub.-- file -1 shell -s labels -d date rm.sub.-- file -c client.sub.-- file -s labels -d date rm.sub.-- dir -c client.sub.-- directory -s labels -d date rm.sub.-- all -c client.sub.-- directory -s labels -d date # comment ______________________________________

As seen in TABLE 1, each of the commands begins with the name of the command and is followed by a list of parameters assigned by a workgroup programmer. The copy command starts with the word "copy" and is followed by -h host.sub.-- file, which specifies a certain file contained on the host, -c client.sub.-- file, specifying the name given to the file on the client, -o, the owner of the file, -g, the group in which the file will be contained, -p, the protection of the file, -s, the labels, and -d, the date that the command was created. The copy command copies a file from the host to the clients. In addition, the copy command can also change the mode, the owner, and the group of the file, if the programmer has the privileges required by the client computer. Copy also has a maintain option -m, which means that if the file changes on the host, the new file will be transmitted to the clients. This feature will be described in more detail later. The copy command is similar to the sequence of UNIX instructions cp, chmod, chown, and chgrp. The copy command is not executed until all UNIX instructions necessary to implement the copy command can all be performed. This prevents the copy command from being partially executed on a client. This is a trait of all specification commands.

As seen in Table 1, the refresh command has the parameters previously cited for the copy command. The refresh command copies a file from the host to the clients. The refresh command is different from the copy command in that the present invention will not execute the refresh command unless a copy of the file already exists on the client. Such a feature is useful when the programmer does not know which computers or stations have a copy of the file. For instance, the programmer can create a refresh command that updates shell scripts or design references files on all computers in a workgroup. Only those computers with the file will be updated. This is different than the copy command, which will only execute if the file's parent directory exists on the client.

The directory command creates directories on the client. The mode, owner and group are specified. The directory command is not executed unless the directory's parent exists on the client. If the parent directory doesn't exist, the present invention waits for it to appear and then executes the directory command.

The execute command runs UNIX programs on the clients. The execute command has several features that simplify running UNIX programs on many stations on the network. Output from the executed UNIX program can be put into a host log of the present invention. Messages can be mailed to the owner of the individual programs. The present invention places the standard output and standard error in a temporary file on the client.

The rm.sub.-- file command removes a file from the individual client and it is quite similar to the rm command in UNIX. If the file is not present on the client or if the command would fail, the present invention ignores the command and does not attempt to execute it later.

The rm.sub.-- dir command removes the directory from the client and is similar to the rmdir command in UNIX. Like UNIX, the directory must be empty for the command to succeed. If the directory is not present on the client or if the command would fail, the present invention ignores the command and does not attempt to execute it later.

The rm.sub.-- all command removes a directory and its files and subdirectories from the clients. The rm.sub.-- all command is different from the UNIX "rm-r" command in that it first checks to see if all files and directories can be removed before beginning. The rm.sub.-- all command works only if it can successfully remove all the directories and files as instructed. If the command cannot succeed on the client, the present invention ignores the command and does not attempt to execute it later.

Finally, the last command is the # command which allows one line of comment to be inserted into the program.

The meaning of the available options for each of the prior instructions is listed in the following Table 2 and is shown as previously discussed.

TABLE 2 ______________________________________ m This maintain option means that if host.sub.-- file changes on the host, the command will re-execute on the client. h host.sub.-- file Use host.sub.-- file as the source host file for the command c client.sub.-- directory or client.sub.-- file Use client.sub.-- file (client.sub.-- directory) as the target client file (directory) for the command. o owner Make owner the owner of the target directo