`
`Application Information
`
`Application number::
`
`Not yet assigned
`
`Herewith
`
`Provisional
`
`Utility
`
`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::
`
`ALIGNING DATA BURSTS FROM SERVER TO
`
`Attorney Docket Number::
`
`028482-004500US
`
`CLIENT
`
`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
`
`No
`
`Secrecy Order in Parent Appl.::
`
`No
`
`Page 1
`
`Initial 11/22/1 0
`
`Page 1 of 49
`
`GOOGLE EXHIBIT 1016
`
`
`
`Applicant Information
`
`Applicant Authority Type::
`
`Primary Citizenship Country::
`Status::
`
`Given Name::
`Middle Name::
`
`Family Name::
`
`Name Suffix::
`
`Inventor
`us
`Full Capacity
`
`Mikko
`
`Tervahauta
`
`City of Residence::
`
`State or Province of Residence::
`
`Country of Residence::
`Street of Mailing Address::
`
`San Francisco
`
`CA
`us
`2015 Castro St.
`
`City of Mailing Address::
`State or Province of mailing address:: CA
`
`San Francisco
`
`Country of mailing address::
`
`US
`
`Postal or Zip Code of mailing address:: 94131
`
`Correspondence Information
`
`Correspondence Customer Number::
`
`20350
`
`Representative Information
`
`Representative Customer Number::
`
`20350
`
`Representative Designation::
`
`Representative Number::
`
`Representative. Name::
`
`Domestic Priority Information
`
`Application::
`
`Continuity Type::
`
`Parent Application:: Parent Filing Date::
`
`Page2
`
`lnitial11/22/10
`
`Page 2 of 49
`
`
`
`Foreign Priority Information
`
`Country::
`
`Application number::
`
`Filing Date::
`
`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 22, 2010
`
`Registration Number ____ ____:.3..;;_5.:..;.,9...;;.5_6 ____ _
`
`Page 3
`
`Initial 11/22/10
`
`Page 3 of 49
`
`
`
`Attorney Docket No.: 028482-004500US
`
`PROVISIONAL PATENT APPLICATION
`
`ALIGNING DATA BURSTS FROM SERVER TO CLIENT
`
`Inventor:
`
`Mikko Tervahauta, a citizen of Finland,
`
`residing at San Francisco, CA, 94131
`
`Assignee:
`
`Seven Networks, Inc.
`
`Entity:
`
`Small
`
`TOWNSEND and TOWNSEND and CREW LLP
`Two Embarcadero Center, Eighth Floor
`San Francisco, CA 94111-3834
`Tel: 415-576-0200
`
`Page 4 of 49
`
`
`
`ALIGNING DATA BURSTS FROM SERVER TO CLIENT
`
`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 of the
`
`networks connected to such a platform- either outbound wired, inbound/outbound wireless, or
`
`based solely on the cooperation with a client.
`
`In some cases, a mobile client may be receiving data from multiple sources (e.g., servers,
`
`web-sites, nodes of a network, etc.) in the service network. The router/communication network
`
`between the services and the client ensures that all services can communicate changes to the
`
`client over a single physical connection. However, a problem that may occur is that different
`
`services (without knowing of each other's actions) trigger the client to create that connection at
`
`different times, and there may be a lack of an efficient or optimal alignment of data transfer from
`
`the services to the client. Hence efficient utilization of the shared connection. is lacking (or at
`
`least minimal or sub-optimal) and at times the single connection may in reality only provide an
`
`adequate or a realistic level of service for a single service or source of data. As recognized by
`
`the present inventor, to make the alignment of data bursts (and hence the transfer of data from
`
`multiple sources) more efficient, embodiments of the invention should align the data transfer
`
`process(es) to be closer (in a temporal or other relevant sense) to the source(s) of data. In other
`
`words, in one embodiment, rather than fetching the data at random times and buffering it, the
`
`system should attempt to align all services to fetch the data at aligned intervals so that minimal
`
`in-memory buffering is required.
`
`Page 5 of 49
`
`
`
`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.
`
`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
`
`Page 6 of 49
`
`
`
`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
`
`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, benefiting 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 [105], a proxy server running in the network [102], 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 ofinstructions 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)
`
`Page 7 of 49
`
`
`
`[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
`
`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 of the above.
`
`If the proxy server is contacted regarding processing the original connection, the proxy
`
`server will utilize an appropriate application protocol module [31 0] 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 talkback 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
`
`Page 8 of 49
`
`
`
`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
`
`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 of times and/or amount of time 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 per~orms a HTTP request to the data provider server [405, 406]. Ifthe data has been
`
`updated, the widget refreshes itself. The widget waits for a small period of time and starts over at
`
`Page 9 of 49
`
`
`
`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].
`
`Independently of the widget or client operation, the server proxy will perform the
`
`requests marked for monitoring to see whether the response has changed [410]. 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 theclient results in the data
`
`being returned from the proxy server [417, 418]. A benefit ofusing 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
`
`Page 10 of 49
`
`
`
`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 if the 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
`
`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.
`
`Page 11 of 49
`
`
`
`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 ofthem) 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
`
`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.
`
`Page 12 of 49
`
`
`
`Aligning Data Bursts From Server To Client
`
`In some cases, a mobile client may be receiving data from multiple sources (e.g., servers,
`
`web-sites, nodes of a network, etc.) in the service network. The router/communication network
`
`between the services and the client ensures that all services can communicate changes to the
`
`client over a single physical connection. However, a problem that may occur is that different
`
`services (without knowing of each other's actions) trigger the client to create that connection at
`
`different times, and there may be a lack of an efficient or optimal alignment of data transfer from
`
`the services to the client. Hence efficient utilization of the shared connection is lacking (or at
`
`least minimal or _sub-optimal) and at times the single connection may in reality only provide an
`
`adequate or a realistic level of service for a single service or source of data. As recognized by
`
`the present inventor, to make the alignment of data bursts (and hence the transfer of data from
`
`multiple sources) more efficient, embodiments of the invention should align the data transfer
`
`process(es) to be closer (in a temporal or other relevant sense) to the source(s) of data. In other
`
`words, in one embodiment, rather than fetching the data at random times and buffering it, the
`
`system should attempt to align all services to fetch the data at aligned intervals so that minimal
`
`in-memory buffering is required.
`
`Background Polling
`
`As noted, to make the alignment of data bursts (and hence the transfer of data from
`
`multiple sources) more efficient, embodiments of the invention act to align the data transfer
`
`process(es) to be closer (in a temporal or other relevant sense) to the source(s) of data. In other
`
`words, in one embodiment, rather than fetching the data at random times and buffering it, the
`
`system should attempt to align all services to fetch the data at aligned intervals so that minimal
`
`in-memory buffering is required.
`
`In this regard, consider an example where client has subscribed to, or otherwise
`
`registered for the following services:
`
`Email from Yahoo!: service polls in the background every 3 0 minutes and when new
`
`notification is received;
`
`Email from generic IMAP: service every 13 minutes, no notifications are available;
`
`Page 13 of 49
`
`
`
`Smart proxying for Twitter: service polls every 4 minutes;
`
`Smart proxying for RSS client: service polls every 10 minutes; and
`
`Smart proxying for ESPN sports feed: service polls every 3 minutes.
`
`If all of these services are initialized at random times with their original polling intervals,
`
`they will spread fairly evenly across every hour. As these services do not necessarily know of
`
`each other on the server side (and such dependencies should not/would not be built between
`
`them), as recognized by the inventor, the client may be able to play a role in aligning these
`
`efforts and hence in better optimizing the data transfer(s).
`
`In some embodiments, the client needs to drive alignment across these intervals. The
`
`client knows it is relying on the server-side service to poll. When all services communicate the
`
`polling interval to the client (not to each other) the client will see the overall picture. The client
`
`needs to adjust the polling intervals in a favorable way. To make these times coincide regularly,
`
`one approach is to cause the times to be a multiple of a common factor or denominator. In the
`
`context of the above example, this denominator could be 3 minutes and adjusting the polling
`
`intervals where needed, would then yield:
`
`Yahoo!: 30=>30
`
`IMAP: 13=>15
`
`Twitter: 4=>6
`
`RSS: 10=>12
`
`ESPN: 3=>3
`
`Note that the client knows the urgency-of each service and can make a decision between
`
`rounding 4 minutes up to 6 for Twitter or compressing it down to 3 to guarantee delivery time. It
`
`can also make sure that the common intervals are based on, not necessarily the smallest interval
`
`(here 3 minutes), but on the smallest hard interval (meaning the smallest interval that cannot be
`
`extended). In this example, the delivery time requirement on Twitter could make the client base
`
`Page 14 of 49
`
`
`
`all intervals on 4 minutes to ensure the Twitter requirement is met while other intervals are
`
`rounded up rather than down.
`
`Next, the client needs to come up with a value for (to), a mutual starting point for each
`
`poll. When the client communicates this data back to the services, there may be significant
`
`delays in that data arriving, so to stay synchronized, the client cannot just say to is the present
`
`time. The start time needs to be anchored to the same absolute point in time across the services.
`
`·The servers are typically in UTC and are using NTP to stay at the same time, which provides one
`
`way of solving this problem. The client can pick a minute mark and communicate this to the
`
`server. This minute mark can be random, and the point is that all the services will base to on the
`
`next occurrence ofthis minute mark (say :13). The minute mark could be up to 59 minutes away
`
`in the future, and to avoid the delay or inefficiency of not polling for 59 minutes, the services
`
`may calculate any necessary polling intervals back from to as well.
`
`Now that the client has communicated the data burst schedule to the services, it is up to
`
`the services to make sure that they are ready to send data at specified intervals, not just starting
`
`the poll at specified intervals. The service can use average polling times from the past to make
`sure it is ready to send data in the aligned burst most of the time - although sometimes the poll is
`
`delayed and the service will inevitably miss the mark. The logic described above does not
`
`guarantee 100% alignment on all data bursts, but is expected to significantly improve the
`
`probability of multiple services aligning their communication to the client in cases where they
`
`. find new data to send to a client within a poll.
`
`Other Issues/Embodiments
`
`How to make sure client is connected at these marks in case there are changes. The above
`
`solution works pretty well for always-on clients, but may need adjustment for triggered
`
`clients;
`
`Notification based services: Yahoo! may receive a notification at any point in time. There
`
`are at least two options here:
`
`Page 15 of 49
`
`
`
`o Yahoo! poller polls and sends data immediately, aligns next background poll
`
`according to original plan
`
`o Client tells all services the common basis of the intervals (in the above example, 3
`
`minutes): Yahoo! poller schedules pulling the new email and sending it to the
`
`client at the earliest shared interval (this can be calculated by going back from
`
`Yahoo!s own polling interval one 3 minute step at a time)
`
`Page 16 of 49
`
`
`
`ALIGNING DATA BURSTS FROM SERVER TO CLIENT
`
`What is claimed is:
`
`1.
`
`A method of transferring data from a plurality of sources across a network,
`
`comprising:
`
`determining a polling interval for each of the plurality of data sources;
`
`determining a revised value for the polling intervals for each of the plurality of
`
`data sources, the revised value being a multiple of a number representing the smallest of the
`
`determined polling intervals;
`
`determining a start time to initiate polling for each of the plurality of data sources;
`
`and
`
`communicating the start time and revised polling interval to each of the plurality
`
`of data sources.
`
`Page 17 of 49
`
`
`
`Internet [10£1
`
`~
`~~. --.......,..__.-·
`
`[106]
`
`Caching Web
`Proxy [101]
`
`[108]
`
`SEVEN
`N,etwork H:armoni:zer
`Server [102)
`
`[110]
`
`SMSC[109]
`
`[109]
`
`)...-.---.___ ___ _..
`
`~109)
`
`Mobile Clients - _
`[105]
`
`I
`
`I
`Figure 1 SEVEN Network Harmonizer System Architecture
`
`Page 18 of 49
`
`
`
`Proxy-Un a-war.e
`Mobile
`Appl icatioo·
`[200]
`
`Proxy-Awa reMobile
`Appl icatioo:
`[2.12]
`
`·~"'
`
`;:)
`
`Cac:hin·="
`Policy
`[204)
`
`.App.
`Protocols
`[21.3]
`
`Client-Side-Pr~ [202.)
`
`I
`
`I Cl ient-Sid;.e Prmy API [20fJ
`-
`
`,..,.
`t"......
`
`""""'
`
`Cache
`[203]
`---
`
`Traffic
`Shaping
`[2.05]
`
`Connect on
`Management
`[206]
`
`Oevic.e Operating System
`[211.]
`
`!lev ice Conte:«: Ji,PI
`[210]
`
`SMSI/F
`[207)
`
`YliFi 1/F
`[208)
`
`3G/4G 1/F
`[209]
`
`Figu re.2. SEVEN Network Harmonizer Client Arch it:ecture
`
`Page 19 of 49
`
`
`
`Web
`.Acce:ss
`[309]
`
`Caching
`Pol icy [3001
`
`.A.ppl icatioo
`Protocols
`[310]
`
`Proxy Control
`Protocol
`[306]
`
`Hybrid Control
`Protocol
`[300]
`
`Control
`Protocol
`[307]
`
`SMSC..ontrol
`P'rotocol
`[305]
`
`Traffic Shaping
`[301]
`
`Connection
`M.a nag.ement
`[302]
`
`Conne<ction and
`Content Metadata
`OB [303]
`
`o.evice Information
`OB [304]
`
`F ig·u re 3 SEVEN Network H armoniler Server Architecture
`
`Page 20 of 49
`
`
`
`I Home Screen I
`
`Widget [400]
`
`I Client-Side I
`
`Proxy [401)
`
`I Caching Web I
`
`Proxy [402]
`
`I Traffic Harmonizer I
`
`Server[403j
`
`I Data Provider Server I
`
`[404]
`
`Data Request [405]
`
`Data Response [406]
`
`Proxied Data Request [4C ]
`
`roxied Data Response [4 8}
`
`i'
`
`M£ rltor Data Request [409j
`
`Proxied Data Request~ 12j
`
`., Request Satisfied From ocal Cache [413]
`'
`
`Invalidate Notificatlor [416]
`
`,_,.
`>
`
`Proxied Data Request~ 17!
`
`/ Request Satisfied From piching Web Proxy {418J
`"
`
`Monitor Data [410j
`
`Same Response [411}
`
`Monitor Data [414]
`
`Changed Response [415j
`
`Figure 4 SEVEN Network Harmonizer Distributed Proxy Polling
`
`Page 21 of 49
`
`
`
`Electronic Patent Application Fee Transmittal
`
`Application Number:
`
`Filing Date:
`
`Title of Invention:
`
`ALIGNING DATA BURSTS FROM SERVER TO CLIENT
`
`First Named Inventor/Applicant Name:
`
`Mikko Tervahauta
`
`Filer:
`
`Alan D. Minsk/Stacy Villa rose
`
`Attorney Docket Number:
`
`028482-004500US
`
`Filed as Small Entity
`
`Provisional Filing Fees
`
`Description
`
`Fee Code
`
`Quantity
`
`Amount
`
`Sub-Total in
`USD($)
`
`Provisional Application filing fee
`
`2005
`
`1
`
`110
`
`110
`
`Basic Filing:
`
`Pages:
`
`Claims:
`
`Miscellaneous-Filing:
`
`Petition:
`
`Patent-Appeals-and-Interference:
`
`Post-Allowance-and-Post-Issuance:
`
`Extension-of-Time:
`
`Page 22 of 49
`
`
`
`Description
`
`Fee Code
`
`Quantity
`
`Amount
`
`Sub-Total in
`USD($)
`
`Miscellaneous:
`
`Total in USD ($)
`
`110
`
`Page 23 of 49
`
`
`
`Electronic Acknowledgement Receipt
`
`EFSID:
`
`Application Number:
`
`8888201
`
`61416020
`
`International Application Number:
`
`Confirmation Number:
`
`9767
`
`Title of Invention:
`
`ALIGNING DATA BURSTS FROM SERVER TO CLIENT
`
`First Named Inventor/Applicant Name:
`
`Mikko Tervahauta
`
`Customer Number:
`
`20350
`
`Filer:
`
`Alan D. Minsk/Stacy Villa rose
`
`Filer Authorized By:
`
`Alan D. Minsk
`
`Attorney Docket Number:
`
`028482-004500US
`
`Receipt Date:
`
`22-NOV-201 0
`
`Filing Date:
`
`TimeStamp:
`
`Application Type:
`
`Payment information:
`
`Submitted with Payment
`
`Payment Type
`
`Payment was successfully received in RAM
`
`RAM confirmation Number
`
`Deposit Account
`
`Authorized User
`
`14:54:22
`
`Provisional
`
`yes
`
`Deposit Account
`
`$110
`
`1433
`
`201430
`
`The Director of the USPTO is hereby authorized to charge indicated fees and credit any overpayment as follows:
`
`Charge any Additional Fees required under 37 C.F.R. Section 1.16 (National application filing, search, and examination fees)
`
`Charge any Additional Fees required under 37 C.F.R. Section 1.17 (Patent application and reexamination processing fees)
`
`Page 24 of 49
`
`
`
`Charge any Additional Fees required under 37 C.F.R. Section 1.19 (Document supply fees)
`
`Charge any Additional Fees required under 37 C.F.R. Section 1.20