专利摘要:
METHOD AND SYSTEM FOR COMMUNICATION WITH A CUSTOMER AND COMPUTER-READABLE STORAGE MEMORY DEVICE. The present invention relates to a method for communicating with a customer. The method includes receiving an identification token that identifies the customer. The method additionally includes registering the client to receive a message when the client is not connected to the server. The method also includes sending the message to the client when the client does not have a connection to the server, based on the record and notification token. The message can be sent using a notification channel.
公开号:BR112013023325B1
申请号:R112013023325-7
申请日:2012-03-07
公开日:2021-06-08
发明作者:Yosef Firstenberg;Lan Tang
申请人:Microsoft Technology Licensing, Llc;
IPC主号:
专利说明:

BACKGROUND
[0001] Client-server communication systems can vary in terms of when the server can send a communication to the client. For example, communications between a Web site (server) and a client may follow a request-response model. In this model, the client can be reachable from the server if the client is sending a request to the server. Otherwise, the customer may not be reachable. Thus, the server can only send communications to the client in response to a client's request. In this model, the client's request can result in an open network connection through which the server can send communications.
[0002] This model differs from traditional messaging systems. Traditional messaging systems assumed the existence of a connection between clients and servers. Because the connection persists, the server can send a communication to the client at any time.
[0003] In the growing number of platforms, eg mobile devices, maintaining network connections requires a high degree of resources. For example, mobile devices can quickly drain battery power by trying to maintain a network connection. Thus, these platforms cannot maintain network connections when client applications are not active.
[0004] The maintenance of a network connection can be further impeded by limitations of the networks themselves. In some cases, networks can be unreliable. For example, cell phones lose their network connections in regions without proper cell towers.
[0005] Typical approaches to these types of connectivity issues still rely on creating open network connections between the client and server. Relying on open network connections for communications between clients and servers increases the demand for limited resources from the growing number of client devices. SUMMARY
[0006] The following presents a simplified summary of the innovation in order to provide a basic understanding of some aspects described in this document. This summary is not an extensive overview of the claimed object. It is not intended to identify key or critical elements of the claimed object nor to delineate the scope of the innovation in question. Its sole purpose is to present some concepts of the claimed object in a simplified form as a prelude to the more detailed description that is presented later.
[0007] The innovation in question relates to a method and a system for communicating with a client that is not connected to a server. The client can register notification channel information with the server. The server can send a message to the client using the notification channel. Messages can be included in a notification message to the customer. Alternatively, the message can be sent using an attention-interrupting technique.
[0008] In one embodiment, the customer may subscribe to peers, services, or networks. By subscribing, the customer can be automatically notified of corresponding updates through the notification channels. The following description and the attached drawings expose in detail some illustrative aspects of the claimed object. However, these aspects are indicative of some of the various ways in which the principles of innovation can be employed and the claimed object is intended to include all aspects and their equivalents. Other advantages and new aspects of the claimed object will become apparent from the following detailed description of the innovation when considered in conjunction with the drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Fig. 1 is a block diagram of a system according to the claimed object; Fig. 2 is a process flowchart of a communications method for clients according to the claimed object; Fig. 3 is a message flowchart for creating a client entity in the network according to the claimed object; Fig. 4 is a message flowchart for sending a message in accordance with the claimed object; Fig. 5 is a message flowchart for signing according to the claimed object; Fig. 6 is a message flowchart to consulate the presence of a companion in accordance with the claimed object; Fig. 7 is a message flowchart for deleting a client entity in accordance with the claimed object; Fig. 8 is a message flowchart for multi-party conversation according to the claimed object; Fig. 9 is a block diagram of an illustrative network environment where aspects of the claimed object can be employed; and Fig. 10 is a block diagram of an illustrative operating environment for implementing various aspects of the claimed object. DETAILED DESCRIPTION
[00010] The claimed object is described with reference to the drawings, where like reference numbers are used to refer to like elements throughout. In the following description, for the purpose of explanation, several specific details are set out in order to provide a complete understanding of the innovation in question. However, it may be evident that the claimed object can be practiced without these specific details. In other cases, well-known structures and devices are presented in block diagram form in order to facilitate the description of the innovation in question.
[00011] As used in this document, the terms "component, "system", "customer, and so on" are intended to refer to a computer-related entity, whether hardware, software (eg, running), and /or firmware, or a combination thereof. For example, a component can be a process running on a processor, an object, an executable, a program, a function, a library, a subroutine, and/or a computer or a combination of software and hardware.
[00012] By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and a component can be located on one computer and/or distributed between two or more computers. The term "processor" is generally understood to refer to a hardware component, such as a processing unit in a computer system.
[00013] Additionally, the claimed object may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the claimed object. The term "article of manufacture" as used herein is intended to encompass a computer program accessible from any non-temporary computer-readable device or medium.
[00014] Non-temporary computer-readable storage medium may include, but is not limited to magnetic storage devices (eg, hard disk, floppy disk, and magnetic stripes, among others), optical disks (eg, compact disk (CD), and digital versatile disk (DVD), among others, smart cards, and flash memory devices (eg card, memory stick, and USB key drive) In contrast, computer readable media generally (ie. is, not necessarily storage media) may additionally include communication media such as transmission media for wireless signals and so on.
[00015] Obviously, those skilled in the art will recognize that various modifications can be made to this configuration without departing from the scope or spirit of the claimed object. Also, the word "illustrative" is used in this document to mean to serve as an example, case, or illustration. Any aspect or design described in this document as "illustrative" is not necessarily to be construed as preferred or advantageous over other features or designs.
[00016] For the growing number of mobile platforms, messaging systems can use an open network connection between the client and the server to allow the server to send messages to the client. However, when the client is not able to establish a long-lived connection, the connection can be simulated.
[00017] As stated earlier, mobile platforms introduce challenges with respect to maintaining the connection between the client and the server, including: 1) due to the nature of the communication channel, eg wireless, the connection may not be reliable , 2) maintaining the connection to the server consumes battery resources that are limited on these platforms, and 3) wireless connections may be more limited in terms of bandwidth than wired connections.
[00018] To address these challenges, messaging systems can reduce bandwidth consumption, and add resiliency logic to the transport layer of a communications protocol. Adding resiliency logic to the transport layer allows messaging systems to recover from in-between connectivity issues.
[00019] FIG. 1 is a block diagram of a system 100 in accordance with the claimed object. System 100 includes a client 102, a network 104, a notification service 108, and a messaging system 110. The client 102 may be a device with a client application that communicates over network 104 with the messaging system. message transmission 110. The client 102 can be any type of communications or computing device, such as a mobile phone, personal digital assistant, desktop computer, etc. The platform on which the client 102 operates may include a set of APIs for interacting with a notification service 108. The notification service 108 may be another cloud service provided by a platform on which the client 102 operates. For example, on a Windows Phone, notification service 108 might be the Microsoft Push Notification (MPN) service. An iPhone customer can use the Apple Push Notification (APN) service. For clients 102 operating on a platform that does not provide native notification service APIs, messaging system 110 may provide an alternative.
[00020] The notification service 108 can provide one or more notification channels that a cloud service can use to send information to the client 102 that a) can conserve battery life and b) can be configured to overcome the inherent challenges of the network described above, such as intermittent connectivity to network 104. Typically, the connection from client 102 to notification service 108 may be allowed to be opened to preserve client resources.
[00021] The network 104 can be any network or collection of networks, capable of supporting communications between the client 102 and the messaging system 110. The network 104 can be the Internet, a wide area network, an area network location, etc. The Internet is also referred to in this document as a cloud.
[00022] Notification service 108 can be used as part of a messaging system 110, used to communicate messages from messaging system 110 to client 102. Thus, messaging system 110 can allow typical messaging functionality, including: messaging, signaling, presence, audio, video, etc. In one embodiment, this functionality can be provided in the absence of a connection between the client 102 and the transmission system. messages 110.
[00023] Presence may represent the availability and capabilities of the 102 client at a given time for some operations. In typical messaging systems, the availability of client 102 is closely connected with a state of the connection. Where there is no connection, client 102 is assumed to be unavailable. In embodiments of the invention, when there is no connection, the client 102 can be made available through notification service 108.
[00024] Instead of communicating over an open network connection, the messaging system 110 can communicate with the client 102 using the notification service 108. The messaging system 110 can use a protocol that provides natively supports notification service 108 as part of a client connectivity scheme. In one embodiment, the protocol can support this type of client 102, i.e., a notification-based client, as a first-class entity, and provide constructs that natively fit multiple platforms for the client 102.
[00025] In such an embodiment, the messaging system 110 may use an unconnected client mode. In this mode, a client entity can be provided by a cloud service, without necessarily having an open network session. Client 102 may be reachable using other means, such as notification service 108.
[00026] The protocol may include command, to register and unregister customers, update customers, send messages, subscribe to peer lists, consulate peers, query and distribute messages, and support multi-party communications. These commands are described in more detail with reference to FIGURES 4 through 9.
[00027] Some differences of this protocol from existing protocols include: 1) removing the session as a condition of the client entity's existence in the cloud, and 2) using unconnected mode as a means of interacting with the cloud service.
[00028] The cloud service can store data about the notification service 108. The notification service 108, or an open network session (if it exists), can be used to communicate back with the client 102. This protocol can natively support a variety of notification platforms. Using this protocol, messaging system 110 can also provide notification services for clients that do not provide notification services, for example, clients of the Network. In one embodiment, this can be done using the same semantics as defined by other notification services through a persistent transport layer service.
[00029] In one embodiment, the messaging system 110 may generate an authentication token as a means of authenticating the client and controlling the lifetime of the client entity in the cloud. The messaging system 110 may store the information of the notification channel to be used to communicate back to the client 102. The notification channel is a means for the messaging system 110 to send a message to the client 102. using notification service 108. Additionally, messaging system 110 can store information about any potential open network session, if such a connection exists. This connection information can be used as an alternative means to communicate back with client 102. Client 102 can send the authentication token with each request, expecting to receive authentication failure responses, and being able to re-authenticate. with the message transmission system 110.
[00030] When the client 102 is sending messages to the messaging system 110, the client can use connected or unconnected media. In one embodiment, client 1092 may use an unconnected channel. In an alternative unconnected medium, client 102 can open a temporary channel for point-to-point communications and use TCP-based commands. This can be done without explicitly connecting or reconnecting to messaging system 110.
[00031] In terms of connected medium, client 102 can explicitly connect to messaging system 110 for the duration of one or more conversations. Client 102 may be limited to a single cloud connection at any time, which may be enforced by messaging system 110.
[00032] The protocol may not define the client's presence condition in the cloud, but rather the mechanism by which the client 102 can update its specific presence information, eg availability and capabilities. The protocol can also provide a means for this with a relationship with the user (eg a connection to a Social Networking or professional website) to receive updates where applicable. Due to process privilege connectivity restrictions, client 102 may not accurately update its presence. Instead, the protocol may assume that business logic in messaging system 110 updates the customer's presence. This can be done based on the time interval (ie "minutes from last activity"), the condition of the notification channel (ie "periodic ping test" or "error responses"), or explicit update by the client 102 when possible.
[00033] The protocol may support a means to register or unregister the client entity. However, messaging system 110 may not enforce registration or de-registration of client 102 using the protocol. There may be other means for adding client entities to messaging system 110. For example, messaging system 110 may consult an external authority source, such as another cloud service, to keep track of clients 102. Provided For the client 102 to present a valid token, the messaging system 110 can serve the requests. The security challenges involved by this approach can be addressed by using a secure communication channel.
[00034] To further preserve battery life and reduce bandwidth consumption, the protocol can free client 102 from loading any data that already exists in any authorization entity in the cloud. Instead, client 102 may merely load client-specific and temporary data. The messaging system 110 can store a limited amount of status information for each customer. This state can include, for example, notification channel information, access control lists (ACLs), availability and capabilities, subscriptions, instant messages (IMs) or cached notifications, and last activity time information.
[00035] FIG. 2 is a process flowchart of a communications method 200 to clients 102 in accordance with the claimed object. In one embodiment, the messaging system may perform method 200.
[00036] Method 200 starts at block 202, where notification service 108 can generate a notification token. The notification token can be used by the messaging system 110 to identify the recipient of the notifications to which it sends them via the notification service 108. The client 102 can load the notification token to the messaging system 110 in addition to the notification service information.
[00037] In block 204, messaging system 110 may register client 102 to receive communications from messaging system 110. Registering client 102 may include storing notification service information and token information for the client 102. The notification channel information together with the notification token may provide an address for contacting the client 102 via notification service 108.
[00038] However, if the client 102 is not connected with the messaging system, and there is a message from the server to the client 102, in block 206, the messaging system 110 can send the message to client not connected 102 using the notification service.
[00039] FIGURES 3 to 8 are message flowcharts for typical communications scenarios according to the protocol described above according to the claimed object. These commands can be executed in an implementation of the protocol described above. In these figures, the abbreviation EP, abbreviated form for full stop, is a reference to customer 102.
[00040] Commands of this protocol can be supported by standard HTTP methods. For example, the scenario illustrated with reference to FIGURES 3 through 8 presents an illustrative implementation of the commands using standard HTTP methods. Standard HTTP methods can include: OPTIONS, GET, HEAD, PUT, POST, DELETE, TRACE and CONENCT.
[00041] As mentioned above, the protocol can include a set of commands for joining, registering, sending messages, querying and updating presence information, establishing conversations between 2 parties and between multiple parties, etc.
[00042] The register command may create a client entity in the messaging system 110 and return an authentication token to the client. The deregistration command may delete the client entity from the messaging system 110. In one embodiment, the client 102 may specify other client entities to be deleted according to specific permissions.
[00043] Once the client entity is registered with the messaging system, the corresponding client 102 can publish its presence using the update client command. Parameters specified in the command may include notification channel information for each operation that client 102 supports. The parameters can also include a notification type that specifies how notifications are distributed to client 102. A notification type can specify that the command is included in the notification payload. Another type might specify that the command is not included, for example, callout.
[00044] An embodiment may include a command to send a message to a peer without establishing a connection to the cloud. The notification channel or a command to messaging system 110 to obtain the queued message from messaging system 110 may be used.
[00045] A signup command can be used to allow the customer to sign up with peers. Signing up with peers allows customer 102 to be automatically notified of updates along with peer presence conditions. Client 102 can only specify a filter to be applied to the buddy list to subscribe to a subset of buddies. The messaging system 110 can retrieve contact lists from another cloud service that maintains the customer's buddy list. Client 102 can use this command to sign up with a specific partner. Customer 102 can similarly unsubscribe for friends, services, etc.
[00046] The Friend Presence Inquiry command can allow the client 102 to determine the presence condition of one or more user contacts. A buddy list can be used to determine which presence condition the contact receives. For example, an empty contact list may result in messaging system 110 seeking the presence condition of all the user's contacts. In one embodiment, filter and view selections can be used to improve response accuracy and reduce response packet size. For example, viewing options can include various presence elements such as availability for messaging, availability for video calls, etc. Filter options can be used to remove hidden contacts, groups, offline contacts, etc.
[00047] Message command can dispatch messages to the client. In one embodiment, typical messaging commands can be configured to support notification service 108 and reduce bandwidth consumption. For example, the client 102 can receive these commands in a notification payload or in the response body to obtain the get queued message command. This can be based on customer preferences.
[00048] The get queued messages command can be used to retrieve queued messages and notifications. In one embodiment, client 102 may send polling to messaging system 110 until all cached notifications are retrieved. The protocol may provide a command to obtain the queued messages and a separate command to delete these messages from messaging system 110.
[00049] A set of commands to create a temporary multi-part conversion, invite friends, send messages, update and get presence information in the context of this multi-part conversion can be used to allow typical multi-part conversion operations.
[00050] FIG. 3 is a message flowchart 300 for creating a client entity in messaging system 110 in accordance with the claimed object. Message flowchart 300 includes messages 304, 306. Messages 304 may authorize client access to messaging system 110. In response to a request from client 102, messaging system 110 may retrieve a access list from a cloud service that maintains access control lists to the friends of the client 302, and can generate a client authentication token, which is sent to the client 102.
[00051] Messages 306 may register client 102 with messaging system 110 for notifications in unconnected mode. A registration request including the notification token may be sent to the notification token 110. This results in the notification token and customer presence data being stored in the notification token 110. The notification token provides a address that messaging system 110 can use to send messages from messaging system 110 to client 102 when not connected. In FIG. 3, the Authentication token is not included in log messages 306. In one embodiment, the Authentication token may be included.
[00052] The messages described with reference to FIGURES 3 to 8 can be communicated along typical communication channels. The type of communication channel for any particular message can vary depending on the sender and receiver of the message.
[00053] In one embodiment, the client 102 may send a registration command with an authorization token, for example a user ticket, to the messaging system 110. Alternatively, the endpoint may send a batch of commands logging and other commands to minimize calls from the client to the messaging system 110. The client 102 may not maintain a connection to the messaging system 110 during the registration, authentication, and set-up process. of initial presence information.
[00054] The messaging system 110 can authenticate the client using the authorization token. The messaging system 110 may create a client entity, connect a user with the client, and send back the client's authentication token. The client 102 may use the authentication token to identify itself to the messaging system 110 for future communications.
[00055] Once the client entity is created, the client 102 can publish its presence (availability, capabilities, etc.) to the messaging system 110. Alternatively, the messaging system 110 can maintain the presence of the client.
[00056] By registering with the messaging system 110, the client 102 can receive notifications about presence changes and messages. Client 102 can also specify whether notifications do not include the actual packet in the notification payload, i.e., reminder.
[00057] FIG. 4 is a message flowchart 400 for sending a message in accordance with the claimed object. Message flowchart 400 includes messages 404, 406. Messages 404 may, although not connected, allow client 102 to send a message using the authentication token. Messages 406 may allow client 102 to receive instant messages from other clients 102. As shown, a get queued message command may be used to retrieve messages from daughter 206.
[00058] FIG. 5 is a flowchart of message 500 for registration according to the claimed object. Client 102 can subscribe to a presence of a contact by sending a subscribe command with lists specified in the body of the command. The messaging system 110 may retrieve buddy lists from another cloud service that maintains the client 502 buddy list.
[00059] Presence notifications may be sent to customer messaging system 110. Once the messaging system 110 obtains a friend presence notification, the messaging system 110 can send a notification to the notification service 108 and identify the target customer using the notification token.
[00060] In one embodiment, the messaging system 110 can cache the notification, and only send an attention-drawing notification to the notification service 108. In such an embodiment, the client 102 can retrieve the posted notification. in cache memory by sending a message get queued command to the messaging system 110.
[00061] FIG. 6 is a message flowchart 600 for consularizing the presence of a friend in accordance with the claimed object. As shown, the client 102 can query the presence of a friend using the notification form.
[00062] FIG. 7 is a message flowchart 700 for unregistering a client entity in accordance with the claimed object. This request may specify the authentication token in a deregistration command to the messaging system 110. The messaging system 110 may delete the client entity represented by the authentication token from the cloud.
[00063] To unregister the customer 102 from the messaging system 110, the messaging system 110 can set a customer status to unavailable. Thus, any further messages to client 102 can be stopped, with an error returned to the sender.
[00064] FIG. 8 is a message flowchart 800 for conversion between multiple parties in accordance with the claimed object. For conversion between multiple parties, an escalation list can be hosted on host 802. Host 802 can be a component of messaging system 110. The conversion can be identified as a temporary group.
[00065] As noted above, existing messaging systems can be modified to accommodate the unconnected mode described above. These modifications can introduce issues with load balancing, bottlenecks, and geo-hosting. In one embodiment, messaging system 110 can use various load balancing techniques to address the change in the client's connection mode. A global load balancing system can be used to balance load across multiple geographic cloud locations.
[00066] Additionally, the messaging system 110 can use various bottleneck techniques to control the use of its resources by customers and to protect itself from malicious use.
[00067] FIG. 9 is a block diagram of an illustrative network environment 900 where aspects of the claimed object can be employed. In addition, the illustrative network environment 900 can be used to implement a system and method of communicating with unconnected clients.
[00068] The 900 networked environment includes one or more 910 clients. The 910 clients can be hardware and/or software (eg, threads, processes, computing devices). As an example, client(s) 910 may be computers providing access to servers through a communication structure 940, such as the Internet.
[00069] Environment 900 also includes one or more servers 920. Server (servers) 920 can be hardware and/or software (eg, threads, processes, computing devices). Server (servers) 920 may include network storage systems. The server (servers) can be accessed by the client(s) 910.
[00070] A possible communication between a client 910 and a server 920 can be in the form of a data packet adapted to be transmitted between two or more computer processes. Environment 900 includes a communication structure 940 that can be employed to facilitate communications between the client(s) 910 and the server (servers) 920.
[00071] Customer(s) 910 are operatively connected with one or more data stores 950 that can be employed to store local information for customer 910. Customer data stores 950 may be located at the 910 clients, or remotely, such as on a cloud server. Similarly, servers 920 are operatively connected to one or more data stores from server 930 that can be employed to store local information for servers 920.
[00072] Referring to FIG. 10, an illustrative operating environment 1000 is presented for implementing various aspects of the claimed object. Illustrative operating environment 1000 includes a computer 1012. Computer 1012 includes a processing unit 1014, a system memory 1016, and a system bus 1018.
[00073] System bus 1018 couples system components including, but not limited to, system memory 1016 with processing unit 1014. Processing unit 1014 can be any one of several available processors. Dual-processor architectures and other multi-processor architectures can also be employed as the 1014 processing unit.
[00074] The 1018 system bus can be any one of several bus structures, including the memory bus or memory controller, a peripheral bus or external bus, and/or local bus using any variety of available known bus architectures by those skilled in the art. System memory 1016 comprises non-temporary computer readable storage medium that includes volatile memory 1020 and non-volatile memory 1022.
[00075] The basic input/output system (BIOS), containing the basic routines for transferring information between elements within the computer 1012, such as during startup, is stored in non-volatile memory 1022. By way of illustration and not of As a limitation, non-volatile memory 1022 may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
[00076] Volatile memory 1020 includes random access memory (RAM), which acts as an external cache memory. By way of illustration and not limitation, RAM is available in various forms such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM ( ESDRAM), SynchLink® DRAM (SLDRAM), Rambus® direct RAM (RDRAM), Rambus® direct dynamic RAM (DRDRAM), and Rambus® dynamic RAM (RDRAM).
[00077] Computer 1012 also includes other non-temporary computer readable media such as removable/non-removable, volatile/non-volatile computer storage media. FIG. 10 shows, for example, disk storage 1024. Disk storage 1024 includes, but is not limited to magnetic disk drive, floppy disk drive, tape drive, Jaz drive, ZIP drive, LS-drive type devices. 100, flash memory card, or memory stick.
[00078] In addition, disk storage 1024 may include storage media separately or in combination with other storage media including, but not limited to, an optical disk drive, such as a compact disk (CD-ROM) ROM device , a writable CD drive (CD-R Drive), a rewritable CD drive (CD-RW Drive), or a digital versatile disc ROM drive (DVD-ROM). To facilitate the connection of disk storage devices 1024 to system bus 1018, typically a removable or non-removable interface is used, such as interface 1026.
[00079] It is to be appreciated that FIG. 10 describes software that acts as an intermediary between users and the basic computer resources described in the appropriate operating environment 1000. Such software includes an operating system 1028. Operating system 1028, which can be stored in disk storage 1024, acts to control and allocate computer system resources 1012.
[00080] System 1030 applications take advantage of resource management by operating system 1028 through program modules 1032 and program data 1034 stored in system memory 1016 or disk storage 1024. It is to be appreciated that the claimed object it can be implemented with multiple operating systems or with combinations of operating systems.
[00081] A user enters commands or information into the 1012 computer through the 1036 input devices. The 1036 input devices include, but are not limited to, a pointing device (such as a mouse, trackball, pen, etc.), a keyboard, a microphone, a joystick, a satellite antenna, a digitizer, a TV tuner card, a digital camera, a digital video camera, a web camera and/or the like. The 1036 input devices connect to the 1014 processing unit via the 1018 system bus via the 1028 interface ports. The 1038 interface ports include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB).
[00082] Output devices 1040 use some of the same types of ports as input devices 1036. Thus, for example, a USB port can be used to provide input to computer 1012, and to output information from computer 1012 for a 1040 output device.
[00083] The 1042 output adapter is provided to illustrate that there are some 1040 output devices such as monitors, speakers, and printers, among other 1040 output devices, which are accessible via the adapters. The 1042 output adapters include, by way of illustration and not limitation, video and sound cards that provide a connection device between the 1040 output device and the 1018 system bus. It may be noted that other devices and/or device systems provide both input and output capabilities such as remote computers 1044.
[00084] Computer 1012 can be a server hosting multiple software applications in a networked environment using logical connections to one or more remote computers, such as remote 1044 computers. Remote 1044 computers can be client systems configured with web browsers. Network, PC apps, mobile phone apps, and more.
[00085] Remote computers 1044 can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor-based electronic appliance, a mobile phone, a peer device or other common network node, among others, and typically includes many or all of the elements described in relation to computer 1012.
[00086] For the purpose of brevity, only one 1046 memory storage device is illustrated with the 1044 remote computers. The 1044 remote computers are logically connected to the 1012 computer through a 1048 network interface and then physically connected via a network connection. communication 1050.
[00087] The 1048 network interface covers wired and/or wireless communication networks such as local area networks (LAN) and wide area networks (WAN). LAN technologies include Fiber Optic Distributed Data Interface (FDDI), Copper Wire Distributed Data Interface (CDDI), Ethernet, Token Ring, and so on. WAN technologies include, but are not limited to, point-to-point links, circuit-switched networks such as Integrated Services Digital Networks (ISDN) and variations thereof, packet-switched networks, and Digital Subscriber Lines (DSL) .
[00088] The 1050 communication connections refer to the hardware/software employed to connect the 1048 network interface to the 1018 bus. Although the 1050 communication connection is presented for illustrative clarity within the 1012 computer, it may also be external to the computer 1012. The hardware/software for connecting to the 1048 network interface may include, for illustrative purposes only, internal and external technologies such as mobile phone switches, modems including regular telephone grid modems, cable modems and DSL modems, ISDN adapters and Ethernet cards.
[00089] An illustrative processing unit 104 for the server may be a compute cluster comprising Intel® Xeon CPUs. Disk storage 1024 can comprise the company's data storage system, for example, holding thousands of prints.
[00090] The above includes examples of the innovation in question. Of course, it is not possible to describe every conceivable combination of components or methodologies for the purpose of describing the claimed object, but those skilled in the art may recognize that various combinations and further changes of the innovation in question are possible. Consequently, the object claimed is intended to cover all such alterations, modifications and variations which fall within the spirit and scope of the appended claims.
[00091] In particular and with respect to the various functions performed by the above described components, devices, circuits, systems and so on, the terms (including a reference to a "means") used to describe such components are intended to correspond to, unless otherwise indicated, to any component that performs the specified function of the described component (for example, a functional equivalent), even if, however, not structurally equivalent to the disclosed structure, that performs the function of the aspects illustrated in this document of the claimed object. In this regard, it will also be recognized that the innovation includes a system as well as a computer-readable storage medium having computer-executable instructions for executing the acts and/or events of the various methods of the claimed object.
[00092] There are several ways to implement the innovation in question, for example, an appropriate API, a toolkit, a controller code, operating system, control, standalone or loadable software object, etc., that allows that applications and services use the techniques described in this document. The claimed object contemplates use from the point of view of an API (or other software object), as well as from a software or hardware object that operates in accordance with the techniques exposed in this document. Thus, various implementations of the innovation in question described in this document may have aspects that are all hardware, partially hardware, and partially software, as well as software.
[00093] The systems mentioned above have been described with respect to the interaction between various components. It will be appreciated that such systems and components may include these specified components or subcomponents, some of the specified components or subcomponents, and/or additional components, and in accordance with various changes and combinations of the foregoing. Subcomponents can also be implemented as components communicatively coupled with other components rather than included within the source components (hierarchical).
[00094] Additionally, it can be seen that one or more components can be combined into a single component providing aggregated functionality or split into several separate subcomponents, and that any one or more intermediate layers, such as a management layer, can be provided for communicatively couple with such subcomponents to provide integrated functionality. Any components described in this document may also interact with one or more other components not specifically described in this document but generally known to those of skill in the art,
[00095] In addition, although a particular aspect of the innovation in question has been revealed with respect to only one of several implementations, such aspect can be combined with one or more other aspects of the other implementations as may be desired and advantageous for any given particular application or application. Additionally, to the extent that the terms "include", "including", "has", "contains", and variations thereof and other similar words are used in the detailed description or in the claims, these terms are intended to be inclusive of a similar to the term "comprising" as an open transitional word without impeding any other elements or additional elements.
权利要求:
Claims (8)
[0001]
1. Method for communicating with a client (102) characterized in that it comprises the steps: generating (202) a notification token; receiving a registration command with a client authorization token in a messaging system; the registration command creating a client entity in the messaging system; the messaging system returning the authorization token to the client so that the client can use the authorization token to identify itself in the messaging system for future communications; receiving the notification token identifying the client (102) in the messaging system; registering (204) the client (102) to receive a message from the messaging system when the client (102) is not connected to a server, wherein the register (204) includes storing notification service information and token information to the customer (102); and sending (206) the message to the client (102) when the client (102) does not have a connection to the server, based on the registration and notification token, wherein the message is sent using a notification service (108) .
[0002]
2. Method according to claim 1, characterized in that the notification channel comprises a channel protected by hypertext transfer protocol (HTTPS).
[0003]
3. Method according to claim 1, characterized in that registering the client (102) comprises storing a notification channel uniform resource locator (URL) for the client (102).
[0004]
4. Method according to claim 3, characterized in that it comprises receiving a message specifying the notification channel URL.
[0005]
5. Method according to claim 1, characterized in that the message is generated by a second client (102).
[0006]
6. Method according to claim 1, characterized in that it comprises subscribing the customer (102) to a partner, wherein the partner comprises a customer partner (102), wherein a notification channel is used to send presence status updates from the customer's partner (102) to the customer (102) when the customer (102) is not connected.
[0007]
7. Method according to claim 6, characterized in that it comprises subscribing to one of the following: a list of partners comprising one or more partners; a service; and a net (104).
[0008]
8. System for communicating with a customer (102) characterized in that it comprises: a processing unit; and a system memory, wherein the system memory comprises code configured to direct the processing unit to: generate (202) a notification token; receive a registration command with a client authorization token on the system, the registration command creating a client entity on the system; return the authorization token to the client so that the client can use the authorization token to identify itself with the system for future communications; receiving the notification token identifying the customer (102) in the system; registering the client (102) to receive a system message when the client (102) is not connected to a server, wherein the registration (204) includes storing notification service information and token information for the client (102 ); and sending the message to the client (102) when the client (102) does not have a connection to the server, based on the registration and notification token, wherein the message is sent using a notification channel.
类似技术:
公开号 | 公开日 | 专利标题
BR112013023325B1|2021-06-08|method and system for communicating with a client, and computer-readable storage medium
US11140135B2|2021-10-05|Scalable proxy clusters
US9210685B2|2015-12-08|Push notification service
US10110538B2|2018-10-23|Method and apparatus for message transmission
BRPI0923885B1|2021-04-27|METHOD FOR REGISTERING A MOBILE DEVICE LOCATED ON A FIRST NETWORK, AS- CSCF NODE FOR USE ON A NETWORK OF SERVICES SWITCHED BY PACKAGES, AND LEGIBLE COMPUTER STORAGE MEDIA
US9009243B2|2015-04-14|Tracking usage of and sharing data between mobile device applications
US9430672B2|2016-08-30|Stack fusion architecture including distributed software clusters to enable software communication services
US8489695B2|2013-07-16|Proxy communications on a social network
US10721096B2|2020-07-21|Intelligent multi-channel VPN orchestration
EP2640045A1|2013-09-18|Method and System for Transferring Mobile Device Contact Information
US10530726B2|2020-01-07|Email notifications
Wilson et al.2011|Privacy, availability and economics in the polaris mobile social network
US9654518B2|2017-05-16|Stack fusion software communication service
US20180255042A1|2018-09-06|Hop latency network location identifier
Khan et al.2018|A Model-Driven Approach for Access Control in Internet of Things | Applications–An Introduction to UMLOA
US20130036190A1|2013-02-07|Resource-conserving technique for as-available data delivery to a mobile device
US20160248836A1|2016-08-25|Scalable self-healing architecture for client-server operations in transient connectivity conditions
US20210120406A1|2021-04-22|Bootstrapping Devices on a Network
US8627431B2|2014-01-07|Distributed network name
US20210342163A1|2021-11-04|Methods for operation of a device, bootstrap server and network node
US10382431B2|2019-08-13|Network hop count network location identifier
US20210211417A1|2021-07-08|Methods and systems to automatically interconnect devices and applications over multi-cloud providers and on-premises networks
US9836311B2|2017-12-05|System and method for management of reboot parameters
Pohančeník2013|Design and implementation of a system to interconnect VoIP services and CERN’s telephony networks
Martínez2012|M. Sc. Thesis Dissertation
同族专利:
公开号 | 公开日
RU2599961C2|2016-10-20|
WO2012125351A2|2012-09-20|
US20150195239A1|2015-07-09|
CA2830200A1|2012-09-20|
KR20140004757A|2014-01-13|
RU2013142272A|2015-03-27|
EP2686824A2|2014-01-22|
CA2830200C|2019-05-21|
KR101971299B1|2019-08-13|
MX2013010582A|2013-10-03|
AU2012229435B2|2017-06-15|
AU2012229435A1|2013-09-12|
US9137191B2|2015-09-15|
BR112013023325A2|2016-12-13|
EP2686824B1|2019-06-19|
US20120239757A1|2012-09-20|
CN102685028A|2012-09-19|
EP2686824A4|2014-09-03|
JP6053699B2|2016-12-27|
US9438552B2|2016-09-06|
JP2014515132A|2014-06-26|
WO2012125351A3|2012-11-22|
CN102685028B|2018-01-02|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US4965718A|1988-09-29|1990-10-23|International Business Machines Corporation|Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data|
US6195702B1|1997-12-01|2001-02-27|Advanced Micro Devices, Inc.|Modem for maintaining connection during loss of controller synchronism|
WO2000016209A1|1998-09-15|2000-03-23|Local2Me.Com, Inc.|Dynamic matchingtm of users for group communication|
US6292825B1|1998-11-12|2001-09-18|International Business Machines Corporation|Service application with pull notification|
JP2003091494A|2001-09-17|2003-03-28|Sanyo Electric Co Ltd|Chat system|
US20060155811A1|2003-03-10|2006-07-13|Goh Han L|System and method for mobile e-mail management|
US7660856B2|2003-10-06|2010-02-09|Microsoft Corporation|Method and system for web-based event notification|
US20060040655A1|2004-08-12|2006-02-23|Lg Electronics Inc.|Timing of point-to-multipoint control channel information|
KR20060033656A|2004-10-15|2006-04-19|주식회사 팬택|Method and apparatus for delaying notification of message receive for use in mobile communication terminal|
KR20060062201A|2004-12-03|2006-06-12|브이케이 주식회사|Multimedia message system and method for providing multimedia message service by selectively spam mail filtering between mms server and mms client|
US20060168037A1|2004-12-21|2006-07-27|Alcatel|Systems and methods for handling presence messages|
WO2006086686A2|2005-02-11|2006-08-17|Critical Path, Inc.|Methods and systems for communicating digital content|
KR100702704B1|2005-04-26|2007-04-02|엔에이치엔|Notification System and Method Using Messenger|
US7730142B2|2005-07-01|2010-06-01|0733660 B.C. Ltd.|Electronic mail system with functionality to include both private and public messages in a communication|
US8134942B2|2005-08-24|2012-03-13|Avaak, Inc.|Communication protocol for low-power network applications and a network of sensors using the same|
US8756317B2|2005-09-28|2014-06-17|Blackberry Limited|System and method for authenticating a user for accessing an email account using authentication token|
CN100514968C|2005-10-11|2009-07-15|华为技术有限公司|Processing method of off-line message and instant information server|
EP1868347A3|2006-06-16|2010-07-14|Ericsson AB|Associating independent multimedia sources into a conference call|
KR101376883B1|2007-03-05|2014-03-21|엘지전자 주식회사|Notification message moving method and terminal|
JP4991383B2|2007-04-27|2012-08-01|楽天株式会社|Message transmission / reception system, server device, server processing program, terminal processing program, and information providing method|
US20080293403A1|2007-05-22|2008-11-27|Colin Shong Chin Quon|Mobile communication service bridging|
US7996473B2|2007-07-30|2011-08-09|International Business Machines Corporation|Profile-based conversion and delivery of electronic messages|
KR100902745B1|2007-09-19|2009-06-15|에스케이 텔레콤주식회사|System and method for re-transmitting mms receive notification message in mobile communication network|
SG157991A1|2008-07-04|2010-01-29|3Rd Brand Pte Ltd Company Regi|Extended messaging platform|
WO2010005789A1|2008-07-10|2010-01-14|Marvell World Trade Ltd.|Systems and methods for reducing power consumption in wireless devices|
WO2010017588A1|2008-08-12|2010-02-18|Clipsal Australia Pty Ltd|System and method for displaying messages in a building automation system|
US20100088387A1|2008-10-03|2010-04-08|Apple Inc.|Email Notification Proxy|
JP5365128B2|2008-10-03|2013-12-11|富士通株式会社|Information system, method, and program related to data registered in batch|
US20100102051A1|2008-10-23|2010-04-29|Whirlpool Corporation|Consumable holder with electronics to communicate with an appliance|
US20100228593A1|2009-03-04|2010-09-09|Google Inc.|Tracking offline responses to indicate online advertisement quality|
US8966110B2|2009-09-14|2015-02-24|International Business Machines Corporation|Dynamic bandwidth throttling|
US8423058B2|2010-04-07|2013-04-16|Apple Inc.|Registering client computing devices for online communication sessions|US8837465B2|2008-04-02|2014-09-16|Twilio, Inc.|System and method for processing telephony sessions|
EP3484135A1|2008-04-02|2019-05-15|Twilio Inc.|System and method for processing telephony sessions|
EP2335402A4|2008-10-01|2013-04-24|Twilio Inc|Telephony web event system and method|
JP5671484B2|2009-03-02|2015-02-18|トゥイリオ インコーポレイテッドTwilio Inc.|Method and system for a multi-tenant telephone network|
US9210275B2|2009-10-07|2015-12-08|Twilio, Inc.|System and method for running a multi-module telephony application|
US9590849B2|2010-06-23|2017-03-07|Twilio, Inc.|System and method for managing a computing cluster|
US9459926B2|2010-06-23|2016-10-04|Twilio, Inc.|System and method for managing a computing cluster|
US9338064B2|2010-06-23|2016-05-10|Twilio, Inc.|System and method for managing a computing cluster|
US9459925B2|2010-06-23|2016-10-04|Twilio, Inc.|System and method for managing a computing cluster|
US8838707B2|2010-06-25|2014-09-16|Twilio, Inc.|System and method for enabling real-time eventing|
US8649268B2|2011-02-04|2014-02-11|Twilio, Inc.|Method for processing telephony sessions of a network|
US8407776B2|2011-02-11|2013-03-26|Good Technology Corporation|Method, apparatus and system for provisioning a push notification session|
US9648006B2|2011-05-23|2017-05-09|Twilio, Inc.|System and method for communicating with a client application|
US20140044123A1|2011-05-23|2014-02-13|Twilio, Inc.|System and method for real time communicating with a client application|
US9398622B2|2011-05-23|2016-07-19|Twilio, Inc.|System and method for connecting a communication to a client|
US10182147B2|2011-09-21|2019-01-15|Twilio Inc.|System and method for determining and communicating presence information|
US9336500B2|2011-09-21|2016-05-10|Twilio, Inc.|System and method for authorizing and connecting application developers and users|
US9495227B2|2012-02-10|2016-11-15|Twilio, Inc.|System and method for managing concurrent events|
US20130244579A1|2012-03-16|2013-09-19|Rapidblue Solutions|Method of enabling proximity based connectivity between mobile devices using different operating systems|
US20130304928A1|2012-05-09|2013-11-14|Twilio, Inc.|System and method for managing latency in a distributed telephony network|
US9240941B2|2012-05-09|2016-01-19|Twilio, Inc.|System and method for managing media in a distributed communication network|
US9602586B2|2012-05-09|2017-03-21|Twilio, Inc.|System and method for managing media in a distributed communication network|
US9247062B2|2012-06-19|2016-01-26|Twilio, Inc.|System and method for queuing a communication session|
US8707454B1|2012-07-16|2014-04-22|Wickr Inc.|Multi party messaging|
US8737962B2|2012-07-24|2014-05-27|Twilio, Inc.|Method and system for preventing illicit use of a telephony platform|
US9276917B2|2012-09-11|2016-03-01|Blackberry Limited|Systems, devices and methods for authorizing endpoints of a push pathway|
US8948356B2|2012-10-15|2015-02-03|Twilio, Inc.|System and method for routing communications|
US8938053B2|2012-10-15|2015-01-20|Twilio, Inc.|System and method for triggering on platform usage|
US9253254B2|2013-01-14|2016-02-02|Twilio, Inc.|System and method for offering a multi-partner delegated platform|
US9282124B2|2013-03-14|2016-03-08|Twilio, Inc.|System and method for integrating session initiation protocol communication in a telecommunications platform|
US9001666B2|2013-03-15|2015-04-07|Twilio, Inc.|System and method for improving routing in a distributed communication platform|
US9338280B2|2013-06-19|2016-05-10|Twilio, Inc.|System and method for managing telephony endpoint inventory|
US9225840B2|2013-06-19|2015-12-29|Twilio, Inc.|System and method for providing a communication endpoint information service|
US9160696B2|2013-06-19|2015-10-13|Twilio, Inc.|System for transforming media resource into destination device compatible messaging format|
US9866591B1|2013-06-25|2018-01-09|Wickr Inc.|Enterprise messaging platform|
US9830089B1|2013-06-25|2017-11-28|Wickr Inc.|Digital data sanitization|
US10129260B1|2013-06-25|2018-11-13|Wickr Inc.|Mutual privacy management|
US10567349B2|2013-06-25|2020-02-18|Wickr Inc.|Secure time-to-live|
US9419930B2|2013-06-28|2016-08-16|International Business Machines Corporation|Management of connections in a messaging environment|
US9483328B2|2013-07-19|2016-11-01|Twilio, Inc.|System and method for delivering application content|
US9274858B2|2013-09-17|2016-03-01|Twilio, Inc.|System and method for tagging and tracking events of an application platform|
US9338018B2|2013-09-17|2016-05-10|Twilio, Inc.|System and method for pricing communication of a telecommunication platform|
US9137127B2|2013-09-17|2015-09-15|Twilio, Inc.|System and method for providing communication platform metadata|
US9325624B2|2013-11-12|2016-04-26|Twilio, Inc.|System and method for enabling dynamic multi-modal communication|
US9553799B2|2013-11-12|2017-01-24|Twilio, Inc.|System and method for client communication in a distributed telephony network|
US9698976B1|2014-02-24|2017-07-04|Wickr Inc.|Key management and dynamic perfect forward secrecy|
US9344573B2|2014-03-14|2016-05-17|Twilio, Inc.|System and method for a work distribution service|
US9282181B2|2014-03-21|2016-03-08|Microsoft Technology Licensing, Llc|Efficient retrieval of 4G LTE capabilities|
US9451032B2|2014-04-10|2016-09-20|Palo Alto Research Center Incorporated|System and method for simple service discovery in content-centric networks|
US9226217B2|2014-04-17|2015-12-29|Twilio, Inc.|System and method for enabling multi-modal communication|
US9584530B1|2014-06-27|2017-02-28|Wickr Inc.|In-band identity verification and man-in-the-middle defense|
US9246694B1|2014-07-07|2016-01-26|Twilio, Inc.|System and method for managing conferencing in a distributed communication network|
US9774687B2|2014-07-07|2017-09-26|Twilio, Inc.|System and method for managing media and signaling in a communication platform|
US9516101B2|2014-07-07|2016-12-06|Twilio, Inc.|System and method for collecting feedback in a multi-tenant communication platform|
US9251371B2|2014-07-07|2016-02-02|Twilio, Inc.|Method and system for applying data retention policies in a computing platform|
EP3210350B1|2014-10-21|2020-05-20|Twilio, Inc.|Method for providing a miro-services communication platform|
CN104539577A|2014-11-27|2015-04-22|英业达科技有限公司|Information push system and information push method|
US9654288B1|2014-12-11|2017-05-16|Wickr Inc.|Securing group communications|
US9477975B2|2015-02-03|2016-10-25|Twilio, Inc.|System and method for a media intelligence platform|
US9948703B2|2015-05-14|2018-04-17|Twilio, Inc.|System and method for signaling through data storage|
US10419891B2|2015-05-14|2019-09-17|Twilio, Inc.|System and method for communicating through multiple endpoints|
WO2016207771A1|2015-06-20|2016-12-29|Wilson Po|Method for non-intrusively establishing a live video and or audio conversation, and facilitating the evaluation of the priority of the conversation topic prior to engaging in the live conversation|
DE102015214740A1|2015-08-03|2017-02-09|Siemens Aktiengesellschaft|Method and system for providing information data|
US9584493B1|2015-12-18|2017-02-28|Wickr Inc.|Decentralized authoritative messaging|
US10291607B1|2016-02-02|2019-05-14|Wickr Inc.|Providing real-time events to applications|
US10659349B2|2016-02-04|2020-05-19|Twilio Inc.|Systems and methods for providing secure network exchanged for a multitenant virtual private cloud|
US9596079B1|2016-04-14|2017-03-14|Wickr Inc.|Secure telecommunications|
US9590958B1|2016-04-14|2017-03-07|Wickr Inc.|Secure file transfer|
US10063713B2|2016-05-23|2018-08-28|Twilio Inc.|System and method for programmatic device connectivity|
US10686902B2|2016-05-23|2020-06-16|Twilio Inc.|System and method for a multi-channel notification service|
US10681163B2|2018-01-10|2020-06-09|Vmware, Inc.|Email notification system|
US11070506B2|2018-01-10|2021-07-20|Vmware, Inc.|Email notification system|
US10614423B2|2018-01-10|2020-04-07|Vmware, Inc.|Email notification system|
法律状态:
2017-07-25| B25A| Requested transfer of rights approved|Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US) |
2018-12-18| B06F| Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]|
2019-10-22| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]|
2021-01-05| B06A| Patent application procedure suspended [chapter 6.1 patent gazette]|
2021-04-06| B09A| Decision: intention to grant [chapter 9.1 patent gazette]|
2021-06-08| B16A| Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]|Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 07/03/2012, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
申请号 | 申请日 | 专利标题
US13/049,913|2011-03-17|
US13/049,913|US9137191B2|2011-03-17|2011-03-17|Messaging for notification-based clients|
PCT/US2012/027928|WO2012125351A2|2011-03-17|2012-03-07|Messaging for notification-based clients|
[返回顶部]