Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND ARRANGEMENT IN A PEER-TO-PEER NETWORK
Document Type and Number:
WIPO Patent Application WO/2012/030259
Kind Code:
A1
Abstract:
A method and arrangement for enrolling a joining peer (202) to a P2P (peer-to- peer) network (200). An enrolment server (204) associated to the P2P network receives (2:2) a connect request sent from the joining peer, and obtains (2:4 -2:7) an enrolment recommendation for the joining peer at least based on a stored current topology (208) of the P2P network. The enrolment server then sends(2:9) attach information to the joining peer according to the enrolment recommendation. The attach information indicates where the joining peer shall connect to the P2P network. The enrolment server also updates(2:13) the stored topology of the P2P network when the joining peer has connected to the P2P network.

Inventors:
HJELM JOHAN (SE)
LIDSTROEM MATTIAS (SE)
MATTI MONA (SE)
Application Number:
PCT/SE2010/050926
Publication Date:
March 08, 2012
Filing Date:
August 31, 2010
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ERICSSON TELEFON AB L M (SE)
HJELM JOHAN (SE)
LIDSTROEM MATTIAS (SE)
MATTI MONA (SE)
International Classes:
H04L67/1004; H04L67/104; H04L67/1061
Domestic Patent References:
WO2010063314A12010-06-10
WO2010064965A12010-06-10
Foreign References:
EP1821487A12007-08-22
EP2058980A12009-05-13
Other References:
G. CAMARILLO: "Peer-to-Peer (P2P) Architecture: Definition, Taxonomies, Examples, and Applicability", REQUEST FOR COMMENTS: 5694, CATEGORY: INFORMATIONAL, November 2009 (2009-11-01), XP015068112
See also references of EP 2612487A4
Attorney, Agent or Firm:
BERGENSTRÃ…HLE & LINDVALL AB (S- Stockholm, SE)
Download PDF:
Claims:
CIAJMS

1. A method of enrolling a joining peer (202) to a P2P (peer-to-peer) network (200), the method comprising the following actions executed by an enrolment server (204) associated to the P2P network

- receiving (300) a connect request sent from the joining peer,

- obtaining (308) an enrolment recommendation for the joining peer at least based on a stored current topology of the P2P network,

- sending (310) attach information to the joining peer according to the enrolment recommendation in response to the connect request, the attach information mdicating where the joining peer shall connect to the P2P network, and

- updating (316) the stored topology of the P2P network when the joining peer has connected to the P2P network

2. A method according to claim 1, wherein the enrolment recommendation is further based on qualifications of the joining peer including at least one of: current context, capabilities and current status of the joining peer.

3. A method according to claim 1 or 2, wherein the enrolment

recommendation is further based on atleastone of: currentroles and/ or

qualifications of other peers in the P2Pnetwork, load balancing, connection costs, latency, enrolment history and social network information regarding the joining peer.

4. A method according to any of claims 1-3, wherein the enrolment recommendation indicates one or more adrnitting peers to which the joining peer shall be connected in the P2Pnetwork

5. A method according to claim 4, wherein the attach information indicates a bootstrap peer in the P2Pnetwork which handles an attach procedure for the joining peer when connecting to the admitting peer(s) by relaying attach messages.

6. A method according to any of claims 1-5, wherein the enrolment recommendation indicates a role the joining peer shall have in the P2P network, said role involving one or more processing and/ or storing tasks.

7. A method according to claim 6 , wherein the enrolment server further sends configuration information to the joining peer indicating said role.

8. A method according to any of claims 1-7, wherein the enrolment recommendation indicates one or more index keywords to be assigned to the joining peer for use in service requests or queries to the P2Pnetwork from outside parties.

9. A method according to any of claims 1-8, wherein the enrolment server receives a leave request from a peer in the P2Pnetwork, indicating that this peer is leaving the P2P network, and updates the stored topology of the P2P network accordingly.

10. An arrangement in an enrolment server (400) configured to enrol a joining peer (402) to a P2Pnetwork, comprising:

- a communication module (400a) adapted to receive a connect request sent from the joining peer,

- an obtaining module (400b) adapted to obtain an enrolment recommendation for the joining peer at least based on a stored current topology (404) of the P2P network, and - an updating module (400c) adapted to update the stored topology of the P2P network when the joining peer has connected to the P2P network,

- wherein the communication module (400a) is further adapted to send attach information to the joining peer according to the enrolment recommendation in response to the connect request, the attach information indicating how the joining peer shall connect to the P2Pnetwork

11. An arrangement according to claim 10, further comprising a

