CN102422276B - 在双向同步期间同步自引用字段 - Google Patents
在双向同步期间同步自引用字段 Download PDFInfo
- Publication number
- CN102422276B CN102422276B CN201080021480.XA CN201080021480A CN102422276B CN 102422276 B CN102422276 B CN 102422276B CN 201080021480 A CN201080021480 A CN 201080021480A CN 102422276 B CN102422276 B CN 102422276B
- Authority
- CN
- China
- Prior art keywords
- task
- project
- list
- leading person
- leading
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Software Systems (AREA)
- Educational Administration (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
自引用字段在客户机计算机和服务器计算机之间的双向同步的同步传递期间被同步。在执行同步操作时,加载与服务器相关联的服务器任务的列表以及与客户机相关联的项目任务的列表。对于正在同步的每一任务,维持两个前导者列表。在同步期间,进行比较以便判断是使用项目任务数据还是使用服务器任务数据。在使用项目任务数据时,则使用被存储在项目前导者列表中的前导者ID。在使用服务器任务数据时,则使用被存储在服务器前导者列表中的前导者ID。
Description
背景
任务管理应用软件赋予用户以高效和有效的方式管理项目的能力。项目经理可以将项目组织成任务、将任务指派给具体的用户和为任务分配资源。任务管理软件可以控制工作流、链接相互关联的任务并帮助确保满足项目截止期限。
可以将任务管理信息存储在共享相互关联的数据的两个或更多个计算机系统上。在这些系统准许对相同数据的更新时,尤其是在相互关联的数据包含串行相关的任务时,可能出现冲突。例如,如果一个系统上的用户改变任务的开始日期,则相互关联的任务的开始日期和完成日期也可以改变。
概述
提供本概述以便以简化形式介绍下面在详细描述中进一步描述的概念的选集。本概述不旨在标识所要求保护的本主题关键特征或必要特征,也不旨在用来帮助确定所要求保护的本主题的范围。
自引用字段在客户机计算机和服务器计算机之间的双向同步的同步传递期间被同步。在执行同步操作时,加载与服务器上的项目相关联的协作任务的列表以及与客户机上的项目相关联的项目任务的列表。对于正在同步的每一任务,维持包括项目前导者列表和协作前导者列表的两个列表。在同步期间,对每一任务进行比较,以便确定是使用项目任务数据还是使用协作任务数据。在使用项目任务数据时,则清除协作前导者列表并用对应的项目前导者ID填充项目前导者列表。在使用协作任务数据时,则清除项目前导者列表并用对应的协作前导者ID填充协作前导者列表。在同步的写阶段期间,使用项目前导者列表和协作前导者列表来确定要写什么前导者ID。在写项目任务且项目前导者列表不为空时,则使用项目前导者列表。在项目前导者列表为空且协作前导者列表不为空时,则使用协作前导者ID。
附图说明
图1例示计算机的计算机体系结构;
图2示出用于同步自引用字段的示例同步系统;
图3示出运行项目管理系统中的任务管理应用软件的示例客户机计算机;
图4示出用于在同步的读阶段期间同步自引用字段的过程;
图5例示用于基于同步操作的比较阶段调整前导者列表的过程;
图6例示用于在同步操作的写阶段期间同步自引用字段的过程;
图7示出用于解决在客户机计算机和服务器计算机上的相互关联的数据之间的冲突的过程700;以及
图8是包括冲突解决的示例同步操作的流程图。
详细描述
现在参见其中相同的数字表示相同的元素的附图,将描述各种实施方式。尤其,图1和相应的讨论旨在提供各实施方式可以在其中实现的合适的计算环境的简要、一般的描述。
一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。也可以使用其他计算机系统配置,包括手持式设备、多处理器系统、基于微处理器的或可编程的消费性电子设备、小型计算机、大型计算机等等。也可以使用分布式计算环境,分布式计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备两者。
现在参见图1,将描述用于在各种实施方式中使用的计算机100的说明性计算机体系结构。图1中所示出的计算机体系结构可以被配置成台式计算机、服务器计算机或移动计算机,且包括中央处理单元5(“CPU”)、包括随机存取存储器9(“RAM”)和只读存储器(“ROM”)10的系统存储器7和将存储器耦合到CPU 5的系统总线12。包含例如在启动期间帮助在计算机内的元件之间传递信息的基本例程输入/输出系统被存储在ROM 10中。计算机100还包括用于存储操作系统16、应用程序24和其他程序模块的大容量存储设备14,这将在下面更详细地描述。
大容量存储设备14通过被连接到总线12的大容量存储控制器(未示出)连接到CPU 5。大容量存储设备14及其关联的计算机可读介质为计算机100提供非易失性存储。尽管在此包含的计算机可读介质的描述是指诸如硬盘或CD-ROM驱动器等的大容量存储设备,但计算机可读介质可以是可由计算机100访问的任何可用介质。
作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等的信息的任何方法或技术实现的易失性介质和非易失性介质、可移动介质和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EPROM、EEPROM、闪速存储器或其他固态存储器技术、CD-ROM、数字多用盘(“DVD”)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可以被用来存储所期望的信息且可由计算机100访问的任何其他介质。
根据各种实施方式,计算机100通过诸如因特网等的网络18在使用到远程计算机的逻辑连接的联网环境中操作。计算机100可以通过被连接到总线12的网络接口单元20连接到网络18。网络连接可以是无线的和/或有线的。也可以利用网络接口单元20来连接到其他类型的网络和远程计算机系统。计算机100也可以包括用于接收和处理来自包括键盘、鼠标或电子指示笔(图1中未示出)的多个其他设备的输入的输入/输出控制器22。类似地,输入/输出控制器22可以向包括用户界面28的显示屏幕、打印机或其他类型的输出设备提供输出。
如上面简要地提到,可以将多个程序模块和数据文件存储在计算机100的大容量存储设备14和RAM 9中,包括适用于控制联网个人计算机的操作的操作系统16,例如来自华盛顿州雷蒙德市微软公司的WINDWOS操作系统。大容量存储设备14和RAM 9也可以存储一个或多个程序模块。尤其,大容量存储设备14和RAM 9可以存储一个或多个应用程序24。应用程序中的一个可以是项目管理应用27,例如微软在被配置成服务器时,应用程序中的一个可以是协作程序,例如WINDOWS SHAREPOINT SERVICES(WSS)。
用户界面(UI)28被设计为给用户提供与项目管理应用27、在服务器上维持的协作应用以及其他应用程序交互的可视方式。例如,UI 28可以被用来显示用户可以从中选择以便编辑的任务的列表。UI 28也可以被用来添加或改变任务的优先级。
同步应用26被配置为执行包括在运行项目管理应用的客户机计算设备和运行协作应用的服务器计算设备之间同步自引用字段的同步操作。
图2示出用于同步自引用字段的示例同步系统200。如图所示,系统200包括客户机201、服务器204和网络206。尽管仅示出一个客户机和一个服务器,但系统200可以包括更多客户机和/或服务器。
通常,一个客户机计算机,例如客户机计算机201,运行其中将项目组织成相互关联的任务的项目管理应用软件程序220。运行任务管理应用软件的示例项目管理系统是来自华盛顿州雷蒙德市微软公司的微软Project 2007。通常,服务器计算机204运行协作和文档管理软件程序210,例如也来自微软公司的Windows Sharepoint Services(WSS)。示例客户机201可以使用web服务和/或web浏览器跨网络206访问经由协作应用被存储在服务器204上的项目管理任务列表。
示例任务管理应用可以包含许多相互关联的任务。一个或多个任务可以包括对前导者任务的依赖性。例如,直到任务A完成位置才可准许任务B开始。因而,任务A是任务B的前导者。类似地,直到任务B、C和D中的每一个完成才可准许任务E开始。因而,任务B、C和D是任务E的前导者任务。
诸如微软Project 2007等的任务管理应用通常由一人例如项目经理控制。然而,对于团队成员来说,期望能够访问被指派给他们的任务并更新那些任务的计划完成日期和完成状态百分比。像WSS之类的在线协作程序准许将任务列表存储在服务器计算机(例如服务器204)上,以使得用户(例如客户机201上的用户)可以访问任务列表并在适当时对它们作出改变。需要在客户机和服务器之间同步由项目经理或团队成员作出的任何改变,且需要解决实际的冲突。在客户机和服务器之间的同步期间,也同步每一任务的自引用前导者ID(即,其数据指向其他项的字段)。然而,通常,与客户机相关联的前导者ID不匹配服务器上的协作软件的前导者ID。在这一示例中,在客户机201和服务器204之间,前导者ID是不同的。例如,与服务器上的协作应用相关联的任务的ID不同于与客户机上的项目管理应用相关联的任务的对应ID。
同步应用创建两个前导者列表。一个前导者列表用于项目前导者的ID,而另一列表用于协作前导者。在同步的比较阶段和修改阶段期间,可以在逐项的基础上清除并重写这些列表。在同步的写阶段期间,检查这些列表以便确定写什么数据(即,项目任务数据或协作任务数据)。在同步应用当前正在写项目数据时,然后,写项目前导者列表除非项目前导者列表被清除,在这样的情况中,将协作前导者列表映射到项目ID,且然后写协作前导者列表。在同步应用当前正在写协作数据时然后写协作前导者列表除非协助前导者列表被清除,在这样的情况中,将项目前导者列表映射到项目ID,且然后写项目前导者列表。维持两个列表帮助执行在客户机201和服务器204之间的单遍同步。
根据一种实施方式,以上所描述的客户机201上的项目管理应用220和服务器204上的协作应用210使用ID来定义在项目内的任务的前导者。例如,项目管理应用220的项目可以具有带有ID 4和5的两个任务,且任务5可以是任务4的前导者。同样地,与协作应用210一起存储的对应项目可以将任务4和5存储为任务14和15。为了在项目管理应用220和协作应用210之间关联相关的任务,在项目任务ID和协作任务ID之间维持映射。例如,在客户机201上,将与项目管理应用220相关联的任务5映射到指示其被同步到协作应用的任务14的字段。在服务器204上存在相似的映射。
在在客户机201和服务器204之间的同步操作期间,将项目任务和协作任务读成分开的数据结构,以使得同步应用212可以比较和修改数据而不影响底层数据。这些数据结构包括以上所描述的两个前导者列表(包含项目ID的项目前导者列表和包含协作ID的协作前导者列表)。在同步操作的“读阶段”期间,将与项目管理应用220和协作应用210与相关联的前导者读到它们相应的列表。举例来说,项目任务最初使项目前导者列表被填写且协作任务最初使协作前导者列表被填写。
在同步的比较阶段期间,作出关于合并且可能重写什么任务的确定。对于示例性比较阶段参见图7和图8以及相关的讨论。也可以利用其他比较算法。为了适应前导者,在项目任务在比较阶段期间“胜出”(即,将要重写协作任务中的数据)时,清除协作任务的协作前导者列表,且用对应的项目ID填充项目前导者列表。在协作任务在比较阶段期间“胜出”(即,将要重写项目任务中的数据)时,清除项目任务的项目前导者列表,且用对应的协作ID填充协作前导者列表。
在写阶段期间,这两个前导者列表被用来确定如何写前导者信息。如果正在写项目任务且项目前导者列表不为空,则使用该前导者列表,这是因为该项目项在同步的比较阶段期间“胜出”。然而,如果项目前导者列表为空且协作前导者列表不为空,那么,使用协作前导者列表ID,这是由于该项目任务在比较阶段期间“失败”。如以上所描述的,使用在项目任务ID和协作任务ID之间的映射来将ID从客户机201映射到服务器204以及将ID从服务器204映射到客户机201。例如,可以从协作ID确定项目ID,这是由于已经同步了任一项(且因而,该项已经具有对应的项目ID)或者刚刚在项目管理应用220的项目中创建了该任务,因此正确的项目ID是基于协作ID。在同步期间删除了任务时,然后,在“写”阶段期间检测到这一删除,且如果项具有已经被删除的项的前导者,则不写该前导者。根据另一实施方式,代替清除在比较阶段期间“失败”的列表,可以合并前导者列表,在这种情况中使用这两种列表。
图3示出运行诸如微软Project 2007等的项目管理系统中的任务管理应用软件的示例客户机计算机300。示例客户机计算机300包括示例用户界面模块304和示例项目引擎模块310。在示例项目引擎模块310内所包括的是同步模块312。
示例用户界面模块304准许用户将像任务、资源和分配之类的项目实体输入到项目管理系统。各实体通常被存储在表中,以使得通常将存在用于任务的表、用于资源的表和用于分配的表。与项目任务相关联的是与该任务有关的一个或多个属性。属性对应于任务表中的列。一些示例属性是名称、所有者、开始日期、完成日期、项目持续时间和任务的状态。每一任务也具有标识该任务的唯一项目标识符。
用户可以从示例项目管理系统可用的多个属性中选择属性。示例用户界面模块304准许用户选择这些属性或可用属性中的一个或多个,并将各属性与任务相关联。示例用户界面模块304也准许用户选择服务器计算机上可用的每一任务的一个或多个属性。服务器属性通常包括任务的名称、所有者、开始日期、完成日期、项目持续时间和状态。结果是与由任务管理系统监视的每一任务相关联的一组客户机和服务器属性。
示例项目引擎模块310提供运行项目管理系统的软件引擎。可以以父/子关系将一个或多个任务链接到其他任务。一个或多个任务可以与其他任务有前导者或后继者关系。在任务的开始日期或任务持续时间改变时,示例项目引擎模块310计算所有已链接的任务的所得到的开始日期和结束日期,并在项目管理系统中更新那些任务的日期。
示例同步模块312控制各任务在图2中所示的客户机计算机(例如客户机201)和服务器计算机204之间的同步。同步模块312也可以包括每一任务的改变列表和位掩码。改变列表是可以在客户机计算机201和服务器计算机204之间同步的每一任务的属性的列表。改变列表对应于由用户经由用户界面模块304选择的任务的客户机201属性和服务器204属性。位掩码是包括用于改变列表中的每一属性的位的数据结构。例如,在客户机计算机201上对应的属性改变时,可以将位设置在位掩码中。同步模块312可以使用位掩码来确定在客户机计算机201上已经改变哪些属性,以使得可以将这些属性与服务器计算机204上的对应的属性同步。
现在参见图4-图7,描述用于在项目应用和协作应用之间同步自引用字段的说明性过程。
在阅读在此呈现的例程的讨论时,应明白,各种实施方式的逻辑操作被实现为(1)计算机实现的动作的序列或在计算系统上运行的程序模块和/或(2)在计算系统内的互连的机器逻辑电路或电路模块。该实现是依赖于实现本发明的计算系统的性能要求的选择问题。因此,所示的并且构成在此描述的各实施方式的逻辑操作被不同地称为操作、结构设备、动作或模块。可以在软件、固件、专用数字逻辑和任何其组合中实现这些操作、结构设备、动作和模块。
图4示出用于在同步的读阶段期间同步自引用字段的过程。
在开始操作之后,该过程流到操作410,操作410中加载项目任务和协作任务。例如,从客户机加载来自项目管理应用的项目任务,且从服务器加载来自协作应用的协作任务。
移动到操作420,为各任务创建两个前导者列表。根据一种实施方式,对于每一项目任务,项目前导者列表包括该任务的前导者的项目ID,且最初为空的协作前导者列表包括该任务的前导者的协作ID。
移动到操作430,为各协作任务创建两个前导者列表。根据一种实施方式,服务器创建包括该任务的前导者的协作ID的协作前导者列表以及包括该任务的前导者的项目ID的最初为空的项目前导者列表。
流到操作440,同步移动到同步的比较阶段,此时作出关于写什么数据(例如,项目任务数据或服务器任务数据)的确定。
然后,该过程流到结束操作并返回到处理其他动作。
图5例示用于基于同步操作的比较阶段调整前导者列表的过程500。
在开始操作之后,该过程流到操作510,操作510中通过执行冲突解决来作出关于要同步什么任务数据(即,什么任务“胜出”)的确定(示例性过程可参见图7和图8以及相关的讨论)。
流到判决操作520,作出关于是使用任务的项目数据还是使用任务的协作任务数据的确定。
在要使用项目任务数据时,该过程移动到操作525,操作525中清除协作前导者列表。移动到操作530,将项目前导者ID复制到项目前导者列表。
在要使用协作任务数据时,该过程移动到操作540,操作540中清除项目前导者列表。移动到操作545,将协作前导者ID复制到项目前导者列表。
移动到操作550,该过程移动到同步的写阶段(参见图6和相关的讨论)。
然后,该过程流到结束操作并返回到处理其他动作。
图6例示用于在同步操作的写阶段期间同步自引用字段的过程600。
在开始操作之后,该过程流到判决操作610,判决操作610中作出关于是否正在同步客户机上的项目任务的确定。
当项目任务正在客户机上被同步时,然后,该操作移动到判决操作620,判决操作620中作出关于项目前导者列表是否为空的判断。
在项目前导者列表为空时,该过程流到操作625,操作625中将协作前导者ID映射到项目前导者ID。然后,该过程移动到操作630,操作630中写项目前导者ID。
在前导者列表不为空时,该过程移动到操作630,操作630中写项目前导者ID。
类似地,当协作任务正在服务器上被同步时,然后,该操作移动到判决操作640,判决操作640中作出关于协作前导者列表是否为空的确定。
在协作前导者列表为空时,该过程流到操作645,操作645中将项目前导者ID映射到协作前导者ID。然后,该过程移动到操作650,操作650中写协作前导者ID。
在协作前导者列表不为空时,该过程移动到操作650,操作650中写协作前导者ID。
然后,该过程流到结束操作并返回到处理其他动作。
图7示出用于解决在客户机计算机和服务器计算机上的相互关联的数据之间冲突的过程700。
在开始操作之后,该过程移动到操作710,操作710中将任务信息存储在客户机计算机上。可以经由客户机计算机应用程序(通常是项目管理应用程序)输入任务信息,且任务信息包括一个或多个任务以及与每一任务相关联的一个或多个属性。属性包括诸如任务的名称、任务的开始和完成日期、任务的持续时间、任务的优先级等等的信息。每一任务具有与之相关联的唯一客户机计算机任务管理应用标识符。在操作720,将唯一客户机计算机任务管理应用标识符存储在客户机。
流到操作730,通常通过将任务信息发布给在服务器计算机上运行的文档共享和协作程序来将任务信息发送给服务器计算机。在将任务信息存储在服务器计算机上时,服务器计算机指派每一任务的唯一服务器计算机应用标识符。
移动到操作740,获得每一任务的唯一服务器计算机应用标识符并将其存储在客户机计算机上。
在将任务存储在服务器计算机上时,也存储时间戳,时间戳指示在服务器计算机上上一次修改任务的日期和时间。在操作750,从服务器计算机获得任务的时间戳并将其存储在客户机计算机上。
流到操作760,将每一任务的唯一服务器计算机应用标识符映射到该任务的唯一客户机计算机任务管理应用标识符,并将映射存储在客户机计算机上。
当在客户机计算机上创建每一任务时,也创建改变列表。改变列表标识要与服务器同步的任务的属性。为每一改变列表创建位掩码,且位掩码中的每一位对应于要同步的属性。在操作770,将每一任务的位掩码存储在客户机计算机上。在经由客户机计算机任务管理应用编辑任务时,改变一个或多个属性。在操作780,对于所改变的每一属性,将位设置在任务的位掩码中。
周期性地,尤其是任务在客户机计算机上被编辑时,客户机计算机发起同步操作以便与服务器同步这些改变。在操作790发起同步操作。
图8是包括冲突解决的示例同步操作的流程图。
在开始操作之后,该过程流到操作810,操作810中从服务器计算机获得任务和属性的列表。在判决操作815,对于从服务器计算机获得的各任务中的每一个,作出关于是否将任务的唯一服务器计算机应用标识符(协作ID)映射到任务的唯一客户机计算机任务管理应用标识符(项目ID)的确定。例如,作出是否将任务的项目ID映射到任务的协作ID确定。如果任务不映射,则在操作850在客户机计算机上创建新的任务并将其映射到该任务的唯一服务器计算机应用标识符。
如果任务映射,则在操作820,作出关于该任务是否存在于客户机计算机上的确定。如果任务映射但不存在于客户机计算机上,则这是该任务从客户机计算机被删除的指示。因此,在操作855,从服务器计算机删除该任务以使得服务器计算机与客户机计算机一致。
如果任务映射并且存在于客户机计算机上,则在判决操作825作出任务的位掩码中的任何位是否已设置的确定。如果该任务的位掩码的各位中的任何都已经被设定,这指示任务的至少一个属性已经改变,则在判决操作830作出关于在上次的客户机计算机同步之前是否更新了服务器计算机的确定。通过检查上次在服务器计算机上修改任务的日期和时间与客户机计算机上次发起同步操作的日期和时间来进行这一确定。如果上次在服务器计算机上修改任务的日期和时间早于上次在客户机计算机上修改任务的日期和时间,这指示在客户机计算机上更新了该任务而服务器计算机还不具有这一经更新的信息,则在操作860将经更新的任务信息发送给客户机计算机。
如果为任务设置了位掩码位且在上次客户机同步之后更新了服务器计算机,则客户机计算机将其中设置了位掩码位的所有字段标记为冲突,且在操作835向用户显示示出冲突的对话框。在操作840,用户通过选择冲突属性中的一个来手动地执行冲突解决。根据一种实施方式,这经由显示冲突的对话框来完成。
在计算任务的冲突解决时或在不存在冲突的情况下操作850、855或860已经完成时,则控制传到操作845以便检查下一任务并再次进行操作815,正如所讨论的。由任务管理应用自动地更新任何传递改变,从而最小化向用户呈现供解决的冲突。
以上说明书、示例和数据提供本发明的组成的产品和使用的完整描述。由于可以在不偏离本发明的精神和范围的前提下做出本发明的许多实施方式,本发明属于下文所附的权利要求。
Claims (12)
1.一种用于在项目管理应用和协作应用之间同步自引用字段的方法,所述方法在计算机的处理器上执行,包括:
在客户机计算设备上加载项目的项目任务(410);
在服务器计算设备上加载所述项目的协作任务(410);
将所述项目任务与所述协作任务相关联,使得在同步之后所述协作任务中任一协作任务的改变能够反映在对应的项目任务中;
创建每一项目任务的项目前导者列表(420);
创建每一协作任务的协作前导者列表(430);
对于每一项目任务和对应的协作任务,通过执行冲突解决(510)来确定何时使用项目任务数据以及何时使用所述协作任务数据;以及
访问所述项目前导者列表(620)和所述协作前导者列表(640)以确定何时选择所述项目前导者列表以便写入以及何时选择所述协作前导者列表以便写入。
2.如权利要求1所述的方法,进一步包括在要使用所述项目任务数据时清除所述协作前导者列表(525)。
3.如权利要求2所述的方法,进一步包括在要使用所述协作任务数据时清除所述项目前导者列表(540)。
4.如权利要求3所述的方法,进一步包括在所述协作前导者列表被清除时写所述项目前导者列表(630)且在所述项目前导者列表被清除时写所述协作前导者列表(650)。
5.如权利要求2所述的方法,进一步包括在清除所述协作前导者列表时复制所述项目前导者标识符(530)以及在清除所述项目前导者列表时复制所述协作前导者标识符(545)。
6.如权利要求3所述的方法,进一步包括在所述协作前导者标识符和所述项目前导者标识符之间执行映射(625,645)。
7.如权利要求6所述的方法,进一步包括基于哪个列表被清除来确定所述映射(625,645)。
8.一种用于同步与在客户机计算设备上的任务管理应用和在服务器计算设备上的协作应用的各任务相关联的自引用标识符的方法,包括:
启动同步会话(308)以便在客户机和服务器之间同步包括各任务的项目的项目数据;
在所述客户机与所述服务器之间将所述项目的各任务相关联,使得在同步之后来自服务器的所述项目的协作任务中任一协作任务的改变能够反映在来自客户机的对应的项目任务中;
加载所述项目的任务(410),且为每一任务创建项目前导者列表和协作前导者列表(420,430);其中,在所述项目任务具有前导者时所述项目前导者列表包括至少一个项目前导者标识符,且其中,在所述协作任务具有前导者时所述协作前导者列表包括至少一个协作前导者标识符;
在同步每一任务时,确定何时使用项目任务数据以及何时使用协作任务数据(520);以及
在所述同步的写阶段期间,在使用项目任务数据时,写所述项目前导者列表,且在要使用协作任务数据时,写所述协作前导者列表(550)。
9.如权利要求8所述的方法,其特征在于,加载所述项目的任务包括从所述服务器加载协作任务以及从所述客户机加载项目任务(410)。
10.如权利要求9所述的方法,进一步包括在要使用项目任务数据时清除所述协作前导者列表(525)以及在要使用所述项目任务数据时清除所述项目前导者列表(540)。
11.如权利要求10所述的方法,进一步包括将未清除的前导者列表中的任何标识符映射到已清除列表中的对应标识符;基于清除了哪个前置列表来确定要写哪个前导者列表(625,645)。
12.一种用于同步与在客户机计算设备上的任务管理应用和在服务器计算设备上的协作应用的各任务相关联的自引用标识符的系统,包括:
用于启动同步会话以便在客户机和服务器之间同步包括各任务的项目的项目数据的装置;
用于在所述客户机与所述服务器之间将所述项目的各任务相关联、使得在同步之后所述项目的协作任务中任一协作任务的改变能够反映在对应的项目任务中的装置;
用于加载所述项目的任务且为每一任务创建项目前导者列表和协作前导者列表的装置;其中,在所述项目任务具有前导者时所述项目前导者列表包括至少一个项目前导者标识符,且其中,在所述协作任务具有前导者时所述协作前导者列表包括至少一个协作前导者标识符;
用于在同步每一任务时确定何时使用项目任务数据以及何时使用协作任务数据的装置;以及
用于在所述同步的写阶段期间在使用项目任务数据时写所述项目前导者列表、且在要使用协作任务数据时写所述协作前导者列表的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/464,257 | 2009-05-12 | ||
US12/464,257 US8019813B2 (en) | 2009-05-12 | 2009-05-12 | Synchronizing self-referencing fields during two-way synchronization |
PCT/US2010/034279 WO2010132378A2 (en) | 2009-05-12 | 2010-05-10 | Synchronizing self-referencing fields during two-way synchronization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102422276A CN102422276A (zh) | 2012-04-18 |
CN102422276B true CN102422276B (zh) | 2014-03-19 |
Family
ID=43069378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080021480.XA Active CN102422276B (zh) | 2009-05-12 | 2010-05-10 | 在双向同步期间同步自引用字段 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8019813B2 (zh) |
EP (1) | EP2430561A2 (zh) |
JP (1) | JP2012527048A (zh) |
KR (1) | KR101661789B1 (zh) |
CN (1) | CN102422276B (zh) |
WO (1) | WO2010132378A2 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8316371B2 (en) * | 2009-04-09 | 2012-11-20 | Mindjet Llc | Task hierarchy in an event-driven communication system |
US9641564B2 (en) * | 2009-05-14 | 2017-05-02 | Qualcomm Incorporated | Maintaining controllee information in collaborative sessions |
US9641567B2 (en) | 2009-05-14 | 2017-05-02 | Qualcomm Incorporated | Controlling media and informing controller status in collaborative sessions |
US8667033B1 (en) | 2011-05-14 | 2014-03-04 | Gopivotal, Inc. | Persistent file system objects for management of databases |
GB2520931A (en) * | 2013-11-29 | 2015-06-10 | Togeva Ltd | A system for managing communications with a plurality of mobile devices |
US20170230466A1 (en) * | 2016-02-05 | 2017-08-10 | Prysm, Inc. | Cross Platform Annotation Syncing |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007003B1 (en) * | 1998-12-04 | 2006-02-28 | Intellisync Corporation | Notification protocol for establishing synchronization mode for use in synchronizing databases |
US6792085B1 (en) * | 1999-09-10 | 2004-09-14 | Comdial Corporation | System and method for unified messaging with message replication and synchronization |
AU2001296866A1 (en) * | 2000-09-05 | 2002-03-22 | Zaplet, Inc. | Methods and apparatus providing electronic messages that are linked and aggregated |
US8463744B2 (en) * | 2001-01-03 | 2013-06-11 | International Business Machines Corporation | Method and system for synchronizing data |
US7076567B1 (en) * | 2002-04-25 | 2006-07-11 | Oracle International Corporation | Simplified application object data synchronization for optimized data storage |
US7730014B2 (en) * | 2003-03-25 | 2010-06-01 | Hartenstein Mark A | Systems and methods for managing affiliations |
US8005710B2 (en) * | 2004-09-28 | 2011-08-23 | Microsoft Corporation | Methods and systems for caching and synchronizing project data |
US7496886B2 (en) * | 2004-09-30 | 2009-02-24 | Microsoft Corporation | Method and system for providing cross project commitments |
US20060242204A1 (en) * | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Sync manager conflict resolution |
US7383393B2 (en) * | 2005-10-28 | 2008-06-03 | Freescale Semiconductor, Inc. | System and method for cooperative prefetching |
CN101005428A (zh) * | 2006-01-19 | 2007-07-25 | 华为技术有限公司 | 一种检测与解决数据同步冲突的实现方法 |
US7983249B2 (en) * | 2007-01-23 | 2011-07-19 | Oracle America, Inc. | Enterprise web service data to mobile device synchronization |
US8135635B2 (en) * | 2008-10-16 | 2012-03-13 | Intuit Inc. | System and method for time tracking on a mobile computing device |
-
2009
- 2009-05-12 US US12/464,257 patent/US8019813B2/en active Active
-
2010
- 2010-05-10 JP JP2012510907A patent/JP2012527048A/ja not_active Withdrawn
- 2010-05-10 WO PCT/US2010/034279 patent/WO2010132378A2/en active Application Filing
- 2010-05-10 EP EP10775350A patent/EP2430561A2/en not_active Withdrawn
- 2010-05-10 KR KR1020117026811A patent/KR101661789B1/ko active IP Right Grant
- 2010-05-10 CN CN201080021480.XA patent/CN102422276B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
KR101661789B1 (ko) | 2016-09-30 |
US8019813B2 (en) | 2011-09-13 |
CN102422276A (zh) | 2012-04-18 |
KR20120022911A (ko) | 2012-03-12 |
WO2010132378A3 (en) | 2011-02-17 |
JP2012527048A (ja) | 2012-11-01 |
WO2010132378A2 (en) | 2010-11-18 |
EP2430561A2 (en) | 2012-03-21 |
US20100293222A1 (en) | 2010-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2680978C (en) | Integrated design application | |
CN102422276B (zh) | 在双向同步期间同步自引用字段 | |
US9286037B2 (en) | Platform for distributed applications | |
US20070239725A1 (en) | Active cache offline access and management of project files | |
US20100293538A1 (en) | Dynamic program updating in a continuation based runtime | |
US11762654B2 (en) | Processing framework for in-system programming in a containerized environment | |
CN101983380A (zh) | 文档的同步协作审阅 | |
WO2013055554A1 (en) | Method and system for allocation of resources in an agile environment | |
AU2011224001B2 (en) | Content asset manager | |
CN113672352A (zh) | 一种基于容器部署联邦学习任务的方法及装置 | |
CN113791765A (zh) | 云服务的资源编排方法、装置、设备及存储介质 | |
US20100131587A1 (en) | Minimizing Conflicts When Synchronizing Interrelated Data Between Two Systems | |
US20090228427A1 (en) | Managing document work sets | |
US20070130183A1 (en) | Methods, systems, and computer program products for associating computer-system-accessible resources using behaviors | |
CN102257499B (zh) | 管理持久文档集合的技术 | |
US20090327020A1 (en) | Intelligent task Deactivation In Project Scheduling Application | |
CN113741931B (zh) | 软件升级方法、装置、电子设备及可读存储介质 | |
CN114282210A (zh) | 沙箱自动构建方法、系统、计算机设备及可读存储介质 | |
US20140081679A1 (en) | Release Management System and Method | |
Neupane | Developing a static website and deploying it to Heroku | |
CN102150149B (zh) | 利用同步通信协议来实现异步应用和业务线行为 | |
Arora et al. | Azure DevOps Server 2019 Cookbook: Proven Recipes to Accelerate Your DevOps Journey with Azure DevOps Server 2019 (formerly TFS) | |
Liu | SMOOTH OPERATIONS FOR LARGE STATEFUL IN-MEMORY DATABASE APPLICATION | |
CN117555882A (zh) | 元数据的克隆方法、装置、系统、计算机设备和存储介质 | |
CN115599370A (zh) | 一种业务模型管理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150430 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150430 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |