METHODS AND SYSTEMS FOR PREVENTING
UNNECESSARY FILE TRANSFERS BETWEEN
A SERVER AND A REMOTE NODE
Field of the Invention
This invention relates to data processing systems and methods and more particularly to systems and methods for linking a plurality of data processing systems for communication therebetween.
Background of the Invention Since the early days of computing, data processing systems have been linked to users via communications networks. Initially, a host or mainframe computer was linked to user terminals. With the advent of the personal computer, "intelligent workstations" have been linked to host computers. As more and more computing systems have become personal computer based, personal computers have been linked into Local Area Networks (LAN) which are managed by a server to provide client/server applications. These client/server networks can also be linked to mainframe and other computers.
Traditional LAN-based client/server networks, and most other computer networks, assume a near-ideal operating environment. In particular, LANs assume continuously connected users who are computer literate. Since the LAN connections between computers are hard wired, error-free reliable connections are assumed. Thus, the LAN-based client/server environment allows knowledge-workers and PC professionals to operate in a near ideal environment .
Unfortunately, traditional LAN-based client/server networks poorly serve the needs of important classes of users, referred to herein as
"remote/mobile" users. As used herein, "remote/mobile" means "temporarily and intermittently linked", wherein
temporarily means "lasting for a limited time" and intermittently means "coming and going at intervals, not continuous, or occasional". An example of remote/mobile users is point-of-sale terminals in a chain of, for example, 5,000 retail stores, where each point-of-sale terminal needs to connect to the headquarters' central computer for short periods of time for communication therebetween, rather than continuously. Another example of remote/mobile users is a mobile sales force which typically uses laptop computers and connects with the home office for short periods of time from various locations, such as hotels, customer sites or cars.
Users of remote/mobile computers, such as laptop and notebook computers, point-of-sale systems, personal computers, personal digital assistants and the like are typically "transactional" workers rather than knowledge workers, and are not typically PC literate. They need to link to a central office on a temporary and intermittent basis to obtain information from the central office or to transfer information to the central office. The connections between the remote/mobile node and the data processing server may use switched wire or wireless connections . Accordingly, communications tend to be slow and unreliable .
Traditional LAN-based client/server systems have attempted to meet the needs of remote/mobile users by allowing remote dial-in to the LAN. However, remote dial-in has heretofore worked effectively only for small numbers of remote/mobile users, and has used a LAN-based paradigm which is not amenable to the unique requirements of the remote/mobile user.
A major breakthrough in remote/mobile computing was provided with the introduction of
RemoteWare Versions 1.0-1.4 by XcelleNet, Inc., Atlanta, Georgia, assignee of the present invention.
The RemoteWare systems provided a communication model which was specifically geared to remote/mobile environments One or more RemoteWare servers can be connected to a LAN to control the exchange of information between a central site and hundreds or thousands of remote/mobile computers and their users and applications. The RemoteWare server provides information management, resource management, scheduling, communication services, information monitoring and control services needed by the remote/mobile network
Communications between the server and the remote/mobile nodes are designed to keep connect time at a minimum. Thus, the connection cost is minimized and the time that the transactional worker needs to spend connected to the central system are minimized Moreover, the system is designed to support low bandwidth and unreliable connections.
Accordingly, the RemoteWare software architecture was designed specifically for remote/mobile user access to mission critical enterprise-wide transaction processing client/server systems. However, notwithstanding the vast improvement of the RemoteWare system, there is a continued neeα to further reduce connection time m remote/mo____le networks .
Summary of the Invention The invention prevents unnecessary transfers between a server and a remote/mobile node by preventing file transfers if insufficient storage space is available at the destination, or by inhibiting transfer of an updated version if it is not newer than tne existing f le at the destination, or both By preventing tnese unnecessary file transfers, connection time between the server and remote/mobile noαe is furtner reduced.
In particular, according to the present invention, unnecessary file transfers between a data processing server and a plurality of remote/mobile data processing nodes which are temporarily and intermittently linked to the server for communications therebetween, are prevented. A remote/mobile communications link is established to temporarily connect the server and the selected node for transferring a file therebetween. For the sake of generality, one of the server and node will be referred to as the "source" of the file transfer and the other of the server and node will be referred to as the "destination" of the file transfer.
According to the invention, transfer of the file from the source to the destination is inhibited if insufficient storage space is available at the destination. For example, the destination is directed to indicate to the source, an indication of storage space which is available at the destination for storing the file. In response to receipt of the indication from the destination, transfer of the file to the destination is inhibited if insufficient storage space is available at the destination.
Moreover, if the file being transferred is an updated version of an existing file at the destination, the existing file and the updated version will both have timestamps associated therewith. The timestamp of the existing file will be referred to as the "existing timestamp" , and the timestamp of the updated version will be referred to as the "updated timestamp" .
According to the invention, transfer of the file tc the destination is inhibited if the updated timestamp is the same as or earlier than the existing timestamp. Thus, if the version being transferred is not newer than the version which already exists, the transfer will not take place.
After inhibiting the transfer, due to lack of space or due to lack of newness, a determination is made as to whether other communications are required between the node and the server during the temporary connection. If not, the remote/mobile communications link is deactivated. Accordingly, transfers of new files or updated files are inhibited if there is insufficient space at the destination for the new file or if the updated file or a newer version thereof already exists at the destination. Unnecessary file transfers are thereby prevented and connection time of the remote/mobile network is further reduced.
Brief Description of the Drawings Figure 1 is a block diagram of a known remote/mobile communications system with which the present invention may be used.
Figures 2A - 2B are a flowchart illustrating operations for preventing unnecessary file transfers between a server and a remote/mobile node according to the present invention.
Detailed Description of Preferred Embodiments
The present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout .
Referring now to Figure 1, a remote/mobile communication system in which the present mventicr. may be practiced is illustrated. As shown m Figure 1,
remote/mobile communication system 100 includes a local area network (LAN) 102. Mainframe computer 104, LAN workstations 106, a LAN file server 108 and a LAN database 112 are provided and interconnected in a manner well known to those having skill in the art. In order to provide remote/mobile communications, one or more remote/mobile servers 110 are attached to the LAN 102. Each remote/mobile server may be a personal computer running in the OS/2 operating environment and which runs RemoteWare Versions 1.0-1.4 marketed by the assignee of the present invention. RemoteWare Versions 1.0-1.4 act as the control point for information management, providing the resource management, scheduling, communication services, information monitoring and control services needed by the remote/mobile network. RemoteWare Version 1.4 is described in a manual entitled "i.e-τ.otel-are SERVER Opera ti ons Guide, Sof tware Rel ease 1 . 4 " , Copyright 1992, XcelleNet, Inc. , the disclosure of which is hereby incorporated herein by reference. Remote/mobile servers 110 are linked to a remote/mobile communications network 120. Remote/mobile communications network 120 includes various wire line connections such as switched analog, ISDN, and X.25 or wireless connections such as switched and digital cellular, satellite and radio frequency. Although leased lines and other permanent communication lines may also be used, these are not preferred due tc their high cost. A large number (typically hundreds or thousands) of remote/mobile data processing nodes 116a- 116f are connected to remote/mobile communications network 120. Each remote/mobile data processing node, also referred to herein as a "node", includes a data processing unit which is temporarily and intermittently linked to server 110. Nodes 116 may include laptop computers 116a, personal computers 116b, Macintosh
computers 116c, point-of-sale systems 116d, pen-based systems 116e and other remote LANs 116f. It will be understood by those having skill in the art that remote/mobile data processing nodes 116 may include any microprocessor driven units such as cellular telephones, personal digital assistants and other workstations and terminals. Each node 116 preferably runs a node software program m oackground, and which operates m conjunction with the remote/mobile server 110. The node software initiates or responds to communications sessions, supports interactive remote console sessions, relays node status information to the server 110, and relays command line level instructions to the node operating system. An example of node software is RemoteWare Node Version 1.4, marketed by the assignee of the present application. RemoteWare Node Version 1.4 is described m a publication entitled "__e-r.ote.Vare SERVER Setup Guide , Sof tware Rel ease 1 . 4 " , Copyright 1992, XcelleNet, Inc., the disclosure of which is hereby incorporated herein by reference. As already described, the remote/mobile communication system is designed to reduce connect time. By reducing connect time, the costs of the physical network, such as a cellular phone networκ or a long distance phone line network, are minimized.
Moreover, the amount of time that a node (and an end user operating the node) needs to be on line is reduced. Finally, error free connections are provided, notwithstanding the inherent unreliability cf the communications links.
Operations for preventing unnecessary file transfers between a server and a remote/mobile node according to the present invention will now be described. It will be understood that these opera-ions are typically performed by stored programs a_ the server or a computer connected thereto, and at the nodes. For purposes of generalization, tne uerrn
"source" will be used to refer to the entity which is transferring the file, or the file which exists at the transferring entity, and the term "destination" will be used to refer to the entity which receives the file, or the file which exists at the receiving entity.
According to the invention, two related aspects are used to prevent unnecessary file transfers between a server and a remote/mobile node. The first aspect prevents unnecessary file transfer when insufficient storage space is available at the destination to store the file. For example, in a remote/mobile environment, it is often possible for a user of a remote node to unknowingly fill the storage capacity, such as the hard drive capacity, of the remote/mobile node. The user of the remote/mobile node will typically not be aware of the size of the file which is being transferred. Moreover, although less likely, it is also possible for a file transfer from a remote node to a server to exceed the storage space which is available at the server. In a conventional
LAN environment, a transfer is typically initiated and then aborted in midstream if storage space capacity is exceeded. In the remote/mobile environment, however, an aborted transfer consumes valuable connection time. According to the invention, a file transfer does not take place until it is first verified that sufficient storage space is available at the destination. If insufficient storage space is available at the destination, the transfer is inhibited. According to another aspect of the invention for preventing unnecessary file transfers between a server and a remote/mobile node, the remote/mobile computing environment is often used to provide updates of reports, memoranda, software applications or other files from the server to a remote/mobile node.
Alternatively, the remote/mobile node may provide an updated report, memo, software application cr other
files to the server Since the remote/mobile node is only temporarily and intermittently connected to the server, either the remote/mobile node or the server may obtain updated files from other sources. Accordingly, transfer of an updated version thereafter may be unnecessary. Moreover, transfer of the supposedly updated version may actually be harmful f the transferred file overwrites a version of the file which s even more recently updated. According to the invention, prior to transfer of a file which includes a timestamp associated therewith, the updated timestamp is compared to the existing timestamp Transfer of the file to the destination is inhibited if the updated timestamp is equal to (same as) or earlier than the existing timestamp.
The above-described storage space checking and timestamp checking operations may be used independently in order to prevent unnecessary file transfers between a server and a remote/mobile node.
However, preferably, they are used together to prevent unnecessary file transfers between a server and a remote/mobile node.
Referring now to Figures 2A - 2Bp, detailed operations for preventing unnecessary file transfers between a server and a remote node according to the present invention will now be described It will be understood by those having skill m the art that these operations are preferably implemented by a stored program which executes on both the server and on each of the remote nodes
As shown in Block 202, a determination is first made as to whether a file transfer is required File transfers may be required m a remote/mobile communication system for various reasons, including but not limited to report distribution, electronic software distribution and database queries If a file transfer
ιs required, then at Block 204 a remote/mobile link between the node and server is established. The establishment of remote/mobile link between the node and the server is known to those having skill m the art and need not be described further herein. A preferred system for establishing a remote/mobile link is XcelleNet RemoteWare. The remote/mobile link may be established for the sole purpose of file transfer, or file transfer operations may be combined with other communications.
Referring now to Block 206, the destination is directed to indicate to the source an amount of storage space which is available at the destination for storing the file. For example, a CHECKDISK command may be sent from the source to the destination.
Referring to Block 208, the destination provides an indication as to whether sufficient storage space is available for storage of the file. In particular, the CHECKDISK command issued from the source to the destination may command the destination to indicate the number of megabytes of disk space which are available at the destination. Alternatively, a command may be issued to indicate the percentage of disk space which is unused. As yet another alternative, a command may be issued to the destination for the destination to indicate whether the available storage space exceeds a particular threshold, for example if the storage space is more than 90% full . The destination responds at Block 208 with an appropriate reply.
In one embodiment of the invention, tne source applies a "CHECKDISK" command at Block 206 and the destination returns a "Node Disk Full" message at Block 208 if the node' s default drive is more than 90% full. If the "Node Disk Full" message s received, the transfer will be inhibited.
Referring again to Block 208, f the destination disk is full, then an alarm (Block 212 ^ may be set at either the source, destination, or both. The alarm may be a message to the user of the node, the administrator of the server, or both, in the form of an audible alarm or any other known alarm, such as an error message.
Referring again to Block 208, f the disk is not indicated as being full, then a check is made at Block 214, as to whether the file already exists at the destination. If the file exists at the destination, then its timestamp is compared with the timestamp of the source file at Block 216. It will be understood that a timestamp may include a date and time or only a date, and that the timestamp comparison may compare only the date, or both the date and time. If the destination timestamp is the same as or newer than the source timestamp, then the file is not sent to the destination. If the destination timestamp is older than the source timestamp, then the file is sent to the destination at Block 220.
In a particular embodiment of the present invention, a dialog box may be provided at the server to allow entry of a server file name and path and the node file name and path for the files to be compared. A CHECK IF NEWER command is issued by the server at Block 216. A value of TRUE is returned by tne node f the node file is newer than the server file, at BIOCK 218. Similar operations may be performed for transfers from the node to the server.
Referring now to Block 222, a test is made as to whether other remote/mobile communication is required. Other remote/mobile communication may be required to transfer other files or for other reasons having to do with the session which is taking place between the server and the remote/mobile node. If other communication is reσuired, then at EIOC 224 the
other communication is performed. If other communication is not required, then at Block 226, the remote/mobile link is deactivated. Accordingly, unnecessary file transfers between the server and remote/mobile nodes are prevented.
In the drawings and specification, there have been disclosed typical preferred embodiments of the invention and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being set forth in the following claims.