开源SOA
基本信息
- 原书名: Open Source Soa
- 原出版社: Manning Publications
- 作者: Jeff Davis [作译者介绍]
- 译者: 高宇翔
- 出版社:电子工业出版社
- ISBN:9787121123276
- 上架时间:2010-12-16
- 出版日期:2010 年12月
- 开本:16开
- 页码:400
- 版次:1-1
- 所属分类:
计算机 > 计算机网络 > Web Server > SOA/SOC(面向服务框架)
编辑推荐
《开源SOA》:
你现在可以只用开源的应用程序就构建出企业级的soa解决方案,但有一个问题:你必须决定采用哪些产品及如何将它们集成为可用的整体。要集成的领域从业务流程管理、复杂事件处理、消息传递和中间件、esb到业务规则,无所不包。这样的任务令人望而生畏。
如果你是开发人员或架构师,想在这样的任务中寻求帮助,那么《开源soa》就是你的指南。你将学到soa的关键概念及这些技术如何成为soa等式的一部分;将学到那些由作者难得的经验换来的集成方式;还将发现为什么这些开源产品是昂贵的商业解决方案的极具竞争力的替代,并且在许多情况下它们甚至更加卓越。
《开源SOA》内容
对构建soa系统整个生命周期的完整介绍
混合、搭配并融合不同的工具
难得的案例研究和独特的解决方案
对jbossjbpm、drools、apachetuscany、synapse、esper等的介绍
集成的eclipse项目,打包用以运行示例的所有类库
内容简介回到顶部↑
本书介绍了面向服务的架构(soa)的基本概念和蓝图,对构成soa的方方面面,包括服务编写和组装、业务流程建模、事件处理和报告、企业集成总线、决策服务等进行了全方位的介绍,并以“开放soa平台”为目标,与读者一道搜罗了大量可选方案进行对比,最终选择了一系列开源产品组成完整的soa解决方案。作者拥有多年企业软件开发经验,在本书中,他以真实世界的案例向我们展示了开源soa的价值和实现方法。不论你是业务用户、架构师还是一线开发人员,都能从本书得到大量的启发和实战参考。
你现在可以只用开源的应用程序就构建出企业级的soa解决方案,但有一个问题:你必须决定采用哪些产品及如何将它们集成为可用的整体。要集成的领域从业务流程管理、复杂事件处理、消息传递和中间件、esb到业务规则,无所不包。这样的任务令人望而生畏。
如果你是开发人员或架构师,想在这样的任务中寻求帮助,那么《开源soa》就是你的指南。你将学到soa的关键概念及这些技术如何成为soa等式的一部分;将学到那些由作者难得的经验换来的集成方式;还将发现为什么这些开源产品是昂贵的商业解决方案的极具竞争力的替代,并且在许多情况下它们甚至更加卓越。
本书内容
对构建soa系统整个生命周期的完整介绍
混合、搭配并融合不同的工具
难得的案例研究和独特的解决方案
对jbossjbpm、drools、apachetuscany、synapse、esper等的介绍
集成的eclipse项目,打包用以运行示例的所有类库
你现在可以只用开源的应用程序就构建出企业级的soa解决方案,但有一个问题:你必须决定采用哪些产品及如何将它们集成为可用的整体。要集成的领域从业务流程管理、复杂事件处理、消息传递和中间件、esb到业务规则,无所不包。这样的任务令人望而生畏。
如果你是开发人员或架构师,想在这样的任务中寻求帮助,那么《开源soa》就是你的指南。你将学到soa的关键概念及这些技术如何成为soa等式的一部分;将学到那些由作者难得的经验换来的集成方式;还将发现为什么这些开源产品是昂贵的商业解决方案的极具竞争力的替代,并且在许多情况下它们甚至更加卓越。
本书内容
对构建soa系统整个生命周期的完整介绍
混合、搭配并融合不同的工具
难得的案例研究和独特的解决方案
对jbossjbpm、drools、apachetuscany、synapse、esper等的介绍
集成的eclipse项目,打包用以运行示例的所有类库
目录回到顶部↑
前言
致谢
关于本书
第一部分 历史和原理
第1章 soa本质
第2章 定义开放soa平台
第二部分 装配组件和服务
第3章 使用apache tuscany创建服务
第4章 高级sca
第三部分 业务流程管理
第5章 jbpm入门
第6章 jbpm任务
第7章 高级jbpm功能
第四部分 事件流处理、集成和中介
第8章 用esper处理复杂事件
第9章 企业级集成和esb
第10章 用apache synapse实现esb
第五部分 企业决策管理
第11章 用jboss drools定义业务规则
第12章 实现drools
致谢
关于本书
第一部分 历史和原理
第1章 soa本质
第2章 定义开放soa平台
第二部分 装配组件和服务
第3章 使用apache tuscany创建服务
第4章 高级sca
第三部分 业务流程管理
第5章 jbpm入门
第6章 jbpm任务
第7章 高级jbpm功能
第四部分 事件流处理、集成和中介
第8章 用esper处理复杂事件
第9章 企业级集成和esb
第10章 用apache synapse实现esb
第五部分 企业决策管理
第11章 用jboss drools定义业务规则
第12章 实现drools
译者序回到顶部↑
相信大家对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,受众太小。我却不这么看。中国的软件产业,并非只剩下互联网和外包,除了叫得出名字的大公司,有大量中小型的独立软件厂商在暗自努力,他们在网上的曝光率很低,但都在踏踏实实地做事。他们是可爱、可敬的一批人,做的是幕后支撑企业运营的重要产品和服务,这本书也是为他们准备的。
在这里,我要特别感谢武汉博文视点的周筠老师,给我翻译本书的机会,与她相识是我的荣幸。感谢莫锡昌、成硕为审稿付出的宝贵时间。感谢编辑卢鸫翔、刘唯一和其他所有幕后工作者的辛勤劳动。
我还要感谢在事业上给予我重要帮助的两个人:毛颖和林勇,是他们的信任和鼓励让我走到今天。
最后要感谢我的家人,为了让我安心翻译这本书,牺牲了太多的周末和假期,谢谢你们对我的包容和支持,无私的爱当然要用无私的爱来回报,我爱你们!
在本书的翻译过程中,译者虽已尽力确保专业术语符合中文读者的习惯,也尽力将原著的真实意图以符合中文习惯的方式呈现给大家,毕竟水平有限,书中的问题和疏漏之处在所难免,恳请各位读者朋友批评指正,联系邮箱:gaoyuxiang.soa@gmail.com。
高宇翔
2010年11月于上海
我为什么会对这本书产生兴趣?这要从我的工作说起。我从2004年开始投身到企业软件开发当中,具体而言,就是医院管理信息系统(HIS)。我们的团队,一直都是扮演独立软件厂商(ISV)的角色,为国内大中型医院提供高品质的HIS产品和服务。
接触过医院信息化的朋友都知道,医院对软件的需求是多方面的,通常很难有一家厂商能够提供从ICU/CCU、LIS、RIS/PACS到财务软件的全线产品和服务。而HIS在所有这些系统中,管理着医院的核心运营,贯穿医院业务的各个环节,经常需要和第三方系统进行通信。如何能更好地集成医院的各类资产,为医院这个特殊的企业提供优质的服务,与医院一同成长,就成为我们关注的焦点。
作为独立软件厂商,同时也考虑到医院的实际承受能力,我们很难说服自己和医院接受那些闭源SOA大厂高昂的产品服务价格。同时,出于对灵活配置和伸缩性的要求,我们在一开始就把目光锁定在开源产品上。
SOA为我们提供了架构设计丰富的营养和施展拳脚的平台。这本书要带给大家的,正是如何用开源的产品实现完整的SOA。在这个过程中,作者为我们分析了SOA的方方面面,对每个环节采用的技术都做了大量翔实的评估和介绍,对每个关键点都给出了详细的说明和完整的源代码。
如果你是企业主管、业务专家,相信你读完本书,会对SOA有更清楚的认识,对SOA能为你的企业带来什么样的价值会有更深的理解和体会。
如果你是架构师或程序员,相信你也和我一样,在阅读完本书之后,能更明白SOA的本质,掌握实际开发SOA的技能,懂得如何在企业或现有系统中引入SOA的思想。
得知博文视点引进并准备翻译这本书时,网上传来了质疑的声音,认为开源加上SOA,受众太小。我却不这么看。中国的软件产业,并非只剩下互联网和外包,除了叫得出名字的大公司,有大量中小型的独立软件厂商在暗自努力,他们在网上的曝光率很低,但都在踏踏实实地做事。他们是可爱、可敬的一批人,做的是幕后支撑企业运营的重要产品和服务,这本书也是为他们准备的。
在这里,我要特别感谢武汉博文视点的周筠老师,给我翻译本书的机会,与她相识是我的荣幸。感谢莫锡昌、成硕为审稿付出的宝贵时间。感谢编辑卢鸫翔、刘唯一和其他所有幕后工作者的辛勤劳动。
我还要感谢在事业上给予我重要帮助的两个人:毛颖和林勇,是他们的信任和鼓励让我走到今天。
最后要感谢我的家人,为了让我安心翻译这本书,牺牲了太多的周末和假期,谢谢你们对我的包容和支持,无私的爱当然要用无私的爱来回报,我爱你们!
在本书的翻译过程中,译者虽已尽力确保专业术语符合中文读者的习惯,也尽力将原著的真实意图以符合中文习惯的方式呈现给大家,毕竟水平有限,书中的问题和疏漏之处在所难免,恳请各位读者朋友批评指正,联系邮箱:gaoyuxiang.soa@gmail.com。
高宇翔
2010年11月于上海
前言回到顶部↑
唯有经历过最深的山谷才能体会群山之巅的壮美。
—理查德·尼克松
我已记不清是在何时决定写这本书,我想,灵感的瞬间发生在几年前的一个晚上,那时我正坐在热腾腾的浴缸里。那一天,我花了大量的时间研究(当时)最新版本的JBoss jBPM都有些什么样的功能,研究得越深入,我就越兴奋。我们正在为HireRight构想一个业务流程管理(Business Process Management,BPM)产品,从技术上讲,jBPM提供了所有我们需要的功能,然而,真正的挑战是:如何将这个方案和我们已有的产品及应用集成在一起?
和许多公司一样,HireRight使用的产品中既有开源的,也有商业的。商业产品的一个主要好处是它们倾向于囊括所有特性,提供一致的,通常也是全面完善的功能。而开源的产品则更多地关注具体的、特定领域的需求。正因为如此,虽然jBPM算得上一个出色的BPM产品,但如何将它和服务组件框架如Apache Tuscany集成起来,并不是那么显而易见的。更进一步说,由于SOA这个目标本就很模糊,利用开源产品构建完整的SOA体系环境可能就变得十分困难。我发现,要想把最好的开源产品组合、拼装在一起,构建出表里如一的SOA平台,这是个相当高的要求。花大量时间学习和研究SOA的益处,并将SOA的各种概念通过开源的产品应用到实际工作中,成为我在本书中与读者分享知识的基础。
和许多人一样,在使用优秀的开源产品时,我经常感到内疚,我很少能有时间回馈社区。每次我在论坛或邮件列表中提问都能收到大量回复,这加重了我的愧疚感。我不仅免费使用,还免费享受到高质量的启动建议。(诚然,HireRight也购买生产环境中用到的开源产品的服务,以此来资助背后的开源公司,但这通常发生在最初的评估之后很久,而更多的问题恰恰出现在最初的这个评估期。)作为一个对开源产品的质量,以及对在背后支撑它们的个人的杰出贡献深信不疑的人,我想,是时候回馈一些东西了。这就是我写这本书的动因。
当有争论说是否要采纳开源的技术方案时,我通常都会指出,和大家所想象的不同,相比商业产品,采用开源产品对公司的风险要小得多。为什么这样说?我们最近也看到,商业公司经常会关张或被收购,不论哪一样发生了,相关产品要么不再被支持,要么被别扭地合并到其他产品中,这样的结果并不鲜见。此外,许多商业产品的用户群都很有限,这也许正是因为产品定价过高,以至于只有大型企业才会使用。由于用户少,产品的质量和开源的产品相比通常不够水准,与此相对应,开源产品的用户则要多得多(更多的用户意味着更多的反馈)。如果使用商业产品,你有多少机会直接和代码编写者沟通呢?在开源社区,像这样的交流很普遍。当然,对于开源的产品,你也能够访问其源代码,以及相配套的JUnit测试用例,这些可是开源产品中平时见不到的宝贝,是学习开源产品的最佳途径之一。
我希望,通过本书,能够推动这些开源产品的使用,并帮助那些支撑它们的公司、组织和个人。我相信SOA带来的好处是真实的,并能够通过集成最优秀的开源产品来实现。
七、致谢
最终胜出的是那些懂得合作的人。
—Vince Lombardi
我要特别感谢Manning Publications团队,他们为本书的写成付出了辛勤的劳动,本书是团队合作的成果!一路走来,Cythnia Kane拉着我的手(好吧,是激励我)给出了非同寻常的改进建议,Liz Welch和Katie Tennant的编辑和审校让本书变得可读,由Karen Tegtmeyer协调进行的评审进一步完善了本书。最后,Marjan Bace的洞见在整个过程中都给我莫大鼓励。其他我没有提到的人,我也很感谢你们的贡献!
特别感谢各位审阅者,在百忙之中抽空阅读比较毛糙的稿件(他们的建议和意见,尽管并未全部采纳),让本书在表述上更加准确紧凑,内容也得以改进。参与审阅的有Peter Johnson、Irena Kennedy、Francesco Goggi、Doug Warren、Davide Piazza、Ara Abrahamian、Alberto Lagna、Rick Wagner、Jonathan Esterhazy、Chuck Lee、Madhav Vodnala、Edmon Begoli、Valentin Crettaz、Andy Dingley、Glenn Stokol、Deiveehan Nallazhagappan、ChristianSiegers、Michele Galli、Patrick Steger、Ramnath Devulapalli,以及Marco Ughetti。
尤其感谢本书的技术评审Paul King,他对书中的源码全面深入地验证,以及提出的改进意见,都十分突出,体现出极为丰富的经验。
最后,如果没有我的家人,没有他们的耐心、理解和支持,就没有这本书的一切。当告诉他们我有写书的打算时,他们对我的计划有些迟疑。然而,随着时间一周周、一月月,乃至整年地过去,他们一再忍受着失去的周末、傍晚和假期。没有他们的鼓励,上述这些都不可能做到,我的愧疚感可能早已将我打败。
致我的朋友和同事,当你们问什么时候能完成本书时,我有时可能态度有些恶劣,感觉是被戳到了痛处,还请你们原谅。在此要郑重地感谢你们对本书的热衷。Stefano Malnati,我的老板,给我持续的激励,他的领导力和正直的品性让我做所有这些事都底气十足。
关于本书
本书的头两章(第一部分),适合不同的人阅读,不论你是懂技术并愿意了解更多面向服务的架构(service-oriented architecture,SOA)的业务用户,还是职业程序员或架构师。其余章节则须要你掌握一些Java知识,大量代码示例遍布在各章。尽管如此,在每个技术领域的介绍性章节中,也有适合非开发人员阅读的材料。虽然本书介绍的产品都是用Java编写的,如果你是C++或C#开发人员,应该也能够看懂代码示例并理解介绍到的关键概念。
本书介绍到的产品都在不断地更新,可能是小版本升级,也可能是重大的版本发布,我会尽最大努力确保示例代码和最新的版本同步。请定期访问 http://jdavis.open-soa.info/ wordpress/,那里有最新的源代码,以反映相关产品的所有重大升级。
路线图
本书的第一部分重点讲述SOA的构成、采用SOA这种架构模式的优势,以及促成或受益于SOA的技术。该部分的内容为本书后续章节会介绍到的技术打下基础,我建议你不要跳过!
—理查德·尼克松
我已记不清是在何时决定写这本书,我想,灵感的瞬间发生在几年前的一个晚上,那时我正坐在热腾腾的浴缸里。那一天,我花了大量的时间研究(当时)最新版本的JBoss jBPM都有些什么样的功能,研究得越深入,我就越兴奋。我们正在为HireRight构想一个业务流程管理(Business Process Management,BPM)产品,从技术上讲,jBPM提供了所有我们需要的功能,然而,真正的挑战是:如何将这个方案和我们已有的产品及应用集成在一起?
和许多公司一样,HireRight使用的产品中既有开源的,也有商业的。商业产品的一个主要好处是它们倾向于囊括所有特性,提供一致的,通常也是全面完善的功能。而开源的产品则更多地关注具体的、特定领域的需求。正因为如此,虽然jBPM算得上一个出色的BPM产品,但如何将它和服务组件框架如Apache Tuscany集成起来,并不是那么显而易见的。更进一步说,由于SOA这个目标本就很模糊,利用开源产品构建完整的SOA体系环境可能就变得十分困难。我发现,要想把最好的开源产品组合、拼装在一起,构建出表里如一的SOA平台,这是个相当高的要求。花大量时间学习和研究SOA的益处,并将SOA的各种概念通过开源的产品应用到实际工作中,成为我在本书中与读者分享知识的基础。
和许多人一样,在使用优秀的开源产品时,我经常感到内疚,我很少能有时间回馈社区。每次我在论坛或邮件列表中提问都能收到大量回复,这加重了我的愧疚感。我不仅免费使用,还免费享受到高质量的启动建议。(诚然,HireRight也购买生产环境中用到的开源产品的服务,以此来资助背后的开源公司,但这通常发生在最初的评估之后很久,而更多的问题恰恰出现在最初的这个评估期。)作为一个对开源产品的质量,以及对在背后支撑它们的个人的杰出贡献深信不疑的人,我想,是时候回馈一些东西了。这就是我写这本书的动因。
当有争论说是否要采纳开源的技术方案时,我通常都会指出,和大家所想象的不同,相比商业产品,采用开源产品对公司的风险要小得多。为什么这样说?我们最近也看到,商业公司经常会关张或被收购,不论哪一样发生了,相关产品要么不再被支持,要么被别扭地合并到其他产品中,这样的结果并不鲜见。此外,许多商业产品的用户群都很有限,这也许正是因为产品定价过高,以至于只有大型企业才会使用。由于用户少,产品的质量和开源的产品相比通常不够水准,与此相对应,开源产品的用户则要多得多(更多的用户意味着更多的反馈)。如果使用商业产品,你有多少机会直接和代码编写者沟通呢?在开源社区,像这样的交流很普遍。当然,对于开源的产品,你也能够访问其源代码,以及相配套的JUnit测试用例,这些可是开源产品中平时见不到的宝贝,是学习开源产品的最佳途径之一。
我希望,通过本书,能够推动这些开源产品的使用,并帮助那些支撑它们的公司、组织和个人。我相信SOA带来的好处是真实的,并能够通过集成最优秀的开源产品来实现。
七、致谢
最终胜出的是那些懂得合作的人。
—Vince Lombardi
我要特别感谢Manning Publications团队,他们为本书的写成付出了辛勤的劳动,本书是团队合作的成果!一路走来,Cythnia Kane拉着我的手(好吧,是激励我)给出了非同寻常的改进建议,Liz Welch和Katie Tennant的编辑和审校让本书变得可读,由Karen Tegtmeyer协调进行的评审进一步完善了本书。最后,Marjan Bace的洞见在整个过程中都给我莫大鼓励。其他我没有提到的人,我也很感谢你们的贡献!
特别感谢各位审阅者,在百忙之中抽空阅读比较毛糙的稿件(他们的建议和意见,尽管并未全部采纳),让本书在表述上更加准确紧凑,内容也得以改进。参与审阅的有Peter Johnson、Irena Kennedy、Francesco Goggi、Doug Warren、Davide Piazza、Ara Abrahamian、Alberto Lagna、Rick Wagner、Jonathan Esterhazy、Chuck Lee、Madhav Vodnala、Edmon Begoli、Valentin Crettaz、Andy Dingley、Glenn Stokol、Deiveehan Nallazhagappan、ChristianSiegers、Michele Galli、Patrick Steger、Ramnath Devulapalli,以及Marco Ughetti。
尤其感谢本书的技术评审Paul King,他对书中的源码全面深入地验证,以及提出的改进意见,都十分突出,体现出极为丰富的经验。
最后,如果没有我的家人,没有他们的耐心、理解和支持,就没有这本书的一切。当告诉他们我有写书的打算时,他们对我的计划有些迟疑。然而,随着时间一周周、一月月,乃至整年地过去,他们一再忍受着失去的周末、傍晚和假期。没有他们的鼓励,上述这些都不可能做到,我的愧疚感可能早已将我打败。
致我的朋友和同事,当你们问什么时候能完成本书时,我有时可能态度有些恶劣,感觉是被戳到了痛处,还请你们原谅。在此要郑重地感谢你们对本书的热衷。Stefano Malnati,我的老板,给我持续的激励,他的领导力和正直的品性让我做所有这些事都底气十足。
关于本书
本书的头两章(第一部分),适合不同的人阅读,不论你是懂技术并愿意了解更多面向服务的架构(service-oriented architecture,SOA)的业务用户,还是职业程序员或架构师。其余章节则须要你掌握一些Java知识,大量代码示例遍布在各章。尽管如此,在每个技术领域的介绍性章节中,也有适合非开发人员阅读的材料。虽然本书介绍的产品都是用Java编写的,如果你是C++或C#开发人员,应该也能够看懂代码示例并理解介绍到的关键概念。
本书介绍到的产品都在不断地更新,可能是小版本升级,也可能是重大的版本发布,我会尽最大努力确保示例代码和最新的版本同步。请定期访问 http://jdavis.open-soa.info/ wordpress/,那里有最新的源代码,以反映相关产品的所有重大升级。
路线图
本书的第一部分重点讲述SOA的构成、采用SOA这种架构模式的优势,以及促成或受益于SOA的技术。该部分的内容为本书后续章节会介绍到的技术打下基础,我建议你不要跳过!
媒体评论回到顶部↑
“开源SOA复杂领域中的生存指南。”
——Alberto Lagna,whitebox.it
“无价的指南…出众的示例。”
——RickWagner,Acxiom Corp.
“对各种开源SOA产品的深入比较就已值回本书定价。”
一Peter JOhnson,Unisys
“…对任何SOA项目都有用,不论是什么平台。”
——Irena Kennedy,Microsoft
“集成关键开源技术的实用SOA解决方案。”
——DougWarren,JavaWeb Services
——Alberto Lagna,whitebox.it
“无价的指南…出众的示例。”
——RickWagner,Acxiom Corp.
“对各种开源SOA产品的深入比较就已值回本书定价。”
一Peter JOhnson,Unisys
“…对任何SOA项目都有用,不论是什么平台。”
——Irena Kennedy,Microsoft
“集成关键开源技术的实用SOA解决方案。”
——DougWarren,JavaWeb Services
【插图】







点击看大图





加载中...
