Abstract:
A service system permits remote personnel to service a local embedded device. In an exemplary application, the device being diagnosed communicates with a local computer system that interfaces to a remote computer system via, for example, the Internet. A service program may be downloaded to the local computer system that enables diagnostic interaction with the device by the remote computer system. In some instances, the device is automatically queried for model number and/or other identifying information such that the service program is matched to the particular device being diagnosed. In other embodiments, a local user might, for example, visit a designated Web page, enter identifying information, and the appropriate diagnostic program, such as a JAVA applet, downloads to the local system. The downloaded applet may be used by the remote computer system to, for example, query the device, control its operation, re-program it, receive real-time operational data, etc.

Description:
BACKGROUND OF THE INVENTION 
     The present invention generally relates to serving embedded devices and particularly relates to remotely servicing an embedded device or system. 
     Embedded systems play a significant role in every day life although the users of such systems may not appreciate that role or even realize the inner workings of those systems. For example, few people give any regard to the embedded systems that drive the operations of their microwave ovens and other household appliances, their televisions and other entertainment devices, and their personal communication devices. While the capabilities and uses of embedded systems vary widely, at least some characteristics are generally common. For example, few embedded systems provide much of an operator interface at least as regards an interface that might be suitable for examining their inner workings on a detailed basis for diagnostic purposes. Indeed, one of the driving factors responsible for the wide proliferation of embedded systems is their ability to shield the complexities of their inner workings from those that use the devices. Thus, one hallmark of embedded systems is that they are oftentimes inscrutable to the casual observer, or even to an experienced technician without the proper tools or diagnostic software. 
     One consequence of this inscrutability is that detailed diagnosis of an embedded system&#39;s operation oftentimes requires direct interaction with the embedded device by a technician or other skilled operator using specialized software offering access to the inner workings of the device. Generally, such access requires the technician to visit the location of the embedded device or for the embedded device to be sent to a service center for diagnosis and repair by qualified technicians. While some embedded devices provide remote access, such access is oftentimes limited to rudimentary interaction with the device and generally does not support the participation of local personnel in the diagnostic or troubleshooting effort. 
     BRIEF SUMMARY OF THE INVENTION 
     The present invention provides a method and apparatus supporting remote servicing of embedded systems, such as portable communication devices. In an exemplary embodiment, a service program running on a local system enables diagnostic interaction between an embedded device communicatively coupled to that local system and a remote system having access to the local system, such as network access via the Internet. The service program executing on the local system allows detailed diagnostic interaction between a supporting service program executing at the remote system and the embedded device. Further, in at least some exemplary embodiments, the service system supports two-way interaction between an operator at the local system and an operator at the remote system by providing interactive display screens at each location that allow the entry and display of operator input and service feedback at both locations. 
     In an exemplary embodiment, a local operator communicatively couples the embedded device to be serviced to the local system and then accesses a Web page associated with the remote system such as by entering a designated URL into a Web browser running on the local system. The Web page might present the user with a data entry form into which the local operator can enter identification or model number information for the embedded device and additionally enter a problem description. This locally entered data is then transferred to the remote system where it may be acted on automatically by the remote system or displayed to an operator of the remote system for action by that operator, or some combination thereof. Regardless, the remote system might then transfer the appropriate service program or routine to the local system, such as by downloading a JAVA applet to the local system, whereupon execution of the downloaded routine by the local system provides the remote system with interactive access to the embedded device. 
     Of course, many exemplary variations may be practiced with regard to establishing such interaction. In at least one exemplary embodiment of the present invention, the local system accesses either a downloaded or a locally stored service program that initially queries the embedded device for identification information and automatically transfers such information to the remote system. In turn, the service program executing at the remote system may transfer additional, specific diagnostic programs or routines to the local system responsive to receiving such information. Note that with such interaction between the local and remote systems, one or both such systems might employ authentication systems, such as keyed hardware dongles and/or digital certificates, to prevent unauthorized use of diagnostic services and software. 
     While the present invention is applicable to a wide variety of embedded device types, an exemplary application involves a wireless network service provider responsible for insuring the correct operation of large numbers of mobile stations used by its subscribers. In this context, the service provider&#39;s service center would include a local computer system having network access to, for example, a remote computer system maintained by a mobile station vendor. The mobile station vendor would maintain specialized service and/or control information, e.g., diagnostics software, on the remote computer system such that a technician at the service center could log into the remote system. In this manner, the specialized software and skilled technicians at the remote site could gain interactive access to the mobile stations at the service provider&#39;s site without having to physically visit the provider&#39;s site. The use of remote servicing and diagnostics might even be extended to end users, i.e., consumers, of wireless communication devices or other embedded devices, where such users can be provided remote diagnostic services based on payment of a corresponding service fee, for example. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a diagram of an exemplary remote service system. 
         FIG. 2  is a diagram of exemplary embodiments for the local and remote computer systems in the service system of  FIG. 1 . 
         FIG. 3  is a diagram of exemplary flow logic supporting remote servicing. 
         FIG. 4  is a diagram of alternate exemplary flow logic supporting remote diagnostics. 
         FIG. 5  is a diagram of an alternate exemplary embodiment of a remote diagnostic system as might be used in wireless network troubleshooting. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1  illustrates an exemplary system generally referred to by the numeral  10  that supports remote servicing and general diagnostics for embedded devices. A remote computer system  12  interacts with an embedded system or device  14  through a local computer system  16 . Generally remote system  12  communicates with local system  16  through a computer network or a combination of networks, such as the Internet  18 . In supporting service interaction with the embedded device  14  from the remote system  12 , local system  16  is communicatively coupled with embedded device  14  through a communication link  20 . Communication link  20  may comprise a direct cable connection, a local network connection, or essentially any other type of physical or wireless communication link, such as Bluetooth, 802.11b, or optical wireless link. 
     In an exemplary embodiment, local system  16  executes a first service program which enables local system  16  to act as a gateway or interface to embedded device  14  from the perspective of remote system  12 . That is, the service program executing on local system  16  allows a supporting service program executing on remote system  12  to interact with embedded device  14  essentially as it would if embedded device  14  were physically connected to remote system  12 . In this manner, remote system  12  may retrieve diagnostic and other service-related information from embedded system  14 , such as operating logs or even real-time operating information, and may update the operating firmware or system program of embedded device  14 . 
     Further, an operator of remote system  12  may flexibly interact with embedded device  14  and with an operator of local system  16 . As an example, remote system operator may issue commands to embedded device  14  and observe its responses to those commands, may adjust or alter the operating or configuration parameters in embedded device  14 , and may provide feedback to the local system operator based on the results of his or her diagnostic work. Indeed, in at least one exemplary embodiment of system  10 , remote system  12  and local system  16  provide their respective operators with interactive screens allowing the operator of local system  16  to enter problem information useful in directing the service efforts of the operator of remote system  12 , who may be a skilled technician or engineer. 
     Likewise, the service program executing on remote system  12  preferably provides an interactive screen into which its operator may enter diagnostic feedback for display by the local computer system  16  and, indeed, may provide for interactive “chat” type services between the local and remote operators. In this vein, the present invention encompasses the array of communication technologies that might be implemented between remote system  12  and local system  16 , including video conferencing technology such as those based on the H.323 video conferencing standards, live “chat” applications, and/or other network based communication schemes. 
       FIG. 2  is a diagram of exemplary details for selected aspects of the system  10 . Remote system  12  includes one or more computer systems  30 , with an exemplary one of the computer systems  30  comprising a processing system  32 , a dongle or authentication unit  33 , a display unit  34 , and one or more input devices  36 . As noted, computer system  30  may host a supporting service program which advantageously displays diagnostic related information in an on-screen display  38 , which display may be divided between an input display area  40  and an output display area  42 . Thus, display  38  may provide the operator of remote system  12  with an input screen into which that operator may enter information for transfer to the local system  16  where it may be displayed to the local operator. Similarly, the same display  38  may be configured to display information received from embedded device  14  and/or information entered by the local operator of local system  16 . 
     Those skilled in the art will understand that remote system  12  may comprise multiple computer systems  30 , and may include a mix of personal computers and servers and in any case includes one or more entities providing access directly or indirectly to the Internet  18 . As such, remote system  12  preferably includes or is associated with Web server features enabling it to host one or more Web pages used in support of remote servicing operations. Also, note that the use of authentication device  33  is optional, and that, even if authentication is used, such authentication may comprise software-based digital certificates or other software-based authentication. The use of authentication device  33  merely represents one, relatively secure and tamper-proof mechanism for identifying the remote system  12  as a legitimate diagnostics machine. Such identification may be verified by either or both the device  14  and the local system  16 . 
     Local system  16  generally includes one or more computer systems  50 , including a processing system  52 , a dongle or other authentication unit  53 , display unit  54 , and one or more input devices  56 . Display unit  54  preferably displays information associated with remote diagnostic operations, and includes input display area  60  and an output display area  62 . Input display area  60  supports data entry by the local operator for transfer to the remote system  12 . Similarly, output display area  62  displays information returned to the local system  16  from the remote system  12 , and may be used to display diagnostic and control information received from the embedded device  14 . 
     It should be understood that the screen arrangements described for local system  16  and remote system  12  simply represent one of an almost limitless number of possible arrangements, and the information needed for local or remote displays depends on the degree of automation employed in the diagnostic operations. Also, note that the use of authentication device  53  is, as with authentication device  33 , an optional measure to ensure security and provide authorization for diagnostic operations, and may not be used at all, or security software may be used in place of such security hardware. 
       FIG. 3  illustrates exemplary diagnostic operations that involve at least some degree of interaction between local and remote operators. Processing begins with the local operator accessing a diagnostic Web site that is associated with the remote system  12  (Step  100 ). Generally, the local system  16  hosts a Web browser or similar software which displays the associated Web page to the operator and preferably permits the operator to enter identification and/or authorization information and possibly a problem description into a Web page form (Step  102 ). The remote system  12  receives the data input by the local operator (Step  104 ). The remote system  12  may automatically analyze the received data and select an appropriate diagnostic program, i.e., one matching the identified model number of the embedded device  14  for which diagnostics is sought, or may simply display the received data in an appropriate format to the operator of the remote system  12 . In this latter case, the remote operator may select the appropriate diagnostic program and may take one or more actions based on the problem information reported by the local operator. 
     In either case, the selected diagnostic program is transferred to the local system  16  (Step  106 ) for local execution. The diagnostic program may be transferred as a downloadable program, such as a JAVA applet. Once the diagnostic program begins execution on the local system  16 , the remote system  12  gains interactive diagnostic access to the embedded device  14 . Thus, the remote system  12 , either in automatic fashion or under control by the remote operator, begins diagnostic operations (Step  108 ). Such operations generally include interaction with the device  14 , which interaction might involve querying the device  14 , retrieving data from it, and downloading updated program code or desired operating commands to the device  14  (Step  110 ). Further, diagnostic operations may involve interaction between the remote and local operators (Step  112 ), as explained earlier. That is, the remote and local operators may exchange information in support of the diagnostic operations. If diagnostics are complete (Step  114 ), the remote diagnostic interaction ends, which may involve termination of the downloaded diagnostic program at the local system  16 . If diagnostics are not complete, operations generally loop back (Step  116 ) with continued interaction between the remote system  12  and the embedded device  14 . 
     It may be desirable to design the downloaded diagnostic program to be transient in nature such that an executable image of the program is not persistently stored at local system  16 . The advantage of such transient program existence includes protection of potentially proprietary device command sets and interaction routines. However, it should be noted that in some instances, local system  16  might store one or more diagnostic programs for support of remote diagnostics by remote system  12  without need for the transfer of diagnostic routines from system  12  to system  16 . 
       FIG. 4  illustrates alternate exemplary flow logic associated with local storage of one or more diagnostic routines at local system  16 . Here, operations begin with activation of the diagnostics program stored on local system  16  (Step  120 ). The diagnostics program queries the embedded device  14  via communication link  20 , and automatically contacts remote system  12  (Step  122 ). Obviously, such operation might be modified to query the local operator as to whether the remote system  12  should be contacted. As part of this initial contact, the local system  16  may transfer device identification information to the remote system  12 , such that remote system  12  may transfer additional diagnostic routines as needed based on the specific device type for which diagnostic operations are to be supported (Step  124 ). Once the necessary additional diagnostic routines, if any, are in place, the remote system  12  may begin diagnostic operations. Such operations may execute automatically, under control of the remote operator, or some combination thereof (Step  126 ). 
     As with the many variations that may be practiced with regard to the transfer of diagnostic routines or programs between local system  16  and remote system  12 , the type of diagnostic interaction that remote system  12  may engage in also varies widely. As an example,  FIG. 5  illustrates an exemplary diagnostic operation where the embedded device  14  comprises a wireless communication device such as a mobile station, e.g., cellular telephone, wireless PDA, or other such device. In an exemplary embodiment, local system  16  comprises a laptop computer or other portable computing system, which has a wireless Internet connection enabling it to communicate with remote system  12  via the Internet  18 . 
     With this configuration, a local operator may travel to various locations within a supporting wireless communication network  22  while feeding back diagnostic information regarding operation of the embedded device  14  within the wireless communication network. That is, remote system  12  may gain access to, for example, streaming real-time data associated with control and data signaling between the embedded device  14  and its supporting network  22 , such as between various base stations  80  in one or more cell sites  82 . In this manner, a wireless system operator may provide a mobile station vendor with detailed network data for various strategic locations in the network, such as locations where network subscribers have reported an unusual incidence of communication difficulty or abnormal performance. 
     Even where the local system  16  is not mobile, system  10  may be used by a mobile station vendor to gain access to real-time and/or historical operating data of a mobile station&#39;s operation within a supporting wireless communication network  22 . As an example, where the embedded device  14  supports wireless communication with a network  22 , remote system  12  may observe and/or control signaling and data passing between the device  14  and the network  22 . Indeed, the remote system  12  may change or alter the device&#39;s configuration on the fly to affect such interaction, or to command device  14  to carry certain actions designed to facilitate the troubleshooting effort, such as performing selected dialing operations or generating selected signaling information. One significant advantage of such interaction is that remote diagnostics depend on the link  20  between the device  14  and local system  16  rather than on the wireless communication interface of device  14  used to support communications with the supporting network  22 . 
     In general, the present invention supports interactive diagnostics of an embedded device  14  via a remote system  12 . As such, the present invention is not limited to the above exemplary details, but rather is limited only by scope of the following claims and the reasonable equivalents thereof.