recommender service (400d) adapted to create said enrolment recommendation.

12. An arrangement according to claim 10 orl l, wherein the enrolment recommendation is further based on qualifications of the joining peer including at least one of: current context, capabilities and current status of the joining peer.

13. An arrangement according to any of claims 10-12, wherein the enrolment recommendation is further based on atleastone of: current roles and/ or

qualifications of other peers in the P2Pnetwork, load balancing, connection costs, latency, enrolment history and social network information regarding the joining peer.

14. An arrangement according to any of claims 10-13, wherein the enrolment recommendation indicates one or more admitting peers to which the joining peer shall be connected in the P2Pnetwork

15. An arrangement according to claim 14, wherein the attach information indicates a bootstrap peer in the P2Pnetwork which handles an attach procedure for the joining peer when connecting to the admitting peer(s) by relaying attach messages.

16. An arrangement according to any of claims 10-15, wherein the enrolment recommendation indicates a role the joining peer shall have in the P2P network, said role mvolving one or more processing and/ or storing tasks.

17. An arrangement according to claim 16, wherein the communication module (400a) is further adapted to send configuration information to the joining peer indicating said role.

18. An arrangement according to any of claims 10-17, wherein the enrolment recommendation indicates one or more index keywords to be assigned to the joining peer for use in service requests or queries to the P2Pnetwork from outside parties.

19. An arrangement according to any of claims 1-8, wherein the enrolment server receives a leave request from a peer in the P2P network, indicating that this peer is leaving the P2Pnetwork, and updates the stored topology of the P2P network accordingly.

Description:
METHOD AND AERANGEMEN IN A lEER-TD-FEERNEIWORK

Technical field

[0001] The invention relates generally to a method and arrangement for enrolling a joining peer to a peer-to -peer network

Background

[0002] Various services have been developed involving packet-based

communication using IP (Internet Protocol), typically mvolving transmission of media and messages between communication nodes such as fixed or mobile telephones, computers and servers. Eor example, a media session according to a requested IP service is typically established for a user terminal, acting as "clien , by means of an application or service node, acting as "server". The application or service function may be implemented in a central service node or application server, e.g. belonging to an IMS (IP Multimedia Subsystem) network

[0003] IP communication sessions can also be established and handled solely by user terminals without mvolving any intermediate central service node, thus forming a peer-to-peer (P2P) network with participating peers, e.g. for sharing processing and/ or storing resources with the purpose of performing a certain task or function. Some examples of P2Pnetworks are distributed databases, calculation and processing of data, any so-called "cloud services", delivery of distributed media content such as films or music, electronic games, distributed search engines, and so forth. This type of "virtual" network is sometimes referred to as an "overlay P2P network' and can be formed on a more or less temporary basis mvolving any selection of peers, such as the nodes exemplified above, being connected to various networks for IP communication.

[0004] Basically, a P2P network does not distinguish between clients or servers but comprise only equal peer nodes that simultaneously can act as both clients and servers. This model of network arrangement thus differs from the client-server model above where the communication is controlled by some central server. In a P2P session, media and messages are transmitted in data packets directly between the peers and the data packets are routed through an IP network, e.g. the Internet, over various routers having their own mechanisms for handling different data flows.

However, the routers are typically not concerned with what media or messages the packets contain and can be considered transparent in this context, and the peers must therefore negotiate and agree on various communication parameters depending on their capabilities.

[0005] P2P applications on the Internet are becoming increasingly popular, e.g. for utilising resources in multiple nodes and for downloading content such as music and films. In the latter case, a technique referred to as "Ht Torrent" is a very powerful distribution mechanism that can be used for rapid sharing of content and computer programs over the Internet without requiring a traditional centralized content server. After obtaining a list of peers of a content distributed P2P network, an outside client can download different parts of some requested content

simultaneously from the peers in the list and form the complete content therefrom for playout iurthermore, so-called Distributed Hash Tables, DHTs, are typically used for identifying the peers for downloading.

[0006] In an overlay P2P network, the participating peers are connected to one another according to a certain network topology and may have differentiated capabilities that can be utilised in one way or another for contabuting to the general function or task to be performed by the P2Pnetwork ibr example, one peer may have a very powerful processor while another peer may have great storage capacity. Jig. 1 illustrates an example of how the topology of an overlay P2P network 100 mightbe configured, where a plurality of peers P1-P7 are connected according to a specific pattern. One peer PS may be assigned to work as a point of contact for outside terminals 102 for receiving service requests or queries, e.g. directed to a particular LMj(Universal Resource locator) address associated to peer P6.

[0007] During the lifetime of P2Pnetwork 100, peers may join or leave the network such that the overall topology is changed. Adding a joining peer to the P2P network can be referred to as "enrolment' of the peer. In Jig. 1 , a new peer PS is enrolled as it connects to one of the existing peers P7. As a result, peer PS will be connected to P7 in the new topology as illustrated. However, it is a drawback that this position in the network may be less than optimal and even impractical when considering the capabilities and current status of peer PS in relation to what is wanted or needed from the new peer PS to functionally contribute to the P2P network 100.

[0008] DHTs may be used in a P2P network for publication and discovery of different resources therein, i.e. capabilities and content in the participating peers. The existing store and lookup functions of the DHT mechanism may thus be used for discovery. Tne peers can also be allocated keywords representing its resources, which implies that the keywords of available resources mustbe distributed among the peers in the network such that each peer stores a distributed index of keywords, ibr example, the existing overlay algorithm called "Chord" requires that each peer has a so-called "finger" table and a neighbor table with such resource keywords.

[0009] lis therefore another drawback that the tables and indices mustbe updated in all peers whenever the network topology is changed, i.e. when peers join or leave the overlay network Yet another drawback when a peer is enrolled to a certain spot and a certain role in an overlay P2P network according to current known procedures, is that its position and role in the topology may notbe very suitable with respect to its current situation, status, resources and/ or capabilities. It is also difficult to employ load balancing amongst the peers for handling incoming requests. Summary

[00010] lis an objectof the invention to address atleast some of the problems and issues outlined above, lis also an object to provide a useful mechanism for enrolling a peer to an existing P2P network in an appropriate manner, e.g. to a proper position and/ or role in the network lis possible to achieve these objects and others by using a method and an arrangement as defined in the attached independent claims.

[00011] According to one aspect, a method is provided for enrolling a joining peer to a P2Pnetwork, to be executed by an enrolment server associated to the P2P network In this method, the enrolment server receives a connect request sent from the joining peer, and obtains an enrolment recommendation for the joining peer at leastbased on a stored current topology of the P2Pnetwork The enrolment server then sends attach information to the joining peer according to the enrolment recommendation in response to the connect request, the attach information basically mdicating where the joining peer shall connect to the P2Pnetwork ff the enrolment is completed, the enrolment server updates the stored topology of the P2Pnetwork when the joining peer has connected to the P2Pnetwork

[00012] According to another aspect, an arrangement is provided in an enrolment server configured to enroll a joining peer to a P2P network by means of functional modules. According to this arrangement, the enrolment server comprises a communication module adapted to receive a connect request sent from the joining peer, and an obtaining module adapted to obtain an enrolment recommendation for the joining peer at least based on a stored current topology of the P2P network The enrolment server also comprises an updating module adapted to update the stored topology of the P2P network when the joining peer has connected to the P2P network The communication module is further adapted to send attach information to the joining peer according to the enrolment recommendation in response to the connect request, the attach information indicating how the joining peer shall connect to the P2P network

[00013] The above method and arrangement may be configured and implemented according to different embodiments. In some possible embodiments, the enrolment recommendation is further based on qualifications of the joining peer including at least one of: current context, capabilities and current status of the joiriing peer. The enrolment recommendation may be further based on at least one of: current roles and/ or qualifications of other peers in the P2Pnetwork, load balancing, connection costs, latency, and enrolment history and social network information regarding the joining peer.

[00014] In further possible embodiments, the enrolment recommendation may indicate one or more admitting peers to which the joining peer shall be connected in the P2P network, and may also indicate a bootstrap peer in the P2P network which handles an attach procedure for the joining peer when connecting to the admitting peer(s) by relaying attach messages. The enrolment recommendation may further indicate a role the joining peer shall have in the P2P network, the role involving one or more processing and/ or storing tasks. In that case, the enrolment server further sends configuration information to the joining peer indicating that role. The enrolment recommendation may also indicate one or more index keywords to be assigned to the joining peer for use in service requests or queries to the P2P network from outside parties.

[00015] The enrolment server may also at some point receive a leave request from a peer in the P2P network, indicating that this peer is leaving the P2P network, and the enrolment server then updates the stored topology of the P2Pnetwork

accordingly.

[00016] Rjrther possible features and benefits of this solution will become apparent from the detailed description below. Bief description of drawings

[00017] Hie invention will now be described in more detail by means of exemplary embodiments and with reference to the accompanying drawings, in which;

[00018] Jig. 1 is a block diagram illustra ting a typical example P2Pnetwork, according to the prior art

