US20070239898A1 - System and method for full wireless synchronization of a data processing apparatus with a messaging service - Google Patents
System and method for full wireless synchronization of a data processing apparatus with a messaging service Download PDFInfo
- Publication number
- US20070239898A1 US20070239898A1 US11/807,290 US80729007A US2007239898A1 US 20070239898 A1 US20070239898 A1 US 20070239898A1 US 80729007 A US80729007 A US 80729007A US 2007239898 A1 US2007239898 A1 US 2007239898A1
- Authority
- US
- United States
- Prior art keywords
- data
- message
- wireless device
- service
- wireless
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000012545 processing Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title description 45
- 238000007906 compression Methods 0.000 claims description 66
- 230000006835 compression Effects 0.000 claims description 66
- 230000004048 modification Effects 0.000 claims description 13
- 238000012986 modification Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 11
- 230000033001 locomotion Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 abstract description 16
- 230000006870 function Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000012217 deletion Methods 0.000 description 7
- 230000037430 deletion Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000012384 transportation and delivery Methods 0.000 description 5
- 238000013144 data compression Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000010923 batch production Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000003490 calendering Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/58—Message adaptation for wireless communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- 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/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- 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
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
-
- 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
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1895—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/26—Network addressing or numbering for mobility support
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This application is a continuation-in-part of co-pending U.S. Application entitled APPARATUS AND METHOD FOR CONSERVING BANDWIDTH BY BATCH PROCESSING DATA TRANSACTIONS, Ser. No. 09/924,283, filed Aug. 7, 2001.
- 1. Field of the Invention
- This invention relates generally to the field of network data services. More particularly, the invention relates to an apparatus and method for synchronizing a wireless data processing device with a wireless messaging service.
- 2. Description of the Related Art
- A variety of wireless data processing devices have been introduced over the past several years. These include wireless personal digital assistants (“PDAs”) such as the Palm® VIx handheld, cellular phones equipped with data processing capabilities (e.g., those which include wireless application protocol (“WAP”) support), and, more recently, wireless messaging devices such as the Blackberry™ wireless pager developed by Research In Motion (“RIM”).™
- Personal digital assistants such as the Palm devices typically provide only limited wireless messaging capabilities (e.g., instant messaging and basic Internet access). For example, these devices typically require a user to manually establish a connection to the Internet via an Internet Service Provider (“ISP”) or to a corporate server to check e-mail messages.
- Although corporate messaging systems such as the RIM Blackberry provide more comprehensive messaging capabilities, there are significant limitations to these systems. Specifically, these systems employ e-mail “redirection” or “forwarding” techniques in which messages are redirected to the wireless device only if certain conditions are met. These conditions, referred to as “redirection events,” may include, for example, an indication that the user is not working at his corporate desktop (e.g., removal of the wireless device from the desktop cradle, a screen saver firing on the desktop, . . . etc) or a manual redirection command initiated by the user (e.g., via the wireless device or the corporate desktop). One such message redirection system is described in U.S. Pat. No. 6,219,694 (“System and Method for Pushing Information From a Host System to a Mobile Data Communication Device Having a Shared Electronic Address”).
- As a result, these systems are (as a practical matter) incapable of providing complete synchronization between the wireless device and the corporate e-mail database. For example, because messages are only redirected to the wireless device under certain conditions (e.g., following a redirection event), at any given point in time, the wireless device may contain an incomplete set of e-mail data. Moreover, even when messages are actively being forwarded to. the wireless device, the e-mail data stored at the wireless device and the e-mail database are not truly synchronized. For example, certain types of transactions performed on the wireless device, such as an indication that a message has been viewed by the user, message deletions, movement of messages from one folder to another, . . . etc., are not updated at the e-mail service wirelessly.
- Moreover, only basic e-mail functions such as sending and receiving messages may be controlled at the wireless device. More advanced e-mail management functions must be set at the user's desktop (e.g., configuring e-mail filters, outgoing e-mail signatures, security settings such as passwords, . . . etc).
- In addition, prior messaging systems require a corporate desktop to which the device must be attached when the user is in the office. The problem with this is not merely that a corporate desktop is required, but also that the corporate desktop must be configured with software and a proprietary “cradle” that allows it to communicate directly to the wireless device.
- Accordingly, what is needed is a system and method for providing complete synchronization and management between a wireless device and a messaging service (e.g., a corporate e-mail account). What is also needed is a wireless apparatus for receiving and sending e-mail messages which does not require a corporate desktop or any software to be installed and executed on the corporate desktop.
- A system is disclosed in which a data processing device is completely synchronized with a messaging service. One embodiment of the system comprises a wireless data processing device; a messaging service to maintain messages and other information on behalf of a user; and synchronization logic for maintaining synchronization of the messages and other information between the wireless device and the messaging service.
- A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which:
-
FIG. 1 illustrates an exemplary network architecture used to implement elements of the present invention. -
FIG. 2 illustrates one embodiment of a system for compressing data. -
FIGS. 3 a-c illustrate an exemplary sequence of related e-mail messages. -
FIG. 4 illustrates one embodiment of a method for compressing data using redundant data found in previous messages. -
FIG. 5 illustrates one embodiment of an apparatus for performing state-based compression. -
FIG. 6 illustrates one embodiment of a state-based data compression format. -
FIG. 7 illustrates a code word table employed to compress data according to one embodiment of the invention. -
FIG. 8 illustrates one embodiment of a method for compressing data with code words. -
FIG. 9 illustrates a text compression module coordinating data compression tasks between a plurality of other compression modules. -
FIG. 10 illustrates a compressed data format according to one embodiment of the invention. -
FIG. 11 illustrates one embodiment of a system for synchronizing message transactions between a wireless device and a service. -
FIG. 12 illustrates an improved embodiment of a system for synchronizing message transactions between a wireless device and a service. -
FIG. 13 illustrates a method for determining whether to enter a batch processing mode. -
FIG. 14 illustrates an embodiment of the invention which employs multi-level batch processing. -
FIG. 15 illustrates an embodiment of the invention which employs in-order control functions. -
FIG. 16 illustrates an embodiment of the invention which maps synchronization identification codes to standard identification codes. -
FIG. 17 illustrates an embodiment of the invention for detecting and resolving data object version conflicts. -
FIG. 18 illustrates an embodiment of the invention in which a move command is transmitted to a wireless device in lieu of a delete command and a new command. -
FIGS. 19 a and b illustrate embodiments of a method for generating a move command. - In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid obscuring the underlying principles of the present invention.
-
FIG. 1 illustrates one embodiment of a network architecture for implementing the compression techniques described herein. The “customer site” 120 illustrated inFIG. 1 may be any local-area or wide-area network over which a plurality ofservers 103 andclients 110 communicate. For example the customer site may include all servers and clients maintained by a single corporation. Theservers 103 may be configured to provide a variety of different messaging andgroupware services 102 to network users (e.g., e-mail, instant messaging, calendaring, . . . etc). In one embodiment, these services are provided by Microsoft Exchange. However, the underlying principles of the invention are not limited to any particular messaging/ groupware platform. - In one embodiment of the invention, an
interface 100 forwards data objects maintained by the service 102 (e.g., e-mail messages, instant messages, calendar data, . . . etc) to a plurality of wireless data processing devices (represented inFIG. 1 by wireless device 130) via anexternal data network 170 and/or a wirelessservice provider network 171. For example, if theservice 102 includes an e-mail database, theinterface 100 transmits any new e-mails which arrive in a user's mailbox on theservice 102 to the user's wireless data processing device 130 (over the network(s) 170 and/or 171). Alternatively, or in addition, theservice 102 may provide the e-mail to the user's local computer (e.g., client 110) upon request (i.e., so that the user will receive the e-mail on his/herwireless device 130 when out of the office and on his/herpersonal computer 110 when in the office). Conversely, e-mail messages sent from the user's wirelessdata processing device 130 are transmitted to theservice 102 via theinterface 100. - In one embodiment, the
interface 100 is a software module adapted to work with the particular service 120. It should be noted, however, that theinterface 100 may be implemented in hardware or any combination of hardware and software while still complying with the underlying principles of the invention. - In one embodiment, the
external data network 170 is comprised of a plurality of servers/clients (not shown) and other networking hardware (e.g., routers, hubs, . . . etc) for transmitting data between theinterface 100 and thewireless devices 130. In one embodiment, theinterface 100 encapsulates data in one or more packets containing an address identifying the wireless devices 130 (e.g., such as a 24-bit Mobitex Access Number (“MAN #”)). Theexternal data network 170 transmits the packets to a wirelessservice provider network 171 which, in turn, transmits the packets (or the data contained therein) over a wireless communication link to thewireless device 130. In one embodiment, the wireless service provider network is a 2-way paging network. However, various other network types may be employed (e.g., CDMA 2000, PCS, . . . etc) while still complying with the underlying principles of the invention. - It should be noted that the network
service provider network 171 and the external data network 170 (and associated interface 100) may be owned/operated by the same organization or, alternatively, the owner/operator of theexternal data network 170 may lease wireless services from the wireless service provider network. The underlying principles of the invention are not limited to any particular service arrangement. - In one embodiment of the invention, the service 102 (e.g., the e-mail database) is fully synchronized with the wireless
data processing device 130. Thus, any actions performed on thewireless device 130 are automatically updated on theservice 102 and any transactions occurring at theservice 102 are automatically reflected on thedevice 130. Synchronization updates of this type may include but are not limited to device configuration modifications, calendar updates, e-mail message updates, instant messages, to-do list updates and/or any other type of personal information management transactions or corporate data management transactions (hereinafter “message transactions”). As one example, when a user views an e-mail message using thedevice 130, an indication that the user viewed the message is transmitted to the service 102 (via the interface 100). Accordingly, if the user subsequently connects to e-mail via aclient 110, the e-mail will appear as having already been viewed. Other actions such as message deletions, filing activities (e.g., moving a message to a particular folder), message responses, meeting confirmations/additions . . . etc, will automatically be reflected in theservice 102, thereby providing complete synchronization between theservice 102, thedevice 130 and/or the client 110 (if one is being used). - Current messaging systems do not offer complete wireless device synchronization. As such, these systems require that the user have a desktop computer with a “cradle” to which the device is attached to received certain types of synchronization updates. One reason for this is that prior systems process message transactions in a relatively inefficient manner and employ only limited compression techniques, thereby making complete synchronization impractical. As such, in order to realize complete wireless synchronization, embodiments of the invention employ one or more of the following compression and/or message processing techniques.
-
FIG. 2 illustrates certain aspects of the wirelessdata processing device 130 and theinterface 100 in greater detail. In one embodiment, thedata processing device 130 is comprised of a local data compression/decompression module 225 (hereinafter “codec module 225”) and alocal message cache 210. Thelocal codec module 225 compresses outgoing data and decompresses incoming data using the various compression techniques described herein. - The
local message cache 210 is comprised of aninput queue 211 for temporarily storing a incoming messages and anoutput queue 212 for storing outgoing messages. Although illustrated as separate logical units inFIG. 2 , thelocal message cache 210 may be comprised of only a single block of memory for storing both incoming and outgoing messages according to a cache replacement policy. In one embodiment, messages are maintained in the input queue and/or output queue using a first-in, first-out (“FIFO”) replacement policy. However, various other cache replacement techniques may be employed while still complying with the underlying principles of the invention. For example, a least-recently used (“LRU”) policy may be implemented where messages used least frequently by thelocal codec module 225 are stored in the cache for a shorter period of time than those used more frequently. As described below, messages used more frequently by thelocal codec module 225 may frequently include messages which form part of a common e-mail thread, whereas those used less frequently may include junk mail or “spam” (i.e., for which there is only a single, one way message transmission). - The
interface 100 of one embodiment is comprised of a remote data compression/decompression module 220 (hereinafter “codec module 220”) and aremote message cache 200 with aremote input queue 201 and aremote output queue 202. Thecodec module 220 compresses messages transmitted to the wirelessdata processing device 130 and decompresses messages received from thedata processing device 130 according to the techniques described herein. Theremote message cache 200 temporarily stores messages transmitted to/from the data processing device 130 (e.g., using various cache replacement algorithms as described above). In one embodiment, the cache replacement policy implemented on theinterface 100 is the same as the policy implemented on the wireless device 130 (i.e., so that cache content is synchronized between theremote cache 200 and the local cache 210). -
FIGS. 3 a-c illustrate an exemplary sequence of e-mail messages which will be used to describe various aspects of the invention.FIG. 3 a illustrates theinitial e-mail message 300 in the sequence which (like most e-mail messages) is logically separated into aheader information portion 305 and atext information portion 310. Also shown inFIG. 3 a is anattachment 320, indicating that a document is attached to the message and an electronic signature which may be automatically inserted in the message by the sender's (i.e., John Smith's) e-mail client. -
FIG. 3 b illustrates thesecond e-mail message 301 in the sequence transmitted by user Roger Collins in response to the initial e-mail message. As indicated by thenew header information 335, this message is transmitted directly to the initial sender, John Smith, and to a user who was CC'ed on the initial e-mail message, Tom Webster. The message is also CC'ed to everyone else in the group to whom the initial message was transmitted. This “reply to all” feature, which is found in most e-mail clients, provides a simple mechanism for allowing a sequence of e-mail messages to be viewed by a common group of individuals. - As illustrated in
FIG. 3 b, thetext 310 of theinitial e-mail message 300 is substantially reproduced in the new e-mail message. This “reply with history” feature is also common to most e-mail clients, allowing a sequence of comments from the individuals in the common group to be tracked from one e-mail message to the next. Also illustrated are a plurality of characters 316 inserted by the responder's (Roger Collins') e-mail system at the beginning of each line of the original e-mail text. This feature, which is common in some (but not all) e-mail systems, allows users to differentiate between new text and old text. - Accordingly, even after the initial e-mail response in a sequence of e-mails, the e-mail history (i.e., the portions of text and attachments reproduced from prior messages) represents a significant portion of the overall message, resulting in the transmission of a significant amount of redundant information being transmitted over the wireless network, in both the text portion of the e-mail and the header portion of the e-mail.
-
FIG. 3 c illustrates thefinal e-mail message 302 in the sequence in which the addressee of the second e-mail responds to the sender of the second e-mail and CC's all of the other members in the group. As illustrated, the only non-redundant information in thee-mail message 302 is a few lines oftext 355. The e-mail addresses of all of the group members are the same as in the previous two messages (although switched between different fields, the underlying addresses are the same) and the text and header information from theprevious messages attachment 320 are reproduced, with only a few minor modifications (e.g., the additional “>”characters inserted by the e-mail system). - One embodiment of the invention compresses e-mail messages by taking advantage of this high level of redundancy. In particular, rather than sending the actual content contained in new e-mail messages, portions of the new messages identified in previous e-mail messages stored in the
caches message 302 all of the redundant content frommessage 301 may be replaced by a pointer which identifies the redundant content inmessage 301 stored in the cache of the user's wireless device. These and other compression techniques will be described in greater detail below. -
FIG. 4 illustrates one embodiment of a method for compressing messages using redundant content found in previous messages. This embodiment will be described with respect toFIG. 5 , which illustrates certain aspects of themessage interface 100 in greater detail. At 400, theinterface 100 receives a message (or a group of messages) to be transmitted to a particular wirelessdata processing device 130. At 405, the message is analyzed to determine whether it contains redundant data found in previous messages. In one embodiment, this is accomplished viamessage identification logic 500 shown inFIG. 5 which scans through previous e-mail messages to locate those messages containing the redundant data. - Various
message identification parameters 505 may be used by themessage identification logic 500 to search for messages. For example, in one embodiment, the message identification logic will initially attempt to determine whether the new message is the latest in a sequence of messages. Various techniques may be employed by themessage identification logic 500 to make this determination. For example, in one embodiment, themessage identification logic 500 will search the subject field of the message for the stings which indicate the new message is a response to a prior message. If these strings are identified, themessage identification logic 500 may then look for the most recent message in the sequence (e.g., based on the text found in the subject field). For example, referring back to theFIGS. 3 a-c, upon receivingmessage 302, themessage identification logic 500 may identify themessage 302 as part of a sequence based on the fact that it contains “RE: Patent Issues” in the subject field. Theidentification logic 500 may ignore the RE: (or FW: if the message is forwarded) and scan to the text in another message which matches the remainder of the subject field (i.e., “Patent Issues”) and identify the most recent previous message containing that text in it's subject header. - If the message subject does not contain characters such as RE: or FW: indicating that the message is part of a sequence, then
message identification logic 500 may employ a different set ofidentification parameters 505 for identifying previous messages. For example, in one embodiment, themessage identification logic 500 will search for the most recent message in which the sender of the new message is listed in the header (e.g., as the recipient). Moreover, themessage identification logic 500 may search for certain keywords or combinations of words indicating that the message contains relevant data (e.g., such as theelectronic signature 315 illustrated inFIGS. 3 a-c). In one embodiment, themessage identification logic 500 may generate a prioritized subset of messages which (based on the defined parameters 505) are the candidates most likely to contain content found in the new message. - If no redundant data exists in prior messages, determined at 410, then at 420 additional compression techniques are applied to compress the message, some of which are described below. If, however, redundant data exists in prior messages then, at 415, the redundant data is replaced with pointers/offsets identifying the redundant data on the
cache 210 of the wireless device 130 (or in thecache 200 of theinterface 100, depending on the direction of message transmission). As illustrated inFIG. 5 , in one embodiment, this is. accomplished by state basedcompression logic 510 which generates the pointers/offsets using the messages identified by themessage identification logic 500. -
FIG. 6 illustrates one embodiment of a state-based compression format generated by the state-basedcompression logic 510. As illustrated, the format is comprised of a one or more chunks ofnon-redundant data offsets lengths message identification data FIG. 6 were used to encodemessage 302 shown inFIG. 3 c, thenew text 302 might be stored asnon-redundant data 601, whereas all ofmessage 301 might be identified by aparticular message ID 604, followed by an offset 602 identifying where to begin copying content frommessage 301 and alength 603 indicating how much content to read from the address point identified by the offset. - Similarly, if
message 301 fromFIG. 3 b were encoded by the state-basedcompression logic 510, thenew text portion 340 might be stored asnon-redundant data 601. Moreover, each of the “>” characters automatically inserted by the e-mail system 316 might be transmitted as non-redundant data, separated by lines of redundant data identified by offsets and lengths (i.e., at the end of each redundant line inmessage 300 identified by lengths/offsets in the new message, a new, non-redundant “>” would be inserted). - In one embodiment, when a user has not received messages for a long period of time, numerous related messages (e.g., such as messages 300-302) may build up in his inbox on the
e-mail service 102. Accordingly, in one embodiment, theinterface 100 will employ state-based compression techniques as described above using pointers to messages which have not yet arrived in the cache of the user's wireless device. That is, theinterface 100 will determine where messages in the group (stored in the user's inbox on the service 102) will be stored in thecache 210 of the wirelessdata processing device 130 once the user re-connects to the service. - Referring once again to
FIGS. 4 and 5 , once the state-basedcompression logic 510 finishes compressing the message, thecompressed message 515 may be transmitted to the user'swireless device 130. Alternatively, at 420, additional compression techniques (described below) may be applied to compress the message further. Once the message is fully compressed it is transmitted to the wireless device (at 425) where it may be decompressed viacodec module 225. - The state-based compression techniques were described above in the context of an
interface 100 compressing messages before transmitting the messages to awireless device 130. It will be appreciated, however, that the same compression techniques may be performed by thewireless device 130 before it transmits a message to the interface 100 (e.g., lengths/offsets may identify redundant data stored in the remote message cache 200). In addition, although described above with respect to e-mail messages, the described compression techniques may be employed to compression various other message types (e.g., newsgroup articles, instant messages, HTML documents . . . etc). - Various additional compression techniques may be employed, either in addition to or as an alternative to the state-based compression techniques just described.
- In one embodiment of the invention, common characters and strings of characters (i.e., which are frequently transmitted between the
wireless device 130 and the interface 100) are encoded using relatively small code words whereas infrequent characters or strings of characters are encoded using relatively larger code words. In order to encode data in this manner, a statistical analysis is performed to identify common character strings. Based on the statistical analysis, a lookup table similar to the one illustrated inFIG. 7 is generated and maintained at both thewireless device 130 and theinterface 100. As illustrated, certain character strings such as the domain used for corporate e-mail “@good.com” and the first 6 digits of the corporate telephone number, e.g., “(408)720-” may be quite common. As such, replacing these common bit strings with relatively small code words may result in a significant amount of compression. Referring back to messages 300-302, using this compression technique, the domain “@good.com” encountered numerous times in each message header could be replaced by a short, several-bit code word. - In one embodiment, a different look up table may be generated for different types of data transmitted between the
interface 100 and the wirelessdata processing device 130, resulting in greater precision when identifying common strings of characters. For example, a different set of code words may be used to compress e-mail messages than that used to compress the corporate address book. Accordingly, the code word table used to compress e-mail messages would likely contain relatively small code words for the most common e-mail domains whereas the corporate address book might also contain relatively small code words for the corporate address and portions of the corporate phone number. - Moreover, in one embodiment, a unique code word table may be generated for each field within a particular type of data. For example, a different code word table may be employed for the e-mail header field than that used for the remainder of the e-mail message. Similarly, a different table may be generated for the “address” field of the corporate address book than that used for the “e-mail address” field, resulting in even greater precision when generating the set of code words.
- Rather than statistically generating and transmitting a code word table for each field, alternatively, or in addition, one embodiment of the invention refers to a dictionary of “known” words, like an English dictionary, and therefore does not need to transmit the dictionary with the data. For example, in one embodiment, a spell-check dictionary maintained on the
wireless device 130 and/or theinterface 100 may be used to compress content. Rather than sending the actual text of the e-mail message, each word in the message would be identified by its entry in the spell-check dictionary (e.g., the word “meeting” might be replaced by entry#3944). - One type of data particularly suitable to the foregoing types of compression is the corporate address book maintained on most corporate e-mail servers. In one embodiment of the invention, the corporate address book is synchronized initially through a direct link to the client 110 (see
FIG. 1 ). On the initial synchronization (e.g., when the wireless device is directly linked to the client 110), statistics on common letters and “tokens” (e.g., names, area codes, e-mail domains) are generated. The statistics and tokens are then used to compress the data as described above. Thereafter, any changes to the address book are wirelessly transmitted. On subsequent updates, the compressors on both sides (wireless device 130 and interface 100) would refer to the earlier statistics gathered, and thus compress without any new statistics or words being transmitted. - The updates may represent a small percentage of the entire address book, but may still represent a significant number of bytes, especially when multiplied by all the wireless devices in use in use at a given company. Accordingly, reducing the amount of data required to transmit the updates to the address book as described above, would result in a significant savings in transmission costs. Additionally, as the address book can be very large relative to the storage available on the client, storing the address book on the client in a compressed form will allow more entries to be stored.
- In one embodiment, to conserve additional space, only certain fields of the corporate address book will be synchronized wirelessly. For example, only the Name, Address, E-mail, and Phone Number fields may be updated wirelessly. All fields of the address book may then be updated when the wireless device is once again directly linked to the
client 110. - One embodiment of a method for generating a code word table is illustrated in
FIG. 8 . At 810, occurrences of certain byte strings are calculated for use by a standard Huffman compression algorithm. At 820 certain “tokens” are generated for a particular field based on the natural boundaries for that field type. For example, as described above, e-mail addresses could be broken into “.com” and “@good.com” as described above for e-mail fields. Phone numbers might be broken into “(650)” and “(650)620-” for address book fields. - At 830 the occurrences of tokens are counted in the same way as the occurrences of the byte strings are counted, though one occurrence of, say, a four-byte token adds four to the count. At 840 a code word table of all the letters and those tokens that occur more than once (or maybe the top N tokens that occur more than once) is generated. Part of the table will include the tokens themselves. At 850, each record is compressed using the code word table of characters and tokens and, at 860, the code word tables and the compressed records are then sent to the
wireless device 130. - In one embodiment, the code word tables are identified with a unique number, such as a timestamp. Both the
interface 100 and thewireless device 130 would store the tables. On thewireless device 130, the records may remain compressed to conserve space, being decompressed only when opened. On subsequent syncs, thewireless device 130 may request updates to the corporate dictionary. As part of the request, thewireless device 130 may include the unique number assigned to the code word tables. If, for some reason, thewireless device 130 doesn't have the original tables, it may send a particular type of ID to notify the interface 100 (e.g., by using a “0” for the ID). Likewise, if the host doesn't recognize the ID for some reason, it can ignore the original tables and create new ones. - In most cases, however, the
wireless device 130 andinterface 100 will agree on what the ID is, and the compression of the update will use the existing code word tables previously computed. For example, a new employee with the same e-mail domain and phone prefix as existing employees would compress nicely. Since the updates should be a small percentage of the overall address book, it will most likely be very similar to the existing data. - One embodiment of the invention converts alphanumeric characters (e.g., standard ASCII text) into a proprietary variable-bit character format, allocating relatively fewer bits for common characters and relatively more bits for uncommon characters. In one particular embodiment, 6 bits are allocated for most characters, and 12 bits are allocated for all other characters. This embodiment may be seamlessly integrated with the other forms of compression described above (e.g., message pointer generation, code word lookups, . . . etc) through an escape function described below.
- Most messages will have ASCII text in them. For example, the TO: field in an e-mail, or the name in an Address Book entry are generally comprised of ASCII text. Most ASCII text use 7 bits/character. Typical exceptions are accented characters, like ñ or ö. Realistically, though, most text in a text field consists of a-z, 0-9, space, and a few symbols.
- Compressing text using code word tables as described above is a good way to encode large amounts of text, because it gathers statistics about how frequently a given character occurs, and represents more frequent characters in fewer bits. For example, the letter ‘e’ occurs more often than the letter ‘k’, so it may be represented in, say, 3 bits. It is also particularly suitable for compressing data in specific data fields where it is known that the same character strings appear regularly (e.g., such as the e-mail domain “@good.com”). One problem with this technique, however, is that it requires transmitting and storing the statistical information with the encoded text. For small amounts of text (e.g., short e-mail messages), this becomes impractical.
- A 6-bit character format provides for 64 characters (26=64). In one embodiment, the following symbols are encoded using 6-bits: a zero, handy for denoting the end of strings; ‘a’ through ‘z;’ ‘0’ through ‘9;’ space; and the most common symbols (e.g., dot, comma, tabs, new-lines, @, parens, !, colon, semicolon, single, double quotes, . . . etc). The values above account for 48 of the 64 values, leaving 16 values remaining.
- In one embodiment, the remaining 16 values are used for the following escape values:
- (1) Four values for combining with the next 6-bits to allow any possible ASCII value to be encoded in two 6-bit values. It allows for any upper case letter, symbols not in the top ten, accented characters, and so on. For example, binary values of 60, 61, 62, and 63 may each identify another 6-bit value which contains the underlying character information. This provides for the coding of an additional 256 characters (4*64=256), more than enough to encode the entire US-ASCII character set.
- (2) Shift Lock. Turns on shifting until a subsequent Shift Lock turns off shifting. For letters, this is like a caps lock. For numbers and symbols, this may have no effect. Alternatively, a second set of values may be defined when shift lock is on (e.g., a second “top ten” list of symbols).
- In one embodiment, the remaining 11 6-bit characters are “installable escape values,” allowing one or more standard or custom compressors. For example, the TO:, FROM:, CC:, and BCC: fields in an e-mail all contain a list of e-mail addresses, separated by a semicolon. As such, the following special escape values may be defined: (1) the customer's/user's e-mail address may be converted into a 6-bit value; (2) the customer's/user's domain may be converted into a 6-bit value (e.g., “@Good.Com” would become 6 bits); (3) “common” domain names and suffixes may be converted into a 6-bit value and a 6-bit argument (e.g., the “common” list may be 64 of the most common names, and might include “@aol.com”, “@webtv.com”, “.com”, “.net”,“.org”, “.gov”, “.us”, “.uk”, . . . etc); and (4) names “used recently” in an e-mail may be converted into a 6-bit value and a 6-bit argument. Elsewhere in the message is the e-mail ID this is dependent on. The argument might include 2 bits identifying the field (TO:, FROM:, CC:, or BCC:), and 4 bits identifying the first 16 e-mail addresses in that field.
- The new character format may be employed seamlessly with the other types of compression described above (e.g., code words, repeated characters; LZ compression; dictionary lookups; and/or referring to prior messages). In one embodiment, illustrated in
FIG. 9 , atext compression module 900 compresses text according to the 6-bit character format described above and coordinates compression functions between various other compression modules. In the illustrated embodiment, this includes a state-basedcompression module 910 for compressing messages by referring to prior, cached messages (as described above) and a codeword compression module 920 which compresses common character strings using code words (e.g., by encoding statistically-analyzed tokens, referring to a spell-check dictionary, . . . etc, as described above). In addition, as indicated byalternative compression module 930, various other types of compression may be employed on the system to attain an even greater level of compression (e.g., standard LZ compression). -
FIG. 10 illustrates an exemplary portion of e-mail message 302 (fromFIG. 3 c) encoded according to this embodiment of the invention. Starting from the upper right corner of thee-mail message 302, thetext compression module 900 begins encoding the first set of characters (i.e., starting with the addressee field “TO:”). With each character it coordinates with theother compression modules text compression module 900 encodes the text according to the 6-bit character format. If a higher level of compression can be achieved with one of theother compression modules text compression module 900 hands off the compression task to that module and inserts an “escape” sequence of bits indicating where the compression task was accomplished by that module. - For example, as illustrated in
FIG. 10 , the escape sequence “110010” following the first three characters (“TO:”) indicates that the codeword generation module 920 compresses the subsequent portion of data. In operation, once this point in the e-mail message is reached, the codeword generation module 920 notifies thetext compression module 900 that it can achieve a higher level of compression using code words (e.g., using a tokenized e-mail address). Accordingly, the sequence “1011001000” following the escape sequence “110010” is a code word representing the tokenized e-mail address “Collins, Roger” <rcollins@good.com>. Alternatively, two or more code words may be used to encode the e-mail address, depending on the particular set of code words employed by the system (e.g., one for the individual's name and a separate one for the domain “@good.com”). As indicated inFIG. 10 , thetext compression module 900 may then pick up the encoding process following the tokenized e-mail address (i.e., the return character followed by the text “FROM:”). - After the e-mail header information is encoded, the block of
new text 355 is encoded using the 6-bit character format. Of course, depending on the code words employed by the codeword generation module 920 and/or previous e-mails on the system, portions of the block ofnew text 355 may also be encoded using code words and/or pointers to previous messages. Following thetext block 355, the state-basedcompression module 910, after analyzing the message, notifies thetext compression module 900 that it can achieve a higher level of compression by identifying content found in a previous message. As such, an escape sequence “110011” is generated indicating that compression is being handled by the state-basedcompression module 910 from that point onward. The state-basedcompression logic 910 then identifies a previous e-mail message using a message ID code (indicating message 301), and generating an offset and a length indicating specific content within that e-mail message (e.g., employing one or more of the state-based compression techniques described above). - It should be noted that the specific example shown in
FIG. 10 is for the purpose of illustration only. Depending on the code words employed by the system and/or the previous messages stored on the system, the actual encoding of thee-mail message 302 may turn out to be different than that illustrated. For example, as mentioned above, the block oftext 355 may be encoded using code words and/or pointers to previous messages as well as the 6-bit character format. - Various supplemental/alternative compression techniques may also be employed (e.g., represented by alternate compression module 930). In one embodiment, certain types of data are not transmitted wirelessly between the wireless
data processing device 130 and theinterface 100. For example, in one embodiment, when a device has been unable to receive messages for a certain period of time (e.g., one week), only message headers are initially transmitted to thedevice 130, thereby avoiding an unreasonably long download period (i.e., wherein all messages received over the period of unavailability are transmitted to the device). Alternatively, or in addition, in one embodiment, when the device is out of touch for an extended period of time, only relatively new messages (e.g., received over a 24-hour period) are transmitted to the device when it comes back online. Similarly, in one embodiment, only e-mail header information is transmitted to the wireless device 130 (e.g., indicating the subject and the sender) when the user is a CC addressee and/or when the e-mail is from a folder other than the user's inbox. - In one embodiment, only certain fields are updated on the
device 130. For example, with respect to a corporate or personal address book, only Name, E-mail Address and Phone Number fields may be synchronized on thedevice 130. When the device is connected directly to the client, all of the fields may then be updated. - In one embodiment, certain details are stripped from e-mail messages to make them more compact before transmitting them to the
device 130. For example, only certain specified header information maybe transmitted (e.g., To, From, CC, Date, Subject, body, . . . etc). Similarly, the subject line may be truncated above a certain size (e.g., after 20 characters). Moreover, attachments and various formatting objects (e.g., embedded pictures) may not be transmitted. In one embodiment, when a user lists him/herself as a CC addressee on an outgoing message, this message will not be retransmitted back to thewireless device 130. - Although attachments may not be transmitted to the
wireless device 130, in one embodiment, users may still forward the attachments to others from the wireless device (the attachments will, of course, be stored on the e-mail server). Moreover, in one embodiment, attachments may be sent to a fax machine in response to a user command from thewireless device 130. Accordingly, if a user is away from the office and needs to review a particular attachment, he can type in the number of a nearby fax machine and transmit this information to theinterface 100. Theinterface 100 will then open the attachment using a viewer for the attachment file type (e.g., Word, Power Point, . . . etc) and transmit the document via a fax modem using the fax number entered by the user. Thus, the user may view the attachment without ever receiving it at the device. - As illustrated in
FIG. 11 , under certain conditions, maintaining complete synchronization between thedevice 130 andservice 102 may consume a significant amount of wireless bandwidth. For example, if a user has been out of range for an extended period or time (e.g., the device is turned off) a plurality of messages may be transmitted in succession from theinterface 100 to thewireless device 130 when the device is back within range. In some cases, of course, the user may not necessarily be out of range at all. Rather, the user may simply receive/ transmit a significant number of e-mail messages is succession. - As illustrated, once the user begins viewing messages on the
device 130, message transaction updates are continually sent to theinterface 100. For example, when the user readsmessage 1, an indication that the message was read is transmitted to theinterface 100. This may be followed by an acknowledgement from the interface 100 (e.g., indicating that the communication was received). Similarly, when the user reads and then deletesmessage 2, separate indications that the message was read and then deleted are transmitted to theinterface 100, respectively, followed by an acknowledgement for each transaction. - Because each individual data transmission between the
device 130 and theinterface 100 may include a significant amount of overhead (e.g., header information such as thedevice address 130, theservice address 102 and various other types of header/control information), and because each message may require an acknowledgement from theinterface 100, synchronizing messages in this manner may consume a significant amount of bandwidth. Put another way, the ratio of actual data (e.g., database updates) to control data (e.g., header data) will be relatively low. Moreover, continual data transmissions of this type will tend to consume significantly more power (e.g., because the device's radio will not be idle long enough to enter its low-power mode). - Accordingly, in one embodiment of the invention, under certain conditions (described below), data transactions between the
device 130 and theinterface 100 are combined, or batch-processed to conserve bandwidth. For example, as illustrated inFIG. 12 , in this embodiment, a plurality of message transactions are performed on the data processing device before the device is synchronized with theservice 102. Subsequently, asingle transmission 1201 containing all of the synchronization updates (e.g., message viewings and deletions, message responses, . . . etc) is transmitted to theinterface 100, followed by asingle acknowledgement 1202 that the update was received. - Similarly, under certain conditions, database modifications at the
service 102 may be batch-processed before being transmitted to thedevice 130. For example, if the user is in the office reading through and responding to a series of e-mail messages (e.g., from the client 110), transmitting each message transaction to thewireless device 130 independently of one another may not be efficient for the reasons set forth above. As such, in one embodiment, these transactions (or a subset thereof) are combined and concurrently transmitted to thewireless device 130. - As indicated in
FIG. 12 , the specific conditions under which batch-processing is initiated and (once initiated) the specific manner in which the messages are combined may be based onprocessing parameters 1210, 1220 configured in thewireless device 130 and/or theinterface 100, respectively. For example, in one embodiment, batch processing will be triggered if the user has not checked messages for an extended period of time (e.g., two days). In this case, it is expected that once the user begins to check messages he/she will perform a significant number of message transactions within a relatively short period of time. It should be noted, however, that various different batch-processing triggers may be employed while still complying with the underlying principles of the invention (e.g., two or more successive message transactions within a predetermined period of time, manual triggering set by the end user, . . . etc). - Once batch-processing is triggered, message transactions occurring over periodic intervals (e.g., every 10 minutes) may be combined and transmitted at the end of each interval. Alternatively, or in addition, once the combined message transactions reach some predetermined threshold (e.g., based on the sheer number of transactions and/or the amount of data contained within the combined transactions), the combined messages may be transmitted together. Various other message combination parameters may be employed while still complying with the underlying principles of the invention.
- One embodiment of a method for performing batch processing of message transactions is illustrated in
FIG. 13 . At 1301, current message transaction conditions are evaluated (e.g., the frequency with which message transactions are performed, when the last message transaction was initiated, . . . etc). At 1305 it is determined whether the current conditions match the threshold conditions required for batch processing. For example, as described above, if the user's wirelessdata processing device 130 has been out of range for a predetermined period of time and/or if the user has not checked his e-mail for a period of time, the batch processing mode may be invoked. - If the conditions are not met, then at 1310, the system remains in standard message transaction mode. If, however, the conditions have been met, then at 1315, the system (i.e., the
wireless device 130 and/or interface 100) processes messages according to the established batch-processing parameters. For example, at this stage thedevice 130 and/orinterface 100 may combine message transactions which occur over a predetermined period of time (or which result in a specified number of transactions or amount of data as described above). - At 1325 it is determined whether the standard message processing conditions have once again been met. For example, if the user's data processing device has been in range for a predetermined period of time after entering the batch-processing mode, and the user is periodically receiving and quickly responding to messages, this may cause the system to revert back to the standard message transmission mode. Depending on the system configuration, various additional/alternative conditions may cause the system to enter its standard message processing mode.
- In one embodiment of the invention, two levels of batch processing are employed: one at the customer site 120 and another at a data center located on the
external data network 170. This embodiment will be described with respect toFIG. 14 which shows adata center 1410 communicatively coupled to the customer site via anoutbound gateway 1413 and to thewireless network 171 via awireless gateway 1411. -
Batch processing logic 1400 at the customer site provides the first level of batch processing. Specifically, in one embodiment, when a user concurrently performs a group of message transactions, thebatch processing logic 1400 logically combines the message transactions before transmitting them to thedata center 1410. For example, when a user deletes a block of e-mail messages or moves a block of messages from one folder to another, the block of individual deletions/moves are transmitted as a group (i.e., as opposed to transmitting a series of individual deletes/moves and waiting for an equal number of individual acknowledgements form the data center 1410). In addition; the block of message transactions are temporarily stored off in the remote message cache 200 (described above with respect toFIG. 2 ), or in an alternate cache at the customer site. - At the
data center 1410, the batch-processed message transactions are initially stored off in a secondary cache, referred to herein as a “message switch” 1412. After receiving and storing the block of message transactions, the message switch sends a block acknowledgement to thebatch processing logic 1400, which may thereafter delete the block of message transactions from theremote message cache 200. Alternatively, thebatch processing logic 1400 may continue to store the block of message transactions for some predetermined amount of time or after some predetermined event has occurred (e.g., until it receives an indication that the message transactions have been successfully received by the wireless device 130). - If the wireless device is actively connected to the wireless network, the message transactions are forwarded from the
message switch 1412 to the wireless device as a group (via the wireless gateway 1411). For example, an indication that 10 messages have been moved from the user's “inbox” to the user's “saved mail” folder may be transmitted together. Thewireless device 130 may then respond with a single acknowledgement that it received all 10 message transactions. Alternatively, if one of the message transactions had not been successfully received, thewireless device 130 may request that individual message transaction as opposed to the entire group (as described in detail below in the section entitled “In-Order Delivery of Message Transactions”). - In one embodiment, the
message switch 1412 performs a second level of batch processing functions in addition to (or in lieu of) the first level of batch processing performed by thebatch processing logic 1400 at the customer site. Specifically, themessage switch 1412 batch-processes sequences of message transactions generated over a period of time as opposed to the bulk message transactions (e.g., “delete 10 messages”) just described. For example, a user will typically read one new e-mail message after another at the customer site, and may continually add new to-do list entries and calendar entries throughout the day. In one embodiment, these individual message transactions are transmitted from theinterface 100 to themessage switch 1412 as they occur at theservice 102. For example, when a user reads a single new e-mail message, an indication that the message has been read is transmitted to themessage switch 1412. Similarly, when a user generates a new calendar entry, the new entry is automatically transmitted to themessage switch 1412. - In one embodiment, the
message switch 1412 groups the various individual message transactions together before transmitting them to thewireless device 130. If thewireless device 130 is actively connected to the wireless network, themessage switch 1412 may group a certain number of message transactions together and/or may group all message transactions together occurring over a period of time before transmitting them as a group to thewireless device 130. While thewireless device 130 is not actively communicating over the wireless network, themessage switch 1412 may combine all message transactions and transmit them as a group once the wireless device comes online. In one embodiment, themessage switch 1412 and/or thebatch processing logic 1400 may batch-process message transactions based on thebatch processing parameters 1210 and 1220 described above with respect toFIG. 12 . - In order to fully synchronize a
wireless device 130 with aservice 102 as described herein, it is not only important that message transactions are reliably communicated to and from the wireless device but also that the message transactions are communicated in the proper order (e.g., in the same sequential order in which they occur at the service). For example, if a user creates a new folder at theservice 102 and then moves several messages into the folder, the transaction creating the folder must be received by the wireless device before the move transaction. - While wireless networks such as Mobitex ensure reliable delivery of data, they do not necessarily ensure that the delivered data arrives in-order. Moreover, while network protocols such as the Transmission Control Protocol (“TCP”) ensure in-order delivery of data, these protocols assume that both the sending node and the receiving node are always active and, therefore, are not necessarily adapted to a system in which one of the nodes (i.e., the wireless device) is inactive for extended periods.
- As such, one embodiment of the invention illustrated in
FIG. 14 , employs in-order control logic wireless device 130 to the interface 100), the wireless device 130 (or the interface 100) will not execute a particular message transaction until it has received all previous sequential message transactions. Thus, if thewireless device 130 receives a series of message transactions coded sequentially from 1 to 3 and from 5 to 10, it may executemessage transactions 1 to 3 but will not execute message transactions 5 to 10 until it receives message transaction 4. - In one embodiment, if the wireless device has not received message transaction 4 after some specified period of time (e.g., because the message transaction was lost during transmission), the
wireless device 130 will send a request to thedata center 1410 and/or theinterface 100 to retransmit message transaction 4. The in-order control logic interface 100 and/or thedata center 1410, respectively, will then retransmit message transaction 4 from either theremote message cache 200 or themessage switch 1412, respectively. - The
wireless device 130 notifies theinterface 100 and/or themessage switch 1412 once it successfully receives message transaction 4, thereby allowing the message transaction to be removed from theremote message cache 200 and/or the message switch 1412 (i.e., assuming that other cache removal conditions described herein have been met). In one embodiment, the wireless device may send a block notification as opposed to an individual notification for each message transaction. For example, rather than simply sending a notification that it has received message transaction 4, thewireless device 130 may send a single notification that it has successfully received messages 1-10 (or some alternate number of message transactions), thereby allowing all messages to be cleared fromremote message cache 200 and/or themessage switch 1412 with a single notification. It should be noted that the sequential transaction numbers set forth above are for the purpose of illustration only. Various alternate sequential codes may be employed to indicate message transaction order while still complying with the underlying principles of the invention. - Each e-mail message, calendar entry, to-do list entry, . . . etc, is assigned a unique identification code by the
service 102. For example, if the service is Microsoft Exchange, a 128-byte identification code is generated for each new data object. Accordingly, when fully synchronizing awireless device 130 to theservice 102, some mechanism must be provided to ensure that no duplicate identification codes are assigned for two distinct data objects. For example, if both theservice 102 and thewireless device 130 are capable of independently generating data objects, they may both concurrently generate data objects with the same identification codes, resulting in a conflict. - One mechanism for solving this problem is to require the
wireless device 130 to request a new identification code from theservice 102 each time it generates a new data object. One potential problem with this scenario is that it may take an unreasonably long time for thewireless device 130 to acquire the identification code, depending on the speed of the wireless network. For example, several seconds may be considered an unreasonable amount of time to wait to begin entering a new e-mail message or calendar entry. - Alternatively, in one embodiment, the range of all possible data object codes are divided between the
wireless device 130 and theservice 103. In other words, a certain percentage (e.g., ½) of all possible codes are allocated to thewireless device 130 and the remaining possible codes are allocated to theservice 103. In operation, when a new data object is generated at the wireless device (e.g., a new “to-do” list entry) thewireless device 130 will select a data object code only from within its pre-assigned range, thereby preventing a conflict at theservice 102. In one particular embodiment, all negative codes are assigned to thewireless device 130 and all positive codes are assigned to theservice 102. If a 32-bit (4-byte) code is used, this will result in 2,147,483,648 (231) negative codes and 2,147,483,648 (231) positive codes. It should be noted, however, that the particular manner in which codes are divided up is not pertinent to the underlying principles of the invention. - Another potential problem which exists when fully synchronizing a wireless device with a service is that the standard data object identification codes employed by many services are unnecessarily large. As mentioned above, Microsoft Exchange generates a 128-byte (1024 bit) code to identify each unique data object.
- Accordingly, in one embodiment of the invention illustrated in
FIG. 16 , theinterface 100 includes object identificationcode mapping logic 1600 for mapping standard data object identification codes 1620 (e.g., such as the 128-byte codes used by Microsoft Exchange) to data objectidentification codes 1610 generated specifically for use in the synchronization system described herein (hereinafter “synchronization system identification codes”). As illustrated, object identificationcode mapping logic 1600 maintains a data object identification table 1605 in which eachstandard identification code 1620 is associated with a corresponding synchronizationsystem identification code 1610. As described above, in one embodiment, the synchronizationsystem identification codes 1610 are 32-bits in length, thereby significantly reducing the amount of information transmitted across the wireless network. In addition, as indicated inFIG. 16 ,negative identification codes 1610 identify data objects created by thewireless device 130 andpositive identification codes 1610 identify data objects created at the service 102 (e.g., from a local desktop PC). - Because copies of data objects may be maintained at both the
wireless device 130 and on theservice 102, one embodiment of the invention employs techniques to ensure that concurrent modifications to the same data object at both thewireless device 130 and theservice 102 are resolved in a logical manner. For example, in one embodiment, a version number is associated with each data object. Each time the data object is modified, the version code is changed to indicate the new version. - In one embodiment, illustrated in
FIG. 17 , theinterface 100 and/or the wirelessdata processing device 130 includes conflict detection logic 1700 and 1701, respectively, for detecting when a version conflict has occurred andconflict resolution logic 1710 for implementing one or more predefined conflict resolution techniques to resolve the version conflict. By way of example, inFIG. 17 , a copy of Data Object X,Version 1 is initially stored on both thewireless device 130 and theservice 102.Version 1 may be, for example, the initial version of a calendar entry or a to-do list entry. Both copies of Data Object X,Version 1 are concurrently modified at theservice 102 and thewireless device 130 to generateVersions wireless device 130 at the same time as the user' administrative assistant modifies Data Object X at theservice 102. Thewireless device 130 subsequently attempts to update theservice 102 withVersion 2 2 and, likewise, theservice 102 attempts to update thewireless device 130 withVersion 2 1. - In one embodiment, the conflict detection logic 1700, 1701 executed on the
interface 100 and/or thewireless device 130, respectively, detects the version conflict. In response, the conflict detection logic 1700, 1701 triggersconflict resolution logic 1710, 1711 which attempts to resolve the conflict by applying one or more conflict resolution techniques. Various techniques may be employed to resolve the conflict. For example, in one embodiment, the version of the data object at the service 102 (Version 2 1) is automatically retained, and the user is notified that his modification of the data object from thewireless device 130 will not be entered. The notification may be accompanied by a visual indication of the new version (Version 2 2) and/or an explanation as to why the modification will not be entered. Alternatively, in one embodiment, the user may be prompted from the data processing device to select between the two potential versions. Upon making a selection, the selected version will be stored on both thewireless device 130 and theservice 102. If another individual attempted to enter the non-selected version (e.g., the user's administrative assistant), then that individual may subsequently be notified. In one embodiment, the version which is selected is based on who entered it. For example, one embodiment of the invention may be configured to always accept the version generated by the user (i.e., and not the user's administrative assistant). Thus, if the user modifies Data Object X from either thewireless device 130 or directly at the service 102 (i.e., from a desktop connected to the service 102), the user's modifications will be accepted over any other modifications. - It should be noted that the specific conflict resolution techniques described above are for the purpose of illustration only. Various additional conflict resolution techniques may be employed by the
conflict resolution logic 1710, 1711 while still complying with the underlying principles of the invention. - The advanced compression and message processing techniques described above allow the
wireless device 130 to be fully synchronized with theservice 102. For example, in one embodiment of the invention, all major components of the messaging service are completely synchronized on thewireless device 130. For example, if the service is Microsoft Exchange, these components will include e-mail, electronic calendar, contacts, tasks and notes. Accordingly, all user transactions (message filings, to-do list entries, . . . etc) are maintained up-to-date on the wireless device without the need for a cradle. - In one embodiment, not only are messages synchronized, but the entire state of the
service 102 may be synchronized. This state information may include, for example, the creation of new folders, the deletion of old folders, filing of messages to folders, reading a message from the device, marking a message unread, e-mail deletions, arrival of new messages, copying of messages to a folder, filing of messages and/or any other transaction which has an effect on the mailbox maintained at the service. - In addition, in one embodiment, the
wireless device 130 is provisioned wirelessly. Thus, once a user's account has been enabled on the service, all initial user data is sent wirelessly. This data may include, for example, initial contacts (e.g. address book), notes, tasks and calendar data. In one embodiment, a unique encryption key may initially be installed on thewireless device 130 to encrypt communication between the device and the service (e.g., by device installation software). - In one embodiment, even though the data on the
wireless device 130 is completely synchronized, an aging algorithm may be employed to conserve space on the device. For example, at a given point in time, the service may be storing 40,000 data objects (e.g., e-mail messages, calendar entries, . . . etc), whereas, the wireless device (having a limited amount of memory) may only be capable of storing 20,000 data objects. Accordingly, in one embodiment, thewireless device 130 will store data objects which have not been modified or otherwise manipulated (e.g., moved from one folder to another) for the longest period of time. In one embodiment, the user may specify which types of messages should be automatically deleted (e.g., only messages in the “sent mail” folder, any messages over 1 month old, etc). Once a message has been removed from the device, however, it may always be recovered from the service. - For example, a user may request certain data objects to be re-transmitted from the
service 102 based on one or more specified variables (e.g., creator, client, sender, recipient, date range, . . . etc). Similarly, in one embodiment, if the user manipulates a data object which has been deleted from thewireless device 130 from the user's desktop (e.g., moves an e-mail message from one folder to another) that data object will be re-transmitted to the wireless device and stored in the destination folder. - One embodiment of the invention maintains synchronization events even if any part of the system is “down” (e.g., the
data network 170 and/or the wireless service provider network 171). For example, as described above, any synchronization events which occur during system downtime may be maintained in one of thebatch processing caches data center 1410 and/or theinterface 100, respectively. Thus, theinterface 100 may be down for a period of time, thedata network 170 may be unavailable, thewireless device 130 may be off, out of coverage or broken, and synchronization updates will still be maintained. Once all parts of the system are again working properly, the queued synchronization updates are processed. - In one embodiment of the
interface 100, “move” events are detected and processed in an efficient manner. As indicated inFIG. 18 between theservice 102 and theinterface 100, when a message (or other data object) is moved from one folder to another on messaging systems such as Microsoft Exchange (e.g., from “sent mail” folder to a “saved mail” folder, from the “inbox” folder to a “read mail” folder, . . . etc), a new copy of the message is made in the location of the destination folder and the original message is then deleted from the source folder. Alternatively, the message may initially be deleted from the source folder and then re-created in the destination folder. Transmitting a delete command followed or preceded by a copy of the underlying message to thewireless device 130 is an inefficient way to perform move transactions. Accordingly, as indicated inFIG. 18 , one embodiment of theinterface 100 combines the “delete” and the “new” commands into a single “move” command using the data object (i.e., message) identification code, the source folder and/or the destination folder, thereby significantly reducing the amount of information transmitted across the wireless network. - In order to provide a move command to the
wireless device 130 in this manner, the system (e.g., the interface 100) must first identify the message which is to be moved. One embodiment of the interface identifies the message using the methods set forth inFIG. 19 a and/orFIG. 19 b, either alone or in combination. Referring initially toFIG. 19 a, at 1900 theinterface 100 detects that Message X has been deleted from Folder A. At 1910, theinterface 100 attempts to determine if the deletion forms part of a move command. As such, it searches other folders in the user's account to locate the same message. If it finds the same message in a particular folder, e.g., Folder B, it transmits a move command to thewireless device 130 at 1930 indicating that Message X should be moved from Folder A to Folder B. If, however, it does not locate Message X in another folder, it transmits a delete command to the wireless device indicating that Message X should be deleted from Folder A. - Referring now to
FIG. 19 b, in one embodiment, theinterface 100 initially detects that Message X has arrived in Folder B. In response, theinterface 100 searches the table of data object identification codes 1605 (see, e.g.,FIG. 16 ) to locate a match for the identification code associated with the Message X. If a match is found (determined at 1970), then theinterface 100 transmits a move command to thewireless device 130 indicating that Message X should be moved from Folder A to Folder B. If, however, theinterface 100 does not locate an identification code match, it transmits a delete command to the wireless device indicating that Message X should be deleted from Folder A. - When a
wireless device 130 has been “out-of-touch” with theservice 102 for an extended period of time, a significant number of transactions may have accumulated which need to be synchronized. Accordingly, in one embodiment, in the interest of both saving bandwidth and time on the device (e.g. not swamping it with unsynchronized data), only representative portions of some data may be transmitted. For example, if thewireless device 130 has been off for two weeks, only message headers may be transmitted to the device (i.e., not the message bodies). The underlying reason for this is that the user will not likely want/need to read all of the older mail on the device. - In one embodiment, the specific manner in which data is transmitted to the device after an extended period of time may be selected by the user. Thus, the user may select a period of time after which only headers should be sent (e.g., older than 1 week, never, etc). In any case, the user may still request the full messages bodies after the headers have been transmitted.
- As used herein, “zero desktop install” refers to the ability of the
wireless device 130 to function normally without the installation of any client software on a user's desktop computer. One embodiment of the invention does not require a desktop because, as described above, all messaging features (e.g., management of device options, configuration of the messaging service, message filters, outgoing e-mail signatures, security settings, . . . etc) may be accessed by the wireless device. This feature is not available in current messaging systems because current wireless devices support only a subset of all messaging functions. As such, current systems require desktop software and a cradle to complete the synchronization process. - In one embodiment, the wireless device's configuration settings are stored and continually updated on the messaging server. Accordingly, if the device settings are ever lost (e.g., because the device is initialized or lost) the settings may be automatically recovered along with the messaging data. In fact, in one embodiment, the device does not ever need to be backed up because there is no data unique to the device that isn't synchronized to the messaging server.
- In addition, in one embodiment, software upgrades are transmitted wirelessly to the device, thereby completely removing any required link between the device and a desktop. Software upgrades may include upgrades to the device's operating system as well as application installations.
- Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions. The instructions can be used to cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hard wired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
- Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
- Throughout the foregoing description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. For example, while illustrated as an
interface 100 to aservice 102 executed on a server 103 (seeFIG. 1 ), it will be appreciated that the underlying principles of the invention may be implemented on a single client in which the client transmits data over a network. Moreover, although described in the context of a wireless data processing device, the underlying principles of the invention may be implemented to compress data in virtually any networking environment, both wired and wireless. Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/807,290 US20070239898A1 (en) | 2001-08-07 | 2007-05-24 | System and method for full wireless synchronization of a data processing apparatus with a messaging service |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/924,283 US7155483B1 (en) | 2001-08-07 | 2001-08-07 | Apparatus and method for conserving bandwidth by batch processing data transactions |
US10/109,928 US7243163B1 (en) | 2001-08-07 | 2002-03-29 | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US11/807,290 US20070239898A1 (en) | 2001-08-07 | 2007-05-24 | System and method for full wireless synchronization of a data processing apparatus with a messaging service |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/109,928 Continuation US7243163B1 (en) | 2001-08-07 | 2002-03-29 | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070239898A1 true US20070239898A1 (en) | 2007-10-11 |
Family
ID=30002541
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/109,928 Expired - Lifetime US7243163B1 (en) | 2001-08-07 | 2002-03-29 | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US10/348,271 Expired - Lifetime US7287097B1 (en) | 2001-08-07 | 2003-01-21 | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US10/348,281 Active 2025-10-16 US8321511B1 (en) | 2001-08-07 | 2003-01-21 | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US11/807,290 Abandoned US20070239898A1 (en) | 2001-08-07 | 2007-05-24 | System and method for full wireless synchronization of a data processing apparatus with a messaging service |
US11/879,384 Active 2026-03-17 US8954512B2 (en) | 2001-08-07 | 2007-07-16 | System and method for full wireless synchronization of a data processing apparatus with a data service |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/109,928 Expired - Lifetime US7243163B1 (en) | 2001-08-07 | 2002-03-29 | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US10/348,271 Expired - Lifetime US7287097B1 (en) | 2001-08-07 | 2003-01-21 | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US10/348,281 Active 2025-10-16 US8321511B1 (en) | 2001-08-07 | 2003-01-21 | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/879,384 Active 2026-03-17 US8954512B2 (en) | 2001-08-07 | 2007-07-16 | System and method for full wireless synchronization of a data processing apparatus with a data service |
Country Status (1)
Country | Link |
---|---|
US (5) | US7243163B1 (en) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132010A1 (en) * | 2003-12-12 | 2005-06-16 | International Business Machines Corporation | Scheduled electronic mail deletions |
US20080037722A1 (en) * | 2006-07-21 | 2008-02-14 | Research In Motion Limited | Handling Notifications in Instant Messaging Systems |
US20080273675A1 (en) * | 2007-05-03 | 2008-11-06 | James Siminoff | Systems And Methods For Displaying Voicemail Transcriptions |
US20090024998A1 (en) * | 2007-07-20 | 2009-01-22 | International Business Machines Corporation | Initiation of batch jobs in message queuing information systems |
US20100189228A1 (en) * | 2009-01-27 | 2010-07-29 | Serge Seyfetdinov | System and method for electronic notification in institutional communication |
US7962622B2 (en) | 2001-08-07 | 2011-06-14 | Motorola Mobility, Inc. | System and method for providing provisioning and upgrade services for a wireless device |
US20110255672A1 (en) * | 2007-02-16 | 2011-10-20 | At&T Intellectual Property I, L.P. | Methods, Systems, and Products for Notifications |
US8321511B1 (en) | 2001-08-07 | 2012-11-27 | Motorola Mobility Llc | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US20120314849A1 (en) * | 2011-06-09 | 2012-12-13 | Research In Motion Limited | Method for sending recorded conference call content |
US20120323978A1 (en) * | 2011-06-20 | 2012-12-20 | Bank Of America Corporation | Transforming and Storing Messages in a Database |
US8805795B2 (en) | 2011-06-20 | 2014-08-12 | Bank Of America Corporation | Identifying duplicate messages in a database |
US9923932B2 (en) | 2004-11-24 | 2018-03-20 | Global Tel*Link Corporation | Electronic messaging exchange |
US10218842B2 (en) | 2005-01-28 | 2019-02-26 | Value-Added Communications, Inc. | Message exchange |
US10320904B2 (en) | 2004-11-08 | 2019-06-11 | Dropbox, Inc. | Method and apparatus for a file sharing and synchronization system |
US10397410B2 (en) | 2005-01-28 | 2019-08-27 | Value-Added Communications, Inc. | Message exchange |
US10749827B2 (en) | 2017-05-11 | 2020-08-18 | Global Tel*Link Corporation | System and method for inmate notification and training in a controlled environment facility |
US10805389B2 (en) | 2012-08-10 | 2020-10-13 | Dropbox, Inc. | System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients |
US11334596B2 (en) | 2018-04-27 | 2022-05-17 | Dropbox, Inc. | Selectively identifying and recommending digital content items for synchronization |
Families Citing this family (297)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9374435B2 (en) * | 1998-05-29 | 2016-06-21 | Blackberry Limited | System and method for using trigger events and a redirector flag to redirect messages |
US6219694B1 (en) | 1998-05-29 | 2001-04-17 | Research In Motion Limited | System and method for pushing information from a host system to a mobile data communication device having a shared electronic address |
US20060288298A1 (en) * | 1999-08-12 | 2006-12-21 | Robert Haitani | System, method and technique for enabling users to interact with address fields of messaging applications |
US20060288297A1 (en) * | 1999-08-12 | 2006-12-21 | Robert Haitani | System, method and technique for enabling users to interact and edit address fields of messaging applications |
US8516054B2 (en) | 2000-12-20 | 2013-08-20 | Aurea Software, Inc. | Message handling |
US9134989B2 (en) | 2002-01-31 | 2015-09-15 | Qualcomm Incorporated | System and method for updating dataset versions resident on a wireless device |
US8301800B1 (en) | 2002-07-02 | 2012-10-30 | Actional Corporation | Message processing for distributed computing environments |
US20040068724A1 (en) * | 2002-08-30 | 2004-04-08 | Gardner Richard Wayne | Server processing for updating dataset versions resident on a wireless device |
US7836131B2 (en) * | 2002-10-25 | 2010-11-16 | Sierra Wireless, Inc. | Redirection of notifications to a wireless user device |
ATE403197T1 (en) * | 2002-12-03 | 2008-08-15 | Research In Motion Ltd | METHOD, SYSTEM AND COMPUTER SOFTWARE PRODUCT FOR PRE-SELECTING A FOLDER FOR A MESSAGE |
US9092286B2 (en) * | 2002-12-20 | 2015-07-28 | Qualcomm Incorporated | System to automatically process components on a device |
US7295852B1 (en) | 2003-05-01 | 2007-11-13 | Palm, Inc. | Automated telephone conferencing method and system |
US8229888B1 (en) | 2003-10-15 | 2012-07-24 | Radix Holdings, Llc | Cross-device playback with synchronization of consumption state |
US8626146B2 (en) | 2003-10-29 | 2014-01-07 | Qualcomm Incorporated | Method, software and apparatus for performing actions on a wireless device using action lists and versioning |
US7647375B1 (en) | 2003-12-22 | 2010-01-12 | Aol Llc | Enabling mapping identification of online identities between different messaging services |
US20050177617A1 (en) * | 2003-12-23 | 2005-08-11 | Intel Corporation | Conflict resolution during data synchronization |
US20050186975A1 (en) * | 2004-02-10 | 2005-08-25 | Yach David P. | Apparatus, and associated method, for facilitating initiation of synchronization of database copies connected by way of a radio air interface |
US7797386B2 (en) * | 2004-02-27 | 2010-09-14 | Research In Motion Limited | System and method for remotely configuring a desktop mailbox |
US7536672B1 (en) * | 2004-03-05 | 2009-05-19 | Adobe Systems Incorporated | Management of user interaction history with software applications |
US7802262B1 (en) | 2004-03-05 | 2010-09-21 | Adobe Systems Incorporated | System and method for communicating state and title information between a browser and a rich internet application with browser forward and back button support |
US7613777B2 (en) * | 2004-03-11 | 2009-11-03 | Microsoft Corporation | Rapidly obtaining a subset of message data from a server for filtering |
US7913248B1 (en) * | 2004-03-26 | 2011-03-22 | Adobe Systems Incorporated | System and method for installing one or more programs, and at least a portion of their environment |
US7577974B2 (en) * | 2004-05-28 | 2009-08-18 | Microsoft Corporation | Movies channel |
US20050278757A1 (en) * | 2004-05-28 | 2005-12-15 | Microsoft Corporation | Downloadable watch faces |
US20060031323A1 (en) * | 2004-06-29 | 2006-02-09 | International Business Machines Corporation | Systems, methods, and media for database synchronization on a network |
US7555257B2 (en) * | 2004-07-30 | 2009-06-30 | Microsoft Corporation | Stock channel and news channel |
US9621473B2 (en) | 2004-08-18 | 2017-04-11 | Open Text Sa Ulc | Method and system for sending data |
GB2417391B (en) * | 2004-08-18 | 2007-04-18 | Wecomm Ltd | Transmitting data over a network |
US20060046732A1 (en) * | 2004-08-24 | 2006-03-02 | Microsoft Corporation | Traffic channel |
US7567799B2 (en) | 2004-09-17 | 2009-07-28 | Microsoft Corporation | Daily diversion channel |
US7466320B2 (en) * | 2004-09-21 | 2008-12-16 | Research In Motion Limited | User interface and method for persistent viewing of a user selected folder on a mobile device |
US8117623B1 (en) | 2004-11-18 | 2012-02-14 | Adobe Systems Incorporated | System and method for providing notices to users of a computer program in a flexible way |
US7730143B1 (en) * | 2004-12-01 | 2010-06-01 | Aol Inc. | Prohibiting mobile forwarding |
US8060566B2 (en) | 2004-12-01 | 2011-11-15 | Aol Inc. | Automatically enabling the forwarding of instant messages |
US9002949B2 (en) | 2004-12-01 | 2015-04-07 | Google Inc. | Automatically enabling the forwarding of instant messages |
US8191078B1 (en) | 2005-03-22 | 2012-05-29 | Progress Software Corporation | Fault-tolerant messaging system and methods |
US7480238B2 (en) * | 2005-04-14 | 2009-01-20 | International Business Machines Corporation | Dynamic packet training |
KR100640401B1 (en) * | 2005-07-13 | 2006-10-30 | 삼성전자주식회사 | System and methdo for synchronization between mobile e-mail server and client terminal and the terminal thereof |
US8301720B1 (en) | 2005-07-18 | 2012-10-30 | Progress Software Corporation | Method and system to collect and communicate problem context in XML-based distributed applications |
US7680513B2 (en) * | 2005-08-08 | 2010-03-16 | Palm, Inc. | Contact-centric user-interface features for computing devices |
GB0517113D0 (en) * | 2005-08-20 | 2005-09-28 | Ibm | Methods, apparatus and computer programs for data communication efficiency |
US8229914B2 (en) | 2005-09-14 | 2012-07-24 | Jumptap, Inc. | Mobile content spidering and compatibility determination |
US8666376B2 (en) | 2005-09-14 | 2014-03-04 | Millennial Media | Location based mobile shopping affinity program |
US8819659B2 (en) | 2005-09-14 | 2014-08-26 | Millennial Media, Inc. | Mobile search service instant activation |
US7769764B2 (en) | 2005-09-14 | 2010-08-03 | Jumptap, Inc. | Mobile advertisement syndication |
US7577665B2 (en) | 2005-09-14 | 2009-08-18 | Jumptap, Inc. | User characteristic influenced search results |
US7752209B2 (en) * | 2005-09-14 | 2010-07-06 | Jumptap, Inc. | Presenting sponsored content on a mobile communication facility |
US8805339B2 (en) | 2005-09-14 | 2014-08-12 | Millennial Media, Inc. | Categorization of a mobile user profile based on browse and viewing behavior |
US8195133B2 (en) | 2005-09-14 | 2012-06-05 | Jumptap, Inc. | Mobile dynamic advertisement creation and placement |
US8156128B2 (en) | 2005-09-14 | 2012-04-10 | Jumptap, Inc. | Contextual mobile content placement on a mobile communication facility |
US10911894B2 (en) | 2005-09-14 | 2021-02-02 | Verizon Media Inc. | Use of dynamic content generation parameters based on previous performance of those parameters |
US20110106614A1 (en) * | 2005-11-01 | 2011-05-05 | Jumptap, Inc. | Mobile User Characteristics Influenced Search Results |
US9058406B2 (en) | 2005-09-14 | 2015-06-16 | Millennial Media, Inc. | Management of multiple advertising inventories using a monetization platform |
US8103545B2 (en) | 2005-09-14 | 2012-01-24 | Jumptap, Inc. | Managing payment for sponsored content presented to mobile communication facilities |
US10038756B2 (en) | 2005-09-14 | 2018-07-31 | Millenial Media LLC | Managing sponsored content based on device characteristics |
US7912458B2 (en) | 2005-09-14 | 2011-03-22 | Jumptap, Inc. | Interaction analysis and prioritization of mobile content |
US20110313853A1 (en) | 2005-09-14 | 2011-12-22 | Jorey Ramer | System for targeting advertising content to a plurality of mobile communication facilities |
US7660581B2 (en) | 2005-09-14 | 2010-02-09 | Jumptap, Inc. | Managing sponsored content based on usage history |
US8311888B2 (en) | 2005-09-14 | 2012-11-13 | Jumptap, Inc. | Revenue models associated with syndication of a behavioral profile using a monetization platform |
US9703892B2 (en) | 2005-09-14 | 2017-07-11 | Millennial Media Llc | Predictive text completion for a mobile communication facility |
US7702318B2 (en) | 2005-09-14 | 2010-04-20 | Jumptap, Inc. | Presentation of sponsored content based on mobile transaction event |
US9201979B2 (en) | 2005-09-14 | 2015-12-01 | Millennial Media, Inc. | Syndication of a behavioral profile associated with an availability condition using a monetization platform |
US8302030B2 (en) | 2005-09-14 | 2012-10-30 | Jumptap, Inc. | Management of multiple advertising inventories using a monetization platform |
US8615719B2 (en) | 2005-09-14 | 2013-12-24 | Jumptap, Inc. | Managing sponsored content for delivery to mobile communication facilities |
US10592930B2 (en) * | 2005-09-14 | 2020-03-17 | Millenial Media, LLC | Syndication of a behavioral profile using a monetization platform |
US8812526B2 (en) | 2005-09-14 | 2014-08-19 | Millennial Media, Inc. | Mobile content cross-inventory yield optimization |
US8463249B2 (en) | 2005-09-14 | 2013-06-11 | Jumptap, Inc. | System for targeting advertising content to a plurality of mobile communication facilities |
US8209344B2 (en) * | 2005-09-14 | 2012-06-26 | Jumptap, Inc. | Embedding sponsored content in mobile applications |
US7676394B2 (en) | 2005-09-14 | 2010-03-09 | Jumptap, Inc. | Dynamic bidding and expected value |
US8688671B2 (en) | 2005-09-14 | 2014-04-01 | Millennial Media | Managing sponsored content based on geographic region |
US8131271B2 (en) | 2005-11-05 | 2012-03-06 | Jumptap, Inc. | Categorization of a mobile user profile based on browse behavior |
US9471925B2 (en) | 2005-09-14 | 2016-10-18 | Millennial Media Llc | Increasing mobile interactivity |
US20110153428A1 (en) * | 2005-09-14 | 2011-06-23 | Jorey Ramer | Targeted advertising to specified mobile communication facilities |
US9076175B2 (en) | 2005-09-14 | 2015-07-07 | Millennial Media, Inc. | Mobile comparison shopping |
US8832100B2 (en) | 2005-09-14 | 2014-09-09 | Millennial Media, Inc. | User transaction history influenced search results |
US8989718B2 (en) | 2005-09-14 | 2015-03-24 | Millennial Media, Inc. | Idle screen advertising |
US8364540B2 (en) | 2005-09-14 | 2013-01-29 | Jumptap, Inc. | Contextual targeting of content using a monetization platform |
US8660891B2 (en) | 2005-11-01 | 2014-02-25 | Millennial Media | Interactive mobile advertisement banners |
US8364521B2 (en) | 2005-09-14 | 2013-01-29 | Jumptap, Inc. | Rendering targeted advertisement on mobile communication facilities |
US8503995B2 (en) | 2005-09-14 | 2013-08-06 | Jumptap, Inc. | Mobile dynamic advertisement creation and placement |
US8238888B2 (en) | 2006-09-13 | 2012-08-07 | Jumptap, Inc. | Methods and systems for mobile coupon placement |
US8296369B2 (en) * | 2005-09-27 | 2012-10-23 | Research In Motion Limited | Email server with proxy caching of unique identifiers |
US8307036B2 (en) * | 2005-09-27 | 2012-11-06 | Research In Motion Limited | Email server with enhanced least recently used (LRU) cache |
US20070073815A1 (en) * | 2005-09-27 | 2007-03-29 | Teamon Systems, Inc. | Email server with proxy caching of message identifiers and related methods |
US8175585B2 (en) | 2005-11-05 | 2012-05-08 | Jumptap, Inc. | System for targeting advertising content to a plurality of mobile communication facilities |
US8001458B1 (en) | 2005-11-14 | 2011-08-16 | Adobe Systems Incorporated | System and method for communicating state and title information between a browser and a rich Internet application |
US8015256B2 (en) * | 2005-11-23 | 2011-09-06 | Medicalis Corp. | Method and apparatus for parallel sequencing of messages between disparate information systems |
US20070130153A1 (en) * | 2005-12-02 | 2007-06-07 | Palm, Inc. | Techniques to communicate and process location information from communications networks on a mobile computing device |
US8005194B2 (en) * | 2005-12-21 | 2011-08-23 | Hewlett-Packard Development Company, L.P. | Technique for handling incoming reply messages |
US7710958B2 (en) | 2006-01-20 | 2010-05-04 | Iona Technologies Limited | Method for recoverable message exchange independent of network protocols |
US7577710B2 (en) * | 2006-02-07 | 2009-08-18 | Stauffer John E | System and method for prioritizing electronic mail and controlling spam |
US8769033B2 (en) * | 2006-03-03 | 2014-07-01 | Microsoft Corporation | Identifying changes to media-device contents |
US7627641B2 (en) * | 2006-03-09 | 2009-12-01 | Watchguard Technologies, Inc. | Method and system for recognizing desired email |
US8601065B2 (en) * | 2006-05-31 | 2013-12-03 | Cisco Technology, Inc. | Method and apparatus for preventing outgoing spam e-mails by monitoring client interactions |
KR100739004B1 (en) * | 2006-07-10 | 2007-07-13 | 삼성전자주식회사 | System and mobile terminal for storing data into web storage by using wireless lan service and method thereof |
US8332751B2 (en) * | 2006-11-14 | 2012-12-11 | Microsoft Corporation | Removal of redundant information from electronic documents |
US8656350B2 (en) | 2007-02-06 | 2014-02-18 | Software Ag | Event-based process configuration |
US8276115B2 (en) | 2007-02-06 | 2012-09-25 | Progress Software Corporation | Automated construction and deployment of complex event processing applications and business activity monitoring dashboards |
US9009234B2 (en) | 2007-02-06 | 2015-04-14 | Software Ag | Complex event processing system having multiple redundant event processing engines |
US8230417B1 (en) | 2007-06-08 | 2012-07-24 | Adobe Systems Incorporated | Combined application and execution environment install |
BRPI0812543A2 (en) * | 2007-06-19 | 2015-09-29 | Qualcomm Inc | Methods and Appliance for Data Set Synchronization in a Wireless Environment |
US8375381B1 (en) | 2007-07-30 | 2013-02-12 | Adobe Systems Incorporated | Management user interface for application execution environment |
US7930273B1 (en) | 2007-07-30 | 2011-04-19 | Adobe Systems Incorporated | Version management for application execution environment |
US8448161B2 (en) * | 2007-07-30 | 2013-05-21 | Adobe Systems Incorporated | Application tracking for application execution environment |
US8621009B2 (en) * | 2007-08-31 | 2013-12-31 | Red Hat, Inc. | Method and system for optimizing transmission of electronic messages |
US9143561B2 (en) | 2007-11-09 | 2015-09-22 | Topia Technology, Inc. | Architecture for management of digital files across distributed network |
WO2009077003A1 (en) | 2007-12-17 | 2009-06-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Session initiation protocol stack optimisation |
US8346874B2 (en) * | 2008-01-22 | 2013-01-01 | Microsoft Corporation | Mail object migration |
US7970881B2 (en) * | 2008-02-19 | 2011-06-28 | Microsoft Corporation | Bypassing uploading of data from a wireless device using outbound attachment caching |
US20090228580A1 (en) * | 2008-03-05 | 2009-09-10 | International Business Machines Corporation | Computing environment sensitive data synchronization |
US8484162B2 (en) * | 2008-06-24 | 2013-07-09 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US20090327405A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Enhanced Client And Server Systems for Operating Collaboratively Within Shared Workspaces |
US8711747B2 (en) | 2008-07-07 | 2014-04-29 | Apple Inc. | Power saving methods for wireless systems |
US20110087761A1 (en) * | 2008-07-07 | 2011-04-14 | Mo-Han Fong | Power saving schemes for wireless systems |
WO2010054062A2 (en) | 2008-11-05 | 2010-05-14 | Savvion Inc. | Software with improved view of a business process |
US8812699B2 (en) * | 2008-12-04 | 2014-08-19 | Lenovo (Singapore) Pte. Ltd. | Apparatus, system, and method for data synchronization in a multi-path environment |
US8788655B2 (en) | 2008-12-19 | 2014-07-22 | Openpeak Inc. | Systems for accepting and approving applications and methods of operation of same |
US8612582B2 (en) | 2008-12-19 | 2013-12-17 | Openpeak Inc. | Managed services portals and method of operation of same |
US8856322B2 (en) | 2008-12-19 | 2014-10-07 | Openpeak Inc. | Supervisory portal systems and methods of operation of same |
US8615581B2 (en) | 2008-12-19 | 2013-12-24 | Openpeak Inc. | System for managing devices and method of operation of same |
US8199507B2 (en) * | 2008-12-19 | 2012-06-12 | Openpeak Inc. | Telephony and digital media services device |
US8650290B2 (en) | 2008-12-19 | 2014-02-11 | Openpeak Inc. | Portable computing device and method of operation of same |
US8713173B2 (en) | 2008-12-19 | 2014-04-29 | Openpeak Inc. | System and method for ensuring compliance with organizational policies |
US8745213B2 (en) | 2008-12-19 | 2014-06-03 | Openpeak Inc. | Managed services platform and method of operation of same |
US7921172B2 (en) * | 2009-01-07 | 2011-04-05 | Lenovo (Singapore) Pte. Ltd. | Apparatus, system, and method for wireless presyncing of data |
US9059979B2 (en) * | 2009-02-27 | 2015-06-16 | Blackberry Limited | Cookie verification methods and apparatus for use in providing application services to communication devices |
US20100325539A1 (en) * | 2009-06-18 | 2010-12-23 | Microsoft Corporation | Web based spell check |
US8930306B1 (en) | 2009-07-08 | 2015-01-06 | Commvault Systems, Inc. | Synchronized data deduplication |
JP5440053B2 (en) * | 2009-09-14 | 2014-03-12 | ソニー株式会社 | Information processing apparatus, information processing method, and computer program |
US8346976B2 (en) * | 2009-11-25 | 2013-01-01 | T-Mobile Usa, Inc. | Secured registration of a home network device |
US8301028B2 (en) * | 2009-12-21 | 2012-10-30 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8401393B2 (en) * | 2009-12-21 | 2013-03-19 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8818196B2 (en) | 2009-12-21 | 2014-08-26 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8588618B2 (en) * | 2009-12-21 | 2013-11-19 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8483568B2 (en) * | 2009-12-21 | 2013-07-09 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8369708B2 (en) * | 2009-12-21 | 2013-02-05 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8712250B2 (en) * | 2009-12-21 | 2014-04-29 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8483569B2 (en) * | 2009-12-21 | 2013-07-09 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8452182B2 (en) * | 2009-12-21 | 2013-05-28 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8655187B2 (en) * | 2009-12-21 | 2014-02-18 | Invention Science Fund I | Data center with free-space optical communications |
US20110164880A1 (en) * | 2010-01-06 | 2011-07-07 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Data center with free-space optical communications |
WO2012024418A1 (en) | 2010-08-17 | 2012-02-23 | Openpeak Inc. | System containing a mobile communication device and associated docking station |
US9645992B2 (en) | 2010-08-21 | 2017-05-09 | Oracle International Corporation | Methods and apparatuses for interaction with web applications and web application data |
US8364652B2 (en) | 2010-09-30 | 2013-01-29 | Commvault Systems, Inc. | Content aligned block-based deduplication |
US8578109B2 (en) | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
US8713098B1 (en) * | 2010-10-01 | 2014-04-29 | Google Inc. | Method and system for migrating object update messages through synchronous data propagation |
US8650658B2 (en) | 2010-10-25 | 2014-02-11 | Openpeak Inc. | Creating distinct user spaces through user identifiers |
US8566577B2 (en) | 2010-11-30 | 2013-10-22 | Blackberry Limited | Method and device for storing secured sent message data |
US20120150818A1 (en) | 2010-12-14 | 2012-06-14 | Commvault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US9020900B2 (en) | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
JP2013009298A (en) | 2011-05-26 | 2013-01-10 | Sony Corp | Radio communication apparatus, information processing apparatus, communication system, and method of controlling radio communication apparatus |
US20130073692A1 (en) * | 2011-09-15 | 2013-03-21 | Ibromed Corporation | Systems and methods for receiver-controlled data distribution |
US9386127B2 (en) | 2011-09-28 | 2016-07-05 | Open Text S.A. | System and method for data transfer, including protocols for use in data transfer |
US9294307B2 (en) * | 2011-10-07 | 2016-03-22 | Microsoft Technology Licensing, Llc | Synchronization of conversation data |
US8695060B2 (en) | 2011-10-10 | 2014-04-08 | Openpeak Inc. | System and method for creating secure applications |
US9544252B2 (en) * | 2011-10-14 | 2017-01-10 | Google Inc. | Compressing and decompressing electronic messages in message threads |
US9722972B2 (en) | 2012-02-26 | 2017-08-01 | Oracle International Corporation | Methods and apparatuses for secure communication |
US10155168B2 (en) | 2012-05-08 | 2018-12-18 | Snap Inc. | System and method for adaptable avatars |
US9218376B2 (en) | 2012-06-13 | 2015-12-22 | Commvault Systems, Inc. | Intelligent data sourcing in a networked storage system |
US9495377B2 (en) * | 2012-09-12 | 2016-11-15 | International Business Machines Corporation | Secure deletion operations in a wide area network |
US8762272B1 (en) | 2012-12-27 | 2014-06-24 | Google Inc. | Management of emails containing payments |
US9633033B2 (en) | 2013-01-11 | 2017-04-25 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
US9110680B1 (en) | 2013-03-14 | 2015-08-18 | Amazon Technologies, Inc. | Avoiding or deferring data copies |
US9344422B2 (en) | 2013-03-15 | 2016-05-17 | Oracle International Corporation | Method to modify android application life cycle to control its execution in a containerized workspace environment |
WO2014145039A1 (en) | 2013-03-15 | 2014-09-18 | Oracle International Corporation | Intra-computer protected communications between applications |
US9129112B2 (en) | 2013-03-15 | 2015-09-08 | Oracle International Corporation | Methods, systems and machine-readable media for providing security services |
US9705831B2 (en) * | 2013-05-30 | 2017-07-11 | Snap Inc. | Apparatus and method for maintaining a message thread with opt-in permanence for entries |
US9742713B2 (en) * | 2013-05-30 | 2017-08-22 | Snap Inc. | Apparatus and method for maintaining a message thread with opt-in permanence for entries |
US10439972B1 (en) * | 2013-05-30 | 2019-10-08 | Snap Inc. | Apparatus and method for maintaining a message thread with opt-in permanence for entries |
US9049169B1 (en) * | 2013-05-30 | 2015-06-02 | Trend Micro Incorporated | Mobile email protection for private computer networks |
US9325813B2 (en) * | 2013-09-03 | 2016-04-26 | Qualcomm Incorporated | Formatting data packets for compression |
US20150081809A1 (en) * | 2013-09-18 | 2015-03-19 | International Business Machines Corporation | Controlling delivery and access of electronic communications |
US10082926B1 (en) | 2014-02-21 | 2018-09-25 | Snap Inc. | Apparatus and method for alternate channel communication initiated through a common message thread |
US8909725B1 (en) | 2014-03-07 | 2014-12-09 | Snapchat, Inc. | Content delivery network for ephemeral objects |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US9633056B2 (en) | 2014-03-17 | 2017-04-25 | Commvault Systems, Inc. | Maintaining a deduplication database |
US9276886B1 (en) | 2014-05-09 | 2016-03-01 | Snapchat, Inc. | Apparatus and method for dynamically configuring application component tiles |
US9396354B1 (en) | 2014-05-28 | 2016-07-19 | Snapchat, Inc. | Apparatus and method for automated privacy protection in distributed images |
US9537811B2 (en) | 2014-10-02 | 2017-01-03 | Snap Inc. | Ephemeral gallery of ephemeral messages |
US9113301B1 (en) | 2014-06-13 | 2015-08-18 | Snapchat, Inc. | Geo-location based event gallery |
US9225897B1 (en) | 2014-07-07 | 2015-12-29 | Snapchat, Inc. | Apparatus and method for supplying content aware photo filters |
US9852026B2 (en) | 2014-08-06 | 2017-12-26 | Commvault Systems, Inc. | Efficient application recovery in an information management system based on a pseudo-storage-device driver |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
GB2529174A (en) | 2014-08-12 | 2016-02-17 | Ibm | Batch compression management of messages |
US10055717B1 (en) | 2014-08-22 | 2018-08-21 | Snap Inc. | Message processor with application prompts |
US9232013B1 (en) | 2014-09-05 | 2016-01-05 | Openpeak Inc. | Method and system for enabling data usage accounting |
US8938547B1 (en) | 2014-09-05 | 2015-01-20 | Openpeak Inc. | Method and system for data usage accounting in a computing device |
US9350818B2 (en) | 2014-09-05 | 2016-05-24 | Openpeak Inc. | Method and system for enabling data usage accounting for unreliable transport communication |
US20160071040A1 (en) | 2014-09-05 | 2016-03-10 | Openpeak Inc. | Method and system for enabling data usage accounting through a relay |
US9100390B1 (en) | 2014-09-05 | 2015-08-04 | Openpeak Inc. | Method and system for enrolling and authenticating computing devices for data usage accounting |
US10824654B2 (en) | 2014-09-18 | 2020-11-03 | Snap Inc. | Geolocation-based pictographs |
CN106663018B (en) | 2014-09-24 | 2020-09-15 | 甲骨文国际公司 | System, method, medium, and device for modifying a lifecycle of a mobile device application |
US10284508B1 (en) | 2014-10-02 | 2019-05-07 | Snap Inc. | Ephemeral gallery of ephemeral messages with opt-in permanence |
US9575673B2 (en) | 2014-10-29 | 2017-02-21 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
KR102256642B1 (en) * | 2014-12-04 | 2021-05-27 | 삼성전자주식회사 | Apparatus for transmiting and receiving message and method for transmiting and receiving message |
US9385983B1 (en) | 2014-12-19 | 2016-07-05 | Snapchat, Inc. | Gallery of messages from individuals with a shared interest |
US10311916B2 (en) | 2014-12-19 | 2019-06-04 | Snap Inc. | Gallery of videos set to an audio time line |
US9754355B2 (en) | 2015-01-09 | 2017-09-05 | Snap Inc. | Object recognition based photo filters |
US10133705B1 (en) | 2015-01-19 | 2018-11-20 | Snap Inc. | Multichannel system |
US9294425B1 (en) | 2015-02-06 | 2016-03-22 | Snapchat, Inc. | Storage and processing of ephemeral messages |
KR102371138B1 (en) | 2015-03-18 | 2022-03-10 | 스냅 인코포레이티드 | Geo-fence authorization provisioning |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US10135949B1 (en) | 2015-05-05 | 2018-11-20 | Snap Inc. | Systems and methods for story and sub-story navigation |
CN107431632B (en) | 2015-05-06 | 2022-09-16 | 斯纳普公司 | System and method for transient group chat |
US20160350391A1 (en) | 2015-05-26 | 2016-12-01 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US10503264B1 (en) | 2015-06-16 | 2019-12-10 | Snap Inc. | Radial gesture navigation |
US9906479B1 (en) | 2015-06-16 | 2018-02-27 | Snap Inc. | Storage management for ephemeral messages |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
US11121997B1 (en) | 2015-08-24 | 2021-09-14 | Snap Inc. | Systems, devices, and methods for determining a non-ephemeral message status in a communication system |
US10616162B1 (en) | 2015-08-24 | 2020-04-07 | Snap Inc. | Systems devices and methods for automatically selecting an ephemeral message availability |
US10560544B2 (en) * | 2015-08-25 | 2020-02-11 | Box, Inc. | Data caching in a collaborative file sharing system |
US10157333B1 (en) | 2015-09-15 | 2018-12-18 | Snap Inc. | Systems and methods for content tagging |
US9652896B1 (en) | 2015-10-30 | 2017-05-16 | Snap Inc. | Image based tracking in augmented reality systems |
US11119628B1 (en) | 2015-11-25 | 2021-09-14 | Snap Inc. | Dynamic graphical user interface modification and monitoring |
US9984499B1 (en) | 2015-11-30 | 2018-05-29 | Snap Inc. | Image and point cloud based tracking and in augmented reality systems |
US10354425B2 (en) | 2015-12-18 | 2019-07-16 | Snap Inc. | Method and system for providing context relevant media augmentation |
US20170193003A1 (en) | 2015-12-30 | 2017-07-06 | Commvault Systems, Inc. | Redundant and robust distributed deduplication data storage system |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
US10530731B1 (en) | 2016-03-28 | 2020-01-07 | Snap Inc. | Systems and methods for chat with audio and video elements |
US10270839B2 (en) | 2016-03-29 | 2019-04-23 | Snap Inc. | Content collection navigation and autoforwarding |
US10339365B2 (en) | 2016-03-31 | 2019-07-02 | Snap Inc. | Automated avatar generation |
US10686899B2 (en) | 2016-04-06 | 2020-06-16 | Snap Inc. | Messaging achievement pictograph display system |
US9813642B1 (en) | 2016-05-06 | 2017-11-07 | Snap Inc. | Dynamic activity-based image generation |
US9582754B1 (en) * | 2016-05-17 | 2017-02-28 | Roger Collins | Adaptive feed forward method for temperature control |
US10474353B2 (en) | 2016-05-31 | 2019-11-12 | Snap Inc. | Application control using a gesture based trigger |
US11507977B2 (en) | 2016-06-28 | 2022-11-22 | Snap Inc. | Methods and systems for presentation of media collections with automated advertising |
US9681265B1 (en) | 2016-06-28 | 2017-06-13 | Snap Inc. | System to track engagement of media items |
US10182047B1 (en) | 2016-06-30 | 2019-01-15 | Snap Inc. | Pictograph password security system |
US11334768B1 (en) | 2016-07-05 | 2022-05-17 | Snap Inc. | Ephemeral content management |
US10552968B1 (en) | 2016-09-23 | 2020-02-04 | Snap Inc. | Dense feature scale detection for image matching |
US10609036B1 (en) | 2016-10-10 | 2020-03-31 | Snap Inc. | Social media post subscribe requests for buffer user accounts |
US10432559B2 (en) | 2016-10-24 | 2019-10-01 | Snap Inc. | Generating and displaying customized avatars in electronic messages |
KR20220156101A (en) | 2016-11-01 | 2022-11-24 | 스냅 인코포레이티드 | Fast video capture and sensor adjustment |
CN108090079B (en) * | 2016-11-22 | 2021-03-02 | 阿里巴巴集团控股有限公司 | Chat record processing method and device of instant chat tool |
US10740939B1 (en) | 2016-12-09 | 2020-08-11 | Snap Inc. | Fast image style transfers |
US10319149B1 (en) | 2017-02-17 | 2019-06-11 | Snap Inc. | Augmented reality anamorphosis system |
US11019001B1 (en) | 2017-02-20 | 2021-05-25 | Snap Inc. | Selective presentation of group messages |
US10074381B1 (en) | 2017-02-20 | 2018-09-11 | Snap Inc. | Augmented reality speech balloon system |
US10374993B2 (en) | 2017-02-20 | 2019-08-06 | Snap Inc. | Media item attachment system |
US10740193B2 (en) | 2017-02-27 | 2020-08-11 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US10878837B1 (en) | 2017-03-01 | 2020-12-29 | Snap Inc. | Acoustic neural network scene detection |
US10582277B2 (en) | 2017-03-27 | 2020-03-03 | Snap Inc. | Generating a stitched data stream |
US10581782B2 (en) | 2017-03-27 | 2020-03-03 | Snap Inc. | Generating a stitched data stream |
US11170393B1 (en) | 2017-04-11 | 2021-11-09 | Snap Inc. | System to calculate an engagement score of location based media content |
US10387730B1 (en) | 2017-04-20 | 2019-08-20 | Snap Inc. | Augmented reality typography personalization system |
US10212541B1 (en) | 2017-04-27 | 2019-02-19 | Snap Inc. | Selective location-based identity communication |
US10382372B1 (en) | 2017-04-27 | 2019-08-13 | Snap Inc. | Processing media content based on original context |
KR20220141927A (en) | 2017-04-27 | 2022-10-20 | 스냅 인코포레이티드 | Location privacy management on map-based social media platforms |
US11893647B2 (en) | 2017-04-27 | 2024-02-06 | Snap Inc. | Location-based virtual avatars |
US10943255B1 (en) | 2017-04-28 | 2021-03-09 | Snap Inc. | Methods and systems for interactive advertising with media collections |
US10679428B1 (en) | 2017-05-26 | 2020-06-09 | Snap Inc. | Neural network-based image stream modification |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US10788900B1 (en) | 2017-06-29 | 2020-09-29 | Snap Inc. | Pictorial symbol prediction |
US11157511B2 (en) * | 2017-07-19 | 2021-10-26 | Sap Se | Physical replication of database |
US11310314B1 (en) * | 2017-07-28 | 2022-04-19 | Zero Cognitive Systems, Inc. | Automatic data synchronization across applications installed on multiple devices via mail server |
US11323398B1 (en) | 2017-07-31 | 2022-05-03 | Snap Inc. | Systems, devices, and methods for progressive attachments |
US11216517B1 (en) | 2017-07-31 | 2022-01-04 | Snap Inc. | Methods and systems for selecting user generated content |
US11164376B1 (en) | 2017-08-30 | 2021-11-02 | Snap Inc. | Object modeling using light projection |
US9980100B1 (en) | 2017-08-31 | 2018-05-22 | Snap Inc. | Device location based on machine learning classifications |
US10474900B2 (en) | 2017-09-15 | 2019-11-12 | Snap Inc. | Real-time tracking-compensated image effects |
US10740974B1 (en) | 2017-09-15 | 2020-08-11 | Snap Inc. | Augmented reality system |
US10891723B1 (en) | 2017-09-29 | 2021-01-12 | Snap Inc. | Realistic neural network based image style transfer |
US10872292B1 (en) | 2017-10-09 | 2020-12-22 | Snap Inc. | Compact neural networks using condensed filters |
US10599289B1 (en) | 2017-11-13 | 2020-03-24 | Snap Inc. | Interface to display animated icon |
US11551059B1 (en) | 2017-11-15 | 2023-01-10 | Snap Inc. | Modulated image segmentation |
US10885564B1 (en) | 2017-11-28 | 2021-01-05 | Snap Inc. | Methods, system, and non-transitory computer readable storage medium for dynamically configurable social media platform |
US10217488B1 (en) | 2017-12-15 | 2019-02-26 | Snap Inc. | Spherical video editing |
US11017173B1 (en) | 2017-12-22 | 2021-05-25 | Snap Inc. | Named entity recognition visual context and caption data |
US10523606B2 (en) | 2018-01-02 | 2019-12-31 | Snap Inc. | Generating interactive messages with asynchronous media content |
US10482565B1 (en) | 2018-02-12 | 2019-11-19 | Snap Inc. | Multistage neural network processing using a graphics processor |
US10726603B1 (en) | 2018-02-28 | 2020-07-28 | Snap Inc. | Animated expressive icon |
US10885136B1 (en) | 2018-02-28 | 2021-01-05 | Snap Inc. | Audience filtering system |
US10327096B1 (en) | 2018-03-06 | 2019-06-18 | Snap Inc. | Geo-fence selection system |
US11310176B2 (en) | 2018-04-13 | 2022-04-19 | Snap Inc. | Content suggestion system |
KR20240027845A (en) | 2018-04-18 | 2024-03-04 | 스냅 인코포레이티드 | Augmented expression system |
US11487501B2 (en) | 2018-05-16 | 2022-11-01 | Snap Inc. | Device control using audio data |
US10997760B2 (en) | 2018-08-31 | 2021-05-04 | Snap Inc. | Augmented reality anthropomorphization system |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
US11297027B1 (en) | 2019-01-31 | 2022-04-05 | Snap Inc. | Automated image processing and insight presentation |
US20200327017A1 (en) | 2019-04-10 | 2020-10-15 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US11134036B2 (en) | 2019-07-05 | 2021-09-28 | Snap Inc. | Event planning in a content sharing platform |
US11812347B2 (en) | 2019-09-06 | 2023-11-07 | Snap Inc. | Non-textual communication and user states management |
US20210173811A1 (en) | 2019-12-04 | 2021-06-10 | Commvault Systems, Inc. | Optimizing the restoration of deduplicated data stored in multi-node replicated file systems |
US10880496B1 (en) | 2019-12-30 | 2020-12-29 | Snap Inc. | Including video feed in message thread |
US11316806B1 (en) | 2020-01-28 | 2022-04-26 | Snap Inc. | Bulk message deletion |
US11265281B1 (en) | 2020-01-28 | 2022-03-01 | Snap Inc. | Message deletion policy selection |
US11625873B2 (en) | 2020-03-30 | 2023-04-11 | Snap Inc. | Personalized media overlay recommendation |
CN115699130A (en) * | 2020-03-31 | 2023-02-03 | 斯纳普公司 | Augmented reality cosmetic product tutorial |
US11700225B2 (en) | 2020-04-23 | 2023-07-11 | Snap Inc. | Event overlay invite messaging system |
US11843574B2 (en) | 2020-05-21 | 2023-12-12 | Snap Inc. | Featured content collection interface |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
US11423652B2 (en) | 2020-06-10 | 2022-08-23 | Snap Inc. | Adding beauty products to augmented reality tutorials |
KR20230022241A (en) | 2020-06-10 | 2023-02-14 | 스냅 인코포레이티드 | Visual search to launch applications |
US11899905B2 (en) | 2020-06-30 | 2024-02-13 | Snap Inc. | Selectable items providing post-viewing context actions |
US11832015B2 (en) | 2020-08-13 | 2023-11-28 | Snap Inc. | User interface for pose driven virtual effects |
Citations (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4682150A (en) * | 1985-12-09 | 1987-07-21 | Ncr Corporation | Data compression method and apparatus |
US5049881A (en) * | 1990-06-18 | 1991-09-17 | Intersecting Concepts, Inc. | Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique |
US5115392A (en) * | 1986-10-09 | 1992-05-19 | Hitachi, Ltd. | Method and apparatus for multi-transaction batch processing |
US5126739A (en) * | 1989-01-13 | 1992-06-30 | Stac Electronics | Data compression apparatus and method |
US5159592A (en) * | 1990-10-29 | 1992-10-27 | International Business Machines Corporation | Network address management for a wired network supporting wireless communication to a plurality of mobile users |
US5321840A (en) * | 1988-05-05 | 1994-06-14 | Transaction Technology, Inc. | Distributed-intelligence computer system including remotely reconfigurable, telephone-type user terminal |
US5521597A (en) * | 1993-08-02 | 1996-05-28 | Mircosoft Corporation | Data compression for network transport |
US5553281A (en) * | 1994-03-21 | 1996-09-03 | Visual F/X, Inc. | Method for computer-assisted media processing |
US5559800A (en) * | 1994-01-19 | 1996-09-24 | Research In Motion Limited | Remote control of gateway functions in a wireless data communication network |
US5563595A (en) * | 1993-12-23 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for compressing data |
US5666530A (en) * | 1992-12-02 | 1997-09-09 | Compaq Computer Corporation | System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between |
US5715387A (en) * | 1995-02-10 | 1998-02-03 | Research In Motion Limited | Method and system for loading and confirming correct operation of an application program in a target system |
US5727202A (en) * | 1995-10-18 | 1998-03-10 | Palm Computing, Inc. | Method and apparatus for synchronizing information on two different computer systems |
US5760716A (en) * | 1996-08-21 | 1998-06-02 | Autodesk, Inc. | Vector data compression |
US5771010A (en) * | 1995-03-22 | 1998-06-23 | Ibm Corporation | Apparatus for compressing data using a Lempel-Ziv-type algorithm |
US5790974A (en) * | 1996-04-29 | 1998-08-04 | Sun Microsystems, Inc. | Portable calendaring device having perceptual agent managing calendar entries |
US5793970A (en) * | 1996-07-11 | 1998-08-11 | Microsoft Corporation | Method and computer program product for converting message identification codes using a conversion map accesible via a data link |
US5802312A (en) * | 1994-09-27 | 1998-09-01 | Research In Motion Limited | System for transmitting data files between computers in a wireless environment utilizing a file transfer agent executing on host system |
US5870610A (en) * | 1996-06-28 | 1999-02-09 | Siemens Business Communication Systems, Inc. | Autoconfigurable method and system having automated downloading |
US5875329A (en) * | 1995-12-22 | 1999-02-23 | International Business Machines Corp. | Intelligent batching of distributed messages |
US5930471A (en) * | 1996-12-26 | 1999-07-27 | At&T Corp | Communications system and method of operation for electronic messaging using structured response objects and virtual mailboxes |
US5961590A (en) * | 1997-04-11 | 1999-10-05 | Roampage, Inc. | System and method for synchronizing electronic mail between a client site and a central site |
US5974238A (en) * | 1996-08-07 | 1999-10-26 | Compaq Computer Corporation | Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements |
US6023708A (en) * | 1997-05-29 | 2000-02-08 | Visto Corporation | System and method for using a global translator to synchronize workspace elements across a network |
US6034621A (en) * | 1997-11-18 | 2000-03-07 | Lucent Technologies, Inc. | Wireless remote synchronization of data between PC and PDA |
US6052735A (en) * | 1997-10-24 | 2000-04-18 | Microsoft Corporation | Electronic mail object synchronization between a desktop computer and mobile device |
US6065017A (en) * | 1997-12-31 | 2000-05-16 | Novell, Inc. | Apparatus and method for identifying and recovering from database errors |
US6104392A (en) * | 1997-11-13 | 2000-08-15 | The Santa Cruz Operation, Inc. | Method of displaying an application on a variety of client devices in a client/server network |
US6111707A (en) * | 1997-12-31 | 2000-08-29 | International Business Machines Corporation | Tape duplexing with unique identity and error recovery |
US6182117B1 (en) * | 1995-05-31 | 2001-01-30 | Netscape Communications Corporation | Method and apparatus for workgroup information replication |
US6188695B1 (en) * | 1997-12-18 | 2001-02-13 | Ericsson Inc. | System and method for multi-node data synchronization |
US6216157B1 (en) * | 1997-11-14 | 2001-04-10 | Yahoo! Inc. | Method and apparatus for a client-server system with heterogeneous clients |
US6218970B1 (en) * | 1998-09-11 | 2001-04-17 | International Business Machines Corporation | Literal handling in LZ compression employing MRU/LRU encoding |
US6219694B1 (en) * | 1998-05-29 | 2001-04-17 | Research In Motion Limited | System and method for pushing information from a host system to a mobile data communication device having a shared electronic address |
US6226618B1 (en) * | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
US20010005864A1 (en) * | 1998-05-29 | 2001-06-28 | Mousseau Gary P. | System and method for redirecting message attachments between a host system and a mobile data communication device |
US6259891B1 (en) * | 1997-09-04 | 2001-07-10 | Hughes Electronics Corporation | Adapter and method for use in a portable communication signal receiver system |
US20010010059A1 (en) * | 1998-10-28 | 2001-07-26 | Steven Wesley Burman | Method and apparatus for determining travel time for data sent between devices connected to a computer network |
US6275848B1 (en) * | 1997-05-21 | 2001-08-14 | International Business Machines Corp. | Method and apparatus for automated referencing of electronic information |
US6279001B1 (en) * | 1998-05-29 | 2001-08-21 | Webspective Software, Inc. | Web service |
US6304881B1 (en) * | 1998-03-03 | 2001-10-16 | Pumatech, Inc. | Remote data access and synchronization |
US20010034654A1 (en) * | 1999-05-12 | 2001-10-25 | L. Vigil Todd W. | Interactive internet advertising and e-commerce method and system |
US6310889B1 (en) * | 1998-03-12 | 2001-10-30 | Nortel Networks Limited | Method of servicing data access requests from users |
US6343299B1 (en) * | 1998-11-16 | 2002-01-29 | International Business Machines Corporation | Method and apparatus for random update synchronization among multiple computing devices |
US20020013853A1 (en) * | 1998-11-13 | 2002-01-31 | Baber Stephen C. | Methods, systems and computer program products for transferring a file using a message queue |
US6347340B1 (en) * | 2000-02-18 | 2002-02-12 | Mobilesys, Inc. | Apparatus and method for converting a network message to a wireless transport message using a modular architecture |
US20020019225A1 (en) * | 2000-08-08 | 2002-02-14 | Nec Corporation | Communication control system using telephone directory management system of mobile phone |
US20020032722A1 (en) * | 2000-09-11 | 2002-03-14 | Avantgo, Inc. | Method, system, and computer program product for synchronization of similar data objects with event information |
US6360272B1 (en) * | 1999-05-28 | 2002-03-19 | Palm, Inc. | Method and apparatus for maintaining a unified view of multiple mailboxes |
US20020046286A1 (en) * | 1999-12-13 | 2002-04-18 | Caldwell R. Russell | Attribute and application synchronization in distributed network environment |
US6384850B1 (en) * | 1999-09-21 | 2002-05-07 | Ameranth Wireless | Information management and synchronous communications system with menu generation |
US6393434B1 (en) * | 1999-09-14 | 2002-05-21 | International Business Machines Corporation | Method and system for synchronizing data using fine-grained synchronization plans |
US6396482B1 (en) * | 1998-06-26 | 2002-05-28 | Research In Motion Limited | Hand-held electronic device with a keyboard optimized for use with the thumbs |
US6401136B1 (en) * | 1998-11-13 | 2002-06-04 | International Business Machines Corporation | Methods, systems and computer program products for synchronization of queue-to-queue communications |
US6430601B1 (en) * | 1998-09-30 | 2002-08-06 | Xerox Corporation | Mobile document paging service |
US20020120696A1 (en) * | 1998-05-29 | 2002-08-29 | Mousseau Gary P. | System and method for pushing information from a host system to a mobile data communication device |
US20020119793A1 (en) * | 2001-02-27 | 2002-08-29 | Daniel Hronek | Mobile originated interactive menus via short messaging services |
US6449622B1 (en) * | 1999-03-08 | 2002-09-10 | Starfish Software, Inc. | System and methods for synchronizing datasets when dataset changes may be received out of order |
US6457062B1 (en) * | 1999-04-08 | 2002-09-24 | Palm, Inc. | System and method for synchronizing multiple calendars over wide area network |
US6460055B1 (en) * | 1999-12-16 | 2002-10-01 | Livevault Corporation | Systems and methods for backing up data files |
US20020146240A1 (en) * | 1994-02-02 | 2002-10-10 | Sony Corporation | Recording apparatus and reproducing apparatus |
US6505055B1 (en) * | 1997-08-04 | 2003-01-07 | Starfish Software, Inc. | Camel-back digital organizer and communication protocol for a cellular phone device |
US20030046434A1 (en) * | 2001-08-14 | 2003-03-06 | Microsoft Corporation | Method and system for synchronizing mobile devices |
US20030050046A1 (en) * | 2001-07-09 | 2003-03-13 | Shane Conneely | Notification infrastructure for sending device-specific wireless notifications |
US6535892B1 (en) * | 1999-03-08 | 2003-03-18 | Starfish Software, Inc. | System and methods for exchanging messages between a client and a server for synchronizing datasets |
US20030069842A1 (en) * | 2000-07-25 | 2003-04-10 | Peter Kight | Inter-network electronic billing |
US20030081621A1 (en) * | 2001-10-26 | 2003-05-01 | Godfrey James A. | System and method for controlling configuration settings for mobile communication devices and services |
US20030097381A1 (en) * | 2001-11-19 | 2003-05-22 | Richard Detweiler | Coordinated synchronization |
US6571245B2 (en) * | 1998-12-07 | 2003-05-27 | Magically, Inc. | Virtual desktop in a computer network |
US6604236B1 (en) * | 1998-06-30 | 2003-08-05 | Iora, Ltd. | System and method for generating file updates for files stored on read-only media |
US6615253B1 (en) * | 1999-08-31 | 2003-09-02 | Accenture Llp | Efficient server side data retrieval for execution of client side applications |
US6625621B2 (en) * | 2000-01-04 | 2003-09-23 | Starfish Software, Inc. | System and methods for a fast and scalable synchronization server |
US6675203B1 (en) * | 1998-10-05 | 2004-01-06 | Symbol Technologies, Inc. | Collecting data in a batch mode in a wireless communications network with impeded communication |
US6694335B1 (en) * | 1999-10-04 | 2004-02-17 | Microsoft Corporation | Method, computer readable medium, and system for monitoring the state of a collection of resources |
US6697458B1 (en) * | 2000-07-10 | 2004-02-24 | Ulysses Esd, Inc. | System and method for synchronizing voice mailbox with e-mail box |
US20040054739A1 (en) * | 2001-08-07 | 2004-03-18 | John Friend | System and method for maintaining wireless file folders at a wireless device |
US6721787B1 (en) * | 2000-02-10 | 2004-04-13 | 3Com Corporation | System and method for wireless hot-synchronization of a personal digital assistant |
US6721871B2 (en) * | 2002-04-02 | 2004-04-13 | Nokia Corporation | Method and apparatus for synchronizing data stores with respect to changes in folders |
US20040105423A1 (en) * | 1999-07-27 | 2004-06-03 | Koehler Jeffrey A. | Apparatus and method for synchronization of multiple data paths and recovery from lost synchronization |
US20040109436A1 (en) * | 2002-11-05 | 2004-06-10 | Microsoft Corporation | User-input scheduling of synchronization operation on a mobile device based on user activity |
US6757698B2 (en) * | 1999-04-14 | 2004-06-29 | Iomega Corporation | Method and apparatus for automatically synchronizing data from a host computer to two or more backup data storage locations |
US6779019B1 (en) * | 1998-05-29 | 2004-08-17 | Research In Motion Limited | System and method for pushing information from a host system to a mobile data communication device |
US6792085B1 (en) * | 1999-09-10 | 2004-09-14 | Comdial Corporation | System and method for unified messaging with message replication and synchronization |
US6874037B1 (en) * | 2000-06-19 | 2005-03-29 | Sony Corporation | Method and apparatus for synchronizing device information |
US6874029B2 (en) * | 2000-11-22 | 2005-03-29 | Leap Wireless International, Inc. | Method and system for mediating interactive services over a wireless communications network |
US6901415B2 (en) * | 2001-06-27 | 2005-05-31 | Microsoft Corporation | Method and system for processing notifications |
US6907243B1 (en) * | 1999-06-09 | 2005-06-14 | Cisco Technology, Inc. | Method and system for dynamic soft handoff resource allocation in a wireless network |
US20050148356A1 (en) * | 1998-05-29 | 2005-07-07 | Research In Motion Limited | System and method for bundling information |
US6931454B2 (en) * | 2000-12-29 | 2005-08-16 | Intel Corporation | Method and apparatus for adaptive synchronization of network devices |
US6934766B1 (en) * | 2000-11-02 | 2005-08-23 | Cisco Technology, Inc. | Method and apparatus for exchanging event information between computer systems that reduce perceived lag times by subtracting actual lag times from event playback time |
US6941349B2 (en) * | 1998-05-29 | 2005-09-06 | Research In Motion Limited | System and method for pushing calendar event messages from a host system to a mobile data communication device |
US6941348B2 (en) * | 2002-02-19 | 2005-09-06 | Postini, Inc. | Systems and methods for managing the transmission of electronic messages through active message date updating |
US6983308B1 (en) * | 1998-11-19 | 2006-01-03 | Openwave Systems, Inc. | Mail synchronization of remote and local mail systems |
US7003776B2 (en) * | 2001-08-01 | 2006-02-21 | Oic Acquisition I Corporation | System and method for object persistence life-cycle and object caching integration |
US7085809B2 (en) * | 2001-09-18 | 2006-08-01 | Fujitsu Limited | Data synchronization system, data synchronization method, data center, and client terminal |
US7092699B1 (en) * | 2001-04-11 | 2006-08-15 | Verizon Laboratories Inc. | Seamless wireless phone access service |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8915875D0 (en) | 1989-07-11 | 1989-08-31 | Intelligence Quotient United K | A method of operating a data processing system |
US5469161A (en) | 1992-08-13 | 1995-11-21 | International Business Machines Corporation | Algorithm for the implementation of Ziv-Lempel data compression using content addressable memory |
US5455576A (en) | 1992-12-23 | 1995-10-03 | Hewlett Packard Corporation | Apparatus and methods for Lempel Ziv data compression with improved management of multiple dictionaries in content addressable memory |
JPH06290099A (en) | 1993-03-24 | 1994-10-18 | Internatl Business Mach Corp <Ibm> | Method for storage management and subsystem therefor |
CA2100533C (en) | 1993-06-22 | 2004-05-25 | Duncan Wayne Lee | Method and system for synchronizing computer mail user directories |
US5729735A (en) | 1995-02-08 | 1998-03-17 | Meyering; Samuel C. | Remote database file synchronizer |
JP3516362B2 (en) | 1995-03-01 | 2004-04-05 | 富士通株式会社 | Shared data processing device and shared data processing system |
IL117072A (en) | 1995-04-06 | 2001-11-25 | Rooster Ltd | Mail notification system and method |
JP3273119B2 (en) | 1995-09-29 | 2002-04-08 | 京セラ株式会社 | Data compression / decompression device |
US5727159A (en) | 1996-04-10 | 1998-03-10 | Kikinis; Dan | System in which a Proxy-Server translates information received from the Internet into a form/format readily usable by low power portable computers |
JPH1021261A (en) * | 1996-07-05 | 1998-01-23 | Hitachi Ltd | Method and system for multimedia data base retrieval |
US5878434A (en) | 1996-07-18 | 1999-03-02 | Novell, Inc | Transaction clash management in a disconnectable computer and network |
US5987464A (en) * | 1996-07-26 | 1999-11-16 | Schneider; Eric | Method and system for periodically updating data records having an expiry time |
US6006274A (en) | 1997-01-30 | 1999-12-21 | 3Com Corporation | Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer |
WO1998043359A1 (en) | 1997-03-24 | 1998-10-01 | Advantest Corporation | Method and device for compressing and expanding data pattern |
US6003089A (en) | 1997-03-31 | 1999-12-14 | Siemens Information And Communication Networks, Inc. | Method for constructing adaptive packet lengths in a congested network |
US6282294B1 (en) | 1998-01-07 | 2001-08-28 | Microsoft Corporation | System for broadcasting to, and programming, a motor device in a protocol, device, and network independent fashion |
US6151606A (en) | 1998-01-16 | 2000-11-21 | Visto Corporation | System and method for using a workspace data manager to access, manipulate and synchronize network data |
US20010054115A1 (en) | 1998-05-29 | 2001-12-20 | Tabitha Ferguson | System and method for bundling information |
US6810405B1 (en) | 1998-08-18 | 2004-10-26 | Starfish Software, Inc. | System and methods for synchronizing data between multiple datasets |
US6477543B1 (en) | 1998-10-23 | 2002-11-05 | International Business Machines Corporation | Method, apparatus and program storage device for a client and adaptive synchronization and transformation server |
US6658167B1 (en) | 1999-01-31 | 2003-12-02 | Hewlett-Packard Development Company, L.P. | On the fly server for modifying data characteristics for client-server network applications |
US6553037B1 (en) | 1999-04-08 | 2003-04-22 | Palm, Inc. | System and method for synchronizing data among a plurality of users via an intermittently accessed network |
US6308201B1 (en) | 1999-04-08 | 2001-10-23 | Palm, Inc. | System and method for sharing data among a plurality of personal digital assistants |
US6654746B1 (en) | 1999-05-03 | 2003-11-25 | Symantec Corporation | Methods and apparatuses for single-connection file synchronization workgroup file update |
CN1293502C (en) | 1999-06-30 | 2007-01-03 | 倾向探测公司 | Method and apparatus for monitoring traffic in a network |
JP2001053785A (en) | 1999-08-09 | 2001-02-23 | Mitsubishi Materials Corp | Information transmission device, information storage device, information reception device, use thereof and recording medium therefor |
US6640244B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
JP2001076040A (en) | 1999-09-03 | 2001-03-23 | Hitachi Information Systems Ltd | Electronic dealing method using internet |
US6671757B1 (en) | 2000-01-26 | 2003-12-30 | Fusionone, Inc. | Data transfer and synchronization system |
AU3689301A (en) | 2000-02-09 | 2001-08-20 | Apriva Inc | Communication systems, components, and methods operative with programmable wireless devices |
US7426750B2 (en) | 2000-02-18 | 2008-09-16 | Verimatrix, Inc. | Network-based content distribution system |
GB2365260B (en) | 2000-02-24 | 2004-05-26 | Ibm | Database synchronisation for mobile computing devices |
US6636873B1 (en) | 2000-04-17 | 2003-10-21 | Oracle International Corporation | Methods and systems for synchronization of mobile devices with a remote database |
JP2001306463A (en) | 2000-04-20 | 2001-11-02 | Matsushita Graphic Communication Systems Inc | Mail report device and portable telephone system |
US20020016818A1 (en) * | 2000-05-11 | 2002-02-07 | Shekhar Kirani | System and methodology for optimizing delivery of email attachments for disparate devices |
JP2001339422A (en) | 2000-05-25 | 2001-12-07 | Mitsubishi Electric Corp | Mail data managing system |
US7149511B1 (en) | 2000-08-31 | 2006-12-12 | Rosetta-Wireless Corporation | Wireless intelligent personal server |
JP3866506B2 (en) | 2000-12-04 | 2007-01-10 | 株式会社エヌ・ティ・ティ・ドコモ | E-mail delivery control method and mail server |
US7010303B2 (en) | 2000-12-22 | 2006-03-07 | Research In Motion Limited | Wireless router system and method |
US6947738B2 (en) | 2001-01-18 | 2005-09-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Multimedia messaging service routing system and method |
KR20020067803A (en) | 2001-02-19 | 2002-08-24 | 삼성전자 주식회사 | Multimedia e-mail service system and method for portable terminal |
US7103656B2 (en) | 2001-02-20 | 2006-09-05 | Research In Motion Limited | System and method for administrating a wireless communication network |
JP4859276B2 (en) | 2001-03-21 | 2012-01-25 | 富士通東芝モバイルコミュニケーションズ株式会社 | Communication terminal device and display method |
US20020160773A1 (en) | 2001-03-29 | 2002-10-31 | Tenzing Communications, Inc. | Communications systems for aircraft including wireless systems |
US20030069848A1 (en) | 2001-04-06 | 2003-04-10 | Larson Daniel S. | A User interface for computer network management |
US7136934B2 (en) * | 2001-06-19 | 2006-11-14 | Request, Inc. | Multimedia synchronization method and device |
US6628934B2 (en) | 2001-07-12 | 2003-09-30 | Earthlink, Inc. | Systems and methods for automatically provisioning wireless services on a wireless device |
US6732105B1 (en) | 2001-07-27 | 2004-05-04 | Palmone, Inc. | Secure authentication proxy architecture for a web-based wireless intranet application |
US7155483B1 (en) * | 2001-08-07 | 2006-12-26 | Good Technology, Inc. | Apparatus and method for conserving bandwidth by batch processing data transactions |
US7962622B2 (en) | 2001-08-07 | 2011-06-14 | Motorola Mobility, Inc. | System and method for providing provisioning and upgrade services for a wireless device |
US7243163B1 (en) | 2001-08-07 | 2007-07-10 | Good Technology, Inc. | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US7743119B2 (en) | 2001-08-07 | 2010-06-22 | Motorola, Inc. | System and method for mapping identification codes |
US20080301231A1 (en) | 2001-11-28 | 2008-12-04 | Samir Narendra Mehta | Method and System for Maintaining and Distributing Wireless Applications |
US7835951B1 (en) | 2002-01-08 | 2010-11-16 | Brightpoint, Inc. | Distribution channel management for wireless devices and services |
US7606881B2 (en) * | 2002-04-25 | 2009-10-20 | Oracle International Corporation | System and method for synchronization of version annotated objects |
US6957077B2 (en) | 2002-05-06 | 2005-10-18 | Microsoft Corporation | System and method for enabling instant messaging on a mobile device |
AU2003260071A1 (en) | 2002-08-27 | 2004-03-19 | Td Security, Inc., Dba Trust Digital, Llc | Enterprise-wide security system for computer devices |
US7475240B2 (en) | 2002-11-06 | 2009-01-06 | Symantec Corporation | System and method for add-on services, secondary authentication, authorization and/or secure communication for dialog based protocols and systems |
US9232077B2 (en) | 2003-03-12 | 2016-01-05 | Qualcomm Incorporated | Automatic subscription system for applications and services provided to wireless devices |
US6973299B2 (en) * | 2003-08-01 | 2005-12-06 | Microsoft Corporation | Unified contact list |
-
2002
- 2002-03-29 US US10/109,928 patent/US7243163B1/en not_active Expired - Lifetime
-
2003
- 2003-01-21 US US10/348,271 patent/US7287097B1/en not_active Expired - Lifetime
- 2003-01-21 US US10/348,281 patent/US8321511B1/en active Active
-
2007
- 2007-05-24 US US11/807,290 patent/US20070239898A1/en not_active Abandoned
- 2007-07-16 US US11/879,384 patent/US8954512B2/en active Active
Patent Citations (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4682150A (en) * | 1985-12-09 | 1987-07-21 | Ncr Corporation | Data compression method and apparatus |
US5115392A (en) * | 1986-10-09 | 1992-05-19 | Hitachi, Ltd. | Method and apparatus for multi-transaction batch processing |
US5321840A (en) * | 1988-05-05 | 1994-06-14 | Transaction Technology, Inc. | Distributed-intelligence computer system including remotely reconfigurable, telephone-type user terminal |
US5126739A (en) * | 1989-01-13 | 1992-06-30 | Stac Electronics | Data compression apparatus and method |
US5049881A (en) * | 1990-06-18 | 1991-09-17 | Intersecting Concepts, Inc. | Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique |
US5159592A (en) * | 1990-10-29 | 1992-10-27 | International Business Machines Corporation | Network address management for a wired network supporting wireless communication to a plurality of mobile users |
US5666530A (en) * | 1992-12-02 | 1997-09-09 | Compaq Computer Corporation | System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between |
US5521597A (en) * | 1993-08-02 | 1996-05-28 | Mircosoft Corporation | Data compression for network transport |
US5563595A (en) * | 1993-12-23 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for compressing data |
US5559800A (en) * | 1994-01-19 | 1996-09-24 | Research In Motion Limited | Remote control of gateway functions in a wireless data communication network |
US20020146240A1 (en) * | 1994-02-02 | 2002-10-10 | Sony Corporation | Recording apparatus and reproducing apparatus |
US5553281A (en) * | 1994-03-21 | 1996-09-03 | Visual F/X, Inc. | Method for computer-assisted media processing |
US5802312A (en) * | 1994-09-27 | 1998-09-01 | Research In Motion Limited | System for transmitting data files between computers in a wireless environment utilizing a file transfer agent executing on host system |
US5715387A (en) * | 1995-02-10 | 1998-02-03 | Research In Motion Limited | Method and system for loading and confirming correct operation of an application program in a target system |
US5771010A (en) * | 1995-03-22 | 1998-06-23 | Ibm Corporation | Apparatus for compressing data using a Lempel-Ziv-type algorithm |
US5903230A (en) * | 1995-03-22 | 1999-05-11 | International Business Machines Corp. | Apparatus for compressing data using a Lempel-Ziv-type algorithm |
US6182117B1 (en) * | 1995-05-31 | 2001-01-30 | Netscape Communications Corporation | Method and apparatus for workgroup information replication |
US5727202A (en) * | 1995-10-18 | 1998-03-10 | Palm Computing, Inc. | Method and apparatus for synchronizing information on two different computer systems |
US5875329A (en) * | 1995-12-22 | 1999-02-23 | International Business Machines Corp. | Intelligent batching of distributed messages |
US5790974A (en) * | 1996-04-29 | 1998-08-04 | Sun Microsystems, Inc. | Portable calendaring device having perceptual agent managing calendar entries |
US5870610A (en) * | 1996-06-28 | 1999-02-09 | Siemens Business Communication Systems, Inc. | Autoconfigurable method and system having automated downloading |
US5793970A (en) * | 1996-07-11 | 1998-08-11 | Microsoft Corporation | Method and computer program product for converting message identification codes using a conversion map accesible via a data link |
US5974238A (en) * | 1996-08-07 | 1999-10-26 | Compaq Computer Corporation | Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements |
US5760716A (en) * | 1996-08-21 | 1998-06-02 | Autodesk, Inc. | Vector data compression |
US5930471A (en) * | 1996-12-26 | 1999-07-27 | At&T Corp | Communications system and method of operation for electronic messaging using structured response objects and virtual mailboxes |
US5961590A (en) * | 1997-04-11 | 1999-10-05 | Roampage, Inc. | System and method for synchronizing electronic mail between a client site and a central site |
US6275848B1 (en) * | 1997-05-21 | 2001-08-14 | International Business Machines Corp. | Method and apparatus for automated referencing of electronic information |
US6023708A (en) * | 1997-05-29 | 2000-02-08 | Visto Corporation | System and method for using a global translator to synchronize workspace elements across a network |
US6505055B1 (en) * | 1997-08-04 | 2003-01-07 | Starfish Software, Inc. | Camel-back digital organizer and communication protocol for a cellular phone device |
US6259891B1 (en) * | 1997-09-04 | 2001-07-10 | Hughes Electronics Corporation | Adapter and method for use in a portable communication signal receiver system |
US6052735A (en) * | 1997-10-24 | 2000-04-18 | Microsoft Corporation | Electronic mail object synchronization between a desktop computer and mobile device |
US6104392A (en) * | 1997-11-13 | 2000-08-15 | The Santa Cruz Operation, Inc. | Method of displaying an application on a variety of client devices in a client/server network |
US6216157B1 (en) * | 1997-11-14 | 2001-04-10 | Yahoo! Inc. | Method and apparatus for a client-server system with heterogeneous clients |
US6034621A (en) * | 1997-11-18 | 2000-03-07 | Lucent Technologies, Inc. | Wireless remote synchronization of data between PC and PDA |
US6188695B1 (en) * | 1997-12-18 | 2001-02-13 | Ericsson Inc. | System and method for multi-node data synchronization |
US6111707A (en) * | 1997-12-31 | 2000-08-29 | International Business Machines Corporation | Tape duplexing with unique identity and error recovery |
US6065017A (en) * | 1997-12-31 | 2000-05-16 | Novell, Inc. | Apparatus and method for identifying and recovering from database errors |
US6304881B1 (en) * | 1998-03-03 | 2001-10-16 | Pumatech, Inc. | Remote data access and synchronization |
US6310889B1 (en) * | 1998-03-12 | 2001-10-30 | Nortel Networks Limited | Method of servicing data access requests from users |
US6779019B1 (en) * | 1998-05-29 | 2004-08-17 | Research In Motion Limited | System and method for pushing information from a host system to a mobile data communication device |
US20010005864A1 (en) * | 1998-05-29 | 2001-06-28 | Mousseau Gary P. | System and method for redirecting message attachments between a host system and a mobile data communication device |
US6279001B1 (en) * | 1998-05-29 | 2001-08-21 | Webspective Software, Inc. | Web service |
US20010004744A1 (en) * | 1998-05-29 | 2001-06-21 | Mihal Lazaridis | System and method for pushing information from a host system to a mobile data communication device |
US6219694B1 (en) * | 1998-05-29 | 2001-04-17 | Research In Motion Limited | System and method for pushing information from a host system to a mobile data communication device having a shared electronic address |
US6701378B1 (en) * | 1998-05-29 | 2004-03-02 | Research In Motion Limited | System and method for pushing information from a host system to a mobile data communication device |
US20020120696A1 (en) * | 1998-05-29 | 2002-08-29 | Mousseau Gary P. | System and method for pushing information from a host system to a mobile data communication device |
US6941349B2 (en) * | 1998-05-29 | 2005-09-06 | Research In Motion Limited | System and method for pushing calendar event messages from a host system to a mobile data communication device |
US20050148356A1 (en) * | 1998-05-29 | 2005-07-07 | Research In Motion Limited | System and method for bundling information |
US6396482B1 (en) * | 1998-06-26 | 2002-05-28 | Research In Motion Limited | Hand-held electronic device with a keyboard optimized for use with the thumbs |
US6604236B1 (en) * | 1998-06-30 | 2003-08-05 | Iora, Ltd. | System and method for generating file updates for files stored on read-only media |
US6226618B1 (en) * | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
US6218970B1 (en) * | 1998-09-11 | 2001-04-17 | International Business Machines Corporation | Literal handling in LZ compression employing MRU/LRU encoding |
US6430601B1 (en) * | 1998-09-30 | 2002-08-06 | Xerox Corporation | Mobile document paging service |
US6675203B1 (en) * | 1998-10-05 | 2004-01-06 | Symbol Technologies, Inc. | Collecting data in a batch mode in a wireless communications network with impeded communication |
US20010010059A1 (en) * | 1998-10-28 | 2001-07-26 | Steven Wesley Burman | Method and apparatus for determining travel time for data sent between devices connected to a computer network |
US6401136B1 (en) * | 1998-11-13 | 2002-06-04 | International Business Machines Corporation | Methods, systems and computer program products for synchronization of queue-to-queue communications |
US20020013853A1 (en) * | 1998-11-13 | 2002-01-31 | Baber Stephen C. | Methods, systems and computer program products for transferring a file using a message queue |
US6343299B1 (en) * | 1998-11-16 | 2002-01-29 | International Business Machines Corporation | Method and apparatus for random update synchronization among multiple computing devices |
US6983308B1 (en) * | 1998-11-19 | 2006-01-03 | Openwave Systems, Inc. | Mail synchronization of remote and local mail systems |
US6571245B2 (en) * | 1998-12-07 | 2003-05-27 | Magically, Inc. | Virtual desktop in a computer network |
US6449622B1 (en) * | 1999-03-08 | 2002-09-10 | Starfish Software, Inc. | System and methods for synchronizing datasets when dataset changes may be received out of order |
US6535892B1 (en) * | 1999-03-08 | 2003-03-18 | Starfish Software, Inc. | System and methods for exchanging messages between a client and a server for synchronizing datasets |
US6457062B1 (en) * | 1999-04-08 | 2002-09-24 | Palm, Inc. | System and method for synchronizing multiple calendars over wide area network |
US6757698B2 (en) * | 1999-04-14 | 2004-06-29 | Iomega Corporation | Method and apparatus for automatically synchronizing data from a host computer to two or more backup data storage locations |
US20010034654A1 (en) * | 1999-05-12 | 2001-10-25 | L. Vigil Todd W. | Interactive internet advertising and e-commerce method and system |
US6360272B1 (en) * | 1999-05-28 | 2002-03-19 | Palm, Inc. | Method and apparatus for maintaining a unified view of multiple mailboxes |
US6907243B1 (en) * | 1999-06-09 | 2005-06-14 | Cisco Technology, Inc. | Method and system for dynamic soft handoff resource allocation in a wireless network |
US20040105423A1 (en) * | 1999-07-27 | 2004-06-03 | Koehler Jeffrey A. | Apparatus and method for synchronization of multiple data paths and recovery from lost synchronization |
US6615253B1 (en) * | 1999-08-31 | 2003-09-02 | Accenture Llp | Efficient server side data retrieval for execution of client side applications |
US6792085B1 (en) * | 1999-09-10 | 2004-09-14 | Comdial Corporation | System and method for unified messaging with message replication and synchronization |
US6393434B1 (en) * | 1999-09-14 | 2002-05-21 | International Business Machines Corporation | Method and system for synchronizing data using fine-grained synchronization plans |
US6384850B1 (en) * | 1999-09-21 | 2002-05-07 | Ameranth Wireless | Information management and synchronous communications system with menu generation |
US6694335B1 (en) * | 1999-10-04 | 2004-02-17 | Microsoft Corporation | Method, computer readable medium, and system for monitoring the state of a collection of resources |
US20020046286A1 (en) * | 1999-12-13 | 2002-04-18 | Caldwell R. Russell | Attribute and application synchronization in distributed network environment |
US6460055B1 (en) * | 1999-12-16 | 2002-10-01 | Livevault Corporation | Systems and methods for backing up data files |
US6625621B2 (en) * | 2000-01-04 | 2003-09-23 | Starfish Software, Inc. | System and methods for a fast and scalable synchronization server |
US6721787B1 (en) * | 2000-02-10 | 2004-04-13 | 3Com Corporation | System and method for wireless hot-synchronization of a personal digital assistant |
US6347340B1 (en) * | 2000-02-18 | 2002-02-12 | Mobilesys, Inc. | Apparatus and method for converting a network message to a wireless transport message using a modular architecture |
US6874037B1 (en) * | 2000-06-19 | 2005-03-29 | Sony Corporation | Method and apparatus for synchronizing device information |
US6697458B1 (en) * | 2000-07-10 | 2004-02-24 | Ulysses Esd, Inc. | System and method for synchronizing voice mailbox with e-mail box |
US20030069842A1 (en) * | 2000-07-25 | 2003-04-10 | Peter Kight | Inter-network electronic billing |
US20020019225A1 (en) * | 2000-08-08 | 2002-02-14 | Nec Corporation | Communication control system using telephone directory management system of mobile phone |
US20020032722A1 (en) * | 2000-09-11 | 2002-03-14 | Avantgo, Inc. | Method, system, and computer program product for synchronization of similar data objects with event information |
US6934766B1 (en) * | 2000-11-02 | 2005-08-23 | Cisco Technology, Inc. | Method and apparatus for exchanging event information between computer systems that reduce perceived lag times by subtracting actual lag times from event playback time |
US6874029B2 (en) * | 2000-11-22 | 2005-03-29 | Leap Wireless International, Inc. | Method and system for mediating interactive services over a wireless communications network |
US6931454B2 (en) * | 2000-12-29 | 2005-08-16 | Intel Corporation | Method and apparatus for adaptive synchronization of network devices |
US20020119793A1 (en) * | 2001-02-27 | 2002-08-29 | Daniel Hronek | Mobile originated interactive menus via short messaging services |
US7092699B1 (en) * | 2001-04-11 | 2006-08-15 | Verizon Laboratories Inc. | Seamless wireless phone access service |
US6901415B2 (en) * | 2001-06-27 | 2005-05-31 | Microsoft Corporation | Method and system for processing notifications |
US20030050046A1 (en) * | 2001-07-09 | 2003-03-13 | Shane Conneely | Notification infrastructure for sending device-specific wireless notifications |
US7003776B2 (en) * | 2001-08-01 | 2006-02-21 | Oic Acquisition I Corporation | System and method for object persistence life-cycle and object caching integration |
US20040054739A1 (en) * | 2001-08-07 | 2004-03-18 | John Friend | System and method for maintaining wireless file folders at a wireless device |
US20030046434A1 (en) * | 2001-08-14 | 2003-03-06 | Microsoft Corporation | Method and system for synchronizing mobile devices |
US7085809B2 (en) * | 2001-09-18 | 2006-08-01 | Fujitsu Limited | Data synchronization system, data synchronization method, data center, and client terminal |
US20030081621A1 (en) * | 2001-10-26 | 2003-05-01 | Godfrey James A. | System and method for controlling configuration settings for mobile communication devices and services |
US20030097381A1 (en) * | 2001-11-19 | 2003-05-22 | Richard Detweiler | Coordinated synchronization |
US6941348B2 (en) * | 2002-02-19 | 2005-09-06 | Postini, Inc. | Systems and methods for managing the transmission of electronic messages through active message date updating |
US6721871B2 (en) * | 2002-04-02 | 2004-04-13 | Nokia Corporation | Method and apparatus for synchronizing data stores with respect to changes in folders |
US20040109436A1 (en) * | 2002-11-05 | 2004-06-10 | Microsoft Corporation | User-input scheduling of synchronization operation on a mobile device based on user activity |
Cited By (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7962622B2 (en) | 2001-08-07 | 2011-06-14 | Motorola Mobility, Inc. | System and method for providing provisioning and upgrade services for a wireless device |
US8954512B2 (en) | 2001-08-07 | 2015-02-10 | Google Technology Holdings LLC | System and method for full wireless synchronization of a data processing apparatus with a data service |
US8321511B1 (en) | 2001-08-07 | 2012-11-27 | Motorola Mobility Llc | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US20050132010A1 (en) * | 2003-12-12 | 2005-06-16 | International Business Machines Corporation | Scheduled electronic mail deletions |
US11789930B2 (en) | 2004-11-08 | 2023-10-17 | Dropbox, Inc. | Method and apparatus for a file sharing and synchronization system |
US10956404B2 (en) | 2004-11-08 | 2021-03-23 | Dropbox, Inc. | Method and apparatus for a file sharing synchronization system |
US11341114B2 (en) | 2004-11-08 | 2022-05-24 | Dropbox, Inc. | Method and apparatus for a file sharing and synchronization system |
US10380099B2 (en) | 2004-11-08 | 2019-08-13 | Dropbox, Inc. | Method and apparatus for a file sharing and synchronization system |
US10769131B2 (en) | 2004-11-08 | 2020-09-08 | Dropbox, Inc. | Method and apparatus for a file sharing and synchronization system |
US10320904B2 (en) | 2004-11-08 | 2019-06-11 | Dropbox, Inc. | Method and apparatus for a file sharing and synchronization system |
US11334555B2 (en) | 2004-11-08 | 2022-05-17 | Dropbox, Inc. | Method and apparatus for a file sharing and synchronization system |
US10423604B2 (en) * | 2004-11-08 | 2019-09-24 | Dropbox, Inc. | Method and apparatus for a file sharing synchronization system |
US10515070B2 (en) | 2004-11-08 | 2019-12-24 | Dropbox, Inc. | Method and apparatus for a file sharing synchronization system |
US11269852B2 (en) | 2004-11-08 | 2022-03-08 | Dropbox, Inc. | Method and apparatus for a file sharing and synchronization system |
US11394751B2 (en) | 2004-11-24 | 2022-07-19 | Global Tel*Link Corporation | Electronic messaging exchange |
US9967291B1 (en) | 2004-11-24 | 2018-05-08 | Global Tel*Link Corporation | Electronic messaging exchange |
US10560488B2 (en) | 2004-11-24 | 2020-02-11 | Global Tel*Link Corporation | Electronic messaging exchange |
US11290499B2 (en) | 2004-11-24 | 2022-03-29 | Global Tel*Link Corporation | Encrypted electronic messaging exchange |
US11843640B2 (en) | 2004-11-24 | 2023-12-12 | Global Tel*Link Corporation | Electronic messaging exchange |
US9923932B2 (en) | 2004-11-24 | 2018-03-20 | Global Tel*Link Corporation | Electronic messaging exchange |
US10116707B2 (en) | 2004-11-24 | 2018-10-30 | Global Tel*Link Corporation | Electronic messaging exchange |
US10397410B2 (en) | 2005-01-28 | 2019-08-27 | Value-Added Communications, Inc. | Message exchange |
US11902462B2 (en) | 2005-01-28 | 2024-02-13 | Value-Added Communications, Inc. | Message exchange |
US10218842B2 (en) | 2005-01-28 | 2019-02-26 | Value-Added Communications, Inc. | Message exchange |
US11483433B2 (en) | 2005-01-28 | 2022-10-25 | Value-Added Communications, Inc. | Message exchange |
US9219703B2 (en) | 2006-07-21 | 2015-12-22 | Blackberry Limited | Handling notifications in instant messaging systems |
US8572182B2 (en) * | 2006-07-21 | 2013-10-29 | Blackberry Limited | Handling notifications in instant messaging systems |
US20140032692A1 (en) * | 2006-07-21 | 2014-01-30 | Blackberry Limited | Handling Notifications in Instant Messaging Systems |
US9264386B2 (en) * | 2006-07-21 | 2016-02-16 | Blackberry Limited | Handling notifications in instant messaging systems |
US20080037722A1 (en) * | 2006-07-21 | 2008-02-14 | Research In Motion Limited | Handling Notifications in Instant Messaging Systems |
US9282189B2 (en) | 2007-02-16 | 2016-03-08 | At&T Intellectual Property I, L.P. | Methods, systems, and products for notifications |
US9961207B2 (en) | 2007-02-16 | 2018-05-01 | At&T Intellectual Property I, L.P. | Methods, systems, and products for notifications |
US8824644B2 (en) * | 2007-02-16 | 2014-09-02 | At&T Intellectual Property I, L.P. | Methods, systems, and products for notifications |
US10735596B2 (en) | 2007-02-16 | 2020-08-04 | At&T Intellectual Proerty I, L.P. | Methods, systems, and products for notifications |
US20110255672A1 (en) * | 2007-02-16 | 2011-10-20 | At&T Intellectual Property I, L.P. | Methods, Systems, and Products for Notifications |
US20080273675A1 (en) * | 2007-05-03 | 2008-11-06 | James Siminoff | Systems And Methods For Displaying Voicemail Transcriptions |
US8370839B2 (en) * | 2007-07-20 | 2013-02-05 | International Business Machines Corporation | Monitoring message queues in message queuing information systems and initiating batch jobs to perform functions on the message queues |
US20090024998A1 (en) * | 2007-07-20 | 2009-01-22 | International Business Machines Corporation | Initiation of batch jobs in message queuing information systems |
US9621714B2 (en) | 2009-01-27 | 2017-04-11 | Value-Added Communications, Inc. | System and method for electronic notification in institutional communication |
US10757265B2 (en) | 2009-01-27 | 2020-08-25 | Value Added Communications, Inc. | System and method for electronic notification in institutional communications |
US11943393B2 (en) | 2009-01-27 | 2024-03-26 | Value-Added Communications, Inc. | System and method for electronic notification in institutional communications |
US20100189228A1 (en) * | 2009-01-27 | 2010-07-29 | Serge Seyfetdinov | System and method for electronic notification in institutional communication |
US8681963B2 (en) * | 2011-06-09 | 2014-03-25 | Blackberry Limited | Method for sending recorded conference call content |
US9380156B2 (en) | 2011-06-09 | 2016-06-28 | Blackberry Limited | Method for sending recorded conference call content |
US20120314849A1 (en) * | 2011-06-09 | 2012-12-13 | Research In Motion Limited | Method for sending recorded conference call content |
US8805795B2 (en) | 2011-06-20 | 2014-08-12 | Bank Of America Corporation | Identifying duplicate messages in a database |
US8572134B2 (en) * | 2011-06-20 | 2013-10-29 | Bank Of America Corporation | Transforming and storing messages in a database |
US20120323978A1 (en) * | 2011-06-20 | 2012-12-20 | Bank Of America Corporation | Transforming and Storing Messages in a Database |
US11233851B2 (en) | 2012-08-10 | 2022-01-25 | Dropbox, Inc. | System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients |
US10805388B2 (en) | 2012-08-10 | 2020-10-13 | Dropbox, Inc. | System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients |
US10805389B2 (en) | 2012-08-10 | 2020-10-13 | Dropbox, Inc. | System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients |
US10749827B2 (en) | 2017-05-11 | 2020-08-18 | Global Tel*Link Corporation | System and method for inmate notification and training in a controlled environment facility |
US11509617B2 (en) | 2017-05-11 | 2022-11-22 | Global Tel*Link Corporation | System and method for inmate notification and training in a controlled environment facility |
US11334596B2 (en) | 2018-04-27 | 2022-05-17 | Dropbox, Inc. | Selectively identifying and recommending digital content items for synchronization |
US11809450B2 (en) | 2018-04-27 | 2023-11-07 | Dropbox, Inc. | Selectively identifying and recommending digital content items for synchronization |
Also Published As
Publication number | Publication date |
---|---|
US8321511B1 (en) | 2012-11-27 |
US20070266107A1 (en) | 2007-11-15 |
US8954512B2 (en) | 2015-02-10 |
US7287097B1 (en) | 2007-10-23 |
US7243163B1 (en) | 2007-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7243163B1 (en) | System and method for full wireless synchronization of a data processing apparatus with a messaging system | |
US7155483B1 (en) | Apparatus and method for conserving bandwidth by batch processing data transactions | |
EP1493086A1 (en) | System and method for full wireless synchronization of a data processing apparatus with a data service | |
US7064688B2 (en) | System and method for compressing data on a bandwidth-limited network | |
US20030009595A1 (en) | System and method for compressing data using field-based code word generation | |
US7596565B2 (en) | System and method for maintaining wireless file folders at a wireless device | |
US7266365B2 (en) | System and method for delayed transmission of bundled command messages | |
EP1273135B1 (en) | System and method for bundling information | |
US7756930B2 (en) | Techniques for determining the reputation of a message sender | |
US7631045B2 (en) | Content router asynchronous exchange | |
US20010054115A1 (en) | System and method for bundling information | |
US20080270547A1 (en) | System and method for synchronizing email messages between an external email server a local email server and/or a wireless data processing device | |
US20080270548A1 (en) | Apparatus and method for caching email messages within a wireless data service | |
US20070038703A1 (en) | Content router gateway | |
US20070014277A1 (en) | Content router repository | |
US8024416B2 (en) | System and method for bundling information | |
US7818033B2 (en) | System and method for bundling information | |
EP1691516B1 (en) | Method and system for message thread compression | |
JP2002056001A (en) | Device for extracting expert and computer-readable recording medium with expert extraction program recorded thereon | |
JP2004274489A (en) | Mail data compressing method | |
JPH06276223A (en) | Electronic mail allocation processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MOTOROLA, INC., ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GOOD TECHNOLOGY, INC.;REEL/FRAME:022481/0859 Effective date: 20090225 Owner name: MOTOROLA, INC.,ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GOOD TECHNOLOGY, INC.;REEL/FRAME:022481/0859 Effective date: 20090225 |
|
AS | Assignment |
Owner name: MOTOROLA, INC., ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GOOD TECHNOLOGY INC;REEL/FRAME:023415/0535 Effective date: 20090225 |
|
AS | Assignment |
Owner name: MOTOROLA MOBILITY, INC, ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOTOROLA, INC;REEL/FRAME:025673/0558 Effective date: 20100731 |
|
AS | Assignment |
Owner name: MOTOROLA MOBILITY LLC, ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOTOROLA MOBILITY, INC.;REEL/FRAME:028829/0856 Effective date: 20120622 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |