Abstract:
A method includes, in response to receiving a certain type of HTTP request message from a device during a browsing session, sending a HTTP response message to the device. The HTTP response message includes a dedicated MIME-type for indicating that a device management session is being initiated, and the device management session is identified by an identifier that forms part of the HTTP response message. The device replies to the HTTP response message with a device management session reply that comprises device details and the identifier. Using the device details, the system develops a list containing at least one download option that is compatible with the device and sends the list to the device. In response to a user selecting the at least one download option from the list, the system delivers the selected at least one download option to the device during a device management session.

Description:
TECHNICAL FIELD 
     This invention relates generally to mobile communications devices and methods and, more specifically, relates to content delivery, web browsers and device software over the air delivery used with wireless communications terminals and appliances. 
     BACKGROUND 
     As the amount and complexity of software in mobile communications devices increases there is an increasing need for manufacturers, service providers and software developers to maintain the mobile device configuration and its software components after the manufacturing phase. For example, selling add-on applications or commercial content to users of mobile devices ideally requires compatibility checking and management of the interrelated dependencies of the software modules. While providing generic profile or model information of the device may be sufficient for relatively simple content delivery (e.g., such as a music download), for application installations and particularly for firmware updates it is essential to obtain detailed mobile device information in order to correctly select delivery versions and download packages. In many cases, however, these important details are not known to the user, and/or are not visible to the user through the user interface. 
     The Open Mobile Alliance (OMA) has standardized a set of service enablers to fulfill the needs of device management and downloads of digital products. However, many of the standards are quite tightly focused on the mobile domain, and thus integrating them as architectural components into a more generic digital delivery system entity is not straightforward. 
     In many cases the use of digital delivery for mobile devices is e-commerce oriented. As such, in addition to technical level device management tasks there are several user level aspects such as demand creation, menu browsing, selection, commitment and payment. 
     A natural technology choice, and the current defacto method for implementing the user interface, is through web technologies, particularly HTTP browsing and web applications. Thus, any attempt to address the problems discussed above should ideally be compatible and inter-operate with existing and future web-related technologies, including web browsers. 
     General reference with respect to updating a user can be made to the following U.S. Patents, all by Richard R. Reisman: U.S. Pat. No. 5,694,546, “System for Automatic Unattended Electronic Information Transport Between a Server and a Client by a Vendor Provided Transport Software with a Manifest List”; U.S. Pat. No. 6,125,388, “System for Transporting Information Objects Between a User Station and Multiple Remote Sources Based upon User Modifiable Object Manifest Stored in the User Station”; U.S. Pat. No. 6,594,692 B1, “Methods for Transacting Electronic Commerce”; and U.S. Pat. No. 6,658,464 B2, “User Station Software that Controls Transport, Storage, and Presentation of Content from a Remote Source”. 
     SUMMARY OF THE PREFERRED EMBODIMENTS 
     The foregoing and other problems are overcome, and other advantages are realized, in accordance with the presently preferred embodiments of these teachings. 
     In one aspect this invention provides both a method and a system to automate a device session in combination with a user&#39;s interaction with a server. The method includes, in response to receiving a certain type of HTTP request message from the device during a browsing session, sending a HTTP response message to the device. The HTTP response message includes a dedicated MIME-type for indicating that a device management session is being initiated, and the device management session is identified by an identifier that forms part of the HTTP response message. The device replies to the HTTP response message with a device management session reply that comprises device details and the identifier. Using the device details, the system develops a list containing at least one download option that is compatible with the device and sends the list to the user. In response to a user selecting the at least one download option from the list, the system delivers the selected at least one download option to the device during a device management session. 
     In another aspect this invention provides a method to operate a device to download information via a wireless network, and a device having a controller that operates in accordance with the method. The method includes, during a wireless HTTP session, making an inquiry with the device with regard to downloadable information; in response to the inquiry, initiating a secure device management wireless dialog with the device to obtain device-specific parameters descriptive of at least certain capabilities of the device; generating a list and sending the list to the device, the list comprising at least one entry that is descriptive of downloadable information that is compatible with the device capabilities; and during a wireless HTTP session, selecting at least one entry from the list to be downloaded to the device. 
     In a further aspect of this invention there is provided a device management server that is operable with a device to download information via a wireless network to the device. The device management server includes a first interface for coupling to the device, a second interface for coupling to a workflow manager and a controller that operates with a program to perform operations that are initiated in response to the device, during a wireless HTTP session, making an inquiry with regard to downloadable information. The device management server is further responsive to the workflow manager initiating a secure device management wireless session with the device to obtain device-specific parameters descriptive of at least certain capabilities of the device; to cooperate with the workflow manager via the second interface to generate a list and to send the list towards the device via the first interface, where the list contains at least one entry that is descriptive of downloadable information that is compatible with the device capabilities; and during a wireless HTTP session, to download information to the device corresponding to at least one entry from the list selected by a user of the device. 
     In a still further aspect of this invention there is provided a workflow manager operable with a device and with a device management server for downloading information via a wireless network to the device. The workflow manager includes a first interface for coupling to the device via a web site and to the device management server, a second interface for coupling to at least one back-end system, and a controller that operates with a program to perform operations initiated in response to the device, during a wireless HTTP session, making an inquiry to the web site with regard to downloadable information. The workflow manager initiates a secure device management wireless session with the device to obtain device-specific parameters descriptive of at least certain capabilities of the device; and cooperates with the device management server via the first interface and with the at least one back-end system via the second interface to generate the list that is descriptive of downloadable information that is compatible with the device capabilities. The workflow manager further operates to send the list towards the device via the first interface and via the web server. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The foregoing and other aspects of the teachings in accordance with this invention are made more evident in the following Detailed Description of the Preferred Embodiments, when read in conjunction with the attached Drawing Figures, wherein: 
         FIG. 1  is logical level sequence diagram of a typical sequence for digital delivery as part of an e-commerce oriented use case; 
         FIG. 2  is a message flow sequence diagram for the exemplary case of a firmware update that takes place with a device in accordance with preferred embodiments the invention; 
         FIG. 3  is a block diagram of a device suitable for use in the message flow sequence of  FIG. 2 ; 
         FIG. 4  is a block diagram of a DM server suitable for use in the message flow sequence of  FIG. 2 ; 
         FIG. 5  is a block diagram of a workflow manager suitable for use in the message flow sequence of  FIG. 2 ; 
         FIG. 6  shows a non-limiting example of the structure of a HTTP Response message that carries a Device Management notification message in accordance with an aspect of the teachings of this invention; and 
         FIG. 7  shows a non-limiting example of the structure of the Device Management notification message that is carried by the HTTP Response message of  FIG. 6 . 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Examples of documents that are descriptive of current web-related technologies of interest to the presently preferred embodiments of this invention include: RFC 2616: Hypertext Transfer Protocol-HTTP1.1, IETF, June 1999; RFC 2109: HTTP State Management Mechanism; IETF, February 1997; and SyncML Device Management Protocol, Version 1.1.2 (OMA-SyncML-DMProtocol-V1 — 1 — 2-20030612-C), Open Mobile Alliance, June 2003. 
     In order to ensure a pleasant user experience during a digital delivery transaction, the inventors have realized that the detailed level device information gathering and management procedures should be automated and seamlessly integrated with the digital delivery transaction. In the preferred embodiments of this invention a model is used that utilizes OMA service enablers, preferably OMA Device Management and OMA Download, as integrated sub-components in a web browsing-based digital delivery transaction. The use of the presently preferred embodiments of this invention is particularly beneficial for the firmware update use case, but may be applied to benefit other digital delivery applications as well. 
     For the purposes of this invention “firmware” may be considered to comprise computer code written in a relatively low level language that is executable either directly or indirectly (e.g., after being run through a compiler or an interpreter) by a data processor that forms part of the device  10 . An example of firmware, or a firmware upgrade, could be a revision to, as non-limiting examples, an operating system module, an http protocol stack implementation, or an improvement to a wireless network access and/or scanning procedure necessitated by, or made optional in view of, a change to an underlying communications standard. In contradistinction, an “application” may be considered a higher level program that imparts a new, and possibly optional, functionality to the device  10 , such as an improved or different Internet browser, or a media player, or an image capture program that provides for archiving captured images (assuming that the device  10  includes a digital camera) to some network-provided image database. As can be appreciated, the specifics of the device  10  construction and operation, such as the revision level of its operating system software, the amount of installed memory, the type (e.g., model number) of its digital camera and other types of parameters can have a significant influence on the type and/or revision level of the firmware or application software that is downloaded to the device  10 . As but one example, the user may desire to download firmware or an application that is incompatible with the hardware of the device  10 , or that requires more memory than the device  10  has installed, or that assumes an operating system version that was released subsequent to the manufacture date of the device  10 . In any of these cases simply downloading the user-requested firmware or application could create significant problems for the user, and a less than optimum user experience with the web site  30 , which may be associated with the manufacturer of the device  10 , or with a network operator with whom the user  1  has a subscription. One motivating factor for this invention is to avoid such problems, and to do so with a minimal impact on the user. It is a desirable goal to provide the user with an optimal experience for both user-interactive and non-user-interactive (e.g., background) type of operations. 
     It should be appreciated at the outset that while the preferred and exemplary embodiments of this invention discussed below are presented in the OMA framework, this invention is not limited for use only with OMA-based enablers and technology. 
     By way of introduction, a typical sequence for digital delivery as part of an e-commerce -oriented use case is illustrated in  FIG. 1  in the form of a logical level sequence diagram.  FIG. 1  shows an end user  1  associated with a mobile station (MS)  10 , a DM server  20  and a web server  30 . A user session is assumed to exist between the end user  1  and the web server  30 , while a device session exists between the MS  10  and the DM server  20 .  FIG. 1  is useful in explaining the problems that arise in a conventional digital delivery session to a MS  10 , and thus aids in providing an enhanced understanding of the improvements provided by the preferred embodiments of this invention. 
     It should be noted through that the teachings of this invention are applicable to a number of user interface technologies, are not limited to only web-interface technologies. As non-limiting examples, the teachings of this invention are also applicable to Wireless Application Protocol (WAP) technologies, and to JAVA™ based applications. 
     With regard to  FIG. 1 , it may be assumed that as the successful result of successful marketing and according to web link information the user  1  has arrived at the web site  30  which has downloadable items available for mobile stations. This interaction is shown as the generic browsing  40 . To ensure that the alternatives presented to the user  1  are actually compatible with and functional in the user&#39;s MS  10 , the server-side system needs to know the capabilities of the MS  10 . A conventional manual procedure to accomplish this would be to restrict the spectrum of digital product variances according to a range of MS  10  models and, as a starting point for the user interaction, prompt the user  1  for the MS  10  model information. However, there are number of disadvantages inherent in this conventional approach. As a few examples, and first, this approach can result in a bad user experience, as the user  1  is prompted to perform a mundane data entry task. Further, unless the instructions to the user are perfectly clear, the user  1  may abandon the web server  30  and go elsewhere for the desired digital delivery. Second, the information reliability can be compromised by requiring the user  1  to enter the information. As may be appreciated, in some cases the correctness of the device information is very critical for a successful delivery (and particularly for a successful activation of a delivered application or firmware). Third, and related to the first two issues, the complexity of the information required may be such that the user  1  does not know the information, and may not be able to retrieve it using the conventional user interface of the MS  10 . 
     In addition to the user session  40 , a separate device session  42  is used to gather sufficient device information to create a menu of alternative downloadable items for the user  1 . This menu may shown in a web-based user session  44 , where user  1  can browse through the menu, read additional information, select and commit to a delivery. Finally, and according to the user  1  selection(s), the delivery and related device management tasks are completed through a second device session  46 . 
     The inventors have realized that a problem that arises in the exemplary scenario depicted in  FIG. 1  is how to best combine the two different sessions (user session and device session) and transfer data between them. For example, after the user  1  has arrived at the web server  30  by using a web browser, and desires that a list of relevant items be shown, what is the best way to begin an OMA device management session to obtain the device (MS  10 ) capability and compatibility information? Further, and assuming that this automatic information gathering can be completed, what is the best technique to return the results in the web session to the user&#39;s browser? In other words, what is the most opportune manner in which to integrate or bootstrap an OMA DM session with the user&#39;s web browsing session? 
     In order to gain a fuller understanding of the underlying problems that are inherent in providing an integrated user browser and OMA DM session, a brief discussion is now provided of some pertinent basic fundamentals of web technologies (in the context of HTTP), and also OMA device management. 
     HTTP is the simple and powerful network protocol of the web. It is usually implemented on top of Transport Control Protocol/Internet Protocol (TCP/IP) sockets to transfer resources (files, application output) from a HTTP server (usually a web server) to a HTTP client (such as a web browser). 
     Originally, the concept of a web session did not exist in HTTP, as HTTP is a stateless protocol; i.e., it has two messages, request and response, and includes alternative methods: GET, POST and HEAD. In the original sense, a HTTP “session” starts when the request message is sent, and the HTTP session ends when the response message is received. 
     At first, the underlying TCP/IP session was closed after each pair of request-response messages. However, as web technology progressed and became more widely used the size and complexity of web pages increased dramatically, leading to the typical currently viewed web pages with tens or hundreds of separate HTTP resources (such as flashing GIF icons, blinking banners, and animated thumbnail advertisements). As a result of this increase in HTTP web page complexity the computing resource expense, at both the client and at the server, to open and close down a dedicated TCP/IP socket for each HTTP request became too great. In response, protocol specialists standardized (in HTTP 1.1) a technique to use a persistent TCP/IP connection. However, even with the persistent TCP/IP socket in place it is not possible for the server to send a response message towards the client without a preceding HTTP request message. Stated another way, a web server cannot push information to a browser (see RFC 2616: Hypertext Transfer Protocol-HTTP/1.1, IETF, June 1999). 
     Notwithstanding the stateless orientation of HTTP, the need for web sessions quickly became apparent as more web applications appeared. The HTTP state management mechanism (see RFC 2109: HTTP State Management Mechanism; IETF, February 1997) provides the web application developer with features on top of HTTP to combine several HTTP messages into one specific user session. An implementation includes cookies, which carry user and session related information in all of the messages from the client to the server. The server typically encrypts the cookie to prevent a fraudulent client from tampering with its content. 
     Turning now to OMA DM, and as the full name for OMA DM indicates, the SyncML Device Management Protocol utilizes SyncML in the device management domain. This is a client-server protocol for implementation in a DM client and in a DM server. 
     A DM client includes a management tree, which is a tree-formed data structure containing manageable objects. To carry out the required device management tasks a DM server uses commands such as Get, Replace and Exec that are targeted to the objects in the management tree. 
     OMA DM is optimized for interactions between a server and a device, such as the MS  10  of  FIG. 1 . For user interactions there are simple commands to implement features such as notifications and user choices, but in general the user interface capabilities of OMA DM are very limited. 
     Prior to an OMA device management session being established a device should be “bootstrapped”. The SyncML Device Management Protocol standard defines two methods for bootstrapping:
     (a) Customized bootstrap, where devices are loaded with SyncML DM bootstrap information at manufacture (also referred to as a factory bootstrap); and   (b) Server initiated bootstrap, where a server sends out bootstrap information via some push mechanism, e.g. WAP Push or OBEX. In this method the server must be informed of the device address/phone number beforehand. During the bootstrapping procedure a number of parameters are set in the device, including the server address and identification, as well as both client and server-related authentication information. While the presently preferred embodiments of this invention prefer to use the factory bootstrap procedure, the server-initiated bootstrap procedure may be used as well.   

     Having thus described the HTTP and OMA DM environments that are most germane to the presently preferred (but non-limiting) embodiments of this invention, a description is now provided of the presently preferred embodiments of methods and apparatus in accordance with this invention. 
     Salient aspects of this invention include the use of a dedicated MIME-type in a HTTP response message to launch the OMA DM session and to send bootstrapping parameters to the device; the encryption with a secret key of the bootstrapping information in a client provisioning message (notification may be used in lieu of bootstrapping); and the use of an upper layer digital delivery session and its identification to combine a web session and device session(s) into one overall logical transaction. A further aspect of this invention relates to a procedure to return control to the web session after the device session by use of a queued HTTP request; an OMA DM Exec command to a web browser object with a predefined URL; and a user response to a previously sent activation prompt. 
     More specifically, what is implied by this further aspect of the invention is the following: 
     1. A Queued HTTP Request 
     As a reaction to the HTTP response (message (g) of  FIG. 2 , discussed below), and in addition to the DM session establishment (message (h) of  FIG. 2 , discussed below), the device  10  creates an HTTP request to the web server  30 . The web server  30  queues the request until it receives a user options message (message (o) of  FIG. 2 , discussed below), and then sends the response to the browser  10 B (message (p) in  FIG. 2 , discussed below). 
     2. OMA DM Exec 
     After creating the menu (activity (n) in  FIG. 2 , discussed below), a workflow manager  50  requests the DM server  20  to send an Exec command to device  10  DM Client  10 A, and in this manner requests that the device&#39;s web browser  10 B become active and send an HTTP request to the web server  30 . The web server  30  responds to this HTTP request by sending the options (message (o) of  FIG. 2 , discussed below) to web browser  10 B in the HTTP response (message (p) in  FIG. 2 , discussed below). 
     3. User Response to Activation Prompt. 
     As part of the HTTP response (message (g) in  FIG. 2 , discussed below), there also exists user interface information to be presented in web browser  10 B. This user interface activity includes presenting a prompt for the user (e.g. “please wait, device information being gathered”) and a submit (e.g., “ok”) button. When the user accepts the information (e.g., by pressing the “ok” button) the web browser  10 B sends a HTTP request to web browser  30 . This request will then be handled as in alternative  1  (as a queued HTTP request). 
     In general, MIME was originally intended to extend the format of Internet mail to allow non-US-ASCII textual messages, non-textual messages, multi-part message bodies and non-US-ASCII information in message headers. The following RFCs define MIME: RFC 2045: MIME Part One: Format of Internet Message Bodies; RFC 2046: MIME Part Two: Media Types; RFC 2047: MIME Part Three: Message Header Extensions for Non-ASCII Text; RFC 2048: MIME Part Four: Registration Procedures; and RFC 2049: MIME Part Five: Conformance Criteria and Examples. Reference can also be had to RFC 1341 (June 1992), which was obsoleted by RFC 1521: MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies (September 1993); and RFC 1342: MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text (September 1993). 
     A system description is now provided with respect to the embodiment of  FIG. 2 , which shows the signal and message flow between the user  1 , the device, such as the MS  10  of  FIG. 1 , the web site (or web server)  30 , the DM server  20 , the above-mentioned workflow manager  50  and one or more back-end systems  60 . The capabilities and responsibilities of these various components, which may also be referred to herein as actors, is described below, followed by a description of the usage sequence depicted in  FIG. 2 . 
     It should be noted that in a presently preferred embodiment of this invention, but by no means as a limitation upon the practice of this invention, the link between the device  10  and the web site  30  is carried at least partially though a wireless link, such as a cellular RF link, or a Bluetooth link, or a wireless local area network (WLAN) link, or through an optical link, possibly via a network provider (e.g., via a cellular network operator, or a WLAN hotspot operator) of the device  10 . 
     For the purposes of the description of the presently preferred embodiments of this invention, and not as a limitation upon the practice of this invention, the user  1  is a human being that uses the device  10 . The user  1  may be interested in (possibly commercial) digital products available in the network, such as content, applications and/or firmware updates. Web browser is the preferred application to discover, select and commit to delivery of a digital product. The user  1  does not necessarily own the device  10 . 
     For the purposes of the description of the presently preferred embodiments of this invention, and not as a limitation upon the practice of this invention, the device  10  is or includes a mobile component having an instance of an OMA DM client application implementation  10 A and a HTTP 1.1 compliant web browser  10 B. For firmware updates the device  10  may have, as an exemplary and non-limiting example, OMA Firmware Over the Air (FOTA) capability. The device  10  may be, as exemplary and non-limiting embodiments, a cellular or a non-cellular telephone, or a computer having a wireless interface (RF and/or IR) with a local and/or a wide area network (LAN and/or WAN), or a personal digital assistant (PDA) having a wireless interface (RF and/or IR) with a LAN and/or a WAN, or any suitable Internet appliance enabling the user  1  to operate a browser to contact the web server or site  30 . This being the case, the device  10  will typically comprise a wireless (RF or optical) transceiver. 
     Reference is made to  FIG. 3  for showing a non-limiting example of a block diagram of the device  10  that is suitable for use in the message flow sequence of  FIG. 2 . Device  10  is assumed to include a controller  1 , such as a microprocessor, that is coupled to memory  12  that stores, in addition to an operating system and other typical software, software for implementing the OMA-DM client  10 A in accordance with this invention, as well as a web browser  10 B. Also found in the memory  12  may be a device table  10 C that stores device details (e.g., hardware capabilities, operating system version, memory capacity) that were loaded upon manufacture, or when the device was first activated. Also provided is a user interface (UI)  13 , or an interface to a suitable UI. In one non-limiting embodiment the UI  13  includes a user display (e.g., a LCD display)  13 A and a keyboard or keypad  13 B user data entry device. The controller  11  is also coupled to a suitable RF or optical transceiver  14  for communication with the website  30  and the DM Server  20 , typically via a wireless network/operator, such as a cellular telephone network operator, or a Wireless LAN network. Note that in a wired embodiment of the device  10  the transceiver  14  may be coupled to an electrical or optical cable or other wiring. 
     For the purposes of the description of the presently preferred embodiments of this invention, and not as a limitation upon the practice of this invention, the web site  30  contains or is linked to a HTTP 1.1-compliant web server that implements the user interface (HTML pages) towards the user  1 . The web site  30  preferably has an Application Program Interface (API) to implement web applications, and an interface towards other server side components (e.g.,  20 ,  50 ,  60 ). 
     For the purposes of the description of the presently preferred embodiments of this invention, and not as a limitation upon the practice of this invention, the DM server  20  implements an OMA SyncML DM protocol stack, communicates with the DM client  10 A in the device  10 , and has interfaces to other server-side components ( 30 ,  50 ,  60 ). Reference with regard to SyncML can be had to, as examples, SyncML Device Management Protocol, Version 1.1.2 (OMA-SyncML-DMProtocol-V1 — 1 — 2-20030612-C, Open Mobile Alliance, June 2003, as well as to SyncML Device Information DTD, version 1.1, February 2002 (where DTD represents Document Type Definition)). 
     Reference is made to  FIG. 4  for showing a non-limiting example of a block diagram of the DM server  20  that is suitable for use in the message flow sequence of  FIG. 2 . DM server  20  is assumed to include a controller  21 , such as a microprocessor, that is coupled to a memory  21 A that stores, in addition to an operating system and other typical software (SW), software for implementing the OMA SyncML DM protocol stack and software for communicating with the OMA-DM client  10 A of the device  10 . The DM server  20  includes input and output interfaces (I/Os)  22 A and  22 B (which may be logical and/or physical I/Os) for communication with the device  10  and the workflow manager  50 . Note that both I/O interfaces  22 A,  22 B may be embodied as logical interfaces that communicate via TCP/IP over the Internet. 
     For the purposes of the description of the presently preferred embodiments of this invention, and not as a limitation upon the practice of this invention, the workflow manager  50  keeps track of the overall digital delivery process, e.g., a firmware update transaction. The workflow manager  50  creates a unique transaction identification (TID), uses the web server  30  and DM server  20  as interfaces to the user  1  and the device  10 , and combines the individual lower level sessions into one logical transaction. The workflow manager  50  preferably uses the services in the back-end systems  60  to complete certain specific tasks during the transaction with the device  10 . 
     Reference is made to  FIG. 5  for showing a non-limiting example of a block diagram of the workflow manager  50  that is suitable for use in the message flow sequence of  FIG. 2 . Workflow manager  50  is assumed to include a controller  51 , such as a microprocessor, that is coupled to a memory  51 A that stores, in addition to an operating system and other typical software (SW), software for generating the TID and for managing and correlating the various transactions with the device  10  and other system components. The workflow manager  50  I/Os  52 A and  52 B (which may be logical and/or physical I/Os) for communication with the web site  30 , the DM server  20 , and the back-end server(s) and system(s)  60 . As with the DM server  20 , both I/O interfaces  52 A,  52 B may be embodied as logical interfaces that communicate via TCP/IP over the Internet. 
     For the purposes of the description of the presently preferred embodiments of this invention, and not as a limitation upon the practice of this invention, the back-end server(s) and system(s)  60  provide services for the workflow manager  50 . The services may include, but are not restricted to, security services for authentications, encryptions and signatures, device  10 -related services such as legal and warranty status information, as well as detailed product management services, such as Product Data Management (PDM) information. 
     For the purposes of the description of the presently preferred embodiments of this invention, and not as a limitation upon the practice of this invention, the workflow manager  50  and the back-end system(s)  60  are controlled by the same entity that controls the web site  30  and the DM server  20 . However, this is not a limitation upon the practice of this invention, and one or both of these components may be under the control of third parties. For example, one of the back-end systems  60  may be a third party digital signature authenticator, or a third party digital payment facilitator. 
     Turning now to the exemplary sequence diagram shown in  FIG. 2 , the following steps are executed in accordance with the embodiments of this invention. At (a) the user  1  browses through competing web sites and finds a desired vendor&#39;s firmware (FW) update pages. At (b) the user  1  clicks a link in a FW update page to determine which new FW update alternatives (if any) are available for the device  10 . At (c) the web site  30  sends a page to the user  1 , via the device  10 , and the HTTP response is used to inform the user  1  via the device  10  that automated device information gathering is about to start. A suitable message may be: “Wait while we retrieve the requested firmware for your phone”. At (d) the user  1  accepts, via the user interface of the device  10 , the automated device session establishment, which results in a HTTP request being sent from the browser  10 B to the web server  30 . At (e) the web server  30  informs the workflow manager  50  that there is a user request to start a firmware update transaction (FWupdTransaction) and to establish an OMA DM session. In response, the workflow manager  50  creates a new transaction with a unique TID. At (f), and with the assistance of the back-end services  60 , the workflow manager  50  creates a suitable OMA client provisioning (CP) message and signs it with the secret key. An INIT DM message is sent to the web site  30  with the encrypted CP. At (g), and as part of the HTTP response, the web site  10  sends the signed CP message, with a MIME-type dedicated to OMA device management, to the device  10 . The TID is embedded in the HTTP response message. Based on the MIME-type information and the signed CP message, at step (h) the device  10  checks the validity of the DM bootstrapping information, sets the parameters accordingly, and launches the OMA DM client application  10 A. At (i) the OMA DM client  10 A establishes an OMA DM session and sends device  10  information details to the DM server  20 . These device details may be stored in the table  10 C in the memory  12  of the device  10 , and may have been loaded upon manufacture, or when the device was first activated. In any case, the user  1  need not be aware of the device  10  information, as this step (i) preferably occurs automatically, and without involvement of the user  1 . The TID is preferably included as a part of this information that is sent back to the DM server  20 . At (j) the DM server sends the TID and the received device information to the workflow manager  50 , and at (k) the workflow manager  50  communicates with the back-end services  60  to determine whether the amount and level of details in device  10  information is sufficient to create a list of alternatives (a menu of firmware download options). If there is a need for more detailed and specific device  10  information, at (l) the workflow manager  50  requests the DM server  20  to fetch the relevant data from the device  10 . In this case at (m), and by using the OMA DM protocol, the DM server  20  obtains the additional device  10  information and sends it back to the workflow manager  50 . At (n) the workflow manager  50  creates (or uses one or more back-end services  60  to create) a list of available alternatives, i.e., a menu of firmware download options for the end user  1 . At (o) the workflow manager  50  sends the menu of firmware download options to the web site  30 , and at (p) the web site  30  returns the menu to the browser  10 B for the user  1  to select products or request more (web-formalized) information. This can be accomplished at (p) via at least three techniques: a previously queued HTTP request; an OMA DM exec to web object; or a user action in a previously sent web page. By whatever technique is used at (p), additional web browsing, involving HTTP requests and responses (user  1  via device  10  with the web site  30 ), and eventual delivery of the requested firmware and device management (device  10  and DM server  20 ), occurs at steps (q) and (r), respectively. Note that any suitable technology and mechanism can be used for the actual download of the firmware to the device  10 . 
     An aspect of combining a web session with an automated DM session, in accordance with embodiments of this invention, involves conveying the OMA DM notification message within an HTTP response message (message (g) in  FIG. 2 ). Referring to  FIG. 6 , the HTTP response message generally contains a Status Line field  102 , a General Headers field  104 , a Response Headers field  106 , an Entity Headers field  108 , a delimiter or separator, shown as a carriage return/line feed (CRLF)  109 , and a Message Body field  110 . Of most interest to the non-limiting embodiments of this invention is the Entity Headers field  108 , that contains a Content-Type field  108 A, a Content-Length field  108 B and a Last-Modified field  108 C. Of particular interest is the Content-Type field  108 A that conveys the above-mentioned predetermined MIME-type. As non-limiting examples, the predetermined MIME-type for a General Notification Initiated Session Alert message may be Content-type  108 A: “application/vnd.syncml.notification”, and the Content-Type code may be 0x44. 
     In a presently preferred, but non-limiting embodiment of the structure of the HTTP response message illustrated in  FIG. 6 , the OMA DM notification is carried in the Message-Body field  110 . 
     An exemplary HTTP response message content may be as follows: 
     
       
         
               
             
               
               
             
               
             
               
               
             
               
             
               
               
             
               
             
               
               
             
               
             
               
               
             
           
               
                   
               
             
             
               
                 Response = Status-Line (102 in FIG. 6) 
               
             
          
           
               
                   
                 *(( general-header (104 in FIG. 6) 
               
               
                   
                 | response-header (106 in FIG. 6) 
               
               
                   
                 | entity-header (108 in FIG. 6) ) CRLF) 
               
               
                   
                 CRLF (109 in FIG. 6) 
               
               
                   
                 [ message-body ] (110 in FIG. 6) 
               
             
          
           
               
                 status-line = HTTP/1.1 &lt;Space&gt; status-code+reason-phrase 
               
               
                 status-code+reason-phrase = 200 &lt;Space&gt; OK | 
               
             
          
           
               
                   
                 400 &lt;Space&gt; Bad Request | 
               
               
                   
                 404 &lt;Space&gt; Not Found | 
               
               
                   
                 500 &lt;Space&gt; Internal Server Error | 
               
               
                   
                 501 &lt;Space&gt; Not Implemented 
               
             
          
           
               
                 general-header = Date: &lt;Space&gt; date &lt;CRLF&gt; 
               
             
          
           
               
                   
                  Connection: &lt;Space&gt; close &lt;CRLF&gt; 
               
             
          
           
               
                 response-header = Server: &lt;Space&gt; vendor-string &lt;CRLF&gt; 
               
               
                 entity-header = Content-Length: &lt;Space&gt; integer-greater-or-equal-0 
               
               
                 &lt;CRLF&gt; 
               
             
          
           
               
                   
                 Content-Type: &lt;Space&gt; text/html &lt;CRLF&gt; 
               
               
                   
                 Last-Modified: &lt;Space&gt; date &lt;CRLF&gt; 
               
               
                   
                 [ Cache-Control: &lt;Space&gt; no-cache &lt;CRLF&gt; ] // only for 
               
               
                   
                 dynamic pages 
               
               
                   
                 [ Expires: &lt;Space&gt; date &lt;CRLF&gt; ] // only for dynamic 
               
               
                   
                 pages 
               
             
          
           
               
                 message-body = // the contents of the document requested by the client 
               
               
                 date = // date format according to RFC822 and RFC1123 
               
               
                 vendor-string = // server identification 
               
             
          
           
               
                   
                 // (freely definable by the server implementor) 
               
               
                   
               
             
          
         
       
     
     The fields of an exemplary embodiment of the OMA DM notification message  120  are shown in  FIG. 7 , where: 
     
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 Field 
                 Description 
               
               
                   
                   
               
             
             
               
                   
                 digest 122 
                 MD5 Digest value 
               
               
                   
                 trigger-hdr 124, containing: 
               
               
                   
                 version 124A 
                 Device Management Version 
               
               
                   
                 ui-mode 124B 
                 not-specified/user-interaction 
               
               
                   
                 initiator 124C 
                 Server/User initiated (client/server) 
               
               
                   
                 future-use 124D 
                 reserved for future DM use 
               
               
                   
                 sessionid 124E 
                 Session identifier 
               
               
                   
                 length-identifier 124F 
                 Server Identifier length 
               
               
                   
                 server-identifier 124G 
                 Server Identifier 
               
               
                   
                 trigger body 126 
                 vendor-specific 
               
               
                   
                   
               
             
          
         
       
     
     One non-limiting example of a DM Device Details message (message (i) in  FIG. 2 ) is shown below (reference may be had again to: SyncML Device Management Protocol, Version 1.1.2 (OMA-SyncML-DMProtocol-V1 — 1 — 2-20030612-C), Open Mobile Alliance, June 2003): 
     
       
         
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
             
           
               
                   
               
             
             
               
                 &lt;SyncML xmlns=‘SYNCML:SYNCML1.1’&gt; 
               
             
          
           
               
                   
                 &lt;SyncHdr&gt; 
               
             
          
           
               
                   
                 &lt;VerDTD&gt;1.1&lt;/VerDTD&gt; 
               
               
                   
                 &lt;VerProto&gt;DM/1.1&lt;/VerProto&gt; 
               
               
                   
                 &lt;SessionID&gt;1&lt;/SessionID&gt; 
               
               
                   
                 &lt;MsgID&gt;1&lt;/MsgID&gt; 
               
               
                   
                 &lt;Target&gt; 
               
             
          
           
               
                   
                 &lt;LocURI&gt;http://XXXX/mgmt-server&lt;/LocURI&gt; 
               
             
          
           
               
                   
                 &lt;/Target&gt; 
               
               
                   
                 &lt;Source&gt; 
               
             
          
           
               
                   
                 &lt;LocURI&gt;IMEI:XXXX&lt;/LocURI&gt; 
               
             
          
           
               
                   
                 &lt;/Source&gt; 
               
               
                   
                 &lt;Cred&gt; &lt;!-- Client credentials --&gt; 
               
             
          
           
               
                   
                 &lt;Meta&gt; 
               
             
          
           
               
                   
                 &lt;Type xmlns=“syncml:metinf”&gt;syncml:auth-basic&lt;/Type&gt; 
               
               
                   
                 &lt;Format xmlns-‘syncml:metinf’&gt;b64&lt;/Format&gt; 
               
             
          
           
               
                   
                 &lt;/Meta&gt; 
               
               
                   
                 &lt;Data&gt; 
               
             
          
           
               
                   
                 &lt;!—base64 formatting of userid:password --&gt; 
               
             
          
           
               
                   
                 &lt;/Data&gt; 
               
             
          
           
               
                   
                 &lt;/Cred&gt; 
               
               
                   
                 &lt;Meta&gt; &lt;!-- Maximum message size for the client --&gt; 
               
             
          
           
               
                   
                 &lt;MaxMsgSize xmlns=“syncml:metinf”&gt;5000&lt;/MaxMsgSize&gt; 
               
             
          
           
               
                   
                 &lt;/Meta&gt; 
               
             
          
           
               
                   
                 &lt;/SyncHdr&gt; 
               
               
                   
                 &lt;SyncBody&gt; 
               
             
          
           
               
                   
                 &lt;Alert&gt; 
               
             
          
           
               
                   
                 &lt;CmdID&gt;1&lt;/CmdID&gt; 
               
               
                   
                 &lt;Data&gt;1200&lt;/Data&gt; &lt;! -- Server-initiated session --&gt; 
               
               
                   
                 &lt;Item&gt;&lt;/Item&gt; 
               
               
                   
                 &lt;Item&gt; 
               
             
          
           
               
                   
                 &lt;Data&gt;123 blah blah&lt;/Data&gt; &lt;! -- one example of sending TID --&gt; 
               
             
          
           
               
                   
                 &lt;/Item&gt; 
               
             
          
           
               
                   
                 &lt;/Alert&gt; 
               
               
                   
                 &lt;Alert&gt; 
               
             
          
           
               
                   
                 &lt;CmdID&gt;XXX&lt;/CmdID&gt; 
               
               
                   
                 &lt;Data&gt;TIDXXXX 123 blah blah &lt;/Data&gt; &lt;! -- or alternative way of sending 
               
               
                   
                 TID --&gt; 
               
             
          
           
               
                   
                 &lt;/Alert&gt; 
               
               
                   
                 &lt;Replace&gt; 
               
             
          
           
               
                   
                 &lt;CmdID&gt;3&lt;/CmdID&gt; 
               
               
                   
                 &lt;Item&gt; 
               
             
          
           
               
                   
                 &lt;Source&gt;&lt;LocURI&gt;./DevInfo/DevId&lt;/LocURI&gt;&lt;/Source&gt; 
               
               
                   
                 &lt;Meta&gt; 
               
             
          
           
               
                   
                 &lt;Format xmlns=‘syncml:metinf’&gt;chr&lt;/Format&gt; 
               
               
                   
                 &lt;Type xmlns=‘syncml:metinf’&gt;text/plain&lt;/Type&gt; 
               
             
          
           
               
                   
                 &lt;/Meta&gt; 
               
               
                   
                 &lt;Data&gt;abc blah blah 123 blah blah&lt;/Data&gt; 
               
             
          
           
               
                   
                 &lt;/Item&gt; 
               
               
                   
                 &lt;Item&gt; 
               
             
          
           
               
                   
                 &lt;Source&gt;&lt;LocURI&gt;./DevInfo/Man&lt;/LocURI&gt;&lt;/Source&gt; 
               
               
                   
                 &lt;Meta&gt; 
               
             
          
           
               
                   
                 &lt;Format xmlns=‘syncml:metinf’&gt;chr&lt;/Format&gt; 
               
               
                   
                 &lt;Type xmlns=‘syncml:metinf’&gt;text/plain&lt;/Type&gt; 
               
             
          
           
               
                   
                 &lt;/Meta&gt; 
               
               
                   
                 &lt;Data&gt;BEST MANUFACTURER Inc.&lt;/Data&gt; 
               
             
          
           
               
                   
                 &lt;/Item&gt; 
               
               
                   
                 &lt;Item&gt; 
               
             
          
           
               
                   
                 &lt;Source&gt;&lt;LocURI&gt;./DevInfo/Mod&lt;/LocURI&gt;&lt;/Source&gt; 
               
               
                   
                 &lt;Meta&gt; 
               
             
          
           
               
                   
                 &lt;Format xmlns=‘syncml:metinf’&gt;chr&lt;/Format&gt; 
               
               
                   
                 &lt;Type xmlns=‘syncml:metinf’&gt;text/plain&lt;/Type&gt; 
               
             
          
           
               
                   
                 &lt;/Meta&gt; 
               
               
                   
                 &lt;Data&gt;BEST PHONE 2004&lt;/Data&gt; 
               
             
          
           
               
                   
                 &lt;/Item&gt; 
               
               
                   
                 &lt;Item&gt; 
               
             
          
           
               
                   
                 &lt;Source&gt;&lt;LocURI&gt;./DevInfo/DmV&lt;/LocURI&gt;&lt;/Source&gt; 
               
               
                   
                 &lt;Meta&gt; 
               
             
          
           
               
                   
                 &lt;Format xmlns=‘syncml:metinf’&gt;chr&lt;/Format&gt; 
               
               
                   
                 &lt;Type xmlns=‘syncml:metinf’&gt;text/plain&lt;/Type&gt; 
               
             
          
           
               
                   
                 &lt;/Meta&gt; 
               
               
                   
                 &lt;Data&gt;123 blah abc blah&lt;/Data&gt; 
               
             
          
           
               
                   
                 &lt;/Item&gt; 
               
               
                   
                 &lt;Item&gt; 
               
             
          
           
               
                   
                 &lt;Source&gt;&lt;LocURI&gt;./DevInfo/Lang&lt;/LocURI&gt;&lt;/Source&gt; 
               
               
                   
                 &lt;Meta&gt; 
               
             
          
           
               
                   
                 &lt;Format xmlns=‘syncml:metinf’&gt;chr&lt;/Format&gt; 
               
               
                   
                 &lt;Type xmlns=‘syncml:metinf’&gt;text/plain&lt;/Type&gt; 
               
             
          
           
               
                   
                 &lt;/Meta&gt; 
               
               
                   
                 &lt;Data&gt;blah blah&lt;/Data&gt; 
               
             
          
           
               
                   
                 &lt;/Item&gt; 
               
             
          
           
               
                   
                 &lt;/Replace&gt; 
               
               
                   
                 &lt;Final/&gt; 
               
             
          
           
               
                   
                 &lt;/SyncBody&gt; 
               
             
          
           
               
                 &lt;/SyncML&gt; 
               
               
                   
               
             
          
         
       
     
     The foregoing description has provided by way of exemplary and non-limiting examples a full and informative description of the best method and apparatus presently contemplated by the inventors for carrying out the invention. However, various modifications and adaptations may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings and the appended claims. As but some examples, the use of other similar or equivalent download scenarios, application program and firmware download technologies (e.g., firmware downloads may use other than OMA FOTA technology), messaging types and device management protocols and methods may be attempted by those skilled in the art. However, all such and similar modifications of the teachings of this invention will still fall within the scope of this invention. 
     Furthermore, some of the features of the present invention could be used to advantage without the corresponding use of other features. As such, the foregoing description should be considered as merely illustrative of the principles of the present invention, and not in limitation thereof.