[00019] Jig. 2 is a block diagram illustra ting a procedure and arrangement for enrolling a joining peer to a P2Pnetwork, according to an example embodiment

[00020] Rg. 3 is a flow chart with actions performed by an enrolment server for enrolling a joining peer, according to further example embodiments.

[00021] Rg. 4 is a block diagram illustra ting in more detail a arrangement in an enrolment server, according to another example embodiment

[00022] Jig. 5 is a sigralling diagram illustra ting a practical example of how a joining peer can be enrolled to a P2Pnetwork, according to further possible embodiments.

Detailed description

[00023] Eriefly described, a solution is provided to obtain a fitting enrolmentof a joining peer to a P2Pnetwork, e.g. in terms of position, function and role of the joining peer in the P2Pnetwork This can be accomplished by employing an enrolment function implemented in an enrolment server associated to the P2P network, e.g. as implemented in one of the peers therein The enrolment server obtains an enrolment recommendation for the joining peer atleastbased on the current topology of the network and optionally also based on certain qualifications of the joining peer. R>r example, these qualifications may relate to the current context, capabilities and/ or current status of the joining peer. The enrolment recommendation may be created by means of a recommender service which could be implemented either in the same node as the enrolment server itself or in another node in the P2Pnetwork

[00024] The obtained enrolment recommendation may refer to a suitable or fitting network position for the joining peer, i.e. specifying one or more peers in the P2P network the jo iriing peer shall be connected to, in the following description also referred to as "admitting" peer(s). The enrolment recommendation may also refer to a specific role or function the joining peer shall have in the network, i.e. which task(s) or opera tion(s) are required to be performed in order to contribute to the overall function of the P2P network in a fitting or even optimal manner, ibr example, the joiriing peer may be appointed to store a certain type and/ or amount of data if the P2P network has the overall function of a distributed database. The role may thus involve one or more storing and/ or processing tasks.

[00025] The enrolment recommendation may further refer to a so-called "bootstrap peer" in the P2Pnetwork which handles the attach procedure for the joining peer when connecting to the admitting peer(s). The bootstrap peer may be the enrolment server itself or another peer node in the P2P network The enrolment server sends attach information to the joining peer according to the enrolment recommendation, indicating where the joining peer shall connect to the P2P network The enrolment server may further send configuration information to the joining peer indicating its future role in the P2P network

[00026] Once the joining peer has connected to one or more admitting peers and has thus joined the P2P network according to the enrolment recommendation and sent attach information, the enrolment peer updates the current topology and configuration of the P2P network accordingly, which may be maintained in a database or the like e.g. implemented in one of the networks peers or in an external node. [00027] An example of how a joining peer can be enrolled to a P2Pnetwork in accordance with Ibis solution, will now be described with reference to Jig. 2. lis assumed that the schematically shown P2P network 200 involves a plurality of peers connected to one another according to a certain network topology, not shown here but the topology may be similar to that shown in Jig. 1, without limitation thereto. It is also assumed that the P2Pnetwork 200 has been formed in order to fulfill some function or task requiring various resources in the peers which may have

differentiated capabilities and contribute in different or equal ways to the general function or task, as in the network of Jig. 1.

[00028] An outside peer 202 will now join the network 200, which can be accomplished in a fitting manner as follows, the peer 202 being hereafter accordingly referred to as a joining peer. A first action 2:1 illustrates that the joining peer 202 initially contacts one of the peers in the network, denoted "Px", and performs a regular discovery process with peer Px. The peer Px may act as a point of contact for outside parties to the P2Pnetwork 200, e.g. for receiving service requests and queries directed to a public URLaddress of Px, or may in another way be known to peer 202. In the discovery process, peer Px directs the joining peer 202 to contact an enrolment server 204 to proceed with the enrolment to network 200. The enrolment server 204 may be implemented in one of the peers of the P2Pnetwork 200 which may or may notbe the same peer as the one Px acting as a point of contact for external parties.

[00029] In a next action 2:2, the joining peer 202 accordingly sends a connect request to enrolment server 204. The connect request is effectively a request for joining the P2Pnetwork 200 in order to contribute to its function or task with new resources in a suitable manner. Without limitation, the function or purpose ofP2P network 200 could be anything that can be realized with such a network, which was exemplified in the background section above, and the invention is thus not limited in this respect The invention is neither limited to any particular resources in me joining peer 202 mat will be utilised once it has joined the network 200. As mentioned above, such resources may be related to one or more of processing and storing capabilities as well as stored content or data and installed applications in the peer 202.

