首页 / 专利库 / 资料储存系统 / 数据存储库 / 用于通过外部系统进行内容共享的系统和方法

用于通过外部系统进行内容共享的系统和方法

阅读:98发布:2020-05-08

专利汇可以提供用于通过外部系统进行内容共享的系统和方法专利检索,专利查询,专利分析的服务。并且公开了用于通过外部系统共享被管理内容的机制。共享模 块 向外部系统公布共享项中的内容和与其相关联的元数据。共享项代表由诸如企业内容管理系统的信息系统管理的存储库中的文件夹或目录。所述公布通过应用编程 接口 (API)调用而变为可能,API调用由第一共享模块API、存储库API、第二共享模块API和外部系统API处理。这些API共同提供由被管理存储库和外部系统使用的通信协议的一对一映射。被管理存储库中的共享项和向外部系统公布的共享项被同步,并且这两者之间的任何冲突被检测和解决。共享的内容可以被遣送回被管理存储库,并且共享的版本从外部系统被删除。,下面是用于通过外部系统进行内容共享的系统和方法专利的具体信息内容。

1.一种用于通过外部系统进行内容共享的方法,包括:
由共享模接收用于向外部系统公布共享项的指令,共享项代表在被管理存储库中的文件夹或目录,共享模块在企业计算环境中操作的服务器机器上运行,被管理存储库驻留在企业计算环境中,外部系统在被管理存储库外部独立地操作,所述服务器机器具有处理器和非暂时性计算机可读介质;以及
由共享模块从被管理存储库向外部系统公布共享项中的对象和与对象相关联的元数据,所述公布包括:
进行第一应用编程接口(API)调用以从被管理存储库中的共享项检索对象和元数据;
以及
进行第二API调用以将对象和元数据传送给外部系统;
其中,第一API调用是通过第一共享模块API和存储库API进行的,第一共享模块API将共享模块和存储库API通过接口连接,存储库API将第一共享模块和被管理存储库通过接口连接;
其中,第二API调用是通过第二共享模块API和外部系统API进行的,第二共享模块API将共享模块和外部系统API通过接口连接,外部系统API将第二共享模块API和外部系统通过接口连接;以及
其中,存储库API、第一共享模块API、第二共享模块API和外部系统API一起提供由被管理存储库和外部系统使用的通信协议的一对一映射。
2.根据权利要求1所述的方法,其中,所述指令是根据由被管理存储库的管理员定义的共享配置文件以编程的方式从调度器自动接收的,共享配置文件包含适用于共享项的内容共享规则,调度器在所述服务器机器上运行。
3.根据权利要求1所述的方法,进一步包括:
响应于用于向外部系统公布共享项的指令,由所述服务器机器上运行的图表构建器为共享项构建第一图表,第一图表包含代表共享项中的对象的节点
在公布之后,由共享模块同步在被管理存储库中的共享项和由共享模块向外部系统公布的共享项,所述同步返回来自被管理存储库或外部系统的对于共享项的更新、或者来自被管理存储库和外部系统这二者的更新;
由图表构建器基于来自所述同步的结果为共享项构建第二图表;
由所述服务器机器上运行的分析器通过将共享项的第一图表和共享项的第二图表进行比较来检测对于共享项的任何改变;
由分析器确定对于共享项的任何改变是否引起对于共享项中的对象的版本控制冲突;
以及
如果对于共享项中的对象的版本控制冲突被发现,则由分析器将版本控制冲突中涉及的对象的冲突版本传送给冲突解决器以用于冲突解决。
4.根据权利要求3所述的方法,其中,冲突解决包括:
重新命名对象的冲突版本中的第一版本的文件扩展名,从而改变第一版本的文件类型;
通过在用户装置上运行的用户界面向用户至少呈现对象的第一版本;
通过所述用户界面提示用户选择对象的冲突版本中的一个;以及
基于用户选择来确定对象的解决后的版本,其中,对象的解决后的版本被同步回被管理存储库、外部系统或这二者。
5.根据权利要求1所述的方法,进一步包括:
为共享项构建图表,所述图表包含代表共享项中的对象的节点;以及
使用所述图表来跟踪对于共享项中的对象的任何改变。
6.根据权利要求5所述的方法,进一步包括:
使用所述图表来检测对于共享项中的文件的改变;
分析对于文件的改变;
基于所述分析,确定对于文件的改变表示在被管理存储库中的文件和向外部系统公布的文件的版本之间的冲突;以及
解决在被管理存储库中的文件和向外部系统公布的文件的版本之间的冲突,所述解决包括基于向外部系统公布的文件的版本来创建文件的冲突版本,文件的冲突版本具有冲突文件类型。
7.根据权利要求6所述的方法,进一步包括:
向用户通知在被管理存储库中的文件和向外部系统公布的文件的版本之间的冲突;或者
将文件的冲突版本发送给用户以用于冲突解决。
8.根据权利要求1所述的方法,其中,与对象相关联的元数据是在对被管理存储库进行管理的信息系统中产生的,以及其中,元数据提供对于对象的上下文。
9.根据权利要求1所述的方法,其中,外部系统是通过共享模块连接到被管理存储库的多个外部系统中的一个,所述多个外部系统中的每个外部系统通过共享模块API、特定于被管理存储库的存储库API、以及特定于所述每个外部系统的外部系统API的对,在被管理存储库和所述每个外部系统之间具有一对一映射。
10.根据权利要求9所述的方法,其中,被管理存储库是连接到共享模块的多个被管理存储库中的一个,所述多个被管理存储库中的每个被管理存储库通过特定于所述每个被管理存储库的存储库API和共享模块API连接到共享模块。
11.一种用于通过外部系统进行内容共享的系统,包括:
在企业计算环境中操作的服务器机器,所述服务器机器具有处理器、非暂时性计算机可读介质、以及能够由所述处理器翻译来实现共享模块的存储指令,所述服务器机器连接到驻留在企业计算环境中的被管理存储库、以及在被管理存储库外部独立地操作的外部系统,共享模块被配置为:
接收用于向外部系统公布共享项的指令,共享项代表在被管理存储库中的文件夹或目录;以及
从被管理存储库向外部系统公布共享项中的对象和与对象相关联的元数据,所述公布包括:
进行第一应用编程接口(API)调用以从被管理存储库中的共享项检索对象和元数据;
以及
进行第二API调用以将对象和元数据传送给外部系统;
其中,第一API调用是通过第一共享模块API和存储库API进行的,第一共享模块API将共享模块和存储库API通过接口连接,存储库API将第一共享模块和被管理存储库通过接口连接;
其中,第二API调用是通过第二共享模块API和外部系统API进行的,第二共享模块API将共享模块和外部系统API通过接口连接,外部系统API将第二共享模块API和外部系统通过接口连接;以及
其中,存储库API、第一共享模块API、第二共享模块API和外部系统API一起提供由被管理存储库和外部系统使用的通信协议的一对一映射。
12.根据权利要求11所述的系统,其中,所述指令是根据由被管理存储库的管理员定义的共享配置文件以编程的方式从调度器自动接收的,共享配置文件包含适用于共享项的内容共享规则,调度器在所述服务器机器上运行。
13.根据权利要求11所述的系统,其中,所述存储指令能够由所述处理器进一步翻译来:
响应于用于向外部系统公布共享项的指令,为共享项构建第一图表,第一图表包含代表共享项中的对象的节点;
在公布之后,同步在被管理存储库中的共享项和向外部系统公布的共享项,所述同步返回来自被管理存储库或外部系统的对于共享项的更新、或者来自被管理存储库和外部系统这二者的更新;
基于来自所述同步的结果为共享项构建第二图表;
通过将共享项的第一图表和共享项的第二图表进行比较来检测对于共享项的任何改变;
确定对于共享项的任何改变是否引起对于共享项中的对象的版本控制冲突;以及如果对于共享项中的对象的版本控制冲突被发现,则将版本控制冲突中涉及的对象的冲突版本传送给冲突解决器以用于冲突解决。
14.根据权利要求13所述的系统,其中,冲突解决包括:
重新命名对象的冲突版本中的第一版本的文件扩展名,从而改变第一版本的文件类型;
通过在用户装置上运行的用户界面向用户至少呈现对象的第一版本;
通过所述用户界面提示用户选择对象的冲突版本中的一个;以及
基于用户选择来确定对象的解决后的版本,其中,对象的解决后的版本被同步回被管理存储库、外部系统或这二者。
15.根据权利要求11所述的系统,其中,所述存储指令能够由所述处理器进一步翻译来:
为共享项构建图表,所述图表包含代表共享项中的对象的节点;以及
使用所述图表来跟踪对于共享项中的对象的任何改变。
16.根据权利要求15所述的系统,其中,所述存储指令能够由所述处理器进一步翻译来:
使用所述图表来检测对于共享项中的文件的改变;
分析对于文件的改变;
基于所述分析,确定对于文件的改变表示在被管理存储库中的文件和向外部系统公布的文件的版本之间的冲突;以及
解决在被管理存储库中的文件和向外部系统公布的文件的版本之间的冲突,所述解决包括基于向外部系统公布的文件的版本来创建文件的冲突版本,文件的冲突版本具有冲突文件类型。
17.根据权利要求16所述的系统,其中,所述存储指令能够由所述处理器进一步翻译来:
向用户通知在被管理存储库中的文件和向外部系统公布的文件的版本之间的冲突;或者
将文件的冲突版本发送给用户以用于冲突解决。
18.根据权利要求11所述的系统,其中,与对象相关联的元数据是在对被管理存储库进行管理的信息系统中产生的,以及其中,元数据提供对于对象的上下文。
19.根据权利要求11所述的系统,其中,外部系统是通过共享模块连接到被管理存储库的多个外部系统中的一个,所述多个外部系统中的每个外部系统通过共享模块API、特定于被管理存储库的存储库API、以及特定于所述每个外部系统的外部系统API的对,在被管理存储库和所述每个外部系统之间具有一对一映射。
20.根据权利要求19所述的系统,其中,被管理存储库是连接到共享模块的多个被管理存储库中的一个,所述多个被管理存储库中的每个被管理存储库通过特定于所述每个被管理存储库的存储库API和共享模块API连接到共享模块。

