Source: http://www.google.co.uk/patents/US8483694
Timestamp: 2018-01-21 05:13:35
Document Index: 99281948

Matched Legal Cases: ['§371', 'Application No. 2', 'Application No. 2', 'Application No. 2', 'Application No. 01271927', 'Application No. 01271927', 'Application No. 01271927']

Patent US8483694 - Wireless router system and method - Google Patents
A wireless router employing a technique to couple a plurality a host services or host systems and a plurality of wireless networks. A method to route data items between a plurality of mobile devices and a plurality of host systems through a common wireless router. A point-to-point communication connection...http://www.google.co.uk/patents/US8483694?utm_source=gb-gplus-sharePatent US8483694 - Wireless router system and method
Publication number US8483694 B2
Application number US 13/228,849
Also published as CA2432589A1, CA2432589C, CA2640713A1, CA2640713C, CA2725700A1, CA2725700C, EP1344353A2, EP1344353B1, US7010303, US7529230, US8050684, US8165575, US8693996, US20040116119, US20060018283, US20090135765, US20110225630, US20120008560, US20120142359, WO2002052798A2, WO2002052798A3, WO2002052798A9
Publication number 13228849, 228849, US 8483694 B2, US 8483694B2, US-B2-8483694, US8483694 B2, US8483694B2
Patent Citations (282), Non-Patent Citations (107), Referenced by (110), Classifications (31), Legal Events (3)
US 8483694 B2
1. A method of enabling host services to communicate with mobile devices operating on a plurality of wireless networks, comprising:
receiving a data message from the host services at a wireless router, wherein the data message includes a mobile device identifier associated with a particular mobile device;
accessing a database at the wireless router to determine whether the particular mobile device associated with the mobile device identifier is presently connected to a particular wireless network;
if the mobile device is presently connected to a particular wireless network, then generating a wireless network data message including the received data message associated with the particular mobile device and formatting the wireless network data message according to a protocol of the particular wireless network; and
transmitting the wireless network data message from the wireless router to the particular wireless network.
associating the mobile device identifiers with a particular wireless network in the database.
3. The method of claim 1, wherein the wireless router includes a plurality of network interface adapters for each of the plurality of wireless networks, the method further comprising each of the network interface adapters providing protocol control for communicating data over one of the plurality of wireless networks.
4. The method of claim 3, wherein the wireless router includes a plurality of wireless transport handlers for interfacing communications from the host services with the network interface adapters, the method further comprising each of the wireless transport handlers providing data transfer control to and from a mobile device via one of the network interface adapters.
5. The method of claim 3, wherein at least one of the plurality of wireless networks is a GPRS network, one of the network interface adapters being assigned to the GPRS network.
6. The method of claim 5, wherein the network interface adapter assigned to the GPRS network is configured to ensure that the mobile devices associated with the GPRS network and authorized to route data through the wireless router have an active PDP context.
7. The method of claim 5, wherein the network interface adapter assigned to the GPRS network monitors DHCP traffic to determine when IP addresses are assigned or unassigned to particular mobile devices.
8. The method of claim 1, wherein for the mobile device identifier, the database at the wireless router includes an indication of the wireless network that the mobile device identifier is associated with and an indication of the current connection status of the mobile device that is associated with the mobile device identifier.
9. The method of claim 1, wherein the database includes an indication of whether any data is pending for a particular mobile device identifier.
10. The method of claim 1, wherein the database at the wireless router is configured with a data structure for tracking the status of the mobile devices, further comprising, for each registered mobile device:
storing a physical connection identifier in a third field of the data structure indicating which of a plurality of physical connections between the wireless router and the wireless network identified in the second field is being used to communicate with the mobile device.
This application is a continuation of U.S. Ser. No. 11/210,718, filed on Aug. 24, 2005, which is a continuation of U.S. Ser. No. 10/451,717, filed on Jun. 20, 2003, now U.S. Pat. No. 7,010,303, which is a national phase application filed under 35 U.S.C. §371 of PCT/CA01/01814, filed on Dec. 21, 2001. This application also claims priority to U.S. Ser. No. 60/257,425, filed on Dec. 22, 2000. Each of these prior applications is hereby incorporated into this application by reference.
The present invention relates to a wireless routing system and method for exchanging data items between one or more host services and a plurality of mobile devices.
To get around the problem of pushing information to a mobile device, most systems today either use a pull paradigm to get information to the mobile device, or they warehouse information until the handheld device plugs into a serial port to download the bulk information. Those systems that do exist for wireless networks are generally gateways and proxy servers. Gateway systems generally act to accept wireless handheld requests and perform synchronization and transport functions to ensure the information is delivered using a pull paradigm. Proxy servers work at either the transport or application level to “spoof” protocols into believing everything is working successfully.
In the router paradigm, attempts to address simple connectivity to one or more wireless networks have not developed a commercially feasible wireless router capable of supporting push to a community of host services and mobile devices. This problem is difficult and requires a specialized solution given the anomalies found in wireless data networks. Instead, these infrastructure manufacturers are building internal network switches for the wireless networks, which simply solve the problem of moving data from A to B, with no concern about ensuring end-to-end delivery of datagrams and providing push services that can abstract away network issues. The problems of guaranteed end-to-end delivery are more complex and require a specialized wireless router to be developed.
As used in this application the term host system can refer to one or more computer systems linked via a local area network (LAN), a wide area network (WAN) or some virtual private network (VPN) arrangement. The host system is combined through a common association, like a corporate enterprise computer system, an Internet Service Provider (ISP) or a value-added Internet Service like AOL. On the host system, there can be one or more host services operating. Any one of these host services might offer wireless access through the wireless router being disclosed in this application. Host services could be e-mail, calendar, and web page access or more complicated financial host services, stock trading host services or database access host services. The host service may or may not employ a “push method” to enhance the mobile experience for the user. Host software programs can run in a corporate environment, in an ISP (Internet Service Provider) environment, in an ASP (Application Service Provider) environment, or many other environments as long as Internet connectivity is available. In accordance with an aspect of the invention, data items are pushed to the mobile device through a routing system, which implements an associated routing method. The host system performing the data exchange is preferably repackaging the user's data items for transparent delivery to the mobile data device through the routing system. Any types of data items can be supported this way including data like: E-mail messages, calendar events, meeting notifications, address entries, journal entries, personal reminders, voice-mail messages, voice-mail notifications, database updates, video clips, music clips, audio files, ring tones, Java programs, software updates, games and any other computer-related data having a digital format.
An advantage of the present invention is that it may provide a system and method for continuously routing all forms of pushed information from a host system to a mobile data communication device. A further advantage of the invention is the provision of host systems in a rapid manner and providing worldwide access to mobile subscribers of a given host service. Other advantages of the routing aspects of the present invention include: (1) flexibility in coupling gateways, some of which are located behind a company firewall, to one or more network systems; (2) the provision of a central routing point or system solves the problem of pushing data to mobile devices on behalf of all gateways; (3) transparent repackaging and routing of the user data items in a variety of ways such that the mobile data communication device appears as though it were the host system; (4) a single routing system routes data items between pluralities of different networks; (5) the routing system and method routes data items without regard to their content, thereby providing for end-to-end security and effectively extending a firewall, for host systems or other gateways located behind the firewall, to the mobile device; (6) integration with other host system components such as E-mail, TCP/IP, keyboard, screen saver, web-pages and certain programs that can either create user data items or be configured to provide trigger points; and (7) the routing system acts as a single demultiplexing point for all mobile traffic, thus facilitating and simplifying billing and provisioning.
FIG. 2 is an illustration showing all the components within a dual-mode mobile device that can be used with this application.
FIG. 5 is a detailed diagram expanding on the host interface handler within the wireless router. This component is responsible for supporting all data exchanges with host systems wishing to communicate with mobile devices.
FIG. 7 is a detailed diagram of the registration and billing components within the wireless router. These components allow the mobile to update its location and provide billing records as the mobile performs different operations.
Referring now to the drawings, FIG. 1 is an example system diagram showing the redirection of user data items (such as message A or C) from a corporate enterprise computer system (host system) 28 to the user's mobile device 24 via a wireless router 20. The wireless router 20 provides the wireless connectivity functionality as it acts to both abstract most of the wireless network's 26 complexities, and it also implements features necessary to support pushing data to the mobile device 24. Although not shown, a plurality of mobile devices may access data from the corporate enterprise computer network system. In this example, message A in FIG. 1 represents an internal message sent from desktop 6 to any number of server computers in the corporate LAN 14, including a database server 42, a calendar server 44, an E-mail server 46 or a voice-mail server 48. Message C in FIG. 1 represents an external message from a sender that is not directly connected to LAN 14, such as the user's mobile device 24, some other user's mobile device (not shown), or any user connected to the Internet 18. Message C could be e-mail, voice-mail, calendar information, database updates, web-page updates or could even represent a command message from the user's mobile device 24 to the host system 28. The host system 28 preferably includes, along with the typical communication links, hardware and software associated with a corporate enterprise computer network system, one or more wireless mobility agents 12, a TCP/IP connection 16, a collection of data stores 40-48, (i.e. for example a data store for e-mail could be an off-the-shelf mail server like Microsoft Exchange® Server or Lotus Notes® Server), all within and behind a corporate firewall 29.
FIG. 1 shows the invention being used within the corporate enterprise network environment, which is just one embodiment showing one type of host service 12 that offers push-based messages for a handheld wireless device that is capable of notifying and preferably presenting the data to the user in real-time at the mobile device 24 when data arrives at the host system. FIG. 3 also shows a more detailed and complex environment with more types of host services. By using the wireless router 20 an important set of advantages are realized.
By offering a wireless router system 20 there are a number of major advantages to both the host service 12 and the wireless network 26. As mentioned earlier a host service 40-48 is considered to be any computer program that is running on one or more computer systems 28. The host service 40-48 is said to be running on a host system 28, and one host system 28 can support any number of host services 40-48. A host service 48 may or may not be aware of the fact that information is being channeled to mobile devices 24. For example, an e-mail program 48 might be receiving and processing e-mail while an associated program (e-mail wireless mobility agent 14) is also monitoring the mailbox 48 and forwarding or pushing the same e-mail to a wireless device 24. A host service 40 might also be modified to prepare and exchange information with wireless devices 24 via the wireless router 20, like customer relationship management software 40. In a third example, there might be a common access to a range of host services 42-46. For example, a mobility agent 12 might offer a Wireless Access Protocol (WAP) connection to several databases. Connecting host services 28 to mobile devices 24 has long been a problem for the wireless community that has not grown anywhere near as fast as the land-line based Internet network. The current invention solves many problems when connecting host services to wireless networks and builds a bridge to improve the deployment of host services for mobile devices. These advantages include:
The communication connection to a network carrier is likely to require a leased communication line. The minimum bandwidth for a point-to-point connection is generally around 64 kbps, and at current pricing that is only cost effective for large numbers of mobile devices. The costs are prohibitive for a small- or medium-sized customer.
With some of the network architectures being used it is nearly impossible to implement host-initiated push without a wireless router. In the GPRS network, for example, only the mobile device can initiate a PDP Context to acquire an IP address. Normally the IP address is a private, dynamically assigned IP address which is not visible to public host services. Therefore, to solve this problem the host system would have to become a private host service that is part of a virtual private network (VPN) run by the network carrier.
A preferred mobile data communication device (“mobile device”) 24 can either be: a handheld two-way wireless paging computer as described in detail in FIG. 2, a wirelessly enabled palm-top computer, a mobile telephone with data messaging capabilities, a PDA with mobile phone capabilities, or a wirelessly enabled laptop computer, a vending machine with an associated OEM radio modem, a wirelessly-enabled heart-monitoring system or, alternatively it could be other types of mobile data communication devices capable of sending and receiving messages via a network connection 22. Although it is preferable for the system to operate in a two-way communications mode, certain aspects of the invention could be beneficially used in a “one and one-half” or acknowledgment paging environment, or even with a one-way paging system. In this limited data messaging environment, the wireless router 20 still could abstract the mobile device 24 and wireless network 26, offer push services to standard web-based server systems and allow a host service 28 to reach the mobile device 24 in many countries. The mobile device 24 includes software program instructions that work in conjunction with a destination host service 28 or wireless mobility agent 12 shown in FIG. 1.
A host service 28 using the present invention has many methods when establishing a communication link to the wireless router 20. For one skilled in the art of data communications the host services 28 could use connection protocols like TCP/IP, X.25, Frame Relay, ISDN, ATM or many other protocols to establish a point-to-point connection. Over this connection there are several tunneling methods available to package and send the data, some of these include: HTTP/HTML, HTTP/XML, HTTP/Proprietary, FTP, SMTP or some other proprietary data exchange protocol. The type of host services 28 that might employ the wireless router 20 to perform push could include: field service applications, e-mail services, stock quote services, banking services, stock trading services, field sales applications, advertising messages and many others. This wireless network 26 abstraction is made possible by the routing system 20, which implements this routing and push functionality. The type of user-selected data items being exchanged by the host could include: E-mail messages, calendar events, meeting notifications, address entries, journal entries, personal alerts, alarms, warnings, stock quotes, news bulletins, bank account transactions, field service updates, stock trades, heart-monitoring information, vending machine stock levels, meter reading data, GPS data, etc., but could, alternatively, include any other type of message that is transmitted to the host system 10, or that the host system 10 acquires through the use of intelligent agents, such as data that is received after the host system 10 initiates a search of a database or a website or a bulletin board. In some instances, only a portion of the data item is transmitted to the mobile device 24 in order to minimize the amount of data transmitted via the wireless network 26. In these instances, the mobile device 24 can optionally send a command message to the host service 40, 12 and 14 to receive more or the entire data item if the user desires to receive it. The wireless router 20 provides a range of services to make creating a push-based host service straightforward, which is essential to the success of wireless data networks. These networks can include: (1) the Code Division Multiple Access (CDMA) network that has been developed and operated by Qualcomm, (2) the Groupe Special Mobile or the Global System for Mobile Communications (GSM) and the General Packet Radio Service (GPRS) both developed by the standards committee of CEPT, and (3) the future third-generation (3G) networks like EDGE and UMTS. GPRS is a data overlay on top of the very popular GSM wireless network, operating in virtually every country in Europe. Some older examples of data-centric networks include, but are not limited to: (1) the Mobitex Radio Network (“Mobitex”), which has been developed by Eritel and Ericsson of Sweden, and is operated by Cingular Corporation in the United States, and (2) the DataTAC Radio Network (“DataTAC”), which has been developed by Motorola and is operated by Motient Corporation, in the United States.
6. Connect to a wide range of wireless networks 26 and provide a way of tracking the user's location so that a “follow you anywhere” solution can be provided.
Turning now to FIG. 2 there is a block diagram of a mobile device 24 which can support the wireless router 20 that is disclosed in this invention. The mobile device 24 is preferably a two-way communication device having at least data communication capabilities. The mobile device 24 preferably has the capability to communicate with other computer systems on the Internet. Depending on the functionality provided by the mobile device 24, the mobile device 24 may be referred to as a data messaging device, a two-way pager, a cellular telephone with data messaging capabilities, a wireless Internet appliance or a data communication device (with or without telephony capabilities).
Network access requirements will also vary depending upon the type of network 219. For example, in the Mobitex and DataTAC networks, mobile devices such as 24 are registered on the network using a unique personal identification number or PIN associated with each mobile device 24. In GPRS networks however, network access is associated with a subscriber or user of a mobile device 24. A GPRS mobile device 24 therefore requires a subscriber identity module (not shown), commonly referred to as a SIM card, in order to operate on a GPRS network. Without a SIM card, a GPRS mobile device 24 will not be fully functional. Local or non-network communication functions (if any) may be operable, but the mobile device 24 will be unable to carry out any functions involving communications over network 219. When required network registration or activation procedures have been completed, a mobile device 24 may send and receive communication signals over the network 219. Signals received by the antenna 216 through a communication network 219 are input to the receiver 212, which may perform such common receiver functions as signal amplification, frequency down conversion, filtering, channel selection and the like, and in the example system shown in FIG. 2, analog-to-digital conversion. Analog-to-digital conversion of a received signal allows more complex communication functions such as demodulation and decoding to be performed in the DSP 220. In a similar manner, signals to be transmitted are processed, including modulation and encoding for example, by the DSP 220 and input to the transmitter 214 for digital-to-analog conversion, frequency up conversion, filtering, amplification and transmission over the communication network 219 via the antenna 218.
In a data communication mode, a received signal such as a text message or web page download will be processed by the communication subsystem 211 and input to the microprocessor 238, which will preferably further process the received signal for output to the display 222, or alternatively to an auxiliary I/O device 228. A user of mobile device 24 may also compose data items such as e-mail messages for example, using the keyboard 232, which is preferably a complete alphanumeric keyboard or telephone-type keypad, in conjunction with the display 222 and possibly an auxiliary I/O device 228. Such composed items may then be transmitted over a communication network through the communication subsystem 211.
For voice communications, overall operation of the mobile device 24 is substantially similar, except that received signals would preferably be output to a speaker 234 and signals for transmission would be generated by a microphone 236. Alternative voice or audio I/O subsystems such as a voice message recording subsystem may also be implemented on the mobile device 24. Although voice or audio signal output is preferably accomplished primarily through the speaker 234, the display 222 may also be used to provide an indication of the identity of a calling party, the duration of a voice call, or other voice call-related information for example.
FIG. 3 is a high-level block diagram of a preferred embodiment of a routing system by which data items are routed to and from the mobile devices 24 in accordance with a further aspect of the invention. FIG. 3 introduces further complexity into the system in which the invention is used. As shown in FIG. 3, information services such as the Wireless Enterprise Server 28 a, Joe's E-Trade Service 28 b, My ISP Service 28 c, and My ASP Service 28 d are all connected via WAN 18 to the wireless routing system 20. As described in FIG. 1, it is assumed in this figure that any of these host systems 28 can have one or more wireless-enabled host services 40, 12 and 14 running within a computer running at the host system 28. For the remaining parts of this application this relationship will be assumed. The wireless router 20 may be distributed across different geographic boundaries for redundancy and fault tolerance. As will be apparent to those skilled in the art, the arrangement shown in FIG. 3 assumes that wireless networks 26 a, 26 b and 26 c are packet-based communication networks, although the invention is not limited thereto. Packet-based wireless networks 26 are widely used for data transfer and are therefore preferred for implementation of the invention. The mobile device 24 is adapted for communication within wireless network 26 via wireless links 22, as required by each wireless network 26 being used. As an illustrative example of the operation for a wireless routing system 20 shown in FIG. 3, consider a data item A, repackaged in outer envelope B (the packaged data item A now referred to as “data item (A)”) and sent to the mobile device 24 from an Application Service Provider (ASP) 104. Within the ASP 104 is a computer program, similar to the wireless mobility agent 12 or 14 in FIG. 1, running on any computer in the ASP's 104 environment that is sending requested data items from a data store 115 to a mobile device 24. The mobile-destined data item (A) is routed through the Internet 18, and through the wireless router's 20 firewall protecting the wireless router 20. Only authorized host systems can exchange data with mobile devices 24, thus reducing the chances of denial of service attacks or other security problems. Each host system is configured and set up by the operator of the wireless router 20. For one skilled in the art of firewall configuration this can easily be performed through direct operator commands, through a web interface, manually or programmatically. The wireless router 20 examines the mobile address information contained in the outer envelope B to determine which wireless network 26 to route the data item (A) to. The wireless router 20 then routes the data item (A) based on the mobile address in envelope B and then transmitted to the mobile device 24 d over wireless network 26 c. In this example, the data item A could be an E-Mail sent from an Internet mail account, a calendar event, a database inventory item level, a field service call or other important, “just-in-time” pieces of data residing primarily at the host system 28 d. As shown in subsequent diagrams the wireless router 20 may also track the location of the wireless device 24 by following incoming traffic patterns, by receiving any information provided by the wireless network 26, and by receiving registration signals from the mobile device 24 when the user changes wireless networks 26. This later case may be performed manually by the user of the mobile device 24, so the RF component of the mobile device 24 can change frequency tables to match the new country being used. At any time a wireless device 24 might roam between wireless networks 26, so that a new path is required for data items. The path it takes might involve serious time delay as the user flies to another country or a different part of the same country. During this out-of-coverage blackout, the wireless router 20 is storing all data items to be eventually transmitted to the mobile device 24, and is periodically attempting to re-send any stored data items to see if the mobile device 24 has returned to a coverage area.
Another major advantage of the wireless router 20 is that the host services 28 do not have to connect to every wireless network 26 they wish to support. This connection requirement to the wireless network 26 is done once by the wireless router 20 and can be used by all host services 28 connecting to the wireless router 20. This connection to multiple networks could involve similar networks, dissimilar networks, or even different revisions of the same network. For a single company supporting a community of wireless mobile device users, it is very likely that a range of dissimilar mobile devices 24 will need support from a single host. The wireless router 20 can handle this, insofar as it provides a common access to all dissimilar networks and makes the task of hosting a host service relatively simple. In one embodiment, a network carrier may manage and operate only one wireless network 26, while another network carrier may manage and operate more than one wireless network 26. Hence, the wireless router 20 facilitates the connectivity into and from one or more network carriers and their respective one or more wireless networks 26.
To provide this abstraction between the wireless network 26 and the host service 28, the wireless router 20 implements an addressing and router abstraction methodology. This method results in the wireless network 26 not needing to know about the host service 28, and the host service 28 not needing to know about the wireless network 26. This abstraction is implemented by assigning each host service a Host Service Identifier or “Host Service Id”. From the host service's point of view, the Host Service Id effectively replaces an identifier assigned by the wireless network 26. For example, in a Mobitex wireless network, this identifier is called a Fixed Station Terminal (FST) number, in a DataTAC wireless network, this identifier could be called a Net ID and in GPRS this identifier could be associated to the Access Point Node (APN). The wireless router 20 assumes this wireless network-centric address and the host services are given a Host Service Id created by the wireless router system 20. Each host service 28 that is sold, licensed or enabled to wirelessly provide data to the mobile device is assigned a special Host Service Id number. This could be a string, an IPv4 address, an IPv6 address or a proprietary string. The string is then manually or automatically configured within the wireless router 20; in preferably a database structure operating at or associated with the wireless router 20. As each host service 28 tries to connect and validate itself, the Host Service Id is used to confirm the identity of the host service 28, and to locate the correct database entry for the host service 28. FIG. 8 illustrates a preferable set of the protocol layers to perform this routing and abstraction just discussed. In reference to FIG. 4 this is a detailed diagram showing the components within the wireless router 20. The components inside of the wireless router 20 include a component that deals with host service connectivity called the host interface handler (HIH), a component that deals with guaranteed message reception and delivery (wireless transport handler (WTH)), and a component to deal with all the wireless network connections called the network interface adapter (NIA). Also described are support components that provide work assignments (called the work dispatcher), the billing and registration services component, and a database component that provides continuity, state and configuration information to the entire wireless router system. All the components are preferably tied to a backbone 314, which can be any number of high-speed LAN technologies using Ethernet, Fiber or any other LAN methods available. This high-speed backbone between all the components is designed to distribute the work and provide fault tolerance. For one skilled in the art, there are several off-the-shelf products to provide distributed and fault tolerant work and message queuing systems. The most prominent of these are the IBM® MQ Series products and TIBCO™ Rendezvous products. Such products may, for example, provide an information bus that provides a publish/subscribe architecture that can be used to build redundancy, scalability and other major features. This product is used in many major financial institutions and to power the backbone of portal networks and search engines.
Turning now to FIG. 4 the first major component that is present but not directly part of the wireless router 20 is an Internet firewall 110. The firewall 110 acts as a form of protection from Internet hackers that attempt to send data to wireless devices 24 without authorization. This firewall 110 preferably may be off-the-shelf and would protect the wireless router 20 at a lower IP-layer type protocol. Once through the firewall, the host service 28 connects to one of a plurality of host interface handlers (HIHs) 300. There can be any number of HIHs 300 depending on the number of hosts that are configured and required in the system. The method used for this connection and for authorization of the connection is detailed in FIG. 5 as will be described later. The HIH component uses various parts of the database 340 to confirm and register the incoming host connection 28. The known hosts 340 a sub-component of the database provides a way of validating that the host is known and marking its state as “present” once the host is connected and authorized. Preferably, once the host connection is established, a secure and authenticated point-to-point communication connection is ready for the exchange of data between the host system or service and the wireless router. In an embodiment of the present invention, there are a plurality of such communication connections between the wireless router and a plurality of host system or services.
The next component that works closely with the HIH 300 is called the wireless transport handler (WTH) 306. The WTH 306 takes responsibility for data item transfer to and from the mobile device 24. Depending on the load of traffic, and the number of mobile devices 24 in the system, there may be a plurality of WTH 306 components operating in the system. The LAN backbone 314, using something like a TIBCO queuing system, combined with the work dispatcher 302, allows each component of the system to scale as large as needed. The WTH 306 component will be expanded and described further in FIG. 6. The next component is the network interface adapter (NIA) 308, which could have a communications link directly to the WTH 306, or the NIA 308 could be accessible via the LAN network backbone 314. This alternative embodiment is shown in greater detail in FIG. 6. The NIA 308 provides the direct interface to the wireless network 26 being supported. Since many of the current wireless data networks 26 have unique communication connection requirements, this component preferably buffers the other wireless router components from many of the specific nuances of the particular wireless network it is in communication with. In a preferred embodiment, the NIA 308 isolates the WTH 306 from much of the details of communication links and physical interface requirements of each wireless network 26. There could be any number of wireless networks 26, all with their own connection methods. In some it could be a proprietary protocol over X.25, like the Mobitex or DataTAC networks. In others, it could be a proprietary protocol over TCP/IP, like a newer version of the DataTAC network. In other cases, it could be an IP connection, supporting either a TCP or UDP data exchange method, like the CDMA, W-CDMA, and GPRS networks.
To further enhance the wireless router 20 there are other support components that could either exist separately, or be built into a single component. The first of these is the work dispatcher 302. The work dispatcher's 302 role is defined more clearly in FIGS. 5-6. One of the functions of the work dispatcher 302, is to assign a specific WTH 306 to a mobile device 24 so that all data items are routed through the same WTH 306. If a WTH 306 fails, the work dispatcher 302 finds a new WTH 306 to take its place. Additionally, if one WTH 306 becomes too busy or is handling an undesirably large traffic load, the work dispatcher 302 can assign data items that are to be routed to the mobile devices 24 to instead round robin to multiple WTHs 306. This is one example of how the fault tolerant and scalable system is built, and a fault tolerant queuing system like TIBCO may solve this problem very easily. In the other direction, the work dispatcher 306 finds the correct HIH 300 to accept data items from mobile devices 24. Since a host service 28 can preferably connect to any HIH 300, the work dispatcher 306 finds the HIH 300 that has responsibility for or is associated with the host-router communication connection initiated by the correct host service 28, and routes the data appropriately. Recall that each host service 28 connects and is assigned round robin to the next available HIH 300. This process is described in detail in FIG. 5.
Another preferable component in the wireless router 20 is the peer-to-peer (P2P) messaging component 304. This component is optional, but provides desirable peer-to-peer message routing facility, which allows mobile devices 24 to send directly to other mobile devices 24. The P2P component can perform the functions similar to an Instant Messaging gateway, but in this case for mobile devices 24. In some networks, where the mobile's identity might not be static, a mobile device 24 cannot easily send a message to another mobile device 24. In other networks SMS (short message service) solves this problem and provides a limited 160-character data exchange. The wireless router 20 has a store and forward structure that permits it to offer SMS and wireless messaging simultaneously to all wireless devices 24.
Another optional component would be the additional network interface adapter (NIA) 312 being used for registration and billing 310. This additional NIA 312 is present to ensure that normal packet traffic does not delay or hold up registration, billing and security services 310. A common registration method within the registration and billing component, would be for receiving registration packets when a mobile device 24 first starts, or when they change countries. Normally billing and registration information is very critical so the wireless router 20 has the flexibility in design to provide dedicated NIAs 308 for this purpose.
Turning now to FIG. 8 the first protocol layer in the host service 28 is the original data 400. The original data 400 acts as the payload of the message, i.e. the data that is communicated to the mobile device 24. The original data of the message 400 might be extracted from some database for the purposes of being pushed to the device 24, it could be a response to a request from the device 24, or could be a real-time response to a mobile device's 24 query. In some cases, only a portion of the original data acts the payload. The original data could have a wide range of data processing and transformations performed on it. For example, the data could be tokenized, transcoded, compressed, encrypted, signed, authenticated, encoded, enveloped, or may perform other data transforming steps. These transformations are common in wireless data transmissions to optimize bandwidth, reduce cost, provide end-to-end security or to provide authentication services. When the host service is within a corporate enterprise computer system environment, security is mandatory, so that all sensitive or confidential corporate data is not compromised. This processing preferably takes place before the data exits the firewall of the corporate enterprise computer system. The message could also be tokenized, translated or some other transformation could be applied to it. For one skilled in the art of protocols, it is clear that the payload could be “prepared” for shipment in many ways depending on the requirements of the sender and receiver. Once the correct enveloping is performed, the original data is then given to the protocol for the wireless router 405 layer to prepare it for the next step.
The protocol for the wireless router 405 is primarily a routing protocol for the wireless router 20. A goal of the protocol for the wireless router 405 is to carry a “destination” field that indicates the destination of the message. Another use of the protocol for the wireless router 405 is to provide a control field for demultiplexing information (“control information”) at the host system. FIG. 1 shows a Host Service Agent 12 that is demultiplexing one data communication connection to the wireless router 20 across three host services 42-46. This control information can be carried in the protocol for the wireless router 405 and would be preferably transparent to the wireless router 20 in the sense that the wireless router 20 need not act on the control information. The presence of the protocol for the wireless router 405 provides a method to abstract the wireless network 26 from the host service 28, and it can facilitate a method for abstracting the address of the wireless device 24 from the host service 28. For example if the mobile device 24 address, as used by the wireless network, is a dynamically assigned, private IP address, (created in some cases by the wireless network), then multiple mobile device addressing translation can be performed within the wireless router 20. The protocol for the wireless router 405 adds routing information for the wireless router in either direction (i.e., data traffic from the mobile device to the host service or data traffic from the host service to the mobile device), depending on the destination. When the host service 28 is sending a message to the mobile device 24, the message includes at least the original data 400, the protocol for the wireless router 405 and an identifier that corresponds to the mobile device 24. This identifier could be a real device identifier like a MAN (Mobitex Access Number) identifier or LLI (Logical Link Identifier) identifier, as used in the Mobitex and DataTAC networks respectively. Other examples include a serial number for the mobile device, an e-mail address or codename of the user of the mobile device. The identifier could also be an IP address, MSISDN or IMSI in the case of GPRS. In some situations, i.e. when using dynamic, private IP addresses in GPRS, the device identifier could be a PIN-like number assigned at manufacturing time. In this latter case, the wireless router 20 preferably has the ability to dynamically map “Device PIN” to “Real Device ID” within the wireless router database 340 as data items arrive at the wireless router 20. In the other direction, when the message comes from the mobile device 24 to the host service 28 the destination field is the Host Service Id. The Host Service Id allows the wireless router 20 to locate the correct host for the data message. The mobile device 24 is given the Host Service Id preferably when it first registers for the host service, either over the wireless network (“over the air”) or through a separate channel, i.e. a telephone call and it can be manually entered by the user. In other cases, when the mobile device 24 is initialized at the corporate enterprise computer system or at the mobile device 24 reseller, distributor or manufacturer with one or more host services, the mobile device is populated with the corresponding host service identifiers. For one skilled in the art there could be some further additions made to this protocol, or other ways to encode the information, but the intent is the same. For example, it might be possible to place some limited control information into the protocol for the wireless router to inform the receiver that the original data 400 is encrypted or compressed. There could be a control code so that a representation of the command could be exchanged between the two end points, meaning that there would be no original data 400 in the data item. Another piece of information that could be added, may be a host service name. The service name could be used by a Host Service Agent 28 b to demultiplex and send data to multiple host services 28 c and 29 d above it. In this situation the host service name is used as a control code between one or more mobiles and the Host Service Agent 28 b. One advantage of doing this is that only one host-router communication connection from the Host System is required, instead of two. This reduces the number of holes in the firewall 10, which would reduce security risks and be more acceptable to the IT department managing the corporate enterprise computer system for the host system.
Once this protocol for the wireless router 405 is added it may be transported across a communications connection/link to the wireless router 20. As already discussed there are many protocol choices for carrying the original data 400 and the protocol for the wireless router 405 to the wireless router 20 from the host system or service. The TCP/IP and HTTP/XML choices are preferred. The main goal of this protocol is to provide a tunnel across the communications connection/link between the host system 28 and the wireless router 20. The tunnel carries all data in both directions and any other control information required between the two ends. The point-to-point delivery protocol 410 preferably provides one or more of the following properties:
(c) It should be able to offer flow control and guaranteed end-to-end acknowledgments. Since the wireless networks are generally slower than landline networks, it is important the wireless router 20 can flow-control and throttle the host service 28. When the host service 28 is pushing information to mobile devices 24 this has the potential to overwhelm the storage and delivery capacity of the wireless router 20. If messages aren't getting through to the mobile device 24 the host service 28 should naturally be told to hold back delivering more data until the first data items are delivered. This is already possible by using the message acknowledgements on a per-mobile basis, but a situation can occur where a given host service 28 is overwhelming the wireless router 20 with data across thousands of mobile devices 24.
Once the point-to-point delivery 410 of the original data 400 and the protocol for the wireless router 405 is complete, the wireless router 20 can route the message based on the protocol for the wireless router 405. It performs this routing by looking in the destination field of the protocol for the wireless router 405. The destination field will either have a mobile device 24 identifier, or a Host Service Id. FIGS. 5-7 describe in greater detail how this routing function takes place. If the message is going towards the mobile device 24, the wireless router 20 adds a transport layer 415 for guaranteed delivery and performs any necessary “always-on” activities 415 to assure it can reach the mobile device 24. For example in GPRS the always on activities might involve sending an SMS message to the device 24 requesting that it activate a PDP Context and get an IP address assigned to it. The transport protocol may range in design and style. In the other direction the wireless transport 20 would strip off the wireless transport protocol 415. What is generally important in the transport layer 415 are one or more of the following properties:
(a) It should be designed as a loosely-coupled transport of information to the wireless device 24. This means that using a session-based, aggressive message delivery can be a problem. Given the number of marginal coverage and out-of-coverage anomalies that can take place in the wireless network 120, 130, 140 the transport should have some “very lax” delivery requirements to ensure messages are received.
c) It should be able to accept network control messages and feedback if available. Some wireless networks will inform the wireless router 20 what is happening to the mobile device 24. These feedback messages are essential to improving the delivery experience. Control messages like: “Mobile back in coverage”, “Mobile out of coverage”, “Mobile turned off”, “Base station is congested”, and “Network congested” are all important indicators that affect how to deliver packets to the device 24 in a network-friendly manner.
When sending to the mobile device 24, the wireless transport protocol 415 then adds the necessary network protocols 420. Some networks have proprietary network protocols, like Mobitex and DataTAC, others networks like GPRS offer native TCP/IP or UDP/IP connection alternatives. Generally speaking the UDP/IP protocol is the preferred protocol for a network like GPRS, as it provides the loose coupling needed to deliver a series of packets to construct the message. The wireless network 26 then uses the network protocol 420 to route the packet to the correct mobile device 24. Once received by the mobile device 24 it proceeds to remove the network protocol 420, the wireless transport protocol 415 and the protocol for the wireless router 405, to get at the payload 400. If necessary, the mobile device 24 will respond over the wireless transport protocol 415 to acknowledge reception of the packet. If requested in a network like GPRS, the mobile device 24 will also open a PDP Context and acquire an IP address so that data can be sent to the device from the wireless router 20. In the end, the correct use of these protocols makes the wireless router 20 a perfect abstraction and wireless tool for connecting host services 28, 100, 102 to a community of mobile devices 24.
Turning now to FIG. 10 this illustration presents another variation of the protocol layers that are used with the wireless router 20. This traditional view shows how each protocol layer fits into the adjacent layers. Starting from the host service (top of the diagram) the original data 400 is the reason for the message to be transmitted. A message is then constructed from the original data and a wireless router protocol (WRP) 405. The WRP 405 contains at least a destination address (a mobile device 24 identifier) when it is leaving the host service 28. Another message is then constructed that contains the original data 400, the WRP 405 and an end-to-end protocol 410. The end-to-end protocol 410 contains at least a wireless router 20 address (an IP address when using TCP/IP for the data connection method), a command sequence, and a message length. The command sequence would be commands like “data,” “acknowledgement,” “flow on” or “flow.” This message is then sent over the landline network connecting the host system 28 to the wireless router 20, shown in FIG. 10 as the Internet.
The wireless router 20 then will remove the end-to-end protocol 410 and is left with the WRP 405 and the original data 400. A new message is constructed that contains the original data 400, the WRP 405 and the wireless transport protocol (WTP) 415. The WTP 415 contains at least a transport header command, a packet Id, a packet sequence and a total message length. The transport command would be at least commands like: “data,” “acknowledgement,” “error” and “resend.” Another new message is then constructed from the original data 400, the WRP 405, the WTP 415 and the network packet 420. The network packet 420 contains at least the destination mobile identifier, and other components required by the network. If the Internet Protocol (IP) is being used then the destination mobile identifier would be the currently assigned IP address for the mobile device 24. This message then travels across the wireless network 26 to the mobile device 24.
When the mobile device 24 receives this message it removes the network packet 420 and is left with the original data 400, the WRP 405 and the WTP 415. Next the mobile device 24 then removes the WTP 415 and performs any acknowledgement required by the WTP 415. Finally the wireless device 24 removes the WRP 405 and is left with the original data 400. In the opposite direction the same steps occur except that the destination address in the WRP 405 is the Host Service Id as defined earlier. The Host Service Id is exchanged with the mobile device 24 so that it has a method of addressing the host service 28.
In reference to FIG. 5 this illustration focuses on the host interface handler (HIH) 300, and its operation within the wireless router 20 to produce the features being claimed by this application. The HIH 300 is responsible for accepting connections and exchanging data between the host services 28 and the wireless router 20. The HIH 300 also validates the initial host connection to ensure that another computer is not impersonating the host service 28. The HIH 300 also is involved with routing traffic to the correct wireless transport handler (WTH) 306 for delivery to the correct mobile device 24.
After the data path is established the host service 28 can send data to mobile devices 24 as needed, without solicitation or being requested by the mobile device 24 user. For each message that arrives to the wireless router 20, it is tagged, saved and given to a WTH 306 for delivery. The work dispatcher 302 again turns to the database 340, this time looking at the mobile device 24 identifier, the mobile's status and mobile's location to determine which WTH 306 should be assigned the task of delivering the message. Different WTHs 306 are assigned different network types and countries, so these factors are also taken into account when the mobile's status and characteristics are checked. The mobile device 24 identifier in the destination field of the protocol for the wireless router 405 will indicate what network type is appropriate for this message. Once the assignment is made, the HIH 300 is informed so that it can cache the information for future data exchanges with this same mobile device 24. By keeping a cache of these assignments, the number of database hits is kept to a minimum and the work dispatcher 302 does not become the bottleneck of the wireless router system 20. During this process the billing component will be given billing records including fields like: the host name and Host Service Id, the connection time of the host service 28, the number of messages and their sizes exchanged, the types of services being accessed, the times of all data exchanges and any other relevant data that could affect billing information.
As shown in FIG. 5 the mobile database 340 b has many fields, and it has at least fields that identify the mobile device identifier, the network type of the device, the physical connection number, the current state, the data status and an array of data items that might be pending or unacknowledged. The physical connection number is used when more than one link is available to a specific wireless network 26. Some networks impose requirements for traffic flow into the network to load balance the system. The Mobitex network in the US has just such a restriction and has sub-divided its network into regions to improve delivery. The mobile database 340 b will be discussed further in FIG. 6.
In the other direction as mobile device 24 messages come up from the WTH 306 they are saved in the mobile database 340 b and passed up to the correct HIH 300. If the very first message in either direction comes from the mobile device 24, the WTH 306 can ask the work dispatcher 302 where to find the host service 28 that belongs to this message. This routing technique is possible because the mobile device 24 places the Host Service Id in each message it sends to aid in the routing of the messages to the correct host service 28. This is important because one user working at one mobile device 24, could have access to many host services 28 a, 28 b, 28 c and 28 d through the same wireless router 20. If for some reason the host service 28 has not connected yet, the message waits in the mobile database 340 b for some configured amount of time for the host service 28 to reconnect. The host service 28 might have had a temporary failure, the Internet link might have dropped the connection momentarily, or the host service 28 crashed and is coming back to life. Once the host service 28 is confirmed the message is then routed to the correct HIH 300, where it is routed to the host service 28. Once it is confirmed the message is deleted from the mobile database 340 b. After this route is established between the WTH 306 and the HIH 300, it is kept in a cache to reduce the number of database hits. During this process of message delivery from the wireless device 24 to the host service 28 a billing record is written to the billing component so that a record is kept of all data exchanges, the time of the exchange, the network it originated on and any other pertinent information needed for billing the customer or the user.
Another routing method offered by the wireless router 20 is the ability for mobile devices 24 to send directly to each other without involving an external host service 28. In certain circumstances, a user of a mobile device 24 may wish to send a data item directly to another mobile device 24 associated with the same wireless router 20, without sending the data item to a host system 28. This is a common technique used in Instant Messaging systems and is very popular in desktop host systems. The peer-to-peer messaging component 304, in the wireless routing system 20 in FIG. 5 enables such communication between mobile devices 24. If a data item is to be sent from the mobile device 24 a to the mobile device 24 b for example (not shown), then an identifier for the mobile device 24 b is inserted as a destination address of the protocol for the wireless router 405. The data item is then sent to the wireless router 20, which recognizes the destination as a mobile device 24 identifier, instead of a Host Service Id. In one embodiment of the invention, the data item is an E-Mail message that would use an SMTP address as the destination. If the data item address contains an “@” symbol, then the data item would be destined for a host service offering an E-mail service. Where a wireless network address or identifier, such as a MAN (Mobitex Access Number) or NET ID (a DataTAC Host Id) for example, appears as the destination address however, the Peer-to-Peer Messaging component 304 recognizes the message as a peer-to-peer message.
In reference to FIG. 6 this figure focuses on the role of the wireless transport handler (WTH) 306 and the network interface adapter (NIA) 308 in the role of delivering and receiving data to a wireless network 26. As demonstrated in FIG. 5 the role of the work dispatcher 302 and the mobile database 340 b are key to providing the routing operation required. In FIG. 6 another database is introduced to the wireless transport and networks database 340 c. This database holds the relationship between WTH 306 and wireless networks 26. Since one wireless router 26 supports any number of wireless networks 26, this is done by mapping wireless networks 26 onto different WTH 306 components.
Turning now to FIG. 6 we can build on the description provided in FIG. 5. For data arriving from a host service 28 there is an assignment made to a WTH 306. This assignment was briefly described in FIG. 5, and was based on many factors. When the wireless router 20 was first built, there was an attempt to mirror every component to have at least one redundant element. In the case of the WTH 306, the work dispatcher 302 will have several WTHs 306 that can reach the same wireless network 26 and provide redundant service. Therefore, in addition to finding the correct WTH 306, that can provide access to the correct network, the work dispatcher 302 ensures that the WTH 306 does its job. If the WTH 306 has a problem, is overloaded, or some other problem exists, it will re-assign the message to another WTH 306 if the first one fails for some reason. To assist the work dispatcher 302 the wireless transport database 340 c keeps track of all the WTHs 306, the wireless network 26 they support, their roles and their capabilities. Each WTH 306 might talk to one or more NIAs 308. The NIA 350 might be accessible via the network backbone 314. This architectural decision is based on how closely coupled the NIA 308 will be with the WTH 306. A closely coupled system means the two components can be optimized and improved to improve performance and throughput. A loose coupling means that if an NIA 350 fails it is easier for the WTH 306 to acquire a new NIA 350 to serve the same purpose. In the loose coupling embodiment the WTH 306 would request an NIA 350 that connects to a given network via the work dispatcher 302. The work dispatcher 302 would go to the transport database 340 c to find an assignment of NIA 350 to wireless network 26 mappings. The wireless transport and networks database 340 c has a range of fields to provide the functionality necessary for the wireless router 20. The transport database 340 c has at least the following fields: WTH number, the network that it is supporting and the connection number identified. Each WTH 306 can support many links to NIA 308 and thus to many wireless networks 26.
As part of the functionality offered by the wireless router 20, the WTH 306 is responsible for some very major elements. Specifically its goal is to ensure that messages are broken into network packet sizes and that each packet of a given message arrives to the destination. Although this sounds easy, and there have been many transports written before, this is especially hard in a wireless network 26. For example the authors of this application have created seven such transport layers over the past 10 years, each having different properties and methods for achieving the goal of guaranteed message delivery. This application is not claiming the implementation of a wireless transport layer, instead it is the synergy of a wireless transport layer along with all the other components of the wireless router 20 that create a solution bigger than its individual parts.
Once the message has been broken into packets the WTH 306 selects the correct NIA 308 to deliver the message. Each NIA 308 might have connections to many networks, and different NIAs 308 might have redundant links so that NIAs 308 are fault tolerant. The WTH 306 saves the state information of each mobile device 24 in the mobile database 340 b and in a local cache known as the location database. This state information informs the WTH 306 whether the device 24 has packets still pending, what the last delivery times were like and the last known NIA 308 (network link) the device 24 was reached over. All this information makes it possible for the WTH 306 to provide the best possible ability to track and reach the device 24. To complement this the wireless router 20 also provides the ability to push information to the wireless device 24 without the wireless device 24 user having to perform any action whatsoever. This ability is implemented either within the WTH 306, or in conjunction with the NIA 308. For example in the GPRS network, which is a data overlay on the GSM network, the NIA 308 implements a SMS-ping method to ensure the mobile device 24 always has a PDP context activated and thus is assigned an IP address. The NIA 308 also is capable of monitoring DHCP traffic to know when IP addresses are assigned or unassigned to mobile devices 24, also enhancing the ability of the wireless router 20 to track the mobile device 24. These entire enhancements provide an excellent message delivery experience for the mobile user 24, and it requires all the components working together to provide the end-user experience required to make the wireless router 20 an essential component of the wireless delivery and acknowledgement experience.
Turning now to FIG. 7 there are several support services being presented for the wireless router 20 to make use of. The first of these are billing services 314, which are preferable to the tracking of data and traffic between all wireless networks and the host service 28. In this example the billing services 314 has been broken out into its own service entity. One advantage of placing the billing services 314 in the wireless router 20, is that all billing requirements across all wireless networks 26 a, 26 b, 26 c and 26 d may be aggregated into a single bill for the user or corporation. A common practice in many companies these days is to deploy a range of network solutions to their staff. Corporate workers and executives are all now commonly outfitted with both cell phones and wireless PDAs to solve a range of communication challenges. Generating a bill for a single company, that has all traffic for all devices 24, on all networks 26 a, 26 b and 26 c is a major challenge without having a wireless router 20 architecture. The billing component will allow for other components to deliver or send billing records to the billing component. Information for host-originated and mobile-originated billing messages will be defined. These billing messages preferably contain information like: name of the host service 28, the connection time of the host service 28, the number of messages exchanged and their respective sizes, the types of services being accessed, the times of all data exchanges and any other relevant data that could affect billing information. As a database of billing information is built up and refined it should be possible to bill customers using specialized billing techniques. Already common in the industry is the ability to bill based on time, on services accessed and on volume. Within the wireless router 20 similar billing scenarios can also be created. With the correct information saved, a very sophisticated billing scenario can be created where the operator of the wireless router 20 charges based on issues like: “Host Service A, when access after peek hours can be used for data exchanges of up to 10,000 bytes without charge.” For one skilled in the art, it is clear that there are hundreds of different charging profiles that could be created to the installed base with the correct billing records.
The next support element is for registration services 310. Registration services 310 are essential for registering various host services 28 and for allowing mobile devices 24 to inform the wireless router 20 as to their current location. Another advanced use of the registration service 310 is the ability to inform a newly sold mobile device 24 as to which services are available and which they already have access to. This is valuable when a mobile device travels to another country and only certain host services 28 are available from that country's wireless network. For instance, perhaps the host service 28 a did not pay the extra costs of offering the service in that country, or perhaps there isn't a physical link to that wireless network. Whatever the case, the mobile device 24 has the ability to send a registration request and get a registration response from the wireless router 20. This exchange is possible because the registration service component 310 has the ability to check the mobile service and assignments database 340 to see what services have been defined for this mobile device 24. Since the registration service 310 has a major conversation role with the mobile device 24, one embodiment provides an NIA 312 directly for each registration server 310. Alternatively, the registration server 310 could also request the least busy NIA 312 from the work dispatcher 302 and use a round robin method to send and receive messages to mobile devices 24. The goal of providing the registration server 310 with its own dedicated NIA 312 is to ensure normal device traffic does not slow down or congest the ability for registration requests to be received in a timely manner.
The operation of the wireless routing system 20 is further illustrated in the flow diagrams in FIGS. 9( a), 9(b), 9(c), 9(d) and 9(e). As shown in FIG. 9( a), the wireless router 20 is normally in a waiting state designated S800. When a message or signal is received, the type of message or signal is then determined in steps S802 through S808. The determination at step S802 that a network control message has been received, i.e. something like a network coverage message. These aspects of coverage are detailed in FIG. 9( b) labeled “B,” shown in step S820. The wireless router 20 uses network features and facilities, when available, to enhance the delivery experience and build up a better wireless transport layer. The next test is to determine whether a network data message S804 was received. Since we don't have a network control message S802 the message could be a data message from the mobile device 24. If not a network data message S804 it could be a data item sent from the host service S806. If the message is not a data item sent from the host service S806 it could be a registration message S808. If it is not any of these then it could be an unknown message, or a message that is not dealt with in this application S854 and in this case we return to the wait state to wait for more messages or signals S856.
Turning now to FIG. 9( b) this represents the flow chart to handle network control messages within the wireless router 20. There could be a wide range of network control messages, depending on what is supported in the target wireless network, this data flow will show some of the most common messages and their side effects. If the device is entering coverage S860, is leaving coverage S864 or the device is congested S866, they all confirm that the device is known and registered S870. If the device is not known S872 the signal is ignored and the wireless router returns to wait for more messages or signals (A). Otherwise the current location is updated S874, and depending on the type of signal a branch is taken. If the signal was that the device was entering coverage S860, the database entry for this mobile is marked to indicate that it is capable of receiving data again S876. In this case all pending data is sent following the transport rules to govern the transmission of data. If the signal was that the device has left coverage S862 the database entry for this mobile is marked to indicate no coverage and any data transmissions to the device are stopped S878. If the signal was that congestion was occurring to the device S866 or to the base station supporting the device, then the database entry for this mobile is marked as congested and aggressive back-off and pacing is performed S880. Once the database is modified and the transmission is affected the wireless router 20 returns to the waiting state (A).
If the problem is more serious and the network is congested S866 then a global pacing algorithm is employed to reduce the data flow through the NIA 208 supporting that link S882. Then the wireless router returns to wait for additional data or signals (A). If it is not of these signals it could be another minor signal not examined here S868. In this case the signal is processed and the wireless router returns to wait for more data (A).
Turning now to FIG. 9 d this data flow diagram shows the high-level processing performed on data items from the host service. The message from the host could either be a control message or a data message. The first test is to determine which of the two types of messages have been received 930. If it is a control message, the first type of control message checked for is a previous acknowledgement for information sent to the host S932. If an Ack was received then the wireless router 20 can purge any data waiting for this confirmation S934. If the packet was not an ack perhaps the host service is completing the login sequence and is authenticating and getting fully connected S936. If this is the login sequence taking place the full login is completed and the host is registered S938. Otherwise there could be other less critical control sequences not directly presented in this application S940. In all cases, the software returns to wait for more signals or data (A).
If the message was not a control message then the host may be trying to send data to a mobile device 24. To verify that this is host data a test is performed on the message to confirm its header message type and format are accurate S942. This includes a test on the destination mobile address to confirm that it is valid. If the device identifier is missing, malformed, invalid or the user's device is in some kind of error state (bills have not been paid), then further checks are performed on the message. If the message is something other than data, or if the format is not recognized S944, the wireless router might try to perform some other operations that are less critical S944. Once this is done the software returns to wait for more messages or signals (A). The next step is to verify that the destination mobile device has an address at the moment S950. For one skilled in the art it will be remembered that it is possible for the mobile device 24 to have lost its IP address assignment due to an extended idle period. If the mobile device 24 does not have an identifier, like a dynamic, private IP address as used in GPRS, then the device will send off a request to the device to acquire the address S952. This will cause the device 24 to open a PDP context in GPRS and acquire a new IP address. Once this request is made the software goes back to wait for more messages and signals (A). If the device does have an identifier the software checks to see if any other data is pending to this device S954 and if so it will save the new data after the current data S956. Then it will return and wait for more messages and signals (A). If there is no other data pending the software will send the data following the mobile's status and use the full transport layer protocols for delivering the data S958. Then the software returns to (A) to wait for more messages and signals.
Turning now to FIG. 9 e there is a data flow diagram for registration events that can occur within the wireless router 20. The first step is to determine what type of registration event has taken place. The first test is to see if the device has sent a formal device registration request S960. This formal request causes a full Registration Response to be returned that contains all valid services for the mobile device S970. The wireless router 20 also takes this opportunity to mark the position of the device in the position database S970. After this the registration response is physically sent to the device over the wireless network S972. The software then returns to wait for more messages or signals (A). The device might also be sending a registration signal indicating that it has moved to a new network, and/or country S962. If this is true then the mobile location database is updated S974 and any pending data is transmitted to the mobile following its status and full transport rules S976. When this is complete the software returns to wait for more messages or signals (A).
FIG. 11 is a system diagram illustrating two examples of data flow. In a first instance, data originates from a host service to a mobile device through a common router. In a second instance, data originates from the mobile device to the host service.
In the first instance, after certain initialization steps (such as establishing the point-to-point communication 16 between the wireless router 20 and the host service 10′), a first data message (reference “B”) is sent to a wireless router 20 from a first host system 10 such as corporate enterprise computer system 28 having a first host service communicating as messages to and from a message server. The first data message includes a first payload (reference “A”) and a first mobile destination identifier (reference “M1”). The first data message is received at the wireless router and then examined. Next, a second data message (reference “C”) is generated for transmission on a wireless network. The second data message includes the payload A, and a second mobile destination identifier (reference “M2”). The second data message is then routed to the wireless network for eventual receipt by a mobile device associated with the second mobile destination identifier. In a preferred embodiment, the receipt of the second data message at the mobile device results in an application associated with the second data message to further process the information contained therein. In the instance where the payload is an encrypted e-mail message, the e-mail is decrypted and then presented to the user of the mobile device.
A second instance is now described wherein the data message originates from the mobile device. In this case, a third data message is received from the mobile device at the wireless router. The third data message includes a second payload (reference “E”), the second mobile destination identifier (reference “M2”) and a host service identifier (reference “H1”) associated with the second payload. The third data message is examined and a fourth data message (reference “F”) is then generated having the second payload and the first mobile destination identifier therein. The fourth data message is then routed from the wireless router to the host service.
In one embodiment, there is provided a method to route data items between a plurality of mobile devices and a plurality of host services, the method comprising the following steps: (a) generating a mobile data item, at a mobile device, comprising: a host service identifier; and, a data payload; (b) preparing a wireless network message containing the mobile data item by: adding to the mobile data item a wireless network protocol conforming to protocols required by a wireless network associated with the mobile device; and, addressing the mobile data item with an address associated with a wireless router; (c) transmitting the wireless network message via the wireless network to the wireless router; (d) upon reception of the wireless network message at the wireless router: removing the wireless network protocol from the wireless network message thereby recovering the mobile data item; extracting at least a mobile identifier from the wireless network message; adding the mobile identifier to the mobile data item; routing the mobile data item to a host service corresponding to the host service identifier in the mobile data item.
In another embodiment, there is provided a method to route data between a plurality of mobile devices and a plurality of message servers comprising the following steps: (a) generating a mobile data at a mobile device comprising: a destination identifier; and, an encrypted data payload comprising a body of an e-mail message and addressing information for the body; (b) generating a wireless network message comprising: the mobile data, a wireless network protocol layer conforming to protocols required by a wireless network, and a wireless router address; (c) transmitting the wireless network message via the wireless network to a wireless router; (d) upon reception of the wireless network message at the wireless router: removing the wireless network protocol layer from the wireless network message thereby extracting the mobile data; adding a mobile identifier to the mobile data, if the mobile identifier is not already contained in the mobile data; routing, via the Internet, the mobile data to a message server, identified by the destination identifier, operating at a particular corporate enterprise computer system.
In another embodiment, there is provided a wireless router method for routing data between a plurality of corporations and a plurality of mobile devices, the method comprising: (a) upon reception of a wireless network message at the wireless router originating from a first mobile device via a wireless network coupled to the wireless router, the steps comprising: recovering a first mobile data item generated at the mobile device by removing a first wireless protocol network layer from the wireless network message, said first mobile data item comprising an encrypted data payload and a corporation identifier; if the first mobile data item lacks a mobile identifier, then adding a mobile identifier to the first mobile data item; routing the first mobile data item to a first corporation from the plurality of corporations using a host service identifier in the first mobile data item; (b) upon reception of a corporate data item at the wireless router originating from a second corporation, the steps comprising: adding a network protocol layer to the corporate data item; routing the corporate data item to a second mobile device, via the wireless network, using a mobile identifier in the corporate data item.
In another embodiment, there is provided a method to route data items between a plurality of mobile devices and a plurality of host systems, the method comprising the following steps: establishing a point-to-point communication connection between a first host system and a wireless router; generating a first mobile network message at a first mobile device comprising: a first data item having at least a data payload; a first host service identifier associated with said data payload, a first wireless router address, and a first set of network protocols, and; transmitting said first mobile network message from the first mobile device to a first wireless network in communication therewith; routing said first mobile network message from the first wireless network to the wireless router based on the first wireless router address; receiving said first mobile network message at said first wireless router; routing said first data item from the wireless router to a first host service based on the first host service identifier.
In another embodiment, there is provided a method to route data items between a plurality of mobile devices and a plurality of host systems, the method comprising the following steps: establishing a plurality of point-to-point communication connections, wherein each host system of the plurality of host systems has an established point-to-point communication connection between the host system and a common wireless router; sending data items from each of the host systems to the common wireless router through each host system's corresponding point-to-point communication connection, wherein each of the data items includes a data payload, and a first mobile device identifier associated with said data payload; receiving the sent data items at the common wireless router; performing the following steps for each received data item: associating a particular wireless network of a plurality of wireless networks in communication with the common wireless router and a second mobile device identifier; generating a mobile network message comprising the data item and a wireless network protocol layer including the second mobile device identifier; routing each generated mobile network message to a mobile device corresponding to the second mobile device identifier through the particular wireless network associated with the mobile device.
US5370566 26 May 1993 6 Dec 1994 Mitchell, Jr.; Kenneth C. Lighted life jacket
US6112244 27 Feb 1998 29 Aug 2000 Motorola, Inc. Method and apparatus in a wireless communication system for compressing and decompressing messages generated by a plurality of applications
US6819670 8 Jan 1999 16 Nov 2004 Fenner Investments, Ltd. Data packet routing for mobile networks
US6845094 15 Dec 2000 18 Jan 2005 Ut Starcom, Inc. Network address translation based internet protocol mobility
US7392049 * 19 Dec 2003 24 Jun 2008 Samsung Electronics Co., Ltd. Wireless network and method for providing enhanced packet data services between mobile stations
US7453850 * 20 Dec 2002 18 Nov 2008 Alcatel Lucent Apparatus, and associated method, for facilitating bi-directional routing of data in a packet radio communication system
US20010015977 26 Jan 2001 23 Aug 2001 Stefan Johansson Selective reception
US20020013902 31 May 2001 31 Jan 2002 Youstra William N. Authentication of electronic data
US20020026517 29 Jun 2001 28 Feb 2002 Watson Richard A. Enabling communications of electronic data between an information requestor and a geographically proximate service provider
US20020031107 17 May 2001 14 Mar 2002 Hongyi Li Methods and apparatus for supporting micro-mobility within a radio access network
US20020049054 9 Nov 2001 25 Apr 2002 O'connor Michael Communication system
US20030043783 * 30 Aug 2001 6 Mar 2003 Spencer Douglas A. Comprehensive echo control system
US20030228868 * 2 Oct 2001 11 Dec 2003 Zoltan Turanyi Mobile Management for Mobile Hosts
US20040184420 4 Mar 2004 23 Sep 2004 Utstarcom, Inc. Mobile internet protocol (IP) networking with home agent and/or foreign agent functions distributed among multiple devices
US20040264505 20 Jul 2004 30 Dec 2004 Kazuho Miki Label switching type of packet forwarding apparatus
US20070153685 11 Dec 2006 5 Jul 2007 Samsung Electronics Co., Ltd. Wireless communication system and method for managing service flow identifier in the same
DE19961345A1 17 Dec 1999 21 Jun 2001 Bosch Gmbh Robert Verfahren zur Übertragung von elektronischen Postnachrichten
EP0892576A2 13 Jul 1998 20 Jan 1999 Nec Corporation Exchange apparatus for exchanging data between an asynchronous transfer mode network and an internet protocol communication network
EP1022881B1 20 Jan 2000 20 Apr 2005 Northrop Grumman Corporation Ultra-low bandwidth intra-network routing method
EP1096725B1 28 May 1999 11 Mar 2009 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device
8 "SAMTM integrates E-mail, Alpha Paging, Fax, and more!", SAM System for Automated Messages (10 pgs.).
9 "Wireless E-Mail Services Gain Windows Clients," Kramer, Matt, PC Week, Apr. 17, 1995.
10 Arnum, Eric, "The Universal Mailbox Arrives . . . Sort Of.," Business Communications Review, pp. 49-52 (May 1996).
12 Behr, "Handheld Solutions," Informationweek, Oct. 27, 1997, pp. 106-113.
13 Binder, Richard et al., "The Alohanet Menehune," University of Hawaii, Version II (Sep. 1974).
16 Braden ISI D Clart MIT Laboratory for Computer Science S Crocker Trusted Information Systems R et al: "Report of IAB Workshop on Security in the Internet Architecture; rfc 1636.txt" IETF Standard, Internet Engineering Task Force, IETF, Ch, Jun. 1, 1994; XP015007423.
17 Briere, Daniel et al., "One Mailbox, Just Like Old Times," Network World, vol. 14, issue 16, p. 21 (Apr. 21, 1997).
18 Canadian Office Action for Canadian Application No. 2,640,713 dated Oct. 29, 1010 (2 pages).
19 Canadian Office Action for related Canadian Application No. 2,432,589 dated Feb. 2, 2007 (2 pages).
20 Canadian Office Action for related Canadian Application No. 2,435,589 dated Aug. 10, 2005 (6 pages).
21 Cheshire, Stuart, et al., "Internet Mobility 4 X 4," Computer Science Department, Stanford University, pp. 1-12, Aug. 1996.
22 Claxton, "Messaging API's for Voice Networks," Telecommunications, pp. 116-120, 1998.
23 Compaq, Aero 2100 Series Color Palm-size PC Reference Guide, Second Edition, Aug. 1999, Compaq Corporation.
24 Computer Structures-Principles and Examples, McGraw Hill (1982).
25 Computer Structures—Principles and Examples, McGraw Hill (1982).
26 Dawson, F., et al., "iCalendar Message-Based Interoperability Protocol (iMIP)," Standards Track, RFC 2447, iMIP, Nov. 1998, 4 pages, XP-002249002.
31 Enterprise Solutions for Email Overload, Founder Publications, http://www.amikanow.com/corporte/publications.htm, Aug. 6, 2001 (9 pgs.).
32 EP Communication for related EP Application 01271927.4 dated Sep. 6, 2007 (4 pages).
33 EP Communication for related EP Application No. 01271927.4 dated Mar. 2, 2006 (6 pages).
34 EP Communication for related EP Application No. 01271927.4 dated Oct. 13, 2008 (5 pages).
35 EP Communication for related EP Application No. 01271927.4 dated Sep. 7, 2009 (4 pages).
36 Feibus, "A Desktop in Your Palm," Informationweek, Aug. 25, 1997, pp. 65ff.
37 Frezza, Bill, "PDA, PDA, Wherefore Art Thou, PDA?", Freewire, Aug. 6, 2011 (6 pgs.).
38 Gadol, Steve et al, "Nomadic Tenets-a User's Perspective," Sun Microsystems Laboratories, Inc., pp. 1-16 (Jun. 1994).
39 Gadol, Steve et al, "Nomadic Tenets—a User's Perspective," Sun Microsystems Laboratories, Inc., pp. 1-16 (Jun. 1994).
42 Gifford, David K., et al., "The Application of Digital Broadcast Communication to Large Scale Information Systems," IEEE Journal on Selected Areas in Communications, vol. SC-3, No. 3, pp. 457-467 (May 1985).
60 Motorola, "AirMobile tm Wireless Comm Guide for cc:Mail" User Guide version 1.0, Motorola Wireless Data Group, 1995, pp. 3-48.
61 Motorola, "AirMobile tm Wireless Comm Server for cc:Mail" User Guide Version 1.1, Motorola Wireless Data Group, 1995, pp. 4-46.
62 Motorola, Inc., emailVClient, 2001 (4 pages).
63 Nelson, M., "Wireless Data Services: Here and Now," PDA Developers 2.6, Nov./Dec. 1994, 3 pages.
64 News Release, "CE Software Announces MobileVision," Editorial Contacts, CE Software, Inc., 1995 (3 pgs.).
65 News Release, "CE Software Ships MobileVision," Jun. 20, 1995 (3 pgs.).
66 News Release, "Motorola Announces Pagewriter 250, The World's Smallest Pager with Full Keyboard," Feb. 27, 1997 (2 pgs.).
67 News Release, "Motorola Rings in 1995 with the Launch of MacroR Wireless Communicator," Jan. 4, 1995 (4 pgs.).
70 Newsletter, VODAPAGE: Vodapage demos increasing convergence of pagers and mobile communications at TMA 29, M2 Presswire, No. 28, 1996.
71 Newton Reference, Communications, 1996-1997 (4 pgs.).
72 Notice of Allowance for related Canadian Application 2,432,589 dated Dec. 21, 2001 (20 pages).
73 Notice of Allowance for related U.S. Appl. No. 12/357,861, dated Aug. 22, 2011 (8 pages).
74 Padwick, et al., Special Edition Using Microsoft Outlook 97, 1997, Que Corporation, pp. 250-251, 353-367.
75 PC Pro Issue 31: Realworld Computing, PDA Column, Jul. 30, 1997 (7 pgs.).
76 Pegasus Email Settings, ABSnet Internet Services, Inc. (4 pgs.).
77 Perkins, C. et al, "IMHP: A Mobile Host Protocol for the Internet," Computer Networks and ISDN Systems 27 (1194), pp. 479-491.
78 Perkins, C., "RFC 2002-IP Mobility Support," IBM, Oct. 1996, 61 pages.
79 Perkins, C., "RFC 2002—IP Mobility Support," IBM, Oct. 1996, 61 pages.
80 Perkins, Charles E. et al., "Mobility Support in IPv6," International Conference on Mobile Computing and Networking, Proceedings of the Second Annual International Conference on Mobile Computing and Networking, Nov. 11-12, 1996, pp. 27-37.
81 Press Detail, "3Com Corporation Licenses Bluetooth Technology from Extended Systems," Feb. 22, 2000 (2 pgs.).
82 Press Detail, "Extended Systems and Motorola Bring Short-Range Wireless to the Paging E-volution," Jan. 13, 2000 (3 pgs.).
83 Press Release, "Apple Agrees to License Newton Technology to Schlumberger, Digital Ocean," Nov. 3, 1995 (3 pgs.).
84 Press Release, "Motorola Announces New Solutions to Provide Consumers with Wireless Aqccess to Personal and Enterprise E-mail Accounts," Mar. 21, 2001 (4 pgs.).
85 Reference, "MobileVision Direct Wireless Connection to Your LAN-Based Electronic Mailbox," CE Software, Inc., pp. 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 1995.
86 Reiter, Alan A., "Focus on Technology," Telocator (Jan. 1990) (4 pgs.).
87 Related U.S. Appl. No. 12/357,861, filed May 19, 2011 (83 pages).
95 Timeline, "FLEXTM Technology Timeline," (3 pgs.).
96 U.S. Notice of Allowance for U.S. Appl. No. 10/451,717, dated Jul. 13, 2005, 8 pages.
97 U.S. Notice of Allowance for U.S. Appl. No. 11/210,718, dated Feb. 13, 2009, 7 pages.
98 U.S. Notice of Allowance for U.S. Appl. No. 13/111,465, dated Feb. 3, 2012, 9 pages.
99 U.S. Office Action for U.S. Appl. No. 11/210,718, dated Aug. 26, 2008, 12 pages.
100 U.S. Office Action for U.S. Appl. No. 12/357,861, dated Apr. 20, 2011, 9 pages.
101 U.S. Office Action for U.S. Appl. No. 12/357,861, dated Jan. 21, 2011, 9 pages.
102 Undated, Information Display Pager D40, NEC Corporation (6 pgs.).
103 United States District Court, Northern District of California, San Francisco Division: Good Technology, Inc. v. Research in Motion, Ltd., et al., Case No. C02-2348 MJJ, Plaintiff Good Technology, Inc.'s Preliminary Invalidity Contentions Pursuant to Patent L.R. 3-3 and Response Under Patent L.R. 3-4, Jan. 16, 2004, 33 pages.
106 Xu, Kevin Houzhi, "Reliable Stream Transmission Protocols in Mobile Computing Environments," Bell Labs Technical Journal, Summer 1997, pp. 152-163.
107 Yeom, Hoen Y. et al., "IP Multiplexing by Transparent Port-Address Translator," Proceedings of the Tenth USENIX System Administration Conference, pp. 113-122, Sep. 29-Oct. 4, 1996.
US8630611 * 15 Nov 2012 14 Jan 2014 Headwater Partners I Llc Automated device provisioning and activation
US20130072149 * 15 Nov 2012 21 Mar 2013 Headwater Partners I Llc Automated device provisioning and activation
U.S. Classification 455/445, 455/422.1, 455/418, 370/328
International Classification H04L12/28, H04W92/02, H04W88/18, H04L12/58, H04W40/02, H04L29/06, H04W92/24, H04W40/00, H04W88/16, H04L12/56
Cooperative Classification H04L51/12, H04W80/00, H04L63/0428, H04W88/18, H04W92/24, H04W92/02, G06Q20/102, H04L63/029, H04W40/00, H04W40/02, H04W8/26, H04W76/02, H04W12/02, H04W88/14, H04W88/16, H04L51/14, H04L51/38
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LEWIS, ALLAN D.;MOUSSEAU, GARY P.;GILHULY, BARRY J.;AND OTHERS;SIGNING DATES FROM 20011220 TO 20011221;REEL/FRAME:026882/0864