This disclosure relates generally to monitoring Internet activity, and, more particularly, to systems, methods, and apparatus to monitor mobile Internet activity.
In recent years, methods of accessing Internet content have evolved. For example, Internet content was formerly primarily accessed via computer systems such as desktop and laptop computers. Recently, handheld mobile devices (e.g., smartphones) have been introduced that allow users to request and view Internet content. Typically, mobile devices request and receive Internet content via a wireless access network such as, but not limited to, an 802.11g WiFi network.
Mobile monitoring companies desire to gain knowledge on how users interact with their handheld mobile devices such as smartphones. In particular, the mobile monitoring companies want to monitor Internet traffic to and/or from the handheld mobile devices to, among other things, monitor exposure to advertisements, determine advertisement effectiveness, determine user behavior, identify purchasing behavior associated with various demographics, etc. Some known systems have utilized a proxy server to monitor Internet content being transmitted to and from the monitored device.
Such known monitoring systems implemented the proxy server as a Hypertext Transfer Protocol (HTTP) proxy that communicated with monitored handheld devices via a single port and required the monitored devices to provide authentication credentials including a username/device name and password that uniquely identified the mobile device involved in this Internet communication. These monitoring systems allowed mobile monitoring companies to associate Internet activity with the mobile device it originated from based on the username and password. Internet activity on handheld mobile devices is not limited to use of browsers (e.g., Apple® Safari®). For example, the Apple® iPhone® and Apple® iPad™ support many third party applications (sometimes referred to as “Apps”) accessing Internet content to perform a special function. For example, a weather application may request and display HTTP data from www.weather.com. These apps typically do not permit unrestricted browsing from website to website on the Internet (although they may permit movement within a defined set of webpages). Thus, apps typically provide access to a limited set of data on the Internet. In contrast, a browser enables a user to access virtually any publicly available site on the Internet (subject to restrictions such as content blockers) and directly shows the user the contents of a website such as www.weather.com.
While some applications accessing Internet content properly respond to proxy requests to provide credentials, many applications, such as the weather application from the previous example, do not presently support proxy authentication and therefore fail to function if a proxy requests credentials. This can be frustrating for panelists and may cause the panelist to abandon participation in the monitoring panel. Furthermore, it is desirable for monitoring entities to monitor Internet activity without affecting the manner in which users behave. Causing application failure due to a monitoring technique is inconsistent with that desire.
Some example methods of monitoring involve using an un-authenticated proxy on a port uniquely assigned to the panelist and/or handheld mobile device. However, when the handheld mobile device communicates via a WiFi network, a firewall likely exists between the handheld mobile device and the proxy. For example, many businesses and/or companies use firewalls to prohibit malicious and/or unwanted Internet content from reaching the users of their network. Firewalls block and/or prohibit malicious and/or unwanted Internet content by blocking particular ports. Ports 0 through 1023 are defined as Well Known Ports by the Internet Assigned Numbers Authority (IRNA), and are prohibited from use without registration with IRNA, and therefore, communications over the Well Known Ports are more likely to be legitimate communications, and are conversely less likely to be blocked. Internet communications outside of the Well Known Ports range may be determined to be malicious and/or unwanted, and, thus, may be blocked by a firewall. The firewall may block all Internet communications from port 1024 to port 65535, and if the uniquely assigned port is within the blocked range (e.g., port 1024 to port 65535); the Internet communications of the handheld mobile device may be blocked. Because firewalls may be configured to block communication on unregistered ports, some panelists (e.g., panelists communicating via a blocked port) may experience application failures when using a WiFi network. This can be frustrating for panelists and may cause the panelist to abandon participation in the monitoring panel. Again, it is desirable for monitoring entities to monitor Internet activity without affecting the manner in which users behave. Causing application failure due to a monitoring technique is inconsistent with that desire.
To avoid errors inherent in using both an un-authenticated proxy (e.g., proxy ports being blocked by a firewall) and an authenticated proxy (e.g., applications failing to properly respond to requests for authentication credentials), the example system shown in
When an application of the client device requests Internet content, the application embeds a user agent field in the request for content. The user agent Field represents the application that is requesting the content. For example, if a browser application was to request Internet content, the user agent field identifies to the content server that a browser application was requesting the content. If an application is known to respond to requests for authentication, the monitoring system of
Applications are being developed every day and, therefore, new user agent identifiers are constantly being generated. For example, upon the release of a new version of an application, a new user agent identifier may identify the version of the application requesting Internet content. To properly identify applications that respond to requests for authentication, the user agent is matched against applications where the authentication capabilities are known. For example, if a new version of a browser application is released and includes a new user agent identifier, the user agent identifier of previous versions of the browser application may substantially match the user agent identifier of the new version. If the previous version of the browser application supported authentication, it is likely that the next version will also support authentication, and therefore authentication credentials are required.
The monitoring system may then record the data that the client devices request and/or receive and/or some or all of the data itself. Identifications of data and/or the data itself (e.g., web content) are collectively referred to herein as “session data.” The session data is recorded in association with the panelist via the credentials with which the session data is transmitted. From the recorded session data and recorded credentials, the monitoring system can uniquely identify the site(s) that a particular panelist is visiting and how the panelist interacted with their mobile device, while avoiding interruption of services for the panelist.
The example first and second client devices 110, 130 of
The first and second communication links 120, 140 of the illustrated example are WiFi communication links. However, any other method and/or system of communication may additionally or alternatively be used such as, for example, an Ethernet connection, a Bluetooth connection, a cellular connection, etc. Further, the example first and second communication links 120, 140 of
The first and second panelists 115, 135 of the illustrated example are panelists participating in a monitoring service. Although the example system of
In the illustrated example, the first and second panelists 115, 135 are associated with the first and second client devices 110, 130, respectively. In the illustrated example, the client devices 110, 130 are owned, leased, or otherwise belong to their respective panelists. The monitoring entity of the illustrated example does not provide the client devices. In other systems, panelists may be provided with client devices to participate in the panel. While in the illustrated example, the first and second client devices 110, 130 are each associated with a single panelist, the first and second client devices 110, 130 may alternatively be associated with more than one panelist. For example, a family may have a single client device that may be shared amongst multiple users. The sharing of a client device is less common when the client device is a cellular phone then when the client device is a portable computer (e.g., an Apple® iPad™).
The Internet service provider 145 of the illustrated example provides wireless Internet service to the first and second client devices 110, 130 via the communication links 120, 140. In the illustrated example, the wireless service is provided via a WiFi connection. However, the Internet service provider 145 may provide Internet service via any other type of connection. Further, the Internet service provider 145 may implement the WiFi connection via the IEEE 802.11g standard. However, any other systems and/or protocols for communications may be used. In practice, the Internet service provider 145 is sometimes referred to as a local access point, and provides a local area network to the client devices. In the illustrated example, the Internet service provider includes a firewall that blocks all ports that are not within the Well Known Ports range as defined by IRNA (ports 1024 to 65535). However, the ports blocked by the firewall may be any other ports, and may vary from Internet service provider to Internet service provider. For example, a security policy of a firewall of a corporate network (e.g., at an office or business) may be more restrictive and block more ports than a security policy of a firewall of a public network (e.g., a wireless access network hosted in a public location, such a coffee shop).
In the illustrated example, the monitoring system 100 is shown as multiple computing systems. However, the monitoring system 100 may ultimately be comprised of a single computing system. In the illustrated example, the monitoring system 100 includes the registrar 155, the storage database 160, and the proxy 165. However, additional structures may be implemented to carry out one or more portions of the functionalities implemented by the registrar 155, the storage database 160, and/or the proxy 165, and/or other functions.
In the example of
In the illustrated example, the registration data is received by the registrar 155 via an electronic interface (e.g., by a panelist entering data into a form at a website or answering survey questions at a website). However, the registrar may receive the registration data may via other means. For example, the registrar may receive the registration data via a personal interview (by telephone or in person), a telephone interface, direct mailing, purchased lists, etc. While the registrar 155 of the illustrated example is an electronic system, the registrar 155 may alternatively be implemented manually by a person or group of people collecting and entering the registration data into the storage database 160.
Upon receiving the registration data, the registrar 155 of the illustrated example creates a record associating the panelist and a device identifier information with the collected demographic information. The registrar 155 may also assign a unique alphanumeric identifier to the panelist or device. The identifier may be based on, for example, a serial number of the client device. The record is stored in the storage database 160. In the illustrated example, the registrar 155 also assigns unique credentials to the panelist 115, 135 and/or the client device 110, 130 and stores the credentials in the record (or in association with the record for that panelist and/or client device). As noted above, in addition to assigning and storing the credentials, the registrar may assign and store additional identifiers. For example, the registrar may assign and store an identifier of the client device and/or the panelist. The panelist or client device identifier(s) may be the same as the credentials, or they may be different from the credentials. Further, when storing the credentials in the storage database 160, the registrar may encode and/or encrypt the credentials to provide security and/or anonymity to the panelists.
In addition to assigning and storing the credentials, the registrar 155 of the illustrated example generates a configuration document. In the illustrated example, the configuration document instructs the panelist to configure the client device. The instruction document in the illustrated example is an email message. However, any other type of instruction document may additionally or alternatively be used. For example, a portable document format (PDF) document and/or a Microsoft® Word® document may be sent to the panelist as an attachment to an email message. Further, the configuration file may be custom generated for the particular type of mobile device based on the model of the mobile device as received by the registrar as part of the registration data.
Alternatively, the configuration document may comprise an electronically readable file that may instruct the mobile device to apply the settings contained in the configuration document. In some examples, the configuration document is an Extensible Markup Language (XML) file implementing a property list (referred to herein as a plist) file comprising configuration data such as the credentials, a port number, and an Internet proxy address to be used by the corresponding panelist and/or client device. However, any other type of document may be generated such as, for example, a comma separated (CSV) document, a portable document format (PDF) document, a Microsoft® Word® document, etc. In the illustrated example, the configuration document is signed using a public/private key infrastructure. However, the configuration may alternatively not be signed. If the configuration document is not signed, it may appear as an invalid configuration file to the panelist, which may cause the panelist to abandon participation in the panel. The configuration document is sent to the corresponding client device (e.g., via an email message with the file attached or with a link to the file). The client device may then interpret the data in the configuration file, thereby applying the data (e.g., the credentials and Internet proxy address) to future communication of the mobile device. In the illustrated example, the configuration file causes the mobile device to send all Internet traffic to the Internet address of the proxy 165 and to specify the credentials assigned to the client device in such communication. As a result, all Internet communications to and/or from the mobile device are addressed to the proxy 165 and can, when authenticated, be identified or associated with that particular client device. In the illustrated example the plist file is implemented for interpretation by an Apple® iPhone®, an Apple® iPod®, an Apple® iPad™. However, the mobile device may be any other type of mobile device, and may accept any type of configuration document.
While in the example of
As noted in the illustrated example above, the configuration document is transmitted to the panelist via an email message. However, any other means of transmitting the configuration document to the panelist may additionally or alternatively be used. For example, an email message may be transmitted containing a hyperlink to the configuration document, the configuration document may be transmitted to the panelist via a Short Message Service (SMS) message, the configuration document may be mailed to the panelist, and/or a telephone call may be placed to the panelist to instruct the panelist to configure the client device.
Finally, the registrar 155 transmits the configuration document to the panelist and/or client device. In the illustrated example, the configuration document is provided via an electronic mail (email) message. The email message includes a hyperlink to download the configuration document to the client device. However, any other methods of transmitting the configuration document may additionally or alternatively be used. For example, the configuration document may be transmitted as an attachment to the email message, the registrar 155 may transmit a short message service (SMS) message comprising a link to or a textural representation of an Internet address where the client device may download the configuration document, a direct mailing may be sent to the panelist comprising the configuration document and/or additionally comprising an electronic medium containing the configuration document, a telephone call may be placed to orally instruct the panelist on how to configure the client device, etc.
The registrar 155 of
The storage database 160 may be any device for storing data such as, for example, flash memory, magnetic media, optical media, etc. Furthermore, the data stored in the storage database 160 may be in any data format such as, for example, binary data, comma delimited data, tab delimited data, structured query language (SQL) structures, etc. While in the illustrated example the storage database is illustrated as a single database, the storage database 160 may be implemented by multiple databases.
The proxy 165 of the illustrated example receives requests from the client devices 110, 130 via the wireless Internet service provider 145. The requests of the client devices 110, 130 are received by the proxy 165 due to the configuration document having been applied to respective ones of the client device instructing the client device to transmit all subsequent requests through the proxy 165. In the illustrated example, the proxy 165 receives Internet content requests via at least one Well Known Port (e.g., port 0 through port 1023). By only using Well Known Ports, it is less likely that the Internet communications will be blocked by a firewall. While in the illustrated example, a single proxy 165 is used, any number of proxies may represent the proxy 165 of
Upon receiving a request from a client device 110, 130, the proxy 165 retrieves the requested Internet content from the Internet content providers 170 (or from a local cache if, for example, it had previously been requested and stored). In order to identify the panelist associated with the request, the proxy 165 determines whether the request originated from an application that supports proxy authentication. If the application is identified to support proxy authentication, the proxy 165 determines whether credentials were provided. If no credentials were provided, the proxy 165 requests credentials from the requesting device. If credentials were provided, the proxy associates the request with the panelist via the credentials.
Typically, the port used by the proxy to communicate with content providers 170 is limited to hypertext transfer protocol (HTTP) data that occurs over port 80. After retrieving the requested Internet content from the Internet content provider(s) 170, in the illustrated example the content is relayed to the requesting client device 110, 130 via the assigned port. Additionally or alternatively, the content may be relayed to the requesting client device 110, 130 via a port other than the assigned port (e.g., port 80).
The proxy 165 of the illustrated example stores the requests for Internet content and/or portion(s) of such requests originating from the client devices 110, 130 in the storage database 160 in association with the credentials with which the request was received. In storing the requests, the proxy 165 may additionally store other identifiers such as, for example, the identifier of the client device 110, 130, the identifier of the panelist 115, 135, and/or the credentials provided by the client device 110, 130. Additionally or alternatively, the proxy 165 may store a portion of the Internet content in the storage database 160. For example, the proxy 165 may store the body of a webpage transmitted to the client device 110, 130. In another example, the proxy 165 may store an identifier of an advertisement appearing on the webpage transmitted to the client. This is particularly useful in situations where advertisements are rotated at websites. Additionally or alternatively, the proxy 165 may store characteristics of the response, such as, for example the HTTP header, a status code of the HTTP header, a content type of the HTTP header, etc.
The Internet content providers 170 supply content to clients via the Internet. In the illustrated example, the proxy 165 acts an intermediary for the client devices 110, 130, and, thus, is the client of the Internet content providers 170. Internet content is often supplied over port 80, as most Internet content is in the form of HTTP data. However, any other port may be used to supply Internet content. For example, File Transfer Protocol (FTP) data may be transmitted over port 21, HTTP over Secure Socket Layer (SSL) may be transmitted over port 443, etc.
The Internet content providers 170 can be any provider. For example, the Internet content providers 170 may comprise a web server hosting webpages formatted as Hypertext Markup Language (HTML) content. Alternatively, the Internet content provider 170 may be an application server providing application content to applications accessing Internet content. The application content may be formatted as HTML, XML, or may use any other protocol or port to return content to the requester. In some examples, the application data is implemented in a protocol specifically targeted for an application requesting Internet content (e.g., as the weather application described above).
The device networking subsystem 210 provides a framework for transmitting and receiving content. The device networking subsystem 210 may be implemented via an application processor, a software system that facilitates networked communication, a browser engine, a baseband processor that transmits network traffic, and/or any other system that provides a framework for transmitting and receiving content. In the illustrated example, the device networking subsystem is implemented by the networking libraries provided in the Apple® iPhone® operating system. However, any other libraries, systems, or programs may additionally or alternatively be used.
The browser application 215 and application accessing Internet content 220 are applications that are executed by a processor of the mobile device 205. The browser application 215 requests HTTP Internet content from Internet content providers 170, and renders the HTTP content for display. Additionally or alternatively, the browser application may request and render HTTPS Internet content. In some examples, the browser application is implemented by Apple® Safari®. However, any other application may alternatively be used. For example, Pocket Internet Explorer may be used. In some examples, the HTTP Internet content is HTML content. However, the content may be presented in any format that may be rendered by the browser application 215.
The application accessing Internet content 220 may be any application on the mobile device that requests Internet content. For example, the application accessing Internet content 220 may be a weather application accessing Internet content provided by www.weather.com. The Internet content provider 170 providing content for www.weather.com may respond to content requests with HTML data. However, any other type of data may be contained in the content request. For example, the Internet content provider 170 providing content for www.weather.com may provide an XML file containing a condensed weather forecast. Additionally or alternatively, the application accessing Internet content 220 may request media such as, for example, photos, video, audio, etc. Typically, applications accessing Internet content 220 are limited to a small amount of information to be displayed. For example, the weather application may not be able to display sports news. Although the browser 215 or the application accessing Internet content 220 may initiate requests for content, in some devices, such as the Apple® iPhone®, requests are formatted and transmitted by the device networking subsystem 210 based on system wide settings that control routing and/or addressing of such requests (e.g., to a specific port of a proxy 165).
The user interface 225 of the illustrated example provides a display to the user and receives input from the user. The user interface 225 may comprise hardware, a graphics library, and/or a graphics driver for displaying content to the panelist, and may comprise hardware, an input library, and/or an input driver for receiving input from the panelist. Either or both the browser application 215 and the application accessing Internet content 220 may utilize the user interface to display content and receive input.
The local network 230 is hosted by the Internet service provider 145. In the illustrated example, the local network 230 is an Internet Protocol (IP) version 4 (IPv4) based network. However, any other networking technology may additionally or alternatively be implemented. For example, the local network 230 may implement the IP version 6 (IPv6) protocol. Further, the local network 230 of the illustrated example is implemented using communication links 120, 140. While WiFi connections are shown, any other method of communication may additionally or alternatively be used such as, for example, an Ethernet network, a cellular network, etc. Additionally, the local network 230 is shown as a public network. However, the network may be a private network.
The firewall 232 of the illustrated example applies security policies to the requests and responses passing through the firewall 232. In some examples, the firewall 232 may only allow communications over the Well Known Ports (e.g., ports 0 to 1023), as the ports may represent protocols which are known to not have security risks. If communication on a port is not allowed to pass through the firewall 232, the communication is not transmitted from the requesting client device to the proxy 165.
The proxy 165 receives a request 235 for Internet content from the mobile device, retrieves the content by sending a second request 245 to the corresponding content provider 170, receive the content in a response 250 from the content provider 170, and relays the content to the mobile device 205 via a second response 255. In the illustrated example, the proxy 165 stores characteristics and/or identifiers of the request and/or response in the storage database 160. These characteristics and/or identifiers may be, for example, a timestamp of the request and/or response, an IP address of the client, a user agent of the request, a status code of the response, a content type of the response, etc. However, the proxy 165 may additionally store the Internet content of the response in the storage database 160. In relaying the request, the proxy 165 translates the port of the requests, as is described below in conjunction with
The Internet 240 in the illustrated example is a public network. However, a private network may instead be employed. For example, a network internal to an organization and/or company may be used to determine how members of the organization and/or employees of the company utilize internal web content via mobile devices.
The illustrated example shows a communication stream for a single request. The first request 235 is transmitted to the proxy 165 from the mobile device 205 over the local network 230 and through the firewall. The first request 235 uses a port that is not prohibited by the firewall 232, and is for HTTP content (e.g., the request is for content that is served over port 80). However, the content requested may be requested over any port. For example, the request may be for file transfer protocol (FTP) content and may occur over port 21. The proxy 165, upon receiving the first request 235, stores some or all of the request in the storage database 160, and generates a second request 245. The second request 245 is effectively a translation of the first address as shown in
The first HTTP request header 236 is the header of a GET request generated by the mobile device 205. In the illustrated example, the Internet content provider 170 is identified by the absolute Universal Resource Locator (URL) identified in the first line of the first HTTP request header 236 and the address of the proxy 165 and uniquely assigned port are identified by the “Host” line of the first HTTP request header 236. The host identified in the illustrated example is proxy.MonitoringEntity.com, and the port that the request was made on is 80. However, any other address identifying the proxy 165, and any other port may alternatively be used. For example, the address identifying the proxy 165 may be the Internet Protocol (IP) address of the proxy 165. In the illustrated example, the absolute URL of the Internet resource is “http://www.google.com”. However, any other URL may additionally or alternatively be used.
The proxy 165 receives the first content request 235 and generates the second content request 245. The second content request 245 is represented by the second HTTP request header 246. In the illustrated example, the second HTTP request header 246 is a GET request directed to “http://www.google.com”, and is transmitted over port 80 as no port other than port 80 is identified. The content being requested from “http://www.google.com/” in the illustrated example is “/”. The proxy generates the contents of the second request by inspecting the first request 235. For example, the proxy 165 identifies the requested content of the first request 235 as “http://www.google.com/”, determines that the port to be translated to is port 80 (identified by http://), determines that the Internet content provider 170 identified is “www.google.com”, and determines that the requested webpage from the Internet content provider is “/”. The second content request 245 is transmitted over port 80 because the proxy 165 determines that the requested content is HTTP content, and no alternative port number is specified. Alternatively, the content identified by the first content request 235 may be content that is provided on a port other than port 80. In that example, the absolute URL of the first HTTP request header 236 would identify the requested content as “http://www.google.com:1234/”, to convey that the content identified by the request is provided on port 1234. Further, the proxy 165 would generate the second HTTP request header 246 and include port 1234 in the identified host (e.g., www.google.com:1234).
The Internet content providers 170 receive the second content request 245, and respond to the request via the first response 250. The first response 250 is transmitted to the proxy 165. In the illustrated example, the first response is transmitted over port 80, as it is a response to a content request made on port 80. However, any other port may be used to transmit the first response to the proxy 165. The proxy 165 receives the first response 250, and determines the correct port that the second response 255 should be transmitted over. In the illustrated example, the proxy 165 determines the port that the second response should be transmitted over by associating the first response 250 with the first request 235 via the second request 245. In such an example, the proxy 165 can identify that the first request 235 originated on port 80, and thus, the second response should be transmitted on port 80. However, any other method of determining the port to transmit the second response over may additionally or alternatively be used. Further, the response may be transmitted over a port other than the port assigned to the mobile device 205.
The request and response port 305 of the illustrated example is a Transmission Control Protocol (TCP) port and/or a User Datagram Protocol (UDP) port. However, any other port-based system may additionally or alternatively be used. The request and response port of the illustrated example is port 80, as port 80 is typically used for HTTP content and is not typically blocked by most firewalls. However, the port may be any other port number such as, for example, a port within the Well Defined Ports range (ranging from port 0 to port 1023) and/or a port within the Registered Ports range (ranging from port 1024 to port 49151).
The request servicer 310 of the illustrated example receives the requests from the request and response port 305 and performs a port translation if necessary. A port translation may not be necessary in the event that the proxy is hosted via the same port that the requested content is hosted on. For example, if the proxy is hosted on port 80 and the content request is for content provided on port 80 (e.g., HTTP content), no port translation would occur. First, the request is inspected to determine the destination port that is intended for communication with the Internet content provider 170. For example, in many situations, the request will be for HTTP content and the destination port will be identified as port 80. However, any other destination port may be employed. For example, FTP traffic may be translated to port 21. The content gatherer 320 is responsible for gathering the content identified in the request (e.g., by sending translated requests to the corresponding content provider). Once the content is gathered, the request servicer 310 performs another port translation on the received content response to generate a translated response and to send the translated response to the client device over the port assigned to the client device that made the request.
In addition to translating the port of the request for Internet content, the request servicer inspects the user agent identifier of the request. If the user agent identifier identifies an application that supports authentication, the request servicer 305 determines if valid credentials are provided with the request. If valid credentials are not provided, the request servicer 305 requests credentials from the client device. If valid credentials are provided, the request servicer 305 provides the request to the content gatherer 320.
The Internet content processor 315 of the illustrated example determines the credentials associated with the request if available, and stores the request in the storage database 160 in association with the credentials to uniquely identify the client device. In some situations, credentials may not be available for storing. For example, when the user agent indicates that the application requesting Internet content does not support proxy authentication, no credentials are requested. Therefore, some of the content requests stored in the storage database 160 may not uniquely identify the originating client device 110, 130 and/or alternatively, the Internet content processor 315 may use the credentials to determine and store the panelist ID and/or the client device ID that was generated by the registrar 155 upon registration. In the illustrated example, the Internet content processor 315 stores the request for content. However, the Internet content processor 315 may store less than the entire request, a symbol for the request, etc., as shown in the tables of
The content gatherer 320 of the illustrated example requests the content identified by the request for Internet content. In particular, the content gatherer 320 utilizes the Internet address of the content requested in the request via one of the ports 305 to generate a second request to gather the requested Internet content. The content gatherer 320 transmits the second request via the Internet port 325. The Internet port 325 of the illustrated example is a Transmission Control Protocol (TCP) port and/or a User Datagram Protocol (UDP) port. However, any other port-based system may additionally or alternatively be used. The Internet port of the illustrated example is for HTTP traffic (e.g., port 80). However, any other port may be used. For example, port 21 could be used for File Transfer Protocol (FTP) traffic.
While an example manner of implementing the proxy 165 of
A flowchart representative of example machine-readable instructions for implementing the proxy 165 of
As mentioned above, the example processes of
The request servicer 310 then determines if the user agent identifier identifies an application supporting authentication (block 515). In the illustrated example, a predefined set of patterns identifying applications supporting authentication are stored in the storage database 160. For example, upon the release of a new version of an application, a new user agent identifier may identify the version of the application requesting Internet content. To properly identify applications that that respond to requests for authentication, the user agent is matched against applications where the authentication capabilities are known. For example, if a new version of a browser application is released and includes a new user agent identifier, the user agent identifier of previous versions of the browser application may substantially match the user agent identifier of the new version. If the previous version of the browser application supported authentication, it is likely that the next version will also support authentication, and therefore authentication credentials are required. An example user agent pattern is “safari”, and any user agent identifier that contains the term “safari” will be subject to authentication. However, any other pattern or set of patterns may additionally or alternatively be used. In the illustrated example, the patterns are updated by an administrator. However, as discussed in conjunction with
The request servicer 310 attempts to match the user agent identifier against the predefined patterns, and if a pattern is found that substantially matches the user agent identifier, the request servicer 310 proceeds to determine if credentials were associated with the request (block 520). If valid credentials were not associated with the request, the request servicer 310 transmits a request for valid credentials to the client device 110, 130 (block 525). The request for credentials may prompt the panelist and/or client device to re-transmit the previous request with valid credentials. If valid credentials were associated with the request, the credentials are associated with the panelist and/or client device (block 530).
Next, the content gatherer 320 generates second request(s) based on corresponding ones of the request received at block 510, to retrieve the Internet content identified in the corresponding content requests (block 535). The content gatherer 320 gathers the requested Internet content by sending the second requests via the Internet port 325. In the illustrated example, port 80 is used for sending requests. However, any other port may additionally or alternatively be used.
The Internet content processor 315 also associates the content requests with the corresponding requesting device and stores the association in the storage database 160 (block 540). In the illustrated example, the Internet content processor 315 associates the content request with the client device via the credentials associated with the request. In some situations, the application requesting Internet content may not support proxy authentication and/or credentials. In those instances, the content request is stored in the storage database without the associated credentials. Additionally, the Internet content processor 315 may store the returned content or a portion of the returned content in the storage database 160 (block 540). For example, the Internet content processor 315 may store images contained in the returned content.
The Internet content processor 315 may filter what is stored in the storage database. For example, the Internet content processor 315 may only store content requests that request HTTP content, as requests for non-HTTP content may not be parsed properly when analyzing the information. As another example, the Internet content processor 315 may omit style content (e.g., cascading style sheet (CSS) documents) from being stored in the storage database 160, as style content may be of limited use when analyzing the information.
The request servicer 310 finishes servicing the request from the client device by transmitting the requested Internet content to the client device via the port on which the content request was received (blocks 545). Control returns to block 505, where the request servicer 310 waits for more content requests (block 505).
If the user agent identifier is not identified by either block 516 or block 517, control proceeds to block 550, where the request servicer 310 determines if valid credentials were provided with the request (block 550). If credentials were provided, then the application supports proxy authentication, and a pattern is created and stored in the storage database 160. Subsequent requests including that particular user agent identifier will then be identified to support proxy authentication. Control then proceeds to block 530, where the machine-readable instructions 501 complete execution in a manner similar to the machine-readable instructions 500 of
In addition to the example two pattern or set of patterns method shown in
Next, the registrar 155 assigns the panelist credentials (block 610). In the illustrated example, the panelist enters their desired credentials upon registering for the panel. The credentials of some examples are a username and password. If some or all of the desired credentials (e.g., the username) are unique to the panelist (e.g., the username is not already associated with another panelist in the panel), the credentials are associated with the panelist. The credentials are then transmitted to the panelist via the configuration document. Alternatively, the credentials may be randomly assigned to the panelist. For example, the username may be a first initial of the panelist followed by a last name of the panelist, and the password may be a random string of characters. Further, the panelist may be able to change their password by contacting the registrar 155 (e.g., by accessing a webpage hosted by the registrar 155).
The registrar 155 generates a configuration document (block 615). The configuration document includes the credentials assigned to the client device of the panelist, and an Internet proxy address. The Internet proxy address is the address of the proxy 165. In the illustrated example, the configuration document is an instruction document that instructs the panelist on how to configure the client device, and is formatted as an email message transmitted to the panelist. However, any other type of document may be generated such as, for example, a comma separated (CSV) document, a portable document format (PDF) document, a Microsoft® Word® document, etc.
Next, the registrar 155 transmits the configuration document to the client device (block 620). In the illustrated example, the configuration document is transmitted via an electronic mail (email) message. The email message includes a hyperlink that may be selected to download the configuration document. However, any other methods of transmitting the configuration document may additionally or alternatively be used. For example, the configuration document may be transmitted as an attachment to the email message, the registrar 155 may transmit a short message service (SMS) message comprising an Internet address where the client device may download the configuration document, a direct mailing may be sent to the panelist comprising the instruction document and/or additionally comprising an electronic medium containing the configuration document, a telephone call may be placed to orally instruct the panelist on how to configure the client device, etc. The panelist and/or client device then receive the configuration document (block 623)
The client device 110, 130 is then configured by the panelist (block 625). Since the configuration document is an instruction document that may guide the panelist on how to configure the client device, the panelist may then configure the client device with the credentials, Internet proxy address, and proxy port as defined in the configuration document. The instruction document may thereby instruct the panelist on how to apply the configuration file or may instruct the panelist on how to manually apply the data in the configuration file. However, the configuration file may additionally or alternatively comprise an electronic document that may be interpreted by the client device. As such, instructions may be provided to the panelist regarding how to apply the electronic configuration file.
Upon application of the data contained in the configuration document, subsequent requests for Internet content made by the client device 110, 130 are routed according to the configuration document. In particular, since the configuration document includes the Internet proxy address, the proxy port number, and the credentials, requests are proxied through the Internet proxy address via the proxy port number, and use the credentials for application supporting credentials.
The system 700 of the instant example includes a processor 712. For example, the processor 712 can be implemented by one or more Intel® microprocessors from the Pentium® family, the Itanium® family or the XScale® family. Of course, other processors from other families are also appropriate.
The processor 712 is in communication with a main memory including a volatile memory 718 and a non-volatile memory 720 via a bus 722. The volatile memory 718 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory 720 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 714 is typically controlled by a memory controller (not shown).
The computer 700 also includes an interface circuit 724. The interface circuit 724 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface.
One or more input devices 726 are connected to the interface circuit 724. The input device(s) 726 permit a user to enter data and commands into the processor 712. The input device(s) can be implemented by, for example, a keyboard, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system.
One or more output devices 728 are also connected to the interface circuit 724. The output devices 728 can be implemented, for example, by display devices (e.g., a liquid crystal display, a cathode ray tube display (CRT), a printer and/or speakers). The interface circuit 724, thus, typically includes a graphics driver card.
The interface circuit 724 also includes a communication device (e.g., the request servicer 310) such as a modem or network interface card to facilitate exchange of data with external computers via a network (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.).
The computer 700 also includes one or more mass storage devices 730 for storing software and data. Examples of such mass storage devices 730 include floppy disk drives, hard drive disks, compact disk drives, and digital versatile disk (DVD) drives. The mass storage device 730 may implement the storage database 160.
The coded instructions 732 of
From the foregoing, it will be appreciated that example methods, apparatus and articles of manufacture have been disclosed which allow Internet content requests from any application accessing Internet content on a mobile device via an authenticated proxy to be monitored while uniquely identifying the requesting device and/or panelist when the application accessing Internet content responds to requests for proxy authentication.
Although certain example methods, apparatus, and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus, and articles of manufacture fairly falling within the scope of the claims of this patent.
This patent arises from a continuation of U.S. patent application Ser. No. 12/856,643, which was filed on Aug. 14, 2010. U.S. patent application Ser. No. 12/856,643 is hereby incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4355372 | Johnson et al. | Oct 1982 | A |
RE31951 | Johnson et al. | Jul 1985 | E |
4603232 | Kurland et al. | Jul 1986 | A |
4954699 | Coffey et al. | Sep 1990 | A |
4958284 | Bishop et al. | Sep 1990 | A |
5023929 | Call | Jun 1991 | A |
5060140 | Brown et al. | Oct 1991 | A |
5481294 | Thomas et al. | Jan 1996 | A |
5488408 | Maduzia et al. | Jan 1996 | A |
5497185 | Dufresne et al. | Mar 1996 | A |
5526427 | Thomas et al. | Jun 1996 | A |
5550928 | Lu et al. | Aug 1996 | A |
5557686 | Brown et al. | Sep 1996 | A |
5584050 | Lyons | Dec 1996 | A |
5594934 | Lu et al. | Jan 1997 | A |
5659469 | Deaton et al. | Aug 1997 | A |
5675510 | Coffey et al. | Oct 1997 | A |
5689799 | Dougherty et al. | Nov 1997 | A |
5710887 | Chelliah et al. | Jan 1998 | A |
5715399 | Bezos | Feb 1998 | A |
5732218 | Bland et al. | Mar 1998 | A |
5737025 | Dougherty et al. | Apr 1998 | A |
5737026 | Lu et al. | Apr 1998 | A |
5751450 | Robinson | May 1998 | A |
5771307 | Lu et al. | Jun 1998 | A |
5781913 | Felsenstein et al. | Jul 1998 | A |
5790875 | Andersin et al. | Aug 1998 | A |
5848396 | Gerace | Dec 1998 | A |
5850249 | Massetti et al. | Dec 1998 | A |
5862325 | Reed et al. | Jan 1999 | A |
5872850 | Klein et al. | Feb 1999 | A |
5887140 | Itsumi et al. | Mar 1999 | A |
5889548 | Chan | Mar 1999 | A |
5961593 | Gabber et al. | Oct 1999 | A |
5970469 | Scroggie et al. | Oct 1999 | A |
5991735 | Gerace | Nov 1999 | A |
6006260 | Barrick, Jr. et al. | Dec 1999 | A |
6026367 | Hjelmvik | Feb 2000 | A |
6026368 | Brown et al. | Feb 2000 | A |
6052730 | Felciano et al. | Apr 2000 | A |
6055573 | Gardenswartz et al. | Apr 2000 | A |
6058381 | Nelson | May 2000 | A |
6070145 | Pinsley et al. | May 2000 | A |
6070148 | Mori et al. | May 2000 | A |
6081900 | Subramaniam et al. | Jun 2000 | A |
6115680 | Coffee et al. | Sep 2000 | A |
6128624 | Papierniak et al. | Oct 2000 | A |
6138162 | Pistriotto et al. | Oct 2000 | A |
6138165 | Nakatsugawa | Oct 2000 | A |
6141686 | Jackowski et al. | Oct 2000 | A |
6151593 | Cho et al. | Nov 2000 | A |
6286043 | Cuomo et al. | Sep 2001 | B1 |
6286046 | Bryant | Sep 2001 | B1 |
6321336 | Applegate et al. | Nov 2001 | B1 |
6351467 | Dillon | Feb 2002 | B1 |
6381632 | Lowell | Apr 2002 | B1 |
6421733 | Tso et al. | Jul 2002 | B1 |
6449251 | Awadallah et al. | Sep 2002 | B1 |
6487538 | Gupta et al. | Nov 2002 | B1 |
6507589 | Ramasubramani et al. | Jan 2003 | B1 |
6567857 | Gupta et al. | May 2003 | B1 |
6606581 | Nickerson et al. | Aug 2003 | B1 |
6658414 | Bryan et al. | Dec 2003 | B2 |
6704787 | Umbreit | Mar 2004 | B1 |
6839680 | Liu et al. | Jan 2005 | B1 |
6856963 | Hurwitz | Feb 2005 | B1 |
6865613 | Millet et al. | Mar 2005 | B1 |
6993590 | Gauthier et al. | Jan 2006 | B1 |
7003555 | Jungck | Feb 2006 | B1 |
7039599 | Merriman et al. | May 2006 | B2 |
7065505 | Stefik et al. | Jun 2006 | B2 |
7080077 | Ramamurthy et al. | Jul 2006 | B2 |
7092926 | Cerrato | Aug 2006 | B2 |
7092942 | Frieden et al. | Aug 2006 | B2 |
7159023 | Tufts | Jan 2007 | B2 |
7181412 | Fulgoni et al. | Feb 2007 | B1 |
7200632 | Greschler et al. | Apr 2007 | B1 |
7216149 | Briscoe et al. | May 2007 | B1 |
7260837 | Abraham et al. | Aug 2007 | B2 |
7277915 | De Boor et al. | Oct 2007 | B2 |
7366724 | Frieden et al. | Apr 2008 | B2 |
7375641 | Kiel et al. | May 2008 | B2 |
7376722 | Sim et al. | May 2008 | B1 |
7526538 | Wilson | Apr 2009 | B2 |
7584423 | Rohrabaugh et al. | Sep 2009 | B2 |
7606897 | Izrailevsky et al. | Oct 2009 | B2 |
7613809 | Jackson et al. | Nov 2009 | B2 |
7688813 | Shin et al. | Mar 2010 | B2 |
7695879 | Vanbesien et al. | Apr 2010 | B2 |
7814483 | Li et al. | Oct 2010 | B2 |
7849502 | Bloch et al. | Dec 2010 | B1 |
8086219 | O'Neil et al. | Dec 2011 | B2 |
8285218 | Papakostas et al. | Oct 2012 | B2 |
8307006 | Hannan et al. | Nov 2012 | B2 |
8340711 | Glass et al. | Dec 2012 | B1 |
8594617 | Papakostas et al. | Nov 2013 | B2 |
8635129 | Story et al. | Jan 2014 | B2 |
8755511 | Duva et al. | Jun 2014 | B2 |
8886773 | Papakostas et al. | Nov 2014 | B2 |
8910259 | Papakostas et al. | Dec 2014 | B2 |
9301173 | Papakostas | Mar 2016 | B2 |
9307418 | Papakostas et al. | Apr 2016 | B2 |
20010014915 | Blumenau | Aug 2001 | A1 |
20010020242 | Gupta et al. | Sep 2001 | A1 |
20020069368 | Hines | Jun 2002 | A1 |
20020077903 | Feldman et al. | Jun 2002 | A1 |
20020116523 | Warrier et al. | Aug 2002 | A1 |
20020128803 | Skinner et al. | Sep 2002 | A1 |
20020144156 | Copeland, III | Oct 2002 | A1 |
20020169830 | Mild et al. | Nov 2002 | A1 |
20020178257 | Cerrato | Nov 2002 | A1 |
20030009762 | Hooper et al. | Jan 2003 | A1 |
20030018778 | Martin et al. | Jan 2003 | A1 |
20030033432 | Simpson et al. | Feb 2003 | A1 |
20030035409 | Wang et al. | Feb 2003 | A1 |
20030051052 | Shteyn et al. | Mar 2003 | A1 |
20030065595 | Anglum | Apr 2003 | A1 |
20030076305 | Allen | Apr 2003 | A1 |
20030091025 | Celi, Jr. et al. | May 2003 | A1 |
20030154306 | Perry | Aug 2003 | A1 |
20030195884 | Boyd et al. | Oct 2003 | A1 |
20040133687 | Yamaguchi et al. | Jul 2004 | A1 |
20040205159 | Johnson et al. | Oct 2004 | A1 |
20050021603 | Yokomitsu et al. | Jan 2005 | A1 |
20050108539 | Skog et al. | May 2005 | A1 |
20050138192 | Encarnacion et al. | Jun 2005 | A1 |
20050198261 | Durvasula et al. | Sep 2005 | A1 |
20050201357 | Poyhonen | Sep 2005 | A1 |
20060133332 | Achanta | Jun 2006 | A1 |
20060258341 | Miller et al. | Nov 2006 | A1 |
20060264202 | Hagmeier et al. | Nov 2006 | A1 |
20070073625 | Shelton | Mar 2007 | A1 |
20070123760 | Scholler et al. | May 2007 | A1 |
20070214501 | Muramoto et al. | Sep 2007 | A1 |
20070222598 | Kiel et al. | Sep 2007 | A1 |
20070274211 | Tsubota | Nov 2007 | A1 |
20080005736 | Apacible et al. | Jan 2008 | A1 |
20080056261 | Osborn et al. | Mar 2008 | A1 |
20080289010 | Frieden et al. | Nov 2008 | A1 |
20090034536 | Morand et al. | Feb 2009 | A1 |
20090036108 | Cho | Feb 2009 | A1 |
20090089356 | Murray et al. | Apr 2009 | A1 |
20090106035 | Xu et al. | Apr 2009 | A1 |
20090233633 | Morrison | Sep 2009 | A1 |
20090282471 | Green et al. | Nov 2009 | A1 |
20090285118 | Yoshikawa et al. | Nov 2009 | A1 |
20090296917 | Nogawa | Dec 2009 | A1 |
20090320123 | Yu et al. | Dec 2009 | A1 |
20100036969 | Perry et al. | Feb 2010 | A1 |
20100095215 | Elven | Apr 2010 | A1 |
20100191947 | Shin | Jul 2010 | A1 |
20100205029 | Asherman et al. | Aug 2010 | A1 |
20100205617 | Hogan et al. | Aug 2010 | A1 |
20100216434 | Marcellino et al. | Aug 2010 | A1 |
20100293610 | Beachem et al. | Nov 2010 | A1 |
20110047254 | Vainionpää et al. | Feb 2011 | A1 |
20120042005 | Papakostas et al. | Feb 2012 | A1 |
20120042367 | Papakostas et al. | Feb 2012 | A1 |
20120158908 | Luna et al. | Jun 2012 | A1 |
20120210321 | Silva et al. | Aug 2012 | A1 |
20120216063 | Ogata | Aug 2012 | A1 |
20120235930 | Lazaridis et al. | Sep 2012 | A1 |
20120295581 | Agarwal | Nov 2012 | A1 |
20130005296 | Papakostas et al. | Jan 2013 | A1 |
20130006708 | Lee | Jan 2013 | A1 |
20130031599 | Luna et al. | Jan 2013 | A1 |
20130035059 | Liu et al. | Feb 2013 | A1 |
20130054402 | Asherman et al. | Feb 2013 | A1 |
20130064109 | Combet et al. | Mar 2013 | A1 |
20130066875 | Combet et al. | Mar 2013 | A1 |
20130183926 | Lindberg et al. | Jul 2013 | A1 |
20130276129 | Nelson et al. | Oct 2013 | A1 |
20130281050 | Agarwal et al. | Oct 2013 | A1 |
20140036687 | Papakostas et al. | Feb 2014 | A1 |
20140273923 | Papakostas | Sep 2014 | A1 |
20140280896 | Papakostas et al. | Sep 2014 | A1 |
20150058958 | Papakostas et al. | Feb 2015 | A1 |
20150067162 | Papakostas et al. | Mar 2015 | A1 |
20160127488 | Papakostas et al. | May 2016 | A1 |
Number | Date | Country |
---|---|---|
2781018 | Dec 2012 | CA |
10909739 | Feb 2007 | CN |
10159443 | Dec 2009 | CN |
101605030 | Dec 2009 | CN |
102377616 | Mar 2012 | CN |
102917003 | Feb 2013 | CN |
105025081 | Nov 2015 | CN |
1980950 | Oct 2008 | EP |
2079256 | Jul 2009 | EP |
2341437 | Jul 2011 | EP |
2549713 | Jan 2013 | EP |
2437842 | Nov 2007 | GB |
2003219467 | Jul 2003 | JP |
2004342080 | Dec 2004 | JP |
2005115473 | Apr 2005 | JP |
2006044820 | Apr 2006 | JP |
2007200209 | Aug 2007 | JP |
2007123760 | Nov 2007 | JP |
2008511229 | Apr 2008 | JP |
2009514050 | Apr 2009 | JP |
2010079831 | Apr 2010 | JP |
2005008068 | Oct 2005 | KR |
9641495 | Dec 1996 | WO |
9831155 | Jul 1998 | WO |
0055783 | Sep 2000 | WO |
0111506 | Feb 2001 | WO |
0144975 | Jun 2001 | WO |
0152462 | Jul 2001 | WO |
0250694 | Jun 2002 | WO |
03067376 | Aug 2003 | WO |
Entry |
---|
Canadian Patent Office, “Office Action” issued in connection with Canadian Patent Application No. 2,749,013, dated Oct. 6, 2015 (4 pages). |
United States Patent and Trademark Office, “Final Office Action”, issued in connection with U.S. Appl. No. 13/840,543, Jan. 20, 2016, 57 pages. |
Patent Cooperation Treaty, “International Preliminary Report on Patentabiiity,” issued in connection with Application No. PCT/US2014/028176, Sep. 15, 2015, 7 pages. |
United States Patent and Trademark Office, “Notice of Allowance”, issued in connection with U.S. Appl. No. 13/840,594, May 26, 2015, (12 pages). |
United States Patent and Trademark Office, “Office Action”, issued in connection with U.S. Appl. No. 13/840,594, Mar. 11, 2015, (28 pages). |
State Intellectual Property Office of China, “Notice of Allowance,” issued in connection with Application No. 201210296506.2, Mar. 18, 2015, 5 pages. |
Canadian Intellectual Property Office, “Notice of Allowance”, issued in connection with Canadian Patent Application No. 2,781,018, Apr. 16, 2015, 1 page. |
Canadian Intellectual Property Office, “Notice of Allowance”, issued in connection with Canadian Patent Application No. 2,748,997, Mar. 16, 2015, 1 page. |
IP Australia, “Patent Examination Report No. 1” issued in connection with Application No. 2014210640, May 27, 2015, 4 pages. |
United States Patent and Trademark Office, “Office Action”, issued in connection with U.S. Appl. No. 13/840,543, May 21, 2015, (27 pages). |
The State Intellectual Property Office of China, “First Office Action”, issued in connection with Chinese Patent Application No. 201210296506.2, dated Sep. 2, 2014 (21 pages). |
Japanese Patent Office, “Notice of Reasons for Rejection”, issued in connection with Japanese Patent Application No. P2011-177687, dated Jun. 4, 2013 (7 pages). |
IP Australia, “Notice of Acceptance”, issued in connection with Australian Patent Application No. 2011211444, Apr. 29, 2014 (2 pages). |
Canadian Intellectual Property Office, “Notice of Allowance”, issued in connection with Canadian Patent Application No. 2,749,013, dated Nov. 4, 2014 (1 page). |
Chinese Patent Office, “Office Action” issued in corresponding application No. 201110294045.0, dated Sep. 26, 2013 (26 pages, English translation included). |
Chinese Patent Office, “Office Action” issued in corresponding application No. 201110305485.1, dated Sep. 22, 2013 (22 pages, English translation included). |
United States Patent and Trademark Office, “Final Office Action”, issued in connection with U.S. Appl. No. 12/856,651 on Aug. 28, 2013 (16 pages). |
Dossick, S.E. et al., “WWW access to legacy client/server applications,” Fifth International World Wide Web Conference, May 6-10, 1996, Paris, FR, http://iw3c2.cs.ust.hk/WWW5/www5conf.inria.fr/fich—html/papers/P4/Overview.html, (12 pages). |
Zenel, B., et al., “A general Purpose Proxy Filtering Mechanism Applied to the Mobile Environment,” Wireless Networks, ACM, US, vol. 5, No. 5, Oct. 1999 (Oct. 1999), XP000902494, (9 pages). |
Diffie W. et al., “Privacy and Authentication: An introduction to Cryptography” Proceedings of the IEEE, IEEE. New York, US, vol. 67, No. 3, Mar. 1979 (Mar. 1979), pp. 397-426, SP000575227, (32 pages). |
Srivastava, J., et al. “Web Usage Mining: Discovery and Applications of Usage Patterns from Web Data” ACM SIGKDD Explorations Newsletter, vol. 1, Issue 2, pp. 12-23, Jan. 2000, (12 pages). |
Boyan, J. “The Anonymizer—Protecting User Privacy on the Web,” Computer-Mediated Communication Magazine, 'Online! 1997, XP002231197, http://www.december.com/cmc/mag/1997/sep/toc.html, retrieved in 1997, (6 pages). |
Choo, C. et al. “A Behavioral Model of Information Seeking on the Web—Preliminary Results of a Study of How Managers and IT Specialists Use the Web,” Oct. 25, 1998, (16 pages). |
European Patent Office, “European Search Report”, Issued in connection with Application No. 11006705.5-2413, Oct. 14, 2011, (7 pages). |
European Patent Office, “Partial European Search Report”, Issued in connection with Application No. 11006706.3-2413, Oct. 25, 2011, (7 pages). |
Wavecrest Computing, “Cyfin Proxy User Manual for Version 8.2.x”, XP55009573, URL:http://downloads.wavecrest.net/release/cyfin/manuals/v820/cyfinProxyManual.pdf, Apr. 9, 2010, (147 pages). |
“User Identification and Authentication Vital Security 9.2”, XP55009307, http://www.m86security.com/software/secure—web—gateway/manuals.9.2.0/User—Identification—and—Authentication.pdf, Apr. 25, 2010, (27 pages). |
“HTTP Proxy Authentication and iPhone Apps”, XP55009373, https://discussions.apple.com/message/8018666#8018666, Jan. 15, 2009, (4 pages). |
United States Patent and Trademark Office, “Office Action”, issued in connection with U.S. Appl. No. 12/856,651, Mar. 27, 2012, (12 pages). |
European Patent Office, “Extended European Search Report and European Search Opinion”, issued in connection with European Patent Application No. 11006706.3-2413, Apr. 5, 2012, (15 pages). |
Japanese Patent Office, “Notice of Reasons for Rejection”, issued in Patent application No. P2011-177687, Dated Aug. 21, 2012 (3 pages, English translation included). |
United States Patent and Trademark Office, “Office Action”, issued in connection with U.S. Appl. No. 12/856,643, Jun. 18, 2012, (9 pages). |
Japanese Patent Office, “Notice of Reasons for Rejection”, issued in Patent application No. P2011-177690, Dated Aug. 21, 2012 (4 pages, English translation included). |
European Patent Office, “Partial European Search Report and European Search Opinion”, issued in connection with European Patent Application No. 12004911.9-2413, Dec. 13, 2012, (8 pages). |
European Patent Office, “Extended European Search Report”, issued in connection with EP patent application No. 12004911.9-1856/2549713, mailed Apr. 3, 2013 (11 pages). |
IP Australia, “Patent Examination Report No. 1”, issued in connection with AU patent application 2011211443, issued Apr. 2, 2013, (3 pages). |
IP Australia, “Patent Examination Report No. 1”, issued in connection with AU patent application 2011211444, issued Apr. 2, 2013, (3 pages). |
Japan Patent Office, “Notice of Reasons for Rejection”, issued in connection with JP patent application No. P2012-145685, mailed May 7, 2013 (4 pages, English translation included). |
IP Australia, “Patent Examination Report No. 1”, issued in connection with AU patent application No. 2012203829, mailed May 21, 2013 (3 pages). |
Japanese Patent Office, “Notice of Reasons for Rejection”, issued in Patent application No. P2011-177690, Dated Jun. 25, 2013 (4 pages, English translation included). |
United States Patent and Trademark Office, “Final Office Action”, issued in connection with U.S. Appl. No. 12/856,643, May 9, 2013, (10 pages). |
Chinese Patent Office, “Notice of Allowance” in application No. 201110294045.0, dated Jul. 4, 2014 (5 pages, English translation included). |
IP Australia, “Notice of Acceptance”, issued in connection with AU patent application 2012203829, issued Jun. 12, 2014, (2 pages). |
United States Patent and Trademark Office, “Notice of Allowance”, issued in connection with U.S. Appl. No. 12/856,643, Aug. 5, 2014, (5 pages). |
Canadian Patent Office, “Office Action” issued in connection with Canadian Patent Application No. 2,748,997, dated Nov. 21, 2013 (2 pages). |
Canadian Patent Office, “Office Action” issued in connection with Canadian Patent Application No. 2,749,013, dated Sep. 10, 2013 (2 pages). |
Canadian Patent Office, “Office Action” issued in connection with Canadian Patent Application No. 2,781,018, dated Apr. 7, 2014 (3 pages). |
Chinese Patent Office, “Office Action” issued in connection with application No. 201110294045.0, dated Apr. 3, 2014 (5 pages, English translation included). |
United States Patent and Trademark Office, “Non-Final Office Action”, issued in connection with U.S. Appl. No. 13/840,594, dated Sep. 19, 2014 (12 pages). |
United States Patent and Trademark Office, “Notice of Allowance”, issued in connection with U.S. Appl. No. 12/856,643, Apr. 10, 2014, (14 pages). |
United States Patent and Trademark Office, “Notice of Allowance”, issued in connection with U.S. Appl. No. 13/174,517, Aug. 22, 2013, (19 pages). |
United States Patent and Trademark Office, “Notice of Allowance”, issued in connection with U.S. Appl. No. 13/174,517, Oct. 25, 2013, (6 pages). |
United States Patent and Trademark Office, “Notice of Allowance”, issued in connection with U.S. Appl. No. 13/174,517, Sep. 26, 2013, (6 pages). |
United States Patent and Trademark Office, “Office Action”, issued in connection with U.S. Appl. No. 13/174,517, Aug. 15, 2012, (13 pages). |
United States Patent and Trademark Office, “Advisory Action”, issued in connection with U.S. Appl. No. 12/856,651 dated Nov. 22, 2013 (3 pages). |
United States Patent and Trademark Office,“Notice of Allowance”, issued in connection with U.S. Appl. No. 12/856,651 dated Jul. 7, 2014 (11 pages). |
International Searching Authority, “International Search Report and Written Opinion”, issued in connection with International Application No. PCT/US2014/028176, dated Sep. 1, 2014 (11 pages). |
United States Patent and Trademark Office, “Final Office Action”, issued in connection with U.S. Appl. No. 14/537,488, Oct. 21, 2016, (27 pages). |
United States Patent and Trademark Office, “Non-Final Office Action”, issued in connection with U.S. Appl. No. 13/840,543, Jan. 26, 2017, (31 pages). |
United States Patent and Trademark Office, “Final Office Action”, issued in connection with U.S. Appl. No. 14/529,784, Jan. 26, 2017, (21 pages). |
European Patent Office, “Communication Pursuant to Article 94(3) EPC”, issued in connection with Application No. 11006706.3, Mar. 21, 2016, (9 pages). |
Canadian Patent Office, “Office Action” issued in connection with Canadian Patent Application No. 2,748,997, Dated Nov. 24, 2015 (5 pages). |
European Patent Office, “Communication under Rule 71(3) EPC”, issued in connection with European Patent Application No. 12004911.9, Feb. 2, 2016, (74 pages). |
IP Australia, “Notice of Grant”, issued in connection with AU patent application 2011211444, mailed Aug. 21, 2014, (2 pages). |
IP Australia, “Notice of Grant”, issued in connection with Australian Application No. 2012203829, dated Oct. 9, 2014 (2 pages). |
United States Patent and Trademark Office, “Non-Final Office Action”, issued in connection with U.S. Appl. No. 14/041,613, Aug. 6, 2015, (10 pages). |
United States Patent and Trademark Office, “Notice of Allowance”, issued in connection with U.S. Appl. No. 14/041,613, Nov. 25, 2015, (9 pages). |
United States Patent and Trademark Office, “Pre-Brief Appeal Conference Decision”, issued in connection with U.S. Appl. No. 12/856,651, Jan. 13, 2014, (2 pages). |
United States Patent and Trademark Office, “Non-Final Office Action”, issued in connection with U.S. Appl. No. 14/529,784, Aug. 5, 2016, (10 pages). |
Intellectual Property Office of China, “1st Office Action,” issued in connection with application No. 201410432742.1 dated Mar. 29, 2017, 16 pages. |
U.S. Patent and Trademark Office, “Notice of Allowance”, issued in connection with U.S. Appl. No. 14/529,784, dated Apr. 26, 2017 (9 pages). |
Number | Date | Country | |
---|---|---|---|
20150058958 A1 | Feb 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12856643 | Aug 2010 | US |
Child | 14537484 | US |