说明书全文

用于通过外部系统进行内容共享的系统和方法

[0001] 相关申请的交叉引用
[0002] 本申请要求2017年7月7日提交的、标题为“SYSTEMS AND METHODS FOR CONTENT SHARING THROUGH EXTERNAL SYSTEMS”的美国临时申请No.62/529,617的优先权,并且要求2018年2月27日提交的、标题为“SYSTEMS AND METHODS FOR CONTENT SHARING THROUGH EXTERNAL SYSTEMS”的美国专利申请No.15/906,846的优先权,这两篇申请特此整个地通过引用全部并入。

技术领域

[0003] 本公开总体上涉及企业信息管理(EIM)领域。更具体地说,本公开涉及在联网的计算环境中操作的EIM系统。甚至更具体地说,本公开涉及通过在计算环境中操作的外部系统,共享由受限制的存储系统、存储库、在企业计算环境中操作的EIM系统管理的内容或任何信息。

背景技术

[0004] 企业信息管理(EIM)是信息技术(IT)中的特定技术领域。EIM组合许多企业类系统,诸如企业内容管理(ECM)、业务处理管理(BPM)、客户体验管理(CEM)和业务智能(BI)。EIM系统可以利用内容服务器来除了别的之外存储和管理组织或企业的数字资产,诸如内容和文档(其在本文中被共称为“被管理对象”)。为了保护这些被管理对象,内容服务器将在企业的防火墙的后面进行操作,并且可以被特别配置为使得只有被授权用户可以安全地访问被管理对象。通常,内容服务器被安置在组织或企业的驻地上(例如,服务器机器或其上实现内容服务器的机器将被物理地安装在建筑物中)。这有时被称为“驻地(on-prem)”。
[0005] 随着企业继续增长,对于使企业用户与外部用户协作和/或共享文件的需要也增长。因为外部用户一般不被授权访问企业的EIM系统,所以他们不能查看和/或编辑由企业的内容服务器管理的任何文件。当对于使外部用户审阅和/或编辑文件的需要出现时,一个常见的选择是使企业用户从内容服务器所驻留的企业网络内登陆到企业内容服务器中,检索文件,并且通过电子邮件或者通过向公众开放的基于云的存储系统与外部用户共享文件的副本。
[0006] 一旦该副本在企业网络外部被共享,它就不再受内容服务器的管理。内容服务器没有办法跟踪共享的副本、将共享的副本返回给内容服务器、和/或更新原始文件以反映对共享的副本进行的任何改变。因为这种种类的“拷贝并且设置自由共享”可能造成安全险,所以共享特征在内容服务器中可能被禁用以阻止共享某些文件、文件夹、目录等。然而,这意味着在外部进行共享的需要没有得到解决。本文中所公开的实施例可以解决该需要和更多问题。发明内容
[0007] 本发明的目标是通过提供暴露由在企业计算环境中操作的“驻地”EIM系统管理的内容的可靠且安全的方式来改进EIM系统。该目标可以在特征丰富的内容服务器平台上运行的共享模中实现,在所述特征丰富的内容服务器平台中,内容服务器用户可以可靠且安全地通过外部系统(诸如基于云的存储系统)与外部参与者共享EIM管理的内容和在该内容上协作。在本公开中,术语“平台”广义地指在其上多个软件产品(即,应用)可以在同一技术框架内被构建的特定结构。在这种情况下,该结构既包括硬件组件,又包括软件组件
[0008] 本文中所公开的实施例可以在许多合适的EIM系统上实现。可向总部设在加拿大的OpenText(开文)购买的Documentum可以是在其上可以实现本文中所公开的一些实施例TM的特征丰富的ECM平台的非限制性例子。为了例示说明而非限制的目的,OpenText  Core(OpenTextTM核)(“Core”)可以是外部系统(即,在企业计算环境中操作的EIM系统或内容服务器外部的系统,例如,在企业计算环境外部的网络计算环境中操作的基于云的存储系统)的非限制性例子。Core在云计算环境中操作,并且提供用于安全地共享文件和在文件上协作的个人云存储。这些文件由Core存储在与企业计算环境分开的且独立的云计算环境中(例如,被存储在由云托管的服务提供商(诸如OpenTextTM云)运营的多租户平台中的租户服务器计算机上)。技术人员意识到,本文中所公开的实施例不限于Core,并且可以与任何外部系统(包括在本文中所公开的在其防火墙后面的企业计算环境中操作的EIM系统外部的云计算环境中操作的任何第三方云存储系统)一起很好地工作。
[0009] 在如今的高度连接的世界中,企业用户通常出于各种目的与其他个人和组织协作。该协作需要与内容消耗的系统处的协作者共享存储库中的被授权内容(例如,已经被审阅和批准用于在企业外部共享的被管理企业内容)。这种人口统计的协作者否则将由于系统限制,不可以访问内容。例如,在企业计算环境的后端操作的EIM系统不直接连接到前端内容递送应用,诸如传真应用。此外,对于外部用户的约束(诸如用户特权)可以限制内容在协作参与者之间可以如何交换/共享。例如,用户John可能更愿意以传真得到信息,但是,现有的EIM系统并不直接与传真应用连接。作为另一个例子,作为制品的共同创作者的用户Cathy可能想要对该制品的最新的副本进行工作,并且可能想要使用文件同步-n-共享系统来从不同的装置工作。然而,她的出版商的存储库并不直接与外部的文件同步-n-共享应用连接。这些限制和约束可能不利地影响协作,并且降低生产率/性能。
[0010] 先前的解决方案尝试通过允许用户使用外部的文件同步和共享服务将内容传送出存储库来解决这些问题。然而,这需要单个存储库和单个外部系统之间的复杂的、硬编码的自定义设置。一旦被设置,所述单个存储库和所述单个外部系统就具有紧密耦合的关系——文件同步和共享服务就只可以在所述单个存储库和所述单个外部系统之间传送内容。
[0011] 这种类型的内容共享方法可以限制内容消耗的系统(例如,内容可以被传送给的外部系统)的数量。对内容可以从其被传送给这些内容消耗的系统的存储库的数量也存在约束。另一个限制是,它不提供传送与正被共享的内容相关联的任何元数据。一般来说,外部系统将创建它们自己的元数据,所以它们不使用源元数据。
[0012] 在一些实施例中,一种用于通过外部系统共享由EIM系统管理的内容的方法可以包括:由共享模块接收向外部系统公布共享项的指令,所述共享项表示被管理存储库中的文件夹或目录,所述共享模块在企业计算环境中操作的服务器机器上运行,所述被管理存储库驻留在所述企业计算环境中,所述外部系统在被管理存储库外部独立地操作,所述服务器机器具有处理器和非暂时性计算机可读介质。所述方法可以进一步包括由共享模块从被管理存储库向外部系统公布共享项中的对象和与这些对象相关联的元数据。在一些实施例中,与对象相关联的元数据是在管理被管理存储库的EIM系统中产生的以提供对于对象的上下文。这些有时被称为“源”元数据。以前,当被管理内容在外部共享时,这样的源元数据不与外部系统共享和/或不被外部系统使用。
[0013] 在一些实施例中,共享模块进行的公布可以包括:进行第一应用编程接口(API)调用以从被管理存储库中的共享项检索对象和元数据;并且进行第二API调用以将对象和元数据传送给外部系统。在一些实施例中,第一API调用是通过第一共享模块API和存储库API进行的,第一共享模块API将共享模块和存储库API通过接口连接,存储库API将第一共享模块和被管理存储库通过接口连接。在一些实施例中,第二API调用是通过第二共享模块API和外部系统API进行的,第二共享模块API将共享模块和外部系统API通过接口连接,外部系统API将第二共享模块API和外部系统通过接口连接。存储库API、第一共享模块API、第二共享模块API和外部系统API共同提供由被管理存储库和外部系统使用的通信协议的一对一映射。
[0014] 在一些实施例中,用于公布的指令是根据由被管理存储库的管理员定义的共享配置文件以编程的方式从调度器自动接收的。共享配置文件包含被管理员指定为适用于共享项的内容共享规则,调度器在服务器机器上运行。内容共享规则可以被表征为单向同步规则集或双向同步规则集。
[0015] 在一些实施例中,响应于向外部系统公布共享项的指令,图表构建器(其可以是共享模块的一部分)可以为共享项构建第一图表。第一图表包含代表在公布时共享项中的对象的节点
[0016] 在一些实施例中,在共享项被向外部系统公布之后,共享模块通过按照需求、连续地、或者每一预定时间间隔执行单向同步或双向同步来监视对于共享项的任何改变,以同步被管理存储库中的共享项和向外部系统公布的共享项。同步操作返回来自被管理存储库或外部系统的对于共享项的更新,如果共享配置文件命令单向不同步的话,或者返回来自被管理存储库和外部系统这二者的更新,如果共享配置文件命令双向同步的话。
[0017] 在一些实施例中,所述方法可以进一步包括:基于来自同步操作的结果为共享项构建第二图表;通过将共享项的第一图表和共享项的第二图表进行比较来检测对于共享项的任何改变;确定对于共享项的任何改变是否引起对于共享项中的对象的版本控制冲突;如果对于共享项中的对象的版本控制冲突被发现,则将版本控制冲突中所涉及的对象的冲突版本传送给冲突解决器以用于冲突解决。在一些实施例中,冲突解决可以包括:重新命名对象的冲突版本中的第一版本的文件扩展名,从而改变第一版本的文件类型;通过在用户装置上运行的用户界面向用户至少呈现对象的第一版本;通过用户界面提示用户选择对象的冲突版本中的一个;并且基于用户选择确定对象的解决后的版本。对象的解决后的版本然后可以被同步回被管理存储库、外部系统或这二者。这使得在外部共享的内容将与驻留在后端的版本同步。当在外部共享内容的需要不再存在时,在外部共享的内容可以被遣送回被管理存储库。在最后的同步操作之后,共享模块已经向外部系统公布的版本被外部系统响应于来自共享模块的请求而删除。外部系统向其(一个或多个)用户通知争议中的内容不再被共享。
[0018] 在一些实施例中,外部系统可以是通过共享模块连接到被管理存储库的多个外部系统中的一个。所述多个外部系统中的每个外部系统通过共享模块API、特定于被管理存储库的存储库API、以及特定于每个外部系统的外部系统API的对,在被管理存储库和每个外部系统之间将具有一对一映射。同样地,被管理存储库可以是连接到共享模块的多个被管理存储库中的一个。所述多个被管理存储库中的每个被管理存储库将通过特定于每个被管理存储库的存储库API和共享模块API连接到共享模块,以使得尽管共享模块允许在被管理存储库和外部系统之间有多对多连接,但是每对被管理存储库和外部系统可以具有特定的一对一映射关系。该布置使得底层架构是可扩展的、自适应的和灵活的。
[0019] 一个实施例包括一种包括处理器和非暂时性计算机可读存储介质的系统,所述非暂时性计算机可读存储介质存储处理器可翻译来执行基本上如本文中所描述的方法的计算机指令。另一个实施例包括一种具有非暂时性计算机可读存储介质的计算机程序产品,所述非暂时性计算机可读存储介质存储处理器可翻译来执行基本上如本文中所描述的方法的计算机指令。许多其他的实施例也是可能的。
[0020] 本公开的这些及其他方面在结合以下描述和附图考虑时将被更好地领会和理解。然而,应理解,以下描述虽然指示本公开的各种实施例和它们的许多特定的细节,但是是作为例示说明、而非限制给出的。在不脱离本公开的精神的情况下,可以在本公开的范围内进行许多替换、修改、添加和/或重排,并且本公开包括所有这样的替换、修改、添加和/或重排。

