Patent Publication Number: US-6338084-B1

Title: Method for process-specific exchange of data between machines in a network

Description:
FIELD OF THE INVENTION 
     The present invention relates to computer networks, and more particularly to the exchanging of data between different machines in a network. 
     BACKGROUND OF THE INVENTION 
     Computer networks contain several machines which often need to exchange data with each other. One conventional way to perform this exchange of data is to use a clipboard. A conventional clipboard is machine-specific memory to which one or more processes running on the machine may write data An example of a conventional protocol which uses a clipboard is the Network Dynamic Data Exchange (Network DDE) protocol. FIG. 1 illustrates a conventional network which uses the Network DDE protocol. The network  100  includes a plurality of machines  102 - 108 . Each machine runs processes, or programs, such as Processes A-D  110 - 116 . Each machine also has its corresponding clipboard  118 - 124 . These clipboards  118 - 124  are global in nature, i.e., all processes running on the specific machine write data to the same clipboard which resides on the specific machine. In the Network DDE protocol, the machines in the network  100  may access each other&#39;s clipboards. For example, machine  102  (Machine  1 ) has its own clipboard  118 . The processes A-D  110  running on machine  102  each write data to the global clipboard  118 . As data is written onto the clipboard  118 , older data already residing on the clipboard is overwritten. Thus, the clipboard  118  contains the latest data written to it. For example, process A on machine  102  first write data into the clipboard  118 . Later, process B writes data into the clipboard  118 . The data from process A is overwritten by the data from process B. The data concerning process A is thus no longer available. However, a user may wish to obtain the latest data concerning process A. With the conventional clipboards, this is not possible. The conventional clipboards also present a problem if any of the machines fail or is otherwise unavailable. When a machine fails, the data on its clipboard is lost. 
     Accordingly, what is needed is a method for a process-specific exchange of data between machines in a computer network. The method should be able to avoid the problem of losing data concerning processes on a particular machine if that machine fails. The present invention addresses such a need. 
     SUMMARY OF THE INVENTION 
     The present invention provides a method for process-specific exchange of data between machines in a computer network. Each machine runs a plurality of processes. The method includes providing a plurality of clipboards for a first machine in the computer network, where each clipboard of the plurality of clipboards corresponds to one of the processes running on the first machine; and storing data concerning a process of the plurality of processes onto its corresponding clipboard. Because the method of the present invention is process-based, machines may obtain data concerning certain processes on certain machines without the problem of the latest data on a process being overwritten by another process. Since the clipboards of the present invention may reside on a third party, if one or more of the machines in the network fail or are otherwise unavailable, the data on their clipboards are not lost. 
    
    
     BRIEF DESCRIPTION OF THE FIGURES 
     FIG. 1 illustrates a conventional network with a conventional protocol using a network clipboard. 
     FIG. 2A illustrates a first preferred embodiment of a network using network clipboards in accordance with the present invention. 
     FIG. 2B illustrates a second preferred embodiment of a network using network clipboards in accordance with the present invention. 
     FIG. 3 illustrates the contents of example clipboards in accordance with the present invention. 
     FIG. 4 is a flow chart illustrating a preferred embodiment of the storing of data onto clipboards in accordance with the present invention. 
     FIG. 5 is a flow chart illustrating a preferred embodiment of the retrieval of data from clipboards in accordance with the present invention. 
    
    
     DETAILED DESCRIPTION 
     The present invention provides a method for a process-specific exchange of data between machines in a computer network The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein. 
     To more particularly describe the features of the present invention, please refer to the FIGS. 2A through 5 and the discussion below. 
     FIG. 2A illustrates a first preferred embodiment of a network using the method for data exchange between machines in accordance with the present invention. The network  200  includes a plurality of machines  202 - 208 , each running processes  210 - 216 . Processes, for the purpose of this disclosure, refers to programs. Each machine has its own plurality of clipboards. Each clipboard on a particular machine corresponds to one of the processes running on the machine. Each process writes data to its own corresponding clipboard. For example, machine  202  (Machine  1 ) runs processes A and B  210 . Clipboard  218  corresponds to process A running on machine  202 , so process A writes its data onto clipboard  218 ; clipboard  220  corresponds to process B running on machine  202 , so process B writes its data onto clipboard  220 . In the same manner, machine  204  (Machine  2 ) runs processes A and B  212 . Clipboard  222  corresponds to process A running on machine  204 , so process A writes its data onto clipboard  222 ; clipboard  224  corresponds to process B running on machine  204 , so process B writes its data onto clipboard  224 . The same is true for machines  206  and  208 . Thus, unlike conventional clipboards which are global in nature, the clipboards of the present invention are process-specific as well as machine-specific. 
     FIG. 2B illustrates a second preferred embodiment of a network using the method for data exchange between machines in accordance with the present invention. In this embodiment, the clipboards  218 - 232  are still process-specific and machine-specific, as in the first preferred embodiment, however the clipboards reside on a third party, such as machine  234 . For example, process A running on machine  202  writes data to its corresponding clipboard  218  which resides on machine  234 ; process B running on machine  202  writes data to its corresponding clipboard  220  which also resides on machine  234 . The same is true for the processes running on machines  204 - 208 . Since the clipboards reside on a third party, if one or more of the machines  202 - 208  fails or is otherwise unavailable, the data concerning the processes  210 - 216  running on these machines  202 - 208  are not lost. 
     Although the present invention is described with the location of the clipboards configured as illustrated in the first and second preferred embodiments, one of ordinary skill in the art will understand that other configurations of the clipboard locations may be used without departing from the spirit and scope of the present invention. 
     FIG. 3 illustrates sample contents of example clipboards in the first and second preferred embodiments of the present invention. As described above, clipboard  218  contains data from process A running on machine  202 . In the preferred embodiments, each piece of data is tagged with a time/date stamp. Thus, clipboard  218  contains data stating that process A on machine  202  was executing loop  100  of 1000 at a particular time/date (T/D). Clipboard  220  contains data stating that process B on machine  202  was executing loop  10  of 100 at T/D. Clipboard  230  contains data stating that process A on machine  208  was executing loop  200  of 1000 at T/D. Clipboard  232  contains data stating that process B on machine  208  was executing loop  20  of 100 at T/D. When process A on machine  202  writes the next piece of data onto its clipboard  218 , the old data is overwritten. The same is true for the other processes  210 - 216  writing data to their respective clipboards  220 - 224  as well. 
     In the preferred embodiment, text strings are stored to and retrieved from the clipboards  218 - 232 , however, one of ordinary skill in the art will understand that other data formats may be used without departing from the spirit and scope of the present invention. For example, the use of a binary format with a tag may be used where the type tag informs the receiving machine about the nature of the data. 
     FIG. 4 is a flow chart illustrating the preferred embodiment of the storing of data by a machine in the network onto a clipboard. First, a plurality of clipboards are provided for at least one of the machines where each clipboard correspond to a process that is running on the at least one machine, via step  402 . Then, the at least one machine stores data concerning a process onto the corresponding clipboard, via step  404 . For example, machine  202  is provided with clipboards  218  and  220  which correspond to processes A and B  210  respectively, via step  402 . Machine  202  may then store data concerning process A onto the corresponding clipboard  218  and concerning process B onto the corresponding clipboard  220 , via step  404 . 
     FIG. 5 is a flow chart illustrating the preferred embodiment of the retrieval of information by a machine in the network from a clipboard. First, assume another machine in the network is interested in a particular process running on the at least one machine in the network. The other machine queries the clipboard which corresponds to the process running on the at least one machine for its data, via step  502 . The clipboard answers the query, and the other machine receives the data on the clipboard, via step  504 . The at least one machine and the other machine may be the same machine. For example, assume machine  206  wishes to obtain information concerning process B running on machine  202 . First, machine  206  queries the clipboard  220  which corresponds to process B running on machine  202  for its data, via step  502 . Clipboard  220  answers the query, and machine  206  receives the data on the clipboard  220 , via step  504 . For another example, assume machine  202  wishes to obtain information concerning process B running on itself Machine  202  queries the clipboard  220  which corresponds to process B running on itself for its data, via step  502 . Clipboard  220  answers the query, and machine  202  receives the data on the clipboard  220 , via step  504 . 
     The processes illustrated in FIGS. 4 and 5 apply to both the first and second preferred embodiments of the networks using the method for data exchange between machines in accordance with the present invention. In both preferred embodiments, the locations of the clipboards are predetermined and are known by each machine in the network. 
     A method for a process-specific exchange of data between machines in a computer network has been disclosed. Because the method of the present invention is process-based, machines may obtain data concerning certain processes on certain machines without the problem of the latest data on a process being overwritten by another process. Since the clipboards of the present invention may reside on a third party, if one or more of the machines in the network fail or are otherwise unavailable, the data on their clipboards are not lost. 
     Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.