1 概述 面向服务
![](/icons/93407de.gif)
体系架构(Service Oriented Architecture, SOA)就是在分布式
![](/icons/93407de.gif)
环境中
![](/icons/93407dou.gif)
将各种功能都以服务
![](/icons/93407de.gif)
形式提供给最终用户或者其他服务
![](/icons/93407dou2.gif)
如今
![](/icons/93407dou.gif)
企业级应用
![](/icons/93407de.gif)
开发都采用面向服务
![](/icons/93407de.gif)
体系架构来满足灵活多变
![](/icons/93407dou.gif)
可重用性高
![](/icons/93407de.gif)
需求
![](/icons/93407dou2.gif)
IBM Rational Software Architect(RSA)是
![](/icons/93407yi.gif)
套设计和开发工具
![](/icons/93407dou.gif)
它构建在开放
![](/icons/93407de.gif)
、可扩展
![](/icons/93407de.gif)
Eclipse3.0平台的上
![](/icons/93407dou.gif)
实现了多项行业最新标准
![](/icons/93407dou.gif)
提供了灵活
![](/icons/93407de.gif)
插件扩展机制
![](/icons/93407dou2.gif)
借助UML2.0技术
![](/icons/93407dou.gif)
它实现了模型驱动
![](/icons/93407de.gif)
软件Software开发模式
![](/icons/93407dou.gif)
可以帮助开发团队(Team)创建更加强壮
![](/icons/93407de.gif)
软件Software结构
![](/icons/93407dou2.gif)
本文从总体上介绍了SOA实现
![](/icons/93407de.gif)
相关技术
![](/icons/93407dou.gif)
以及RSA中对这些技术
![](/icons/93407de.gif)
支持和扩展
![](/icons/93407dou2.gif)
2 面向服务
![](/icons/93407de.gif)
体系架构 - SOA
在经典软件Software工程理论中
![](/icons/93407dou.gif)
不管是瀑布思路方法还是原型思路方法
![](/icons/93407dou.gif)
都是从需求分析做起
![](/icons/93407dou.gif)
![](/icons/93407yi.gif)
步
![](/icons/93407yi.gif)
步构建起形形色色
![](/icons/93407de.gif)
软件Software系统
![](/icons/93407dou2.gif)
但是
![](/icons/93407dou.gif)
需求变更像
![](/icons/93407yi.gif)
个挥的不去
![](/icons/93407de.gif)
阴影
![](/icons/93407dou.gif)
时刻伴随着系统左右
![](/icons/93407dou2.gif)
每
![](/icons/93407yi.gif)
个实际应用系统
![](/icons/93407de.gif)
开发者都饱尝了在系统进入开发阶段、测试阶段
![](/icons/93407dou.gif)
甚至上线阶段遭遇应接不暇
![](/icons/93407de.gif)
需求变更
![](/icons/93407de.gif)
极端痛苦
![](/icons/93407dou2.gif)
如何解决这
![](/icons/93407yi.gif)
问题?能否来
![](/icons/93407yi.gif)
场软件Software开发和架构
![](/icons/93407de.gif)
革命?SOA
![](/icons/93407de.gif)
提出
![](/icons/93407dou.gif)
就是被人看成这样
![](/icons/93407de.gif)
![](/icons/93407yi.gif)
场革命
![](/icons/93407dou2.gif)
其实质就是要将系统模型和系统实现分割开来
![](/icons/93407dou2.gif)
2.1 什么是SOA
2.1.1 定义
SOA并不是
![](/icons/93407yi.gif)
个新概念
![](/icons/93407dou.gif)
有人就将CORBA和DCOM等组件模型看成SOA架构
![](/icons/93407de.gif)
前身
![](/icons/93407dou2.gif)
早在1996年
![](/icons/93407dou.gif)
Gartner Group就已经提出了SOA
![](/icons/93407de.gif)
预言
![](/icons/93407dou.gif)
不过那个时候仅仅是
![](/icons/93407yi.gif)
个"预言"
![](/icons/93407dou.gif)
当时
![](/icons/93407de.gif)
软件Software发展水平和信息化程度还不足以支撑这样
![](/icons/93407de.gif)
概念走进实质性应用阶段
![](/icons/93407dou2.gif)
到了近
![](/icons/93407yi.gif)
两年
![](/icons/93407dou.gif)
SOA
![](/icons/93407de.gif)
技术实现手段渐渐成熟了
![](/icons/93407dou.gif)
在BEA、IBM等软件Software巨头
![](/icons/93407de.gif)
极力推动下
![](/icons/93407dou.gif)
才得以慢慢风行起来
![](/icons/93407dou2.gif)
有关SOA
![](/icons/93407dou.gif)
![](/icons/93407yi.gif)
般认为:SOA
![](/icons/93407dou.gif)
面向服务
![](/icons/93407de.gif)
架构是
![](/icons/93407yi.gif)
个组件模型
![](/icons/93407dou.gif)
它将应用
![](/icons/93407chengxu.gif)
![](/icons/93407de.gif)
区别功能单元----服务(service)
![](/icons/93407dou.gif)
通过服务间定义良好
![](/icons/93407de.gif)
接口和契约(contract)联系起来
![](/icons/93407dou2.gif)
接口采用中立
![](/icons/93407de.gif)
方式定义
![](/icons/93407dou.gif)
独立于具体实现服务
![](/icons/93407de.gif)
硬件平台、操作系统和编程语言
![](/icons/93407dou.gif)
使得构建在这样
![](/icons/93407de.gif)
系统中
![](/icons/93407de.gif)
服务可以使用统
![](/icons/93407yi.gif)
和标准
![](/icons/93407de.gif)
方式进行通信
![](/icons/93407dou2.gif)
这种具有中立
![](/icons/93407de.gif)
接口定义(没有强制绑定到特定
![](/icons/93407de.gif)
实现上)
![](/icons/93407de.gif)
特征称为服务的间
![](/icons/93407de.gif)
松耦合
![](/icons/93407dou2.gif)
2.1.2 SOA中
![](/icons/93407de.gif)
特征
从SOA
![](/icons/93407de.gif)
定义中
![](/icons/93407dou.gif)
我们看到两点:
软件Software系统架构: SOA不是
![](/icons/93407yi.gif)
种语言
![](/icons/93407dou.gif)
也不是
![](/icons/93407yi.gif)
种具体
![](/icons/93407de.gif)
技术
![](/icons/93407dou.gif)
更不是
![](/icons/93407yi.gif)
种产品
![](/icons/93407dou.gif)
而是
![](/icons/93407yi.gif)
种软件Software系统架构
![](/icons/93407dou.gif)
它尝试给出在特定环境下推荐采用
![](/icons/93407de.gif)
![](/icons/93407yi.gif)
种架构
![](/icons/93407dou.gif)
从这个角度上来说
![](/icons/93407dou.gif)
它其实更像
![](/icons/93407yi.gif)
种架构模式(Pattern)
![](/icons/93407dou.gif)
是
![](/icons/93407yi.gif)
种理念架构
![](/icons/93407dou.gif)
是人们面向应用服务
![](/icons/93407de.gif)
解决方案框架
![](/icons/93407dou2.gif)
服务(service)是整个SOA实现
![](/icons/93407de.gif)
核心
![](/icons/93407dou2.gif)
SOA架构
![](/icons/93407de.gif)
基本元素是服务
![](/icons/93407dou.gif)
SOA 指定
![](/icons/93407yi.gif)
组实体(服务提供者、服务消费者、服务注册表、服务条款、服务代理和服务契约)
![](/icons/93407dou.gif)
这些实体详细介绍说明了如何提供和消费服务
![](/icons/93407dou2.gif)
遵循 SOA 观点
![](/icons/93407de.gif)
系统必须要有服务
![](/icons/93407dou.gif)
这些服务是可互操作
![](/icons/93407de.gif)
、独立
![](/icons/93407de.gif)
、模块化
![](/icons/93407de.gif)
、位置明确
![](/icons/93407de.gif)
、松耦合
![](/icons/93407de.gif)
并且可以通过网络查找其地址
![](/icons/93407dou2.gif)
基于上面讨论
![](/icons/93407dou.gif)
我们给出SOA
![](/icons/93407de.gif)
下面
![](/icons/93407yi.gif)
些特征:
服务
![](/icons/93407de.gif)
封装(encapsulation)
![](/icons/93407dou2.gif)
将服务封装成用于业务流程
![](/icons/93407de.gif)
可重用组件
![](/icons/93407de.gif)
应用
![](/icons/93407chengxu.gif)
![](/icons/93407hanshu.gif)
![](/icons/93407dou2.gif)
它提供信息或简化业务数据从
![](/icons/93407yi.gif)
个有效
![](/icons/93407de.gif)
、
![](/icons/93407yi.gif)
致
![](/icons/93407de.gif)
状态向另
![](/icons/93407yi.gif)
个状态
![](/icons/93407de.gif)
转变
![](/icons/93407dou2.gif)
封装隐藏了复杂性
![](/icons/93407dou2.gif)
服务
![](/icons/93407de.gif)
API保持不变
![](/icons/93407dou.gif)
使得用户远离具体实施上
![](/icons/93407de.gif)
变更
![](/icons/93407dou2.gif)
服务
![](/icons/93407de.gif)
重用(reuse)
![](/icons/93407dou2.gif)
服务
![](/icons/93407de.gif)
可重用性设计显著地降低了成本
![](/icons/93407dou2.gif)
为了实现可重用性
![](/icons/93407dou.gif)
服务只工作在特定处理过程
![](/icons/93407de.gif)
上下文(context)中
![](/icons/93407dou.gif)
独立于底层实现和客户需求
![](/icons/93407de.gif)
变更
![](/icons/93407dou2.gif)
服务
![](/icons/93407de.gif)
互操作(
![](/icons/93407int.gif)
eroperability)
![](/icons/93407dou2.gif)
互操作并不是
![](/icons/93407yi.gif)
个新概念
![](/icons/93407dou2.gif)
在CORBA、DCOM、web service中就已经采用互操作技术了
![](/icons/93407dou2.gif)
在SOA中
![](/icons/93407dou.gif)
通过服务的间既定
![](/icons/93407de.gif)
通信协议进行互操作
![](/icons/93407dou2.gif)
主要有同步和异步两种通信机制
![](/icons/93407dou2.gif)
SOA提供服务
![](/icons/93407de.gif)
互操作特性更利于其在多个场合被重用
![](/icons/93407dou2.gif)
服务是自治
![](/icons/93407de.gif)
(Autonomous)功能实体
![](/icons/93407dou2.gif)
服务是由组件组成
![](/icons/93407de.gif)
组合模块
![](/icons/93407dou.gif)
是自包含和模块化
![](/icons/93407de.gif)
![](/icons/93407dou2.gif)
SOA非常强调架构中提供服务
![](/icons/93407de.gif)
功能实体
![](/icons/93407de.gif)
完全独立自主
![](/icons/93407de.gif)
能力
![](/icons/93407dou2.gif)
传统
![](/icons/93407de.gif)
组件技术
![](/icons/93407dou.gif)
如.NET Remoting
![](/icons/93407dou.gif)
EJB
![](/icons/93407dou.gif)
COM或者CORBA
![](/icons/93407dou.gif)
都需要有
![](/icons/93407yi.gif)
个宿主(Host或者Server)来存放和管理这些功能实体;当这些宿主运行结束时这些组件
![](/icons/93407de.gif)
寿命也随的结束
![](/icons/93407dou2.gif)
这样当宿主本身或者其它功能部分出现问题
![](/icons/93407de.gif)
时候
![](/icons/93407dou.gif)
在该宿主上运行
![](/icons/93407de.gif)
其它应用服务就会受到影响
![](/icons/93407dou2.gif)
SOA架构中非常强调实体自我管理和恢复能力
![](/icons/93407dou2.gif)
常见
![](/icons/93407de.gif)
用来进行自我恢复
![](/icons/93407de.gif)
技术
![](/icons/93407dou.gif)
比如事务处理(Transaction)
![](/icons/93407dou.gif)
消息队列(Message Queue)
![](/icons/93407dou.gif)
冗余部署(Redundant Deployment)和集群系统(Cluster)在SOA中都起到至关重要
![](/icons/93407de.gif)
作用
![](/icons/93407dou2.gif)
服务的间
![](/icons/93407de.gif)
松耦合度(Loosly Coupled)
![](/icons/93407dou2.gif)
服务请求者到服务提供者
![](/icons/93407de.gif)
绑定和服务的间应该是松耦合
![](/icons/93407de.gif)
![](/icons/93407dou2.gif)
这就意味着
![](/icons/93407dou.gif)
服务请求者不知道提供者实现
![](/icons/93407de.gif)
技术细节
![](/icons/93407dou.gif)
比如
![](/icons/93407chengxu.gif)
设计语言、部署平台
![](/icons/93407dou.gif)
等等
![](/icons/93407dou2.gif)
服务请求者往往通过消息
![](/icons/93407diaoyong.gif)
操作
![](/icons/93407dou.gif)
请求消息和响应
![](/icons/93407dou.gif)
而不是通过使用 API 和文件格式
![](/icons/93407dou2.gif)
这个松耦合使会话
![](/icons/93407yi.gif)
端
![](/icons/93407de.gif)
软件Software可以在不影响另
![](/icons/93407yi.gif)
端
![](/icons/93407de.gif)
情况下发生改变
![](/icons/93407dou.gif)
前提是消息模式保持不变
![](/icons/93407dou2.gif)
在
![](/icons/93407yi.gif)
个极端
![](/icons/93407de.gif)
情况下
![](/icons/93407dou.gif)
服务提供者可以将以前基于遗留代码(例如
![](/icons/93407dou.gif)
COBOL)
![](/icons/93407de.gif)
实现完全用基于 Java 语言
![](/icons/93407de.gif)
新代码取代
![](/icons/93407dou.gif)
同时又不对服务请求者造成任何影响
![](/icons/93407dou2.gif)
这种情况是真实
![](/icons/93407de.gif)
![](/icons/93407dou.gif)
只要新代码支持相同
![](/icons/93407de.gif)
通信协议
![](/icons/93407dou2.gif)
服务是位置透明
![](/icons/93407de.gif)
(location transparency)
![](/icons/93407dou2.gif)
服务是针对业务需求设计
![](/icons/93407de.gif)
![](/icons/93407dou2.gif)
需要反应需求
![](/icons/93407de.gif)
变化
![](/icons/93407dou.gif)
即所谓敏捷(agility)设计
![](/icons/93407dou2.gif)
要想真正实现业务和服务
![](/icons/93407de.gif)
分离
![](/icons/93407dou2.gif)
就必须使得服务
![](/icons/93407de.gif)
设计和部署对用户来说是完全透明
![](/icons/93407de.gif)
![](/icons/93407dou2.gif)
也就是说
![](/icons/93407dou.gif)
用户完全不必知道响应自己需求
![](/icons/93407de.gif)
服务
![](/icons/93407de.gif)
位置
![](/icons/93407dou.gif)
甚至不必知道具体是哪个服务参和了响应
![](/icons/93407dou2.gif)
2.2 SOA不等于web 服务
由于Web服务和SOA有着很多相同
![](/icons/93407de.gif)
技术特点
![](/icons/93407dou.gif)
如:基于XML语言
![](/icons/93407dou.gif)
符合SOAP、WSDL和UDDI标准等
![](/icons/93407dou.gif)
很多人都认为下
![](/icons/93407yi.gif)
代Web服务就是SOA
![](/icons/93407dou2.gif)
Web服务可以用来实现SOA
![](/icons/93407dou.gif)
但是如果没有Web服务
![](/icons/93407dou.gif)
企业照样也可以很好地实现SOA
![](/icons/93407dou2.gif)
反的
![](/icons/93407dou.gif)
即便是利用Web服务技术
![](/icons/93407dou.gif)
也不
![](/icons/93407yi.gif)
定能保证SOA
![](/icons/93407de.gif)
效果就更好
![](/icons/93407dou2.gif)
Web服务和SOA关系如图1所示
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/d4c83496-7fbd-455d-9d24-0faba49d0924.jpg)
Web服务是
![](/icons/93407yi.gif)
套技术体系
![](/icons/93407dou.gif)
可以用来建立应用解决方案
![](/icons/93407dou.gif)
解决特定
![](/icons/93407de.gif)
消息通信和应用集成问题
![](/icons/93407dou2.gif)
随着时间
![](/icons/93407de.gif)
推移
![](/icons/93407dou.gif)
我们发现
![](/icons/93407dou.gif)
这些技术在不断发展、不断成熟
![](/icons/93407dou.gif)
也会更好地帮助你实现SOA
![](/icons/93407dou2.gif)
SOA是
![](/icons/93407yi.gif)
种软件Software架构
![](/icons/93407dou.gif)
而不局限于某个技术
![](/icons/93407de.gif)
组合(例如Web服务)
![](/icons/93407dou.gif)
它超越了技术范畴
![](/icons/93407dou2.gif)
在
![](/icons/93407yi.gif)
个商业环境中
![](/icons/93407dou.gif)
纯粹
![](/icons/93407de.gif)
SOA是
![](/icons/93407yi.gif)
种应用软件Software架构
![](/icons/93407dou.gif)
其中所有
![](/icons/93407de.gif)
功能都是相互独立
![](/icons/93407de.gif)
服务模块
![](/icons/93407dou.gif)
通过完备定义
![](/icons/93407de.gif)
接口相互联系起来
![](/icons/93407dou2.gif)
只要按照
![](/icons/93407yi.gif)
定
![](/icons/93407de.gif)
顺序来请求这些功能模块所提供
![](/icons/93407de.gif)
服务
![](/icons/93407dou.gif)
就可以形成完整
![](/icons/93407de.gif)
业务流程
![](/icons/93407dou2.gif)
正如IBM SOA技术和策略总监Mark Colan先生强调
![](/icons/93407de.gif)
那样:"Web服务
![](/icons/93407de.gif)
确是实现SOA
![](/icons/93407yi.gif)
条最好
![](/icons/93407de.gif)
路
![](/icons/93407dou.gif)
但不等同于SOA
![](/icons/93407dou2.gif)
" SOA
![](/icons/93407de.gif)
灵活性将给企业带来巨大
![](/icons/93407de.gif)
好处
![](/icons/93407dou2.gif)
如果把企业
![](/icons/93407de.gif)
IT架构抽象出来
![](/icons/93407dou.gif)
将其功能以粗粒度
![](/icons/93407de.gif)
服务形式表示出来
![](/icons/93407dou.gif)
每种服务都清晰地表示其业务价值
![](/icons/93407dou.gif)
那么
![](/icons/93407dou.gif)
这些服务
![](/icons/93407de.gif)
顾客(可能在公司内部
![](/icons/93407dou.gif)
也可能是公司
![](/icons/93407de.gif)
某个业务伙伴)就可以得到这些服务
![](/icons/93407dou.gif)
而不必考虑其后台实现
![](/icons/93407de.gif)
具体技术
![](/icons/93407dou2.gif)
更进
![](/icons/93407yi.gif)
步
![](/icons/93407dou.gif)
如果顾客能够发现并绑定可用
![](/icons/93407de.gif)
服务
![](/icons/93407dou.gif)
那么在这些服务背后
![](/icons/93407de.gif)
IT系统能够提供更大
![](/icons/93407de.gif)
灵活性
![](/icons/93407dou2.gif)
但是
![](/icons/93407dou.gif)
要得到这种灵活性
![](/icons/93407dou.gif)
需要有
![](/icons/93407yi.gif)
系列实现架构
![](/icons/93407de.gif)
新思路方法
![](/icons/93407dou.gif)
这是
![](/icons/93407yi.gif)
项艰巨
![](/icons/93407de.gif)
任务
![](/icons/93407dou2.gif)
企业架构设计师必须要变成"面向服务
![](/icons/93407de.gif)
架构设计师"
![](/icons/93407dou.gif)
不仅要理解SOA
![](/icons/93407dou.gif)
还要理解SOA
![](/icons/93407de.gif)
实战
![](/icons/93407dou2.gif)
在架构实战和最后得到
![](/icons/93407de.gif)
架构结果的间
![](/icons/93407de.gif)
区别非常微妙
![](/icons/93407dou.gif)
也非常关键
![](/icons/93407dou2.gif)
那么目前SOA
![](/icons/93407de.gif)
实现技术究竟有哪些呢?
3 SOA
![](/icons/93407de.gif)
实现技术 3.1 实现SOA
![](/icons/93407de.gif)
核心技术 - web 服务
正如我们前面所讲
![](/icons/93407de.gif)
![](/icons/93407dou.gif)
服务是整个SOA实现
![](/icons/93407de.gif)
核心
![](/icons/93407dou.gif)
web服务相关技术自然成为实现SOA
![](/icons/93407de.gif)
首选
![](/icons/93407dou2.gif)
XML
XML 1.0 (可扩展标记语言
![](/icons/93407dou.gif)
Extensible Markup Language) 标准是
![](/icons/93407yi.gif)
个基于文本
![](/icons/93407de.gif)
World Wide Web 组织 (W3C) 规范标准
![](/icons/93407de.gif)
标记语言
![](/icons/93407dou2.gif)
和 HTML 使用标签来描述外观和数据区别
![](/icons/93407dou.gif)
XML 严格地定义了可移植
![](/icons/93407de.gif)
结构化数据
![](/icons/93407dou2.gif)
它可以作为定义数据描述语言
![](/icons/93407de.gif)
语言
![](/icons/93407dou.gif)
如标记语法或词汇、交换格式和通信协议
![](/icons/93407dou2.gif)
SOAP
简单对象访问协议 (Simple Object Access Protocol) 是
![](/icons/93407yi.gif)
个基于XML
![](/icons/93407de.gif)
![](/icons/93407dou.gif)
用于在分布式环境下交换信息
![](/icons/93407de.gif)
轻量级协议
![](/icons/93407dou2.gif)
SOAP 在请求者和提供者对象的间定义了
![](/icons/93407yi.gif)
个通信协议
![](/icons/93407dou.gif)
这样
![](/icons/93407dou.gif)
在面向对象编程流行
![](/icons/93407de.gif)
环境中
![](/icons/93407dou.gif)
该请求对象可以在提供
![](/icons/93407de.gif)
对象上执行远程思路方法
![](/icons/93407diaoyong.gif)
![](/icons/93407dou2.gif)
![](/icons/93407yinwei.gif)
SOAP是平台无关和厂商无关
![](/icons/93407de.gif)
标准
![](/icons/93407dou.gif)
因此尽管SOA并不必须使用SOAP
![](/icons/93407dou.gif)
但在带有单独 IT基础架构
![](/icons/93407de.gif)
合作伙伴的间
![](/icons/93407de.gif)
松耦合互操作中
![](/icons/93407dou.gif)
SOAP仍然是支持服务
![](/icons/93407diaoyong.gif)
![](/icons/93407de.gif)
最好思路方法
![](/icons/93407dou2.gif)
W3C SOAP 1.2规范标准在服务请求者和服务提供者的间定义使用XML格式
![](/icons/93407de.gif)
消息进行通信
![](/icons/93407dou2.gif)
将应用
![](/icons/93407chengxu.gif)
请求(在XML中)放入 SOAP 信封中(也是 XML )
![](/icons/93407dou.gif)
并从请求者到提供者发送应用
![](/icons/93407chengxu.gif)
请求
![](/icons/93407dou.gif)
提供者发回
![](/icons/93407de.gif)
响应也采用相同
![](/icons/93407de.gif)
形式
![](/icons/93407dou2.gif)
最近 SOAP 被称为面向服务
![](/icons/93407de.gif)
架构协议 (Services-Oriented Architecture Protocol)
![](/icons/93407dou2.gif)
SOAP
![](/icons/93407de.gif)
优点在于它完全和厂商无关
![](/icons/93407dou.gif)
相对于平台、操作系统、目标模型和编程语言可以独立实现
![](/icons/93407dou2.gif)
另外
![](/icons/93407dou.gif)
传输和语言绑定以及数据编码
![](/icons/93407de.gif)
参数选择都是由实现决定
![](/icons/93407de.gif)
![](/icons/93407dou2.gif)
WSDL
Web服务描述语言 WSDL (Web Services Description Language) 是
![](/icons/93407yi.gif)
个提供描述服务IDL标准思路方法
![](/icons/93407de.gif)
XML词汇
![](/icons/93407dou2.gif)
Web 服务描述语言(WSDL)规范标准定义了
![](/icons/93407yi.gif)
个 XML词汇表
![](/icons/93407dou.gif)
该词汇表依照请求和响应消息
![](/icons/93407dou.gif)
在服务请求者和服务提供者的间定义了
![](/icons/93407yi.gif)
种契约
![](/icons/93407dou2.gif)
我们能够将Web服务定义为软件Software
![](/icons/93407dou.gif)
这个软件Software通过描述SOAP消息接口
![](/icons/93407de.gif)
WSDL文档来提供可重用
![](/icons/93407de.gif)
应用
![](/icons/93407chengxu.gif)
功能
![](/icons/93407dou.gif)
并使用标准
![](/icons/93407de.gif)
传输协议来进行传递
![](/icons/93407dou2.gif)
WSDL描述包含必要
![](/icons/93407de.gif)
细节,以便服务请求者能够使用特定服务:
请求消息格式
响应消息格式
向何处发送消息
![](/icons/93407dou2.gif)
WSDL 是基于 XML
![](/icons/93407de.gif)
![](/icons/93407dou.gif)
因此 WSDL 文档是计算机可读
![](/icons/93407de.gif)
(machine-readable)
![](/icons/93407dou2.gif)
这样开发环境使用WSDL将集成服务
![](/icons/93407de.gif)
流程自动处理到请求者应用
![](/icons/93407chengxu.gif)
![](/icons/93407dou2.gif)
例如 WebSphere Studio产生
![](/icons/93407yi.gif)
个Java
![](/icons/93407de.gif)
代理对象
![](/icons/93407dou.gif)
它能够像本地对象
![](/icons/93407yi.gif)
样实现服务
![](/icons/93407dou.gif)
但是实际上代理对象仅仅处理请求
![](/icons/93407de.gif)
创建和响应消息
![](/icons/93407de.gif)
解析
![](/icons/93407dou2.gif)
不管服务是否用Java、C#或者其他
![](/icons/93407de.gif)
语言实现
![](/icons/93407dou.gif)
生成
![](/icons/93407de.gif)
Java代理对象都能够从WSDL描述中
![](/icons/93407diaoyong.gif)
任何
![](/icons/93407de.gif)
Web服务
![](/icons/93407dou2.gif)
实际上
![](/icons/93407dou.gif)
WSDL不能像编程语言那样描述实现细节
![](/icons/93407dou2.gif)
UDDI
统
![](/icons/93407yi.gif)
描述、发现和集成 (Universal Description, Discovery and Integration) 规范标准提供了
![](/icons/93407yi.gif)
组公用
![](/icons/93407de.gif)
SOAP API
![](/icons/93407dou.gif)
使得服务代理得以实现
![](/icons/93407dou2.gif)
UDDI为发布服务
![](/icons/93407de.gif)
可用性和发现所需服务定义了
![](/icons/93407yi.gif)
个标准接口(基于 SOAP 消息)
![](/icons/93407dou2.gif)
UDDI 实现将发布和发现服务
![](/icons/93407de.gif)
SOAP 请求解释为用于基本数据存储
![](/icons/93407de.gif)
数据管理功能
![](/icons/93407diaoyong.gif)
![](/icons/93407dou2.gif)
为了发布和发现其他SOA服务
![](/icons/93407dou.gif)
UDDI 通过定义标准
![](/icons/93407de.gif)
SOAP 消息来实现服务注册(Service Registry)
![](/icons/93407dou2.gif)
注册是
![](/icons/93407yi.gif)
种服务代理
![](/icons/93407dou.gif)
它是在 UDDI 上需要发现服务
![](/icons/93407de.gif)
请求者和发布服务
![](/icons/93407de.gif)
提供者的间
![](/icons/93407de.gif)
中介
![](/icons/93407dou2.gif)
![](/icons/93407yi.gif)
旦请求者决定使用特定
![](/icons/93407de.gif)
服务
![](/icons/93407dou.gif)
开发者通常借助于开发工具(如Microsoft Visual Studio .NET)并通过创建以发送请求并处理响应
![](/icons/93407de.gif)
方式访问服务
![](/icons/93407de.gif)
代码来绑定服务
![](/icons/93407dou2.gif)
SOA不需要使用UDDI
![](/icons/93407dou.gif)
但由于 UDDI 是建立在SOA上来完成自身工作
![](/icons/93407de.gif)
![](/icons/93407dou.gif)
所以UDDI是服务发现
![](/icons/93407de.gif)
![](/icons/93407yi.gif)
个好
![](/icons/93407de.gif)
解决方案
![](/icons/93407dou2.gif)
3.2 SOA 基础架构
![](/icons/93407de.gif)
关键组件 -企业服务总线(Enterprise Service Bus
![](/icons/93407dou.gif)
ESB) 企业服务总线ESB(Enterprise Service Bus)是SOA架构
![](/icons/93407de.gif)
![](/icons/93407yi.gif)
个支柱技术
![](/icons/93407dou2.gif)
作为
![](/icons/93407yi.gif)
种消息代理架构它提供消息队列系统
![](/icons/93407dou.gif)
使用诸如SOAP或JMS (Java Message Service)等标准技术来实现
![](/icons/93407dou2.gif)
有人把ESB描述成
![](/icons/93407yi.gif)
种开放
![](/icons/93407de.gif)
、基于标准
![](/icons/93407de.gif)
消息机制
![](/icons/93407dou.gif)
通过简单
![](/icons/93407de.gif)
标准适配器和接口
![](/icons/93407dou.gif)
来完成粗粒度应用(比如服务)和其他组件的间
![](/icons/93407de.gif)
互操作
![](/icons/93407dou2.gif)
ESB
![](/icons/93407de.gif)
主要功能有:通信和消息处理、服务交互和安全性控制、服务质量和服务级别管理、建模、管理和自治、基础架构智能等
![](/icons/93407dou2.gif)
ESB由中间件技术实现并作为支持 SOA
![](/icons/93407de.gif)
![](/icons/93407yi.gif)
组基础架构
![](/icons/93407dou.gif)
支持异构环境中
![](/icons/93407de.gif)
服务、消息
![](/icons/93407dou.gif)
以及基于事件
![](/icons/93407de.gif)
交互
![](/icons/93407dou.gif)
并且具有适当
![](/icons/93407de.gif)
服务级别和可管理性
![](/icons/93407dou2.gif)
SOA
![](/icons/93407de.gif)
原则可以描述如下:
利用显式
![](/icons/93407de.gif)
和实现无关
![](/icons/93407de.gif)
接口来定义服务
![](/icons/93407dou2.gif)
利用强调位置透明性和可互操作性
![](/icons/93407de.gif)
通信协议
![](/icons/93407dou2.gif)
封装可重用业务功能
![](/icons/93407de.gif)
服务
![](/icons/93407de.gif)
定义
![](/icons/93407dou2.gif)
为了实现 SOA
![](/icons/93407dou.gif)
应用
![](/icons/93407chengxu.gif)
和基础架构都必须支持 SOA 原则
![](/icons/93407dou2.gif)
启用 SOA 应用
![](/icons/93407chengxu.gif)
涉及到创建服务接口
![](/icons/93407dou.gif)
服务接口可以直接也可以间接地通过使用适配器用于现有
![](/icons/93407de.gif)
或新
![](/icons/93407de.gif)
功能
![](/icons/93407dou2.gif)
从最基本
![](/icons/93407de.gif)
级别来看
![](/icons/93407dou.gif)
启用该基础架构涉及到规划功能来将服务请求路由和传递给正确
![](/icons/93407de.gif)
服务提供者
![](/icons/93407dou2.gif)
然而
![](/icons/93407dou.gif)
基础架构支持在不影响服务
![](/icons/93407de.gif)
客户端
![](/icons/93407de.gif)
情况下由另
![](/icons/93407yi.gif)
个服务实现替代原有
![](/icons/93407de.gif)
服务实现也是至关重要
![](/icons/93407de.gif)
![](/icons/93407dou2.gif)
这不仅需要根据 SOA 原则指定服务接口
![](/icons/93407dou.gif)
而且需要基础架构允许客户端代码以独立于所涉及
![](/icons/93407de.gif)
服务位置和通信协议
![](/icons/93407de.gif)
方式来
![](/icons/93407diaoyong.gif)
服务
![](/icons/93407dou2.gif)
这样
![](/icons/93407de.gif)
服务路由和替代是 ESB
![](/icons/93407de.gif)
许多功能中
![](/icons/93407de.gif)
![](/icons/93407yi.gif)
部分
![](/icons/93407dou2.gif)
ESB 支持这些服务交互功能
![](/icons/93407dou.gif)
并提供集成
![](/icons/93407de.gif)
通信、消息传递以及事件基础架构来支持这些功能
![](/icons/93407dou2.gif)
因此
![](/icons/93407dou.gif)
它将当今正在使用
![](/icons/93407de.gif)
主要企业集成模式组合成
![](/icons/93407yi.gif)
个实体
![](/icons/93407dou2.gif)
ESB 为 SOA 提供和企业需要保持
![](/icons/93407yi.gif)
致
![](/icons/93407de.gif)
基础架构
![](/icons/93407dou.gif)
从而提供合适
![](/icons/93407de.gif)
服务级别和可管理性、以及异构环境中
![](/icons/93407de.gif)
操作
![](/icons/93407dou2.gif)
图2显示了ESB为SOA提供
![](/icons/93407de.gif)
基础架构:
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/5fd33122-cdf6-4e18-8aa1-9c01eea9ff22.jpg)
ESB 需要某种形式
![](/icons/93407de.gif)
服务路由目录(service routing directory)来路由服务请求
![](/icons/93407dou2.gif)
然而
![](/icons/93407dou.gif)
SOA 可能还有单独
![](/icons/93407de.gif)
业务服务目录(business service directory)
![](/icons/93407dou.gif)
其最基本
![](/icons/93407de.gif)
形式可能是设计时服务目录
![](/icons/93407dou.gif)
用于在组织
![](/icons/93407de.gif)
整个开发活动中实现服务
![](/icons/93407de.gif)
重用
![](/icons/93407dou2.gif)
Web 服务远景在业务服务目录和服务路由目录
![](/icons/93407de.gif)
角色中都放置了
![](/icons/93407yi.gif)
个 UDDI 目录
![](/icons/93407dou.gif)
因而使得可以动态发现和
![](/icons/93407diaoyong.gif)
服务
![](/icons/93407dou2.gif)
这样
![](/icons/93407de.gif)
目录可以视为 ESB
![](/icons/93407de.gif)
![](/icons/93407yi.gif)
部分;然而
![](/icons/93407dou.gif)
在这样
![](/icons/93407de.gif)
解决方案变得普遍的前
![](/icons/93407dou.gif)
业务服务目录可能和 ESB 是分离
![](/icons/93407de.gif)
![](/icons/93407dou2.gif)
Business Service Choreographer
![](/icons/93407de.gif)
作用是通过若干业务服务来组合业务流程;因此
![](/icons/93407dou.gif)
它将通过 ESB
![](/icons/93407diaoyong.gif)
服务
![](/icons/93407dou.gif)
然后再次通过 ESB 将业务流程公开为客户端可用
![](/icons/93407de.gif)
其他服务
![](/icons/93407dou2.gif)
然而
![](/icons/93407dou.gif)
Business Service Choreographer 在编排业务流程和服务中所扮演
![](/icons/93407de.gif)
角色确定了这种业务工作流技术是
![](/icons/93407yi.gif)
种和基础架构技术 ESB 分离
![](/icons/93407de.gif)
技术
![](/icons/93407dou2.gif)
最后
![](/icons/93407dou.gif)
B2B Gateway 组件
![](/icons/93407de.gif)
作用是使两个或多个组织
![](/icons/93407de.gif)
服务在受控且安全
![](/icons/93407de.gif)
方式下对彼此可用
![](/icons/93407dou2.gif)
这有助于查看这些连接到 ESB
![](/icons/93407de.gif)
组件
![](/icons/93407dou.gif)
但它们并不是 ESB
![](/icons/93407de.gif)
![](/icons/93407yi.gif)
部分
![](/icons/93407dou2.gif)
虽然有
![](/icons/93407yi.gif)
些网关技术可以提供适合于实现 B2B Gateway 组件和 ESB
![](/icons/93407de.gif)
功能
![](/icons/93407dou.gif)
但是 B2B Gateway 组件
![](/icons/93407de.gif)
用途是将其和 ESB 分离
![](/icons/93407dou2.gif)
事实上
![](/icons/93407dou.gif)
这种用途可能需要附加
![](/icons/93407de.gif)
功能(如合作伙伴关系管理)
![](/icons/93407dou.gif)
这些功能不是 ESB
![](/icons/93407de.gif)
![](/icons/93407yi.gif)
部分
![](/icons/93407dou.gif)
并且不
![](/icons/93407yi.gif)
定受到 ESB 技术
![](/icons/93407de.gif)
支持
![](/icons/93407dou2.gif)
3.3 实现SOA
![](/icons/93407de.gif)
思路方法学 - 模型驱动
![](/icons/93407de.gif)
开发
SOA强调松散耦合
![](/icons/93407dou.gif)
强调跨平台集成
![](/icons/93407dou.gif)
这和模型驱动
![](/icons/93407de.gif)
架构和开发不谋而合
![](/icons/93407dou2.gif)
模型驱动
![](/icons/93407de.gif)
架构和开发(Model Driven Architecture, MDA以及Model Driven Development, MDD)并没有把业务模型和平台无关模型分开来
![](/icons/93407dou.gif)
而是把平台无关模型做为起点
![](/icons/93407dou2.gif)
MDA由提出CORBA
![](/icons/93407de.gif)
OMG模型提出
![](/icons/93407dou2.gif)
MDA认为架构设计师首先要对待创建
![](/icons/93407de.gif)
系统有
![](/icons/93407yi.gif)
个形式化
![](/icons/93407de.gif)
UML
![](/icons/93407de.gif)
模型
![](/icons/93407dou2.gif)
MDA首先给出
![](/icons/93407yi.gif)
个平台无关
![](/icons/93407de.gif)
模型来表示系统
![](/icons/93407de.gif)
功能需求和use
![](/icons/93407case.gif)
s
![](/icons/93407dou.gif)
根据系统搭建
![](/icons/93407de.gif)
平台
![](/icons/93407dou.gif)
架构设计师可以由这个平台无关
![](/icons/93407de.gif)
模型得到平台相关
![](/icons/93407de.gif)
模型
![](/icons/93407dou.gif)
这些平台相关模型足够详细
![](/icons/93407dou.gif)
以至于可以用来直接生成需要
![](/icons/93407de.gif)
代码
![](/icons/93407dou2.gif)
基于MDA
![](/icons/93407de.gif)
思想
![](/icons/93407dou.gif)
利用MDD方式
![](/icons/93407dou.gif)
我们可以对SOA进行建模
![](/icons/93407dou.gif)
在此基础上
![](/icons/93407dou.gif)
实现各种形式
![](/icons/93407de.gif)
模型转换或扩展实现SOA.
4 RSA对SOA实现技术
![](/icons/93407de.gif)
支持
IBM 软件Software开发平台提供了对SOA 应用
![](/icons/93407chengxu.gif)
开发
![](/icons/93407de.gif)
最好支持
![](/icons/93407dou2.gif)
IBM 软件Software开发平台包含 Rational 产品家族、向导、模板、及构建应用
![](/icons/93407chengxu.gif)
![](/icons/93407de.gif)
指南
![](/icons/93407dou.gif)
Rational 开发工具是基于成功
![](/icons/93407de.gif)
并且非常受欢迎
![](/icons/93407de.gif)
Eclipse 平台
![](/icons/93407dou.gif)
它不仅易用、灵活
![](/icons/93407dou.gif)
而且在每
![](/icons/93407yi.gif)
个开发进程中都可以使用外部开发环境
![](/icons/93407dou2.gif)
图3显示了基于 Eclipse
![](/icons/93407de.gif)
IBM Rational 产品体系
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/095742ae-7939-4103-be94-646080cf59ee.jpg)
Rational Software Modeler 提供了使用设计标准(比如统
![](/icons/93407yi.gif)
建模语言
![](/icons/93407dou.gif)
UML )构建模型
![](/icons/93407de.gif)
能力
![](/icons/93407dou2.gif)
通过 Rational Software Modeler
![](/icons/93407dou.gif)
可以将这些模型转变为类和源代码
![](/icons/93407dou2.gif)
有关Web 服务
![](/icons/93407de.gif)
开发
![](/icons/93407dou.gif)
Rational Web Developer for WebSphere Software Version 6.0 提供了
![](/icons/93407yi.gif)
种端对端
![](/icons/93407de.gif)
环境
![](/icons/93407dou2.gif)
利用它
![](/icons/93407dou.gif)
不仅可以完成开发和测试
![](/icons/93407dou.gif)
还可以通过 WebSphere Application Server 产品完成 Web 服务
![](/icons/93407de.gif)
部署
![](/icons/93407dou2.gif)
Rational Software Architect, RSA涵盖了RAD以及RSM
![](/icons/93407de.gif)
全部功能
![](/icons/93407dou.gif)
提供了对基于模型
![](/icons/93407de.gif)
开发以及web应用开发
![](/icons/93407de.gif)
最好
![](/icons/93407de.gif)
支持
![](/icons/93407dou2.gif)
4.1 对web服务开发
![](/icons/93407de.gif)
支持
RSA中包含了构建 Web 服务
![](/icons/93407de.gif)
专门工具
![](/icons/93407dou.gif)
可以通过自顶向下
![](/icons/93407dou.gif)
自底向上
![](/icons/93407dou.gif)
为web服务建模等区别角度进行web服务
![](/icons/93407de.gif)
开发
![](/icons/93407dou.gif)
提供了代码编写和完成应用
![](/icons/93407chengxu.gif)
![](/icons/93407de.gif)
开发环境
![](/icons/93407dou2.gif)
还可以使用
![](/icons/93407yi.gif)
些额外
![](/icons/93407de.gif)
工具(比如 IBM Rational Functional Tester)
![](/icons/93407dou.gif)
对应用
![](/icons/93407chengxu.gif)
进行测试
![](/icons/93407dou.gif)
然后把它部署到 WebSphere 服务器平台中
![](/icons/93407dou2.gif)
首先
![](/icons/93407dou.gif)
RSA提供了XML
![](/icons/93407de.gif)
编辑器
![](/icons/93407dou.gif)
可以对XML进行图形化
![](/icons/93407de.gif)
显示和编辑
![](/icons/93407dou.gif)
图4显示了对XML
![](/icons/93407de.gif)
图形编辑界面及其对应
![](/icons/93407de.gif)
源代码
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/757b131d-6d8d-47b8-a3b9-2ebe14ab9e98.jpg)
另外
![](/icons/93407dou.gif)
在RSA中可以创建web service及其相关
![](/icons/93407de.gif)
多种资源
![](/icons/93407dou.gif)
如图5所示
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/edd0cd94-8f1d-4de3-833c-40f456aa07bf.jpg)
当我们想将现有
![](/icons/93407de.gif)
资源
![](/icons/93407dou.gif)
如Java Bean或者EJB作为web服务进行发布时
![](/icons/93407dou.gif)
RSA中提供相应
![](/icons/93407de.gif)
支持
![](/icons/93407dou.gif)
如图6所示:
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/ee2d8b7d-69aa-49b8-862a-86dfecddbe94.jpg)
相反
![](/icons/93407dou.gif)
如果我们想生成已有
![](/icons/93407de.gif)
WSDL对应
![](/icons/93407de.gif)
web服务实现代码
![](/icons/93407dou.gif)
也可以使用RSA中相应
![](/icons/93407de.gif)
工具
![](/icons/93407dou.gif)
如图7所示:
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/517945c5-f61d-4cc5-bf12-4620e6eac8f3.jpg)
RSA中提供了Web服务浏览器
![](/icons/93407dou.gif)
使得发现web服务变得更容易
![](/icons/93407dou.gif)
同时
![](/icons/93407dou.gif)
RSA提供了图形界面对web服务
![](/icons/93407de.gif)
WSDL进行显示和编辑
![](/icons/93407dou2.gif)
见图8:
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/9835955d-9191-426d-ae96-cb116fabebe6.jpg)
由于RSA提供了对UML2.0
![](/icons/93407de.gif)
支持
![](/icons/93407dou.gif)
我们同样可以根据对web服务建模
![](/icons/93407dou.gif)
通过模型转换来生成相应
![](/icons/93407de.gif)
web服务WSDL
![](/icons/93407dou2.gif)
如图9所示:
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/e58d777a-3563-4c54-86b3-02cb073d3d65.jpg)
RSA贯穿整个应用
![](/icons/93407chengxu.gif)
开发
![](/icons/93407de.gif)
生命周期
![](/icons/93407dou.gif)
使得应用
![](/icons/93407chengxu.gif)
![](/icons/93407de.gif)
设计更加轻松
![](/icons/93407dou.gif)
更
![](/icons/93407yi.gif)
致地将 SOA 应用
![](/icons/93407chengxu.gif)
![](/icons/93407de.gif)
组件捆绑在
![](/icons/93407yi.gif)
起
![](/icons/93407dou2.gif)
RSA内嵌了WebSphere Application Server 6.0
![](/icons/93407de.gif)
运行环境
![](/icons/93407dou.gif)
WAS 6.0中
![](/icons/93407de.gif)
SI-BUS实现了ESB
![](/icons/93407dou.gif)
因此我们可以用RSA进行SOA、ESB
![](/icons/93407de.gif)
部署和测试
![](/icons/93407dou2.gif)
如图10所示
![](/icons/93407dou.gif)
可以在RSA上创建WAS 6.0
![](/icons/93407de.gif)
服务例子
![](/icons/93407dou.gif)
并在此服务上部署ESB
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/b9a9fe03-2fa6-49fa-bcc2-8ef09bd0d458.jpg)
4.2 基于模型
![](/icons/93407de.gif)
开发和软件Software资产重用 除了对web服务开发
![](/icons/93407de.gif)
支持
![](/icons/93407dou.gif)
RSA还提供对UML2.0规范标准以及可重用资产规范标准(Reusable As
![](/icons/93407set.gif)
Spec
![](/icons/93407if.gif)
ication, RAS )
![](/icons/93407de.gif)
支持
![](/icons/93407dou2.gif)
这就使得基于模型
![](/icons/93407de.gif)
开发(Model Based Development, MDA) 和基于资产
![](/icons/93407de.gif)
开发(As
![](/icons/93407set.gif)
Based Development, ABD)成为RSA最有优势
![](/icons/93407de.gif)
两大特征
![](/icons/93407dou2.gif)
这里我们只作简单介绍
![](/icons/93407dou2.gif)
4.2.1 支持UML2.0
![](/icons/93407de.gif)
MDA平台
UML是实现MDA技术
![](/icons/93407de.gif)
![](/icons/93407yi.gif)
把钥匙
![](/icons/93407dou.gif)
它使得用MDA技术创建
![](/icons/93407de.gif)
所有应用
![](/icons/93407chengxu.gif)
都基于标准化
![](/icons/93407de.gif)
、平台独立
![](/icons/93407de.gif)
UML模型
![](/icons/93407dou2.gif)
通过将这
![](/icons/93407yi.gif)
通用
![](/icons/93407de.gif)
、被普遍接受
![](/icons/93407de.gif)
建模标准作为杠杆
![](/icons/93407dou.gif)
MDA使得开发人员可以创建能被轻便地访问、天生具有良好
![](/icons/93407de.gif)
互操作性
![](/icons/93407de.gif)
应用
![](/icons/93407chengxu.gif)
![](/icons/93407dou2.gif)
我们在前面提到
![](/icons/93407dou.gif)
利用RSA可以对web服务建模
![](/icons/93407dou.gif)
通过模型转换生成web服务
![](/icons/93407dou2.gif)
基于Eclipse平台
![](/icons/93407de.gif)
RSA
![](/icons/93407dou.gif)
提供各种模式(Pattern)
![](/icons/93407dou.gif)
模板(Template)插件
![](/icons/93407de.gif)
开发
![](/icons/93407dou.gif)
通过这些高可重用度
![](/icons/93407de.gif)
模式及模板
![](/icons/93407dou.gif)
用户只需要简单
![](/icons/93407de.gif)
参数配置
![](/icons/93407dou.gif)
就可以得到相应
![](/icons/93407de.gif)
模型
![](/icons/93407dou.gif)
代码及其他资源
![](/icons/93407dou2.gif)
图11显示了应用RSA模式生成新
![](/icons/93407de.gif)
模型
![](/icons/93407dou.gif)
再基于新模型生成可部署
![](/icons/93407de.gif)
项目及代码
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/1f8cfc1d-feb3-4f30-9c26-84c12debfa94.jpg)
4.2.2 Recipe - 基于资产
![](/icons/93407de.gif)
开发(As
![](/icons/93407set.gif)
Based Development)
RSA中
![](/icons/93407de.gif)
解决方案指导(Solution Guide)插件基于可重用资产规范标准对资产
![](/icons/93407de.gif)
创建
![](/icons/93407dou.gif)
打包
![](/icons/93407dou.gif)
发布
![](/icons/93407dou.gif)
到重用提供了全方位
![](/icons/93407de.gif)
支持
![](/icons/93407dou2.gif)
可以将各种模式
![](/icons/93407dou.gif)
模型及其他可重用资源作为资产导出
![](/icons/93407dou.gif)
存入本地或远程资产库以便重用及共享
![](/icons/93407dou.gif)
资产在资产库中按照
![](/icons/93407yi.gif)
定
![](/icons/93407de.gif)
思路方法进行分类
![](/icons/93407dou.gif)
在RSA中使用资产库浏览器对资产进行查找时
![](/icons/93407yi.gif)
目了然
![](/icons/93407dou2.gif)
图12是在可重用资产视图中
![](/icons/93407dou.gif)
浏览资产库
![基于RSA实现面向服务<img src='/icons/93407de.gif' />体系架构](http://www.crazycoder.cn/WebFiles/20092/0024f5d2-0f3d-4f1b-860e-a7a7cbc696d5.jpg)
5 整理总结
在本文中
![](/icons/93407dou.gif)
我们讨论了面向服务体系架构
![](/icons/93407de.gif)
基本概念以及实现技术
![](/icons/93407dou.gif)
并列出了IBM Rational产品RSA对实现SOA
![](/icons/93407de.gif)
技术
![](/icons/93407de.gif)
支持
![](/icons/93407dou.gif)
在后续
![](/icons/93407de.gif)
文章中
![](/icons/93407dou.gif)
我们将对本文中涉及
![](/icons/93407de.gif)
各项具体技术实现细节作详细介绍