[00030] In this action, the joining peer 202 also sends information on its available resources and may also send information on its current context and/ or terminal status to the enrolment server 204. The context may relate to geographic position, physical environment and characteristics of the peer's current access network, e.g. in terms of traffic class, available bandwidth and latency. The terminal status may relate to a current mode of operation, any activated call forwarding, etc.

[00031] After receiving the connect request from peer 202, the enrolment server 204 checks basically if the peer is authorised to join the P2Pnetwork 200, in a following action 2:3, e.g. by means of an internal process or by contacting some external credential server or the like, not shown, that can verify the peer 202 by authentication based on credentials stored for the peer. The verification procedure itself is somewhat outside the scope of this solution and is not necessary to describe here to understand the invention

[00032] The enrolment server 204 then generally obtains an enrolment

recommendation for the joining peer 202 , in this example by triggering the recommendation from a recommender service 206 in an action 2:4. In practice, the recommender service 206 may be implemented in the same node or peer as the enrolment server 204, or in any other node or peer of the network 200, while it is schematically shown as a separate functional unit in Jig. 2. It is assumed that the above information on resources and current context and/ or status of peer 202, if received therefrom, is made available to the recommender service 206.

[00033] The recommender service 206 retrieves information on the current topology of the P2Pnetwork 200, in a further action 2:5, which is maintained in a database 208 associated to the network 200. The network topology thus basically refers to how the peers in network 200 are connected to one another. The recommender service 206 may also retrieve, from database 208, information on the other peers in the P2P network, such as their current roles in the network and/ or qualifications, which together with the network topology accordingly make up the configuration of P2Pnetwork 200.

[00034] a next action 2:6, recommender service 206 creates an enrolment recommendation for the joining peer 202, atleastbased on the retrieved topology information and optionally also based on qualifications of the joining peer including at least one of: its current context, capabilities and current status. The creation of the enrolment recommendation may be further based on at least one of: current roles and/ or qualifications of other peers in the P2Pnetwork 200, load balancing, connection costs, latency, enrolment history and social network information regarding the joining peer.

[00035] The current roles and/ or qualifications of other peers may be extracted from the information retrieved in action 2:5 above. The load balancing aspect refers to the distribution or allocation of tasks among the peers to even out their load and/ or to utilise their resources in an effective or even optimal manner. The connection costs refer to access and transport costs for communicating data and messages to/ from the individual peers in the network 200, and the total connection costs for the network should naturally be kept low. The latency refers to any resulting delays when communicating data and messages to/ from the individual peers which may be important for certain services. The enrolment history refers to any previous enrolmentis) of the peer 202 to network 200 or to other P2P networks and which role it had then, and any previous recommendations made for peer 202 can be used as input data. The social network information mainly refers to the physical or topological closeness, i.e. proximity, of the joining peer to other peers in the network A social graph may be maintained in database 208 representing such information.

[00036] According to different possible options, the created enrolment

recommendation may indicate a position the joining peer shall have in the P2P network, i.e. one or more other peer(s) to which it shall be directly connected in the P2P network, in the following referred to as "admitting peers", implying a new topology. The enrolment recommendation may further indicate a role the joining peer shall have in the P2Pnetwork, e.g. involving one or more processing and/ or storing tasks.

[00037] In order to create a fitting enrolment recommendation for the joining peer 202, different candidate network positions and roles for the joining peer 202 may be tried out, e.g. by calculating the performance of the resulting network topology and configuration for each candidate position/ role in terms of efficiency, costs and load distribution. The recommendation may also comprise multiple alternatives of network positions and roles for the joining peer 202 with different resulting levels of performance, as calculated.

[00038] Hg. 2, recommender service 206 basically provides the created enrolment recommendation to the enrolment server 204, in a further action 2:7, e.g. indicating the most efficient network position connecting to one or more admitting peers and a suitable role for the joining peer 202, or multiple alternative positions/ roles as described above. The enrolment server 204 then updates the configuration of network 200 with the new peer 202, that is, according to the enrolmentrecommendation or a selected alternative thereof, in a following action 2:8.

[00039] As in prior P2P networks discussed above, the configuration of network 200 may be neatly defined by means of one or more index keywords assigned to each peer in the network 200, indicating available resources and/ or other characteristics of the respective peers. The index keywords may be organized in any manner, e.g. in multiple hierarchical levels of a tree structure, and can be used in service requests or queries to the P2P network from outside parties. In this invention, it is a great advantage that it is not necessary to imintain updated indices of keywords in the individual peers as they can be more efficiently

