Patent Publication Number: US-6212160-B1

Title: Automated selection of a protocol by a communicating entity to match the protocol of a communications network

Description:
TECHNICIAN FIELD 
     This invention relates to communicating entities and their interfaces with communications networks. 
     BACKGROUND OF THE INVENTION 
     Different communications networks may use different communications protocols. For example, some intranets use the Internet transmission control protocol (TCP), while other intranets use the Novell internetwork packet exchange (IPX)/sequenced packet exchange (SPX) protocol. The different protocols are incompatible; therefore, any communications entity—whether hardware or software—that is intended for use with a network must be configured to support the protocol of that network. However, the knowledge of which protocol needs to be supported and the skill to configure the communications entity are beyond those of many users. Therefore, adapting a communications entity to work on a network often requires the services of a technician. This is costly and causes delays. 
     SUMMARY OF THE INVENTION 
     This invention is directed to solving these and other problems and disadvantages of the prior art. According to one aspect of the invention, a communications entity is configured to communicate using any of a plurality of communications protocols, and it initially attempts to communicate by using a preferred one of the protocols, and attempts to communicate by using another one of the protocols if the initial attempt fails, whereby the entity is automatically adapted to communicate on any communications network that supports any of the protocols. Significantly, the adaptation is automatic, made without user or other human assistance. Preferably, a successful attempt establishes a first communications channel and, if needed, the entity responds to a successful attempt by again attempting to communicate by using the protocol of the successful attempt, in order to establish a second communications channel. Thus, the entity can have a plurality of channels in existence at the same time. Significantly, different ones of the plurality of channels may employ different ones of the plurality of protocols. 
     According to another aspect of the invention, a method of communicating on a network that supports at least one of a plurality of communications protocols begins by first attempting to communicate on the network by using a preferred one of the plurality of protocols. Communicating in the preferred protocol continues if this first attempt succeeds. But in response to failure of this first attempt, communicating on the network is further attempted one or more times by using another one (or more) of the plurality of protocols. Again, communicating in the other protocol continues if a further attempt succeeds, but in response to failure of the further attempts, attempts to communicate on the network are abandoned. Preferably, a successful first or a further attempt establishes a first communications channel and, in response to the success, a second communications channel is established, if need be, by thirdly attempting to communicate on the network by using the protocol of the previous successful attempt. If the third attempt fails, the first attempt and—if needed—the further attempts are repeated in an effort to establish the second channel. Aside from the method, an apparatus that performs the method and a computer readable medium containing software which, when executed in a computer, causes the computer to perform the method also fall within this aspect of the invention. 
     According to yet another aspect of the invention, the above-characterized method begins with initialization of a server with information identifying the preferred and the other protocols, and the server seeding each client of the server with the initialization information, whereupon the method steps are performed by each of the seeded clients when attempting to communicate with the server. The server then communicates with each client across the network by using whichever of the protocols the client initiated the communication in. 
     These and other advantages and features of the invention will become more apparent from the following detailed description of an illustrative embodiment of the invention considered together with the drawing. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     FIG. 1 is a block diagram of a communications system that includes an illustrative embodiment of the invention; 
     FIG. 2 is a functional flow diagram of selected initialization operations of access server software of an access server of the system of FIG. 1; and 
     FIG. 3 is a functional flow diagram of selected operations of a VM client program of a terminal of the system of FIG.  1 . 
    
    
     DETAILED DESCRIPTION 
     FIG. 1 shows an illustrative communications system that comprises a messaging system  100 , such as the Octel Serenade or Aria voice messaging system, and an access server  201 , which functions as an access gateway to messaging system  100 , interconnected by a TCP network  102  with a plurality of communications endpoints represented by a terminal  107 . Also shown are an IPX/SPX network  103  that serves a plurality of communications endpoints represented by a terminal  108 , and a network  104  which supports both the TCP protocol and the IPX/SPX protocol and serves a plurality of communications endpoints represented by a terminal  109 . To enable terminals  107 - 109  to communicate with each other and with messaging system  100 , network  102  is interconnected with networks  103  and  104  via routers  105  and  106 , respectively. 
     Access server  201  stores access server software  122  in its memory  111  for execution by its processor  110 . Access server software  122  is illustratively the conventional Octel Access Server modified as shown in FIG.  2 . As a part of installation of software  122  on access server  101 , at step  200 , processor  110  starts execution of software  122  from memory  111 . Processor  110  queries an administrator of access server  101  (the installer of software  122 ) for the identity of a first protocol supported by access server  101 , at step  205 . Upon receiving the first protocol ID, processor  110  stores it in memory  111 , at step  210 , and then queries the administrator for the identity of a second supported protocol, at step  215 . Upon receiving the second protocol ID, processor  110  stores it in memory  111 , at step  220 ; if a second protocol is not supported, processor  110  receives a null identifier. Optionally, access server  101  may support more than two protocols, and therefore may query the administrator for identifiers of these additional protocols. Having received and stored the identities of the supported protocols, processor  110  queries the administrator for the identity of the preferred one of the supported protocols, at step  225 . Upon receiving the preferred protocol&#39;s ID, processor  110  marks that stored ID in memory  111  as the preferred protocol, at step  230 . Processor  110  then “seeds” (populates) data fields of an original  120  of a corresponding client program—illustratively the Octel Visual Messenger—with the information that it obtained at steps  205 - 230 , at step  235 , and ends initialization, at step  240 . 
     Following step  235 , copies  121  of the seeded original  120  of the VM client program are distributed to terminals  107 - 109  in any desired conventional manner—for example, directly via CD-ROMs or diskettes, or indirectly by mounting seeded original  120  of the program on a server from which copies  121  thereof may be downloaded and installed on terminals  107 - 109 . Distributed copies  121  are stored in the terminal&#39;s memories for execution by the terminals&#39; processors, in a conventional manner. Then, when a user of a terminal  107 - 109  wishes to communicate with messaging system  100 , the user selects an icon that invokes execution of that terminal&#39;s VM client program  121 . VM client program  121  communicates with access server  101  on behalf of the corresponding terminal, and access server  101  in turn communicates with messaging system  100  on the terminal&#39;s behalf. Access server  101  communicates with a terminal  107 - 109  in whatever protocol the terminal used to initiate the communication. 
     FIG. 3 shows how a VM client program  121  effects communications with access server  101 . When a terminal  107 - 109  starts to execute its copy of client program  121 , at step  300 , it determines—from the information with which client program  121  was seeded by access server software  122 —which supported protocol is marked as the preferred protocol, at step  305 , and firstly attempts to communicate on network  102  by using that preferred protocol, in order to establish a communications channel to the access server  101 , at step  310 . For example, if the TCP protocol is marked as the preferred protocol, terminal  107 - 109  would use the TCP protocol to attempt to establish a channel to access server  101 , and terminals  107  and  109  would succeed but terminal  108  would fail. 
     If the attempt at communicating, i.e., the channel establishment, succeeded, program execution proceeds to step  340  where it continues to communicate in the preferred protocol. If channel establishment failed, as determined at step  315 , terminal  107 - 109  determines which other protocol is indicated to be supported, at step  320 , and then tries to communicate on network  102  by using this protocol in order to establish the communications channel, at step  325 . For example, if the other supported protocol is IPX/SPX, terminal  107 - 109  would use this protocol, and the attempt of terminal  108  would succeed. If the attempt failed, as determined at step  330 , terminal  107 - 109  informs its user of the failure, at step  335 , and then ends execution of client program  121 . If the attempt succeeded, program execution proceeds to step  340 , where it continues to communicate by using the successful protocol. 
     At step  340 , terminal  107 - 109  determines whether a second communications channel is needed. For example, the first channel may be used for a digital graphical user interface to message system  100 , and now the user of the corresponding terminal may want to either retrieve or view a voice or fax message from message system  100 ; this would require a second channel. If a second channel is not needed, terminal  107 - 109  proceeds conventionally, at step  360 . If a second channel is needed, terminal  107 - 109  attempts to communicate on network  102  in order to establish a second channel to the access server  101 , by using the last-used protocol whose use succeeded in establishing a channel to that terminal, at step  345 . If the attempt succeeded, as determined at step  350 , terminal  107 - 109  returns to step  340  to determine if yet another channel is needed. If the attempt failed, terminal  107 - 109  returns to steps  310  et seq. to try and establish another channel. 
     In summary, client applications can effect logical connections (channels) between client terminals and a server by using a variety of network protocols. When a client wishes to effect a logical connection between a terminal and the server, it tries to use each of these protocols in turn (starting with the preferred protocol). The first protocol to succeed is used for all subsequent connections, unless a logical connection attempt fails. In this case, the client returns to connecting using the other protocols (again starting with the preferred protocol), while keeping existing connections open. This means that one client terminal might be connected to the server using multiple protocols, and be using them all simultaneously for dependent or independent activities. For each protocol, it is possible for connection attempts to fail but for existing logical connections to continue to function normally. 
     Of course, various changes and modifications to the illustrative embodiment described above will be apparent to those skilled in the art. For example, the invention is not limited to use with two protocols but may be used in any complicated network environments that use multiple different protocols. Such changes and modifications can be made without departing from the spirit and the scope of the invention and without diminishing its attendant advantages. It is therefore intended that such changes and modifications be covered by the following claims.