开源SOA

当前位置:首页 > 计算机网络 > 计算机体系结构 > 开源SOA

出版社:电子工业出版社
出版日期:2010-12
ISBN:9787121123276
作者:Jeff Davis
页数:400页

章节摘录

插图:直到最近,要实现一个可以支撑SOA的技术架构(基础设施),通常须要购买昂贵的商业产品。当企业希望得到的是一个集成的、全面的解决方案时更是如此。虽然一些SOA。相关的开源产品已经出现,它们更多的是关注一些特定的、专门的领域。举例来说,Apache Axis在2004年出现,现在成为被广泛采用的Java Web服务工具包。然而我们后面会看到,Web服务仅仅是SOA拼图中的一块。让我们快进到2008年,在整个SOA产品图谱中,都已经能看到可以与商业产品竞争的开源产品。现在,对于一个希望采用开源技术的SOA架构师而言,难的是如何从让人眼花缭乱的相互竞争的产品中进行选择,而如何整合它们则是个更大的难题。本书旨在帮助你认识构成SOA的核心技术,以及构建一个完整的SOA平台要用到的各种开源技术。我们将集中探讨如何将这些核心技术集成到一起,形成一个不论从广度还是深度都可以和那些商业厂商提供的昂贵的产品相提并论的解决方案。如今那些最小规模的企业也能使用高质量的开源软件实现SOA。本书将展现一个开源SOA的技术蓝图。当然,由于有无数高质量开源方案存在,自然也可以用你认为合适的方案来替换掉我推荐的这些。在探讨具体的技术之前,让我们对SOA的起源做一些介绍和铺垫,对SOA是什么达成一些共识。

前言

相信大家对SOA这个词并不陌生,很多企业都在讲我们要上SOA,也有很多企业在呼应:我们能帮忙。但究竟什么是SOA,SOA能做什么,如何在企业中推行SOA,采用什么样的技术,这些都是摆在我们面前的现实问题。 我为什么会对这本书产生兴趣?这要从我的工作说起。我从2004年开始投身到企业软件开发当中,具体而言,就是医院管理信息系统(HIS)。我们的团队,一直都是扮演独立软件厂商(ISV)的角色,为国内大中型医院提供高品质的HIS产品和服务。 接触过医院信息化的朋友都知道,医院对软件的需求是多方面的,通常很难有一家厂商能够提供从ICU/CCU、LIS、RIS/PACS到财务软件的全线产品和服务。而HIS在所有这些系统中,管理着医院的核心运营,贯穿医院业务的各个环节,经常需要和第三方系统进行通信。如何能更好地集成医院的各类资产,为医院这个特殊的企业提供优质的服务,与医院一同成长,就成为我们关注的焦点。 作为独立软件厂商,同时也考虑到医院的实际承受能力,我们很难说服自己和医院接受那些闭源SOA大厂高昂的产品服务价格。同时,出于对灵活配置和伸缩性的要求,我们在一开始就把目光锁定在开源产品上。 SOA为我们提供了架构设计丰富的营养和施展拳脚的平台。这本书要带给大家的,正是如何用开源的产品实现完整的SOA。在这个过程中,作者为我们分析了SOA的方方面面,对每个环节采用的技术都做了大量翔实的评估和介绍,对每个关键点都给出了详细的说明和完整的源代码。 如果你是企业主管、业务专家,相信你读完本书,会对SOA有更清楚的认识,对SOA能为你的企业带来什么样的价值会有更深的理解和体会。 如果你是架构师或程序员,相信你也和我一样,在阅读完本书之后,能更明白SOA的本质,掌握实际开发SOA的技能,懂得如何在企业或现有系统中引入SOA的思想。 得知博文视点引进并准备翻译这本书时,网上传来了质疑的声音,认为开源加上SOA,受众太小。我却不这么看。中国的软件产业,并非只剩下互联网和外包,除了叫得出名字的大公司,有大量中小型的独立软件厂商在暗自努力,他们在网上的曝光率很低,但都在踏踏实实地做事。他们是可爱、可敬的一批人,做的是幕后支撑企业运营的重要产品和服务,这本书也是为他们准备的。

媒体关注与评论

“开源SOA复杂领域中的生存指南。”   ——Alberto Lagna,whitebox.it “无价的指南…出众的示例。”   ——RickWagner,Acxiom Corp. “对各种开源SOA产品的深入比较就已值回本书定价。”   ——Peter JOhnson,Unisys “…对任何SOA项目都有用,不论是什么平台。”   ——Irena Kennedy,Microsoft “集成关键开源技术的实用SOA解决方案。”   ——DougWarren,JavaWeb Services