imintained by the enrolment server 204 instead. Thus, there is no need to distribute such indices of keywords amongst the peers, thereby saving much processing and communication costs.

[00040] ff such index keywords are employed in the E2P network 200, the enrolment recommendation in the above actions 2:6, 2 :7 may further indicate one or more index keywords to be assigned to the joining peer 202, and the enrolment server 204 updates the configuration of network 200 with the new index keyword(s) of peer 202 in action 2:8.

[00041] a next action 2:9, the enrolment server 204 sends so-called "attach information" to the joining peer 202 according to the enrolment recommendation in response to the connect request The attach information basically indicates where me joining peer shall connect to the P2Pnetwork, e.g. identifying the one or more admitting peers to which the joining peer 202 shall be connected in the P2P network, which could be indicated in a peer list Alternatively or additionally, the attach information may indicate one or more bootstrap peers in the P2P network assigned to handle an attach procedure for any joining peer when connecting to the admitting peer(s), by relaying attach messages between the joining peer and the admitting peer(s). In this example, one admitting peer "Py" is shown. Further, the enrolment server 204 will act as a bootstrap peer in this example and will thus handle the attach procedure for peer 202.

[00042] Unless the user of peer 202 decides to re frain from joining network 200 at this point, the joining peer 202 performs a regular attach dialogue with the assigned bootstrap peer, i.e. enrolment server 204, in a following action 2:10, typically involving an attach request from peer 202 and an attach response from server 204. This attach procedure may be executed auto matic ally without requiring any manual actions from the user. A further action 2:11 illustrates that enrolment server 204 relays the attach dialogue to the admitting peer Py. Hnally, after the attach procedure has been completed, the joining peer connects directly to the admitting peer Py in an action 2: 12, and the bootstrap peer/ enrolment server 204 accordingly updates the network topology and configuration maintained in database 208, in a last shown action 2:13. It should be noted that the joining peer may in this way connect to more than one admitting peer, and the above attach procedure of actions 2:10 - 2:12 may in that case be valid for each admitting peer.

[00043] In this way, the enrolment server 204 and the recommender service 206 can provide a suitable and fitting, if not optimal, position and role for me joining peer 202 by taking at least the current network topology and optionally also qualifications of the joining peer and of the other peers into consideration R>r example, a fitting position and role to be recommended for the joining peer 202 can be calculated in view of optimizing the overall network performance, as described above.

[00044] A procedure will now be described, with reference to the flow chart in Jig. 3, of enrolling a joining peer to a P2P network, which involves different actions executed by an enrolment server associated to the P2Pnetwork This procedure may thus basically be realised by means of the enrolment server 204 and the

recommender service 206 of Jig. 2. The P2P network may be an already existing network, or the procedure below may be part of forming the network

[00045] a first action 300, the enrolment server receives a connect request sent from the joining peer, basically corresponding to action 2:2 above, which preferably also contains information on the peer such as its qualifications and/ or context The enrolment server then checks credentials or the like of the joining peer to see if the peer is authorised to join the P2Pnetwork 200, in a following action 302, basically corresponding to action 2:3 above. A next determining action 304 illustrates that if the joining peer is not authorised, the connect request is rejected and the peer is denied to join in an action 306, while if the peer is authorised the enrolment server obtains an enrolment recommendation for the joining peer in an alternative action 308. The enrolment recommendation can be created by using information on the network topology and optionally also on network peers, the information being maintained in a database such as the database 208 of Jig. 2.

[00046] As described in the example of Jig. 2, the enrolment recommendation is at leastbased on the P2P network topology and optionally also based on

qualifications of the joining peer. The enrolment recommendation may be further based on any of: current roles and/ or qualifications of other peers in the P2P network, load balancing, connection costs, latency, enrolment history and social network information regarding the joining peer. The peer qualifications above basically indicate how each peer can work and contribute to the P2P network, and could suitably include at least one of: current context, capabilities and current status of the respective peers. Action 308 of obtaining the enrolment recommendation basically corresponds to actions 2:4 - 2:7 above.

[00047] In a further action 310, the enrolment server sends attach information to the joining peer according to the enrolment recommendation and in response to the connect request The attach information thus indicates basically where/ how the joining peer shall connect to the P2P network, and may include the address of one or more admitting peers or one or more bootstrap peers, as explained above for action 2:9. The nextaction 312 illustrates determination of whether the joining peer has actually joined the P2Pnetwork and is thus connected thereto. I " not, the process may simply end in an action 314. Otherwise, the network topology and configuration has accordingly changed by addition of the joining peer as dictated by the enrolment recommendation, and a final action 316 illustrates thatthe enrolment server updates the information on the topology and participating peers rmintained in the database, basically corresponding to action 2:13 above.

