`
`Application Information
`
`Application number::
`
`Filing Date::
`
`Application Type::
`
`Subject Matter::
`
`Suggested classification::
`
`Suggested Group Art Unit::
`
`CD-ROM or CD-R??::
`
`Number of CD disks::
`
`Number of copies of COs::
`
`Sequence Submission::
`
`Computer Readable Form (CRF)?::
`
`Number of copies of CRF::
`
`Title::
`
`Not yet assigned
`
`Herewith
`
`Provisional
`
`Utility
`
`ACTIVITY SESSION AS METHOD OF
`
`OPTIMIZING NETWORK RESOURCE USE
`
`Attorney Docket Number::
`
`028482-003900US
`
`Request for Early Publication::
`
`Request for Non-Publication::
`
`Suggested Drawing Figure::
`
`Total Drawing Sheets::
`
`Small Entity?::
`
`Latin name::
`
`Variety denomination name::
`
`Petition included?::
`
`Petition Type::
`
`Licensed US Govt. Agency::
`
`Contract or Grant Numbers One::
`
`No
`
`No
`
`1
`
`4
`
`Yes
`
`No
`
`Secrecy Order in Parent Appl.::
`
`No
`
`Page 1
`
`Initial 11/1/10
`
`Page 1 of 49
`
`GOOGLE EXHIBIT 1011
`
`
`
`Applicant Information
`
`Applicant Authority Type::
`
`Primary Citizenship Country::
`Status::
`
`Given Name::
`Middle Name::
`
`Family Name::
`
`Name Suffix::
`
`Inventor
`us
`Full Capacity
`
`Steve
`
`Petersen
`
`City of Residence::
`
`State or Province of Residence::
`Country of Residence::
`
`Street of Mailing Address::
`
`City of Mailing Address::
`
`Los Gatos
`
`CA
`us
`410 Hershner Way
`
`Los Gatos
`
`State or Province of mailing address:: CA
`US
`
`Country of mailing address::
`
`Postal or Zip Code of mailing address:: 95032
`
`Correspondence Information
`
`Correspondence Customer Number::
`
`20350
`
`Representative Information
`
`Representative Customer Number::
`
`20350
`
`Domestic Priority Information
`
`Application::
`
`Continuity Type::
`
`Parent Application:: Parent Filing Date::
`
`Foreign Priority Information
`
`Country::
`
`Application number::
`
`Filing Date::
`
`Page2
`
`lnitial11/1/10
`
`Page 2 of 49
`
`
`
`Assignee Information
`
`Assignee Name::
`
`Street of mailing address::
`
`City of mailing address::
`
`State or Province of mailing address::
`
`Country of mailing address::
`
`Postal or Zip Code of mailing address::
`
`Submitted by:
`
`Signature
`
`/Alan D. Minsk!
`-------------------------------
`Printed Name
`Alan D. Minsk
`--------~~~~~~--------
`
`Date November 1, 2010
`
`Registration Number
`
`35,956
`
`Page 3
`
`lnitial11/1/10
`
`Page 3 of 49
`
`
`
`Attorney Docket No.: 028482-003900
`
`PROVISIONAL PATENT APPLICATION
`
`ACTIVITY SESSION AS METHOD OF OPTIMIZING NETWORK RESOURCE USE
`
`Inventor:
`
`Steve Petersen, a citizen of United States, residing at Los Gatos,
`
`CA 95032
`
`Assignee:
`
`Seven Networks
`
`Entity:
`
`Small
`
`TOWNSEND and TOWNSEND and CREW LLP
`Two Embarcadero Center, Eighth Floor
`San Francisco, CA 94111-3834
`Tel: 415-576-0200
`
`1
`
`Page 4 of 49
`
`
`
`ACTIVITY SESSION AS METHOD OF OPTIMIZING NETWORK RESOURCE USE
`
`In the art today there are performance enhancing proxies and general standards for
`
`improvements of TCP performance in wired and wireless networks. Some of these techniques
`
`use clients and some are clientless. Some can look at network performance to enhance the
`
`optimization they provide. As noted, some may utilize a client and some may operate clientless.
`
`Almost all, if not all, are focused on optimization based on only a one-sided view ofthe
`
`networks connected to such a platform- either outbound wired, inbound/outbound wireless, or
`
`based solely on the cooperation with a client.
`
`As recognized by the inventor(s), 3G networks are being overloaded by many small data
`
`transactions, as each of these transactions may require an inordinate amount of signaling
`
`overhead to establish the connection for the transaction. Methods have been suggested by the
`
`assignee of the present application for intelligent caching of content via a distributed proxy, but
`
`caching may not be appropriate for all types of mobile data, nor under all circumstances.
`
`As will be described, in some embodiments the present invention is directed to a method
`
`for augmenting a distributed proxy-based solution by introducing the concept of an "activity
`
`session". An activity session is a pattern of multiple mobile application use by a mobile user that
`
`can be "predicted" by using contextual clues available to a mobile client proxy. Based on the
`
`prediction, a multiplex connection can be created and pre-caching of content can be performed to
`
`support the data activity during the session, thus minimizing the signaling overhead as well as
`
`the multiplexed transaction duration. In some embodiments this approach will also provide the
`
`additional benefit of an improved user experience (e.g., by reducing a perceived latency).
`
`Description of One or More Embodiments of the Invention
`
`Embodiments of the present invention provide a system that optimizes multiple aspects of
`
`the connection with wired and wireless networks and devices through a complete view of activity
`
`including: loading, current application needs on a client, controlling the type of access (push vs.
`
`2
`
`Page 5 of 49
`
`
`
`pull or hybrid), location, concentration of users in a single area, time of day, how often the user
`
`interacts with the application, content or device, and using this information to shape traffic to a
`
`cooperative client/server or simultaneously mobile devices without a cooperative client. Because
`
`the inventive server is not tied to any specific network provider it has visibility into the network
`
`performance across all service providers. This enables optimizations to be applied to devices
`
`regardless of the operator or service provider, thereby enhancing the user experience and
`
`managing network utilization while roaming. Bandwidth has been considered the major issue in
`
`wireless networks today. More and more research has been done related to the need for
`
`additional bandwidth to solve access problems- many of the performance enhancing solutions
`
`and next generation standards, such as L TE and WiMAX are focused on providing increased
`
`bandwidth. However, history has shown that this simply doesn't solve all the problems. A key
`
`problem is lack of bandwidth on the signaling channel more so than the data channel.
`
`Embodiments of the present invention align requests from multiple applications to
`
`minimize the need for several polling requests; leverage specific content types to determine how
`
`to proxy/manage a connection/content; and apply specific heuristics associated with device, user
`
`behavioral patterns (how often they interact with the device/application) and network parameters.
`
`Embodiments of the present invention move recurring http polls done by various widgets,
`
`RSS readers etc. to a fixed internet (NOC), thus considerably lowering device battery/power
`
`consumption, radio channel signaling, and bandwidth usage. Additionally, embodiments ofthe
`
`present invention do this transparently so that existing applications do not need to be changed. In
`
`some embodiments, this can be done by implementing a local proxy on the device which
`
`automatically detects recurring requests for the same content (RSS feed, Widget data set) that
`
`matches a specific rule (e.g. happens every 15 minutes) and automatically caches the content on
`
`the client while delegating the polling to the server (e.g., to a proxy or virtual proxy operated as
`
`an element of a communications network). The server would then notify the mobile/client proxy
`
`if the content changes, and if content has not changed (or not changed sufficiently, or in an
`
`identified manner or amount) the mobile proxy provides the latest version in its cache to the user
`
`(without need to utilize the radio at all). This way the mobile device (e.g., a handset) does not
`
`3
`
`Page 6 of 49
`
`
`
`need to open up or use a data connection if the request is for content that is monitored and that
`
`has been not flagged as new/changed.
`
`The logic for automatically adding URLs/content to be monitored can check for various
`
`factors like how often the content is the same, how often the same request is made (is there a
`
`fixed interval/pattern?), which application is requesting the data, etc. Similar rules to skip using
`
`the cache and request the data from the original source may also be used. For example, when the
`
`request comes at an unscheduled/unexpected time (user initiated check), or after every (n)
`
`consecutive times the response has been provided from the cache, etc., or if the application is
`
`running in the background vs. in a more interactive mode of the foreground. As more and more
`
`mobile applications base their features on resources available in the network, this becomes
`
`increasingly important. Embodiments of the present invention also remove unnecessary chatter
`
`from the network, benefitting the operators trying to optimize the wireless spectrum usage.
`
`In some embodiments, the present invention includes a distributed proxy for network
`
`traffic optimization, as shown in Figure 1. The main components include a proxy client running
`
`on a device [1 05], a proxy server running in the network [1 02], and an internal protocol between
`
`the proxy client and the proxy server [109, 110]. Typically, the proxy client and proxy server
`
`would be implemented as a set of instructions executed by a (micro) processor, although other
`
`implementations are possible (firmware, etc.). The proxy client, shown in Figure 2, includes
`
`connection management functionality [206], application protocol logic modules [213], a local
`
`cache [203], and an interface to retrieve information on device properties (e.g., information on
`
`device battery level, whether the device is being actively used or not, and the registered network)
`
`[210]. The proxy server, shown in Figure 3, includes connection management functionality
`
`[302], application protocol logic modules [31 0], a connection and content metadata database
`
`[303], and a device information database [304].
`
`In general operation, the proxy client [202] is an application independent proxy that
`
`mobile applications [200] can use to open any TCP connection to any host. The proxy client will
`
`detect the type of traffic and utilize an appropriate application protocol module [213] to process
`
`the traffic. With the chosen protocol/logic module, the proxy client may process the data locally
`
`4
`
`Page 7 of 49
`
`
`
`and generate necessary talkback communication using its local cache, communicate the
`
`processed data along with device properties to the proxy server using the internal protocol [11 0],
`
`modify or delay any data before sending it to the proxy server, detect usage patterns between
`
`similar connections and provide this to the proxy server as connection metadata, or any
`
`combination ofthe above.
`
`If the proxy server is contacted regarding processing the original connection, the proxy
`
`server will utilize an appropriate application protocol module [31 OJ to process the traffic. With
`
`the chosen protocol/logic module, the proxy server may contact the intended target of the
`
`connection and route the data from the proxy client to the target, generate talkback
`
`communication using its local cache, modify or delay any talk back communication data based on
`
`the device properties, and based on the connection metadata, start background processing to
`
`gather data for later use with similar connections, as well as any combination of the above.
`
`Both the proxy client and the proxy server will, where applicable continue to observe and
`
`process the data using the application protocol modules for the entire duration of the connection.
`
`After the original connection no longer exists, the proxy client and proxy server may still share
`
`information about the ceased connection and its properties for later use with similar connections.
`
`In this mode of operation, the proxy server may signal the proxy client that some data in its local
`
`cache is no longer up to date (and hence is stale), or alternatively pre-load the client cache with
`
`the fresh data. This can be done in bulk to avoid multiple radio requests, or on an application by
`
`application basis.
`
`From a mobile application's [200] point of view, the proxy is transparent and no
`
`modifications are needed in the way the application uses the 'connections. Proxy-aware mobile
`
`applications [212] may also be implemented, and can provide additional information about the
`
`connection characteristics to the proxy client.
`
`In some embodiments, the present invention offers benefits with respect to network
`
`usage, in that by serving requests from the local cache, the proxy client reduces the number of
`
`requests that are done over the wireless network. Further, the proxy client and the proxy server
`
`5
`
`Page 8 of 49
`
`
`
`may filter irrelevant data from the communicated data. The proxy client and the proxy server
`
`may also accumulate low priority data and send it in batches to avoid the protocol overhead of
`
`sending individual data fragments. The proxy client and the proxy server may compress or
`
`transcode the traffic, reducing the amount of data sent over a wireless network. The signaling
`
`traffic in a wireless network is reduced, as the wireless network is used less often by optimizing
`
`small bursts away and the network traffic can be synchronized among individual applications.
`
`With respect to the battery life of a mobile device, by serving requests from the local
`
`cache, the proxy client reduces the number of times the radio module is powered up. The proxy
`
`client and the proxy server may accumulate low priority data and send it in batches to reduce the
`
`number oftimes and/or amount oftime when the radio is powered up. The proxy client may
`
`synchronize the network usage by performing the hatched data transfer for all connections
`
`simultaneously.
`
`In some embodiments, the present invention may be used in the case of home screen
`
`widget polling for data using HTTP, as shown in Figure 4. In the normal flow of operation, the
`
`widget performs a HTTP request to the data provider server [405, 406]. If the data has been
`
`updated, the widget refreshes itself. The widget waits for a small period of time and starts over at
`
`the initial step. With respect to using a distributed proxy, the widget performs a HTTP request
`
`via the proxy client [ 407, 408]. The proxy client detects the connection type to be a HTTP GET
`
`request. The proxy client checks the local cache for any previous information about the request.
`
`If the locally stored response is not available, the client updates all information about the
`
`request and the time it was made for later use. The client sends the request to the proxy server
`
`and the server performs the request and returns the results. The client stores information about
`
`the result and returns the result to the requestor. If the same request has occurred multiple times
`
`(within a certain time period) and it has often yielded same results, the client notifies the proxy
`
`server that the request should be monitored for result changes [409]. If the request was marked
`
`for monitoring, the client will store the results into its local cache. If the locally stored response
`
`is available, the client will return the response from the local cache without performing
`
`communication over the wireless network [ 413].
`
`6
`
`Page 9 of 49
`
`
`
`Independently of the widget or client operation, the server proxy will perform the
`
`requests marked for monitoring to see whether the response has changed [ 41 0]. Whenever an
`
`unexpected response is received for some request, the server will notify the client that the
`
`response has changed and that the locally stored response on the client should be erased or
`
`replaced with a new response [ 416]. A subsequent data request by the client results in the data
`
`being returned from the proxy server [ 417, 418]. A benefit of using the distributed proxy in this
`
`case is that the wireless network is only used whenever the content for the widget has actually
`
`changed; the traffic required to check for the changes is not done over the wireless network. This
`
`reduces the amount of generated network traffic and shortens the total time and the number of
`
`times the radio module is powered up on the mobile device, thus reducing battery consumption.
`
`With respect to polling for changes in a mailbox, in the normal flow of operation, the
`
`mail client opens a connection to the mail server, the mail client authenticates with the server and
`
`queries for new email, and if new mail has arrived, a notification is shown. The mail client then
`
`closes the connection. The mail client waits for a period of time and starts over. A variation is to
`
`leave the connection open and start over at the second step after a predetermined period of time.
`
`In the context of a distributed proxy, the mail client opens a connection to the mail server
`
`via the proxy client, the proxy client detects the traffic type and·the chosen application logic
`
`module simulates a mail server authentication, and the proxy client looks up from the local
`
`database whether information about the particular mail connection is available. If the information
`
`is not available, the connection is routed to the proxy server, the proxy server establishes a
`
`connection to the mail server and performs authentication using the data from the mail client, the
`
`data between the mail client and the mail server is directly routed through the proxy connection,
`
`and when the mail client closes the connection, the proxy client may choose to leave the actual
`
`connection to the backend open and store information about the connection into the local
`
`database for later use ifthe same mail connection has been used frequently. If the information is
`
`available, the client proxy will continue to simulate mail server responses for the mail client for
`
`all queries for which it has the data available. If the mail client performs an operation that cannot
`
`be simulated by the proxy client, the proxy client will route the data to the proxy server and the
`
`7
`
`Page 10 of 49
`
`
`
`proxy server will pass the data to the mail server and route the data between the two. The proxy
`
`server may need to re-establish the connection to the mail server at this point. When the mail
`
`client closes the connection, the proxy client may choose to continue to store information about
`
`the connection for later use or it may request the proxy server to terminate the mail server
`
`connection and remove any information about the connection from the database.
`
`Independently of the mail client or the proxy client, the proxy server will query the mail
`
`server for any changes that the mail client has previously queried. If any information in the mail
`
`server has changed, the proxy server will notify the proxy client to stop simulating any responses
`
`based on locally cached data in order to let the mail client receive the changed data from the mail
`
`server.
`
`Embodiments of the present invention mitigate application protocol keep-alive traffic.
`
`Existing application protocols may provide long lived connections that allow servers to push
`
`updated data to the client without the need of the client to periodically re-establish the
`
`connection or to periodically query for changes. However, the client needs to be sure that the
`
`connection remains usable by periodically sending some data, often called a keep-alive message,
`
`to the server and making sure the server is receiving this data. While the amount of data sent for
`
`a single keep alive message is not significant and the keep-alive interval for an individual
`
`application is not too short, the cumulative effect of multiple applications performing this
`
`operation individually will amount to small pieces of data being sent very frequently. Frequently
`
`sending bursts of data in a wireless network results in high battery consumption by a mobile
`
`device due to the constant need of powering the radio module. Each burst will also require a
`
`significant amount of signaling traffic in a wireless network compared to the actual data being
`
`sent. By using the inventive distributed proxy model, the proxy client can prevent the keep-alive
`
`messages (or at least many of them) from being sent over the network and the proxy server can
`
`independently generate the required keep-alive messages to maintain the actual backend
`
`connection.
`
`In alternative embodiments, the proxy client can be implemented directly into the TCPIIP
`
`stack of the device operating system. The proxy client can be bundled into a wireless modem to
`
`8
`
`Page 11 of 49
`
`
`
`provide transparent use for the device operating system. The proxy client can also be bundled
`
`into a firewall or a router to provide transparent use for the device operating system.
`
`Alternative embodiments apply similar techniques for a variety of protocols including
`
`HTTP, HTTPS, IMAP, POP, SMTP and ActiveSync. Use of application specific protocol
`
`handlers allows for optimization of any protocol that can be port mapped to a hander in the
`
`distributed proxy.
`
`Activity Session Method
`
`In the context ofthe present invention, an activity session is a pattern of multiple mobile
`
`application use by a mobile user that can be "predicted" (or otherwise anticipated or expected)
`
`based on contextual clues available to a mobile client proxy or to a proxy server in a distributed
`
`proxy environment. Based on the prediction, a multiplex connection can be created and pre(cid:173)
`
`caching of content can be performed to support the data activity during the session, thus
`
`minimizing the signaling overhead as well as the multiplexed transaction duration. Further, in
`
`some embodiments this approach will also provide the additional benefit of an improved user
`
`experience by reducing user wait times or other sources of latency in the user experience.
`
`Connection Optimization
`
`Techniques are known in the art for reusing TCP connections, such as persistent TCP
`
`sessions and TCP connection pooling. Both techniques on the mobile client side allow
`
`previously-established TCP connections to the same server to be reused for multiple HTTP
`
`transactions, which saves connection establishment and tear-down times between transactions.
`
`However, with multiple applications running, and each establishing their own TCP connections
`
`to perhaps multiple host servers, there are still potentially many TCP connections being
`
`established during a given time of network activity.
`
`A benefit of a distributed proxy architecture (such as that described above), where each
`
`end-point (i.e., the proxy in the client and the proxy in the server) is well known by the system, is
`
`9
`
`Page 12 of 49
`
`
`
`that a single TCP connection can be used to transport all of the application traffic during an
`
`established activity session. The WebMUX and SCP protocols allow multiplexing of multiple
`
`sessions of application-level protocols (such as HTTP) over a single TCP connection. In one
`
`embodiment of the present invention, an activity session may be supported by a multiplexed TCP
`
`connection using these or a similar mechanism. In another embodiment, the activity session may
`
`be supported by a TCP connection pool, with the connection reuse enhanced by nature of
`
`connecting to a single proxy server (or proxy in a server) for all requests.
`
`Prediction Basis
`
`Mobile application usage is sporadic in nature. Generally, there are periods of user
`
`inactivity followed by periods of multiple application usage, such as where a user is updating
`
`their Facebook status, sending a Tweet, checking their email, and using other applications to get
`
`an update of their online information. This doesn't mean, however, that the mobile device is
`
`inactive during user inactivity: the device may be actively downloading new content such as
`
`advertisements, polling for email, and receiving push notifications for activities on the Internet.
`
`In some situations, the distributed proxy system and architecture described above is designed to
`
`eliminate much of this "background" data access in order to improve signaling efficiency and use
`
`of network resources.
`
`In some embodiments of the present invention, the Traffic Shaping module [301] in the
`
`server functions to categorize the activity that is being processed by the server since the last user
`
`activity session. The Traffic Shaping module creates a Potential Activity Session for each
`
`mobile device, which may include:
`
`1) A list of URLs representing host targets (push notification senders, email hosts, web
`
`services);
`
`2) For each URL, a count of pending data that is available to the user for that target URL;
`
`and
`
`3) For each URL, a last-accessed time and a frequency of access.
`
`10
`
`Page 13 of 49
`
`
`
`Once created, the data may be prioritized based on last accessed time, frequency, pending data
`
`count, or other criteria to form a prioritized list of host URL targets. This Potential Activity
`
`Session forms the basis for predicting whether a subsequent mobile device data request will
`
`activate the session (i.e., turn the Potential Activity Session into an Activity Session). The
`
`prioritization or prediction of this occurring may also be based on one or more data types or
`
`characteristics, heuristics, algorithms, collaborative filtering techniques, etc. that process data to
`
`determine a most likely behavior by a user. For example, the data processing may determine that
`
`there is a relatively high correlation between a user accessing one type of application, followed
`
`by them accessing a second application. Or, that when a user becomes active on their device
`
`after a certain amount of time, they are likely to engage in a series of actions, data requests, etc.
`
`Or, that when sufficient new data (notifications, messages, etc.) has become available to the user,
`
`they are likely to access it in a certain order (such as by activating a series of applications or
`
`generating a series of requests in a certain order).
`
`In some embodiments, or in addition to the server prediction approach described above,
`
`the client device may use contextual cues available via hardware sensors or application activity
`
`indications to predict the likelihood of the start of an activity session. For example, a client-side
`
`proxy may monitor location changes in the device to predict that a location update may be sent to
`'
`a location-based service, or may monitor user activity at certain geographical locations to set up
`
`a Potential Activity Session based on historical application usage at a particular location. The
`
`Potential Activity Session, although derived by means ofhardware context on the mobile device
`
`(e.g., the state or operating status of the device), is typically the same in structure as that created
`
`on the server.
`
`Establishing the Activity Session
`
`An Activity Session may be recognized and activated based on a Potential Activity
`
`Session by either the proxy server or the client-side proxy in the following manner. On the client
`
`side, application activity after a period of inactivity, during which a Potential Activity Session
`
`has been accumulated, may cause the client-side proxy to compare the data request to the list of
`
`host URLs in the Potential Activity Session. If the data activity matches a higher-priority entry
`
`in the URL list, based on some priority threshold, the data activity may trigger the start of an
`
`Activity Session based on the Potential Activity Session. If there is no match or a lower-priority
`
`11
`
`Page 14 of 49
`
`
`
`match, then the Activity Session may not be initiated. Other embodiments may include other
`
`prioritization schemes or priority criteria to determine when or if an Activity Session will be
`
`established. A Potential Activity Session can be recognized and converted to an Activity Session
`
`in the server in a similar manner.
`
`In some embodiments, if an Activity Session is identified by the client, the client can
`
`request a multiplexed connection be established to optimize the signaling during the session. If
`
`identified by the server, the current TCP connection opened from the device can be converted
`
`into a multiplexed session and used for the optimized connection. In an alternate embodiment,
`
`the first data request from the device can be accomplished outside of the multiplexed connection,
`
`and the multiplexed connection can be established for subsequent data transfers.
`
`Once an activity session is activated, the server can proactively cache data (e.g., access
`
`URLs anticipated by the Potential Activity Session) to allow more rapid access to content
`
`predicted by the Activity Session, and potentially "piggy-back" anticipated data onto requested
`
`data for caching in the client-side cache. These mechanisms effectively increase the availability
`
`of desired data on the client device, and shorten the duration of the connection for the current
`
`Activity Session.
`
`As examples, the following describe potential use cases for the present invention:
`
`1.
`
`3.
`
`Predicting an activity session based on push activity in the idle state:
`1. While user is sleeping, his phone has received three push
`notifications from Facebook, and five emails;
`2. When user wakes up and checks his phone, he sees these
`notifications and emails. His natural tendency is to open these two
`applications and check his emails and Face book status;
`Upon the transition from screen-lock to unlock, the server
`recognizes that based on the push activity, the user is likely to get
`access to these two applications. The device sends a state change
`notification to the server, and in response, the server sends an
`activity session indicator to the device. The server pre-caches
`information relevant to the session, and creates a persistent
`connection with the device to support the activity session;
`4. User accesses the services, and is pleased that the relevant data
`seems to be already on his device; and
`The persistent connection is managed by the device and server
`to time out based on certain criteria, to maximize device battery
`life.
`
`5.
`
`12
`
`Page 15 of 49
`
`
`
`Predicting an activity session based on a change in geographical
`ii.
`location during idle state - as a user moves between locations, the
`invention recognizes that they are likely to engage in certain requests or
`activities based on the transit route or the new location.
`
`Predicting an activity session based on receiving a phone call in idle
`m.
`state- based on previous user behavior, the invention recognizes that the
`user is likely to engage in certain behaviors upon accessing the call (such
`as checking a specific application, etc.).
`
`13
`
`Page 16 of 49
`
`
`
`ACTIVITY SESSION AS METHOD OF OPTIMIZING NETWORK RESOURCE USE
`
`What is claimed is:
`
`1.
`
`A method of optimizing use of resources used in communication between a client
`
`device and a server over a communications network, comprising:
`
`operating a proxy in the server to determine data sources that have previously
`
`been accessed by the client;
`
`operating the proxy in the server to determine data available from one or more of
`
`the data sources that has not yet been provided to the client;
`
`operating the proxy in the server to determine the last time the client accessed one
`
`or more of the data sources;
`
`processing the information determined by the proxy in the server to determine an
`
`expected sequence of data source access by the client;
`
`detecting an operational status of the client;
`
`based on the operational status ofthe client, determining if the expected sequence
`
`of data source access by the client is likely to occur; and
`
`providing to the client at least some of the data available from the one or more of
`
`the data sources that has not yet been provided to the client prior to a request from the client,
`
`when the expected sequence of data source access by the client is likely to occur.
`
`14
`
`Page 17 of 49
`
`
`
`Internet [100]
`
`[106]
`
`Caching Web
`Proxy [101]
`
`[108]
`
`SEVEN
`Traffic Harmonizer
`Server [102]
`
`~
`[1061 \
`\
`
`.
`
`[110]
`
`SMSC [103]
`
`[109]
`
`..-----
`
`...__ ____ ____.
`
`~
`[106] l ~1-1-0]......--l
`
`Mobile Clients
`[105]
`
`-
`
`-
`
`I
`
`I
`Figure 1 SEVEN Network Harmonizer System Architecture
`
`15
`
`Page 18 of 49
`
`
`
`Proxy-Unaware
`Mobne
`Application
`[200]
`
`Proxy-Aware Mobile
`Application
`[212]
`.. ~
`
`Caching
`Policy
`[204]
`
`App.
`Protocols
`[213]
`
`Client-Side Proxy API [201]
`
`I
`Client-Side Proxy [202]
`
`I
`
`r
`I'-
`
`-.,
`
`---
`
`Cache
`[203]
`. ..,. _____
`
`Traffic
`Shaping
`[205]
`
`Connection
`Management
`[206]
`
`Device Operating System
`[211]
`
`Device Context API
`[210]
`
`SMS t/F
`[2071
`
`WiFi 1/F
`[208)
`
`36/46 1/F
`[209]
`
`Figure 2 SEVEN Network Harmon