CN101310265A - 生产性套件到业务线的同步机制 - Google Patents

生产性套件到业务线的同步机制 Download PDF

Info

Publication number
CN101310265A
CN101310265A CN200680042732.0A CN200680042732A CN101310265A CN 101310265 A CN101310265 A CN 101310265A CN 200680042732 A CN200680042732 A CN 200680042732A CN 101310265 A CN101310265 A CN 101310265A
Authority
CN
China
Prior art keywords
lob
project
productivity suite
application
request
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.)
Granted
Application number
CN200680042732.0A
Other languages
English (en)
Other versions
CN101310265B (zh
Inventor
M·W·穆勒德
D·克洛泽林
J·R·派克
T·K·吉斯顿
T·J·艾伯尔
L·萨恩彻
R·J·索泽多
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US11/437,430 external-priority patent/US20070067354A1/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority claimed from PCT/US2006/036362 external-priority patent/WO2007035680A1/en
Publication of CN101310265A publication Critical patent/CN101310265A/zh
Application granted granted Critical
Publication of CN101310265B publication Critical patent/CN101310265B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种同步方法被安排成允许生产性套件应用程序和诸如客户关系管理,即CRM应用程序等业务线(LOB)应用程序之间的同步。请求经由web服务调用从生产性套件应用程序发送到LOB应用程序以更新、删除或创建LOB应用程序中的新实体。LOB应用程序从接收到的web服务调用中提取每一请求,其中请求可用XML数据表示来提供。请求经由被嵌入在电子邮件中的控制消息被传送到生产性套件应用程序以更新、删除或创建生产性套件应用程序中的项目,其中该项目与一LOB实体相关联。控制消息可向用户隐藏,并从电子邮件消息中提取以便评估、冲突解决、特性升级以及LOB实体和生产性套件应用程序项目之间的绑定。

Description

生产性套件到业务线的同步机制
发明背景
有多种生产性套件可供用户使用,包括用于对事件进行日程安排、储存联系人信息、支持电子邮件、储存任务信息等的应用程序。一个示例是可从华盛顿州雷蒙德市的微软公司获得的Microsoft Outlook
Figure A20068004273200061
。Microsoft Outlook
Figure A20068004273200062
是Microsoft Office生产性套件的一部分。许多用户都熟悉这一生产性套件应用程序并经常使用它们。
某些生产性套件的用户还使用为特定的商业用途开发的商业软件应用程序或系统(此处也称为业务线(Line ofBusiness),或LOB系统)。一个示例是可从多个公司获得的客户关系管理(CRM)系统。由LOB系统管理的许多信息可包括联系人管理、事件和任务的日程安排等等。
在许多情况下,生产性套件不能以自动的方式与LOB系统交换或同步信息。例如,如果用户在用户的生产性套件中添加一业务任务,则该任务信息将不会自动被迁移到LOB系统。相反,该信息由用户在每一不同的系统中发现。通常,用户必须在LOB系统中再次输入该任务信息。某些用户可能希望允许将LOB信息储存在电子邮件系统中并与后端系统中的LOB信息同步。
发明概述
根据所公开的实施例的各方面,一种同步方法被安排成允许包括生产性套件应用程序的客户机机器与包括业务线(LOB)应用程序的服务器机器之间的同步。该生产性套件应用程序可以是诸如Outlook
Figure A20068004273200064
(可从华盛顿州雷蒙德市的微软公司获得)等个人信息管理器(PIM)应用程序,或诸如Lotus Notes、StarOffice等某一其它应用程序。示例性生产性套件应用程序包括电子邮件管理、约会管理、调度/日程安排管理、便笺管理、任务管理、联系人管理等等。同步可以通过使用XML数据表示以及所储存的绑定信息在该生产性套件应用程序中的数据项与该LOB应用程序中的实体之间处理。
在一个具体实现中,用于同步的信息以XML数据表示来储存。该XML数据表示可作为关于该生产性套件应用程序中的数据项目的特性来储存。该XML数据表示可被传送到该LOB应用程序,后者然后可处理其自己的用于LOB实体的冲突解决和数据存储。对该LOB应用程序中的实体的改变然后可作为XML来提供,该XML随后可被格式化成被传送到该生产性套件应用程序的控制消息。该XML数据表示提供了简单地由每一相应应用程序管理的统一界面。
在另一方面,在每一用户的基础上执行信息加密。这一方面可有利地帮助确保包含在被发送到电子邮件收件人的任何PIM项目中的信息不能被该收件人阅读,并且因此不能被由于疏忽而共享。在一相关方面,加密帮助防止信息导致收件人一方的非预期行为。例如,在某些常规系统中,包含在约会中的信息可在发送关于该约会的邀请时被容易地共享。由此,用户可甚至在不知道的情况下共享信息。信息加密防止这一疏忽的信息共享的发生。然而,在用户具有多个设备的情况下,所描述的加密不会防止信息跨用户的多个设备而被共享。
在另一方面,信息被储存在个人特性中,从而减小了盖写的机会。在某些常规系统中,信息可在请求者不知道的情况下与约会请求中的被邀请者隐式地交换。当请求者和被邀请者通过其中的任一个显式或隐式地发送信息来共享信息时,存在信息将被储存在同一特性中的可能性。由于最后储存的信息将被保留,因此来自用户之一的信息可能会被盖写。在本发明的一方面,分配一特定的特性名来储存附加信息,使得冲突可被避免。
在另一方面,信息可被升级和降级,使得该信息的元素或属性(即,采用XML)可被复制到包含的PIM项目中的特性。例如,在一个实现中,可使用标准Microsoft Outlook
Figure A20068004273200071
UI来显示或操作这些值,和/或这些值可以与其他用户共享。在本发明的一方面,向LOB应用程序提供一XML数据表示,使得LOB项目只能由LOB应用程序来改变。在另一方面,LOB项目以随后用于与生产性套件应用程序项目同步的XML数据表示来格式化。由于XML可被用作用于传输信息的机制,因此可对生产性套件应用程序实现简化的用户界面。
在另一方面,在生产性套件和LOB应用程序之间手动地同步对话框。对话框可用诸如可扩展应用标记语言(XAML)等任何适当的语言来开发。对话框之间的同步可有利地允许显示完全相同的项目的多个对话框被同时打开。当用户在一个对话框中输入信息时,该信息可在显示它的所有其它地方自动改变。例如,在Microsoft Outlook
Figure A20068004273200081
实现中,当在Microsoft Outlook
Figure A20068004273200082
对话框(检查器(Inspector))和任务窗格或动作窗格中显示相同的信息时,需要同步这些信息。这一方面提供了允许Microsoft Outlook
Figure A20068004273200083
中的多个对话框共享同一数据实例(当在编辑的过程中)的机制。
在又一方面,客户机机器上的生产性套件应用程序被配置成经由web服务器调用发送请求来更新、删除或创建LOB应用程序中的新实体。LOB应用程序从客户机机器中提取该请求,其中该请求可用XML数据表示来提供。服务器机器经由嵌入在电子邮件中的控制消息来发送请求,以更新、删除或创建生产性套件应用程序中的项目,其中该项目与一LOB实体相关联。该控制消息向用户隐藏,并且由客户机机器提取以供评估、冲突解决、特性升级以及LOB实体和生产性套件应用程序项目之间的绑定。
在再一方面,LOB应用程序可在电子邮件通信中传送LOB标识符,其中该LOB标识符与生产性套件项目和LOB实体之间的先前的绑定相关联。该LOB标识符可被嵌入在电子邮件通信中与电子邮件消息相关联的首部中。该电子邮件通信不需要包含(嵌入或以其它方式)LOB实体本身,因为LOB标识符引用该LOB实体。一旦接收到该电子邮件消息,用于该生产性套件的电子邮件处理程序可标识同步阴影(shadow)或同步数据存储中由该LOB标识符所引用的特定的生产性套件项目。在一个示例中,用户可通过选择该电子邮件消息中与该LOB标识符相关联的链接(例如,任意数量的形式的URL链接,诸如HTTP、HTTPS、FTP、FTPS、OBA等)以及其它嵌入的信息(例如,XML数据表示或其它数据表示)来访问该生产性套件项目。在另一示例中,可激活一动作窗格或任务窗格来访问该特定的生产性套件项目。由于LOB标识符可被嵌入在链接中,因此与该生产性套件项目相关联的任何期望的动作可通过适当地配置该处理程序(例如,URL处理程序)来采取。
附图简述
参考以下附图描述了非限制和非穷尽的实施例,在全部附图中,相同的参考标号表示相同的部分,除非另外指明。
图1是表示根据一个实施例可用于实现此处所描述的技术的示例通用计算机环境的框图。
图2示出了其中客户机设备被安排成与LOB系统同步的示例系统。
图3示出了当由LOB系统创建一新绑定项目时如何设置绑定项目和LOB实体之间的相关。
图4示出了当在生产性套件中创建一新绑定项目时如何改变绑定项目和LOB实体之间的相关。
图5示出了当在生产性套件中更新或删除一绑定项目时如何设置绑定项目和LOB实体之间的相关。
图6示出了当由LOB系统更新或删除一绑定项目时如何改变绑定项目和LOB实体之间的相关。
图7示出了在推操作期间在客户机和服务器之间的示例通信流程。
图8和9示出了可在另一示例系统中使用的拉操作。
图10示出了用于在客户机机器上使用的生产性套件的同步子系统的示例设计。
图11示出了客户机和服务器之间的另一示例通信流程。
图12示出了一示例同步子系统。
图13是用于一示例同步方法的流程图。
详细描述
以下参考附图更完整地描述了各实施例,附图形成各实施例的一部分,并示出了用于实施各实施例的具体示例实施例。然而,其它实施例可以用许多不同形式来实现,并且不应被解释为限于此处所述的实施例;相反,提供这些实施例以使本公开内容全面且完整。各实施例可被实施为方法、系统或设备。因此,各实施例可以采用硬件实现、完全软件实现或组合了软件和硬件方面的实现的形式。因此,以下详细描述不在限制的意义上考虑。
简言之,一种同步方法被安排成允许包括生产性套件应用程序的客户机机器与包括诸如客户关系管理,即CRM应用程序等业务线(LOB)应用程序的服务器机器之间的同步。该客户机机器经由web服务器调用发送请求以更新、删除或创建LOB应用程序中的新实体。该LOB应用程序提取从客户机机器接收到的请求,其中该请求可用XML数据表示来提供。该服务器机器经由嵌入在电子邮件中的控制消息来发送请求以更新、删除或创建生产性套件应用程序中的项目,其中该项目与一LOB实体相关联。该控制消息向用户隐藏,并且由客户机机器提取以便评估、冲突解决、特性升级以及LOB实体和生产性套件应用程序项目之间的绑定。
各实施例的逻辑操作被实现为(1)在计算机系统上运行的计算机实现的步骤的序列,和/或(2)计算系统内的互连机器模块。实现是取决于实现该实施例的计算系统的性能要求的选择问题。因此,构成此处所描述的实施例的逻辑操作被替换地称为操作、步骤或模块。
各种模块、技术和方法此处可以在诸如程序模块等由一个或多个计算机或其它设备执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括用于执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可在各实施例中按需组合或分布。
这些模块和技术的一个实现可被储存在某一形式的计算机可读介质上或可通过其传送。计算机可读介质可以是可由计算机访问的任何可用的介质。作为示例而非局限,计算机可读介质可包括“计算机存储介质”和“通信介质”。
“计算机存储介质”包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机访问的任一其它介质。
“通信介质”通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,通信介质也包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
贯穿本说明书对“一个实施例”、“一实施例”或“一示例实施例”的表述意味着所描述的具体特征、结构或特性被包括在至少一个实施例中。由此,对这些短语的使用可以表示多于仅仅一个实施例。此外,所描述的特征、结构或特性在一个或多个实施例中可以用任何适当的方式来组合。
然而,本领域的技术人员可以认识到,各实施例可以在没有这些具体细节中的一个或多个的情况下,或者用其它方法、资源、材料等来实施。在其它情况下,未详细示出或描述公知的结构、资源或操作仅仅是为了避免使各实施例的各方面变得晦涩。
示例计算环境
图1示出了通用计算环境100,它可用于实现此处所描述的技术。计算机环境100仅为计算环境的一个示例,并非对计算机和网络体系结构的使用范围或功能提出任何局限。也不应将计算机环境100解释为对示例计算机环境100中示出的任一组件或其组合具有任何依赖或需求。
计算机环境100包括计算机102形式的通用计算设备。计算机102的组件可包括但不限于,一个或多个处理器或处理单元104、系统存储器106以及将包括处理器104的各类系统组件耦合至系统存储器106的系统总线108。
系统总线108表示若干种总线结构类型的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各类总线体系结构的处理器或局部总线。作为示例,这类体系结构可包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、外围部件互连(PCI)总线(也称为小背板(Mezzanine)总线)、PCI Express总线、通用串行总线(USB)、安全数字(SD)总线或IEEE 1394(即火线)总线。
计算机102可包括各种计算机可读介质。这类计算机可读介质可以是可由计算机102访问的任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器106包括诸如随机存取存储器(RAM)110等易失性存储器,和/或诸如只读存储器(ROM)112或闪存RAM等非易失性存储器形式的计算机可读介质。基本输入/输出系统(BIOS)114包括如在启动时帮助在计算机102内的元件之间传输信息的基本例程,它被储存在ROM 112或闪存RAM中。RAM 110通常包含处理单元104立即可访问和/或当前正在操作的数据和/或程序模块。
计算机102也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图1示出了对不可移动、非易失性磁介质(未示出)进行读写的硬盘驱动器116,对可移动、非易失性磁盘120(如,“软盘”)进行读写的磁盘驱动器118,以及对可移动、非易失性光盘124,如CD-ROM、DVD-ROM或其它光介质进行读写的光盘驱动器122。硬盘驱动器116、磁盘驱动器118和光盘驱动器122的每一个通过一个或多个数据介质接口125连接到系统总线108。或者,硬盘驱动器116、磁盘驱动器118和光盘驱动器122可通过一个或多个接口(未示出)连接到系统总线108。
盘驱动器及其相关联的计算机可读介质为计算机102提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。尽管该示例示出了硬盘116、可移动磁盘120和可移动光盘124,然而可以理解,可储存可由计算机访问的数据的其它类型的计算机可读介质,如磁带盒或其它磁存储设备、闪存卡、CD-ROM、数字多功能盘(DVD)或其它光存储、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等,也可用于实现示例性计算系统和环境。
多个程序模块可储存在硬盘116、磁盘120、光盘124、ROM 112和/或RAM 110中,作为示例,包括操作系统126、一个或多个应用程序128、其它程序模块130以及程序数据132。这些操作系统126、一个或多个应用程序128、其它程序模块130和程序数据132(或其某一组合)中的每一个可实现支持分布式文件系统的所有或部分常驻组件。
用户可以通过诸如键盘134和定点设备136(如,“鼠标”)等输入设备向计算机102输入命令和信息。其它输入设备138(未具体示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪和/或其类似物。这些和其它输入设备通常通过耦合至系统总线108的输入/输出接口140连接到处理单元104,但也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。
监视器142或其它类型的显示设备也通过接口,如视频适配器144连接到系统总线108。除监视器142之外,其它输出外围设备可包括诸如扬声器(未示出)和打印机146等组件,它们可通过I/O接口140连接到计算机102。
计算机102可以使用到一个或多个远程计算机,如远程计算设备148的逻辑连接在网络化环境中操作。作为示例,远程计算设备148可以是PC、便携式计算机、服务器、路由器、网络计算机、对等设备或其它常见的网络节点等等。远程计算设备148被示为可包括此处相对于计算机102所描述的许多或所有元件和特征的便携式计算机。或者,计算机102也可在非联网的环境中操作。
计算机102和远程计算机148之间的逻辑连接被描述为局域网(LAN)150和通用广域网(WAN)152。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中实现时,计算机102通过网络接口或适配器154连接至局域网150。当在WAN网络环境中使用时,计算机102通常包括调制解调器156或用于通过广域网152建立通信的其它装置。调制解调器156可以对计算机102是内置或外置的,它通过I/O接口140或其它适当的机制连接至系统总线108。可以理解,示出的网络连接是示例性的,也可以使用在计算机102和148建立至少一个通信链路的其它手段。
在诸如用计算环境100示出的网络化环境中,相对于计算机102描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例,远程应用程序158驻留在远程计算机148的存储器设备中。出于说明的目的,应用程序和诸如操作系统等其它可执行程序组件在此处被示出为离散的框,尽管可以认识到,这些程序和组件在不同的时刻驻留在计算设备102的不同存储组件中,并由计算机的至少一个数据处理器执行。
以下是在MIcrosoft Outlook
Figure A20068004273200131
中实现的支持Microsoft Outlook
Figure A20068004273200132
信息与LOB系统的同步的示例接口和配置的描述。在其它实施例中,代替MicrosoftOutlook
Figure A20068004273200133
或作为其补充,可使用不同的生产性套件应用程序。
示例配置
图2示出了其中客户机设备被安排成与LOB系统同步的示例系统。如图所示,诸如Microsoft Outlook
Figure A20068004273200141
等生产性套件(220)在客户机设备上可用。Microsoft Outlook
Figure A20068004273200142
维护一个或多个项目,诸如:日历、约会、联系人、电子邮件等。每一生产性套件项目(230)包括与该生产性套件相关的一组标准特性(231),以及与LOB系统相关的一个或多个数据项(LOB数据232)。附加的系统特性也与该项目相关联,诸如是将数据和特性绑定到项目所必需的(例如,系统特性233中的绑定信息)。在项目外部(240),有一组与同步相关的系统特性(242),以及用于高速缓存同步数据的数据存储(241)。
单个用户必须能够在多台机器上安装客户端软件。然而,仅主机器能够与LOB系统同步。其它机器被认为是次要机器。LOB系统与主机器同步地返回一业务响应。该LOB系统与一格式化器接口以向主机器提供面向LOB系统的“命令”,诸如创建、更新或删除命令。在任何时刻,可以仅有一台主机器。包括其自己的生产性套件副本(270)的次要机器(例如,客户机260)仍包含主机器上可用的信息的副本,包括绑定项目(例如,生产性项目280,包括特性281-283)的业务和同步状态。所描述的系统可被安排成在服务器上维护一同步高速缓存,以将来自服务器的业务状态响应分发到次要客户机。
生产性套件项目(例如,项目230)应持有供系统识别和呈现绑定项目的足够信息。LOB数据(包括升级的特性)应与生产性套件项目一起储存且与其相关联。储存在生产性套件项目中的系统信息应是静态的。换言之,它不应在其一旦被设置时改变,以避免引入“人为”同步冲突。系统应储存与生产性套件项目外部的同步有关的同步数据和系统特性。可使用隐藏在特性中的令牌来指定哪一机器是主机器。在某些情况下,可传递令牌,使得主机器可在诸如灾难恢复等情况下改变。
图3示出了当由LOB系统创建一新的绑定项目时如何设置绑定项目(330)和LOB实体(370)之间的相关。首先,如由步骤1(391)所指示地在LOB系统(360)中创建LOB实体(370),其中LOB实体(370)包括一标识符(LOBID 372)。LOB系统(360)向服务器(340)传送一创建由LOBID 372标识为绑定项目的LOB实体的请求(392),如步骤2所指示的。服务器(340)接收该请求(392),并向该请求(392)应用一格式化器(250),使得一命令(394)被传送给主客户机(310)以创建绑定。用于客户机(310)上的生产性套件(例如,Outlook)的同步子系统(320)在下一次同步期间接收该命令(392),并如由步骤5所指示地创建与一Outlook项目(350)的绑定。该绑定项目具有分配给它的唯一标识符(BIID 332),并且通过LOBID 334与该LOB实体相关联。
图4示出了当在生产性套件中创建一新的绑定项目时如何设置绑定项目和LOB实体之间的相关。首先,如由步骤1(491)所指示地在生产性套件中创建项目(430)。接着,生产性套件(例如,Outlook)中的同步子系统(420)将一创建绑定命令传送(492)个LOB系统(460),如由步骤2所指示的。LOB系统(460)在与客户机的下一次同步期间接收该创建绑定命令,并创建由LOBID 472标识的LOB实体(470),如由步骤3(493)所示的。LOB系统(460)可任选地在步骤4(494)处将LOBID(472)传回客户机(410),其中客户机(410)然后可将该LOBID(434)与该绑定项目(430)相关联,如步骤5(495)所示。在某些情况下,LOBID(472)不被传回生产性套件。
图5示出了当在生产性套件中更新或删除一绑定项目时如何改变绑定项目和LOB实体之间的相关。首先,如由步骤1(591)所指示地在生产性套件中改变项目(530)。接着,生产性套件(例如,Outlook)中的同步子系统(520)如由步骤2(592)所指示地将更新或删除传送(例如,通过web服务调用)给LOB系统(560)。LOB系统(560)在与客户机(510)的下一次同步期间接收该更新/删除绑定命令,并修改或删除由LOBID 572标识的LOB实体(570),如步骤3(593)所示。在其中生产性套件不知道LOBID(534)的某些情况下,LOB系统(560)参考绑定标识符BIID 532来确定要修改或删除哪一LOB实体(570)。
图6示出了当由LOB系统更新或删除一绑定项目时绑定项目与LOB实体之间的相关如何改变。首先,如由步骤1(691)所指示地在LOB系统(660)中修改或删除LOB实体(670)。LOB系统(660)向服务器(640)传送请求(692)以更新或删除由送至服务器的请求(692)中的LOBID(672)和BIID中的至少一个所标识的LOB实体。服务器(640)接收该请求(692),并向该请求(692)应用格式化器(650),使得如由步骤4所指示地传送了改变或删除绑定项目的命令或控制消息(694)。主客户机(610)上用于生产性套件(例如,Outlook)的同步子系统(620)在下一次同步期间接收该命令,并如由步骤5(695)所指示地修改或删除对适当绑定项目(630)的绑定(例如,BIID 532和LOBID 634)。
上述同步子系统被部署到可以是公司网络内部或外部的客户机机器。预想了到公司网络的虚拟专用网,即VPN连接,经由诸如Microsoft Exchange Server等服务器应用程序的HTTP型远程同步连接也是可以的。LOB同步可以作为客户机设备上的后台线程运行,只要生产性套件正在运行。在生产性套件中所作出的改变经由任何适当的RPC机制(例如,公司网络、VPN、HTTP等)被提交给LOB系统,而对LOB系统的改变期望仅在公司网络上作出。文件同步可以在公司网络内诸如经由Microsoft Active Directory(现用目录)以任何适当的方式来处理,其中Microsoft Active Directory被安排成展示用于此目的的.NETAPI。
示例同步接口定义
对于每一绑定项目类型,同步系统将取决于所发生的改变(创建/更新/删除)来执行不同的动作。除此之外,可作为处理查询控制消息的结果来调用“Query(查询)”动作。以下指定了需要被传入这些动作中的每一个以及从中返回的信息。
Create(创建)是由系统在处理客户机侧绑定项目创建时调用的。对于Create的参数包括BoundItemID(绑定项目ID)、NewItemData(新项目数据)以及CultureName(文化名称)。对于Create的返回值包括LOBID、BusinessStatus(业务状态)以及Description(描述)。BoundItemID是用于绑定项目的客户机生成的唯一标识符串。NewItemData是由用于LOB系统的模式定义的XML文档,使得用于绑定项目的LOB数据被正确提供。CultureName是应当用于从Create调用中得出的业务状态、描述和任何其它消息的文化的名称。LOBID是LOB生成的作为用于项目类型的唯一标识符的串(例如,ContactID(联系人ID)唯一地标识了联系人)。BusinessStatus是对应于作为Create的结果必须被分配给绑定项目的新业务状态的简短名称的串。它是LOB系统提供的任意值,同步不对该值的内容作出任何假设。理念是该值能用于过滤处于相同状态的项目。Description是一可任选串,它是关于BusinessStatus的解释。它将是绑定项目信息的一部分,使得它在需要时可以是UI上所展示的描述。
Update由系统在处理客户机侧绑定项目更新时调用。对于Update的参数包括BoundItemID、RequestID(请求ID)、LOBID、PreviousItemData(先前的项目数据)、NewItemData以及CultureName。对于Update的返回值包括BusinessStatus和Description。RequestID是用于更新消息的唯一标识符,以允许LOB系统标识重复。如果发送了重复的更新消息,则必须发送相同的RequestID。PreviousItemData是对应于来自最后一次同步状态的绑定项目的所有BoundData的XML文档。
Delete(删除)是由系统在处理客户机侧绑定项目删除时调用的。对于Delete的参数包括BoundItemID、LOBID、PreviousItemData和CultureName。对于Delete的返回值包括BusinessStatus和Description。
QueryResult(查询结果)是由系统在处理查询控制消息时调用的。对于QueryResult的参数是包含对于所有现有的指定类型的绑定项目的BoundItemID及其相应的LOBID的列表的XML文档。对QueryResult没有返回值。
示例控制消息定义
本节指定了每一控制消息类型中所期望的信息。控制消息包括:创建控制消息、更新控制消息、删除控制消息和查询控制消息。
创建控制消息包括用于以下各项的字段:BoundItemID、LOBID、BoundItemType(绑定项目类型)和LOBData(LOB数据)。更新控制消息包括用于以下各项的字段:LOBID、BoundItemType和LOBData。删除控制消息包括用于以下各项的字段:LOBID和BoundItemType。查询控制消息包括用于BoundItemType的字段。
BoundItemID是要分配给新的绑定项目的唯一标识符。BoundItemID是如将在以下更详细描述的由格式化器生成的。BoundItemType是对应于绑定项目类型的完全限定名的串,包括解决方案和版本。BoundItemType可由系统用于定位相应的绑定项目定义,它描述了要被绑定到生产性套件的特性以及生产性套件项目如何与LOB实体同步。如上所述,LOBID是由LOB系统分配给绑定项目的唯一标识符,而LOBData是包含用于绑定项目的所有绑定数据的XML文档。
示例同步系统
该系统可被安排成使得它不依赖于来自生产性套件(例如,MicrosoftOutlook)的事件来调用和检测同步。为了检测改变(创建/更新/删除),该系统使用一种在生产性套件、同步数据存储(SDS)和直接从LOB系统获得的信息之间的三向同步方法。数据可以从系统中的多个入口点改变。信息可在包括从web访问、移动设备以及从其它客户机机器的许多不同地点改变。改变最终将被同步到主客户机机器(例如,经由Outlook/Exchange同步)。
LOB系统可基于唯一RequestId来检测并处理重复请求。与LOB系统的出站(客户机到服务器)通信可通过web服务来作出,而入站(服务器到客户机)消息将经由服务器应用程序(例如,Microsoft Exchange)流入客户机。
冲突检测也由系统在LOB系统和生产性套件改变同一绑定项目时处理。如果系统检测到用户和LOB系统更新了同一绑定项目,则将标识一冲突并且冲突分解将适当地处理该冲突。
LOB系统支持在接收到同步web服务调用时提供立即的业务响应。LOB系统无需接收关于Create、Update、Delete或Query命令的成功处理的确认或出错通知。
本节描述了LOB系统和客户机之间的高级通信流程。以下各图提供了所支持的可能的通信流程的概观。
图7示出了在退(push)操作期间在客户机和服务器之间的示例通信流程。推操作如将描述的可由客户机(710)或服务器(750)发起。
步骤1示出客户机(710)发起流程,其中改变检测过程由客户机上的系统执行。在步骤1处,系统中的同步逻辑(730)标识新的、经更新的和被删除的绑定项目,并创建(791)需要被提交给LOB系统的虚拟改变请求列表。该虚拟列表可在诸如虚拟出站队列(VQQ 712)等队列中提供。该列表在步骤2处当存在到LOB系统(例如,服务器750)的连接(例如,web服务调用792)时被处理。如果在步骤2处没有标识出与LOB系统的连接,则在下一次运行改变检测过程时重试该列表。
当创建虚拟请求列表时,该系统还考虑到新的传入控制消息(来自LOB的创建、更新、删除通知,来自控制消息列表714)以检测并适当地解决或引发冲突。冲突由同步逻辑(730)在生产性套件和LOB系统中修改了同一项目或在一方试图更新一项目而另一方正试图删除该项目时检测到。对于不导致冲突的每一检测到的改变(创建、更新、删除),系统通过调用诸如在同步接口定义中描述的web服务(792)来向LOB系统(例如,服务器750)提交请求。
LOB系统(例如,具有LOB应用程序760的服务器750)还可在LOB系统上发生相关动作时触发客户机(710)上创建、更新、删除或查询动作的执行。在步骤3处,LOB系统调用由格式化器(770)展示的web服务(793)。在创建请求的情况下,格式化器(770)返回将由系统用于标识新的绑定项目的唯一ID。关于作为web服务调用的一部分发送的信息的细节,参见此处所讨论的同步接口定义一节。
在步骤4处,格式化器(770)生成控制消息(794),并将其发送给与生产性套件相关联的指定邮箱(例如,Outlook邮箱)。控制消息(794)从一专用帐户发送。当控制消息被传送到目标邮箱(例如,由Microsoft ExchangeServer,或某一其它电子邮件和目录服务器780)时,它按照防止对控制消息的意外删除的服务器侧规则被自动移至一隐藏文件夹。该服务器侧规则由客户机维护(创建和重新创建)(例如,参见Outlook插件规范以获得更多细节)。
在步骤5处,经由为生产性套件应用程序(720)格式化的电子邮件类型的机制将控制消息(795)传送到客户机(710)。客户机(710)在步骤6(796)处通过执行按需创建、更新和删除绑定项目的同步过程来处理该控制消息(795)。当处理控制消息时,该系统还考虑到需要被传递给LOB系统来适当地检测并标记冲突的本地改变(绑定项目的创建、更新、删除)。
图8和9示出了可在另一示例系统中使用的拉(pull)操作,其中拉可以由同步web服务或LOB系统所模拟的轻推(nudge)来发起。
同步逻辑
绑定项目可被改变是因为用户直接或通过同步(例如,web访问接口)间接地改变它们。需要比较项目并确定客户机和LOB系统之间的差别来决定是否应将一侧上的改变传播到另一侧的过程。
改变可以用四种方式之一来发生。第一,用户可在生产性套件中改变绑定项目。系统检测并自动向LOB系统提交改变请求。第二,改变可通过另一客户机来作出,并且这通过同步同时影响生产性套件客户机和LOB系统两者。对生产性套件和LOB系统的改变可以按任何顺序以任何延迟发生。第三,改变可通过智能电话(Smartphone)、web访问或任何其它手段作出,并且经由服务器同步到生产性套件。这些改变需要通过一同步过程来找到。第四,改变可以在LOB系统本身中作出。每一类改变必须都被同步过程考虑在内。
本地同步数据存储(SDS)储存原始版本。SDS与生产性套件和LOB系统同步并随后用于跟踪两者之间的增量。增量然后被添加到包含对LOB系统的所有服务请求的虚拟请求队列。更新过程确定何时需要将改变传播到LOB系统。同步逻辑形成请求,并在有连接时将其提交给LOB系统。当更新生产性套件时,同步逻辑使用LOB系统的信息来更新Outlook,然后更新SDS。
大多数绑定数据在两个地方存在:作为生产性套件中的项目以及在LOB系统中。假定每一副本包含在另一副本上不存在的额外数据。同步系统负责同步:一共享的特性子集被储存在绑定项目的BoundData特性中,且作为同步的结果,可创建或毁去绑定项目的存在,例如项目。同步系统假定单个真实性定义:LOB系统总是正确的。同时,同步系统对LOB实体没有任何直接访问,并且因此在SDS中保存有关它假设储存在LOB系统中的单独副本。
同步过程可被划分成若干个不同的阶段。在清扫(sweep)阶段,将邮箱中的所有绑定项目与SDS进行比较。邮箱和SDS之间的引用完整性的任何失配被检测到并被立即修补。检测经修改的项目并标记它以供进一步处理。然后检测被删除的项目并将其传递给同步器,使得适当的删除请求可被发送给LOB系统。在某些实现中,上述同步过程的各阶段可被合并成单个集成过程,其中各种功能(例如,绑定、清扫、解决等)可被组合成一简化算法。该简化算法可实现改进的执行速度或实现某些其它改进的效率(例如,减少存储器/盘使用、消除冗余等)。
所标识的任何控制消息在第二阶段中处理。接着,对被标记为已修改的所有项目进行特性升级。将所得的经更新的XML数据表示与SDS副本进行比较并通知同步器。同步器在后台线程中运行,并且在此实施例中使用SDS副本。同步器负责提交Create、Update和Delete请求以及处理查询。
SDS副本包含上述相同的特性。在正常情况下,对于生产性套件项目和在SDS副本中EntryID(入口ID)、BoundItemID、BoundItemType和LOBID是相同的。生产性套件项目和SDS副本之间的任何差别被解释为更新LOB实体的请求。如果不是,则引用完整性被打破,并且必须进一步调查生产性套件项目。任何差别的主要原因是:项目是由用户创建的,对该项目还没有SDS副本,但是BoundData特性是可读的,并且该项目被用户复制、移动或删除,EntryID和BoundItemID之间的映射被打破;可能有全部都与单个SDS副本相关的零个、一个或多个项目,并且BoundData特性是可读的,用户已接收到了经更新的会议请求或任务请求;它具有被破坏的相应约会或任务(绑定项目)。项目的EntryID已被保留,但是BoundData特性不再是可读的。从另一用户接收到了外绑定项目的副本。BoundData特性不可读,并且对该项目在SDS中没有相应的副本。一副本或一绑定项目已被发送给另一用户并接着被发回,这是先前的可能性的变型,并且它不能被识别为特殊情况。可能已发生了数据破坏。
存在这样一个内置假设:BoundItemID是唯一的(主键),并且BoundItemType+LOBID的组合也是唯一的(次键)。这些限制必须在SDS数据库中强制实施。当然,邮箱中EntryID也是唯一的。其中BoundData特性不可读或其中储存在内部重复特性不匹配Outlook项目上的相同特性(BoundItemID、BoundItemType和LOBID)的任何项目被认为是破坏。作为一通用规则,这一破坏项目被自动解除绑定。任何重复项目(当一个以上Outlook项目具有相同的BoundItemID时)被检测到,并且或者被转换成一新的绑定项目,或者被解除绑定;原始项目与SDS副本匹配(在移动的情况下,取一个副本)。
通信流程
图10示出了客户机上的生产性套件和LOB系统之间的另一示例通信流程。LOB系统(1070)可经由控制消息(创建、更新和删除)发起对绑定项目的更新。格式化器(1080)服务如LOB系统(1070)所请求的那样创建控制消息。该控制消息经由邮箱(1010)中的电子邮件消息被传送给生产性套件。服务器侧规则将该控制消息移入一指定的(隐藏)文件夹(例如,控制消息文件夹1020),从该文件夹中,这些控制消息由控制消息处理器(1030)选取。创建、更新和删除请求被立即处理;而查询请求被排队到SDS(1050)中,并且由同步器(1060)处理。绑定器/清扫器/解决器(1040)服务(或取决于实现,多个服务)被安排成:将邮箱(1010)中的所有绑定项目与SDS(1050)进行比较,并标识绑定项目中的失配/改变。
尽管不是非常常见的,但是仍有重要的情形涉及LOB系统对一给定用户重新创建所有绑定项目。这可用于用初始绑定项目以及当某些项目已丢失或变为破坏时的灾难发现的一部分来填充邮箱。这一情形的一种变型可用于将现有的绑定项目升级到一新的绑定定义(模式)。它还可请求关于绑定项目的当前状态的信息(查询)。另一常见的使用是向用户的邮箱(1010)发送定期邮件消息;在这一情况下不涉及同步系统。
发送者的身份用于将有效的控制消息与非授权(或欺骗的)控制消息相区分。控制消息中的信息可被加密以保护其私密性。
主机器负责处理控制消息、升级特性、解决冲突以及向LOB提交更新。它保持SDS和邮箱同步。次要机器可用于经由UI来更新绑定项目。它还使用同步构建其自己的SDS数据库,但是具有某一重要的差别。次要机器不处理控制消息,并且在同步期间不完成特性升级,次要机器也不向LOB系统提交改变。当构建SDS时,次要机器假设邮箱中的数据是正确的。由于引用完整性问题而导致的任何更新SDS的失败被无声地忽略,因为假设主机器最终将解决冲突并且解决将被传播到次要机器。这一规则的重要结果是次要机器上的SDS不包含任何未决改变的完整状态,因此它不能被升级到主机器。
服务器可被安排成出于将来自服务器的业务状态响应分发到各个次要客户机机器的目的而维护一同步高速缓存(例如,类似于SDS,但是不包括绑定数据信息)。服务器可周期性地将改变推到次要客户机,使得次要客户机具有相关SDS数据的最新副本。
同步子系统
同步子系统在图11中示出,并且包括以下主要组件:控制器(1102)、绑定项目管理器(1106)、绑定项目包装器(1112)、清扫器、解决器(1109)、控制消息处理器(1110)、数据提供者(1107)、以及同步器(1105)。
控制器(1102)是用于控制同步过程的公共组件。
绑定项目管理器(1106)是用于创建和/或直接访问绑定项目的公共组件。绑定项目包装器是将生产性套件项目封装为绑定项目,或解除项目的绑定的公共包装器。在某些实现中,绑定项目管理器(1106)的功能可作为控制器(1102)的一部分或另一组件的一部分被包括。
清扫器(1112)是用于找出需要调查(由于自从发生最后一次同步以来已经改变)的绑定项目的内部组件。在某些实现中,清扫器(1112)的功能可作为控制器(1102)的一部分或另一组件的一部分被包括。
解决器(1109)是用于调查绑定项目,并且或者本地解决改变(经由特性升级)和/或标记改变以进行完整同步的内部组件。在某些实现中,解决器(1109)的功能可作为控制器(1102)的一部分或另一组件的一部分被包括。
控制消息处理器(1110)是用于处理来自被监视的指定文件夹(1111)的针对格式化器发送的消息的控制消息的内部组件。处理控制消息以在创建/更新/删除动词的情况下更新生产性套件项目,或提交查询命令供同步器组件处理。在某些实现中,控制消息处理器(1110)的功能可作为控制器(1102)的一部分或另一组件的一部分被包括。
数据提供者(1107)是提供对SDS数据表(1108)的访问的内部组件。在某些实现中,数据提供者(1107)的功能可作为控制器(1102)的一部分或另一组件的一部分被包括。
同步器(1105)是负责以下事项的内部组件:当在客户机上创建、更新或删除绑定项目时通知LOB系统,在成功通知之后更新同步数据存储(SDS1108),处理查询控制消息,以及报告同步过程的状态。在某些实现中,同步器(1105)的功能可作为控制器(1102)的一部分或另一组件的一部分被包括。
改变同步由图12示出如下。对绑定项目的改变可以在主机器(启用OBA的机器)上或诸如从web服务(例如,Outlook web访问,即OWA)或某一其它非启用OBA的客户机和移动设备等通过另一外部接口来作出。取决于改变是在哪里作出的,系统将使用略微不同的代码路径来同步这些改变。
管理绑定项目:启用的客户机
用户可在允许诸如通过内插附件或插件组件等来进行同步的客户机中创建、更新和删除绑定项目。系统检测改变,并自动将改变请求提交给LOB系统。该请求被处理,并且LOB系统发回一应用层成功或失败响应。该响应由客户机接收,并且更新绑定项目的应用程序业务状态。在新绑定项目(例如,在Outlook
Figure A20068004273200241
中创建)的情况下,来自LOB系统的响应由系统用于将该绑定项目与一LOB实体相关。
管理绑定项目:web访问
用户通过web访问访问其邮箱。绑定项目作为标准项目展示给用户。用户可正常改变标准信息,但是不能改变扩展信息。用户可更新或删除现有绑定项目,但是不能创建新的绑定项目,除了复制现有的绑定项目(间接创建)的情况之外。当用户返回到其主机器时,通过web访问作出的改变由服务器应用程序(例如,通过Microsoft Exchange)同步。系统检测该改变,并自动将适当的改变请求提交给LOB系统。
管理绑定项目:非启用的客户机
用户可使用未被启用的生产性套件客户机来访问其邮箱。绑定项目作为标准项目出现。用户可正常改变标准信息,但是不能改变扩展信息。用户可更新或删除现有绑定项目,但是不能创建新项目。用户然后与服务器应用程序(例如,Microsoft Exchange)同步。当用户返回到其主客户机机器时,在非启用的客户机中作出的改变从服务器应用程序同步。系统检测该改变,并自动将适当的改变请求提交给LOB系统。
管理绑定项目:移动设备
用户通过移动设备访问其邮箱。没有为移动设备提供特殊的支持,它们仅仅与web访问一样处理。绑定项目作为标准项目被展示给用户。用户可正常改变标准信息,但是不能改变扩展信息。用户可更新或删除现有绑定项目,但是不能创建新的绑定项目。当用户返回到其主客户机机器时,在移动设备中作出的改变由服务器应用程序(例如,Microsoft Exchange)同步。系统检测该改变,并自动将适当的改变请求提交给LOB系统。
管理绑定项目:多个启用的客户机
用户具有一个“主”客户机机器,和任意数量的“次要”客户机机器,其中每一机器具有一已安装的允许生产性套件应用程序和LOB系统之间的同步的客户端应用程序。用户可创建、更新或删除任何机器中的绑定项目。在一个机器上作出的改变将经由服务器应用程序(例如,Microsoft Exchange)同步到其它机器,但是在一个实施例中,仅主机器能够与LOB系统同步。“主”机器在安装时指定;其它机器将被认为是“次要”机器。对用户能够具有的次要机器的数量没有具体限制。当到LOB系统的连接在主机器上可用时,系统将自动提交所需的改变请求给LOB系统。
所描述的系统可被安排成使得出于将来自服务器的业务状态响应分发到各个次要客户机机器的目的而在服务器上维护一同步高速缓存。对于此示例,服务器的同步高速缓存在每一客户机清扫之前或之后更新。服务器的同步高速缓存可包括来自SDS的所有数据,除了绑定数据之外。根据清扫内部时间表,服务器的同步高速缓存可从服务器下载到每一次要客户机自己的SDS。
管理绑定项目:改变的传播
当对相关业务实体的改变是在LOB系统中作出的时候,将经由格式化器通知服务器应用程序。改变通知被传送到可能需要将该改变应用于绑定项目的启用的客户机。由于改变通知被推出,因此客户机无需查验更新,并且可直接响应而不等待调度的同步时间。
同步方法
图13是用于示例同步方法的流程图。系统清扫器过程可周期性地定位并“标记”需要被同步的绑定项目,其中这些项目被置于一逻辑列表中以供同步(同步列表)。对于同步列表中的每一项目,生成创建、更新或删除请求(CUD请求)并将其储存在出站队列(例如,来自图7的VQQ 712)中。然后发起一web服务调用,使得可建立到LOB系统的连接。该web服务调用可以成功、失败或生成一连接异常。
当响应于该web服务调用从LOB获得响应时,建立了成功的连接。对于到web服务的成功连接,系统用来自响应的信息更新SDS中的绑定项目副本。对同步列表中的每一项目类似地处理其它CUD请求。
当响应于web服务调用从LOB系统提供除连接异常以外的其它异常时,得到失败的连接。对于到web服务的失败的连接,CUD请求被保持在出站队列中,并被标记以进行重试。当标识了第一个失败的连接时可初始化对CUD请求的重试计数。重试将继续,直到或者建立了成功的连接,或者在一预定时间间隔上允许的最大尝试次数达到一极限。当达到所允许的最大尝试次数而没有成功时,该CUD请求被移至一失败请求队列。不处理其它CUD请求,除非实现成功连接。
连接异常可在客户机具有有效的认证cookie并且对目标服务器的查验失败时发生。当从web服务调用得到连接异常时,系统跳至同步列表上的下一项目。
用于同步的一个示例过程流由图13示出,如以下将描述的。处理在框1301除开始,并且流至判定框1305。
在判定框1305处,生产性套件同步系统评估同步列表以标识需要在生产性套件应用程序和LOB应用程序之间同步的任何绑定项目。当同步列表上没有绑定项目时,该处理流至框1310,在那里系统在再次评估同步列表之前等待一预定时间(例如,X分钟)。当在同步列表中找到绑定项目时,系统在框1315处确定是否达到了最大失败请求数。当达到了最大请求数时,处理再次流至框1310。或者,处理在框1320处继续,在那里创建一CUD请求。
继续到框1325,将该CUD请求置于诸如来自图7的VQQ 712等出站请求队列中。在框1330处,生产性套件应用程序同步系统通过诸如web服务调用等服务调用将出站请求队列中的每一请求提交给LOB系统。继续到判定框1335,评估该CUD调用请求以确定该请求是否被成功提交给LOB系统。当CUD调用请求成功时,处理从判定框1335继续到框1340(在那里更新同步数据存储,即SDS)。当CUD调用请求失败时,处理从判定框1335流至框1345。在某些情况下,生成连接异常,并且处理从判定框1335流至判定框1305。
在框1345处,用于生产性套件应用程序的同步系统对CUD调用请求尝试重试。在判定框1350处,系统确定是否从动调用请求接收到响应。当该响应成功时,处理从判定框1350流至框1340,在那里更新SDS。当响应失败时,处理从判定框1350流至判定框1360。如果没有接收到响应,则处理从判定框1350流至框1355,在那里系统在框1345处尝试另一重试之前等待一超时到期。
在判定框1360处,系统确定是否达到了对CUD调用请求的最大重试数。当达到最大重试数时,处理继续到框1365,在那里CUD请求被移至一失败队列。当未超过最大重试数时,系统在框1370处递增内部重试计数器,并且前进到框1355以等待另一重试。
引用同步的项目
如上所述,绑定是在LOB实体和PS(生产性套件)项目之间创建的。尽管同步系统没有对LOB实体的任何直接访问,但是SDS保持它假设被储存在LOB系统中的单独副本。当创建LOB实体和PS项目之间的绑定时,可将同步的PS项目的副本置于SDS中,使得PS项目可以用与该LOB实体相关联的LOBID来索引。换言之,与LOB实体相关联的PS项目可以参考CorrelationIs从SDS中检索。由于PS项目可参考LOBID来检索,因此可实现可以利用PS项目的多个感兴趣的应用程序、插件或其它软件方法(例如,后端工作流系统)。
在一个示例中,LOB应用程序可将LOB标识符(例如,LOBID)经由电子邮件通信传送到生产性套件应用程序。电子邮件通信包括引用LOB项目的嵌入信息。例如,LOBID可被嵌入在与电子邮件消息相关联的首部中。电子邮件通信无需包含(嵌入或以其它方式)LOB项目本身,因为LOBID引用该LOB实体。一旦接收到电子邮件消息,用于生产性套件的电子邮件处理程序可在同步阴影或同步数据存储中标识引用该LOB标识符的特定生产性套件项目。
在另一示例中,用户可用引用与SDS中的PS项目相关联的LOB标识符的链接(例如,任何数量的形式的URL链接,诸如HTTP、HTTPS、FTP、FTPS、OBA等)来引用生产性套件项目。
在又一示例中,当LOB系统向生产性套件系统发送电子邮件消息时,可激活动作窗格、任务窗格或其它软件方法。一旦被激活,该软件方法可通过引用LOBID来从SDS中检索生产性套件项目,然后对该生产性套件项目执行动作。
可由软件方法在生产性套件项目上执行的动作可导致生产性套件项目的创建、更新或删除,这然后可以如上所述地与LOB系统同步。LOB系统可通过引用软件方法以及电子邮件通信中的LOB ID来有效地将任务传达给生产性套件用户。
在一个示例性软件方法中,即来自LOB系统的电子邮件通信可向用户传达完成与同用LOB ID标识的LOB实体同步的特定生产性套件项目相关联的审阅或批准的请求。该电子邮件通信可以在LOB系统中的最后期限到来时或在由LOB系统的特定用户提供时由LOB系统自动传送。该电子邮件可由LOB系统通过向格式化器传送信息(例如,经由XML数据表示、经由文本、经由嵌入的数据等)来创建,格式化器然后与电子邮件和目录服务器(见例如图7)协作来创建电子邮件消息。电子邮件可强调该需求以最终化与生产性套件项目相关联的动作、提供进一步的解释等,其中电子邮件可引用后端工作流系统中的任务。由于生产性套件应用程序可将嵌入在电子邮件通信中的链接解释为任务,因此实际任务信息可被自动呈现。用户然后可选择并跟随该链接以打开生产性套件应用程序中的任务项目,其中相关联的同步的后端信息可用XML数据表示来储存。由于LOB标识符可被嵌入在链接中,因此任何所需的与生产性套件项目相关联的动作可通过适当地配置处理程序(例如,URL处理程序)来采取。
尽管已经示出并描述了示例实施例和应用,但是可以理解,本发明不限于以上所描述的精确配置和资源。可以对此处所公开的方法和系统的排列、操作和细节作出本领域的技术人员显而易见的各种修改、改变和变型,而不背离本发明的范围。由于可在不背离本发明的精神和范围的前提下作出本发明的许多实施例,因此本发明归所附权利要求书。

Claims (20)

1.一种具有用于在业务线(LOB)应用程序和生产性套件应用程序之间同步信息的计算机可执行指令的计算机可读介质,所述指令包括:
用所述生产性套件应用程序(720)接收一推传送的电子邮件,其中一控制消息(795)被嵌入在所述推传送的电子邮件中,其中所述控制消息是来自所述LOB应用程序(706)的定义对LOB实体的改变的XML数据表示(793);
用客户机机器(710)上的所述生产性套件应用程序(720)来从所述电子邮件中检索所述控制消息(795);以及
响应于在同步过程(796)中检索到的控制消息(795)标识对一绑定项目的改变,使得所述绑定项目同时与生产性套件项目(230)和所述LOB实体(251)两者相关联,其中所述控制消息(795)指示以下的至少之一:LOB实体创建、LOB实体更新以及LOB实体删除(214)。
2.如权利要求1所述的计算机可读介质,其特征在于,所述指令还包括:在检索所述控制消息(795)之前认证所述电子邮件,使得来自未授权发送者的欺骗可被阻止。
3.如权利要求1所述的计算机可读介质,其特征在于,所述指令还包括:当从所述电子邮件中检索到所述控制消息(795)时向用户提供通知。
4.如权利要求1所述的计算机可读介质,其特征在于,所述指令还包括:
将所检索到的控制消息(795)自动放置在隐藏文件夹和入站消息队列(714)中的至少之一中。
5.如权利要求1所述的计算机可读介质,其特征在于,所述指令还包括:将每一绑定项目储存在所述客户机机器(710)上的同步数据存储(SDS,1050)中。
6.如权利要求5所述的计算机可读介质,其特征在于,所述指令还包括:用所述SDS(1050)来标识所述生产性套件项目(230)和相关联的LOB实体(251)之间的改变,并将对所标识的改变的请求放置在一虚拟请求队列(712)中以便与所述LOB系统(250)同步。
7.如权利要求5所述的计算机可读介质,其特征在于,所述指令还包括:将用于所述生产性套件应用程序(720)的邮箱(1010)中的所有绑定项目与所述SDS(1050)进行比较,并检测和修补所述邮箱(1010)和所述SDS(1050)之间的引用完整性。
8.如权利要求7所述的计算机可读介质,其特征在于,所述指令还包括:标记经修改的项目以供进一步处理、升级对于所标记的项目的特性;以及将所得的经更新的XML数据表示与所述SDS副本进行比较。
9.如权利要求1所述的计算机可读方法,其特征在于,所述同步过程包括以下的至少之一:标识并解决与所述绑定项目相关联的冲突(1230)、升级与所述绑定项目相关联的特性、降级与所述绑定项目相关联的特性、以及当将所述生产性套件应用程序分配给一次要机器(260)时在不升级特性的情况下更新所述绑定项目。
10.如权利要求1所述的计算机可读介质,其特征在于,所述指令还包括:响应于对所述客户机机器(210)上的生产性套件项目的改变创建一出站请求(212),其中所述出站请求包括与所述生产性套件项目(230)相关联的创建、更新和删除(212)中的至少一个;
将所述出站请求放置在一出站队列(712)中以便与所述LOB应用程序(760)同步;
在第一时间实例处对所述队列中的请求向所述LOB应用程序(760)发起一web服务呼叫(792),使得所述LOB应用程序(760)可在所述web服务成功连接到所述LOB应用程序(760)时从所述web服务检索所述出站请求;以及
当所述web服务成功连接到所述LOB应用程序(760)时从所述出站队列(712)中移除所述出站请求并更新一同步数据存储(SDS,1050)。
11.如权利要求10所述的计算机可读介质,其特征在于,所述指令还包括:当所述web服务最初无法成功连接到所述LOB应用程序时,在第二时间实例处对所述出站队列(712)中的出站请求发起第二web服务调用(792)。
12.如权利要求10所述的计算机可读介质,其特征在于,所述指令还包括:用XML数据表示编码所述请求以供所述LOB应用程序(760)接收。
13.一种用于在业务线(LOB)应用程序和生产性套件应用程序之间同步信息的装置,所述装置包括:
处理器(104);
计算机可读介质(116、118、120、122、124);
储存在所述计算机可读介质上并在所述处理器(104)上执行的操作环境(126);以及
在所述操作环境(126)的控制下操作并可用于执行动作的应用程序(128、130),其中所述应用程序(128、130)被安排成:
响应于对一LOB实体(251)的改变创建请求(214),其中所述请求包括创建LOB实体、更新LOB实体和删除LOB实体的指令中的至少一个;
生成与所述LOB实体(251)中的改变相关联的XML数据表示(793);
将所述XML数据表示(770)格式化成在电子邮件(780)中编码的控制消息(794);以及
将所述电子邮件(780)推传送到所述生产性套件应用程序(720),使得对所述LOB实体(251)的改变可通过从所述电子邮件中提取所述控制消息(795)来与所述生产性套件应用程序项目同步(730)。
14.如权利要求13所述的装置,其特征在于,所述应用程序还被配置成将所述电子邮件推传送到存在于一次要客户机(260)上的另一生产性套件应用程序(270)。
15.如权利要求13所述的装置,其特征在于,所述应用程序还被配置成:
接收一web服务调用(792);
从所述web服务调用(792)中提取一更新请求(791),其中所述更新请求(791)与对一生产性套件应用程序项目的改变相关联;以及
响应于所提取的更新请求更新一LOB实体,其中所提取的更新请求对应于创建所述生产性套件应用程序项目、更新所述生产性套件应用程序项目和删除所述生产性套件应用程序项目的指令中的至少一个。
16.如权利要求15所述的装置,其特征在于,来自所述web服务调用(792)的更新请求是另一XML数据表示。
17.如权利要求13所述的装置,其特征在于,所述应用程序还被配置成:从所述生产性套件应用程序(720)接收一web服务调用(792)、从所述web服务调用中提取请求、以及响应于所提取的请求创建一LOB实体。
18.一种在业务线(LOB)应用程序和生产性套件应用程序之间同步信息的方法,所述方法包括:
从所述LOB应用程序(760)接收一XML数据表示(793),其中所述XML数据表示(793)标识了与所述LOB应用程序(760)中的至少一个实体相关联的改变;
将所述XML数据表示(793)格式化成控制消息(740);
将所述控制消息(794)嵌入在电子邮件(780)中;以及
将所述电子邮件(795)推传送到所述生产性套件应用程序(720),使得与所述LOB应用程序(760)中的至少一个实体相关联的改变可与所述生产性套件应用程序(720)相关联。
19.如权利要求18所述的方法,其特征在于,还包括:
从所述生产性套件应用程序(720)接收另一XML数据表示(792);
从所述另一XML数据表示(792)中标识与所述生产性套件应用程序中的至少一个项目相关联的改变;以及
基于所标识的改变更新所述LOB应用程序(760)中的至少一个实体,使得所述LOB应用程序中的至少一个实体被绑定到所述生产性套件应用程序中的至少一个项目。
20.如权利要求19所述的方法,其特征在于,更新包括以下的至少一种:创建、修改和删除所述LOB应用程序中的至少一个实体。
CN200680042732.0A 2005-09-16 2006-09-18 生产性套件到业务线的同步机制 Expired - Fee Related CN101310265B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US71769405P 2005-09-16 2005-09-16
US60/717,694 2005-09-16
US75297105P 2005-12-21 2005-12-21
US60/752,971 2005-12-21
US11/437,430 2006-05-19
US11/437,430 US20070067354A1 (en) 2005-09-16 2006-05-19 Productivity suite to line of business synchronization mechanism
PCT/US2006/036362 WO2007035680A1 (en) 2005-09-16 2006-09-18 Productivity suite to line of business synchronization mechanism

Publications (2)

Publication Number Publication Date
CN101310265A true CN101310265A (zh) 2008-11-19
CN101310265B CN101310265B (zh) 2013-03-13

Family

ID=40125810

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2006800427227A Expired - Fee Related CN101310271B (zh) 2005-09-16 2006-09-18 用于生产性套件应用程序和主宿的用户界面的接口
CN200680042732.0A Expired - Fee Related CN101310265B (zh) 2005-09-16 2006-09-18 生产性套件到业务线的同步机制

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2006800427227A Expired - Fee Related CN101310271B (zh) 2005-09-16 2006-09-18 用于生产性套件应用程序和主宿的用户界面的接口

Country Status (1)

Country Link
CN (2) CN101310271B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104662573A (zh) * 2012-09-14 2015-05-27 微软公司 通信和crm应用的双向同步
CN105303290A (zh) * 2014-07-23 2016-02-03 西门子公司 管理制造执行系统中的数据

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8434097B2 (en) * 2009-12-30 2013-04-30 Sybase, Inc. Dynamic data binding for MBOs for container based application
CN102455892B (zh) 2010-10-18 2014-04-16 腾讯科技(深圳)有限公司 用于实现微博消息页的方法和装置
TWI435262B (zh) * 2011-04-22 2014-04-21 Wistron Corp 使用者介面之呈現及運作方法、程式產品及系統
CN102420857A (zh) * 2011-11-18 2012-04-18 北京蓝汛通信技术有限责任公司 操作指令传送和处理方法、传送和缓存服务器及存储系统
US8499122B2 (en) * 2011-11-21 2013-07-30 Microsoft Corporation Asynchronous data binding
CN103257967A (zh) * 2012-02-17 2013-08-21 腾讯科技(深圳)有限公司 屏蔽网页自定义样式影响全局样式的方法及装置
CN106155674B (zh) * 2015-04-22 2020-04-07 阿里巴巴集团控股有限公司 报表页面展现的方法及装置
CN105824625B (zh) * 2016-03-14 2019-07-23 北京中电普华信息技术有限公司 一种基于云环境的业务应用构造装置及方法
CN106371845B (zh) * 2016-09-05 2019-10-25 深圳震有科技股份有限公司 通过控件池基于wpf重复利用同类型控件的方法及系统
CN107273113A (zh) * 2017-05-05 2017-10-20 广东网金控股股份有限公司 页面控件与实体绑定、向实体赋值及页面控件赋值的方法
CN110688187A (zh) * 2019-09-27 2020-01-14 福建工程学院 一种应用程序定制功能界面中控件与功能函数的数据交互方法
CN113064580A (zh) * 2021-03-29 2021-07-02 上海金融期货信息技术有限公司 一种水平扩展的客户端系统
CN113176901B (zh) * 2021-05-17 2023-09-19 上海云扩信息科技有限公司 一种程序的运行加载优化方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6424966B1 (en) * 1998-06-30 2002-07-23 Microsoft Corporation Synchronizing crawler with notification source
US20030115292A1 (en) * 2001-10-24 2003-06-19 Griffin Philip B. System and method for delegated administration

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104662573A (zh) * 2012-09-14 2015-05-27 微软公司 通信和crm应用的双向同步
CN105303290A (zh) * 2014-07-23 2016-02-03 西门子公司 管理制造执行系统中的数据

Also Published As

Publication number Publication date
CN101310271A (zh) 2008-11-19
CN101310265B (zh) 2013-03-13
CN101310271B (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
CN101310265B (zh) 生产性套件到业务线的同步机制
US10068203B2 (en) Methods and systems for managing to do items or notes or electronic messages
KR101323037B1 (ko) 생산성 제품군 애플리케이션 및 호스팅된 사용자인터페이스를 위한 인터페이스들
JP5302374B2 (ja) アクション可能な電子メールドキュメント
JP4684536B2 (ja) 運送業者および小包み配送デスクトップツール
US7930356B2 (en) Management of email threads
US20040158607A1 (en) System and method for associating an email attachment file with a storage location
US8359532B2 (en) Text type-ahead
CN102859513A (zh) 文档上的流水线式合作
US20130262420A1 (en) Document management
US7031973B2 (en) Accounting for references between a client and server that use disparate e-mail storage formats
US20080033950A1 (en) Methods and systems for managing to do items or notes or electronic messages
MXPA04001931A (es) Metodo para iniciar colaboracion a base de servidor en adiciones de correo electronico.
CN101983380A (zh) 文档的同步协作审阅
CN109313634A (zh) 用于单个文件的文件同步暂停
CN102541552A (zh) 条件延迟排队
CN102413168A (zh) 呈现同步对象的可用性状态
CA3033144A1 (en) Tracing objects across different parties
CN111611206A (zh) 一种基于平台级企业消息总线的消息处理方法和装置
WO2017073102A1 (ja) 情報処理装置、情報処理方法およびプログラム
CN106384255A (zh) 一种创建信息码推广信息的方法和装置
CN104662573A (zh) 通信和crm应用的双向同步
US8635198B1 (en) Centralized, server-less content management
KR20080060243A (ko) 라인 오브 비지니스 애플리케이션과 생산성 제품군애플리케이션 간에서 정보를 동기화하기 위한 장치, 방법및 컴퓨터 판독가능 매체
JP4370927B2 (ja) アノテーション管理プログラム、アノテーション管理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
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: 20150421

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150421

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130313

Termination date: 20150918

EXPY Termination of patent right or utility model