Patent Publication Number: US-8527987-B2

Title: Method and device for installing applications on NFC-enabled devices

Description:
TECHNICAL FIELD 
     The invention relates to the field of Near Field Communication (NFC), and in particular to a method for installing applications on an NFC-enabled device. 
     BACKGROUND 
     Near Field Communication (NFC) is a radio frequency (RF) technology allowing electronic devices equipped with NFC communication modules comprising a transmitter and/or a receiver to communicate with each other over short ranges. Electronic devices adapted for NFC communication is often referred to as NFC-enabled devices. 
     Today, NFC technology is primarily used to connect electronic devices, access digital content, admission control to specific premises, and make contactless transactions. For example, NFC can be used to connect wireless components in a home office system or a headset with a mobile phone, to read a “smart” poster embedded with an RF tag and to pay for tickets, access or other products using an NFC-enabled mobile phone. 
     The NFC Forum is an organization that promotes the use of NFC technology in consumer electronics, mobile devices, and PCs by providing a framework for NFC application development and interoperability between NFC-enabled devices. The NFC Forum develops standards-based specifications that define NFC device architecture and protocols for interoperability. 
     The NFC Forum has specified a message format definition referred to as the Generic Control Record Type Definition (Generic Control RTD) in order to provide a way to request any specific action to an NFC-enabled device (a destination device) from another NFC-enabled device, a tag or a card (source device) through NFC communication. One purpose of the Generic Control RTD is to avoid that NFC application/service providers create their own record types which may give rise to incompatibility issues and increase the complexity of NFC-enabled devices as they would have to be adapted to handle different types of message formats. 
     A Generic Control record comprises a Target record, an Action record and a Data record. The content of the Target record, normally referred to as the Target Identifier, identifies a function or application to process the data contained in the Data record. The function/application identified by a Target Identifier will in this document be referred to as the target application of that Target Identifier. The content of the Action record specifies for the target application the desired action to be applied to the data in the Data record. Thus, when a Generic Control record is received by a destination device, the destination device launches the target application of the Target Identifier in the received Generic Control record. 
     The Generic Control RTD assumes that the destination device is able to identify the target application of the Target Identifier in a received Generic Control record and that the target application is installed on the destination device. If the destination device is unable to identify or find the requested target application, the specification says that the device should simply ignore the Generic Control record. 
     In reality this may pose significant problems as NFC-enabled devices may be unable to communicate with other NFC-enabled devices or to interpret tags or cards from which they receive Generic Control records. These problems may delay or even prevent adoption of NFC technology since end-users may not be able to benefit from available NFC services as they may not know which application is needed or how to obtain the application needed to use a particular NFC service. Furthermore, this restriction in the specification poses a problem to NFC service providers as it is difficult to distribute the application needed to use a new service to all potential end-users. Thus, NFC service providers may experience problems in getting new NFC services out on the market, which further delays adoption of NFC technology. 
     SUMMARY 
     The invention addresses the problem of how to improve the functionality of NFC-enabled devices. 
     The invention relates to a method for installing an application on an NFC-enabled device, such as an NFC-enabled mobile phone. The method comprises the steps of
         receiving, in the NFC-enabled device, a Generic Control record comprising a Target Identifier (Target ID) which is associated with a target application, from a source device;   retrieving, from a look-up table in which at least one Target ID is associated with at least one target URI, e.g. a URL, from which at least one installation file for the target application associated with the at least one Target ID can be downloaded, at least one target URI associated with the Target ID in the received Generic Control record by providing this Target ID as input to the look-up table;   downloading, to the NFC-enabled device, at least one installation file for the target application from the retrieved target URI, and   installing the target application on the NFC-enabled device using the at least one installation file.       

     The method hence allows a needed target application to be installed on an NFC-enabled device when the NFC-enabled device (the destination device) receives a Generic Control record from a source device, such as a tag, a card or another NFC-enabled device. Thus, instead of simply ignoring a Generic Control record targeting an unknown application or functionality, the application/functionality required by the NFC-enabled device to process the data in the Generic Control record is retrieved and installed on the device. Hence users may obtain the application needed to use a particular NFC service even though they may not know which application is needed or how it shall be installed. 
     The method increases the user-perceived quality of NFC services since the end-user will, at least less often, experience that his/her NFC-enabled device is unable to understand the data received from a source devices. Furthermore, the method encourages the development of new NFC services since the problem of distributing the applications needed to use a new NFC service is solved or at least mitigated. When an end-user brings his/her NFC-enabled device in the proximity of a source device in order to benefit from a new service, the application needed to use the service can be automatically or semi-automatically installed on the NFC-enabled device without the service provider having to actively distribute the application to the NFC-enabled device. The only thing required by the service provider when introducing a new NFC service to the market is to make sure that the source devices used in the service are configured to transmit Generic Control records comprising a certain Target ID, and to register that Target ID in the look-up table along with a target URI from which the installation file or files for the application needed to use the new service are downloadable. 
     According to an aspect of the invention, the at least one Target ID in the look-up table is associated with a plurality of target URIs of which at least one is associated with application-related information being descriptive of the target application whose at least one installation file is downloadable from that target URI and/or descriptive of the at least one installation file itself. In this case, the step of retrieving the at least one target URI advantageously comprises the steps of:
         providing contextual information about the NFC-enabled device and/or the user of the NFC-enabled device as input to the look-up table to allow the contextual information to be matched with the application-related information, and   retrieving, from the look-up table, at least one target URI that is associated with application-related information which, at least to some extent, is found to match the contextual information.       

     When there are several target applications or target application versions associated with the same Target ID, this feature allows the most suitable application or application version to be installed on the NFC-enabled device based on contextual information about the NFC-enabled device and/or the user of the NFC-enabled device. For example, the contextual information may include information indicating that Swedish is the preferred language of the user, which information can be retrieved by the NFC-enabled device from, e.g., preset user preferences. If the application-related information of any of the target URIs that are associated with the Target ID in the received Generic Control record indicates that the target application/target application version that is downloadable from that target URI supports Swedish language, the target URI from which that particular target application/target application version can be downloaded is retrieved from the look-up table. 
     According to an aspect of the invention, the look-up table comprises a server-side look-up table stored in a network node which herein is referred to as a Look-up server, or in another network node to which the Look-up server is communicatively connected. In this case, the Target ID in the Generic Control record received by the NFC-enabled device can be provided as input to the look-up server by transmitting a look-up request including the Target ID from the NFC-enabled device to the Look-up server. Moreover, the step of providing the contextual information about the NFC-enabled device and/or the user of the NFC-enabled device as input to the look-up table can in this case comprise the steps of retrieving the contextual information from an internal register within the NFC-enabled device and sending it from the NFC-enabled device to the Look-up server, either in a separate transmission or included in the look-up request. 
     There are, however, other ways to allow contextual information about the NFC-enabled device and/or the user of the NFC-enabled device to be matched with application-related information in the look-up table when the look-up table resides in the Look-up server or another network node to which the Look-up server is communicatively connected. For example, when the NFC-enabled device is connected to a network in which a network node registers contextual information about user devices connected to the network and/or the users of these user devices, the step of providing the contextual information as input to the server-side look-up table can be performed by sending the contextual information from this network node to the Look-up server. Such a network node adapted to register contextual information about user devices and/or their users will hereinafter be referred to as a context broker node. 
     According to another aspect of the invention, the look-up table comprises both a server-side look-up table as described above and a local client-side look-up table stored in the NFC-enabled device, in which case, the target URI of an unknown Target ID can be retrieved by the NFC-enabled device from the client-side look-up table. This is advantageous in that the NFC-enabled device do not have to look externally for the URI from which the needed target application can be downloaded by sending a look-up request to the Look-up server, thus saving bandwidth in the uplink from user devices to the Look-up server. 
     Preferably, the client-side look-up table can be updated by inserting thereto Target IDs and target URIs associated therewith received in the NFC-enabled device from the Look-up server, which Target IDs and target URIs has been retrieved by the Look-up server from the server-side look-up table. Preferably, also application-related information associated with the respective target URI in the server-side look-up table is sent to the NFC-enabled device from the Look-up server to be inserted in the client-side look-up table along with the Target ID/target URI pairs. 
     The update of the client-side look-up table can be initiated by the NFC-enabled device itself by sending an update request to the Look-up server. Preferably, contextual information about the NFC-enabled device and/or the user of the NFC-enabled device is included in the update request to allow the Look-up server to determine which information to return to the NFC-enabled device by matching this contextual information with application-related information associated with the respective target URIs in the server-side look-up table. 
     However, the update of the client-side look-up table can also be performed by pushing Target ID/target URI pairs and preferably also additional application-related information associated with the target URI in these pairs from the Look-up server to the destination device. As mentioned above, the Look-up server may be communicatively connected to a context broker node in or connectable to a network to which the NFC-enabled device is connected, in which case contextual information about the NFC-enabled device can be received by the Look-up server from the context broker node in order for the Look-up server to determine which information to push to the NFC-enabled device by matching contextual information with application-related information as described above. 
     When the NFC-enabled device comprises a client-side look-up table which can be updated with information received from the Look-up server, the Look-up server is preferably adapted to store a copy of the client-side look-up table in order to know what target ID/target URI pairs are stored therein. This is useful in order for the Look-up server not to repeatedly retransmit Target ID/target URI pairs already stored in the client-side look-up table to the destination device. 
     Furthermore, no matter whether the NFC-enabled device comprises a local client-side look-up table or not, the Look-up server can be adapted to store a user profile for each NFC-enabled device to which it can transmit target URIs. Such a user profile may comprise a copy of a local client-side look-up table stored in the NFC-enabled device, information about which applications are currently installed on the NFC-enabled device, and contextual information about the NFC-enabled device and/or the user of the NFC-enabled device, which contextual information can be retrieved by the Look-up server either from the NFC-enabled devices themselves or a context broker node as described above. The user profiles can be used by the Look-up server when selecting which target URI(s) should be sent to a particular NFC-enabled device. 
     The invention also relates to An NFC-enabled device, such as an NFC-enabled mobile phone, comprising an NFC communication unit which is adapted to receive, from a source device, a Generic Control record that comprises a Target ID associated with a target application. The NFC-enabled device also comprises a network communication module adapted to send and receive data to/from nodes in a network to which the device is connectable, and an application installer function adapted to install applications on the device. The NFC-enabled device is characterized in that it further comprises:
         an application discoverer function adapted to retrieve, from a look-up table in which at least one Target ID is associated with at least one target URI, e.g. a URL, from which at least one installation file for the target application associated with the at least one Target ID can be downloaded, at least one target URI associated with the Target ID in the received Generic Control record by providing the Target ID as input to the look-up table, and   an application downloader function adapted to download at least one installation file for the target application from the retrieved target URI, and in that
 
