Abstract:
A method and system are provided for monitoring service quality of at least one network connection point of a remote network connection service. The method includes establishing a network connection between a client device and the remote network connection service via the network connection point. The network connection point may be one of a plurality of remotely located network connection points. The method includes monitoring access performance of the network connection point to generate access performance data, and processing the access performance data to monitor the service quality of the network connection point.

Description:
RELATED APPLICATIONS  
       [0001]     This application is a Continuation of U.S. application Ser. No. 11/126,008 filed May 9, 2005 which is a Continuation of U.S. application Ser. No. 10/318,968 filed Dec. 13, 2002, which is a Continuation of U.S. application Ser. No. 09/732,800 filed on Dec. 7, 2000, issued as U.S. Pat. No. 6,510,463, which claims the benefit of U.S. Provisional Application No. 60/207,670, filed May 26, 2000. These applications are incorporated herein by reference. 
     
    
     FIELD OF THE INVENTION  
       [0002]     The present invention relates to the field of remote network connections and more particularly to monitoring the quality of network connection points.  
       BACKGROUND OF THE INVENTION  
       [0003]     With the technological developments of the last decade and growing popularity of online commerce, e-mail, online chatting and the Internet in general, the demand to have constant access to these innovative technological ways of communication is rapidly increasing. Some users cannot imagine their lives without the Internet and email; some cannot imagine their lives without being able to buy groceries online. Constant desire to be connected to the informational highway increases demand for reliable, fast, convenient network connection.  
         [0004]     Anyone using current technology has dealt with networks at some point. Being connected to a local network where users share files and data on one server is a common scheme in workplaces. However, the advantages of networks are so great that the many of people desire the ability to be connected to networks from multiple physical locations. Remote network connections provide users with opportunities ‘to be connected’ from many locations throughout the world with the right set of tools, e.g., computer, modem, phone line, etc. However, remote networking uses external wide area network communications links to other physical locations across town or country, and it is not always a simple task to design such a remote network access system with the acceptable performance. Busy phone line signals, unconnected modems, password problems, interrupted network connection sessions reduce the level of performance of the remote network connection and cause frustration in users. In short, the quality of network connections may vary due to a number of factors.  
         [0005]     Thus, it would be desirable to provide a system that would reduce the above stated problems and provide high quality remote network connections.  
       SUMMARY OF THE INVENTION  
       [0006]     The present invention discloses a method and system for monitoring service quality of at least one network connection point of a roaming service access system. The method includes establishing a network connection between a client device and the roaming service access system via the network connection point. The network connection point may be one of a plurality of remotely located network connection points via any one of which access to the service access system is obtainable. The method includes monitoring access performance of the network connection point to generate access performance data, and processing the access performance data thereby to monitor the service quality of the network connection point.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0007]     The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:  
         [0008]      FIG. 1  is a diagram of a system architecture according to one embodiment of the present invention;  
         [0009]      FIG. 2  is an entity relationship diagram between a client machine and a plurality of point-of-presence gateways (POPs) according to one embodiment of the present invention;  
         [0010]      FIGS. 3A  and B show a flow diagram illustrating server side processes and client side processes utilized in updating a POP priority list according to one embodiment of the present invention;  
         [0011]      FIG. 4  is a data flow diagram according to one embodiment of the present invention;  
         [0012]      FIG. 5 a  diagram of a traditional client-server system upon which one embodiment of the present invention may be implemented; and  
         [0013]      FIG. 6  is a diagram illustrating a process of connection to the Internet utilizing an Internet Service Provider (ISP) according to one embodiment of the present invention. The connection could be dial-up, IDSN, DSL, wireless, etc. 
     
    
     DETAILED DESCRIPTION  
       [0014]     Although the present invention is described below by way of various embodiments that include specific structures and methods, embodiments that include alternative structures and methods may be employed without departing from the principles of the invention described herein.  
         [0015]     In general, embodiments described below feature a network-based application that collects remote network connection performance data and modifies a priority list of network connection points based on the collected data. A preferred embodiment of the present invention features a network-based application for monitoring quality of remote network connections.  
         [0000]     Network-Related Technology  
         [0016]     Before describing embodiments of the present invention in detail, it may be helpful to discuss some of the concepts on which the present invention is based. A component of one embodiment of the present invention is a computer server. Servers are computer programs that provide some service to other programs, called clients. A client  505  and server  510  of  FIG. 5  communicate by means of message passing often over a network  500 , and use some protocol, (i.e., a set of formal rules describing how to transmit data), to encode the client&#39;s requests and/or responses and the server&#39;s responses and/or requests. The server may run continually waiting for client&#39;s requests and/or responses to arrive or some higher level continually running server that controls a number of specific servers may invoke it. Client-server communication is analogous to a customer (client) sending an order (request) on an order form to a supplier (server) dispatching the goods and an invoice (response). The order form and invoice are part of the protocol used to communicate in this case.  
         [0017]     Another component of one embodiment the present invention is an Internet Service Provider (ISP). An ISP is a service that provides access to the Internet. For a monthly fee, a service provider gives a customer a software package, username, password and Internet access phone number. Equipped with a modem (e.g., a dial-up, DSL, ISDN or wireless), a customer can then log onto the Internet and browse the World Wide Web (WWW) and USENET, send and receive e-mail, and access a particular network. In addition to serving individuals, ISPs also serve large companies, providing a direct connection from the company&#39;s networks to the Internet. ISPs themselves are connected to one another through Network Access Points (NAPs). NAP is a public network exchange facility where ISPs can connect with one another in peering arrangements. The NAPs are a key component of the Internet backbone because the connections within them determine how traffic is routed. They are also the points of most Internet congestion. An exemplary diagram of customer to ISP relation is shown in  FIG. 6 .  
         [0018]     ISPs generally provide a plurality of Point of Presence gateways (POP) in order for a customer to gain an Internet access by making a local call. A POP (point-of-presence) is an access point to the Internet that is associated with a phone number. A connection established via such a POP causes a unique IP address to be assigned to a machine that accesses the Internet utilizing the established connection. The number of POPs that an ISP has and the number of subscribers are usually used as a measure of its size or growth rate.  
         [0019]     Yet another component one embodiment of the present invention is a servlet. Servlets are Java applications, which run on a Web server or application server and provide server-side processing, typically to access a database. It is a Java-based alternative to Common Gateway Interface (CGI) scripts, interface programs, usually written in C or PERL, which enables an Internet server to run external programs to perform a specific function. The most important difference between servlets and CGI scripts is that a Java servlet is persistent. This means that once it is started, it stays in memory and can fulfill multiple requests. In contrast, a CGI script disappears once it has fulfilled a request.  
         [0000]     Architecture  
         [0020]     With these concepts in mind, an embodiment of a system architecture of the present invention can be explored. A remote network connection can be established from a client machine  101  of  FIG. 1  that runs a dialer  102  to establish a network connection via a POP  103  and network  104  and to collect network connection performance data. The Dialer  102  includes (1) a Service Quality Management (SQM) agent  90  for collecting network connection performance data and for maintaining files storing the collected information, (2) phonebook  92 , which includes a copy of a POP priority list  112  that may be stored at a server machine  105  and (3) a Graphical User Interface  94  that allows a user to identify his/her current location and select an access point in order for the Dialer  102  to apply local dialing rules, enter user name and password, and connect to the Internet and corporate Virtual Private Network (VPN).  
         [0021]     In one embodiment of the present invention the server machine  105  includes a Web Server  118  and a Database Server  119 . The Web Server  118  includes such components of the present invention as Load Servlet  107  and Report Servlet  108  database applications. The Database Server  119  includes an SQM Process Application  120  consisting of a Main SQM Thread  109 , Process Thread  110  and Purge Thread  111 . These components are responsible for storing and normalizing data for service quality analysis. It will be appreciated that these components may run on a single server.  
         [0022]     In an embodiment of the present invention, database tables for storing collected and analyzed data, (e.g., Raw_SQM Table  115 , SQM Table  114 , POP priority list  112 ) are also stored at the server machine  105 . However, it will be appreciated that databases may be stored at other machines and database data may be uploaded to the server machine  105  when necessary.  
         [0000]     Methodology  
         [0023]     With these concepts in mind, an exemplary embodiment of the present invention can be further explored. In one embodiment of the present invention a user invokes a Dialer  102  at the client machine  101  of  FIG. 2 . The Dialer  102  attempts to establish a connection with one of the POPs in a priority order established in the POP priority list  203 . For example, if POP1 is not available then the Dialer  102  selects the next POP (POP2) from the list and attempts to establish a network connection with POP2 and so on.  
         [0024]     The next embodiment of the present invention is described with the reference to a simplified flow diagram shown in  FIGS. 3A and 3B . At operation  302 , the SQM agent  90  collects network connection performance data of a number of POPs with which the Dialer  102  attempts to establish a connection and stores the data in the files on the client machine  101 . In an embodiment of the present invention, the network connection performance data includes a number of parameters related to a user, software and hardware configurations of a client machine  101 , a user location, a network access location (e.g., a location dialed by modem), the timing of various operations in a connection process, POP related information, client and server IP addresses, baud rates, and error codes reflecting connection errors.  
         [0025]     An exemplary listing of parameters that may be collected as part of the network connection performance data is provided below in Table 1:  
               TABLE 1                           user identity       user login string       authenticating customer identifier       connection type       dial start time       dial end time       time taken to connect       VPN start time       VPN stop time       VPN time taken       time taken for modem negotiations       baud rate       operating system version of a dialing platform       RAS version       RAS device type       RAS device name       software compression       PPP LCP extensions       tool used to connect       dialer type       dialer version       dialer profile identifier       source country code, area code, location string the user is a dialing from       destination country code, area code       destination phone dial string       POP identifier       pop type       pop City location       pop state identifier       pop country code       pop phone       script used when dialing       remote server IP address       client IP address       download start (collected if test file downloaded)       download stop       download speed       error code of the user received on connection                  
 
         [0026]     The error codes returned to the user upon a connection attempt may broadly be divided into three categories namely (1) successful dial in connection, (2) user errors and (3) network problems. The user errors typically occur due to a user name and password problems, missing or disconnected modems, incorrect dialing codes, or incorrect or hand-edited phone numbers. Examples of the user errors include: 
        1. Access denied due to invalid user name or password;     2. The user cancelled operation;     3. Device/configurations error (e.g., port not ready, port already opened, modem not connected, no dial tone detected); and     4. Person answered instead of modem (e.g., incorrect phone number dialed).        
 
         [0031]     Examples of network errors include: 
        1. Line busy;     2. No answer;     3. PPP time out;     4. Connection dropped;     5. Remote access server not responding; and     6. Port disconnected by remote computer.        
 
         [0038]     When a successful network connection with one of the POPs is established, the SQM agent  90  transmits the collected data to the server machine  105 . In one embodiment of the present invention, the Dialer  102  selects one of the available servers for data transmission based on a data load, thus performing a load balancing function.  
         [0039]     In one embodiment of the present invention, the SQM agent  90  collects network connection performance data relating to every POP via which it tries to establish a network connection. Upon establishment of a successful network connection with one of the POPs, the SQM agent  90  composites a message comprising network connection performance data along with software and hardware configuration data and the POP identification numbers to which the network connection performance data relates and transmits the message to the server  105 .  
         [0040]     The Web Server  118 , upon receiving the collected data at the server machine  105 , at operation  304  invokes the Load Servlet  107  that stores received data in the RAW SQM table  116 . After the network connection performance data is successfully stored in the RAW SQM table, at operation  307  the Load Servlet  107  sends a message to the Dialer  102  at the client machine  101  with the code number symbolizing successful storage of data on the server machine  105 . At operation  308 , the Dialer  102  deletes data in the files stored at the client machine  101  upon receiving the message with the code number. At operation  309 , the Database Server  119  invokes the SQM Process Application  120 , which invokes the Main SQM Thread  109 . The Main SQM Thread  109  searches RAW SQM table  116  for records, which have not been processed, and at operation  310  appoints the Process Thread  110  to normalize the data from the RAW SQM table. In one embodiment of the present invention the Process Thread  110 , at operation  311 , performs data normalization by parsing the data and adding a customer identification number and POP identification number to the data. The Process Thread  110  then stores normalized data in the SQM table  114  at operation  312 . If the data has errors or customer identification number cannot be identified, the data is stored in an SQM Exception table  113  at operation  313 .  
         [0041]     At operation  311 , the process thread may further optionally aggregate and process the normalized data, so as to facilitate convenient analysis thereof. For example, totals may be generated for particular types of errors for each of multiple POPs, averages may be generated for performance measures (e.g., baud rate), and access times may be calculated. Further, totals and averages may also be calculated based on other criteria, such as time, date and geographical criteria. The data in the SQM Exception table  113  is reviewed manually and re-processed or discarded. The Process Thread  110  marks the normalized records in the RAW SQM table  116 . The Purge Thread  111  runs periodically and searches the RAW SQM table  116  for the marked records and deletes them at operation  314 .  
         [0042]     At operation  315  the data stored in the SQM table  114 , reflecting POP performance information collected by multiple clients, is ready for human access. In one embodiment a data summarization process is performed on the data in the SQM table  114  to support data analysis and reporting. Multiple tables that contain summarized data are generated as a result of the summarization process that may run on a separate server. The variety of queries and reports can be generated at this point. In one embodiment of the present invention, the types of the reports that are available are: list of single POPs by phone number with the performance information, list of POP groups with the performance information on a group of POPs, end user assistance report including a variety of data on the user, e.g. quantity of dial-ins a day, number of password problems, etc., customer Service Level Agreement (SLA) performance information by month. It will be appreciated that these reports may be generated manually by human operators and automatically by components running on the server machine  105 .  
         [0043]     At operation  316  a team of experts monitors the collected network performance data and analyzes it periodically. The team&#39;s purpose is to identify the network connection problems experienced by the user and proactively respond before the remote network connection service is noticeably affected. Any suspected problems may be tested using a dialer application. A group of phone numbers, representing POPs with problematic performance, may be loaded into the dialer application for test purposes and the dialer application may dial each one in order to check POPs performance. Based on the test results and on the collected network performance data any POPs that are not performing to the quality standards may be moved to the end of the POP Priority List  112 . The POP Priority List  112  may be sorted by using a number of different criteria such as quality rating, speed, price, provider, etc. These sorting criteria may be applied at an individual city level as well as on the entire phonebook level. In one embodiment manually selected sort order within a city may also be applied. The above process facilitates the identification of the best performing POPs for any given area and the assignment to such best performing POPs of a high priority number. At the same time, low performing POPs may be identified, and assigned a lower priority number. In an embodiment of the present invention if the quality of service of a POP is so poor that it is not worth maintaining in the POP Priority List  112 , the expert team deletes the POP from the list temporarily until the POP&#39;s performance is improved. It will be appreciated that the analysis and POP Priority List  112  can be updated automatically without human help by developing an application that updates the POP Priority List  112  based on an advanced-specified criteria. For example, the criteria may be an acceptable average number of failed attempts to establish a network connection a day, or an acceptable number of interrupted network connection sessions, etc.  
         [0044]     At operation  317  the phonebook  92  on the client machine  101  is automatically updated after the user establishes a successful Internet connection. The updating of the phonebook  92  may be performed by modifying an existing phonebook  92  stored on the client machine  101 , or may be performed by uploading a complete and new phonebook  92 , as generated on the server machine  105 , to the client machine  101 . For example, upon the generation of a complete and new phonebook  92 , the new phonebook  92  may be “pushed out” from the server machine  105  to multiple client machines  101 . In one embodiment of the present invention, the user may choose not to receive an automatic update of the phonebook  92 . In this embodiment the user may access a Web site maintained at the server machine  105  where a copy of the latest phonebook may be viewed and downloaded. An exemplary data flow diagram of the above-described process is illustrated in  FIG. 4 .  
         [0045]     It will be appreciated that the operations  315 - 317  may be automated, with certain criteria extracted from the collected connection performance data being used automatically to prioritize POPs. Such criteria may include any of the information items identified above, and the automated process may be customizable so as to allow certain criteria to be user-selected to be prominent in the prioritization of POPs. The prioritization of POPs may be even performed according to any number of well-known ranking or prioritization algorithms.  
         [0046]     It will be appreciated that the above described database applications do not need to run on the server machine  105 . The above-described process may run on the client machine  101  with an automatic POPs performance analysis.  
         [0047]     Moreover, the above described databases and tables do not need to be stored at the server machine  105 . They may be stored at other machines that are accessible by the server machine  105  and uploaded to the server machine  105  when necessary.  
         [0048]     In the foregoing specification the present invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made to the specific exemplary embodiments without departing from the broader spirit and scope of the invention as set forth in the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.