throbber
CONSERVING POWER CONSUMPTION IN APPLICATIONS WITH NETWORK
`
`INITIATED DATA TRANSFER FUNCTIONALITY
`
`When WCDMA was specified, there was no or very little attention to requirements
`
`posed by applications whose functions are based on actions initiated by the network, in
`
`contrast to functions initiated by the user or by the device. Such applications include, for
`
`example, push email, instant messaging, visual voicemail and voice and video
`
`telephony, and others. Such applications typically require an always-on IP connection
`
`and frequent transmit of small bits of data. WCDMA networks are designed and
`
`optimized for high-throughput of large amounts of data, not for applications that
`
`require frequent, but low-throughput and/or small amounts of data. Each transaction
`
`puts radio in a high power mode for considerable length of time- typically between 15-
`
`30 seconds. As the high power mode can consume as much as lOOx the power as an idle
`
`mode, these network-initiated applications drain battery in WCDMA networks very fast.
`
`The issue has been exaggerated by the rapid increase of popularity of applications with
`
`network-initiated functionalities, such as push email.
`
`The obvious lack of proper support has prompted a number of vendors to provide
`
`documents to guide their operator partners and independent software vendors to
`
`configure their networks and applications to perform better in WCDMA networks. This
`
`guidance mainly focus on two things: configuring networks to go to stay on high-power
`
`radio mode as short as possible and making periodic keep alive messages that are used
`
`to maintain an always-on TCP/IP connection as infrequent as possible. Such solutions
`
`typically assume lack of coordination between the user, the application and the network,
`
`forcing the network to guess what the application might be doing, and application to act
`
`independently of whether user actually is available for taking action on any network(cid:173)
`
`initiated activity.
`
`Page 1 of 63
`
`GOOGLE EXHIBIT 1007
`
`

`

`Embodiments of the present invention utilize a device client that provides the front-line
`
`user interface to users for accessing various services, such as push email, instant
`
`messaging, visual voice mail etc. In context of battery conservation, the Device Client
`
`observes user activity (for example, by observing user keystrokes, backlight status etc)
`
`and alters its own behavior, as well as asks the Communications Server to alter its
`
`behavior based on user activity:
`
`(1) Cumulating/batching low priority transactions originating from the device and
`
`sending them only after user has been inactive for certain period of time. Such
`
`low priority transactions may include marking emails read or unread or deleting
`
`emails. The logic is that there is no value on sending these transactions while
`
`user is engaged with the mobile device.
`
`(2) Notifying the Communications Servers when user is inactive- a certain
`
`inactivity timeout has been exceeded. On receipt of such notification, the
`
`Communication Server may throttle down the frequency of push of new
`
`transactions to the device, thus resulting in having radio on high power less
`
`frequently. The notification will only be sent to network piggybacking on a
`
`receipt of new high importance data, such as new email, for two reasons: (a) as it
`
`is the activation of radio that drains battery, sending data to network separately
`
`would essentially consume as much battery as sending it as soon as incoming
`
`data is received (a) it ensures that user, whenever back with the device, does
`
`have the high importance data (such as new email) waiting in the inbox
`
`(3) Notifying the Communications Servers once user becomes active again,
`
`requesting immediate sending of any buffered data.
`
`Additionally, the Device Client, recognizing the time criticality of specific transactions,
`
`will interact directly with the radio interface on the device, requesting transmission on
`
`lower-power radio modes (where available) for non-critical data and high-power modes
`
`Page 2 of 63
`
`

`

`for critical data- typically where the data transfer is user-initiated and user is waiting
`
`for the response.
`
`Also, the Device Client, having the ability to control and cache data transmissions, will
`
`interact directly with the radio interface on the device, requesting radio to go idle
`
`directly after a transmission if it concludes that the probability of user-initiated time
`
`critical transmission is low. This happens, for example, in cases where Device Client has
`
`observed certain period of inactivity from the user.
`
`As a further component of the presently disclosed invention is a notification server that
`
`provides a Network Server the capability to wake up the Device Client when device
`
`client is not actively connected to the Network Server. This functionality, originally
`
`invented in a patent application referenced below has a side effect of significant power
`
`conservation, as the Device Client does not need to maintain an always-on TCP /IP
`
`connection to allow the Network Server to send updates and notifications to the Device
`
`Client. The highest significance of this is that always-on TCP /IP connection requires
`
`periodic keep alives that consume significant power. The notification server allows for
`
`the switching off of keep alives altogether, as always-on TCP/IP connection is not
`
`required, thus reducing need for frequent data transfer that drains battery in especially
`
`in WCDMA.
`
`The network server acts as the communication link between the Device Clients,
`
`Communications Servers and Notification Server.
`
`Communication server act as the Device Client's and user's agent in the network,
`
`providing connectivity to user's email inbox, instant messaging community, visual
`
`voicemail inbox, VoiP community etc. Separate Communication Servers may be used to
`
`connect to different services. In context of battery conservation, it performs two tasks.
`
`Page 3 of 63
`
`

`

`(1) When notified of user inactivity by Device Client, it sustains
`
`from sending any data to the Device Client. The sending may be
`
`resumed, for example, after a specified time, or by Device Client
`
`notifying user being active again
`
`(2) In cases where Communications Server can monitor user
`
`activity in their own data storage, such as email inbox, it will
`
`batch low priority changes (such as deletes or markings as
`
`read/unread) until inactivity is observed. The activity in the
`
`mailbox can be considered as a proxy that user is active on some
`
`other interface to their mailbox, such as their PC, and thus not
`
`actively expecting updates to their mobile device.
`
`Page 4 of 63
`
`

`

`APPENDIX A
`APPENDIX A
`
`Page 5 0f 63
`
`Page 5 of 63
`
`

`

`Batching of Low Priority Changes
`
`Current design of Cava assumes that the IP connection is always on and immediately
`sends any and all changes to the other end point. This leads to the 'real time' always up
`to date experience but also to large and undesirable battery drain. The battery drain
`comes from radio over-head introduced by the device when it sends data. Sending data
`turns out to be the expensive operation from a power consumption point of view not
`keeping a connection up. Any time the radio is used to send data- regardless the size of
`data packet being sent - the radio is left in a high power state for a number of seconds.
`This causes significant battery drain.
`
`This effect is especially strong in UMTS or 3G networks where a minimal radio on event
`seems to take as much at 2x that of an equivalent 2.5G or GPRS event.
`
`In order to minimize the negative battery drain effect we want a process for collecting
`low priority changes and sending them to the server in batches rather than individually.
`
`These proposed changes will affect all accounts/products and are fundamental changes
`to the 'always in sync' nature of our clients.
`
`Priority
`
`High
`Low
`Low
`Low
`High
`High
`
`Change
`(initiated on device)
`Send email
`Delete email
`(Un)read email
`Move message
`Read more
`Download
`attachment
`New Calendar event High
`Edit/change Calendar High
`event
`Add a contact
`Edit a contact
`Search contacts
`Change a setting
`Manual send/receive
`
`High
`High
`
`High
`
`Priority
`
`Change
`(initiated on server)
`Receive email
`Edit email
`
`High
`Often not
`possible to sync
`(Low if possible)
`New email in deleted Low
`items
`Low
`Delete an email
`Low
`(Un)Read an email
`Low
`Move messages
`Any calendar change High
`Any contact change
`High
`High
`Wipe/lock device
`Settings change
`High
`Any folder change
`High
`Connector restart
`High (if no
`changes nothing
`is sent)
`
`Page 6 of 63
`
`

