`Marcellino et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,135,392 B2
`Mar. 13, 2012
`
`USOO8135392B2
`
`(54) MANAGING NOTIFICATION SERVICE
`CONNECTIONS AND DISPLAYING CON
`BADGES
`(75) Inventors: Chris Marcellino, San Francisco, CA
`(US); Justin Santamaria, San
`Francisco, CA (US)
`(73) Assignee: Apple Inc., Cupertino, CA (US)
`
`(*) Notice:
`
`(22) Filed:
`(65)
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 348 days.
`(21) Appl. No.: 12/433,709
`ppl. No.:
`9
`Apr. 30, 2009
`Prior Publication Data
`US 2009/0305732 A1
`Dec. 10, 2009
`O
`O
`Related U.S. Application Dat
`pplication Uata
`e
`(63) Continuation-in-part of application No. 12/198,037.
`filed on Aug. 25, 2008.
`(60) Provisional application No. 61/059.703, filed on Jun.
`6, 2008.
`
`(51) Int. Cl.
`(2006.01)
`H04M 3/00
`(52) U.S. Cl. ..................... 455/418; 455/414.1; 455/466;
`709/203
`(58) Field of Classification Search .................. 455/418,
`455/414.1, 466; 709/201
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,410,543 A
`4/1995 Seitz et al.
`6,208.996 B1
`3/2001 Ben-Shachar et al.
`6,223,046 B1
`4/2001 Hamill-Keays et al.
`
`134f6
`
`g: R ck 338 R et al.
`- -
`2naanilan .......................
`6,650,621 B1
`1 1/2003 Maki-Kullas
`7,313,419 B2 12/2007 Islam et al.
`7.487,248 B2
`2/2009 Moran et al.
`7,522,911 B2
`4/2009 Ung et al.
`2002/0147660 A1* 10, 2002 Indence .......................... 705/26
`2003/0078076 A1* 4/2003 Kuwajima et al. ............ 455,565
`2004/0258072 A1 12, 2004 Deforche
`2006/0106806 A1* 5/2006 Sperling et al. ................. 707/10
`2006/0252530 A1* 1 1/2006 Oberberger et al. ............ 463,29
`2007/0050812 A1
`3/2007 Ebata et al. ..................... 725/40
`2007/0223408 A1
`9, 2007 Thielke et al.
`38.9: A.
`858. s st al
`SO ea.
`2009/0228566 A1
`9/2009 Sharp et al.
`2010.0030612 A1
`2/2010 Kim et al. ......................... 705/9
`OTHER PUBLICATIONS
`David Chartier, “Lots to Like About New iPhone 2.2 Software
`Update (Updated), Nov. 21, 2008, 3 pages.
`k .
`cited by examiner
`Primary Examiner — Danh Le
`(74) Attorney, Agent, or Firm — Blakely, Sokoloff, Taylor &
`Zafman LLP
`
`ABSTRACT
`(57)
`A method and apparatus to manage notification service con
`nections. In one embodiment of the invention, a mobile
`device schedules a notification service connection message
`transmission interval for each of a plurality of notification
`service connections. The mobile device also associates a noti
`fication service connection message transmission window
`with each notification service connection message transmis
`sion interval. The mobile device synchronizes transmission of
`notification service connection messages based on overlap
`ping notification service connection message transmission
`windows. Responsive to receiving a notification message on
`one of the notification service connections, an icon badge is
`displayed on the mobile device for the appropriate applica
`tion.
`
`25 Claims, 15 Drawing Sheets
`
`REGISTERWITHNOTIFICATION SERWICE
`CONNECTIONMANAGER 30
`
`SCHEDULENOTIFICATION SERVICE
`CONNECTIONMESSAGE TRANSMISSION
`WINDOWAND WAKETIME
`412
`
`MONITORNOTIFICATIONSERWICE
`CONNECTION MESSAGE TIMER 44
`
`WITHINNOTIFICATION
`SERVICE CONNECTION
`MESSAGE WINDOW3
`316
`
`
`
`N O
`
`N
`
`NO
`
`IS THE DEWICEAWAKER
`
`HASNOTIFICATION
`SERVICE CONNECTION
`MESSAGEWTNW
`ELAPSED422
`
`YES
`
`WAKE DEWICE 424
`
`GLOBALNOTIFICATION
`SERWICE CONNECTION
`MESSAGE TIMER
`EXPRED338
`
`YES
`
`
`
`826
`
`NO
`
`WAKE DEWICE .428
`
`TRANSMITNOTIFICATION
`SERVICE CONNECTION
`MESSAGE:30
`
`
`
`Page 1 of 29
`
`GOOGLE EXHIBIT 1019
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 1 of 15
`
`US 8,135,392 B2
`
`NOLLVOITddV
`
`YOSsHIOUd
`
`COT
`
`SYOMLAN
`
`ALIALLOANNOO
`
`“cya)(8)LNATa
`
`CaMSOldVa
`
`POL
`
`91FOIAATIGOW
`
`
`
`(S)HOIAUCHIIHOW
`
`OZT
`
`
`
`VIVdSJYOMLAN
`
`SSHOOV
`
`(S)LNAWATA
`
`OST
`
`TDId
`
`NOILVOMTLON
`
`T1Nd
`
`AOIAAHAS
`
`OT
`
`00T
`
`NOLLVOMILON
`NOILLVOMILON
`
`HSNd
`
`HSNd
`
`HOIAYHS
`
`HOIAMAS
`
`OCT
`
`OT
`
`Page 2 of 29
`
`Page 2 of 29
`
`
`
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 2 of 15
`
`US 8,135,392 B2
`
`
`
`ESTABLISH DATA CONTEXT 210
`
`ESTABLISH NOTIFICATION SERVICE(S)
`CONNECTIONS 220
`
`SCHEDULE NOTIFICATION SERVICE
`CONNECTION MESSAGE INTERVAL AND
`SCHEDULE DEVICE WAKE TIME 230
`
`ENTER SLEEP MODE 240
`
`PUT APPLICATION PROCESSOR TO SLEEP,
`KEEP NETWORK CONNECTIVITY ELEMENT
`AWAKE
`250
`
`WAKE APPLICATION PROCESSOR
`ACCORDING TO NOTIFICATION SERVICE
`CONNECTION MANAGER TO TRANSMIT A
`NOTIFICATION SERVICE CONNECTION
`MESSAGE 260
`
`FIG. 2
`
`Page 3 of 29
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 3 of 15
`
`US 8,135,392 B2
`
`
`
`NOTIFICATION
`SERVICE CONNECTION
`MESSAGE INDICATOR,
`RE-TRY EVENTS 364
`
`NOTIFICATION
`SERVICE CLIENT(S)
`310
`
`CALIBRATE
`SERVICE
`CONNECTION
`MESSAGE INTERVAL
`362
`
`NOTIFICATION SERVICE
`CONNECTION
`MESSAGE 374
`
`ITEM(S) OF
`INTEREST
`376
`
`REGISTER WITH
`NOTIFICATION SERVICE
`CONNECTION MANAGER 360
`
`NETWORKSTATUS 366
`
`KEEP STACK
`
`NETWORK STACK
`330
`
`SCHEDULE WAKE 370
`
`WAKE I/O
`SUBSYSTEM
`340
`
`NOTIFICATION
`SERVICE
`CONNECTION
`
`320
`
`SCHEDULE NOTIFICATION
`SERVICE CONNECTION
`MESSAGE TRANSMISSION
`INTERVAL,
`MONITOR TIMER(S) 372
`
`SYSTEM LEVEL
`TIMER(S)
`350
`
`MOBILE DEVICE 160
`
`FIG 3A
`
`Page 4 of 29
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 4 of 15
`
`US 8,135,392 B2
`
`
`
`360
`
`362
`
`NOTIFICATION SERVICE
`CONNECTION MESSAGE
`TRANSMISSION INTERVAL
`SCHEDULER
`MODULE
`322
`
`NOTIFICATION SERVICE
`CONNECTION MESSAGE
`TRANSMISSION INTERVAL
`OPTIMIZER MODULE
`323
`
`NOTIFICATION SERVICE
`CONNECTION MESSAGE
`TRANSMISSION TIMER
`MONITOR MODULE
`324
`
`NOTIFICATION SERVICE
`CONNECTION MESSAGE
`WAKE SCHEDULER
`MODULE
`325
`
`370-D
`
`NOTIFICATION SERVICE
`CONNECTION MESSAGE
`GENERATORMODULE
`326
`
`SLEEP MODE MANAGER
`MODULE
`327
`
`368-0
`
`NOTIFICATION SERVICE CONNECTION MANGER320
`
`FIG. 3B
`
`Page 5 of 29
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 5 Of 15
`
`US 8,135,392 B2
`
`REGISTER WITH NOTIFICATION SERVICE
`CONNECTION MANAGER 410
`
`SCHEDULE NOTIFICATION SERVICE
`CONNECTION MESSAGE TRANSMISSION
`WINDOW AND WAKE TIME
`412
`
`MONITOR NOTIFICATION SERVICE
`CONNECTION MESSAGE TIMER 414
`
`
`
`
`
`NO
`
`
`
`
`
`
`
`
`
`
`
`
`
`WITHIN NOTIFICATION
`SERVICE CONNECTION
`MESSAGE WINDOW2
`416
`
`YES
`
`IS THE DEVICE AWAKE?
`420
`
`HAS NOTIFICATION
`SERVICE CONNECTION
`MESSAGE WINDOW
`ELAPSED? 422
`
`
`
`YES
`
`
`
`
`
`
`
`WAKE DEVICE 424
`
`NO
`
`NO
`
`
`
`
`
`YES
`
`GLOBAL NOTIFICATION
`SERVICE CONNECTION
`MESSAGE TIMER
`EXPIRED? 418
`
`YES
`
`IS THE DEVICE AWAKE?
`426
`
`NO
`
`YES
`
`WAKE DEVICE 428
`
`TRANSMIT NOTIFICATION
`SERVICE CONNECTION
`MESSAGE 430
`
`FIG. 4
`
`Page 6 of 29
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 6 of 15
`
`US 8,135,392 B2
`
`Ns|“94s||NMOYWHD|||||||||||
`
`09
`
`|
`
`||
`
`Ors
`
`ddsS0
`
`HWILL
`
`(8=CNIA
`
`NOLLVOIdILLON
`
`TV1nd
`
`O€TAOIAWAS
`
`“S7=MOYHO)
`
`
`ceos]iyOF0€9%ez0%c]OT
`ce0€°tacoeeSennnea||aepis”|OLST|iva
` aryAATV||oss|906IV|pawsIwont!;crs|0s|trSZ|MOUNIM8PSS|MOCNIMgrsorsors
`
`
`
`|89¢(IVAN79S79S09s
`Lvad|Lvad||||||||||||||||||prs|wey1MoaNIM|MOCNIM|sb0€|0%|JAWa|.zsIzis~ScSI
`“DIVALNANAdCOIND
`0s:MOGNIM=MOCNIA|MOCNIM,
`daaTsdaaTsvsas6hIpdaaTs
`
`SIs91SzI¢
`
`oI
`
`f
`
`,
`
`LWALWA
`
`Ol
`
`NOLLVOIALLON.
`
`OLTAOIAWAS
`
`HSnd
`
`‘Of=LVAA)
`
`(OI=CNIM
`
`NOLLVOILLON.
`
`O71HOIAMUS
`
`snd
`
`‘SIS=LVAa)
`
`(S=CNIM
`
`Page 7 of 29
`
`Page 7 of 29
`
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 7 Of 15
`
`US 8,135,392 B2
`
`INITIAL
`NOTIFICATION
`SERVICE
`CONNECTION
`MESSAGE
`TRANSMISSION
`INTERVAL 610
`
`CONNECTION ACTIVE,
`INCREASE INTERVAL
`N AMOUNT 612
`
`CONNECTION INACTIVE,
`DECREASE INTERVAL YAMOUNT 614
`
`REFINED
`NOTIFICATION
`SERVICE
`CONNECTION
`MESSAGE
`TRANSMISSION
`INTERVAL 616
`
`CONNECTION ACTIVE,
`INCREASE INTERVAL
`M AMOUNT (M CN) 618
`
`EVERY ZAMOUNT
`OF TIME,
`RESET INTERVAL 623
`
`
`
`CONNECTION INACTIVE,
`DECREASE INTERVAL X AMOUNT (X< Y) 620
`
`STEADY
`NOTIFICATION
`SERVICE
`CONNECTION
`MESSAGE
`TRANSMISSION
`INTERVAL 622
`
`CONNECTION ACTIVE,
`LEAVE INTERVAL
`AT CURRENT VALUE 624
`
`CONNECTION INACTIVE,
`DECREASE INTERVAL BY HALF 626
`
`
`
`BACKOFF
`NOTIFICATON
`SERVICE
`CONNECTION
`MESSAGE
`TRANSMISSION
`INTERVAL 628
`
`FIG. 6
`
`CONNECTION INACTIVE,
`DECREASE INTERVAL
`BY HALF 630
`
`Page 8 of 29
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 8 of 15
`
`US 8,135,392 B2
`
`
`
`Text Message
`
`Calendar 722
`
`PhotoS 724
`
`Instant Message
`
`(5 () () (5.
`G5 (2) () (r.
`
`Pull Email 728
`
`StockS 730
`
`Weather 734
`
`764
`
`Social
`Networking 736
`
`Clock 738
`
`NeWS 740
`
`App. Store 742
`
`Phone 712
`
`Push Email 714
`
`Internet 716
`
`Music 718
`
`Favorite Applications 710
`
`Display Screen 715
`
`MOBILE DEVICE 160
`
`FIG. 7
`
`Page 9 of 29
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 9 Of 15
`
`US 8,135,392 B2
`
`
`
`Notification
`MeSSages
`
`NOTIFICATION MESSAGE
`MANAGER
`
`Notr Aio
`MESSAGE STORE 850
`
`Notification
`MeSSage
`
`APPLICATION(S)
`
`BADGING MODULE
`820
`
`Display Badge
`
`GRAPHICAL USER INTERFACE
`718
`
`MOBILE DEVICE 160
`
`FIG. 8
`
`Page 10 of 29
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 10 of 15
`
`US 8,135,392 B2
`
`RECEIVE NOTIFICATION MESSAGE
`910
`
`PARSE NOTIFICATION MESSAGE
`915
`
`
`
`
`
`
`
`
`
`
`
`IS THE APPLICATIONASSOCIATED WITH THE
`NOTIFICATION MESSAGE CURRENTLY EXECUTING
`920
`
`YES
`
`NO
`
`
`
`TAKE ALTERNATIVE ACTION
`925
`
`DIRECT NOTIFICATION MESSAGE TO
`THAT APPLICATION
`930
`
`
`
`
`
`
`
`IS ANICON BADGE TO BE DISPLAYED2
`935
`
`DISPLAY APPROPRIATE ICON BADGE
`ON THE DISPLAY
`940
`
`CONTINUE PROCESSING THE NOTIFICATION
`MESSAGE
`945
`
`FIG. 9
`
`Page 11 of 29
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 11 of 15
`
`US 8,135,392 B2
`
`Notification
`Messages
`
`
`
`NOTIFICATION MESSAGE
`MANAGER
`1010
`- - 1
`- - - - -
`-
`BADGING MODULE 1020
`MESSAGE STORE 1050
`
`Notification
`MeSSages
`
`Display Badges
`
`GRAPHICAL USER INTERFACE
`718
`
`APPLICATION(S)
`1040
`
`MOBILE DEVICE 160
`
`FIG 10
`
`Page 12 of 29
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 12 of 15
`
`US 8,135,392 B2
`
`
`
`RECEIVE NOTIFICATION MESSAGE
`1110
`
`PARSE NOTIFICATION MESSAGE
`1115
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`IS ANICON BADGE TO BE DISPLAYED2
`1120
`
`YES
`
`NO
`
`
`
`DISPLAY APPROPRIATE ICON BADGE
`ON THE DISPLAY
`1125
`
`IS THE APPLICATIONASSOCIATED WITH THE
`NOTIFICATION MESSAGE CURRENTLY EXECUTING
`1130
`
`NO
`
`
`
`YES
`
`TAKE ALTERNATIVE ACTION
`1135
`
`DIRECT NOTIFICATION MESSAGE TO
`THAT APPLICATION
`1140
`
`CONTINUE PROCESSING THE NOTIFICATION
`MESSAGE
`1145
`
`FIG 11
`
`Page 13 of 29
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 13 of 15
`
`US 8,135,392 B2
`
`
`
`STORE NOTIFICATION MESSAGE
`1210
`
`APPLICATION BEGINS EXECUTING
`1215
`
`DIRECT NOTIFICATION MESSAGE TO THAT APPLICATION
`1220
`
`FIG. 12
`
`Page 14 of 29
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 14 of 15
`
`US 8,135,392 B2
`
`
`
`HSV14“AATYCGYVH
`
`AVTdSIC ScEl
`
`ONISSHOOUd
`
`
`
`“'q)WALSAS
`
`(WOSSHDOUMOUOIN
`
`OCET
`
`
`
`(TVNOILdO)MOOd
`
`O9€T
`
`
`
`
`
`WOod‘AUWOWSI___\0OfET
`
`Orel
`
`(S)WAAISOSNVUL
`
`
`
`‘HLOOLANTA“D's)
`
`SSHTHMIM
`
`COLAUTTIM
`
`(TVNOILdO)
`
`06£T
`
`“cya)SAOLAACO/1
`
`WOSAND“IN.
`
`“TOULNOD
`
`
`
`COLA‘@IVOdAAN
`
`O8ET
`
`
`
`AOLAdCAVTdSIC9WATIOWLNOD
`
`OLET
`
`ClDIA
`
`
`
`ATILVTOANON
`
`
`
`“Cya)AYOWAW
`
`AYOWAN
`
`
`
`ATddNSWAMOd
`
`00¢eT
`
`
`
`(TVNOILLdO)AHOVO
`
`OLET
`
`Page 15 of 29
`
`Page 15 of 29
`
`
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2012
`
`Sheet 15 of 15
`
`US 8,135,392 B2
`
`O/I
`
`OvrT
`
`
`
`O/lYAHLO
`
`(TVYNOLLdO)
`
`OSPT
`
`OIGNV OTrT
`AOIAdCAVTdSICQIOSSHOOUdOUIIN2UATIOUWLNOO
`
`
`“)'q)WALSAS
`AVTdSIGDNISSHOOUd
`
`O9P1OcrI
`
`viDIA
`
`
`
`(S)\HOIAHCLOdNI
`
`OLFT
`
`00rl
`
`XUIOWAN
`
`O€PT
`
`
`
`ATddNSYAMOd
`
`Scrl
`
`
`
`
`
`COLASANOHdATAL
`
`
`
`(qa“OaSSATAIM
`
`(S)UHAISOSNVULL
`
`
`
`‘HLOOLANTE“D'a)
`
`
`
`SSATAUIM“UITAITIM
`
`UVINTIO
`
`Page 16 of 29
`
`Page 16 of 29
`
`
`
`
`US 8,135,392 B2
`
`1.
`MANAGING NOTIFICATION SERVICE
`CONNECTIONS AND DISPLAYING CON
`BADGES
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`This application is a continuation-in-part of U.S. applica
`tion Ser. No. 12/198,037, filed Aug. 25, 2008, which claims
`the benefit of U.S. Provisional Application No. 61/059,703,
`filed Jun. 6, 2008, which are each hereby incorporated by
`reference in their entireties.
`This application is related to co-pending U.S. patent appli
`cation Ser. No. 12/042,307, entitled “Automatic Notification
`System and Process' filed on Mar. 4, 2008.
`
`10
`
`15
`
`BACKGROUND
`
`1. Field
`Embodiments of the invention relate to the field of mobile
`device processing; and more specifically, to managing noti
`fication service connections of mobile devices and displaying
`icon badges.
`2. Background
`Users of a mobile device (e.g., laptop, palmtop, portable
`media player, Smartphone, multimedia mobile phone, mobile
`gaming systems such as a "Gameboy', etc.) may subscribe to
`one or more notification services that may periodically send
`notification messages to the mobile device. For example,
`users may subscribe to one or more “push’ email services
`(e.g., MobileMe, Microsoft Exchange ActiveSync, push
`IMAP. Yahoo! Push, etc.) or other push services (e.g., update/
`upgrade services, news services, weblog services, podcast
`services, social networking services, or other types of Ser
`vices that send notification messages to the mobile devices).
`Notification messages typically represent events of interest
`which are typically defined by the applications (e.g., new
`email indicator, new news item indicator, new podcast indi
`cator, change of online status of a social networking friend,
`etc.).
`In the case of a push email service, for example, the email
`server may automatically transmit email messages and/or
`calendar updates to the email client on the mobile device for
`the user without the user requesting the item. In other words,
`the user does not request (poll) the email server for email
`messages or other items of interest. Thus, a push notification
`service is a persistent notification service. In order to maintain
`a push notification service, the mobile device periodically
`refreshes the connection to the push notification service (e.g.,
`by transmitting a ping message to the push server).
`In addition, users may subscribe to one or more “pull
`services, such as “pull email services (e.g., IMAP, POP3). In
`a pull email service, a user periodically checks (polls) the
`email server to determine if there is new email messages. If
`there are new email messages, they are then downloaded to
`the client. Many email clients Support an automatic configu
`ration of a poll interval. For example, a user of the mobile
`device may configure a poll interval of 10 minutes for a POP3
`email account (thus the email client automatically polls the
`email server every 10 minutes to check for new email mes
`sages). In addition, notification services may be configured to
`provide network wide (e.g., Internet wide) event notification
`messages to multiple Subscribers, where notification services
`may be automatically discovered by one or more subscribers
`and/or publishers, which is described in U.S. patent applica
`tion Ser. No. 12/042,307, entitled “Automatic Notification
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`System and Process', filed on Mar. 4, 2008, which is hereby
`incorporated by reference in its entirety.
`A mobile device establishes a data context (e.g., a Packet
`Data Protocol (PDP) context) with one or more network
`elements that provide data services to the mobile device (e.g.,
`Internet Protocol traffic from the Internet) over a network
`(e.g., a cellular network Such as a Generic Packet Radio
`Services (GPRS) network, and/or a Local Area Network
`(LAN)). The data context is a logical association between the
`mobile device and the network elements, and includes infor
`mation relating to routing (e.g., IP address information),
`Quality of Service (QoS), billing, authentication, etc. Since
`maintaining a data context consumes network resources of
`the network elements, the one or more servers may teardown
`a data context associated with a mobile device if the mobile
`device is not actively using the data context. For example, if
`the mobile device is turned off (and thus is not using the data
`context and not contacting the network elements), the net
`work elements may teardown the data context after Some time
`of not receiving information from the mobile device. The
`mobile device may periodically refresh the data context to
`keep the data context connection up.
`In order to conserve battery life, a mobile device may enter
`into a reduced power mode when not connected to a constant
`power Supply and not actively being used (e.g., an idle state).
`This is typically referred to as “sleep mode. The sleep mode
`of particular mobile devices may be different depending on
`the characteristics of the mobile device. For example, in the
`case where the mobile device has network access, (e.g., cel
`lular access, WiFi access, etc.), a sleep mode may include
`temporally putting the main processor to sleep and turning off
`the display, yet keeping the radio stack in an operable func
`tion. Thus, while in sleep mode, an exemplary mobile device
`may continue to receive phone calls and/or items of interest
`from notification services (e.g., email messages from a push
`email service and/or from a pull email service). Once
`received, the mobile device may be awakened to process
`those phone calls and/or notifications. For example, a mobile
`device awakes after receiving a phone call while in sleep
`mode so a user may answer the phone call. Additionally,
`typical mobile devices typically cannot refresh the data con
`text while in sleep mode (thus, a mobile device typically
`needs to be awake to refresh a data context).
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The invention may best be understood by referring to the
`following description and accompanying drawings that are
`used to illustrate embodiments of the invention. In the draw
`ings:
`FIG. 1 illustrates an exemplary computing environment
`according to one embodiment of the invention;
`FIG. 2 illustrates an exemplary flow for a mobile device
`establishing notification service connections and scheduling
`notification service connection message transmission inter
`vals according to one embodiment of the invention.
`FIG. 3A is a block diagram illustrating a framework of an
`exemplary mobile device to manage notification service con
`nections according to one embodiment of the invention;
`FIG.3B is a block diagram illustrating an exploded view of
`the notification service connection manager of FIG. 3A
`according to one embodiment of the invention;
`FIG. 4 is a flow diagram illustrating managing notification
`service connections according to one embodiment of the
`invention;
`FIG. 5 is an exemplary graph illustrating a mobile device
`synchronizing transmission of notification service connec
`
`Page 17 of 29
`
`
`
`US 8,135,392 B2
`
`3
`tion messages based on overlapping notification service con
`nection message transmission windows according to one
`embodiment of the invention;
`FIG. 6 is an exemplary state diagram illustrating optimiz
`ing notification service connection message intervals accord
`ing to one embodiment of the invention;
`FIG. 7 illustrates an exemplary graphical user interface of
`the mobile device according to one embodiment of the inven
`tion;
`FIG. 8 is a block diagram that illustrates an exemplary
`architecture of the mobile device to process notification mes
`sages according to one embodiment of the invention;
`FIG. 9 is a flow diagram illustrating exemplary operations
`for processing notification messages according to one
`embodiment of the invention;
`FIG. 10 is a block diagram that illustrates an alternative
`exemplary architecture of the mobile device to process noti
`fication messages according to one embodiment of the inven
`tion;
`FIG.11 is a flow diagram illustrating exemplary operations
`for processing notification messages according to one
`embodiment of the invention;
`FIG. 12 is a flow diagram illustrating exemplary operations
`when an application associated with the notification message
`is not currently executing according to one embodiment of the
`invention;
`FIG. 13 is a block diagram illustrating an exemplary
`mobile device according to one embodiment of the invention;
`and
`FIG. 14 is a block diagram illustrating an exemplary
`mobile device according to one embodiment of the invention.
`
`10
`
`15
`
`25
`
`30
`
`4
`The techniques shown in the figures can be implemented
`using code and data stored and executed on one or more
`electronic devices (e.g., a mobile device (e.g., laptop, palm
`top, portable media player, Smartphone, multimedia mobile
`phone, mobile gaming system, etc.), a non-mobile device
`(e.g., desktop computer, workstation, server, etc.). Such elec
`tronic devices store and communicate (internally and with
`other electronic devices over a network) code and data using
`machine-readable media, Such as machine storage media
`(e.g., magnetic disks; optical disks; random access memory;
`read only memory; flash memory devices) and machine com
`munication media (e.g., electrical, optical, acoustical or other
`form of propagated signals—such as carrier waves, infrared
`signals, digital signals, etc.). In addition, Such electronic
`devices typically include a set of one or more processors
`coupled to one or more other components, such as a storage
`device, one or more user input/output devices (e.g., a key
`board, a keypad, a touchscreen, and/or a display), and one or
`more network connections. The coupling of the set of proces
`sors and other components is typically through one or more
`busses and bridges (also termed as bus controllers). The Stor
`age device and signals carrying the network traffic respec
`tively represent one or more machine storage media and
`machine communication media. Thus, the storage device of a
`given electronic device typically stores code and/or data for
`execution on the set of one or more processors of that elec
`tronic device. Of course, one or more parts of an embodiment
`of the invention may be implemented using different combi
`nations of Software, firmware, and/or hardware.
`A method and apparatus for managing notification service
`connections is described. In one embodiment of the inven
`tion, a mobile device (e.g., laptop, palmtop, portable media
`player, Smartphone, multimedia mobile phone, mobile gam
`ing systems such as a "Gameboy', etc.) includes one or more
`notification service clients (e.g., push notification service cli
`ents (e.g., push email clients such as Mac, Microsoft
`Exchange, push-IMAP. Yahoo! Push, etc., update/upgrade
`services, news services, weblog services, podcast services,
`etc.) and/or pull notification service clients (e.g., pull email
`clients such as POP3, IMAP, etc.)). For each notification
`service client, the mobile device independently schedules a
`notification service connection message transmission interval
`and sets a notification service connection message transmis
`sion timer. In addition, a notification service connection mes
`sage transmission window is associated with each notifica
`tion service connection message transmission interval and is
`based on the value of the notification service connection
`message transmission interval. Upon a notification service
`connection message transmission timer expiring for a par
`ticular notification service client, the mobile device transmits
`a notification service connection message for that notification
`service, and also transmits a notification service connection
`message for each other notification service whose notification
`service connection message transmission window overlaps
`that expiring transmission timer. The mobile device resets the
`notification service connection message transmission timer
`for each notification service upon transmitting a notification
`service connection message.
`In one embodiment of the invention, for each notification
`service connection, the mobile device schedules a time to
`wake the mobile device, if the mobile device is in sleep mode,
`in order to transmit a notification service connection message.
`If the mobile device is awake at a certaintime, or is awakened
`during a scheduled wake at a certain time, the mobile device
`transmits a notification service connection message for each
`notification service whose notification service connection
`message transmission window overlaps that certaintime. The
`
`DETAILED DESCRIPTION
`
`In the following description, numerous specific details are
`set forth. However, it is understood that embodiments of the
`invention may be practiced without these specific details. In
`other instances, well-known circuits, structures and tech
`niques have not been shown in detail in order not to obscure
`the understanding of this description. In other instances, con
`trol structures, gate level circuits and full software instruction
`sequences have not been shown in detail in order not to
`obscure the invention. Those of ordinary skill in the art, with
`the included descriptions, will be able to implement appro
`priate functionality without undue experimentation.
`References in the specification to “one embodiment”, “an
`embodiment”, “an example embodiment’, etc., indicate that
`the embodiment described may include a particular feature,
`structure, or characteristic, but every embodiment may not
`necessarily include the particular feature, structure, or char
`acteristic. Moreover, Such phrases are not necessarily refer
`ring to the same embodiment. Further, when a particular
`feature, structure, or characteristic is described in connection
`with an embodiment, it is submitted that it is within the
`knowledge of one skilled in the art to effect such feature,
`structure, or characteristic in connection with other embodi
`ments whether or not explicitly described.
`In the following description and claims, the terms
`“coupled and “connected, along with their derivatives, may
`be used. It should be understood that these terms are not
`intended as synonyms for each other. “Coupled' is used to
`indicate that two or more elements, which may or may not be
`in direct physical or electrical contact with each other, co
`operate or interact with each other. “Connected' is used to
`indicate the establishment of communication between two or
`more elements that are coupled with each other.
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Page 18 of 29
`
`
`
`5
`mobile device resets the notification service connection mes
`sage transmission timer for each notification service after
`transmitting a notification service connection message.
`FIG. 1 illustrates an exemplary computing environment
`100 according to one embodiment of the invention. The com
`puting environment 100 includes the mobile devices 160 and
`170 which are each coupled with one or more network data
`access elements 150. The network data access element(s) 150
`may be part of various types of networks in different embodi
`ments of the invention, including cellular networks (e.g.,
`Global System for Mobile Communications (GSM),
`Enhanced Data Rates for GSM Evolution (EDGE), General
`Packet Radio Service (GPRS), Code Division Multiple
`Access (CDMA), Universal Mobile Telecommunications
`System (UMTS), or other cellular networks), Local Area
`Networks (LANs), etc. For example, if the network data
`access element(s) 150 are part of a GSM network, the network
`data access element(s) 150 may include one or more of base
`transceiver stations (BTSs), Base Station Controllers (BSCs),
`Mobile Switching Centers (MSCs), Serving GPRS Support
`Nodes (SGSNs), etc. As another example, if the network data
`access element(s) 150 are part of a LAN, the network data
`access element(s) 150 may include one or more network
`Switches, routers, hubs, modems, etc.
`The mobile device 160 includes the application processor
`162 and the network connectivity element(s) 164 (e.g., wire
`less network connectivity elements (e.g., radio network con
`nectivity elements for cellular telephony, WiFi network con
`nectivity elements), wired network connectivity elements
`(e.g., wired network interface controller(s) (NICs))). The
`mobile device 160 communicates with the network data
`access element(s) 150 via the network connectivity
`element(s) 164, through a data context (e.g., a PDP context).
`The Wide Area Network (WAN) 140 (e.g., the Internet) is
`coupled with the network data access elements 150. The push
`notification services 110 and 120 and the pull notification
`service 130 are coupled with the WAN 140. According to one
`embodiment of the invention, a user of the mobile device 160
`accesses and uses the push notification services 110 and 120
`and the pull notification service 130 (the push notification
`services 110 and 120 and the pull notification service 130
`provide items of interest for the user). For example, the push
`notification service 110 may be providing a personal push
`email account for the user of the mobile device 160 while the
`push notification service 120 may be providing a work push
`email account for the user of the mobile device 160. As
`another example, the pull notification service 130 may be
`providing an organizational pull email account (e.g., POP3
`email account, webmail account, etc.) for the user of the
`mobile device 160.
`In one embodiment of the invention, the application pro
`cessor 162 is the central processor of the mobile device 160.
`For example, the application processor 162 processes the
`operating system(s) of the mobile device 160 (the operating
`system is not illustrated in FIG. 1 in order not to obscure
`understanding of the invention), and any applications running
`on the mobile device 160. Other well known features of
`mobile devices are not illustrated in FIG. 1 in order not to
`obscure understanding of the invention, including input/out
`put devices, memory(ies), power Supply, displays, etc.
`According to one embodiment of the invention, the mobile
`device 160 is capable of entering into a reduced power mode,
`known as “sleep mode’. For example, if the mobile device
`160 is not coupled with a constant power Supply (e.g., not
`plugged into an electrical outlet), the mobile device 160 may
`periodically enter into sleep mode to conserve battery life of
`the device. The mobile device 160 may enter sleep mode in a
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 8,135,392 B2
`
`10
`
`15
`
`6
`number of different ways, including after a period of inactiv
`ity (e.g., 30 minutes of inactivity) and/or directly by com
`mand from a user (e.g., a user may issue a command to the
`mobile device 160 to enter into sleep mode). It will be under
`stood that other mechanisms of entering into sleep mode are
`within the scope of the invention.
`During sleep mode, according to one embodiment of the
`invention, the mobile device 160 temporarily disables the
`application processor 162 (the application processor 162 may
`consume virtually no power when temporarily disabled). It
`should be understood that if the application processor 162 is
`disabled, the operating system and applications of the mobile
`device 160 are also disabled. However, according to one
`embodiment of the invention, at least some of the network
`connectivity element(s) 164 are not temporarily disabled. In
`other words, at least some of the network connectivity ele
`ment(s) 164 may continue to receive information from the
`network data access elements 150, and use power. For
`example, if the mobile device 160 has the capability of receiv
`ing phone calls and/or text messages (e.g., Short Message
`Service (SMS) messages) the mobile device 160 may keep
`awake a radio connectivity element during sleep mode in
`order to receive phone calls and/or text messages. If the
`mobile device 160 disabled the radio connectivity element,
`for example, a user of the mobile device 160 would not be able
`to receive a phone call and/or text message (e.g., a phone call
`may instead be forwarded to voice mail if supported). It
`should be understood that in order to process those received
`phone calls and/or text messages (e.g., in order for a user to
`answer an incoming phone call), the mobile device 160 awak
`ens from sleep mode (e.g., re-enables the application proces
`sor 162).
`In addition, according to one embodiment of the invention,
`the mobile device 160 includes the capability of receiving
`items of interest from the push notification services 110-120
`during sleep mode. For example, at least Some of the network
`connectivity element(s) 164 have the capability of receiving
`the items of interest from the push notification services 110
`and 120 during sleep mode (e.g., email messages, calendar
`updates, weather updates, stock updates, etc.). In one embodi
`ment of the invention, a radio network connectivity element
`receives the items of interest sent from the push notification
`services 110 and 120 during sleep mode. Thus, during sleep
`mode, if the push notification services 110 and 120 provide
`push email serv