FR 2809257 A1 20011123 FR 0005545 A 20000428 L'invention se rapporte au domaine des télécommunications et concerne plus particulièrement un procédé de transmission et/ou de mise à jour d'un programme et/ou de données sur un terminal mobile relié de façon sans fil à un réseau cellulaire à stations terrestres ou satellites, ce terminal pouvant ensuite présenter les données sur l'interface Homme-Machine dudit terminal au moyen du programme sans qu'une connexion au réseau soit nécessaire. Dans la suite, l'utilisation du terme "terminal" impliquera un terminal mobile sans fil. L'invention concerne également un procédé de personnalisation de la transmission de données vers ce terminal en fonction de paramètres tels que notamment la localisation du terminal ou le profil de son propriétaire. L'invention concerne également un procédé de différentiation de ces données présentées en fonction de paramètres tels que la date, l'heure, la localisation, l'état du terminal ou les dernières actions effectuées sur ce terminal. La présente invention peut par exemple être utilisée dans le cadre d'une campagne publicitaire sur des terminaux mobiles sans fil, les données présentées pouvant être du texte, des images, des films (images animées) et/ou des enregistrements sonores fournis par des annonceurs. inition du contexte, de l'art antérieur et des principaux problèmes posés par ' antérieur La plupart des terminaux mobiles (téléphones mobiles, assistants personnels numériques, ...) permettent de présenter de l'information, par exemple au moyen d'un écran. Cette information peut être téléchargée depuis un centre serveur, par exemple depuis un serveur Internet en utilisant un protocole d'accès à Internet depuis un réseau sans fil, tel que le WAP (Wireless Application Protocol) ou un protocole équivalent. Dans ce cas, l'information présentée est statique, c'est à dire qu'elle n'évolue pas une fois téléchargée. Cependant, dans le cadre notamment d'une campagne publicitaire sur les écrans des terminaux du parc d'abonnés d'un opérateur de télécommunications, la coordination des communications simultanées pour la transmission des données publicitaires deviendrait rapidement impossible au vu du nombre déjà important et croissant d'abonnés des opérateurs. Si l'opérateur se destine à transmettre de telles informations publicitaires de façon permanente sur les terminaux, cette coordination nécessitant des instruments de gestion de réseau complexes et onéreux est rendue d'autant plus difficile que la transmission est permanente. En outre, lorsqu'un terminal se retrouve hors réseau, la communication est rompue et le terminal ne peut plus présenter les données publicitaires, ce qui est dommageable pour les annonceurs et donc pour les opérateurs. présente invention vise à remédier aux inconvénients de l'art antérieur cités ' dessus. 1. Eléments composant le système Le système est composé de 2 types de serveurs web (serveur dit de Contenu et serveur dit de Push , définis ci-après), d'une ou plusieurs passerelles et d'un terminal mobile. 1.1. Serveur web dit de Contenu Ce serveur a pour fonction d'héberger les fichiers qui, une fois stockés sur le terminal, permettent de présenter des données, d'où son appellation de serveur de contenu . Ce serveur de contenu héberge les éléments suivants # Un programme de présentation. Ce programme est un fichier exécutable sous le système d'exploitation du terminal, il permet d'afficher des données et/ou de produire des sons. Il utilise des fichiers de données stockés sur le terminal ainsi que certaines variables du terminal (date, heure, localisation, état... ). # Des fichiers de données. Ces fichiers sont des images (par exemple au format BMP), des films (images animées, par exemple au format AVI), des sons (par exemple au format WAV) ou du texte (par exemple au format TXT). # Des fichiers de paramétrage. Ces fichiers contiennent du texte (par exemple au format TXT). # Des fichiers d'installation. Ces fichiers sont des programmes exécutables sous le système d'exploitation du terminal, ils permettent d'installer sur le terminal les éléments cités ci-dessus, et ce à des adresses spécifiées moment de la constitution du fichier d'installation (par exemple en utilisant un fichier de configuration), et stockées dans le fichier d'installation lui-même. Ils permettent également de remplacer un ou plusieurs fichiers (programme, données, paramètres) en cours d'utilisation sur le terminal. 1.2. Serveur web dit de Push Ce serveur est capable d'initier une communication vers un terminal donné. Dans la suite du document, on utilise le terme Push pour préciser que la communication est initiée depuis le serveur. Cette initiation de communication est par exemple du type de celle définie dans le protocole WAP et nommée Push . On verra dans la suite la fonction d'une telle initiation. Ce serveur de push héberge les éléments suivants # Un fichier de correspondance entre des numéros d'identification des abonnés mobiles et leur profil (exemples de profils : cinéphiles, amateurs de sports...). II contient une liste de numéros de terminaux mobiles, chacun étant associé au profil de son propriétaire, par exemple par un code numérique. Ce code numérique est un moyen de regrouper les utilisateurs par profil. Le fichier est par exemple au format TXT, il peut également être une table d'une base de données. # Un fichier de correspondance entre les numéros d'identification des abonnés et les dernières localisations connues pour chaque terminal. La position peut avoir été calculée par l'opérateur (par exemple par identification de la cellule du réseau sans fil) ou par un dispositif extérieur (par exemple positionnement par satellite). La localisation peut être représentée par une convention quelconque, par exemple une concaténation latitude/longitude, ce qui donne par exemple une représentation du type latitude 10 I longitude 20 dans une unité appropriée. Le fichier est par exemple au format TXT, il peut également être une table d'une base de données. # Un fichier de correspondance entre les profils d'abonnés, les dernières localisations connues et les adresses web (nommées URL dans la suite du document). Ce fichier contient la liste des codes représentant les profils, chacun étant associé à une URL. Le fichier est par exemple au format TXT, il peut également être une table d'une base de données. # Une fonction dite de Push permettant d'envoyer une ou plusieurs instructions à un terminal donné. Ces instructions sont explicitées dans la suite du document par le biais d'exemples. # Un programme d'envoi permettant la transmission d'URL vers les terminaux. Ce programme parcourt les fichiers de correspondance décrits précédemment (ou les tables de la base de données) pour déterminer les URL à envoyer à chaque terminal. Une fois cette opération effectuée, le programme appelle la fonction dite de Push pour chaque numéro d'abonné concerné. 1.3. Passerelle La passerelle effectue la traduction entre les protocoles Internet et ceux du réseau sans fil (protocoles du GSM, par exemple). Dans le cas particulier de l'utilisation du WAP (Wireless Application Protocol) pour accéder à du contenu Internet, on parle de passerelle WAP. Dans la suite du document et par souci de clarté, on traite le cas particulier d'utilisation du WAP comme mode de réalisation du protocole permettant de véhiculer du contenu Internet sur un réseau sans fil, sachant que le procédé est généralisable à d'autres protocoles offrant les mêmes possibilités. On utilise donc la terminologie passerelle WAP . Par l'intermédiaire de la passerelle WAP, un terminal adapté à la navigation sur Internet depuis un réseau sans fil peut accéder au contenu d'un serveur web si ce contenu est formaté de façon appropriée (par exemple au format WML dans le cas particulier d'utilisation du WAP). 1.4. Terminal mobile sans fil Le terminal mobile sans fil est un téléphone, un assistant personnel numérique (comme par exemple ceux commercialisés sous les marques PALM, PSION...) ou un terminal embarqué, par exemple dans une automobile, un avion, un train.... Plus généralement, c'est un émetteur-récepteur mobile sans fil possédant une interface homme-machine permettant la saisie et la consultation de données. La saisie peut être manuelle ou vocale, la consultation peut-être visuelle, tactile (réception de données et interprétation par le terminal en langage des "sourds-muets" dit braille) ou auditive. Dans la suite du document, on traite le cas particulier d'une saisie manuelle au clavier et d'une consultation visuelle sur un écran, sachant que le procédé est généralisable aux autres modes. Ce terminal est adapté à la navigation sur Internet en utilisant le réseau sans fil. II est basé sur un système d'exploitation autorisant le téléchargement et l'exécution de programmes et de fichiers, par exemple un système utilisant la technologie Java. Ce terminal peut éventuellement connaître lui-même sa localisation, par exemple s'il est équipé d'un système de positionnement par satellite, si l'opérateur lui transmet l'information de localisation, ou par tout autre moyen. Dans la suite du document, on traite en parallèle le cas où le terminal connaît sa position et le cas où il ne la connaît pas. 2. Description du procédé Le procédé se structure en 2 étapes # Transmission (chargement du programme, des données et des paramètres sur le terminal) # Utilisation (fonctionnement des fichiers chargés sur le terminal) 2.1. Transmission Décrite par le schéma ci-dessous, l'étape de transmission se décompose en 3 principales phases 1. Envoi de l'URL de contenu depuis le serveur de push vers le terminal 2. Connexion du terminal à l'URL reçue 3. Téléchargement et exécution du fichier situé à l'URL de contenu Intern et Réseau sans fil 7 Passerelle 1 .oo p c Serveur dit de Push i ;Chargement de service 0l Chargement de service (2) ------------- . 1 ---------------- Par exemple: Codage binaire www.serveur.comlcontenu.wml Par exemple : 01001110... ... Terminal mobile C Passerelle 2, ------------------------------------------------------ Requête d'accès(') Requête d'accès @2> Serveur _______________ ___________________________de contenu , ---@ ; Conten f Contenu (2) u::( @ ' v . w --------------------------------------------------------- Note 1 (1) Véhiculé par le protocole Internet (2) Véhiculé par le protocole du réseau sans fil Note 2 Les passerelles 1 et 2 peuvent être une seule et même machine, ou deux machines différentes. 2.1.9. Push personnalisé La technique dite de Push consiste à initier depuis un serveur une communication entre ce serveur et un terminal. On peut alors envoyer des informations au terminal, de manière transparente ou non pour l'utilisateur final. Le Push personnalisé utilise les fichiers présents sur le serveur de push, qui fournissent les paramètres d'entrée de la fonction de push. Cette fonction parcourt et met en corrélation les fichiers ou les tables de correspondance et pour chaque numéro génère une action de Push non détectable par l'utilisateur (par exemple une action de push de type chargement de service dans la terminologie WAP) en envoyant au terminal l'URL correspondant au profil de son propriétaire. Dans la suite du document, on parle de push personnalisé. Exemple de détermination de l'URL à envoyer Exemple d'extrait du contenu du fichier/table 1 Numéro Profil 0601 234567 1 0601 234568 2 0601 234569 3 0601 234570 1 Exemple d'extrait du contenu du fichier/table 2 Numéro Dernière localisation 0601 234567 10/20 0601234568 10/30 0601234569 5I13__ 0601 234570 8120 Exemple d'extrait du contenu du fichier/table 3 Profil Dernière localisation Adresse 1 10/20 www. ... Ire ertoire- rofil1/installation- rofil1.exe 1 8/20 www. ... Ire ertoire- rofil1/installation- rofil2.exe 2 10130 www. ... Ire ertoire- rofil2/installation- rofil1.exe 2 8120 www.[._.]Irepertoire-profil2linstallation-profil2.exe Note La notation 10/20 symbolise les coordonnées latitude 10 I longitude 20. Le programme parcourt les fichiers/tables 1 et 2 pour repérer le profil et la dernière localisation correspondants à un numéro. II cherche ensuite dans le fichier/table 3 la ligne correspondant à ces deux paramètres. La recherche peut être effectuée avec différentes règles, par exemple une recherche d'occurrence exacte des paramètres, ou une recherche des valeurs les plus proches de ces paramètres, ou toute autre règle de recherche. Suivant que l'on utilise des fichiers ou des tables, la recherche peut être effectuée en parcourant les fichiers ou en effectuant des requêtes dans la base de données contenant les tables de correspondance. Si une correspondance est trouvée, le programme effectue un appel à la fonction de push en lui passant en paramètre le numéro d'abonné et l'URL à envoyer, résultat de la recherche. Dans le cas contraire, le programme passe simplement au numéro suivant dans la liste des abonnés par l'intermédiaire d'une boucle de programmation. Dans l'exemple ci-dessus # L'abonné ayant le numéro 06 01 23 45 67 se voit envoyer l'adresse suivante www.[...]/repertoire-profil1/installation-profil1.exe # L'abonné ayant le numéro 06 01 23 45 68 se voit envoyer l'adresse suivante www.[... ]/repertoire-profil2/installation-profil1.exe Le Push est géré par le programme de l'opérateur de télécommunications propriétaire du serveur de push et de la passerelle, l'association des URL et des profils est fournie par le propriétaire du serveur de contenu. Suivant l'application souhaitée, on peut utiliser le programme pour effectuer des opérations de push périodiques (toutes les semaines, par exemple), ou faire des appels à la demande à la fonction de push en lui passant les paramètres adéquats. Lorsqu'un terminal n'est pas connecté au réseau au moment du push, le programme peut par exemple effectuer des opérations répétées de push jusqu'au succès ou à l'abandon de la procédure. Lorsque le terminal est connecté au réseau, mais n'est pas en mesure d'accéder à l'URL reçue, il peut par exemple stocker l'instruction en mémoire cache pour l'exécuter plus tard. Le résultat est une connexion du terminal à une URL qui est spécifique à ses caractéristiques, et ce de manière non détectable par l'utilisateur. 2.9.2. Connexion au serveur contenu L'URL envoyée au terminal correspond à une adresse du serveur de contenu. La correspondance profils/URL dans le fichier du serveur de push est reproduite de manière physique sur le serveur de contenu, comme par exemple dans le cas cité ci-dessous Arborescence des fichiers sur le serveur de contenu Répertoire de contenu ier programme de présentation Fichier de données A Fichier de données B Fichier de données C Répertoire profil 1 Fichier de paramètres profil 1 Fichier d'installation profil 1 * i Répertoire profil 2 Exemple d'URL d'installation profil 1 www. f... l/repertoire-profill/installation-profill. exe Fichier de paramètres profil 2 Fichier d'installation profil 2 @-----, i ,.. Exemple d'URL d'installation profil 2 www. f.. . I/repertoire-profil2/installation-profif2. exe Fichier correspondant sur le serveur de push Profil 1 www.f...l/repertoire-profil1/installation-profil1.exe Profil 2 www.f...l/repertoire-profil2/installation-profil2.exe Profil 3 www.f...]/repertoire-profil3/installation-profil3.exe Les fichiers d'installation sont constitués par regroupement et compression éventuelle des fichiers de données, de paramètres et/ou programme. Dans le cas de l'exemple cité, on peut avoir les correspondances suivantes # Fichier d'installation profil 1 -Fichier programme de présentation -Fichier de paramètres profil 1 -Fichier de données D # Fichier d'installation profil 2 - Fichier programme de présentation - Fichier de paramètres profil 2 - Fichier de données A - Fichier de données B # Fichier d'installation profil 3 - Fichier programme de présentation - Fichier de paramètres profil 3 - Fichier de données B - Fichier de données D Les fichiers d'installation peuvent être mis à jour régulièrement sur le serveur, ceci permet par exemple d'intégrer de nouveaux fichiers de données fournis par de nouveaux annonceurs publicitaires, ou de modifier le planning de présentation de ces données en modifiant les fichiers de paramètres. A chaque mise à jour de fichiers (programme, données et/ou paramètres), on reconstitue le fichier d'installation correspondant. Les fichiers de données concernés par un profil sont ceux cités dans le fichier de paramètres correspondant à ce profil. 2.9.3. Téléchargement d'un programme d'installation L'URL envoyée au terminal pointe sur un programme d'installation exécutable dans l'environnement du terminal. Chaque programme d'installation est particulier, il permet d'installer ou de mettre à jour une partie des fichiers du serveur de contenu sur le terminal # Fichier programme de présentation # Fichiers de données # Fichier de paramètres correspondant à un profil A titre illustratif, on utilise l'extension EXE dans l'exemple présent, pour symboliser le fait que le fichier d'installation est directement exécuté sur le terminal lorsque celui-ci accède à l'URL. Plus généralement, l'extension utilisée est celle acceptée par le système d'exploitation du terminal comme extension d'un fichier auto-exécutable. Le programme d'installation est alors téléchargé et exécuté sur le terminal, et ce de manière non détectable pour l'utilisateur. L'exécution du programme d'installation produit les effets suivants # Destruction du processus correspondant au programme de présentation. # Test d'existence, comparaison de dates et écrasement éventuel des fichiers de données (images, sons... ) si les fichiers à installer sont plus récents. # Test d'existence, comparaison de dates et écrasement éventuel du fichier de paramètres si le fichier à installer est plus récent. # Test d'existence, comparaison de dates et écrasement éventuel du programme d'affichage si le programme à installer est plus récent. # Nouvelle activation du programme de présentation. On peut également envisager de ne télécharger qu'un programme de mise à jour une fois que la première installation a été effectuée. Ce procédé permet de réduire le volume de données émises sur le réseau, par exemple en n'envoyant que l'installation du fichier de paramètres si le programme et les données n'ont pas changé. 2.2. Utilisation Ce chapitre décrit le fonctionnement des fichiers installés sur le terminal. Le programme de présentation utilise la date, l'heure, la localisation et l'état du terminal pour fournir un résultat. Ce résultat est un appel aux fonctions d'affichage et/ou de génération de sons du terminal, avec en paramètres passés à ces fonctions le chemin d'accès à un ou plusieurs fichiers de données installés sur le terminal au même titre que le programme. Dans la suite du document, on traite le cas particulier d'un seul fichier passé en paramètre, sachant que le procédé est généralisable au cas de plusieurs fichiers. Par état du terminal , on entend état au sens large du terme, c'est-à-dire par exemple # Verrouillage du clavier ou non # Terminal en mode veille ou non # Niveau de charge de la batterie # Dernière touche sélectionnée par l'utilisateur # Temps écoulé depuis la dernière communication # Ou toute combinaison de ces types de paramètres. Dans la suite du document, l'état au sens large est représenté par un code numérique. Le code 1 peut par exemple représenter l'état Plus de 3 secondes se sont écoulées depuis la fin de la dernière communication . Ce code est en fait calculé par le programme de présentation en fonction des différentes variables d'état lues sur le terminal (par exemple, niveau de charge de la batterie, dernière touche sélectionnée...). On ne se soucie pas de la représentation réelle de chaque code, on sait simplement qu'ils permettent de caractériser l'état du terminal au sens large. Le fonctionnement peut être schématisé de la façon suivante Variables du terminal Date I Heure Localisation # Etat du terminal 1 - Lecture des variables du terminal Fichier de paramètres Programme 2 - Déduction des fichiers de données à utiliser # Date I Heure de présentation . Localisation # Etat du terminal # Chemin vers un fichier de données 3- Appel aux fonctions de présentation (passage en paramètre du chemin vers un fichier de données) Fonctions de présentation du terminal # Affichage # Génération de sons Note Les chemins représentent les chemins d'accès aux fichiers dans l'architecture logique du terminal. Le programme de présentation est actif en permanence, il lit en temps réel les variables d'état du terminal, calcule le code correspondant à l'ensemble de ces variables et cherche une correspondance dans le fichier de paramètres. Lorsqu'une correspondance est trouvée, un appel paramétré aux fonctions de présentation du terminal est effectué. Exemple de fonctionnement Exemple d'extrait du contenu du fichier de aramètres Date l Heure Localisation Etat Chemin d'accès au fichier à présenter 01102l2000: 10h23m15s 10I20 1 Chemin 1 01102I2000: 10h23m15s 10I30 1 Chemin 2 01102I2000: 10h23m15s 15I20 1 Chemin 3 01l0212000: 10h23m15s 10l20 2 Chemin 4 01102l2000: 10h23m15s 0 inconnue 1 Chemin 5 01102l2000: 12h15m10s 10l20 3 Chemin 6 0110212000: 12h15m10s 10l30 3 Chemin 7 0110212000: 12h15m10s 0 inconnue 3 Chemin 8 0110312000: 12h15m10s 50120 2 Chemin 9 01103I2000 : 12h15m10s 50I20 3 Chemin 10 Exemple des variables du terminal # Date/heure = 01102l2000 : 10h23m15s # Localisation = 10I20 (c'est la localisation réelle, le terminal ne la connaît pas forcément lui-même) # Etat = fin de la dernière communication il y a 5 secondes Le programme analyse les données du terminal # Lecture de la date et de l'heure # Lecture de la localisation si elle est connue du terminal lui-même, valeur par défaut dans le cas contraire (0, par exemple, symbolisant le fait que le terminal ne possède pas l'information de sa localisation) # Calcul de l'état du terminal au sens large (dans le cas présent et avec l'exemple de convention choisi précédemment, le calcul donne le résultat 1) Note Lorsque le terminal est capable de connaître sa localisation mais n'est plus accessible par le système de positionnement, il peut par exemple utiliser la dernière localisation connue si celle-ci est gardée en mémoire. Le programme recherche dans le fichier de paramètres une correspondance aux données du terminal. La recherche peut être effectuée avec différentes règles, par exemple une recherche d'occurrence exacte des paramètres, ou une recherche des valeurs les plus proches de ces paramètres, ou toute autre règle de recherche. Dans le cas d'un terminal ne connaissant pas sa localisation, la recherche peut être effectuée sur la valeur par défaut (0 dans cet exemple). Si une correspondance est trouvée, le programme effectue un appel à une fonction de présentation du terminal en lui passant en paramètre le chemin d'accès au fichier de données à présenter (chemin résultant de la procédure de recherche dans le fichier de paramètres). Dans le cas contraire, on peut par exemple utiliser un chemin par défaut ou n'effectuer aucune présentation. Dans l'exemple ci-dessus, si le terminal connaît sa localisation, le chemin repérant le fichier de données à présenter est Chemin 1 (occurrence trouvée dans la ligne 1 de l'exemple d'extrait du fichier de paramètres). Si le terminal ne connaît pas sa position, le chemin repérant le fichier de données à présenter est Chemin 5 (occurrence trouvée dans la ligne 5 de l'exemple d'extrait du fichier de paramètres). 3. Conclusion Le comportement en présentation du terminal dépend donc de la date, de l'heure, de la position, de l'état du terminal et du profil de l'abonné, les fichiers de paramètres et de données ayant été installés de manière spécifique à ce profil et à sa position au moment du push. Suivant le paramétrage et les fichiers de données utilisés, on peut par exemple afficher des images publicitaires sur l'écran du terminal mobile lorsque celui-ci n'est pas en communication (l'affichage est par exemple lancé quelques secondes après la fin de communication, et est par exemple stoppé lorsqu'une touche est pressée). Ces images peuvent couvrir l'ensemble de l'écran ou être intégrées dans l'écran au même titre que l'heure, le niveau de charge de la batterie ou d'autres paramètres du terminal. Les images et leur horaire d'affichage peuvent être spécifiques à un profil d'abonné, on peut également gérer un affichage en fonction de la localisation du terminal si celui-ci possède l'information de localisation. REVENDICATION 1. Procédé de transmission de données dans un système de télécommunications comprenant un réseau cellulaire comportant au moins un terminal mobile, ledit réseau étant relié par au moins une passerelle au réseau Internet, la passerelle effectuant la traduction entre les protocoles Internet et ceux du réseau sans fil, ledit système comprenant en outre un premier et un second serveur web, le procédé étant caractérisé en ce qu'il comporte les étapes suivantes # Une étape de transmission par le premier serveur d'une adresse web du second serveur vers le terminal # Une étape de connexion du terminal à ladite adresse web # Une étape de téléchargement et exécution d'un fichier situé à ladite adresse web.