`

`Manual sync- regardless of product should always cause a complete update of the
`inbox -high and low priority changes should be brought into sync and any data source
`reliant on a partial poll should complete a full poll and full sync in order to pick up all
`changes including folder changes, email deletes etc.
`
`1
`
`Client Changes (IP only and Hybrid IP & SMS)
`
`Batching Changes
`1.1
`Currently all changes are sent as soon as possible from the client to the server.
`
`4.
`
`Required changes
`1. The client will not automatically send low priority changes to the server.
`2. The client will always send any (all registered accounts) unsent low
`priority changes to the server with the any high priority change it sends
`or with or instead of any KA.
`3. The client will always immediately respond with any low priority
`changes if it receives data from the relay server (if a client receives data of
`any kind, including a ping from the OA admin UI, then the radio has
`been turned on and we should send low priority changes to the server
`while it is on)
`If low priority changes are still unsent after the user has been inactive on
`their device for 120 sees then any unsent changes should be sent to the
`server. The inactive time is brandable and defined by brand variable
`@client.inactivity _low _proirity _operation@ which is set to 120 sees by
`default. In other words once the inactive time has expired a batch of low
`priority changes is treated like a high priority change and is sent to the
`server.
`a. The inactively we want to track here is the user's interaction on
`the whole device where possible G2ME - will have to rely on
`activity within our client, other platforms we should use the
`device wide user activity timers).
`5. There needs to be a brandable parameter to turn this batching feature on
`and off. The default for this parameter should be on. Off may be needed
`for automated testing and load testing. Future requirements may need
`this on/off control to be visible in the client UI.
`
`Device Inactivity.
`1.1.1
`Our different platforms have to implement detection of device inactivity differently
`
`Initial cross code (C++) implementation of this feature sends a low priority change
`@client.inactivity _low _proirity _operation@ after the last low priority change has been
`received in the device. Although an improvement, this is not ideal as it does not delay a
`
`Page 7 of 63
`
`

`

