服务通常由其他现有的服务组成,在某些情况下,通过诸如编排等技术可在没有显式代码的情况下开发服务(仅为现有服务的组合)。
在规范过程中,对于复用企业服务组合中已有元素的服务并且已记录依赖关系的服务,如果它们的功能依赖于组合后服务的功能且可以在不访问组合服务的情况下部署该合成服务,则可将这些服务视为组合服务。
在一些 SOA 框架中,业务流程层仅用于管理已编排的和组合服务,其中复杂的流程是以更精细服务的受管编排形式提供的。 在此示例中,Web service
的业务流程执行语言(BPEL4WS)可用作开发组合服务、服务流和业务流程层的工具。
因此,可确定两种组合服务:
-
硬连接组合服务 - 此类组合服务的特征是灵活性低,这是由于服务的流和控制是预定义的,其中工作流和控制未外部化。 此类服务具有有吸引力的服务质量属性,例如性能。
-
宽松连接组合服务 - 此类组合服务的特征是灵活性高,其中将服务并入业务流程是通过将工作流和控制外部化来实现的。组合的工作流描述已外部化。
此类组合用于开发建模工具、通过规则动态变化和通过建模静态变化。使用 BPEL 的组合是一个例子。
关于更多信息,请参阅概念:服务组合和编排以及指南:服务实现 - SOA 应用程序中的 BPEL 服务以获取特定于项目的示例。
|