|  
                         为什么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 
                        
                         REST 
                        
                          - WCF3.5支持暴露REST服务
 
                          -  允许无SOAP客户端的连接
 
                          -  以WEB为中心的编程模型
 
                          -  支持JSON
 
                          -  方便实现聚合(RSS)
 
                         
						  
                        在WCF中创建RSET 
                        1.用URI模板绑定和解析URI 
                        2.新特性:WebGet, 
                          
						
                        WebInvokeWebGet,允许映射Http GET 操作 WebInvoke支持HTTP POST, 
                          PUT, DELETE等 
                          
                        3.新的绑定和行为,WebHttpBinding,WebHttpBehaivor 
                          
                         4.新的宿主,WebServiceHost 
                          
                         5.配置自由,WebSerivceHostFactory 
                          
                         6.访问Header,设置content-type,WebOperationContext 
                          设置状态(NotFound, Forbidden),设置Content-Type(text/html, 
                          image/jpge) 
                          
                         7.支持Ajax式的格式:JSON 
                          
                         8.新的聚合API  
                        ST使用标准协议 
                        
                          -  HTTP和FTP都在TCP之上
 
                          -  WebRequest, WebResponse 
 
                         
						  
                          
                        RE 
                        
                          - WebClient, 对WebRequest, WebResponse做简单的封装
 
						    
                          -  WCF REST kit
 
                         
                        聚合(Syndication)API 
                        
                          - 使用RSS和ATOM传输数据
 
                          -  支持WCF3.5
 
                          -  对象模型(SyndicationFeed,SyndicationItem)
                            
                            
 
                          |