1. Field of the invention
The invention relates to device management. Particularly, the invention relates to a method for the obtaining of deployment components to electronic devices.
2. Description of the Related Art
As different data processing devices, such as mobile stations, become more complex, the significance of device management becomes more pronounced. Devices require several different settings, such as settings related to Internet access points, and setting them manually by the user is arduous and difficult. To solve this problem, for instance, device management solutions have been developed so that the administrator of a company's information system or a network operator can set an appropriate configuration for a device. Device management generally refers to actions by which a person typically not using a device can change the configuration of the device; for instance change the settings used by the device. In addition to device-specific settings, it is also possible to transmit user-specific data, such as user profiles, logos, ringing tones, and menus with which the user can personally modify the settings of the device, or the modification takes place automatically in connection with device management.
One of the device management standards is Open Mobile Alliance (OMA) Device Management (DM), which is partly based on the Synchronization Markup Language (SyncML) protocol. The principles of OMA device management protocol are disclosed in the OMA specification “OMA Device Management Protocol”, Draft Version 1.2, January 2005, OMA-DM-Protocol-V1—2—0-20050125-D. For instance, a Personal Computer (PC) can act as a device management server in a device management protocol and a mobile station as a device management client. A network operator may also host the device management server. In terms of device management, the device management client, possibly on the basis of a triggering message from the device management server, transmits information concerning itself in a session initiation message to the device management server, and the device management server replies by transmitting management commands. The device management client replies to these with status information, after which the server can end the session or transmit more management commands. If the server transmits more management commands, the client is to reply to them with status information. The server can always, after receiving status information, end the session or continue it by transmitting more management commands. Device management can also be implemented by first transmitting queries to the user about what she wishes to update, and information on the user's selections is transmitted to the server. Next, the server can in the next packet transmit the updates/commands the user desires.
Reference is now made to
The DM server manages information in mobile terminal 100. The information to be managed comprises settings utilized by native applications, telecommunication services such as General Packet Radio Service (GPRS) and supplementary services in mobile terminal 100. The information to be managed also comprise down-loadable software components, the settings associated with them and the software component states, that is, whether they are enabled for execution or disabled. The information to be managed can be perceived as managed objects. The information to be managed is stored by mobile terminal 100 in its memory according to a structure, which is optimized for the operation of mobile terminal 100. However, the information is made available by mobile terminal 100 as a management information data structure, which is intended to provide an organized view on the managed objects.
In
Management sessions may be set-up between mobile terminal 100 and DM server 130. During a management session DM server 130 may typically send a management request 140, which identifies at least an operation and the URI for the target node. Nodes may be, for example, added, replaced, deleted, read and executed. A node may comprise text, binary data and actions to be executed by mobile terminal 100. In response to management request 140, mobile terminal 100 provides a management response, which comprises status indicating success or failure of the operation and returned result data.
Reference is now made to
In package 201 there is a synchronization header, a synchronization body comprising an Alert 1201 command, a Replace command and a Final element. Alert 1201 command indicates that it is question of a client initiated management session. In the Replace command DM client 200 provides its device properties to the DM server 130. The Replace command indicates that the device has replaced the management objects associated with the device properties to correspond the current device configuration. For example, external adjunct devices such as a external display may have been connected to DM client 200 since latest device property indication. The device properties may be used, for example, in the selection of correct versions of software components, documents and multimedia presentations to be downloaded during the management session. DM server 130 responds by sending a package 202 to DM client 200.
Package 202 comprises a synchronization body, which further comprises three Status commands indicating the successful delivery and processing of synchronization header, the Alert command and the replace command, and a command sequence, which further comprises an Alert 1101 command for providing to the user a prompt text and an Add command for adding a new node for a managed object to the tree structure held by DM client 200, and Final element. Success is indicated with value 200 that is carried in the data element of the Status command. DM client 200 provides the response to package 202 by sending a package 203.
Package 203 comprises a synchronization body, which further comprises four Status commands indicating the successful delivery and processing of synchronization header, the command sequence, the Alert command and the Add command, and a Final element. The success of Alert 1101 command indicates that the user has accepted the management action further explained in the prompt text. Had the user not accepted the management action, DM client 200 would have interrupted the command sequence.
In response to the receiving of package 203, DM server 130 sends a package 204, which comprises a Status command for synchronization header and a Final element. Package 204 acknowledges the status of DM client 200. After receiving package 204 DM client 200 does not continue the protocol.
In OMA document “Firmware Update Management Object” (OMA-DM-FUMO-V1—0—0-20050131-D), draft version 1.0, Jan. 31st, 2005, describing the updating of firmware objects there is described a method where the state of a firmware update package may be changed using commands issued by a DM server. The firmware update package traverses through a number of states depending on whether the downloading is progressing, whether the download has been completed, whether the update is in progress and whether the update has been successful or whether it has failed. The problem associated with the solution disclosed in the document is that the state machine for firmware updates is hard-coded in the protocol. For each new state transition to be added for packages, a new operation node must be added to the management object tree. For the new node will then be sent an execution command by the DM server in order to fulfill the state transition. Thus, the OMA DM standard must be updated every time a new possible state is observed in firmware updating process. It is not possible to determine target states dynamically based on values provided from the DM server, which makes the protocol inextensible.
Reference is now made to
There is also a node 320, under which are assembled the nodes for the operations for the deployment components under node 311 or 313. The operations comprise: Install, Remove, Update, Activate 322, Deactivate 323 and InstallAndActivate 324. For example, for activating a deployment component under node 311, DM server 130 sends in a package an Execute command. The Execute command specifies in the target element the location URI for node 322 and in the data element the correct deployment component URI. Respectively, for deactivating a deployment component under node 311 an execute command specifies in the target element the location URI for node 323.
There is also a node 330, for which an Execute command may be requested by DM server 130 in order to download a deployment component to mobile terminal 100. There is a URI node 331 for specifying the deployment component location information for downloading. There are also nodes for status, deployment component identifier, deployment component name and version that are filled by mobile terminal 100 after the downloading of the deployment component. In order to download a deployment component DM server 130 sends an Add command for adding the URI value. The Add command comprises the desired URI value. Thereupon, DM server 130 sends an Execute command, which specifies in the target element the URI for node 330. In response mobile terminal 100 performs the downloading of the deployment component specified in node 331.
The problem associated with the organization of deployment components in prior art is that a deployment component must be first downloaded and placed under the node for delivered components. Thereupon, by executing an activation node, the software component must be separately activated, which causes the transfer of the deployment component under the node for deployed components. The result is that a deployment component has to be stored twice in the mobile terminal memory. This may be unacceptable due to limited memories available in mobile terminals. The two-phase model of installation increases messaging traffic between mobile terminals and DM servers, which in turn delays the installation of deployment components to be activated.
The invention relates to a method for the obtaining of deployment components to an electronic device. The method comprises: setting-up a management session between the electronic device and a server; receiving in the electronic device a location for a deployment component from the server; receiving a target state for the deployment component in the electronic device from the server; determining the place for a management object representing the deployment component in a management object data structure in the electronic device based on the target state; and downloading the deployment component in the electronic device from the location.
The invention relates to a method for the obtaining of deployment components to an electronic device, the method comprising: setting-up a management session between the electronic device and a server; receiving in the electronic device a location for a deployment component from the server; receiving a target state for the deployment component in the electronic device from the server; downloading the deployment component in the electronic device from the location; and determining the place for a management object representing the deployment component in a management object data structure in the electronic device based on the target state.
The invention also relates to a method for the delivery of deployment components to an electronic device, the method comprising: forming in a server a first command that comprises a location; forming in the server a second command that comprises a target state; forming in the server a third command that indicates a node for triggering the downloading of a deployment component; and sending the first, second and third commands in at least one package from the server to the electronic device.
The invention also relates to an electronic device comprising: a device management agent configured to set-up a management session between the electronic device and a server, to receive a location for a deployment component from the server, to receive a target state for the deployment component from the server, to determine the place for a management object representing the deployment component in a management object data structure in the electronic device based on the target state; and a communication entity configured to download the deployment component from the location.
The invention also relates to a server comprising: a device management entity configured to set-up a management session between an electronic device and the server, to provide a location for a deployment component to the electronic device, to provide a target state for the deployment component to the electronic device, to issue an execution request associated with a management object referring to the downloading of the deployment component.
The invention relates also to a computer program comprising code adapted to perform the following steps when executed on a data-processing system: setting-up a management session to a server; receive a location for a deployment component from the server; receiving a target state for the deployment component from the server; determining the place for a management object representing the deployment component in a management object data structure based on the target state; and downloading the deployment component from the location.
The invention relates also to a computer program comprising code adapted to perform the following steps when executed on a data-processing system: setting-up a management session between an electronic device and a server; providing a location for a deployment component to the electronic device; providing a target state for the deployment component to the electronic device; and issuing an execution request associated with a management object referring to the downloading of the deployment component.
The invention relates also to a computer program comprising code adapted to perform the following steps when executed on a data-processing system: setting-up a management session to a server; receive a location for a deployment component from the server; receiving a target state for the deployment component from the server; downloading the deployment component from the location; and determining the place for a management object representing the deployment component in a management object data structure based on the target state.
In one embodiment of the invention, the downloading of the deployment component, or the initiating of the downloading of the deployment component, in the electronic device from the location is performed before the determining step, wherein the place for a management object representing the deployment component in a management object data structure is determined in the electronic device based on the target state. In one embodiment of the invention, the place for the management object is determined before the downloading of the deployment component.
In one embodiment of the invention, the electronic device is a mobile terminal, which acts as an Open Mobile Alliance (OMA) Device Management (DM) client. The device management agent is an entity executed in the mobile terminal, which sends device management commands to the server and receives device management commands from the server. The device management entity maintains a management object data structure, which may be, for example, a management information tree.
In one embodiment of the invention, the server is a device management server, for example, an OMA DM server. The server comprises a device management entity, which performs the device management related tasks in the server. The device management entity may be a software component or a set of software components that are responsible for the device management tasks according to the invention.
In one embodiment of the invention, a node name for the deployment component is received in the electronic device from the server and the name for the management object is set based on the node name in the electronic device.
In one embodiment of the invention, a node name for the management object is determined in the electronic device and the node name for the management object is indicated from the electronic device to the server. The indication may be carried in an Alert command for a node representing the node name for the deployment component.
In one embodiment of the invention, the location and the target state are stored in a management information tree in the electronic device. The management session is ended before the downloading. The location and the target state are provided from the management information tree to an indirect delivery entity in the electronic device, and the downloading is performed by the indirect delivery entity.
In one embodiment of the invention, in the server is formed a first command that comprises the location. In the server is also formed a second command that comprises the target state. In the server is also formed a third command that indicates a node for triggering the downloading of the deployment component. The first, second and third commands are sent in at least one package from the server to the electronic device. The commands are formed in a device management entity in the server. The device management entity sends the first, second and third commands in at least one package to the electronic device.
In one embodiment of the invention, the location comprises a Uniform Resource Identifier (URI). In one embodiment of the invention, a Uniform Resource Identifier (URI) specifies the place of the management object in the management object data structure.
In one embodiment of the invention, the electronic device is at least one of a General Packet Radio System terminal, a Universal Mobile Telecommunications System terminal and a Wireless Local Area Network terminal.
In one embodiment of the invention, the computer program is stored on a computer readable medium. The computer readable medium may be a removable memory card, magnetic disk, optical disk or magnetic tape.
In one embodiment of the invention, the electronic device is a mobile device, for example, a laptop computer, a palmtop computer, a mobile terminal or a personal digital assistant (PDA). In one embodiment of the invention, the electronic device is a desktop computer or a mainframe computer.
The benefits of the invention are related to the increased efficiency in the delivery of deployment components to the electronic device. The management session duration can be reduced. The invention also avoids the storing of the same deployment component twice in the electronic device memory, which enables devices with smaller memories to be used to store large deployment components.
The accompanying drawings, which are included to provide a further understanding of the invention and constitute a part of this specification, illustrate embodiments of the invention and together with the description help to explain the principles of the invention. In the drawings:
Reference will now be made in detail to the embodiments of the present invention, examples of which are illustrated in the accompanying drawings.
In
DM client 500 initiates the management session by sending a package 501. In package 501 there is a synchroniprising an Alert 1201 command, a Replace command and a Final element. Alert 1201 command indicates that it is question of a client initiated management session. In the Replace command DM client 500 provides its device properties to the DM server 530. The Replace command indicates that the device has replaced the management objects associated with the device properties to correspond the current device configuration. DM server 530 responds by sending a package 502 to DM client 500.
Package 502 comprises a synchronization body, which further comprises three Status commands indicating the successful delivery and processing of synchronization header, the Alert command and the replace command, and a command sequence, which further comprises an optional Alert 1101 command for providing to the user the prompt text for accepting deployment component A, an Add command for adding the URI of deployment component A to node 331, an Add command for adding the value “delivered” to node 400 representing target state, an Execute command specifying node 330 URI that triggers the downloading of deployment component A to DM client 500, and Final element. In response to package 502 DM client 500 checks the download URI for component A from node 331. DM client 500 also checks whether deployment component A should be classified as delivered or deployed and whether the interior node that represents deployment component A should be placed under node 311 or node 313. Thereafter, DM client downloads deployment component A and places the interior node that represents deployment component A under node 313, because node 400 has the value “delivered”.
DM client 500 provides the response to package 502 by sending a package 503. Package 503 comprises a synchronization body, which further comprises six Status commands indicating the successful delivery and processing of synchronization header, the command sequence, the Alert command, the two Add commands, the Execute command, and a Final element. The success of Alert 1101 command indicates that the user has accepted the management action further explained in the prompt text. Had the user not accepted the management action, DM client 500 would have interrupted the command sequence.
In response to the receiving of package 503, DM server 530 sends a package 504, which comprises a Status command for synchronization header and a Final element. Package 504 acknowledges the status of DM client 500. After receiving package 504 DM client 500 does not continue the protocol.
However, it should be noted that as DM server 530 issues an Execute command on an operation branch such as a branch for indicating download, a status is returned by DM client 500 in next package. The status does, however, not indicate the completion of the operation such as download. The status only indicates that DM client 500 has started processing the operation. If the mere starting of the operation fails, DM client returns a failure status. As soon as the entire operation is complete, the success is indicated in an asynchronic manner to DM server 530. If there is an active management session, the success of the entire operation is indicated using generic alert. If there is no session, DM client 500 establishes it. The generic alert is associated to the Execute command using a correlation value.
In one embodiment of the invention, node 401 is not used to provide the name for the interior node representing the deployment component or DM client 500 may alter the name provided. In this case the name will be indicated to DM server 530 so that, for example, in package 503 is sent an Alert command, which reveals the name to DM server 530.
At step 600 a Device Management (DM) session is set-up between a DM client and DM server. The device management session may be set-up by DM client due to a condition detected by DM client independently or due to an alert notification received from DM server. As a result of the DM session the DM server and DM client may exchange commands. The management session may be handled in DM client in a DM agent such as DM agent 150 in mobile terminal 100 of
At step 602 DM server provides to DM client information on the location of a deployment component. The location of the deployment component may be, for example, a Uniform Resource Identifier (URI). The location of the deployment component may be provided so that a value is attached to a node for storing the location.
At step 604 DM server provides to DM client a node name for the deployment component. The node name of the deployment component may be provided so that a value is attached to a node for storing the proposed name. It should be noted that step 604 is omitted in one embodiment of the invention. Thus step 604 is optional.
At step 606 DM server provides to DM client a target state value for the deployment component. The target state value of the deployment component may be provided so that a value is attached to a node for storing the target state. In one embodiment of the invention, the DM session may be terminated after the DM client has acknowledged the receipt of the information provided by the DM server. In this embodiment the actual downloading of the deployment component may be performed indirectly using another delivery channel, for example, using Hypertext Transfer Protocol (HTTP) or delivery via a carrier such as a memory card.
At step 608 DM client checks the value attached to the target state node 400. If the target state value is “install” or “update”, download target is set to be the sub-tree for deployed deployment components at step 610. If the target state value is “delivered”, download target is set to be the sub-tree for delivered deployment components at step 612. The mentioned sub-trees may be represented in DM client file system as separate folders or files. The subtrees may also have separate memory buffers in case the sub-trees are not represented as primary memory structures.
At step 610 DM client downloads the deployment component. The downloading is performed to the download target as designated at step 610 or at step 612. The downloading of the deployment component may be triggered by DM server by issuing an execute command to DM client, which command designates a node representing the downloading of deployment components using the parameters earlier provided. For example, node 330 is such a node.
At step 612 DM client sets the node name for the node representing the downloaded deployment component. The node representing the downloaded deployment component may be among the at least one node 312 or among the at least one node 314. DM client may independently determine the node name or it may be the node name provided from DM server at step 604.
In
It is obvious to a person skilled in the art that with the advancement of technology, the basic idea of the invention may be implemented in various ways. The invention and its embodiments are thus not limited to the examples described above; instead they may vary within the scope of the claims.