In today's world of technology, a variety of mobile devices can be used by people on the go. Some examples of mobile devices include personal digital assistants (PDAs), wireless phones, PDA phones, laptops, vehicle devices, and embedded devices, to name a few examples. Some mobile devices are used for placing telephone calls, accessing personal information, sending text messages and emails, and sometimes even for connecting to corporate network applications remotely. In order for organizations to manage mobile devices, technologies related to device management were developed to provide customization, servicing, and personalization options. Device management techniques can be used to provision a mobile device or provide the necessary operating parameters to a mobile device. As the functionality offered by mobile devices continues to increase, so does the number of parameters and settings that need to be managed on the mobile devices.
Some device management techniques have been adopted as industry standards. For example, the Open Mobile Alliance (OMA) supports a device management (DM) standard that leverages the wireless application protocol (WAP) provisioning framework side-by-side with its own device management structures to provide devices with application access information and certain device information. For example, the OMA DM standard specifies that the capabilities of a device be represented as a tree of named nodes rooted at a node named “.”. In an OMA DM management session, a server and a mobile device communicate via a standard protocol called the OMA DM protocol. During such a session, an OMA DM server sends down to a mobile device some commands in an eXtensible Markup Language (XML) format that queries or modifies the nodes, either in structure or in value.
The OMA DM protocol allows a server to query a target node on a mobile device for data. However, in the case of a target node that is the root of its own subtree, the data that is returned can contain all of the data for a target node as well as data for the entire sub-tree. When only a portion of information is desired, it can be inefficient to get to the desired data. For example, one approach that can be taken to get to the desired data is for the server to make multiple iterations of sending a query to the device, getting a response and parsing the response, etc. This can be slow and inefficient due to the processing of extra data that is not needed and also due to the bandwidth and time expended from extra round trips to retrieve the data. Another approach that can be taken is for the server to query an entire sub-tree where the desired node resides. This too can result in the processing of data that is not needed and in the expending of extra system resources, since the entire sub-tree is returned, even if the server only needs a few pieces of data in that sub-tree.
Various technologies and techniques are disclosed for extending the functionality of the Open Mobile Alliance (OMA) Device Management (DM) protocol. An addition is made to the OMA DM protocol that enables the server to specify node filtering criteria as part of a query to a target node on a mobile device to indicate a sub-set of the device management data for the target node that should be returned. The server sends the query to the mobile device. When the request is successfully processed on the mobile device, a response is received from the mobile device that includes only the sub-set of device management data that meets the node filtering criteria.
In another implementation, a modification is made to the OMA DM protocol that enables the server to specify what attributes should be selected on the mobile device in one parameter of a target URI of the Get command, and what format the device management data should be returned in as another parameter of the target URI of the Get command.
This Summary was provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The technologies and techniques herein may be described in the general context as extensions and/or modifications to the Open Mobile Alliance (OMA) Device Management (DM) protocol, but the technologies and techniques also serve other purposes in addition to these.
As mentioned previously, the OMA DM standard leverages the wireless application protocol (WAP) provisioning framework side-by-side with its own device management structures to provide devices with application access information and certain device information. These device management structures are shown in the OMA DM structure 100 of
As shown in
Alternatively or additional to node filtering criteria 108, other criteria 110 can also be modified and/or included in the OMA DM protocol 104. As one non-limiting example, a modification can be made to the OMA DM protocol such that one parameter is used to indicate what attributes should be selected on the mobile device and another parameter is used to indicate what format the device management data should be returned in. This non-limiting example is described in further detail in
Turning now to
Suppose that only a portion of device management data is needed by the server to perform some device management operation. Below is a hypothetical example of a tree of data that could be present on a mobile device:
Suppose the server only wants to retrieve the values of all nodes {./x/y/b, ./x/y/c} where the corresponding ./x/y/d/e.value==51. A query such as the one shown in
./x/y/b (value=1)
./x/y/c (value=2)
./x/y3/b (value=5)
./x/y3/c (value=6)
Note that the above list of results is a simplified view of what the server would actually receive, and is presented in a simplified form for the sake of illustration. The actual results could be returned in an XML or other format, such as a format specified by the server or the client. Below is an example of what the results could look like in an XML format.
In both of the above examples, the nodes that were returned include just the desired fields where the specified node filtering criteria was met. In this hypothetical example, the filtering criteria included the requirement that certain portions of data only be returned for nodes having an “e” node with a value equal to 51. The results included the selected fields of data for the nodes that met that specified criteria.
Returning now to the source code example of
The example shown in
Turning now to
If the request is successfully processed on the mobile device (decision point 206), then the server receives a response from the mobile device that includes only the sub-set of device management data that meets the node filtering criteria (stage 208), as opposed to other nodes that do not meet the node filtering criteria. In some implementations, the server can receive status indicators or other ancillary information along with the specific requested data that meets the node filtering criteria. In such scenarios, the server would not receive nodes of data within the tree that were specifically asked to be filtered out in the node filtering criteria. In the event that the request is not successfully processed on the mobile device (decision point 206), then the server receives an error from the mobile device, where applicable (stage 210). If the error arises due to a communication error between the server and the mobile device, for example, then it may not be possible to receive an error code since the communication connection was lost.
Turning now to
As shown in
Additionally, device 300 may also have additional features/functionality. For example, device 300 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in
Computing device 300 includes one or more communication connections 314 that allow computing device 300 to communicate with other computers/applications 315. Device 300 may also have input device(s) 312 such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 311 such as a display, speakers, printer, etc. may also be included. These devices are well known in the art and need not be discussed at length here.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. All equivalents, changes, and modifications that come within the spirit of the implementations as described herein and/or by the following claims are desired to be protected.
For example, a person of ordinary skill in the computer software art will recognize that the examples discussed herein could be organized differently on one or more computers to include fewer or additional options or features than as portrayed in the examples.