Abstract:
Methods, devices, and computer program products for controlling wireless network connection access are described. The device includes a processor for executing instructions, and multiple network adapters for operatively connecting to multiple networks. The device includes a wireless network connection monitoring application for controlling access to the multiple networks via the processor, and the monitoring application is configured to monitor the multiple network adapters. The device also includes a monitor file that has permissions for services to communicate on the multiple networks, and the monitoring application allows or denies access to the multiple networks via the plurality of network adapters based on the permissions for the services in the monitor file.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of provisional patent application Ser. No. 60/830,812 filed Jul. 14, 2006, the entire contents of which are incorporated herein by reference. Further, this application is a continuation-in-part of non-provisional application Ser. No. 11/653,550 filed Jan. 16, 2007, the entire contents of which are incorporated herein by reference. 
     
     BACKGROUND 
       [0002]    Exemplary embodiments relate generally to controlling wireless network connection access and, more particularly, to methods, systems, and computer program products for controlling wireless network connection access in response to services attempting to access the wireless network connection. 
         [0003]    There exist wireless networks mat charge users on a per byte basis. As “pay by the byte” wireless solutions become more prevalent and device management needs continue to grow (meaning bandwidth requirements will also grow), the ability to discriminate services that are required to run over given connection will be a growing need as well. There is a need in the art for a technique for controlling which services access wireless connections in order to reduce charges incurred on, for example, a pay-per-byte connection. 
       SUMMARY 
       [0004]    Exemplary embodiments include a device for controlling wireless network connection access. The device includes a processor for executing instructions, and multiple network adapters for operatively connecting to multiple networks. The device includes a wireless network connection monitoring application for controlling access to the multiple networks via the processor, and the monitoring application is configured to monitor the multiple network adapters. The device also includes a monitor file that has permissions for services to communicate on the multiple networks, and the monitoring application allows or denies access to the multiple networks via the plurality of network adapters based on the permissions for the services in the monitor file. 
         [0005]    Additional exemplary embodiments include a method for controlling wireless network connection access. The method includes initiating a wireless network, connection monitoring application for controlling access to multiple networks, where the monitoring application is configured to monitor multiple network adapters for operatively connecting to the multiple networks. The method includes a monitor file that receives permissions for services to communicate on the plurality of networks, and the monitoring application allows or denies access to the multiple networks via the multiple network adapters based on the permissions for the services in the monitor file. 
         [0006]    Further exemplary embodiments include a computer program product, tangibly embodied on a computer readable medium, for controlling wireless network connection access, and the computer program product includes instructions for causing a processor to execute a method. The computer program product includes instructions for causing a computer to execute initiating a wireless network connection monitoring application for controlling access to a plurality of networks, where the monitoring application is configured to monitor multiple network adapters for operatively connecting to the multiple networks. Also, the computer program product includes instructions for causing a computer to execute receiving, by a monitor file, permissions for services to communicate on the plurality of networks, and allowing or denying access, by the monitoring application, to the multiple networks via the multiple network adapters based on the permissions for the services in the monitor file. 
         [0007]    Other systems, methods, and/or computer program products according to embodiments will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional systems, methods, and/or computer program products be included within this description, be within the scope of the exemplary embodiments, and be protected by the accompanying claims. 
     
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0008]    Referring now to the drawings wherein like elements are numbered alike in the several FIGURES: 
           [0009]      FIG. 1  illustrates a system for controlling wireless network connection access in exemplary embodiments; 
           [0010]      FIG. 2  illustrates an exemplary user interface for controlling wireless network connection access in exemplary embodiments; 
           [0011]      FIG. 3  illustrates an exemplary file generated based on the user input to the user interface of  FIG. 2 : and 
           [0012]      FIG. 4  is a flowchart of a process for controlling services for network connections in exemplary embodiments. 
       
    
    
       [0013]    The detailed description explains the exemplary embodiments, together with advantages and features, by way of example with reference to the drawings. 
       DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
       [0014]      FIG. 1  is a block diagram of a system for controlling wireless network connection access in exemplary embodiments. The system may be implemented, on a wireless device (e.g., general purpose computer)  100  which includes a processor  110  executing computer program code stored on a storage medium in order to perform the processes described herein. It is understood that other processor-based devices (e.g., personal digital assistants, wireless phones) may implement the exemplary processes described herein. Thus, exemplary embodiments of the invention are not limited to personal computers. 
         [0015]    As known in the art, the wireless device  100  establishes a wireless connection with various networks using known protocols (e.g., 802.11). There are situations, however, where a user does not desire to incur wireless network charges for certain services. For example, it would be desirable for an automatic update from MICROSOFT WINDOWS to be delivered over a less costly, wired network connection, rather than a wireless connection that incurs charges for units of use (e.g., pay-per-byte). Exemplary embodiments allow the user to designate which services have access to the wireless connection. 
         [0016]    The device  100  executes a wireless network connection monitoring application  102 . According to exemplary embodiments, the wireless network connection monitoring application  102  is initiated, upon booting of the device  100  and accesses a monitor file  104 . The monitor file  104  may include a designation of services executing on the device  100  and the network permissions for each service. The monitor file  104  may be generated based on user input as described in further detail herein. 
         [0017]    The device  100  also includes network adapters  120  for making network connections. The wireless network connection monitoring application  102  monitors the network adapters  120  and checks for connections and disconnections, according to exemplary embodiments. The wireless network connection monitoring application  102  enables services to execute or disables services from executing on connections established via the network adapters  120 , based on network permissions for each service in the monitor file  104 . 
         [0018]      FIG. 2  illustrates an exemplary user interface  200  for assigning network permissions to services executing on the device  100 . As shown in  FIG. 2 , the user is presented with a list of services and a list of available network connections of the user interface  200 . The user may enable access to network connections on a service-by-service basis by selecting authorized network connections for each service. In the example shown in  FIG. 2 , the user has authorized the MICROSOFT (MS) systems management server (SMS) Agent Host to communicate on a wired LAN connection but not on a wireless WAN network connection. This prevents the service from communicating on the wireless WAN network connection thereby preventing the occurrence of wireless network charges. 
         [0019]    Based on the user input in the user interface  200  of  FIG. 2 , the wireless network connection monitoring application  102  generates the monitor file  104 .  FIG. 3  depicts an exemplary embodiment of the monitor file  104  generated in XML format. It is understood that the monitor file  104  may be in a variety of formats, and embodiments of the invention are not limited to XML. The monitor file  104  identifies services and the network connections that each service is permitted to access. According to exemplary embodiments, one element of the monitor file  104  is the name of the network adapter that will trigger connectivity events. Another element of the monitor file  104  may be the name of the services that will be stopped and started based on the connectivity event. In exemplary embodiments, the monitor file  104  is accessed by the wireless network connection monitoring application  102  to control access to network connections in response to the information in the monitor file  104 . 
         [0020]    Referring to  FIG. 4 , operation of the wireless network connection monitoring application  102  is described in accordance with exemplary embodiments. The wireless network connection monitoring application  102  monitors the network adapters  120  associated with the network connections identified in the monitor file  104  at  400 , and determines whether network connections have been connected or disconnected at  410 . If the wireless network connection monitoring application  102  detects that a certain network adapter (e.g., network adapters  120 ) has been initiated, the wireless network connection monitoring application  102  determines which services should be enabled or disabled based on the monitor file  104  at  420 . For example, when the wireless network connection monitoring application  102  detects the SONY ERICSSON Wireless WAN Adapter (e.g., the network adapters  120 ) connecting to the wireless network (e.g., at  410 ), the wireless network connection monitoring application  102  sends a command to disable the MS SMS Agent Most service at  430 . Conversely, if the SONY ERICSSON Wireless WAN Adapter is disconnected from the wireless network, (e.g., at  410 ), the wireless network connection monitoring application  102  sends a command to enable the MS SMS Agent Host service at  430 . Accordingly, appropriate services are enabled or disabled in accordance with the particular network connections in exemplary embodiments. 
         [0021]    Exemplary embodiments provide the ability to prevent pre-defined services from being active while pre-defined network adapters are also active in pre-defined combinations. This prevents per-byte wireless network charges from being incurred unnecessarily. 
         [0022]    Further, the examples discussed herein are meant to be non-limiting and to assist in providing a better understanding of the details. 
         [0023]    As described heretofore, the exemplary embodiments can he provided in the form of computer-implemented processes and apparatuses for practicing those processes. The exemplary embodiments can also be provided in the form of computer program code containing instructions embodied in tangible media, such as floppy diskettes, CD ROMs, hard drives, or any other computer-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the exemplary embodiments. The exemplary embodiments can also be provided in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the exemplary embodiments. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits. 
         [0024]    While the invention has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiments disclosed for carrying out this invention, but that the invention will include various embodiments. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another. Furthermore, the use of the terms a, an, etc. do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced item.