糟糕的是,业务人员和 IT 专家常常对同一术语有不同的解释,甚至在不同的业务线之间也有这种现象。在许多情况下,企业中常常有相似或相同数据元素的多个拷贝,这些拷贝的上下文只在其数据存储库中有效。当把这些元素向外部客户公开时,就会丢失它们的上下文;更糟糕的是,它们甚至可能导致误解或失效。业务术语表的根本价值就在于此。它统一了数据元素的定义,让数据的上下文对于数据的所有消费者都有意义。
业务术语表不但应该包含数据元素的公认定义,还应该包含与这个元素相关联的任何变体或依赖性。这会帮助驱动概念和逻辑数据模型的定义。最终,这使 SOA 解决方案中的组件和参与者能够获得一致的业务信息定义。
在构建企业范围的业务术语表时,可以同时包含术语的语义定义和表示定义。语义定义(semantic definITion)主要为每个术语提供精确的含义。表示定义(Representational definition)主要定义在 IT 系统中如何表示每个术语,比如整数、字符串或日期格式(参考数据类型)。业务术语表是为组织创建精确的语义和表示定义这一过程中的一个步骤。
在任何 SOA 或数据集成项目中,业务术语表都要捕捉在任何探索活动(比如过程分解、重用分析或对现有资产的分析)中出现的术语。术语可以与过程活动和业务目标相关,也可以只由确定的单个源的定义组成。
在各个组织中,业务术语表的所有者各不相同,甚至在同一组织的不同领域中也不一样。在理想情况下,应该在企业数据/IT 管理结构中定义信息领域及其所有关系,而且这些信息领域和所有权层次结构可以应用于业务术语表。如果还没有这样的管理结构,那么在 SOA 项目期间,很可能由数据架构师担任管理的角色,负责确定长期的所有权策略。强烈建议项目包含或使用管理流程。如果公司中还没有这种流程,那么项目应该实现这种管理流程。
您必须记住,必须及早创建业务术语表,而且它不只是在早期探索阶段进行的一项活动。可以而且应该尽早考虑业务术语表,甚至在需求收集阶段和项目定义阶段就开始这项活动。业务术语表并不限于现有的数据源或数据库;它还包含用来描述 SOA 中业务过程和服务的所有业务术语的定义。越早开发术语表,就能够越快地为整个项目或企业提供一致的术语定义。
业务术语表最有价值的方面也是最难实现的方面 —— 业务概念的公认的统一定义。可以通过与主题问题专家进行讨论、举行会议或进行问卷调查来实现这个目标。一个术语使用的范围越广,其含义要取得一致往往就越困难。如果一个术语只在较窄的业务范围内使用,那么 SME 或业务分析师可能已经掌握了公认的定义。如果整个企业都使用一个术语,那么要获得一致的定义就会困难得多;可能需要先收集各种定义,然后与各个 SME 会谈,尝试形成统一的理解和定义。在这种情况下,最初的一个术语常常被分解为多个术语,从而满足所有上下文的需要。但在术语表中这不一定是必须的。不同的人员常常用同一术语表示非常不同的东西 —— 这种情况是由术语模糊性引起的,而后者是因为缺少清晰的业务定义。调查表明,使用同一术语描述多种不同需求的现象很普遍,以术语表形式提供详细的业务定义有助于区分这些需求。