附图说明

[0021] 附随本说明书并且构成本说明书的一部分的附图包括在内是为了描绘本发明的某些方面。本发明和通过本发明提供的系统的组件和操作的更清楚的印象通过参照附图所示的示例性的、因此非限制性的实施例将变得更清晰,其中,相同的标号指定相同的组件。注意,附图所示的特征不一定是按比例绘制的。
[0022] 图1描绘根据本文中所公开的一些实施例的通过连接被管理存储库与外部系统的共享模块来共享存储在企业计算环境中的被管理存储库中的内容的图示。
[0023] 图2描绘根据本文中所公开的一些实施例的示例性共享模块的系统架构的图示。
[0024] 图3描绘根据本文中所公开的一些实施例的示例性共享模块的系统组件和操作流程的图示。
[0025] 图4描绘例示说明根据本文中所公开的一些实施例的用于通过外部系统共享内容的方法的流程图
[0026] 图5描绘其中可以实现所公开的实施例的分布式网络计算环境的图示。

具体实施方式

[0027] 参照附图中例示说明的并且在以下描述中详述的非限制性实施例来更充分地说明本发明和各种特征以及它们的有益细节。众所周知的原材料、处理技术、组件和设备的描述被省略,以便不会不必要地在细节上使本发明模糊。然而,应理解,详述的描述和特定的例子虽然指示了本发明的一些实施例,但是仅仅是作为例示说明、而非限制给出的。在基本的发明构思的精神和/或范围内的各种替换、修改、添加和/或重排对于本领域技术人员来说从本公开将变得清晰。
[0028] 本公开的目标是提供在企业计算环境中操作的特征丰富的EIM平台,在该平台中,企业用户可以可靠且安全地与否则不可以访问被管理内容的用户(例如,外部Core用户和/或不是EIM系统的被授权用户的企业用户)共享被管理内容(例如,在由在企业计算环境中、企业的防火墙后面可靠且安全地操作的EIM系统所管理的存储库中存储的文档)和/或在该被管理内容上协作。
[0029] 与外部参与者/协作者共享内容不应使现有的EIM用户有必须学习如何导航和使用外部系统的负担。由于安全的原因,EIM用户和外部系统之间的交互应保持最少。取而代之,EIM管理员应控制(例如,通过内容共享规则)内容将如何被共享或者内容何时将被共享、谁可以使用共享特权、等等。优选地,与外部参与者/协作者共享内容对EIM功能、EIM用户对EIM系统/存储库的可用性、和/或已经被共享的被管理文档应具有最小的或可忽略的影响。
[0030] 在一些实施例中,该目标和其他目标可以在策略上位于存储库层和外部系统层之间的共享模块中实现。该共享模块可以被安置在企业计算环境中的“驻地”,或者被托管在云计算环境中。
[0031] 存储库层具有通常在企业计算环境的后端操作的一个或多个存储库。这些可以是被配置为存储被管理对象(包括被管理内容,诸如文件、文档、应用和企业所拥有的任何数字资产)的任何合适的存储系统。这些存储系统可以被各种企业软件系统(包括各种类型的EIM系统,例如,OpenTextTM内容服务器、Documentum、ApplicationXtender(AX)等)使用和/或管理。
[0032] 外部系统层具有共享模块与其连接的一个或多个外部系统。如以上所讨论的,由EIM系统管理的存储库外部的系统可以是驻地外部系统或基于云的外部系统。外部系统具有必要的硬件(例如,(一个或多个)服务器机器)和软件(例如,基于云或web的用户接口)与用户装置可访问的(一个或多个)储存器,所述用户装置中的每个都具有它自己的数据储存器,诸如非暂时性计算机可读介质。
[0033] 如以上所讨论的,在一些情况下,企业用户可能需要与外部用户协作和/或共享文件。例如,企业的雇员“工程师”可能试图为将被交付给客户的新的创建设计规范。泵规范文档被存储在由企业所拥有的并且在驻地操作的Documentum管理的存储库中。然而,工程师需要来自将对泵供应零件的外部用户“承包商”的某个输入。承包商不可以访问Documentum存储库中的工程师的文档,但是工程师需要承包商能够编辑和改变泵规范文档以包括/更新关于承包商供应的零件的信息。为了解决该困境,工程师可以拷贝存储在Documentum存储库中的泵规范文档的副本,并且将该副本上传到承包商可访问的外部系统。另外或可替代地,工程师可以将泵规范文档的副本通过电子邮件发送给承包商。
[0034] 一旦被管理内容(例如,在以上例子中,为泵规范文档)的副本在企业外部得到并且共享(例如,通过电子邮件和/或上传到外部系统),它就不再受ECM系统(例如,在以上例子中,为Documentum)管理。因此,外部用户(例如,在以上例子中,为承包商)可以自由地查看、修改、拷贝、存储(例如,存储在外部系统的储存器中和/或存储在外部用户的装置上的储存器中)、并且甚至与否则可能不能访问存储在存储库中的被管理内容(例如,在以上例子中,工程师的文档)的其他用户共享它。因为共享的副本没有被存储在存储库中,所以ECM系统没有办法跟踪共享的副本、将共享的副本返回到存储库、和/或更新原始文件以反映对共享的副本进行的任何改变。
[0035] 对于企业(或具有内容管理需要的任何实体),这种种类的“拷贝并且设置自由共享”造成了安全风险。因此,共享特征在EIM系统中通常默认被禁用或关闭以防止某些文件、文件夹、目录等的未被授权的共享。EIM系统的管理员可以通过共享模块的管理员用户接口(“UI”)启用共享并且将共享特权分配给EIM用户。
[0036] 接着以上例子,假设工程师被赋予共享特权以通过指定的外部系统(诸如Core)与承包商共享存储在Documentum存储库中的泵规范文档。工程师可以将泵规范文档放置在被指定用于共享的Documentum存储库中的文件夹中,并且提供识别承包商的信息(例如,识别EIM用户与其共享被管理内容的外部系统用户的信息),例如,承包商的电子邮件地址。在该例子中,从共享模块的度来讲,工程师是“共享”用户,承包商是“被共享”用户。可替代地,工程师可以将包含Documentum存储库中的泵规范文档的文件夹指定为应向Core(或多个外部系统,如以下所说明的)公布的并且(一个或多个)“被共享”用户可访问的共享项。
[0037] Documentum的管理员可以通过管理员UI来向共享模块指定共享配置文件,该共享配置文件包含受制于某个(某些)内容共享规则(例如,管控共享项中的内容何时将被公布或者将被以其他方式在外部共享、同步何时将发生、同步将多久发生一次、它是单向同步还是双向同步、共享的内容何时将被遣送回存储库中等的内容共享规则)的共享项(例如,Documentum存储库中的指定的文件夹或目录)的列表。这样的共享配置文件是通过管理员UI创建和维护的。下面进一步说明的共享模块的共享和同步功能可以被实现为可以包括在许多前端用户应用(例如,EIM系统的客户端应用)中的同步-n-共享服务。
[0038] 使用Core作为外部系统的例子,当Documentum存储库中的共享项中的内容被共享模块向Core公布时,共享项中的一切都被提供给Core,连同识别(一个或多个)“被共享”用户和(一个或多个)对应的角色的信息。根据分配给被共享用户的角色,被共享用户仅被允许查看(例如,作为查看者)或编辑(例如,作为协作者或贡献者)共享的内容。Core可以存储共享的内容(例如,存储在与(一个或多个)“被共享”用户相关联的(一个或多个)存储位置中),向(一个或多个)“被共享”用户通知共享的内容,并且将与共享的内容相关联的(一个或多个)标识符(被Core在内部使用)返回给共享模块。Core产生的在内部识别副本的唯一标识符可以被共享模块存储在共享模块本地的数据库中以用于同步的目的。Core可操作为通知与共享的内容相关联的任何一个和所有的参与者,并且处理任何新的Core用户的注册。
[0039] 此时,Documentum存储库中的共享的内容与Core中的共享的内容是相同的(即,内容在Documentum存储库和Core之间共享)。根据共享的内容的共享配置文件,共享的内容可以经受共享模块执行的单向同步或双向同步。同步可以连续地或按时间间隔发生。
[0040] 在单向同步中,对于共享的内容的改变只可以在存储库侧或外部系统侧进行。在双向同步中,对于共享的内容的改变可以在存储库侧和外部系统侧这二者进行。也就是说,在双向同步中,外部接受者在外部系统中对共享的内容的版本进行的任何修改都可以被收回到存储库。在一些实施例中,存储库中对于共享的内容的版本的修改也被允许。然而,在单向同步中,共享的内容的版本中只有一个可以被修改或改变。在一些实施例中,存储库中对于共享的内容的版本的改变被移到外部系统,但是外部系统中对于共享的内容的版本的改变不被允许(即,外部系统中的共享的内容的版本是只读的)。
[0041] 在一些实施例中,一旦被共享/公布,存储库中的共享的内容的版本就被阻止改变(即,存储库中的共享的内容的版本在它在外部被共享时变为只读),并且外部系统中对于共享的内容的版本的改变被移回到存储库。在以下例子中例示说明该场景。
[0042] 假设工程师通过Core与承包商共享的泵规范文档经受单向同步。这意味着,在该例子中,一旦被共享模块向Core公布以供承包商编辑,存储在Documentum存储库中的共享项中的泵规范文档就变为只读的,并且对于其的改变只可以通过Core进行。这意味着,工程师(或Documentum的任何用户)不能修改存储在Documentum存储库中的共享项中的泵规范文档,但是承包商(和工程师,如果工程师也是Core的用户的话)可以通过Core编辑副本。
[0043] 当承包商已经完成了他们对存储在Core中的副本的输入时,任何最终的改变被共享模块同步回Documentum存储库以更新泵规范文档。存储在Core中的副本然后被删除。该处理被称为遣送。共享的内容的遣送可以由“共享”用户(例如,工程师)或在与共享的内容相关联的共享配置文件中阐述的内容共享规则(例如,指定遣送日期、外部内容共享的时间限制、或撤销“被共享”用户对共享的内容的访问的条件的内容共享规则)触发。
[0044] 技术人员认识到,在单向同步的另一个例子中,存储在Core中的泵规范文档的副本可以是只读的,以使得承包商可以查看、但是不能改变或修改存储在Core中的泵规范文档的副本。相反,允许通过Documentum进行改变(例如,由工程师或Documentum的被授权用户进行改变),改变然后被共享模块同步到Core以更新存储在Core中的泵规范文档的副本。
[0045] 如以上所讨论的,启用并且管理从ECM系统到ECM系统外部的外部系统的外部共享是非常困难的。这是因为企业文件同步和共享(EFSS)是非常复杂的功能,并且需要企业内部的存储库和企业外部的端点系统之间的复杂的整合、以及对于所有的涉及方的漫长的用户设置。本文中所公开的共享模块可以显著地降低该复杂性,并且同样地使对现有的存储库和ECM系统的影响最小化。共享模块使得ECM系统存储库可以在不需要ECM系统存储库和外部系统之间的固定连接的情况下连接到外部系统。下面参照图1来对此进行进一步的说明。
[0046] 这里应注意到,虽然以上例子描述了在企业的雇员和企业外部的承包商之间共享被管理内容,但是与内部用户的共享也将无缝地工作。也就是说,企业计算环境内部的用户可以与也是外部系统的成员的内部用户共享文档。因此,本发明的一方面是利用外部系统作为驻留在企业计算环境中并且在企业的防火墙后面操作的EIM系统的扩展。该扩展使得可以从被管理存储库共享,并且使得可以使用外部系统作为向参与者(在企业外部和/或内部)提供对于共享的文档的访问的安全且用户友好的协作平台。例如,在云托管的外部系统(诸如Core)中,参与者(内部的和外部的)可以容易地访问Core,并且通过Core、使用Core的web客户端、移动客户端、以及在迥然不同的用户装置上运行的桌面客户端app来在文档上协作。
[0047] 为了确保安全性,共享模块和外部系统之间的所有的通信可以利用表述性状态转移(REST)协议。在一些实施例中,共享模块可以利用外部系统的REST层作为用于服务器对服务器交互(诸如用户查找、共享发起、共享撤销等)的选择的API。在单向同步的一些实施例中,共享模块对外部系统发出所有的向外的调用(例如,REST API调用)。在这样的情况下,可能不需要从外部系统向内连接回到共享模块中。在一些实施例中,共享场景可以由终端用户手动驱动、由共享模块执行。在一些实施例中,共享场景可以通过执行存储在共享模块可访问的数据库(例如,本地数据库)中的(一个或多个)共享配置文件中阐述的规则的基于规则的引擎,由共享模块以编程的方式自动地执行。
[0048] 在一些实施例中,共享模块(在本文中也被称为“同步-n-共享连接器”)包括驻留在存储库层和共享模块之间以及共享模块和外部系统层之间的新类型的适配器(在本文中也被称为“连接接口”)。共享模块使得能够在被管理存储库和外部内容消耗点(例如,Core、OneDrive、Google Drive、和/或任何基于云的存储解决方案/系统)之间移动内容。
[0049] 下面描述的实施例利用新方法来使得企业用户能够向企业或组织内和/或外部的目标人口统计的协作者共享内容。该新方法在新的架构中实现,在所述新的架构中,独立的共享模块(也被称为集中式内容递送总线或控制器、文件同步-n-共享连接器、或同步器)可以将多个存储库连接到多个外部系统。一方面,共享模块通过在本文中被称为存储库适配器的一层适配器连接到一个或多个存储库。另一方面,共享模块通过在本文中被称为外部系统适配器的一层适配器连接到一个或多个外部系统。图1中例示说明了该新架构的例子。
[0050] 在图1的例子中,架构100包括共享模块110,共享模块110通过存储库适配器120和外部系统适配器130将被管理存储库150、160、170与外部系统180、190通过接口连接或者以其他方式连接。每个存储库适配器包括存储库API(例如,152、164、176)和共享模块API(例如,122、124、126)。存储库API被配置为与相应的存储库进行通信,共享模块API被配置为与共享模块110进行通信。同样地,每个外部系统适配器包括共享模块API(例如,112、132)和外部系统API(例如,182、192)。外部系统API被配置为与特定的外部系统进行通信,而共享模块API被配置为与共享模块110进行通信。
[0051] 这样,存储库适配器120表示共享模块和在企业计算环境中操作的信息管理(IM)系统的内容存储库之间的第一接口层,而外部系统适配器130表示共享模块和在企业计算环境外部的网络计算环境中操作的外部系统之间的第二接口层。
[0052] 第一接口层和第二接口层每个都具有一对API,其中每个API被配置用于特定的功能。在第一接口层中,一个API被配置为与内容存储库进行通信,另一个API被配置为与共享模块进行通信。在第二接口层中,一个API被配置为与共享模块进行通信,另一个API被配置为与外部系统进行通信。也就是说,如图1所示,第一接口层具有用于内容存储库和共享模块之间的每个连接/接口的一对API。类似地,如图1所示,第二接口层具有用于共享模块和外部系统之间的每个连接/接口的一对API。
[0053] 在架构100中,在被管理存储库和外部系统之间没有固定连接。相反,通过共享模块,多对多内容共享连接在被管理存储库和外部系统之间是可能的,其中,每对被管理存储库和外部系统之间为一对一映射。这样,通过经由一对API将新的被管理存储库与共享模块(独立于任何外部系统)通过接口连接,新的被管理存储库可以被容易地添加到架构100,所述一对API中一个用于与该新的被管理存储库进行通信,一个用于与共享模块进行通信。同样地,通过经由一对API将外部系统与共享模块(独立于后端的任何被管理存储库)通过接口连接,外部系统可以被容易地添加到架构100,所述一对API中一个用于与该外部系统进行通信,一个用于与共享模块进行通信。技术人员意识到,架构100是可扩展的,并且可以容易地适于容纳多个被管理存储库(由同一个EIM系统或不同的EIM系统管理)以及多个外部系统。
[0054] 在详细地描述共享模块之前,理解共享模块提供的文件同步-n-共享服务可能是有帮助的。示例使用情况可以包括,但不限于,以下:
[0055] 使用情况1:通过文件同步-n-共享服务的协作
[0056] Enigma是出版公共卫生保健方面的杂志的出版公司。Jane是Enigma的雇员,并且作为Enigma处的编辑工作。Jane与Enigma处的一群审阅者协作审阅Enigma出版的杂志。Bob是对于Enigma的审阅者之一,并且在家里办公。
[0057] Enigma将这些杂志的草稿和其他版本存储在存储库(例如,图1中的存储库B)中。只有Enigma的雇员被给予对于存储库的访问。存储库与外部文件共享系统(例如,外部系统
180)连接。对于杂志库的用户接口为Jane提供选择并且向外部文件共享系统中的特定的接受者推送草稿杂志(通过存储库适配器120、共享模块110和外部系统适配器130)的能。为了这样做,Jane使用文件同步和共享服务挑选她想要Bob审阅的内容、选择“共享”并且将Bob识别为该内容的审阅者,该杂志现在可供Bob也通过使用文件同步-n-共享服务在外部系统中查看。一旦Bob已经完成了审阅,Jane就将内容遣送回存储库中。
[0058] 使用情况2:作为传真的被管理内容的发送
[0059] Modicum是向具有资格的申请人提供抵押的抵押中介。Modicum将抵押申请和相关的抵押品存储在申请存储库中。Modicum通过其现场代理为其客户服务。Modicum通过其贷款协作伙伴的网络为其客户安排抵押。Anitha是Modicum的现场代理,与Leon(贷款协作伙伴)一起密切工作,现在正对Meera的抵押申请进行工作。
[0060] 在对Meera的抵押申请进行处理的整个时间段,Modicum的代理传真各种文档让申请人签名,并且还从申请人接收签名的文档的传真。这些文档被存储在Modicum处的申请存储库中。这样的申请和相关的抵押品通常被与一个或多个贷款协作伙伴共享以为客户得到最佳交易。贷款协作伙伴和抵押中介通过传真网络执行文档的交换。
[0061] Anita使用抵押软件系统的web接口来审阅她正在工作的所有的申请。抵押软件系统被配置有架构100提供的文件同步-n-共享服务。Anita相信Leon可以为Meera提供最佳交易,并且联系Leon。Leon想要查看相关联的抵押品,并且验证这些文档被Meera检查。因为Modicum处的存储库通过架构100提供的文件同步-n-共享服务与云传真系统连接,所以Anita可以使用实现文件同步-n-共享服务的同一个web接口来将Meera的抵押申请和相关联的抵押品传真给Leon。
[0062] 使用情况3:对于户的内容和元数据的公布
[0063] Pure Pipes销售管子和法兰。Pure Pipes的销售团队使用它们的企业资源规划(ERP)系统来管理销售流线和机会。该ERP系统还提供到Pure Pipes销售的不同产品的定价信息和产品目录的链接。销售团队依赖于该目录来为他们的客户达成产品适配和提供任何折扣。
[0064] Pure Pipes处的产品目录和折扣是通过公司中的定价和包装工作流程来管理的。一旦在定价和包装工作流程中被批准,产品目录就通过ERP系统颁布。Pure Pipes使用EIM系统来管理定价和包装工作流程。批准的产品目录被存储在“产品目录”存储库中。产品目录存储库以与架构100的布置类似的布置连接到ERP系统。在该例子中,从ERP系统在产品目录存储库外部的意义上来讲,ERP系统是外部系统。
[0065] 一旦被连接,每一次产品目录在EIM系统中被批准,它就连同产品目录的相关联的元数据一起向ERP系统公布。销售团队现在可以用最新的产品目录和价格清单开始工作,并且获悉可用的各种折扣。连同产品目录一起公布的元数据使得可以容易地搜索产品目录并且对产品目录进行分类。
[0066] 如该例子例示说明的,本公开中的外部系统可以是指在内容提供商系统(例如,被管理存储库)驻留的相同企业计算环境内操作的内容消耗系统、或在被管理存储库驻留的企业计算环境外部操作的内容消耗系统。除了连接复杂的企业软件系统之外,实施例还可以连接否则将不会相互直接通信和/或共享内容的应用。
[0067] 使用情况4:对于自定义应用的内容和元数据的公布
[0068] 市民健康保险(CHC)覆盖潘多拉的市民的医疗需要。CHC将所有的患者医疗历史(患者记录)存储在患者健康记录(PHR)内容存储库中。保健提供商可以使用在他们的膝上型计算机中运行的临床患者记录(CPR)软件应用来访问PHR内容存储库中的患者记录。PHR系统以与架构100的布置类似的布置与CPR系统连接。CHC授权的是,患者记录在CPR上只有在安排的预约之前一周和之后一周的时间段内是可用的,并且与患者相关的所有的内容在该时间段之后都应从保健提供商的膝上型计算机移除。
[0069] Peter(潘多拉的市民)正在向Dean医生(家庭医生)咨询。Dean医生已经向Peter推荐整形外科Olaf医生。Peter已经向Olaf预约了下周五。预约之前一周,PHR向CPR推送(其是基于规则的引擎进行的自动共享的形式)Peter的x光记录和MRI记录。Olaf医生能够获得即将到来的与Peter的预约的病历。与自动共享相关联的元数据使得CPR可以将x光图像和MRI图像组织到清楚的类别中,并且帮助Olaf医生有效地与Peter进行预约。
[0070] 如以上使用情况例子例示说明的,本文中所公开的实施例可以促进不同的内容存储库与内容消耗、协作和存储的外部系统之间的内容交换。益处和优点可以包括:
[0071] -先前访问受到约束的存储库中存储的内容现在可以变为可供扩大的人口统计使用。连同内容一起公布(共享)的元数据可以将上下文添加到共享的内容。每个连接的系统的能力和特征集可以暴露于各种应用内。
[0072] 如以上例子所提到的,独立的共享模块方法可以自动地向被管理存储库外部的内容消耗系统推送或“公布”被管理内容。在一些实施例中,这是利用基于规则的分析和同步来实现的。
[0073] 如图2所示,管理员可以通过管理控制台221来访问共享模块210并且创建规则集223。规则集223可以规定共享模块210可以如何以编程的方式自动地执行共享。在图2的例子中,共享模块210和被管理存储库260(其可以是由EIM系统管理的内容存储库、内容服务器等)这二者驻留在企业计算环境200中,外部系统280在企业计算环境200外部的云计算环境中操作。然而,在一些情况下,外部系统280也可以在企业计算环境200中操作,但是在被管理存储库260外部(并且独立于被管理存储库260)。此外,任何基于云的存储系统都可以是外部系统。外部系统可以是在企业计算环境200外部的网络计算环境中操作的任何系统。
[0074] 在图2的例子中,被管理存储库260通过存储库特定的API 264与共享模块210的存储库连接器接口224通信连接,外部系统280通过REST API 282与共享模块210的外部系统连接器接口212通信连接。分开地,管理控制台221可以操作为通过同步-n-共享API 225向同步-n-共享控制器或连接器221发出API调用。
[0075] 在一些实施例中,同步-n-共享连接器221可以实现共享模块210的执行逻辑(其可以包括被配置为应用规则集223的基于规则的引擎),并且将跟踪信息(例如,识别共享的项(诸如内容文件或对象)、外部系统的用户、被管理存储库的用户授予外部系统的用户的角色、对于共享的项的改变等的信息)存储在本地数据库227(在共享模块210的本地)中。下面参照图3来进一步描述同步-n-共享连接器211的组件。
[0076] 在一些实施例中,共享模块210的连接器接口212和224包括定义如何连接到共享模块210的连接接口的实现。作为非限制性例子,在JavaTM中,“implements”从句可以包括在类定义中以声明实现接口的类。该类然后可以用于实现多个接口,例如,通过使用“implements”关键字、其后面接着通过该类实现的接口的逗号分隔的列表来实现。这样的实现对于本领域技术人员是已知的,因此在本文中不对其进行进一步的描述。
[0077] 这里,共享模块210所用的每个适配器可以是共享模块210中定义的连接接口的实现。每个这样的实现(连接接口的实例)都可以对应于共享模块210和存储库之间(或者共享模块210和外部系统之间)的一对一关系。为此,共享模块210可以被表征为自适应内容共享架构中的内容消耗系统和被管理存储库之间的“接口”。
[0078] 以上参照图1和图2描述的可扩展的且自适应的内容共享架构可以以许多方式实现。图3中例示说明了自适应的内容共享架构300的例子。在图3的例子中,“接口”(或独立的共享模块)310可以具有管理UI 321、连接器代理382、364和同步器340。尽管接口310被示为与一个内容存储库360和一个外部系统380通过接口连接,但是这仅仅是为了例示说明的目的。类似于以上参照图1所讨论的共享模块110,接口310可以被容易地配置为与多个存储库和多个外部系统通过接口连接或者以其他方式连接,其中,被管理存储库和外部系统之间的每个连接具有分别针对被管理存储库和外部系统实现的一对连接器代理以提供被管理存储库和外部系统之间的一对一映射。
[0079] 每个存储库适配器(例如,存储库适配器363)可以被配置为映射常见的分类语言(例如,通过同步器340的图表构建器342构建的图表)。该映射可以由分析器344由于在同步器340的一侧(单向同步)或两侧(双向同步)进行的改变而触发。改变可能是由一个存储库(例如,存储库360)或多个存储库处的技术需要(例如,版本控制、编辑、技术改变等)引起的。
[0080] 在内容消耗侧(例如,外部系统380),可以利用内容消耗适配器。该层级(或层)适配器可以(通过配置)映射到在连接到接口310的每个内容消耗系统处提供内容移交所需的协议(例如,通信协议)。另外,分析器344可以作为内容分类模块进行操作,并且与连接器代理(例如,用于外部系统的连接器代理382、用于存储库的连接器代理364)一起,适配器(例如,存储库适配器363)和连接器接口(特定于同步器340的外部系统连接器接口312和存储库连接器接口362)可以提供寻找和传送期望的内容及其相关联的元数据(诸如相关联的文档标识符和/或对象标识符(例如,DocID、ObjectID等))的能力。
[0081] 在一些实施例中,存储库(源)元数据是与内容一起流传输的。如以上所讨论的,外部系统一般创建它们自己的(目标系统)元数据,所以它们不使用源元数据。通过本发明,用户现在可以从他们正在使用的应用内消耗其他附连的内容消耗系统的能力(例如,EFSS、传真等)。共享内容的能力可以与现有的应用和/或工作流程整合。连同内容一起传送的元数据可以为公布的内容提供上下文,并且得到相关的益处。
[0082] 在一些实施例中,管理UI 321通信地连接到存储共享配置文件329的本地数据库327。管理员可以设置适用于共享配置文件的内容共享规则。这些不是用户配置文件。每个共享项具有规则集。共享项可以表示被管理存储库或管理员选择的任何数据源中的文件夹或目录。不同的共享项可以具有不同的规则集,或者共享相同的规则,这些规则用于控制内容何时可以被共享以及可以如何被共享。规则还可以指定内容类型。例如,规则可以指定共享项应仅具有PDF文件。
[0083] 共享项调度器331也可以驻留在本地数据库327上,并且可以包含指定内容按照共享配置文件或规则329可以如何被自动地以编程的方式共享、以及何时被这样共享的调度。共享项调度器331还可以用于调度同步何时将发生,但是同步的类型由适用于正被同步的共享项的规则集的类型(例如,单向同步或双向同步)决定。管理UI 321从管理员接收的指令通过共享项调度器331、以共享项列表的形式被传送给同步器340。共享项列表可以包含关于按照适用于共享项的规则、什么的文件的文件夹(一个共享项)可以被共享的信息。
[0084] 作为响应,同步器340的图表构建器342可操作为对于从共享项调度器331接收的共享项列表中的每一个共享项构建对象图表。该图表被同步器340用于跟踪对于对应的共享项中的对象的改变。下面对此进行进一步的说明。
[0085] 一旦被管理存储库中的共享项(例如,被管理存储库360中的文件夹)(例如,通过管理321)被指定为通过外部系统(例如,外部系统380)共享,该共享项中的一切就通过接口310从被管理存储库向外部系统公布。更具体地说,内容及其相关联的元数据可以被同步器
340通过用于存储库的连接器代理364、存储库适配器363和存储库连接器接口362从被管理存储库360检索,并且通过外部系统连接器接口312和用于外部系统的连接器代理382提供给外部系统380。
[0086] 如以上所讨论的,一旦共享项被公布,同步器340就可以操作为监视并且确定对共享的内容是否进行了任何改变。对于共享的内容是否发生了任何改变的确定可以通过轮询来进行。在一些实施例中,可以通过单向同步或双向同步来触发轮询。是执行单向同步、还是执行双向同步可以取决于是单向同步规则集、还是双向同步规则集适用于将被同步的共享项。例如,如果单向同步规则集规定只有外部系统380中的共享的内容的版本可以被修改(例如,被管理存储库360中的共享的内容的版本被定不让编辑),则同步器340可以操作为对外部系统380进行ping(回应)操作以得到共享项上的更新。当这发生时,图表构建器342可操作为对于共享项构建另一个图表。图表构建器342在不同时间为同一个共享项构建的两个图表被分析器344进行比较以检测任何差异。
[0087] 在一些实施例中,当对于共享项的改变被检测到时,分析器344操作为确定任何冲突存在(例如,共享项中的什么文件自从最后一次同步(公布)以后已经被改变、改变是什么、等等)。例如,如果文件名已经被用户在外部系统380从“XYZ.doc”变为“ABC.doc”,则被管理存储库360将不会认识“ABC.doc”。分析器344可操作为将其发现传送给冲突解决器346。冲突解决器346可操作为找到纠正版本不匹配的解决方案。
[0088] 版本不匹配在双向同步场景中也可能发生。也就是说,共享的内容可以被使用外部系统380的用户、使用被管理存储库360的用户、或这两侧的用户修改。同步器340可以操作为轮询来自本地数据库327的共享项列表,并且还轮询外部系统380以得到已经从被管理存储库360向外部系统380公布的共享项上的更新。
[0089] 假设经受双向同步规则集的共享项中的文件(“XYZ.doc”版本1.0)首先从被管理存储库360向外部系统380公布。此后,外部系统380的用户在外部系统380中创建该文件的新版本,并且将它命名为“ABC.doc”。此时,被管理存储库360没有被命名为“ABC.doc”的文件的任何版本。同时,被管理存储库360的用户更新了存储在被管理存储器360中的文件(“XYZ.doc”版本2.0)。通过分析图表构建器342在不同时间、针对不同的系统、对共享项构建的图表(在该例子中,对于被管理存储库360,构建两个图表,对于外部系统380,构建一个图表),分析器344可操作为确定:被管理存储库360中的共享的内容(“XYZ.doc”版本1.0)在被管理存储库360中已经改变(变为“XYZ.doc”版本2.0),而且,外部系统380中的共享的内容已经被修改为“ABC.doc”。通过遍历每个图表并且将各个图表中的节点(对象)进行比较,该检测是可能的。
[0090] 因为文件名已经被改变,所以被管理存储库360不认识所述文件。同样地,因为被管理存储库360中的文件已经被更新为版本2.0,所以外部系统380不认识更新的文件。因此,被管理存储库360中的更新的文件(版本2)需要与外部系统380同步,并且具有修改的名称的文件需要从外部系统380同步到被管理存储库360。这是双向同步的例子。分析器244可以识别诸如这些的冲突,并且将它们传送给冲突解决器346。
[0091] 在一些实施例中,冲突解决器346可操作为处理找到对于分析器344检测到的冲突的解决方案。在一些实施例中,冲突解决器346可以创建新的对象或冲突文件。该冲突文件可以具有特定的文件类型,例如,特定的文件扩展名(例如,“.conflict”)。作为非限制性例子,冲突解决器346可以将扩展名从“ABC.doc”变为“ABC.conflict”,并且将“ABC.conflict”文件发送给用户(或者通知用户),用户然后可以审阅并且解决冲突。这些映射、冲突和任务352按照任务调度器354由冲突解决器346执行。执行器356是用于冲突解决器346的处理程序。
[0092] 图4描绘例示说明根据本文中所公开的一些实施例的、用于通过外部系统进行内容共享的方法的流程图。在一些实施例中,方法400可以包括由包含在非暂时性计算机可读介质上的共享模块接收公布共享项的指令(401)。如以上所讨论的,共享项可以表示被管理存储库中的文件夹或目录。被管理存储库可以由在企业计算环境中操作的EIM系统管理。
[0093] 共享模块可以实现上述共享模块110、同步-n-共享连接器211或同步器340的实施例。公布共享项的指令可以通过管理员UI(诸如管理控制台221或管理UI 321)接收。所述指令可以被存储在共享模块可访问的本地数据库(诸如数据库227或数据库327)中,并且可以通过使用调度器(诸如共享项调度器331)提供给共享模块。所述指令可以包含关于(一个或多个)共享项列表的共享配置文件(例如,共享配置文件329)以及被管理员定义为适用于所述共享项列表的内容共享规则(例如,规则集223)。
[0094] 作为响应,图表构建器(例如,图表构建器342)可以基于每一个共享项、为共享项列表构建图表(403)。每个图表包含表示特定的共享项中的文件和它们的关系的对象。图表构建器可以是共享模块的一部分。
[0095] 共享模块然后如上所述那样向外部系统公布共享项(405),公布共享项中的一切,包括文件和与这些文件相关联的元数据。例如,当EIM系统的用户将文件放置在共享项中时,共享模块向外部系统的公布可以包括提供以下信息,该信息识别外部系统的用户、以及EIM系统的用户授予外部系统的用户的角色。
[0096] 响应于用户指令(例如,更新共享项的用户指令)或者自动地(例如,按照调度的事件),共享模块可以操作为与被管理存储库和/或外部系统进行通信并且获得(同步)共享项的当前版本(407)。是与被管理存储库、外部系统通信、还是与这二者通信,可以取决于共享项是经受单向同步规则集、还是经受双向同步规则集。
[0097] 如以上所讨论的,共享模块和被管理存储库之间的通信是通过两个特殊的API——共享模块API和存储库特定的API——进行的。共享模块API被配置为在共享模块和存储库特定的API之间通过接口连接。存储库特定的API被配置为将共享模块API和被管理存储库通过接口连接。同样地,共享模块和外部系统之间的通信是通过两个特殊的API——共享模块API和外部系统特定的API——进行的。共享模块API被配置为在共享模块和外部系统特定的API之间通过接口连接。外部系统特定的API被配置为将共享模块API和外部系统通过接口连接。
[0098] 对于已经被同步回共享模块的每个共享项,图表构建器可操作为构建新的图表(409)。共享模块的分析器(例如,分析器344)可操作为比较在不同时间(例如,当共享项第一次被向外部系统公布时,以及当共享项从外部系统或被管理存储库同步回共享模块时)为同一个共享项构建的图表、和/或从不同的源同步的图表。如上所述,分析器可以操作为:检测对于共享项中的内容进行的任何改变(411),并且确定由这样的改变引起的任何冲突是否存在(413)。如果存在,则分析器可以调用冲突解决器(例如,冲突解决器346)来解决分析器找到的任何冲突(例如,版本不匹配)。继而,冲突解决器可以操作为对同一个文件的版本进行处理(例如,通过创建具有特殊的文件扩展名的冲突文件)以用于冲突解决(415)。例如,冲突解决器可以为被管理存储库的用户(例如,争议中的文件的所有者)准备包含关于两个版本的信息和/或到两个版本的链接的请求以决定哪个版本(如果有的话)将被存储(同步)回被管理存储库(417)。正确的版本然后被同步到后端以更新被管理存储库中的版本(419)。
[0099] 图5描绘其中可以实现所公开的实施例的分布式网络计算环境的图示。在图5的例子中,网络计算环境500可以包括网络514,网络514可以双向地耦合到用户计算机512、用户计算机515、服务器计算机514和服务器计算机516。服务器计算机514可以双向地耦合到数据库538,服务器计算机516可以双向地耦合到数据库518。网络530可以表示网络计算环境500可以将其用于本领域技术人员已知的各种类型的网络通信的有线网络和无线网络的组合。
[0100] 为了例示说明的目的,对于用户计算机512、用户计算机515、服务器计算机514和服务器计算机516中的每个,示出了单个系统。然而,在用户计算机515、服务器计算机514和服务器计算机516中的每个内,多个计算机(未示出)可以通过网络530相互连接。例如,多个用户计算机可以通过网络530通信地连接到在企业计算环境中操作IM系统的服务器计算机514,多个用户计算机可以通过网络530通信地连接到实现企业计算环境外部的外部系统的服务器计算机516、IM系统、和/或由IM系统管理的数据库538。
[0101] 用户计算机512可以包括用于与服务器计算机514通信的数据处理系统。同样地,用户计算机515可以包括用于与服务器计算机516通信的数据处理系统
[0102] 用户计算机512可以包括中央处理单元(“CPU”)520、只读存储器(“ROM”)522、随机存取存储器(“RAM”)524、硬盘驱动器(“HD”)或存储存储器526、以及(一个或多个)输入/输出装置(“I/O”)528。I/O 529可以包括键盘、监视器、打印机、电子指点装置(例如,鼠标轨迹球、触笔等)等。用户计算机512可以包括台式计算机、膝上型计算机、个人数字助理、蜂窝电话、或能够通过网络通信的几乎任何装置。用户计算机515可以类似于用户计算机512,并且可以包括CPU 550、ROM 552、RAM 554、HD 556和I/O 558。
[0103] 同样地,服务器计算机514可以包括CPU 540、ROM 542、RAM 544、HD 546和I/O 548,服务器计算机516可以包括CPU 560、ROM 562、RAM 564、HD 566和I/O 568。服务器计算机514和516每个都可以包括被配置为通过网络530向用户计算机512提供应用的实例的一个或多个后端系统。许多其它的替代配置对于技术人员也是可能的和已知的。
[0104] 图5中的计算机中的每个都可以具有多于一个的CPU、ROM、RAM、HD、I/O或其他硬件组件。为了简洁起见,每个计算机都被例示为具有所述硬件组件中的每个中的一个,即使多于一个被使用。计算机512、514、515和516中的每个都是数据处理系统的例子。ROM 522、542、552和562;RAM 524、544、554和564;HD 526、546、556和566;以及数据库518和538可以包括可以被CPU 520、540、550或560读取的介质。因此,这些类型的存储器包括非暂时性计算机可读存储介质。这些存储器可以在计算机512、514、515或516的内部或外部。
[0105] 本文中所描述的方法的部分可以用可以驻留在ROM 522、542、552或562;RAM 524、544、554或564;或HD 526、546、556或566内的合适的软件代码来实现。除了这些类型的存储器之外,本文中所公开的实施例中的指令可以包含在具有不同的计算机可读存储介质的数据存储装置(诸如硬盘)上。可替代地,所述指令可以被作为软件代码元素存储在数据存储阵列、磁带、软盘、光学存储装置、或其他适合的数据处理系统可读介质或存储装置上。
[0106] 相关领域的技术人员将意识到,本发明可以用其他计算机系统配置(包括,但不限于,多处理器系统、网络装置、迷你计算机、大型机、数据处理器等)来实现或实施。本发明可以在被专门编程、配置或构造为执行本文中详细描述的功能的计算机、或专用计算机或数据处理器中实施。本发明还可以在分布式计算环境中部署,在分布式计算环境中,任务或模块由通过通信网络(诸如局域网(LAN)、广域网(WAN)和/或互联网)链接的远程处理装置执行。在分布式计算环境中,程序模块或子例程可以被安置在本地存储器存储装置和远程存储器存储装置这二者中。这些程序模块或子例程可以例如被存储或分布在计算机可读介质(包括磁性的和光学可读的和可移动的计算机盘)上,被作为固件存储在芯片中,以及电子地分布在互联网上或其他网络(包括无线网络)上。示例芯片可以包括电可擦除可编程只读存储器(EEPROM)芯片。本文中所讨论的实施例可以用可以驻留在非暂时性计算机可读介质、硬件电路系统等、或任何组合上并且可以被一个或多个服务器机器翻译的合适的指令来实现。在本公开中,在下面提供非暂时性计算机可读介质的例子。
[0107] 如本领域技术人员已知的,合适的计算机系统可以包括中央处理单元(“CPU”)、至少一个只读存储器(“ROM”)、至少一个随机存取存储器(“RAM”)、至少一个硬盘驱动器(“HD”)、以及一个或多个输入/输出(“I/O”)装置。I/O装置可以包括键盘、监视器、打印机、电子指点装置(例如,鼠标、轨迹球、触笔、触控板等)、等等。ROM、RAM和HD是用于存储CPU可执行的或者能够被编译或解释以使得CPU可执行的计算机可执行指令的非暂时性计算机存储器。
[0108] 合适的计算机可执行指令可以驻留在非暂时性计算机可读介质(例如,ROM、RAM和/或HD)、硬件电路系统等、或它们的任何组合上。在本公开内,术语“非暂时性计算机可读介质”不限于ROM、RAM和HD,并且可以包括可以被处理器读取的任何类型的数据存储介质。非暂时性计算机可读存储介质的例子可以包括,但不限于,易失性和非易失性计算机存储器和存储装置,诸如随机存取存储器、只读存储器、硬盘驱动器、数据盒子、直接存取存储装置阵列、磁带、软盘、闪存驱动器、光学数据存储装置、紧凑盘只读存储器、以及其他适合的计算机存储器和数据存储装置。因此,计算机可读介质可以是指数据盒子、数据备份磁带、软盘、闪存驱动器、光学数据存储驱动器、CD-ROM、ROM、RAM、HD等。
[0109] 本文中所描述的处理可以用可以驻留在计算机可读介质(例如,磁盘、CD-ROM、存储器等)上的合适的计算机可执行指令来实现。可替代地,所述计算机可执行指令可以被作为软件代码组件存储在直接存取存储装置阵列、磁带、软盘、光学存储装置、或其他适合的计算机可读介质或存储装置上。
[0110] 任何合适的编程语言可以用于实现本文中所描述的本发明的实施例的例程、方法或程序,包括C、C++、Java、JavaScript、HTML、或任何其他的编程或脚本撰写代码等。其他软件/硬件/网络架构可以被使用。例如,所公开的实施例的功能可以在一个计算机上实现,或者在网络中的或跨网络的两个或更多个计算机之间共享/分布。实现实施例的计算机之间的通信可以使用电子的、光学的、射频信号、或遵循已知的网络协议的其他合适的通信方法和工具来实现。
[0111] 不同的编程技术可以被利用,诸如过程式的或面向对象的。任何特定的例程都可以在单个计算机处理装置或多个计算机处理装置、单个计算机处理器或多个计算机处理器上执行。数据可以被存储在单个存储介质中,或者通过多个存储介质分布,并且可以驻留在单个数据库或多个数据库(或其他数据存储技术)中。尽管步骤、操作或计算可以按特定次序呈现,但是该次序在不同的实施例中是可以改变的。在一些实施例中,就多个步骤在本说明书中被示为顺序的来说,替代实施例中的这样的步骤的某个组合可以同时执行。本文中所描述的操作的顺序可以被另一个处理(诸如操作系统内核等)中断、暂停或者以其他方式控制。例程可以在操作系统环境中操作,或者作为独立的例程操作。本文中所描述的功能、例程、方法、步骤和操作可以用硬件、软件、固件或它们的任何组合来执行。
[0112] 本文中所描述的实施例可以用软件或硬件或这二者的组合、以控制逻辑的形式实现。所述控制逻辑可以作为适于指导信息处理装置执行各种实施例中所公开的一组步骤的多个指令,被存储在信息存储介质(诸如计算机可读介质)中。基于本文中提供的公开和教导,本领域的普通技术人员将意识到实现本发明的其他方式和/或方法。
[0113] 用软件编程或代码实现本文中所描述的步骤、操作、方法、例程或它们的部分也在本发明的精神和范围内,其中,这样的软件编程或代码可以被存储在计算机可读介质中,并且可以被处理器操作以使得计算机可以执行本文中所描述的步骤、操作、方法、例程或它们的部分中的任何一个。本发明可以通过使用一个或多个数字计算机中的软件编程或代码来实现,通过使用专用集成电路可编程逻辑器件现场可编程门阵列来实现,光学、化学、生物、量子或纳米工程系统、组件和机制可以被使用。一般来说,本发明的功能可以通过本领域中已知的任何手段来实现。例如,分布式的或联网的系统、组件和电路可以被使用。在另一个例子中,数据的通信或传送(或者以其他方式从一个地方移到另一个地方)可以是有线的、无线的、或者通过任何其他的手段。
[0114] “计算机可读介质”可以是可以包含、存储、传送、传播或输送供指令执行系统、设备、系统或装置使用的或者与指令执行系统、设备、系统或装置有关的程序的任何介质。所述计算机可读介质可以是,仅举例来说,而非限制,电子、磁性、光学、电磁、红外或半导体系统、设备、系统、装置、传播介质、或计算机存储器。这样的计算机可读介质一般应是机器可读的,并且包括可以是人类可读的软件编程或代码(例如,源代码)、或机器可读的软件编程或代码(例如,对象代码)。非暂时性计算机可读介质的例子可以包括随机存取存储器、只读存储器、硬盘驱动器、数据盒子、磁带、软盘、闪存驱动器、光学数据存储装置、紧凑盘只读存储器、以及其他适合的计算机存储器和数据存储装置。在例示说明的实施例中,软件组件中的一些或全部可以驻留在单个服务器计算机上、或者分离的服务器计算机的任何组合上。如本领域技术人员可以意识到的,实现本文中所公开的实施例的计算机程序产品可以包括存储计算环境中的一个或多个处理器可翻译的计算机指令的一个或多个非暂时性计算机可读介质。
[0115] “处理器”包括对数据、信号或其他信息进行处理的任何硬件系统、机构或组件。处理器可以包括具有中央处理单元、多个处理单元、用于实现功能的专用电路系统的系统或其他系统。处理无需限于地理位置、或者具有时间限制。例如,处理器可以“实时地”、“离线地”、按“批量模式”等方式执行其功能。处理的部分可以在不同的时间、在不同的位置、由不同的(或相同的)处理系统执行。
[0116] 如本文中所使用的,术语“包括”、“包含”、“含有”、“具有”、“有”或它们的任何其他的变型意图涵盖非穷尽的包括。例如,包括元素列表的处理、产品、物品或设备不一定仅限于这些元素,而是可以包括没有明确地列出的或这样的处理、产品、物品或设备固有的其他元素。
[0117] 此外,如本文中所使用的术语“或”一般意图意指“和/或”,除非另有指示。例如,条件A或B通过以下中的任何一个得到满足:A是真的(或存在的),B是假的(或不存在的);A是假的(或不存在的),B是真的(或存在的);A和B这二者都是真的(或存在的)。如本文中所使用的,包括所附的附录,前面有“一个”或“一种”(以及当前置基础是“一个”或“一种”时的“所述”)的术语既包括单数的、又包括复数的这样的术语,除非另有清楚的指示(即,论述“一个”或“一种”明确地仅指示单数,或者仅指示复数)。此外,如本文中的描述中和所附附录中所使用的,“在…….中”的意思包括“在…….中”和“在…….上”,除非上下文另有明确的指示。
[0118] 尽管前面的说明书描述了特定的实施例,但是本文中所公开的实施例和附加实施例的细节上的许多改变对于本领域的普通技术人员来说参照本公开将是清楚的,并且可以被本领域技术人员参照本公开做出。在该上下文下,说明书和附图要从说明性的、而非限制性的意义上来看待,并且所有的这样的修改都意图包括在本公开的范围内。本公开的范围应由所附权利要求和它们的法律等同形式确定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