SOAP服务器通过SOAP协议传递消息,并通过同样的机制接收处理指令。对于一般的收集文件夹,这样一个SOAP服务器可包含一个数据库(该数据库中存储了文件夹的层次结构以及文件夹中对象的引用),以及一个插件集——例如实现文件夹的功能(打开、关闭、创建、删除等)并允许存取文件夹中的内容(创建目录列表)。它们能够访问文件夹中的对象细节。
用户可以将新的文件夹类型作为插件,添加到工作空间管理中。例如提供相应的动态链接库或一个可选的SOAP服务器,直接通过SOAP传送必要的XML消息给工作空间管理展现服务器。
为了创建图形用户界面,展现服务器应该能接受用来描述各XML消息是如何被提交给特定布局的XSL格式表。当使用动态HTML时,可使用相关的技术来把最终的GUI放到每个桌面上,而不需安装任何本地组件。
文件夹类型包括任意对象的集合、与设备服务器的文件系统接口相接驳的文件夹(由此允许对设备的内容进行浏览,并向设备传入或传出资产),以及与服务相接驳的文件夹。后者允许通过将特定对象拖拽到文件夹上,从而为该对象而调用服务,并显示被服务所处理的任务的当前列表。也可以有这样的文件夹:允许收集对数据管理的查询,并允许收集如编辑决策清单这种复合对象。另外一组文件夹集执行对数据管理的预定义查询,如“打开文件夹”指令,使得可以提供如“有什么新数据”这种文件夹,这样可执行显示所有新添加(比如在过去24小时中)到系统中的对象。
很重要的是,工作空间管理支持用户对每个文件夹的存取权限,因此可以定义哪个用户组有使用、移除、添加甚至查看某个文件夹的权限。
6.6应用
应用是下述人员用来访问内容管理系统所提供的功能接口,这些人员包括在富内容组织中,每日业务所涉及到的内容生产者、内容分配者、内容编目者以及其他用户群。这些工作流的重要元素的例子包括策划和起草、上载、输入、日志、编目、检索、浏览、粗剪、输出、清除以及事务管理。显然,这一系列可能的应用永远是不完全的。当内容管理系统被引入组织中时,会对必须支持的新工作流和应用元素进行识别。在许多情况下,组织自身甚至会想要在内容管理系统上面建立自己的应用,或使已有的、可连接到内容管理系统的应用丰富化。
由此,内容管理系统提供一种构造这些应用的工具箱是必要的,并且此工具箱应建立在可复用的组件以及灵活布局的机制上。采用这种方法,用户可容易地修整应用,如在需要时添加或移除功能,并且可根据新的客户需求配置新的应用。
这种方法的一个经典应用是将内容管理系统集成进用户常用的新闻工作室系统的用户界面中(见8.3.2.3)。目前,新闻工作室解决方案的主要供应商均支持将客户端GUI集成的插件机制集成进它们的桌面应用中。因此,采用基于组件的方法实现内容管理系统应用的一个合理的途径,是以插件方式提供所有相关的用户界面,以支持应用GUI框架的集成,将其在适用的地方集成进基于XML/XSL的框架。
由于应用在内容管理系统中起到如此重要的作用,它们的设计和主要应用组件的功能将在第9章单独讨论。本章详细讨论了架构中考虑的例子及其特点和特征。本段落着重讨论内容管理系统应用模块的架构。
所有的组件应该运行于与网页环境可比的框架中。但当没有专用的应用时,必须有一个实体运行在用户的桌面上,该实体将所有这些组件整合起来,因为客户端组件的简单集是不具有应用情境的。因此,要提供一个对话管理器,由它界定客户端的状态,以及所有作为客户端用户界面的一部分而运行的应用组件的情境。
在客户端工作站上,可能会建立/安装相当数量的客户应用或ActiveX控制等客户组件。因此,需要一个单独的内容管理系统实体运行在客户机上,代表所有这些客户和组件,管理与内容管理系统的对话。这种单个实体对于用户管理的认证和内容管理系统功能的授权来说,是非常需要的会话管理器在这种情境下管理用户对话,并使客户和客户控制器之间能够通信。
为了启动一个会话,会话管理器必须接受一个登录名和一个口令,并通过用户管理来验证这一登录信息。在成功登录之后,对话管理器持有对内容管理系统的存取标记,并进行用户管理。当客户端检查一个用户访问由它们提供的某种功能的权限时,它们会使用对话管理器的界面。
对话管理代表了内容管理系统的应用框架,该框架能够主导所有相关的内容管理系统应用组件,它允许根据角色、权限和用户爱好,对应用视图进行定制和配置。
6.7支撑性服务
有许多与其他架构性平面呈正交的支撑性服务,它们可被核心、服务和应用平面使用,因此需要在整个系统内可用。通常,支撑性服务可被分为作业管理、系统管理和系统事务管理。这一部分,介绍此类情境中最重要的服务。
6.7.1作业管理
作业管理服务是垂直服务,无论何时涉及到作业处理,它都对内容管理系统中所有的组件和工作流加以支持。作业服务包括工作流管理、任务管理和事务控制。
6.7.1.1工作流管理
工作流管理不应该将特定的工作流强加给用户,而是应该允许通过配置让复杂的任务有顺序或并行地执行简单作业。因此,如果执行像上载那样的复杂作业,应该将其拆为更多的简单(原始的)作业。每一个作也既可通过内容管理系统的一个服务来执行,也可通过内容管理系统核心自行完成。它有益于将一个任务管理服务作为附加的简单作业添加到被频繁使用的工作流架构中,并由此提供最优化的方法。
工作流管理可与状态机相对比。一个作业可承担的状态由工作流管理来处理,而状态之间的变换是通过调用简单作业来完成的。因此,工作流管理需要提供用基本作业来规定复杂作业的方法(如一个脚本语言),并能将被执行的基本作业提交给被请求的队列中的各内容管理系统组件。
另外,工作流引擎需要提供说明用户工作流的方法,监视工作流的过程,并允许对这个工作流中的对象状态进行评估。这可以通过提供状态标志、批准某步骤的结果加以实现。
通过标志监视工作流的一个例子:采用完成上载、完成注册、选中存档资料、完成形式化编目及完成完全编目等标志,从而跟踪一个要被上载的素材。另一个例子是,使用已计划、已批准、可用素材、完成粗剪、完成视频编辑、完成色彩校正、完成音频编辑、完成形式化编目及完成完全编目等标志,来跟踪一个生产过程。
为了对工作流管理进行事务管理,需要提供一个事务管理界面,除了支持配置和标准维护外,还应该支持对作业和作业参数的修正、对作业过程的监视以及对作业的移除等操作。
6.7.1.2任务管理
任务管理服务是内容管理系统的一个调度和作业处理的设施,它提供附加的简单作业。它基本上是一个工作流处理器,允许对频繁使用的工作流进行硬连接,因此允许使用代码优化以达到更好的性能。
任务管理需要支持对一次性作业和周期性重复作业的调度。另外,它对准备处理的作业进行排队,并提供一份报告来说明在其控制下的作业状态和进展。它负责的主要任务之一是,将作业分发到处理它们的内容管理系统组件。这些组件可以是核心模块(如不同的素材管理器组件),也可以是某些系统(如视频分析服务)。
为了对任务管理进行事务管理,需要提供一个事务管理界面,除了支持配置和标准维护外,还应该支持对作业和作业参数的修正、对作业过程的监视对作业的删除等操作。
6.7.1.3事务控制
事务控制确保跨越几个服务器和服务的分布式事务的安全。许多用于远程通信的中间平台已经指定了一个合适的事务处理机制。一个标准分布式事务处理(Distributed Transaction Processing, DTP)机制的例子是X/Open标准(2003年,Microsoft公司提出),该标准形成了几个通信平台的事务服务实施的基础。其他的通信基础设施方案如CORBA,也提出了类似的概念。
事务控制的功能很重要,因为基于组件和基于作业的方法在很大程度上依赖于所有任务的完满执行。否则,系统或被处理的内容对象可能会因为处理过程的任何一部分的失误而造成不一致的状态。系统中没有组件或模块能够发现一系列相关的作业未被准确地完成,并因此会将一个不一致的状态留给系统。
6.7.2系统管理
系统管理服务是在系统管理层次上支持内容管理系统的垂直服务。典型的系统管理包括命名管理机构、中央事件日志设施、分配过程监视器以及资源管理设施。这些是系统内部的管理任务,仅涉及系统过程,不涉及与用户的交互。在正常情况下,系统管理服务只为系统管理员所知道和可见。由于系统管理服务在很大程度取决于实施的细节,所以系统管理可能在不同的系统之间会有很大的不同。然而大多数系统都具有一些相似的功能,因此在各个内容管理系统中都存在提供这些功能的组件。下面将介绍一组基本的系统管理服务。
6.7.2.1命名
命名服务是内容管理系统的核心命名权力所在,允许识别内容管理系统服务、组件及对象坐落在系统的什么位置。命名服务既可用于本地,也可用于远程服务。基本上,命名服务与内容管理系统中所使用的通信中间件平台联合运作。它的功能和特征可与典型的互联网域名服务(Domain Name Service, DNS)相比较。
内容管理系统的每个组件都需要在命名服务处登记注册。在这一过程中,进行登记的实体提供信息,以允许其他组件对它定位并联系上它。一旦注册了,该组件必须能够在任何时刻检查其注册登记的有效性,并可升级或更新信息,它还可以从命名服务处撤消注册以中止运作。