Abstract:
A system is disclosed in which a wireless device is monitored and maintained over a network. One embodiment of the system comprises a wireless device including: a service to maintain data objects, provide messaging capability, and provide data access capability on behalf of a user of the wireless device; and a rules engine communicatively coupled to the service to execute a set of rules transmitted to the wireless device from a server, the set of rules to instruct the rules engine to gather information related to the wireless device and to take action on the wireless device based on the gathered information.

Description:
BACKGROUND 
     1. Field of the Invention 
     This invention relates generally to the field of network data services. More particularly, the invention relates to an apparatus and method for monitoring and maintaining a wireless device. 
     2. Description of the Related Art 
     A variety of wireless data processing devices have been introduced over the past several years. These include wireless personal digital assistants (“PDAs”) such as the Palm® VIIx handheld, cellular phones equipped with data processing capabilities (e.g., those which include wireless application protocol (“WAP”) support), and, more recently, wireless messaging devices such as the Blackberry™ wireless pager developed by Research In Motion (“RIM”).™ 
     Mobile platforms included on the wireless data processing devices run mission-critical applications. As such, it is important to gather information about applications running on the device, protect the data on the device, and protect the applications on the device. Furthermore, there may be requirements that certain prerequisite applications be present or absent on the mobile platform to enforce an organization&#39;s policies, to secure the mobile platform, or to permit auditing procedures. 
     Presently, some applications operate to scan a device and remove certain files according to criteria contained in the application. For example, a virus scanner operates in such a way. However, virus scanners only scan for known objects on the device, and not for the absence of certain objects. Furthermore, virus scanners only check for the existence of viruses, and not for generic things such as battery strength or device peripheral functionality. 
     Also, because the virus scanner application resides on the device on which it operates, it cannot check itself to ensure that it is running properly. Furthermore, virus scanners only accept rules from the vendor of the application, and do not have the functionality to allow organizations other than the vendor to generate and enforce rules to fit the organization&#39;s corporate policy. 
     Currently, existing products or technology in the market do not gather device information and enforce the existence or non-existence of applications on the device. Accordingly, what is needed is a system and method for monitoring and maintaining a wireless device. What is also needed is a network infrastructure to support remote monitoring and maintenance of a wireless device. 
     SUMMARY 
     A system is disclosed in which a data processing device is monitored and maintained over a network. One embodiment of the system comprises a wireless device including: a service to maintain data objects, provide messaging capability, and provide data access capability on behalf of a user of the wireless device; and a rules engine communicatively coupled to the service to execute a set of rules transmitted to the wireless device from a server, the set of rules to instruct the rules engine to gather information related to the wireless device and to take action on the wireless device based on the gathered information. 
     In another embodiment, a system is disclosed comprising a server communicatively coupled to a network, and an administrator coupled to the server configured to provide a set of rules to a wireless device, the set of rules to instruct the wireless device to gather information related to the wireless device and take action based on the gathered information. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which: 
         FIG. 1  illustrates an exemplary network architecture used to implement embodiments of the present invention; 
         FIG. 2  illustrates one embodiment of a network architecture used to implement an application checker; 
         FIG. 3  is a flow diagram depicting one embodiment of a method of the present invention; 
         FIG. 4  is a flow diagram depicting another embodiment of a method of the present invention; and 
         FIG. 5  is a flow diagram depicting a further embodiment of a method of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid obscuring the underlying principles of the present invention. 
     An Exemplary Network Architecture 
       FIG. 1  illustrates one embodiment of a network architecture for implementing the techniques described herein. The “customer site”  120  illustrated in  FIG. 1  may be any local-area or wide-area network over which a plurality of servers  103  and clients  110  communicate. For example, the customer site may include all servers and clients maintained by a single corporation. The servers  103  may be configured to provide a variety of different messaging and groupware services  102  to network users (e.g., e-mail, instant messaging, calendaring, . . . etc). In one embodiment, these services are provided by Microsoft Exchange.™ However, the underlying principles of the invention are not limited to any particular messaging/groupware platform. 
     In one embodiment of the invention, an interface  101  forwards data objects maintained by the service  102  (e.g., e-mail messages, instant messages, calendar data, . . . etc) to a plurality of wireless data processing devices (represented in  FIG. 1  by wireless device  130 ) via an external data network  170  and/or a wireless service provider network  171 . For example, if the service  102  includes an e-mail database, the interface  101  transmits any new e-mails which arrive in a user&#39;s mailbox on the service  102  to the user&#39;s wireless data processing device  130  (over the network(s)  170  and/or  171 ). 
     Alternatively, or in addition, the service  102  may provide the e-mail to the user&#39;s local computer (e.g., client  110 ) upon request (i.e., so that the user will receive the e-mail on his/her wireless device  130  when out of the office and on his/her personal computer  110  when in the office). Conversely, e-mail messages sent from the user&#39;s wireless data processing device  130  are transmitted to the service  102  via the interface  101 . 
     In one embodiment, the interface  101  is a software module adapted to work with the particular service  120 . It should be noted, however, that the interface  101  may be implemented in hardware or any combination of hardware and software while still complying with the underlying principles of the invention. 
     In one embodiment, the external data network  170  is comprised of a plurality of servers/clients (not shown) and other networking hardware (e.g., routers, hubs, . . . etc) for transmitting data between the interface  101  and the wireless devices  130 . In one embodiment, the interface  101  encapsulates data in one or more packets containing an address identifying the wireless devices  130  (e.g., such as a 24-bit Mobitex Access Number (“MAN #”)). The external data network  170  transmits the packets to a wireless service provider network  171  which, in turn, transmits the packets (or the data contained therein) over a wireless communication link to the wireless device  130 . In one embodiment, the wireless service provider network is a 2-way paging network. However, various other network types may be employed (e.g., CDMA 2000, PCS, . . . etc) while still complying with the underlying principles of the invention. 
     It should be noted that the network service provider network  171  and the external data network  170  (and associated interface  101 ) may be owned/operated by the same organization or, alternatively, the owner/operator of the external data network  170  may lease wireless services from the wireless service provider network. The underlying principles of the invention are not limited to any particular service arrangement. 
     In one embodiment of the invention, the service  102  (e.g., the e-mail database) is fully synchronized with the wireless data processing device  130 . Thus, any actions performed on the wireless device  130  are automatically updated on the service  102  and any transactions occurring at the service  102  are automatically reflected on the device  130 . Synchronization updates of this type may include but are not limited to device configuration modifications, calendar updates, e-mail message updates, instant messages, to-do list updates and/or any other type of personal information management transactions or corporate data management transactions (hereinafter “message transactions”). 
     As one example, when a user views an e-mail message using the device  130 , an indication that the user viewed the message is transmitted to the service  102  (via the interface  101 ). Accordingly, if the user subsequently connects to e-mail via a client  110 , the e-mail will appear as having already been viewed. Other actions such as message deletions, filing activities (e.g., moving a message to a particular folder), message responses, meeting confirmations/additions . . . etc, will automatically be reflected in the service  102 , thereby providing complete synchronization between the service  102 , the device  130  and/or the client  110  (if one is being used). 
     Current systems do not offer organizational control over monitoring their wireless devices for various criteria, and maintaining the wireless devices based on the monitoring. As such, these systems cannot gather device information and enforce organizational policies on the wireless devices. One reason for this is that prior systems do not monitor the entire wireless device unit remotely, and any monitoring is not done based on organizational policies. As such, in order for an organization to monitor and maintain its wireless devices, embodiments of the invention employ one or more of the following techniques. 
     An Exemplary Wireless Device Monitor 
       FIG. 2  is a block diagram illustrating one embodiment of a system  200  to monitor and maintain a wireless device. System  200  includes a wireless device  210 , a network  220 , and a server  230 . In one embodiment, system  200  may be implemented as system  100  of  FIG. 1 . Network  220  may be the same as data network  170  and wireless service provider network  171 , individually and/or in combination. Also, a firewall may be utilized between the network  220  and server  230 . System  200  may be used to implement monitoring and maintenance of the wireless device  210 . 
     Wireless device  210  further includes a mobile platform application  212  and a rules engine  214 . In one embodiment, the application  212  provides wireless messaging and data access for the wireless device  210  in connection with a main server, such as server  230 . Server  230  may be maintained by an organization that owns and operates the wireless device  210 . In one embodiment, application  212  operates as a service to maintain data objects on behalf of a user of the wireless device  210 . Application  212  may also provide real-time synchronization of the wireless device  210  with server  230 . In one embodiment, application  212  is a software module adapted to work with server  230 . 
     In one embodiment, application  212  receives a rule definition file sent to the wireless device  210  through a wireless or wired medium. This rule definition file may be created by an organization owning the wireless device, and sent to the wireless device  210  by way of server  230 , which may be operated by the organization. The rule definition file embodies a set of rules to be applied to the wireless device. In one embodiment, application  212  transfers the rule definition file to rules engine  214  for analysis and execution. 
     The rules engine  214  of the wireless device  210  stores and executes the rule definition file. In one embodiment, the rules engine  214  operates to verify authenticity of any rule definition files it receives. This verification may be accomplished by determining the origination of the rule definition file and cross-referencing the origination with a list of allowable entities. 
     Based on the rule definition file, the rules engine  214  monitors the wireless device  210  by gathering information relating to the wireless device  210 , and checking information associated with one or more applications on the wireless device  210 . Wireless device information that the rules engine  214  may gather includes, but is not limited to, applications installed on the device, applications not installed on the device, and functionally operative features within applications installed on the device. Furthermore, the information gathered may include device characteristics such as OS version, ROM version, application licensing restrictions and their expiry, code signature and certification validation of applications, application usage patterns, device hardware characteristics, device operating characteristics, peripherals on the device, and SMS functionality. 
     In one embodiment, the rules engine  214  may also take action based on the results from monitoring of the wireless device  210  by way of the rule definition file. Such actions may include, but are not limited to, warning the device user, locking the device, phoning a set of numbers, initiating software downloads and upgrades, alerting the corporate network monitors, shutting down applications, shutting down the device, and erasing critical data on the device. Furthermore, the rules engine may take action and enforce device system characteristics based on corporate policies promulgated by an organization owning the wireless device  210 . 
     In one embodiment, rules engine  214  is a software module adapted to work with application  212 . It should be noted, however, that the rules engine  214  may be implemented in hardware or any combination of hardware and software while still complying with the underlying principles of the invention. 
     In one embodiment, server  230  may be configured to provide a variety of different messaging and groupware services to network users (e.g., e-mail, instant messaging, calendaring, . . . etc) such as wireless device  210 . In one embodiment, these services are provided by Microsoft Exchange.™ In one embodiment, server  230  is the same as server  103  of  FIG. 1 . In another embodiment, server  230  may be a synchronization server such as GoodLink™ server of Good Technology, Inc. of Santa Clara, Calif. 
     Server  230  further includes an administrator  240  and an organization policy editor  245  as part of the administrator  240 . The administrator  240  is responsible for assembling and transmitting the rule definition file to the wireless device  210 . In one embodiment, the rule definition file is any set of rules to be applied to the wireless device  210 . The rule definition file may be an Extensible Markup Language (XML) file, native script, executable module, or a pointer (URL) to another resource of the rule definition file. In one embodiment, any changes or updates made to the rule file may be incrementally synchronized with the wireless device. 
     In one embodiment, the corporate policy editor  245  is responsible for transforming corporate policies for the wireless device  210  into the set of rules for the rule definition file. Some examples of corporate policies include, but are not limited to, allowing or not allowing certain applications to exist on the wireless device, maintaining particular settings within applications, ensuring certain versions of applications are up-to-date, and preventing certain peripherals from being associated with the wireless device. One skilled in the art will appreciate that a variety of corporate policies may be implemented to monitor and maintain the wireless device  210 . 
     In one embodiment, administrator  240  is a software module adapted to work with server  230 . It should be noted, however, that the administrator  240  may be implemented in hardware or any combination of hardware and software while still complying with the underlying principles of the invention. 
       FIG. 3  is a flow diagram of one embodiment of a method  300  to monitor and maintain a wireless device. Method  300  may be implemented in a system such as that described with respect to  FIG. 2 . At processing block  310 , a rule definition file is received at the wireless device  210 . In one embodiment, the mobile platform application  212  receives the file and routes it to the rules engine  214 . At processing block  320 , the rules engine  214  verifies the authenticity of the rule definition file. 
     Then, at processing block  330 , the rules engine executes the rule definition file. Upon execution of the file, the rules engine  214  may gather information related to the wireless device. The information gathered may include, but is not limited to, applications installed on the device, applications not installed on the device, functionally operative features within applications installed on the device, and battery status. Furthermore, the information gathered may include device characteristics such as OS version, ROM version, application licensing restrictions and their expiry, code signature and certification validation of applications, application usage patterns, device hardware characteristics, device operating characteristics, peripherals on the device, and SMS functionality. 
     Finally, at processing block  340  the rules engine  214  performs an action based on the execution of the rule definition file. Such an action may include, but is not limited to, warning the device user, locking the device, phoning a set of numbers, initiating software downloads and upgrades, alerting the corporate network monitors, shutting down applications, shutting down the device, and erasing critical data on the device. 
       FIG. 4  is a flow diagram of one embodiment of a method  400  to receive a rule definition file at the rules engine  214 . At processing block  410 , the rules engine  214  determines whether a periodic monitoring session of the wireless device  210  is required. The monitoring session may be the same process as described with respect to  FIG. 3 . In one embodiment, such a periodic monitoring session may occur at various time intervals including, upon start-up of the wireless device, once a day, once a week, and upon installation of any components or applications on the wireless device. One skilled in the art will appreciate that a variety of monitoring time intervals may be implemented by the rules engine  214 . 
     If a periodic monitoring session is required, then at processing block  420  the rules engine  214  informs the mobile platform application  212  of the wireless device  210  to check for an update with server  230 . At processing block  430 , the application  212  connects to the server  230  to determine if an updated rule definition file exists. In some embodiments, the application  212  or server  230  may compare the rule definition file already on the wireless device  210  with the most recent rule definition file on the server  230 . 
     If a more recent rule definition file exists on the server  230 , then at processing block  440  the updated file is downloaded to the wireless device  210 . At processing block  450 , the monitoring session is initiated. In one embodiment, the monitoring session is the same process as described with respect to  FIG. 3 . 
       FIG. 5  is a flow diagram of another embodiment of a method  500  to receive a rule definition file at a rules engine. In some embodiments, in lieu of the wireless device  210  determining whether an updated rule definition file exists, the server  230  may automatically synchronize any updated rule definition file with the wireless device&#39;s  210  file. The following description illustrates this process. 
     At processing block  510 , the server  230  updates the rule definition file stored on the server  230 . Then, at processing block  520 , the server incrementally synchronizes changes to the file with the wireless device  210 . Such synchronization may occur over a wired or wireless medium. Finally, at processing block  530 , the rules engine  214  initiates a monitoring session according to the new rule definition file received from the server  230 . In some embodiments, the rules engine  214  may initiate the monitoring session when it receives an updated file, and/or it may initiate monitoring session on a periodic basis, according to some of the example time intervals mentioned previously. 
     Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions. The instructions can be used to cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components. 
     Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, Flash memory, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection). 
     Throughout the foregoing description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. For example, while illustrated as an interface  101  to a service  102  executed on a server  103  (see  FIG. 1 ), it will be appreciated that the underlying principles of the invention may be implemented on a single client in which the client transmits data over a network. Moreover, although described in the context of a wireless data processing device, the underlying principles of the invention may be implemented to compress data in virtually any networking environment, both wired and wireless. Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.