[00048] With reference to the block diagram in Jig. 4, an arrangement in an enrolment server 400 of a P2P network, configured to enroll a joining peer 402 to the P2Pnetwork, will now be described. This arrangement may be implemented as an application in the enrolment server. The enrolment server 400 can be configured to basically operate according to any of the examples described above for Jig's 2 and 3, whenever appropriate. According to this arrangement, the enrolment server 400 comprises a conmiunication module 400a adapted to receive a connect request "Iteq" sent from the joining peer.

[00049] Enrolment server 400 also comprises an obtaining module 400b

adapted to obtain an enrolment recommendation for the joining peer 402 atleast based on a current topology of the P2P network being stored in a database 404. Enrolment server 400 also comprises an updating module 400c adapted to update the stored topology of the P2P network when the joining peer 402 has connected to the P2Pnetwork The communication module 400a is further adapted to send attach information "Att" to the joining peer according to the enrolment recommendation in response to the connect request, the attach information indicating how the joiriing peer shall connect to the P2Pnetwork

[00050] The different modules in the enrolment server 400 may be configured and adapted to provide further optional features and embodiments. In one example embodiment, the enrolment server 400 also comprises a lecommender service 400d adapted to create the enrolment recommendation, e.g. in the manner described above for actions 2:5, 2:6 and 308, respectively. [00051] In further possible embodiments, the created enrolment recommendation obtained by module 400b can be further based on qualifications of the joining peer 402 including at least one of: current context, capabilities and current status of the joining peer. The enrolmentrecommendation can be further based on at least one of: current roles and/ or qualifications of other peers in the P2P network, load balancing, connection costs, latency, enrolment history and social network information regarding the joining peer 402.

[00052] In more detail according to further embodiments, the attach info imation Att may indicate a bootstrap peer in the P2P network which handles the attach procedure for the joining peer 402 when connecting to the admitting peer(s) by relaying attach messages. As in the above examples, the enrolment server 400 may also actas the bootstrap peer. The enrolment recommendation may indicate one or more admitting peers to which the joining peer shall be connected in the P2P network, and also which role the joining peer shall have in the P2P network in terms of one or more processing and/ or storing tasks. The communication module 400a may thus be further adapted to send configuration information to the joining peer indicating that role.

[00053] The enrolment recommendation may further indicate one or more index keywords to be assigned to the joining peer, which keywords can be used in any service requests or queries to the P2P network made from outside parties. The enrolment server could also, at some point during the lifetime of the P2P network, receive a leave request from a peer in the P2Pnetwork, indicating that this peer is leaving the P2P network, i.e. disconnecting therefrom, and updates the stored topology of the P2P network accordingly.

[00054] It should be noted thatilg. 4 merely illustrates various functional modules or units in the enrolment server 400 in a logical sense, although the skilled person is free to implement these functions in practice using suitable software and hardware means. Thus, the invention is generally not limited to the shown structures of the enrolment server 400, while its functional modules 400a-d may be configured to operate according to the features described for Jig's 2 and 3 above and Jig. 5 below, where appropriate.

[00055] The functional modules 400a-d described above can be implemented in the enrolment server 400 as program modules of a computer program comprising code means which when run by a processor in the server 400 causes the server 400 to perform the above-described functions and actions. The processor may be a single CPU (Central processing unit), or could comprise two or more processing units, For example, the processor may include general purpose microprocessors, instruction set processors and/ or related chips sets and/ or special purpose microprocessors such as ASICs (Application Specific Integrated Circuit). The processor may also comprise board memory for caching purposes.

[00056] The computer program may be carried by a computer program product in the server 400 connected to the processor. The computer program product comprises a computer readable medium on which the computer program is stored, ibr example, the computer program product may be a flash memory, a RAM

(Random-access memory), a ROM (Read-Only Memory) or an EEPRQM (Electrically Erasable Programmable ROM), and the program modules could in alternative embodiments be distributed on different computer program products in the form of memories within the enrolment server 400.

[00057] A practical example procedure of how a joining peer can be enrolled to a P2Pnetwork will now be described with reference to the sigmlling diagram of Elg. 5. This procedure thus involves a joining peer 500, an admitting peer 502, a bootstrap peer 504, an enrolment server 506 in which a recommender service is implemented, a credential server 508, and a database 510 in which a network topology and configurations of the network and participating peers are maintained. In this example, the bootstrap peer 504 is a node different from the enrolment server 506 while these two functions were put together in the same node in the previous example of Jig. 2.

