Cellular telephony is a type of full duplex wireless telecommunication in which a subscriber has a wireless connection from a mobile station (such as a cellular telephone) to a relatively nearby transceiver. The transceiver's span of coverage is called a cell. Each cell is served by its own radio telephone and control equipment, such as a base transceiver station. All the cells in a cellular system are connected to a Mobile Telephone Switching Office (MTSO) or Mobile Switching Center (MSC). The MTSO or MSC controls the switching between the Public Switched Telephone Network (PSTN) and the cell site for all wireline-to-mobile and mobile-to-wireline calls. The MTSO also processes mobile unit status data received from the cell-site controllers, switches calls to other cells, processes diagnostic information, and compiles billing statistics.
Cellular telephones typically host a variety of applications, such as personal information managers, telephony-related applications, games, micro-browsers, and the like. Traditionally, applications used in cellular telephones are either implemented as an embedded software application developed in C, C++ or other native code by the handset manufacturer, or as a Java applet download and executed by a Java virtual machine previously installed on the handset by the handset manufacturer.
These embedded or Java applications, however, do present certain limitations to application developers. For example, updates to embedded applications must be installed on each individual handset. Moreover, the handset Man-Machine Interface (MMI) and the “look & feel” of the embedded application suite are largely controlled by the cellular telephone manufacturer. In addition, the interface provided by Java applications executed on cellular telephones is often quite different from the interface provided by native applications, disrupting a consistent “look & feel” of the interfaces provided to the handset user.
Certain embedded applications, such as micro-browsers or special-purpose client applications, allow cellular telephones to access applications and services provided by external servers and systems over the cellular network. For example, using wireless networking protocols, such as the Wireless Access Protocol (WAP), a smart phone running a micro-browser can access a vast array of content and application services, such as information services. For example, a micro-browser can establish a connection to a WAP gateway, which provides access to content and applications accessible on the Internet or other external packet data network. WAP gateways typically reside within the wireless carrier's network; however, wireless device users can also establish a dial-up data connection to a WAP gateway or WAP server maintained by an Internet Service Provider (ISP) or a business enterprise.
A WAP gateway is a proxy that intermediates sessions between WAP-compliant wireless devices and application servers. Typically, WAP gateways translate between cellular wireless networking protocols (e.g., WAP, etc.) and packet data network protocols such as TCP, HTTP, HTML, and the like. A typical browsing session, using a circuit-based or dial-up connection, proceeds as follows: When a micro-browser on a mobile station is launched, the mobile station places a call to an access server, which authenticates the mobile station and controls access to the WAP gateway. After the user has been validated, the mobile station communicates directly with the WAP gateway. The WAP gateway, in certain implementations, can provide to the micro-browser a home page deck that includes links and services available on the WAP gateway. When a link is selected, or a URL is specified, the micro-browser transmits a Wireless Session Protocol (WSP) request to the WAP gateway. The WAP gateway translates the WSP request to an HTTP request, for example, and transmits it to an application server on the public data network. The WAP gateway also converts the HTTP response to a WSP response and transmits it to the micro-browser.
Traditionally, wireless applications executed on cellular phones, such as micro-browsers, relied primarily on circuit-switched connections dependent on circuit availability. That is, a cellular phone establishes a dial-up connection with a gateway or server in a manner similar to a dial-up connection between modem on a desktop computer and an ISP's remote system. However, packet-switched cellular bearer services allow for connections with remote systems in a different manner. For example, cellular service providers in the United States have recently started to roll out packet-switched cellular networks, such as the General Packet Radio Services (GPRS) network. A packet-switched connection, using the Internet Protocol (IP), means that a virtual connection is always available to any other end point in the network.
These cellular application topologies present certain limitations and disadvantages, however, to external application services providers and cellular system operators. For example, web application servers, accessible via a WAP gateway, cannot identify and target particular cellular telephones, screen sizes or color plane depths, since they often serve personal computers and/or a large variety of wireless device types. Moreover, the user experience associated with external application services may also suffer from the wide variety of wireless device types, each having varying capabilities and features, such as different screen types, color palettes, “look and feel” interfaces, and the like. Still further, these cellular application topologies also present certain performance issues, since it is up to the external application service provider to decide the content delivery mode for all cellular systems, as opposed to leaving this decision to each cellular system operator who is in the best position to know the capabilities of the cellular system and the best mode for data or service delivery.
Existing cellular application topologies also limit the opportunities for custom-branding opportunities, since external application servers connected to packet data networks cannot distinguish between mobile stations associated with different wireless carriers. Accordingly, the “look and feel” of a given application cannot be tailored or customized as desired by the cellular system operator. In addition, given the extensive application processing facilities often required to host a given application service, installing application servers and other systems locally to the wireless carrier's operational centers and systems is also problematic. For example, changes to an application service such as additional functionality would automatically require configuration changes to the systems installed at each wireless carrier facility.
In light of the foregoing, a need exists in the art for methods, apparatuses and systems that facilitate the configuration and implementation of application services over cellular wireless networks. A need further exists for methods, apparatuses and systems that facilitate the configuration and implementation of application services that are customized or otherwise tailored for each wireless carrier. Various implementations of the present invention substantially fulfill these needs.