Abstract:
The invention relates to a method for the communication of a terminal ( 10 ) with a server ( 14 ), the terminal including an application and computer software capable of communicating with the server ( 14 ). The method comprises: the step of sending ( 42 ) a request (RLoc) by the application ( 26 ) to the software ( 34 ), and the step of obtaining ( 44 ) by the software ( 34 ) and from the application ( 26 ) data (DAutor) necessary for the software ( 34 ) to communicate with the server ( 14 ) so that the request can be executed. This method enables access to GPS assistance servers to be limited only to users who have paid the localization service to the owner operator of the localization assistance server.

Description:
BACKGROUND OF THE INVENTION 
     The present invention concerns a method of communication of a terminal with a server. 
     There is already known in the prior art such a method in which the terminal, for example a mobile telephone, contains an application program, referred to hereinafter as an application, adapted to manage a particular service, for example a service based on the location of the telephone. The terminal also includes a computer program adapted to communicate with a server external to the terminal in order to exchange data with the server. The method can comprise a step of the application sending the server a request that can be executed by the program after communicating with the server, for example after receiving data sent by the server to the program. To this end, the program contains authorization data necessary for the program to be able to communicate with the server, for example in the form of an identifier of the server associated with a private encryption key, this data guaranteeing that the computer program is authorized to exchange information with the server. Thus any request sent by an application to the program can be executed by virtue of communication between the program and the server. 
     A difficulty is that any application can send a request to the program to execute the request with the aid of the server. In particular, an application other than that initially intended and managing a service competing with the aforementioned service can use the program to execute a request with the aid of the server. It follows from this that a competitor of an operator to which the server belongs can offer users an application providing a service competing with the service proposed by the operator using the resources of the operator at will and free of charge. Also, subscribers of the operator who have not subscribed to the application authorized to use the server can use the server at will and obtain free of charge the benefit of the advantages of using that server. 
     SUMMARY OF THE INVENTION 
     The invention provides a method of communication of a terminal with a server ensuring better control of access to data sent by the server. 
     To this end, the subject of the invention is a method of communication of a terminal with a server, the terminal comprising an application and a computer program, the program being adapted to communicate with the server, the method comprising:
         a step of the application sending the program a request, and   a step of the program obtaining from the application data necessary for the program to communicate with the server and for the server to execute the request.       

     Thanks to this method, it is not the computer program that initially contains the data necessary for communicating with the server but the application, which will generally be an application managed by the same operator as that to which the assistance server belongs. Consequently, another application that is not authorized to obtain the benefit of the advantages of using the server and is managed by a competing operator or installed for the purposes of piracy will not be capable of supplying to the program the data necessary for communication with the server and will therefore not be able to obtain from the program data enabling execution of the request sent by the application to the program. Thus only the application authorized by the operator to communicate with the server will be able to do so. 
     It will be noted that the application will generally be a data processing task adapted to manage a service, for which it provides the logic, not only by sending requests to the program but also by interacting with a user, for example with a user of the terminal via an interface of the terminal, or by interacting with storage means of the terminal, such as a database, with other computer programs or with other external servers. On the other hand, the program used in the terminal to access the server is generally not directly accessible to the terminal user. 
     It will further be noted that the communication set up between the server and the program enables complete or partial execution of the request sent by the application to the program. In particular, that request can be executed thanks to communication between the server and the program and also thanks to other operations executed by the program. 
     Furthermore, the step of the program obtaining data from the application can be a step of the application supplying data to the program, for example in the form of a step in which the application sends this data to the program or a step of the application authorizing access to this data by the program, for example by restricting to the program alone access in read mode to the data stored by the application. 
     As explained hereinafter, the communication method of the invention is of particular benefit in the context of a method of locating a terminal using a location assistance server including communication of the terminal with the server of the invention, and in particular in the context of a satellite-based location method. 
     To facilitate satellite location of a terminal, for example using GPS, there is already known in the art a method using a location assistance server, for example the assisted-GPS (A-GPS) or GPS+ method, in which the server supplies location assistance data to the terminal to be located, in particular a mobile telephone. For example, the mobile telephone includes an application for managing the location service which when activated by a user sends a location request to a program of the terminal. That program is capable of communicating with the external location assistance server, where appropriate via a telephone network having an Internet connection. To be more precise, the program sends an assistance request to the assistance server which is for example capable of estimating the approximate location of the terminal by means of the telephone network. Still by way of example, the assistance server is capable of determining which satellites are situated above the area in which the terminal to be located is liable to find itself (thanks to the pre-location of the terminal effected beforehand) and can therefore supply to the program of the terminal location assistance data indicating which signals sent by satellites are susceptible to provide it with its location. Thanks to this data, the terminal links to these satellites and can then quickly supply accurate location data to the application on the terminal that requested it. 
     It is generally required to limit access to assistance servers to only those users who have a contract for, and have therefore paid for, the location service of the operator that owns the assistance server. To this end, the prior art program contains data authorizing access to the location assistance data supplied by the assistance server, for example in the form of encryption keys, this data guaranteeing that the program is authorized to exchange information with the location assistance server. However, under these conditions, any application, in particular a competing application or a pirate application sending a location request to the program, is authorized to access the assistance server, thanks to the authorization data stored permanently in the program. 
     Thanks to the communication method of the invention, a location method is available using an assistance server providing improved control of access to the data sent by the assistance server. In this method it is not the computer program that initially contains the data necessary for communication with the assistance server but the location service management application, which will generally be an application managed by the operator that owns the assistance server. Consequently, an application other than the authorized application will not be able to provide the program with the data necessary for communication with the server and will therefore not be able to obtain location assistance data from the program. Thus only an application authorized by the operator to access the assistance data will be able to do so. 
     It will be noted that the location method can be used for any type of location, in particular for satellite location, such as location by the Global Navigation Satellite System (GNSS), combining location with the aid of GPS or Galileo satellites (when the latter become operational), or any other type of satellite location. It will further be noted that the location method can be used both to locate the terminal on a one-off basis at a given time and to locate it in real time during a certain time interval, i.e. as a navigation method. Furthermore, the method can locate a terminal provided with means for receiving a signal sent by a satellite and means for communicating with a location assistance server, these communication means using a mobile telephone network for example, such as a GPRS, EDGE, UMTS, etc. network, where appropriate providing access to the assistance server. This terminal will be a mobile telephone or a navigation terminal, for example. 
     A variant of the method includes a step of the program communicating with a position calculation module in the means for receiving a signal sent by a satellite. Accordingly, the aforementioned program is able to communicate at the same time with the server, such as the location assistance server, with the application and with means adapted to receive a signal sent by a satellite, such as a GPS signal receiver. The program is able to use data provided by the server, for example location assistance data, to send it to the position calculation module (comprising a “chipset” of integrated circuits) in the receiving means, or to use the data to control this calculation module or to calculate corrections to be made to calculations effected by that module. 
     This communication between the computer program and the position calculation module can be indirect, the program being executed in memory by a microprocessor of the terminal, for example, and communicating with the module (which is in software form) using the software of the microprocessor. Alternatively, the program can communicate (via hardware) directly with the position module in the receiving means by virtue of being implemented directly in the calculation module, that module being separate from the microprocessor of the terminal, which has the advantage of allowing fast execution of the program because these means can be configured to execute specific operations. It will moreover be noted that this position calculation module, with which the program communicates, can also be used for satellite location without necessarily using a location assistance server. In this case, the module can calculate the position of the terminal anyway, without the assistance data, although this generates a location of lower quality that is obtained with a much longer delay than if assistance data had been used. Thus using the location assistance server to locate the terminal can be optional. 
     In one variant of the method, the data (D Autor ) obtained during the step of obtaining data is deleted from the program after its transmission to the server. It can be deleted when the program receives the data resulting from execution of the request by the server, for example. In concrete terms, the data obtained being referred to as authorization data, the method includes a step of the program receiving from the server assistance data for executing the request followed by a step of deleting authorization data in the program. Accordingly, once the authorization data has been used to exchange information with the server, for example so that the computer program receives the location assistance data, the authorization data is deleted from the program, for example by eliminating it from a buffer memory of the program, so that the latter cannot consult the assistance server without again receiving the data authorized by the application. It will be noted that this step of deleting authorization data can optionally be executed directly after the step of receiving the assistance data. 
     In another variant, the method includes a step of the program sending the application other data, for example location data, followed by a step of warning that an action is being or has been effected, with a view to billing it. For example, the application receives in response to its request for location of the terminal location data obtained in particular at the end of communication between the program and the server. The reception of this location data reflects the fact that a service, for example a location assistance service, has been rendered, and the warning step enables the operator to bill later for the service rendered. This warning step can take the form, for example, of a connection between a billing server situated in the operator network and a map server communicating with the application to enable in particular downloading of geographical maps to the terminal. Accordingly, each time that the terminal downloads a map, the warning step includes setting up a connection between the cartography server and the billing server. The warning step could take many other forms. For example, the application could be connected directly to a billing server after receiving a geographical map or after the program receives location data or the application could store the number of location operations effected and transmit them periodically to an external server. 
     Another alternative is for the data obtained from the application by the program, referred to as authorization data, to comprise at least one of the elements of the group consisting of an identifier of the server, for example the IP address or the domain name of the server, and an encryption key shared at least by the application and the server, which key can be generated in accordance with the TLS (Transport Layer Security), GBA (Generic Bootstrapping Architecture) or PSK (PreShared Key) communication protocol. It will nevertheless be understood that these examples of authorization data are not limiting on the invention. 
     The invention is also concerned with a computer program comprising code instructions which execute the following steps when the program is executed by a processor:
         a step of receiving a request;   a step of obtaining data necessary to communicate with a server and for the server to execute the request.       

     The invention also relates to an application comprising code instructions which execute the following steps when it is executed by a processor:
         a step of sending a request to a program;   a step of providing data necessary for communication between the program and a server.       

     The invention is furthermore concerned with a communication terminal adapted to communicate with a server, the terminal comprising an application and a program:
         the application being adapted to send a request to the program,   the computer program being adapted to obtain from the application data necessary for the program to communicate with the server to enable execution of the request.       

     In the case of a communication terminal adapted to be located with the aid of a satellite location assistance server, in order to enable location assistance to be provided the application is adapted to send the program a request for location of the terminal and the program is adapted to obtain from the application data necessary for the program to be able to communicate with the server. 
     The invention is additionally concerned with a system comprising the above terminal and the location assistance server. 
     Moreover, the invention provides a storage medium storing the computer program and/or the application defined above and making the computer program and/or the application defined above available with a view to downloading them. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The invention will be better understood on reading the following description, which is given by way of example only and with reference to the drawings, in which: 
         FIG. 1  is a diagrammatic view showing a communication system including a terminal of one embodiment of the invention; and 
         FIG. 2  is a diagram showing a method of communication between the terminal and the server from  FIG. 1 . 
     
    
    
     DESCRIPTION OF PREFERRED EMBODIMENTS 
       FIG. 1  shows a communication terminal  10  adapted to communicate with a server  14 . To be more precise, in this example the terminal  10  is adapted to be located by means of satellites  12  and the server  14  is a (terrestrial) satellite location assistance server assisting with locating the terminal  10 . The terminal  10  is a mobile telephone, for example, or a navigation terminal such as those that can be used in an automobile vehicle. 
     The terminal  10  includes means  16 ,  18  for receiving signals sent by satellites comprising an antenna  16  associated with a position calculation module  18  in the receiving means and comprising one or more integrated circuits, referred to as a “chipset”, separate from the microprocessor of the terminal  10  and capable of processing the signal received by the antenna  16  to produce therefrom data that can be processed by the microprocessor. 
     The terminal  10  further includes means  20 ,  24  for communicating with a communication network  22 , this network  22  being in this example a mobile telephone network, such as a GPRS, EDGE or UMTS network, in particular one using the Internet. The communication means comprise an antenna  20  associated with means  24  for receiving a signal transmitted by the antenna  20 . 
     It will be clear that the receiving means  16 ,  18 ,  20 ,  24  described are merely examples. In particular, they do not necessarily comprise an antenna or the antennas  16 ,  20  could be combined. 
     The terminal  10  further includes a service management application  26  which in this example manages a location service for locating the terminal  10 . This application is implemented in the microprocessor of the terminal  10  which is associated with storage means such as a memory  32 . 
     The application  26  is capable of interacting with various tools for providing the location service, for example with means for interfacing with a user of the terminal  10  comprising a display screen  28  and an input keyboard  29 . It is also capable of interacting with an external cartographic server  30  from which the application  26  can download geographical maps via the network  22  in order to display them on the screen  28 . The application  26  is also capable of receiving location data, in particular from the receiving means  16  (see below), and can where appropriate communicate via the network  22  with a billing server  31 . 
     The application  26  could interact with other tools to provide the service, for example a database of the terminal  10 , with other computer programs or with other external servers. 
     In one variant, the application  26  is capable of interacting with means for interfacing with a user of a terminal other than the terminal  10 , for example with an adult having a terminal and attempting to locate a child having a terminal similar to the terminal  10  (but not necessarily including interface means) by seeking to interrogate the application  26  to locate the terminal  10 . 
     The application  26  is moreover adapted to communicate with a computer program  34 , in particular to send it a request to locate the terminal  10 . The application  26  is furthermore capable of supplying to the program  34  data referred to as authorization data necessary for the program  34  to be able to communicate with the assistance server  14  via the network  22  in order to enable location assistance to be provided. 
     In addition to its ability to communicate with the application  26  and with the assistance server  14 , the computer program  34  is capable of communicating with the means  18  for receiving a satellite signal. 
     In one embodiment this computer program  34  is implemented in the microprocessor of the terminal  10 . In another embodiment the computer program  34  is implemented in the receiving means, to be more precise in the calculation module  18 , separate from the microprocessor of the terminal. In this case where the program  34  is implemented directly in the module  18  without being executed by the microprocessor, it can be configured to execute specific operations, execution of which will be particularly fast. 
     It will be noted that the memory  32  associated with the application  26  is capable of storing data D Autor , referred to as authorization data, necessary for the program  34  to be able to communicate with the server  14  to enable location assistance to be provided. To be more precise, this authorization data includes here an IP address or a domain name of the server  14  and an encryption private key making control of access to the server  14  highly secure, this key being shared by the application  26  and the server  14 . This data D Autor  can take a multiplicity of other forms, however, and in particular does not necessarily comprise an encryption key, an IP address or a domain name. 
     A communication method, here a location method, implemented by the terminal  10  from  FIG. 1  is described next with reference to  FIG. 2 . 
     The method begins with a step  40  of requesting location of the terminal  10 , which request is received by the application  26  with which the user of the terminal  10  interacts by means of the keyboard  29  and the screen  28  of the terminal. This step  40  is followed by a step  42  of the application  26  sending the computer program  34  a location request R Loc , this step being followed by a step  44  of the application  26  providing the program  34  with the data D Autor  necessary for the program  34  to communicate with the server  14  to enable location assistance to be provided. Alternatively, the steps  42  and  44  can be simultaneous. 
     The steps  42  and  44  are followed by a step  46  of the program  34  receiving the request R Loc  to locate the terminal and the authorization data D Autor , the request R Loc  being received before, after or at the same time as the data D Autor . The step  46  is followed by a step  48  of the program  34  sending the server  14  a request R Assist  to assist with location of the terminal  10  and a step  50  of the program  34  providing the server  14  with the data D Autor  previously received. These steps  48 ,  50 , which occur one before or after the other or simultaneously, are followed by a step  52  of the server  14  receiving the assistance request R Assist  and the authorization data D Autor . The reception step  52  is followed by a step  54  of verification by the server  14  of the authorization data D Autor  during which the server  14 , which knows for example the encryption private key used by the application  26  to generate the data D Autor , verifies that this data D Autor  was generated using that private key. 
     It will be noted that the steps  48  to  54  aiming to set up efficient communication between the program  34  and the server  14  to enable exchange of data between the server and the program can take other forms. In particular, the method does not systematically include a step of the program  34  sending the server  14  data D Autor  obtained beforehand and can include a step of establishing access between the program and the server. This can be the case if the data D Autor  comprises only an IP address of the server  14 , this address being necessary to set up the connection but not being sent to the server. Moreover, the encryption algorithms can include keys that are not sent but enable communication to be encrypted/decrypted. 
     When the verification step  54  has a positive result or a connection has been set up there follows a step  56  of approximate or coarse location by the server  14  of the terminal  10 , this coarse location being effected by means of the network  22 , here a mobile telephone network, which is capable of locating an area in which the terminal  10  is situated. The step  56  is followed by a step  58  of the server  14  sending assistance data D Assist  to the program  34 , this data D Assist  including information as a function of the approximate location obtained following the step  56 , for example an identification of the satellites  12  situated above the terminal  10  and the signals from which are likely to enable fast and efficient location of the terminal  10 , or correction data relating to the environment in which the terminal  10  is situated, in order thereafter to enable accurate location. This data D Assist  can take other forms. For example, the server  14  could send the program  34  only the coordinates of the coarse location area of the terminal  10 , the program  34  then proceeding to perform the calculations itself. 
     The step  60  of the program  34  receiving the data D Assist  is followed by a step  61  of deleting the data D Autor  from the buffer memory of the program  34  and a step  62  of the program  34  processing this data, followed by a step of sending the receiving means  16 ,  18  instructions enabling accurate measurements to be effected in order to obtain an exact location of the terminal  10  faster and more accurately than the server  14 . This step  64  is followed by a step  66  of the means  16 ,  18  executing the instructions sent by the terminal  34 , in particular by effecting measurements, and then a step  68  of sending the program  34  intermediate location data D Inter  in respect of the terminal  10  obtained from the measurements, this data D Inter  thereafter enabling provision of accurate location data. 
     The sending step  68  is followed by a step  70  of the program  34  receiving the data D Inter  and then a step  71  of processing this data D Inter  during which calculations are carried out, for example to correct the data D Inter  measured by the receiving means as a function of the data D Assist  provided to the program during the step  60 . This step  71  could also include a step of exchanging the measurements with the server  14  with a view to correcting them (in this case, the deletion step  61  is executed after the step  71 ). The step  71  is followed by a step  72  of sending the application  26  the location data D Loc . 
     The step  74  of the application  26  receiving the data D Loc  is followed in this example of the method by a step  76  of the application  26  requesting downloading from the network  22  of a geographical map corresponding to the location provided by the data D Loc.  The step  76  is followed by a step  78  of the cartography server  30  receiving the request and then a step  80  of the server  30  looking for an associated map, followed by a step  82  of sending that map to the application  26  and a step  84  of the application  26  displaying on the screen  28  the map associated with the location of the terminal  10 . The sending step  82  is moreover followed by a step  86  of the server  30  warning the billing server  31  via the network that a location has been effected, which step is subsequently followed by a step  88  of the server  31  billing for the service provided. 
     It will be noted that the program  34  or the application  26  can be stored on a storage medium, for example a CD or a DVD, before they are installed in the terminal  10 , for example. The program  34  or the application  26  can equally be made available for downloading, in particular via the Internet. 
     It will finally be noted that the invention is not limited to the embodiments described above. 
     In particular, the exchanges between the program  34  and the server  14  can take place upstream of the measurements effected by the means  16 ,  18 , in order to effect accurate measurements, and/or downstream of the measurements, in order to correct the measurements. 
     Moreover, the step  44  of the program  34  obtaining the data D Autor  from the application  26  can take forms other than the application  26  sending this data. The memory  32  being a memory (possibly external to the application  26 ) in which the application can write and access to which in read mode is restricted to the program  34  can be envisaged. In this case, the program can obtain the data D Autor  by reading this data in the memory  32 . Thus a competing or pirate application could not obtain this data D Autor  because it is not authorized to read it. 
     Furthermore, the steps up to step  88  can be replaced by other steps. It will be noted that in one particular variant of the invention the terminal  10  is placed on a child and the application  26  interacts during the location process not with the interface of the terminal  10  but with an external server to provide it with the data D Loc  on the location of the child, a mother being able also to communicate with the server to discover that location. 
     It will be clear that as the program  34  does not initially include the data enabling communication with the assistance server  14 , if an application other than the application  26  and that is not authorized is downloaded into the terminal  10  it could not communicate with the server  14  to locate the terminal. That other application could possibly obtain location data from the receiving means  68 , for example GPS data, but without the prior assistance of the server  14 , i.e. without A-GPS, with the result that this data would be less accurate and obtained more slowly.