复合服务 Composite Services
来源:互联网 发布:eclipse的js插件 编辑:程序博客网 时间:2024/06/04 17:59
在SOA中,复合服务是非常重要的一个概念。总体来说,按其复合程度,复合服务可以分为:一般意义上的“简单”复合服务和“工作流类型”的复杂复合服务两种。
一般意义上的“简单”复合服务
这类复合服务就是将已有的一些细粒度的服务重新整理包裹成一个粗粒度的服务。大多数的复合服务都属于此类型。值得深入探讨和研究的是“简单”复合服务的应用场景,这里列举两类典型场景:
场景一:为满足应用集成的需要,在集成多个既有系统的服务基础之上,又实现了一部分“集成逻辑”的服务。例如:假定存在两个独立的系统:销售系统和财物系统,销售系统有合同信息,财务系统有客户的信用信息,假设现在要对两个系统进行集成,希望集成后的系统能根据财务系统中客户信用对销售系统中的合同进行风险评估,将这一功能抽象成一个独立的服务后,我们不难发现,它需要同时调用财务系统的CreditService和销售系统的ContractService,这个服务就是一种典型的复合服务。
这一问题正是通过“复合服务”来解决的,由“复合服务”来协调各既有系统,保证数据的一致性。这就回答了前面提出的“以谁为准”的问题,那就是以这个“复合服务”为准。下图描述了复合服务在此类场景下的应用:
一般意义上的“简单”复合服务
这类复合服务就是将已有的一些细粒度的服务重新整理包裹成一个粗粒度的服务。大多数的复合服务都属于此类型。值得深入探讨和研究的是“简单”复合服务的应用场景,这里列举两类典型场景:
场景一:为满足应用集成的需要,在集成多个既有系统的服务基础之上,又实现了一部分“集成逻辑”的服务。例如:假定存在两个独立的系统:销售系统和财物系统,销售系统有合同信息,财务系统有客户的信用信息,假设现在要对两个系统进行集成,希望集成后的系统能根据财务系统中客户信用对销售系统中的合同进行风险评估,将这一功能抽象成一个独立的服务后,我们不难发现,它需要同时调用财务系统的CreditService和销售系统的ContractService,这个服务就是一种典型的复合服务。
场景二:在某公司的多套遗留系统中都涉及到了“订单”实体,在实现集成后,如果要“增删查改订单”的话,应该如何保证各遗留系统中的订单数据保持一致呢?这在应用集成中是一个非常典型的问题,这个问题也可以表述为:在多个系统中都存在的某个实体,到底应该以谁为准呢?下图是对这一问题的一个形象的描述(以Customer实体为例):
这一问题正是通过“复合服务”来解决的,由“复合服务”来协调各既有系统,保证数据的一致性。这就回答了前面提出的“以谁为准”的问题,那就是以这个“复合服务”为准。下图描述了复合服务在此类场景下的应用:
“工作流类型”的复杂复合服务
- 复合服务 Composite Services
- 复合(composite)和聚集(Aggregation)
- hibernate,复合主键,composite-id
- Composite sensors复合式传感器
- 服务services
- 服务 - Services
- Services服务
- Services,服务
- Services服务
- EJB---->复合主键(Composite Primary Key)
- NHibernate: 复合主键 (Composite Key) 如何兼容 NULL值
- JAVA模式之复合模式(composite)思考与应用
- 7.5.1.1复合设计模式(THE COMPOSITE DESIGN PATTERN)
- 拓展C++ STL功能,函数适配器,复合函数composite
- pl/SQL编程(四)复合变量composite
- hibernate学习11之composite(复合)主键映射
- 控制系统服务 (Windows Services)
- Supplementary Services 增值服务
- ContentProvider的用法
- 数据持久化辅助类
- 服务器公共组件 -- 事件与信号
- JS 字符串操作,用的时候看看
- 委差的含义
- 复合服务 Composite Services
- Android 对话框(Dialog)大全 建立你自己的对话框
- IOCP原理
- navigationbar,tabbar,toolbar添加背景
- XML操作多行数据(即DataTable)的类(可直接使用)
- 编程技术面试的五大要点
- 再谈登录服的实现
- IT全能王
- gcc编译报错:程序中有游离的‘\357’‘\273’‘\277’等 解决方法