CN107924344B - 与旧式客户端互操作的方法以及服务器系统 - Google Patents
与旧式客户端互操作的方法以及服务器系统 Download PDFInfo
- Publication number
- CN107924344B CN107924344B CN201680050626.0A CN201680050626A CN107924344B CN 107924344 B CN107924344 B CN 107924344B CN 201680050626 A CN201680050626 A CN 201680050626A CN 107924344 B CN107924344 B CN 107924344B
- Authority
- CN
- China
- Prior art keywords
- instance
- message
- sequence
- modern
- server system
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- 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/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种方法包括识别针对现代系统格式化的事件序列。事件序列包括可由现代服务器系统使用的主消息。主消息包括针对序列中的所有事件的默认信息。方法进一步包括识别多个实例消息。实例消息中的每个包括针对事件序列中的给定事件的默认信息和例外信息。方法进一步包括将主消息和实例消息两者发送至其它系统,无论其它系统是现代系统还是旧式系统。
Description
背景技术
背景技术和相关领域
计算机和计算系统几乎影响了现代生活的每个方面。计算机普遍地涉及工作、休闲活动、医疗保健、交通、娱乐、家务管理等。
随着计算机技术的进步,可以将新的特征添加至现有系统的新(在本文中被称为现代)版本。当添加了这些特征时,可能存在原生地不能实现新特征的现有系统的较旧(在本文中被称为旧式)版本。然而,系统的这些旧式版本的用户可能期望利用系统的现代版本中的新特征。
例如,调度系统(例如,包括在来自华盛顿雷德蒙德的微软公司的可用的Microsoft Exchange Server和Microsoft Outlook客户端中的日历功能) 的现代版本可以包括允许高级调度特征的功能,例如,具有约会的序列中的约会的例外、修改约会的序列中的单独约会、将额外的约会实例添加至约会的序列、在约会细节上协作等的能力。在一些情景中,服务器可以使该功能被使能,并且现代客户端可以利用该功能,但是尽管服务器支持该功能,旧式客户端也不能利用该功能。这可能会对现代客户端和旧式客户端两者的用户造成困难。特别地,在现代客户端处的用户可以利用现代服务器的功能中的一些,并且期待其他用户(包括在旧式客户端处的用户) 知道该利用。例如,在现代客户端处的用户可以对约会的序列的实例进行更新。使用现代客户端的其他用户将被告知该更新,但是旧式客户端上的用户可能不被告知该更新,或者可能以将约会的该序列破坏为序列的方式被告知该更新。实现其中现代和旧式客户端都可以实现新功能并且仍能够与彼此交互的系统是有用的。
本文中要求保护的主题不限于解决任意缺点或者仅在诸如以上描述的那些环境之类的环境中操作的实施例。而本背景技术仅被提供用于示出其中可以实践本文中描述的一些实施例的一个示例性技术领域。
发明内容
本文中示出的一个实施例包括一种可以在计算环境中实践的方法。方法包括用于促进与现代系统和旧式系统两者一起使用的动作。方法包括识别针对现代系统格式化的事件序列。事件序列包括能够由现代服务器系统使用的主消息。主消息包括针对序列中的所有事件的默认信息。方法进一步包括识别多个实例消息。实例消息中的每个包括针对事件序列中的给定事件的默认信息和例外信息。方法进一步包括将主消息和实例消息两者发送至其它系统,无论其它系统是现代系统还是旧式系统。
提供本发明内容用于以简化形式引入对一系列概念,在以下具体实施方式中进一步描述这些概念。本发明内容不旨在识别要求保护的主题的关键特征或者必要特征,也不旨在用作对确定要求保护的主题的范围的辅助。
额外的特征和优点将在随后的本说明书中进行阐述,并且部分地额外的特征和优点将根据本说明书是显而易见的,或者可以通过实践本文中的教导来学习该额外的特征和优点。本发明的特征和优点可以凭借所附权利要求中特别指出的工具和组合来实现和获得。本发明的特征根据下文的说明书和所附权利要求,将变得完全更加显而易见,或者可以通过后文中阐明的对本发明的实践来学习本发明的特征。
附图说明
为了描述能够获得以上叙述的以及其它优点和特征的方式,对以上简短描述的主题的更特定的描述将参照附图中示出的具体实施例来呈现。理解这些附图仅描述了典型的实施例,并且因此不被认为在范围方面是限制性的,通过使用以下附图,利用额外的具体说明和细节来描述和解释实施例,在附图中:
图1示出了被配置为根据主消息创建实例消息的服务器;
图2A示出了将用于改变的新实例消息添加至序列;
图2B示出了更新实例消息中的默认值;
图2C示出了关于更新实例消息的额外细节;
图3A示出了促进旧式客户端的现代服务器;
图3B示出了促进旧式客户端的现代服务器;
图4示出了日历查看;以及
图5示出了用于促进与现代系统和旧式系统两者一起使用的方法。
具体实施方式
如以下详细地示出的,非模式重现(non-pattern recurrence)是新类型的序列,在该新类型的序列中,针对一个或多个属性(例如,一周中的一天、一天中的时间、受邀请人等)不存在模式,但是针对该一个或多个属性存在事件的多个实例。不存在对一天中可以发生多少事件的实例的约束,或者不存在对跨例外的边界移动实例的约束。例如,可以存在两个实例:7 月1日和7月5日。如果期望将1日上的实例移动至5日之后的任意一天,则这在旧式日历系统上实现的传统重现序列中是不可能的。然而,如图1 中示出的,实施例在本文中可以在服务器102的服务器端上实现该功能和其它现代功能以用于由现代客户端108-A使用,并且同时不破坏任何旧式客户端108-B。
这可以通过在服务器102处将序列的实例中的每个表示为可以存储最小信息的单独的部分项103-1、103-2、103-3和103-4来完成,例如仅日期、时间以及与序列主消息104上(其用作模板)的相对应的属性不匹配的任意属性。因为旧式客户端108-B(来自客户端108之中)不能解释部分项 103-1、103-2、103-3和103-4或者序列主消息104,该序列主消息对旧式客户端108-B是隐藏的,所以使用代理使得部分项103转变为全事件项,例如,使用后台服务112(和/或内联API,如以下更详细地示出的)来创建多个实例消息106-1、106-2、106-3和106-4。
每个实例消息包括针对来自主消息104的属性的所有默认值和针对序列中的相对应的项的任意项特定属性(在本文中被称为例外)。
将主消息104和所有实例消息106发送至客户端108的集合中的所有客户端,无论那些客户端是现代客户端108-A还是旧式客户端108-B,现代客户端108-A能够实现高级功能并且能够利用主消息104中的新数据格式,旧式客户端108-B不能够利用主消息104中的数据格式。以该方式,现代客户端108-A可以从主消息104获得数据并且实现由服务器102提供的高级功能,即,使用单个消息容器来表示序列默认值和例外,并且简单地舍弃实例消息106。此外,旧式客户端108-B不能够实现由服务器102提供的关于使用单个消息的高级功能,因为旧式客户端108-B需要针对每个实例的单独消息,所以旧式客户端具有针对实例的消息106。以该方式,现代客户端108-A和旧式客户端108-B两者都可以在现代服务器102的上下文中使用,以使得客户端可以继续与彼此交互,即使客户端在不同的基础原理上操作。
示出额外的细节,序列主消息104用于存储传送至实例消息106中的每个实例消息的任意行动以用于与旧式客户端108-B的互操作。如此,现代客户端108-A得到其中序列更新仅需要改变一项(即,序列主消息104) 的模型,并且同时旧式客户端仍可以凭借传送至多个实例消息106的对主消息104的改变来理解序列的每个单独实例。
因此,本文中示出的实施例实现了其中可以将事件的序列传送至现代系统和旧式系统两者的系统。特别地,可以针对现代系统来对事件的序列进行格式化。事件的序列包括主消息104,其包括针对序列中的所有事件的默认信息,以及可选地事件序列中的单独事件的默认信息的例外。根据主消息104创建多个实例消息106。每个实例消息包括针对事件序列中的给定事件的默认信息和例外信息。将实例消息从现代服务器102发送至其它系统,无论其它系统是现代系统还是旧式系统。以该方式,可以将现代功能传送至现代系统和旧式系统两者。
值得注意地,虽然图1示出了直接耦合至客户端108的现代服务器102,但是应该认识到的是,在一些实施例中,现代服务器或旧式服务器可以实际上连接在现代服务器102与客户端之间。特别地,现代服务器102可以将消息104和106发送至中间服务器,该中间服务器然后可以向客户端108 提供消息104和106。因为提供主消息104和实例消息106两者,所以中间服务器不需要是具有高级功能的现代服务器,而可以是能够将消息104和 106转发至客户端(现代或旧式)的旧式服务器。因此,例如,现代客户端可以耦合至旧式服务器,并且如果旧式服务器连接至现代服务器102,则耦合至旧式服务器的现代客户端仍能够通过从旧式服务器接收主消息104来实现高级功能。
可以使用主消息104来创建实例消息106中的每个实例消息。特别地,可以通过使用包含在主消息104中的默认信息和例外信息来创建实例消息 106。例如,在针对与实例消息相对应的事件主消息中不存在例外信息的情况下,使用针对任意数据项的默认信息来创建实例消息。如果针对事件的实例在主消息中存在例外信息,则使用例外信息而非默认信息。
在一些实施例中,使用来自主消息的默认信息,结合从用户接收到的例外信息来创建实例消息106。例如,在旧式客户端处的用户可能希望更新事件序列中的事件。这可以由旧式客户端响应于实例消息中的一个而发送用户输入来完成。系统可以接收该用户输入,并且使用该输入来更新针对该事件的实例消息。然后可以将该实例消息重新发送至各种客户端(现代和旧式两者)。另外,该更新可以随后与主消息104同步。
下文示出了关于更新事件序列中的事件的额外的细节。
现代日历系统具有重复发生的会议的概念,在该概念中,用户可以定义模式。例如,典型地用户可以将日历事件定义为是每天、每周、每月、或者每年发生的。该功能在日历系统中已存在相当一段时间,凭借该功能,系统通过遵循各种规则来确定何时应将项放置在日历上。可以将重复发生限制在某个用户定义的时间框架,或者在一些情况中是永久的。典型地,将事件序列包含在由日历服务器递送的单个消息中,该单个消息可以被日历服务器的客户端理解。
之前,用户已能够修改序列中的单独的实例,但是存在会丢失那些修改的一些风险。例如,用户可以修改单个实例,但是之后当对序列本身做出改变时,修改会丢失。因此,例如,序列可以具有会议,该会议被安排有每个星期二上午11点的默认值。可以对序列做出改变以具有在上午10 点的会议的一个序列例外实例。随后,可以对序列进行改变以具有在下午 12点的默认值。在旧式系统中,这会使得例外信息丢失,并且所有会议都在下午12点。
然而,现代日历系统实现了可以将非模式重现与重现模型组合在一起的功能,以使不满足定义的重现模型的事件的实例能保持。例如,实施例可以允许在同一天有两个实例、跨实例边界移动例外等,并且允许即使当对默认值做出改变时也保持这些例外。例如,序列可以是每个星期二上午 11点的每周会议。可以期望将会议中的一个更新为星期三下午3点的序列例外实例。当之后改变序列以使会议的默认值为下午12点时,在星期三下午3点的序列例外实例不会丢失。旧式系统的用户也可以期望利用该功能。下文示出了这是如何由本文中描述的实施例完成的。
本文中示出的一个实施例能够通过当对序列中的实例进行更新以将实例的值从默认值改变为针对该实例的例外值时创建实例消息来保持针对旧式系统的例外信息。
例如,图2A示出了现代服务器102。现代服务器102能够处理具有非模式重现的序列,并且当针对整个序列改变默认值时,保持任意非模式重现。以下为了参考和理解示出了这样的功能,然而,应该认识到的是,实施例可以在其它上下文中实现。
图2A示出了主消息104。主消息104包括视图107、默认信息111以及例外信息113。
视图107定义了要被显示在客户端(例如,客户端108中的一个)处的日历用户界面上的日历项的图形视图。这可以图形地定义日历上的事件可以如何被放置在客户端处的图形用户界面上以及可以被放置在客户端处的图形用户界面上的何处。这可以包括针对序列中的所有实例的信息使得客户端可以使用视图107图形地呈现给定序列中的所有实例。该信息可以由旧式客户端或者现代客户端使用以在日历上呈现事件。视图107还可以包括可由现代客户端和旧式客户端两者读取的例外视图项。
默认信息111包括针对序列中的实例的默认值。例如,给定的默认值可以包括会议地点、出席人的列表、默认日、默认时间、或者其它默认值。这些默认值用于其中没有例外的序列中的任意实例。默认信息可由旧式系统和现代系统两者查看。
例外信息113识别给定实例的默认值的任意例外值。因此,例如,例外可以识别序列中的第一实例在星期三而不是星期二发生。在一些实施例中,可以将例外信息特别地包括在主消息104中,而在其它实施例中,可以凭借指向存储实际例外值的位置的指针来包括例外信息。在示出的示例中,例外信息113对现代系统而言是可保持的和可读取的,但是对旧式系统而言是不可保持的和不可读取的。
在本文中的实施例可以创建可由旧式系统读取的单独的实例消息,单独的实例消息可以取代和/或替代在主消息104中指明的例外。特别地,在本文中的实施例能够接收改变序列中的实例的用户输入,并且作为结果创建可由旧式客户端读取的实例消息。可以分离地维持实例消息,使得对默认项的更新不破坏实例消息,并且因此,可以维持针对特定实例的例外。
例如,图2A示出了服务器102从客户端108-1接收用户改变消息116-1。用户改变消息116-1包括例外值E1-1,其为替代序列中的一个实例的默认值D1的例外值。例如,假设序列有四个实例,例外值E1-1可以旨在替代序列中的第一实例的默认值D1。其它实例会保留默认值D1。假设没有其它例外,所有实例会保留其它默认值D2、D3、D4、D5和D6。客户端108-1可以是旧式客户端或者现代客户端。在服务器102处,服务器102更新主消息104以包括例外信息113中的例外E1-1。然而,仍保留默认值D1以供序列中的其它实例使用。
服务器还创建新实例消息106-1。实例消息106-1包括例外值E1-1以及默认值D2、D3、D4、D5和D6。还可以如需要的来更新视图107。
如以上指明的,在一些实施例中,可以通过使用指针来将例外值E1-1 包括在主消息104中。在一些实施例中,这可以通过使用直接指向实例消息106-1中的例外值E1-1的指针来完成。这样做可以用于节省服务器102 处的存储空间。
然后可以将主消息104和实例消息106-1发送至对序列感兴趣的客户端 108。客户端108中的任意现代客户端可以使用主消息通过读取例外信息113 来更新具有实例例外的序列,并且不需要实例消息106-1,除非在主消息104 指向实例消息106-1中的值的情况下。现代客户端不使用来自实例消息 106-1的默认值。
在一些实施例中,可以通过将消息放置在针对客户端108的邮箱110 中来将主消息104和任意实例消息发送至客户端108。
另一方面,客户端108中的旧式客户端使用它们可从主消息104得到的信息,在当前示例中为最后三个实例,而针对事件序列中的第一实例使用实例消息106-1。
如现在示出的,即使将序列作为整体对其作出改变,实例消息106-1 也可以用于保持例外值E1-1。
例如,图2B示出了其中客户端108-1发送用户改变消息116的示例,该用户改变消息116旨在将默认值D1更新为D1’并且将默认值D3更新为 D3’。在该示例中,服务器识别到该更新是对整个序列的更新而非仅为对序列中的特定实例的更新。因此,服务器102更新主消息104以将值D1替代为值D1’并且将值D3替代为值D3’。因为实例消息106-1已具有D1的例外值E1-1,所以不会利用值D1’来更新实例消息106-1。然而,因为实例消息 106-1包括默认值D3,所以实例消息106-1要被更新为包括默认值D3’来替代默认值D3。这些消息一旦被更新,则可以被传送至客户端108,其中客户端108可以使用这些消息来在以上示出的客户端处更新序列信息。
现在参考图2C,示出了额外的细节。图2C示出了在本示例中,因为在示例序列中存在四个实例,所以可能可以创建多达四个实例消息106-1、 106-2、106-3和106-4。每个实例消息可以包含针对其相对应的实例的任意例外以及针对特定的实例的任意未改变的默认值。
虽然以上示例示出了更新事件,但是应该认识到的是,在其它实施例中,可以在将新事件添加至序列时应用相似的原理。
在一些实施例中,服务器102可以接收针对实例消息106的序列中的实例消息的一个或多个的回复。作为结果,服务器可以更新针对其接收回复的任意实例消息以及主消息104。一旦更新,则可以将更新的实例消息传送至各种其它系统,例如,客户端108。在一些实施例中,这引起服务器 102将主消息104和所有实例消息106重新发送至所有客户端108。
在一些实施例中,服务器102可以针对多个实例消息106中的实例消息中的每个接收相似的(或者可能甚至是相同的)回复。服务器102然后可以将回复解释为对主消息104的回复(即,对整个序列的回复)。在该情况中,还可以更新主消息104默认信息。基本上,实施例能够逆向工程对所有实例消息而言相同的回复,其被当作在服务器102处的对主消息104的回复。
在一些实施例中,服务器102可以接收从现代客户端向主消息104的回复。作为结果,服务器102将回复(适当地)传送至各种实例消息并且将任意经更新的实例消息重新发送至客户端。在一些实施例中,这引起服务器102将主消息104和所有实例消息106重新发送至所有客户端108。
现在下文示出了与其中可以实现实施例的框架有关的额外细节。特别地,下文示出了被配置为原生地实现非模式重现消息但是仍允许旧式客户端也使用其旧式机制来使用这样的功能的现代系统的示例。
可以在其中存在创建不具有重现模式的会议序列的框架中实现实施例。除非明确声明,否则适用于传统的重现序列的任何东西也适用于此。例如,组织者应该能够:将出席人添加至所有实例;仅将出席人添加至一个实例;取消整个序列;仅取消序列中的一个实例;针对整个序列设置位置;仅在一个实例中改变位置等。
相反,在示出的示例中,在重现序列上不允许的操作(如,将现有会议添加至序列)在此不被允许。该规则的一个例外是能够在同一天有多个实例(这对于重现序列而言当前是不允许的)。
使用本文中阐明的功能,旧式客户端能够看到序列的所有实例而不改变实例的实施方式。然而,在示出的示例中,实例将被视为单独的约会,这是因为在一些旧式架构中,不可能将这些实例表示为单个约会。
现在参考图3A,示出单个日历文件夹205的示例被示出。现代客户端 108-A和旧式客户端108-B两者连接至服务器102上的该文件夹205。但是针对由旧式客户端使用的旧式API 208,服务器102隐藏序列主消息104。旧式客户端可以看到实例消息,其中旧式客户端可以基于逐个事件而得到默认信息和例外信息。使用新API的现代客户端108-A可以看到序列主消息104和实例消息106两者,看到序列主消息104用于获得针对整个事件序列的默认消息,看到实例消息106用于获得针对每个事件的例外信息。现在参考图3B,示出了替代的示例,其示出了被示出有两个日历文件夹的服务器102。针对旧式客户端的第一旧式日历文件夹204使用旧式API 208,并且第二新日历文件夹206针对使用新API 210的客户端。
旧式日历文件夹204继续根据旧式框架以旧式客户端可以理解项的方式来存储项。例如,针对不理解非模式重现的旧式客户端,这些项被存储为单个项(例如,实例消息106)而不是作为非模式重现序列(例如,主消息104)的部分。旧式日历文件夹204保持对旧式客户端108-B可见,并且旧式客户端108-B以与它们之前与旧式日历文件夹204交互相同的方式与旧式日历文件夹204进行交互。
旧式日历文件夹204对现代客户端108-A不可见,并且现代客户端108-A不与旧式日历文件夹204进行通信。相反,现代客户端108-A使用具有新架构的新日历文件夹206。该文件夹对旧式客户端108-B不可见(因为该文件夹包含以不同方式存储的项,这些项是旧式协议不理解的)。该文件夹仅可通过新API 210来访问,并且不可通过旧式API 208来访问。因此,从客户端完整地将如何表示数据的任意细节抽象出来。例如,利用具有所有期望的语义并且经由新API 210显露的表示来存储非模式重现。
可以实现用于在两个文件夹上保持数据更新的同步机制。
下文示出了关于存储非模式重现的细节。之前,旧式系统(例如,来自华盛顿雷德蒙德的微软公司的旧式Exchange Server)中的重现序列具有顶级主消息(top-levelmaster),其具有关于重现模式、例外的信息并且还用于表示序列的第一实例。
相比之下,现代系统可以包括仅负责表示非模式重现的对象(例如,主消息104)。该对象保持以下数据片段:
·所有实例共同的属性(除非实例是过程的例外);
·关于序列何时开始和序列何时结束的信息;以及
·到非模式重现的实例的链接。
非模式重现主消息与“传统重现序列”主消息之间的区别为该项仅为元数据并且仅意在由现代服务器消费(并且因此其对客户端不可见,该客户端是现代的或者旧式的),该现代服务器例如为来自华盛顿雷德蒙德的微软公司的可用的现代Exchange服务器。例如,图4示出了对非模式重现的表示,该非模式重现具有分别在星期一、星期三以及星期四的实例216-1、 216-2和216-3。只有这些项是对客户端可见的。在一些实施例中,在日历视图期间,实施例在内部查询实例消息106和主消息104两者,并且然后将来自主消息104的数据与实例数据合并以得到实例的最新状态(以防后台传送还未跟上)。在该时刻,仅实例从日历视图API调用返回。
要注意的是,保持元数据的项212在第一实例的同一天开始并且在最后一天结束。这允许在获得日历视图时有更高效的查询。
在旧式系统上,当客户端请求视图时,向服务器102做出两个查询:一个是对单个项,一个是对重现项。单个项检索是简单的:旧式系统可以基于项的开始和结束日期,仅请求在期望的窗口中的项。然而,当重现项是在图片中时,服务器102必须对整个日历检查并且过滤存储器中的项。这是因为序列主消息的数据还兼作第一项——并且因此,可能在查询窗口的外部。
相比之下,在非模式重现模型中,这通过具有与表示序列的项212中的序列的开始和结束有关的数据来解决。因为项212与实例一起延伸和收缩,所以项212总是在与实例216-1、216-2和216-3相同的窗口中。该细节允许现代系统具有一个单个查询并且具有由该查询返回的每个感兴趣的对象,不需要过滤存储器中的任何东西。
如以上解释的,在一个替代的实施例中,存在由不同客户端(即,分别为旧式客户端108-B和现代客户端108-A)访问的两个日历文件夹(即,旧式日历文件夹204和新日历文件夹206)。两个日历文件夹具有相同的数据(但是针对不同客户端适当地以不同的方式来表示)。
每次,现代客户端向新日历文件夹206写入,对旧式日历文件夹204 执行等同的操作(并且反之亦然)。因为每个文件夹具有不同的数据模型,所以操作不能被简单地重演。而是转换成等同的操作。
例如,在新模型中,假设将重现序列的例外当作顶级部分项(如在非模式重现中的),并且假设(来自旧式API 208之中的)旧式API创建例外。
相反地,如果新API 210(其对新文件夹206进行操作)已针对重现序列例外创建部分项,则同步操作必须在旧式文件夹上通过创建附件来更新相对应的项。
因此,在每个创建/更新/删除操作之后,实施例将对象作为一个整体,并且在其它文件夹上完整地对等同的对象进行更新。
非模式重现的实例是完整项并且包含显示项所需要的所有数据。这包括仅由现代客户端108-A使用的序列信息和旧式客户端108-B所期望的所有属性。
为了保证向后兼容,将仅在主消息104中的数据传送至所有实例消息 106,如以上示出的。
通过新API 210来完成将非模式重现创建或修改为序列。在该情景中,实施例知道序列对比例外,并且每当适当的时候则执行批量更新。存在主项,只有新API理解该主项。MAPI客户端完全不能看到主项。
因此,为了向后兼容,序列的每个实例具有将项显示为单个项所需要的所有属性。向主消息写入对作为整体的序列的改变(如改变针对所有实例的主题)。实施例试图与保存相一致地对其它实例进行更新。不可以线上执行(因为故障、因为存在过多实例或者因为其它原因)的更新可以在后台进程中完成。
现在以下讨论指的是可以执行的很多方法和方法动作。虽然可以以某个顺序或者如以特定顺序发生的流程图中示出的来讨论方法动作,但是不要求特定的顺序,除非特别声明,或者因为动作取决于在执行动作之前完成的另一动作所以要求特定的顺序。
现在参考图5,示出了方法500。方法500可以在计算环境中实现,并且方法500包括用于促进与现代系统和旧式系统两者一起使用的动作。方法500包括识别针对现代系统格式化的事件序列,其中,事件序列包括可由现代系统使用的主消息,其中,主消息包括针对序列中的所有事件的默认信息(动作502)。
方法500还包括识别多个实例消息,其中,实例消息中的每个包括针对事件序列中的给定事件的默认信息和例外信息(动作504)。
方法500还包括将主消息和实例消息两者发送至其它系统,无论其它系统是现代系统还是旧式系统(动作506)。
方法500还包括使用主消息和包含在其中的默认信息来创建实例消息。
方法500还包括使用来自主消息的默认信息和从用户接收到的例外信息来创建实例消息。
可以如下实现方法500,其中,创建实例消息包括,针对每个实例消息,识别还未利用来自主消息的默认属性值来定义以及还未被定义为来自主消息的默认属性的有效例外的一个或多个属性,并且将来自主消息的相对应的属性的默认属性值传送至识别的属性中的每个。
方法500还可以包括针对多个实例消息中的实例消息中的每个接收相似的(或者甚至相同的)回复,并且作为结果将回复解释为对主消息(即,整个序列)的回复。因此,可以更新主消息。可以将经更新的主消息以及在许多情况中还有实例消息重新发送至系统。
方法500还可以包括接收针对多个实例消息中的实例消息中的一个或多个的回复,并且作为结果更新针对其接收到回复的实例消息。
方法500还可以包括接收向主消息的一个或多个回复,并且作为结果更新实例消息中的一个或多个以将信息从回复传送至实例消息中的一个或多个。
另外,方法可以由计算机系统来实现,该计算机系统包括一个或多个处理器和计算机可读介质,例如,计算机存储器。特别地,计算机存储器可以存储计算机可执行指令,该指令在由一个或多个处理器执行时,引起要被执行的各种功能(例如,实施例中叙述的动作)。
本发明的实施例可以包括或利用专用或通用计算机,其包括计算机硬件,如以下更具体地讨论的。本发明的范围内的实施例还包括用于执行或存储计算机可执行指令和/或数据结构的物理和其它计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统存取的任意可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,通过示例而非限制,本发明的实施例可以包括至少两个显著不同种类的计算机可读介质:物理计算机可读存储介质和传输计算机可读介质。
物理计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或者其它光盘存储装置(例如,CD、DVD等)、磁盘存储装置或者其它磁性存储设备、或者可以用于存储期望的程序代码单元的任意其它介质,该程序代码单元是以计算机可执行指令或数据结构的形式的并且可以由通用或专用计算机来存取。
“网络”被定义为使能计算机系统和/或模块和/或其它电子设备之间的电子数据的传输的一个或多个数据链路。当通过网络或者另一通信连接(硬线、无线、或者硬线或无线的组合)向计算机传递或者提供信息时,计算机恰当地将连接视为传输介质。传输介质可以包括可以用于携带期望的程序代码单元的网络和/或数据链路,该程序代码单元是以计算机可执行指令或数据结构的形式的并且可以由通用或专用计算机来存取。还可以将以上的组合包括在计算机可读介质的范围内。
另外,当到达各种计算机系统组件时,可以自动地将以计算机可执行指令或数据结构的形式的程序代码单元从传输计算机可读介质传递至物理计算机可读存储介质(或者反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或者数据结构可以在网络接口模块(例如,“NIC”)内的RAM中缓冲,并且然后最终传递至计算机系统处的计算机系统RAM和 /或更不易失性的计算机可读物理存储介质。因此,可以将计算机可读物理存储介质包括在也(或者甚至主要地)利用传输介质的计算机系统组件中。
例如,计算机可执行指令包括指令和数据,其使得通用计算机、专用计算机、或者专用处理设备执行某个功能或者功能组。例如,计算机可执行指令可以是二进制、中间格式指令,例如,汇编语言或者甚至为源代码。虽然已以对结构特征和/或方法动作特定的语言来描述主题,但是可以理解的是,所附权利要求中定义的主题不必限于上面所描述的特征或动作。而将所描述的特征和动作作为实现权利 要求的示例形式来公开。
本领域技术人员将认识到的是,在网络计算环境中利用许多类型的计算机系统配置来实现本发明,该计算机系统配置包括个人计算机、桌上型计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程消费者电子产品、网络PC、迷你计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。本发明还可以在分布式系统环境中实现,在该分布式系统环境中,通过网络(通过硬线数据链路、无线数据链路、或者通过硬线和无线数据链路的组合)链接的本地和远程计算机系统两者都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
替代地或额外地,本文中描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如并且没有限制,可以使用的示出性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等。
本发明可以在不偏离本发明的精神或特性的情况下以其它特定形式来体现。所描述的实施例在各个方面都仅为示出性的并且不是约束性的。因此,本发明的范围由所附权利要求而非前述说明书来指示。在权利要求的等同的含义和范围内的所有改变都包含在权利要求的范围内。
Claims (8)
1.一种服务器系统,其用于促进使用,而无论所述服务器系统是现代服务器系统还是旧式服务器系统,所述服务器系统由执行计算机可执行指令的一个或多个处理器来配置,所述计算机可执行指令使得所述服务器系统执行以下操作:
识别针对现代服务器系统而格式化的事件序列,其中,所述事件序列包括能够由现代服务器系统使用的主消息,并且其中,所述主消息包括针对所述序列中的所有事件的默认信息;
识别多个实例消息,其中,所述实例消息中的每一个包括针对所述事件序列中的给定事件的默认信息和例外信息,其中,所述服务器系统进一步被配置有代理,所述代理使用所述主消息和包含在所述主消息中的所述默认信息来创建所述实例消息;以及
将所述主消息和所述实例消息两者发送至其它服务器系统,无论所述其它服务器系统是现代服务器系统还是旧式服务器系统。
2.根据权利要求1所述的服务器系统,其中,所述代理被配置为进一步执行以下操作:
针对每个实例消息,识别一个或多个属性,所述一个或多个属性还未利用来自所述主消息的默认属性值而被定义并且还未被定义为来自所述主消息的所述默认属性的有效例外;以及
将来自所述主消息的相对应的属性的默认属性值传送至所识别的属性中的每一个。
3.根据权利要求1所述的服务器系统,其中,所述服务器系统被配置为使用来自所述主消息的所述默认信息和从用户接收到的例外信息来创建所述实例消息。
4.一种计算机实现的方法,其用于控制服务器系统以便促进使用,而无论所述服务器系统是现代服务器系统还是旧式服务器系统,所述计算机实现的方法由一个或多个处理器来执行,所述一个或多个处理器执行用于所述计算机实现的方法的计算机可执行指令,并且所述计算机实现的方法包括:
识别针对现代服务器系统而格式化的事件序列,其中,所述事件序列包括能够由现代服务器系统使用的主消息,并且其中,所述主消息包括针对所述序列中的所有事件的默认信息;
识别多个实例消息,其中,所述实例消息中的每一个包括针对所述事件序列中的给定事件的默认信息和例外信息,其中,所述实例消息是使用所述主消息和包含在所述主消息中的所述默认信息来创建的;以及
将所述主消息和所述实例消息两者发送至其它服务器系统,无论所述其它服务器系统是现代服务器系统还是旧式服务器系统。
5.根据权利要求4所述的计算机实现的方法,其中,创建所述实例消息包括:
针对每个实例消息,识别一个或多个属性,所述一个或多个属性还未利用来自所述主消息的默认属性值而被定义并且还未被定义为来自所述主消息的所述默认属性的有效例外;以及
将来自所述主消息的相对应的属性的默认属性值传送至所识别的属性中的每一个。
6.根据权利要求4所述的计算机实现的方法,进一步包括使用来自所述主消息的所述默认信息和从用户接收到的例外信息来创建所述实例消息。
7.根据权利要求4所述的计算机实现的方法,进一步包括针对所述多个实例消息中的实例消息中的每一个接收相似的回复,并且作为结果将所述回复解释为对所述主消息的回复。
8.根据权利要求4所述的计算机实现的方法,进一步包括针对所述多个实例消息中的实例消息中的一个或多个接收回复,并且作为结果更新针对其接收到回复的所述实例消息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/842,023 US9929989B2 (en) | 2015-09-01 | 2015-09-01 | Interoperability with legacy clients |
US14/842,023 | 2015-09-01 | ||
PCT/US2016/049347 WO2017040445A1 (en) | 2015-09-01 | 2016-08-30 | Interoperability with legacy clients |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107924344A CN107924344A (zh) | 2018-04-17 |
CN107924344B true CN107924344B (zh) | 2022-04-19 |
Family
ID=57068173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680050626.0A Active CN107924344B (zh) | 2015-09-01 | 2016-08-30 | 与旧式客户端互操作的方法以及服务器系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9929989B2 (zh) |
EP (1) | EP3345093A1 (zh) |
CN (1) | CN107924344B (zh) |
WO (1) | WO2017040445A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9977666B2 (en) | 2015-09-01 | 2018-05-22 | Microsoft Technology Licensing, Llc | Add a new instance to a series |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1797344A (zh) * | 2004-12-20 | 2006-07-05 | 英业达股份有限公司 | 计算机平台操作系统兼容处理方法及装置 |
CN101540707A (zh) * | 2008-03-21 | 2009-09-23 | 中兴通讯股份有限公司 | 一种WiMAX系统超帧结构的设置方法和接入方法 |
WO2010018637A1 (ja) * | 2008-08-15 | 2010-02-18 | 富士通株式会社 | 業務フロー分散処理システム及び方法 |
CN101986647A (zh) * | 2010-11-04 | 2011-03-16 | 中兴通讯股份有限公司 | Vrrp的兼容方法及装置 |
CN104376073A (zh) * | 2014-11-14 | 2015-02-25 | 北京锐安科技有限公司 | 一种数据库恢复方法及装置 |
CN104756464A (zh) * | 2012-10-30 | 2015-07-01 | 微软公司 | 使用传统协议向传统客户端传达状态信息 |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4653048A (en) | 1984-05-14 | 1987-03-24 | American Telephone And Telegraph Company | Method for interprocessor message accountability |
US5197000A (en) | 1990-07-09 | 1993-03-23 | International Business Machines Corporation | Method of scheduling meetings |
US6272074B1 (en) | 1993-09-23 | 2001-08-07 | Oracle Corporation | Method and apparatus for generating recurring events in a calendar/schedule system |
US5813013A (en) | 1996-06-06 | 1998-09-22 | Microsoft Corporation | Representing recurring events |
US5905863A (en) | 1996-06-07 | 1999-05-18 | At&T Corp | Finding an e-mail message to which another e-mail message is a response |
EP1025526A1 (en) | 1997-10-24 | 2000-08-09 | Microsoft Corporation | Generating meeting requests and group scheduling from a mobile device |
US6369840B1 (en) | 1999-03-10 | 2002-04-09 | America Online, Inc. | Multi-layered online calendaring and purchasing |
WO2002029647A1 (en) | 2000-09-30 | 2002-04-11 | Intel Corporation (A Corporation Of Delaware) | Method, apparatus, and system for distributed meeting scheduling based on autonomous multi-agent |
US20030154116A1 (en) | 2002-01-04 | 2003-08-14 | Lofton Jeffrey C. | System and method for scheduling events on an internet based calendar |
US7343312B2 (en) | 2002-04-25 | 2008-03-11 | International Business Machines Corporation | Event scheduling with optimization |
US7016909B2 (en) | 2002-06-04 | 2006-03-21 | Microsoft Corporation | Method and system for expansion of recurring calendar events |
US20030233265A1 (en) | 2002-06-17 | 2003-12-18 | International Business Machines Corporation | Method, system and program product for interactive electronic meeting scheduling |
US9799008B2 (en) | 2004-02-27 | 2017-10-24 | International Business Machines Corporation | Applying ordered modifications to recurring event instances |
US7370282B2 (en) | 2004-04-06 | 2008-05-06 | Cary James C | Grouping and displaying multiple tasks within an event object of an electronic calendar |
US7818377B2 (en) | 2004-05-24 | 2010-10-19 | Microsoft Corporation | Extended message rule architecture |
US7433898B1 (en) | 2004-06-01 | 2008-10-07 | Sanbolic, Inc. | Methods and apparatus for shared storage journaling |
US8850330B2 (en) | 2004-07-26 | 2014-09-30 | International Business Machines Corporation | Editing repeating calendar events |
WO2006092790A2 (en) | 2005-03-01 | 2006-09-08 | Timebridge Inc. | Automatic scheduling method and apparatus |
US20070005409A1 (en) | 2005-06-30 | 2007-01-04 | International Business Machines Corporation | Method and structure for overriding calendar entries based on context and business value |
US20070079260A1 (en) | 2005-10-04 | 2007-04-05 | Bhogal Kulvir S | Method and apparatus to transmit a calendar event in target calendaring system format |
US7499942B2 (en) | 2005-12-28 | 2009-03-03 | Microsoft Corporation | Modeling recurring events in a data store |
US8924269B2 (en) | 2006-05-13 | 2014-12-30 | Sap Ag | Consistent set of interfaces derived from a business object model |
US20080114636A1 (en) | 2006-11-09 | 2008-05-15 | Nellutla Thirumal R | Smart Meetings Interactive Electronic Calendar |
US7865872B2 (en) | 2006-12-01 | 2011-01-04 | Murex S.A.S. | Producer graph oriented programming framework with undo, redo, and abort execution support |
US20080147469A1 (en) | 2006-12-13 | 2008-06-19 | Murillo Jessica C | Method to Enhance Calendar Event Management by Automating the Selection of Attendees Based on Grouping and Response |
IL180566A (en) | 2007-01-04 | 2013-03-24 | Boaz Fletcher | Electronic messaging system and method |
US8244568B2 (en) | 2007-07-12 | 2012-08-14 | International Business Machines Corporation | Method and apparatus for gathering participant free time to schedule events on an electronic calendar |
US7743098B2 (en) | 2007-10-29 | 2010-06-22 | International Business Machines Corporation | Meeting invitation processing in a calendaring system |
US8150896B2 (en) * | 2007-12-21 | 2012-04-03 | Make Technologies, Inc. | Auditing tool for a legacy software modernization system |
US20090248474A1 (en) | 2008-04-01 | 2009-10-01 | Eric Philip Fried | Meeting planning assistance via network messages |
US8838461B2 (en) | 2008-12-19 | 2014-09-16 | Qualcomm Incorporated | Access and management of cross-platform calendars |
US8578218B2 (en) | 2009-04-04 | 2013-11-05 | Oracle International Corporation | Method and system for implementing a scalable, high-performance, fault-tolerant locking mechanism in a multi-process environment |
US9124448B2 (en) | 2009-04-04 | 2015-09-01 | Oracle International Corporation | Method and system for implementing a best efforts resequencer |
US20100262926A1 (en) | 2009-04-13 | 2010-10-14 | Gupta Pawan | Customizing recurring calendar events |
US20110015961A1 (en) | 2009-07-15 | 2011-01-20 | Danny Chan | Method and system for an event scheduler |
US20110054976A1 (en) | 2009-08-26 | 2011-03-03 | Apple Inc. | Scheduling Recurring Calendar Events |
US20110202999A1 (en) | 2010-02-12 | 2011-08-18 | Research In Motion Limited | System and method for controlling event entries |
US20110225015A1 (en) | 2010-03-12 | 2011-09-15 | Nova Spivack | Interactive calendar of scheduled web-based events |
US9195681B2 (en) | 2010-04-01 | 2015-11-24 | Salesforce.Com, Inc. | System, method and computer program product for transmitting a group of data elements |
US20110320237A1 (en) | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Meeting Calendar Optimization |
US8577959B2 (en) | 2010-07-01 | 2013-11-05 | Microsoft Corporation | Managing recurring appointments |
US8495656B2 (en) | 2010-10-15 | 2013-07-23 | Attivio, Inc. | Ordered processing of groups of messages |
US20120221369A1 (en) | 2011-02-24 | 2012-08-30 | Mckesson Financial Holdings | Method, apparatus and computer program product for suggesting imperfect times for cyclical appointments |
US9105015B2 (en) | 2011-05-24 | 2015-08-11 | International Business Machines Corporation | Scheduling events for multiple invitees |
US20130067024A1 (en) | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Distributing multi-source push notifications to multiple targets |
US20130144672A1 (en) | 2011-12-05 | 2013-06-06 | International Business Machines Corporation | Analytics-Based Community Value Meetings |
US20130246526A1 (en) | 2012-03-18 | 2013-09-19 | Nam Wu | Consensus and preference event scheduling |
US10803424B2 (en) | 2012-04-27 | 2020-10-13 | Calendar Research Llc | Appointment negotiation systems and methods |
US11082371B2 (en) | 2012-04-27 | 2021-08-03 | Calendar Research Llc | Appointment negotiation systems and methods |
US20130298043A1 (en) | 2012-05-07 | 2013-11-07 | Free For Friday, LLC | System and Method for Arranging a Group Outing or Activity |
EP2743869A1 (en) | 2012-12-14 | 2014-06-18 | Amadeus | Event management systems |
US20140282005A1 (en) | 2013-03-15 | 2014-09-18 | Howard Gutowitz | Apparatus for message triage |
US20140278675A1 (en) | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Negotiated meeting scheduling with one or more required attendees |
US20140310045A1 (en) | 2013-04-16 | 2014-10-16 | Go Daddy Operating Company, LLC | Generating and Displaying a Calendar Event Recurrence Preview |
US20150058425A1 (en) | 2013-08-20 | 2015-02-26 | Eyal Nathan | Smart meeting service |
-
2015
- 2015-09-01 US US14/842,023 patent/US9929989B2/en active Active
-
2016
- 2016-08-30 WO PCT/US2016/049347 patent/WO2017040445A1/en active Application Filing
- 2016-08-30 CN CN201680050626.0A patent/CN107924344B/zh active Active
- 2016-08-30 EP EP16775889.5A patent/EP3345093A1/en not_active Ceased
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1797344A (zh) * | 2004-12-20 | 2006-07-05 | 英业达股份有限公司 | 计算机平台操作系统兼容处理方法及装置 |
CN101540707A (zh) * | 2008-03-21 | 2009-09-23 | 中兴通讯股份有限公司 | 一种WiMAX系统超帧结构的设置方法和接入方法 |
WO2010018637A1 (ja) * | 2008-08-15 | 2010-02-18 | 富士通株式会社 | 業務フロー分散処理システム及び方法 |
CN101986647A (zh) * | 2010-11-04 | 2011-03-16 | 中兴通讯股份有限公司 | Vrrp的兼容方法及装置 |
CN104756464A (zh) * | 2012-10-30 | 2015-07-01 | 微软公司 | 使用传统协议向传统客户端传达状态信息 |
CN104376073A (zh) * | 2014-11-14 | 2015-02-25 | 北京锐安科技有限公司 | 一种数据库恢复方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US9929989B2 (en) | 2018-03-27 |
EP3345093A1 (en) | 2018-07-11 |
CN107924344A (zh) | 2018-04-17 |
US20170063743A1 (en) | 2017-03-02 |
WO2017040445A1 (en) | 2017-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8019863B2 (en) | Synchronizing events between mobile devices and servers | |
US8023934B2 (en) | Synchronizing communications and data between mobile devices and servers | |
US8271577B2 (en) | Processing recurring events within personal information management clients | |
US8219920B2 (en) | Methods and systems for managing to do items or notes or electronic messages | |
US20030135659A1 (en) | Message-based system having embedded information management capabilities | |
US20070089071A1 (en) | Software mechanism for providing distinct types of time dependent event objects for display in a graphical user interface | |
US20090125818A1 (en) | Systems and methods to create follow-up meetings | |
US8768887B2 (en) | Generating and binding notes to business objects | |
WO2006089764A1 (en) | Integrating computer applications using groupware products | |
US20070100845A1 (en) | Customer relationship management integration system and method | |
US20080228853A1 (en) | Software system | |
US8478721B2 (en) | Synchronization of recurring time-scheduled data objects between incompatible databases | |
CN107924344B (zh) | 与旧式客户端互操作的方法以及服务器系统 | |
US10509640B2 (en) | Add a new instance to a series | |
CN107949856B (zh) | 电子邮件停放区 | |
US9979682B2 (en) | Command propagation optimization | |
US10163076B2 (en) | Consensus scheduling for business calendar | |
WO2013119141A1 (en) | Method for a synchronization of objects between a personal information manager and an external server | |
US8725821B1 (en) | System and method for project and process management by synchronizing custom objects between ms outlook and external server | |
EP2104062A2 (en) | Software mechanism for providing distinct types of time dependent event objects for display in a graphical user interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |