GB2482250A - Network-based collaboration through application gateways allocated based on server- and client- teminal locations - Google Patents

Network-based collaboration through application gateways allocated based on server- and client- teminal locations Download PDF

Info

Publication number
GB2482250A
GB2482250A GB1113666.0A GB201113666A GB2482250A GB 2482250 A GB2482250 A GB 2482250A GB 201113666 A GB201113666 A GB 201113666A GB 2482250 A GB2482250 A GB 2482250A
Authority
GB
United Kingdom
Prior art keywords
collaboration
network
data
client
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB1113666.0A
Other versions
GB2482250B (en
GB201113666D0 (en
Inventor
Stephen Behan
Lykourgos Petropoulakis
Chris Reid
Xiaofeng Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Appshare Ltd
Original Assignee
Appshare Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Appshare Ltd filed Critical Appshare Ltd
Priority to GB1113666.0A priority Critical patent/GB2482250B/en
Publication of GB201113666D0 publication Critical patent/GB201113666D0/en
Publication of GB2482250A publication Critical patent/GB2482250A/en
Application granted granted Critical
Publication of GB2482250B publication Critical patent/GB2482250B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1822Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1877Measures taken prior to transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level

Abstract

A method and system for establishing a network-based collaboration is described. The method involves the provision of a collaboration establishment control module (CECM,11), a server-terminal (9) acting as a data source for the collaboration session, a plurality of client-terminals (10) to allow a user access for participating in thecollaboration session and one or more application gateways (8a-8d), the application gateways being configured to relay data between network components during the collaboration session. Both the server-terminal and the client-terminals are allocated an application gateway to which it transmits and receives data during the collaboration session, the allocation of the application gateways being determined by the location (5a-5d) of the serverâ terminal and client terminals within the network. Also described is a method of data path optimisation for the application gateways employed within the network-based collaboration. A particular application of the present invention is found within the field of Wide Area Network (WAN)-based collaborations.

Description

1 Method and System for Network-based Collaboration 3 The present invention relates to data communication and in particular to a method and 4 system for establishing a network-based collaboration. Also described is a method of data path optimisation employed within an established network-based collaboration. A 6 particular application of the present invention is found within the field of Wide Area 7 Network (WAN)-based collaborations.
9 The term collaboration relates to the sharing of computer resources, and in particular desktop computer resources, across a network.
12 Recently, collaboration has become more widely employed across networks due to the 13 cost and time savings achieved by avoiding the need for participants to travel between 14 sites to attend meetings in person. A number of collaboration systems are commercially available, for example the system marketed and licensed by: 16 WebEx Communications, Inc. under the trade mark WebEx; 17 Citrix Systems, Inc. under the trade mark GoToMeeting; 18 Microsoft Corporation under the trade mark Shared View; 19 IBM Corporation under the trade mark Sametime; and Adobe Systems, Inc. under the trade mark Adobe Acrobat Connect Professional.
1 A schematic representation of these systems is provided in Figure 1 and generally 2 depicted by reference numeral 1. These systems are typically based on the use of a 3 central server 2 and any individual wishing to participate in the collaboration session must 4 establish a connection 3 via a computer terminal to the central server 2. The connections 3 to the central server 2 are typically achieved via the internet 4. Even though many 6 participants may be located within the same site or building 5, if not the same room, one 7 connection 3 is required per computer terminal. In other words, for n computer terminals, 8 the central server 2 must maintain n connections 3.
This approach is known to work well for a small number of participants, but is limited in its 11 scalability and in many cases may not allow for use by hundreds of participants (or greater 12 numbers). In practice, a bottleneck for such a collaboration system 1 exists: any site or 13 building 5 will have an upper bound to its available bandwidth to the outside world. Thus, 14 if the number of participants in a given site 5 is large, then the connection to the outside world becomes choked and the collaboration system 1 becomes, for all intents and 16 purposes, impracticable.
18 Internet protocol (IP) multicasting is a network-based communication technique that allows 19 for a server to transmit information to multiple computer terminals over an IP infrastructure e.g. streaming media and Internet television applications. It readily scales to a larger 21 receiver population because it does not require any prior knowledge of whom, or how 22 many computer terminals, are receiving the transmitted information. Typically, an IP 23 multicasting system requires the server to send datagrams only once into the network 24 infrastructure, even if the datagrams need to be delivered to a large number of computer terminals. The nodes in the network take care of replicating the datagrams so that they 26 reach the multiple computer terminals. The most common low-level protocol to employ 27 multicast addressing is user datagram protocol (UDP). By its nature, UDP is bandwidth 28 efficient, however it is not reliable since information is often lost or delivered out of order.
The problem of network congestion has previously been recognised in the field of internet 31 protocol (IP) multicasting. For example, US Patent Publication US2006/0029092 Al in the 32 name Microsoft Corporation describes a method of transmission optimisation for an 33 application-level multicast. In the described method, for each member of a video 34 conference, a multicast tree is generated that represents a data communication configuration of the data source and the other members of the video conference (i.e. data 1 recipients that receive video and audio data from the data source). An end-to-end 2 transmission delay from each data source to each of the respective data recipients is then 3 determined, as well as the available bandwidth between each data source and the 4 respective data recipients. One or more of the multicast trees, each corresponding to a data source, are then refined according to the end-to-end transmission delay and available 6 bandwidth for a particular data source so as to optimise the data communication 7 configuration of the data source in the video conference.
9 The described method of US Patent Publication No. US200610029092 Al employs a number of features which would limit its capabilities if employed within a collaboration 11 system. In the first instance, the described method is limited in its scalability. It requires 12 each member of the application-level multicast to determine bandwidth and delay with all 13 other members. Since this is a full-mesh configuration process, the complexity (and thus 14 the effort) is 1/2 n (n + 1), where n is the number of members. This process is repeated for each additional member and so the method quickly becomes unmanageable when n is 16 large. Any collaboration system based on the described method would spend more time 17 and bandwidth on testing connections than actually performing useful data communication.
19 A second fundamental problem with incorporating the described method of U5200610029092 Al into a collaboration system relates to the fact that the described 21 method has no mechanism through which selected data can be sent directly between 22 individual members of the application-level multicast. Information transmitted by any 23 particular member is sent to all the other members of the application-level multicast.
US Patent Publication No. U5200710086366 Al also in the name Microsoft Corporation 26 describes an alternative system and method for implementing an application-level routing 27 protocol for multiparty audio-video conferencing. Here application-level, per-stream 28 routing techniques separately control audio data and video data between conference 29 members hosted on the network. Different audio application-level multicast (ALM) trees are generated by each member, which are dynamically updated according to shortest- 31 path-first selection of data delivery paths, and these paths are employed to send audio 32 data to the other members of the video conference. Likewise, different video ALM trees 33 are generated by each member, which are dynamically updated according to broadest- 34 path-first selection of data delivery paths, and these paths are employed to send video data to the other members of the video conference. The separate audio and video ALM 1 trees generated for each member utilise IP multicast in segments of the network in which 2 IP multicast is enabled.
4 As with US2006/0029092 Al, the described protocol of US2007/0086366 Al comprises a number of inherent features which would limit its utility within a collaboration system. In 6 the first instance, the described protocol employs IP multicast where this is available, and 7 in such an implementation it is not capable of delivering reliable data. The issue of data 8 reliability is further compromised by the dynamic nature of the protocol; the network 9 constantly reorganises which, in practice, leads to an unstable system. The instability of the system is exacerbated by the growth of the number of members wishing to participate 11 in the multiparty audio-video conference. Finally, the described protocol has no 12 mechanism by which selected data can be sent directly between selected individual 13 members. Any audio or visual data sent by a particular member is transmitted to every 14 other member included within the associated audio and video ALM trees.
16 US Patent No. 7,315,516 in the name Ghizi Soft Co Limited teaches of a method for 17 generating relay paths amongst a plurality of participants in an application-level multicast, 18 so as to allow for the transmission of predetermined data to the participants. The method 19 involves generating a binary tree structure of relay paths starting from a gateway having relatively fewer hops towards a gateway having relatively more hops.
22 There are several shortcomings of the described method which again would limit its 23 suitability for use within a collaboration system. In the first instance the method does not 24 take account of actual link speeds. As a result, a gateway of limited capability will nevertheless become a member in the binary tree structure which has an obvious 26 detrimental effect to the efficiency of the network. This shortcoming is exacerbated by the 27 fact that gateways are arranged in the order in which they join. This means that the first 28 gateway to join will sit at the top of the distribution tree. If this happens to be a gateway of 29 very limited resources, the entire distribution across the tree will be severely affected. The employment of a sub-optimal binary tree configuration is particularly wasteful in the 31 situation where plenty of resources are available and so a much higher fan-out' could be 32 employed.
1 As with the previously discussed multicasting systems, the method taught by US Patent 2 No. 7,315,516 has no mechanisms to facilitate selected data being sent between selected 3 individual participants.
It is therefore an object of an aspect of the present invention to provide a method of 6 establishing a network-based collaboration session that obviates or at least mitigates 7 disadvantages of collaboration sessions described in the prior art.
9 A second object of an aspect of the present invention is to provide a method of carrying out a network-based collaboration session that obviates or at least mitigates 11 disadvantages of collaboration sessions described in the prior art.
13 A further object of an aspect of the present invention is to provide a method of data path 14 optimisation for a network-based collaboration that obviates or at least mitigates disadvantages of network optimisation methods described in the prior art.
17 A yet further object of an aspect of the present invention is to provide a system for 18 establishing a network-based collaboration session that obviates or at least mitigates 19 disadvantages of collaboration systems described in the prior art.
21 Definitions of Terms 23 In the following description a terminal refers to computer hardware connected to a 24 network. A terminal has the functionality to host data as well as perform the function of a network client and/or a server.
27 A client refers to a module that is run on a terminal in order to allow a user to receive data 28 and so participate in the collaboration. The client may also be capable of providing the 29 terminal with the facility to transmit data e.g. to a server and/or to one or more other clients. A client may be implemented in software or firmware, or a combination of software 31 and firmware.
33 A server refers to a module that is run on a terminal which provides the data for the 34 collaboration session. The server may also be capable of providing the terminal with the 1 facility to receive data e.g. from one or more clients. A client may be implemented in 2 software or firmware, or a combination of software and firmware.
4 A client-terminal refers to computer hardware upon which a client is run.
6 A server-terminal refers to computer hardware upon which a server is run.
8 An application gateway is a functional module of a terminal which might be implemented in 9 hardware, software, or firmware, or a combination thereof. The primary function of an application gateway is to relay collaboration session data between a server and one or 11 more clients located within the network.
13 Summary of Invention
According to a first aspect of the present invention there is provided a method of 16 performing a collaboration session in a network, the method comprising the steps of: 17 providing a server-terminal as a data source for the collaboration session; 18 providing a plurality of client-terminals, each client-terminal providing a user with an 19 access point for participating in the collaboration session; and providing one or more application gateways, each application gateway configured to 21 relay data between network components during the collaboration session; 22 wherein the server-terminal is provided with a server application gateway to which it 23 transmits data during the collaboration session, the server application gateway 24 determined according to the server-terminal location; and each client-terminal is provided with a client application gateway from which it 26 receives data during the collaboration session, each client application gateway 27 determined according to the client-terminal location.
29 The provision of the one or more application gateways avoids the requirement for multiple data connections all transmitting the same data. By determining the server and client 31 application gateways based on the locations of the server-terminal and the client- 32 terminals, respectively, the method provides the collaboration session with an architecture 33 that has a greater efficiency for the communication of data. This is particularly 34 advantageous within networks having limited bandwidth data connections e.g. as typically found between sub-networks of a network system.
2 In some embodiments, the method employs a single application gateway as both the 3 server application gateway and the client application gateway. In other words, data may 4 be transmitted directly from the server-terminal to the application gateway, and on to the client-terminal.
7 In other embodiments, the method employs different application gateways as the server 8 application gateway and the client application gateway. In other words, data may be 9 transmitted directly from the server-terminal to the server application gateway, relayed to the client application gateway, and on to the client-terminal.
12 The method may employ multiple client application gateways within the network, to which 13 respective client-terminals are allocated. In this embodiment the server application 14 gateway may relay data to multiple client application gateways. Alternatively, or in addition, a first client application gateway may relay data to a second application gateway, 16 which may then relay data to its respective client-terminals.
18 The method may comprise the additional step of allocating an application gateway to a 19 server-terminal for the duration of the collaboration session, and/or may comprise allocating an application gateway to each of the plurality of client-terminals for the duration 21 of the collaboration session.
23 Preferably the step of providing the one or more application gateways comprises deploying 24 one or more static application gateways. Most preferably the application gateways are deployed to provide an optimum data transfer speed to an associated sub-network of 26 identified client-terminals.
28 Alternatively the step of providing the one or more application gateways comprises 29 deploying one or more of the identified client-terminals as one or more dynamic application gateways. Most preferably the one or more identified client-terminals selected to be 31 deployed as the one or more dynamic application gateways are chosen to provide an 32 optimum data transfer speed to an associated sub-network of identified client-terminals.
33 Employing this method of determining the one or more application gateways provides a 34 means for dynamically establishing the collaboration session.
1 Most preferably the step of providing the server terminal with a server application gateway 2 is performed by a collaboration establishing control module. It is preferable for the 3 collaboration establishing control module to also perform the step of providing the client- 4 terminal with a server application gateway.
6 Preferably the collaboration establishing control module comprises a web server. The web 7 server may enable communication between the collaboration establishing control module 8 and the plurality of client-terminals and/or the server-terminal.
Preferably the collaboration establishing control module further comprises a collaboration 11 database employed to retain information about the collaboration session.
13 It is preferable for the collaboration establishing control module to also comprise a daemon 14 that enables the implementation of background run functions for the collaboration session.
16 An important point to note is that the collaboration establishing control module provides a 17 means for building, initiating and maintaining the collaboration session without being 18 actively involved in the collaboration session. As a result, the collaboration establishing 19 control module does not constitute a data flow bottleneck within the system.
21 Preferably the collaboration session is initiated by a user submitting a collaboration 22 session request to the collaboration establishing control module. The session request 23 preferably comprises details of the identities of the participating users of the collaboration 24 session. Supplying details of the participating users assists in maintaining the security of the collaboration session.
27 Optionally the session request further comprises a scheduled time, T, for the collaboration 28 session.
Preferably a session identifier is allocated to the collaboration session following the 31 submission of the collaboration request.
33 Optionally the server-terminal is located outside of the associated sub-network of identified 34 client-terminals.
1 Most preferably the method of performing a collaboration session in a network further 2 comprises the step of performing a load test on two or more application gateways. The 3 load test may allow for the establishment of an optimised data communication path which 4 further improves the efficiency of the operation of the collaboration session. The load test may be performed by the collaboration establishing control module. Preferably the load 6 test is carried out a predetermined time, T, prior to the scheduled time, T, for the 7 collaboration session.
9 Optionally the predetermined time, T is determined by the following expression T = T - (Tiest x C) where Ttest is a time taken to perform a previous load test on the collaboration 11 network and C is an error margin factor. The error margin factor may have a value greater 12 than 1, for example C= 1.5.
14 The load test may be in accordance with the fifth aspect of the present invention and its preferred embodiments.
17 Preferably the method of performing a collaboration session in a network further comprises 18 the step of each participating client submitting a user registration request to the 19 collaboration establishing control module. The method may further comprise a server submitting a user registration request to the collaboration establishing control module. In 21 order to register with the collaboration session the user registration request may comprise 22 a valid session identifier, a valid user name and password.
24 Preferably the user registration request is checked to establish whether or not the user has the required permission to join the collaboration session. Validation of each user further 26 assists in maintaining the security of the collaboration session.
28 Most preferably, if it is established that the user has the required permission, then the 29 client is allocated a client identifier. The allocation of client identifiers is advantageous since it allows for each of the participating clients to send data directly to each other i.e. 31 this data is not required to be sent to all of the clients employed within the collaboration 32 session.
34 Preferably the method of establishing the network-based collaboration session further comprises the step of an application gateway providing an indication to the collaboration 1 establishing control module that a client handling capability of the application gateway is, 2 or is about to be, exhausted.
4 Preferably when a further valid user registration request is received from a client within the associated sub-network the client-terminal submitting the request is instructed to function 6 as a first sub-network dynamic application gateway. In this way any further client within 7 the sub-network that submits a valid user registration request is directed to connect to the 8 collaboration session via the first sub-network dynamic application gateway.
Optionally the first sub-network dynamic application gateway provides an indication to the 11 collaboration establishing control module that a client handling capability of the first sub- 12 network dynamic application is, or is about to be, exhausted.
14 Preferably when a further valid user registration request is received from a client within the associated sub-network the client-terminal submitting the request is instructed to function 16 as a second sub-network dynamic application. In this way any further client within the sub- 17 network that submits a valid user registration request is directed to connect to the 18 collaboration session via the second sub-network dynamic application gateway.
Preferably the method of performing the collaboration session further comprises the step 21 of one of the plurality of clients selectively transmitting data to the server and/or one or 22 more of the other plurality of clients. The described collaboration session therefore allows 23 for the server and each of the participating clients to send data directly to each other i.e. 24 this data is not required to be sent to all of the clients of the collaboration session. In this way each client can submit session control requests and file upload requests.
27 Preferably the step of selectively transmitting data comprises the transmission of data to 28 the client application gateway and the subsequent relaying of this data by the client 29 application gateway to the server-terminal and/or the one or more of the plurality of client-terminals.
32 Most preferably the server-terminal and the server application gateway are located within a 33 first sub-network.
1 Optionally the client application gateway and at least one of the plurality of client-terminals 2 is located within a second sub-network.
4 Preferably the network comprises a wide area network and the first and second sub-networks comprise local area networks.
7 Most preferably the step of transmitting and relaying data comprises the employment of a 8 transmission control protocol! internet protocol (TCP!lP).
According to a second aspect of the present invention there is provided a network system 11 comprising: 12 a server-terminal providing a source for data in a collaboration session; 13 a plurality of client-terminals, each providing a user with an access point for 14 participating in a collaboration session; and one or more application gateways each application gateway configured to relay data 16 between network components during a collaboration session; 17 wherein the server-terminal is provided with a server application gateway to which it 18 transmits data during the collaboration session, the server application gateway 19 determined according to the server-terminal location; and each client-terminal is provided with a client application gateway from which it 21 receives data during the collaboration session, each client application gateway 22 determined according to the client-terminal location.
24 In some embodiments, a single application gateway may function as both the server application gateway and the client application gateway. In other words, data may be 26 transmitted directly from the server-terminal to the application gateway, and on to the 27 client-terminal.
29 In other embodiments, the server application gateway and the client application gateway may be different application gateways. In other words, data may be transmitted directly 31 from the server-terminal to the server application gateway, relayed to the client application 32 gateway, and on to the client-terminal.
34 There may be multiple client application gateways in the network, to which are allocated respective client-terminals. Therefore, the server application gateway may relay data to 1 multiple client application gateways. Alternatively, or in addition, a first client application 2 gateway may relay data to a second application gateway, which may then relay data to its 3 respective client-terminals.
Most preferably the network system further comprises collaboration establishing control 6 module.
8 Preferably the collaboration establishing control module comprises a web server. The web 9 server may enable communication between the collaboration establishing control module and the plurality of client-terminals and/or the server-terminal.
12 Preferably the collaboration establishing control module further comprises a collaboration 13 database employed to retain information about the collaboration session.
It is preferable for the collaboration establishing control module to also comprise a daemon 16 that enables the implementation of background run functions for the collaboration session.
18 Embodiments of the second aspect of the invention may comprise features to implement 19 the preferred or optional features of the first aspect of the invention or vice versa.
21 According to a third aspect of the present invention there is provided a method of 22 configuring a network for a network-based collaboration session, the network comprising a 23 server and a plurality of clients, the method comprising the steps of: 24 identifying one or more one sub-networks of terminals within the network; and providing the one or more identified sub-networks with one or more application 26 gateways the one or more application gateways being configured to relay data 27 between network components during the collaboration.
29 Preferably the step of providing the one or more application gateways comprises deploying one or more static application gateways. Most preferably the application gateways are 31 deployed to provide an optimum data transfer speed to the sub-network of identified 32 terminals.
34 Alternatively the step of providing the one or more application gateways comprises deploying one or more of the identified terminals as one or more dynamic application 1 gateways. Most preferably the one or more identified terminals selected to be deployed as 2 the one or more dynamic application gateways are chosen to provide an optimum data 3 transfer speed to the sub-network of identified terminals. Employing this method of 4 determining the one or more application gateways provides a means for dynamically establishing the collaboration session.
7 Most preferably at least one of the terminals is configured as a server-terminal that 8 provides a data source for the collaboration session. Preferably two or more of the 9 terminals are configured as client-terminals to provide a user with an access point for participating in the collaboration session.
12 The method may comprise the additional step of allocating an application gateway to a 13 server, and/or allocating an application gateway to a plurality of clients.
The method may comprise the additional step of allocating an application gateway to a 16 server for the duration of the collaboration session, and/or may comprise allocating an 17 application gateway to each of the plurality of clients for the duration of the collaboration 18 session.
Most preferably the step of allocating the one or more application gateways to the server 21 and/or the plurality of clients is performed by a collaboration establishing control module.
23 Preferably the collaboration session is initiated by a user submitting a collaboration 24 session request to the collaboration establishing control module. The session request preferably comprises details of the identity of the participating users of the collaboration 26 session.
28 Optionally the session request further comprises a scheduled time, T, for the collaboration 29 session.
31 Preferably a session identifier is allocated to the collaboration session following the 32 submission of the collaboration request.
34 Most preferably the method of establishing a network-based collaboration session further comprises the step of performing a load test on two or more application gateways. The 1 load test may allow for the establishment of an optimised data communication path which 2 further improves the efficiency of the operation of the collaboration session. The load test 3 may be performed by the collaboration establishing control module. Preferably the load 4 test is carried out a predetermined time, T, prior to the scheduled time, T, for the collaboration session.
7 Optionally the predetermined time, T is determined by the following expression T = T - 8 (Tiest x C) where Ttest is ta time taken to perform a previous load test on the collaboration 9 network and C is an error margin factor. The error margin factor may have a value greater than 1, for example C= 1.5.
12 The load test may be in accordance with the fifth aspect of the present invention and its 13 preferred embodiments.
Preferably the method of establishing a network-based collaboration session further 16 comprises connecting the two or more application gateways to establish a data 17 communication path between two or more sub-networks of identified terminals.
19 Preferably the sub-networks comprise local area networks located within a wide area network.
22 Embodiments of the third aspect of the invention may comprise preferred or optional 23 features of the first aspect of the invention or vice versa.
According to a fourth aspect of the present invention there is provided a method of 26 performing a collaboration session the method comprising the steps of: 27 -configuring a network-based collaboration session in accordance with the third 28 aspect of the present invention; and 29 -communicating data between the server and the plurality of clients via one or more application gateways.
32 Most preferably the step of communicating data comprises the step of employing a 33 transmission control protocol! internet protocol (TCP!IP).
1 According to a fifth aspect of the present invention there is provided a method of 2 determining an optimised data communication path between two or more application 3 gateways employed within a network-based collaboration session to relay data between 4 network components, the method comprising the step of performing a load test on the two or more application gateways.
7 The above method provides a communication data path that is optimised to as to provide 8 the most efficiently arrangement for connecting the two or more application gateways 9 within the network.
11 Most preferably the load test comprises the step of measuring network speeds of data 12 paths, preferably all the data paths, between the application gateways. The load test may 13 comprise measuring bidirectional network speeds.
Preferably the load test further comprises generating a connectivity matrix from the 16 measured network speeds.
18 It is also preferable for the load test to further comprise normalising the connectivity matrix.
19 Normalisation ensures that connections which only slightly differ in their measured speeds are effectively regarded as having the same speed. Without normalisation a "chaining 21 effect" can occur whereby the data communication path tends to grow in depth rather than 22 breadth which results in more end-to-end delay and sub-optimal data transmission.
24 Optionally the load test further comprises identifying available capacities of the two or more application gateways. Identifying the available capacity of the two or more 26 applications provides the load test with the option of establishing an out of capacity 27 application gateway set.
29 Preferably the load test further comprises the step of defining an application gateway source set. Most preferably the application gateway source set is initially set to comprise 31 an application gateway to which the server-terminal is to be connected.
33 Preferably the load test further comprises the step of voiding the column of the normalised 34 connectivity matrix corresponding to the source set.
1 Preferably the load test further comprises the step of identifying an application gateway, 2 not included within the source set, which has the highest speed data path connection with 3 the source set.
Optionally the step of identifying an application gateway further comprises checking that 6 the application gateway which has the highest speed data path connection is not included 7 within the out of capacity application gateway set.
9 Optionally the step of identifying an application gateway further comprises selecting an application gateway having a smaller hop count from the application gateway to which the 11 server-terminal is connected. This step is required when two or more application 12 gateways are identified as having the same speed of data connection with the source set.
14 Optionally the step of identifying an application gateway further comprises selecting an application gateway having the largest available connection handling capacity. This step 16 is required when two or more application gateways are identified as having the same 17 speed of data connection with the source set and have an equal hop count from the 18 application gateway to which the server-terminal is connected.
Preferably the load test further comprises the step of adding the identified application 21 gateway to the source set.
23 Optionally the available connection handling capacity of the identified application gateways 24 is updated.
26 According to a sixth aspect of the present invention there is provided a system for 27 establishing a network-based collaboration session between a server and a plurality of 28 clients on a network, the system comprising a collaboration establishing control module 29 wherein the collaboration establishing control module provides a means for determining one or more application gateways to be employed in the collaboration session, based on 31 at least one location selected from the location of a server-terminal and the locations of a 32 plurality of client-terminals.
34 Preferably the collaboration establishing control module comprises a web server that enables the client-terminals to communicate with the collaboration establishing control 1 module. The web server preferably comprises a graphic user interface (WebGui), a 2 session scheduler and a user authentication module.
4 Preferably the collaboration establishing control module further comprises a collaboration database employed to retain information about the collaboration session.
7 It is preferable for the collaboration establishing control module to also comprise a daemon 8 that enables the implementation of background run functions for the collaboration session.
9 The daemon preferably comprises an application gateway interface, a load tester, a path analyser and a routing table module. This structure allows for the establishment of the 11 collaboration session to be implemented within the session layer (layer five) of the 051 12 reference model.
14 Most preferably the user authentication module enables authentication of the details of a request from the at least one user to join the collaboration session.
17 Preferably the session scheduler is employed to receive a collaboration session request 18 from a user wishing to initiate a collaboration session. Preferably the session request 19 comprises details of users invited to the collaboration session. Supplying details of the invited users to the session scheduler assists in maintaining the security of the 21 collaboration session.
23 Optionally the session request may further comprise a scheduled time for the collaboration 24 session.
26 Preferably the session scheduler allocates a session identifier to the collaboration session 27 following the submission of the collaboration request.
29 Preferably the collaboration database stores a pre-assigned group of static application gateways so enabling the collaboration establishing control module to determine the one 31 or more application gateways. Most preferably the selected application gateways are 32 chosen to provide an optimum data transfer speed to an associated sub-network of client- 33 terminals.
1 Alternatively the session scheduler is employed to deploying one or more of the client- 2 terminals as one or more dynamic application gateways. Most preferably the one or more 3 identified client-terminals selected to be deployed as the one or more dynamic application 4 gateways are chosen to provide an optimum data transfer speed to an associated sub-network of client-terminals.
7 Optionally the server-terminal is located outside of the associated sub-network of client- 8 terminals.
Most preferably the load tester is employed to perform a load test on the two or more 11 application gateways. The load test may allow for the determination of an optimised data 12 communication path which further improves the efficiency of the operation of the 13 collaboration session. Preferably the load test is carried out a predetermined time, T, 14 prior to the scheduled time, T, for the collaboration session.
16 Optionally the predetermined time, T is determined by the following expression T = T - 17 (Tiest x C) where Ttest is ta time taken to perform the previous load test on the collaboration 18 network and C is an error margin factor. The error margin factor may have a value greater 19 than 1, for example 0= 1.5.
21 The load test may be in accordance with the fifth aspect of the present invention and its 22 preferred embodiments.
24 Most preferably the load tester instructs the path analyser to measure the network speeds of at least some of the data paths between the application gateways. The path analyser 26 may measure bidirectional network speeds, and/or may measure all of the data paths. It is 27 advantageous to the optimisation of the data communication path to take account of 28 bidirectional network speeds since the bandwidth and latency of a data path is dependent 29 on the direction of measurement.
31 Preferably the load tester stores a connectivity matrix generated from the measured 32 network speeds within the routing table.
1 Preferably the load tester provides a means for processing the connectivity matrix stored 2 within the routing table so as to provide an optimised data communication path for the two 3 or more application gateways.
Most preferably the session scheduler provides a means for connecting two or more 6 application gateways to establish a data communication path between associated sub- 7 networks of client-terminals.
9 Preferably the associated sub-networks comprise local area networks located within a wide area network.
12 Preferably the user authentication module authenticates the details of a user registration 13 request by checking that it comprises a valid session identifier, a valid user name and 14 password. Validation of each user further assists in maintaining the security of the collaboration session.
17 Most preferably, if it is established that the user has the required permission then the 18 session scheduler allocates the client with a client identifier and details of the appropriate 19 application gateway for the client to connect to the collaboration session. The allocation of client identifiers is advantageous since it allows for the server-terminal and each of the 21 participating client-terminals to send data directly to each other i.e. this data is not required 22 to be sent to all of the terminals of the collaboration session.
24 Preferably the application gateway interface provides a means for an application gateway to inform the session scheduler that a client handling capability of the application gateway 26 is, or is about to be, exhausted.
28 Preferably when the user authentication module receives a further valid user registration 29 request from a client within the associated sub-network the session scheduler instructs the client-terminal submitting the request to function as a first sub-network dynamic application 31 gateway. In this way any further clients within the sub-network that submits a valid user 32 registration request is directed to connect to the collaboration session via the first sub- 33 network dynamic application gateway.
1 Optionally the application gateway interface provides a means for the first sub-network 2 dynamic application gateway to inform the session scheduler that a client handling 3 capability of the first sub-network dynamic application is, or is about to be, exhausted.
Preferably when the user authentication module receives a further valid user registration 6 request from a client within the associated sub-network the session scheduler instructs the 7 client-terminal submitting the request to function as a second sub-network dynamic 8 application gateway. In this way any further client within the sub-network that submits a 9 valid user registration request is directed to connect to the collaboration session via the second sub-network dynamic application gateway.
12 Embodiments of the sixth aspect of the invention may comprise the preferred or optional 13 features of the first, third and fifth aspects of the invention, or vice versa.
According to a seventh aspect of the present invention there is provided a method of 16 establishing a network-based collaboration session between a server and a plurality of 17 clients on a network, the method comprising the steps of: 18 identifying one or more sub-networks of terminals within the network; and 19 deploying one or more terminals within the one or more identified sub-networks as an application gateway configured to relay data between network components during the 21 collaboration.
23 The employment of the one or more application gateways avoids the requirement for 24 multiple data connections all transmitting the same data. The deployment of one or more terminals to function as application gateways provides a dynamic architecture that has a 26 greater efficiency for the communication of data. This is particularly advantageous within 27 networks having limited bandwidth data connections e.g. as typically found between sub- 28 networks of a network system.
Most preferably the one or more terminals selected to be deployed as the one or more 31 application gateways are chosen to provide an optimum data transfer speed to the sub- 32 network of identified terminals.
34 Most preferably at least one of the terminals is configured as a server-terminal that provides a data source for the collaboration session. Preferably two or more of the 1 terminals are configured as client-terminals to provide a user with an access point for 2 participating in the collaboration session.
4 The method may comprise the additional step of allocating an application gateway to a server, and/or allocating an application gateway to a plurality of clients.
7 The method may comprise the additional step of allocating an application gateway to a 8 server for the duration of the collaboration session, and/or may comprise allocating an 9 application gateway to each of the plurality of clients for the duration of the collaboration session.
12 Most preferably the step of allocating the one or more application gateways to the server 13 and/or the plurality of clients is performed by a collaboration establishing control module.
Preferably the collaboration session is initiated by a user submitting a collaboration 16 session request to the collaboration establishing control module.
18 Optionally the server-terminal is located outside of the one or more sub-networks of 19 identified client-terminals.
21 Most preferably the method of establishing a network-based collaboration session further 22 comprises the step of performing a load test on two or more application gateways. The 23 load test may allow for the establishment of an optimised data communication path which 24 further improves the efficiency of the operation of the collaboration session. The load test may be performed by the collaboration establishing control module. Preferably the load 26 test is carried out a predetermined time, T, prior to the scheduled time, T, for the 27 collaboration session.
29 Optionally the predetermined time, T is determined by the following expression T = T - (Tiest x C) where Ttest is ta time taken to perform the previous load test on the collaboration 31 network and C is an error margin factor. The error margin factor may have a value greater 32 than 1, for example 0= 1.5.
34 The load test may be in accordance with the fifth aspect of the present invention and its preferred embodiments.
2 Preferably the method of establishing a network-based collaboration session further 3 comprises connecting the two or more application gateways to establish a data 4 communication path between associated sub-networks of identified terminals.
6 Preferably the associated sub-networks comprise local area networks located within a 7 wide area network.
9 Embodiments of the seventh aspect of the invention may comprise the preferred or optional features of the first, third, fifth and sixth aspects of the invention, or vice versa.
12 According to an eighth aspect of the present invention there is provided a method of 13 performing a collaboration session the method comprising the steps of: 14 -establishing a network-based collaboration session in accordance with the seventh aspect of the present invention; and 16 -communicating data between the server and the plurality of clients via one or 17 more application gateways.
19 Most preferably the step of communicating data comprises the step of employing a transmission control protocol! internet protocol (TCP!IP). Such a communication protocol 21 provides for the ordered delivery of data and so assists the collaboration session in 22 satisfying the desired security and data delivery reliability requirements.
24 According to a ninth aspect of the present invention there is provided a computer apparatus loaded with machine readable instructions for implementing a method of 26 performing a collaboration session in a network in accordance with the first aspect of the 27 present invention.
29 According to a tenth aspect of the present invention there is provided a computer apparatus loaded with machine readable instructions for implementing a method of 31 configuring a network for a network-based collaboration session in accordance with the 32 third aspect of the present invention.
34 According to an eleventh aspect of the present invention there is provided a computer apparatus loaded with machine readable instructions for implementing a method of 1 performing a collaboration session in accordance with the fourth aspect of the present 2 invention.
4 According to a twelfth aspect of the present invention there is provided a computer apparatus loaded with machine readable instructions for implementing a method of 6 determining an optimised data communication path between two or more application 7 gateways employed within a network-based collaboration session in accordance with the 8 fifth aspect of the present invention.
According to a thirteenth aspect of the present invention there is provided a computer 11 apparatus loaded with machine readable instructions for implementing a method of 12 establishing a network-based collaboration session between a server and a plurality of 13 clients on a network in accordance with the seventh aspect of the present invention.
According to a fourteenth aspect of the present invention there is provided a computer 16 apparatus loaded with machine readable instructions for implementing a method of 17 performing a collaboration session in accordance with the eighth aspect of the present 18 invention.
Brief Description of Drawings
22 While aspects of the described methods and systems for collaboration sessions can be 23 implemented in any number of different computing systems, environments, and/or 24 configurations, embodiments of collaboration sessions are described in the context of the following detailed exemplary system architecture and with reference to the following 26 drawings in which: 28 Figure 1 presents a schematic diagram of a prior art collaboration system; Figure 2 presents a schematic diagram of a Wide Area Network (WAN) based 31 collaboration session within which the data paths have been optimised in accordance with 32 a method of an embodiment of the present invention; 34 Figure 3 presents a block diagram of an exemplary collaboration establishing control module employed within the Wide Area Network-based collaboration session of Figure 2; 2 Figure 4 presents a flow chart of the methodology employed to establish the collaboration 3 session of Figure 2; Figure 5 presents a schematic diagram showing the deployment of application gateways 6 within the Wide Area Network of Figure 2; 8 Figure 6 presents a schematic representation of a load test carried out between the 9 application gateways within the Wide Area Network of Figure 2; 11 Figure 7 presents a connectivity matrix generated by the load test of Figure 6; 13 Figure 8 presents an exemplary method employed by the collaboration establishing control 14 module to convert the connectivity matrix of Figure 7 to an optimised data path between the application gateways within the WAN of Figure 2; 17 Figure 9 presents a schematic representation of a client authentication process employed 18 within the collaboration session of Figure 2; Figure 10 (a) to (e) present schematic representations of data routes provided for the 21 transmission of data within the collaboration session of Figure 2; and 23 Figure 11 presents a schematic representation of the deployment of a dynamic application 24 gateway within the collaboration session of Figure 2.
26 Detailed Description
28 In order to provide understanding of the various aspects of the present invention a 29 collaboration session 6 within a Wide Area Network (WAN) 7 will now be described. A schematic representation of this collaboration session 6 is presented in Figure 2. In the 31 presently described embodiment, the WAN 7 can be seen to comprise four separate sites 32 5a, 5b, 5c and 5d each of which comprises a Local Area Network (LAN). For example, 33 sites 5a, 5b, 5c and 5d could be located in Glasgow, Edinburgh, London and Washington, 34 respectively. The sites 5a, 5b, 5c and 5d are connected by means of four application gateways 8a, 8b, 8c and 8d, further details of which are provided below.
2 Within site 5a is located a server 9 which provides the data source for the collaboration 3 session 6. The server 9 comprises software that is run on a computer terminal (referred to 4 herein after as a server-terminal). The server 9 may also be capable of receiving data.
6 A number of clients 10 participating within the collaboration are located throughout each of 7 the sites 5a, 5b, 5c and 5d. A client 10 comprises software that is run on a computer 8 terminal (referred to herein after as a client-terminal) in order to allow a user to receive 9 data and so participate in the collaboration session 6. However, it will be understood that the client 10 may also be capable of transmitting data e.g. to the server 9 and/or to one or 11 more of the other clients 10. Further details of the data routing process within the 12 collaboration session 6 is described below.
14 The adoption of the application gateways 8a, 8b, 8c and 8d solves the problem of multiple connections in and out of the sites 5a, 5b, 5c and Sd, as is required by the previously 16 described prior art systems 1 i.e. one for each participant in the collaboration. Since data 17 flowing from the server 9 is the same for all the clients 10, it is not necessary to have 18 multiple data streams between the sites 5a, 5b, 5c and 5d. Data can simply be 19 redistributed within the LAN of the sites 5a, Sb, Sc and Sd, thereby greatly reducing the required bandwidth at the potential bottleneck i.e. the physical connection to the outside 21 world.
23 In addition, since the bandwidth available within the LAN of the sites 5a, Sb, Sc and Sd is 24 typically much greater than across the WAN 7 the adoption of the application gateways 8a, 8b, 8c and 8d provides a much more efficient use of the available network architecture.
27 The reduced bandwidth requirements within the network also allow the collaboration 28 session 6 to employ a transmission control protocol/internet protocol (TCP/IP) for the 29 communication of data within the network. This differs from traditional application-level multicast systems which employ a user datagram protocol (UDP) due to bandwidth 31 restrictions. As is known to those skilled in the art, TCP/IP provides for the reliable, 32 ordered delivery of a data stream within a communication system while UDP being a 33 simple transmission protocol without implicit hand-shaking dialogues does not guarantee 34 reliability, ordering, or data integrity. Employing TCP/IP for the communication of data 1 therefore allows the collaboration session 6 to satisfy the desirable security and data 2 delivery reliability requirements.
4 In the above described example, there is only ever one data stream flowing between the sites 5a, 5b, 5c and 5d. This results in a network architecture that is highly scalable: in this 6 example the server 9 is completely unaware that there are actually eight clients 10, as it 7 only needs to provide data to one application gateway 8a.
9 As well as saving bandwidth, the optimised network also results in significant conserving of processing power. A very moderate server-terminal (in terms of hardware) can be 11 employed to host the server 9 and effectively serve a multitude of clients 10. This factor 12 becomes more important when not only the hardware is limited, but also the available 13 bandwidth. For example, by adopting such an optimised network it is possible for even a 14 relatively slow connection to serve many clients 10 e. g. from a home or a hotel room.
16 Collaboration Establishing Control Module (CECM) 18 In Figure 3 a block diagram of a collaboration establishing control module (CECM) 11 is 19 presented. The CECM 11 is the central architecture that allows for the collaboration session 6 to take place. From Figure 3 the CECM 11 can be seen to comprise three 21 functional components, namely: a web server 12, provided with a graphical user interface 22 (GUI) 13, a session scheduler 14 and a user authentication module 15; a collaboration 23 database 16 employed to retain application gateway data, session data, and client data; 24 and a daemon 17 provided with a routing table 18, a data path analyser 19, an application gateway interface 20 and a load tester 21.
27 The CECM 11 handles all of the management functions that are required to build, initiate 28 and maintain the collaboration session 6. The web server 12 provides the GUI 13 for the 29 CECM 11, whereas the daemon 17 implements the functions that are run in the background, such as the load testing (details of which are provided below). More 31 specifically, the CECM 11 fulfils the following tasks for the collaboration session 6, namely: 33 1) Session scheduling; 34 2) User authentication; 3) Application gateway management; and 1 4) Session data path calculation.
3 Further detail of each of these tasks is discussed below.
The CECM 11 may also act as a virtual lobby. For example, the collaboration session 6 6 might be scheduled, and one or more clients 10 may wish to join prior to the server 9 7 having joined the session 6. In these circumstances the CECM 11 temporarily acts as an 8 assembly point for these clients 10 and then leads' all of the clients 10 to the meeting 9 when the server 9 is present and the collaboration session 6 is ready to start.
11 Significantly however, the CECM 11 is not actively involved in the collaboration session 6, 12 and, therefore, does not constitute a bottlenecking effect as are associated with central 13 servers 2 employed within the prior art systems 1. Furthermore, the CECM 11 acts to 14 abstract the network 7 in terms of addresses. All the server 9, the clients 10, or indeed the application gateways 8 needs to know about the network 7, is the IP address, or a textual 16 alias obtained through the Domain Name System (DNS) e.g. cecm.appshare.co.uk, of the 17 CECM11.
19 Method of Establishing a Collaboration Session Within a Network 21 There now follows a discussion on the methodology employed to establish the 22 collaboration session 6 between a plurality of clients 10 within the WAN 7. As will be seen, 23 the method employed to achieve the data path optimisation within the WAN 7 is important 24 to reducing the bandwidth requirements, and hence increasing the efficiency of the collaboration session 6. Figure 4 presents a flow chart for the described method.
27 Stage 1) Provision of Application Gateways 29 The first stage in establishing the collaboration session 6 within the WAN 7 involves the provision of one or more application gateways 8 within each site 5. As outlined above, the 31 function of the application gateways 8 is to act as an input/output for the LAN of the 32 associated site 5 so as to increase efficiency while maximising the number of clients 10 33 that can be supported.
1 There exist strategic places where the application gateways 8a, 8b, 8c and 8d could, and 2 should, be deployed. Typically, each site 5 will have one or more physical connections to 3 the outside world. Therefore it is found that the closer to the incoming/outgoing physical 4 connection an application gateway 8a, 8b, 8c and 8d is positioned, the more efficiently it will operate.
7 In practice, the location of the application gateways 8a, 8b, 8c and 8d may employ a local 8 network administrator's knowledge of the associated sites 5a, 5b, 5c and 5d so as to 9 select the required number of application gateways 8 and the optimum performance positions for these application gateways 8. This mode of deployment is hereinafter 11 referred to as static deployment of the application gateways 8. Such static deployment is 12 typically achieved through the employment of continuously run servers.
14 Once selected, an application gateway, for example gateway 8d, is provided with the IP address of the CECM 11. On start up, the application gateway 8d registers with the 16 CECM 11 via the application gateway interface 20, and the session scheduler 14 then 17 assigns it an application gateway identification, as well as providing it with details of all the 18 other application gateways 8a, 8b and 8c already registered. The CECM 11 also adds the 19 details of the application gateway 8d into the collaboration database 16 and updates any previously registered application gateways 8a, 8b, and 8c with the details of the newly 21 registered application gateway 8d.
23 Figure 5 presents a schematic diagram showing the deployment of application gateways 24 8a, 8b, 8c and 8d within the WAN 7 of Figure 2. In the presently described example, the network administrators have elected to deploy only one static application gateway 8a, 8b, 26 8c and 8d within each site 5a, 5b, 5c and Sd, although it should be appreciated that two or 27 more static application gateways 8 could be deployed, for reasons of efficiency, within a 28 large site 5. However, deploying only one application gateway 8a, 8b, 8c and 8d in each 29 site 5a, 5b, 5c and 5d ensures that there shall only ever be one data stream entering of leaving each site 5a, 5b, 5c and 5d.
32 When a new application gateway registers with the CECM 11 it is preferable for an 33 application gateway load test to be carried out on all of the registered application 34 gateways, as described in detail within Stage 3 below. The time taken to perform the load test, Tiest, is recorded within the CECM 11. Knowledge of the time taken to perform the 1 most recent load test is a useful parameter for determining when the load test for the next 2 collaboration session 6 should commence.
4 Stage 2) Initiation of a Collaboration Session 6 The second stage of the process involves a user employing a client 10 to initiate the 7 collaboration session 6. This involves the client 9 employed by the initiating user providing 8 the session scheduler 14 with details for the collaboration session 6. These details include 9 the time, T, of the collaboration session 6 and a list of invited users.
11 Upon receipt of this session request the session scheduler 14 allocates a session identifier 12 and stores this identifier, along with the other details for the collaboration session 6, within 13 the collaboration database 16. The session scheduler 14 then provides the session 14 identifier and the details of the invited users, to the application gateways 8a, 8b, 8c and 8d within the sites 5a, 5b, 5c and 5d from which the users may access the collaboration 16 session 6.
18 Stage 3) Application Gateway Load Testing At a time T prior to when a collaboration session 6 is scheduled to begin, the load tester 21 21 initiates the performance of a load test 22 on the application gateways 8a, 8b, 8c and 22 8d. A load test 22 is carried out close to the time T since it does not make sense to 23 perform such a test days, or even hours, before T, since the network loading conditions 24 will more often than not change within such time scales. The time T is therefore calculated from the following expression: 27 TpTc(TtestxC) (1) 29 where C is a factor introduced to provided an error margin for additional network loading having been introduced since the load test carried out at time Tiest e.g. C= 1.5.
32 The load test 22 is employed to calculate the optimum data paths between the application 33 gateways 8a, 8b, 8c and 8d for the collaboration session 6, in other words, how the 34 application gateways 8a, 8b, 8c and 8d should interconnect for this particular collaboration session 6. It is done in a full-mesh manner as depicted schematically in Figure 6.
1 Importantly, the load tester 21 employs the path analyser 19 to measures the speed (both 2 latency and throughput capacity) in both directions between each site 5a, 5b, 5c and 5d.
3 The bidirectional measurement of the speeds is important for computing an efficient data 4 path between the application gateways 8a, 8b, 8c and 8d, i.e. there is no assumption made that any given logical data path between the application gateways 8a, 8b, 8c and 8d 6 supports the same bandwidth and latency in both directions. The reason for this may be 7 due to the network infrastructure, network loading at a specific site or time, and even the 8 way the Internet itself works, i.e. packets on a point-to-point connection do not necessarily 9 take the same path. In other words, a packet sent from application gateway 8a to 8b may take a different path than a packet sent from application gateway 8b to 8a. Furthermore, 11 where boundaries between different carriers are crossed, the routing may depend on the 12 policy for CsC (Carrier supporting Carrier).
14 The results of the bidirectional testing of the connections between all of the application gateways 8a, 8b, 8c and 8d is then employed by the load tester 21 to generate a 16 connectivity matrix of the data path speeds (measured in kb/s) within the routing table 18.
17 An example connectivity matrix 23 for the presently described collaboration session 6 is 18 presented in Figure 7. The value x' denotes either no connectivity, or links that have 19 already been established and are therefore no longer considered.
21 In order to allow for computation of the optimised data path, it is beneficial for the 22 connectivity matrix to be normalised. That is to say, that if connection A -B is, for 23 example, 1 OOkbIs, and connection A -C is 1 O5kbIs, then these are to be viewed as 24 similar'. Normalisation of the connectivity matrix is achieved by applying the following equation to each of the cells C of the connectivity matrix 23, namely: 27 C=round(1O*t/T) (2) 29 where t is the measured data path speed for cell C; and 31 T is the highest measured data path speed for any of the cells of the connectivity matrix.
33 As a result of the above normalisation process all of the values within the matrix are 34 expressed relative to the highest measured data path speed. Thus, the highest measured 1 data path speed is assigned the number 10 while the other connections are effectively 2 graded from 0 to 10.
4 Normalisation ensures that connections which only slightly differ in their measured speeds are regarded as having the same speed. Without normalisation a "chaining effect" can 6 occur whereby the data path tends to grow in depth (hop count) rather than breadth which 7 results in more end-to-end delay and sub-optimal data transmission.
9 A normalised connectivity matrix 23a for the presently described collaboration session 6 is presented in Figure 8(a). The sixth and seventh columns of the normalised connectivity 11 matrix 23a relate to the capacity c" of the application gateways 8a, 8b, 8c and 8d and the 12 number of hops h" the application gateway 8a, 8b, 8c and 8d is from the sub-network 13 within which the server 9 is located, respectively. Further details of these two parameters 14 are discussed below.
16 The next stage in the load testing 22 process is the need to convert the normalised 17 connectivity matrix 23a of Figure 8a to an optimised data path between the application 18 gateways 8a, 8b, 8c and 8d within the WAN 7 of Figure 2. This is achieved by the load 19 tester 21 employing the following algorithm to manipulate the normalised connectivity matrix 23a stored within the routing tablel8, namely: 22 Start with a normalised connectivity matrix From:To containing n rows (and 23 thus n + 2 columns).
24 The source is located at x.
Source set Y is {x} 26 Out-of-capacity set X is {} 27 Repeat 28 Blank out the columns in {Y} 29 Find the largest value from source set {Y} but not in X to a node b' which is not in {Y} 31 If there are multiple possibilities, choose a' such that a(h) is smallest 32 If there are multiple possibilities, choose a' such that a(c) is largest 33 Result is source a', target b' 34 Decrement a(c) by one Assign b(h) = a(h) + I 1 If a(c) = 0, then add a' to X as it can no longer be a source 2 Add node b' to {Y}, i.e. target b' is now another source 3 Until O({Y}) == n It will be appreciated that the further an application gateway 8 is from the data source i.e. 6 the server 9, in terms of the hop count, the more delay the clients 10 connected to that 7 application gateway 8 will experience. Thus, in order to take increasing delay into account 8 the above algorithm tracks the number of source hops h" an application gateway 8 is 9 away from the data source. The source application gateway 8 is allocated the value of 0.
11 Furthermore, once an application gateway 8 makes a connection its capacity to service 12 additional connections is reduced. In order to take the reduced ability to service additional 13 connections into account the above algorithm also reduces the inherent capacity c" of 14 each application gateway 8 by one each time a connection from that application gateway 8 is established. Once an application gateway 8 runs out of capacity it is added to an out of 16 capacity set X. 18 As a result, when another application gateway 8 is to be connected, and there are two or 19 more possibilities in terms of data path speeds, the algorithm first considers the number of source hops h" the connecting application gateway 8 is away from the data source. The 21 connecting application gateway 8 with the lowest source hop count is chosen in preference 22 to any other. However, if there are two or more possible application gateways 8 with the 23 same hop count then the algorithm selects the one which exhibits the largest available 24 capacity at that time.
26 By employing the above techniques relating to source hops and capacity availability 27 ensures that the data distribution tree will grow wider' rather than deeper', thus minimising 28 the end-to-end delay.
Figures 8(b) to (d) present the implementation of the above algorithm to the normalised 31 connectivity matrix 23a. Since in this example the server 9 is located in site 5a (site A) this 32 means that the optimised data path must be produced with site 5a as the root i.e. source 33 set Y is {A}. In accordance with the above discussion, the hop value for site 5a (site A) is 34 allocated the value of 0. Since site 5a (site A) does not need to connect to itself the From 1 -To column of A can be voided. These steps result in a revised connectivity matrix 23b 2 as presented in Figure 8(b).
4 The next step requires finding an optimal link from the source site 5a (site A) to a destination. The connectivity matrix 23b yields that the most efficient link from 5a (site A) 6 is to site 5b (site B). We have therefore found a link A -B which is optimal, and the 7 source set is updated to be Y is {A, B}. Since B is now connected, it is removed from the 8 set of possible targets, resulting in a revised connectivity matrix 23c as presented in Figure 9 8(c). It should be noted that the capacity of site 5a (site A) has been reduced by one while site 5b (site B) is indicated as being one hop from the data source.
12 Now, given the source set Y is {A, B}, the highest value to a target is sought by looking at 13 both sources, and taking account of any application gateway which may now be out of 14 capacity. Figure 8(c) reveals that the highest value is from A -C. Again, a new source has been found and the connection A -C is made. The revised source set is now {A, B, 16 C} and the revised connectivity matrix 23d is as presented in Figure 8(d). The capacity of 17 site 5a (site A) is now reduced by two while site 5c (site C) is indicated as being one hop 18 from the data source.
The process repeats once more since O({A, B, C}) < O(nodes). However, now there is 21 only one node, 0, unconnected, and a glance at the matrix 23d reveals that the best 22 available connection is C -D. The capacity of site 5c (site C) is therefore reduced by one 23 while site 5d (site D) is indicated as being two hops from the data source.
The source set Y is now {A, B, C, D} and thus the optimisation method is complete and the 26 routing tablel8 is updated, as appropriate.
28 It should be noted that when computing the data path, the above algorithm, and hence the 29 routing table 18 takes into account the location of the server 9 i.e. the source of the actual data. In the above example the server 9 was located in site 5a (site A), however the final 31 data path structure would have been quite different if the server 9 had been located, for 32 example, in site 5d (site D).
1 Stage 4) Clients and Server Join the Collaboration Session 3 When the server 9 and clients 10 wish to join the scheduled collaboration session 6, they 4 do so by contacting the CECM 11, as presented schematically in Figure 9. The server 9 and client 10 must supply a valid session ID as well as a valid user name and password.
6 The CECM 11 then employs the user authentication module 15 to validate the server 9 7 and client's 10 credentials and then checks to see whether the server 9 and client 10 have 8 the required permission to join the collaboration session 6.
If the server 9 and client 10 have the required permission then the session scheduler 14 11 supplies a server and client identifier and details of the appropriate application gateways, 12 8a and 8c, to the server 9 and client 10, respectively, for them to join the session 6. The 13 server 9 and the clients 10 are therefore able to join the session 6 by connecting via the 14 assigned application gateway 8c.
16 If at the time a client 10 attempts to join the collaboration session 6 a check is made to see 17 if the server 9 has already joined the session 6. If the sever 9 has not yet joined the 18 CECM 11 informs the client 10 that the presenter is not yet available. Once the server 9 19 joins the session 6 the CECM 11 informs the clients 10 and then the session 6 commences. In this way the CECM 11 acts as a virtual lobby for clients 10 in the absence 21 of the server 9.
23 Data Routing within the Collaboration Session For a collaboration session 6 it must be possible to grant session control to an individual 26 client 10. Conversely, it must be possible for a client 10 to send data upstream to the 27 server 9. Examples of such data flows would be session control requests, file upload 28 requests or white boarding. Thus the presently described architecture is capable of 29 allowing data within the collaboration session 6 to be routed between: 1) the server 9 and all clients 10; 31 2) the server 9 and individual clients 10; 32 3) a client 10 and the server 9; 33 4) a client 10 and another client 10; and 34 5) a client 10 and multiple selected clients.
1 Schematic representations of these data routes are presented in Figure 10.
3 This functionality is achieved in the presently described collaboration session 6 by 4 employing a routing method that is based on routing tables stored within the application gateways 8 and the employment of bespoke protocol headers.
7 Since every client 10 has a client identifier and the server 9 a server identifier, as assigned 8 by the CECM 11, each application gateway 8 has a mapping from the client and server 9 identifiers to logical links. In other words, each application gateway 8 can determine which logical link a given data packet is to be sent out on.
12 A TCP/IP protocol header contains a source and destination field, amongst other data.
13 There are two predefined values for the destination field. These are SERVER and ALL.
14 So, any message which has SERVER in the destination field will be sent to the collaboration server 9 and any message with ALL in the destination field is sent to all the 16 clients 10.
18 The source field is always the assigned identifier of the sender.
Exploiting the destination field therefore provides the means for the required routing within 21 the collaboration session 6 since any message which has an actual client identifier as the 22 destination field, will be routed directly to that client 10. Alternatively, multiple client 23 identifiers may be entered within the destination field to allow data to be routed to more 24 than one client 10.
26 It should be noted that the employment of the CECM 11 also allows the clients 10 to be 27 network agnostic. For example, the client 10 does not need to know the IP address of the 28 data source i.e. the server 9. An example of this could be a scheduled session 6 where 29 the presenter is in a hotel and cannot possibly know his own address a priori. A client 10 simply requires knowledge of the session ID. They then connect to the collaboration 31 session 6 by contacting the well known IP address of the CECM 11.
33 A further point to note is that after the client 10 has joined the collaboration session 6 the 34 CECM 11 has no further interaction with the client 10 and so it is not involved in any further communication process. As a direct consequence the functionality of the CECM 11 1 is implemented within the Session Layer (layer five) of the Open Systems Interconnection 2 Reference Model (OSI Reference Model). This is in comparison with the known 3 Application Layer Multicast systems whose implementation resides within layer seven of 4 the OSI Reference Model.
6 Dynamic Application Gateways 8 Although statically deployed application gateways 8a, 8b, 8c and 8d significantly reduce 9 the bandwidth required to interconnect sites 5a, 5b, 5c and 5d, it may be possible for a site 5a, 5b, 5c and 5d to have too many clients 10 for itto support. As discussed previously, in 11 such circumstances a second static application gateways 8, if available, may be deployed 12 within that site 5a, 5b, 5c and 5d. However, this may not be practical in all cases.
14 An alternative solution is to employ dynamic application gateways, as will now be described with reference to Figure 11. A static application gateways 8 may at any point 16 signal to the CECM 11 via the application gateway interface 20 that its client-handling 17 capabilities have, or are about to be, exhausted. From the above described process for 18 the selection of application gateways, the CECM 11 will know whether or not a second 19 static application gateway 8 exists within the site 5. If this is not the case, and should another client 10 within the site 5 wish to connect to the collaboration session 6. then the 21 CECM 11 will ask that client 10 to act as a dynamic application gateway 24. Any further 22 client 10 within the site 5 wishing to join the collaboration session 6 will then be connected 23 via the dynamic application gateway 24.
It will be appreciated that this process can be extended when the first dynamic application 26 gateway 24 has, or is about to, exhaust its own client handling capabilities. At this time a 27 second dynamic application gateway (not shown) is established by the CECM 11.
29 In the absence of the dynamic application gateways 24, the static application gateways 8 would have to serve six separate clients 10. However, upon establishing the dynamic 31 application gateways 24 the static application gateways 8a now effectively only has to 32 serve three separate clients 10 and the dynamic application gateways 24, the three 33 remaining clients 10 are now served directly by the dynamic application gateways 24.
1 This mechanism allows for the dynamic management of traffic within the sites 5a, 5b, 5c 2 and 5d i.e. the required bandwidth can be managed and minimised. As can clearly be 3 seen from Figure 11, the load and bandwidth on static application gateways 8 has been 4 reduced from what would be six to four. Within large sites 5a, 5b, 5c and 5d this approach will readily scale, since more dynamic application gateways 24 can be created on demand.
7 The above described network-based collaboration provides a system that is secure, that 8 ensures for reliable data delivery within the system, and which is readily scalable so as to 9 allow for use by hundreds of clients. In addition, the system provides any client within the collaboration session with the capability of sending selected data directly to any other 11 selected individual client or clients.
13 It is the employment of the application gateways that solves the problem of requiring 14 multiple connections in and out of a site. Since data flowing from the host client is the same for all clients, it is not necessary to have multiple data streams. Data is thereafter 16 redistributed within the LAN of a site, thereby greatly reducing the required bandwidth on 17 the WAN. Since the bandwidth available within a LAN is much greater than across the 18 WAN, this approach eliminates the effects of performance bottlenecks between sites.
The data pathways between the application gateways are then optimised by the 21 employment of a pre-session, source-specific load test. The load test bidirectionally 22 measures both the latency and the throughput capacity between all of the application 23 gateways so as to provide a means for computing a bandwidth saving distribution path 24 between these gateways.
26 One significant advantage of the reduced bandwidth requirements within the network is 27 that it allows for the employment of a secure and reliable data communication protocol 28 within the network e.g. a transmission control protocol! internet protocol (TCP!IP). Such 29 data security and reliability is important in providing a robust collaboration system.
31 The employment of static and dynamic application gateways also provides the described 32 collaboration session with a significant degree of flexibility and scalability when compared
33 with the known prior art systems.
1 A yet further advantage of the presently described system is that the functionality of the 2 collaboration establishing control module is implemented with the Session Layer (layer 3 five) within the OSI model and not the Application Layer (layer seven). This is possible 4 because the CECM handles all of the management functions that are required to build, initiate and maintain the collaboration session. Significantly though, this is achieved 6 without the CECM being actively involved in the session itself. As a result there is a 7 significant reduction in the complexity of the presently described system, allowing the 8 creator to focus on functionality rather than infrastructure. This provides obvious time and 9 resource savings when compared to those systems implemented within the Application Layer.
12 The foregoing description of the invention has been presented for purposes of illustration 13 and description and is not intended to be exhaustive or to limit the invention to the precise 14 form disclosed. The described embodiments were chosen and described in order to best explain the principles of the invention and its practical application to thereby enable others 16 skilled in the art to best utilise the invention in various embodiments and with various 17 modifications as are suited to the particular use contemplated. Therefore, further 18 modifications or improvements may be incorporated without departing from the scope of 19 the invention as defined by the appended claims. The invention also extends to combinations of features other than those expressly claimed herein.
GB1113666.0A 2009-04-16 2009-04-16 Method and system for network-based collaboration Expired - Fee Related GB2482250B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB1113666.0A GB2482250B (en) 2009-04-16 2009-04-16 Method and system for network-based collaboration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1113666.0A GB2482250B (en) 2009-04-16 2009-04-16 Method and system for network-based collaboration

Publications (3)

Publication Number Publication Date
GB201113666D0 GB201113666D0 (en) 2011-09-21
GB2482250A true GB2482250A (en) 2012-01-25
GB2482250B GB2482250B (en) 2013-07-03

Family

ID=44735616

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1113666.0A Expired - Fee Related GB2482250B (en) 2009-04-16 2009-04-16 Method and system for network-based collaboration

Country Status (1)

Country Link
GB (1) GB2482250B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020010736A1 (en) * 2000-03-06 2002-01-24 Telenova Communications Corp. Internet based audio and video communication system using a virtual desktop
US20040210634A1 (en) * 2002-08-23 2004-10-21 Miguel Ferrer Method enabling a plurality of computer users to communicate via a set of interconnected terminals

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020010736A1 (en) * 2000-03-06 2002-01-24 Telenova Communications Corp. Internet based audio and video communication system using a virtual desktop
US20040210634A1 (en) * 2002-08-23 2004-10-21 Miguel Ferrer Method enabling a plurality of computer users to communicate via a set of interconnected terminals

Also Published As

Publication number Publication date
GB2482250B (en) 2013-07-03
GB201113666D0 (en) 2011-09-21

Similar Documents

Publication Publication Date Title
US20120265810A1 (en) Method and system for network-based collaboration
KR101033057B1 (en) Method and apparatus for establishing multicast groups
CA2240687C (en) Method for managing multicast addresses for transmitting and receiving multimedia conferencing information on an internet protocol (ip) network implemented over an atm network
US6011782A (en) Method for managing multicast addresses for transmitting and receiving multimedia conferencing information on an internet protocol (IP) network
Liu et al. Delay-optimized video traffic routing in software-defined interdatacenter networks
US9614687B2 (en) Dynamic configuration of a conference system with distributed media agents
CN113014562A (en) Method and apparatus for establishing a media session
US8102846B2 (en) Method and apparatus for managing a multicast tree using a multicast tree manager and a content server
US20170310614A1 (en) A new Instant Messaging (IM) system
CN102821036A (en) Method and device for achieving packet forwarding
EP3095229B1 (en) Method and nodes for configuring a communication path for a media service
US7957279B2 (en) Session border control using multiple processors
WO2012065531A1 (en) Method, device, and system for implementing relay selection
WO2019184653A1 (en) Link configuration method and controller
JP2017147733A (en) Method and system for routing diameter message in diameter signaling router and computer readable medium
US10965725B1 (en) Conference session access using reachability information for distributed clusters of media nodes
Othman et al. Design and implementation of application based routing using openflow
JP2006042223A (en) Packet transport unit
EP3155772B1 (en) A new instant messaging(im) routing method and router
US10291525B2 (en) Caching and forwarding router advertisements
Chen et al. Scalable and flexible traffic steering for service function chains
JP2017530643A (en) Allocating capacity for network connections to data streams based on type
Luo et al. A multiparty videoconferencing system over an application-level multicast protocol
GB2482250A (en) Network-based collaboration through application gateways allocated based on server- and client- teminal locations
US10291526B2 (en) Caching and forwarding router advertisements

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20160416