the technology makes use of a shortest path algorithm . there are several variants of this algorithm , but the most known is probably dijkstra &# 39 ; s algorithm [ 1 ]. this algorithm determines the shortest path from a start node to all other nodes in the network . the different shortest path algorithms differ in complexity , but this is not important for the purpose of the method described here . the shortest path algorithm is used to calculate the shortest path from a distribution node , hereafter exemplified as an omc in a telecommunication network , to at least each node to which corrected or new software shall be distributed . these nodes are included in a distribution list . note that this list also may include one or more nodes to which the new software not is to be distributed . however , the inclusion of such nodes assumes that they are centrally localized relative to the other nodes , and that it is stated that the inclusion implies a more effective software distribution when utilizing the method according to the present invention . generally , though , only the nodes to which corrected or new software is to be distributed will be included in the distribution list . then the method described in detail below is used to optimize distribution from the omc to each node . the distribution itself is executed using some file transfer mechanism , e . g . the file transfer protocol [ 2 ]. in order to calculate the shortest paths from the omc to every network device that are included in the distribution , what is referred to as a distribution graph is constructed . this distribution graph contains the omc and the nodes that are included in the distribution . the nodes are spanned out by the logical transfer paths that are set up between the nodes , which are referred to as edges in the graph . in addition , the cost of each edge is included in the graph . fig2 illustrates a typical distribution graph . it should be noted that the actual transfer of data from device omc to c , might physically go through both devices i 1 and i 2 , but these nodes are excluded from the distribution graph . this is because these nodes are not part of the distribution , and therefore not relevant in the shortest path calculation . the logical cost of transferring data from omc to device c is the sum of all intermediate physical transmission paths , i . e . in this specific case the sum of transferring from omc to i 1 , from i 1 to i 2 , and from i 2 to c . what measure to use for the cost between two neighboring devices , depends on the network at hand . however , using the bandwidth ( in bits per second ) times the delay ( in seconds ) should be widely applicable . the measure that is used is not important for the purpose of this method , as long as a cost is associated with every logical path in the network . if the cost is impossible to determine , use of cost per unit ( i . e . 1 ) to minimize the number of hops may be useful . upon completion of this step , you should have a distribution graph consisting of the devices to which software should be distributed , and the cost of transferring data between each neighboring node , commonly referred to as edge is cost . fig2 illustrates such a distribution network . note that only two of the participating devices have “ direct ” paths to the omc . with “ direct ”, it is understood that there may be devices not participating in the distribution between the omc and the “ directly ” connected device . the distribution graph is used as input to this step , which involves calculating the shortest path from the omc to every device that is included in the distribution . as mentioned earlier the calculation is performed using a shortest path algorithm . the recommended algorithm is diikstra &# 39 ; s [ 1 ], which will produce the shortest path to every node in the distribution network starting from the omc . the detailed working of dijkstra &# 39 ; s algorithm is not included here , but a good description may be found in [ 2 ]. the output of the algorithm is a set of paths , where each paths starts with the omc and ends with one of the devices in the network . for instance , in fig2 , the following is the shortest path : omc , c , d , g . this means that if software is to be distributed from the omc to device g , it should first be transferred from omc to c , then from c to d , and finally from d to g . it should be noted that routing in the internet uses the open shortest path first ( ospf ) protocol , which uses an edge cost between routers in the network in order to determine the route between source and destination hosts . however , ospf routing operates only between a source and destination host , and hence it cannot be used to optimize transfer to a set of hosts . on the other hand , ospf will help us optimize the transmission between two neighboring devices in the logical network that are connected through an intermediate physical network . the next step is to identify overlapping paths from the shortest path calculation . two paths are overlapping if they start at the same node , and go through exactly the same path up to some point . this means that one of the paths overlaps parts of the other . in addition , a path always consists of two or more nodes , and in our case , all paths start at the same node , i . e . the omc . in other words , two paths are overlapping if they have a common root path . the following example illustrates the concept of overlapping paths , given the shortest paths as output from the previous step . the nodes and paths used may be identified in fig2 . these paths are overlapping in terms of the above definition . this means that they all start at the same node , which in this case is the omc . in addition , all four paths go through exactly the same nodes , in the same order up to a certain point , where they separate , i . e . omc and c . the output of this step is a grouping of paths into sets of overlapping paths . the grouping must contain a root path , which is a path that all the other paths are overlapping . since the distribution graph only contains nodes that are included in the distribution , the root paths will only contain two nodes . in the example above omc , c is a root path . according to the present invention , the following procedure may be used to build the groups of overlapping paths : create a new set of paths for each root path , or in other words , create a new set of paths for each path that contains only two nodes . when there are no more root paths left , traverse through the rest of the paths and group each path together with their root path . in other words , for each remaining path , check the two first nodes in the path and place the path into the group that has the same two first nodes . in the example above , omc , c is a root path , and the three following paths are grouped together with this path . they all belong to the same group , because of the common two first nodes omc and c . according to the procedure disclosed above , the number of sets of paths is equal to the number of logical links leaving the omc . the next step is to order each set of overlapping paths identified in the previous step . the ordering is simple and based on the number of nodes in the path . the path with the least number of nodes , which is always the root path that has only two nodes , gets the first order . the last order is given to the path having the largest number of nodes . if more than one path has the same number of nodes , the ordering of these nodes does not affect the operation of this method . the execution of the software distribution follows the grouping and ordering of overlapping paths . the execution of the distribution is done per group , which means that is software may be distributed to different groups in parallel . within each group , the distribution along overlapping paths must be performed sequentially according to the ordering of group , except for the paths having the same length , which might be distributed in parallel . the latter is because ; the distribution is executed in a breath - first manner . however , it is still possible to distribute the software to several nodes that are one hop away in parallel . given the example in fig2 , this means that it is possible to distribute software from c to both d and f in parallel , while g has to wait for the software to be installed on d . the execution starts with the path having the first order and proceeds until the path with the final order is reached . when software distribution is executed along a path , all nodes except the last node in this path are removed from all other paths . the ordering is not changed during this operation , and the execution continues with the next path in order until the final path in the order is reached . given the example from the section “ identify overlapping paths ”, the execution will start with distribution from omc to c . then the omc node will be removed from all paths , leaving the following paths to be executed : at this point , c to d and c to f may be executed in parallel . then , c is removed from the latter path . finally , software is distributed from d to g , which completes the distribution . as described previously , the actual file transfer between two neighboring nodes in the distribution graph may be implemented using internet ftp . however , there is a number of less frequently used file transfer protocols that may also be employed , e . g . the osi ftam protocol and vendor proprietary protocols . the implementation with ftp assumes that there is both an ftp client and server running on each network device in the distribution list . on the omc , at least an ftp client needs to be installed . in addition , there has to be some mechanism to remotely initiate an ftp transfer between to neighboring nodes in the network from the omc . a convenient and widely used mechanism is the telnet protocol , which enables logging in from the omc to a network device , and initiating a transfer to another device using the ftp client . this puts additional requirements on each network device in the distribution list to have a telnet server running , and a telnet client to be installed on the omc . the execution starts with the root path . the ftp client on the omc is used to transfer the software ( using the put command ) to the ftp server on the first network device , which is device c in the example above . the next use - case is to transfer software between two devices in the network , e . g . between c and d in the example above . this is executed from the omc by “ telneting ” into node c , and initiating an ftp transfer from c to d ( again using the put command ). in both cases , nodes c and d must have an ftp server running . fig3 presents an example embodiment the distribution starts by receiving the nodes where software shall be installed , i . e . nodes c , d , e , f , and g in this example . the next step in the method is to construct the distribution graph . this requires knowledge about the structure of the physical nodes in the network . in addition , the cost of transferring data between two adjacent nodes in the network must be known . how to construct the graph is very dependent on which type of network technology is being used through - out the network . in this example , we assume an ip - based network running the ospf routing protocol [ 4 ]. ospf is a link - state protocol that advertises all of its neighbors . based on this information , every router in the network builds a directed graph of the entire network ( in fact using dijkstra &# 39 ; s algorithm ). from the ospf protocol , we may induce the distribution graph by retrieving the shortest path between every pair of nodes including the omc . all intermediate nodes in the resulting graph are removed , while the edge costs between two adjacent nodes is preserved . the edges of the distribution graph are shown as output from the “ construct distribution graph ” step in fig3 . in practice , the distribution graph may be constructed by using the traceroute utility found on most unix systems , but similar utilities may also be found on other platforms . traceroute makes use of the internet control message protocol ( icmp ) [ 5 ]. fig4 illustrates the traceroute command being issued from the omc towards every node that takes part in the distribution . an example output from the traceroute command is given below . the example above shows that there is a link between omc and c , and that the shortest link goes through the intermediate nodes i 1 and i 2 . the round - trip delay given by the traceroute command may also be used as edge cost . based on the output of this command , the following edges are added to the distribution graph : omc to c , c to d , and d to g . based on the output from the rest of the traceroute commands , the entire distribution graph may be constructed . please note that intermediate nodes are not included in the graph . again , it is important to note that the construction of the distribution graph is specific to each network technology , and will be different for a network that uses static routing . what is important is that the output of this step is a distribution graph that contains only the nodes involved in the distribution , and the cost of transferring data between to adjacent nodes in the graph . note that the distribution graph in packet - based networks may vary in time as the load over the communication links varies . thus , the construction of the distribution graph should take place immediately be - fore the actual distribution . the next step is to use the distribution graph to calculate the shortest paths from the omc to every node in the distribution graph . this is an application of dijkastra &# 39 ; s algorithm on the edges of the distribution graph . every edge also has an associated cost that is used by the algorithm , but this is not shown in the figure . the resulting set of shortest paths using the omc as a source node is shown as output from the “ calculate shortest path ” step . the next step is to identify overlapping paths from the previous step , i . e . paths that have the same root path . in this case , there are two groups of overlapping paths , i . e . the group starting with the root path { omc , c } and the group consisting only of the root path { omc , e }. the grouping into sets of overlapping paths is shown as output from the “ identify overlapping paths ” step . after the overlapping paths have been identified , they must be ordered . this is a simple ordering of the paths based on the length of each path ( i . e . the number of nodes ). the ordering is performed per group of paths , and each resulting ordered group should start with the root path . the output of the “ order overlapping paths ” step is shown in fig3 . the final step is to execute the distribution of software . the two groups of ordered overlapping paths is the input . each grouping is executed in parallel , which means that an ftp transfer from omc to c and to e is started in parallel . when the transfer to node e is completed , there are no more paths in this grouping , and hence the execution ends . however , the execution of the other grouping continues with a transfer from c to d and from c to f in parallel . then , finally , a transfer of the software from d to g is executed . fig5 presents a sequence chart that includes the messages required to perform the distribution described textually above . in the figure , the omc and the network devices that take part in this distribution is shown at the top . a “ telnet ” message means remote logging in from the omc to a network device . an “ ftp : put swp ” message means that an ftp client is started locally , and that the put command is used to transfer the sw package ( swp ) to the remote location . an advantage with the present invention is that it will optimize the transfer of software to a group of network devices . this will enable the operator to distribute software to a large number of network devices with reduced bandwidth consumption compared to the current solution . the effect on operator business is that more customer traffic may flow through the network also during maintenance periods , i . e . less bandwidth has to be allocated for management traffic . given the example in fig1 , where the current solution is shown using filled circles and the optimized method is shown using circles with no fill . this example demonstrates a 75 % decrease in bandwidth consumption . clearly , the amount of bandwidth saved using this method is highly dependent on the number of overlapping paths . however , in a typical telecommunication network , the number of overlapping paths will be quite high , e . g . a gsm base station controller ( bsc ) has more than a hundred directly connected radio base stations ( rbs ). even if the bsc shall not have the same software as the rbss , nevertheless , it may be included in the distribution list for a maximum utilization of the method according to the present invention . since the bandwidth requirements are reduced , the operator will also be able to distribute software to more network devices at the same time . currently , when software is distributed to a large number of network devices , this has to be done at least partly sequentially . this is because a parallel distribution to all devices would place too much stress on the management network . another advantage of the present invention is that the time consumption for the entire operation will be slightly smaller , since the file transfer is not performed directly from the omc to every device . instead , the file transfer sessions are set up between neighboring nodes in the network . the method of the present invention will automatically distribute the software in sequential order , or , in case of non - overlapping paths , also in parallel . however , to the operator , the distribution will appear to be parallel to all nodes included in the distribution list . the technology described is intended for software distribution to network devices , which may be seen as special - purpose computers for use in communication networks . however , there is nothing stopping it from being applied for software distribution to general - purpose computers . in fact , network elements that realize application functions like unified messaging in next generation networks will be general - purpose computers . in addition , one might imagine that even the user terminals in future telecommunication networks like the mss in umts will have software upgrades automatically executed from the network . consequently , other implementations and variations other than the ones described here may be utilized without de - parting from the scope of the invention as defined in the following claims . e . w . dijkstra . “ a note on two problems in connection with graphs .” numerische mathematik , 1 - 269 - 271 , 1959 t . h . cormen , c . e . leiserson , r . l . rivest . “ introduction to algorithms .” the mit press , 1989 j . postel , j . k . reynolds . rfc0959 file transfer protocol , updated by rfc2228 and rfc2640 , october 1985