6.7.2.2事件日志
事件日志服务是内容管理系统用于管理系统内部消息(如通知、警告、错误信息)的设施。它应该支持这些消息的多种严重级别。该服务可被分布并可与不同的核心和服务模块协同,也可以对每个物理服务器使用一个事件日志服务,或使多种事件日志服务分布到整个系统中——事件日志服务充当从其他服务及核心组件处得到消息的服务器。事件日志服务的结构和设计在很大程度上取决于系统的实施,可以采用不同的方法来组织事件日志服务,例如从分层的客户端/服务器端设置到类似于P2P的基础设施等。
然而,内容管理系统的每个组件都需要能够用一个事件日志服务的实例来登记,以便在任何时刻检查其注册登记的有效性,并升级或更新其注册登记的信息。事件日志服务的主要目的是记录来自其他内容管理系统组件的消息。因此,其他服务或核心组件必须能够打开一个登记渠道,以使这些组件能将消息写入事件日志服务,切实将消息写入该渠道并关闭所打开的登记渠道。另外,当一个组件停止运行时,它必须在事件日志服务处撤消登记。
6.7.2.3进程监测
进程监测器是内容管理系统的内部监测器。它始终控制所有系统进程的状态,并重启发生失误的系统。进程监测器也提供手工启动、停止和重启服务的界面,系统管理员或内容管理员通过该界面来进行维护工作。进程监测器的一个可能的实现,是在每个内容管理系统服务或核心组件的服务器上运行服务的一个实例。在这种情况下,进程监测器应该作为后台任务,只使用处理器的空闲时间。采用此方法,进程监测器不会干扰内容管理系统的生产性进程。
内容管理系统的每个后台组件(即核心和服务组件)需要能够在进程监测器处登记、能在任何时刻检查其登记的有效性,并在必要时升级或更新其登记信息。一个登记了的进程必须向进程监测器提供关于如何启动、暂停、继续、关闭、自行重启的信息。此外,它必须向进程监测器提供关于其运行状况的状态信息,进程监测器或系统管理员用此信息来对故障作出反应。再有,当一个组件停止运行时,它必须能够在进程监测器处撤消登记。
6.7.2.4资源管理
资源管理提供对内容管理系统所提供或控制的所有资源的预约、分配和监测。支持资源预约的内容管理系统服务需要在资源管理上登记它所能提供资源的地方与资源管理接驳。只要资源使用或资源可用性发生变化,内容管理系统服务需报告资源分配的当前状况。
客户端(一个应用或一个服务)可向资源管理查询资源的可用情况。当需要某个资源(或许多资源)时,可以通过提供一个时间范围、一个实际访问该资源的优先权、一个表示对所预约的项目切实需要使用的置信水平来进行资源预约。要注意的是,因为一些事件的发生会有一定的不确定性,所以后者是必需的。
当通过优先次序最后决定谁能访问一个被竞争的资源时,置信水平提供了超量预订资源的可能性,从而优化了系统的使用。在以同样的优先级进行超量预订的情况下,采用先到先服务的方式加以解决。
为了支持任务优先的一些应用,资源管理应该允许服务向每个登记了的资源分配一个最小的优先级。然后,资源管理只能将资源分配给请求该资源的、其优先级至少与设备登记的最小优先级一样高的客户端。
6.7.3系统事务管理
系统事务管理服务是在事务管理层次上支持内容管理系统的垂直服务,包括对用户的事务管理、对软件维护过程的支持以及对使用许可证的管理。系统事务管理服务包括大量与内容管理系统的状态管理不直接相关、而与事务管理有关的服务。系统事务管理服务常包括用户管理、帐号与使用许可权管理、消息传递、配置服务和远程安装。
6.7.3.1用户管理服务
用户管理服务是内容管理系统中重要的垂直服务。所有根据用户权限限制存取的组件,或采用角色分类方案为不同的用户对应用或内容的呈现加以配置的组件,必须存取到用户管理服务。从理论上来说,每个组件可执行其自己的存取控制方案,但这可能会非常低效,并且会考虑不到系统范围内的权限。因此,需要一个在系统范围上区分用户和群的服务。
用户是用户管理服务中的核心元素。与内容操作有关的不同属性,都和用户有关,这个信息是用户管理服务的一部分。加之,一个用户可能是几个组中的成员,因此,除了单个用户的概念,组的概念对用户管理服务来说也是个基本的概念。在此情境中,应该可以配置任意数量的组,并将任意数量的组指派给每个用户。此外,用户管理服务支持组的分层结构也是很有价值的。
特定组的从属关系界定了用户可存取哪些由内容管理系统提供的功能。另外,它规定了该功能呈现于哪种应用。对每个组,应该做到对所有可存取的应用加以界定;对于每个应用,应该做到对可存取的功能加以规定。
除了访问到全部功能,某个群的从属关系还授予或否认对由内容管理系统管理的对象的存取权限。
为了在企业范围内对企业的所有系统所共享的用户和组统一管理,内容管理系统中采用的用户管理系统应能联系上一级中央(即企业范围的)库以进行认证和授权。这种库的例子是基于轻量级目录访问协议(Lightweight Directory Access Protocal, LDAP)的目录服务,以及微软Windows主域控制器(Primary Domain Controller, PDC)等专用服务。
由内容管理系统管理的每个应用和每个内容对象都应该有一个相关的访问控制列表(Access Control List, ACL)。ACL包括与它的属性及可能的使用限制相关的信息,如拥有该对象组的ID、拥有该对象特定权限组的ID,以及描述所有用户一般访问权限的一个默认组的ID。举例来说,与所有的组(包括默认组)相关的权限可包括对内容对象的简单访问权限,如对一个对象的看、读、访问及重放权限。更多高级权限包括允许用户写、编辑、修改、创建、拷贝及删除内容对象。另外,还有一些与组相连的管理权限,比如改变所有者和ACL。经授权的实体或用户,可以授予或撤销权限。
有一些重要的限制应该加以考虑。所有者组的成员总是能够对所有的组改变其所有者以及全部的用户权限;而一个并非该对象的所有者的用户,尽管该用户是一个有改变用户权限的组的成员,但只能改变该特定组的用户权限。
除了可配置的组,应该有可能配置一些系统专用的组,这些组具有对内容管理系统中所有对象的访问权限,例如,一个对全部对象有完全访问权限的超级用户组。
用户管理应该至少提供下面的功能,并可以通过用户管理事务管理界面进行访问:
·添加、修改、删除、使能和禁止用户。
·添加、修改、删除、使能和禁止组。
·将组指派给用户或将组从用户处移除。
·将组指派给组或将组从组处移除。
·将对应用功能的访问权限指派给组,或将对应用功能的访问权限从组处移除。
·将对资产的访问权限指派给组,或将对资产的访问权限从组处移除。
6.7.3.2帐号和许可
帐号和许可服务负责登记对系统各部分的访问,以及对系统中存储的内容对象的访问,它和其他设施共同确保遵照软件许可条件。该服务采集的数据是状态报告与统计的基础。
支持在帐号和许可服务处注册的内容管理系统组件,需要与该服务接驳,以注册其唯一的标识和位置,并报告对其功能的每一次访问,也报告该访问的用户ID、访问日期和访问时间。另外,任何对内容管理系统中内容对象的访问,都需要将内容ID、用户ID、访问日期和时间以及访问类型(即,读、写、修改、删除等),报告给帐号服务和许可服务。
基于提供给帐号和许可服务的数据,可以产生使用统计的信息,组织内的各使用部门可以知道内容管理系统服务的使用情况。而且它有助于通过识别瓶颈或优化高速缓存策略来优化系统。
另外,帐号和许可服务要能够解决在包含多个供应商解决方案的系统中出现的软件许可问题。
6.7.3.3消息传递
消息传递服务提供在内容管理系统中客户到客户的通信设施。该服务的功能包括发送和接收电子邮件消息、聊天时的直接P2P通信以及即时的通知消息。该服务在内容管理系统环境中运作,因此,通过消息传递服务交换的信息,可以直接涉及内容对象、项目或系统中所管理的其他任何组件。
消息传送服务用以下方式使得在工作组内外可以进行信息交换和协同工作:采用即时通知以提醒用户另一个用户已经提供了一些应该加以注意的信息或内容、允许非同步的工作流分支(如请求一个存档搜索作为离线进程)、在未指定的时间来传送结果、为了新的生产请求一个剪辑层次权限许可,在一个未指定的时间被答复、或提交方案要求审批和接收答复。
消息传递服务也可被用于在系统组件之间提供有保证的消息传送。
6.7.3.4配置
配置服务持有全部系统过程的配置参数以及与用户相关的、全部的客户端配置数据的配置参数。作为内容管理系统的一部分服务,应只在本地保持最低限度的配置信息。这些信息用来成功引导服务,以及识别命名服务以便在其上注册并检索注册信息。
在大多数情况下,对一个服务来说,唯一需要在本地保持的配置信息,是命名服务的网络标识符和一个系统标识(如果一个命名服务管理不止一个内容管理系统实例的话,需要系统标志),其他的配置信息应该从配置服务处读取。在配置服务中,所有的改变都是集中控制的,从而使得系统维护变得简单。配置服务的结构可以是分布式的,或也可能是层次结构(如类似于代理器管理的概念)。