架构设计之面向服务(SOA)
2013-02-19 11:32
405 查看
为什么SOA?
互操作性,系统间的连接不需要额外的桥梁
版本控制,更新,升级,添加新功能不需要现有的客户端或服务端做停机处理
灵活性,增强服务只需要升级硬件,而不需要调整软件。
SOA的概念
边界明确
服务间是自治的
服务间共享结构和协议,而不是类(class)
服务的兼容性依赖于策略
SOA的两边结构虽不同,且物理隔绝,但也阻止不了其互操作
SOA的设计之 处理多部分的设计
服务契约(外部设计),服务契约规定了如何与服务接口通信
服务接口(翻译和分发),接口设计规定了如何从公共格式(服务契约)转化成内部的实现类(内部设计)
服务实现(内部设计),服务实现通过面向对象的方式设计功能需求
SOA的设计之 优先外部设计
契约优先,设计SOA最合适的方法论
方式:专注于如何与服务通信,只使用公开的标准(xml,XSD,WS-*)
很少的工具可用,微软的服务工厂(Microsoft Service Factory)
SOA的设计之 内外数据格式的翻译
有自己的数据格式
有两种格式描述数据,公开的用来部署结构,内部的用来实现类型系统
服务的实现
服务的接口,在内外两种数据格式间翻译转换
翻译格式,
需要至少一个级别的间接ID关系(SOA服务器GUID+#+数据库识别ID)
实现内部类型,Dataset, ADOBO, ResultSet, CLR,必须能转换成公共的契约
SOA的设计之 服务的调度
从服务实现中解藕服务接口
允许使用工厂模式,工厂创建的实例能够涵盖功能
进来的请求和相应实现间的关联可配置
SOA的设计之 无状态
分布式系统意味着没有保证的连接
可靠性和扩展性要求状态在内存外存储
临时耦合应该由session key 和 持久化session存储
考虑持久的服务和消息
WEB 编程
WCF
REST(XML-RPC,JSON)
聚合(RSS,ATOM)
WS-*
分布式通信基于扩展的XML框架(互操作是主要目标,基于SOAP标准,依赖WEB)
WebSerivce协议通过行业标准W3C定义(WS-Addressing, WS-Security, WS-AtomicTransaction)
WCF
支持多种绑定
消息可扩展
支持多种WS-标准
REST
WCF3.5支持暴露REST服务
允许无SOAP客户端的连接
以WEB为中心的编程模型
支持JSON
方便实现聚合(RSS)
在WCF中创建RSET
用URI模板绑定和解析URI
新特性:WebGet,WebInvoke
WebGet,允许映射Http GET 操作
WebInvoke支持HTTP POST, PUT, DELETE等
新的绑定和行为,WebHttpBinding,WebHttpBehaivor
新的宿主,WebServiceHost
配置自由,WebSerivceHostFactory
访问Header,设置content-type,WebOperationContext
设置状态(NotFound, Forbidden),设置Content-Type(text/html, image/jpge)
支持Ajax式的格式:JSON
新的聚合API
REST使用标准协议
HTTP和FTP都在TCP之上
WebRequest, WebResponse
WebClient, 对[b]WebRequest, WebResponse做简单的封装
[/b]
[b]WCF REST kit[/b]
聚合(Syndication)API
使用RSS和ATOM传输数据
支持WCF3.5
对象模型([b]SyndicationFeed,SyndicationItem)[/b]
互操作性,系统间的连接不需要额外的桥梁
版本控制,更新,升级,添加新功能不需要现有的客户端或服务端做停机处理
灵活性,增强服务只需要升级硬件,而不需要调整软件。
SOA的概念
边界明确
服务间是自治的
服务间共享结构和协议,而不是类(class)
服务的兼容性依赖于策略
SOA的两边结构虽不同,且物理隔绝,但也阻止不了其互操作
SOA的设计之 处理多部分的设计
服务契约(外部设计),服务契约规定了如何与服务接口通信
服务接口(翻译和分发),接口设计规定了如何从公共格式(服务契约)转化成内部的实现类(内部设计)
服务实现(内部设计),服务实现通过面向对象的方式设计功能需求
SOA的设计之 优先外部设计
契约优先,设计SOA最合适的方法论
方式:专注于如何与服务通信,只使用公开的标准(xml,XSD,WS-*)
很少的工具可用,微软的服务工厂(Microsoft Service Factory)
SOA的设计之 内外数据格式的翻译
有自己的数据格式
有两种格式描述数据,公开的用来部署结构,内部的用来实现类型系统
服务的实现
服务的接口,在内外两种数据格式间翻译转换
翻译格式,
需要至少一个级别的间接ID关系(SOA服务器GUID+#+数据库识别ID)
实现内部类型,Dataset, ADOBO, ResultSet, CLR,必须能转换成公共的契约
SOA的设计之 服务的调度
从服务实现中解藕服务接口
允许使用工厂模式,工厂创建的实例能够涵盖功能
进来的请求和相应实现间的关联可配置
SOA的设计之 无状态
分布式系统意味着没有保证的连接
可靠性和扩展性要求状态在内存外存储
临时耦合应该由session key 和 持久化session存储
考虑持久的服务和消息
WEB 编程
WCF
REST(XML-RPC,JSON)
聚合(RSS,ATOM)
WS-*
分布式通信基于扩展的XML框架(互操作是主要目标,基于SOAP标准,依赖WEB)
WebSerivce协议通过行业标准W3C定义(WS-Addressing, WS-Security, WS-AtomicTransaction)
WCF
支持多种绑定
消息可扩展
支持多种WS-标准
REST
WCF3.5支持暴露REST服务
允许无SOAP客户端的连接
以WEB为中心的编程模型
支持JSON
方便实现聚合(RSS)
在WCF中创建RSET
用URI模板绑定和解析URI
新特性:WebGet,WebInvoke
WebGet,允许映射Http GET 操作
WebInvoke支持HTTP POST, PUT, DELETE等
新的绑定和行为,WebHttpBinding,WebHttpBehaivor
新的宿主,WebServiceHost
配置自由,WebSerivceHostFactory
访问Header,设置content-type,WebOperationContext
设置状态(NotFound, Forbidden),设置Content-Type(text/html, image/jpge)
支持Ajax式的格式:JSON
新的聚合API
REST使用标准协议
HTTP和FTP都在TCP之上
WebRequest, WebResponse
WebClient, 对[b]WebRequest, WebResponse做简单的封装
[/b]
[b]WCF REST kit[/b]
聚合(Syndication)API
使用RSS和ATOM传输数据
支持WCF3.5
对象模型([b]SyndicationFeed,SyndicationItem)[/b]
相关文章推荐
- 使用WCF实现SOA面向服务编程—— 架构设计
- 使用WCF实现SOA面向服务编程—— 架构设计
- “.NET技术”使用WCF实现SOA面向服务编程—— 架构设计
- 使用WCF实现SOA面向服务编程—— 架构设计
- 使用WCF实现SOA面向服务编程—— 架构设计
- 使用WCF实现SOA面向服务编程—— 架构设计
- 架构设计之面向服务(SOA)
- 使用WCF实现SOA面向服务编程“.NET研究”—— 架构设计
- 使用WCF实现SOA面向服务编程—— 架构设计
- 使用WCF实现SOA面向服务编程—— 架构设计
- 一起谈.NET技术,使用WCF实现SOA面向服务编程—— 架构设计
- 译著出版:《SOA概念、技术与设计》 - 面向服务的架构
- 使用WCF实现SOA面向服务编程—— 架构设计
- 使用WCF实现SOA面向服务编程—— 架构设计 推荐
- 译著出版:《SOA概念、技术与设计》 - 面向服务的架构
- 使用WCF实现SOA面向服务编程—— 架构设计
- 热门话题:使用WCF实现SOA面向服务编程—— 架构设计(附原代码)
- DDD领域驱动设计与SOA面向服务架构
- 架构设计-SOA面向服务架构
- 译著出版:《SOA概念、技术与设计》 - 面向服务的架构