`US 6,580,916 B1
`Weisshaar et al.
`(45) Date of Patent:
`Jun. 17, 2003
`
`(10) Patent N0.:
`
`IJSOO6580916B1
`
`(54)
`
`(75)
`
`SERVICE FRAMEWORK FOR EVALUATING
`REMOTE SERVICES BASED UPON
`TRANSPORT CHARACTERISTICS
`
`Inventors: Bernhard Weisshaar, Phoenix, AZ
`(US); Merlin Smith, Chandler, AZ
`(US); Parvathy Bhaskaran, Mesa, AZ
`(US); Mark Clayton, Phoenix, AZ
`(US); Kungwel Mike Liu, Chandler,
`AZ (US)
`
`(73)
`
`Assignee: Motorola, Inc., Schaumburg, IL (US)
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 379 days.
`
`(21)
`
`(22)
`
`(51)
`
`(52)
`
`(58)
`
`(56)
`
`Appl. No.: 09/662,307
`
`Filed:
`
`Sep. 15, 2000
`
`US. Cl.
`
`Int. Cl.7 ........................ H04M 11/00; H04B 15/00;
`H04Q 7/20
`....................... 455/456; 455/414; 342/357;
`375/202
`Field of Search ................................. 455/517, 414,
`455/412, 450, 452, 435, 445, 560, 466,
`456; 342/357.09, 701/207, 379/196, 211,
`210, 375/202, 331/25, 16, 17
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`........ 370/324
`6/1997 Schuchman et a1.
`5,638,399 A *
`7/1999 Pepper et a1.
`........
`455/414
`5,930,700 A *
`
`7/2000 Hollenberg ..........
`455/456
`6,091,956 A *
`............ 455/414
`6,167,255 A * 12/2000 Kennedy et al.
`
`Primary Examiner—Vivian Chin
`Assistant Examiner—Kamran Afshar
`
`(74) Attorney, Agent, or Firm—Kevin D. Wills
`
`(57)
`
`ABSTRACT
`
`In an information appliance system 100, a user device 108
`comprises a client platform (200, FIG. 5) that includes a
`service framework (235, FIG. 5) to discover and connect
`with a variety of services, both remote and local, transient
`and persistent, and to disconnect from them when they are
`no longer of interest or become unavailable. The service
`framework 235 provides a standard, consistent, simplified
`way for services to make themselves available and for
`service-using entities to locate and connect with the services
`of interest to them. The service framework 235 comprises
`service event notification registries (254, 256, FIG. 7) in
`which service-requesting entities register templates defining
`the types of services they want to locate and connect with.
`However, the service framework 235, rather than connecting
`with any service that matches a desired service type, can
`further control a remote service lookup operation in accor-
`dance with various transport characteristics in the template,
`such as signal strength, quantity of data to be transferred,
`range, available bandwidth, communications cost, service
`location, time of day, vehicular velocity, and so forth. This
`conserves the platform’s memory and bandwidth resources
`by not connecting with services that would not satisfy a
`user’s request or that would be unduly transitory. Various
`methods of operating a service framework are also
`described.
`
`* cited by examiner
`
`12 Claims, 11 Drawing Sheets
`
`
`112
`
`CONCIERGE
`SERVICE "—
`
`
`
`
`
`170
`
`
`
`106
`
`
`
`LOCAL NODE:
`:KIOSK
`:CELL SITE
`sLAN
`:TELCO
`'tCABLE
`tSAlELLIIE
`:SERVER
`tOlHER
`
`
`
`
`
`
`
`
`REGIONAL
`NODE
`
`10
`
`1
`
`APPLE1045
`
`APPLE 1045
`
`1
`
`
`
`US. Patent
`
`Jun. 17, 2003
`
`Sheet1,0f11
`
`US6
`
`,580,916 B1
`
` as“
`
`we“we“
`
`moozmooz
`
`
`
`4<QO4A<onomm
`
`we“
`
`
`
`HmoOz4<ooA
`
`xmon*
`
`
`
`wka44mo*
`
`mo~
`
`MHH44m~<m*
`
`mm>mmm*
`
`zw=_o*
`
`aegup.
`
`mgm<o*
`
`z<;*
`
`
`
`mm>zmmmoH>zum
`
`NF“
`
`2
`
`
`
`
`
`
`US. Patent
`
`Jun. 17, 2003
`
`Sheet 2 0f 11
`
`US 6,580,916 B1
`
`110
`
`159
`
`120
`
`PROCESSOR
`
`135
`
`LOCAL NODE(S)
`
`106
`
`142
`1
`
`144
`
`122
`
`124
`
`EXTRA-VEHICLE
`INTERFACE
`TRANSMITTER /
`
`RECEIVER
`
`POSITIONING
`DEVICE(S)
`
`131
`
`733
`134
`
`130
`
`1
`
`SPEAKERS
`
`MICROPHONE(S)
`TACTILE
`INTERFACE
`
`1
`
`36
`
`160
`
`INTRA-VEHICLE
`INTERFACE
`
` WIRELESS
`
`DEVICE(S)
`
`138
`
`164
`
`’5 7
`
`163
`
`165
`
`USER MODE CONTROL
`ALGORITHMS
`
`MEMORY
`
`126
`
`128
`
`108
`
`FIG. 2
`
`3
`
`
`
`US. Patent
`
`Jun. 17, 2003
`
`Sheet 3 0f 11
`
`US 6,580,916 B1
`
`USER NODE(S)
`
`REGIONAL NODE(S)
`
`108
`
`‘\\T;?:\\\\\
`
`104
`
`168
`
`120
`
`PROCESSOR
`
`155
`
`167
`
`17
`
`TRANSMITTER /
`RECEIVER
`
`TRANSMITTER /
`RECEIVER
`
`1
`
`76
`
`
`
`
`
`
`
`
`
`
`
`143
`
`
`
`LOCAL NODE CONTROL
`ALGORITHMS
`
`146
`
`LOCAL NODE
`MEMORY
`
`TERRESTRIAL LINKS
`TO OTHER LOCAL NODES
`AND REGIONAL NODES
`
`106
`
`FIG._3
`
`LOCAL NOOE(s)
`
`REGIONAL NODE(S)
`
`777
`
`168
`
`123
`
`PROCESSOR
`
`1
`
`70
`
`169
`
`17
`
`5
`
`1
`
`TRANSMITTER /
`RECEIVER
`
`TRANSMITTER /
`RECEIVER
`
`
`
`
`78
`
`
`
`REGIONAL NODE
`CONTROL ALGORITHMS
`
`REGIONAL NODE
`MEMORY
`
`TERRESTRIAL LINKS
`TO OTHER LOCAL NODES
`AND REGIONAL NODES
`
`
`
`’50
`
`
`152
`
`104
`"'
`
`F I G, 4
`
`4
`
`
`
`US. Patent
`
`n
`
`US 6,580,916 B1
`
`New
`
`mm
`
` 1$32;EEE$32;532;M233228
`$2ngwmmmmmRNm=3ngmmmmiM%RN.M8m2m«towENmwmmR
`mmmmnunrmmmmmmmmmgwwmmmmM“
`52%Egg:8:\s
`
`2223.5”:A5:82:23:5:@805E55;282322
`msmnhwvswMNNth“KN
`
`
`
`smegp<dmHZMHAQ
`
`2m0mh<4m
`
`ngHommm
`
`mm<2pm0m
`
`mom
`
`
`
`
`
`mo<mzmp2H>m<mmHgm>HH<z
`
`4<=HmH>
`
`mmmm<gooz<Imomh<4¢MZH=o<=
`
`i.ngMAQHIM>i.ozmom=omng
`
`
`
`
`law:Eugenmmzpo
`mnmNMN
`
`
`
`wwwnew
`
`:mpm»moZHH<zmmomszug<mz
`
`
`
`
`
`5
`
`
`
`
`
`US. Patent
`
`Jun.17,2003
`
`an
`
`US 6,580,916 B1
`
`vvm
`
`
`
`own.mm>mmmm<o4
`
`in
`
`Ni,2:
`
`><z
`
`mzmomAcm.ohm
`
`5:5:5.2a:
`
`”mo55$
`
`$3
`
`Nam,
`
`
`mzo:<u:&<AE509328:5:8.85E55;zofi<oH><z
`
`Sm.Em.in2m.NR.:m.
`
`5:23w2%
`1fig532,;E32;EEEEmzmfifimE:EgawMUSEw”52%E:
`
`582.:E55
`
`
`
`.5:20:52,:.5:20:35.8
`
`SELUD0MSSECCA
`
`USAGE SERVICE
`
`DATA SYNC SERVICE
`
`PROFILE SERVICE
`
`PIM SERVICE
`
`TRIP PLAN SERVICE
`
`AD SERVICE
`
`m.ufim
`
`meEmfizm9M 3.8::
`
`
`
`6
`
`
`
`US. Patent
`
`580,916 B1
`
`£55.59Em:
`
`.NS__U_am"_EN__+3_$3533353\f_55mm52%
`ZOEEEZ_\7,_55%E:_\WENm._EVE5;?,Lhmd:u__Egg"5525m“5;?_@2238:
`EN\u/:35:2:)>Eu31\m_,Mu22::NRn,m_masswas“7IILE,w__M_h__Wr__._I__Ems:_.m_28:252.
`:55:_‘m.n=3:
`SEE.22::n20:52:
`
`_
`
`
`
`1||Ill'|ll'lu|"IIIIIIIIn'lll'l'lllllJ
`
`
`
`
`
` _55%2:222::Ea2:22:_gaze:_$23.%E222:Ex55%lessnew_am52%sz
`
`7
`
`
`
`
`
`US. Patent
`
`Jun. 17, 2003
`
`Sheet 7 0f 11
`
`US 6,580,916 B1
`
`
`
`H30
`
`
`
`
`
`APPLICATION
`REQUESTING
`SERVICE ABC
`
`192?
`
`
`
`
`
`
`
`
`_ERVICE_RAMEWORK
`
`
`
`ll'rjg193
`
`
`191
`
`2L35
`
`H95
`
`H97
`
`SERVICE
`ABC
`
`
`
`
`“34
`
`194
`
`FIG. 8
`
`8
`
`
`
`US. Patent
`
`Jun. 17, 2003
`
`Sheet 8 0f 11
`
`US 6,580,916 B1
`
`
`
`
`
`APPLICATION
`REQUESTING
`SERVICE XYZ
`
`1268
`
`
`
`,292
`
` CONNECTION
`
`MANAGER
`REMOTE
`281
`
`
`
`
`XYZ SERVICE
`SERVICE
`
`FRONTEND
`
`
`
`255
`
`4
`‘1
`275 I
`|
`
`T
`
`1
`I
`275W
`I
`
`1
`
`
`
`
`REMOTE
`REMOTE
`
`LOOKUP SERVICE
`XYZ SERVICE
`
`
`BACKEND
`
`
`BACKEND
`
`.265
`
`
`
`‘295
`
`FIG.
`
`9
`
`9
`
`
`
`US. Patent
`
`Jun. 17, 2003
`
`Sheet 9 0f 11
`
`US 6,580,916 B1
`
`
`
`APPLICATION
`REQUESTING
`SERVICE XYZ
`
`
`
`SERVICE
`
`FRAMEWORK
`
`.235
`
`
`
`MANAGER
`
`
`CONNECTION
`
`REMOTE
`23’
`
`
`REMOTE
`SERVICE
`LOOKUP SERVICE
`SERVICE XYZ
`
`
`
`FRONTEND
`FRONTEND
`
`
`
`
`398
`
`393
`
`390
`
`
`
`SERVICE XYZ
`
`
`
`
`
`
`,282
`
`REMOTE
`
`BACKEND
`
`REMOTE
`LOOKUP SERVICE
`BACKEND
`
`265
`
`FIG.
`
`10
`
`10
`
`10
`
`
`
`US. Patent
`
`Jun. 17, 2003
`
`Sheet 10 0f 11
`
`US 6,580,916 B1
`
`METHOD OF PROVIDING A REMOTE SERVICE TO A
`COMMUNICATIONS PLATFORM USING SERVICE ATTRIBUTES
`
`500
`
`
`
`
`
`
`USE A WIRELESS INTERFACE TO COUPLE THE COMMUNICATIONS
`PLATFORM TO A REMOTE COMMUNICATIONS NODE. THE REMOTE
`COMMUNICATIONS NODE INCLUDES SERVICE OBJECTS, AT LEAST
`ONE SERVICE ATTRIBUTE, AND A REMOTE LOOKUP SERVICE
`BACKEND. THE COMMUNICATIONS PLATFORM HAS A SERVICE
`FRAMEWORK,
`INCLUDING A REMOTE LOOKUP SERVICE FRONTEND.
`
`
`
`
`
`
`
`
`502
`
`THE REMOTE LOOKUP SERVICE BACKEND COMMUNICATES THE AT
`LEAST ONE SERVICE ATTRIBUTE IN THE REMOTE COMMUNICATIONS
`NODE TO THE REMOTE LOOKUP SERVICE FRONTEND.
`
`5(74
`
`
`
`(ASVNCHRONOUSLV)
`
`SERVICE—REQUESTING ENTITY REQUESTS A REMOTE SERVICE. THE
`SERVICE-REQUESTING ENTITY CONSTRUCTS A SERVICE TEMPLATE
`REPRESENTINC THE REMOTE SERVICE. THE SERVICE TEMPLATE
`HAS AT LEAST ONE SERVICE ATTRIBUTE. THE SERVICE ATTRIBUTE
`DESCRIBES A TRANSPORT ATTRIBUTE OF THE REMOTE
`COMMUNICATIONS NODE, OR A PREFERENCE OF THE SERVICE
`REQUESTING-ENTITY REGARDING THE REQUESTED REMOTE SERVICE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`506
`
`THE SERVICE-REQUESTING ENTITY ISSUES THE SERVICE
`TEMPLATE TO THE SERVICE FRAMEWORK
`
`.508
`
`
`
`510
`
`
`THE SERVICE
`
`FRAMEWORWS SERVICE
`
`
`REGISTRY HAS SERVICE OBJECTS (FROM
`
`
`THIS COMMUNICATIONS PLATFORM)
`
`
`MATCHING THE SERVICE
`TEMPLATE?
`
`
`NO
`
`YES
`
`FIG.
`
`11
`
`11
`
`11
`
`
`
`US. Patent
`
`Jun. 17, 2003
`
`Sheet 11 0f 11
`
`US 6,580,916 B1
`
`THE SERVICE FRAMEWORK BUFFERS SUCH SERVICE
`OBJECTS FOR THE SERVICE REQUESTING ENTITY
`
`512
`
`
`
`
`
`
`THE AT LEAST
`ONE SERVICE ATTRIBUTE
`
`
`NO
`IN THE REMOTE COMMUNICATIONS NODE
`
`MATCHES THE AT LEAST ONE SERVICE
`
`ATTRIBUTE IN THE SERVICE
`
`TEMPLATE?
`
`514
`
`
`
`
`
`YES
`
`516
`
`PERFORM LOOKUP ON THE REMOTE COMMUNICATIONS NODE
`
`
`
`ANY
`
`
`MATCHING SERVICE
`
`OBJECTS FOUND?
`
`
`
`BUFFER MATCHING SERVICE OBJECTS FOR
`SERVICE-REQUESTING ENTITY
`
`RETURN BUFFERED SERVICE OBJECTS (FROM THIS
`COMMUNICATIONS PLATFORM AND/0R REMOTE COMMUNICATIONS
`NODE
`TO SERVICE—REQUESTING ENTITY, OR RETURN NULL IF NONE.
`
`522
`
`END
`
`FIG. 12
`
`12
`
`12
`
`
`
`US 6,580,916 B1
`
`1
`SERVICE FRAMEWORK FOR EVALUATING
`REMOTE SERVICES BASED UPON
`TRANSPORT CHARACTERISTICS
`
`RELATED INVENTIONS
`
`This invention is related to the following inventions
`which are assigned to the same assignee as the present
`invention and which were filed on even date herewith:
`
`Ser. No. 09/662,439, entitled “Service Framework Sup-
`porting Remote Service Discovery and Connection”;
`Ser. No. 09/663,523, entitled “Service Framework with
`Just-In-Time Look-Up”;
`Ser. No. 09/663,522, entitled “Service Framework with
`Consolidation of Local and Remote Services”;
`Ser. No. 09/663,278, entitled “Service Framework with
`Local Proxy for Representing Remote Services”; and
`Ser. No. 09/662,441, entitled “Service Framework With
`Hidden Services”.
`
`FIELD OF THE INVENTION
`
`This invention relates generally to communications sys-
`tems and, in particular, to methods and apparatus for pro-
`viding services to wireless equipment in a wireless commu-
`nications system.
`
`BACKGROUND OF THE INVENTION
`
`There is an ever increasing demand for wireless commu-
`nications. Wireless subscribers desire to have access to
`
`information at any time and at any place. One of the fastest
`growing markets for providing wireless services is known as
`“telematics” and entails delivering a wide spectrum of
`information via wireless links to vehicle-based subscribers.
`
`The information can originate from multiple sources, such
`as the Internet and other public, private, and/or government
`computer-based networks; wireless telecommunications
`such as cellular, Personal Communication Service (PCS),
`satellite, land-mobile, and the like; terrestrial and satellite
`direct broadcasts including traditional AM/FM bands,
`broadband, television, video, geolocation and navigation via
`a global position system (GPS), and the like; concierge
`services providing roadside assistance, emergency calling,
`remote-door unlocking, accident
`reporting,
`travel
`conditions, vehicle security, stolen vehicle recovery, remote
`vehicle diagnostics, and the like; advertising services iden-
`tifying names and locations of businesses such as gas
`stations, restaurants, hotels, stores, and offices, and the like;
`tourist services such as points of interest, directions, hours of
`access, and the like; and many other sources that can provide
`information of any type. Many of the above services are not
`universally available, but rather they are transient in both the
`time and geoposition domains.
`Information can be communicated to telematics devices
`
`over relatively long wireless links, such as from a satellite or
`terrestrial node, or from relatively short wireless or wired
`links, such as from in-vehicle equipment or from hand-held
`devices like PDAs, portable computers, cellular phones, and
`the like.
`
`The services provided by telematics systems are not
`restricted to vehicle-based subscribers, and they can also be
`provided to subscribers at home, at work, or elsewhere. With
`so much mobility, the equipment located in the subscriber’s
`vehicle, or the equipment carried by or otherwise serving a
`subscriber, needs a way to connect with the plethora of
`services that are potentially available to it. The equipment
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`needs a way to discover, identify, select, and invoke services
`that are of interest to it, as well as to disconnect from
`services that are no longer of interest to it.
`It is known in the prior art to utilize certain commercially
`available software to locate services. However, systems
`utilizing such software are fixed, not mobile. Mobile sys-
`tems require connection software that
`is specifically
`designed to fulfill requirements that distinguish mobile
`systems from fixed systems. For example, mobile systems
`often have limited battery power, limited bandwidth, limited
`memory, and only stay in any given place for a limited time.
`Mobile systems also may have rigorous security require-
`ments in order to protect the identify and location of mobile
`subscribers, as well as to insure that the mobile equipment,
`including software, is not involuntarily altered or corrupted,
`for example, by downloading uncertified software that could
`replace, infect, or otherwise have an adverse impact upon
`the software residing in the system. Known systems that
`dynamically provide access to services typically download
`software code to the client platform and execute the code on
`the client platform. Not only does this introduce potentially
`dangerous security issues, but the downloaded code can
`overwhelm the mobile system’s limited memory capability.
`It is known in the art for potentially all services that could
`be requested by an application on a client platform to
`register as available. For example, in the JiniTM connection
`technology commercially available from Sun Microsystems,
`Palo Alto, Calif., services register themselves with all
`lookup servers belonging to the same group, irrespective of
`demand for the services. However, this can be a disadvan-
`tage in a mobile platform, because the platform’s commu-
`nications traffic could be excessive, and further the plat-
`form’s memory resources could be quickly depleted.
`Moreover, in a mobile environment, the client platform may
`only be within range of or be able to communicate with a
`remote service provider for a brief time or with an accept-
`able signal-to-noise ratio. Further, a user of a mobile system
`may desire only a specific type of service, and it would be
`inefficient to lookup and supply the user with services that
`did not satisfy the user’s specific request.
`Accordingly, there is a significant need for methods and
`apparatus that are more conserving of resources in the client
`platform, particularly for mobile platforms.
`There is also a significant need for methods and apparatus
`that do not automatically populate a client platform’s service
`registry with entries representing all of the remote services
`requested by applications, but that look up and connect only
`those services that satisfy a user’s request and that have a
`reasonable chance of being found and connected to, particu-
`larly in view of changing conditions pertaining to a mobile
`platform.
`There is further a significant need for methods and
`apparatus that control access to remote services based in part
`upon transport characteristics of a mobile platform without
`unnecessarily involving applications that
`reside in the
`mobile platform.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The invention is pointed out with particularity in the
`appended claims. However, other features of the invention
`will become more apparent and the invention will be best
`understood by referring to the following detailed description
`in conjunction with the accompanying drawings in which:
`FIG. 1 depicts an exemplary information appliance
`system, according to one embodiment of the invention;
`FIG. 2 depicts a user node of an exemplary information
`appliance system;
`13
`
`13
`
`
`
`US 6,580,916 B1
`
`3
`FIG. 3 depicts a local node of an exemplary information
`appliance system;
`FIG. 4 depicts a regional node of an exemplary informa-
`tion appliance system;
`FIG. 5 illustrates major functional software blocks of a
`client platform, according to one embodiment of the inven-
`tion;
`FIG. 6 illustrates major functional software blocks of a
`server platform, according to one embodiment of the inven-
`tion;
`FIG. 7 illustrates a simplified block diagram showing
`various components of a service framework, according to
`one embodiment of the invention;
`FIG. 8 illustrates a diagram depicting a local service
`lookup operation, as performed by a service framework,
`according to one embodiment of the invention;
`FIG. 9 illustrates a diagram depicting the initiation of a
`remote service discovery operation, as performed by a
`service framework, according to one embodiment of the
`invention;
`FIG. 10 illustrates a diagram depicting the conclusion of
`a remote service discovery operation, as performed by a
`service framework, according to one embodiment of the
`invention; and
`FIGS. 11 and 12 together illustrate a flow diagram of a
`method of providing a remote service to a communications
`platform using service attributes, according to one embodi-
`ment of the invention.
`
`DETAILED DESCRIPTION OF THE DRAWINGS
`
`The present invention is a distributed communications
`system with software components running on mobile client
`platforms and on remote server platforms.
`FIG. 1 depicts an exemplary information appliance sys-
`tem 100, according to one embodiment of the invention.
`Shown in FIG. 1 are examples of components of an infor-
`mation appliance system 100, which comprises a plurality of
`servers 102 coupled to a regional node 104, and a plurality
`of local nodes 106 coupled to regional node 104. There can
`be any number of servers 102, regional nodes 104, and local
`nodes 106 within the information appliance system 100. The
`regional node 104 can be coupled to a network, such as the
`Internet 114, and to any number of concierge services 112.
`Servers 102, while illustrated as coupled to regional node
`104, could be implemented at any hierarchical
`level(s)
`within information appliance system 100. For example,
`servers 102 could also be implemented within one or more
`local nodes 106, concierge service 112, and Internet 114.
`Without limitation, local node 106 can be a kiosk, cell
`site, local area network (LAN), telephone company, cable
`company, satellite, or any other information service,
`structure, or entity that can transmit, receive, and/or com-
`municate information. An information service can be any
`desired service including, but not
`limited to,
`telecommunications, broadband communications,
`entertainment,
`television, radio, recorded music, movies,
`computer-based games, Internet, and other types of public,
`private, personal, commercial, government, and military
`communications.
`
`Local node 106 is coupled to any number of user nodes
`108 via wireline or wireless interface means. In the embodi-
`
`ment depicted in FIG. 1, user nodes 108 can transmit and
`receive information using wireless communications means.
`User nodes 108 without limitation can include a wireless
`unit such as a cellular or Personal Communication Service
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`
`(PCS) telephone, a pager, a hand-held computing device
`such as a personal digital assistant (PDA) or Web appliance,
`or any other type of communications and/or computing
`device. Without limitation, one or more user nodes 108 can
`be contained within, and optionally form an integral part of
`a vehicle, such as a car 109, truck, bus, train, aircraft, or
`boat, or any type of structure, such as a house, office, school,
`commercial establishment, and the like. As indicated above,
`a user node 108 can also be implemented in a device that can
`be carried by the user of the information appliance system
`100.
`
`In one embodiment, a user node 108 comprises an
`in-vehicle information appliance comprising various human
`interface (H/I) elements such as a display 131, a multi-
`position controller 113, one or more control knobs 115 and
`116, one or more indicators 117 such as bulbs or light
`emitting diodes (LEDs), one or more control buttons 118,
`one or more speakers 132, a microphone 133, and any other
`H/I elements required by the particular applications to be
`utilized in conjunction with the information appliance.
`User nodes 108 can also transmit and/or receive data to
`and from devices and services other than local node 106. For
`example, user nodes 108 can transmit and receive data to
`and from a satellite 110.
`
`The information appliance system 100 including the user
`nodes 108 is capable of utilizing audio data in any number
`of encoding methods from any number of sources that
`include, but are not limited to, ADPCM (adaptive differen-
`tial pulse-code modulation); CD-DA (compact disc—digital
`audio) digital audio specification; and ITU (International
`Telecommunications Union) Standards G.711,G.722,G.723
`& G728.
`
`The information appliance system 100 including the user
`nodes 108 is capable of utilizing video data in any number
`of encoding methods from any number of sources that
`include, but are not limited to, ITU Standards H.261 &
`H.263; Motion JPEG (Joint Photographic Experts Group);
`and MPEG-1, MPEG-2 and MPEG-4 (Motion Picture
`Experts Group) standards.
`Additionally,
`the information appliance system 100 is
`capable of utilizing audio and video data in any number of
`formats and using any type of transport technology that
`include, but are not limited to, USB (Universal Serial Bus);
`IEEE (Institute of Electrical and Electronics Engineers)
`Standards 1394—1995; and IEEE 802.11; and using proto-
`cols such as HTTP (hypertext transfer protocol); TCP/IP
`(transmission control protocol/Internet protocol); and UDP/
`IP (user datagram protocol/Internet protocol).
`FIG. 2 depicts a user node 108 of an exemplary informa-
`tion appliance system 100. As indicated above, user node
`108 can without limitation be located within or be an integral
`part of any vehicle, such as an automobile, truck, bus, train,
`aircraft, or boat, or be carried with a user, or be located in
`a stationary location or structure, and the like. As shown in
`FIG. 2, the user node 108 comprises a processor 120 with
`associated user node memory 128. User node memory 128
`comprises user node control algorithms 126. User node
`memory 128 can include, but is not limited to, random
`access memory (RAM), read only memory (ROM), flash
`memory, and other memory such as a hard disk, floppy disk,
`and/or other appropriate type of memory. User node 108 can
`initiate and perform communications with other nodes
`shown in FIG. 1 in accordance with suitable computer
`programs, such as user node control algorithms 126, stored
`in user node memory 128.
`User node 108 also comprises a user interface device 130
`that can include without limitation a tactile interface 134,
`microphone 133, speakers 132, any number of displays 131,
`and the like.
`
`14
`
`14
`
`
`
`US 6,580,916 B1
`
`5
`User node 108 also comprises an extra-vehicle interface
`122,
`typically implemented as a transmitter/receiver for
`transmitting and receiving communications via a wireless
`link 144 among the various nodes depicted in FIG. 1.
`Extra-vehicle interface 122 also facilitates communications
`
`among other devices via wireless link 159, for example,
`satellite 110, and the like. Communications are transmitted
`and received through one or more antennas 142 of any type,
`which can include any one or combination of a fixed,
`steerable, omni-directional, or phased array antenna. Steer-
`able antenna can include, but is not limited to, an electroni-
`cally steerable antenna, physically steerable antenna, and the
`like. User node 108 can also include positioning devices 124
`of any type, for example, global positioning system (GPS),
`gyroscope, compass, accelerometer, altimeter, rate sensors,
`and other positioning devices 124 that can define the
`position, attitude, and/or motion vector of the user node 108.
`User node 108 can also comprise an intra-vehicle inter-
`face 136, which can include antenna 160. Intra-vehicle
`interface 136 can include multiple types of transceivers (not
`shown) and antennas 160 to implement different short-range
`wireless protocols, such as BluetoothTM, IEEE wireless local
`area network (LAN) standard 802.11, and infrared. Intra-
`vehicle interface 136 is capable of short-range wireless
`communications, via wireless link 161, with other wireless
`devices 138 and sensors 140 of any type, for example,
`wireless telephones, computers, pagers, PDA’s, entertain-
`ment devices, printers, fax machines, wireless local net-
`works such as BluetoothTM, vehicle sensors, vehicle
`actuators, vehicle displays, and the like. In addition, intra-
`vehicle interface 136 can be used to communicate with
`
`wireless devices that are physically outside the vehicle but
`close to the vehicle, such as a service station kiosk. One or
`more wireless devices 138 can comprise one or more
`antennas such as antenna 162 and communicate via wireless
`
`link 163. One or more sensors 140 can comprise one or more
`antennas such as antenna 164 and communicate via wireless
`link 165.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`In one embodiment, the various components and systems
`in FIG. 2 can communicate with each other via a wireline
`
`40
`
`link 135, for example, a power/data/control bus, and the like.
`In another embodiment, some of the various components
`and systems in FIG. 2 could communicate via a wireless
`link.
`
`FIG. 3 depicts a local node 106 of an exemplary infor-
`mation appliance system 100. As shown in FIG. 3, the local
`node 106 comprises a processor 121 with associated local
`node memory 148. Local node memory 148 comprises local
`node control algorithms 146. Local node memory 148 can
`include, but
`is not
`limited to,
`random access memory
`(RAM), read only memory (ROM), and other memory such
`as a hard disk, floppy disk, and/or other appropriate type of
`memory. Local node 106 can initiate and perform commu-
`nications with other nodes shown in FIG. 1 in accordance
`
`with suitable computer programs, such as local node control
`algorithms 146, stored in local node memory 148.
`Local node 106 also comprises any number of
`transmitters/receivers 175 for transmitting and receiving
`communications via wireless link 144 to and from any
`number of user nodes 108. Communications are transmitted
`
`and received through antenna 166.
`Local node 106 also comprises any number of transmitter/
`receivers 176 for transmitting and receiving communica-
`tions via wireless link 168 to and from any number of
`regional nodes 104. Communications are transmitted and
`received through antenna 167. As shown in FIG. 3, the
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`various components and systems can also communicate via
`terrestrial links such as wireline, radio frequency (RF), or
`optical links, and the like, with other local nodes 106 and
`regional nodes 104.
`In one embodiment, the various components and systems
`in FIG. 3 can communicate with each other via a wireline
`
`link 135, for example, a power/data/control bus, and the like.
`In another embodiment, some of the various components
`and systems in FIG. 3 could communicate via a wireless
`link.
`
`FIG. 4 depicts a regional node 104 of an exemplary
`information appliance system 100. As shown in FIG. 4, the
`regional node 104 comprises a processor 123 with associ-
`ated regional node memory 152. Regional node memory 152
`comprises regional node control algorithms 150. Regional
`node memory 152 can include, but is not limited to, random
`access memory (RAM), read only memory (ROM), and
`other memory such as a hard disk, floppy disk, and/or other
`appropriate type of memory. Regional node 104 can initiate
`and perform communications with other nodes shown in
`FIG. 1 in accordance with suitable computer programs, such
`as regional node control algorithms 150, stored in regional
`node memory 152.
`Regional node 104 also comprises any number of
`transmitters/receivers 177 for transmitting and receiving
`communications via wireless link 171 to and from any
`number of local nodes 106. Communications are transmitted
`
`and received through an antenna 170.
`Regional node 104 also comprises any number of
`transmitters/receivers 178 for transmitting and receiving
`communications via wireless link 168 to and from any
`number of regional nodes 104, servers 102, and the like.
`Communications are transmitted and received through
`antenna 169. As shown in FIG. 4, the various components
`and systems can also communicate, via terrestrial links such
`as wireline, radio frequency (RF), or optical links, and the
`like, with other local nodes 106 and regional nodes 104.
`In one embodiment, the various components and systems
`in FIG. 4 can communicate with each other via a wireline
`
`link 135, for example, a power/data/control bus, and the like.
`In another embodiment, some of the various components
`and systems in FIG. 4 could communicate via a wireless
`link.
`
`In FIGS. 2—4, processors 120, 121, and 123, respectively,
`perform distributed, yet coordinated, control functions
`within information appliance system 100 (FIG. 1). Proces-
`sors 120, 121, and 123 are merely representative, and
`information appliance system 100 can comprise many more
`processors within the distributed servers 102, regional nodes
`104, local nodes 106, and user nodes 108.
`Processors 120, 121, and 123 can be of any suitable type
`or types, depending upon the functional requirements of the
`overall information appliance system 100 and its constituent
`elements, including servers 102, regional nodes 104, local
`nodes 106, and user nodes 108.
`Processors 120, 121, and 123 comprise portions of data
`processing systems that perform processing operations on
`computer programs that are stored in computer memory
`such as, but not limited to, user node memory 128, local
`node memory 148, and regional node memory 152. Proces-
`sors 120, 121, and 123 also read data from and store data to
`memory, and they generate and receive control signals to
`and from other elements within information appliance sys-
`tem 100.
`
`The particular elements of the information appliance
`system 100, including the elements of the data processing
`15
`
`15
`
`
`
`US 6,580,916 B1
`
`7
`systems, are not limited to those shown and described, and
`they can take any form that will implement the functions of
`the invention herein described.
`
`To provide an example of one context in which the present
`invention may be used, a brief overview of a client platform
`and a server platform, together with their associated soft-
`ware modules, will now be described. The present invention
`is not limited to implementation by any particular set of
`elements, and the description herein is merely representa-
`tional of one embodiment. The specifics of one or more
`embodiments of the invention are provided below in suffi-
`cient detail to enable one of ordinary skill in the art to
`understand and practice the present invention.
`
`Overview of Client Platform
`
`FIG. 5 illustrates major functional software blocks of a
`client platform 200, in accordance with one embodiment of
`the invention. Architecturally, the user node 108 comprises
`a software-based client platform 200 that supports a wide
`range of applications and services. This provides great
`flexibility and allows the user platform’s feature set to be
`readily expanded or updated after the user node 108 has been
`deployed into its intended market.
`These software blocks are computer program modules
`comprising computer instructions, such as user node control
`algorithms 126,
`that are stored in a computer-readable
`medium such as user node memory 128. These software
`modules are merely representative of one embodiment of the
`invention. In other embodiments, additional modules could
`be provided as needed, and/or unneeded modules could be
`deleted.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`The software blocks include the following modules, each
`of which is briefly summarized below according to its
`reference numeral in FIG. 5.
`
`35
`
`The client platform software comprises three general
`layers: applications 202, foundation software 204 upon
`which the applications 202 are supported, and platform-
`specific software 206. In one embodiment, the upper two
`layers are implemented in the JavaTM programming
`language, available from various suppliers, including Sun
`Microsystems, Inc., Palo Alto, Calif. One advantage of the
`JavaTM programming language is the support of code dis-
`tribution in a platform-independent manner.
`The lowest layer, i.e. the platform-specific software 206,
`comprises a real-time operating system 208, a virtual
`machine platform (such as the JavaTM 2 Virtual Machine,
`available from Sun Microsystems, Inc.) and associated
`classes 242, and a native library interface 244.
`Referring to FIG. 5, applications 202 can comprise an
`extremely wide variety of informational, safety, query,
`communications, entertainment, and other applications, for
`example navigation 211, weather 212, stocks 213, traffic
`214, news 215, and others 216 of any type. As used herein,
`an “application” is defined as any computer program that
`provides one or more functions that are of interest to a user
`of the information appliance system 100.
`Foundation software 204, in one embodiment, comprises
`the following modules, each of which will n