US20100153335A1 - Synchronizing multiple classes with disparate schemas in the same collection - Google Patents
Synchronizing multiple classes with disparate schemas in the same collection Download PDFInfo
- Publication number
- US20100153335A1 US20100153335A1 US12/334,314 US33431408A US2010153335A1 US 20100153335 A1 US20100153335 A1 US 20100153335A1 US 33431408 A US33431408 A US 33431408A US 2010153335 A1 US2010153335 A1 US 2010153335A1
- Authority
- US
- United States
- Prior art keywords
- class
- schema
- items
- option
- mobile device
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
- G06F16/1787—Details of non-transparently synchronising file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- 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
- G06F16/273—Asynchronous replication or reconciliation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- 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
- 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
Definitions
- voice mail messages electronic mail (email), short message service (SMS) messages
- contacts, notes, calendar-type application appointments, and/or tasks between their mobile, or handheld, devices and their client computer or server at their place of employment and/or home.
- Such incorporation allows users to track their messages, email, calendar-type application appointments, contacts, notes, and/or tasks, etc. from nearly any location and at any time of day with their mobile device. While such incorporation is desired, it is also desired to synchronize these voice mail messages, email, calendar-type application appointments, contacts, notes, and/or tasks, etc. amongst the user's mobile device(s), client
- a common schema is typically applied to all items, e.g., email, voice mail, calendar-type application appointments, tasks, contacts, notes, etc., in that folder regardless of the differences in the classes of items present in the collection.
- the same options are applied to all classes within the collection. For example, the same filters are applied to each class, as well as the same truncation and body type settings.
- the synchronization of some class items may be lost where one of the computing systems does not support the particular class of items. For example, a mobile device may not support the receipt of tasks, for example. Alternatively, the user may experience a poor viewing experience in attempting to open a particular message not supported by its system.
- Embodiments generally relate to synchronizing multiple classes with disparate schema per class in the same collection or folder through the use of the same synchronization request.
- items are synchronized amongst a mobile device, a client computer, and a message server, for example.
- Any number of types of computing systems known to or understood by those of ordinary skill in the art may be synchronized amongst the other applicable computing systems.
- a collection of different types of items may be synchronized while still using the unique schema and, thus, properties, for each type of class of items.
- these multiple classes with disparate schemas within a collection are synchronized by using multiple option blocks within a synchronization command. The presence of an option block in a synchronization command notifies the server to synchronize the class specified in the option block.
- Each such option block represents a single class of item(s) for synchronization.
- the option block specifies the options, or settings, if any, to apply to the class specified according to an aspect of an embodiment.
- the response from the applicable server to the synchronization request includes the synchronized items of all classes specified and with each class maintaining its unique schema.
- FIG. 1 illustrates an exemplary logical representation of an environment or system for synchronizing multiple classes with disparate schemas within the same collection in accordance with an embodiment of the present disclosure.
- FIG. 2 depicts a logical representation of exemplary functional component modules for the client computing system, the server, and the mobile device depicted in FIG. 1 for synchronizing multiple classes with disparate schemas within the same collection in accordance with an embodiment of the present disclosure.
- FIG. 3 illustrates an exemplary user interface showing different classes of items for a user to select for synchronization in accordance with an embodiment of the present disclosure.
- FIG. 4 depicts an exemplary user interface showing different options available for a user to select for applying to the class specified by the user in FIG. 3 in accordance with an embodiment of the present disclosure.
- FIG. 5 depicts a flow diagram illustrating the operational characteristics of a process for requesting a specific class or classes with disparate schemas within a collection for synchronization in accordance with an embodiment of the present disclosure.
- FIG. 6 illustrates a flow diagram illustrating the operational characteristics of a process for determining the items to synchronize based on a request, such as that provided in FIG. 5 for example, in accordance with an embodiment of the present disclosure.
- FIG. 7 depicts an exemplary computing system upon which embodiments of the present disclosure may be implemented.
- Embodiments generally relate to synchronizing multiple classes with disparate schemas within the same collection or folder through the use of the same synchronization transaction (request/response).
- synchronization is initiated, items are synchronized amongst a mobile device, a client, and a message server, for example, in accordance with embodiments.
- any number of types of computing systems known to or understood by those of ordinary skill in the art may be synchronized amongst the other applicable computing systems.
- any type of synchronization key to initiate synchronization may be used as known to or understood by those of ordinary skill in the art without departing from the spirit and scope of the embodiments disclosed herein.
- classes may include voice mail messages, email, SMS messages, enhanced messaging service (EMS) messages, multimedia messaging service (MMS) messages, calendar-type application appointments, tasks, contacts, notes, etc.
- EMS enhanced messaging service
- MMS multimedia messaging service
- a request for synchronization may specify the particular class or classes of items within a folder that the user desires to have synchronized.
- the ability to select specific classes for synchronization allows for the multiple classes within a collection to maintain their unique, and different, schemas.
- each schema may have only those properties appropriate for its specific class, as opposed to having a common schema applicable to the collection as whole with the majority of properties named in such being inapplicable to the majority of classes in the collection.
- an SMS schema may be used for a SMS class
- a voice mail schema may be used for a voice mail class, even where both the SMS items and the voice mail items are located in the email folder.
- a user may request that the SMS class be synchronized in the email folder, while not specifying the voice mail class. In such a situation, only the SMS items will be synchronized and returned with their individual schema to the device.
- these specific classes and folders are offered for purposes of illustration only and are in no way intended to be limiting. Any number of types of classes and folders may be used as known to or understood by those of ordinary skill in the art without departing from the spirit and scope of the present disclosure.
- the class schemas are defined and published by developers in accordance with embodiments disclosed herein.
- client developers write code for the classes according to particular specification(s) which include schema definitions.
- schema definitions In writing the schema definition for a particular class, properties are defined for the particular schema for that class, for example.
- the request for synchronization may specify the particular options to be applied in synchronizing each selected class. For example, the user may specify that all voice mail messages be filtered and that only SMS messages received within the last five (5) days be filtered in accordance with an embodiment.
- the request for synchronization may also specify whether truncation of a message is desired so that only a portion of the message is sent to the devices to save bandwidth, local memory and processing, etc.
- the request for synchronization may specify other options known to or understood by those of ordinary skill in the art, including body type, such as to have the body of a message be viewed in rich text format (RTF), HTML, etc.
- a default class is applied for a given folder.
- default options are applied to the synchronization for a given collection.
- a set of options is explicitly specified for a particular class even where no class is specified by the synchronization request.
- FIG. 1 An exemplary logical environment or system 100 for synchronizing multiple classes with disparate schemas within a collection between a client computer, a server, and a mobile device is shown in FIG. 1 in accordance with embodiments disclosed herein.
- the user of client computer 102 may also own mobile device 110 . Any type of client computer 102 known to or understood by those of ordinary skill in the art may be used in accordance with embodiments.
- Messages, or other items, are sent between client computer 102 and server 104 through network 106 .
- Client computer 102 also accesses messages stored on server 104 through network 106 . These messages, or other items, are also sent to mobile device 110 through mobile device network 108 .
- Logical environment 100 is not limited to any particular implementation and instead embodies any computing environment upon which the functionality of the environment described herein may be practiced.
- network 106 although shown as a single network may be any type of network conventionally known to or understood by those of ordinary skill in the art.
- the network may be the global network (e.g., the Internet or World Wide Web, i.e., “Web” for short). It may also be a local area network, e.g., intranet, or a wide area network.
- communications over network 106 occur according to one or more standard packet-based formats, e.g., H.323, IP, Ethernet, and/or ATM.
- mobile network 108 may use any kind of format known to or understood by those of ordinary skill in the art. Any conceivable environment or system may be understood by those of ordinary skill in the art.
- FIG. 1 is offered as an example only for purposes of understanding the teachings of the embodiments disclosed herein.
- messages, or other items are synchronized among client computer 102 , server 104 , and user's mobile device 110 . Changes to one of these computing devices are reflected across all devices. Where a user deletes a calendar appointment, for example, at mobile device 110 , this calendar appointment is deleted from server 104 and client computer 102 . Any type of item operation known to or understood by those of ordinary skill in the art may be synchronized amongst the client computer, server, and user's mobile device in accordance with embodiments. Synchronization thus occurs in multiple directions 112 and 114 , as shown in FIG. 1 .
- SMS message for example, is received by mobile device 110
- the SMS message is transferred to server 104 from mobile device 110 .
- a SMS message received at server 104 from client computer 102 is transmitted to mobile device 110 . Synchronization thus occurs from the mobile device to the server or from the server to the mobile device in an embodiment.
- the change is “synchronized up” to server 104 in an embodiment.
- the change is “synchronized down” to mobile device 110 .
- FIG. 1 is merely an example of an environment for practicing the embodiments disclosed.
- server 104 shows server 104 .
- embodiments also cover any type of server, separate servers, server farm, or other message server.
- FIG. 1 shows mobile device 110 .
- any type of small computer device including any phone having data access, may be used as is reasonably known to or understood by those of ordinary skill in the art without departing from the spirit and scope of the embodiments disclosed herein.
- mobile operator network 108 , mobile device 110 , client computer 102 , and server 104 are valid ways of practicing embodiments disclosed herein but are in no way intended to limit the scope of the present disclosure.
- the exemplary network environment 100 may be considered in terms of the specific components described, e.g., server, mobile device computing system, etc., or, alternatively, may be considered in terms of the analogous modules corresponding to such units.
- each small computer device 110 communicates with the same mobile operator network 108 , or, in other embodiments, multiple and separate mobile operator networks communicate with the small computer devices. In yet another embodiment, each small computer device communicates with a separate mobile operator network.
- FIG. 1 shows exemplary environment or system 100 for synchronizing multiple classes within a folder or collection
- FIG. 2 illustrates exemplary software functional modules 200 corresponding to such computing units for enabling such synchronization in accordance with embodiments disclosed herein.
- Storage means 211 , 219 and 230 are also depicted in FIG. 2 .
- These storage means and functional modules are offered by way of example only. Any type of module, component, or storage means known to or understood by those of ordinary skill in the art may be used in accordance with embodiments.
- communication module 202 provides for communications, such as the transmittal of data packets, between client computer 102 and server 104 . These data packets include, for example, requests to synchronize specific classes within a folder, identification information for client computer, etc.
- Configuration module 204 configures client computer to send and receive data to and from server 104 , synchronize messages, etc.
- Translation engine 206 translates messages, where necessary, that are received from server 104 to allow for viewing them in a proper format.
- User interface module 208 renders messages, prompts, etc. for viewing at client computer 102 .
- Information/data stored in database 211 may be accessed, retrieved, searched, etc.
- these modules and databases are offered by way of example only. Other or additional modules or storage means as known to or understood by those of ordinary skill in the art may be employed, as shown by ellipses 210 .
- communication module 212 communicates with client computer 102 and mobile device 110 , such as by transmitting data packets, according to an embodiment.
- Configuration module 214 configures for server 104 to send and receive data to and from client computer 102 and mobile device 110 and provides other capabilities, including synchronization.
- Translation engine 216 translates messages into formats appropriate for the mobile device 110 or client computer 102 .
- translation engine 216 changes the format of an email message from rich text format to XML, for example, before sending it to client computer 102 or mobile device 110 .
- translation engine 216 receives a recorded voice mail message and translates it into a data file including text to send to mobile device 110 as a visually viewable message to be read through user interface 224 .
- comparison module 215 compares the criteria specified for synchronization, e.g., the class or classes and/or options for the selected class or classes, against the stored items for each class on the folder and applies the selections for synchronization of those items with synchronization module 218 .
- Information/data stored in database 219 may be accessed, retrieved, searched, etc.
- these modules and databases are offered by way of example only.
- other or additional modules or storage means as known to or understood by those of ordinary skill in the art may be used.
- mobile device 110 includes communication module 220 for providing communications, such as the transmittal of data packets specifying classes desired for synchronization in a particular folder, between mobile device 110 and server 104 in accordance with an embodiment.
- data packets may include XML requests specifying the classes for synchronization and options and identification information of mobile device 110 , for example.
- Configuration module 222 configures mobile device 110 to receive and send data from and to server 104 and provides other capabilities, including message viewing, synchronization capabilities, etc. Messages, prompts, queries, selection menus, etc. are displayed on mobile device 110 for viewing through user interface module 224 .
- playback component 226 provides for voice mails and other messages to be played back to the user using output device(s) on mobile device 110 .
- Information/data stored in database 230 may be accessed, retrieved, searched, etc.
- specific modules and databases are shown, other or additional modules or storage means as known to or understood by those of ordinary skill in the art may be used, as shown by ellipses 228 .
- FIG. 3 illustrates an exemplary user interface 300 on mobile device 110 in accordance with an embodiment disclosed herein.
- a similar type of user interface may be displayed on the user interface of client computer 102 in accordance with embodiments disclosed herein.
- Query user interface 302 thus asks the user which class or classes in the specified folder or collection to synchronize 304 .
- query 304 asks, “Which class or classes in Folder 1 would you like to synchronize?”
- the user may select checkboxes 306 , 308 , and/or 310 to specify that he/she would like the selected class to be synchronized. While checkboxes 306 - 310 are shown in FIG. 3 , fields, buttons, or any type of selection mechanism known to or understood by those of ordinary skill in the art may be used without departing from the spirit and scope of the embodiments disclosed herein.
- query user interface 302 shows the user which class or classes are available for synchronization by enabling the selection of such class or classes while disabling the selection of class or classes that are not available.
- SMS messages 306 and Voice Mail 308 are enabled, while Email 310 is disabled, for example.
- Such enabling and disabling of class selections may occur where a device is not capable of providing email messages to a user, for example.
- enabling and disabling mechanisms 306 - 310 inform the user that such synchronization is not available in accordance with embodiments disclosed herein.
- FIG. 3 shows an exemplary user interface 300 that may be used according to embodiments. User interface 300 is offered for purposes of illustration only.
- Any number of types of user interfaces may be used as known to or understood by those of ordinary skill in the art in accordance with embodiments disclosed herein. In other embodiments, no user interface is used. Instead, an XML request specifying the class or classes for synchronization is sent without user interaction.
- FIG. 4 illustrates exemplary user interface 400 for allowing the user to specify the options desired for each selected class in that folder.
- a similar user interface 400 may be displayed on the user interface of client computer 102 or mobile device 110 .
- query option user interface 402 queries the user as to which option or options 404 it desires for the email class synchronization in the specified folder.
- query 402 may ask the user, “Which sync options do you want for your Email Class in Folder 1 ?”
- Query 402 is offered by way of example only.
- Possible options include truncate option 406 , which may be selected by marking the checkbox for this option. Selecting this option will truncate messages synchronized to save bandwidth, etc.
- a user may choose to have the body type of email messages displayed in HTML format 408 , as shown at 408 , 410 , and 412 .
- a user may enter the number of days of emails to filter in 414 , 416 , and 418 . As shown, the user may enter the number of days by using field 418 .
- any number of types of selections and entry mechanisms may be used as known to or understood by those of ordinary skill in the art in accordance with embodiments disclosed herein.
- different options appropriate for the class specified may appear in user interface 400 .
- the “task” class is selected for synchronization, an option may be available for a user to select whether it wants all tasks or only uncompleted tasks to be synchronized (not shown).
- the options provided for viewing by the user include everything possible for all classes.
- only those options suitable for the particular class specified are enabled.
- no options are presented to users and a default set of options is pre-selected or automatically selected based on the device capabilities or any other variety of factors as known to or understood by those of ordinary skill in the art.
- FIG. 5 depicts the operational steps 500 for synchronizing multiple classes with disparate schemas within a single folder or collection in accordance with embodiments disclosed herein.
- Start operation 502 is initiated and process 500 proceeds to send request to synchronize folder 1 , for example, operation 504 .
- the sending of this request could be in response to a user interface prompt or query, as shown in FIG. 3 in accordance with an embodiment, or the sending of the request could be a direct XML request.
- query operation 506 queries the user to specify which class or classes within the collection or folder that the user desires to have synchronized. If the user does not desire to specify a class or classes, process 500 branches NO to the default to synchronize all classes 508 . If the user selects a class or classes for synchronization, process 500 branches YES to translate operation 510 in which the selected boxes, fields, and/or other selection mechanisms are translated into an XML request. Next, process 500 proceeds to query option operation 512 in which the user is queried as to which option(s) he/she would like to use for synchronization for the particular class or classes selected in operation 506 .
- query option operation 512 allows the user to select filtering, truncation, body type settings, etc., in accordance with embodiments disclosed herein.
- other options may be available for selection as known to or understood by those of ordinary skill in the art in accordance with embodiments disclosed herein.
- any number of types of details specific to such options may be available as known to or understood by those of ordinary skill in the art.
- the “filtering” option is elected for email messages, one may select a specific length of time to set for the filtering option, such as email messages received in a specified number of days/weeks/months or specific dates, time periods, etc.
- the filtering option may be selected to specify a “complete” or “incomplete” setting for those tasks to be filtered.
- voicemails or SMS messages are selected, the filtering option may specify that undesired conversations be filtered, for example.
- a certain size message may be specified or only the header information may be selected, for example.
- body type settings is selected, “HTML” or “rich text format” may be selected for email messages, for example.
- any number of types of options, option settings, and details specific to those options and option settings as known to or understood by those of ordinary skill in the art may be used without departing from the spirit and scope of the present disclosure.
- the examples offered herein are offered for purposes of illustration only and are in no way intended to be limiting.
- process 500 branches NO to the default 514 to synchronize the class or classes with the options specified by a common schema. If the user specifies the option(s) for synchronization, process 500 branches YES to translate operation 516 , in which the boxes and fields or other selection/entry mechanisms for options indicated for the class or classes selected are translated into an XML request. Upon sending this XML request, the option(s) are applied against the items in the class or classes specified in the folder or collection and synchronized 518 . The synchronized items are then sent to the devices in send operation 520 , and process 500 terminates at end operation 522 .
- FIG. 5 is merely an example of possible operational characteristics for the synchronization of multiple classes with disparate schemas process in accordance with embodiments disclosed herein. Operational steps depicted may be combined into other steps, or additional steps may be added, for example.
- the synchronization of specific classes with disparate schemas within a single folder or collection may be initiated through user interaction as shown in FIGS. 3 and 4 , in accordance with embodiments disclosed herein,.
- this synchronization may be initiated directly through an XML request.
- This XML request may also result from translating selections made by the user at a user interface for specifying classes and option(s) for synchronization in accordance with an embodiment disclosed herein.
- multiple classes with disparate schemas within a collection are synchronized by using multiple option blocks as part of a collection within a synchronization command. The presence of an option block notifies the server to synchronize the class specified in the option block. Each such option block represents a single class of items for synchronization.
- the option block specifies the options, or settings, if any, to apply to the class specified according to an aspect of an embodiment. Where multiple classes have been specified to be synchronized, the response from the applicable server to the synchronization request includes the synchronized items of all classes specified and with each class maintaining its unique schema.
- Table 1 below provides an example XML synchronization request for using option blocks to notify the server to synchronize a class specified in the option block in accordance with embodiments disclosed herein.
- the options, or settings, for the synchronization of the specified class in the option block are also specified.
- Table 1 is offered for purposes of illustration only and is in no way intended to be limiting. As noted, any number of types of options, specific settings, and details specific to those options and settings as reasonably known to or understood by those of ordinary skill in the art may be used in accordance with embodiments disclosed herein.
- Table 1 shows the use of option blocks in an example synchronization command
- any number of types of option blocks or other mechanisms, synchronization commands, etc. may be used as known to or understood by those of ordinary skill in the art in accordance with embodiments disclosed herein.
- ⁇ CollectionID>15 ⁇ /CollectionID> in Table 1 below indicates synchronization of the Email folder is desired.
- Option blocks below show that the SMS class, ⁇ Class>SMS ⁇ /Class>, for example, is to be synchronized with the specific settings, e.g., TruncationSize, BodyPreference, Filter, etc., shown for that class:
- process 600 depicts the operational steps for server 104 , for example, to synchronize the class or classes specified for synchronization within a single folder and according to the options specified, if any, for such class or classes in accordance with embodiments disclosed herein.
- Start operation 602 is initiated and process 600 proceeds to server receive request for synchronization operation 604 .
- server 104 compares items 606 stored in the specified folder in server 104 against the criteria for the class(es) and/or option(s) specified. After comparing the items stored against the criteria specified, server 104 applies the options to the items matching the criteria 608 .
- Server 104 then sends 610 the necessary new items, updates to items and deletion requests, for example, to keep client computer 102 and mobile device 110 synchronized, or “in-sync” with each other.
- Process 600 terminates at end operation 612 .
- FIG. 6 is merely an example of possible operational characteristics for the synchronization of multiple classes with disparate schemas process in accordance with embodiments disclosed herein. Operational steps depicted may be combined into other steps, or additional steps may be added, for example.
- FIG. 7 illustrates an exemplary computing system 700 upon which embodiments disclosed herein may be implemented.
- a computer system 700 such as client computer 102 , mobile device 110 , or server 104 , which has at least one processor 702 for synchronizing items as shown in FIG. 1 , is depicted in accordance with embodiments disclosed herein.
- the system 700 has a memory 704 , in which an item, or message, and/or schema, for example 718 (or 720 or 722 ) is located.
- computing system 700 is illustrated in FIG. 7 by dashed line 706 .
- system 700 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape.
- Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
- Memory 704 , removable storage 708 and non-removable storage 710 are all examples of computer storage media.
- Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired processing information for synchronization, for example, and which can be accessed by system 700 .
- memory 704 may be volatile, non-volatile or some combination of the two.
- the messages, voice mails, appointments, tasks, etc., of embodiments disclosed herein could be in system memory 718 , volatile memory 720 , or non-volatile memory 722 in accordance with embodiments.
- the illustration in FIG. 7 is intended in no way to limit the scope of the present disclosure.
- Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
- System 700 may also contain communications connection(s) 716 that allow the device to communicate with other devices. Additionally, to input content into the fields of the UI on mobile device 110 as provided by UI module 224 , for example, in accordance with an embodiment of the present disclosure, system 700 may have input device(s) 714 such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 712 such as a display, speakers, printer, etc. may also be included, in which such devices may be used to display the UI for viewing messages, selecting specific class(es) for synchronization, etc., in accordance with embodiments. All of these devices are well known in the art and need not be discussed at length here.
Abstract
The embodiments described herein generally relate to a method and system for synchronizing multiple classes with disparate schemas in a single collection through the use of the same synchronization request and/or synchronization key. A collection of different types of items may be synchronized while using the unique schema for each class. Further, different synchronization options, e.g., filtering, truncation, and body settings, may be applied to each class. In a synchronization request, an option block within a synchronization command notifies the server to synchronize the class specified in the option block. The option block may also specify the options, or settings, if any, to apply to the class. Multiple option blocks may be included in the synchronization command to specify the synchronization of multiple classes. Where multiple classes are specified, the server responds with the synchronized items of all such classes while maintaining each class's unique schema.
Description
- While the use of electronic devices continues to grow, an increasing number of users of these devices desire to incorporate the use of small computer devices with their other computing systems. For example, users often desire to incorporate voice mail messages, electronic mail (email), short message service (SMS) messages, contacts, notes, calendar-type application appointments, and/or tasks between their mobile, or handheld, devices and their client computer or server at their place of employment and/or home. Such incorporation allows users to track their messages, email, calendar-type application appointments, contacts, notes, and/or tasks, etc. from nearly any location and at any time of day with their mobile device. While such incorporation is desired, it is also desired to synchronize these voice mail messages, email, calendar-type application appointments, contacts, notes, and/or tasks, etc. amongst the user's mobile device(s), client computer(s), and server(s) such that changes made at any of the devices may be reflected across all devices.
- However, when a particular folder or collection of items is synchronized, a common schema is typically applied to all items, e.g., email, voice mail, calendar-type application appointments, tasks, contacts, notes, etc., in that folder regardless of the differences in the classes of items present in the collection. Further, the same options are applied to all classes within the collection. For example, the same filters are applied to each class, as well as the same truncation and body type settings. Where all classes are synchronized altogether and according to a common schema for the entire folder, the synchronization of some class items may be lost where one of the computing systems does not support the particular class of items. For example, a mobile device may not support the receipt of tasks, for example. Alternatively, the user may experience a poor viewing experience in attempting to open a particular message not supported by its system.
- Although specific problems have been addressed in this Background, this disclosure is not intended in any way to be limited to solving those specific problems.
- Embodiments generally relate to synchronizing multiple classes with disparate schema per class in the same collection or folder through the use of the same synchronization request. Thus, items are synchronized amongst a mobile device, a client computer, and a message server, for example. Any number of types of computing systems known to or understood by those of ordinary skill in the art may be synchronized amongst the other applicable computing systems. By allowing for multiple classes within a collection to have disparate schema appropriate to each particular class of items, e.g., an email schema for email and a voice mail schema for voice mail, a collection of different types of items may be synchronized while still using the unique schema and, thus, properties, for each type of class of items. Further, by allowing for multiple classes with disparate schemas to be synchronized within the same collection while maintaining each class's unique schema, different options may be applied to each different class of items, if desired, in accordance with another embodiment. For example, different filtering, truncation, and body type options may be applied to each specific class. Any number of options, option settings, and types of details specific to such options and option settings as known to or understood by those of ordinary skill in the art may be available in accordance with embodiments disclosed herein. In a particular embodiment, these multiple classes with disparate schemas within a collection are synchronized by using multiple option blocks within a synchronization command. The presence of an option block in a synchronization command notifies the server to synchronize the class specified in the option block. Each such option block represents a single class of item(s) for synchronization. The option block specifies the options, or settings, if any, to apply to the class specified according to an aspect of an embodiment. Where multiple classes have been specified to be synchronized, the response from the applicable server to the synchronization request includes the synchronized items of all classes specified and with each class maintaining its unique schema.
- This Summary is provided to introduce a selection of concepts in a simplified form that is further described below in the Detailed Description. This Summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used in any way as to limit the scope of the claimed subject matter.
- Embodiments of the present disclosure may be more readily described by reference to the accompanying drawings in which like numerals refer to like items.
-
FIG. 1 illustrates an exemplary logical representation of an environment or system for synchronizing multiple classes with disparate schemas within the same collection in accordance with an embodiment of the present disclosure. -
FIG. 2 depicts a logical representation of exemplary functional component modules for the client computing system, the server, and the mobile device depicted inFIG. 1 for synchronizing multiple classes with disparate schemas within the same collection in accordance with an embodiment of the present disclosure. -
FIG. 3 illustrates an exemplary user interface showing different classes of items for a user to select for synchronization in accordance with an embodiment of the present disclosure. -
FIG. 4 depicts an exemplary user interface showing different options available for a user to select for applying to the class specified by the user inFIG. 3 in accordance with an embodiment of the present disclosure. -
FIG. 5 depicts a flow diagram illustrating the operational characteristics of a process for requesting a specific class or classes with disparate schemas within a collection for synchronization in accordance with an embodiment of the present disclosure. -
FIG. 6 illustrates a flow diagram illustrating the operational characteristics of a process for determining the items to synchronize based on a request, such as that provided inFIG. 5 for example, in accordance with an embodiment of the present disclosure. -
FIG. 7 depicts an exemplary computing system upon which embodiments of the present disclosure may be implemented. - This disclosure will now more fully describe exemplary embodiments with reference to the accompanying drawings, in which specific embodiments are shown. Other aspects may, however, be embodied in many different forms and the inclusion of specific embodiments in this disclosure should not be construed as limiting such aspects to the embodiments set forth herein. Rather, the embodiments depicted in the drawings are included to provide a disclosure that is thorough and complete and which fully conveys the intended scope to those skilled in the art. Dashed lines may be used to show optional components or operations.
- Embodiments generally relate to synchronizing multiple classes with disparate schemas within the same collection or folder through the use of the same synchronization transaction (request/response). Where synchronization is initiated, items are synchronized amongst a mobile device, a client, and a message server, for example, in accordance with embodiments. As noted, any number of types of computing systems known to or understood by those of ordinary skill in the art may be synchronized amongst the other applicable computing systems. Further, any type of synchronization key to initiate synchronization may be used as known to or understood by those of ordinary skill in the art without departing from the spirit and scope of the embodiments disclosed herein. Further yet, any type of class of items known to those of ordinary skill in the art may be used in accordance with embodiments disclosed herein. For example, classes may include voice mail messages, email, SMS messages, enhanced messaging service (EMS) messages, multimedia messaging service (MMS) messages, calendar-type application appointments, tasks, contacts, notes, etc. These example classes are offered for purposes of illustration only. Any number of types of classes may be available as known to or understood by those of ordinary skill in the art in accordance with embodiments disclosed herein.
- In an embodiment, a request for synchronization may specify the particular class or classes of items within a folder that the user desires to have synchronized. The ability to select specific classes for synchronization allows for the multiple classes within a collection to maintain their unique, and different, schemas. Thus, each schema may have only those properties appropriate for its specific class, as opposed to having a common schema applicable to the collection as whole with the majority of properties named in such being inapplicable to the majority of classes in the collection. Accordingly, an SMS schema may be used for a SMS class, while a voice mail schema may be used for a voice mail class, even where both the SMS items and the voice mail items are located in the email folder. In an embodiment, a user may request that the SMS class be synchronized in the email folder, while not specifying the voice mail class. In such a situation, only the SMS items will be synchronized and returned with their individual schema to the device. As noted, these specific classes and folders are offered for purposes of illustration only and are in no way intended to be limiting. Any number of types of classes and folders may be used as known to or understood by those of ordinary skill in the art without departing from the spirit and scope of the present disclosure.
- In accordance with embodiments disclosed herein, the class schemas are defined and published by developers in accordance with embodiments disclosed herein. For example, in an embodiment, client developers write code for the classes according to particular specification(s) which include schema definitions. In writing the schema definition for a particular class, properties are defined for the particular schema for that class, for example.
- In another embodiment where both the SMS class and the voice mail class are selected for synchronization, the request for synchronization may specify the particular options to be applied in synchronizing each selected class. For example, the user may specify that all voice mail messages be filtered and that only SMS messages received within the last five (5) days be filtered in accordance with an embodiment. In other embodiments, the request for synchronization may also specify whether truncation of a message is desired so that only a portion of the message is sent to the devices to save bandwidth, local memory and processing, etc. Further, the request for synchronization may specify other options known to or understood by those of ordinary skill in the art, including body type, such as to have the body of a message be viewed in rich text format (RTF), HTML, etc. In an embodiment, where no class is specified, a default class is applied for a given folder. In another embodiment, where a class(es) is specified but no options are specified, default options are applied to the synchronization for a given collection. In yet another embodiment, a set of options is explicitly specified for a particular class even where no class is specified by the synchronization request.
- An exemplary logical environment or
system 100 for synchronizing multiple classes with disparate schemas within a collection between a client computer, a server, and a mobile device is shown inFIG. 1 in accordance with embodiments disclosed herein. The user ofclient computer 102 may also ownmobile device 110. Any type ofclient computer 102 known to or understood by those of ordinary skill in the art may be used in accordance with embodiments. Messages, or other items, are sent betweenclient computer 102 andserver 104 throughnetwork 106.Client computer 102 also accesses messages stored onserver 104 throughnetwork 106. These messages, or other items, are also sent tomobile device 110 throughmobile device network 108. -
Logical environment 100 is not limited to any particular implementation and instead embodies any computing environment upon which the functionality of the environment described herein may be practiced. Further,network 106, although shown as a single network may be any type of network conventionally known to or understood by those of ordinary skill in the art. In accordance with an exemplary embodiment, the network may be the global network (e.g., the Internet or World Wide Web, i.e., “Web” for short). It may also be a local area network, e.g., intranet, or a wide area network. In accordance with embodiments, communications overnetwork 106 occur according to one or more standard packet-based formats, e.g., H.323, IP, Ethernet, and/or ATM. Further,mobile network 108 may use any kind of format known to or understood by those of ordinary skill in the art. Any conceivable environment or system may be understood by those of ordinary skill in the art.FIG. 1 is offered as an example only for purposes of understanding the teachings of the embodiments disclosed herein. - As shown in
FIG. 1 , messages, or other items, are synchronized amongclient computer 102,server 104, and user'smobile device 110. Changes to one of these computing devices are reflected across all devices. Where a user deletes a calendar appointment, for example, atmobile device 110, this calendar appointment is deleted fromserver 104 andclient computer 102. Any type of item operation known to or understood by those of ordinary skill in the art may be synchronized amongst the client computer, server, and user's mobile device in accordance with embodiments. Synchronization thus occurs inmultiple directions FIG. 1 . In an embodiment, where a SMS message, for example, is received bymobile device 110, the SMS message is transferred toserver 104 frommobile device 110. In another embodiment, a SMS message received atserver 104 fromclient computer 102 is transmitted tomobile device 110. Synchronization thus occurs from the mobile device to the server or from the server to the mobile device in an embodiment. Thus, if a change occurs atmobile device 110, the change is “synchronized up” toserver 104 in an embodiment. In another embodiment, if a change occurs atserver 104, the change is “synchronized down” tomobile device 110. - It is worth noting at the outset that
FIG. 1 is merely an example of an environment for practicing the embodiments disclosed. For example,FIG. 1 showsserver 104. However, embodiments also cover any type of server, separate servers, server farm, or other message server. Further yet,FIG. 1 showsmobile device 110. However, any type of small computer device, including any phone having data access, may be used as is reasonably known to or understood by those of ordinary skill in the art without departing from the spirit and scope of the embodiments disclosed herein. Indeed,mobile operator network 108,mobile device 110,client computer 102, andserver 104 are valid ways of practicing embodiments disclosed herein but are in no way intended to limit the scope of the present disclosure. Further, theexemplary network environment 100 may be considered in terms of the specific components described, e.g., server, mobile device computing system, etc., or, alternatively, may be considered in terms of the analogous modules corresponding to such units. - Although only one
mobile device 110,server 104, andclient computer 102 are shown, for example, another embodiment provides for multiple small computer devices to communicate withserver 104 andclient computer 102. In an embodiment, each small computer device communicates with the samemobile operator network 108, or, in other embodiments, multiple and separate mobile operator networks communicate with the small computer devices. In yet another embodiment, each small computer device communicates with a separate mobile operator network. - While
FIG. 1 shows exemplary environment orsystem 100 for synchronizing multiple classes within a folder or collection,FIG. 2 illustrates exemplary softwarefunctional modules 200 corresponding to such computing units for enabling such synchronization in accordance with embodiments disclosed herein. Storage means 211, 219 and 230 are also depicted inFIG. 2 . These storage means and functional modules are offered by way of example only. Any type of module, component, or storage means known to or understood by those of ordinary skill in the art may be used in accordance with embodiments. Atclient computer 102,communication module 202 provides for communications, such as the transmittal of data packets, betweenclient computer 102 andserver 104. These data packets include, for example, requests to synchronize specific classes within a folder, identification information for client computer, etc.Configuration module 204 configures client computer to send and receive data to and fromserver 104, synchronize messages, etc.Translation engine 206 translates messages, where necessary, that are received fromserver 104 to allow for viewing them in a proper format.User interface module 208 renders messages, prompts, etc. for viewing atclient computer 102. Information/data stored indatabase 211 may be accessed, retrieved, searched, etc. As noted, these modules and databases are offered by way of example only. Other or additional modules or storage means as known to or understood by those of ordinary skill in the art may be employed, as shown by ellipses 210. - Turning to
server 104,communication module 212 communicates withclient computer 102 andmobile device 110, such as by transmitting data packets, according to an embodiment.Configuration module 214 configures forserver 104 to send and receive data to and fromclient computer 102 andmobile device 110 and provides other capabilities, including synchronization.Translation engine 216 translates messages into formats appropriate for themobile device 110 orclient computer 102. For example,translation engine 216 changes the format of an email message from rich text format to XML, for example, before sending it toclient computer 102 ormobile device 110. In one aspect of an embodiment,translation engine 216 receives a recorded voice mail message and translates it into a data file including text to send tomobile device 110 as a visually viewable message to be read throughuser interface 224. Any number of types of translations may occur as known to or understood by those of ordinary skill in the art in accordance with embodiments disclosed. Further,comparison module 215 compares the criteria specified for synchronization, e.g., the class or classes and/or options for the selected class or classes, against the stored items for each class on the folder and applies the selections for synchronization of those items withsynchronization module 218. Information/data stored indatabase 219 may be accessed, retrieved, searched, etc. As noted, these modules and databases are offered by way of example only. As shown byellipses 217, other or additional modules or storage means as known to or understood by those of ordinary skill in the art may be used. - Further,
mobile device 110 includescommunication module 220 for providing communications, such as the transmittal of data packets specifying classes desired for synchronization in a particular folder, betweenmobile device 110 andserver 104 in accordance with an embodiment. Such data packets may include XML requests specifying the classes for synchronization and options and identification information ofmobile device 110, for example. Configuration module 222 configuresmobile device 110 to receive and send data from and toserver 104 and provides other capabilities, including message viewing, synchronization capabilities, etc. Messages, prompts, queries, selection menus, etc. are displayed onmobile device 110 for viewing throughuser interface module 224. Further,playback component 226 provides for voice mails and other messages to be played back to the user using output device(s) onmobile device 110. Information/data stored indatabase 230 may be accessed, retrieved, searched, etc. As noted, while specific modules and databases are shown, other or additional modules or storage means as known to or understood by those of ordinary skill in the art may be used, as shown byellipses 228. - While
FIG. 2 includesuser interface modules FIG. 3 illustrates anexemplary user interface 300 onmobile device 110 in accordance with an embodiment disclosed herein. A similar type of user interface may be displayed on the user interface ofclient computer 102 in accordance with embodiments disclosed herein. In an embodiment, once it is indicated that synchronization of devices is desired, a user is prompted as to which class or classes of items he/she would like to synchronize.Query user interface 302 thus asks the user which class or classes in the specified folder or collection to synchronize 304. For example,query 304 asks, “Which class or classes inFolder 1 would you like to synchronize?” In embodiments, the user may selectcheckboxes FIG. 3 , fields, buttons, or any type of selection mechanism known to or understood by those of ordinary skill in the art may be used without departing from the spirit and scope of the embodiments disclosed herein. In further embodiments,query user interface 302 shows the user which class or classes are available for synchronization by enabling the selection of such class or classes while disabling the selection of class or classes that are not available. As seen inquery interface 302,SMS messages 306 andVoice Mail 308 are enabled, whileEmail 310 is disabled, for example. Such enabling and disabling of class selections may occur where a device is not capable of providing email messages to a user, for example. In such a case, instead of providing a poor experience to the user when it attempts to synchronize all messages, including email, or losing email synchronization altogether without informing the user, enabling and disabling mechanisms 306-310 inform the user that such synchronization is not available in accordance with embodiments disclosed herein. As discussed,FIG. 3 shows anexemplary user interface 300 that may be used according to embodiments.User interface 300 is offered for purposes of illustration only. Any number of types of user interfaces may be used as known to or understood by those of ordinary skill in the art in accordance with embodiments disclosed herein. In other embodiments, no user interface is used. Instead, an XML request specifying the class or classes for synchronization is sent without user interaction. - Upon selecting the class or classes in the specified folder or collection that the user would like to synchronize,
FIG. 4 illustratesexemplary user interface 400 for allowing the user to specify the options desired for each selected class in that folder. Likeuser interface 300, asimilar user interface 400 may be displayed on the user interface ofclient computer 102 ormobile device 110. For example, where the Email class was selected inquery user interface 302, queryoption user interface 402 queries the user as to which option oroptions 404 it desires for the email class synchronization in the specified folder. For example, query 402 may ask the user, “Which sync options do you want for your Email Class inFolder 1?”Query 402 is offered by way of example only. Any type of query or other determination known to or understood by those of ordinary skill in the art may be used in accordance with embodiments disclosed herein. Possible options includetruncate option 406, which may be selected by marking the checkbox for this option. Selecting this option will truncate messages synchronized to save bandwidth, etc. As another example, a user may choose to have the body type of email messages displayed inHTML format 408, as shown at 408, 410, and 412. Further, a user may enter the number of days of emails to filter in 414, 416, and 418. As shown, the user may enter the number of days by using field 418. While fields and checkboxes are shown inuser interface 400, any number of types of selections and entry mechanisms may be used as known to or understood by those of ordinary skill in the art in accordance with embodiments disclosed herein. Further, in an embodiment, different options appropriate for the class specified may appear inuser interface 400. For example, where the “task” class is selected for synchronization, an option may be available for a user to select whether it wants all tasks or only uncompleted tasks to be synchronized (not shown). In another embodiment, the options provided for viewing by the user include everything possible for all classes. In an aspect of an embodiment, only those options suitable for the particular class specified are enabled. In yet another aspect of an embodiment, no options are presented to users and a default set of options is pre-selected or automatically selected based on the device capabilities or any other variety of factors as known to or understood by those of ordinary skill in the art. - While
FIGS. 3 and 4 show exemplary user interfaces for allowing a user to specify the class or classes and/or option(s) within a folder that the user desires to have synchronized,FIG. 5 depicts theoperational steps 500 for synchronizing multiple classes with disparate schemas within a single folder or collection in accordance with embodiments disclosed herein.Start operation 502 is initiated andprocess 500 proceeds to send request to synchronizefolder 1, for example,operation 504. The sending of this request could be in response to a user interface prompt or query, as shown inFIG. 3 in accordance with an embodiment, or the sending of the request could be a direct XML request. Where a general request to synchronize is sent,query operation 506 queries the user to specify which class or classes within the collection or folder that the user desires to have synchronized. If the user does not desire to specify a class or classes, process 500 branches NO to the default to synchronize allclasses 508. If the user selects a class or classes for synchronization, process 500 branches YES to translateoperation 510 in which the selected boxes, fields, and/or other selection mechanisms are translated into an XML request. Next,process 500 proceeds to queryoption operation 512 in which the user is queried as to which option(s) he/she would like to use for synchronization for the particular class or classes selected inoperation 506. For example,query option operation 512 allows the user to select filtering, truncation, body type settings, etc., in accordance with embodiments disclosed herein. As noted, other options may be available for selection as known to or understood by those of ordinary skill in the art in accordance with embodiments disclosed herein. Further, any number of types of details specific to such options may be available as known to or understood by those of ordinary skill in the art. For example, where the “filtering” option is elected for email messages, one may select a specific length of time to set for the filtering option, such as email messages received in a specified number of days/weeks/months or specific dates, time periods, etc. As another example, where tasks are selected, the filtering option may be selected to specify a “complete” or “incomplete” setting for those tasks to be filtered. Where voicemails or SMS messages are selected, the filtering option may specify that undesired conversations be filtered, for example. Further, where “truncation” is selected, a certain size message may be specified or only the header information may be selected, for example. Further yet, where body type settings is selected, “HTML” or “rich text format” may be selected for email messages, for example. As noted, any number of types of options, option settings, and details specific to those options and option settings as known to or understood by those of ordinary skill in the art may be used without departing from the spirit and scope of the present disclosure. The examples offered herein are offered for purposes of illustration only and are in no way intended to be limiting. - If no options are selected, process 500 branches NO to the
default 514 to synchronize the class or classes with the options specified by a common schema. If the user specifies the option(s) for synchronization, process 500 branches YES to translateoperation 516, in which the boxes and fields or other selection/entry mechanisms for options indicated for the class or classes selected are translated into an XML request. Upon sending this XML request, the option(s) are applied against the items in the class or classes specified in the folder or collection and synchronized 518. The synchronized items are then sent to the devices insend operation 520, andprocess 500 terminates atend operation 522.FIG. 5 is merely an example of possible operational characteristics for the synchronization of multiple classes with disparate schemas process in accordance with embodiments disclosed herein. Operational steps depicted may be combined into other steps, or additional steps may be added, for example. - As noted, the synchronization of specific classes with disparate schemas within a single folder or collection may be initiated through user interaction as shown in
FIGS. 3 and 4 , in accordance with embodiments disclosed herein,. Alternatively, as noted, this synchronization may be initiated directly through an XML request. This XML request may also result from translating selections made by the user at a user interface for specifying classes and option(s) for synchronization in accordance with an embodiment disclosed herein. In embodiments, multiple classes with disparate schemas within a collection are synchronized by using multiple option blocks as part of a collection within a synchronization command. The presence of an option block notifies the server to synchronize the class specified in the option block. Each such option block represents a single class of items for synchronization. The option block specifies the options, or settings, if any, to apply to the class specified according to an aspect of an embodiment. Where multiple classes have been specified to be synchronized, the response from the applicable server to the synchronization request includes the synchronized items of all classes specified and with each class maintaining its unique schema. - Table 1 below provides an example XML synchronization request for using option blocks to notify the server to synchronize a class specified in the option block in accordance with embodiments disclosed herein. In embodiments, the options, or settings, for the synchronization of the specified class in the option block are also specified. Table 1 is offered for purposes of illustration only and is in no way intended to be limiting. As noted, any number of types of options, specific settings, and details specific to those options and settings as reasonably known to or understood by those of ordinary skill in the art may be used in accordance with embodiments disclosed herein. Further, while Table 1 shows the use of option blocks in an example synchronization command, any number of types of option blocks or other mechanisms, synchronization commands, etc., may be used as known to or understood by those of ordinary skill in the art in accordance with embodiments disclosed herein. For example, <CollectionID>15</CollectionID> in Table 1 below indicates synchronization of the Email folder is desired. Option blocks below show that the SMS class, <Class>SMS</Class>, for example, is to be synchronized with the specific settings, e.g., TruncationSize, BodyPreference, Filter, etc., shown for that class:
-
TABLE 1 Example Use of Option Blocks as Part of a Collection in a Synchronization Command <Sync xmlns=“AirSync:” > <Collections> <Collection> <SyncKey>601771687</SyncKey> <CollectionId>15</CollectionId> <DeletesAsMoves/> <GetChanges/> <WindowSize>100</WindowSize> <Options> <Class>SMS</Class> <FilterType>0</FilterType> <BodyPreference> <Type>1</Type> <TruncationSize>102400</TruncationSize> </BodyPreference> </Options> <Options> <FilterType>2</FilterType> <BodyPreference><Type>1</Type></BodyPreference> <BodyPreference><Type>2</Type></BodyPreference> <BodyPreference> <Type>4</Type> <TruncationSize>102400</TruncationSize> </BodyPreference> <MIMESupport>0</MIMESupport> <Conflict>1</Conflict> </Options> </Collection> </Collections> </Sync> - Turning to
FIG. 6 ,process 600 depicts the operational steps forserver 104, for example, to synchronize the class or classes specified for synchronization within a single folder and according to the options specified, if any, for such class or classes in accordance with embodiments disclosed herein.Start operation 602 is initiated andprocess 600 proceeds to server receive request forsynchronization operation 604. Upon receiving this request,server 104 comparesitems 606 stored in the specified folder inserver 104 against the criteria for the class(es) and/or option(s) specified. After comparing the items stored against the criteria specified,server 104 applies the options to the items matching thecriteria 608.Server 104 then sends 610 the necessary new items, updates to items and deletion requests, for example, to keepclient computer 102 andmobile device 110 synchronized, or “in-sync” with each other.Process 600 terminates atend operation 612.FIG. 6 is merely an example of possible operational characteristics for the synchronization of multiple classes with disparate schemas process in accordance with embodiments disclosed herein. Operational steps depicted may be combined into other steps, or additional steps may be added, for example. - Finally,
FIG. 7 illustrates anexemplary computing system 700 upon which embodiments disclosed herein may be implemented. Acomputer system 700, such asclient computer 102,mobile device 110, orserver 104, which has at least oneprocessor 702 for synchronizing items as shown inFIG. 1 , is depicted in accordance with embodiments disclosed herein. Thesystem 700 has amemory 704, in which an item, or message, and/or schema, for example 718 (or 720 or 722) is located. In its most basic configuration,computing system 700 is illustrated inFIG. 7 by dashedline 706. Additionally,system 700 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated inFIG. 7 byremovable storage 708 andnon-removable storage 710. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.Memory 704,removable storage 708 andnon-removable storage 710 are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired processing information for synchronization, for example, and which can be accessed bysystem 700. Any such computer storage media may be part ofsystem 700. Depending on the configuration and type of computing device,memory 704 may be volatile, non-volatile or some combination of the two. With respect tomemory 704, the messages, voice mails, appointments, tasks, etc., of embodiments disclosed herein could be insystem memory 718,volatile memory 720, ornon-volatile memory 722 in accordance with embodiments. The illustration inFIG. 7 is intended in no way to limit the scope of the present disclosure. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media. -
System 700 may also contain communications connection(s) 716 that allow the device to communicate with other devices. Additionally, to input content into the fields of the UI onmobile device 110 as provided byUI module 224, for example, in accordance with an embodiment of the present disclosure,system 700 may have input device(s) 714 such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 712 such as a display, speakers, printer, etc. may also be included, in which such devices may be used to display the UI for viewing messages, selecting specific class(es) for synchronization, etc., in accordance with embodiments. All of these devices are well known in the art and need not be discussed at length here. - Having described embodiments of the present disclosure with reference to the figures above, it should be appreciated that numerous modifications may be made to the embodiments that will readily suggest themselves to those skilled in the art and which are encompassed within the scope and spirit of the present disclosure and as defined in the appended claims. Indeed, while embodiments have been described for purposes of this disclosure, various changes and modifications may be made which are well within the scope of the present disclosure.
- Similarly, although this disclosure has used language specific to structural features, methodological acts, and computer-readable media containing such acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific structure, acts, features, or media described herein. Rather, the specific structures, features, acts, and/or media described above are disclosed as example forms of implementing the claims. Aspects of embodiments allow for multiple client applications, multiple data packet types, etc. Or, in other embodiments, a single client computer with a single server and single mobile device are used. One skilled in the art will recognize other embodiments or improvements that are within the scope and spirit of the present disclosure. Therefore, the specific structure, acts, or media are disclosed as exemplary embodiments of implementing the present disclosure. The disclosure is defined by the appended claims.
Claims (20)
1. A method of synchronizing a plurality of classes, comprising:
receiving from a mobile device a selection of a folder to synchronize;
maintaining a schema for each class within the selected folder, wherein each schema is unique to its class;
receiving from the mobile device a selection of a class within the selected folder to synchronize;
receiving from the mobile device a selection of an option to apply to the selected class; and
responding with items for synchronization.
2. The method as defined in claim 1 , wherein a server receives the selected class and selected option.
3. The method as defined in claim 1 , further comprising:
receiving from the mobile device a selection of a plurality of folders to synchronize;
receiving from the mobile device a list identifying a plurality of classes to synchronize within the folder; and
receiving from the mobile device a selection of a plurality of options to apply to the selected classes.
4. The method as defined in claim 3 , wherein the request is an XML request.
5. The method as defined in claim 1 , further comprising:
receiving a selection of at least two classes within the folder to synchronize; and
receiving a selection of at least two options to apply to the at least two classes selected.
6. The method as defined in claim 3 , wherein one or more options are selected from the group consisting of: filtering, truncation, and body type setting.
7. The method as defined in claim 6 , wherein the filtering option specifies one or more from the group consisting of: a length of time, a period of dates, a completion state, and a type of conversation.
8. The method as defined in claim 1 , wherein the class is selected from the group consisting of: email, voice mail, calendar-type application appointments, contacts, notes, tasks, and short message service (SMS) messages.
9. The method as defined in claim 8 , wherein the schema for the email class is an email schema, the schema for the voice mail class is a voice mail schema, the schema for the calendar-type application appointment is a calendar schema; the schema for the tasks class is a task schema; and the schema for the SMS message class is a SMS schema.
10. The method as defined in claim 9 , wherein the schema for each class comprises properties specific to the class and does not include properties not related to the class.
11. The method as defined in claim 1 , wherein the responding with the items comprises:
responding with new items and modified items; and
maintaining the unique schema of each class of items synchronized.
12. The method as defined in claim 1 , wherein a default option is applied where no option is selected for the selected class.
13. The method as defined in claim 1 , further comprising:
comparing items for the selected class stored in the folder on a server with the selected class and selected option;
applying the selected class and selected option for synchronizing the selected items; and
sending items to the mobile device to keep the mobile device synchronized with the server, wherein the items are from the group consisting of: new items, updated items, and deleted items.
14. A computer storage medium encoding computer executable instructions for performing a method of synchronizing a plurality of classes within a collection, the method comprising:
sending to a server a selection of a collection to synchronize;
maintaining a schema for each class within the selected collection, wherein each schema is unique to its class;
sending to the server a selection of a class within the selected collection to synchronize;
sending to the server a selection of an option to apply to the selected class; and
receiving the items for synchronization.
15. The computer storage medium as defined in claim 14 , wherein the selections are sent from a mobile device.
16. The computer storage medium as defined in claim 14 , wherein the class is selected from a group consisting of: email, voice mail, calendar-type application appointments, contacts, notes, tasks, and short message service (SMS) messages, and wherein each class maintains a schema different from the schemas for the other classes.
17. The computer storage medium as defined in claim 14 , wherein the option is selected from a group consisting of: filtering, truncation, and body type setting.
18. A system for synchronizing a plurality of classes of items within a folder, the system comprising:
a communication module at a mobile device for sending a selection of a class within the folder to synchronize, wherein each class in the folder has a schema different from another class in the folder;
the communication module at the mobile device sending a selection of an option to apply to the class selected;
a comparison module at a server for comparing items for the selected class stored in the folder on the server with the selected class and selected option;
a synchronization module for synchronizing the selected class according to the selected option; and
a communication module at the server for sending at least one item for maintaining the synchronization of the mobile device and the server.
19. The system as defined in claim 18 , wherein a default option is applied where no option is selected for the selected class.
20. The system as defined in claim 18 , wherein each class comprises properties specific to the class and does not include properties not related to the class.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/334,314 US20100153335A1 (en) | 2008-12-12 | 2008-12-12 | Synchronizing multiple classes with disparate schemas in the same collection |
US14/755,617 US10042858B2 (en) | 2008-12-12 | 2015-06-30 | Synchronizing multiple classes with disparate schemas in the same collection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/334,314 US20100153335A1 (en) | 2008-12-12 | 2008-12-12 | Synchronizing multiple classes with disparate schemas in the same collection |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/755,617 Continuation US10042858B2 (en) | 2008-12-12 | 2015-06-30 | Synchronizing multiple classes with disparate schemas in the same collection |
Publications (1)
Publication Number | Publication Date |
---|---|
US20100153335A1 true US20100153335A1 (en) | 2010-06-17 |
Family
ID=42241737
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/334,314 Abandoned US20100153335A1 (en) | 2008-12-12 | 2008-12-12 | Synchronizing multiple classes with disparate schemas in the same collection |
US14/755,617 Active US10042858B2 (en) | 2008-12-12 | 2015-06-30 | Synchronizing multiple classes with disparate schemas in the same collection |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/755,617 Active US10042858B2 (en) | 2008-12-12 | 2015-06-30 | Synchronizing multiple classes with disparate schemas in the same collection |
Country Status (1)
Country | Link |
---|---|
US (2) | US20100153335A1 (en) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130007481A1 (en) * | 2011-06-30 | 2013-01-03 | Al Chakra | Software-centric power management |
WO2013028336A3 (en) * | 2011-08-19 | 2013-04-25 | Microsoft Corporation | Synchronizing conversation structures in web-based email systems |
US20130144918A1 (en) * | 2011-12-06 | 2013-06-06 | Baré Said | Mobile metadata model repository |
US8655966B1 (en) * | 2010-03-31 | 2014-02-18 | Emc Corporation | Mobile device data protection |
US8683005B1 (en) | 2010-03-31 | 2014-03-25 | Emc Corporation | Cache-based mobile device network resource optimization |
US8694744B1 (en) | 2010-03-31 | 2014-04-08 | Emc Corporation | Mobile device snapshot backup |
US8694597B1 (en) | 2010-03-31 | 2014-04-08 | Emc Corporation | Mobile device group-based data sharing |
US9152650B1 (en) | 2010-03-31 | 2015-10-06 | Emc Corporation | Mobile device data recovery |
CN105871970A (en) * | 2015-11-09 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | Note update method and device |
US9514089B1 (en) | 2010-03-31 | 2016-12-06 | EMC IP Holding Company LLC | Mobile device network data synchronization |
US9870196B2 (en) * | 2015-05-27 | 2018-01-16 | Google Llc | Selective aborting of online processing of voice inputs in a voice-enabled electronic device |
US9966073B2 (en) * | 2015-05-27 | 2018-05-08 | Google Llc | Context-sensitive dynamic update of voice to text model in a voice-enabled electronic device |
US10083697B2 (en) * | 2015-05-27 | 2018-09-25 | Google Llc | Local persisting of data for selectively offline capable voice action in a voice-enabled electronic device |
US10324987B2 (en) * | 2013-12-31 | 2019-06-18 | Samsung Electronics Co., Ltd. | Application search using device capabilities |
US10855761B1 (en) | 2018-12-31 | 2020-12-01 | Facebook, Inc. | Techniques for in-place directive execution |
US10979500B1 (en) * | 2018-12-31 | 2021-04-13 | Facebook, Inc. | Techniques for directive-based messaging synchronization |
US11025576B1 (en) * | 2018-12-31 | 2021-06-01 | Facebook, Inc. | Techniques for backend-specific cursor tracking |
US11055314B1 (en) | 2018-12-31 | 2021-07-06 | Facebook, Inc. | Techniques for a database-driven messaging user interface |
US11160003B2 (en) | 2017-08-04 | 2021-10-26 | Charter Communications Operating, Llc | Connecting to a wireless network based on a device mobility state |
US11212817B2 (en) * | 2017-08-04 | 2021-12-28 | Charter Communications Operating, Llc | Prioritizing preferred networks |
US11722938B2 (en) | 2017-08-04 | 2023-08-08 | Charter Communications Operating, Llc | Switching connections over frequency bands of a wireless network |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107613106A (en) * | 2017-08-31 | 2018-01-19 | 上海爱优威软件开发有限公司 | Similar APP automatic selecting method and system |
Citations (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US709392A (en) * | 1902-05-06 | 1902-09-16 | Haydn Brown | Suture-clamp. |
US733723A (en) * | 1903-02-16 | 1903-07-14 | Clarence D Lukens | Serrefin. |
US816026A (en) * | 1905-03-09 | 1906-03-27 | Albert J Meier | Surgical clip. |
US879758A (en) * | 1907-06-14 | 1908-02-18 | Frank Brooks Foster | Needle. |
US1728316A (en) * | 1927-07-02 | 1929-09-17 | Kirurgiska Instr Fabriks Aktie | Wound clasp |
US2201610A (en) * | 1938-05-20 | 1940-05-21 | Jr James C Dawson | Wound clip |
US2232142A (en) * | 1940-09-27 | 1941-02-18 | Schumann Seymour | Wound clip |
US2254620A (en) * | 1939-11-14 | 1941-09-02 | George I Miller | Clip |
US2355907A (en) * | 1943-11-12 | 1944-08-15 | Johnson & Johnson | Method and apparatus for grinding and polishing ligatures |
US2421193A (en) * | 1943-08-02 | 1947-05-27 | Cleveland Clinic Foundation | Surgical dressing |
US2472009A (en) * | 1945-08-01 | 1949-05-31 | Cleveland Clinic Foundation | Surgical dressing |
US2684070A (en) * | 1953-03-23 | 1954-07-20 | Walter L Kelsey | Surgical clip |
US2779083A (en) * | 1955-02-09 | 1957-01-29 | Edward N Eaton | Lip and mouth adjuster |
US2988028A (en) * | 1956-08-13 | 1961-06-13 | John H Alcamo | Surgeon's suturing device |
US3123077A (en) * | 1964-03-03 | Surgical suture | ||
US3166072A (en) * | 1962-10-22 | 1965-01-19 | Jr John T Sullivan | Barbed clips |
US3206018A (en) * | 1963-07-10 | 1965-09-14 | Ethicon Inc | Wire suturing device |
US3234636A (en) * | 1962-03-19 | 1966-02-15 | Ernest C Wood | Clip applicator |
US3273562A (en) * | 1960-02-24 | 1966-09-20 | Rene G Le Vaux | Skin and surgical clips |
US3378010A (en) * | 1965-07-28 | 1968-04-16 | Coldling | Surgical clip with means for releasing the clamping pressure |
US3385299A (en) * | 1965-10-23 | 1968-05-28 | New Res And Dev Lab Inc | Wound clip |
US3494006A (en) * | 1968-01-12 | 1970-02-10 | George C Brumlik | Self-gripping fastening device |
US3525340A (en) * | 1967-10-31 | 1970-08-25 | Joseph G Gilbert | Surgical dressing with skin clips thereon |
US3527223A (en) * | 1967-09-01 | 1970-09-08 | Melvin Shein | Ear stud and hollow piercer for insertion thereof |
US3570497A (en) * | 1969-01-16 | 1971-03-16 | Gerald M Lemole | Suture apparatus and methods |
US3586002A (en) * | 1968-01-08 | 1971-06-22 | Ernest C Wood | Surgical skin clip |
US3608095A (en) * | 1970-03-05 | 1971-09-28 | Federal Tool Eng Co | Method of fixing hair pieces to scalps |
US3608539A (en) * | 1968-11-06 | 1971-09-28 | Daniel G Miller | Method for the biopsy of subcutaneous masses |
US3646615A (en) * | 1970-01-26 | 1972-03-07 | Richard A Ness | Reinforcing element for muscles |
US3683926A (en) * | 1970-07-09 | 1972-08-15 | Dainippon Pharmaceutical Co | Tube for connecting blood vessels |
US3716058A (en) * | 1970-07-17 | 1973-02-13 | Atlanta Res Inst | Barbed suture |
US3825010A (en) * | 1973-04-23 | 1974-07-23 | Donald B Mc | Surgical apparatus for closing wounds |
US3833972A (en) * | 1969-09-11 | 1974-09-10 | G Brumlik | Self-adhering fastening filament |
US3951261A (en) * | 1974-08-28 | 1976-04-20 | Ethicon, Inc. | Needled suture mounting and dispensing device and package |
US3981051A (en) * | 1970-03-16 | 1976-09-21 | Brumlik George C | Bristle-like gripping device |
US3981307A (en) * | 1974-07-01 | 1976-09-21 | Ethicon, Inc. | Thermal attachment of surgical sutures to needles |
US4006747A (en) * | 1975-04-23 | 1977-02-08 | Ethicon, Inc. | Surgical method |
US4069825A (en) * | 1976-01-28 | 1978-01-24 | Taichiro Akiyama | Surgical thread and cutting apparatus for the same |
US4073298A (en) * | 1976-08-03 | 1978-02-14 | New Research & Development Lab., Inc. | Wound clip |
US4188760A (en) * | 1978-06-20 | 1980-02-19 | Frost John L | Masonry building block and method for forming such a block |
US4198734A (en) * | 1972-04-04 | 1980-04-22 | Brumlik George C | Self-gripping devices with flexible self-gripping means and method |
US4204541A (en) * | 1977-01-24 | 1980-05-27 | Kapitanov Nikolai N | Surgical instrument for stitching up soft tissues with lengths of spiked suture material |
US4259959A (en) * | 1978-12-20 | 1981-04-07 | Walker Wesley W | Suturing element |
US4311002A (en) * | 1977-09-22 | 1982-01-19 | Kabel Metallwerke Ghh | Forming stranded stock |
US4313448A (en) * | 1980-01-28 | 1982-02-02 | Medtronic, Inc. | Myocardial sutureless lead |
US4316469A (en) * | 1976-09-07 | 1982-02-23 | Kapitanov Nikolai N | Surgical apparatus for suturing soft tissues with lengths of suturing material with spicules |
US4317451A (en) * | 1980-02-19 | 1982-03-02 | Ethicon, Inc. | Plastic surgical staple |
US4428376A (en) * | 1980-05-02 | 1984-01-31 | Ethicon Inc. | Plastic surgical staple |
US4430998A (en) * | 1982-06-01 | 1984-02-14 | Thoratec Laboratories Corporation | Wound closing device |
US4434792A (en) * | 1982-03-19 | 1984-03-06 | Rosenberg Steven L | Adjustable abduction device for treatment of metatarsus adductus |
US4454875A (en) * | 1982-04-15 | 1984-06-19 | Techmedica, Inc. | Osteal medical staple |
US4467805A (en) * | 1982-08-25 | 1984-08-28 | Mamoru Fukuda | Skin closure stapling device for surgical procedures |
US4492075A (en) * | 1982-01-26 | 1985-01-08 | Asa S.A. | Method for producing fiber spun yarns and the fiber spun yarns obtained with said method |
US4493323A (en) * | 1982-12-13 | 1985-01-15 | University Of Iowa Research Foundation | Suturing device and method for using same |
US4502574A (en) * | 1982-08-23 | 1985-03-05 | The Bendix Corporation | Adjuster assembly for a nonservo drum brake |
US4510934A (en) * | 1983-05-13 | 1985-04-16 | Batra Subhash K | Suture |
US4531200A (en) * | 1982-12-02 | 1985-07-23 | International Business Machines Corporation | Indexed-indirect addressing using prefix codes |
US4610251A (en) * | 1985-04-19 | 1986-09-09 | Kumar Sarbjeet S | Surgical staple |
US4637380A (en) * | 1985-06-24 | 1987-01-20 | Orejola Wilmo C | Surgical wound closures |
US4653486A (en) * | 1984-04-12 | 1987-03-31 | Coker Tom P | Fastener, particularly suited for orthopedic use |
US4669473A (en) * | 1985-09-06 | 1987-06-02 | Acufex Microsurgical, Inc. | Surgical fastener |
US4676245A (en) * | 1983-02-09 | 1987-06-30 | Mamoru Fukuda | Interlocking surgical staple assembly |
US4719917A (en) * | 1987-02-17 | 1988-01-19 | Minnesota Mining And Manufacturing Company | Surgical staple |
US4741330A (en) * | 1983-05-19 | 1988-05-03 | Hayhurst John O | Method and apparatus for anchoring and manipulating cartilage |
US4832025A (en) * | 1987-07-30 | 1989-05-23 | American Cyanamid Company | Thermoplastic surgical suture with a melt fused length |
US4841960A (en) * | 1987-02-10 | 1989-06-27 | Garner Eric T | Method and apparatus for interosseous bone fixation |
US4850285A (en) * | 1984-01-18 | 1989-07-25 | Royston Manufacturing Corporation | Shelving system |
US4895148A (en) * | 1986-05-20 | 1990-01-23 | Concept, Inc. | Method of joining torn parts of bodily tissue in vivo with a biodegradable tack member |
US4899743A (en) * | 1987-12-15 | 1990-02-13 | Mitek Surgical Products, Inc. | Suture anchor installation tool |
US4905367A (en) * | 1988-11-08 | 1990-03-06 | Corvita Corporation | Manufacture of stretchable porous sutures |
US4930945A (en) * | 1988-05-20 | 1990-06-05 | Mitsubishi Metal Corporation | Insert rotary cutter |
US4946468A (en) * | 1989-06-06 | 1990-08-07 | Mitek Surgical Products, Inc. | Suture anchor and suture anchor installation tool |
US4948444A (en) * | 1987-09-23 | 1990-08-14 | Societe Lyonnaise Des Eaux | Process for production of a bundle of hollow semi-permeable fibers |
US4981149A (en) * | 1989-05-16 | 1991-01-01 | Inbae Yoon | Method for suturing with a bioabsorbable needle |
US4994073A (en) * | 1989-02-22 | 1991-02-19 | United States Surgical Corp. | Skin fastener |
US4997439A (en) * | 1989-01-26 | 1991-03-05 | Chen Fusen H | Surgical closure or anastomotic device |
US5002550A (en) * | 1989-06-06 | 1991-03-26 | Mitek Surgical Products, Inc. | Suture anchor installation tool |
US5002562A (en) * | 1988-06-03 | 1991-03-26 | Oberlander Michael A | Surgical clip |
US5007922A (en) * | 1989-11-13 | 1991-04-16 | Ethicon, Inc. | Method of making a surgical suture |
US5007921A (en) * | 1989-10-26 | 1991-04-16 | Brown Alan W | Surgical staple |
US5026390A (en) * | 1989-10-26 | 1991-06-25 | Brown Alan W | Surgical staple |
US5037422A (en) * | 1990-07-02 | 1991-08-06 | Acufex Microsurgical, Inc. | Bone anchor and method of anchoring a suture to a bone |
US5041129A (en) * | 1990-07-02 | 1991-08-20 | Acufex Microsurgical, Inc. | Slotted suture anchor and method of anchoring a suture |
US5047047A (en) * | 1988-10-26 | 1991-09-10 | Inbae Yoon | Wound closing device |
US5084063A (en) * | 1989-09-27 | 1992-01-28 | United States Surgical Corporation | Surgical needle-suture attachment |
US5101968A (en) * | 1991-05-07 | 1992-04-07 | Lukens Medical Corporation | Retainers for needled surgical sutures |
US5102418A (en) * | 1989-09-27 | 1992-04-07 | United States Surgical Corporation | Method for attaching a surgical needle to a suture |
US5102421A (en) * | 1990-06-14 | 1992-04-07 | Wm. E. Anpach, III | Suture anchor and method of forming |
US5112391A (en) * | 1990-03-30 | 1992-05-12 | Nalco Chemical Company | Method of forming ore pellets with superabsorbent polymer |
USD462766S1 (en) * | 2001-02-16 | 2002-09-10 | Coapt Systems, Inc. | Brow lift device |
USRE37963E1 (en) * | 1995-06-06 | 2003-01-07 | Raymond Thal | Knotless suture anchor assembly |
US20040003302A1 (en) * | 2002-06-28 | 2004-01-01 | Marshall Carl S. | Automatic mobile device scalable synchronization based on battery state |
US20040103174A1 (en) * | 2002-11-05 | 2004-05-27 | Balducci Juan V. Esteve | Folder synchronization |
US6760339B1 (en) * | 2000-05-20 | 2004-07-06 | Equipe Communications Corporation | Multi-layer network device in one telecommunications rack |
US20060172724A1 (en) * | 2005-01-31 | 2006-08-03 | Linkert Barry W | Synchronizing server and device data using device data schema |
US20080049714A1 (en) * | 2006-08-25 | 2008-02-28 | International Business Machines Corporation | A technique for synchronizing data with a mobile device based on a synchronization context |
US20080109737A1 (en) * | 1993-02-26 | 2008-05-08 | Object Technology Licensing Corporation | Method and apparatus for supporting real-time collaboration |
US20090083441A1 (en) * | 2007-09-24 | 2009-03-26 | Microsoft Corporation | Synchronization of web service endpoints in a multi-master synchronization environment |
US20090125131A1 (en) * | 1999-05-17 | 2009-05-14 | Invensys Systems, Inc. | Control systems and methods with composite blocks |
US8185494B2 (en) * | 2007-09-14 | 2012-05-22 | Microsoft Corporation | Data-driven synchronization |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5333266A (en) | 1992-03-27 | 1994-07-26 | International Business Machines Corporation | Method and apparatus for message handling in computer systems |
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 |
WO2002021413A2 (en) | 2000-09-05 | 2002-03-14 | Zaplet, Inc. | Methods and apparatus providing electronic messages that are linked and aggregated |
US6721871B2 (en) | 2002-04-02 | 2004-04-13 | Nokia Corporation | Method and apparatus for synchronizing data stores with respect to changes in folders |
US7386590B2 (en) * | 2003-01-03 | 2008-06-10 | Microsoft Corporation | System and method for improved synchronization between a server and a client |
US8166101B2 (en) | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
US7428546B2 (en) | 2003-08-21 | 2008-09-23 | Microsoft Corporation | Systems and methods for data modeling in an item-based storage platform |
US20070073899A1 (en) | 2005-09-15 | 2007-03-29 | Judge Francis P | Techniques to synchronize heterogeneous data sources |
-
2008
- 2008-12-12 US US12/334,314 patent/US20100153335A1/en not_active Abandoned
-
2015
- 2015-06-30 US US14/755,617 patent/US10042858B2/en active Active
Patent Citations (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3123077A (en) * | 1964-03-03 | Surgical suture | ||
US709392A (en) * | 1902-05-06 | 1902-09-16 | Haydn Brown | Suture-clamp. |
US733723A (en) * | 1903-02-16 | 1903-07-14 | Clarence D Lukens | Serrefin. |
US816026A (en) * | 1905-03-09 | 1906-03-27 | Albert J Meier | Surgical clip. |
US879758A (en) * | 1907-06-14 | 1908-02-18 | Frank Brooks Foster | Needle. |
US1728316A (en) * | 1927-07-02 | 1929-09-17 | Kirurgiska Instr Fabriks Aktie | Wound clasp |
US2201610A (en) * | 1938-05-20 | 1940-05-21 | Jr James C Dawson | Wound clip |
US2254620A (en) * | 1939-11-14 | 1941-09-02 | George I Miller | Clip |
US2232142A (en) * | 1940-09-27 | 1941-02-18 | Schumann Seymour | Wound clip |
US2421193A (en) * | 1943-08-02 | 1947-05-27 | Cleveland Clinic Foundation | Surgical dressing |
US2355907A (en) * | 1943-11-12 | 1944-08-15 | Johnson & Johnson | Method and apparatus for grinding and polishing ligatures |
US2472009A (en) * | 1945-08-01 | 1949-05-31 | Cleveland Clinic Foundation | Surgical dressing |
US2684070A (en) * | 1953-03-23 | 1954-07-20 | Walter L Kelsey | Surgical clip |
US2779083A (en) * | 1955-02-09 | 1957-01-29 | Edward N Eaton | Lip and mouth adjuster |
US2988028A (en) * | 1956-08-13 | 1961-06-13 | John H Alcamo | Surgeon's suturing device |
US3273562A (en) * | 1960-02-24 | 1966-09-20 | Rene G Le Vaux | Skin and surgical clips |
US3234636A (en) * | 1962-03-19 | 1966-02-15 | Ernest C Wood | Clip applicator |
US3166072A (en) * | 1962-10-22 | 1965-01-19 | Jr John T Sullivan | Barbed clips |
US3206018A (en) * | 1963-07-10 | 1965-09-14 | Ethicon Inc | Wire suturing device |
US3378010A (en) * | 1965-07-28 | 1968-04-16 | Coldling | Surgical clip with means for releasing the clamping pressure |
US3385299A (en) * | 1965-10-23 | 1968-05-28 | New Res And Dev Lab Inc | Wound clip |
US3527223A (en) * | 1967-09-01 | 1970-09-08 | Melvin Shein | Ear stud and hollow piercer for insertion thereof |
US3525340A (en) * | 1967-10-31 | 1970-08-25 | Joseph G Gilbert | Surgical dressing with skin clips thereon |
US3586002A (en) * | 1968-01-08 | 1971-06-22 | Ernest C Wood | Surgical skin clip |
US3494006A (en) * | 1968-01-12 | 1970-02-10 | George C Brumlik | Self-gripping fastening device |
US3608539A (en) * | 1968-11-06 | 1971-09-28 | Daniel G Miller | Method for the biopsy of subcutaneous masses |
US3570497A (en) * | 1969-01-16 | 1971-03-16 | Gerald M Lemole | Suture apparatus and methods |
US3833972A (en) * | 1969-09-11 | 1974-09-10 | G Brumlik | Self-adhering fastening filament |
US3646615A (en) * | 1970-01-26 | 1972-03-07 | Richard A Ness | Reinforcing element for muscles |
US3608095A (en) * | 1970-03-05 | 1971-09-28 | Federal Tool Eng Co | Method of fixing hair pieces to scalps |
US3981051A (en) * | 1970-03-16 | 1976-09-21 | Brumlik George C | Bristle-like gripping device |
US3683926A (en) * | 1970-07-09 | 1972-08-15 | Dainippon Pharmaceutical Co | Tube for connecting blood vessels |
US3716058A (en) * | 1970-07-17 | 1973-02-13 | Atlanta Res Inst | Barbed suture |
US4198734A (en) * | 1972-04-04 | 1980-04-22 | Brumlik George C | Self-gripping devices with flexible self-gripping means and method |
US3825010A (en) * | 1973-04-23 | 1974-07-23 | Donald B Mc | Surgical apparatus for closing wounds |
US3981307A (en) * | 1974-07-01 | 1976-09-21 | Ethicon, Inc. | Thermal attachment of surgical sutures to needles |
US3951261A (en) * | 1974-08-28 | 1976-04-20 | Ethicon, Inc. | Needled suture mounting and dispensing device and package |
US4006747A (en) * | 1975-04-23 | 1977-02-08 | Ethicon, Inc. | Surgical method |
US4069825A (en) * | 1976-01-28 | 1978-01-24 | Taichiro Akiyama | Surgical thread and cutting apparatus for the same |
US4073298A (en) * | 1976-08-03 | 1978-02-14 | New Research & Development Lab., Inc. | Wound clip |
US4316469A (en) * | 1976-09-07 | 1982-02-23 | Kapitanov Nikolai N | Surgical apparatus for suturing soft tissues with lengths of suturing material with spicules |
US4204541A (en) * | 1977-01-24 | 1980-05-27 | Kapitanov Nikolai N | Surgical instrument for stitching up soft tissues with lengths of spiked suture material |
US4311002A (en) * | 1977-09-22 | 1982-01-19 | Kabel Metallwerke Ghh | Forming stranded stock |
US4188760A (en) * | 1978-06-20 | 1980-02-19 | Frost John L | Masonry building block and method for forming such a block |
US4259959A (en) * | 1978-12-20 | 1981-04-07 | Walker Wesley W | Suturing element |
US4313448A (en) * | 1980-01-28 | 1982-02-02 | Medtronic, Inc. | Myocardial sutureless lead |
US4313448B1 (en) * | 1980-01-28 | 1985-04-02 | ||
US4317451A (en) * | 1980-02-19 | 1982-03-02 | Ethicon, Inc. | Plastic surgical staple |
US4428376A (en) * | 1980-05-02 | 1984-01-31 | Ethicon Inc. | Plastic surgical staple |
US4492075A (en) * | 1982-01-26 | 1985-01-08 | Asa S.A. | Method for producing fiber spun yarns and the fiber spun yarns obtained with said method |
US4434792A (en) * | 1982-03-19 | 1984-03-06 | Rosenberg Steven L | Adjustable abduction device for treatment of metatarsus adductus |
US4454875A (en) * | 1982-04-15 | 1984-06-19 | Techmedica, Inc. | Osteal medical staple |
US4430998A (en) * | 1982-06-01 | 1984-02-14 | Thoratec Laboratories Corporation | Wound closing device |
US4502574A (en) * | 1982-08-23 | 1985-03-05 | The Bendix Corporation | Adjuster assembly for a nonservo drum brake |
US4467805A (en) * | 1982-08-25 | 1984-08-28 | Mamoru Fukuda | Skin closure stapling device for surgical procedures |
US4531200A (en) * | 1982-12-02 | 1985-07-23 | International Business Machines Corporation | Indexed-indirect addressing using prefix codes |
US4493323A (en) * | 1982-12-13 | 1985-01-15 | University Of Iowa Research Foundation | Suturing device and method for using same |
US4676245A (en) * | 1983-02-09 | 1987-06-30 | Mamoru Fukuda | Interlocking surgical staple assembly |
US4510934A (en) * | 1983-05-13 | 1985-04-16 | Batra Subhash K | Suture |
US4741330A (en) * | 1983-05-19 | 1988-05-03 | Hayhurst John O | Method and apparatus for anchoring and manipulating cartilage |
US4850285A (en) * | 1984-01-18 | 1989-07-25 | Royston Manufacturing Corporation | Shelving system |
US4653486A (en) * | 1984-04-12 | 1987-03-31 | Coker Tom P | Fastener, particularly suited for orthopedic use |
US4610251A (en) * | 1985-04-19 | 1986-09-09 | Kumar Sarbjeet S | Surgical staple |
US4637380A (en) * | 1985-06-24 | 1987-01-20 | Orejola Wilmo C | Surgical wound closures |
US4669473A (en) * | 1985-09-06 | 1987-06-02 | Acufex Microsurgical, Inc. | Surgical fastener |
US4895148A (en) * | 1986-05-20 | 1990-01-23 | Concept, Inc. | Method of joining torn parts of bodily tissue in vivo with a biodegradable tack member |
US4841960A (en) * | 1987-02-10 | 1989-06-27 | Garner Eric T | Method and apparatus for interosseous bone fixation |
US4719917A (en) * | 1987-02-17 | 1988-01-19 | Minnesota Mining And Manufacturing Company | Surgical staple |
US4832025A (en) * | 1987-07-30 | 1989-05-23 | American Cyanamid Company | Thermoplastic surgical suture with a melt fused length |
US4948444A (en) * | 1987-09-23 | 1990-08-14 | Societe Lyonnaise Des Eaux | Process for production of a bundle of hollow semi-permeable fibers |
US4899743A (en) * | 1987-12-15 | 1990-02-13 | Mitek Surgical Products, Inc. | Suture anchor installation tool |
US4930945A (en) * | 1988-05-20 | 1990-06-05 | Mitsubishi Metal Corporation | Insert rotary cutter |
US5002562A (en) * | 1988-06-03 | 1991-03-26 | Oberlander Michael A | Surgical clip |
US5047047A (en) * | 1988-10-26 | 1991-09-10 | Inbae Yoon | Wound closing device |
US4905367A (en) * | 1988-11-08 | 1990-03-06 | Corvita Corporation | Manufacture of stretchable porous sutures |
US4997439A (en) * | 1989-01-26 | 1991-03-05 | Chen Fusen H | Surgical closure or anastomotic device |
US4994073A (en) * | 1989-02-22 | 1991-02-19 | United States Surgical Corp. | Skin fastener |
US4981149A (en) * | 1989-05-16 | 1991-01-01 | Inbae Yoon | Method for suturing with a bioabsorbable needle |
US5002550A (en) * | 1989-06-06 | 1991-03-26 | Mitek Surgical Products, Inc. | Suture anchor installation tool |
US4946468A (en) * | 1989-06-06 | 1990-08-07 | Mitek Surgical Products, Inc. | Suture anchor and suture anchor installation tool |
US5102418A (en) * | 1989-09-27 | 1992-04-07 | United States Surgical Corporation | Method for attaching a surgical needle to a suture |
US5084063A (en) * | 1989-09-27 | 1992-01-28 | United States Surgical Corporation | Surgical needle-suture attachment |
US5007921A (en) * | 1989-10-26 | 1991-04-16 | Brown Alan W | Surgical staple |
US5026390A (en) * | 1989-10-26 | 1991-06-25 | Brown Alan W | Surgical staple |
US5007922A (en) * | 1989-11-13 | 1991-04-16 | Ethicon, Inc. | Method of making a surgical suture |
US5112391A (en) * | 1990-03-30 | 1992-05-12 | Nalco Chemical Company | Method of forming ore pellets with superabsorbent polymer |
US5102421A (en) * | 1990-06-14 | 1992-04-07 | Wm. E. Anpach, III | Suture anchor and method of forming |
US5037422A (en) * | 1990-07-02 | 1991-08-06 | Acufex Microsurgical, Inc. | Bone anchor and method of anchoring a suture to a bone |
US5041129A (en) * | 1990-07-02 | 1991-08-20 | Acufex Microsurgical, Inc. | Slotted suture anchor and method of anchoring a suture |
US5101968A (en) * | 1991-05-07 | 1992-04-07 | Lukens Medical Corporation | Retainers for needled surgical sutures |
US20080109737A1 (en) * | 1993-02-26 | 2008-05-08 | Object Technology Licensing Corporation | Method and apparatus for supporting real-time collaboration |
USRE37963E1 (en) * | 1995-06-06 | 2003-01-07 | Raymond Thal | Knotless suture anchor assembly |
US20090125131A1 (en) * | 1999-05-17 | 2009-05-14 | Invensys Systems, Inc. | Control systems and methods with composite blocks |
US6760339B1 (en) * | 2000-05-20 | 2004-07-06 | Equipe Communications Corporation | Multi-layer network device in one telecommunications rack |
USD462766S1 (en) * | 2001-02-16 | 2002-09-10 | Coapt Systems, Inc. | Brow lift device |
US20040003302A1 (en) * | 2002-06-28 | 2004-01-01 | Marshall Carl S. | Automatic mobile device scalable synchronization based on battery state |
US20040103174A1 (en) * | 2002-11-05 | 2004-05-27 | Balducci Juan V. Esteve | Folder synchronization |
US20060172724A1 (en) * | 2005-01-31 | 2006-08-03 | Linkert Barry W | Synchronizing server and device data using device data schema |
US20080049714A1 (en) * | 2006-08-25 | 2008-02-28 | International Business Machines Corporation | A technique for synchronizing data with a mobile device based on a synchronization context |
US8185494B2 (en) * | 2007-09-14 | 2012-05-22 | Microsoft Corporation | Data-driven synchronization |
US20090083441A1 (en) * | 2007-09-24 | 2009-03-26 | Microsoft Corporation | Synchronization of web service endpoints in a multi-master synchronization environment |
Non-Patent Citations (1)
Title |
---|
Title: SitePointSitePoint Website: http://www.sitepoint.com/xml-dtds-xml-schema/ 2002. * |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9152650B1 (en) | 2010-03-31 | 2015-10-06 | Emc Corporation | Mobile device data recovery |
US9514089B1 (en) | 2010-03-31 | 2016-12-06 | EMC IP Holding Company LLC | Mobile device network data synchronization |
US8655966B1 (en) * | 2010-03-31 | 2014-02-18 | Emc Corporation | Mobile device data protection |
US8683005B1 (en) | 2010-03-31 | 2014-03-25 | Emc Corporation | Cache-based mobile device network resource optimization |
US8694744B1 (en) | 2010-03-31 | 2014-04-08 | Emc Corporation | Mobile device snapshot backup |
US8694597B1 (en) | 2010-03-31 | 2014-04-08 | Emc Corporation | Mobile device group-based data sharing |
US9465427B2 (en) * | 2011-06-30 | 2016-10-11 | International Business Machines Corporation | Software-centric power management by indirectly determining that user is not actively using computer program running on computing device |
US20130007481A1 (en) * | 2011-06-30 | 2013-01-03 | Al Chakra | Software-centric power management |
US8533275B2 (en) | 2011-08-19 | 2013-09-10 | Microsoft Corporation | Synchronizing conversation structures in web-based email systems |
WO2013028336A3 (en) * | 2011-08-19 | 2013-04-25 | Microsoft Corporation | Synchronizing conversation structures in web-based email systems |
US20130144918A1 (en) * | 2011-12-06 | 2013-06-06 | Baré Said | Mobile metadata model repository |
US9633107B2 (en) * | 2011-12-06 | 2017-04-25 | Sap Se | Mobile metadata model repository |
US10324987B2 (en) * | 2013-12-31 | 2019-06-18 | Samsung Electronics Co., Ltd. | Application search using device capabilities |
US9966073B2 (en) * | 2015-05-27 | 2018-05-08 | Google Llc | Context-sensitive dynamic update of voice to text model in a voice-enabled electronic device |
US10083697B2 (en) * | 2015-05-27 | 2018-09-25 | Google Llc | Local persisting of data for selectively offline capable voice action in a voice-enabled electronic device |
US10334080B2 (en) * | 2015-05-27 | 2019-06-25 | Google Llc | Local persisting of data for selectively offline capable voice action in a voice-enabled electronic device |
US10482883B2 (en) * | 2015-05-27 | 2019-11-19 | Google Llc | Context-sensitive dynamic update of voice to text model in a voice-enabled electronic device |
US9870196B2 (en) * | 2015-05-27 | 2018-01-16 | Google Llc | Selective aborting of online processing of voice inputs in a voice-enabled electronic device |
US10986214B2 (en) * | 2015-05-27 | 2021-04-20 | Google Llc | Local persisting of data for selectively offline capable voice action in a voice-enabled electronic device |
US11676606B2 (en) | 2015-05-27 | 2023-06-13 | Google Llc | Context-sensitive dynamic update of voice to text model in a voice-enabled electronic device |
US11087762B2 (en) * | 2015-05-27 | 2021-08-10 | Google Llc | Context-sensitive dynamic update of voice to text model in a voice-enabled electronic device |
CN105871970A (en) * | 2015-11-09 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | Note update method and device |
US11160003B2 (en) | 2017-08-04 | 2021-10-26 | Charter Communications Operating, Llc | Connecting to a wireless network based on a device mobility state |
US11722938B2 (en) | 2017-08-04 | 2023-08-08 | Charter Communications Operating, Llc | Switching connections over frequency bands of a wireless network |
US11212817B2 (en) * | 2017-08-04 | 2021-12-28 | Charter Communications Operating, Llc | Prioritizing preferred networks |
US10979500B1 (en) * | 2018-12-31 | 2021-04-13 | Facebook, Inc. | Techniques for directive-based messaging synchronization |
US11055314B1 (en) | 2018-12-31 | 2021-07-06 | Facebook, Inc. | Techniques for a database-driven messaging user interface |
US11025576B1 (en) * | 2018-12-31 | 2021-06-01 | Facebook, Inc. | Techniques for backend-specific cursor tracking |
US10855761B1 (en) | 2018-12-31 | 2020-12-01 | Facebook, Inc. | Techniques for in-place directive execution |
Also Published As
Publication number | Publication date |
---|---|
US10042858B2 (en) | 2018-08-07 |
US20150302023A1 (en) | 2015-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10042858B2 (en) | Synchronizing multiple classes with disparate schemas in the same collection | |
US10079789B2 (en) | Shared attachments | |
US10713427B2 (en) | Systems and methods for providing a communication program interface with an integrated tabular data management interface | |
US20220100882A1 (en) | Sharing artifacts in permission-protected archives | |
US8984139B2 (en) | System and method for editing a conversation in a hosted conversation system | |
US10068203B2 (en) | Methods and systems for managing to do items or notes or electronic messages | |
US8700719B1 (en) | Embedded applications with access to attachments in hosted conversations | |
CA2819359C (en) | Using text messages to interact with spreadsheets | |
US8996635B1 (en) | Automated participants for hosted conversations | |
US8478837B2 (en) | Offline global address list | |
US11792140B2 (en) | Enhancing performance of message search and retrieval | |
JP6018204B2 (en) | Synchronizing dialog structures in web-based email systems | |
US20090177704A1 (en) | Retention policy tags for data item expiration | |
WO2013049714A1 (en) | Automatic access settings based on email recipients | |
US11258739B2 (en) | System and method for managing files to be attached to or detached from an electronic mail | |
US9002950B2 (en) | Method and system to file relayed e-mails | |
US20090177748A1 (en) | System and method for automatic opportunistic data and image sharing | |
JP4642903B2 (en) | Message conversion system and method with enhanced context recognition | |
US20080059538A1 (en) | Method and system for synchronizing offline records | |
US20130339460A1 (en) | Protocol Expander System and Method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION,WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ESTEVE BALDUCCI, JUAN V.;ATWOOD, JOHN ALLEN;NEELEY, SAMUEL;AND OTHERS;SIGNING DATES FROM 20081210 TO 20081211;REEL/FRAME:021978/0583 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034564/0001 Effective date: 20141014 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |