The present invention relates to a method for deploying a set of software applications in a telecommunications network comprising at least one server, telecommunications terminals and telecommunications means between said server and said terminals, including the following steps carried out by the server:
The terminals for example comprise mobile or fixed equipment, smart phones, tablets, laptop or desktop computers, multimedia equipment.
The need to deploy a set of software applications in particular arises in managing fleets of terminals, for example business terminals, whereof one wishes to monitor the content. In the context of such monitoring, there are mobile device management solutions or security solutions making it possible to protect the terminal's data.
Current solutions for deploying software applications are based on the use of a public application deployment system generally supplied by the publisher of the operating system of the terminal, for example the “Google Play” system, according to which each application is installed by the user of the terminal, often the administrator of the terminal fleet. Changes to the application are published on “Google Play”. “Google Play” next informs the terminals that these updates are available.
Other solutions use a proprietary management system to deploy applications on the terminals, generally implemented on the information system of the company using the solution, or at the publisher of the security solution chosen for the terminal fleet.
For example, document WO 2011162746 A1 is known relative to an application deployment determination system.
These solutions have a certain number of drawbacks.
They cause actions that are difficult for administrators or users of the terminals to accept, for example:
Furthermore, they cause a significant workload for the central management entity: the latter knows the list of applications and the operating system version implemented in each terminal and, for each of these terminals, performs computations from this information to generate a deployment order dedicated to the terminal, indicating the installations, deletions and updates of applications that that terminal must perform to be compliant with the set of applications defined by the administrator. The terminal next applies its specific deployment order.
Consequently, the larger the number of managed terminals is, the more processing this central entity will be required to do to manage the deployment of applications on the fleet in question.
Solutions are based on the principle where the central entity sends a notice to the terminals to inform them that a deployment order or update is available. This principle requires the central entity to know the availability of the terminals in order to ensure that they have all received the notice, thereby causing an additional workload for that entity.
There is therefore a need to reduce the drawbacks of the prior art solutions.
To that end, according to a first aspect, the invention proposes a method for deploying a set of software applications of the aforementioned type, characterized in that said data intended for the terminals comprises a deployment list determined by the server by carrying out the following steps:
Such automated processing thus makes it possible to generate a single file that may be used by all of the terminals. The computing needs at the server level are limited.
In embodiments, the method for deploying a set of software applications according to the invention further includes one or more of the following features:
According to a second aspect, the present invention proposes a method for deploying a set of software applications in a telecommunications network comprising at least one server, telecommunications terminals and telecommunications means between said server and said terminals, said method comprising the following steps:
In embodiments, this method for deploying a set of software applications according to the invention further includes one or more of the following features:
According to a third aspect, the present invention proposes a computer program to be installed on a server intended to be implemented in a telecommunications network further comprising telecommunications terminals and telecommunications means between said server and said terminals, said program including instructions for carrying out the steps of a method according to the first aspect of the invention during an execution of the program by the processing means of the server.
According to a fourth aspect, the present invention proposes a computer program to be installed on a telecommunications terminal intended to be implemented in a telecommunications network comprising at least one server, a plurality of telecommunications terminals and telecommunications means between said server and said terminals, said program including instructions for carrying out the steps of a method according to the second aspect of the invention during an execution of the program by the processing means of the terminal.
According to a fifth aspect, the present invention proposes a server intended for a telecommunications network further comprising telecommunications terminals, said server comprising telecommunications means between said server and said terminals;
said server being suitable for receiving a set of software applications to be deployed on the terminals, to determine, based on said set of received software applications, deployment data intended for the terminals;
said server being characterized in that it is suitable, during the determination of the deployment data, for selecting, for each operating system of a group of operating systems implemented on the terminals, software applications from among said set of software applications to be deployed based on criteria relative to the compatibility between said applications and operating systems; and for determining a deployment sub-list associated with that operating system and comprising the identifiers of said selected applications;
said server being suitable for inserting, into a deployment list, sub-lists determined for the systems of applications of the group and for making said deployment list available to the terminals.
According to a sixth aspect, the present invention proposes a telecommunications terminal intended for a telecommunications network comprising at least one server, telecommunications terminals and telecommunications means between said server and said terminals;
said terminal being suitable for obtaining, from the server, via the telecommunications means, a deployment list listing sub-lists indicating application identifiers and each associated with a respective terminal operating system of a set of terminal operating systems;
said terminal being suitable for determining the applications and the operating system then installed on the terminal, comparing said determined applications and the sub-list associated with said determined operating system, and based on that comparison:
These features and advantages of the invention will appear upon reading the following description, provided solely as an example, and done in reference to the appended drawings, in which:
The telecommunications system 100 includes a plurality of user terminals 10. These terminals 10 are connected by telecommunications links 11 (wired or not) to telecommunications network R1. A distribution server, Servd, is also connected to the network R1 by a telecommunications link 11.
The terminals 10 for example include mobile smart phones connected to the network R1 by wireless links 11. Terminals for example include desktop or laptop computers, etc.
Furthermore, the distribution server, Servd, and a generating server, Servg, are connected by a respective telecommunications link 12 to a telecommunications network R2.
In one embodiment, the network R1 is a public network, for example the Internet, and the network R2 is a private network, for example a company network.
Each terminal 10 in particular comprises a memory 11 and a microprocessor 12. The memory 11 is in particular suitable for storing an operating system and software applications, and for implementing them using the microprocessor 12.
In the embodiment considered here, the system 100 implements a secured environment, called security layer, implemented using mandatory security software applications.
A terminal 10 in which a mandatory security software application is installed is suitable for any software application installed on the terminal 10 and compatible with the security layer to be secured, for example in the following manner: the data generated by the software application and/or exchanged by the software application with the network R1 is encrypted, the application is protected from any fraudulent intrusion using software partitioning. This partitioning monitors the inputs and outputs of the secured application in order to prevent an unsecured third-party application from being able to interact dangerously with the secured application.
Different versions of the security layer exist in the system 100.
It will be noted that in the considered embodiment, the steps carried out by each terminal are done following the execution, on the microprocessor 12, of corresponding software instructions that were stored in the memory 11.
Likewise, the steps carried out by each server Servg, Servd are done following the execution, on the computing means of the server, of corresponding software instructions stored in a memory of the server.
In a first configuration step 101, the server Servg imports a configuration file F1, for example cryptographically protected in terms of integrity and authenticity. This file is for example provided to it by the publisher of the solution and inserted by the administrator U of the server Servg.
In the considered embodiment, this configuration file F1 indicates:
This file F1 is stored in the memory of the server Servg.
In a step 102, instructions are provided to the server Servg, for example by the administrator U requesting the import of software applications A, each associated with an application identifier and a version number.
When it receives an instruction to import an application A, the server Servg imports the software application A (via the network R2, other networks or media), then requests that it be stored on the distribution server Servd. In a step 103, the server Servg analyzes the content of this software application A and extracts data from the application, for example metadata present in its source code or in a manifest file present in the application indicating:
This information is stored in the memory of the server Servg, matched with the identifier of the application A and its version number.
In a step 104, the administrator U selects at least some of the imported applications A (including one or several mandatory security applications; this selection may be made by default) and indicates this selection to the server Servg. These selected applications A define the software pack that the administrator wishes to deploy on a set T of terminals 10.
In a step 105, the server Servg then determines the content of a deployment list corresponding to the defined software pack, based on the selected applications and the associated information stored in its memory, and further based on configuration information of the file F1. In one embodiment, the software pack may contain more applications than those selected by the administrator U, since based on information contained in F1, the server Servg may be led to add applications if they are necessary for the operation of the selected applications.
This deployment list comprises, in the considered embodiment, a file F2 diagrammatically shown in
In reference to
Each section associated with an operating system SOS (for example the section SOSX) includes a list of application identifiers A2 for elements of the software pack defined above and for each of these application identifiers, further includes, associated with said application identifier A2, a version code indicating a version number of the application, the size of the application, an integrity word allowing the terminal to perform an integrity check of the application it has downloaded, and a list of dependencies.
The step 105 implemented by the generating server Servg is now described in more detail in reference to
In a step 105_1, for each application identifier A2 of the software pack successively considered, the server Servg extracts, from its memory:
For each of these information systems indicated as being compatible with the application A2 and considered successively, the server Servg, in a step 105_2, extracts from its memory (based on stored data from the configuration file F1 and data extracted from the mandatory applications), the security layer version of the mandatory security application compatible with this information system. This information system is referenced below as follows: operating system OS version X.
In a step 105_3, the server Servg compares the security layer version of the application A2 and the security layer version of the mandatory security application compatible with this information system.
If these two security layer versions are different, the application A2 in the considered version is not added to the section of the file F2 associated with the operating system OS version X (step 105_4) and the next operating system indicated as being compatible is then considered.
It will be noted that in one embodiment of the invention, if the operating system version X is compatible with several security applications with different security layer versions, the application having the most recent version (i.e., the highest version code) will automatically be selected by the server Servg and added to the section in F2 associated with the operating system version X.
If both security layer versions are equal, the mention of the application A2 in the considered version will be added in the section SOSX associated with the operating system OS version X in the file F2, but beforehand, in a step 105_5, the server Servg verifies, in the list of dependencies stored in its memory and from the configuration file F1, whether the application A2 is indicated as being dependent on other applications.
If the application A2 has no dependencies, in a step 105_7, the fields relative to the application A2 are entered in the section of the file F2 associated with the operating system OS version X: application identifier, version code, size, integrity word.
If the application A2 is indicated as being dependent on other applications, the identifiers of said other applications on which A2 depends are entered in the “list of dependencies” field associated with the application A2 in the section SOSX of the file F2 associated with the operating system OS version X, and the other fields relative to the application A2 (application identifier, version code, size, integrity word) are entered in the section SOSX of the file F2 are also entered [sic].
Once these operations have been performed for each application A2 of the software pack (and for each operating system compatible with the application A2), the step 105 is stopped in a step 105_8.
In a step 106, the deployment list F2 is sent by the generating server Servg to the distribution server Servd via the links 12 and the network R2 to be made available to the terminals 10.
According to the embodiments, information defining the set T of terminals 10 (for example, the set of terminals of a given company) for which that list is intended are also sent (to the server Servd) matched with the deployment list F2. The generating server Servg provides the deployment list F2 for a given set T or for a single terminal 10. Beforehand, the server Servg provides the definition of the set(s) T to the distribution server Servg, which results in the creation of files (directories) storing generic data for each set T and files specific to each terminal 10.
The distribution server Servd then stores this new deployment list F2 associated with the terminals 10, if applicable with the information defining the set T of terminals 10.
Thus, the generating server Servg has incorporated, into the generated file F2, the applications of the software pack defined by the administrator U and that met the following 2 criteria, according to which such an application must be:
The deployment list comprises sub-lists respectively associated with each operating system managed by the system 100 according to the invention. Each sub-list lists by application identifiers of the pack selected for the operating system in question and associated data.
Each terminal 10 is suitable so as, regularly (for example once per day), via the telecommunications links 11 and the network R1, to authenticate itself, and to establish a communication with the distribution server Servd so as to download a new deployment list F2 that would be available on the server and next carry out actions based on that new deployment list.
These steps are outlined below for any terminal 10.
In a step 107, the terminal 10, via the telecommunications links 11 and the network R1, establishes a communication with the server Servd and requests a connection to the distribution server Servd, via a secured mutual authentication, for example a cryptographic authentication.
Then, once the authentication is done, in a step 108, the terminal 10 exchanges with the distribution server Servd and determines, based on these exchanges, whether the deployment list F2 then made available on the server Servd for the terminals 10 has already been downloaded by the terminal 10.
In the affirmative, the communication between the terminal 10 and the distribution server Servd is ended.
If not, in a step 109, the deployment list F2 is downloaded by the terminal 10 from the distribution server Servd (if applicable, this download is only authorized after the server Servd has also verified that said terminal 10 is indeed part of the set T of terminals 10 corresponding to this deployment list F2).
In a step 110, the terminal 10 uses the downloaded deployment list F2. In particular carries out the following processing:
In the considered embodiment, the terminals 10 are suitable for regularly querying the distribution server Servd regarding the existence of a new deployment file F2. In another embodiment, the terminals 10 are notified of the existence of a new deployment file F2 to be downloaded by a message, or a new deployment file F2 is sent to them directly.
The deployment list (file F2) thus includes, for each considered type of operating system, in each considered version, a list of applications extracted from the set E of applications indicated by the administrator.
Thus, for two operating system versions considered in the file F2, the list of applications determined for the first version of the operating system may differ from that determined for the second version of the operating system for the following reasons:
This deployment list (file F2) does not include any command in the considered embodiment. It provides the list of applications defined by the administrator in the set of applications E.
The deployment list F2 has been formed by the server Servg coherently, i.e., the applications incompatible with the security layer of the mandatory security applications are not present.
Thus, the invention makes it possible to simplify a deployment of applications on a fleet of terminals. It systematically and automatically resolves the following technical problems:
The invention further makes it possible to increase performance and decrease the necessary processing resources.
The processing operations are in fact distributed between a central entity (above, the generating server Servg) and the mobile terminals. The server Servg is responsible for the list of applications, coherence checks and producing the generated deployment list (in the case above, the file F2), while each terminal, from the shared file F2, performs processing operations to deduce the necessary actions therefrom to be carried out based on the state of the terminal.
The deployment list generated via the file F2 is unique (the server Servg only generates a single file F2 for a set of terminals, and not one file per terminal). The file F2 that a terminal uses has not been established by the server based on the state of that particular terminal, in particular has been established independently from the applications and operating systems specifically implemented on that particular terminal.
The embodiment described in reference to the above figures uses two servers Servg and Servd connected via a network R2. This is only one possible embodiment of the invention among others. In other embodiments, for example, a single server is used to carry out the operations performed by these servers Servg and Servd.
In the embodiment described above in reference to the figures, a deployment has been considered taking account of issues related to a secured environment implemented in the system. The invention may of course be used outside such a security environment.
| Number | Date | Country | Kind |
|---|---|---|---|
| 14 00428 | Feb 2014 | FR | national |
| Filing Document | Filing Date | Country | Kind |
|---|---|---|---|
| PCT/EP2015/053098 | 2/13/2015 | WO | 00 |