`low priority change while the user reads an already 'read' emails or complete other non(cid:173)
`changing causing activities like writing an email.
`
`1.1.1.1 WinMo
`System SEVEN forms a plug-in to the base Operating System in this platform so we can
`not directly detect when a user is reading emails. The closest we can get to monitoring
`the user whole device activity is to request the device to notify us when the backlight
`turns off. The user idle logic for WinMo therefore needs to be:
`1. always send pending low priority changes with high priority changes
`2. when a low priority change comes in send it after the following wait:
`a. device screen goes idle and stays idle for
`@client.idle_delay _low _proirity _operation@ which should be set
`to 120 sees by default
`b. maximum wait= @client.max_delay _low _proirity _operation@ (set
`to 900 sees by default) from time any low priority change is
`received.
`
`If screen idle cannot be implemented then we will have to rely on a waiting@
`client.inactivity _low _proirity _operation@ after the last low priority change has been
`received in the device, as implemented in the initial coding noted above.
`
`1.1.1.2
`Symbian
`System SEVEN forms a plug-in to the base Operating System in this platform so we can
`not directly detect when a user is reading emails. The closest we can get to monitoring
`the user whole device activity is to use a device API that returns the 'time since last user
`activity' (usually a key press). The user idle logic for Symbian can then mirror that for
`WinMo.
`
`If screen idle cannot be implemented then we will have to rely on a waiting@
`client.inactivity _low _proirity _operation@ after the last low priority change has been
`received in the device, as implemented in the initial coding noted above.
`
`Brew
`
`1.1.1.3
`System SEVEN is the whole of the email application (and more) for BREW, so we have
`more options available for monitoring user activity. The closest we can get to monitoring
`the user whole device activity is to periodically poll the device to identify if the backlight
`is off. This is similar to our current polling for battery level. The user idle logic for Brew
`can then mirror that for WinMo.
`
`If screen idle cannot be implemented then we should watch the user for any interaction
`with our app (Is the Flash Engine up) and only sent low priority changes
`
`Page 8 of 63
`
`

`

`@client.inactivity _low _proirity _operation@ seconds after the user stops using us (exits
`the flash UI)
`
`Palm
`
`1.1.1.4
`System SEVEN is the whole of the email application for Palm, so we have more options
`available for monitoring user activity. The closest we can get to monitoring the user
`whole device activity is to watch for key press'. The user idle logic therefore needs to be:
`1. always send pending low priority changes with high priority changes
`2. when a low priority change comes in send it after the following wait:
`a. no device key presses are detected for
`@client.idle_delay _low _proirity _operation@ which should be set
`to 120 sees by default
`b. maximum wait= @client.max_delay _low _proirity _operation@ (set
`to 900 sees by default) from time any low priority change is
`received.
`
`If key press monitoring cannot be implemented then we should watch the user for any
`interaction with our app and only sent low priority changes
`@client.inactivity _low _proirity _operation@ seconds after the user stops using us.
`
`1.1.1.5
`]2ME
`System SEVEN is the whole of the email application but is limited to working within the
`J2ME 'sand box' on the device. Two 'styles' of J2ME exist on phones, one that supports a
`background mode and one that does not. J2ME can detect key strokes while we are in
`the foreground mode but not in background. We can also query the device screen and
`find out if the last screen load we sent is still being shown. The J2ME client also has to
`deal with the red key which acts as an immediate 'kill'. The user logic therefore needs to
`be:
`
`1. always send pending low priority changes with high priority changes
`2. add, a challenge screen, such that if a user selects 'exit' or minimizes
`(sends to background) then a screen is shown to the user Title: Pending
`Changes. Body: You have pending changes. Do you want to send them
`now? Buttons: Yes, No, If yes is pressed send them, if No then don't until
`user next opens the client, brings it into the foreground or a high priority
`event occurs (background sync). Even if the changes don't get send for a
`while the user is informed. The Application will exit without the 'pending
`changes screen when the red end key is pressed or a phone call/SMS
`interrupts our application, and the user says 'No' to a later 'Resume
`Application' prompt. In such cases changes will be sent on the next
`application start.
`3. The J2me app can only go into a background mode if either the user
`selects to minimize it which is covered in 2 above, or press' a direct
`
`Page 9 of 63
`
`

`

`suspend button. Because of the direct suspend button, we will need the
`client_max_delay. The main use case for J2ME is to open the app look at
`email and dose/minimize it again, in which case you will see the
`challenge screen covered in point 2 above. It will be rare for the app to sit
`with low priority changes so the added complexity of the
`client_idle_delay is not justified and is not needed.
`
`All connection errors and retries should apply in the same way that they currently do to
`any device data sends.
`
`The end result of these changes is that a user will be able to read and delete their entire
`inbox without causing the radio to be turned on until they have been inactive for a
`period of time. This inbox triage is one of the most common activities and currently
`causes significant battery drain.
`
`1.2
`
`Pruning Inbox
`
`While reviewing power logs it was noticed that we currently prune our inbox in 'real
`time'. In other words if the user has their preferences set to 'keep em ails 7 days old' then
`the moment that an email becomes 7 days and 1 sec old we initiate an email delete from
`the client side inbox. This requires a connection to the RS and causes a power event
`(even if a connection is present). Pruning the inbox is not time sensitive and does not
`justify additional power events. To minimize power usage we should 'piggy back'
`removal of old emails from our inbox window on other RS communications.
`
`Required changes
`6. The client will monitor for pruning events as per current behavior
`7. A 'pending' pruning event will never trigger a data transfer or connect
`8. Pending pruning event will be sent to the server with the next RS
`communication that takes place ..
`
`The result of this is that your inbox could become bloated with email that is out of your
`interest window but only if you have not received new email and have not used the
`client (sent and email, read/unread email, changed settings etc).
`
`2
`
`Server Changes- WE and EE connectors
`
`Currently the WE and EE connectors are aware of high and low priority changes and
`attempts to send all changes as soon as possible to the Relay Server(RS). The connector
`
`Page 10 of 63
`
`

`

`flags the priority of the changes in its message to the RS. If the client is connected the RS
`delivers the changes and tells the connector that the changes have been delivered. If the
`client is not connected the RS decides whether it will send an SMS to the client based
`upon whether the client can receive SMS's (is in Hybrid mode) and on the priority of the
`changes (SMS's are not sent for low priority changes). It then drops the actual changes
`and tells the Connector that they have not been delivered. When the client next connects
`(due to a KA or to the SMS arriving) then the RS tells the connector that the client has
`connected and the connector sends any undelivered changes to the RS for delivery to the
`client.
`
`Required changes
`1. The connector will not automatically send low priority changes to the
`client (the change here if to clients operating in IP only mode). (this could
`be implemented at the RS to mirror the SMS logic if that is easier)
`2. The connector will always send any unsent low priority changes to the
`server with the any high priority change it sends (confirm this is the case)
`3. The connector will always immediately respond with any low priority
`changes if it receives data from a client (if a connector receives data of any
`kind, including a settings updates, then the radio has been turned on and
`we should send low priority changes to the client while it is on). It would
`be nice to include KA' s here but currently they are handled by the RS and
`don't 'make it' to the connector.
`4. when a low priority change(s) are detected, send it/them after the
`following wait:
`a. no activity have been seen on their email for
`@server .inactivity_ WEEEconnector_delay _low _proirity _operation
`@which should be set to 900 sees (15 mins) by default
`b. maximum wait =
`@server.max_ WEEEconnector_delay _low _proirity _operation@
`(set to 1800 sees by default) from time any low priority change is
`received.
`5. The users inactivity period will be reset if the connector is restarted. The
`connector has to send a status packet so the radio price has to be paid
`anyway.
`
`All connection errors and retries should apply in the same way that they currently do to
`any connector data sends.
`
`The end result of these changes is that a user will be able to manage a full session from
`their rich client reading and deleting many emails before causing the radio on their
`phone to be turned on. This inbox triage is one of the most common activities and
`currently causes significant battery drain.
`
`Page 11 of 63
`
`

`

`3
`
`Server Changes- OWA& CE connector
`
`Currently the OW A & CE connectors have two ways to detect a change. Either they are
`notified by the data source or poll the data source and detect a change directly. OW A
`notifications and many ISP notification systems only notify us of high priority changes
`this is ideal as we then only send high priority changes to the client immediately. In
`order to pick up any other changes we complete a back ground poll periodically. The
`polling interval can be set for each ISP and defaults to 5 mins. Full details are available
`at: http://matrix.seven.com/disp1ay/Eng/Z7+Po11ing-t-and+Notifications
`The 5 minutes is for polling without notifications- if notifications are enabled, we only
`poll every 5*POLLING_INTERV AL minutes meaning mark-as-reads are discovered
`potentially 25 minutes they take place
`
`Required changes
`
`None
`
`CE always sends anything it finds in a poll to the client right away, but only high(cid:173)
`priority changes cause a trigger to be sent to the client. So marking emails as read results
`in a sync package being sent to the client, but if client is not online, the package will be
`nacked and CE knows changes weren't received, resending them in the next poll.
`
`If we receive a notification it will be for a high priority changes and so reacting to it by
`polling and sending data or an SMS is the correct thing to do.
`
`Items to consider for future improvements:
`1. The connector will always send any unsent low priority changes to the
`server with the any high priority change it sends but does not wait for
`high priority changes before sending the low priority changes, see
`description above.
`
`2. The connector will always immediately respond with any low priority
`changes if it receives data from a client (if a connector receives data of any
`kind, including a settings updates, then the radio has been turned on and
`we should send low priority changes to the client while it is on). It would
`be nice to include KA' s here but currently they are handled by the RS and
`don't 'make it' to the connector.
`CE doesn't start a poll every time it receives something from the client. It
`starts a poll based on a notification from ISP or based on the background
`poll timer
`
`Page 12 of 63
`
`

`

`3.
`
`If we find only low priority changes during a poll and they are still
`unsent after 3N mins (3 successive polls if account is not receiving
`notifications) then any unsent changes should be sent to the client. The
`number (3) should be a parameter that can be easily changed or
`optimized
`( @server.max_poll_repeats_low _proirity _operation@).
`This is not implemented as of now, and would be rather tricky to
`implement as we don't keep count on the changes that we find and send
`to the client. Paller finds the changes, but sync layer (who decides if a
`package is marked high priority or not) doesn't know the account history
`or context when deciding on sending the trigger- it simply checks if the
`package contains high priority changes.
`
`In other words if we have not found a high priority change in 3 polls we
`send the low priority changes and they would cause an SMS to be sent.
`If the account has received a notification and is in backup polling
`a.
`then the user may get low priority changes following every poll.
`In this scenario we should not wait 3N mins we should detect that
`3N<5N (our next poll) and send them immediately.
`
`All connection errors and retries should apply in the same way that they currently do to
`any connector data sends.
`
`Page 13 of 63
`
`

`

`APPENDIX B
`APPENDIXB
`
`Page 14 of 63
`
`Page 14 of 63
`
`

`

`Power Users Power Save Batching Emails
`
`Current design of Cava assumes that the IP connection is always on and immediately
`sends any and all changes to the other end point. This leads to the 'real time' always up
`to date experience but also to large and undesirable battery drain. The battery drain
`comes from radio over-head introduced by the device when it sends data. Sending data
`turns out to be the expensive operation from a power consumption point of view not
`keeping a connection up. Any time the radio is used to send data- regardless the size of
`data packet being sent- the radio is left in a high power state for a number of seconds.
`This causes significant battery drain.
`
`This effect is especially strong in UMTS or 3G networks where a minimal radio on event
`seems to take as much at 2x that of an equivalent 2.5G or GPRS event.
`
`In order to minimize the negative battery drain we want a process for collecting large
`numbers of new emails (or high priority changes) and syncing them in batches rather
`than individually. We are going to achieve this by introducing a 'power save' mode.
`This change is targeted at improving the power performance especially for users who
`receive a large number of emails during the day.
`
`These proposed changes will affect all accounts/products and are fundamental changes
`to the 'always in sync' nature of our clients.
`
`Power Save Mode (IP & hybrid SMS Mode)
`1
`The over view of this new mode is as follows:
`9. The client monitors user activity on the device (see section below). Each
`platform will do this in their own way but is it usually done with a
`backlight state API or monitoring keyboard clicks. If the user is active on
`the device, push behavior is as currently implemented. In IP only mode
`always-on-push is maintained in hybrid mode SMS triggers are
`immediately sent and responded too.
`10. After @client.inactivity _power_save_secs@ set to 1200 (20 mins) by
`default time has expired since the last end user device activity then the
`device goes into power saving mode.
`11. The client waits for the next new email to be delivered by the server
`(Connect to receive email etc) and responds with a power save RPC call
`to all the account end points it currently has registered. NOTE this
`
`Page 15 of 63
`
`

`

`requires a new Sync layer RPC. NOTE this may require multiple RPC
`calls (one per registered account) but they should be timed to use the
`same high power radio event, as each other and the reason for the power
`event in the first place (receiving an email), ie timed within milli-secs of
`each other..
`12. The power save RPC call will include a time (power save period)
`indicating to the connectors when the client next wants to receive any
`changes.
`13. The 1st, N power saving periods in a single power save event will be
`®client.push_batch_period_one_power_save_secs@ set to 900 (15 mins)
`by default long
`any additional consecutive power saving periods will be
`®client.push_batch_period_two_power_save_secs@ set to 3600 (1 hour)
`by default
`N = @server.push_batch_period_one_repeat_power_save_secs@ set to 4
`by default
`Any activity on the device takes the client out of power saving mode and
`end that particular power save event.
`If additional data is received before the end of any one power saving
`period, then the wait period communicated to the connectors will be the
`existing period - elapsed time since the power save RPC was sent.
`14. When a connector receives a power save notification from a device it
`stops sending changes (data or SMS' s) for the period of time requested
`(the wait period). At the end of the wait period any notifications received
`will be acted upon and changes sent to the device as a single event If no
`notifications come in then true push will resume with the data or an SMS
`being sent immediately to the device.
`15. The wait period must be able to be updated as the client may send
`additional power saving RPCs (with updated wait times) if multi
`accounts respond to the end of a wait period with different delays.
`16. Coordinating all connectors for a particular device (7TP) address to reach
`the end of a wait period together would be ideal but is not easily possible
`and will not be done at this time . We should maximize the chance that
`any change batches sent to the client from multiple accounts will arrive at
`the device at the same time and will only cause one power event by
`strictly adhering the to the wait periods send from the client unless the
`connector knows that it is 'running' slow or always takes x more sees to
`complete than our standard WE/EE backend. In this case the connector
`may start the poll or data collect event x sees early in order to increase the
`chance that the client will receive data at their specified time. NOTE this
`is at best going to increase our chances of hitting the powered up
`window. It is not fool proof and is an area for future optimization.
`
`Page 16 of 63
`
`

`

`17. Whenever new email comes into the client while it is in a power saving
`mode it responds with the power saving RPC to all end points currently
`registered. The next power save period will be communicated based on
`the logic in point 5 above.
`18. If the client needs to send aKA while it is in power saving mode then it
`sends the KA and reconnects if necessary.- optimizing the KA and
`reconnection logic during power saving mode is an area we will improve
`on in the future.
`19. Whenever the device detects user activity (key press' or backlight on)
`then it exits' power saving mode, if a power saving period is currently in
`progress then the client sends a power save cancel RPC to its backend
`connectors and immediately receives any changes associated with any
`pending notifications. This may require a poll to be run by the connector
`after receiving the power saving cancel RPC.If the latest power saving
`period has expired then no power save cancel RPC is required as the
`connectors will already be in normal true push operational mode.
`20. Devices should come out of and not go into power save mode if they are
`'plugged in' to charge.
`21. Quiet time hours should not affect the calculation of entering power save
`mode. However we should still respect the quiet time hours and
`disconnect during them. At the end of a quiet time the client should
`reconnect and receive any data waiting on the connector but should then
`immediately send another power save RPC if the device has not shown
`any end user activity. Note the timing here is critical so that the power
`event that receives the data should also cover the power save RPC.
`22. Power save RPCs should not be retried. We should just wait for the next
`new mail and send another power save RPC if appropriate.
`23. There needs to be a brandable parameter to turn support for power save
`mode on and off. The default for this parameter should be 'on'. Off may
`be needed for automated testing and load testing. Future requirements
`may need this on/off control to be visible in the client UI.
`24. Currently the CE server optimizes load by only polling a CE account once
`even if a user is accessing that account with two devices. We will poll the
`account any time either device/account require us too but will only send
`data to devices who want it (ie are not in power save mode).
`25. Calendar and contact changes will continue to be delivered as soon as
`they are discovered. They will also not trigger a power save response
`from the client. If we are sending calendar or contact data then we should
`send any pending email data also- if possible- this can be a future
`optimization.
`
`Page 17 of 63
`
`

`

`Note: Current load testing and automated testing environments do not allow for this
`type of delay to push delivery. The work to support this will need to be scheduled
`separately to the engineering work to initially implement the feature. It is also likely that
`this feature will increase test suite running times due to the delays being introduced -
`test builds/brands with shorter power saving periods are likely to be needed.
`
`The end result of these changes is that a user that receives multiple emails while not
`interacting with their phone will have a significantly prolonged battery life. The more
`emails a user receives the greate

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket