US 6973324 B2
A method of enabling the transmission of data in a wireless communication network is disclosed. The method comprises the steps of monitoring a plurality of communication interfaces; determining that a communication interface of the plurality of communication interfaces has become available; informing an application that the communication interface has become available; and transmitting data associated with the application on the communication interface.
1. A method of enabling the transmission of data in a wireless communication network, said method comprising the steps of:
detecting that a communication interface of a plurality of communication interfaces has become available;
determining that said communication interface meets cost criteria set by an application, wherein the cost criteria includes consideration of a prepaid block of time with value remaining and that is financially beneficial to utilizing an interface that may be less expensive but which has not already been purchased;
informing said application that said communication interface has become available; and
transmitting data associated with said application on said communication interface.
This invention is related to the following inventions which have at least one common inventor, which are assigned to the same assignee as the present invention, and which were filed on the same date:
This invention relates generally to communication systems, and in particular, to a method of enabling the transmission of data in a wireless communication network.
There is an ever increasing demand for wireless communications. 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 identifying 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.
As telematics communication systems continue to evolve, a telematics communication unit of a vehicle will have a greater number of communication interfaces. As more applications are developed for the transmission of data from a telematics communication unit of a vehicle, the applications enable an increasing amount of data to be transmitted. However, as more applications are vying for communication interfaces to transmit data, it would be useful to inform applications of the availability of a communication interface in the event that the application could use the communication interface to transmit data. Accordingly, there is a need for a method of informing an application that a communication interface is available to enable the transmission of data in a wireless communication device.
Turning first to
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 communicate 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 embodiment depicted in
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 preferably 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 differential pulse-code modulation); CD-DA (compact disc-digital audio) digital audio specification; and ITU (International Telecommunications Union) Standards G.711, G.722, G.723 & G.728. The information appliance system 100 including the user nodes 108 is also preferably 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. Finally, the information appliance system 100 is preferably 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 protocols such as HTTP (hypertext transfer protocol); TCP/IP (transmission control protocol/Internet protocol); and UDP/IP (user datagram protocol/Internet protocol).
User node 108 also comprises a user interface device 210 that can include without limitation a tactile interface 212, microphone 133, speakers 132, any number of displays 214, and the like. Extra-vehicle interface 220, typically implemented as a communication interface having a transmitter/receiver for transmitting and receiving communications via a wireless link 144 among the various nodes depicted in
User node 108 can also comprise an intra-vehicle interface 230, which can include antenna 232. Intra-vehicle interface 230 also acts as a communication interface and can include multiple types of transceivers (not shown) and antennas 232 to implement different short-range wireless protocols, such as Bluetooth™, IEEE wireless local area network (LAN) standard 802.11, and infrared via wireless link 234. Intra-vehicle interface 230 is capable of short-range wireless communications with other wireless devices 236 and sensors 240 of any type, for example, wireless telephones, computers, pagers, PDA's, entertainment devices, printers, fax machines, wireless local networks such as Bluetooth™, vehicle sensors, vehicle actuators, vehicle displays, and the like. It should be noted that the wireless devices 236 also provide communication interfaces. In addition, intra-vehicle interface 230 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 236 can comprise one or more antennas such as antenna 237 and communicate via wireless link 238. One or more sensors 240 can comprise one or more antennas such as antenna 242 and communicate via wireless link 244. In one embodiment, the various components and systems in
Turning now to
These software blocks are computer program modules comprising computer instructions, such as user node control algorithms 206, that are stored in a computer-readable medium such as user node memory 204. 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.
The software blocks include the following modules, each of which is briefly summarized below according to its reference numeral in
The lowest layer, i.e. the platform-specific software 306, comprises a real-time operating system 308, a virtual machine platform (such as the Java™ 2 Virtual Machine, available from Sun Microsystems, Inc.) and associated classes 342, and a native library interface 344.
Foundation software 304, in one embodiment, comprises the following modules, each of which will now be discussed.
Selector module 321 launches and controls applications selected by the user. It is user-configurable.
Abstract user interface (UI) 322 supports a wide variety of input/output (I/O) functions that enable the user to interact with the user device.
Focus manager 323 enforces priority-based access to UI and media resources. Focus manager 323 also controls interactions between synchronous applications and asynchronous notifications and alerts.
Logical button manager (LBM) 324 allows an application to map logical buttons to actual physical buttons on a user device. It allows physical buttons to be referenced by logical names. It manages different sets of buttons, such as preset buttons, application buttons, and so on.
Personal information manager (PIM) service 326 supports functions to enhance user productivity, such as an address book, a calendar, a memo management capability, and so forth. The address book can comprise information that is up-loaded from a PDA, entered by voice or by keys from the user, downloaded from the Internet, and so forth.
Trip plan service 327 provides a variety of trip-planning functions, such as route and map retrieval, route-planning, determination of route distance, etc.
Position service 328 provides abstract positioning application programming interfaces (API) to support a variety of position-determining mechanisms, such as GPS, differential GPS, in-road transmitters, cellular base stations, etc.
Profile service 329 provides server-based profiles for users, devices, vehicles, etc. It assists in the application configuration. It can also ensure that user profiles are portable from one user vehicle to another.
Data sync service 330 synchronizes one or more databases on client platform 200 with counterpart databases on a server platform.
Debug service 331 provides debug functions to isolate, examine, and correct errors in the operation of the software residing on the client platform 200.
Application manager 332 controls the installation and updating of applications, including security attributes of the applications.
User interface manager/media manager 333 manages the user interface, e.g. what entities can access what portions of a display screen (in the case of the user interface manager), and manages all aspects of audio and video functions, e.g. radio, voice-recognition, sound clips, etc. (in the case of the media manager).
Security manager 334 provides permission and policy restraints within the client platform 300.
Service framework 335, to which the current invention pertains, is responsible for locating, connecting, and controlling services required by applications 302 and other services. Additional description of the service framework 335 is provided elsewhere herein.
Other modules 325 can also be provided within the foundation software 304 of the client platform 300, depending upon the functional requirements of the client platform 300.
Platform specific software 306, in one embodiment, comprises the following modules, each of which will now be discussed.
Power manager 338 provides power status change events to applications, such as “power on”, “power off”, “sleep/accessory mode”, etc. It can enforce a low-power mode in emergency situations, reserving power to the highest priority functions. It can also monitor power consumption to identify elements that may be consuming unreasonable amounts of power.
Resource manager 339 manages priority-based access to system resources, such as a processor, threads being processed, memory elements, and persistent storage. The resource manager 339 can ensure the required resources to support an emergency call by halting or suspending lower priority applications.
Vehicle information 340 provides information to support primarily mission-critical vehicular functions. It comprises information to control certain in-vehicle functions, such as remote door unlock. It comprises status information from the in-vehicle system, e.g. vehicular speed. It also can comprise information derived from integrated vehicle components, such as global positioning information from an in-vehicle GPS system.
Other modules 337 can also be provided within the platform specific software 306 of the client platform 300, depending upon the functional requirements of the client platform 300. Additional information regarding client platform 300 as well as a service platform can be found in co-pending U.S. application Ser. No. 09/662,441, entitled “Service Framework with Hidden Services”, filed on Sep. 15, 2000 and having a common inventor as the inventor of the present application, which application is incorporated in its entirety by reference.
Finally, connection manager 336 manages connection(s) of the client platform 300 to one or more networks, such as geographically distributed cellular and server networks. It ensures continuity of sessions across physical and/or logical network interfaces. It can require security (e.g. authentication, encryption, etc.) as a precondition to a connection. It can ensure that low bandwidth connections are used efficiently. More specifically, the connection manager manages multiple interfaces and reports concurrent use of more than one interface, either by the same or different applications. The connection manager also enables an interface to be used for both streams and datagrams at the same time. In particular, the transport layer enables the flow of data between two hosts for an application. Streams are transmitted by the connection oriented transmission control protocol (TCP) which enables the reliable flow between two hosts by dividing data into blocks and receiving acknowledgments when the data is received. In contrast, datagrams are transmitted by the less reliable user datagram protocol (UDP), which is also well known in the art.
Turning now to
Turning now to
The method of
Turning now to
It is determined that a communication interface of a plurality of communication interfaces has become available at a step 602. An application is then informed that a desirable communication interface has become available at a step 604. The application then provides data to be transmitted on the communication interface at a step 606. Accordingly, an application is informed of the availability of a communication interface and can determine whether it desires to make data available for transmission when a particular communication interface is available.
Turning now to
It is then determined whether an application has data to be sent at a step 708. If the application has additional data to be sent and the first communication interface is appropriate for the application, the application provides the data to be transmitted by the communication interface at a step 710. Accordingly, by informing the application that a particular communication interface is available, an application can determine whether it is desirable to transmit data on the available communication interface.
Turning now to
Turning now to
It can therefore be appreciated that a new and novel method of enalbing the transmission of data in a wireless communication network has been described. It will be appreciated by those skilled in the art that, given the teaching herein, numerous alternatives and equivalent will be seen to exist which incorporate the disclosed invention. As a result, the invention is not to be limited by the foregoing exemplary embodiments, but only by the following claims.