Node for providing a file service to a mobile terminal

A node for providing a file service to a mobile terminal, the node comprises mobile terminal interface, and a file system for a plurality of users, each user having a user folder. The node is configured, in response to receiving a request for file access from a mobile terminal, to identify a user folder, to determine whether the file managing system manages the user folder and, in dependence upon whether the file managing system manages the user folder, to retrieve an entry point for the user folder and to transmit the entry point to the mobile terminal.

FIELD OF THE INVENTION

The present invention relates to a node for providing a file service to a mobile terminal, particularly, but not exclusively, for use in a Next Generation Network.

BACKGROUND ART

Next Generation Networks (NGNs) allow operators to incorporate voice, video and data services into customised service bundles. Thus, a need arises to provide mobile users with the facility to organise and share files. A need also arises to allow mobile users to access services through local and global networks, regardless of access environment, location and operator.

Existing wireless telecommunication networks allow subscribers to make and receive voice calls using their terminals via a wireless network other than one with which they are registered (usually referred to as a “visited network” and a “home network” respectively). This service is known as “roaming”.

Much effort has been directed to providing fast, seamless voice roaming. However, little attention has been paid to the problem of how to allow mobile users to access and share files easily and conveniently. In most cases, mobile users access files located in their home network by accessing a portal via an Internet connection.

The present invention seeks to provide a node for providing a file service to a mobile terminal.

SUMMARY OF THE INVENTION

According to a first aspect of certain embodiments of the present invention there is provided a node for providing a file service to a mobile terminal, the node comprising an interface for interfacing with a mobile terminal, a system for managing files for a plurality of users, each user having a user folder, and at least one processing module configured, in response to receiving a request for file access from a mobile terminal, to identify a user folder, to determine whether the file managing system manages the user folder and, in dependence upon whether the file managing system manages the user folder, to retrieve an entry point for the user folder and to transmit the entry point to the mobile terminal.

Thus, a user can access their files seamlessly through such nodes.

The node may further comprise storage for storing metadata for the file system, wherein the at least one processing module is configured to retrieve the entry point from the metadata.

The at least one processing module may be configured, in response to determining that the file managing system does not manage the user folder, to identify another node which manages the user folder, to request metadata for the user folder from the other node, to receive the metadata from the other node, to retrieve the entry point from the metadata and to transmit the entry point to the mobile terminal. The node may comprise storage for storing metadata, wherein the at least one processing module is configured to store received metadata in the metadata storage for at least a predetermined duration of time.

The at least one processing module may be configured to identify a user from the request and, in dependence upon a user identity, to identify the user folder. The at least one processing module may be configured, in response to receiving a command to grant permission to a second user to access a first user's file or folder, to identify a node managing the second user's user folder and to send a message to the node, the message including metadata for the file or folder.

The node may further comprise storage for storing metadata for the file system, wherein the at least one processing module is configured, in response to receiving a message from another node granting permission to the user to access another user's file or folder and which includes metadata for the file or folder, to stored the metadata in the metadatastorage.

The at least one processing module may be configured to inspect a network identifier provided by the mobile terminal so as to determine whether the file managing system manages the user folder. The entry point may comprise a security identifier. The at least one processing module may be configured, in response to receiving a request for file access from a mobile terminal, to authenticate the mobile terminal.

According to a second aspect of certain embodiments of the present invention there is provided a node for providing a file service to a mobile terminal, the node comprising an interface for interfacing with a mobile terminal, a system for managing files for a plurality of users, each user having a user folder, and at least one processing module configured, in response to receiving a command to grant permission to a second user to access a first user's file or folder, to identify a node managing the second user's user folder and to send a message to the node, the message including metadata for the file or folder.

Thus, a user can share files easily through such nodes.

According to a third aspect of certain embodiments of the present invention there is provided a node for providing a file service to a mobile terminal, the node comprising an interface for interfacing with a mobile terminal, a system for managing files for a plurality of users, each user having a user folder, and at least one processing module configured in response to receiving a message from another node granting permission to a second user to access a first user's file or folder and which includes metadata for the file or folder, to store the metadata in the metadatastorage.

According to a fourth aspect of certain embodiments of the present invention there is provided a system for serving a file comprising the node and storage, remotely located from the node, for storing the files.

According to a fifth aspect of certain embodiments of the present invention there is provided a communications network including the file serving system.

The communications network may include at least one access point configured, in response to receiving a request for connection to a node from a mobile terminal, to return an address for the node to the mobile terminal.

According to a sixth aspect of certain embodiments of the present invention there is provided a method of operating a node for providing a file service to a mobile terminal, the method comprising receiving a request for file access from a mobile terminal, identifying a user folder, determining whether the node manages the user folder, retrieving an entry point for the user folder and transmitting the entry point to the mobile terminal.

The method may further comprise identifying another node which manages the user folder, requesting the metadata for the user folder from the other node, receiving the metadata from the other node, retrieving the entry point from the metadata.

According to a seventh aspect of certain embodiments of the present invention there is provided a method of operating a node for providing a file service to a mobile terminal, the method comprising receiving a command to grant permission to a second user to access a first user's file or folder, identifying a node managing the second user's user folder and sending a message to the node, the message including metadata for the file or folder.

According to an eighth aspect of certain embodiments of the present invention there is provided a method of operating a node for providing a file service to a mobile terminal, the method comprising receiving a message from another node granting permission to a second user to access a first user's file or folder and which includes metadata for the file or folder, and storing the metadata in metadatastorage.

According to a ninth aspect of certain embodiments of the present invention there is provided a computer-readable medium storing a computer program comprising instructions which, when executed by at least one computer causes the at least one computer to perform the method.

DETAILED DESCRIPTION OF EMBODIMENTS

Referring toFIG. 1, a system of data networks1,2,3in accordance with some embodiments of the present invention is shown. The data networks1,2,3are accessed via respective access networks4,5,6and interconnected by a backbone network7.

In this example, the data networks1,2,3are General Packet Radio Services (GPRS) core networks and the access networks4,5,6are UMTS Terrestrial Radio Access Networks (UTRANs). However, the data networks1,2,3and access networks4,5,6need not be third-generation mobile telephone networks or even mobile telephone networks. For example, the access networks4,5,6(which can be unified with their respective data networks1,2,3) can be wireless networks, for example conforming to IEEE 802.11, often referred to as a “wireless local area network” or WLAN, or IEEE 802.16, usually known as “WiMax”, or even wired networks. Each data network1,2,3may be accessible via more than one access network (not shown) using different forms of connectivity. In this example, the data networks1,2,3are Internet Protocol (IP) networks, although they need not be IP networks.

The data networks1,2,3are controlled by different network operators (not shown) and serve different geographic regions. However, different networks1,2,3can serve the same region(s).

In a first location8, a user (not shown) subscribes or is registered to use the first network1and is able to store and access data via the first network1(referred to as their “home” network) using a mobile terminal9(or “user equipment”). As will be explained in more detail later, in a second location10, the user can also access their data via the second network2(referred to as their “visited” or “roamed” network). Furthermore, the user can also share their data with another user (not shown) through their corresponding terminal11.

Each data network1,2,3includes at least one node12,13,14(hereinafter referred to as “service nodes”) for providing a file service, for example providing access to the user's files15, to mobile terminals9,11. Responsibility for the user's files15is taken by the node12in the user's home network1(hereinafter referred to as “the home node”). However, if there is more than one service node in the user's home network1, then one of the service nodes is chosen to be the home node12, for example, when the user first registers with the network1.

Each data network1,2,3has a respective storage farm16,17,18each comprising at least one storage device191, . . . ,19N. Only storage devices191, . . . ,19Nfor a first storage farm16are illustrated for clarity. If a home node12receives a request20from a subscriber to access their files15and the subscriber is located in their home network1, then the home node12returns, to the mobile terminal9, a metadata entry point21for accessing the files15. However, if a different node13receives the request20, e.g. because the subscriber is visiting the second network2, then the node13identifies the home node12, retrieves and caches metadata22, and returns the metadata entry point21to the mobile terminal9.

To help identify and/or authenticate mobile terminals9,11, the service nodes12,13,14may interrogate operator databases23,24,25, such as home subscriber servers or user profile server.

As shown inFIG. 1, the service nodes12,13,14can be accessed via respective gateways26,27,28.

Referring toFIG. 2, the service node12,13,14is shown in more detail.

The service nodes12,13,14are provided by servers42(FIG. 3) implemented in the network domain (i.e. ISO/OSI layer 3) with interfaces to the core network1,2,3(FIG. 1), storage pools16,17,18and operator databases23,24,25. In this example, the service nodes12,13,14are neither part of the core network1,2,3(FIG. 1), nor sit on network elements (not shown), such as switches.

Each service node12,13,14interfaces with network elements through protocols, such as DIAMETER for interfacing with the operator's subscriber register15,16,17, and session initiation protocol (SIP) for session initiation and control.

Each service node12,13,14includes an access function29(hereinafter referred to as the “access point”), a home network interfacing function30(hereinafter referred to as the “home point”) and a file serving function31(hereinafter referred to simply as the “serving point”). A function may also be referred to as a “component” or “module”.

The access point29includes a session manager32, a home point identifier module33and a routing request manager34.

The access point29is configured to manage sessions between the service node12,13,14and mobile terminals9,11, to identify the mobile terminal's home point30and to route messages between the mobile terminal9,11and the home point30and the serving point31, which may be attached to the same or a different node12,13,14.

Requests from mobile terminal9,11are directed to the access point29of the node12,13,14in the network1,2,3to which the mobile terminal9,11is connected. Thus, taking the example of the first mobile terminal9, if the mobile terminal9is connected to its home network1(FIG. 1), then it will connect to the access point29of the node12of its home network1(FIG. 1). If the mobile terminal9is connected to a visited network2(FIG. 1), then it will connect to the access point29of the node13of the visited network2(FIG. 1).

The node12in the subscriber's home network1(hereinafter referred to as the subscriber's “home node”) and its corresponding home point30(“the subscriber's home point”) is identified using the subscriber's network identifier, which in this example is in the form of a telephone number. However, the subscriber's network identifier may take other forms, such as data stored on a subscriber identity module (SIM) or data entered into the mobile terminal9by the user.

The subscriber's network identifier is used by the access point29to identify the subscriber's home network1. A configuration of the home point30for the home network1is retrieved from a table (not shown) listing peer nodes12,13,14, for example stored in each operator database23,24,25or in another database (not shown).

The access point29manages sessions and profiles by caching file system metadata and user information, including credential information and information about the configuration of the subscriber's home point30.

A new session is established each time a client51(FIG. 4) is started on the mobile terminal9. An existing session ends when the client51(FIG. 4) terminates, the session times out or a new session is established for the same network identifier.

The home point30includes a subscriber identification and authentication module35, a home point identifier module36and a request routing module37.

The home point30interfaces with the operator database23,24,25in its network1,2,3which stores subscription-related records (also referred to as “user profiles”) and authentication and authorisation data.

The home point30also maps the subscriber's network identifier (e.g. telephone number) to the user's security identity in the serving point31of each network1,2,3. The home point30stores a table including entries, each entry listing a network identity (herein also referred to as “NetworkID”), for example in the form of a country and area code, a user identity for example in the form of a telephone number (within given country and area) and a corresponding security identity (herein also referred to as a “SID”). The security identity is generated at a service node12,13,14where a file is hosted, which may be the user's service node or an inviter's service node.

The serving point31includes a file system facade38and stores metadata39(including user's meta data22) and a file system40.

The serving point31provides an interface with the network operator's file system40and respective storage farms16,17,18. In this example, each storage farm16,17,18is located in its respective data network1,2,3. For example, the storage farm16,17,18may be physically co-located with the service point31. However, the storage farm16,17,18need not be located in the data network1,2,3and storage devices19t, . . . ,19Nproviding the storage farm16,17,18may be distributed.

Referring toFIG. 3, the access point29, home point30and serving point31are implemented by respective servers42. However, more than one server42can be used to implement each component29,30,31. In some embodiments, the servers are co-located. In other embodiments, the servers42are distributed.

Each server42includes a processor43, memory44and an input/output (I/O) interface45operatively connected by a bus46. A server42may include more than one processor. The I/O interface45is operatively connected to a network interface47, storage48in the form of hard disc drives and, optionally, removable storage49. Other elements, including peripheral devices such as keyboards (not shown) and displays (not shown), may be temporarily or permanently provided.

Respective computer program codes50which, when executed by a server42, causes the server42to provide a components29,30,31are stored on a hard drive48and loaded into memory44for execution by the processor43. The computer program codes50may be stored on and transferred from removable storage49or through network interface47from a remote source (not shown).

Referring toFIGS. 1,2and4, a method of discovering a service node12in a home network1will now be described, in which a mobile terminal9contacts its home operator's service node12and creates a session which enables the user to proceed with file and folder operations, such as storing, updating and reading files.

The user starts a client51on their mobile terminal9. If not already connected to the data network1, the client51automatically (e.g. without further user instruction) causes the mobile terminal9to establish a connection with the data network1.

The client51sends a query52to the gateway26asking for availability and an address of the network's access point29(step S401). The gateway26returns a message53which includes the address (e.g. an access point name or an IP address) of the network's access point29(step S402) and the client51sends a request54to the identified access point29to be connected thereto (step S403).

The access point29creates a session (step S404), identifies the home point30of the home node12(i.e. the “user's home point”) (step S405) and retrieves an access address of the user's home point30(step S406).

The access point29contacts the user's home point30and sends a request55to authenticate the user (step S407). The request55identifies the user using a network identity (e.g. country and area codes) and a user identity (e.g. telephone number). The user's home point30returns a message56verifying (or not) that the user is authenticated (step S408). The verifying message56includes a security identifier for the file system40. If the user is authenticated, then the process continues, otherwise it terminates.

The access point29determines whether the user is camped in their home network (i.e. whether the service node12is the user's home node) (step S409). If the service node12is the user's home node, then the access point29sends a message57to inform the client51that it is connected and identifies the session (step S410). In the event that the service node12is not the user's home node (i.e. that the user's home point is provided by a different service node13,14), the access node29responds differently and the response is described hereinafter with reference toFIG. 6.

The client51sends a request20to the access point29for the user's entry point of metadata (step S411). The request20, which may be referred to as a “call function”, can specify whether an entry point to a root folder or a specific folder is required. For example, a request “GetMDSEntryPoint( )” can be used to ascertain the entry point to the root folder. Alternatively, a request “GetMDSEntryPoint(EntityID)” can be used to find entry point for a folder specified by the argument, namely EntityID. If the client51knows the EntityID for the root folder, then GetMDSEntryPoint(EntityID) can be used to find the entry point for the root folder. As will be described in more detail later, the entry point metadata21describes a folder and its content. The access node29checks whether the user is in its home network (step S412). If the user is in its home network, then the access node29sends a request20to the home point30requesting the user's entry point of metadata (step S413). The request20is forwarded to the serving point31(step S414). The serving point31retrieves the user's metadata entry point21from metadata39(FIG. 2) and returns the metadata entry point21to the home point30(step S415), which in turn forwards it to the access point29(step S416). The access point29forwards the metadata entry point29to the client51(step S417).

The user's metadata entry point21is stored locally (i.e. in the mobile terminal9) until a predefined event or timeout occurs. Using the metadata entry point21, the user is able to proceed with other operations, such as uploading, downloading, sharing or changing the file and folder attributes.

Referring toFIG. 5, the structure60of the metadata entry point21is shown in the form of an XML schema diagram.

A metadata entry point21includes information61about a folder (e.g. a root folder) and information62about its content.

The folder information61may include an entity identifier63(herein also referred to as “EntityID”), an entity name64and an entity type65.

Likewise, the content information62may include information66about each entity in the form of a set of attributes67which may include an entity identity68, an entity name69and an entity type70. The entity may be a file or a folder. The entity identity68can be used by a client51in subsequent requests for information about sub-directories.

The metadata entry point21for a root folder may also include invitations72from other users to access files. Each invitation72includes information73about the file or folder that the user has been invited to access and includes an inviter identity74, an invitee identity75, an entity identity76, a security identity77and a network identity78.

An example of a metadata entry point21for a root folder conforming to the structure60shown inFIG. 5is given below:

The root folder is called “John Root” and is identified in the file system by an EntityID “5”. The root folder contains a folder called “My Documents” and a file called “picture.jpg” identified by EntityIDs “7” and “6” respectively.

The root folder also includes an invitation from another user to access a folder (not shown). The invitation does not specify the name of the folder. However, the invitation identifies the file in the inviter's file system using an EntityID and a SID assigned by the inviter's service node and identifies the inviter's network using an inviter's network ID, in this case, using country and area codes, and the inviter's user ID, in this example, using a telephone number within the network (i.e. excluding any county and area codes). The invitation also specifies the invitee, in this instance, using the invitee's telephone number within the network.

It will be appreciated that the example just given is simplified and that a metadata entry point21may contain many more sub-entities.

A metadata structure is a whole set of ordered data organized in a parent-child hierarchy in which each element contains information about its own and its underlying name, type, structure, contents, and invitation characteristics.

A metadata entry point is a subset of a metadata structure which only contains information about a particular entry point and its underlying files and folders, with no further information about other elements in the hierarchy and no information about the contents of its subfolders. Hence, the entry point represents a peek into a certain point in the metadata structure.

As will be explained in more detail later, in certain circumstances, initial queries are for the metadata structure so as to cache the whole structure in a visited network and, thus, minimize traffic. Subsequent queries are for entry points in the cached metadata structure. Therefore, most of the user's requests are querying for entry points.

Below is an illustration in XML notation of a metadata structure and a certain metadata entry point in that metadata structure:

Referring again toFIG. 4, once a client51has sent a request20for an entry point to the user's root folder, e.g. using GetMDSEntryPoint( ), and received a metadata entry point21for the root folder, then the client51can send further requests20for an entry point to sub-folders, e.g. using GetMDSEntryPoint(EntityID).

Referring toFIGS. 1,2and6, a method of discovering a service node13in a visited network2will now be described, in which a user wishes to access files and folders in their home network1.

The user starts a client51on their mobile terminal9. If not already connected to the data network2, the client51automatically (e.g. without further user instruction) causes the mobile terminal9to establish a connection with the data network2.

The client51sends a query52to a gateway27asking for availability and an address of the network's access point19and requests connection in the same way as steps S401to403hereinbefore described (steps S603). The access point29of the visited service node13creates a session (step S604), identifies the home point30of the home node12(i.e. the “user's home point”) (step S605) and retrieves an access address of the user's home point30(step S606) in the same way as steps S604to606hereinbefore described. Also, the access point29may contact the user's home point30(step S607) and send a request55to authenticate the user, to which the user's home point30returns a message56verifying (or not) that the user is authenticated and, if authenticated, the security identity (step S608).

The access point29determines whether the network2is home to the user or whether the user is visiting (step S609). If the service node13is visiting, then the access point29sends a request79to the user's home node to be sent metadata22(step S610).

The home point30at the user's home node12forwards the request79to the service point31(step S611).

The service point31returns metadata21for the user to the home point30(step S612), which in turn forwards the metadata22to the access point29(step S613). The metadata22describes the user's file structure including a top-level folder and sub-folders, and files therein.

The access point29caches the metadata22locally (step S614). The access point29sends a message57to inform the client51that it is connected and identifies the session (step S616).

The client51sends a request20to the access point29for the user's metadata entry point21(step S617). The access node29checks whether the user is in its home network (step S618). If the user is visiting, then the access node29retrieves the user's metadata entry point21stored locally and returns the metadata entry point21to the client51(step S619).

Using the metadata entry point21, even though they are located in a visited network2, the user is able to proceed with other operations, such as uploading, downloading, sharing or changing the file and folder attributes in the same way that they could in their home network1.

Metadata22includes information81about the user's folder and information82about its content, i.e. each entity, such as a file or folder.

The folder information82includes an entity identifier84, an entity name85and an entity type86.

The content information82includes information87about each entity including a set of attributes88which may include an entity identity89, an entity name90and an entity type91. The entity may be a file or a folder.

The metadata22includes invitations92(if any) from other users to access files.

Each invitation92includes information93about the folder or file that the user has been invited to accesses and includes an inviter identity94, an invitee identity95, an entity96, a security identity97and a network identity98.

Once a user has discovered their local service node12,13,14, they can carry out several file and folder operations, such as storing files, and this is hereinafter described in more detail. Furthermore, the user can share their files and folders with other users from the same or different network1,2,3or share files and folders of other users.

Referring toFIGS. 1,2and8, a method of sending an invitation from a user (“the inviter”) to another user (“the invitee”) to view or share a file will now be described. The access network gateway is omitted for clarity.

The client51(of the inviter's mobile terminal9) establishes a connection with a service node12,13, as hereinbefore described.

The client51sends an invitation100to share a file to the access point29(step S901). The invitation100specifies a user identity of the invitee (e.g. the telephone number of a mobile terminal11) and a file identity of the file or folder to be shared.

The access point29forwards the invitation100to the inviter's home point30(step S902). The inviter's home point30identifies the invitee's home point30(step S903) and retrieves the configuration for the invitee's home point30(step S904).

The inviter's home point30sends an instruction101to the inviter's service point31to share the specified file or folder (step S905). The inviter's service point21returns a message102to the inviter's home point30which specifies a metadata entry point and a security identity (step S906). The inviter's home point30also sends an invitation103to the invitee's home point30notifying it that the invitee is invited to share the specified file or folder (step S907). The invitee's home point30forwards the invitation103to the invitee's service point, which in turn updates invitee's metadata to indicate that a shared file (step S908).

Referring toFIG. 9, the structure104of the invitation103is shown in more detail.

Each invitation103has a set of attributes105which includes an inviter identity106, an invitee identity107, an entity identifier108, a security identity109and a network identity110. The network identity110is specified to avoid generating multiple security identities109for a given invitee.

Referring toFIGS. 1,2and10, a method of downloading a file will now be described, in which a user downloads a file from a so-called “file home point” which may be the user's home point12or the inviter's home point14.

The client51(which may be running on the first or second mobile terminal9,11) establishes a connection with a service node12,13,14as hereinbefore described.

The client51sends a request111to the access point29, which may be in a home network1or a visited network2(step S1001). The request specifies a file identity and a network identity which identifies the network1,2,3in which the file is stored. Thus, if the user wishes to download their own file(s), then the network identity specifies, in the case of first mobile terminal9, the first data network1or, in the case of the second mobile terminal11, the third data network3. If, however, the user wishes to download shared file(s), then the network identity specifies, in the case of second mobile terminal11, the first data network1.

The access point29forwards the request111to the user's home point30(step S1002). The home point30checks if the file is located in the attached service point31(step S1003).

The home point30sends a request112to the service point31to return the specified file(s)13(steps S1004& S1005). In the case where the file is not located in the attached service point31, the request103is sent via the invitee's home point30.

The service point31returns the specified file(s)13to the user's home point30(steps S1006& S1007), which in turn forwards the file(s) to the mobile terminal9(steps S108&1009).

Referring toFIG. 11, a method of uploading a file will now be described, in which a user uploads a file from their mobile terminal9to their home point12. In this example, the user can only upload a file to their folder and not to a folder belonging to another user. Thus, the “file home point” is the user's home point12. The access network gateway is omitted for clarity.

The client51establishes a connection with a home node12,13,14, as hereinbefore described.

The client51sends a request113to the access point29, which may be in a home network1or a visited network2(step S1101). The request113specifies a folder identity and the file.

The access point29forwards the request113to the user's home point30(step S1102). The home point30forwards the request113to the file service point30, in this case, the service point30of the user's home point12(step S1103).

The file service point30returns a file identity114to the home point30which updates the metadata (step S1104) and forwards the file identity109to the mobile terminal9.

It will be appreciated that many modifications may be made to the embodiments hereinbefore described. For example, file services may be accessible through the Internet. Each node can be used to provide a file service to a plurality of different mobile terminals. File services may overlap. For example more than two users may be invited to access the same file(s). Furthermore, users can exchange invitations. For example, a user may invite another to access one or more of their files and vice versa.