EP1818822A1 - Method and server for the distribution of software components, and update method and corresponding terminal und computer program products - Google Patents

Method and server for the distribution of software components, and update method and corresponding terminal und computer program products Download PDF

Info

Publication number
EP1818822A1
EP1818822A1 EP07101982A EP07101982A EP1818822A1 EP 1818822 A1 EP1818822 A1 EP 1818822A1 EP 07101982 A EP07101982 A EP 07101982A EP 07101982 A EP07101982 A EP 07101982A EP 1818822 A1 EP1818822 A1 EP 1818822A1
Authority
EP
European Patent Office
Prior art keywords
software component
software
version
component
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP07101982A
Other languages
German (de)
French (fr)
Inventor
Arnaud Longeanie
Nathalie Chevalier
Yves Scotto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP1818822A1 publication Critical patent/EP1818822A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • the present invention is particularly intended for software component management applications.
  • the invention relates to the management of software components and versions of these components on programmable terminals.
  • the invention particularly relates to the field of updating software on computers, mobile phones, PDAs, STBs "Set Top Box” for "Digital Interactive Terminal” and more generally, any programmable terminal having a access to a communication network or device for updating software.
  • Certain methods for taking into account a new subset also allow the installation during an operating state of the equipment and with automatic recognition of the components and their installation almost without user intervention, for example the "plug-in”. -play "(" connect and play ”) some operating systems.
  • bootstrap a minimal program element that initiates a boot process.
  • the action of this "bootstrap” consists of checking a presence, downloading if necessary, and then starting the execution of a next software component in the boot process. This first step makes it possible to obtain, modify and install other software components automatically, the bootstrap being however not modifiable automatically.
  • API Application Programming Interface
  • the component On equipment, for each component, if a new version is available (that is, the version number on the server is greater than the version number on the device), the component is downloaded and installed after at least one dependency rule check. If these rules impose a new version of a used component, the latter is previously updated and this recursively.
  • a disadvantage of the prior art is posed in particular by the case of non-techie users. Indeed, for a user of this type, the programmable equipment at his disposal remains difficult to change, either during a change of equipment, or during an evolution of this equipment, or even when subscribing to a new service using this equipment.
  • Another disadvantage of this technique of the prior art is related to the establishment of new services. For a user who subscribes to a new service, the necessary software (he must know which) must be downloaded (he must know from which server) by the user who then proceeds to its installation with the succession of information entries (sometimes technical requirements) required by the software developer. These two operations require a considerable level of technical expertise and waiting times without the possibility of using the equipment.
  • Yet another disadvantage of this prior art technique is related to the installation or reinstallation of new equipment. Indeed when installing on new equipment or reinstallation on a device (for example in the case of the change of operating system or hard disk on a PC), the user must re-install all software components of all the services to which he has subscribed. It is a long task that requires a high level of technicality.
  • Another disadvantage of these techniques of the prior art is related to the evolutions of the software components of an application.
  • devices that use these components update their component versions as they are started by the components. users.
  • the load due to the downloading of new components in the context of an operation with a large number of equipment (for example several million) is smoothed over time.
  • the current versioning system based on the highest version number, it is necessary to redo a new version N "of the component to increment the version number of the component and to cause its update on the equipment which had already downloaded the bad version N '.
  • This technique must also be applied to all the components dependent on the defective version N '.
  • the invention particularly aims to overcome these disadvantages of the prior art.
  • an objective of the invention in at least one embodiment, is to provide a technique for eliminating user interventions, avoiding the disadvantages of conventional systems implementing semi-automatic installations.
  • an objective of the invention in at least one embodiment, is to provide a technique that makes it possible to overcome manual transfer and installation operations when subscribing to a new service that requires new services. software components.
  • Another object of the invention in at least one embodiment, is to provide a mechanism which avoids repetition of the transfer operations and manual installation when installing on new equipment or re-installing components on the same equipment.
  • the invention also aims, in at least one embodiment, to provide a mechanism allowing equipment to limit unnecessary downloads, especially during software version evolutions.
  • Said method comprises a step of replacing said at least one second software component with said at least one first software component, if said at least one first software component is of an earlier version.
  • the invention is based on an approach quite different from conventional approaches according to which a version change is envisaged only if the current version of a component is earlier than the last available version.
  • the approach of the method according to the invention goes against the current of this conventional approach by requiring the terminal to use a certain version of a given software component, even though this terminal would have a later version of said component.
  • the version management systems which are based on the highest version number, cause the construction of a new version N "of a component having the same content as an initial version. N, in order to increment the version number of said component and cause it to update on equipment that would have previously replaced the N version with a bad version N 'These updates are resource-consuming and time-consuming. invention removes these consumptions useless.
  • dependent software components are linked to the services subscribed by the user.
  • the mechanism therefore makes it possible not only to replace software components of the first set, but also to replace all components that depend on at least one component of the first set.
  • a set of software components is created that depend on the components of the first set. This new set is based on all the dependencies of the components of the first set. For example, it is possible that the first set contains two components C and C 'that depend on the same component C "(of the dependency tree), in which case the component C" will be added only one times to the second list and the set of dependent components of C "will be added to the second list.
  • said constitution step is performed recursively for each software component of said second list.
  • said step of constituting said first list further comprises a step of verification of the subscription by said programmable terminal to at least one service related to said software components constituting said first list.
  • said step of constituting said first list further comprises a step of checking a hardware adequacy to said programmable terminal to said software components constituting said first list.
  • said identification step uses a database associating with an identifier of each subscriber, a list of at least one subscribed service on the one hand and said first set of other go.
  • the identification of the programmable terminal makes it possible to ensure that the services subscribed are recorded in a database and not within the terminal.
  • the level of security of the system is increased by not allowing a terminal to download components corresponding to services to which it has not subscribed and thus reduces the risk of piracy.
  • the invention also relates to a method for updating at least one first software component, within a programmable terminal.
  • the invention allows a simple and efficient update. It also makes it easy to return to a previous version, if necessary.
  • the invention also relates to a system for distributing at least a first software component, within a programmable terminal, said programmable terminal having at least a second software component corresponding to said at least one first software component, in a different version,
  • such a system comprises means for replacing said at least one second software component with said at least one first software component, if said at least one first software component is of an earlier version.
  • Such a server may comprise, more generally, means for implementing all or part of the process steps detailed above.
  • the server manages all the verification, identification, search and transmission operations, thus relieving the terminal of these operations and substantially increasing the security of the system by reducing the risk of piracy.
  • the invention also relates to terminals comprising means for updating at least one first software component, said programmable terminal having at least a second software component corresponding to said at least one first software component, in a different version,
  • Such a terminal comprises means for replacing said at least one second software component with said at least one first software component, if said at least one first software component is of an earlier version.
  • Such a terminal may comprise, more generally, means for implementing all or part of the process steps detailed above.
  • the invention also relates to computer programs for implementing the methods described above, in a server on the one hand and in a terminal on the other hand.
  • an embodiment of the invention consists of a mechanism that does not require manipulation on the part of a user who subscribes to a new service, not requiring unnecessary manipulation on the part of the user who wishes to use new equipment or re-install on equipment, and optimize component updates on equipment.
  • the invention proposes to update at least one software component of a software package of an application, by comparing whether the number of the current version of a software component is different (lower or higher). the version proposed by the software component server, if this is the case, by replacing the software component with that of the server.
  • test performed is a difference test, and not a test aimed only at verifying that the current version number is less than the proposed version number. This new approach, which goes against habits, greatly simplifies treatment, including the return to a previous version.
  • the components proposed by the server for a terminal correspond only to those necessary for the implementation of the services identified with a service identification server.
  • the software component when the software component is not present on the terminal, it is loaded on it.
  • the invention proposes a mechanism for downloading and inserting software components on different types of programmable terminal equipment. These components are provided via an interconnection network from a device Central which has the role of server of software components. The method also relies on a central equipment that serves as a server identifying the services to which the user has subscribed. These two roles can be grouped together or not in the same central equipment accessible via the interconnection network.
  • the management of the software components is performed jointly by the software component management entity (the software server 200) and the programmable terminal 100 using a software component of the software component management component.
  • This generic software component is responsible for implementing certain steps of the mechanism, in particular to ensure that the software components to be downloaded are in line with the services subscribed by the users of the programmable terminal. For example, it is not necessary to download components for reception of broadcast channels of digital audiovisual programs if the user has not subscribed to such a service.
  • a software component is a bundle of executable programs used to build applications. The programmer uses these bricks via variables, methods, functions or routines defined in an API.
  • a version number is a string representative at a certain date of a file containing an executable program or more general information. If the information or the program changes, a new version number is assigned to the file.
  • version numbers can be organized following integers separated by periods. Depending on the degree of modification of the information or the executable program, one of the numbers is incremented by an integer value.
  • the version numbers thus organized are ordered according to increasing numbers over time. For example: "2.3.4.56"
  • a list of software component version numbers includes the identification of the versioned software components for each service, for example, the service name, version number, and filename of the software component.
  • this "bootstrap" 41 is never modified.
  • the "updater” component 42 is automatically updated on the equipment 10 if the version number of the present one is different from that available on the software server 21.
  • the programmable terminal equipment and the servers are connected through a communications network. Queries and replies exchanged are done using the protocol "http"("hypertext transport protocol” for “hypertext transport protocol”). Application exchanges (exchanges at the "updater” components level) are carried out using the "SOAP” protocol.
  • SOAP is a message transmission protocol. It defines a set of rules for structuring messages that can be used in simple one-way transmissions, but it is particularly useful for executing query-response dialogs. The rules for structuring the exchanges of "SOAP” are based on the language “XML”("eXtensible Markup Language” for "extensible markup language”).
  • each programmable terminal may also be labeled as "pilot” or “non-pilot” by an identification server, for example according to a parameter associated with the terminal.
  • an identification server for example according to a parameter associated with the terminal.
  • This labeling makes it possible to characterize certain terminals as being equipment intended to carry out production tests.
  • a terminal labeled "driver” queries the identification server or the service management server for the presence of a software component of different version (earlier) of its current version, this server will indicate the presence of this new version if she is available.
  • equipment labeled "non-pilot" the server will indicate that no different version is available.
  • This embodiment therefore makes it possible to take into account a phase of testing the versions of the software components before they are transferred to all the equipment once they have been validated and certified as operating according to its specifications.

Abstract

The method involves identifying a software component that belongs to a set of software components corresponding to a service subscribed by a programmable terminal. Difference between versions of the software component and another software component that belongs to another set of software components previously installed in the programmable terminal is determined. The latter software component is replaced by the former software component when the former software component is in older version. Independent claims are also included for the following: (1) a system for distributing a software component (2) a terminal comprising a unit for updating a software component (3) a computer program product downloaded from a communication network and executable by a microprocessor comprising program code instructions for implementing software component distributing method.

Description

1. Domaine de l'invention 1. Field of the invention

La présente invention est notamment destinée à des applications de gestion de composants logiciels.The present invention is particularly intended for software component management applications.

Plus précisément, l'invention concerne la gestion de composants logiciels et de versions de ces composants sur des terminaux programmables.More specifically, the invention relates to the management of software components and versions of these components on programmable terminals.

L'invention concerne notamment le domaine de la mise à jour de logiciels sur des ordinateurs, des téléphones portables, des assistants personnels, des STB « Set Top Box » pour « Terminal Numérique Interactif » et plus généralement, tout terminal programmable disposant d'un accès à un réseau de communication ou à un périphérique permettant de mettre à jour des logiciels.The invention particularly relates to the field of updating software on computers, mobile phones, PDAs, STBs "Set Top Box" for "Digital Interactive Terminal" and more generally, any programmable terminal having a access to a communication network or device for updating software.

La croissance de l'équipement des foyers, tant au niveau du nombre d'ordinateurs personnels qu'au niveau du nombre de connexions à l'Internet a eu pour effet d'accroître des échanges de données entre des utilisateurs et de produire une grande quantité d'installations logicielles sur les terminaux programmables de ces utilisateurs. Cependant, une grande majorité de ces utilisateurs ne fait pas partie des professionnels de l'informatique. Ainsi, pour ces personnes, une installation et une mise à jour de logiciels peuvent devenir problématiques.The growth in household equipment, both in terms of the number of personal computers and the number of Internet connections, has increased the exchange of data between users and produced a large software installations on the programmable terminals of these users. However, a large majority of these users are not part of the IT professionals. For these people, installing and updating software can become problematic.

2. Solutions de l'art antérieur 2. Solutions of the prior art 2.1. Art antérieur2.1. Prior art

La plupart des terminaux programmables actuels offrent une possibilité d'installer des composants logiciels : applications informatiques, jeux, logiciels de gestion de périphériques. Cependant, l'installation de ces composants est interactive et nécessite certaines compétences de la part des utilisateurs. L'installation de ces composants est réalisée en suivant des principes établis tels qu'une adaptation de composants au terminal, une installation automatique de composants, une utilisation de zones d'amorce ou de manifestes de fichiers et une gestion des versions logicielles. Ces notions sont explicitées par la suite.Most current programmable terminals offer the possibility of installing software components: computer applications, games, device management software. However, the installation of these components is interactive and requires some skills on the part of users. The installation of these components is done according to established principles such as component adaptation to the terminal, automatic component installation, use of boot zones or file manifests, and software version management. These notions are explained later.

2.1.1. Adaptation au terminal2.1.1. Terminal adaptation

Dans l'état actuel des connaissances, le processus de téléchargement et d'installation de composants logiciels permet d'adapter les composants aux possibilités techniques de l'équipement terminal cible. On peut citer par exemple l'installation d'un logiciel pour piloter une carte graphique.In the current state of knowledge, the process of downloading and installing software components makes it possible to adapt the components to the technical possibilities of the target terminal equipment. For example, the installation of software for controlling a graphics card.

2.1.2 Installation semi automatique2.1.2 Semi-automatic installation

Certains procédés pour prendre en compte un nouveau sous-ensemble permettent également l'installation pendant un état de fonctionnement de l'équipement et avec une reconnaissance automatique des composants et leur installation quasiment sans intervention de l'utilisateur, par exemple le « plug-and-play » (« branchez et jouez ») de certains systèmes d'exploitation.Certain methods for taking into account a new subset also allow the installation during an operating state of the equipment and with automatic recognition of the components and their installation almost without user intervention, for example the "plug-in". -play "(" connect and play ") some operating systems.

2.1.3. « Amorce »2.1.3. "Primer"

De nombreux dispositifs programmables utilisent un concept d'« amorce » (ou « bootstrap » en anglais) : un élément de programme minimal qui initie une processus de démarrage. L'action de ce « bootstrap » consiste à vérifier une présence, télécharger si nécessaire, puis à lancer l'exécution d'un composant logiciel suivant dans le processus de démarrage. Cette première étape permet d'obtenir, de modifier et d'installer d'autres composants logiciels automatiquement, le « bootstrap » étant en revanche non modifiable automatiquement.Many programmable devices use a "bootstrap" concept: a minimal program element that initiates a boot process. The action of this "bootstrap" consists of checking a presence, downloading if necessary, and then starting the execution of a next software component in the boot process. This first step makes it possible to obtain, modify and install other software components automatically, the bootstrap being however not modifiable automatically.

2.1.4. « Manifeste »2.1.4. "Manifesto"

D'autres procédés utilisent également une notion de « Manifeste » (« Manifest » en anglais) qui est une liste de fichiers constituant une application. Ce « manifest » est téléchargé en premier de façon à savoir quoi télécharger ensuite. L'équipement programmable ne télécharge alors que des fichiers qui n'ont pas déjà été téléchargés. Ce mode de fonctionnement permet de mutualiser certains fichiers entre applications.Other methods also use a notion of "Manifest"("Manifest" in English) which is a list of files constituting an application. This "manifest" is downloaded first so that you know what to download next. Programmable equipment will only download files that have not already been downloaded. This operating mode makes it possible to share certain files between applications.

2.1.5. Versions2.1.5. versions

Lors d'une diffusion d'un composant qui s'appuie sur d'autres composant, des dépendances entre les évolutions de chacun des composants constituent une difficulté majeure lorsque des interactions entre composants sont modifiées.When broadcasting a component that relies on other components, dependencies between the evolutions of each of the components constitute a major difficulty when interactions between components are modified.

Les logiciels actuels sont nombreux à être basés sur un principe développement lié à une « API » (abréviation de « Application Programming Interface » pour « Interface de programmation d'applications »), qui définit un ensemble de routines, protocoles et outils pour développer des logiciels applicatifs. Une bonne API rend plus facile un développement d'un programme en fournissant tous les blocs pour la construction d'applications. Un programmeur assemble ensuite ces blocs.Many of today's software programs are based on a development principle linked to an "API" (abbreviation for "Application Programming Interface"), which defines a set of routines, protocols and tools for developing applications. application software. A good API makes it easier to develop a program by providing all the blocks for building applications. A programmer then assembles these blocks.

Ainsi, pour un changement d'API tous les composants basés sur cette API doivent être modifiés. En général, ce problème est résolu par un système de gestion de numéro de version pour chaque composant. Le numéro de version d'un composant est incrémenté à chaque évolution du composant. Si ce composant utilise d'autres composants, des numéros de versions minima compatibles des composants utilisés lui sont associés pour constituer des règles de dépendances.Thus, for an API change all the components based on this API must be modified. In general, this problem is solved by a version number management system for each component. The version number of a component is incremented each time the component is changed. If this component uses other components, compatible minimum version numbers of the components used are associated with it to form dependency rules.

Sur l'équipement, pour chaque composant, si une nouvelle version est disponible (c'est-à-dire le numéro de la version sur le serveur est supérieur au numéro de version sur l'équipement), le composant est téléchargé et installé après au moins une vérification de règles de dépendances. Si ces règles imposent une nouvelle version d'un composant utilisé, ce dernier est au préalable mis à jour et ceci récursivement.On equipment, for each component, if a new version is available (that is, the version number on the server is greater than the version number on the device), the component is downloaded and installed after at least one dependency rule check. If these rules impose a new version of a used component, the latter is previously updated and this recursively.

Afin de limiter les interrogations du serveur quant aux numéros de versions des composants, il est possible de constituer sur le serveur une liste de versions de tous les composants et de télécharger cette liste sur l'équipement. Le système des versions permet de faire évoluer des composants logiciels qui coopèrent.In order to limit server queries about version numbers of components, it is possible to build a list of versions of all components on the server and download this list to the device. The versioning system makes it possible to evolve co-operating software components.

2.2. Inconvénients de l'art antérieur2.2. Disadvantages of prior art

Un inconvénient de l'art antérieur est posé notamment par le cas des utilisateurs non technophiles. En effet, pour un utilisateur de ce type, les équipements programmables à sa disposition restent difficiles à faire évoluer, soit lors d'un changement d'équipement, soit lors d'une évolution de cet équipement, soit même lors de la souscription à un nouveau service utilisant cet équipement.A disadvantage of the prior art is posed in particular by the case of non-techie users. Indeed, for a user of this type, the programmable equipment at his disposal remains difficult to change, either during a change of equipment, or during an evolution of this equipment, or even when subscribing to a new service using this equipment.

Les opérations de transfert d'un composant logiciel depuis un serveur de logiciels, les informations demandées lors de l'installation de ce composant logiciel, le temps d'attente (lié au débit de la ligne utilisée pour le téléchargement et au temps de mise à jour) sans comprendre ce que l'équipement fait avant de pouvoir réellement utiliser peuvent représenter des éléments rédhibitoires qui pénalisent la pénétration des technologies.The operations of transfer of a software component from a software server, the information requested during the installation of this software component, the waiting time (linked to the bit rate of the line used for downloading and the update time). day) without understanding what the equipment does before actually being able to use can represent unacceptable elements that penalize the penetration of technologies.

Un autre inconvénient de cette technique de l'art antérieur est lié à la mise en place de nouveaux services. Pour un utilisateur qui souscrit à un nouveau service, le logiciel nécessaire (il doit savoir lequel) doit être téléchargé (il doit savoir depuis quel serveur) par l'utilisateur qui procède ensuite à son installation avec la succession des saisies d'informations (parfois techniques) requises par le concepteur du logiciel. Ces deux opérations nécessitent un niveau de technicité non négligeable et des temps d'attente sans possibilité d'utiliser l'équipement.Another disadvantage of this technique of the prior art is related to the establishment of new services. For a user who subscribes to a new service, the necessary software (he must know which) must be downloaded (he must know from which server) by the user who then proceeds to its installation with the succession of information entries (sometimes technical requirements) required by the software developer. These two operations require a considerable level of technical expertise and waiting times without the possibility of using the equipment.

Encore un autre inconvénient de cette technique de l'art antérieur est lié à l'installation ou à la réinstallation d'un nouvel équipement. En effet lors de l'installation sur un nouvel équipement ou la réinstallation sur un équipement (par exemple dans le cas du changement de système d'exploitation ou de disque dur sur un PC), l'utilisateur doit re-installer tous les composants logiciels de tous les services auxquels il a souscrit. C'est une tâche longue qui nécessite un haut niveau de technicité.Yet another disadvantage of this prior art technique is related to the installation or reinstallation of new equipment. Indeed when installing on new equipment or reinstallation on a device (for example in the case of the change of operating system or hard disk on a PC), the user must re-install all software components of all the services to which he has subscribed. It is a long task that requires a high level of technicality.

Un autre inconvénient de ces techniques de l'art antérieur est lié aux évolutions des composants logiciels d'une application. Lors d'une évolution d'un composant logiciel, les équipements qui utilisent ces composants mettent à jour leurs versions de composants au fur et à mesure de leur mise en route par les utilisateurs. Ainsi, la charge due au téléchargement des nouveaux composants dans le cadre d'une exploitation avec un grand nombre d'équipements (par exemple plusieurs millions) est lissée dans le temps. Mais, si on constate un dysfonctionnement au début de l'utilisation de cette nouvelle version N', il peut être judicieux, voire nécessaire, d'effectuer un retour vers la version précédente N. Avec le système actuel de gestion de version se basant sur le numéro le plus élevé de version, il faut refaire une nouvelle version N" du composant pour incrémenter le numéro de version du composant et provoquer sa mise à jour sur les équipements qui avaient déjà téléchargé la mauvaise version N'. Cette technique doit également être appliquée à l'ensemble des composants dépendants de la version N' défectueuse.Another disadvantage of these techniques of the prior art is related to the evolutions of the software components of an application. During an evolution of a software component, devices that use these components update their component versions as they are started by the components. users. Thus, the load due to the downloading of new components in the context of an operation with a large number of equipment (for example several million) is smoothed over time. But, if one finds a malfunction at the beginning of the use of this new version N ', it may be wise, or even necessary, to return to the previous version N. With the current versioning system based on the highest version number, it is necessary to redo a new version N "of the component to increment the version number of the component and to cause its update on the equipment which had already downloaded the bad version N '. This technique must also be applied to all the components dependent on the defective version N '.

De plus, les autres équipements (ceux qui n'avaient pas téléchargé la version N') téléchargeront quand même la nouvelle version N", mais pour rien puisque la nouvelle version N" est identique (en terme de fonctionnalité) à la version initiale N. Cette technique de l'art antérieur, largement utilisée, implique un fort gaspillage des ressources des réseaux et une perte de temps significative pour les utilisateurs.In addition, other equipment (those who did not download version N ') will still download the new version N ", but for nothing since the new version N" is identical (in terms of functionality) to the initial version N This prior art technique, widely used, involves a great waste of network resources and a significant loss of time for the users.

3. Objectifs de l'invention 3. Objectives of the invention

L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur.The invention particularly aims to overcome these disadvantages of the prior art.

Plus précisément, un objectif de l'invention, dans au moins un mode de réalisation, est de fournir une technique permettant de supprimer les interventions des utilisateurs, en évitant les inconvénients des systèmes classiques mettant en oeuvre les installations semi-automatiques.More specifically, an objective of the invention, in at least one embodiment, is to provide a technique for eliminating user interventions, avoiding the disadvantages of conventional systems implementing semi-automatic installations.

Plus précisément, un objectif de l'invention, dans au moins un mode de réalisation, est de fournir une technique qui permette de s'affranchir des opérations de transfert et d'installation manuelles lors de la souscription à un nouveau service qui nécessite de nouveaux composants logiciels.More specifically, an objective of the invention, in at least one embodiment, is to provide a technique that makes it possible to overcome manual transfer and installation operations when subscribing to a new service that requires new services. software components.

Un autre objectif de l'invention, dans au moins un mode de réalisation, est de fournir un mécanisme qui évite la répétition des opérations de transfert et d'installation manuels lors de l'installation sur un nouvel équipement ou la re-installation des composants sur le même équipement.Another object of the invention, in at least one embodiment, is to provide a mechanism which avoids repetition of the transfer operations and manual installation when installing on new equipment or re-installing components on the same equipment.

L'invention a encore pour objectif, dans au moins un mode de réalisation, de fournir un mécanisme permettant aux équipements de limiter les téléchargements inutiles, notamment lors des évolutions de versions logicielles.The invention also aims, in at least one embodiment, to provide a mechanism allowing equipment to limit unnecessary downloads, especially during software version evolutions.

4. Résumé de l'invention 4. Summary of the invention

Ces objectifs, ainsi que d'autres qui apparaîtront plus clairement par la suite, sont atteints selon l'invention à l'aide d'un procédé de distribution d'au moins un premier composant logiciel, au sein d'un terminal programmable, ledit terminal programmable disposant préalablement d'au moins un deuxième composant logiciel correspondant audit au moins un premier composant logiciel, dans une version différente,These objectives, as well as others which will appear more clearly later, are achieved according to the invention by means of a method of distributing at least a first software component, within a programmable terminal, said programmable terminal having previously at least one second software component corresponding to said at least one first software component, in a different version,

Ledit procédé comprend une étape de remplacement dudit au moins un deuxième composant logiciel par ledit au moins un premier composant logiciel, si ledit au moins un premier composant logiciel est d'une version antérieure.Said method comprises a step of replacing said at least one second software component with said at least one first software component, if said at least one first software component is of an earlier version.

Il est à noter que l'invention repose sur une approche tout à fait distincte des approches classiques selon lesquelles un changement de version n'est envisagé que si la version courante d'un composant est antérieure à la dernière version disponible.It should be noted that the invention is based on an approach quite different from conventional approaches according to which a version change is envisaged only if the current version of a component is earlier than the last available version.

L'approche du procédé conforme à l'invention va à contre courant de cette approche classique en imposant au terminal d'utiliser une certaine version d'un composant logiciel donné, quand bien même ce terminal disposerait d'une version postérieure dudit composant.The approach of the method according to the invention goes against the current of this conventional approach by requiring the terminal to use a certain version of a given software component, even though this terminal would have a later version of said component.

Suivant les techniques de l'art antérieur, les systèmes de gestion de version qui se basent sur le numéro le plus élevé de version, provoquent la construction d'une nouvelle version N" d'un composant ayant le même contenu qu'une version initiale N, afin d'incrémenter le numéro de version dudit composant et provoquer sa mise à jour sur des équipements qui auraient auparavant remplacé la version N par une mauvaise version N'. Ces mises à jour sont consommatrices de ressources et génératrices de délais. L'invention permet de supprimer ces consommations inutiles.According to the techniques of the prior art, the version management systems which are based on the highest version number, cause the construction of a new version N "of a component having the same content as an initial version. N, in order to increment the version number of said component and cause it to update on equipment that would have previously replaced the N version with a bad version N 'These updates are resource-consuming and time-consuming. invention removes these consumptions useless.

Avantageusement, un composant logiciel peut être associé à au moins un service, ledit procédé comprenant les étapes suivantes :

  • identification d'au moins un premier composant logiciel, appartenant à un premier ensemble de composants logiciels correspondant à au moins un service souscrit par ledit terminal programmable ;
  • recherche d'une différence de version entre au moins un composant logiciel dudit premier ensemble et au moins un composant d'un deuxième ensemble de composants logiciels correspondants précédemment installés au sein dudit terminal programmable.
Advantageously, a software component can be associated with at least one service, said method comprising the following steps:
  • identifying at least one first software component, belonging to a first set of software components corresponding to at least one service subscribed by said programmable terminal;
  • searching for a version difference between at least one software component of said first set and at least one component of a second set of corresponding software components previously installed within said programmable terminal.

Ainsi, il est possible de mettre à jour efficacement et simplement les versions de composants logiciels qui sont réunis au sein d'ensembles : un premier ensemble de composants issus de l'entité de gestion de services et un deuxième ensemble de composants installé au sein du terminal programmable. Entre autres avantages une telle mise à jour est réalisée grâce à l'invention sans intervention de l'utilisateur, et donc sans imposer à ce dernier d'acquérir de connaissance particulière à ce sujet. Cette mise à jour est basée sur une notion de services souscrits par l'utilisateur, et non pas sur la notion de configuration matérielle du terminal programmable de celui-ci. De ce fait, la mise à jour logicielle n'est plus liée à des caractéristiques matérielles, mais à des caractéristiques de souscription à des services. Ces services peuvent avantageusement être gérés et/ou référencés au sein d'une entité de gestion d'un ensemble de services, associant des services à des composants logiciels.Thus, it is possible to effectively and simply update the versions of software components that are gathered within sets: a first set of components from the service management entity and a second set of components installed within the service management entity. programmable terminal. Among other advantages such an update is achieved through the invention without user intervention, and therefore without requiring the latter to acquire particular knowledge about it. This update is based on a concept of services subscribed by the user, and not on the concept of hardware configuration of the programmable terminal thereof. As a result, the software update is no longer related to hardware characteristics, but to service subscription features. These services can advantageously be managed and / or referenced within a management entity of a set of services, associating services with software components.

De façon avantageuse, ladite étape de recherche comprend en outre les étapes suivantes :

  • constitution d'une première liste de composants logiciels dépendants d'au moins un des composants logiciels dudit premier ensemble ;
  • ajout des composants de ladite première liste audit premier ensemble.
Advantageously, said search step further comprises the following steps:
  • constituting a first list of software components dependent on at least one of the software components of said first set;
  • adding the components of said first list to said first set.

Ainsi, on lie des composants logiciels dépendants aux services souscrits par l'utilisateur. Le mécanisme permet donc, non seulement de remplacer les composants logiciels du premier ensemble, mais également de remplacer tous les composants qui dépendent d'au moins un composant du premier ensemble.Thus, dependent software components are linked to the services subscribed by the user. The mechanism therefore makes it possible not only to replace software components of the first set, but also to replace all components that depend on at least one component of the first set.

Dans ce cas, ladite étape de constitution de ladite première liste, comprend avantageusement :

  • une étape de détermination d'un arbre de dépendances de composants logiciels dépendants dudit composant logiciel dudit premier ensemble ;
  • une étape de construction d'une deuxième liste de composants logiciels dépendant de chaque composant logiciel dudit arbre de dépendances ;
  • une étape d'insertion des composants de ladite deuxième liste au sein de ladite première liste.
In this case, said step of constituting said first list advantageously comprises:
  • a step of determining a dependency tree of software components dependent on said software component of said first set;
  • a step of constructing a second list of software components dependent on each software component of said dependency tree;
  • a step of inserting the components of said second list into said first list.

Par extension, on créé un ensemble de composants logiciels dépendant des composants du premier ensemble. Ce nouvel ensemble est basé sur toutes les dépendances des composants du premier ensemble. Par exemple, il est possible que le premier ensemble contienne deux composant C et C' qui dépendent d'un même composant C" (de l'arbre de dépendance). Dans ce cas, le composant C" ne sera ajouté qu'une seule fois à la deuxième liste et l'ensemble des composants dépendants de C" sera ajouté à la deuxième liste.By extension, a set of software components is created that depend on the components of the first set. This new set is based on all the dependencies of the components of the first set. For example, it is possible that the first set contains two components C and C 'that depend on the same component C "(of the dependency tree), in which case the component C" will be added only one times to the second list and the set of dependent components of C "will be added to the second list.

Préférentiellement, ladite étape de constitution est réalisée récursivement pour chaque composant logiciel de ladite deuxième liste.Preferably, said constitution step is performed recursively for each software component of said second list.

De cette façon, on applique les étapes de recherche de dépendance jusqu'à épuisement des dépendances entre les composants. On s'assure ainsi qu'il n'est pas possible d'omettre des composants dépendants dans la liste, ce qui permet d'assurer le bon fonctionnement du terminal quand les mises à jour seront terminées.In this way, the dependency-seeking steps are applied until the dependencies between the components are exhausted. This ensures that it is not possible to omit dependent components from the list, which ensures the proper operation of the terminal when updates are completed.

De façon avantageuse, ladite étape de constitution de ladite première liste comprend en outre une étape de vérification de la souscription par ledit terminal programmable à au moins un service lié auxdits composants logiciels constituant ladite première liste.Advantageously, said step of constituting said first list further comprises a step of verification of the subscription by said programmable terminal to at least one service related to said software components constituting said first list.

Ainsi, seuls les composants liés aux services souscrits par les utilisateurs seront pris en compte. Par exemple, si le premier ensemble contient un composant C qui a trois dépendance C', C" et C"', mais que C'" fait parti d'un service non souscrit par l'utilisateur, alors ce composant C"' ne sera pas pris en compte. On minimise ainsi les ressources nécessaires à la mise à jour et à la distribution des composants.Thus, only the components related to the services subscribed by the users will be taken into account. For example, if the first set contains a component C which has three dependencies C ', C "and C"', but that C '"is part of a service not subscribed by the user, then this component C"' will not be taken into account. This minimizes the resources needed to update and distribute the components.

Selon un mode de réalisation préférentiel de l'invention, ladite étape de constitution de ladite première liste comprend en outre une étape de vérification d'une adéquation matérielle audit terminal programmable audit composants logiciels constituant ladite première liste.According to a preferred embodiment of the invention, said step of constituting said first list further comprises a step of checking a hardware adequacy to said programmable terminal to said software components constituting said first list.

De cette façon, on s'assure que les composants remplacés sont en adéquation avec les capacités matérielles du terminal programmable. Cette étape de vérification permet de contrecarrer les mises à jours de composants pour des services auxquels l'utilisateur a souscrit, mais que son terminal ne permette pas d'exécuter.In this way, it is ensured that the replaced components are in adequacy with the hardware capabilities of the programmable terminal. This verification step makes it possible to thwart the component updates for services to which the user has subscribed, but that his terminal does not allow to execute.

Selon un autre aspect particulier de l'invention, ladite étape d'identification fait appel à une base de données associant à un identifiant de chaque souscripteur, une liste d'au moins un service souscrit d'une part et ledit premier ensemble d'autre part.According to another particular aspect of the invention, said identification step uses a database associating with an identifier of each subscriber, a list of at least one subscribed service on the one hand and said first set of other go.

Ainsi, l'identification du terminal programmable permet de s'assurer que les services souscrits sont bien enregistrés au sein d'un base de données et pas au sein du terminal. On augmente donc le niveau de sécurité du système en ne permettant pas à un terminal de télécharger des composants correspondant à des services auxquels il n'a pas souscrit et on diminue ainsi les risques de piratage.Thus, the identification of the programmable terminal makes it possible to ensure that the services subscribed are recorded in a database and not within the terminal. Thus, the level of security of the system is increased by not allowing a terminal to download components corresponding to services to which it has not subscribed and thus reduces the risk of piracy.

L'invention concerne également un procédé de mise à jour d'un moins un premier composant logiciel, au sein d'un terminal programmable.The invention also relates to a method for updating at least one first software component, within a programmable terminal.

Selon l'invention ledit premier composant logiciel est associé à au moins un service et ledit procédé comprend les étapes suivantes :

  • demande de recherche d'une différence de version entre ledit au moins un premier composant logiciel et au moins un deuxième composant logiciel correspondant précédemment installés au sein dudit terminal programmable ;
  • réception dudit au moins un premier composant logiciel dont la version est différente dudit au moins un deuxième composant logiciel ;
  • remplacement sur ledit terminal programmable dudit au moins un deuxième composant logiciel par ledit au moins un premier composant logiciel dont la version est antérieure.
According to the invention said first software component is associated with at least one service and said method comprises the following steps:
  • requesting a search for a version difference between said at least one first software component and at least one corresponding second software component previously installed within said programmable terminal;
  • receiving said at least one first software component whose version is different from said at least one second software component;
  • replacing on said programmable terminal of said at least one second software component by said at least one first software component whose version is earlier.

Comme mentionné plus haut, l'invention permet une mise à jour simple et efficace. Elle permet, en outre, tout aussi facilement un retour à une version précédente, si nécessaire.As mentioned above, the invention allows a simple and efficient update. It also makes it easy to return to a previous version, if necessary.

L'invention concerne également un système de distribution d'au moins un premier composant logiciel, au sein d'un terminal programmable, ledit terminal programmable disposant préalablement d'au moins un deuxième composant logiciel correspondant audit au moins un premier composant logiciel, dans une version différente,The invention also relates to a system for distributing at least a first software component, within a programmable terminal, said programmable terminal having at least a second software component corresponding to said at least one first software component, in a different version,

Selon l'invention, un tel système comprend des moyens de remplacement dudit au moins un deuxième composant logiciel par ledit au moins un premier composant logiciel, si ledit au moins un premier composant logiciel est d'une version antérieure.According to the invention, such a system comprises means for replacing said at least one second software component with said at least one first software component, if said at least one first software component is of an earlier version.

L'invention concerne également un serveur de distribution d'au moins un premier composant logiciel, au sein d'un terminal programmable, ledit terminal programmable disposant préalablement d'au moins un deuxième composant logiciel correspondant audit au moins un premier composant logiciel, dans une version différente, ledit serveur mettant en oeuvre le procédé décrit ci-dessus. Un tel serveur comprend notamment :

  • des moyens d'identification d'au moins un premier composant logiciel, appartenant à un premier ensemble de composants logiciels correspondant à au moins un service souscrit par ledit terminal programmable ;
  • des moyens de recherche d'une différence de version entre au moins un composants logiciels dudit premier ensemble et au moins un composant d'un deuxième ensemble de composants logiciels correspondants précédemment installés au sein dudit terminal programmable ;
  • transmission audit terminal programmable des composants logiciels dudit premier ensemble dont la version est différente de ceux dudit deuxième ensemble.
The invention also relates to a server for distributing at least a first software component, within a programmable terminal, said programmable terminal having at least a second software component corresponding to said at least one first software component, in a different version, said server implementing the method described above. Such a server includes in particular:
  • means for identifying at least one first software component belonging to a first set of software components corresponding to at least one service subscribed by said programmable terminal;
  • means for finding a version difference between at least one software component of said first set and at least one component of a second set of corresponding software components previously installed within said programmable terminal;
  • transmission to said programmable terminal of the software components of said first set whose version is different from those of said second set.

Un tel serveur peut comprendre, plus généralement, des moyens pour mettre en oeuvre tout ou partie des étapes du procédé détaillées ci-dessus.Such a server may comprise, more generally, means for implementing all or part of the process steps detailed above.

Ainsi le serveur gère l'ensemble des opérations de vérification, d'identification, de recherche et de transmission, déchargeant ainsi le terminal de ces opérations et augmentant sensiblement la sécurité du système en diminuant les risques de piratage.Thus, the server manages all the verification, identification, search and transmission operations, thus relieving the terminal of these operations and substantially increasing the security of the system by reducing the risk of piracy.

L'invention concerne encore les terminaux comprenant des moyens de mise à jour d'au moins un premier composant logiciel, ledit terminal programmable disposant préalablement d'au moins un deuxième composant logiciel correspondant audit au moins un premier composant logiciel, dans une version différente,The invention also relates to terminals comprising means for updating at least one first software component, said programmable terminal having at least a second software component corresponding to said at least one first software component, in a different version,

Un tel terminal comprend des moyens de remplacement dudit au moins un deuxième composant logiciel par ledit au moins un premier composant logiciel, si ledit au moins un premier composant logiciel est d'une version antérieure.Such a terminal comprises means for replacing said at least one second software component with said at least one first software component, if said at least one first software component is of an earlier version.

Avantageusement, ledit premier composant logiciel est associé à au moins un service référencé au sein d'une entité de gestion d'un ensemble de services, et ledit terminal programmable comprend :

  • des moyens de demande de recherche d'une différence de version entre ledit au moins un premier composant logiciel et au moins un deuxième composant logiciel correspondant précédemment installés au sein dudit terminal programmable ;
  • des moyens de réception dudit au moins un premier composant logiciel dont la version est différente dudit au moins un deuxième composant logiciel.
Advantageously, said first software component is associated with at least one service referenced within a management entity of a set of services, and said programmable terminal comprises:
  • version difference search request means between said at least one first software component and at least one corresponding second software component previously installed within said programmable terminal;
  • means for receiving said at least one first software component whose version is different from said at least one second software component.

Un tel terminal peut comprendre, plus généralement, des moyens pour mettre en oeuvre tout ou partie des étapes du procédé détaillées ci-dessus.Such a terminal may comprise, more generally, means for implementing all or part of the process steps detailed above.

L'invention concerne également les programmes d'ordinateur pour la mise en oeuvre des procédés décrits ci-dessus, dans un serveur d'une part et dans un terminal d'autre part.The invention also relates to computer programs for implementing the methods described above, in a server on the one hand and in a terminal on the other hand.

5. Liste des figures 5. List of figures

D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels :

  • la figure 1 présente un synoptique d'un mode de réalisation conduisant à la mise à jour des composants logiciels ;
  • la figure 2 illustre l'architecture matérielle liée à la mise en place des étapes du procédé de la figure 1 ;
  • la figure 3 décrit l'emplacement des informations échangées entre les différents acteurs de la figure 2 selon le procédé de la figure 1 ;
  • la figure 4 illustre les étapes du procédé en relation avec des acteurs de la figure 2 ;
  • la figure 5 illustre l'architecture matérielle du terminal programmable selon l'invention ;
  • la figure 6 illustre l'architecture matérielle du serveur de composants logiciels selon l'invention ;
  • la figure 7 illustre l'architecture matérielle de l'entité de gestion de services selon l'invention.
Other characteristics and advantages of the invention will appear more clearly on reading the following description of a preferred embodiment, given as a simple illustrative and nonlimiting example, and the appended drawings, among which:
  • Figure 1 shows a block diagram of an embodiment leading to the update of the software components;
  • FIG. 2 illustrates the hardware architecture related to the implementation of the steps of the method of FIG. 1;
  • FIG. 3 describes the location of the information exchanged between the different actors of FIG. 2 according to the method of FIG. 1;
  • FIG. 4 illustrates the steps of the method in relation to the actors of FIG. 2;
  • FIG. 5 illustrates the hardware architecture of the programmable terminal according to the invention;
  • FIG. 6 illustrates the hardware architecture of the software component server according to the invention;
  • FIG. 7 illustrates the hardware architecture of the service management entity according to the invention.

6. Description détaillée de l'invention 6. Detailed description of the invention 6.1. Rappel du principe de l'invention6.1. Recall of the principle of invention

L'invention propose donc de simplifier l'utilisation des équipements en masquant à l'utilisateur l'adaptation des composants logiciels et de limiter le trafic sur le réseau d'interconnexion en, dans au moins un mode de réalisation :

  • s'affranchissant des opérations de transfert et d'installation manuels lors de la souscription à un service qui nécessite de nouveaux composants logiciels ;
  • évitant de répéter les opérations de transfert et d'installation manuels lors de l'installation sur un nouvel équipement ou la re-installation sur le même équipement d'un ensemble de composants logiciels ;
  • n'ayant pas le besoin technique ou fonctionnel de télécharger des composants logiciels inutilement afin de ne pas utiliser pas le réseau et de ne pas faire attendre l'utilisateur.
The invention therefore proposes to simplify the use of the equipment by masking to the user the adaptation of the software components and to limit the traffic on the interconnection network in, in at least one embodiment:
  • eliminating manual transfer and installation when subscribing to a service that requires new software components;
  • avoid repeating manual transfer and installation operations when installing on new equipment or re-installing on the same equipment a set of software components;
  • not having the technical or functional need to download software components unnecessarily so as not to use the network and not to wait for the user.

Dans ce contexte, un mode de réalisation de l'invention consiste en un mécanisme ne nécessitant pas de manipulation de la part d'un utilisateur qui souscrit à un nouveau service, ne nécessitant pas de manipulation inutile de la part de l'utilisateur qui désire utiliser un nouvel équipement ou re-installer sur son équipement, et optimisant les mises à jour des composants sur les équipements.
Dans ce mode de réalisation, l'invention se propose de réactualiser au moins un composant logiciel d'un ensemble de logiciels d'une application, en comparant si le numéro de la version courante d'un composant logiciel est différent (inférieur ou supérieur) de la version proposée par le serveur de composants logiciels, si c'est le cas, en remplaçant le composant logiciel par celui du serveur.
In this context, an embodiment of the invention consists of a mechanism that does not require manipulation on the part of a user who subscribes to a new service, not requiring unnecessary manipulation on the part of the user who wishes to use new equipment or re-install on equipment, and optimize component updates on equipment.
In this embodiment, the invention proposes to update at least one software component of a software package of an application, by comparing whether the number of the current version of a software component is different (lower or higher). the version proposed by the software component server, if this is the case, by replacing the software component with that of the server.

Il est important de noter que, contrairement aux techniques classiques, le test effectué est un test de différence, et non un test visant uniquement à vérifier que le numéro de version courante est inférieur au numéro de version proposée. Cette approche nouvelle, qui va à l'encontre des habitudes, permet de fortement simplifier les traitements, et notamment le retour à une version précédente.It is important to note that, unlike conventional techniques, the test performed is a difference test, and not a test aimed only at verifying that the current version number is less than the proposed version number. This new approach, which goes against habits, greatly simplifies treatment, including the return to a previous version.

Optionnellement, les composants proposés par le serveur pour un terminal correspondent uniquement à ceux nécessaires pour la mise en oeuvre des services identifiés auprès d'un serveur d'identification des services.Optionally, the components proposed by the server for a terminal correspond only to those necessary for the implementation of the services identified with a service identification server.

Optionnellement, lorsque le composant logiciel n'est pas présent sur le terminal, il est chargé sur celui-ci.Optionally, when the software component is not present on the terminal, it is loaded on it.

Plus particulièrement, dans ce mode de réalisation, l'invention propose un mécanisme de téléchargement et d'insertion de composants logiciels sur des équipements terminaux programmables de type différents. Ces composants sont fournis par l'intermédiaire d'un réseau d'interconnexion depuis un équipement central qui a le rôle de serveur de composants logiciels. Le procédé s'appuie également sur un équipement central qui a un rôle de serveur d'identification des services auxquels l'utilisateur a souscrit. Ces deux rôles peuvent être regroupés ou non dans un même équipement central accessible par l'intermédiaire du réseau d'interconnexion.More particularly, in this embodiment, the invention proposes a mechanism for downloading and inserting software components on different types of programmable terminal equipment. These components are provided via an interconnection network from a device Central which has the role of server of software components. The method also relies on a central equipment that serves as a server identifying the services to which the user has subscribed. These two roles can be grouped together or not in the same central equipment accessible via the interconnection network.

Le procédé qui se déroule sur l'équipement terminal prend en charge :

  • l'analyse des composants logiciels exigés :
    • par les caractéristiques techniques de l'équipement terminal ;
    • et par les services souscrits obtenus par interrogation auprès du serveur d'identification de services.
  • l'éventuel téléchargement des composants depuis le serveur de logiciels ;
  • leur insertion dans l'application sur ledit équipement terminal ;
  • le transfert de l'exécution au composant logiciel de l'application.
The process that takes place on the terminal equipment supports:
  • the analysis of the required software components:
    • by the technical characteristics of the terminal equipment;
    • and by subscribed services obtained by querying the service identification server.
  • the possible download of the components from the software server;
  • their insertion in the application on said terminal equipment;
  • the transfer of the execution to the software component of the application.

On décrit, en relation avec la figure 1, les étapes conduisant à la mise en oeuvre des actions du procédé selon ce mode de réalisation :

  1. 1. une étape de connexion au serveur de logiciels 200 et de récupération des versions des composants logiciels ;
  2. 2. une étape de vérification, au sein du terminal 100, de la validité de la version locale du composant logiciel de gestion des composants logiciels ;
  3. 3. une étape facultative de téléchargement du composant logiciel de gestion des composants logiciels ;
  4. 4. une étape facultative d'installation du composant logiciel de gestion des composants logiciels, au sein du terminal 100 ;
  5. 5. une étape de lancement du composant logiciel de gestion des composants logiciels, au sein du terminal 100 ;
  6. 6. une étape de connexion au serveur d'identification de services 300 et de récupération des services souscrits ;
  7. 7. une étape de vérification des composants logiciels nécessaires et des versions locales présentes selon les possibilités techniques de l'équipement terminal et les services souscrits au sein du terminal 100 ;
  8. 8. une étape facultative de téléchargement de composants logiciels au sein du terminal 100 ;
  9. 9. une étape facultative d'installation de composants logiciels au sein du terminal 100 ;
  10. 10. une étape de lancement du composant logiciel applicatif au sein du terminal 100 ;
With reference to FIG. 1, the steps leading to the implementation of the actions of the method according to this embodiment are described:
  1. 1. a step of connecting to the software server 200 and recovering versions of the software components;
  2. 2. a step of verifying, in the terminal 100, the validity of the local version of the software component management component software;
  3. 3. an optional step of downloading the software component management component;
  4. 4. an optional step of installing the software component management component, within the terminal 100;
  5. 5. a launching step of the software component management component, within the terminal 100;
  6. 6. a step of connection to the service identification server 300 and recovery of subscribed services;
  7. 7. a verification step of the necessary software components and local versions present according to the technical possibilities of the terminal equipment and services subscribed within the terminal 100;
  8. 8. an optional step of downloading software components within the terminal 100;
  9. 9. an optional step of installing software components within the terminal 100;
  10. 10. a step of launching the application software component within the terminal 100;

Dans ce mode de réalisation, la gestion des composants logiciels est réalisée conjointement par l'entité de gestion des composants logiciels (le serveur de logiciels 200) et par le terminal programmable 100 à l'aide d'un composant logiciel de gestion des composants logiciels. Ce composant logiciel générique est chargé de mettre en oeuvre certaines étapes du mécanisme, afin de s'assurer notamment, que les composants logiciels qui vont être téléchargés sont en adéquation avec les services souscrits par les utilisateurs du terminal programmable. Par exemple, il n'est pas nécessaire de télécharger des composants servant à la réception de canaux de diffusions de programmes audiovisuels numériques si l'utilisateur n'a pas souscrit à un tel service.In this embodiment, the management of the software components is performed jointly by the software component management entity (the software server 200) and the programmable terminal 100 using a software component of the software component management component. . This generic software component is responsible for implementing certain steps of the mechanism, in particular to ensure that the software components to be downloaded are in line with the services subscribed by the users of the programmable terminal. For example, it is not necessary to download components for reception of broadcast channels of digital audiovisual programs if the user has not subscribed to such a service.

Cette approche permet de diminuer fortement les volumes et les temps de téléchargement en s'assurant que seuls les composants logiciels nécessaires seront téléchargés. En effet, en reprenant l'exemple précédent, si un des composants servant à la réception de canaux de diffusions de programmes audiovisuels a été modifié et que ce composant entraîne la modification d'autres composants logiciels associés à d'autres services auxquels l'utilisateurs a souscrit, il n'y aura, dans ce cas de figure, qu'à télécharger les composants obligatoires, sans qu'il soit nécessaire de télécharger l'ensemble des composants de réception de canaux de diffusions de programmes audiovisuels.This approach greatly reduces download volumes and times by ensuring that only the necessary software components are downloaded. In fact, following the previous example, if one of the components used to receive broadcast channels of audiovisual programs has been modified and this component causes the modification of other software components associated with other services to which users has subscribed, there will be, in this case, to download the mandatory components, without the need to download all the components of reception of broadcast channels audiovisual programs.

6.2. Description d'un mode de réalisation6.2. Description of an embodiment

Par la suite, on présente notamment le cas d'une mise en oeuvre du procédé de mise à jour dans le cas de la souscription à des services en ligne d'équipement terminaux de type « ordinateur personnel ». Il est clair cependant que l'invention ne se limite pas à cette application particulière, mais peut également être mise en oeuvre dans de nombreux autres domaines, et par exemple dans la téléphonie mobile et plus généralement dans tous les cas où au moins un des objectifs précités de l'invention est à atteindre.Subsequently, the case of an implementation of the update method is particularly presented in the case of the subscription to on-line terminal equipment services of "personal computer" type. It is clear, however, that the invention is not limited to this particular application, but can also be in many other fields, and for example in mobile telephony and more generally in all cases where at least one of the above-mentioned objectives of the invention is to be achieved.

La réalisation sera mieux comprise à l'aide de la description donnée en se référant aux schémas et figures suivants. On présente, en relation avec la figure 2, un mode de réalisation de procédé de mise à jour mis en oeuvre dans l'architecture matérielle suivante :

  • un ensemble 10 d'équipements terminaux de différents types, par exemple Ordinateur Personnel 11, Assistant Personnel 12 (« Personnal Digital Assistant ») et STB 13 (« Set Top Box »). La structure générale de ces équipements terminaux est illustrée schématiquement par la figure 5. Il comprend une mémoire 51, et une unité de traitement 50 équipée d'un microprocesseur, qui est piloté par un programme d'ordinateur (ou application) 52. L'unité de traitement 50 reçoit en entrée, via un module d'interface d'entrée réseau 53, des réponses de la part de serveurs ou des composants logiciels 54, que le microprocesseur traite, selon les instructions du programme 52, pour générer des requêtes et/ou des réponses 56, qui sont transmises aux serveurs via un module d'interface de sortie réseau 55.
  • des serveurs 20 remplissant deux rôles : le rôle de serveur de composants logiciels 21 et le rôle de serveur d'identification de service 22. La structure d'un serveur de composants est illustrée schématiquement par la figure 6. Il comprend une mémoire 61, et une unité de traitement 60 équipée d'un microprocesseur, qui est piloté par un programme d'ordinateur (ou application) 62. L'unité de traitement 60 reçoit en entrée, via un module d'interface d'entrée réseau 63, des requêtes d'interrogation des terminaux et/ou des réponses 64, que le microprocesseur traite, selon les instructions du programme 62, pour générer des envois de composants logiciels et/ou des réponses et ou des listes de composants 66, qui sont transmises via un module d'interface de sortie réseau 65. La structure d'un serveur de gestion de service est illustrée schématiquement par la figure 7. Il comprend une mémoire 71, et une unité de traitement 70 équipée d'un microprocesseur, qui est piloté par un programme d'ordinateur (ou application) 72. L'unité de traitement 70 reçoit en entrée, via un module d'interface d'entrée réseau 73, des requêtes et/ou des réponses des terminaux quant aux souscriptions de services des clients 74, que le microprocesseur traite, selon les instructions du programme 72, pour générer des commandes et/ou des réponses de compositions de composants logiciels 76, qui sont transmises via un module d'interface de sortie réseau 75.
  • un réseau 30 de communications permettant aux équipements terminaux 10 de se connecter entre eux et avec les serveurs 20.
The realization will be better understood from the description given with reference to the following diagrams and figures. In relation with FIG. 2, an embodiment of an updating method implemented in the following hardware architecture is presented:
  • a set of terminal equipment 10 of different types, for example Personal Computer 11, Personal Assistant 12 ("Personal Digital Assistant") and STB 13 ("Set Top Box"). The general structure of these end devices is illustrated schematically in FIG. 5. It comprises a memory 51, and a processing unit 50 equipped with a microprocessor, which is controlled by a computer program (or application) 52. processing unit 50 receives, via a network input interface module 53, responses from servers or software components 54, which the microprocessor processes, according to the instructions of the program 52, to generate requests and / or responses 56, which are transmitted to the servers via a network output interface module 55.
  • servers 20 fulfilling two roles: the role of software component server 21 and the service identification server role 22. The structure of a component server is illustrated schematically in Figure 6. It comprises a memory 61, and a processing unit 60 equipped with a microprocessor, which is controlled by a computer program (or application) 62. The processing unit 60 receives, via a network input interface module 63, requests interrogating the terminals and / or responses 64, that the microprocessor processes, according to the instructions of the program 62, to generate shipments of software components and / or responses and or lists of components 66, which are transmitted via a module network output interface 65. The structure of a server of Service management is illustrated schematically in Figure 7. It includes a memory 71, and a processing unit 70 equipped with a microprocessor, which is controlled by a computer program (or application) 72. The processing unit 70 receives as input, via a network input interface module 73, requests and / or responses from the terminals as to customer service subscriptions 74, which the microprocessor processes, according to the instructions of the program 72, to generate commands and / or responses of software component compositions 76, which are transmitted via a network output interface module 75.
  • a communications network 30 enabling the terminal equipment 10 to connect to each other and to the servers 20.

On présente, en relation avec la figure 3, la localisation des informations sur les différentes entités entrant en relation lors de la mise en oeuvre du procédé de mise à jour :

  • sur chaque équipement 10 : un programme exécutable dénommé « bootstrap » 41 installé à demeure sur l'équipement, un composant « updater » (ou « de mise à jour ») 42 pour la gestion des composants, la liste 50 des composants logiciels 60 ;
  • sur le serveur de logiciels 21 : un composant « updater » 43 pour la gestion des composants, des composants logiciels, la liste 51 des numéros de versions des composants logiciels 61 ;
  • sur le serveur d'identification de services 22 : la liste 52 des services auxquels l'utilisateur a souscrit.
With reference to FIG. 3, the location of the information on the various entities relating to each other during the implementation of the updating process is presented:
  • on each device 10: an executable program called "bootstrap" 41 permanently installed on the equipment, a component "updater" (or "update") 42 for the management of the components, the list 50 of the software components 60;
  • on the software server 21: a "updater" component 43 for the management of the components, the software components, the list 51 of the version numbers of the software components 61;
  • on the service identification server 22: the list 52 of the services to which the user has subscribed.

Un composant logiciel est une brique regroupant des programmes exécutables servant à la réalisation d'applications. Le programmeur utilise ces briques via des variables, méthodes, fonctions ou routines définies dans une API.A software component is a bundle of executable programs used to build applications. The programmer uses these bricks via variables, methods, functions or routines defined in an API.

Un numéro de version est une chaîne de caractères représentative à une certaine date d'un fichier contenant un programme exécutable ou des informations plus générales. Si les informations ou le programme changent, un nouveau numéro de version est affecté au fichier. Par exemple, des numéros de version peuvent être organisés en suite de nombres entiers séparés par des points. Selon le degré de modification des informations ou du programme exécutable, un des nombres est incrémenté d'une valeur entière. Les numéros de version ainsi organisés sont ordonnés selon des numéros croissants avec le temps. Par exemple : « 2.3.4.56 »A version number is a string representative at a certain date of a file containing an executable program or more general information. If the information or the program changes, a new version number is assigned to the file. For example, version numbers can be organized following integers separated by periods. Depending on the degree of modification of the information or the executable program, one of the numbers is incremented by an integer value. The version numbers thus organized are ordered according to increasing numbers over time. For example: "2.3.4.56"

Une liste des numéros de versions des composants logiciels comporte l'identification des composants logiciels versionnés pour chaque service, par exemple : le nom du service, le numéro de version et le nom du fichier du composant logiciel.A list of software component version numbers includes the identification of the versioned software components for each service, for example, the service name, version number, and filename of the software component.

On présente, en relation avec la figure 4 et les figures 2 et 3 précédemment décrites, les étapes du procédé de mise à jour selon le mode de réalisation choisi :

  • Sur chacun des équipements terminaux 10, le programme « bootstrap » 41 est exécuté pour lancer l'application et comporte le minimum de fonctions pour :
    • se connecter (101) via le réseau de communications 30 au serveur de composants logiciels 21 ;
    • récupérer (102) le numéro de version en cours du composant « updater » 43 sur le serveur de composants logiciels 21 ;
    • récupérer (103) le numéro de la version locale du composant « updater » 42 sur l'équipement 10 ;
    • si (étape 104) la version disponible sur le serveur de composants logiciels 21 est différente ou si l'« updater » 42 est absent sur l'équipement 10 on procède (105) au téléchargement du composant « updater » 43 et à son installation (106) sur l'équipement 10 à la place de l'ancien 42 ;
    • passer (107) le contrôle au composant « updater » 42 sur l'équipement ;
With reference to FIG. 4 and FIGS. 2 and 3 previously described, the steps of the updating method according to the chosen embodiment are presented:
  • On each of the terminal equipments 10, the "bootstrap" program 41 is executed to launch the application and comprises the minimum of functions for:
    • connect (101) over the communications network 30 to the software component server 21;
    • retrieving (102) the current version number of the updater component 43 on the software component server 21;
    • retrieving (103) the local version number of the updater component 42 on the equipment 10;
    • if (step 104) the version available on the server of software components 21 is different or if the "updater" 42 is absent on the equipment 10 is proceeded (105) to download the component "updater" 43 and its installation ( 106) on the equipment 10 instead of the old 42;
    • passing (107) the control to the "updater" component 42 on the equipment;

Dans ce mode de réalisation particulier, ce « bootstrap » 41 n'est jamais modifié. Le composant « updater » 42 est automatiquement mis à jour sur l'équipement 10 si le numéro de version de celui présent est différent de celui disponible sur le serveur de logiciels 21.In this particular embodiment, this "bootstrap" 41 is never modified. The "updater" component 42 is automatically updated on the equipment 10 if the version number of the present one is different from that available on the software server 21.

Le composant « updater » 42 intervient alors pour :

  • se connecter (201) au serveur d'identification de service 22 ;
  • récupérer (202) la liste 52 des services auxquels l'utilisateur a souscrit ;
  • se connecter au serveur (203) de composants logiciels 21 ;
  • récupérer (204) la liste des numéros de version 51 des composants nécessaires à chacun de ces services et les règles de dépendance ;
  • récupérer (205) localement la liste 50 des numéros de version des composants ;
  • sélectionner (206) à partir de la liste 52 des services les briques devant être présentes sur l'équipement 10 ;
  • pour chacune des briques sélectionnées (207) dans l'étape précédente (206) : télécharger (209) et installer (210) si (étape 208) la brique est absente ou le numéro de version disponible sur le serveur de logiciel 21 obtenu lors de la récupération de la liste des numéros de version (204) est différent du numéro de version sur l'équipement 10 obtenu lors de la récupération locale des versions des composants (205) ;
  • passer le contrôle (211) à la première brique de l'application 44.
The "updater" component 42 then intervenes for:
  • connect (201) to the service identification server 22;
  • recovering (202) the list 52 of the services to which the user has subscribed;
  • connect to the server (203) of software components 21;
  • retrieving (204) the list of version numbers 51 of the components required for each of these services and the dependency rules;
  • locally retrieving (205) the list 50 of the component version numbers;
  • select (206) from list 52 of the services the bricks to be present on the equipment 10;
  • for each of the selected bricks (207) in the previous step (206): download (209) and install (210) if (step 208) the brick is missing or the version number available on the software server 21 obtained during the retrieval of the list of version numbers (204) is different from the version number on the equipment 10 obtained during local retrieval of component versions (205);
  • pass the control (211) to the first brick of the application 44.

A l'issue de cette phase de mise à jour, les composants logiciels sont mis à jour et l'application peut débuter son exécution.At the end of this update phase, the software components are updated and the application can begin its execution.

6.3. Autres caractéristiques optionnelles et avantages6.3. Other optional features and benefits

Dans ce mode de réalisation du procédé de mise à jour, les équipements terminaux programmables et les serveurs sont connectés par le biais d'un réseau de communications. Les requêtes et les réponses échangées se font à l'aide du protocole « http » (« hypertext transport protocol » pour « protocole de transport hypertexte »). Les échanges applicatifs (échanges au niveau des composants « updater »), quant à eux sont réalisés à laide du protocole « SOAP ». « SOAP » est un protocole de transmission de messages. Il définit un ensemble de règles pour structurer des messages qui peuvent être utilisés dans de simples transmissions unidirectionnelles, mais il est particulièrement utile pour exécuter des dialogues requête-réponse. Les règles de structuration des échanges de « SOAP » sont basées sur le langage « XML » (« eXtensible Markup Language » pour « langage de balisage extensible »).In this embodiment of the updating method, the programmable terminal equipment and the servers are connected through a communications network. Queries and replies exchanged are done using the protocol "http"("hypertext transport protocol" for "hypertext transport protocol"). Application exchanges (exchanges at the "updater" components level) are carried out using the "SOAP" protocol. "SOAP" is a message transmission protocol. It defines a set of rules for structuring messages that can be used in simple one-way transmissions, but it is particularly useful for executing query-response dialogs. The rules for structuring the exchanges of "SOAP" are based on the language "XML"("eXtensible Markup Language" for "extensible markup language").

En relation avec la figure 4, le code « SOAP » suivant est un exemple de requête pour obtenir la liste 51 :

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns : SOAP-ENV="http://schemas.xmlsoap .org
/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:TerritoryObject="http://www.domaine.com/TerritoryControler
.xsd"
xmlns:TerritoryControler="urn:territorycontroler">
<SOAP-ENV:Body SOAP-ENV : encodingStyle= "http://schemas.
xmlsoap.org/soap/encoding/">
<TerritoryControler:getVersion>
<aVersionClient>V02.01.00</aVersionClient>
</TerritoryControler:getVersion>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
In connection with FIG. 4, the following "SOAP" code is an example of a request to obtain the list 51:
 <? xml version = "1.0" encoding = "UTF-8"?><SOAP-ENV: Envelope xmlns: SOAP-ENV = "http: //schemas.xmlsoap .org
/ Soap / envelope / "
xmlns: SOAP-ENC = "http://schemas.xmlsoap.org/soap/encoding/"
xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns: xsd = "http://www.w3.org/2001/XMLSchema"
xmlns: TerritoryObject = "http://www.domaine.com/TerritoryControler
.xsd "
xmlns: TerritoryControler = "urn: territorycontroler"><SOAP-ENV: Body SOAP-ENV: encodingStyle = "http: // schemas.
xmlsoap.org/soap/encoding / "><TerritoryControler:getVersion><AVersionClient> V02.01.00 </ aVersionClient></ TerritoryControler: getVersion></ SOAP-ENV: Body></ SOAP-ENV: Envelope> 

Cette requête permet d'obtenir, de la part du serveur de composants logiciels, la liste 51 disponible sur le serveur en fournissant la version installée sur le client « V02.01.00 ». La réponse formulée par le serveur a alors la forme suivante :

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-
ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-
ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:TerritoryObject="http://www.domaine.com/TerritoryControler
.xsd1" xmlns:TerritoryControler="urn:territorycontroler">
<SOAP-ENV:Body SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<TerritoryControler:getVersionResponse>
<Return>0</Return>
<aVersionProc>V02.01.00</aVersionProc>
<aVersionServer>V02.02.00</aVersionServer>
<aVersionDba>V01.01.00</aVersionDba>
</TerritoryControler:getVersionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
This request makes it possible to obtain, from the software component server, the list 51 available on the server by providing the version installed on the client "V02.01.00". The response formulated by the server then has the following form:
 <? xml version = "1.0" encoding = "UTF-8"?><SOAP-ENV: Envelope xmlns: SOAP-
ENV = "http://schemas.xmlsoap.org/soap/envelope/" xmlns: SOAP-
ENC = "http://schemas.xmlsoap.org/soap/encoding/"
xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns: xsd = "http://www.w3.org/2001/XMLSchema"
xmlns: TerritoryObject = "http://www.domaine.com/TerritoryControler
.xsd1 "xmlns: TerritoryControler =" urn: territorycontroler "><SOAP-ENV: Body SOAP-
ENV: encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"><TerritoryControler:getVersionResponse><Return> 0 </ Return><AVersionProc> V02.01.00 </ aVersionProc><AVersionServer> V02.02.00 </ aVersionServer><AVersionDba> V01.01.00 </ aVersionDba></ TerritoryControler: getVersionResponse></ SOAP-ENV: Body></ SOAP-ENV: Envelope> 

Dans un mode de réalisation complémentaire, chaque terminal programmable peut également être labellisé comme « pilote » ou « non pilote » par un serveur d'identification, par exemple suivant un paramètre associé au terminal. Cette labellisation permet de caractériser certains terminaux comme étant des équipements destinés à réaliser des tests de mise en production. Lorsque un terminal labellisé « pilote » interroge le serveur d'identification ou le serveur de gestion de service pour connaître la présence d'un composant logiciel de version différente (antérieure) de sa version courante, ce serveur indiquera la présence de cette nouvelle version si elle est disponible. Dans le cas d'un équipement labellisé « non pilote », le serveur indiquera qu'aucune version différente n'est disponible. Ce mode de réalisation permet donc de prendre en compte une phase de test des versions des composants logiciels avant que ceux-ci ne soient transférés à l'ensemble des équipements, une fois qu'ils ont été validés et certifiés comme fonctionnant suivant ses spécifications.In a complementary embodiment, each programmable terminal may also be labeled as "pilot" or "non-pilot" by an identification server, for example according to a parameter associated with the terminal. This labeling makes it possible to characterize certain terminals as being equipment intended to carry out production tests. When a terminal labeled "driver" queries the identification server or the service management server for the presence of a software component of different version (earlier) of its current version, this server will indicate the presence of this new version if she is available. In the case of equipment labeled "non-pilot", the server will indicate that no different version is available. This embodiment therefore makes it possible to take into account a phase of testing the versions of the software components before they are transferred to all the equipment once they have been validated and certified as operating according to its specifications.

Claims (13)

Procédé de distribution d'au moins un premier composant logiciel, au sein d'un terminal programmable, ledit terminal programmable disposant préalablement d'au moins un deuxième composant logiciel correspondant audit au moins un premier composant logiciel, dans une version différente,
caractérisé en ce qu'il comprend une étape de remplacement dudit au moins un deuxième composant logiciel par ledit au moins un premier composant logiciel, si ledit au moins un premier composant logiciel est d'une version antérieure.
A method of distributing at least a first software component, within a programmable terminal, said programmable terminal having at least a second software component corresponding to said at least one first software component, in a different version,
characterized in that it comprises a step of replacing said at least one second software component with said at least one first software component if said at least one first software component is of an earlier version.
Procédé de distribution selon la revendication 1, caractérisé en ce que, un composant logiciel pouvant être associé à au moins un service,
ledit procédé comprend les étapes suivantes : - identification d'au moins un premier composant logiciel appartenant à un premier ensemble de composants logiciels correspondant à au moins un service souscrit par ledit terminal programmable ; - recherche d'une différence de version entre au moins un composant logiciel dudit premier ensemble et au moins un composant d'un deuxième ensemble de composants logiciels correspondants précédemment installés au sein dudit terminal programmable.
Distribution method according to Claim 1, characterized in that a software component which can be associated with at least one service,
said method comprises the following steps: identifying at least one first software component belonging to a first set of software components corresponding to at least one service subscribed by said programmable terminal; - Search for a version difference between at least one software component of said first set and at least one component of a second set of corresponding software components previously installed within said programmable terminal.
Procédé de distribution selon la revendication 2 caractérisé en ce que ladite étape de recherche comprend en outre les étapes suivantes : - constitution d'une première liste de composants logiciels dépendants d'au moins un des composants logiciels dudit premier ensemble ; - ajout des composants de ladite première liste audit premier ensemble. Dispensing method according to claim 2 characterized in that said search step further comprises the following steps: constituting a first list of software components dependent on at least one of the software components of said first set; adding components from said first list to said first set. Procédé de distribution selon la revendication 3, caractérisé en ce que ladite étape de constitution de ladite première liste, comprend en outre : - une étape de détermination d'un arbre de dépendances de composants logiciels dépendants dudit composant logiciel dudit premier ensemble ; - une étape de construction d'une deuxième liste de composants logiciels dépendant de chaque composant logiciel dudit arbre de dépendances ; - une étape d'insertion des composants de ladite deuxième liste au sein de ladite première liste. Dispensing method according to claim 3, characterized in that said step of forming said first list further comprises: a step of determining a dependency tree of software components dependent on said software component of said first set; a step of constructing a second list of software components depending on each software component of said dependency tree; a step of inserting the components of said second list into said first list. Procédé de distribution selon la revendication 4, caractérisé en ce que ladite étape de constitution est réalisée récursivement pour chaque composant logiciel de ladite deuxième liste.Dispensing method according to claim 4, characterized in that said step of constitution is performed recursively for each software component of said second list. Procédé de distribution selon l'une quelconque des revendications 4 et 5, caractérisé en ce que ladite étape de constitution de ladite première liste comprend en outre une étape de vérification de la souscription par ledit terminal programmable à au moins un service lié auxdits composants logiciels constituant ladite première liste.A method of distribution according to any one of claims 4 and 5, characterized in that said step of constituting said first list further comprises a step of verification of the subscription by said programmable terminal to at least one service related to said software components constituting said first list. Procédé de distribution selon l'une quelconque des revendications 4 à 6, caractérisé en ce que ladite étape de constitution de ladite première liste comprend en outre une étape de vérification d'une adéquation matérielle audit terminal programmable audit composants logiciels constituant ladite première liste.A method of distribution according to any one of claims 4 to 6, characterized in that said step of constituting said first list further comprises a step of checking a hardware adequacy to said programmable terminal to said software components constituting said first list. Procédé de distribution selon l'une quelconque des revendications 1 à 7 caractérisé en ce que ladite étape d'identification fait appel à une base de données associant à un identifiant de chaque souscripteur, une liste d'au moins un service souscrit d'une part, et ledit premier ensemble d'autre part.A method of distribution according to any one of claims 1 to 7 characterized in that said identification step uses a database associating with an identifier of each subscriber, a list of at least one subscribed service on the one hand , and said first set on the other hand. Procédé de mise à jour d'un moins un premier composant logiciel, au sein d'un terminal programmable,
caractérisé en ce que ledit premier composant logiciel est associé à au moins un service,
et en ce que ledit procédé comprend les étapes suivantes : - demande de recherche d'une différence de version entre ledit au moins un premier composant logiciel et au moins un deuxième composant logiciel correspondant précédemment installés au sein dudit terminal programmable ; - réception dudit au moins un premier composant logiciel dont la version est différente dudit au moins un deuxième composant logiciel ; - remplacement sur ledit terminal programmable dudit au moins un deuxième composant logiciel par ledit au moins un premier composant logiciel dont la version est antérieure.
A method of updating at least one first software component, within a programmable terminal,
characterized in that said first software component is associated with at least one service,
and in that said method comprises the following steps: requesting a search for a version difference between said at least one first software component and at least one corresponding second software component previously installed within said programmable terminal; receiving said at least one first software component whose version is different from said at least one second software component; replacing on said programmable terminal of said at least one second software component by said at least one first component software whose version is earlier.
Système de distribution d'au moins un premier composant logiciel, au sein d'un terminal programmable, ledit terminal programmable disposant préalablement d'au moins un deuxième composant logiciel correspondant audit au moins un premier composant logiciel, dans une version différente,
caractérisé en ce qu'il comprend des moyens de remplacement dudit au moins un deuxième composant logiciel par ledit au moins un premier composant logiciel, si ledit au moins un premier composant logiciel est d'une version antérieure.
System for distributing at least a first software component, within a programmable terminal, said programmable terminal having at least a second software component corresponding to said at least one first software component, in a different version,
characterized in that it comprises means for replacing said at least one second software component with said at least one first software component, if said at least one first software component is of an earlier version.
Terminal comprenant des moyens de mise à jour d'au moins un premier composant logiciel, ledit terminal programmable disposant préalablement d'au moins un deuxième composant logiciel correspondant audit au moins un premier composant logiciel, dans une version différente,
caractérisé en ce qu'il comprend des moyens de remplacement dudit au moins un deuxième composant logiciel par ledit au moins un premier composant logiciel, si ledit au moins un premier composant logiciel est d'une version antérieure.
Terminal comprising means for updating at least a first software component, said programmable terminal having at least a second software component corresponding to said at least one first software component, in a different version,
characterized in that it comprises means for replacing said at least one second software component with said at least one first software component, if said at least one first software component is of an earlier version.
Terminal comprenant des moyens de mise à jour d'au moins un premier composant logiciel, selon la revendication 11,
caractérisé en ce que ledit au moins un premier composant logiciel est associé à au moins un service,
et en ce qu'il comprend : - des moyens de demande de recherche d'une différence de version entre ledit au moins un premier composant logiciel et au moins un deuxième composant logiciel correspondant précédemment installés au sein dudit terminal programmable ; - des moyens de réception dudit au moins un premier composant logiciel dont la version est différente dudit au moins un deuxième composant logiciel.
Terminal comprising means for updating at least a first software component, according to claim 11,
characterized in that said at least one first software component is associated with at least one service,
and in that it comprises: means for requesting a version difference search between said at least one first software component and at least one corresponding second software component previously installed within said programmable terminal; means for receiving said at least one first software component whose version is different from said at least one second software component.
Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé d'au moins une des revendications 1 à 9.Computer program product downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, characterized in that it comprises code instructions program for carrying out the method of at least one of claims 1 to 9.
EP07101982A 2006-02-10 2007-02-08 Method and server for the distribution of software components, and update method and corresponding terminal und computer program products Withdrawn EP1818822A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0601222 2006-02-10

Publications (1)

Publication Number Publication Date
EP1818822A1 true EP1818822A1 (en) 2007-08-15

Family

ID=37057240

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07101982A Withdrawn EP1818822A1 (en) 2006-02-10 2007-02-08 Method and server for the distribution of software components, and update method and corresponding terminal und computer program products

Country Status (1)

Country Link
EP (1) EP1818822A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699400A (en) * 2012-09-27 2014-04-02 联想(北京)有限公司 Control method and electronic device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006034A (en) 1996-09-05 1999-12-21 Open Software Associates, Ltd. Systems and methods for automatic application version upgrading and maintenance
US20010029605A1 (en) 1998-06-19 2001-10-11 Jonathan A. Forbes Software package management
US20020131404A1 (en) 2000-11-28 2002-09-19 4Thpass Inc. Method and system for maintaining and distributing wireless applications
WO2005043337A2 (en) 2003-10-29 2005-05-12 Qualcomm Incorporated Method, software and apparatus for application upgrade during execution
US6938096B1 (en) 1999-04-12 2005-08-30 Softricity, Inc. Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006034A (en) 1996-09-05 1999-12-21 Open Software Associates, Ltd. Systems and methods for automatic application version upgrading and maintenance
US20010029605A1 (en) 1998-06-19 2001-10-11 Jonathan A. Forbes Software package management
US6938096B1 (en) 1999-04-12 2005-08-30 Softricity, Inc. Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port
US20020131404A1 (en) 2000-11-28 2002-09-19 4Thpass Inc. Method and system for maintaining and distributing wireless applications
WO2005043337A2 (en) 2003-10-29 2005-05-12 Qualcomm Incorporated Method, software and apparatus for application upgrade during execution

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"REMOTE SUBSCRIPTION SERVICES", IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP. NEW YORK, US, vol. 37, no. 6B, 1 June 1994 (1994-06-01), pages 263 - 264, XP000456000, ISSN: 0018-8689 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699400A (en) * 2012-09-27 2014-04-02 联想(北京)有限公司 Control method and electronic device
CN103699400B (en) * 2012-09-27 2017-06-27 联想(北京)有限公司 A kind of control method and electronic equipment

Similar Documents

Publication Publication Date Title
EP1943809B1 (en) Method for automatically managing associations between services in a distributed environment
US7143406B2 (en) Asynchronous software update
US20120192173A1 (en) System and method for updating software in electronic devices
EP2936782B1 (en) Method for treatment of access requests, and web browser
WO2009036345A2 (en) Data-driven synchronization
WO2006122024A2 (en) Open architecture for internet protocol television
EP2169569B1 (en) Method and system for communication between distinct web applications
CN113014616B (en) Analysis content network for content delivery embedding
US20240028663A1 (en) Web site generation based on streams of data records
EP1818822A1 (en) Method and server for the distribution of software components, and update method and corresponding terminal und computer program products
EP2633683B1 (en) Remotely sited execution of a software application within a network
EP2633440B1 (en) Indexing and execution of software applications in a network
EP3506603A1 (en) Method for the development of an ontology adapted to a specific industrial domain
FR2977104A1 (en) METHOD FOR MANAGING SERVICE PROVISION
D'Emic et al. Mule in action
Lafrasse et al. SAMP App Launcher-An on-demand VO application starter by JMMC
Jansen Alleviating the release and deployment effort of product software by explicitly managing component knowledge
WO2010103247A1 (en) Methods and devices for updating a client/server application without a client-side application restart
FR3110262A1 (en) Method and system for authenticating a user to an authentication server
Cervantes et al. Dynamic application frameworks using OSGi and Beanome
WO2020089076A1 (en) Method for executing code portions on execution resources
FR2947934A1 (en) METHOD FOR DYNAMIC TRACEABILITY AND ACCOUNTABILITY OF EXCHANGES IN AN INTERNET-TYPE OPEN ENVIRONMENT
Sabée et al. TI3800 Bachelorproject
Son et al. Deployment pattern
Cuadrado Latasa et al. An Open Source Platform for the Integration of Distributed Services.

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR MK YU

17P Request for examination filed

Effective date: 20080205

17Q First examination report despatched

Effective date: 20080305

AKX Designation fees paid

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ORANGE

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20171115