书籍目录

前言
I
致谢
III
关于本书
V
第一部分 历史和原理
1
第1章 SOA本质
3
1.1 分布式计算简史
4
1.1.1 基于RPC的方案存在的问题
5
1.1.2 理解SOAP的不同消息风格
6
1.1.3 SOA降临
6
1.2 Web服务为实现SOA所做的承诺
8
1.3 理解SOA的核心特征
9
1.3.1 服务接口/契约
10
1.3.2 服务透明性
10
1.3.3 服务的松耦合与无状态性
12
1.3.4 服务组合
13
1.3.5 服务注册和发布
14
1.4 SOA平台所用到的技术
14
1.4.1 业务流程管理
15
1.4.2 企业决策管理
16
1.4.3 企业服务总线
17
1.4.4 事件流处理器
19
1.4.5 Java消息服务
20
1.4.6 注册表
21
1.4.7 服务组件和组合服务
22
1.4.8 Web服务中介
23
1.5 引入SOA成熟度模型
24
1.6 小结
25
第2章 定义开放SOA平台
27
2.1 评估开源产品
28
2.2 选定BPM解决方案
29
2.2.1 BPM产品评估标准
30
2.2.2 开源BPM产品
31
2.2.3 选定BPM解决方案
32
2.2.4 介绍JBoss jBPM
33
2.3 选定企业决策管理解决方案
33
2.3.1 EDM产品评估标准
35
2.3.2 开源EDM产品
35
2.3.3 选定EDM
36
2.3.4 介绍JBoss Rules(Drools)
37
2.4 选定ESB
37
2.4.1 ESB产品评估标准
38
2.4.2 开源ESB产品
39
2.4.3 选定ESB
40
2.4.4 介绍作为轻量ESB的Synapse
41
2.5 选定ESP解决方案
42
2.5.1 什么是事件流处理?
43
2.5.2 介绍Esper
44
2.6 选定注册表
44
2.6.1 注册表评估标准
45
2.6.2 开源注册表产品
46
2.6.3 选定注册表
47
2.6.4 介绍WSO2 Registry
48
2.7 选定服务组件和组合框架
49
2.7.1 详细介绍服务组件架构
49
2.7.2 介绍Apache Tuscany
51
2.8 选定Web服务中介解决方案
51
2.9 小结
53

第二部分 装配组件和服务
55
第3章 使用Apache Tuscany创建服务
57
3.1 服务组件和组合是什么?
58
3.2 SCA装配模型
59
3.2.1 介绍组合定义文件
61
3.2.2 配置组件
65
3.2.3 定义服务
68
3.2.4 使用属性
70
3.2.5 实现选项
74
3.2.6 使用引用进行依赖注入
79
3.2.7 定义可用的绑定
81
3.3 小结
87
第4章 高级SCA
89
4.1 使用组件类型进行配置
89
4.2 SCA交互模型
91
4.2.1 使用对话
91
4.2.2 理解回调
93
4.3 脚本语言支持
98
4.3.1 创建Ruby组件
99
4.3.2 用Ruby方法签名创建Java接口
100
4.3.3 修改服务实现类
100
4.3.4 修改组合装配集
101
4.4 高级Tuscany/SCA
102
4.4.1 产品部署
102
4.4.2 介绍服务数据对象(SDO)
107
4.4.3 高级SDO特性
112
4.5 小结
114
第三部分 业务流程管理
115
第5章 jBPM入门
117
5.1 BPM:SOA的“秘制酱料”
119
5.2 JBoss jBPM的历史和概览
121
5.2.1 jBPM流程的开发生命周期
121
5.2.2 面向图谱的编程和jBPM
127
5.3 理解节点
127
5.3.1 Node节点类型
128
5.3.2 Task-node节点类型
129
5.3.3 State节点类型
129
5.3.4 Mail-node节点类型
130
5.3.5 Decision节点类型
132
5.3.6 Fork和join节点类型
132
5.4 使用转换
133
5.5 通过动作进行扩展
134
5.5.1 实例化动作类的属性
137
5.5.2 使用动作表达式
138
5.6 用事件捕获流程中的生命周期变更
140
5.7 使用变量管理上下文
142
5.8 小结
144
第6章 jBPM任务
145
6.1 什么是任务?
146
6.1.1 使用jBPM Console管理任务
146
6.1.2 task元素配置
148
6.2 任务用户管理
149
6.2.1 Actor和指派
149
6.2.2 理解泳道
151
6.3 使用定时器
152
6.4 任务控制器
155
6.5 使用任务API进行开发
156
6.5.1 找出jBPM实例中的流程
156
6.5.2 找出给定流程正在运行中的流程实例
158
6.5.3 找出流程实例中的开放任务
160
6.5.4 找出指派给某个用户的所有任务
162
6.5.5 找出某actor的所有可选任务
162
6.5.6 完成任务
163
6.6 小结
165
第7章 高级jBPM功能
167
7.1 jBPM重要的企业级特性
168
7.1.1 用于分组的超态
168
7.1.2 使用子流程管理复杂度
169
7.1.3 管理异常
171
7.1.4 用BeanShell编写脚本
173
7.1.5 审计日志
175
7.1.6 理解异步延续
178
7.2 与SCA/SDO集成
180
7.2.1 使用SCA客户端组件实现装配集成
181
7.2.2 服务化jBPM
187
7.2.3 开发ListProcesses服务操作
188
7.2.4 开发CreateProcessInstance服务操作
194
7.3 小结
197
第四部分 事件流处理、集成和中介
199
第8章 用Esper处理复杂事件
201
8.1 企业中的业务事件
202
8.2 理解事件
203
8.2.1 BAM和ESP——区别在哪里?
204
8.2.2 事件驱动架构和SOA
204
8.3 Esper是什么?
205
8.4 Esper起步
207
8.4.1 什么是事件对象?
208
8.4.2 定义并注册查询语句
208
8.4.3 指定监听器或订阅者
209
8.4.4 配置选项
209
8.5 EPL基础
210
8.5.1 查询事件
210
8.5.2 使用变量
214
8.5.3 理解视图
216
8.5.4 用命名窗口创建新的事件流
217
8.6 高级Esper
219
8.6.1 用函数进行扩展
219
8.6.2 应用事件模式
223
8.6.3 使用JDBC进行远程连接
225
8.7 服务化Esper
227
8.7.1 创建框架和组件
228
8.7.2 Esper服务和会话管理器
229
8.7.3 SCA composite文件
230
8.7.4 用soapUI进行测试
231
8.8 小结
232
第9章 企业级集成和ESB
233
9.1 ESB和SOA之间的关系
234
9.2 ESB的历史积淀
234
9.2.1 ESB核心功能
237
9.2.2 ESB适用的场合
243
9.2.3 不适用ESB的场合
245
9.3 Apache Synapse入门
248
9.3.1 协议适配器
249
9.3.2 面向消息的中间件
251
9.3.3 基于XML的消息传递
251
9.3.4 智能路由和分发
251
9.3.5 消息转换
251
9.3.6 任务/定时器
252
9.3.7 服务质量/Web中介
252
9.3.8 监控和管理
252
9.3.9 可扩展的API
252
9.4 基本的Apache Synapse消息和服务中介
253
9.4.1 简单的消息中介示例
253
9.4.2 简单的服务中介示例
258
9.5 小结
260
第10章 用Apache Synapse实现ESB
261
10.1 通过案例研究学习Synapse
262
10.1.1 第一阶段:使用错误处理、路由和传输切换的典型Web服务中介
262
10.1.2 第二阶段:协议/传输桥接和事件通知
262
10.1.3 第三阶段:使用任务、脚本和数据库集成
263
10.1.4 第四阶段:服务质量中介
263
10.2 第一阶段:简单的Web服务中介
264
10.2.1 销售订单发起
265
10.2.2 配置服务中介代理并进行验证
266
10.2.3 配置XSLT中介
268
10.2.4 从HTTP到JMS的传输切换
269
10.2.5 从JMS到HTTP的传输切换
272
10.3 第二阶段:VFS、CSV、电子邮件和消息监听
275
10.3.1 使用VFS传输
276
10.3.2 处理CSV文件
277
10.3.3 异常处理和SMTP传输
279
10.3.4 使用监听消息模式
280
10.4 第三阶段:任务、DB中介和迭代器
284
10.4.1 配置Synapse任务
285
10.4.2 使用迭代器中介拆分消息
287
10.4.3 使用DB中介
288
10.5 第四阶段:用Synapse做QoS
290
10.5.1 实现WS-Security
291
10.5.2 使用Synapse限流中介
293
10.6 小结
296
第五部分 企业决策管理
297
第11章 用JBoss Drools定义业务规则
299
11.1 理解业务规则
300
11.1.1 业务规则方法的好处和背后的驱动力
302
11.1.2 与SOA的关系
303
11.1.3 规则引擎的特征
303
11.1.4 业务规则管理系统
305
11.2 Drools入门
306
11.2.1 Hello World, Drools!
307
11.2.2 运行Hello World, Drools!
310
11.3 Drools规则语言(DRL)概览
312
11.4 Drools头元素
313
11.4.1 package
313
11.4.2 import
313
11.4.3 expander
313
11.4.4 global
313
11.4.5 function
314
11.5 在Drools中定义规则
314
11.5.1 用属性修改规则行为
315
11.5.2 规则陈述的条件段(when部分)
318
11.5.3 规则陈述的后果段(then部分)
325
11.6 在Drools中查询事实
327
11.7 用于规则协同的Drools RuleFlow
328
11.8 使用Drools规则语言之外的选择
330
11.8.1 使用DSL来满足业务用户编写需要
330
11.8.2 用决策表定义规则
333
11.9 小结
334
第12章 实现Drools
335
12.1 案例总览
336
12.1.1 定义DRL规则
338
12.1.2 以嵌入式引擎的方式运行
342
12.1.3 用DSL制作用户友好的规则
348
12.2 使用Drools Guvnor管理规则
349
12.2.1 Guvnor功能概览
350
12.2.2 用Guvnor编写规则
355
12.3 开发决策服务
359
12.3.1 什么是决策服务?
359
12.3.2 设计决策服务
361
12.3.3 用Tuscany和Drools实现决策服务
365
12.3.4 测试
371
12.4 小结
372
参考资源
373
索引
377

编辑推荐

《开源SOA》:你现在可以只用开源的应用程序就构建出企业级的soa解决方案,但有一个问题:你必须决定采用哪些产品及如何将它们集成为可用的整体。要集成的领域从业务流程管理、复杂事件处理、消息传递和中间件、esb到业务规则,无所不包。这样的任务令人望而生畏。如果你是开发人员或架构师,想在这样的任务中寻求帮助,那么《开源soa》就是你的指南。你将学到soa的关键概念及这些技术如何成为soa等式的一部分;将学到那些由作者难得的经验换来的集成方式;还将发现为什么这些开源产品是昂贵的商业解决方案的极具竞争力的替代,并且在许多情况下它们甚至更加卓越。《开源SOA》内容对构建soa系统整个生命周期的完整介绍混合、搭配并融合不同的工具难得的案例研究和独特的解决方案对jbossjbpm、drools、apachetuscany、synapse、esper等的介绍集成的eclipse项目,打包用以运行示例的所有类库

作者简介

本书介绍了面向服务的架构(SOA)的基本概念和蓝图,对构成SOA的方方面面,包括服务编写和组装、业务流程建模、事件处理和报告、企业集成总线、决策服务等进行了全方位的介绍,并以“开放SOA平台”为目标,与读者一道搜罗了大量可选方案进行对比,最终选择了一系列开源产品组成完整的SOA解决方案。作者拥有多年企业软件开发经验,在本书中,他以真实世界的案例向我们展示了开源SOA的价值和实现方法。不论你是业务用户、架构师还是一线开发人员,都能从本书得到大量的启发和实战参考。

图书封面


 开源SOA下载 精选章节试读



发布书评

 
 


精彩短评 (总计18条)

  •     只是讲个大概的架构,不算细致
  •     做了一些实质性的对比~
  •     不错~ 书有点旧 但是没有品质问题
  •     不错的开源SOA指南
  •     看了一章再也不想看了,翻译水平太低
  •     了解SOA
  •     发货速度真的很快,发票、发货单一应俱全,书也很好,字迹清楚,无缺页,决对的正版。
  •     soa入门书籍
  •     49
  •     介绍SOA概念的书
  •     很不错!大家人都很喜欢
  •     这本书介绍的东西有点旧了,SOA里面一些由大厂商鼓吹的华而不实的概念也逐渐被业界抛弃。不过,粗读一下用来了解一些概念,这本书还不错。
  •     构建基于SOA思想的企业级服务框架,这本书确实写得足够全面。草草看看,理解肤浅,有机会应该更深入了解包括BPM, ESB等知识体系及实现方案。谢谢小伙伴借阅 @fei0_0fei
  •     依托开源软件,全面分析企业SOA的原理和实施,里面的理论知识很好,示例实现源码就有点多余了。
  •     SOA的开源实现
  •     买了这本书后我知道我有事儿干了
  •     内容上还是不错的,比较全面
  •     很不错的一本讲解SOA的书
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024