WO2012167664A1 - 一种支持应用客户端永久在线的方法、系统及装置 - Google Patents
一种支持应用客户端永久在线的方法、系统及装置 Download PDFInfo
- Publication number
- WO2012167664A1 WO2012167664A1 PCT/CN2012/073778 CN2012073778W WO2012167664A1 WO 2012167664 A1 WO2012167664 A1 WO 2012167664A1 CN 2012073778 W CN2012073778 W CN 2012073778W WO 2012167664 A1 WO2012167664 A1 WO 2012167664A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- user
- mobile phone
- phone number
- identity information
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2854—Wide area networks, e.g. public data networks
- H04L12/2856—Access arrangements, e.g. Internet access
- H04L12/2869—Operational details of access network equipments
- H04L12/2898—Subscriber equipments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4588—Network directories; Name-to-address mapping containing mobile subscriber information, e.g. home subscriber server [HSS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/068—Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/12—Setup of transport tunnels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/65—Telephone numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/654—International mobile subscriber identity [IMSI] numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/20—Manipulation of established connections
- H04W76/25—Maintenance of established connections
Definitions
- the present invention relates to the field of communications, and more particularly to a method, system and apparatus for supporting application clients to be permanently online. Background technique
- one or more application servers need to maintain at least one permanent link with the user terminal.
- the link between the terminal and one or more application servers is unstable. For example, there are NATs and firewalls in the middle of the link.
- the IP address of the user may change. Therefore, the link needs to be maintained through frequent heartbeats, and the user status is obtained. information).
- the network allocates a dedicated physical channel to the terminal for uplink and downlink wireless transmission of data.
- This state is called DCH (Dedicated CHannel dedicated channel) state.
- DCH Dedicated CHannel dedicated channel
- the terminal can process the Idle state, in the Idle state. All links are closed at the access layer, and the terminal only listens for paging information. Therefore, in the DCH and Idle states, the terminal consumes a large amount of power.
- the intelligent terminal Based on the consideration of power saving, the intelligent terminal generally has no data transmission for 6-8 seconds, and the mobile phone performs "fast sleep” to forcibly switch to the Idle state. "Permanent online” applications often require a heartbeat connection with the server.
- the terminal frequently switches between the Idle state and the DCH state. From the Idle state to the DCH active state, the radio side needs 32 signaling recovery links. The frequent switching between the states causes a significant impact on the signaling of the wireless side. Summary of the invention
- One embodiment of the present invention provides a method for supporting an application client to be permanently online, establishing a permanent online engine A0E (101) located in the terminal (10) and a permanent online service gateway A0G (20) located on the network side.
- a long link wherein at least two application clients communicate with one or more application servers (04, 05) respectively through the long link;
- a user management server (30) located at the network side provides routing information to the A0E (101),
- the A0E (101) requests to establish the long link according to the routing information;
- the user management server (30) is further configured to provide the A0G (20) with authentication information in the process of establishing the long link.
- the user management server (30) acquires and stores the correspondence between the terminal identity information and the user identity information, and stores the address of the A0G (20) to which the user identity information belongs; when the A0E (101) sends the mobile terminal When the identity information routing information is requested, the user management server (30) according to the correspondence between the terminal identity information and the user identity information, and the address of the A0G (20) to which the user identity information belongs, to the A0E (101) Providing an address of the A0G to which the user identity information belongs; when the A0G (20) sends an authentication information request, the user management server (30) according to the terminal identity information in the authentication information request, and the terminal identity information and The corresponding relationship of the user identity information provides the user identity information to the A0G (20).
- the terminal identity information is IMSI information
- the user identity information is a mobile phone number.
- the user management server (30) on the network side provides routing information to the A0E (101), and the process of providing the authentication information to the A0G (20) includes:
- the A0E (101) automatically sends a report message to the user management server (30) when the permanent online engine A0E (101) is started or when the I SMI information in the SIM card is different from the last registered information, the report message Carrying the IMSI information and the mobile phone number; the user management server (30) acquires the IMSI information and the mobile phone number according to the received report message, and stores a correspondence between the mobile phone number and the IMSI information; the A0E (101) direction
- the user management server (30) sends a routing information request, where the routing information request carries the IMSI information; the user management server (30) finds a corresponding mobile phone number according to the IMSI information in the received routing information request, and then according to the advance
- the stored A0G address of the mobile phone number returns the address of the A0G (20) to which the mobile phone number belongs to the A0E (101); the permanent online engine A0E (101) initiates a registration request to the A0G (20) to which the mobile phone number belongs.
- the registration request carries IMSI information; after receiving the registration request of the A0E (101), the A0G (20) determines the IMS included therein Whether the I information has been registered in the A0G (20), and if not registered, sends an authentication information request to the user management server (30), the authentication information request carrying the IMS I information in the registration request; the user management server (30) Receiving the authentication information request, returning the mobile phone number corresponding to the IMSI information according to the stored correspondence between the mobile phone number and the IMSI information; and when the A0G (20) determines that the mobile phone number belongs to the A0G (20) Service range, the A0G (20) stores the mobile number and returns a registration response to A0E (101).
- the report message is short message
- the message carrying the IMSI information and the mobile phone number specifically includes: the content of the short message includes the IMSI information, and the sender of the short message is the mobile phone number.
- the terminal identity information is a terminal device identifier
- the user identity information is a user name or a user identifier.
- the system includes: a permanent online engine A0E (101) located in the terminal (10) and communicatively coupled to at least two application clients;
- the permanent online service gateway A0G (20) is located on the network side and is in communication connection with one or more application servers (04, 05) located on the network side; the permanent online engine A0E (101) and the permanent online service gateway A0G (20) For establishing a long link, wherein the at least two application clients respectively communicate with the one or more application servers (04, 05) through the long link; the user management server (30), located at the network side,
- the permanent online engine A0E (101) is in communication with the permanent online service gateway A0G (20) for providing routing information to the A0E (101), so that the A0E (101) requests to establish the long link according to the routing information.
- the AOG (20) is further provided with authentication information.
- the user management server (30) is specifically configured to: acquire and store a correspondence between the terminal identity information and the user identity information, and store an address of the AOG (20) to which the user identity information belongs; when the A0E (101) when sending a request for carrying the terminal identity information routing information, according to the correspondence between the terminal identity information and the user identity information, and the address of the A0G (20) to which the user identity information belongs, providing the A0E (101) The address of the A0G to which the user identity information belongs; when the A0G (20) sends the authentication information request, according to the terminal identity information in the authentication information request and the correspondence between the terminal identity information and the user identity information, The AOG (20) provides the user identity information.
- the terminal identity information is IMSI information
- the user identity information is a mobile phone number
- the AOE (101) is specifically configured to: when the permanent online engine A0E (101) is started or when the I SMI information in the SIM card is different from the last registered information, the report message is automatically sent to the user management server (30).
- the reported message carries the IMSI information and the mobile phone number; sends a routing information request to the user management server (30), the routing information request carries the IMSI information; and sends the received AOG (20) to which the mobile phone number belongs A registration request that carries IMSI information.
- the user management server (30) is specifically configured to: obtain the IMSI information and the mobile phone number according to the received report message, and store a correspondence between the mobile phone number and the IMSI information; and the IMSI information according to the received routing information request Finding the corresponding mobile phone number, and returning the address of the A0G (20) to which the mobile phone number belongs to the A0E (101) according to the A0G address to which the mobile phone number is stored in advance; after receiving the authentication information request, according to the stored
- the correspondence between the mobile phone number and the IMSI information returns the mobile phone number corresponding to the IMSI information.
- the A0G (20) is specifically configured to: after receiving the registration request of the A0E (101), determine whether the IMS I information contained therein is already registered in the A0G (20), and if not registered, to the user management server (30) Sending an authentication information request, the authentication information request carries the IMSI information in the registration request, and receives the returned mobile phone number corresponding to the IMSI information; when determining that the mobile phone number belongs to the service range of the A0G (20), the A0G ( 20) Store the mobile number and return a registration response to A0E (101).
- a permanent online engine A0E (101), a permanent online service gateway AOG (20), and a user management server (30) that can perform the various steps of the foregoing methods are provided accordingly.
- the line engine AOE (l Ol) is located in the terminal (10) and is in communication with at least two application clients for establishing a long link with the permanent online service gateway A0G (20); the permanent online service gateway AOG (20) ), located on the network side, configured to establish the long link with the permanent online engine AOE (l Ol), and initiate a heartbeat message, so as to maintain the long link; wherein the at least two application clients pass the long link with The one or more application servers (04, 05) communicate.
- AOE l Ol
- AOG OG
- the permanent online engine A0E (101) is further configured to send a disconnect request to the AOG (20) actively when it has not received another heartbeat request when it is determined that the heartbeat request exceeds a certain time threshold after receiving the heartbeat request; Or, when it is detected that all the application clients that are managed are not running within a certain time threshold, actively initiate a disconnect request to the A0G (20); or, when detecting that the battery power on the terminal 01 is lower than a certain threshold At this time, the disconnect request is actively sent to the A0G (20), and the disconnect request is used to disconnect the long link.
- the AOG (20) is further configured to: when it is determined that the data flow sent from the AOE 101 is not received after a certain time threshold is exceeded, the disconnect request is actively initiated; when it is determined that the heartbeat request is sent after a certain number of thresholds are exceeded, When the response of AOE 101 is not obtained, a disconnect request is actively initiated, and the disconnect request is used to disconnect the long link.
- the AOG (20) is further configured to modify whether the online status recorded by the AOE 101 that has disconnected the long link on the AOG (20) is offline, and construct a offline notification message to be sent to the application server to send to the application. server.
- A0G (20) is further used to send a wake-up message to A0E (101) in a special case for waking up a long link that has not been established or has been disconnected.
- AOE (101) is further configured to listen to and intercept the wake-up message, parse the wake-up message, and trigger the establishment of a long link.
- a permanent online engine AOE (lOl) is located in the terminal (10), and is in communication connection with at least two application clients, and is used for permanent online service gateway.
- a long link is established between A0G (20); wherein, the at least two application clients communicate with one or more application servers 04 through the long link;
- A0E (101) is further used to be normal in the long link (has been successfully When established, the application client in the terminal (10) has exited, but when the data sent by the A0G (20) to the application client is received, the application client that has exited is pulled up.
- a permanent online engine AOE (lOl) is located in the terminal (10), and is in communication connection with at least two application clients, and is used for permanent online service gateway.
- a long link is established between A0G (20); wherein the at least two application clients communicate with one or more application servers 04 through the long link;
- A0E (101) is further used when the application client has a large amount of data needed
- a separate connection is provided to interact with the application server, and the original long link can be mainly used to transmit control flow related data.
- the delivered data reaches the threshold, a special IP proxy channel needs to be established, and the transmitted data is specifically transmitted by the channel.
- the data is a data stream generated during the application process.
- the IP proxy channel can be actively closed at the end of data transfer.
- AOE (1 01) can set the timeout mechanism.
- the threshold for example, 60s
- AOE (101) actively disconnects.
- FIG. 1 is a schematic diagram of an application environment of an embodiment of the present invention.
- 2a is a system architecture diagram including an embodiment of a user management server
- Figure 2b is a flow diagram of a method of establishing a long link in a system including a user management server;
- FIG. 3a is a flow chart of a method for establishing a long link by taking an operator communication system as an example
- FIG. 3b is a flowchart of a method for updating a flow diagram of an application client
- FIG. 4a is a system architecture diagram of an implementation of long link heartbeat maintenance
- Figure 4b is a flow chart of a method for an embodiment of a long link heartbeat maintenance method
- Figure 5a is a flow chart of a method for long link heartbeat maintenance described from the perspective of AOE (l Ol);
- Figure 5b is a flow chart of a method for implementing long link heartbeat maintenance as described from the perspective of AOG (20);
- Figure 6 is a system architecture diagram from an embodiment incorporating extended functionality
- Figure ⁇ is a flowchart of a method for waking up an implementation of a long link
- FIG. 8 is a flow chart of a method for waking up an application client
- FIG. 9 is a schematic structural diagram of an embodiment of a terminal
- Figure 10 is a schematic structural view of an embodiment of an AOG (20);
- FIG. 11 is a block diagram showing an embodiment of a user management server (30) in the system.
- AOG (Always Online Gateway), always-on gateway, through the cooperation with the permanent online engine, can provide the SP with a universal PUSH channel, allowing the SP service side to find the terminal anytime, anywhere.
- AOE(lOl) AOE(lOl) (Always Online Engine), a permanent online engine that deploys the middleware on the terminal side, aggregates and proxies the client application's always-on needs.
- FIG. 1 is a schematic diagram of an application environment system according to an embodiment of the present invention.
- the system includes a plurality of communication devices, and communicates with each other through a wired or wireless communication network.
- These communication networks include, but are not limited to, a mobile telephone network, a wireless local area network (LAN), a Bluetooth personal area network, an Ethernet LAN, and a Token Ring local part.
- LAN wireless local area network
- Bluetooth personal area network an Ethernet LAN
- Token Ring local part a token ring LAN, a wide area network, the Internet (the Internet) and many more.
- the terminal (10) may include, but is not limited to, a mobile device, a combination PDA and mobile telephone, a PDA, an integrated messaging device (integrated messaging device ( IMD)), personal computer and notebook computer. These terminals can be moved or located on a removable device such as, but not limited to, a car, a truck, a taxi, a bus, a ship. , the aircraft, the bicycle, the motorcycle, etc.
- the terminal (10) can be accessed by the wireless network and/or the wired network to one or more application servers 04 to obtain the one or more application servers.
- One or more application servers include, but are not limited to, the above network may include other various kinds of communication devices.
- the above communication device can implement communication processes based on various different transmission technologies, including but not limited to Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Universal Mobile System (Universal Mobile) Mobile Telecommunications System (UMTS), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Transmission Control Protocol/Internet Protocol (Transmission Control Protocol/Internet Protocol (TCP/IP), short News Messaging Service (SMS), Multimedia Messaging Service (MMS), e-mail, Instant Messaging Service (IMS), Bluetooth Bluetooth, IEEE 802.11, etc.
- Different media resources can be used between communication devices, including but not limited to, radio, infrared, laser, Cable (plug connection), and so on.
- FIG. 2a is a schematic structural diagram of a system implementation manner for supporting an application client to be permanently online.
- the system includes:
- Permanent online engine A0E located in terminal (10), communicating with at least two application clients;
- the permanent online service gateway A0G (20) is located on the network side and communicates with one or more application servers (04, 05) located on the network side;
- the permanent online engine A0E (101) and the permanent online service gateway A0G (20) are configured to establish a long link, wherein the at least two application clients respectively and the one or more through the long link Application server (04, 05) communication;
- a user management server (30) located on the network side, in communication with the permanent online engine A0E (101) and the permanent online service gateway A0G (20), providing routing information to the A0E (101), wherein A0E (101) requests to establish the long link according to the routing information; the user management server (30) is further configured to provide the AOG (20) with authentication information in the process of establishing the long link.
- the one or more application servers mentioned above may include, but are not limited to, servers providing one or any combination of the following applications: PUSH Mail, weather forecast, VOIP, advertising, location service, corporate office, living service, etc. .
- the long link mentioned above can be in accordance with the Transmission Control Protocol (TCP, Transmission).
- TCP Transmission Control Protocol
- Transmission Transmission Control Protocol
- the user management server (30) may serve as a management node of permanent online service user data, and provide routing information to the A0E (101), so that the A0E (101) requests to establish the long link according to the routing information; And providing authentication information to the A0G (20) in the process of establishing a long link between the A0E (101) and the AOG (20).
- the above scheme can enable the permanent online engine A0E (101) and the permanent online service gateway A0G (20) to easily and securely establish the long link.
- the user management server (30) may be clustered or distributed internally; it may be set up with any possible device on the network side, or may be set independently, but for A0G, it can be compared with other devices. Differentiated, there may be more than one A0G in the above system.
- the foregoing authentication information is user identity information, such as a mobile phone number, a user identifier, or a user name, so that various application servers can authenticate the user, and the specific implementation manner can be performed by A0G (20).
- the terminal (0 1 ) carries terminal identity information, such as IMS I information, or device identifier, in the process of communication. If the information is used as authentication information, it needs to be performed in advance with one or more application servers. Complex authentication interactions.
- the foregoing routing information is an address of the AOG (20) to which the user identity information belongs.
- the user management server (30) acquires and stores a correspondence between the terminal identity information and the user identity information, and stores an address of the A0G (20) to which the user identity information belongs; 202.
- AOE (101) such as the link management module (1011)
- the user management server (30) eg, the routing information module (3012)
- A0E (101) with the address of the A0G to which the user identity information belongs;
- the user management server (30) for example, the authentication information module (3013)
- the terminal identity information in the authentication information request and the terminal identity information and the user identity information Correspondence relationship, providing user identity information to A0G (20).
- the foregoing process of acquiring and storing the correspondence between the terminal identity information and the user identity information may be implemented by using other possible communication channels before the long link is not established, such as a circuit domain communication channel or a short message channel.
- the method may include, but is not limited to, being reported to the user management server (30) by the terminal (10), or forwarded to the user management server (30) by another network device, or may be the user management server (30) to the terminal (10). Or the way other network devices request it.
- the communication system provided by the operator is taken as an example, and the terminal identity information is the IMSI information, and the user identity information is the mobile phone number as an example.
- the network side is located.
- the user management server (30) provides routing information to the A0E (101), and the process of providing the authentication information to the A0G (20) specifically includes:
- the A0E (101) (for example, the link management module (1011) on the A0E (101)) when the permanent online engine A0E (101) is started or detects the ISMI information in the SIM card and the last registration
- the report message is automatically sent to the user management server (30), and the report message carries the IMS I information and the mobile phone number.
- the above reported message is information that can be transmitted without establishing a link between the aforementioned AOE (101) and AOG (20), such as information of a circuit domain or information of a non-data link. More specifically, it may be a short message, or an online Radius notification forwarded by the AAA server, and the like. If it is a short message, it only needs to carry the IMSI information in the content, and the system sets its sender to the mobile phone number by default, which further saves data communication resources.
- the user management server (30) (such as the foregoing registration management module (3011)) acquires the IMSI information and the mobile phone number according to the received report message, and stores a correspondence between the mobile phone number and the IMSI information. .
- A0E (101) may perform a certain delay.
- A0E (101) (eg, the link management module (1011)) sends a routing information request to the user management server (30), where the routing information request carries the IMSI information.
- the user management server (30) (such as the routing information module (301 2 )) searches for the corresponding mobile phone number according to the IMSI information in the received routing information request (specifically, refers to searching for the foregoing registration management module (3011)) And returning the address of the A0G (20) to which the mobile phone number belongs to the A0E (101) according to the A0G address to which the pre-stored mobile phone number belongs.
- A0E (101) (for example, the link management module (1011)), after acquiring the home A0G information, initiates a registration request to the home A0G (20), and the registration request carries the IMSI information.
- the registration request may carry but is not limited to: the information of the registered application client in A0E (101), such as the identifier of the application, the model of the terminal, the access network APN, the operating system version, and the A0E ( 101) version and so on.
- the A0G (20) After receiving the registration request, the A0G (20) receives the registration request of the A0E (101). After that, it is judged whether the IMSI information contained therein is already registered in the AOG (20).
- the A0G (20) sends an authentication information request to the user management server (30), where the authentication information request carries the IMSI information in the registration request.
- the user management server (30) After receiving the authentication information request (specifically, for example, the terminal information module 301), the user management server (30) returns the terminal information mobile phone number corresponding to the IMSI information to the A0G (20).
- A0G (20) determines whether the mobile phone number is the service range of the A0G (20), and if the registration failure is not returned, the process ends. If it belongs to the service scope of the A0G (20), the AOG (20) (for example, the link management module (2011)) stores the mobile phone number. Preferably, other information carried in the foregoing registration information, such as a terminal model, an already registered application client, and the like, may also be saved.
- AOG (20) for example, link management module (2011)
- ⁇ ( 101 ) for example, link management module (1011)
- FIG. 3a shows that when the terminal (10) starts up or detects that the ISMI information in the SIM card is different from the last registered information (ie, the SIM card in the terminal is replaced, it can be understood as a new terminal (10).
- the process of establishing a connection specifically, the registration of the terminal information on the AOG (20) and the registration of the application information on the AOG (20).
- FIG. 3b a schematic diagram of a process for updating an application, where AOG (20) is a system composed of an AOG to which the terminal (10) belongs and an AOG to which the application server accesses.
- the process includes:
- the application registration interface of the SDK is called to register (the uninstall is regarded as the application logout interface of the calling SDK to log out);
- AOE (l Ol) invokes the REG interface, and sends an application request to the terminal home A0G (the application request is deleted when uninstalling);
- the terminal attribution A0G updates the application information corresponding to the terminal into the database
- the terminal attribution A0G returns a registration response to the A0E (1 01) (the response is not logged off during the uninstallation); 305b, the terminal attribution A0G constructs an INFO online notification message according to the ID of the application reported by the terminal, and sends the notification to the A0G gateway to which the application belongs.
- the online notification message carries the mobile number. (When the load is unloaded, it is the offline notification message).
- the application server accesses the A0G, and converts the mobile phone number into a pseudo code.
- the A0G of the application server accessing forwards the online notification message (when the offloading is the offline notification message) to the application server, where the message carries the pseudo code.
- the application server returns a notification response.
- the A0G of the application server accessing destination forwards the notification response to the original notification initiator A0G gateway.
- the forwarding process of the messages of the 306b and 310b steps in the foregoing process is not required. If the AOG gateway of the terminal and the application AOG gateway are not the same gateway, and no valid connection is established between the two, the A0G gateway of the terminal belongs to the A0G gateway of the application to complete the REG registration login before the forwarding message. Process, then proceed with the message.
- the AOG 02 can distinguish the type of registration message (or the logout message), and after receiving the message, the IMSI summary can still be confirmed according to the first registration process.
- the AOG exists, if there is no query to the mobile phone number on the user management server 03, and according to whether the mobile phone number belongs to the scope of the AOG service, the content of the message is returned to the AOE (lOl).
- the simple application installation process IMSI must exist, the number must belong to this AOG, and it will not go to another branch.
- FIG. 4a a schematic diagram of a system implementation that supports application client permanent online is included, and the system includes:
- At least two application clients the application client being located in the terminal (10), in communication with the permanent online engine A0E (101);
- the permanent online engine A0E (101) is located in the terminal (10) and is in communication with at least two application clients for establishing a long link with the permanent online service gateway A0G (20);
- One or more application servers located on the network side, in communication with the permanent online service gateway AOG (20);
- the at least two application clients communicate with the one or more application servers 04 through the long link to respectively implement application services provided by the one or more servers (04, 05);
- the maintenance of the long link is performed by the A0G (20) on the service side, that is, between the terminal (10) and the AOG (20), a heartbeat message is initiated by the A0G (20) to facilitate maintenance.
- Long link The application client is used to provide application services to users, and the application server 04 is used to provide various application services, such as one or any combination of the following applications: PUSH Ma il, weather forecast, VOIP, advertisement, location service, enterprise Office, living services, and more.
- the terminal in the manner of maintaining a long link, the terminal (including each application client therein) does not need to send a large amount to one or more application servers, in contrast to the manner in which the heartbeat is initiated by the terminal side.
- the heartbeat message reduces the signaling pressure on the terminal side.
- the A0E (101) in the terminal does not need to perform special processing such as filtering/abandoning these heartbeats, and reduces the signaling consumption of the outward outgoing transmission of the terminal. Further, the signaling consumption inside the terminal (10) is further reduced.
- the heartbeat interval can be adjusted according to the network condition, and the heartbeat parameter is automatically controlled, so that the heartbeat is most consistent with the network condition, thereby avoiding the terminal side initiative.
- the process of detecting network parameters further reduces the waste of communication resources.
- AOE (l Ol) and AOG (20) can each actively disconnect the long link according to their own judgment, thereby further saving communication resources of networks, terminals, servers, and the like. Of course, the power consumption of each device, especially the terminal (10), is also saved.
- A0G (20) can actively wake up the connection with the terminal side again.
- a schematic diagram of a preferred method for maintaining long links by A0E (101) after establishing a long link includes:
- the AOE (101) for example, the link management module (1011)
- receives the disconnect request eg, BYE
- the AOE (for example, the heartbeat time module (1012)) refreshes the timer after receiving the heartbeat message, and if the heartbeat message has not been received when the timer exceeds a certain time threshold, then the A0G ( 20) Send a disconnect request (such as BYE) to close the long link.
- a disconnect request such as BYE
- the time threshold For example, set the time threshold to 5 minutes, 10 minutes, or 30 minutes, and so on.
- the AOE (101) detects that all application clients managed by the application actively initiate a disconnect request (for example, a BYE request) when the application client does not run within a certain time threshold. Disconnect the long link. For example, set the time threshold to 5 minutes, 10 minutes, or 30 minutes, and so on.
- AOE for example, battery monitoring module (1014)
- a label may be added to the disconnect request, indicating that the long link is disconnected because the power is low.
- the A0E (101) enters a sleep state
- A0G (20) On the network side does not need to send heartbeat messages, and also Further saving the battery power on the terminal (10).
- AOG (20) depicted in FIG. 5b may be a single server in the actual application process, and may be classified into the AOG to which the terminal (10) (specifically, AOE(lOl)) belongs according to needs. 20) A0G (20) with one or more application servers.
- the A0G (20) to which the terminal (10) belongs and the A0G (20) to which one or more application servers belong are connected, and the terminal (10)
- the home A0G (20) is responsible for interacting with the AOE (101) in the terminal (10), and the A0G (20) to which one or more application servers belong is responsible for interacting with one or more application servers.
- 501 to 504 shown in FIG. 5b can be executed by the terminal management module (1021), and the terminal management module (1021) can be located at the AOG to which the terminal (10) belongs.
- (20) Up; Step 500, 505-508 may be performed by an application management module (1022), which may be located on an AOG (20) to which the application server belongs.
- AOE (lOl) and AOG (20) successfully established long links.
- the AOE (lOl) and the terminal attribution AOG complete the REG registration process (501), including the information of the terminal, and the information of the application client on the terminal.
- one or more application servers also need to be successfully registered to the AOG (20) (step 500), such that the AOE (101) (ie, the terminal (10)) goes online and offline to notify subsequent notification of one or more applications. server.
- AOE (lOl) and AOG (20) successfully establish a long link
- A0G (20) actively initiates an ACK heartbeat message to the terminal, in order to maintain the long link.
- the time interval for sending a heartbeat message that is, the heartbeat interval, and the configuration timeout time control may be configured according to the status of the network; 503, AOE (lOl) replies with an ACKRSP response indicating that AOE (101) is in an active state.
- A0G (20) maintains the long link according to the following conditions, including but not limited to: 5041, when the AOG (20) receives the disconnect request initiated by the AOE (101), disconnects the long link, The heartbeat message is sent again. Specifically, the process shown in Figure 5a can be referred to.
- the data stream sent actively initiates a disconnect request (such as BYE), and no longer sends a heartbeat message.
- a disconnect request such as BYE
- the time threshold is configurable, for example, by default of 5 minutes, 10 minutes or 30 minutes.
- the AOG (20) determines that the heartbeat message ACT is sent, if the response of the AOE (lOl) does not exceed the threshold number of times, the disconnect request (for example, BYE) is actively initiated, and the heartbeat message is not sent.
- the threshold of the number of times is configurable, for example, the default is 3 times, 4 times or 5 times, and so on.
- the AOG (20) may further determine the online status of the A0E (101), and the AOE (lOl).
- the application client on the management For example, optionally, 505, if the AOG (20) disconnects the long link according to the steps 5041, 5042, or 5043, it is confirmed that the AOE (101) is offline, and whether the locally stored A0E (101) is online. For: Offline.
- AOG (20) queries the permanent online application client information registered on AOE (lOl), and if it needs to use pseudo code to interact with one or more application servers, then AOG(20) (For example, the application management module (2012)) converts the mobile phone number of the A0E (101) stored on the AOG (20) into a pseudo code, which is used as user identity information between the AOG (20) and the application server. transfer.
- the pseudo code is a unique identity of a user for an application within the system.
- the mobile phone number cannot disclose the mobile phone number to the application server (SP), and other identifiers are needed instead of the mobile phone number.
- the general practice is to make a summary based on the information of the mobile phone number and other random numbers.
- the calculated summary can be called pseudo code.
- the mobile phone number and the pseudo code are in one-to-one correspondence, and the mapping relationship can be kept on the server side.
- the algorithm is unidirectional, that is, the relevant random parameters are not sent to the application server (SP), so the application server (SP) cannot reverse the mobile phone number through the pseudo code.
- SPs application servers
- send downlink messages the user can be identified by a pseudo code.
- a corresponding mobile phone number can be queried by a pseudo code, and the message can be routed to the correct user.
- the pseudo-code is application-level, and some applications can be specified to enable pseudo-code functions, and some applications turn off pseudo-code functions. If the application management module (2012) specifies that the pseudo code needs to be transmitted in the control attribute of the application, it is necessary to generate a pseudo code for the mobile phone number that interacts with the application, and maintain the correspondence between the mobile phone number of the user and the pseudo code.
- HASH is a hash algorithm, for example, MD5 algorithm
- MSISDN is a user mobile phone number
- Time time stamp, For example, use the YYYYMMDDHH24MISS format
- APPID is the application identifier
- Random is the random number.
- HASH is a hash algorithm, for example, MD5 algorithm
- MSISDN is a user mobile phone number
- Time time stamp, For example, use the YYYYMMDDHH24MISS format
- APPID is the application identifier
- Random is the random number.
- the pseudocode is only generated once in the system and is valid for life.
- the system when it is required to convert the mobile phone number into a pseudo code, the system firstly queries the local database according to the mobile phone number and the application ID, and if the pseudo code is not found, it is proved that the application is used for the first time, and the pseudo code is generated by using the above algorithm.
- A0G (20) queries the local database, and if the query fails, the application is proved The pseudo code is wrong.
- the query is successful, the APPID in the application message is matched with the APPID of the local pseudo-code database. If the matching is successful, the pseudo-code insurance is considered successful.
- the 507 AOG (20) constructs an offline notification message to be sent to one or more application servers, where the offline notification message includes a pseudo code.
- one or more application servers can return a notification response after receiving the offline notification message.
- A0G (20) is a server
- the A0G (20) itself performs the above steps 506, 507;
- the AOG (20) is the AOE (10) to which the AOE (101) belongs and one or more application servers
- the AOG (20) to which the AOE (101) belongs sends an offline notification message containing the mobile number to the AOG (20) to which one or more application servers belong, by one or more applications.
- the A0G (20) to which the server belongs converts the mobile phone number into a pseudo code, and sends a downline notification message including the pseudo code to one or more application servers.
- AOE (lOl) can wait after the long link is broken.
- AOG (20) wakes up via SMS and re-establishes the long link.
- it can be implemented by the system shown in FIG. 6, for example, "SMS Push Module (2015)” in AOG (20), “SMS Processing Module (1013)” in AOE (lOl), "Application Wakeup Module ( 1015)” Wait to achieve.
- FIG. 7 a is a schematic flowchart of a possible implementation manner of waking up the long link in the case where the long link is disconnected. Includes:
- the wake-up message is not a plain text message. It is a special format binary message. It is agreed between AOG (20) and AOE (l Ol). The two can understand that other network devices are not visible.
- This binary message for waking up long links may include application IDs that need to be woken up, downstream message sender identification, destination user identification, message digest, and so on.
- the short message processing module (1013) in A0E (101) monitors and intercepts the "wake-up message", and parses the "wake-up message” to trigger the link management module (1011) in A0E (101) to establish a long link;
- the monitoring is to monitor the presence of a wake-up message, and the interception means that the wake-up message is no longer transmitted downward, and other applications will no longer receive the wake-up message content.
- the link management module (1011) in A0E (101) initiates a registration request to the AOG (20) according to the prompt of the short message processing module (1013), and receives the registration response returned by A0G (20), correspondingly The long link is established, and the AOG (20) sends the downlink message sent by the application server to the A0E (101) through the previously re-established long link.
- the link management module (1011) in A0E (101) initiates a registration request to the AOG (20) according to the prompt of the short message processing module (1013), and receives the registration response returned by A0G (20), correspondingly The long link is established, and the AOG (20) sends the downlink message sent by the application server to the A0E (101) through the previously re-established long link.
- FIG. 8 a schematic flowchart of a method for waking up an application client, where a long link has been established or has been awake, but the application client in the terminal (10) has exited, but Upon receiving the data sent by the A0G (20) to the application client (801), the application wake-up module (1015) in the A0E (101) can also pull up the application client (802) that has exited.
- the application client and the AOE (l Ol) are two independent processes on the terminal (10), and the application needs to register with the AOE (l Ol) when starting the application, and inform the A0E (101) of the program installation location, operating parameters, and the like.
- Information, A0E (101) is able to monitor the running status of the application client on the terminal.
- the application client retreats Out (maybe voluntarily exit according to the user's instruction), and when there is a downlink message to notify the application client, A0E (101) re-runs the client's program according to the previous registration information, thereby pulling up the application client, and then The received downlink message is notified to the application client through an internal API interface or a message interface.
- FIG. 6 is a block diagram showing an embodiment of a terminal (10) in the system.
- the terminal (10) generally includes at least one processor (102) (e.g., a CPU), at least one network interface (105) or other communication interface, memory (106), and at least one communication bus (103) for implementing the devices Communication between the connections.
- the processor (102) is configured to execute an executable module stored in the memory, such as a computer program; the terminal (10) optionally includes a user interface (104) including, but not limited to, a display, a keyboard, and a pointing device (eg, a mouse, a track) Ball (t rackba ll), touch panel or touch screen display.
- Memory (106) may contain high speed RAM memory, and may also include non-volat memory, such as at least one disk memory.
- a network interface (which may be wired or wireless) implements a communication connection between the terminal (10) and at least one other computer, and may use the Internet, a wide area network, a local network, a metropolitan area network, or the like.
- the memory (106) may optionally include at least one location located away from the aforementioned CPU 801. Storage device (such as an external storage device). In some embodiments, the memory (106) stores the following elements, executable modules or data structures, or a subset thereof, or their extended set: an operating system (106) for, containing various programs, To implement various basic services and handle hardware-based tasks;
- the permanent online engine A0E (101) is in communication connection with at least two application clients (108) located in the terminal (10), and is connected to the permanent online service gateway A0G (20) located on the network side, and one on the network side. Or a plurality of one or more application servers 04 are communicatively connected through the permanent online service gateway AOG (20);
- the permanent online engine A0E (101) includes but is not limited to one or a combination of the following modules: a link management module (1011), an application management module (1012), a short message processing module (1013), and a data forwarding module (1014), Application wake-up module (1015), IP proxy module (1016), heartbeat time module (1017), or battery monitoring module (1018), API interface, and the like.
- the link management module (1011) may be configured to establish a long link between the A0E (101) and the permanent online service gateway AOG (20), where the at least two application clients pass The long links respectively communicate with one or more application servers (04, 05); obtain routing information from the user management server (30), and request to establish the long links according to the routing information.
- the process of obtaining the routing information includes: sending a routing information request including the terminal identity information to the user management server (30), receiving a correspondence between the user management server (30) according to the stored terminal identity information and the user identity information, and the user The address of the A0G returned by the address of the A0G to which the identity information belongs.
- the terminal identity information is IMSI information
- the user identity information is a mobile phone number; in another example, the terminal identity information is a terminal device identifier, and the user identity information is a user name or a user identifier.
- the above process can refer to the figure.
- the permanent online engine A0E (101) provides an API interface, and the application client can communicate with the API through the API interface, so that each application client does not directly establish a long link with the application provider, but through the permanent online engine A0E. (101) Establish a long link.
- A0E (101) includes an application management module (2013), on the permanent online engine
- the management functions of the application client registered on AOE including but not limited to registration of the program, cancellation of registration, and execution of the program, exiting the running status
- the permanent online engine A0E (101) further includes a data forwarding module (1014), which can be used to receive data from different application clients, and then sent out through the aforementioned "long link”;
- the link “acquires data, and according to the application ID in the data, determines which application client the message belongs to, and then forwards the message to the application client.
- the uplink message sent by the application client is forwarded to the permanent online service gateway 102 for forwarding to one or more application servers; and the permanent online service gateway is received.
- A0G (20) forwarded downlink messages sent by one or more application servers are forwarded to the application client.
- the AOE when the application client has a large amount of data to interact with one or more application servers, the AOE (l Ol), such as the IP proxy module (1016), can provide a separate connection with one or more Application server interactions.
- the IP proxy channel when the delivered data reaches the threshold, an IP proxy channel needs to be established, and the IP proxy channel specifically transmits the data.
- the IP proxy channel can be actively closed at the end of the data transfer. Better, for the application client or one Or multiple application servers do not actively close the IP proxy channel.
- A0E (101) can set the timeout mechanism. After no data interaction reaches the threshold (for example, 60s), A0E (101) actively disconnects.
- FIG. 10 is a schematic structural diagram of an embodiment of a permanent online gateway A0G (20) in the system. It should be noted that, as described above, it can be set as two separate devices that are not in the same physical location, that is, the A0G (20) to which the terminal (10) belongs and the A0G (20) to which the application server belongs, by which they mutually Communication completes related functions together, and its structure is similar, but the application module may contain different modules depending on where it is located.
- the AOG (20) is located on the network side, and is in communication connection with the permanent online engine A0E (101) located in the terminal (10), and the permanent online engine A0E (101) is communicatively connected with at least two application clients located in the terminal (10); Connected to one or more application servers (04, 05) located on the network side.
- the A0G (20) generally includes at least one processor (202) (e.g., a CPU), at least one network interface or other communication interface (205), a memory (206), and at least one communication bus (203) for implementing these Connection communication between devices.
- a processor (202) is operative to execute an executable module, such as a computer program, stored in the memory.
- the A0G (20) optionally also includes a user interface (904) including, but not limited to, a display, a keyboard, and a pointing device (eg, a mouse, a trackball (t rackba ll), a touchpad, or a touch sensitive display.
- Memory (906) It may include a high speed RAM memory, and may also include a non-volat memory, such as at least one disk memory.
- the AOG (20) and at least the AOG (20) may be implemented by at least one network interface (which may be wired or wireless)
- a communication connection between other computers can use the Internet, a wide area network, a local network, a
- the memory (206) may optionally include at least one location located away from the aforementioned CPU Storage device (such as an external storage device).
- the memory (206) stores the following elements, executable modules or data structures, or a subset thereof, or their extended set: an operating system (207) for, containing various programs, To implement various basic services and to handle hardware-based tasks; and, one or any combination of the following modules:
- the terminal management module (2011) is configured to establish a long link between the permanent online engine A0E (101) and the AOG (20), wherein at least two application clients pass the long link. Communicating with the one or more application servers (04, 05) respectively; in the process of establishing the long link, obtaining authentication information from the user management server (103).
- the terminal management module (2011) is configured to: send an authentication information request carrying the terminal identity information to the user management server (30), and receive the user management server (30) according to the terminal identity information and the user identity. Correspondence of information, returned user identity information.
- the terminal identity information is IMSI information
- the user identity information is a mobile phone number
- the terminal identity information is a terminal device identifier
- the user identity information is a user name or a user identifier.
- the terminal management module (2011 ) in the permanent online service gateway A0G (20) can also be used to implement management of the terminal (10), for example, management registration.
- AOE (lOl) information in the system such as IMSI summary, AOE (lOl) User Agent (UA) information, etc., also includes application information registered on A0E (101), such as the current A0E (101) The identity of the installed app or its version.
- the terminal management module (2011) can also authenticate the A0E (101) identity, register the registration information, and store it in the system. Specific The process can be referred to the embodiment shown in 2b, 3a, 3b, and the like.
- the terminal management module (2011) can also manage long links between AOE (l Ol) and A0G, such as sending heartbeat messages, maintaining long link state information, such as established state, disconnected state, and the like.
- the application management module (2012) in the permanent online service gateway A0G (20) can manage the application, for example, manage all application information accessed to the A0G (20), including the application server to which the application belongs ( Or the application provider SP) and its information provide access authentication, usage rights control, and the like to one or more application servers that are accessed.
- pseudo-code management is performed for a specific application, and the like. For the specific process, reference may be made to the various embodiments shown in Figure 5b.
- the route management module (2013) in the permanent online service gateway A0G (20) can implement route management: For uplink and downlink messages, A0G can be correctly routed to the corresponding network element.
- the cache management module (2014) in the permanent online service gateway A0G (20) can implement the cache management.
- the data message sent by the application to the A0E (101) is unsuccessful according to the application requirement.
- the cached message should be retried and a successful status report is returned to the application after the retry is successful.
- the short message pushing module (2015) in the AOG (20) can send a "wake-up message" to the AOE (l Ol) in a special case, for waking up a long link that has not been established or has been disconnected;
- the sent downlink message is sent to the A0E (101) through the previously re-established long link.
- a specific process can be referred to the embodiment shown in FIG.
- the IP Push Module (2016) in the AOG (20) can implement the IP data push function (IP PUSH). Specifically, when the long link has been disconnected, the long link is awakened compared to the foregoing short message.
- IP PUSH IP data push function
- the IP data channel is directly established to perform downlink data push; when the application server needs to send the downlink message data volume After the hour (for example, less than or equal to the set threshold), the long link can be awakened by the wake-up of the short message, and the downlink data is pushed through the long link.
- the online is permanently online.
- the protocol conversion module (2017) in the serving gateway A0G (20) can convert messages between the two protocols.
- the upgrade management module (2016) in A0G (20) can manage the version of all permanent online engines A0E (101), which can trigger an automatic upgrade update of the permanent online engine.
- 11 is a block diagram showing an embodiment of a user management server (30) in the system.
- the user management server (30) located on the network side, is in communication with the permanent online engine A0E (101) and the permanent online service gateway A0G (20), and at least two application clients pass the long The links communicate with the one or more application servers (04, 05), respectively.
- the user management server (30) generally includes at least one processor (302) (eg, a CPU), at least one network interface or other communication interface (305), a memory (306), and at least one communication bus (303) for Achieve connection communication between these devices.
- a processor (302) is operative to execute an executable module, such as a computer program, stored in a memory.
- the User Management Server (30) optionally includes a user interface (304) including, but not limited to, a display, a keyboard and a pointing device (eg, mouse, trackball) (trackball), touchpad or touchscreen display.
- the memory (306) may include a high speed RAM memory, and may also include a non-volatile memory such as at least one disk memory.
- the communication connection between the user management server (30) and at least one other computer is implemented by at least one network interface (which may be wired or wireless), and may use an Internet, a wide area network, a local network, a metropolitan area network, or the like.
- the memory (306) can optionally include at least one storage device (e.g., an external storage device) located remotely from the aforementioned CPU.
- the memory (306) stores the following elements, executable modules or data structures, or a subset thereof, or their extended set: an operating system (307) for, including various programs, To implement various basic services and to handle hardware-based tasks; and, one or any combination of the following modules:
- the routing information module (3012) is configured to provide routing information to the A0E (101), so as to request to establish the long link according to the routing information; an authentication information module (3013), configured to In the process of establishing a long link between A0E (101) and the A0G (20), authentication information is provided to the AOG (20).
- the registration management module (3011) is further configured to acquire and store a correspondence between the terminal identity information and the user identity information, and store an address of the AOG (20) to which the user identity information belongs; the routing information module (3012), specifically for: according to the terminal identity information in the routing information request sent by the AOE (lOl), and the correspondence between the terminal identity information acquired by the registration management module and the user identity information, to the A0E ( 101) providing an address of the A0G to which the user identity information belongs; the authentication information module (3013) is specifically configured to: when the AOG (20) sends the authentication information request, according to the terminal identity information in the authentication information request , and registration tube Corresponding relationship between the terminal identity information acquired and stored by the management module and the user identity information,
- A0G (20) provides the identity information of the user.
- the terminal identity information is IMSI information
- the user identity information is a mobile phone number.
- the terminal identity information is a terminal device identifier
- the user identity information is a user name or a user identifier.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种支持应用客户端永久在线的方法,该方法包括:在位于终端(10)中的永久在线引擎AOE(101)和位于网络侧的永久在线服务网关AOG(20)之间建立一个长链接,其中,至少两个应用客户端通过所述长链接分别与一个或者多个应用服务器(04,05)通信;在建立所述长链接的过程中,位于网络侧的用户管理服务器(30)向所述AOE(101)提供路由信息,向所述AOG(20)提供鉴权信息。
Description
一种支持应用客户端永久在线的方法、 系统及装置 本申请要求于 2011 年 11 月 15 日提交中国专利局、 申请号为 201110360998.2、发明名称为"一种支持应用客户端永久在线的方法、 系统及 装置"的中国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域
本发明涉及通信领域, 尤其是一种支持应用客户端永久在线的方法, 系 统及装置。 背景技术
智能终端上有大量 "永久在线" 类的应用, 这种类型的应用通过终端主 动发起的 PULL方式周期性的与服务器主动建立链接, 更新状态, 因而会产 生大量重复的、 短小的 PULL消息, 比如即时消息 IM、 社交网络 SNS、 VOIP 等永久在线应用需要客户端频繁发送 "keep alive" 消息通知服务在线状态; 又例如, IM、 SNS应用需要客户端频繁向服务器 Pull消息更新好友状态; PushMail需要周期性同步、 刷新; iphone4的 iAD广告推送, 定位跟踪服务都 需要耗费大量的通信资源等等。
为了维持应用永久在线,一个或者多个应用服务器至少需要维持与用户 终端间的一条永久链路。终端与一个或者多个应用服务器之间的链路是不稳 定的, 例如链路中间有 NAT、 防火墙, 用户的 IP地址可能变化, 因此需要通 过频繁的心跳维持链路, 并获取用户状态 (呈现信息)。
一般情况下, 终端进行正常的数据通信时, 网络给终端分配专用的物理 信道用于数据的上下行无线传输, 这种状态称之为 DCH ( Dedicated CHannel 专用信道)状态。 当没有数据传输时, 可使终端处理 Idle状态, 在 Idle状态下
所有的链接在接入层都是关闭的, 终端只监听寻呼信息。 因而在 DCH和 Idle 状态下, 终端对于电量的消耗差别非常大。 智能终端基于省电的考虑, 一般 6 ~ 8秒无数据传输, 手机进行 "快速休眠" 强制切换到 Idle状态。 而 "永久 在线" 应用又经常需要与服务端进行心跳联接。 从而导致终端在 Idle状态与 DCH状态间的频繁切换, 从 Idle状态到 DCH激活态转换无线侧需要 32条信令 恢复链接, 这种状态间的频繁切换对无线侧的信令造成重大的冲击。 发明内容
本发明的一个实施方式, 提供了支持应用客户端永久在线的方法, 在位 于终端( 10 )中的永久在线引擎 A0E ( 101 )和位于网络侧的永久在线服务网 关 A0G (20)之间建立一个长链接, 其中, 至少两个应用客户端通过该长链接 分别与一个或者多个应用服务器( 04 , 05 )通信; 位于网络侧的用户管理服 务器( 30 ) 向该 A0E ( 101 )提供路由信息, 其中, 该 A0E ( 101 )根据该路 由信息请求建立该长链接; 用户管理服务器(30 )进一步用于在建立该长链 接的过程中, 向该 A0G (20)提供鉴权信息。
较优的, 该用户管理服务器( 30 )获取并存储终端身份信息和用户身份 信息的对应关系,且存储该用户身份信息所归属的 A0G (20)的地址; 当该 A0E ( 101 )发送携带终端身份信息路由信息请求时, 该用户管理服务器(30 ) 根据该终端身份信息和该用户身份信息的对应关系, 以及, 该用户身份信息 所归属的 A0G (20)的地址, 向该 A0E ( 101 )提供该用户身份信息归属的 A0G 的地址; 当该 A0G (20)发送鉴权信息请求时, 该用户管理服务器( 30 )根据 该鉴权信息请求中的终端身份信息, 以及, 该终端身份信息和该用户身份信 息的对应关系, 向该 A0G (20)提供该用户身份信息。
较优的, 该终端身份信息为 IMSI信息, 该用户身份信息为手机号码。 较优的, 该位于网络侧的用户管理服务器( 30 )向该 A0E ( 101 )提供路 由信息, 以及, 向该 A0G (20)提供鉴权信息的过程具体包括:
该 A0E ( 101 )在该永久在线引擎 A0E ( 101 ) 启动时或者检测到 SIM卡 中的 I SMI信息与上次注册的信息不同时, 自动发送上报消息到用户管理服 务器(30 ), 该上报消息携带该 IMSI信息和该手机号码; 该用户管理服务器 ( 30 )根据收到的该上报消息获取该 IMSI信息和该手机号码, 存储该手机 号码和该 IMSI信息的对应关系; 该 A0E ( 101 ) 向该用户管理服务器( 30 ) 发送路由信息请求, 该路由信息请求中携带该 IMSI信息; 该用户管理服务 器( 30 )根据接收到的路由信息请求中的 IMSI信息查找到对应的手机号码, 再根据预先存储的手机号码归属的 A0G地址,返回该手机号码归属的 A0G (20) 的地址给该 A0E ( 101 ); 该永久在线引擎 A0E ( 101 ) 向该手机号码归属的 A0G (20)发起注册请求,该注册请求携带 IMSI信息;该 A0G (20)接收到该 A0E ( 101 ) 的注册请求后, 判断其中包含的 IMSI信息在该 A0G (20)中是否已经 注册, 如果没有注册则向用户管理服务器( 30 )发送鉴权信息请求, 该鉴 权信息请求携带该注册请求中的 IMS I信息; 用户管理服务器(30 )接收到 该鉴权信息请求后根据存储的该手机号码和该 IMSI信息的对应关系, 返回 该 IMSI信息对应的该手机号码;当该 A0G (20)判断该手机号码属于该 A0G (20) 的服务范围, 该 A0G (20)存储该手机号码, 并向 A0E ( 101 )返回注册响应。
较优的, 该上报消息为短信息, 该上报消息携带 IMSI信息和手机号码 具体包括: 该短信息的内容中包括该 IMSI信息, 该短消息的发送方为该手 机号码。
较优的, 该终端身份信息为终端设备标识, 该用户身份信息为用户名称 或者用户标识。 本发明的另一个实施方式, 提供了一种支持应用客户端永久在线的系 统, 该系统包括: 永久在线引擎 A0E ( 101 ), 位于终端 (10) 中, 与至少两 个应用客户端通信连接; 永久在线服务网关 A0G (20) , 位于网络侧, 与位于 网络侧的一个或者多个应用服务器( 04, 05 )通信连接; 该永久在线引擎 A0E ( 101 )和该永久在线服务网关 A0G (20) , 用于建立一个长链接, 其中, 该至 少两个应用客户端通过该长链接分别与该一个或者多个应用服务器( 04, 05 ) 通信; 用户管理服务器(30), 位于网络侧, 与该永久在线引擎 A0E ( 101 ) 和该永久在线服务网关 A0G (20)通信连接, 用于向该 A0E ( 101 )提供路由信 息, 以便于该 A0E ( 101 )根据该路由信息请求建立该长链接,在该 A0E ( 101 ) 和该 A0G (20)建立长链接的过程中, 进一步向该 AOG(20)提供鉴权信息。
较优的, 该用户管理服务器( 30), 具体用于: 该获取并存储终端身份 信息和用户身份信息的对应关系, 且存储该用户身份信息所归属的 AOG(20) 的地址; 当该 A0E ( 101 )发送携带终端身份信息路由信息请求时, 根据该终 端身份信息和该用户身份信息的对应关系, 以及, 该用户身份信息所归属的 A0G (20)的地址, 向该 A0E ( 101 )提供该用户身份信息归属的 A0G的地址; 当该 A0G (20)发送鉴权信息请求时, 根据该鉴权信息请求中的终端身份信息 和该终端身份信息和该用户身份信息的对应关系, 向该 AOG(20)提供该用户 身份信息。
较优的, 该终端身份信息为 IMSI信息, 该用户身份信息为手机号码;
该 AOE ( 101 )具体用于: 在该永久在线引擎 A0E ( 101 ) 启动时或者检测到 SIM卡中的 I SMI信息与上次注册的信息不同时,自动发送上报消息到用户管 理服务器(30 ), 该上报消息携带该 IMSI信息和该手机号码; 向该用户管理 服务器(30 )发送路由信息请求, 该路由信息请求中携带该 IMSI信息; 向 接收到的该手机号码归属的 AOG (20)发起注册请求, 该注册请求携带 IMSI 信息。 该用户管理服务器( 30 )具体用于: 根据收到的该上报消息获取该 IMSI信息和该手机号码, 存储该手机号码和该 IMSI信息的对应关系; 根据 接收到的路由信息请求中的 IMSI信息查找到对应的手机号码, 再根据预先 存储的手机号码归属的 A0G地址, 返回该手机号码归属的 A0G (20)的地址给 该 A0E ( 101 ); 接收到该鉴权信息请求后根据存储的该手机号码和该 IMSI 信息的对应关系,返回该 IMSI信息对应的该手机号码。该 A0G (20)具体用于: 接收到该 A0E ( 101 )的注册请求后,判断其中包含的 IMS I信息在该 A0G (20) 中是否已经注册, 如果没有注册则向用户管理服务器(30 )发送鉴权信息请 求, 该鉴权信息请求携带该注册请求中的 IMSI信息, 接收返回的该 IMSI 信息对应的该手机号码; 当判断该手机号码属于该 A0G (20)的服务范围, 该 A0G (20)存储该手机号码, 并向 A0E ( 101 )返回注册响应。 在其他的实施方式中,相应的提供了可以执行前述方法各相关步骤的永 久在线引擎 A0E ( 101 ), 永久在线服务网关 AOG (20) , 以及用户管理服务器 ( 30 )。 在另一个本发明实施方式的支持应用客户端永久在线的系统中, 永久在
线引擎 AOE (l Ol) , 位于终端(10 ) 中, 与至少两个应用客户端通信连接, 用 于和永久在线服务网关 A0G (20)之间建立一个长链接; 永久在线服务网关 AOG (20) , 位于网络侧, 用于与永久在线引擎 AOE (l Ol)之间建立该长链接, 以及发起心跳消息, 以便于维护该长链接; 其中, 该至少两个应用客户端通 过该长链接与该一个或者多个应用服务器( 04 , 05 )通信。
较优的, AOE (l Ol)和 AOG (20)可以各自分别根据自己的判断主动地断开 该长链接。
较优的, 该永久在线引擎 A0E ( 101 )进一步用于当判断出收到心跳请求 后超过一定的时间阈值的时候还未收到其他心跳请求, 则主动向 AOG (20)发 送断开请求; 或者, 当检测到其管理的所有应用客户端在一定的时间阈值内 未运行时, 则主动向 A0G (20)发起断开请求; 或者, 当检测到终端 01上的电 池电量低于一定的阈值时, 则主动向 A0G (20)发送断开请求, 该断开请求用 于断开该长链接。
较优的, AOG(20)进一步用于当判断出超过一定时间阈值没有收到从该 AOE101发送的数据流, 则主动发起断开请求; 当判断出超过一定的次数阈 值发送心跳请求后, 但没有得到 AOE101的响应时, 主动发起断开请求, 该 断开请求用于断开该长链接。
较优的, AOG(20)进一步用于将已经断开该长链接的 AOE101 在该 AOG(20)上记录的是否在线状态修改为离线, 并且构造下线通知消息发给应 用服务器发送给该应用服务器。
较优的, A0G ( 20 )进一步用于在特殊情况下向 A0E ( 101 )发送唤醒短 信, 用于唤醒尚未建立或者已经断开的长链接。
较优的, AOE (101 )进一步用于监听并拦截到该唤醒短信后, 解析该唤 醒短信, 并触发建立长链接。
在另一个本发明实施方式的支持应用客户端永久在线的系统中, 永久在 线引擎 AOE(lOl), 位于终端(10) 中, 与至少两个应用客户端通信连接, 用 于和永久在线服务网关 A0G (20)之间建立一个长链接; 其中, 该至少两个应 用客户端通过该长链接与一个或者多个应用服务器 04通信; A0E (101 )进 一步用于在该长链接正常(已经成功地建立)时, 终端(10)中的应用客户端 已经退出, 但是接收到了 A0G (20)转发的发送给该应用客户端的数据时, 拉起该已经退出的应用客户端。 在另一个本发明实施方式的支持应用客户端永久在线的系统中, 永久在 线引擎 AOE(lOl), 位于终端(10) 中, 与至少两个应用客户端通信连接, 用 于和永久在线服务网关 A0G (20)之间建立一个长链接; 其中, 该至少两个应 用客户端通过该长链接与一个或者多个应用服务器 04通信; A0E (101 )进 一步用于当应用客户端有大量数据需要与该应用服务器中的一个交互时,提 供单独的连接与该应用服务器交互,原来的长链接可以主要用来传输控制流 相关的数据。
较优的, 当传递的数据达到阈值时, 需要建立专门的 IP代理通道, 由 该通道专门传输该传递的数据, 一般的, 这些数据是提供应用的过程中产生 的数据流。
较优的, 在数据传递结束时可以主动关闭该 IP代理通道。
较优的, 对于应用客户端或者应用服务器不主动关闭 IP代理通道的,
AOE (1 01)可以设定超时机制,在无数据交互达到阈值(例如 60s )^ , AOE (101) 主动断开连接。
本发明的另外一些实施方式中, 提供了上述系统执行的相应的方法, 以 及相应的 A0E ( 101 ), 终端 (10 ), 以及 AOG ( 20 )。 通过上述不同的实施方式,从不同的侧面提供了一个节约通信资源的支 持应用客户端永久在线的系统, 方法和装置。 附图说明
图 1为一个本发明实施方式应用环境的示意图;
图 2a为一个包含用户管理服务器的实施方式的系统架构图;
图 2b为一个包含用户管理服务器的系统中建立长链接的实施方式的方 法流程图;
图 3a为一个以运营商通信系统为例的建立长链接的实施方式的方法流 程图;
图 3b为一个更新应用客户端的流程示意图实施方式的方法流程图; 图 4a为一个关于长链接心跳维护的实施方式的系统架构图;
图 4b为一个关于长链接心跳维护方法的实施方式的方法流程图; 图 5a为一个从 AOE (l Ol)角度描述的关于长链接心跳维护的实施方式的 方法流程图;
图 5b为一个从 AOG (20)角度描述的关于长链接心跳维护的实施方式的 方法流程图;
图 6为一个从包含了扩展的功能的实施方式的系统架构图;
图 Ί为一个关于唤醒长链接的实施方式的方法流程图;
图 8为一个关于唤醒应用客户端的实施方式的方法流程图;
图 9为一个终端的实施方式的结构示意图;
图 10为一个 AOG(20)的实施方式的结构示意图;
图 11为系统中用户管理服务器(30) 的一个实施方式的结构示意图。
具体实施方式
为了各发明实施方式清楚明白, 各可能用到的术语解释如下:
AOG: AOG (Always Online Gateway), 永远在线网关, 通过与永久在线 引擎的配合, 可以给 SP提供通用的 PUSH通道, 允许 SP服务侧随时随地找 到终端。
AOE(lOl): AOE(lOl) ( Always Online Engine ), 永久在线引擎, 是部 署在终端侧的中间件, 汇聚和代理客户端应用客户端的永远在线需求。
AOI: A0I ( Always Online Infrastructure ), 7 远在线设施, 包括 AOE(lOl), A0G、 或者进一步包括用户管理服务器等各网元的集合。 如图 1所示为本发明的一个本发明实施方式应用环境系统的示意图, 该 系统包含多个通信设备, 通过有线或者无线通信网络相互通信。 这些通信网 络包括但是不限于移动通信网络 ( mobile telephone network ), 无线本地 局域网络 (wireless Local Area Network (LAN) ), 蓝牙网络 ( Bluetooth personal area network ),以太网络( Ethernet LAN ),令牌环局部网 ( a token ring LAN ), 广域网 (a wide area network ), 互联网 ( the Internet, )
等等。
图 1所示的系统中,终端(10)可以包括但是不限于,移动设备( mobile device ) , 可移动通信的 PDA 装置 ( a combination PDA and mobile telephone ), PDA, 集成信息装置 ( integrated messaging device (IMD) ), 个人计算机 ( ersonal computer and 笔记本型计算机 ( notebook computer ;)。 这些终端可以移动, 也可以位于某个可移动的设备上, 例如但 不限于汽车, 卡车, 出租车, 公共汽车, 轮船, 飞机, 自行车, 摩托车, 等 等上面。 上述终端 (10)可以通过该无线网络和 /或该有线网络接入到一个 或者多个应用服务器 04上, 以便于获取该一个或者多个应用服务器 04提供 的应用。 一个或者多个应用服务器包括但不限于, 上述网络可以包含其他的 各种不同种类的通信设备。
上述通信设备可以基于各种不同的传输技术实现通信的过程, 包括但不 限于码分多址 Code Division Multiple Access (CDMA) , 全球移动通讯系统 Global System for Mobile Communications (GSM) , 通用移动通信系统 Universal Mobile Telecommunications System (UMTS) , 时分多址 Time Division Multiple Access (TDMA) , 频分多 址 Frequency Division Multiple Access (FDMA) , 传输控制协议 /因特网互联协议 Transmission Control Protocol/Internet Protocol (TCP/IP), 短消息月良务 Short Messaging Service (SMS) , 多媒体信息月良务 Multimedia Messaging Service (MMS) , e-mail,即时消息月良务 Instant Messaging Service (IMS), 蓝牙 Bluetooth, IEEE 802.11, 等等. 上述的通信设备之间可以使用不同的媒体 资源,包括但是不限于,无线电( radio), 红外线( infrared), 激光( laser ),
电缆 ( cable connect ion ), 等等。 如图 2a所示为一个支持应用客户端永久在线的系统实施方式的架构示 意图, 系统中包括:
永久在线引擎 A0E (101 ), 位于终端 (10) 中, 与至少两个应用客户端 通信链接;
永久在线服务网关 A0G (20) ,位于网络侧, 与位于网络侧的一个或者多 个应用服务器( 04, 05 )通信链接;
所述永久在线引擎 A0E (101 )和所述永久在线服务网关 A0G (20) , 用于 建立一个长链接, 其中, 所述至少两个应用客户端通过所述长链接分别与所 述一个或者多个应用服务器( 04, 05 )通信;
用户管理服务器(30), 位于网络侧, 与所述永久在线引擎 A0E (101 ) 和所述永久在线服务网关 A0G (20)通信链接, 向所述 A0E (101 )提供路由信 息, 其中, 所述 A0E ( 101 )根据所述路由信息请求建立所述长链接; 用户管 理服务器(30)进一步用于在建立所述长链接的过程中, 向所述 AOG(20)提 供鉴权信息。
上述提到的一个或者多个应用服务器可以包括但不限于提供下述应用 的之一或者任一组合的服务器: PUSH Mail, 天气预报, VOIP, 广告, 定位 服务, 企业办公, 生活服务, 等等。
上述提到的长链接, 可以是符合传输控制协议 ( TCP, Transmission
Control Protocol ) 的长链接, 也可以是符合用户数据报协议 (UDP, UserDatagramProtocol ) 的长链接;
上述用户管理服务器( 30 )可以作为永久在线业务用户数据的管理节点, 向所述 A0E ( 101 )提供路由信息, 以便于所述 A0E ( 101 )根据所述路由信 息请求建立所述长链接; 以及, 在所述 A0E ( 101 )和所述 AOG (20)建立长链 接的过程中, 向所述 A0G (20)提供鉴权信息。 上述方案可以使得该永久在线 引擎 A0E ( 101 )和该永久在线服务网关 A0G (20)能够简便的, 并且安全的建 立该长链接。 需要说明的是, 该用户管理服务器(30 ) 内部可以是集群式, 或分布式; 可以是和网络侧任何可能的设备合设, 或者独立设置的, 但对于 A0G而言是能够与其他设备相区分的, 上述的系统中 A0G可能有多个。
在一个较优的实施方式中, 上述鉴权信息为用户身份信息, 例如手机号 码, 用户标识或者用户名称, 方便各种应用服务器针对其用户进行鉴权, 具 体实施方式中可以由 A0G (20)代理该鉴权的过程。 然而一般的, 终端( 0 1 ) 在通信的过程中携带的是终端身份信息, 例如 IMS I信息, 或者设备标识, 这些信息如果作为鉴权信息, 需要提前与一个或者多个应用服务器等设备进 行复杂的认证交互。 另外需要说明的是, 上述路由信息为用户身份信息所归 属的 AOG (20)的地址, 在具体实施方式中, 对于整个网络, 可能有多个 A0G (20) , 需要明确为某个用户身份信息提供代理服务的 A0G。 参考图 2b , 为一个较优的实施方式的流程图, 前述图 2的系统执行如 下的方法:
201. 用户管理服务器(30 ) (例如注册管理模块(3011) )获取并存储终 端身份信息和用户身份信息的对应关系, 且存储用户身份信息所归属的 A0G (20)的地址;
202. 当 AOE ( 101 ) (如链接管理模块( 1011 ) )发送路由信息请求时, 用户管理服务器( 30 ) (例如路由信息模块( 3012 ) )根据路由信息请求中 的终端身份信息, 以及终端身份信息和用户身份信息的对应关系, 向 A0E ( 101 )提供用户身份信息归属的 A0G的地址;
203. 当 A0G (20)发送鉴权信息请求时, 用户管理服务器( 30 ) (例如鉴 权信息模块(3013) )根据鉴权信息请求中的终端身份信息, 以及终端身份 信息和用户身份信息的对应关系, 向 A0G (20)提供用户身份信息。
具体的, 上述获取并存储终端身份信息和用户身份信息的对应关系的过 程, 可以是在前述长链接未建立之前, 利用其他可能的通信通道实现的, 例 如电路域通信通道,或者短消息通道。具体的,可以包括但不限于由终端( 10 ) 上报给用户管理服务器(30 ), 或者由其他网络设备转发给用户管理服务器 ( 30 ), 也可以是用户管理服务器(30 ) 向终端 (10 )或者其他网络设备请 求的方式得到。 参考图 3a , 较优的, 以由运营商提供的通信系统为例, 并具体以终端 身份信息为 IMSI信息, 用户身份信息为手机号码为例, 上述在建立长链接 的过程中,位于网络侧的用户管理服务器( 30 )向 A0E ( 101 )提供路由信息, 向 A0G (20)提供鉴权信息的过程具体包括:
301 , 所述 A0E ( 101 ) (例如, A0E ( 101 )上的链接管理模块(1011) ) 在所述永久在线引擎 A0E ( 101 ) 启动时或者检测到 SIM卡中的 ISMI信息与 上次注册的信息不同时, 自动发送上报消息到用户管理服务器( 30 ), 所述 上报消息携带所述 IMS I信息和所述手机号码。
上述上报消息是不需要建立好前述的 AOE (101 )和 AOG(20)之间的链路 的情况下能够发送的信息, 例如电路域的信息, 或者非数据链路的信息。 更 具体的, 可以是短信息, 或者, 由 AAA服务器转发的上线 Radius通知等等。 如果为短消息, 则只需要在内容中携带 IMSI信息, 系统将其发送方默认设 置为手机号码, 进一步节约了数据通信资源。
302, 用户管理服务器(30) (如上述注册管理模块(3011) )根据收到 的所述上报消息获取所述 IMSI信息和所述手机号码, 存储所述手机号码和 所述 IMSI信息的对应关系。
303,可选的, 由于上报消息可能有延迟, 为了确保用户管理服务器(30) 收到该上报消息后再进行后续处理流程, A0E ( 101 )可以进行一定的延时。
304, A0E (101 ) (例如链接管理模块(1011) ) 向所述用户管理服务器 ( 30 )发送路由信息请求, 该路由信息请求中携带所述 IMSI信息。
305, 用户管理服务器( 30) (如路由信息模块( 3012) )根据接收到 的路由信息请求中的 IMSI信息查找到对应的手机号码(具体的, 即指查找 上述注册管理模块(3011) ), 再根据预先存储的手机号码归属的 A0G地址, 返回该手机号码归属的 A0G (20)的地址给所述 A0E ( 101 )。
306, A0E ( 101 ) (例如链接管理模块(1011) )获取到归属的 A0G信息 后, 向归属的 A0G (20)发起注册请求, 该注册请求携带 IMSI信息。
较优的, 该注册请求还可以携带但不限于: A0E (101 ) 中的已经注册的 应用客户端的信息, 例如该应用的标识, 终端的型号、 接入网络 APN、 操作 系统版本, 以及 A0E ( 101 ) 的版本等等。
307, 该 A0G (20)收到注册请求后, 接收到所述 A0E (101 ) 的注册请求
后, 判断其中包含的 IMSI信息在该 AOG (20)中是否已经注册。
308,如果没有注册则该 A0G (20)向用户管理服务器(30 )发送鉴权信息 请求, 所述鉴权信息请求携带所述注册请求中的 IMSI信息。
309 , 用户管理服务器(30 )接收到鉴权信息请求后 (具体的, 例如终 端信息模块 301 ) 向 A0G (20)返回 IMSI信息对应的终端信息手机号码。
310, A0G (20) (例如其中的链接管理模块 (2011) )判断是该手机号 码否为该 A0G (20)的服务范围, 如果不是返回注册失败, 流程结束。 如果属 于该 A0G (20)的服务范围, 该 AOG (20) (例如其中的链接管理模块(2011) ) 存储该手机号码。 较优的, 还可以保存前述注册信息中携带的其他信息, 例 如终端型号, 已经注册的应用客户端, 等等信息。
311 , 在 310 中成功注册以后 AOG (20) (例如其中的链接管理模块 (2011) ) 向 (^ ( 101 ) (例如链接管理模块(1011) )返回注册响应。
至此, A0E ( 101 )与归属的 A0G (20)成功建立前述长链接。 该过程利用 了系统中可信任的终端信息, 以及用户信息建立长链接, 不需要系统通过复 杂的交互为每个终端 ( 10 )生成唯一的设备 ID, 并利用该唯一的设备 ID建 立长链接, 从而在简化流程的同时提高了长链接的安全性。 前述图 3a示出的是终端 ( 10 ) 启动时或者检测到 SIM卡中的 ISMI信 息与上次注册的信息不同时(即终端中的 SIM卡被更换,可以理解为一个新 的终端 (10 ) ) 的建立联接的过程, 具体的, 包含终端信息在 AOG(20)上的 注册和应用信息在 AOG(20)上的注册。在其他的情况下,可能出现终端( 10 ) 本身到 AOG(20)注册后, 增加安装或者删除了某些应用, 需要釆取类似的方
法进行应用信息的更新。参考图 3b,为更新应用的流程示意图,其中 AOG(20) 为终端 ( 10 ) 归属地的 AOG和应用服务器接入地的 AOG 所组成的系统。 一个具体例子中, 其流程包括:
301b, 终端上安装 (或者卸载)支持能与 AOE(lOl)交互实现 AOI功能的应 用客户端;
302b, 应用客户端安装完成后 (或者卸载完成后), 调用 SDK的应用登 记接口进行登记(卸载视为调用 SDK的应用注销接口进行注销);
303b, AOE (l Ol)调用 REG接口, 向终端归属地 A0G发送增加应用请求 (卸载时为删除应用请求);
304b, 终端归属地 A0G将终端对应的应用信息更新入库;
305b, 终端归属地 A0G向 A0E (1 01)返回注册响应(卸载时未注销响应 ); 305b, 终端归属地 A0G根据终端上报的应用的 ID, 构造 INFO上线通知 消息, 发送到应用归属的 A0G网关, 该上线通知消息携带手机号码。 (当卸 载时为下线通知消息)。
307b, 应用服务器接入地的 A0G , 将手机号码转换为伪码。
308b, 应用服务器接入地的 A0G , 将上线通知消息(当卸载时为下线通 知消息)转发给应用服务器, 消息中携带伪码。
309b,应用 良务器返回通知响应。
310b,应用服务器接入地的 A0G将通知响应转发给原通知发起方 A0G网 关。
具体的, 当终端归属 A0G网关与应用归属 A0G网关为同一个网关时, 则 不需要上述流程中的第 306b、 310b步的消息在网关间的前转过程。
若终端归属地 AOG网关与应用归属 AOG网关不是同一个网关, 并且二者 之间没有建立有效联接, 则在前转消息前, 由终端归属地 A0G网关主动向应 用归属地 A0G网关完成 REG注册登录过程, 然后再进行消息前转。
为了简化 AOG网关内部对于 REG消息的处理流程,在应用安装流程中, AOG 02可以不区分何种类型的注册消息(或者注销消息), 收到报文后仍可 按首次注册流程,确认 IMSI摘要在本 AOG是否存在,如果不存在到用户管 理服务器 03上查询手机号码,并根据手机号码是否属于本 AOG服务的范围, 确认给 AOE(lOl)返回消息的内容。 只不过在单纯的应用安装流程中, IMSI 必定存在, 号码必定属于本 AOG, 不会走到另外分支。 如图 4a所示为一个支持应用客户端永久在线的系统实施方式的架构示 意图, 系统中包括:
至少两个应用客户端, 该应用客户端位于终端( 10 ) 中, 与所述永久在 线引擎 A0E (101)通信连接;;
永久在线引擎 A0E (101) , 位于终端(10 )中, 与至少两个应用客户端通 信连接, 用于和永久在线服务网关 A0G (20)之间建立一个长链接;
永久在线服务网关 A0G (20) ,位于网络侧,用于与永久在线引擎 A0E (101) 之间建立所述长链接;
一个或者多个应用服务器( 04 , 05 ), 位于网络侧, 与永久在线服务网 关 AOG (20)通信连接;
其中, 该至少两个应用客户端通过该长链接与该一个或者多个应用服务 器 04通信, 以分别实现该一个或者多个服务器( 04 , 05 )提供的应用业务;
在该系统中, 该长链接的维护由服务侧的 A0G (20)负责, 也就是说, 在终端 ( 10 ) 与 AOG (20)之间, 由 A0G (20)发起心跳消息, 以便于维护该长链接。 其中应用客户端用于面向用户提供应用业务, 应用服务器 04用于提供各种 应用业务,例如下述应用的之一或者任一组合: PUSH Ma i l, 天气预报, VOIP, 广告, 定位服务, 企业办公, 生活服务, 等等。
如图 4a所示, 釆用这种维护长链接的方式, 相对于由终端侧发起心跳 的方式, 一方面终端(含其内的各个应用客户端)不需要向一个或者多个应 用服务器发送大量心跳消息,减少终端侧的信令压力, 另一方面终端内的 A0E (101)也不需要对这些心跳进行过滤 /放弃等特别的处理, 在减少了终端 向外发送的信令消耗的同时, 进一步的减少了终端 (10 ) 内部的信令消耗; 另外, AOG (20)发起心跳时可以根据网络情况调整心跳间隔, 自动控制心跳 参数, 使心跳最符合于网络的情况, 从而避免终端侧主动探测网络参数的过 程, 进一步的减少了通信资源浪费。 参考图 4b, 在较优的实施方式中, AOE (l Ol)和 AOG (20)可以各自分别根 据自己的判断主动地断开该长链接, 从而进一步得以节省网络、 终端、 服务 器等的通信资源, 当然也节省了各设备尤其是终端(10 )的电量消耗。 当有 需要时, A0G (20)可主动再次唤醒与终端侧的连接。 参考图 5a为从 AOE (l Ol)的角度, 关于长链接的心跳维护的实施方式的 示意图。 参考图 5a , 在建立了长链接后, A0E (101)对长链接进行维护的较优 的方法的示意图, 包括:
可选的, AOE (101) (例如其中的链接管理模块 ( 1011 )) 收到 A0G (20) 主动发送的断开请求(例如 BYE), 则断开该长链接。
可选的, AOE(lOl) (例如心跳时间模块( 1012)) 收到心跳消息后, 刷 新定时器, 如果该定时器超过一定的时间阈值的时候还未收到其他心跳消 息, 则向 A0G (20)发送断开请求(例如 BYE), 用以关闭该长链接。 例如, 设 置该时间阈值为 5分钟, 10分钟, 或者 30分钟等等。
可选的, AOE(lOl) (例如其中的应用管理模块(1012))检测到其管理 的所有应用客户端在一定的时间阈值内未运行时, 主动发起断开请求(例如 BYE请求), 则断开该长链接。 例如, 设置该时间阈值为 5分钟, 10分钟, 或者 30分钟等等。
可选的, AOE(lOl) (例如其中的电池监控模块(1014))监视终端(10) 的电池电量, 当电量不足于一定的阈值时 (例如电量仅剩 10%, 或者 5%), 如果长链接存在, 则主动发送断开请求例如 BYE), 可选的, 可以在断开请求 中增加标签, 表明是因为电量低而断开该长链接。
通过前述可能的实施方式, 长链接断开以后, A0E (101)进入休眠状态,
(可以等待 A0G (20)通过短信唤醒), 能够节省终端(10)的电量。 其中, 各 种由 A0E (101)主动发起的断开长链接的方式,进一步的减少了不必要的信令 浪费, 例如断开后网络侧的 A0G (20)不需要再发送心跳消息, 另外也进一步 的节省了终端 (10)上的电池电量。
另外需要说明的是, 当 AOE(lOl)与 AOG(20)之间的长链接存在时, 需要 禁止终端( 10)的操作系统进入休眠状态, 以保证长链接的正常连接, 当与 A0G之间的长链接断开时, 可以恢复操作系统的休眠机制。
参考图 5b, 从 AOG (20)的角度说明如何维护该长链接。 需要说明的是, 图 5b描述的 AOG(20)在实际的应用过程中,可能是单一的一个服务器,可能 根据需要分为终端 (10) (具体的其中的 AOE(lOl) ) 归属的 AOG(20)和一个 或者多个应用服务器归属的 A0G (20)。 其中, 可选的, 对于后者(两个 A0G 的情况),终端( 10 )归属的 A0G (20)和一个或者多个应用服务器归属的 A0G (20) 之间进行通信连接,终端( 10)归属的 A0G (20)负责与终端( 10)中的 AOE(lOl) 交互, 一个或者多个应用服务器归属的 A0G (20)负责与一个或者多个应用服 务器交互。 更为具体的, 从 A0G (20)的内部结构来讲, 图 5b所示的 501到 504可以由终端管理模块(1021)执行, 该终端管理模块(1021)可以位于终端 ( 10) 归属的 AOG(20)上; 步骤 500, 505-508 可以由应用管理模块(1022) 执行, 该应用管理模块(1022)可以位于应用服务器归属的 AOG(20)上。
具体的, 图 5b所示的实施方式中, 包括如下步骤:
500-501, AOE(lOl)与 AOG(20)成功的建立长链接。 其中包括 AOE(lOl) 与终端归属地 AOG完成 REG注册流程(501 ), 包含终端的信息, 以及终端上 应用客户端的信息。 相应的, 一个或者多个应用服务器也需要已经成功的注 册到 AOG(20) (步骤 500 ), 这样, AOE(lOl) (即终端( 10 ))上下线通知后 续能够通知到一个或者多个应用服务器。
502, AOE(lOl)与 AOG(20)成功的建立长链接后, A0G (20)主动向终端发 起 ACK心跳消息, 以便于维护该长链接。 较优的实施方式中, 可以根据网络 的状况配置发送心跳消息的时间间隔, 即心跳间隔, 以及配置超时时间控制 等;
503, AOE(lOl)回复 ACKRSP响应, 表示 AOE (101)处于的活动状态。
504, A0G (20)根据下面几种情况对长链接进行维护, 包括但不限于: 5041, 当 AOG(20)接收到 AOE (101)主动发送的断开请求时, 断开该长 链接, 不再发送心跳消息; 具体的, 可以参考图 5a所示的流程。
5042, 当 AOG(20)判断超过一定时间阈值没有收到从该终端 ( 10 )
(AOE(lOl) )发送的数据流, 主动发起断开请求(例如 BYE), 不再发送心跳 消息。 较优的实施方式中, 该时间阈值可配置, 例如, 默认 5分钟, 10分钟 或者 30分钟。
5043, 当 AOG(20)判断发送心跳消息 ACT后, 没有得到 AOE(lOl)的响 应的情况超过一定的次数阈值时, 主动发起断开请求(例如 BYE ), 不再发送 心跳消息。 较优的实施方式中, 该次数阈值可配置, 例如, 默认为 3次, 4 次或者 5次等等。
5054, 图中未示出, 502后, 如果既未收到 A0E (101)发送的断开请求也 未主动向 A0E (101)发送断开请求,则根据心跳时间间隔,规律的向 AOE(lOl) 发送心跳消息, 以便于保持该长链接。
较优的实施方式中, 在前述针对长链接的维护的基础上, AOG(20) (例 如应用管理模块(2012))还可以进一步的对 A0E (101)的在线状态, 以及该 AOE(lOl)上的应用客户端进行管理。 例如, 可选的, 505, 如果 AOG(20)根据 步骤 5041, 5042, 或者 5043等情况断开该长链接, 则确认 AOE (101)已经离 线, 更新本地存储的 A0E (101)的是否在线状态为: 离线。
可选的, 506, AOG(20)查询 AOE(lOl)上注册的永久在线的应用客户端信 息, 如果和一个或者多个应用服务器之间需要使用伪码进行交互,则 AOG(20)
(例如应用管理模块 ( 2012 ) )将 AOG (20)上存储的该 A0E (101)的手机号码 转换为伪码, 该伪码用于在 AOG (20)和应用服务器之间作为用户身份信息进 行传递。这里,伪码是一个用户在系统内部针对某一个应用的唯一身份标识。
具体的, 为了保护用户隐私, 有些应用不能把手机号码透露给应用服务 器(SP ), 这时需要用其它的标识来代替手机号码。 一般做法为根据用手机 号码和其它随机数这些信息做一个摘要, 计算出的摘要可称之为伪码。 手机 号码与伪码是一一对应的,映射关系可以保留在服务器侧。但算法是单向的, 也就是说相关的随机参数不会发送给应用服务器( SP ),因而应用服务器( SP ) 通过伪码不能反推出手机号码。 一个或者多个应用服务器(SP )发送下行消 息时可以通过伪码来标识用户,在服务器侧例如可由伪码查询出对应的手机 号码, 则消息可路由到正确的用户。
更具体的, 伪码是应用级别的, 可指定某些应用启用伪码功能, 某些应 用关闭伪码功能。 若应用管理模块(2012 )在应用的控制属性中指定了需要 传递伪码, 则需要为与此应用有交互的手机号码生成伪码, 以及, 维护用户 手机号码与伪码的对应关系。 一个例子中, 生成的伪码的方法为: 伪码 = HASH (MSISDN, Time, APPID、 Random)其中: HASH为哈希算法, 例如釆用 MD5 算法; MSISDN为用户手机号; Time: 时间戳, 例如釆用 YYYYMMDDHH24MISS 格式; APPID为应用标识; Random为随机数。 对于指定的手机号码与某个应 用, 伪码在系统中只生成一次, 终生有效。 具体的, 当需要由手机号码转换 成伪码时, 系统首先根据手机号码及应用 ID做联合查询本地数据库, 查不 到伪码, 则证明是首次使用该应用, 则用上述算法生成伪码。 当需要由伪码 到手机号码的转换时, A0G (20)查询本地数据库, 查询失败, 则证明应用指
定的伪码错误。 查询成功时, 将应用消息中的 APPID 与本地伪码数据库的 APPID进行匹配, 匹配成功, 则认为伪码校险成功。 可选的, 507 AOG(20)构造下线通知消息发给一个或者多个应用服务器, 该下线通知消息中包含伪码。
相应的, 508, —个或者多个应用服务器收到下线通知消息后可以返回 通知响应。
具体的, 如果 A0G (20)是一个服务器, 则, 该 A0G (20)自己执行上述步 骤 506, 507; 如果 AOG(20)是 AOE(lOl)归属的 AOG(20)和一个或者多个应用 服务器归属的 AOG(20)组成的系统, 则 AOE(lOl)归属的 AOG(20)发送包含手 机号码的下线通知消息给一个或者多个应用服务器归属的 AOG(20), 由一个 或者多个应用服务器归属的 A0G (20)将该手机号码转换为伪码, 将包含伪码 的下线通知消息发送给一个或者多个应用服务器。 基于上述各种可能的实施方式, 在长链接断开以后, AOE(lOl)可以等待
AOG(20)通过短信唤醒, 重新建立起该长链接。 具体的可以由如图 6 所示的 系统实现, 例如是 AOG(20)中的 "短信推送模块(2015)", AOE(lOl)中的 "短 信处理模块(1013)", "应用唤醒模块(1015)" 等来实现。 具体的, 参考图 7 a为长链接断开的情况下可能的唤醒该长链接的实施 方式的流程示意图。 包括:
7 0 1 , A0G (20)中的短信推送模块 (2015)在特殊情况下向 AOE(lOl)
发送 "唤醒短信", 用于唤醒尚未建立或者已经断开的长链接。
具体的,唤醒短信不是普通的文本短信,是一种特殊格式的二进制短信, 在 AOG (20)和 AOE (l Ol)之间约定, 二者可理解, 其它网络设备不可见。 这种 用于唤醒长链接的二进制短信,可能包括需要唤醒的应用 ID, 下行消息发送 方标识, 目的用户标识, 消息的摘要等内容。
7 0 2 , A0E (101)中的短信处理模块(1013 )监听、拦截到 "唤醒短信" 后, 解析该 "唤醒短信"触发 A0E (101)中的链接管理模块( 1011 )建立长链 接; 具体的, 监听是监测到有唤醒短信存在, 拦截是指唤醒短信不再向下传 递, 其它应用不会再收到唤醒短信内容。
7 0 3 - 7 0 4 , A0E (101)中的链接管理模块( 1011 )根据短信处理模 块(1013 ) 的提示向 AOG (20)发起注册请求, 以及接收 A0G (20)返回的注册 响应, 相应的建立起该长链接, AOG (20)将应用服务器发送的下行消息通过 前述重新建立的长链接发送给 A0E (101) 。 在另一个较优的实施方式中,参考图 8,一个唤醒应用客户端的方法实施 方式的流程示意图, 在长链接已经建立或者已经被唤醒, 但是终端(10)中的 应用客户端已经退出, 但是接收到了 A0G (20)转发的发送给该应用客户端的 数据时(801 ), A0E (101)中应用唤醒模块(1015 )还可以拉起该已经退出的 应用客户端 ( 802 )。
具体的, 应用客户端与 AOE (l Ol)在终端( 10 )上是两个独立的进程, 应 用启动时需要向 AOE (l Ol)注册, 告知 A0E (101)其程序安装位置、 运行参数 等信息, A0E (101)得以监控终端上应用客户端的运行状态。 当应用客户端退
出 (可能是根据用户的指令主动退出), 又有下行消息需要通知到该应用客 户端时, A0E (101)根据前面的注册信息, 重新运行客户端的程序, 从而拉起 该应用客户端, 然后通过内部的 API接口或消息接口将收到的下行消息通知 到该应用客户端。 在其他的实施方式中, 可以提供不同的可以与上述各实施方式进行任一 组合的进一步的实施方式, 参考图 6 , 可选的, AOE (101)、 A0G (20) , 用户 管理服务器(30 ) 包含多种可能的模块, 各模块之间除非逻辑上有排斥, 将 可以进行任意的组合, 从而形成更优的实施方式。 下文将对各装置, 以及装 置中的各模块一一进行介绍。 图 9为系统中终端(10)的一个实施方式的结构示意图。 终端(10)—般包 括至少一个处理器(102) (例如 CPU ),至少一个网络接口(105)或者其他通信 接口, 存储器(106) , 和至少一个通信总线(103) , 用于实现这些装置之间的 连接通信。 处理器(102)用于执行存储器中存储的可执行模块, 例如计算机 程序; 终端(10)可选的包含用户接口(104) , 包括但不限于显示器, 键盘和 点击设备(例如, 鼠标, 轨迹球( t rackba l l ) , 触感板或者触感显示屏。 存储器(106)可能包含高速 Ram存储器, 也可能还包括非不稳定的存储器 ( non-volat i le memory ), 例如至少一个磁盘存储器。 通过至少一个网络接 口 (可以是有线或者无线)实现该终端(10)与至少一个其他计算机之间的通 信连接, 可以使用互联网, 广域网, 本地网, 城域网等。
存储器(106)可选的可以包含至少一个位于远离前述 CPU801的地方的存
储装置(例如外接存储装置)。 在一些实施方式中, 存储器(106)存储了如下 的元素, 可执行模块或者数据结构, 或者他们的子集, 或者他们的扩展集: 操作系统(106) , 用于, 包含各种程序, 用于实现各种基础业务以及处 理基于硬件的任务;
至少两个应用客户端(108) , 用于永久在线引擎 AOE (l Ol)通信连接, 用 于分别向用户提供应用业务;
永久在线引擎 A0E (101) ,与位于终端( 10 )中的至少两个应用客户端(108) 通信连接, 与位于网络侧的永久在线服务网关 A0G (20) 通信连接, 与位于 网络侧的一个或者多个一个或者多个应用服务器 04通过所述永久在线服务 网关 AOG (20)通信连接;
该永久在线引擎 A0E (101)中包括但不限于下述模块之一或者其组合: 链接管理模块( 1011 ), 应用管理模块( 1012 ), 短信处理模块( 1013 ), 数据转发模块(1014 ), 应用唤醒模块(1015 ), IP代理模块(1016 ), 心跳 时间模块(1017 ), 或者, 电池监控模块(1018 ), API接口等等。
一个具体实施方式中 ,链接管理模块( 1011 ),可以用于在所述 A0E( 101 ) 和永久在线服务网关 AOG (20)之间建立一个长链接, 其中, 所述至少两个应 用客户端通过所述长链接分别与一个或者多个应用服务器( 04 , 05 )通信; 从用户管理服务器( 30 )获取路由信息, 并根据所述路由信息请求建立所述 长链接。 具体的, 获取路由信息的过程包括: 向用户管理服务器(30 )发送 包含终端身份信息的路由信息请求, 接收用户管理服务器( 30 )根据存储的 终端身份信息和用户身份信息的对应关系, 以及用户身份信息归属的 A0G的 地址返回的所述 A0G的地址。 一个例子中, 终端身份信息为 IMSI信息, 用
户身份信息为手机号码; 另一个例子中, 终端身份信息为终端设备标识, 用 户身份信息为用户名称或者用户标识。 具体的, 上述过程可以参考图
2b, 3a, 3b所示的实施方式。
可选的, 永久在线引擎 A0E (101)提供 API接口, 应用客户端可以通过 API接口与其进行通信, 这样, 每个应用客户端不直接与应用提供商建立长 链接, 而是通过永久在线引擎 A0E (101)建立长链接。
可选的, A0E (101)中包括应用管理模块(2013 ) ,对在该永久在线引擎
AOE (l Ol)上注册的应用客户端的管理的功能, 包括但不限于程序的登记、 取 消登记以及程序运行、 退出运行状态的上报
可选的,永久在线引擎 A0E (101) ,例如进一步包含数据转发模块( 1014 ), 可以用于从不同应用客户端接收数据, 然后通过前述的 "长链接" 发送出 去; 同时还可以从 "长链接" 获取数据, 并根据数据中的应用 ID来判断该 消息报文属于哪个应用客户端的消息, 然后将消息转发给该应用客户端。 具 体而言, 将应用客户端发送的上行消息的, 转发给永久在线服务网关 102 , 以便于再转发给一个或者多个应用服务器; 以及接收永久在线服务网关
A0G (20)转发的由一个或者多个应用服务器发送的下行消息, 转发到应用客 户端。
另一个较优的实施方式中, 当应用客户端有大量数据需要与一个或者多 个应用服务器交互时, AOE (l Ol) , 如 IP代理模块(1016 ), 可以提供单独的 连接与一个或者多个应用服务器交互。 较优的, 当传递的数据达到阈值时, 需要建立 IP代理通道, 由该 IP代理通道专门传输该数据。 较优的, 在数据 传递结束时可以主动关闭 IP代理通道。 较优的, 对于应用客户端或者一个
或者多个应用服务器不主动关闭 IP代理通道的, A0E (101)可以设定超时机 制, 在无数据交互达到阈值(例如 60s )后, A0E (101)主动断开连接。
图 10为系统中永久在线网关 A0G (20)的一个实施方式的结构示意图。需 要说明的是如前文所述, 可以根据需要设置为两个分离的不在同一个物理位 置的设备, 即终端(10)归属的 A0G (20)和应用服务器归属的 A0G (20) , 由他 们相互通信一起完成相关的功能, 其结构类似, 但是应用模块中可能根据其 所在的位置包含不同的模块。
AOG (20)位于网络侧, 与位于终端 (10 ) 中永久在线引擎 A0E (101)通信 连接, 该永久在线引擎 A0E (101)与位于终端( 10 )中的至少两个应用客户端 通信连接; 与位于网络侧的一个或者多个一个或者多个应用服务器( 04 , 05 ) 通信连接。
该 A0G (20)—般包括至少一个处理器( 202 ) (例如 CPU ), 至少一个网络 接口或者其他通信接口( 205 ), 存储器( 206 ), 和至少一个通信总线( 203 ), 用于实现这些装置之间的连接通信。 处理器( 202 )用于执行存储器中存储 的可执行模块, 例如计算机程序。 该 A0G (20)可选的还包含用户接口( 904 ), 包括但不限于显示器,键盘和点击设备(例如, 鼠标,轨迹球(t rackba l l ) , 触感板或者触感显示屏。 存储器( 906 )可能包含高速 Ram存储器, 也可能 还包括非不稳定的存储器( non-volat i le memory ), 例如至少一个磁盘存储 器。 通过至少一个网络接口 (可以是有线或者无线) 实现该 AOG (20)与至少 一个其他计算机之间的通信连接, 可以使用互联网, 广域网, 本地网, 城域 网等。
存储器( 206 )可选的可以包含至少一个位于远离前述 CPU的地方的存
储装置(例如外接存储装置)。 在一些实施方式中, 存储器( 206 )存储了如 下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集: 操作系统( 207 ), 用于, 包含各种程序, 用于实现各种基础业务以及处 理基于硬件的任务; 以及, 下述模块之一或者任一组合:
终端管理模块(2011 ), 应用管理模块(2012), 路由管理模块(2013), 緩存管理模块(2014), 短信推送模块(2015), IP推送模块(2016), 协议 转换模块(2017), 或者, 升级管理模块(2018)。
具体的实施方式中, 终端管理模块(2011 ), 用于在永久在线引擎 A0E (101 )和所述 AOG(20)之间建立一个长链接, 其中, 至少两个应用客户端通 过所述长链接分别与所述一个或者多个应用服务器( 04, 05 )通信; 在建立 所述长链接的过程中, 从用户管理服务器(103)获取鉴权信息。 具体的, 终 端管理模块(2011 )用于: 向所述用户管理服务器(30)发送携带终端身份 信息的鉴权信息请求, 接收所述用户管理服务器( 30)根据终端身份信息和 所述用户身份信息的对应关系, 返回的用户身份信息。 一种例子中, 上述终 端身份信息为 IMSI信息, 用户身份信息为手机号码; 另一种例子中该终端 身份信息为终端设备标识, 该用户身份信息为用户名称或者用户标识。
同时参考图 6,较佳的实施方式中,可选的,永久在线服务网关 A0G (20) 中的终端管理模块(2011 ), 还可以用于实现终端(10)的管理, 例如, 管理 注册到系统的中的 AOE(lOl)的信息, 例如 IMSI摘要、 AOE(lOl)的用户代理 ( UserAgent, UA )信息等,还包括 A0E (101)上注册的应用信息,如该 A0E (101) 上目前安装了的应用的标识或其版本。 可选的, 终端管理模块(2011 )还可 以对 A0E (101)身份进行鉴别, 对注册信息进行登记, 并储存在系统中。 具体
的过程可以参考 2b, 3a, 3b等所示的实施方式。较优的,终端管理模块( 2011 ) 还可以管理 AOE (l Ol)与 A0G之间的长链接,例如发送心跳消息, 维护长链接 状态信息, 例如已经建立状态, 断开状态等。
可选的, 永久在线服务网关 A0G (20) 中的应用管理模块(2012 ), 可以 对应用进行管理, 例如管理接入到本 A0G (20)的所有的应用信息, 包括应用 归属的应用服务器(或者应用提供商 SP )及其信息, 对接入的一个或者多个 应用服务器提供接入鉴权、 使用权限控制等功能。 较优的实施方式中, 针对 具体的应用进行伪码的管理, 等等。 具体过程可参考图 5b所示的各实施方 式。
可选的, 永久在线服务网关 A0G (20) 中的路由管理模块(2013 ), 可以 实现路由管理: 对于上下行消息, A0G能够正确的路由到对应的网元。
可选的, 永久在线服务网关 A0G (20) 中的緩存管理模块(2014 ), 可以 实现緩存管理,具体的,根据应用需要,对应用下发给 A0E (101)的数据消息, 在下发不成功的时候,对消息进行緩存。具体的,緩存后的消息应进行重试, 并在重试成功后向应用返回成功的状态报告。
可选的, AOG (20)中的短信推送模块 ( 2015 ) , 可以在特殊情况下向 AOE (l Ol)发送 "唤醒短信", 用于唤醒尚未建立或者已经断开的长链接; 将 应用服务器发送的下行消息通过前述重新建立的长链接发送给 A0E (101)。具 体的过程可以参考图 7所示的实施方式。
可选的, AOG (20) 中的 IP推送模块(2016 ), 可以实现 IP数据推送的 功能(IP PUSH ), 具体的, 在长链接已经断开的情况下, 相比于前述短信唤 醒长链接的技术方案, 还可以釆取另外一个方案: 即对于应用服务器需要发
送的下行的消息, 直接建立一个 IP数据通道, 通过该 IP数据通道下发到永 久在线引擎 AOE (l Ol) , 通过该 A0E (101)发送给应用客户端。 较优的, 当应 用服务器需要发送的下行的消息数据量较大(例如大于设定的阈值)时, 直 接建立 IP数据通道进行下行数据的推送; 当应用服务器需要发送的下行的 消息数据量较小时 (例如小于等于设定的阈值), 可以釆用短信唤醒的方式 唤醒该长链接后, 通过该长链接推送该下行的数据。
可选的, 当永久在线服务网关 A0G (20)与永久在线引擎 A0E (101)之间釆 用内部协议, A0G (20)与一个或者多个应用服务器之间釆用公开的协议时, 永久在线服务网关 A0G (20) 中的协议转换模块( 2017 )可以将消息在这两种 协议之间进行转换。
可选的, A0G (20)中的升级管理模块(2018 ), 可以管理所有永久在线 引擎 A0E (101)的版本, 可以触发永久在线引擎的自动升级更新。 图 11 为系统中用户管理服务器(30 ) 的一个实施方式的结构示意图。 如前文所述, 用户管理服务器(30 ), 位于网络侧, 与所述永久在线引擎 A0E ( 101 )和所述永久在线服务网关 A0G (20)通信连接, 至少两个应用客户端通 过所述长链接分别与所述一个或者多个应用服务器( 04 , 05 )通信。 该用户 管理服务器( 30 )—般包括至少一个处理器( 302 ) (例如 CPU ), 至少一个网 络接口或者其他通信接口( 305 ),存储器( 306 ),和至少一个通信总线( 303 ), 用于实现这些装置之间的连接通信。 处理器( 302 )用于执行存储器中存储 的可执行模块, 例如计算机程序。 用户管理服务器( 30 )可选的包含用户接 口 ( 304 ), 包括但不限于显示器, 键盘和点击设备(例如, 鼠标, 轨迹球
( trackball ), 触感板或者触感显示屏。存储器( 306 )可能包含高速 Ram存 储器, 也可能还包括非不稳定的存储器(non-volatile memory), 例如至少 一个磁盘存储器。 通过至少一个网络接口 (可以是有线或者无线) 实现该用 户管理服务器(30)与至少一个其他计算机之间的通信连接, 可以使用互联 网, 广域网, 本地网, 城域网等。
存储器( 306 )可选的可以包含至少一个位于远离前述 CPU的地方的存 储装置(例如外接存储装置)。 在一些实施方式中, 存储器( 306 )存储了如 下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集: 操作系统( 307 ), 用于, 包含各种程序, 用于实现各种基础业务以及处 理基于硬件的任务; 以及, 下述模块之一或者任一组合:
路由信息模块(3012) , 鉴权信息模块(3013)。
具体的, 路由信息模块( 3012 ) , 用于向所述 A0E ( 101 )提供路由信 息, 以便于根据所述路由信息请求建立所述长链接; 鉴权信息模块(3013) , 用于在所述 A0E( 101 )和所述 A0G (20)建立长链接的过程中,向所述 AOG(20) 提供鉴权信息。
较优的, 可以进一步包括注册管理模块( 3011 ), 用于获取并存储终端 身份信息和用户身份信息的对应关系, 且存储该用户身份信息所归属的 AOG(20)的地址; 该路由信息模块( 3012 ) , 具体用于: 根据该 AOE (lOl ) 发送的路由信息请求中的终端身份信息, 以及注册管理模块获取并存储的该 终端身份信息和该用户身份信息的对应关系, 向该 A0E ( 101 )提供该用户身 份信息归属的 A0G的地址;该鉴权信息模块(3013) ,具体用于:当该 AOG(20) 发送鉴权信息请求时, 根据该鉴权信息请求中的终端身份信息, 以及注册管
理模块获取并存储的该终端身份信息和该用户身份信息的对应关系, 向该
A0G (20)提供该用户身份信息。一种例子中,上述终端身份信息为 IMSI信息, 用户身份信息为手机号码; 另一种例子中该终端身份信息为终端设备标识, 该用户身份信息为用户名称或者用户标识。 需要说明的是, 上述各实施方式中, 尤其是提到了不同的模块, 如果不 是说明了无法配合实施, 都可以进行任意的组合, 以实现更为有益的效果, 不受形式上的限制。 以上所描述的装置实施例仅仅是示意性的, 其中所述 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元, 即可以位于一个地方, 或者也可 以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或者全部模 块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动 的情况下, 即可以理解并实施。
通过以上的实施方式的描述, 本领域的技术人员可以清楚地了解到各实 施方式可借助软件加必需的通用硬件平台的方式来实现, 当然也可以通过硬 件。 基于这样的理解, 上述技术方案本质上或者说对现有技术做出贡献的部 分可以以软件产品的形式体现出来, 该计算机软件产品可以存储在计算机可 读存储介质中, 如 R0M/RAM、 磁碟、 光盘等, 包括若干指令用以使得一台计 算机设备(可以是个人计算机, 服务器, 或者网络设备等)执行各个实施例 或者实施例的某些部分所述的方法。
以上所述的实施方式, 并不构成对该技术方案保护范围的限定。 任何在 上述实施方式的原则之内所作的修改、 等同替换和改进等, 均应包含在该技
术方案的保护范围之内。
Claims
权 利 要 求
1. 一种支持应用客户端永久在线的方法, 在位于终端 (10) 中的永久 在线引擎 A0E ( 101 )和位于网络侧的永久在线服务网关 AOG(20)之间建立一 个长链接, 其中, 至少两个应用客户端通过所述长链接分别与一个或者多个 应用服务器( 04, 05 )通信; 该方法包括:
位于网络侧的用户管理服务器(30) 向所述 A0E ( 101 )提供路由信息, 其中, 所述 A0E ( 101 )根据所述路由信息请求建立所述长链接; 所述用户管 理服务器(30)进一步用于在建立所述长链接的过程中, 向所述 AOG(20)提 供鉴权信息。
2. 根据权利要求 1所述的方法, 进一步包括
所述用户管理服务器( 30)获取并存储终端身份信息和用户身份信息的 对应关系, 存储所述用户身份信息归属的 AOG(20)的地址;
当所述 A0E ( 101 )发送携带所述终端身份信息的路由信息请求时, 所述 用户管理服务器( 30)根据存储的所述终端身份信息和用户身份信息的对应 关系, 以及所述用户身份信息归属的 A0G的地址, 向所述 AOE ( lOl )提供所 述用户身份信息归属的 A0G的地址;
当所述 A0G (20)发送携带所述终端身份信息的鉴权信息请求时, 所述用 户管理服务器(30)根据所述终端身份信息和所述用户身份信息的对应关系, 向所述 A0G (20)提供所述用户身份信息。
3.根据权利要求 1-2任一所述的方法,所述终端身份信息为 IMSI信息, 所述用户身份信息为手机号码;
所述用户管理服务器( 30)向所述 A0E ( 101 )提供路由信息, 以及, 向
所述 AOG (20)提供鉴权信息的过程具体包括:
所述 A0E ( 101 )在所述永久在线引擎 A0E ( 101 )启动时或者检测到 SIM 卡中的 ISMI信息与上次注册的信息不同时, 自动发送上报消息到所述用户 管理服务器( 30 ), 所述上报消息携带所述 IMSI信息和所述手机号码;
所述用户管理服务器( 30 )根据收到的所述上报消息获取所述 IMSI信 息和所述手机号码, 存储所述手机号码和所述 IMSI信息的对应关系;
所述 AOE ( l Ol )向所述用户管理服务器(30 )发送路由信息请求, 所述 路由信息请求中携带所述 IMS I信息;
所述用户管理服务器(30 )根据接收到的路由信息请求中的 IMSI信息 查找到对应的手机号码, 再根据预先存储的手机号码归属的 A0G地址, 返回 该手机号码归属的 A0G (20)的地址给所述 A0E ( 101 );
所述永久在线引擎 A0E ( 101 )向所述手机号码归属的 A0G (20)发起注册 请求, 该注册请求携带 IMSI信息;
所述 AOG (20)接收到所述 A0E( 101 )的注册请求后,判断其中包含的 IMSI 信息在该 AOG (20)中是否已经注册, 如果没有注册则向所述用户管理服务器 ( 30 )发送鉴权信息请求, 所述鉴权信息请求携带所述注册请求中的 IMSI 信息;
用户管理服务器( 30 )接收到所述鉴权信息请求后根据存储的所述手机 号码和所述 IMSI信息的对应关系,返回所述 IMSI信息对应的所述手机号码; 当所述 A0G (20)判断所述手机号码属于所述 AOG (20)的服务范围, 所述
A0G (20)存储所述手机号码, 并向 A0E ( 101 )返回注册响应。
4 . 根据权利要求 3所述的方法,
所述上报消息为短信息, 所述上报消息携带 IMSI信息和手机号码具体 包括: 所述短信息的内容中包括所述 IMSI信息, 所述短消息的发送方为所 述手机号码。
5. 根据权利要求 1-2任一所述的方法, 所述终端身份信息为终端设备 标识, 所述用户身份信息为用户名称或者用户标识。
6. —种支持应用客户端永久在线的系统, 该系统包括:
永久在线引擎 A0E ( 101 ), 位于终端 (10) 中, 与至少两个应用客户端 通信连接;
永久在线服务网关 A0G (20) ,位于网络侧, 与位于网络侧的一个或者多 个应用服务器( 04, 05 )通信连接;
所述永久在线引擎 A0E ( 101 )和所述永久在线服务网关 A0G (20) , 用于 建立一个长链接, 其中, 所述至少两个应用客户端通过所述长链接分别与所 述一个或者多个应用服务器( 04, 05 )通信;
用户管理服务器(30), 位于网络侧, 与所述永久在线引擎 A0E ( 101 ) 和所述永久在线服务网关 A0G (20)通信连接, 用于向所述 A0E ( 101 )提供路 由信息, 以便于所述 A0E ( 101 )根据所述路由信息请求建立所述长链接, 在 所述 A0E( 101 )和所述 AOG (20)建立长链接的过程中,进一步向所述 A0G (20) 提供鉴权信息。
7. 根据权利要求 6所述的系统,
所述用户管理服务器(30), 具体用于: 所述获取并存储终端身份信息 和用户身份信息的对应关系, 且存储所述用户身份信息所归属的 AOG(20)的
地址; 当所述 AOE ( 101 )发送携带所述终端身份信息的路由信息请求时, 根 据所述终端身份信息和所述用户身份信息的对应关系, 以及所述用户身份信 息归属的 A0G的地址, 向所述 A0E ( 101 )提供所述用户身份信息归属的 A0G 的地址; 当所述 A0G (20)发送携带所述终端身份信息的鉴权信息请求时, 根 据所述终端身份信息和所述用户身份信息的对应关系, 向所述 A0G (20)提供 所述用户身份信息。
8根据权利要求 5 - 6任一所述的系统, 所述终端身份信息为 IMSI信 息, 所述用户身份信息为手机号码;
所述 A0E ( 101 )具体用于: 在所述永久在线引擎 A0E ( 101 ) 启动时或 者检测到 SIM卡中的 ISMI信息与上次注册的信息不同时, 自动发送上报消 息到用户管理服务器( 30 ) , 所述上报消息携带所述 IMS I信息和所述手机号 码; 向所述用户管理服务器( 30 )发送路由信息请求, 该路由信息请求中携 带所述 IMSI信息; 向接收到的所述手机号码归属的 A0G (20)发起注册请求, 该注册请求携带 IMSI信息;
所述用户管理服务器(30 )具体用于: 根据收到的所述上报消息获取所 述 IMSI信息和所述手机号码,存储所述手机号码和所述 IMSI信息的对应关 系; 根据接收到的路由信息请求中的 IMSI信息查找到对应的手机号码, 再 根据预先存储的手机号码归属的 A0G地址, 返回该手机号码归属的 A0G (20) 的地址给所述 A0E ( 101 ); 接收到所述鉴权信息请求后根据存储的所述手机 号码和所述 IMSI信息的对应关系,返回所述 IMSI信息对应的所述手机号码; 所述 AOG (20)具体用于: 接收到所述 A0E ( 101 )的注册请求后, 判断其 中包含的 IMSI信息在该 A0G (20)中是否已经注册,如果没有注册则向用户管
理服务器( 30 )发送鉴权信息请求, 所述鉴权信息请求携带所述注册请求 中的 IMS I信息, 接收返回的所述 IMS I信息对应的所述手机号码; 当判断所 述手机号码属于所述 A0G (20)的服务范围, 所述 A0G (20)存储所述手机号码, 并向 A0E ( 101 )返回注册响应。
9 . 根据权利要求 8所述的系统,
所述上报消息为短信息, 所述上报消息携带 IMS I信息和手机号码具体 包括: 所述短信息的内容中包括所述 IMSI信息, 所述短消息的发送方为所 述手机号码。
10. 根据权利要求 6-7任一所述的系统, 所述终端身份信息为终端设备 标识, 所述用户身份信息为用户名称或者用户标识。
11. 一种永久在线引擎 A0E ( 101 ), 位于终端 (10 ) 中, 与至少两个应 用客户端通信连接; 包括:
链接管理模块( 1011;),用于在所述 A0E( 101 )和永久在线服务网关 AOG (20) 之间建立一个长链接, 其中, 所述至少两个应用客户端通过所述长链接分别 与一个或者多个应用服务器( 04 , 05 )通信; 从用户管理服务器( 30 )获取 路由信息, 并根据所述路由信息请求建立所述长链接。
1 2 . 根据权利要求 1 1所述的 A0E ( 101 ),
所述链接管理模块(1011 ), 具体用于向所述用户管理服务器(30 )发 送包含终端身份信息的路由信息请求, 接收所述用户管理服务器(30 )根据 存储的所述终端身份信息和用户身份信息的对应关系, 以及所述用户身份信 息归属的 A0G的地址返回的所述 A0G的地址。
1 3 .根据权利要求 1 1或者 12的 A0E( 101 ),所述终端身份信息为 IMSI
信息, 所述用户身份信息为手机号码;
所述链接管理模块, 具体用于在所述永久在线引擎 A0E ( 101 )启动时或 者检测到 SIM卡中的 ISMI信息与上次注册的信息不同时, 自动发送上报消 息到用户管理服务器( 30 ) , 所述上报消息携带所述 IMS I信息和所述手机号 码; 向所述用户管理服务器( 30 )发送路由信息请求, 该路由信息请求中携 带所述 IMSI信息; 向接收到的所述手机号码归属的 A0G (20)发起注册请求, 该注册请求携带 IMSI信息。
14. 根据权利要求 1 1-13任一的 A0E ( 101 ),
所述上报消息为短信息, 所述上报消息携带 IMS I信息和手机号码具体 包括: 所述短信息的内容中包括所述 IMSI信息, 所述短消息的发送方为所 述手机号码。
15. 根据权利要求 11-14任一所述的 A0E ( 101 ), 所述终端身份信息为 终端设备标识, 所述用户身份信息为用户名称或者用户标识。
16. 一种永久在线服务网关 A0G (20) , 位于网络侧, 与位于网络侧的一 个或者多个应用服务器( 04 , 05 )通信连接;
所述 AOG (20) , 包括:
终端管理模块( 2011 ), 用于在永久在线引擎 A0E ( 101 )和所述 A0G (20) 之间建立一个长链接, 其中, 至少两个应用客户端通过所述长链接分别与所 述一个或者多个应用服务器( 04 , 05 )通信; 在建立所述长链接的过程中, 从用户管理服务器(103)获取鉴权信息。
17. 根据权利要求 16的 A0G (20) ,
所述终端管理模块(2011 ), 具体用于: 向所述用户管理服务器( 30 )
发送携带终端身份信息的鉴权信息请求, 接收所述用户管理服务器( 30 )根 据终端身份信息和所述用户身份信息的对应关系返回的所述用户身份信息。
18. 根据权利要求 17的 A0G (20) , 所述终端身份信息为 IMSI信息, 所 述用户身份信息为手机号码;
所述终端管理模块( 2011 ), 具体接收到所述 A0E ( 101 )的注册请求后, 判断其中包含的 IMSI信息在该 A0G (20)中是否已经注册,如果没有注册则向 用户管理服务器( 30 )发送鉴权信息请求, 所述鉴权信息请求携带所述 IMSI 信息, 接收返回的所述 IMSI信息对应的所述手机号码; 当判断所述手机号 码属于所述 A0G (20)的服务范围, 所述 A0G (20)存储所述手机号码, 并向所 述 A0E ( 101 )返回注册响应。
19. 根据权利要求 16或者 17的 A0G (20) , 所述终端身份信息为终端设 备标识, 所述用户身份信息为用户名称或者用户标识。
20. 一种用户管理服务器( 30 ), 位于网络侧, 与所述永久在线引擎 A0E ( 101 )和所述永久在线服务网关 A0G (20)通信连接, 至少两个应用客户端通 过所述长链接分别与所述一个或者多个应用服务器( 04 , 05 )通信, 用户管 理服务器(30 ) 包括:
路由信息模块( 3012 ) , 用于向所述 A0E ( 101 )提供路由信息, 以便 于根据所述路由信息请求建立所述长链接;
鉴权信息模块(3013) , 用于在所述 A0E ( 101 )和所述 AOG (20)建立长 链接的过程中, 向所述 A0G (20)提供鉴权信息。
21. 根据权利要求 20的用户管理服务器 ( 30 ),
所述用户管理服务器(30 )进一步包括注册管理模块(3011 ), 用于获
取并存储终端身份信息和用户身份信息的对应关系,且存储所述用户身份信 息所归属的 A0G (20)的地址;
所述路由信息模块( 3012 ) , 具体用于: 根据所述 A0E ( 101 )发送的 路由信息请求中的终端身份信息, 以及注册管理模块获取并存储的所述终端 身份信息和所述用户身份信息的对应关系, 向所述 A0E ( 101 )提供所述用户 身份信息归属的 A0G的地址;
所述鉴权信息模块(3013) ,具体用于: 当所述 A0G (20)发送鉴权信息请 求时, 根据所述鉴权信息请求中的终端身份信息, 以及注册管理模块获取并 存储的所述终端身份信息和所述用户身份信息的对应关系, 向所述 AOG (20) 提供所述用户身份信息。
22.根据权利要求 21的用户管理服务器( 30 ),所述终端身份信息为 IMSI 信息, 所述用户身份信息为手机号码;
所述注册管理模块( 3011 ), 具体用于根据所述 A0E ( 101 )发送的上报 消息获取所述 IMSI信息和所述手机号码,存储所述手机号码和所述 IMSI信 息的对应关系;
所述路由信息模块(3012 ) , 具体用于: 根据接收到的路由信息请求 中的 IMSI信息查找到对应的手机号码, 再根据预先存储的手机号码归属的 A0G地址, 返回该手机号码归属的 A0G (20)的地址给所述 A0E ( 101 );
所述鉴权信息模块(3013) , 具体用于: 接收到包含所述 IMSI信息的鉴 权信息请求后根据存储的所述手机号码和所述 IMSI信息的对应关系, 返回 所述 IMS I信息对应的所述手机号码。
23. 根据权利要求 22的用户管理服务器 ( 30 ),
所述上报消息为短信息, 所述短信息的内容中包括所述 IMSI信息, 所 述短消息的发送方为所述手机号码;
所述注册管理模块, 具体用于: 根据所述短信息的内容获取所述 IMS I 信息, 根据所述短消息的发送方获取所述手机号码, 存储所述手机号码和所 述 IMSI信息的对应关系。
24.根据权利要求 21 的用户管理服务器(30 ), 所述终端身份信息为终 端设备标识, 所述用户身份信息为用户名称或者用户标识。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12797549.8A EP2763348A4 (en) | 2011-11-15 | 2012-04-11 | METHOD, SYSTEM AND DEVICE FOR SUPPORTING APPLICATION CLIENT ALWAYS ONLINE |
US13/686,342 US20130124618A1 (en) | 2011-11-15 | 2012-11-27 | Method, system and device for supporting application client being always online |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110360998.2A CN102395119B (zh) | 2011-11-15 | 2011-11-15 | 一种支持应用客户端永久在线的方法、系统及装置 |
CN201110360998.2 | 2011-11-15 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/686,342 Continuation US20130124618A1 (en) | 2011-11-15 | 2012-11-27 | Method, system and device for supporting application client being always online |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012167664A1 true WO2012167664A1 (zh) | 2012-12-13 |
Family
ID=45862312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2012/073778 WO2012167664A1 (zh) | 2011-11-15 | 2012-04-11 | 一种支持应用客户端永久在线的方法、系统及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130124618A1 (zh) |
EP (1) | EP2763348A4 (zh) |
CN (1) | CN102395119B (zh) |
WO (1) | WO2012167664A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139303A (zh) * | 2013-02-07 | 2013-06-05 | 网易(杭州)网络有限公司 | 一种用于保持连接的心跳方法、装置及系统 |
WO2023066125A1 (zh) * | 2021-10-22 | 2023-04-27 | 杭州研极微电子有限公司 | 降低通信设备休眠状态下功耗的方法、装置、设备及介质 |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102395119B (zh) * | 2011-11-15 | 2014-11-19 | 华为技术有限公司 | 一种支持应用客户端永久在线的方法、系统及装置 |
CN103517250B (zh) * | 2012-06-15 | 2017-10-17 | 华为终端有限公司 | 用于处理应用代理客户端异常的方法和装置 |
CN103546358B (zh) * | 2012-07-09 | 2016-05-04 | 腾讯科技(深圳)有限公司 | 面向第三方应用的即时通讯方法及系统 |
CN103634928B (zh) * | 2012-08-22 | 2018-11-09 | 南京中兴新软件有限责任公司 | 控制网络与终端信令连接的方法及系统 |
CN103686626B (zh) * | 2012-09-14 | 2017-05-03 | 中国移动通信集团公司 | 一种实现永远在线业务的方法和系统 |
US9160801B1 (en) * | 2012-10-01 | 2015-10-13 | Maritime Telecommunications Network Inc | Local event overlays to global social media network |
WO2014117375A1 (zh) * | 2013-01-31 | 2014-08-07 | 华为技术有限公司 | 保持应用在线的方法、永久在线控制器和设备 |
CN103986740A (zh) * | 2013-02-07 | 2014-08-13 | 中兴通讯股份有限公司 | 一种支持多终端应用的永远在线架构的方法及设备及系统 |
CN103124267B (zh) * | 2013-02-07 | 2016-07-27 | 百度在线网络技术(北京)有限公司 | 通过移动终端进行登录/注册的方法、系统和云端服务器 |
CN104053204B (zh) * | 2013-03-12 | 2018-09-28 | 南京中兴软件有限责任公司 | 一种实现aoi系统多局点路由的方法和设备 |
EP4216599A1 (en) * | 2013-06-11 | 2023-07-26 | Seven Networks, LLC | Offloading application traffic to a shared communication channel for signal optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
CN104427598B (zh) * | 2013-09-09 | 2018-02-23 | 中国移动通信集团公司 | 长时间在线业务免心跳的方法和装置 |
WO2015061989A1 (zh) * | 2013-10-30 | 2015-05-07 | 华为技术有限公司 | 一种数据传输的方法及设备 |
CN103841183A (zh) * | 2014-03-25 | 2014-06-04 | 浪潮电子信息产业股份有限公司 | 一种面向数据中心的SMI-S Provider注册请求方法 |
CN105207791B (zh) * | 2014-05-29 | 2019-08-09 | 中国电信股份有限公司 | 进行信息配置的方法、中心平台、系统和网络摄像机 |
US10140309B2 (en) * | 2014-06-10 | 2018-11-27 | Alfresco Software, Inc. | File tracking on client machines synchronized with a content management system repository |
TWI577154B (zh) * | 2014-10-31 | 2017-04-01 | 宏碁股份有限公司 | 保持遠端連線方法、電子裝置與伺服器 |
CN105704836B (zh) * | 2014-11-27 | 2019-03-01 | 四零四科技股份有限公司 | 自动切换装置身份以提供无线通讯的系统及其方法 |
CN106341301A (zh) * | 2015-07-08 | 2017-01-18 | 中兴通讯股份有限公司 | 消息推送方法及装置 |
CN105163335B (zh) * | 2015-07-31 | 2019-04-26 | 腾讯科技(深圳)有限公司 | 一种网络接入管理方法、服务器、移动终端以及系统 |
CN106612307B (zh) * | 2015-10-22 | 2019-11-15 | 中移(杭州)信息技术有限公司 | 一种永远在线业务的实现方法及装置 |
JP6724431B2 (ja) * | 2016-03-09 | 2020-07-15 | 株式会社リコー | 通信システム、情報送信方法、及びプログラム |
CN106357684B (zh) * | 2016-10-26 | 2020-09-18 | 北京奇虎科技有限公司 | 游戏应用程序的登录方法及装置 |
CN106412104A (zh) * | 2016-10-28 | 2017-02-15 | 努比亚技术有限公司 | 应用消息推送装置及方法 |
CN106454800B (zh) * | 2016-11-21 | 2018-07-27 | 北京小米移动软件有限公司 | 身份验证方法、装置及系统 |
CN108737671B (zh) * | 2017-04-20 | 2021-08-03 | 中兴通讯股份有限公司 | 一种voip通信方法、装置、设备及家庭网关系统 |
CN107135086A (zh) * | 2017-05-26 | 2017-09-05 | 努比亚技术有限公司 | 一种广播推送方法及设备、计算机可读存储介质 |
CN109428924B (zh) * | 2017-08-29 | 2021-07-13 | 阿里巴巴集团控股有限公司 | 应用的在线状态维护方法、接入层组件、应用系统及设备 |
CN107508916B (zh) * | 2017-09-27 | 2021-02-26 | 苏州狗尾草智能科技有限公司 | 用于智能机器人的服务器链接管理方法 |
CN109922163B (zh) * | 2017-12-13 | 2022-05-03 | 中国电信股份有限公司 | 报文发送方法、物联网接入网关和物联网系统 |
CN108391242B (zh) * | 2018-02-26 | 2021-10-19 | 青岛海信移动通信技术股份有限公司 | 一种远程控制方法和远程控制装置 |
CN110855726B (zh) * | 2018-08-20 | 2024-02-06 | 北京京东尚科信息技术有限公司 | 通信方法、装置以及网关、计算设备和介质 |
CN109413714B (zh) * | 2018-10-12 | 2022-02-22 | Oppo广东移动通信有限公司 | 用户代理信息的处理方法、装置、存储介质及终端 |
CN109274765B (zh) * | 2018-10-25 | 2021-06-04 | 迈普通信技术股份有限公司 | 一种数据传输方法、设备及系统 |
CN109711152A (zh) * | 2018-12-25 | 2019-05-03 | 北京潘达互娱科技有限公司 | 一种应用保活方法、计算设备及存储介质 |
CN110012107B (zh) * | 2019-04-15 | 2022-07-26 | 深圳市网心科技有限公司 | 一种数据通信方法、设备、装置、系统及存储介质 |
CN110708283A (zh) * | 2019-08-29 | 2020-01-17 | 中国第一汽车股份有限公司 | 车辆与终端连接异常的处理方法、装置、车辆及存储介质 |
CN111585858B (zh) * | 2020-04-28 | 2021-08-27 | 国电南京自动化股份有限公司 | 一种多输入多输出矩阵软总线通信方法和系统 |
CN113691591B (zh) * | 2021-08-02 | 2022-12-27 | 中移(杭州)信息技术有限公司 | 数据传输方法、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567894A (zh) * | 2003-06-17 | 2005-01-19 | 华为技术有限公司 | 无线局域网和移动网互通情况下查询路由的方法 |
US20070233849A1 (en) * | 2006-03-31 | 2007-10-04 | Chandranmenon Girish P | Methods and devices for maintaining sessions based on presence status information |
CN102395119A (zh) * | 2011-11-15 | 2012-03-28 | 华为技术有限公司 | 一种支持应用客户端永久在线的方法、系统及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050210101A1 (en) * | 1999-03-04 | 2005-09-22 | Universal Electronics Inc. | System and method for providing content, management, and interactivity for client devices |
US20070047523A1 (en) * | 2001-08-16 | 2007-03-01 | Roamware, Inc. | Method and system for call-setup triggered push content |
US6836670B2 (en) * | 2002-05-09 | 2004-12-28 | Casabyte, Inc. | Method, apparatus and article to remotely associate wireless communications devices with subscriber identities and /or proxy wireless communications devices |
DE10257454B4 (de) * | 2002-12-09 | 2005-02-10 | Siemens Ag | Verfahren zur Überwachung einer Anwendung in einem paketvermittelnden Netzwerk |
CN1561061A (zh) * | 2004-02-27 | 2005-01-05 | Ut斯达康通讯有限公司 | 通过nat进行双向访问的方法 |
US20050228848A1 (en) * | 2004-03-22 | 2005-10-13 | Thurston Stacy D | Method and system for operating a peer network |
US8849961B2 (en) * | 2006-09-06 | 2014-09-30 | Nokia Corporation | Mobile network optimized method for keeping an application IP connection always on |
US8346850B2 (en) * | 2006-12-18 | 2013-01-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for establishing a session |
TW201008234A (en) * | 2008-08-12 | 2010-02-16 | Acer Inc | Energy-saving method for handheld Internet accessing device, the handheld Internet accessing device, and the real-time message system |
US8572262B2 (en) * | 2011-03-17 | 2013-10-29 | Blackberry Limited | System and method for controlling connections to an application server |
CN102223257B (zh) * | 2011-07-25 | 2014-02-19 | 莫雅静 | 一种心跳间隔调整方法、服务器、客户端及通信系统 |
US8515488B2 (en) * | 2011-07-29 | 2013-08-20 | Mitel Networks Corporation | System for dynamic assignment of mobile subscriber identities and methods thereof |
-
2011
- 2011-11-15 CN CN201110360998.2A patent/CN102395119B/zh not_active Expired - Fee Related
-
2012
- 2012-04-11 WO PCT/CN2012/073778 patent/WO2012167664A1/zh active Application Filing
- 2012-04-11 EP EP12797549.8A patent/EP2763348A4/en not_active Withdrawn
- 2012-11-27 US US13/686,342 patent/US20130124618A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567894A (zh) * | 2003-06-17 | 2005-01-19 | 华为技术有限公司 | 无线局域网和移动网互通情况下查询路由的方法 |
US20070233849A1 (en) * | 2006-03-31 | 2007-10-04 | Chandranmenon Girish P | Methods and devices for maintaining sessions based on presence status information |
CN102395119A (zh) * | 2011-11-15 | 2012-03-28 | 华为技术有限公司 | 一种支持应用客户端永久在线的方法、系统及装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP2763348A4 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139303A (zh) * | 2013-02-07 | 2013-06-05 | 网易(杭州)网络有限公司 | 一种用于保持连接的心跳方法、装置及系统 |
CN103139303B (zh) * | 2013-02-07 | 2016-08-17 | 网易(杭州)网络有限公司 | 一种用于保持连接的心跳方法、装置及系统 |
WO2023066125A1 (zh) * | 2021-10-22 | 2023-04-27 | 杭州研极微电子有限公司 | 降低通信设备休眠状态下功耗的方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2763348A4 (en) | 2015-03-18 |
CN102395119B (zh) | 2014-11-19 |
US20130124618A1 (en) | 2013-05-16 |
CN102395119A (zh) | 2012-03-28 |
EP2763348A1 (en) | 2014-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012167664A1 (zh) | 一种支持应用客户端永久在线的方法、系统及装置 | |
CN103312766B (zh) | 一种支持应用客户端永久在线的方法、系统及装置 | |
KR102216428B1 (ko) | Ue를 각성상태로 유지하기 | |
JP6091644B2 (ja) | モバイル・ネットワークにおける持続性tcp接続なしのプッシュ・サービス | |
US8068433B2 (en) | Low power operation of networked devices | |
US10212654B2 (en) | Neighbor discovery to support sleepy nodes | |
US8503300B2 (en) | Efficient messaging over internet protocol | |
US8077657B2 (en) | Keep-alive handling in a wireless network | |
WO2011137792A1 (zh) | 一种推送设备间的协作方法及装置 | |
WO2013097452A1 (zh) | 接收数据的方法、发送数据的方法、移动终端和服务器 | |
KR102033232B1 (ko) | 상이한 근접 클라이언트 디바이스들 상에 설치된 클라이언트 애플리케이션들에 대한 등록들 갱신 | |
EP2356860A2 (en) | Method for extending battery life in a wireless device | |
WO2015010645A1 (en) | Method and apparatus for message transmission | |
WO2012155651A1 (zh) | 实现终端应用的在线处理系统及方法 | |
WO2013143228A1 (zh) | 一种缩减心跳消息的方法及系统 | |
WO2011113383A2 (zh) | 一种业务处理的方法和服务器 | |
Bolla et al. | Improving smartphones battery life by reducing energy waste of background applications | |
WO2013082897A1 (zh) | 应用服务更新方法和装置 | |
Bolla et al. | Smart proxying: An optimal strategy for improving battery life of mobile devices | |
JP6208153B2 (ja) | Pppセッションを維持するための拡張時間期間を容易にするための装置および方法 | |
US11979338B2 (en) | System and method for cellular network data storage and forwarding | |
US20100153559A1 (en) | Method and Apparatus for Suspending Network Based Services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12797549 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012797549 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |