任务:应用服务石蕊测试
本任务描述了对候选服务的要求,从而确保能够对这些服务进行进一步的开发以实际满足业务需求。
规程:分析和设计
关系
主要描述

一旦选定了候选服务并在(分类)服务组合中进行了记录,则需要确定哪些应显现为服务。 虽然从理论上而言,可以通过将候选服务的接口导出为服务描述来显现任何候选服务,但并非每个候选服务都应当如此。这样做在经济上和实践中(可能危及非功能需求)可能都不是可行的。 尤其是显现“所有类的所有方法”的天真决定将使得服务的数量达到无法承受并且通常无法管理的程度,从而导致“服务增长综合症”。 这将产生巨大的性能和服务管理问题,更不要提可能浪费公司的知识资本。 而且,必须牢记我们选择显现的每个服务都与成本关联:服务的资金、管理和底层基础结构(其安全性、性能和管理)以及将实施它们的组件都必须纳入考虑范围中。

因此,需要一些标准来帮助决定是否显现某项服务,而最重要的是决定是否要资助创建提供服务功能的服务组件,以及该服务的维护、监视、安全性、性能和其他服务级别协议。  

服务石蕊测试

项目经验表明服务石蕊测试形式的一组标准可以且应该用于过滤候选服务的集合。 此隐喻用于表示一组测试,如果应用,将决定给定的服务是否符合使用服务描述进行显现的条件。 这些测试将同时使用,有助于回答诸如“在候选服务列表中,应显现哪些服务” 以及“因此我们应资助哪些服务?”、 “哪些服务具有业务价值?”之类的问题。

在极端情况下,每个业务用例都可以被视为候选服务。而另一极端情况下,则将只选择显现少数服务。 应用石蕊测试通常会在两者之间折衷:选择业务希望显现且稍后可用在组合中的一组可管理服务。

通过所有服务石蕊测试的候选服务随后应显现为 SOA 中的服务。可能会有一些候选服务并未通过服务石蕊测试,但仍实施为服务。 服务石蕊测试是确定显现哪些服务的辅助方法;如果业务选择显现未通过服务石蕊测试的候选服务,则意味着与 SOA 关联的利益将不会实现。

不满足服务石蕊测试的候选服务必须以某种方式实施,因为它们是满足业务需求所必需的。 它们可以在服务组件上作为方法来实施,且无需生成 WSDL 或其他形式的服务定义;或者可以用作不可显现的实体。

考虑事项

服务石蕊测试的应用是一个迭代过程。对于精化的第一阶段,必须根据当前了解作出决策。 随着设计过程中获得的信息增加,应重访服务石蕊测试。

每个候选服务的服务石蕊测试应该由相应的主题事件专家或项目干系人应用和复审。

服务石蕊测试的复审结果是跟踪标准和服务详细程度是否合适的有效方法。 例如,如果通过特定测试的候选服务过多,则此测试的定义可能过宽,或者服务级别详细程度可能不适当。

某个服务可能未通过一个或多个服务石蕊测试,但由于某些特定于项目的决策(业务或 IT),该服务仍可显现。 这是正常的。可能会制定一些不理会服务石蕊测试而显现服务的体系结构决策或业务决策。

步骤
确保服务与业务协调

服务的第一个测试是关于其“业务协调”。如果服务不能回溯到业务任务或目标,则它可能不会产生 SOA 实施所需的利益。 以下问题如果都得到肯定的答复,则表示服务与业务是协调的。

  • 该服务是否提供了支持业务流程和目标所必需的业务功能?(请参阅任务:业务流程分析
  • 该业务是否愿意在整个生命周期中为服务提供资助:供应、管理、支配和维护?
  • 该业务是否愿意与客户或业务合作伙伴在内部或外部共享此服务?例如,暗指的内容可能是其他成本,业务机密,安全性等。
  • 在企业内,现在或将来是否有机会复用此服务?
确保服务是可组合的

可组合性的定义是使服务能够参与服务组合的属性。可使用所有组合类型创建应用程序。

  • 服务是否满足在组合的非功能需求中定义的必需服务质量属性?
  • 服务是无状态的吗?请参阅指南:服务的状态管理
  • 服务是独立的吗?虽然此服务可以与其他服务在运行时合作以执行业务流程,但是否可以单独部署以满足业务目标? 该服务对其他嵌入功能没有暗含的依赖关系。所有存在依赖关系的服务都是可替换或独立的。
  • 服务的实施技术是中立的吗?技术中立表示服务不会强加对非标准的(以及使用者未知的)协议或设备的支持,例如构成的组件需要通过非标准的应用程序接口的干涉。
    此测试仅当服务部署在使用者 环境中时适用。例如:某个企业为其客户提供映像检索服务。它可以通过 Web service 为其预订客户提供此功能。 或者,该企业可以将此映像检索功能显现为 Web service 和映像集合来移交给客户。 如果这样,客户将担负实施技术搜索的任务。
确保服务具有外部描述

服务的最基本属性是它具有外部化的服务描述。外部化的服务描述可以通过工具生成,也可以手动生成。

  • 该服务是否具有与底层物理实施截然不同且独立于此实施的外部化服务描述? 它的当前示例是 WSDL。
  • 是否可以用服务描述发现并绑定此服务?
  • 该服务描述是否包含与自身有关的元数据?即该服务描述本身必须充分,应包含或引用了解服务使用者与供应者之间的交换消息所必需的所有信息。
确保服务可复用

业务项目干系人是否可以在需要此服务功能的所有流程中使用此服务?

确保服务在技术上可行

技术可行性确保了根据功能和非功能需求,使用可用的技术能够实际实现(实施和部署)该服务。

  • 对于给定的实施需求或基础结构,服务的实施和管理工作是否合理且容易达成?
    这是在实现的技术可行性检查后执行的