`(10) Patent N0.:
`US 6,714,791 B2
`
`Friedman
`(:45) Date of Patent:
`Mar. 30, 2004
`
`U5006714791B2
`
`(54) SYSTEM, APPARATUS AND METHOD FOR
`LOCATION-BASED INSTANT MESSAGING
`
`(75)
`
`Jackie Friedman, Seattle, WA (US)
`
`Inventor:
`.
`~
`(73) ASSlgnee' Danger’ Inc"Pa10 Aho’ CA (Us)
`.
`.
`'
`.
`.
`.
`(*) Nome"
`subJeCt.t° any dISCIalmerz‘heterm Ohms
`Pate“t 15 mended or “9115th under 35
`U.S.C. 154(b) by 403 days.
`
`11/1999 Layson, Jr.
`5,982,281 A
`8/2000 Robelt et 111.
`6,104,712 A
`6,301,609 B1 * 10/2001 Aravamudan el al.
`
`...... 709/207
`
`............ 455/456
`3/2003 Hendrey et al.
`6,539,232 B2 *
`455/456
`4/2003 Hendrey et al.
`6,542,748 B2 *
`......
`455/456
`4/2003 Tanaka et al.
`6,542,749 B2 *
`.
`455/456
`4/2003 Hendrey et al.
`6,542,750 B2 *
`..... 455/412
`6/2002 Greene
`2002/0077080 A1 *
`..... 380/270
`8/2002 Eskin
`2002/0101993 A1 *
`
`8/2002 Boss et al. .................. 455/456
`2002/0115446 A1 *
`FOREIGN PATENT DOCUMENTS
`
`
`
`(21) Appl. No.2 09/792,547
`
`(22)
`
`Filed:
`
`Feb. 23, 2001
`
`wo
`
`W000/50844
`
`8/2000
`
`OTHER PUBLICATIONS
`
`(65)
`
`Pri0r Publicati0n Data
`
`Copy of PCT Search Report dated Dec. 4, 2002, 3 pages.
`
`US 2002/0119789 A1 Aug. 29. 2002
`
`* cited by examiner
`
`Int. Cl.7 .................................................. H04Q 7/20
`(51)
`(52) US. Cl.
`................. 455/456.1; 455/457; 455/456.2;
`455/4121; 455/414.1; 455/519; 455/412;
`709/202; 709/204; 709/206; 709/209; 707/1;
`
`Primary Examiner—William Trost
`Assistant Examiner$anh C Le
`(74) Attorney, Agent, or Firm—Blakely, Sokoloff, Taylor &
`Zafman LLP
`
`7073; mm (57)
`.
`(58) Field of Search ........................... 455/4561, 412.1,
`455/4141, 519, 41.2, 456.2, 457; 709/202,
`204, 206, 209; 707/1, 3, 9
`_
`References CltEd
`U.S. PATENT DOCUMENTS
`
`(56)
`
`A computer-implemented method comprising: transmitting
`positional data identifying a Wireless device’s position
`responsive to a first user transmitting a message from the
`Wireless device to one or more other users; and transmitting
`the positional data to the one or more other users.
`
`ABSTRACT
`
`5,537,460 A
`
`7/1996 Holliday, Jr. et al.
`
`35 Claims, 11 Drawing Sheets
`
`
`
`Jackie‘s Location-Based Buddy List 1100
`
`
`
`
`
`
`m_—w-—
`
`
`m
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`LYFT 1009
`
`LYFT 1009
`
`1
`
`
`
`US. Patent
`
`mw,
`
`hS
`
`uM
`
`US 6,714,791 132
`
`M09.xcjEgo
`
`1of.m8386:9;
`r.o:mE96
`_..0."—
`
`2
`
`
`
`
`
`
`
`
`oo_>oo.mtomE20
`
`02
`
`US 6,714,791 B2
`
`1coughH06mm
`
`SN
`
`N.0."—
`
`mxhxS\
`
`own
`
`ow...
`
`ov—
`
`E:“E4x0x0x2\0,xw\ourm{0352
`
`_mtoa
`
`530w
`
`o:
`
`US. Patent
`
`mum
`
`3
`
`
`
`
`
`
`US. Patent
`
`Mar. 30, 2004
`
`Sheet 3 of 11
`
`US 6,714,791 132
`
`SAocmzcmiA
`
`5:80me
`
`own
`
`SEE29$
`
`05
`
`m.6."—
`
`35m23m
`
`com
`
`3»€2qu<
`
`4
`
`
`
`US. Patent
`
`Mar. 30, 2004
`
`Sheet 4 0f 11
`
`US 6,714,791 B2
`
`410
`
`440
`
`Q5
`
`'
`I;
`m
`E
`>-
`E
`
`441
`
`450
`
`L0
`N“!
`Ln'rx
`we)
`
`"I;
`%LL
`(1)0)
`E
`
`3.
`5
`a
`1‘
`E
`
`FIG.4
`
`5
`
`
`
`US. Patent
`
`Mar. 30, 2004
`
`Sheet 5 of 11
`
`US 6,714,791 132
`
`.9:me
`
`EoEwE
`
`omm
`
`LQQEBE
`
`owm
`
`x0908
`
`omm
`
`$520
`
`5:9:50
`
`mhm
`
`2%8229an
`
`2%
`
`mom\_®__O\_EOOO‘_O__>_
`
`III\\\
`
`\Smofitoa,xLoBmESmoaeoi\
`
`oothE
`
`Ohm
`
`cozmoEzEEoo
`
`IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
`
`6
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Mar. 30, 2004
`
`Sheet 6 0f 11
`
`US 6,714,791 B2
`
`
`
`START 600
`
`
`
`Search for plug-in
`615
`
`
`
`Plug-in installed?
`620
`
`
`
`
`
`
`
`Transmit
`
`625
`
`Search for portal device
`630
`
`
`Implement standard
`login procedure and/or
` Device attached?
`
`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
`
`7
`
`
`
`US. Patent
`
`Mar. 30, 2004
`
`Sheet 7 of 11
`
`US 6,714,791 132
`
`mum;
`
`o_m:E\mmmE_
`
`own
`
`
`
`mEEESoEaEton
`
`__o‘_om\m>o_>_
`
`oomE_
`
`can
`
`
`
`oEEwingmmmé
`
`h.0."—
`
`
`
`o_m:_>_>m._n.
`
`mNh
`
`4
`
`a
`
`,,x:__:20qu
`
`NNN
`
`
`
`EEfig22.2
`
`m:
`
`8
`
`
`
`US. Patent
`
`Mar. 30, 2004
`
`Sheet 8 of 11
`
`US 6,714,791 132
`
`05
`
`sz_._.<m_m_n_O
`
`>m_v_ 2,5858.02>81
`
`
`
`>m¥0330mm.
`
`w.0."—
`
`
`
`szF<mmmO>m_v_
`
`
`
`>3.=Emcm.._..
`
`cum
`
`9
`
`
`
`
`US. Patent
`
`Mar. 30, 2004
`
`Sheet 9 of 11
`
`US 6,714,791 132
`
`
`
`29:898%?2m08202$398w3%
`
`-338
`
`nmzmctou
`
`2.fl
`
`
`
`9283qu@253oEErwiwwatomEton
`
`momtmE.omr
`
`555250
`
`owm2255.
`
`3r:9:—
`
`Bmwscwm
`
`ovm
`
`
`
`
`
`
`
`vrm:>E<rmdvEmBEmI
`
`New
`
`
`
`magma?:5
`
`09.
`
`gmESE;m.G—m
`
`
`
`
`
`EmUSBw659:.050QO
`659:.flaws—5mm5o_mo._
`
`
`.9935:
`
`10
`
`10
`
`
`
`
`
`
`US. Patent
`
`4w
`
`1
`
`US 6,714,791 132
`
`
`
`L8@250atomwbma:
`
`Emu39235:8
`
`603%053805
`
`mmor
`
`or.0."—
`
`80$me//+MEDECOEwOQ
`
`mmLoymoSwDEton.Mm353X,,SRom/x
`1@cm52«N2,,w803%96.385
`$33.22+/awwamm®_m.__>>1550@EmaECOEmOQ/.,
`
`
`
`
`
`22026039.w@4.................ex:.22,2:
`
`a303%mcammooa333%x1_03528:93:80MEmu329:5$50+NEDown:9.28:O.m._<.33
`
`
`r..omowone..moEEn.
`3VmoSmQEtonm,<6w:.mcoamom8:80..
`
`
`
`
`_mtom
`
`Lwaww
`
`o2.
`
`11
`
`11
`
`
`
`US. Patent
`
`Mar. 30, 2004
`
`Sheet 11 0f 11
`
`US 6,714,791 132
`
`
`
`co:Hm:>Uvsmummmméozmog99x02.
`
`
`
`
`
`cw:
`
`In."
`
`mummmmos.ucommomammos.
`_Emwommwms.02
`E.F$3me02
`Emmummmm—zoz
`|l|||
`_Eooom>2ato>262m2.
`_Emm.92can.SE:09.
`
`_Em3.8Emmtoom>mo
`
`E.
`
`.0."—
`
`12
`
`12
`
`
`
`
`
`
`
`
`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 rcsponsc 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 name just 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 programmed to inform
`users when any individuals 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 from 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
`
`’
`
`40
`
`45
`
`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 embodiment of the invention.
`
`FIG. 9 illustrates one embodiment of a portal device
`communicating with a portal server.
`FIG. 10 illustrates an embodiment of the invention which
`
`employs location-based instant messaging.
`FIG. 11 illustrates a location-based buddy list 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-known struc-
`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 embodiment includes 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 NavigatorsTM or Microsoft Internet ExplorerTM
`which communicates via the Hypertext Transfer Protocol
`(hereinafter “HTTP”).
`In one embodiment, users may configure the portal server
`110 to retrieve and manage specific types of information. For
`example, a user may configure the portal server 110 to
`retrieve up-to-datc 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
`
`13
`
`13
`
`
`
`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 retrieval and management, in
`one embodiment the 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 links to all,
`or a subset of, the information and/or services subscribed to
`by the user.
`EMBODIMENTS OF THE INVENTION
`
`10
`
`15
`
`In one embodiment, a portal device 150 stores and pro-
`cesses user-specified information and/or programs as 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 (as illustrated in FIG. 2 and described in
`detail below). Thus, the portal device 150 in this embodi-
`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
`may be limited to periods of time when the 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, by selecting 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 event for 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
`
`40
`
`45
`
`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-
`
`60
`
`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.
`
`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 elements is located external to the portal device
`150 and is communicatively coupled to an I/O port of the
`client 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 rip 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. It 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 stations sub-carrier frequency band 320 to
`transmit data and/or programs to the portal device 150. As
`it is known in the art, radio stations are licensed a sub-carrier
`frequency block 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 (e.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
`contrast 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 by a 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
`news headlines, and/or any other information which may be
`accessed by the user directly at the portal server 110.
`In one embodiment, the data broadcast in a particular
`geographical region will be selected based on the number of
`risers in that region who have registered 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
`
`14
`
`14
`
`
`
`US 6,714,791 B2
`
`5
`RF link 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 news pertains (i.e., where it will most
`likely be requested). Broadcasting data selectively in this
`manner will 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 address field 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 (e.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 P0 may also employ this embodiment under ’
`certain emergency situations (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
`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 personal eifects) 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 (e.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 which is substantially perpendicular to the plane of the
`display 430.
`Additional attachable embodiments of the portal device
`150 include a necklace configuration, a pocket 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
`battery 560. The external memory 550 may be used to 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).
`Alternatively, the memory 550 may be a volatile memory
`(e. g., random access memory or “RAM”) but the data stored
`therein may be continually maintained via the battery 560.
`The battery 560 in one embodiment is 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/or the portal server
`110. The portal server 110 in one embodiment will then
`automatically send the user a new battery.
`
`,
`
`40
`
`45
`
`60
`
`65
`
`15
`
`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 570 is 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 may be 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 (“USE”)
`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 diiferent CPUs
`to coexist and execute the same microprograms. Moreover,
`programming frequently-used routines in the ROM toolbox
`module 530 reduces the size of microprograms stored in the
`external memory 550,
`thereby conserving memory and
`bandwidth over the client link 160 and/or the RF 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 570 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-
`programs stored in external memory 550 may be 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, microprograms and portal data may
`be transmitted to the portal device 150 in a compressed
`format. As such, in one embodiment, decompression logic is
`programmed into 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-
`
`15
`
`
`
`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 in this
`embodiment may include a lookup table (or similar decode
`logic) for retrieving the real market code “MSFT,” using the
`compressed code, “M.” Once the 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
`rising a variety of coding schemes and/or digital compres-
`sion tcchniqucs.
`
`User Registration and Authentication
`One embodiment of the invention will now be described
`
`10
`
`15
`
`with reference to the flowchart of FIG. 6. According to 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-in is installed on the
`user’s Web browser (at 615). As is known in the art, plug-ins
`are auxiliary programs added to Web browsers to provide
`them with new levels of functionality. One embodiment of
`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 (e.g., via the plug-in)
`determines whether the 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.
`
`40
`
`If the device 150 is not attached, however, then the portal
`server 110 may implement a standard user name/password
`login procedure and/or may register 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 programming interface such as that illustrated
`in FIG. 7. Under this embodiment risers may construct their
`own microprograms to be executed on the 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
`
`45
`
`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 wireless 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 image file (e.g., a bitmap file)
`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 move across 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. Temporal link 722
`indicates that the movement of the image and the playback
`of the music track are to take place simultaneously. Pro-
`gramming block 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 included in the client plug-in). For example, the
`melody line may be extracted from a MIDI file 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 embedded in the device (e.g., the key
`may be 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 one embodiment users may exchange
`keys between portal devices. Specifically, portal device 810
`is shown receiving 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 applications may be implemented
`using this type of portal key exchange. These include, for
`example, social invitations