the application installer function is adapted to install the target application on the NFC-enabled device using the at least one downloaded installation file.
       

     Thus, the NFC-enabled device is able to retrieve and install the application needed to process the data in a received Generic Control record if the application is not already installed on the device. 
     The invention also relates to a computer program for NFC-enabled devices. This computer program comprises computer readable code means which, when run on an NFC-enabled device having received a Generic Control record comprising a Target ID associated with a target application from a source device, causes the NFC-enabled device to perform the following actions:
         retrieve, from a look-up table in which at least one Target ID is associated with at least one target URI from which at least one installation file for the target application associated with the at least one Target ID can be downloaded, at least one target URI associated with the Target ID in the received Generic Control record by providing the Target as input to the look-up table, and   download at least one installation file for the target application from the retrieved target URI.       

     Furthermore, the invention relates to a computer program product comprising the computer program for NFC-enabled devices described above and a computer readable medium on which the computer program is stored. 
     The invention also relates to a computer program for a server node which is herein referred to as the Look-up server. This computer program comprises computer readable code means which, when run on a server computer having received a look-up request including a Target ID associated with a target application from an NFC-enabled device, causes the server computer to
         retrieve, from a look-up table in which at least one Target ID is associated with at least one target URI from which at least one installation file for the target application associated with the at least one Target ID can be downloaded, at least one target URI associated with the Target ID in the received look-up request, and to   send the at least one retrieved target URI to the NFC-enabled device.       

     The invention also relates to a server node comprising a network communication unit adapted to send and receive data to/from nodes in a network to which the server node is connectable. The server node also comprises a computer readable medium for storing computer program components thereon, and processing means for running the computer program components. The server node is characterized in that the computer readable medium stores the Look-up server computer program described above, thus making the server node a Look-up server. 
     More advantageous features of the method, apparatuses and computer programs according to the invention will be described in the detailed description following hereinafter and in the appended claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The objects, advantages and effects as well as features of the invention will be more readily understood from the following detailed description of exemplary embodiments of the invention when read together with the accompanying drawings, in which: 
         FIG. 1A  illustrates the structure of a Generic Control record as defined by the Near Field Communication (NFC) Forum in the Generic Control Record Type Definition (Generic Control RTD); 
         FIG. 1B  illustrates a Record Handling Architecture (RHA) according to prior art as defined by the NFC Forum; 
         FIG. 2  illustrates an Extended RHA according to an exemplary embodiment of the invention; 
         FIG. 3  illustrates a system for implementing the invention according to an exemplary embodiment; 
         FIG. 4  shows a signaling scheme illustrating how the different system components of the system illustrated in  FIG. 3  may be configured to communicate according an exemplary embodiment of the invention; 
         FIG. 5  illustrates a system for implementing the invention according to another exemplary embodiment; 
         FIG. 6  shows a signaling scheme illustrating how the different system components of the system illustrated in  FIG. 5  may be configured to communicate according an exemplary embodiment; 
         FIG. 7  shows a flowchart illustrating an exemplary embodiment of a method according to the invention. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1A  illustrates the structure of a Generic Control record  1  as defined by NFC Forum in the Generic Control RTD. 
     A Generic Control record is an instance of an NDEF (NFC Data Exchange Format) message. The content of the Generic Control record payload consists of a Configuration Byte and several NDEF sub-records of the types Target record, Action record and Data record. In conclusion, the Generic Control record  1  comprises the following components:
         A Configuration Byte for specifying several profiles to help determine how to handle the rest of the payload.   A Target record  3  for identifying an application or function to handle the data contained in the Generic Control record  1 . The application or function to handle the data is identified by a parameter of the Target record  3  normally referred to as the Target Identifier  4 . This parameter will throughout this document be referred to as the Target ID  4  and the application/function that is identified by the Target ID  4  will be referred to as the target application of that Target ID.   An Action record  5  for specifying the desired action to be applied to the data by the target application.   A Data record  7  for specifying data to be processed by the target application.       

       FIG. 1B  illustrates a Record Handling Architecture (RHA)  9  according to prior art as defined by the NFC Forum. The RHA  9  should be implemented by a destination device and is used to launch the appropriate target application indicated by the Target ID  4  in the Generic Control record  1 . Once a record type is identified by an NDEF parser, the record data is forwarded to a record dispatcher and the record dispatcher determines which handler will take care of the record. After the association between the data and a corresponding application (or function) is resolved by a handler, the Application Launcher  11  launches the associated application and, if necessary, delivers the data of the Data record  7  to the application. Which handler should take care of the data record depends on the record type. A MIME (Multipurpose Internet Mail Extensions) handler is used for MIME-type records and an RTD Handler  13  for NFC Forum Global Type records. 
       FIG. 2  illustrates an “Extended Record Handling Architecture” (E-RHA)  15  according to the invention. The E-RHA  15  comprises an Application Discoverer function  17  and an Application Downloader function  19 . These functions  17 ,  19  provide a look-up service allowing the destination device to find and download a target application of a Target ID  4  in a received Generic Control record  1  if not already installed on the destination device. Thus, the E-RHA  15  provides a back-end resolution service allowing the destination device to retrieve the functionality required to process data received in a Generic Control record  1  which previously would have been deemed uninterpretable by the destination device and therefore ignored. 
     If the RTD Handler  13  cannot find the target application indicated by the Target ID  4  in a received Generic Control record  1 , it launches the Application Discoverer  17 . To find the appropriate target application, the Application Discoverer  17  uses one or several look-up tables which keep a register of applications and where they are hosted by associatively storing Target IDs  4  and URIs (Uniform Resource Identifiers), such a URLs (Uniform Resource Locators). From each URI associated with a Target ID, one or several installation files of the target application of that Target ID  4  can be downloaded. An URI associated with a Target ID  4  in such a look-up table, and thus allegedly hosting one or several installation files for the target application of that Target ID  4 , will hereinafter be referred to as a target URI of that Target ID. When the target URI of the Target ID  4  in the received Generic Control record  1  is retrieved by the Application Discoverer  17  from the look-up table, the Application Downloader  19  downloads the target application installation file(s) from the retrieved target URI. The target application can then be installed and launched by the Application Launcher  11 , additionally with help from whatever native device installation program is available on the destination device. 
       FIG. 3  illustrates an exemplary system  21 A for implementing the proposed look-up service allowing NFC-enabled devices to install previously non-installed target applications of Target IDs  4  in received Generic Control records  1  according to an embodiment of the invention. 
     In  FIG. 3 , the system  21 A is seen to comprise a source device  23  which in this exemplary case is an NFC tag. The source device  23  could also be an NFC card or an NFC-enabled device, such as a mobile phone, a Personal Digital Assistant (PDA) or a conventional computer equipped with Radio Frequency (RF) circuitry for supporting NFC. 
     The system  21 A further comprises an NFC-enabled device  25  in form of an NFC-enabled mobile phone, hereinafter in the description called the destination device. The destination device could, however, be any of the above mentioned types of NFC-enabled devices. The destination device comprises an NFC communication unit  26  supporting communication with other NFC devices according to the NFC Forum standard (ISO 18092, ISO 14443A and/or 14443B). The NFC communication unit  26  may be an NFC receiver unit only allowing the destination device to receive Generic Control records  1  from nearby NFC devices, or it may be an NFC transceiver unit allowing the destination device both to receive and transmit Generic Control records  1  from/to nearby NFC devices. 
     The destination device further comprises a communication unit  27 A which may comprise any communication means adapted for wired or wireless transmission and/or reception of data. For example, the network communication unit  27 A can comprise an Ethernet module supporting connection to the Internet via a wired or wireless (e.g. IEEE 802.11x) Ethernet connection, a bluetooth transceiver module, an infrared transceiver module, a GPS (Global Positioning System) receiver, etc. In this exemplary case in which the destination device is an NFC-enabled mobile phone, the network communication unit  27 A also comprises RF (Radio Frequency) circuitry for communicating with a mobile communications network, such as a GSM (Global System for Mobile communications), WiMax (Worldwide Interoperability for Microwave Access), UMTS (Universal Mobile Telecommunications System) or LTE/SAE (Long Term Evolution/System Architecture Evolution) network, in which case the destination device can access the Internet also via the mobile communication network. 
     The destination device further comprises a computer readable medium  28  which stores the applications/functions of the E-RHA  15  illustrated in  FIG. 2  in form of computer program components. Some of these components, namely the RTD Handler  13 , the Application Launcher  11 , the Application Discoverer  17  and the Application Downloader  19  are shown in a dashed rectangle figuratively illustrating a portion of the computer readable medium  28 . Also seen stored in the computer readable medium  28  is a computer program component  29  representing an Application Installer function  29  which could be a native device installation program or an application installer function especially developed to install target applications downloaded by the Application Downloader  19 . 
     The computer readable medium  28  further stores a register  30 A of contextual information  32  about the destination device and/or the user of the destination device. As will be described in more detail below, this information  32  can be used to retrieve the target URI hosting the installation file(s) of the most appropriate target application from the look-up table if the look-up table used by the Application Discoverer  17  stores more than one target URI associated with the Target ID  4  of a received Generic Control record  1 . Any information about the destination device and/or the user of the destination device that is available in or obtainable by the destination device can be used for this purpose. In this exemplary embodiment, the contextual information  32  in the register  30 A includes positional information indicating the current position of the destination device, the preferred language of the user of the destination device, and the free (available) memory space in the destination device. The positional information may be GPS coordinates obtained from a GPS receiver included in the communication unit  27 A but may also be one or more Cell IDs of one or more RBSs (Radio Base Stations) to which the mobile phone currently is connected. As well known in the art, such Cell IDs can be transformed to positional information indicating the geographical position of the mobile phone. The preferred language of the user of the destination device is typically set by the user when configuring the destination device but may also be “guessed” by the destination device based on the language settings in applications installed on the device, the addresses in a contact list stored on the device, etc. The currently available memory space and other device-specific information may be obtained from various native device management functions, such as a memory management function. Although shown as stored in a common register  30 A it should be appreciated that the contextual information  32  about the destination device and/or the user of the destination device may be provided by various applications and/or different device management functions of the destination device and that the register  30 A hence may be a “distributed register” comprising separate registers managed by different applications/functions within the destination device. Therefore, when stating herein that contextual information  32  about the destination device and/or the user of the destination device is retrieved from the register  30 A, it should be understood that this action is not limited to retrieval of information from a single register storing all available contextual information, but that the retrieval may be performed by retrieving the contextual information directly from a GPS receiver in the destination device, a memory management function in the destination device, the contact list of the destination device, or from any other application/function thereof. 
     The computer readable medium  28  could be any digital storage medium known in the art, such as a ROM (Read-only memory), a Flash memory, or the like. The destination device also comprises a processing means  31 , such as a micro-processor, for running the computer program components  11 ,  13 ,  17 ,  19 ,  29  stored in the computer readable medium  28 . The destination device further comprises a user interface  33  which in this case is a Graphical User Interface (GUI) allowing a user of the destination device  19  to interact therewith. 
     The system  21 A further comprises a Look-up server  35  which also comprises a network communication unit  27 B including communication means allowing the Look-up server  35  to communicate with the destination device and other nodes in a network to which the Look-up server  35  is connected. Typically, the communication unit  27 B comprises an Ethernet module supporting connection to the Internet via a wired or wireless Ethernet connection. The Look-up server  35  further comprises a computer readable medium  37 , such as a conventional hard disk drive, in which it stores a look-up function  39 A in form of a computer program component. The Look-up server  35  also comprises a processing means  41 , such as a micro-processor, for executing the Look-up function  41 . 
     When the destination device receives a Generic Control record  1  comprising a Target ID  4  from the source device  23 , the RTD Handler  13  searches for the target application of that Target ID  4  among the applications that are available (installed) on the destination device. If the RTD Handler cannot find the target application or is unable to identify the target application based on the Target ID  4 , it launches the Application Discoverer  17 . The Application Discoverer  17  then connects to the Look-up server  35  using a preferred network connection and asks the Look-up server  35  about which application is associated with the Target ID  4  in the received Generic Control record  1 . In this embodiment, this is achieved by the Application Discoverer  17  by calling the look-up function  39 A in the Look-up server  35 , e.g. using a simple HTTP GET or POST request, with the Target ID  4  as argument. The request sent from the destination device to the Look-up server  35  will hereinafter be referred to as the look-up request. Additionally, the look-up request may include contextual information  32  about the destination device and/or the user of the destination device. The contextual information  32  can, as will be described below, be used by the look-up function  39 A to return the target URI hosting the installation file(s) of the most appropriate target application or target application version to the destination device if the look-up function  39 A finds more than one target URI of the Target ID  4  in the look-up request. 
     The Look-up server  35  is communicatively connected to at least one Application Database server  43  which stores, in a computer readable medium  44 , a look-up table  45 A, such as a SQL database table, keeping track of locations from which different applications intended for NFC-enabled devices are downloadable. The look-up table  45 A stores different Target IDs  4  (‘Target ID’) associated with different target URIs (‘Target app URL’) from which the installation file(s) for the target application of the Target ID  4  associated with that target URI can be downloaded. 
     Although the target URIs in the look-up table  45 A hereinafter will be assumed to be URLs, it should be appreciated that the target URIs may be any type of resource locator identifier pointing to a location from which a target application of a particular Target ID  4  can be found and downloaded by the destination device. For example, the target URIs could be HTTP addresses, FTP addresses, and/or SIP (Session Initiation Protocol) URIs. 
     Preferably but not necessarily, each Target ID  4  in the look-up table  45 A is associated with at least one target URL. The look-up table  45 A may also associate each target URL with information (‘App info’) describing the target application/target application version that is downloadable from that target URL and/or the target application installation file(s). Such information being descriptive of a target application will hereinafter be referred to as application-related information. The application-related information may, for example, include the name of the application, information about which operating system(s) the application is intended for, which language(s) is used/supported by the application, which geographical locations are targeted by the application, the memory space required by the application, whether the application has been signed by a certificate, the name of the publisher and/or developer of the target application, a free-text description of the application, the file size of the target application installation file(s), the file type(s) of the target application installation file(s) etc. 
     Although stored in a separate server node in form of an Application Database server  43  in this exemplary embodiment, the look-up table  45 A could, of course, be stored locally in the Look-up server  35  itself, or be distributed among a plurality of Database servers to which the Look-up server  35  is connected. Also, the Application Database server  43  could be a VDS (Virtual Dedicated Server) residing in the same physical server as the Look-up server  35 . 
     When the look-up function  39 A receives a look-up request including a Target ID  4  from the Application Discoverer  17  of the destination device, it sends a database query to the Application Database server  43  asking the Application Database server to return the target URL(s) of the Target ID  4 , and the application-related information associated with the respective URL. The target URLs and the application-related information of each URL returned to the Look-up server  35  by the Application Database server  43  in response to the database query can be said to constitute a raw matching result for a particular Target ID. According to an aspect of the invention, the look-up function  39 A of the Look-up server  35  is adapted to simply forward this raw matching result to the destination device in order for the user of the destination device to select which target application he/she wants to download, and thus which target URL the destination device should connect to, based on the application-related information of each target URL. This may be achieved by the Application Discoverer  17  by displaying the received matching result to the user using, e.g., a web browser installed on the destination device. 
     According to another aspect of the invention, the look-up function  39 A is adapted to rate the target URLs in the raw matching result by matching the application-related information associated with each target URL with the contextual information  32  of the user/destination device included in the look-up request. It should thus be understood that the rating of a target URL is de facto a rating of the target application whose installation file(s) is downloadable from that target URL and/or the installation file(s) itself and that the rating can be seen as a measure of the likelihood that the target application and/or the installation file(s) for the target application is compatible with the destination device and the configuration of the destination device, and/or the likelihood that the target application fulfills the user&#39;s requirements on the service provided by the target application. For example, if the raw matching result comprises two target URLs which, according to the application-related information associated therewith, seem to host equivalent target application versions besides that one supports Swedish language while the other does not, the look-up function  39 A can be adapted to rate the target URL from which the version supporting Swedish language can be downloaded higher if the contextual information about the user/destination device indicates that Swedish is a preferred language of the user. The look-up function  39 A can then be adapted to refine the raw matching result based on the ratings of the target URLs by, e.g., remove target URLs with low rating from the raw matching result set and order the remaining target URLs in a list sorted by rating. The refined matching result is then returned to the destination device by the look-up function  39 A in order for the user of the destination device to select which target application he/she wants to download based on the rating and/or the application-related information of each target URL. The rating functionality allowing the target URLs in the raw matching result to be rated by matching the contextual information  32  about the user/destination device included in the look-up request with the application-related information associated with each target URL may also reside in the Application Database server  43 , in which case the look-up function  39 A in the Look-up server  35  can be adapted to include also the contextual information  32  in the database query transmitted to the Application Database server  43 . 
     The system  21 A typically comprises a plurality of Application Download servers  47  of which only one is shown. An Application Download server  47  is any server hosting a target URL stored in the look-up table  45 A, and thus a server allegedly storing the file or files needed to install the target application of the Target ID  4  with which the target URL is associated in the look-up table  45 A. An Application Download server  47  can be anything from a small home server located in a private house and storing a single NFC application to a huge server located in a server room of a company specialized in NFC application development and storing a great number of NFC applications. The Application server  47  is seen to comprise a computer readable medium  49  in which at least one installation file  51  for a target application is stored. An installation file or files of a target application should herein be construed as any file or files which with or without the necessity of first performing a formal installation procedure allows the target application to be executed on the destination device when downloaded thereto. 
     When the user of the destination device chooses a target URL to download the target application from, e.g. by clicking on a link displayed in the web browser of the destination device and leading to the target URL, the Application Discoverer  17  launches the Application Downloader  19  and submits the chosen target URL thereto. The Application Downloader  19  reads the target URL and opens up a network connection to the Application Download server  47  hosting the target URL using a preferred connection. The Application Downloader  19  then transmits a download request to the Application Download server  47  and downloads the target application installation file(s)  51  there from. 
     The Application Downloader  19  may be adapted to check that the Application Download server  47  is hosting a valid target application/target application version. This may be achieved by matching the application-related information received by the destination device from the Look-up server  35  in response to the look-up request with information relating to the target application/target application version and/or the target installation application file(s), which information may be separately stored in the Application Download server  47  and/or directly derivable from the target application installation file(s)  51 . The Application Downloader  19  can be adapted to retrieve this information from the Application Download server  47  and compare it with the application-related information received from the Look-up server  35 . If these pieces of information matches each other, e.g. if the target application file size and the publisher of the target application are the same according to both pieces of information, the Application Downloader  19  downloads the target application installation file(s)  51 . If, however, the pieces of information differ in some aspects, the Application Downloader  19  can be adapted to abort the download procedure or ask the user whether he/she still wants to download the installation file(s)  51  by, e.g., displaying a message asking the user to select whether he/she wants to download or abort based on the detected difference in information. 
     When the target application installation file(s)  51  is downloaded to the destination device, the Application Downloader  17  launches the installation function  29  and instructs it to install the target application using the downloaded installation file(s)  51 . As aforementioned, the installation function  29  is typically a conventional installation program, sometimes referred to as a general-purpose installer or dedicated installer, already existing in the destination device. However, the installation function  29  may also be an installation function included in the Application Downloader  19  allowing the Application Downloader  19  to install the target application using the downloaded installation file(s)  51  itself. When the target application is installed on the destination device, the installation function  29  notifies the RTD Handler  13  which in turn can alert the Application Launcher  11  to launch the newly installed target application and deliver the content of the Action  5  and Data  7  records in the received Generic Control record  1  to the target application such that the target application can perform the action requested in the Action record  5  on the data content in the Data record  7 . 
     The proposed principle for installing a needed NFC application on an NFC-enabled device solves or at least mitigates the problem of distributing applications needed to use new NFC services. The only thing required by a service provider when introducing a new NFC service to the market is to make sure that the source devices used in the service are configured to transmit Generic Control records comprising a certain Target ID, and to register that Target ID in the look-up table  45 A along with a target URL from which the installation file or files for the application needed to use the new service are downloadable. Preferably but not necessarily, the service provider also submits application-related information describing the application and/or installation file(s) to the look-up table  45 A. According to an aspect of the invention, registration of a new application can be performed by an NFC service provider by sending the Target ID, target URL and the application-related information of the new application to the Look-up server  35  which in turn is adapted to insert the information into the look-up table  45  and notify the service provider when done. The dashed double arrow between the Look-up server  35  and the Application Download server  47  indicates such a registration of the target application whose installation file or files  51  are downloadable from the Application Download server  47 . Thus, in this case, it is assumed that registration of the new application is performed from the server computer storing the installation file(s) for the new application. Of course, registration can be performed from another computer/device than the computer/device actually storing the installation file(s). 
     As well known in the art, applications do not always have to be installed by carrying out a formal installation procedure. Sometimes an application is installed on a device by simply copying the data file or files constituting the application to a desired location on the device. Thus, it should be appreciated that what herein is referred to as the at least one target application installation file  51  sometimes can constitute the actual target application. In such a case, no additional installation procedure may be required after downloading the file(s)  51  and the step of installing the target application is hence carried out by downloading the at least one target installation file  51 . 
     As also well known in the art, an application can be a distributed application comprising a client-side application installed on the user (client) device and a server-side application installed on a server node in a network to which the user device is connected. Thus it should be understood that when stating herein that a target application is installed on an NFC-enabled device this does not necessarily mean that the (part of the) target application installed on the NFC-enabled device is the sole part of the target application. It may also mean that only a small client-side application is installed on the device while a part, or even the main part, of the target application resides in a network node to which the device is connectable. For example, the Application Download server  47  from which the installation file(s)  51  of the target application is downloaded may host a server-side part of the target application. The client-side part of the target application that needs to be downloaded and installed may be a small and simple function forwarding the data content of the Data record  7  in a received Generic Control record  1  to the server-side part of the target application by connecting to an URL that is preprogrammed into the client-side application and attaching the data content in the Data record  7  as URL parameters. 
       FIG. 4  shows a signaling scheme illustrating how the different system components of the system illustrated in  FIG. 3  may be configured to carry out the above described procedure according to an exemplary embodiment of the invention. When describing  FIG. 4 , simultaneous reference will be made also to the previously described drawings. 
     Step S 401 : The source device  23  transmits a Generic Control record  1  including a Target ID  4  to the destination device, which Generic Control record is read by the RTD Handler  13  of the destination device. Here, it is assumed that the Target ID  4  in the received Generic Control record  1  is associated with a target application which does not exist in the destination device. 
     Step S 402 : Since the RTD handler  13  cannot find any application that is associated with the Target ID  4 , it launches, in this step, the Application Discoverer  17 . 
     Step S 403 : The Application Discoverer  17  transmits a look-up request including the Target ID  4  to the Look-up server  35 , which look-up request is handled by the look-up function  39 A of the Look-up server  35 . In this embodiment, the Application Discoverer  17  is adapted to include also contextual information  32  about the destination device and/or the user of the destination device, retrieved from the internal register  30 A, in the look-up request as described above. The look-up request could, for example, look like this: 
     www.lookupfunctionX.com?targetID=271&amp;positionX=2223344&amp;positionY=233444&amp;language=swedish 
     Step S 404 : The look-up function  39 A of the Look-up server  35  transmits a database request including the Target ID  4  in the received look-up request to the Application Database server  43  storing the look-up table  45 A. 
     Step S 405 : The Application Database server  43  hosting the look-up table  45 A searches in the look-up table  45 A for target URLs that are associated with the Target ID  4  included in the database request. 
     Step S 406 : The target URLs associated with the Target ID  4  are returned to the Look-up server  35  in response to the database request. This response can, as mentioned above, be said to constitute a raw matching result of the initial look-up request. In this embodiment it is assumed that the target URLs in the look-up table  45 A are associated with application-related information that is descriptive of the target application whose installation file or files  51  are downloadable from the target URLs, and/or that is descriptive of the installation file or files themselves. This application-related information is also included in the response to the database request and hence returned to the Look-up server  35  as a part of the raw matching result. 
     Step S 407 : The look-up function  39 A of the Look-up server  35  rates the target URLs in the raw matching result by matching the application-related information associated with each target URL with the contextual information  32  of the user/destination device included in the look-up request. The look-up function  39 A then removes target URLs with low rating and sorts the remaining target URLs and their associated application-related information in a list sorted by rating. This list can, as also mentioned above, be said to constitute a refined matching result of the initial look-up request. 
     Step S 408 : The look-up function  39 A of the Look-up server  35  transmits the refined matching result to the Application Discoverer  17  of the destination device in response to the look-up request received in step S 403 . 
     Step S 409 : The Application Discoverer  17  forwards the refined matching result to the GUI  33  of the destination device which presents the result to the user of the device in a suitable way, for example by displaying the result in form of a list comprising the name of the target application whose installation file or files are downloadable from the respective target URL, the rating of the respective target URL, and the application-related information associated with the respective target URL. As mentioned above, this list may be displayed, e.g., using a standard web browser installed on the destination device. 
     Step S 410 : In this step, the user of the destination device indicates which target application he/she wants to download (i.e. indicates which target URL the destination device should connect to). This may be achieved in many different ways depending on the user interface of the destination device and what user input means are comprised in or connected to the destination device. For example, the names of the various target applications in the list displayed to the user may be hyperlinks leading to the respective target URL in which case the user may indicate which target application to download by “clicking” on the name of the target application of his/her choice using a keypad or a touch screen of the destination device. 
     Step S 411 : The target URL is returned to the Application Discoverer  17 . 
     Step S 412 : The Application Discoverer  17  submits the target URL and, in this exemplary embodiment, some or all of the application-related information associated with the indicated target URL to the Application Downloader  19 . 
     Step S 413 : The Application Downloader  19  contacts the Application Download server  47  to check that the server  47  really is hosting the installation file(s) of a valid target application. This can be achieved by the Application Downloader  19  by transmitting an application-validation request to the server  47  using a preferred network connection, asking the server  47  to return any available application-related information being descriptive of the target application and/or the target application installation file(s). Such information may be separately stored in a register in the Application Download server  47  or be derivable from the target application installation file(s). The application-validation request may, for example, ask the server  47  to return any certificate verifying the publisher of the target application, the file size of the target application and/or the target application installation file(s), etc. 
     Step S 414 : The Application Download server  47  retrieves, if available, the application-related information requested by the Application Downloader  19  in the application-validation request. 
     Step S 415 : The Application Download server  47  returns the requested application-related information to the Application Downloader  19  in response to the application-validation request. 
     Step S 416 : The Application Downloader  19  compares the application-related information received from the Application Download server  47  with the application-related information associated with the target URL in the look-up table  45 A to check whether these pieces of information correspond to each other. In this example, it is assumed that the application-related information from the Application Download server  47  matches the application-related information from the look-up table  45 A and thus that the Application Downloader  19  can validate that the application whose installation file or files  51  are downloadable from the target URL is the desired target application. 
     Step S 417 : The Application Downloader  19  transmits a download request to the Application Download server  47  asking permission to download the target application installation file(s)  51 . 
     Step S 418 : The Application Download server  47  retrieves the target application installation file(s)  51  from the computer readable storage means  49 . 
     Step S 419 : The Application Download server  47  transmits the target application installation file(s)  51  to the destination device. 
     Step S 420 : When the download is complete, the Application Downloader  19  instructs the installation function  29  to install the target application on the destination device using the downloaded installation file(s)  51 . 
     Step S 421 : The installation function  29  installs the target application using the downloaded installation file(s)  51 . 
     Step S 422 : The installation function  29  notifies the RTD Handler  13  that the installation of the target application is complete. 
     Step S 423 : The RTD Handler  13  instructs the Application Launcher  11  to launch the newly installed target application and to deliver the content of the Data record  7  and, if any, the content of the Action record  5  included in the Generic Control record  1  received in step S 401  to the target application. 
     Step S 424 : The Application Launcher  11  launches the newly installed target application and delivers the content of the Data record  7  and the content of any Action record  5  included in the Generic Control record  1  to the target application such that the target application can perform the action requested by the Action record  5  on the content in the data record  7 . 
     It should be appreciated that the signaling scheme illustrated in  FIG. 4  is only exemplary and that several of the described steps can be removed and/or other steps added to make the procedure more or less sophisticated. For example, the procedure can be made fully automatic by omitting the steps S 409  to S 411  which allows the end-user to choose which target application to download. Also, as well understood by those skilled in the art, storing application-related information in the look-up table  45 A and the Application Download server  47  is advantageous for security reasons but not a requisite in the most straight-forward implementation of the inventive concept. The look-up table  45 A may consist of nothing but Target IDs  4  and target URLs associated therewith, in which case the Application Discoverer  17  does not have to be able to retrieve any contextual information  32  about the destination device and/or the user of the destination device to be matched with the application-related information. In this case, the Application Discoverer  17  could be adapted to send only the Target ID  4  in the received Generic Control record  1  to the look-up function  39 A, which in turn would retrieve the target URL associated with that Target ID  4  from the look-up table  45 A and return said target URL to the Application Discoverer  17 . The Application Downloader  19  would then connect to the target URL and download the target application installation file(s) without verifying the validity of the target application, whereupon the target application could be installed on the destination device. From the above it should be understood that any or all of the steps S 407 , S 409 -S 411 , and S 413 -S 416  can be omitted in a simplified embodiment of the invention. 
     According to another aspect, the end-user can be encouraged to participate more in the installation procedure by, e.g., letting the user participate in the validation of the target application performed in step S 416 . For example, this can be achieved by displaying both the application-related information retrieved from the look-up table  45 A and the application-related information retrieved from the Application Download server  47  in a web browser of the user device and let the user initiate the download of the target application manually by clicking on a button if he/she thinks that the target application that is available for download from the Application Download server  47  is the “correct” target application based on the given information. Furthermore, the end-user can be asked whether the downloaded target application should be installed before step S 421  is carried out and/or whether the target application should be launched before step S 424  is carried out. 
       FIG. 5  illustrates an exemplary system  21 B for implementation the proposed look-up service according to another embodiment of the invention. System components denoted by the same reference numerals in  FIGS. 3 and 5  are the same components having the same technical features unless explicitly stated otherwise. 
     The system  21 B in  FIG. 5  differs from the system in  FIG. 3  partly in that the destination device is seen to comprise an internal look-up table  45 B which, just like the external look-up table  45 A residing in the Application Database server  47 , stores target IDs  4  and target URLs from which one or several installation files  51  for target applications associated with the target IDs can be downloaded. In the client-side look-up table  45 B, each target URLs is also seen to be associated with application-related information that is descriptive of the target application whose installation file or files  51  are downloadable from the target URLs and/or descriptive of the installation file or files  51  themselves, as previously described. The internal look-up table  45 B will hereinafter be referred to as the client-side look-up table  45 B while a look-up table residing in the Look-up server  35  or any Application Database server  47  to which the Look-up server  35  is communicatively connected will be referred to as a server-side look-up table  45 A. The Application Discoverer  17  of the destination device here comprises a client-side look-up function  39 B for retrieving data from the client-side look-up table  45 B, just like the (server-side) look-up function  39 A residing in the Look-up server  35  is responsible for retrieving data from the server-side look-up table(s)  45 A. As described above, if more than one target URL is retrieved for a particular Target ID, the server-side look-up function  39 A may be adapted to rate the target URLs by matching the application-related information associated with each target URL with the contextual information  32  of the destination device and/or its user. In this embodiment, the client-side look-up function  39 B comprises the same or corresponding functionality in order to rate target URLs retrieved from the client-side look-up table  45 B and/or the server-side look-up table  45 A based on the application-related information associated with each target URL and contextual information  32  of the destination device and/or the user of the destination device. The contextual information  32  can be retrieved by the client-side look-up function  39 B directly from the internal register  30 A of the destination device and/or from the Look-up server  35  when the Look-up server is adapted to receive such information from a context broker node  57  as will be described in more detail below. It should be understood that the Application Discoverer  17  could comprise functionality for rating target URLs retrieved from the server-side look-up table  45 A also when no client-side look-up table  45 B is comprised in the destination device. This is advantageous in that it reduces the workload for the Look-up server  35  but may be disadvantageous in that it increases the complexity of the destination device. 
     By storing a local client-side look-up table  45 B in the destination device, the Application Discoverer  17  may be able to retrieve the target URL of a Target ID  4  in a received Generic Control record  1  without the need of looking externally, i.e. without the need of transmitting a look-up request to the Look-up server  35 . Of course, however, this requires that the Target ID  4  in a received Generic Control record  1  is listed in the client-side look-up table  45 B and is associated with at least one target URL. Therefore, it is important that the client-side look-up table  45 B stores at least the Target IDs that are most likely to occur in Generic Control records  1  received by the destination device in the future and for which the proper target application is not yet installed on the destination device. Or, in other words, that the client-side look-up table  45 B stores at least the Target IDs that correspond to non-installed target applications which must be installed on the destination device in order to use NFC services that are likely to be demanded by the user of the destination device in the future. Thus, it is important that the system  21 B comprises functionality for predicting which NFC services that are likely to be demanded by the end-user in the near future, and for updating the client-side look-up table  45 B accordingly. 
     The Application Discoverer  17  is adapted to update the client-side look-up table  45 B by inserting thereto Target IDs and target URLs received by the destination device from the Look-up server  35 , which Target IDs and target URLs in turn are retrieved from one or several server-side look-up tables  45 A by the Look-up server  35 . Which Target IDs and target URLs should be sent to the destination device is determined based on contextual information  32  about the destination device and/or the user of the destination device and the application-related information associated with the target URLs in the server-side look-up table(s)  45 A. 
     According to a first exemplary embodiment, the procedure of updating the client-side look-up table  45 B is initiated by the Application Discoverer  17  by transmitting an update request including contextual information  32  retrieved from the internal register  30 A to the look-up function  39 A of the Look-up server  35 . The Application Discoverer  17  may, for example, be adapted to transmit such an update request to the Look-up server  35  at regular time intervals, upon occurrence of a user-triggered event, such as a button-press-event or the like, or when there is an important change in the contextual information  32  in the register  30 A. The look-up function  39 A in turn compares the contextual information  32  in the update request with the application-related information stored in available server-side look-up tables  45 A and retrieves the Target IDs and the target URLs that are associated with application-related information that matches the contextual information. Preferably, also the application-related information is retrieved. This is typically achieved by the look-up function  39 A by transmitting a database request to the Application Database server(s)  47  storing the server-side look-up table(s)  45 A with the contextual information as argument. As previously described, the contextual information  32  that is included in the update request can include any information about the destination device and/or the user of the destination device, for example positional information provided by a GPS receiver in the destination device. If such positional information indicates that the destination device is located in, e.g., Stockholm, Sweden, the look-up function  39 A can retrieve all Target ID/target URL pairs in which the target URL is associated with application-related information indicating that the target application that is downloadable from the target URL is used for an NFC service that is provided in Stockholm, for example a ticketing service provided by the local public transport company in Stockholm. The retrieved Target ID/target URL pairs and preferably also the application-related information associated with the respective pair are then returned to the Application discoverer  17  by the look-up function  39 A in response to the update request, whereupon the Application Discoverer  17  updates the client-side look-up table  45 A with the received information. 
     According to a second exemplary embodiment, the procedure of updating the client-side look-up table  45 B is not initiated by the Application Discoverer  17  but by the Look-up server  35  itself by pushing Target ID/target URL pairs and preferably also the application-related information associated with the respective pair, retrieved from the server-side look-up table(s)  45 A, to the destination device. In comparison with the first embodiment in which the destination device triggers the update, this embodiment potentially and in practice could be less traffic intense since the Look-up server  35  may be configured to only send update messages when updates are available, i.e. when Target ID/target URL pairs not already stored in the client-side look-up table  45 B are available in the server-side look-up table(s)  45 A. In this scenario, the Application Discoverer  17  is adapted to receive the pushed information and update the client-side look-up table  45 B by inserting it thereto. 
     In order for the Look-up server  35  to select which Target ID/target URL pairs to push to the destination device based on contextual information  32  about the destination device and/or the user of the destination device without receiving such contextual information  32  from the destination device, the Look-up server  35  can be adapted to receive such information  32  from a network node  57  which herein will be referred to as a context broker node  57 . The context broker node  57  is located in, or at least connectable to, a network to which the destination device is or may be connected. In this embodiment, in which the destination device is an NFC-enabled mobile phone, the context broker node  57  is connected to a mobile communications network, such as a GSM, UMTS or LTE/SAE network. The context broker node  57  may retrieve the contextual information about the user devices and/or their users from radio base stations  55  in the mobile communications network and/or from other nodes therein. For example, the context broker node  57  can retrieve positional information about a particular user device, e.g. the destination device, by retrieving the Cell ID of the radio base station  55  to which the destination device is connected from the radio base station  57 , while receiving the geographical position of the radio base station from the radio base station  57  itself or an OSS (Operation Support System) handling the RAN (Radio Access Network) or the core network of the mobile communications network. Thereby, the context broker node  57  can provide the Look-up server  35  with positional information about the destination device. However, any contextual information that is available in the network, e.g. destination device settings and user preferences, the contact list of the destination device, etc. can be retrieved by the context broker node  57  and forwarded to the Look-up server  35 . The contextual information relating to each user device can be stored in a register  30 B in the context broker node  57 , which register  30 B hence can be said to be a network version of the internal register  30 A for contextual information  32  of the destination device. 
     It should be understood that the use of a context broker node is not limited to the case in which the destination device is connected to a mobile communications network. The Look-up server  35  can be adapted to receive contextual information about the destination device from context broker nodes in several different networks, for example from a second context broker node (not shown) in a WMN (Wireless Mesh Network) to which the destination device is connectable via a Wi-Fi hotspot or the like. It should also be understood that the use of context broker nodes  57  in order to provide the Look-up server  35  with contextual information about the destination device and/or the user of the destination device is not limited to the case in which the destination device comprises an updatable client-side look-up table  45 B but is applicable also in the scenario described above with reference to  FIG. 3 . 
     The context broker can also be attached to other networks that can give information about the destination device and/or its surroundings. For example, the context broker node can be attached to a local positioning network that can give more fine-grained information about the position of the destination device compared to e.g. positioning information based on Cell ID, or to other sensor networks giving information about e.g. the temperature in the vicinity of the destination device. 
     Of course, the procedure of pushing the update information from the Look-up server  35  to the destination device can be combined with the procedure of initiating the update procedure by transmitting update requests from the destination device. Also, techniques similar to push techniques can be used to update the client-side look-up server  45 A. For example, a technique which often is referred to as long polling can be used, in which case the destination device can be adapted to send update requests to the Look-up server  35  while the Look-up server  35  is adapted to respond to the request only when new information that is believed to be useful to the destination device is available in the server-side look-up table(s)  45 B. 
     When the destination device comprises a client-side look-up table  45 B which can be updated with information received from the Look-up server  35 , the Look-up server is preferably adapted to store a copy of the client-side look-up table in order to know what target ID/target URL pairs are stored therein. This is useful in order for the Look-up server  35  not to repeatedly retransmit Target ID/target URL pairs already stored in the client-side look-up table  45 B to the destination device. The Look-up server  35  can be adapted to update the copy of the client-side look-up table  45 B each time a new Target ID/target URL pair is sent to the destination device, and/or the destination device can be adapted to include the Target ID/target URL pairs stored in the client-side look-up table  45 B when transmitting an update request to the Look-up server  35 , whereupon the Look-up server  35  can check that all the Target ID/target URL pairs included in the look-up request are stored also in the copy of the client-side look-up table. 
     Furthermore, no matter whether the destination device comprises a local client-side look-up table  45 B or not, the Look-up server  35  can be adapted to store a respective user profile for the destination device and all other NFC-enabled device to which it can transmit target URLs. The user profiles may comprise a copy of the local client-side look-up table stored in the respective NFC-enabled device, information about which applications are installed on the respective NFC-enabled device, and contextual information about the NFC-enabled device and/or the user of the NFC-enabled device. As described above, such contextual information can be retrieved by the Look-up server  35  either from the NFC-enabled devices themselves or one or several context broker nodes  57  in networks to which the NFC-enabled devices are or may be connected. The Look-up server  35  can be adapted to chose which Target ID/target URL pairs to send to the various NFC-enabled devices based on the information in their user profiles. Furthermore, based on e.g. contact information included in the contextual information about each NFC-enabled device and/or its user, the Look-up server  35  can be adapted to pair together user profiles of NFC-enabled devices belonging to people that seem to know each other. Thereby, the Look-up server  35  can link different user profiles to each other so as to create user profile networks corresponding to social networks among the end-users. This is advantageous in that the Look-up server  35  can determine which Target ID/target URL pairs to send to an NFC-enabled device of a particular end-user based on the applications installed on the NFC-enabled devices of that end-user&#39;s friends. If many of the end-user&#39;s friends use a particular NFC service, there is a big chance that the end-user also will demand this service in the near future, a demand which hence can be foreseen by the Look-up server  35 . This feature can be used by the Look-up server  35  e.g. when rating Target ID/target URL pairs in a raw matching result, and/or when selecting which Target ID/target URL pairs should be sent to an NFC-enabled device to update an internal client-side look-up table stored therein, as described above. 
     When the destination device comprises a client-side look-up table  45 B, the Application Discoverer  17  can be adapted to first try to retrieve the target URL of a Target ID  4  in a received Generic Control record  1  from the client-side look-up table  45 B by having the client-side look-up function  39 B search the client-side look-up table  45 B for a target URL associated with the received Target ID. If no target URL associated with the received Target ID  4  is found, the Application Discoverer  17  can be adapted to provide the received Target ID  4  as input to the server-side look-up table  45 A by sending a look-up request to the Look-up server  35 . The Look-up server  35  can then retrieve the target URL of the Target ID  4  from the server-side look-up table  45 A. 
       FIG. 6  shows a signaling scheme illustrating how the system components of the system illustrated in  FIG. 5  may be configured to carry out the above described process. 
     Steps S 601  and S 602  corresponds to steps S 401  and S 402  in  FIG. 4 . 
     In step S 603 , the client-side look-up function  39 B of the Application Discoverer  17  provides the Target ID in the received Generic Control record as input to the client-side look-up table  45 B in a database-request. 
     In step S 604 , a search for a target URL of the Target ID is performed by traversing the client-side look-up table  45 B, which search in this case is assumed to be unsuccessful. 
     In step S 605 , the result of the search is returned to the client-side look-up function  39 B of the Application Discoverer  17  in response to the database request. If a target URL would have been found in step S 604 , the target URL and, optionally, any application-related information associated therewith would be included in the response whereupon the next step to be carried out would be step S 611 . However, when the response indicates that no target URL was found, as is assumed in this exemplary case, the procedure proceeds to step S 606 . 
     Steps S 606  to S 627  correspond to the steps S 403  to S 424  in  FIG. 4  with one single exception. Also in this embodiment it is assumed that the raw matching result returned from the server-side look-up table  45 B to the Look-up server in step S 609  comprises a plurality of target URLs, each associated with application-related information that is descriptive of the target application whose installation file or files  51  are downloadable from the target URLs, and/or that is descriptive of the installation file or files  51  themselves. However, in this embodiment, the raw matching result is not refined by the server-side look-up function  39 A in the Look-up server  35 . Instead the raw matching result is directly returned to the Application Discoverer  17  of the destination device in step S 610 , and the refinement of the raw matching result (rating, sorting and removal of target URLs) is performed by the client-side look-up function  39 B of the Application Discoverer  17  in step S 611 . The same would have been performed if a plurality of target URLs of the Target ID would have been found in the client-side look-up table  45 A in step S 604 . 
       FIG. 7  shows a flowchart illustrating a basic, exemplary embodiment of the method according to the invention. 
     Step S 701 : The RTD Handler  13  of the destination device receives a Target ID  4  comprised in a recently received Generic Control record  1 . 
     Step S 702 : The RTD Handler  13  tries to identify the target application of the Target ID  4 . If the target application is found, the method proceeds to step S 703  wherein the target application is launched. If the target application is not found, the method proceeds to step S 704 . 
     Step S 704 : The Application Discoverer  17  is launched. 
     Step S 705 : The available look-up table or look-up tables  45 A,  45 B are traversed in pursuit of at least one target URL of the Target ID  4 . 
     Step S 706 : If no target URL of the Target ID  4  is found in the look-up table(s)  45 A,  45 B, the method proceeds to step S 707  wherein the end-user, i.e. the user of the destination device, is notified about the negative search result. If, however, at least one target URL of the Target ID  4  is found in the look-up table(s)  45 A,  45 B, the end-user is notified that a target URL has been found in step S 708  whereupon the method proceeds to step S 709 . 
     Step S 709 : The end-user is asked whether he/she wants to download the installation file(s) for the target application from the target URL. If more than one target URL was found in step S 706 , the end-user is also asked which of the available target applications or target application versions he/she wants to download. If the end-user does not want to download any of the available target applications/target application versions, the method proceeds to step S 710  wherein the end-user is notified that the received Generic Control record  1  can not be processed, or, in other words, that the destination device is unable to understand the information received from whatever source device that sent the Generic Control record  1 . If, however, the end user chooses to download a target application/a particular target application version, the method proceeds to step S 711 . 
     S 711 : The Application Downloader  19  is launched. 
     S 712 : The Application Downloader  19  connects to the chosen target URL and the installation file(s)  51  for the target application is downloaded. 
     S 713 : The target application is installed on the destination device using the downloaded installation file(s)  51 . 
     S 714 : The RTD Handler  13  is notified that the target application is installed on the destination device and ready to be launched.