Brevet FR2867581A1 — publié le 20050916

La présente invention concerne une sonde logicielle, c'est-à-dire un dispositif pouvant être embarqué dans un terminal mobile pour superviser, mesurer et analyser son utilisation. De façon générale, les sondes logicielles connues embarquées dans un terminal mobile ne permettent que la supervision d'un service particulier. Dans un domaine voisin, on connaît des méthodes reposant sur la collecte de données auprès de serveurs de communication et qui permettent d'obtenir certaines données d'utilisations des terminaux mobiles en liaison avec ces serveurs, et notamment des informations liées à la configuration de services, ou à des transactions effectuées à partir de ces terminaux. Mais ces méthodes de collecte ne permettent pas d'obtenir d'informations sur l'utilisation de l'interface homme machine du terminal mobile (navigation dans les menus, ...) ni sur l'utilisation d'applications locales (c'est à dire sans accès distant) embarquées dans le terminal mobile. La présente invention permet de résoudre les problèmes précités. A cet effet, elle vise un procédé de supervision de l'usage d'un terminal mobile dont un système d'exploitation comporte un serveur d'événements, ce procédé étant caractérisé en ce qu'il comporte: une étape d'envoi, à ce serveur d'événement, d'une requête pour recevoir une alerte lorsqu'au moins un événement prédéterminé se produit dans le terminal; une étape d'obtention, en provenance du serveur d'événements, d'un message d'alerte lorsque l'événement prédéterminé se produit dans le terminal; une étape d'obtention du nom de l'application au premier plan dans le terminal; et une étape de mémorisation de ce nom dans un journal d'activité. Le procédé selon l'invention permet ainsi d'obtenir et de mémoriser le nom de l'application au premier plan dans le terminal, au moment où un événement quelconque que l'on souhaite superviser se produit. Le nom de l'application au premier plan constitue un premier type de données qui pourra être analysé ultérieurement, par exemple pour déterminer si 2867581 2 une application particulière du terminal mobile (répertoire, agenda) est fréquemment utilisée. Dans un mode préféré de réalisation, les messages prédéterminés précités sont représentatifs du changement d'application au premier plan et de l'appui sur une touche du terminal mobile. Préférentiellement, ce procédé comporte en outre une étape d'obtention et de mémorisation, d'au moins une autre donnée d'analyse de l'usage de l'application au premier plan, cette donnée étant obtenue à partir du système d'exploitation du terminal. Cette autre donnée peut notamment concerner la durée pendant laquelle une application reste au premier plan ou l'identifiant de la touche sur laquelle il a été appuyé. Préférentiellement, ce procédé de supervision comporte une étape de redirection de l'événement vers l'application en premier plan, par exemple lorsqu'il s'agit de l'événement représentatif de l'appui sur une touche du terminal. L'homme du métier comprendra que cette étape n'est nécessaire que si l'événement était initialement dirigé vers l'application au premier plan. Dans ce cas, le dispositif de supervision fonctionne de manière transparente puisque les événements interceptés sont finalement redirigés vers leur destination normale. Préférentiellement, le procédé de supervision selon l'invention comporte une étape préliminaire adaptée à faire passer en arrière plan l'exécution d'un programme d'ordinateur mettant en oeuvre ce procédé. Cette caractéristique permet avantageusement de faire passer automatiquement le programme de supervision en tâche de fond de façon à ce qu'il ne perturbe pas l'utilisateur. Corrélativement, l'invention vise aussi un dispositif de supervision de l'usage d'un terminal mobile dont un système d'exploitation comporte un serveur d'événements, ce dispositif étant caractérisé en ce qu'il comporte: des moyens d'envoi, au serveur d'événement, d'une requête pour recevoir une alerte lorsqu'au moins un événement prédéterminé se produit dans le terminal; 2867581 3 des moyens d'obtention, en provenance du serveur d'événements, d'un message d'alerte lorsque cet événement prédéterminé se produit dans le terminal; des moyens d'obtention du nom de l'application au premier plan dans le terminal; et des moyens de mémorisation de ce nom dans un journal d'activité. L'invention vise aussi un programme d'ordinateur stocké sur un support d'informations, ce programme comportant des instructions permettant la mise en oeuvre d'un procédé de supervision tel que décrit brièvement cidessus, lorsque ce programme est chargé et exécuté par un terminal mobile. L'invention vise également un terminal mobile comportant des moyens de mise en oeuvre d'un procédé de supervision ou un dispositif de supervision tels que décrits brièvement ci-dessus. Les avantages particuliers du dispositif de supervision, du programme d'ordinateur, et du terminal mobile étant identiques à ceux du dispositif précité, ils ne seront pas rappelés ici. D'autres aspects et avantages de la présente invention apparaîtront plus clairement à la lecture de la description de modes particuliers de réalisation qui va suivre, cette description étant donnée uniquement à titre d'exemple non limitatif et faite en référence aux dessins annexés dans lesquels: la figure 1 représente, sous forme d'organigramme, les principales étapes d'un procédé de supervision conforme à l'invention dans un mode préféré de réalisation; et la figure 2 représente, de façon schématique, un terminal mobile conforme à l'invention dans un mode préféré de réalisation. Le procédé et le dispositif selon l'invention décrits ici, peuvent être utilisés pour superviser l'usage d'un terminal mobile 10 disposant d'un système d'exploitation Symbian Series 60 v6.1, ci-après OS Symbian dont les spécifications sont publiées sur Internet à l'adresse suivante: http://www.symbian.com/technology/symbos-v6x-det.html. Préférentiellement, l'installation du programme de supervision dans le terminal mobile peut se faire en utilisant un fichier d'installation de type SIS (pour 2867581 4 Symbian Installation System ) comme défini dans le manuel d'installation du système d'exploitation tel que défini dans le manuel d'installation du système d'exploitation Symbian accessible sur Internet à l'adresse http://www.symbian.com/developer/techlib/v70docs/sdl_v7. 0/doc_sou rce/toolsan dutilities/Installing/index.html. De façon connue, ce fichier de type SIS permet aussi l'installation d'une icône dans la barre de menu du terminal pour lancer la supervision. De façon connue, cette installation consiste plus précisément à copier, dans le répertoire \system\recogs du terminal, un programme de démarrage auto exécutable F.MDL de type recognizer , adapté à lancer le programme de supervision P_RES, à chaque mise sous tension du terminal 10. Nous allons maintenant décrire, en référence à la figure 1, un procédé de supervision conforme à l'invention, mis en oeuvre par le programme de supervision P_RES. Ce procédé comporte une première étape E10 de passage en arrière plan du programme de supervision P_RES dans la mémoire de travail du terminal. Dans le mode de réalisation décrit ici, cette étape s'effectue en faisant appel à la méthode TApaTask::SendToBackground() de l'API TApaTask définie par l'OS Symbian. Cette étape E10 de passage en arrière plan est suivie par une étape E20 au cours de laquelle le programme de supervision P_RES envoie une requête au serveur d'événement EV_S pour recevoir une alerte lorsqu'un événement prédéterminé se produit dans le terminal 10. Dans l'exemple décrit ici, les événements supervisés sont ceux associés: au passage d'une application 140 au premier plan; et à l'appui sur une touche 120 du clavier 110 du terminal 10. Conformément aux spécifications de l'OS Symbian, ces requêtes sont effectuées en faisant respectivement appel à la méthode EnableFocusChangeEvents() et à la méthode RWindowGroup::CaptureKey(), cette dernière méthode devant être appelée pour chacune des touches 120 à superviser. 2867581 5 Cette étape E20 d'envoi d'une requête est suivie par une étape E30 de réception, en provenance du serveur d'événement EV_S d'un message d'alerte lorsque l'un des deux événements précités se produit dans le terminal 10. De façon connue en effet, suite à l'appel à la méthode EnableFocusChangeEvents(), le changement d'application 140 au premier plan engendre l'envoi, par le serveur d'événement EV_S, de l'événement EEventFocusGroupChanged au programme de supervision P_RES. De même, suite à l'appel à la méthode RWindowGroup::CaptureKey(), chaque appui sur une touche 120 concernée du clavier 110 engendre l'envoi, par le serveur d'événement EV_S, de l'événement EEventKey au programme de supervision P_RES. Dans ces deux cas, l'envoi de l'événement au programme de supervision P_RES constitue une alerte au sens de l'invention. L'événement, EEventFocusGroupChanged ou EEventKey, est ensuite récupéré par le programme de supervision P_RES par l'appel à la méthode CCoeAppUi::HandleWsEventL(), cet appel ayant lieu régulièrement et automatiquement. Conformément à l'invention, on programme cette méthode, pour obtenir, au cours d'une étape E40, le nom de l'application 140 au premier plan. A cet effet, on utilise la méthode TApaTaskList::FindByPos(0) qui permet d'obtenir la tâche task140 s'exécutant en premier plan dans le terminal 10, puis, à partir de cette tâche task140, un identifiant window_group de la fenêtre mère de cette application, par appel à la méthode TApaTask:Wgld(). La tâche active en premier plan étant connue, le nom dllname de l'application au premier plan est ensuite obtenu par appel à la méthode RapaLsSession::GetAppinfo(), ce nom dllname constituant une première donnée utilisée ultérieurement dans l'analyse de l'usage du terminal mobile 10. L'étape E40 d'obtention du nom dllname de l'application au premier plan est suivie par une étape E50 de mémorisation de ce nom dans un journal d'activité LOG, cette étape étant, dans le mode préféré de réalisation décrit ici, mise en oeuvre par la programme de supervision P_RES, avec une priorité 2867581 6 d'exécution basse par rapport aux autres processus s'exécutant dans le terminal mobile. Dans le mode préféré de réalisation décrit ici, l'étape E50 de mémorisation du nom est suivie par une étape E60 au cours de laquelle le programme de supervision P_RES obtient, à partir du système d'exploitation d'autres données d'analyse de l'usage de l'application au premier plan. Ces données peuvent notamment être constituées par la date et l'heure de l'occurrence des événements, ainsi qu'un compteur mémorisant le nombre d'occurrence de chacun de ces événements. Dans un mode préféré de réalisation de l'invention, on mémorise dans le journal d'activité LOG, une donnée d'analyse constituée par la durée pendant laquelle une application reste au premier plan, cette durée étant obtenue par différence entre les dates d'occurrence de l'événement EEventFocusG roupChanged. Préférentiellement, on mémorise aussi la donnée d'analyse constituée par l'identifiant de la touche sur laquelle il a été appuyé, cet identifiant étant obtenu dans le traitement de l'événement EEventKey par la routine CCoeAppUi::HandleWsEventL() précitée en faisant appel à la méthode TWsEvent::Key(). Cette étape E60 de mémorisation est suivie par une étape E70 au cours de laquelle le programme de supervision P_RES envoie le journal d'activité LOG vers un serveur de collecte, pour analyse ultérieure de ces données. Dans un autre mode de réalisation, le journal d'activité LOG n'est pas systématiquement transmis au serveur de collecte, l'étape E70 d'envoi pouvant notamment avoir lieu après le traitement de plusieurs événements, à intervalle de temps régulier, ou sur requête expresse de l'utilisateur. La présente invention permet ainsi de réaliser un véritable suivi de l'utilisation de l'interface homme machine du terminal mobile, de quantifier l'utilisation de services, de noter les chemins de navigation préférentiels, d'identifier les incohérences de navigation et de détecter des problèmes ergonomiques au niveau de l'interface homme machine. 2867581 7 L'étape E70 est suivie par un test E80 au cours duquel on vérifie si l'alerte reçue à l'étape E30 précédemment décrite est représentative d'un événement qui doit être redirigé vers l'application au premier plan. Si tel n'est pas le cas, (passage d'une nouvelle application en premier plan par exemple), le résultat du test E80 est négatif et ce test est suivi par l'étape E30 au cours de laquelle on attend la réception d'un nouveau message d'alerte, comme décrit précédemment. En revanche, si tel est le cas (appui sur une touche du clavier par exemple), le résultat du test E80 est positif et ce test est suivi par une étape E90 de redirection de cet événement vers l'application au premier plan. Dans le mode préféré de réalisation décrit ici, cette étape de redirection s'effectue en utilisant la méthode RWsSession::SendEventToWindowGroup() qui permet d'envoyer l'événement (en l'occurrence EEventKey) vers la fenêtre mère de l'application au premier plan, l'identifiant window_group de cette fenêtre mère ayant été obtenu précédemment au cours de l'étape E40 d'obtention du nom. Nous allons maintenant décrire, en référence à la figure 2, un terminal mobile 10 conforme à l'invention. De façon connue, ce terminal mobile 10 comporte notamment un processeur 100, un clavier 110 avec des touches 120, un écran 130, une mémoire morte de type ROM 135, une mémoire flash 150, une mémoire vive de type RAM 160, un module de communication 170, ces éléments étant reliés entre eux par un système de bus 180. Le terminal 10 peut comporter plusieurs applications actives 140, 141, seule l'une d'entre elle 140 s'exécutant en premier plan. Pour simplifier, on supposera que tous les programmes mémorisés dans la mémoire morte 135 sont installés dans la mémoire vive 160 à la mise sous tension du terminal 10. Ainsi, la mémoire vive 160 comporte notamment, à l'issue de la phase E10 d'initialisation le programme de supervision résident P_RES, mettant en oeuvre le procédé de supervision décrit en référence à la figure 1. 2867581 8 La mémoire vive 160 comporte également un système d'exploitation conforme à Symbian Series 60 v6.1, et des pilotes 200 pour la gestion du clavier 110, de l'écran 130 et du module de communication 170. La mémoire vive 160 comporte également une interface de programmation API définissant les différentes procédures d'appel utilisées par les applications embarquées dans le terminal 10. La mémoire vive 160 comporte également deux registres task140 et window_group dans lesquels le programme de supervision mémorise respectivement: - la tâche task140 s'exécutant en premier plan dans le terminal; et - un identifiant window_group de la fenêtre mère de cette application. Dans le mode préféré de réalisation décrit ici, la mémoire flash 150 comporte le journal d'activité LOG, dans lequel sont mémorisées les données d'analyse et notamment le nom dllname de l'application au premier plan, ce 15 journal d'activité LOG pouvant être envoyé, par les moyens de communication vers un serveur de collecte non représenté ici. Le processeur 100, la mémoire flash 150, la mémoire vive de type RAM 160, et le module de communication 170 et le programme résident de supervision P_RES constitue des éléments d'un dispositif de supervision 20 conforme à l'invention dans un mode préféré de réalisation. En effet, le programme P_RES en combinaison avec le module de communication constituent: des moyens adaptés à faire passer en arrière plan l'exécution du programme d'ordinateur de supervision P_RES; des moyens d'envoi, au serveur d'événement, d'une requête EnableFocusChangeEvents, CaptureKey pour recevoir une alerte lorsqu'au moins un événement prédéterminé (changement d'application au premier plan, appui sur une touche) se produit dans le terminal 10; des moyens d'obtention, en provenance du serveur d'événements, d'un message d'alerte lorsque l'un au moins de ces événements se produit dans le terminal 10; 2867581 9 des moyens d'obtention du nom dllname de l'application au premier plan dans ledit terminal 10; des moyens de mémorisation de ce nom dans le journal d'activité LOG; des moyens d'obtention, à partir du système d'exploitation, d'au moins une autre donnée d'analyse de l'usage de l'application au premier plan; et des moyens de redirection d'un événement vers l'application au premier plan. REVENDICATIONS 1. Procédé de supervision de l'usage d'un terminal mobile (10) dont un 5 système d'exploitation comporte un serveur d'événements (EV_S), ce procédé étant caractérisé en ce qu'il comporte: une étape (E20) d'envoi, audit serveur d'événement (EV_S), d'une requête (EnableFocusChangeEvents, CaptureKey) pour recevoir une alerte lorsqu'au moins un événement prédéterminé (EEventFocusGroupChanged, EEventKey) se produit dans ledit terminal; une étape (E30) d'obtention, en provenance dudit serveur d'événements (EV_S), d'un message d'alerte lorsque ledit événement prédéterminé (EEventFocusGroupChanged, EEventKey) se produit dans ledit terminal (10) ; une étape (E40) d'obtention du nom (dllname) de l'application (140) au premier plan dans ledit terminal (10) ; et une étape de mémorisation dudit nom (dllname) dans un journal d'activité (LOG) . 2. Procédé de supervision selon la revendication 1, caractérisé en ce qu'il comporte une étape (E90) de redirection dudit événement vers ladite application (140) au premier plan. 3. Procédé de supervision selon la revendication 1 caractérisé en ce que ledit message prédéterminé est représentatif du changement d'application 25 (140) au premier plan dans ledit terminal (10). 4. Procédé de supervision selon la revendication 2 ou 3, caractérisé en ce que ledit message prédéterminé est représentatif de l'appui sur une touche (120) du terminal mobile (10). 5. Procédé de supervision selon l'une quelconque des revendications 1 à 4, 30 caractérisé en ce qu'il comporte en outre une étape (E60) d'obtention et 2867581 11 de mémorisation, d'au moins une autre donnée d'analyse de l'usage de l'application (140) au premier plan, cette donnée étant obtenue à partir du système d'exploitation dudit terminal. 6. Procédé de supervision selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comporte une étape préliminaire (E10) adaptée à faire passer en arrière plan l'exécution d'un programme d'ordinateur (P_RES) mettant en oeuvre ledit procédé. 7. Programme d'ordinateur (P_RES) stocké sur un support d'informations, ledit programme comportant des instructions permettant la mise en oeuvre d'un procédé de supervision selon l'une quelconque des revendications 1 à 6, lorsque ce programme est chargé et exécuté par terminal mobile (10). 8. Dispositif de supervision de l'usage d'un terminal mobile (10) dont un système d'exploitation comporte un serveur d'événements (EV_S), ce dispositif étant caractérisé en ce qu'il comporte: des moyens d'envoi, audit serveur d'événement (EV_S), d'une requête (EnableFocusChangeEvents, CaptureKey) pour recevoir une alerte lorsqu'au moins un événement prédéterminé (EEventFocusGroupChanged, EEventKey) se produit dans ledit terminal; des moyens d'obtention, en provenance dudit serveur d'événements (EV_S), d'un message d'alerte lorsque ledit événement prédéterminé (EEventFocusGroupChanged, EEventKey) se produit dans ledit terminal (10) ; des moyens d'obtention du nom (dllname) de l'application (140) au premier plan dans ledit terminal (10) ; et des moyens de mémorisation dudit nom (dllname) dans un journal d'activité (LOG). 2867581 12 9. Dispositif de supervision selon la revendication 8, caractérisé en ce qu'il comporte des moyens de redirection dudit événement vers ladite application (140) au premier plan. 10. Dispositif de supervision selon la revendication 8 caractérisé en ce que ledit message prédéterminé est représentatif du changement d'application (140) au premier plan dans ledit terminal (10). 11. Dispositif de supervision selon la revendication 9 ou 10, caractérisé en ce que ledit message prédéterminé est représentatif de l'appui sur une touche (120) du terminal mobile (10). 12. Dispositif de supervision selon l'une quelconque des revendications 8 à 11, caractérisé en ce qu'il comporte en outre des moyens d'obtention et de mémorisation d'au moins une autre donnée d'analyse de l'usage de l'application (140) au premier plan, cette autre donnée étant obtenue, à partir du système d'exploitation du terminal (10). 13. Dispositif de supervision selon l'une quelconque des revendications 8 à 12, caractérisé en ce qu'il comporte des moyens adaptés à faire passer en arrière plan l'exécution d'un programme d'ordinateur (P_RES) mettant en oeuvre un procédé de supervision selon l'une quelconque des revendications 1 à 6. 14.Terminal mobile caractérisé en ce qu'il comporte des moyens de mise en oeuvre d'un procédé de supervision selon l'une quelconque des revendications 1 à 6, un programme d'ordinateur (P_RES) selon la revendication 7 ou un dispositif de supervision selon l'une quelconque des revendications 8 à 13.