`US 6,714,791 B2
`(10) Patent No.:
`Friedman
`(45) Date of Patent:
`Mar.30, 2004
`
`
`US006714791B2
`
`(54) SYSTEM, APPARATUS AND METHOD FOR
`LOCATION-BASED INSTANT MESSAGING
`
`(75)
`
`Inventor:
`Jackie Friedman, Seattle, WA (US)
`.
`.
`.
`.
`(73) Assignee: Danger, Inc., Palo Alto, CA (US)
`:
`-
`:
`.
`.
`(*) Notice:
`Subjectto any disclaimer, the term of this
`patent is extended or adjusted under 35
`US.C. 154(b) by 403 days.
`
`11/1999 Layson, Jr.
`5,982,281 A
`8/2000 Robert etal.
`6,104,712 A
`...... 709/207
`6,301,609 B1 * 10/2001 Aravamudanet al.
`6,539,232 B2 *
`3/2003 Hendrey et al... 455/456
`............ 455/456
`6,542,748 B2 *
`4/2003 Hendreyet al.
`
`...... . 455/456
`6,542,749 B2 *
`4/2003 Tanaka et al.
`.
`vie 455/456
`4/2003 Hendreyet al.
`6,542,750 B2 *
`
`
`eee 455/412
`2002/0077080 Al *
`6/2002 Greene occ
`8/2002 Eskin ....ccccccccsseee 380/270
`2002/0101993 AL *
`
`8/2002 Boss et al... 455/456
`2002/0115446 A1 *
`FOREIGN PATENT DOCUMENTS
`
`(21) Appl. No.: 09/792,547
`
`(22)
`
`Filed:
`
`Feb. 23, 2001
`
`wo
`
`WO00/50844
`
`8/2000
`
`OTHER PUBLICATIONS
`
`(65)
`
`Prior Publication Data
`
`Copy of PCT Search Report dated Dec. 4, 2002, 3 pages.
`
`US 2002/0119789 Al Aug. 29, 2002
`* cited by examiner
`Int, C1. coc eccceeccsteseesessessesesneseeses H04Q 7/20
`(SL)
`Primary Examiner—William Trost
`(52) US. Ch on. 455/456.1; 455/457; 455/456.2;
`Assistant Examiner—Danh C Le
`455/412.1; 455/414.1; 455/519; 455/41.2;
`(74) Alttorney, Agent, or Firm—Blakely, Sokoloff, Taylor &
`709/202; 709/204; 709/206; 709/209; 707/1;
`Zafman LLP
`ABSTRACT
`.
`_ 10713; 701957)
`
`(58) Field of Search oc 455/456.1, 412.1,
`455/414.1, 519, 41.2, 456.2, 457; 709/202,
`A computer-implemented method comprising: transmitting
`204, 206, 209; 707/1, 3, 9
`positional data identifying a wireless device’s position
`.
`responsive to a first user transmitting a message from the
`References Cited
`wireless device to one or more other users; and transmitting
`the positional data to the one or more other users.
`U.S. PATENT DOCUMENTS
`
`(56)
`
`5,537,460 A
`
`7/1996 Holliday, Jr. et al.
`
`35 Claims, 11 Drawing Sheets
`
`Jackie’s Location-Based Buddy List 1100
`
`
`
`
`Name
`Location
`
`
`Send Message?
`Distance
`Messages
`Alert at
`Dave
`156 Univ, Palo Alto
`1410
`
`
`
`
`
`
`
`
`
`
`
`
`a
`
`
`
`
`
`
`
`
`
`
`
`Google Exhibit 1015
`Google Exhibit 1015
`Google v. Mullen
`Google v. Mullen
`
`
`
`U.S. Patent
`
`Mar.30, 2004
`
`Sheet 1 of 11
`
`US 6,714,791 B2
`
`
`
`BdIAEq|eUOd
`
`OSL
`
`09}UITWel|
`
`GQ
`
`L‘Sls
`
`
`
`U.S. Patent
`
`Mar. 30, 2004
`
`Sheet 2 of 11
`
`US 6,714,791 B2
`
`yute/ieuog
`
`40zzfves
`
`ifleHedJOZL
`
`4IOMION
`
`OSLorl
`
`
`edlAeqWUsI|D|elOd
`
`
`
`002
`
`OIpeY
`
`UOI}EYS
`
`OL?
`
`6Old
`
`
`
`
`
`
`U.S. Patent
`
`Mar.30, 2004
`
`Sheet 3 of 11
`
`US 6,714,791 B2
`
`(1)Aouanbaly|
`
`JaWIeD-qnS
`
`0ce
`
`
`
`Jaleoolpny
`
`OLE
`
`€‘Sls
`
`
`
`[euBisolpey
`
`00€
`
`
`
`(vy)apnyyjduiy
`
`
`
`US 6,714,791 B2
`
`410
`
`FIG.4
`
`U.S. Patent
`
`Mar.30, 2004
`
`Sheet 4 of 11
`
`=
`
`°a
`
`LO
`ad
`NN
`lok
`LOSS
`t+ OD
`EGE© iS
`areate
`
`wy
`<
`=
`
`>
`
`
`
`U.S. Patent
`
`Mar.30, 2004
`
`Sheet 5 of 11
`
`US 6,714,791 B2
`
`Aejdsig
`
`Ja|jouyuos)
`
`GZS
`
`WVpedyajeing
`
`Ors
`
`GOG49|/OJJUOSOISIA]
`
`oes
`
`JEule}xXy
`
`
`AiowayyJay}esde}u}
`oss0eS
`’beeeeaeeeneeaenfeeeeee
`
`XOQ|OO|
`
`
`
`(eyedfeHOd‘\opesueiBosdosoy
`~‘¢
`
`see“77
`
`uolyeolunWWOZ
`
`BORLOU|
`
`OZS
`
`
`
`
`
`
`
`
`
`
`
`
`Plug-in installed?
`620
`
`Transmit
`625
`
`
`
`
`U.S. Patent
`
`Mar.30, 2004
`
`Sheet 6 of 11
`
`US 6,714,791 B2
`
`
`
`START 600
`
`Searchfor plug-in
`615
`
`
`
`
`
`
`Search for portal device
`630
`
`
`Implement standard
` Device attached?
`login procedure and/or
`
`register user on portal
`
`635
`640
`
`Automatically log in
`user to portal
`645
`
`Upload/Download to
`client &/or portal device
`650
`
`
`
`END 660
`
`FIG. 6
`
`
`
`U.S. Patent
`
`Mar.30, 2004
`
`Sheet 7 of 11
`
`US 6,714,791 B2
`
` Z°Sls
`
`oisnu/ebew!
`
`epey
`
`0zZ.ood
`
`
`
`\yul)pesodwa1\
`
`
`
`Burmwesbosg|euOd
`
`OcZ
`
`
`1049S/enoyy[a|y/uyed]eBew
`afeu|OLZ
`
`
`
`aisnyyAe|d
`
`
`
`
`
`Gel[ayy/uyed]oisny
`
`Gi2
`
`
`
`U.S. Patent
`
`Mar.30, 2004
`
`Sheet 8 of 11
`
`US 6,714,791 B2
`
`SNOILVHSdOAS ML866LEES
`
`OL8
`
`‘ONAoy
`
`
`
`AdyDALIBDOYe
`
`8‘Sid
`
`SNOLLVYsdOAA
`
`AdyWwsuelle
`
`0c8
`
`
`
`
`
`
`
`
`OLL(S)4aAJag[eLOdjeyWOd
`
`
`
`
`
`
`
`BupyomyenBd1Aeq
`
`-801A0q
`
`payeuuo4
`
`
`
`a6xedepe}u|OSL
`
`jUa}U0Deyeq/sddyO16(xoqjo0}‘6:a)eyeq9sddy
`
`U.S. Patent
`
`
`
`
`
`
`
`Mar.30, 2004
`
`Sheet 9 of 11
`
`US 6,714,791 B2
`
`cv6
`
`
`
`Byeq/sddyLb6
`
`O€L
`
`OSJOUla}U]6:2)|-|
`
`
`
`
`
`puepueysJOULOU]oyjjoeds
`}@UJeLU|sjsenbeySLE21807
`
`
`
`-BJEMDIEH Ov6
`
`PL6(WHY‘b'e)svempreH
`
`UOISJOAUOD
`
`026a/npoy
`
`jOUIS}U]
`
`s}senbey
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Mar.30, 2004
`
`Sheet 10 of 11
`
`US 6,714,791 B2
`
`
`
`(aolAepBulssaoqd
`
`EUYOSHJO)Bd1AEqeo$,g18S/)s
`
`
`BIENSSOIQIIM
`
`ByeqseuoNisog‘‘
`
`sobesseyy+\,
`zzok
`
`LSOL
`
`
`
`
`
` 10)BDIABG[BUOY§,DJASNSy‘N
`
`
`
`
`
`PyepSS9{a1IMJBY1O
`
`
`
`(ao1AepBuisseoold
`
`cSOL
`
`OlSis
`
`
`
`10)Bd1AQqJed§,¥48SQ
`
`Jeuaysod
`
`
`eepSsajaJIMJAUIO
`
`(go1iaepBuisseooid
`
`sabessayyJOMI9+B1eq1YON
`
`OSOL
`
`OZOLOOOL
`
`
`
`+Bjeqjeuonisod
`
`sobessayy~s,
`LZOLss.
`
`leUOd
`
`JAIaS
`
`OLL
`
`uolye007
`
`OLoLGuiyoes
`
`‘SalOld
`
`Bulbessayy
`
`Ajaansoadsa.
`
`
`
`
`
`“LOL‘ELOL‘ZLOL
`
`uoneinByuoy9‘a‘Vv4esn
`
`
`
`U.S. Patent
`
`Mar.30, 2004
`
`Sheet 11 of 11
`
`US 6,714,791 B2
`
`|<pes>||<pes>|ee
`
`¢abessaypuas
`
`
`
`
`
`OOLE3sI7Appngpaseg-uoyes07s,a\yoer
`
`
`
`LL“Sis
`
`aaeq
`
`sor
`
`Apuy
`
`hew
`
`
`
`
`
`
`US 6,714,791 B2
`
`1
`SYSTEM, APPARATUS AND METHOD FOR
`LOCATION-BASED INSTANT MESSAGING
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`This invention relates generally to the field of network
`data services. More particularly, the invention relates to an
`apparatus, system and method for providing voice portal
`services on a wireless network.
`
`2. Description of the Related Art
`“Portals” are World Wide Web (“WWW”) sites which
`help users manage and navigate through vast amounts of
`information stored on the Internet. Some well known Inter-
`
`net portals include “Yahoo!®,” AltaVista ®, and Excite®.
`Portals typically provide search features which allow users
`to search for particular types of content by entering key-
`words. In response to the keyword search request, the portal
`returns links to relevant Internet sites and/or relevant content
`stored directly on the portal. For example, if a user enters the
`keyword “snowboarding,” the portal may return a list of
`hyperlinks to Internet sites related to snowboarding as well
`as internal portal categories related to snowboarding (e.g.,
`“Recreation >Sports >Snowboarding”).
`In addition to the keyword search and content manage-
`ment capabilities described above, portals may also provide
`users with a variety of network applications such as, for
`example, email, electronic scheduling and contact
`management, chat groups, newsgroups, personal financing,
`and instant messaging, to namejust a few.
`“Instant messaging” refers generally to the ability to send
`and receive messages over a network in real time. Various
`types of instant messaging services may be provided by
`portals and internet service providers (e.g., America Online).
`Typically, an instant messaging program (also commonly
`referred to as “buddy list” program) installed on a client
`computer or wireless device may be programmedto inform
`users when anyindividuals in their list of “buddies”(e.g.,
`colleagues, workgroup members, friends, .
`.
`. etc) log onto
`the network so they can communicate (e.g., via instant
`messaging, chat groups, email, etc). The program also
`notifies them if a “buddy” sends them an instant message.
`
`SUMMARY
`
`A computer-implemented method comprising: transmit-
`ting positional data identifying a wireless device’s position
`responsive to a first user transmitting a message [rom the
`wireless device to one or more other users; and transmitting
`the positional data to the one or more other users.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`A better understanding of the present invention can be
`obtained from the following detailed description in conjunc-
`tion with the following drawings, in which:
`FIG. 1 illustrates an exemplary network architecture used
`to implement elements of the present invention.
`FIG. 2 illustrates another exemplary network architecture
`used to implement elements of the present invention.
`FIG. 3 illustrates a radio signal including its sub-carrier in
`the frequency domain.
`FIG. 4 illustrates an external view of a portal device
`according to one embodiment of the invention.
`FIG. 5 illustrates an internal view of a portal device
`according to one embodiment of the invention.
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`FIG. 6 illustrates a process according to one embodiment
`of the invention wherein a user is logged in to a portal server.
`FIG. 7 illustrates a visual programming interface accord-
`ing to one embodiment of the invention.
`FIG. 8 illustrates portal device communication according
`to one embodimentof the invention.
`
`FIG. 9 illustrates one embodiment of a portal device
`communicating with a portal server.
`FIG. 10 illustrates an embodimentof the invention which
`
`employs location-based instant messaging.
`FIG. 11 illustrates a location-based buddylist according
`to one embodiment of the invention.
`
`DETAILED DESCRIPTION OF PREFERRED
`EMBODIMENTS
`
`the purposes of
`for
`In the following description,
`explanation, numerous specific details are set forth in order
`to provide a thorough understanding of the present inven-
`tion. It will be apparent, however, to one skilled in the art
`that the present invention may be practiced without some of
`these specific details. In other instances, well-knownstruc-
`tures and devices are shown in block diagram form to avoid
`obscuring the underlying principles of the present invention.
`AN EXEMPLARY NETWORK ARCHITECTURE
`
`Elements of the present invention may be included within
`a client-server based architecture 100 such as that illustrated
`
`in FIG. 1. According to the embodiment depicted in FIG. 1,
`a portal server 110 communicates with clients 140 and other
`network servers 130 over a network 120 (e.g., the Internet).
`The network 120 over which the clients 140 and servers 110,
`130 transmit and receive data may be comprised of any
`combination of private (e.g., leased) and/or public commu-
`nication channels. These may include, for example, Digital
`Signal (“DS”) channels (e.g., DS-3/T-3, DS-1/T1), Synchro-
`nous Optical Network (““SONET”) channels (e.g., OC-3/
`STS-3),
`Integrated Services Digital Network (“ISDN”)
`channels, Digital Subscriber Line (“DSL”) channels, cable
`modem channels and a variety of wireless communication
`channels including satellite broadcast and cellular channels.
`In addition, various networking protocols may be used to
`support communication across the network 120 including,
`for example, the Asynchronous Transfer Mode (“ATM”),
`Ethernet, and Token Ring (at the datalink level); as well as
`Transmission Control Protocol/Internet Protocol (“TCP/
`IP”), Internetwork Packet Exchange (“IPX”), AppleTalk and
`DECnet(at the network/transport level). It should be noted,
`however, that the principles of the invention are not limited
`to any particular communication channel or protocol.
`The portal server 110 in one embodimentincludes a user
`database for storing various types of user configuration and
`account data. Users may register and login to the portal
`server 110 from a client 140 by specifying a user ID and/or
`password. According to one embodiment, a user connects to
`the servers 110, 130 via a browser application such as
`Netscape Navigators™ or Microsoft Internct Explorer™
`which communicates via the Hypertext Transfer Protocol
`(hereinafter “HTTP”).
`In one embodiment, users may configure the portal server
`110 to retrieve and managespecific types of information. For
`example, a user may configure the portal server 110 to
`retrieve up-to-date stock quotes for a specified set of stocks
`(e.g., reflecting the user’s portfolio), to collect the weather
`forecast for the user’s hometown, and/or to retrieve recent
`articles relating to a particular sports franchise. The portal
`
`
`
`US 6,714,791 B2
`
`3
`server will then retrieve the specified information from other
`servers (e.g., server 130) on behalf of the user.
`In addition to information retricval and management, in
`one embodimentthe portal server 110 also provides appli-
`cation services such as email, online scheduling (e.g.,
`appointments, to-do lists, etc), instant messaging, contact
`management, word processing and a variety of other online
`services. Users may access these services by logging in to
`the portal server 110 with a valid user ID and password. In
`one embodiment, the portal server 110 generates a unique,
`personalized Web page for each user containing linkstoall,
`or a subset of, the information and/or services subscribed to
`by the user.
`EMBODIMENTS OF THE INVENTION
`
`In one embodiment, a portal device 150 stores and pro-
`cesses user-specified information and/or programsas well as
`non-user-specified information/programs (e.g.,
`targeted
`advertisements based on the user’s profile). The
`information/programs may be transmitted to the portal
`device 150 through the client 140, and/or directly via
`wireless broadcast(asillustrated in FIG. 2 and described in
`detail below). Thus, the portal device 150 in this embadi-
`ment is a removable extension of the portal server 110,
`storing a subset of the information and services maintained
`by the portal server 110 on behalf of the user. For example,
`a user may configure the portal server 110 to periodically
`download the user’s to-do list (or other scheduling data) to
`the portal device (e.g., every morning, every two hours,
`every time the user connects the portal device to the client
`140, etc). When the user leaves the office, he/she can simply
`take the portal device with him/her and view his/her sched-
`ule throughout the day.
`The timing of the information/program download may
`depend on the particular embodiment of the portal device
`150. For example,
`if a wireless embodiment
`is used
`(described below) downloads may occur at any time when
`the portal device 150 is within wireless transmission range,
`whereas if a non-wireless embodiment is used, downloads
`maybelimited to periods of time whenthe portal device 150
`is connected to the portal server 110.
`In one embodiment, the user may customize the portal
`device 150 preferences and content which will be down-
`loaded to the portal device 150 from the portal server 110.
`This may be accomplished, for example, byselecting certain
`preferences/content from a portal server 110 Web page(e.g.,
`by using an online programming interface as described
`below). For example,
`the user may choose to have each
`day’s to-do list downloaded to his portal device 150 and may
`also program the device 150 (e.g., via the portal server 110)
`to continually display the next scheduled eventfor the day.
`Various other user interface and content-based data may be
`transmitted to the portal device 150 from the portal server
`110 while still complying with the underlying principles of
`the invention.
`
`Client Link
`
`As illustrated in FIG. 1, one embodiment of the portal
`device 150 communicates to the portal server 110 via a
`communication link 160 with the client 140. The commu-
`
`nication link may be established via a physical I/O connec-
`tion with the client 140 such as a Universal Serial Bus
`(“USB”)interface or a communication (“serial”) interface.
`Alternatively, the communication link 160 may be a wireless
`link such as an Infrared I/O channel or a radio frequency
`(“RF”) I/O channel.
`
`10
`
`15
`
`30
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`link 160 is
`the client
`In one particular embodiment,
`formed using a capacitively-coupled communication chan-
`nel. As is known in the art, a capacitor is any dielectric
`sandwiched between two conductive elements.
`In this
`embodiment, one of the two conductive elements is located
`within the portal device 150 and the second of the two
`conductive clements is located external to the portal device
`150 and is communicatively coupled to an I/O port of the
`chent 140. For example,
`in one embodiment,
`the second
`conductive element may be disposed within user’s mouse
`pad. According to this embodiment, the user may simply
`place the portal device on the mouse pad to set up the
`capacitive communication link 160 with the client 140. It
`should be noted, however, that various other client links 160
`may be employed while still complying with the underlying
`principles of the invention.
`
`Direct Radio Broadcast
`
`In one embodiment, illustrated in FIG. 2, data and/or
`programs are transmitted to the portal device 150 from the
`portal server 110 over an RF link 220. In this embodiment,
`the organization maintaining the portal server 110 and/or
`implementing other features of the system and method
`described herein (hereinafter the “portal organization” or
`“PO”), may lease a portion of the RF transmission band-
`width from one or more radio stations 210. Tt should be
`
`that various RF transmission techniques
`noted, however,
`may be used without departing from the underlying prin-
`ciples of the invention.
`Referring to FIG. 3, in one particular embodiment, the PO
`will use the radio station’s sub-carrier frequencyband 320 to
`transmit data and/or programs to the portal device 150. As
`it is knowninthe art, radio stations are licensed a sub-carrier
`frequencyblock 320 along with the audio carrier frequency
`block 310. Although some radio stations use the sub-carrier
`frequency block 320 (e.g., for foreign-language broadcast),
`most do not. As such, the present embodiment provides a
`mechanism for transmitting data over an infrequently-used
`wireless transmission channel.
`To further conserve bandwidth within the sub-carrier
`frequency block 320, in one embodiment, the data transmit-
`ted over the RF link 220 is not addressed to any one specific
`portal device. Rather, in this embodiment, the data is simply
`transmitted (¢.g., with a tag that identifies the data) and is
`sensed by any portal device(s) 150 listening within the
`sub-carrier block 320. This type of addressing will be
`referred to herein as “data addressable” addressing (in
`contrasl to “device addressable addressing in which a device
`address is associated with the transmitted data). The indi-
`vidual portal devices 150 that sense the various data trans-
`missions may ignore them or may take some other specified
`action (e.g., store and display the transmitted data), depend-
`ing on how the devices 150 are configured. For example, a
`portal device 150 may be configured bya user to track stock
`quotes for stocks within his/her portfolio and to ignore all
`other stock quotes. Similarly, the user may configure the
`portal device 150 to listen for local weather reports, local
`newsheadlines, and/or any other information which may be
`accessed bythe user directly at the portal server 110.
`In one embodiment,
`the data broadcast in a particular
`geographical region will be selected based on the numberof
`users in that region who haveregistered on the portal server
`110 and/or the types of data requested by users in the region.
`For example, if no users in the region have configured the
`portal server 110 to gather a particular stock quote, then the
`portal server 110 will not transmit that stock quote over the
`
`
`
`US 6,714,791 B2
`
`5
`RFlink 220 in that region. Similarly, the portal server 110
`may be configured to only transmit
`local data such as
`weather and local news in the local broadcast region to
`which the weather and newspertains(i-e., where it will most
`likely be requested). Broadcasting data selectively in this
`mannerwill further improve bandwidth over the RF link 220
`(i.e., by reducing unnecessary data transmissions).
`In one embodiment, portal devices 150 may be addressed
`directly (e.g., by including the device’s serial number or
`other ID code in an addressfield of the data transmission).
`This embodiment may be provided by the PO to users as a
`“premium”service, under which the user pays an additional
`fee to receive personally-addressed information over the
`sub-carrier 360 (¢.g., email messages, daily schedules,etc),
`as well as the more general information described above.
`Users of this embodiment may be charged on a subscrip-
`tion basis and/or on a per-use basis, depending on the
`embodiment. Of course, other pricing models may be
`employed while still complying with the underlying con-
`cept. The PO may also employ this embodiment under
`certain emergencysituations (e.g., where it is crucial that a
`particular user receive a data transmission immediately).
`Embodiments of the Portal Device
`
`10
`
`15
`
`FIG. 4 illustrates an external view of one embodiment of 5
`a portal device 420 which may be used as a key chain. As
`shown,this embodiment includes a is key chain ring 410 for
`securing a set of keys (or other personaleffects) to the device
`420. Also illustrated is a display 430 for displaying various
`types of portal data. In one embodiment the display is a
`Liquid Crystal Display (“LCD”). Of course, other display
`technologies may be implemented while still complying
`with the underlying principles of the invention (c.g., Light
`Emitting Diode (“LED”) displays). Also included is a set of
`control buttons 440 and 441 for selecting menu items and/or
`jumping back and forth between stored portal data and a
`control knob 450 for scrolling between menu items and/or
`data. In one embodiment, the control knob 450 rotates on an
`axis whichis substantially perpendicular to the plane of the
`display 430.
`Additional attachable embodiments of the portal device
`150 include a necklace configuration, a pockct watch
`configuration, and a sports configuration (e.g., wherein the
`portal device is strapped firmly around a user’s arm). In the
`latter configuration, the shell of the portal device may be
`comprised of a waterproof material to avoid water damage
`to the internal components of the device.
`As illustrated in FIG. 5, one embodiment of the portal
`device 150 is comprised generally of a microcontroller 505,
`an external memory 550, a display controller 575, and a
`battcry 560. The cxtcrnal memory 550 may be uscdto store
`programs and/or portal data 565 transmitted to the portal
`device 150 from the portal server 110 (e.g., via client 140
`and/or radio station 210). In one embodiment, the external
`memory 550 is non-volatile memory (e.g., an electrically
`erasable programmable read only memory (“EEPROM”); a
`programmable read only memory (“PROM”), etc).
`Altematively, the memory 550 may be a volatile memory
`(e.g., random access memoryor “RAM”) but the data stored
`therein may be continually maintained via the battery 560.
`The battery 560 in one embodimentis a coin cell battery
`(e.g., of the same type used in portable electronic devices
`such as calculators and watches). In one embodiment, when
`the battery power decreases below a threshold level,
`the
`portal device 150 will notify the user and/orthe portal server
`110. The portal server 110 in one embodiment will then
`automatically send the user a newbattery.
`
`6
`The microcontroller 505 of one embodiment is comprised
`of a central processing unit (“CPU”) 510, a read only
`memory (“ROM”) 570, and a scratchpad RAM 540. The
`ROM 570is further comprised of an interpreter module 520
`and a toolbox module 530.
`The toolbox module 530 of the ROM 570 contains a set
`
`of toolbox routines for processing data, text and graphics on
`the portal device 150. These routines include drawing text
`and graphics on the portal device’s display 430, decom-
`pressing data transmitted from the portal server 110, repro-
`ducing audio on the portal device 150, and performing
`various input/output and communication functions (e.g.,
`transmitting/receiving data over the client link 160 and/or
`the RF link 220). A variety of additional portal device
`functions maybe included within the toolbox 530 while still
`complying with the underlying principles of the invention.
`In one embodiment, microprograms and portal data 560
`are transmitted from the portal server 110 to the external
`memory 550 of the portal device via a communication
`interface 570 under control of the CPU 510. Various com-
`
`munication interfaces 570 may be employed without depart-
`ing from the underlying principles of the invention
`including, for example, a Universal Serial Bus (“USB”)
`interface or a serial communication (“serial”) interface. The
`microprograms in one embodiment are comprised of
`compact,
`interpreted instructions known as “bytecodes,”
`which are converted into native code by the interpreter
`module 520 before being executed by the CPU 510. One of
`the benefits of this configuration is that when the
`microcontroller/CPU portion of the portal device 150 is
`upgraded(e.g., to a faster and/or less expensive model), only
`the interpreter module 520 and toolbox 530 of the ROM
`needs to be rewritten to interpret
`the currently existing
`bytecodes for the new microcontroller/CPU.In addition,this
`configuration allows portal devices 150 with different CPUs
`to coexist and execute the same microprograms. Moreover,
`programming frequently-used routines in the ROM toolbox
`module 530 reduces the size of microprogramsstored in the
`external memory 550,
`thereby conserving memory and
`bandwidth over the client link 160 and/or the RI’ link 220.
`In one embodiment, new interpreter modules 520 and/or
`toolbox routines 530 may be developed to execute the same
`microprograms on cellular phones, personal information
`managers (“PIMs”), or any other device with a CPU and
`memory.
`
`One embodiment of the ROM 370 may be comprised of
`interpreted code as well as native code written specifically
`for the microcontroller CPU 505. More particularly, some
`toolbox routines may be written as interpreted code (as
`indicated by the arrow between the toolbox 530 and the
`interpreter module 520) to conserve memory and bandwidth
`for the same reasons described above with respect to micro-
`programs. Moreover, in one embodiment, data and micro-
`programsstored in external memory 550 maybe configured
`to override older versions of data/microprograms stored in
`the ROM 570(e.g., in the ROM toolbox 530).
`
`Data Compression
`
`As described above, microprogramsand portal data may
`be transmitted to the portal device 150 in a compressed
`format. As such, in one embodiment, decompressionlogic is
`programmedinto the microcontroller ROM 570 (e.g., within
`the toolbox 530) and is used to interpret and/or decompress
`the microprograms/data as they are received.
`In one embodiment, a plurality of uncompressed data is
`stored in the ROM 570, and codes identifying the uncom-
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`
`
`US 6,714,791 B2
`
`7
`pressed data are transmitted across the RF link 220 and/or
`client link 160. For example,
`instead of transmitting the
`entire market code for a particular stock, such as “MSFT”
`for Microsoft, a compressed code, e.g., “M,” may be trans-
`mitted to the portal device 150 instead. The ROM 570 inthis
`embodiment may include a lookup table (or similar decode
`logic) for retricving the real markct code “MSFT,”using the
`compressed code, “M.” Oncethe real code is retrieved from
`the ROM 570,it may be displayed on the portal device 150
`as illustrated in FIG. 4. It should be noted, however, that the
`underlying principles of the invention may be practiced
`using a variety of coding schemes and/or digital compres-
`sion techniques.
`
`User Registration and Authentication
`One embodiment of the invention will now be described
`
`with reference to the flowchart of FIG. 6. Accordingto this
`embodiment, when a user initially connects to the portal
`server 110 (e.g., from client 140), the portal server 110 will
`determine whether a portal device plug-inis installed on the
`user’s Web browser(at 615). As is knowninthe art, plug-ins
`are auxiliary programs added to Web browsers to provide
`them with new levels of functionality. One embodimentof
`the present invention uses a plug-in to coordinate commu-
`nication between the portal server 110, the client 140, and
`the portal device 150. In addition, the plugin may convert
`and/or compress “standard” portal programs/data (e.g.,
`programs/data meant to be executed on the client 140) into
`microprograms/data that
`the portal device can properly
`interpret, as described herein. If the plug-in is not installed,
`the portal server 110 may automatically transmit and install
`it on the client 140 (at 625).
`At 630,
`the portal server 110 (c.g., via the plug-in)
`determines whetherthe portal device is currently attached to
`the client 140. If the device 150 is attached then, in one
`embodiment, the portal server 110 will automatically log the
`user in. The portal server 110 may automatically authenti-
`cate the portal device 150 via a serial number and/or a user
`authentication key embedded/stored in the device 150. Once
`the user is logged in to the portal server, he/she can then
`transmit data to and from the portal device 150 as described
`herein.
`
`If the device 150 is not attached, however, then the portal
`server 110 may implement a standard user name/password
`login procedure and/or mayregister the user (at 640). During
`the registration process the user may be asked to respond to
`a series of questions relating to his/her background (e.g.,
`hobbies, education, career, etc). The portal server 110 may
`use this information to personalize the content collected and
`provided to the user and/or to target ads to the user based on
`the user’s preferences. In addition, at this point the user may
`be provided with an opportunity to configure the portal
`server 110 to gather and manage specific information on
`behalf of the user (e.g., particular stocks, sports scores,
`news, etc) and/or to provide the user with access to certain
`online applications (e.g., email, electronic scheduling, etc)
`as described herein.
`
`Online Programming Interface
`
`In one embodiment, registered users are provided with an
`online visual programminginterface such asthat illustrated
`in FIG. 7. Under this embodiment users may construct their
`own microprograms to be executed onthe portal device 150
`and/or the client 140. For example, a user may define a
`programming block as a hyperlink which points to a par-
`ticular piece of data or series of data (e.g., a current stock
`
`10
`
`15
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`quote for AT&T, the San Francisco weather forecast, etc)
`and may also indicate how frequently the data associated
`with the hyperlink is to be updated. Multiple such blocks
`may be chained together to create a continual sequence of
`information to be displayed on the portal device 150 or the
`client 140. The particular programs generated by users may
`depend on whether a wircless portal device 150 is being
`used. For example, a microprogram designed to download
`up-to-date stock quotes may require a wireless connection to
`the portal server 110 to be effective.
`As illustrated in FIG. 7, users may also program anima-
`tion and/or sound into the portal device 150. For example,
`block 710 points to a particular imagefile (e.g., a bitmapfile)
`and block 715 points to a particular music file (e.g., a
`Musical Instrument Digital Interface or “MIDI” file). The
`user may cause the image to moveacross the display 430 of
`the portal device 150 in a specified direction by program-
`ming block 720 (e.g., using X and Y coordinate data).
`Concurrently, the user may program block 725 to play the
`music track identified in block 715. ‘lemporal
`link 722
`indicates that the movement of the image and the playback
`of the music track are to take place simultaneously. Pro-
`grammingblock 720 indicates that the music and image will
`both fade out to end the program.
`In one embodiment, standard image and/or music files
`stored on the client 140 are converted to a format which the
`portal device can interpret (e.g., using a conversion module
`which may includedin the client plug-in). For example, the
`melody line may be extracted from a MIDIfile and trans-
`mitted to the portal device as a series of notes. Similarly,
`bitmap or JPEG images may be converted so that they are
`properly displayed on the portal device display 430, which
`in one embodiment is a black & white LCD display.
`
`Portal Key Operations
`
`In one embodiment, each portal device 150 includes a
`portal key which uniquely identifies the device,
`the user
`and/or particular data on the portal server. The key may
`either be permanently embeddedin the device (e.g., the key
`maybe the serial number) or,alternatively, may be selected
`manually by the user (e.g., the user’s ID on the portal server
`110) or may be assigned to the device by the portal server
`110.
`
`Regardless of how the portal key is generated, as illus-
`trated in FIG. 8, in onc cmbodiment users may exchange
`keys between portal devices. Specifically, portal device 810
`is shownreceiving a portal key (key no. 5331998TW)from
`portal device 820. In one embodiment, when the user of
`portal device 810 connects to the portal server 110 after
`receiving the portal key, he/she will be provided with access
`to information and/or services associated with the portal key.
`For example, the user of portal key 820 may store personal
`and/or business-related information on the portal server 110
`which he/she wants to share with the user of portal device
`810.
`
`Several portal key applicat