[00058] Assuming thatthe joining peer 500 has already made contact to the P2P network and performed a regular discovery process as described for action 2.1 above, a connect request is transmitted from the joining peer 500 to the enrolment server 506, in a first shown action 5:1 , the request preferably also containing on the peer 500 such as its qualifications and/ or context The enrolment server 506 checks with the credential server 508 if the joining peer 500 is authorised to join the network, in an action 5:2. Assuming that this is indeed the case, enrolment server 506 continues with retrieving from database 510 a current network topology and information on the other peers in the P2P network such as their roles and qualifications, thus implying the configuration of the network, in a further action 5:3. The enrolment server 506 may also retrieve social network information regarding me joining peer from a specific social network server 512 mdicating its proximity to other peers, which is shown by an optional action 5:4.

[00059] In a next action 5:5, enrolment server 506 also defines one or more recommended index keywords to be assigned to the joining peer 500, thus mdicating available resources and/ or other characteristics of me peer 500 which may be used in service requests or queries to me P2P network from outside parties. The enrolment server 506 men creates, i.e. obtains, an enrolment recommendation for me joining peer 500, in a further action 5:6, on me basis of me information retrieved in action 5:4 and the information on peer 500 received therefrom in action 5:l. The enrolment recommendation indicates me admitting peer 502 to which me joining peer 500 shall be connected in me P2Pnetwork, and further indicates which role me joining peer 500 shall have in me P2P network mvolving one or more processing and/ or storing tasks. The enrolment recommendation further indicates me bootstrap peer 504 and me index keywords defined in action 5:5. [00060] a next action 5:7, enroknent server 506 sends attach information to the joining peer 500 indicating a configuration according to the enrolment

recommendation, i.e. where/ how peer 500 shall connectto the P2Pnetwork, in response to the connect request of action 5:1. Accordingly, the attach information identifies in this example the bootstrap peer 504 which has been assigned to handle an attach procedure for the joining peer 500 when connecting to the admitting peer 502, as follows. The attach information may also identify the admitting peer 502 to which the joining peer 500 shall be connected in the new network topology.

[00061] M keeping with the received attach information, the joining peer 500 now sends an attach request to the bootstrap peer 504, in a following action 5:8. The bootstrap peer 504 then forwards the attach request to the admitting peer 502 , in a nextaction 5:9, and also sends an attach response to the joining peer 500, in a further action 5:10. I " not already identified in the attach information of action 5:7 , the admitting peer is identified in the attach response. Thereby, the joining peer 500 is able to connectto the admitting peer 502 as of the recommended topology position and accordingly sends a join request thereto in an action 5:11.

[00062] M the connect procedure, the joining peer 500 and the admitting peer 502 may exchange information on their respective neighbors in the network, in a further action 5:12. The connect procedure is completed by the admitting peer 502 sending a join response to the joining peer 500, in another action 5:13. The joining peer 500 or the admitting peer 502 may also notify the enrolment server 506 that connection of the joining peer 500 to the P2P network has been completed, as indicated by dashed arrows in another action 5:14. Enally, the enroknent server 506 updates the network topology and information on

participating peers maintained in the database 510 with the joining peer 500 having connected to the P2Pnetwork, in another action 5:15. [00063] At some pointduring the lifetime of tiie P2Pnetwork, tiie enrolment server 506 may receive a leave request from any peer in tiie network, indicating tiiattiiis peer is leaving tiie P2Pnetwork, not shown in this figure. The enrolment server 506 will then remove the leaving peer and update tiie stored topology of tiie P2P network accordingly.

[00064] Ey using tiiis solution e.g. according to any of tiie embodiments described above, tiie enrolment of new peers to a P2P network can be made more efficient or even optimal since at least tiie network topology and preferably also peer qualifications and current configurations are taken into consideration when defining a fitting network position and role for each new peer. The enrolment process will also impact the ongoing performance of the network as little as possible, ibr example, any other existing procedures and mechanisms for operating a regular P2P network can basically be used withoutbeing impacted by the inventive enrolment process.

[00065] While the invention has been described with reference to specific exemplary embodiments, the description is generally only intended to illustrate the inventive concept and should notbe taken as limiting the scope of the invention ibr example, the terms "peer", "P2Pnetwork", "enrolment server", "admitting peer", "bootstrap peer", "network topology" and "index keywords" have been used thro ughout this description, altiiough any other corresponding functions, parameters, nodes and/ or units could also be used having the functionalities and characteristics described here. The invention is defined by the appended claims.