...不要
![](/icons/53066yinwei.gif)
这
![](/icons/53066yi.gif)
方式不是那么宏大而感到担心
![](/icons/53066dou2.gif)
复杂性让新手感受深刻
![](/icons/53066dou.gif)
但结果才是最终能让所有人留下印象
![](/icons/53066dou2.gif)
Ganesh
![](/icons/53066de.gif)
思路方法包括了以下几个要点:
眼观全局
![](/icons/53066dou2.gif)
SOA不是有关集成或者是引入
![](/icons/53066yi.gif)
种新技术来简化现有系统
![](/icons/53066de.gif)
连接
![](/icons/53066dou2.gif)
而是有关:
...精简企业
![](/icons/53066de.gif)
部件并且使它们易于理解和连接...所以始终应当谨记简洁性
![](/icons/53066dou.gif)
并且不要把它和权宜的计搞混了
![](/icons/53066dou.gif)
那是指
![](/icons/53066de.gif)
阻力最少
![](/icons/53066de.gif)
道路和
![](/icons/53066dou2.gif)
而精简可能需要付出努力
![](/icons/53066dou2.gif)
理解数据
![](/icons/53066dou2.gif)
服务互操作性需要用于交互
![](/icons/53066de.gif)
“语义”数据模型
![](/icons/53066dou2.gif)
Ganesh指出所谓规范标准
![](/icons/53066de.gif)
数据模型通常层次较高且对于实战应用来说过于抽象
![](/icons/53066dou2.gif)
作为代替
![](/icons/53066dou.gif)
他建议将企业数据划分为几个逻辑域并为各个域定义字典
![](/icons/53066dou2.gif)
所有暴露它们
![](/icons/53066de.gif)
逻辑域
![](/icons/53066de.gif)
服务都应该当使用这些定义
![](/icons/53066dou.gif)
而来自其它域
![](/icons/53066de.gif)
服务消费者有责任理解这些定义
![](/icons/53066dou2.gif)
由跨这些域
![](/icons/53066de.gif)
服务组合起来
![](/icons/53066de.gif)
流程应当在类似
![](/icons/53066de.gif)
数据元素的间执行它们自己
![](/icons/53066de.gif)
映射
![](/icons/53066dou2.gif)
这不象听起来这么恐怖
![](/icons/53066dou.gif)
![](/icons/53066yinwei.gif)
只有
![](/icons/53066yi.gif)
个域所管理
![](/icons/53066de.gif)
数据元素只有
![](/icons/53066yi.gif)
部分子集会通过服务接口暴露出去...不要尝试[构建]
![](/icons/53066yi.gif)
个单
![](/icons/53066yi.gif)
![](/icons/53066de.gif)
规范标准数据模型
![](/icons/53066dou2.gif)
那只是徒劳的举
![](/icons/53066dou.gif)
根本不要启动
![](/icons/53066dou2.gif)
选择正确
![](/icons/53066de.gif)
中间件
![](/icons/53066dou2.gif)
在Ganesh看来
![](/icons/53066dou.gif)
大部分情况下
![](/icons/53066dou.gif)
HTTP是SOA实现最合适
![](/icons/53066de.gif)
中间件
![](/icons/53066dou2.gif)
他建议
![](/icons/53066dou.gif)
除了必须需要
![](/icons/53066de.gif)
情况下
![](/icons/53066dou.gif)
避免使用消息队列并指出基于HTTP
![](/icons/53066de.gif)
数据库备份
![](/icons/53066de.gif)
通信模型通常能提供更简单
![](/icons/53066de.gif)
解决方案
![](/icons/53066dou2.gif)
HTTP是
![](/icons/53066yi.gif)
个十分通用
![](/icons/53066de.gif)
协议
![](/icons/53066dou.gif)
可用作你
![](/icons/53066de.gif)
SOA项目
![](/icons/53066de.gif)
逻辑基础设施
![](/icons/53066de.gif)
元素
![](/icons/53066dou2.gif)
ESB
![](/icons/53066dou.gif)
服务目录以及其它
![](/icons/53066de.gif)
“治理”组件通常只在管理它们自身所引入
![](/icons/53066de.gif)
复杂性时才需要
![](/icons/53066dou2.gif)
用简单
![](/icons/53066de.gif)
web服务器群和数据库群所能做到
![](/icons/53066de.gif)
会让你惊叹
![](/icons/53066dou.gif)
同时还能始终保持简单和明了
![](/icons/53066dou2.gif)
选择正确
![](/icons/53066de.gif)
服务实现手段
![](/icons/53066dou2.gif)
Ganesh认为基于SOAP
![](/icons/53066de.gif)
web服务很大程度上是“供应商提供”
![](/icons/53066de.gif)
宣传
![](/icons/53066dou.gif)
并推荐尽量予以避免
![](/icons/53066dou2.gif)
他建议使用REST来代替:
REST实际上是实现SOA
![](/icons/53066de.gif)
有效方式
![](/icons/53066dou.gif)
它通常可以以极低
![](/icons/53066de.gif)
成本和复杂性来交付解决方案
![](/icons/53066dou2.gif)
采用REST
![](/icons/53066de.gif)
困难所在是找到用这种方式研究
![](/icons/53066de.gif)
优秀人员
![](/icons/53066dou2.gif)
选择正确
![](/icons/53066de.gif)
数据合约定义
![](/icons/53066dou2.gif)
谈到领域模型
![](/icons/53066de.gif)
正式定义时
![](/icons/53066dou.gif)
Ganesh建议道“标准”
![](/icons/53066de.gif)
XML方式是重量级
![](/icons/53066de.gif)
比较笨拙
![](/icons/53066dou2.gif)
相反
![](/icons/53066dou.gif)
他建议好好看
![](/icons/53066yi.gif)
下JSON模式提案
在许多高级语言比如Java当中
![](/icons/53066dou.gif)
已经有现成
![](/icons/53066de.gif)
JSON模式
![](/icons/53066de.gif)
库可用
![](/icons/53066dou2.gif)
应该能够可以以极低
![](/icons/53066de.gif)
复杂性
![](/icons/53066dou.gif)
如XML
![](/icons/53066yi.gif)
样严格
![](/icons/53066de.gif)
定义数据合约...避免XML
![](/icons/53066de.gif)
那些繁文缛节
![](/icons/53066dou.gif)
由JSON开始
![](/icons/53066dou.gif)
并且融合日趋成熟
![](/icons/53066de.gif)
JSON模式
![](/icons/53066dou2.gif)
你会发现这些和REST结合起来会工作得非常棒
![](/icons/53066dou2.gif)
解决SOA简洁性
![](/icons/53066de.gif)
悖论
![](/icons/53066dou2.gif)
尽管SOA背后
![](/icons/53066de.gif)
主要驱动原因是精简企业架构
![](/icons/53066dou.gif)
按照Ganesh
![](/icons/53066de.gif)
说法
![](/icons/53066dou.gif)
典型
![](/icons/53066de.gif)
SOA实现
![](/icons/53066de.gif)
现实是
![](/icons/53066dou.gif)
因使用重量级方案而导致集成了复杂性
![](/icons/53066dou.gif)
又通过引入工具来管理这
![](/icons/53066yi.gif)
复杂性
![](/icons/53066dou2.gif)
当然
![](/icons/53066dou.gif)
如果你有官僚
![](/icons/53066de.gif)
倾向
![](/icons/53066dou.gif)
你可以沐浴在高预算和大团队(Team)
![](/icons/53066de.gif)
声望中
![](/icons/53066dou.gif)
并且可以基于你所交付
![](/icons/53066de.gif)
服务和流程和数量发表胜利
![](/icons/53066de.gif)
宣言
![](/icons/53066dou2.gif)
但如果你真
![](/icons/53066de.gif)
想成功交付SOA(例如
![](/icons/53066dou.gif)
让你
![](/icons/53066de.gif)
业务更加灵活并且以
![](/icons/53066yi.gif)
种可持续
![](/icons/53066de.gif)
低成本来运营)
![](/icons/53066dou.gif)
而这
![](/icons/53066yi.gif)
路上不用烧钱
![](/icons/53066de.gif)
话
![](/icons/53066dou.gif)
你得务必看看我上面列
![](/icons/53066de.gif)
这些烦人
![](/icons/53066de.gif)
![](/icons/53066dou.gif)
没什么印象
![](/icons/53066de.gif)
![](/icons/53066dou.gif)
甚至是不合潮流
![](/icons/53066de.gif)
方案和技术
![](/icons/53066dou2.gif)
让那些大卖主好好歇歇吧
![](/icons/53066dou2.gif)
你不需要买技术(除了你所拥有
![](/icons/53066de.gif)
web服务器和数据库)
![](/icons/53066dou2.gif)
你也当然不需要买任何复杂
![](/icons/53066de.gif)
技术
![](/icons/53066dou.gif)
而这正是那些供应商要倾售给你
![](/icons/53066de.gif)
延伸阅读
最新评论