在企业中成功实施SOA的专业实践指南
在本书中,四位有经验的SOA实施者针对在最大、最复杂的SOA计划中的成功交付,分享了真实世界的、经过验证的实战指南。
本书紧承作者们的畅销书《Service-Oriented Architecture Compass》,展示了如何克服成功实施SOA的关键障碍,并确定了针对所有方面的最佳实践,包括技术方面、组织机构方面和人员方面。本书关注的问题包括:引入服务原则,支持协作和信息过程共享;利用已有的技术资产和策略来集成服务;为新的工具选择正确的角色;文化、治理和架构方面的转变;为整个组织机构的生命周期带来更大的敏捷性,而不只是针对独立的项目。
本书对于每个力求在复杂环境中通过SOA来实现价值的企业架构师、技术经理和IT领导人来说,是一项必备的资源。
本书内容包括:
实现SOA治理,反映组织机构的战略和业务重点。
成功执行SOA项目:关于服务建模和设计的实践指南和经过验证的方法学。
利用可复用的资产:最大限度地利用SOA库。
让架构师能够选择正确的工具和产品,它们包含执行SOA方法进行服务设计和实现时所需的功能。
定义信息服务,以便让合适的人在合适的时间收到合适的信息。
集成SOA与Web 2.0,以及其他创新的产品和解决方案。
在SOA环境中提供高度可用的人员接口。
“全面而实用的一本书。它深刻地描述了SOA治理,给出了服务的全面视图,从架构视图直到实际的实现,我觉得这一点对我很有价值。对于准备面对SOA中艰难部分的企业架构师来说,这本书是很有用的。关于如何实现资产复用、SOA中人员的方面、描述如何适用工具的那些章节,让这本书很值得一读,而且很实用。”
Erik van Ommeren, Director of Innovation, Sogeti USA LLC
Norbert Bieberstein 是IBM解决方案架构师,负责沟通SOA在提供价值方面的进展。他在IT和计算机科学方面的经验超过27年。
Robert G. Laird 是IBM的IT架构师,属于SOA高级技术组,自2006年5月以来,为IBM全球范围的客户提供咨询,主要领域是SOA治理和SOA架构。
Dr. Keith Jones 目前是IBM执行IT架构师,属于SOA高级技术组。主要关注为前沿客户提供面向服务的架构和实现。他在IT行业有30年的经验。
Tilak Mitra 高级认证执行IT架构师,属于IBM全球服务部。擅长帮助IBM的客户建立概念和愿景,确定路线图,设计和实现基于SOA的企业架构。
无
面向服务的架构(ServiceOriented Architecture, SOA)已经不是新东西了。实际上,随着技术成熟曲线的发展,它经历了一些紧缩和倒退,有了不少失败尝试的案例。为什么会这样?如果这个方面是如此紧迫,为什么一些人转向怀疑和公然反对?主要原因在于我们都没有理解这种转变的困难,在业务和IT基础设施方面,它都需要训练有素的人员、深刻的理解和积极的行动。在协作和跨团队的过程中,我们需要训练有素的人员,这样我们才能够进行更大范围的、关于组织结构的思考,而不只是个人的、局部的“快速修复”或局部应用。因此,许多计划尝试失败的原因是多种多样的:
未能建立有效的治理,或者甚至未能意识到这种治理必须改变现状,通过交付共享的、有用的和有效的服务来获得持久的好处。
试图在组织机构的独立部门中引入服务的原则和方法,而没有大幅度地改变共享的文化和信息处理的过程。这种疏忽绝对会导致失败。
未能理解如何将有关服务的新思维与原有的技术资产和方向进行集成。
相信单项技术或工具将实现期望的结果。
相信速度来自敏捷,而敏捷则简单等同于“快速交付”独立的、互不相干的项目,没有考虑到组织机构范围的生命周期。这也被称为无结构的混沌。
在我看来,追求SOA的基本动机或理由在今天尤为普遍,超过以前任何时候。通过更快的速度和创新的业务模式来进行竞争的压力没有改变。对于企业、生态系统和供应链全球化的压力正在加剧。依赖于IT系统来扩张业务的需求持续增长,技术遍及商业和日常生活的方方面面。
在所有业务模式的转变中,许多扩张问题都来自于因特网所提供的途径和选择,因特网正变得越来越无所不在。因特网正在改变和演进。带宽不断增长,导致的网络效应正为新的公司和业务模式提供机会,同时也对已有的公司和业务模式形成破坏性的冲击。我们只要看看音乐行业中发生的例子(实际上是整个娱乐行业)。电信服务提供商(TSP)是典型的例子,其中行业的垂直集成和账单模式已经被基于IT的服务和设备的引入所击碎。两者的交集(娱乐业和TSP)变化更是戏剧性的,并且对消费电子、汽车等行业产生了影响。不断增长的选择和由此导致的全球供应链、供应源的转变对一切都产生了影响,从制造的产品,到知识产权,再到人才。没人能置身事外。
IT系统必须支持或引领这种潮流,否则,与之相联系的业务将在竞争中失败,沦为淘汰者。支持灵活性和规模伸缩的关键就在于面向服务的架构原则。前面曾提到,SOA中没有魔法。在很大程度上,它是古老的“模块化”和结构化分解概念的演进版本,强调在全球化的、开放的环境中更好地实现IT和业务的融合。但是,要在因特网上成功部署基于服务的架构,实现模块化和共享,真正支持全球化的业务,一些基本的规模伸缩问题以前还没有人尝试过。
我对这个伸缩性问题的体验来自于在IBM中转变Rational。我曾经尝试利用SOA来影响Rational的业务和Rational的技术中文化和技术的演进。Jazz的方向和架构是这种策略转变的主要体现,这种策略不仅源自于基于因特网的架构,也源自于对开发工具和平台底层的业务和技术的重新思考。这让我们开始创造新的产品,从已有的产品演进,并利用新的业务模式(定价和打包)在交付客户价值方面的优点。正如本书所介绍的,这要求文化的转变,治理模型的转变,涉及组织机构、技术假定、信息架构、协作服务等。这要求我们重新思考软件开发的工作,将它建模为一系列的业务过程,这些业务过程需要建立起来,并通过动态的测量指标监控服务来实现报告,这些服务可以放在全球分布的内部网上。现在说我们已经将愿景变成现实还为时尚早,但我比以前任何时候更坚信,这样做是对的。
出于这种精神,我推荐您阅读这本书,进一步了解我们和客户在过去4年中各种基于SOA的工作经验所带来的好处。前一本书展示了舞台,带给我们许多关键的问题和思考。这一本书深入探讨了治理、服务管理,特别是生命周期的挑战等关键问题。它关注了我在一开始提到的许多失败原因。作者们经验丰富,而且提炼出了最佳实践,为实现成功的SOA转变提供了实际可行的、深思熟虑的路线图。好好享受这本书。毕竟,假如事情很容易,那么每个人都能做好!
Daniel Sabbah
GM, Rational Software
IBM Software Group
Norbert Bieberstein:暂无简介
王海鹏:暂无简介
几年前,为了尝试JDK 15中的并发包,我写了一个多线程的网页爬虫程序,利用线程池来抓取和分析页面。
并发200个线程,每个线程从待爬URL队列中取得一个URL,取回网页,进行分析,找出其中的URL链接,再放入待爬队列。开发过程很正常,但在测试中遇到了问题。在爬了7万多个网页之后,程序开始越来越慢。凭感觉判断,有一些线程“死”掉了。
多线程的调试并不是件容易的事。这个问题很“难”再现。这不是普通意义上的难再现,它每次都会出现。但要跑到7万多URL时,才会出现。也就是说,再现这个问题的代价很大。我试过将线程池的大小退化到 1,想找出什么样的URL会导致线程死掉,但是行不通,因为速度太慢。当时的IDE也缺乏对多线程调试的一些支持。而且即便有支持,可能也不太适合这种情况。后来因为种种原因,那个程序就不了了之了。
这本书中SOA治理的思想给了我一些启发:我们需要关注服务执行的健康状况,包括服务执行的时间。例如,我们可以进行这样的改动:
在每个线程领取URL时,记录一个时间戳。在它完成这个URL处理时,再记录一个时间戳。再利用一个线程,对未完成的URL定时检查它的健康程度。如果在很长的一段时间内它还没完成,那么它就有问题。这样我们可以找到嫌疑URL。我们可以对这种URL单独测试,看看是否因为程序的原因,不能处理这样的URL。或者,我们可以把对应的线程任务杀掉,直接跳过这些有问题的URL。
如果您和我一样,是一名开发人员,学习一些SOA的思想是很有帮助的。我们可以在程序中设计一些机制,支持运营维护和故障分析,这正是SOA的一部分内容。
IT运维部门需要SOA。业务部门需要SOA。企业高层需要SOA。设想一家经营固话业务的电信公司,通过兼并和重组,拿到了一个移动网络。公司最需要的是什么?就是SOA。
这个移动网络上跑着多少应用?多少中间件?多少数据库?多少操作系统?多少服务器?它们的使用状况如何?它们由谁提供技术支持?它们是什么配置和版本?它们有哪些参数可以调整?它们支持着怎样的业务流程?它们支持着怎样的业务数据模型?它们提供怎样的QoS?它们在安全性和可伸缩性方面存在哪些风险?
SOA参考框架帮助我们提出这些问题。提出问题比解决问题更重要,真的。企业应该认真考虑向SOA迁移。
参加本书翻译工作的人员除封面署名外还有:王海燕、李国安、周建鸣、范俊、张海洲、谢伟奇、林冀、钱立强、甘莉萍。在这本书的翻译过程中,我学到了很多,因此郑重地向大家推荐它。如果这本书对于您有所帮助,我将十分高兴。
王海鹏
己丑年春日于上海
作者简介
Norbert Bieberstein 为IBM的SOA高级技术部门工作,在全球范围内发布和沟通SOA相关的主题。他从客户项目那里取得了第一手的经验,这些客户项目属于不同行业,正努力向基于SOA的解决方案迁移。Norbert发表了一些关于SOA的文章,与IBM Systems Journal issue 444在SOA方面进行合作,他也是《ServiceOriented Architecture Compass》(IBM Press, 2005)一书的第一作者。在2007年,“SOA for Profit”一书出版,Norbert是三位作者之一。他还参与编写了两本IBM红皮书:“Introduction to Grid Computing with Globus”和“Enabling Applications for Grid Computing with Globus”。在1993年,他出版了自己的第一本书“CASETools”。1989年,Norbert作为一名软件工程顾问加入了IBM软件开发实验室。他在信息技术和计算机科学方面的经验超过27年。在他的职业生涯中,曾经在一个较小的软件供应商那里担任应用开发者,也曾在Aachen University of Technology (RWTH)担任科学计算程序员,他在这所大学取得了数学和地理学硕士学位。在2006年,他从英国Henley的Henley Management College的一个合作MBA课程毕业。
Robert GLaird是IBM的IT架构师,属于SOA高级技术组,自2006年5月以来,为IBM全球范围的客户提供咨询,主要领域是SOA治理和SOA架构。他是行业TOGAF (The Open Group Architecture Framework) SOA Governance工作组的成员。
Robert有超过20年电信行业的经验,曾在MCI和Verizon Business工作。他曾是MCI的首席架构师,领导企业的架构师团队并负责整个从订单到现金的应用套件。他领域开发了基于SOA的单栈策略,以简化多个网络和多个应用库。Rob推动了MCI的产品开发的决策、计算和执行,领域涉及合同中心、IP/VPN、VoIP、IM和受管理的服务。对于OSS,他曾成功领导并实现了自动化的网络提供、网络恢复和网络管理。
在加入MCI之前,Robert曾在American Management Systems (AMS) 和Ideation, Inc担任咨询师。他的计算科学硕士学们和学士学位是在Purdue大学获得的,他在电信领域拥有2项专利。他曾在不同的行业论坛发表演讲,为SOA Magazine撰写文章,并被CIO Insight、 Telecommunications、InfoWorld和Computerworld引用。
DrKeith Jones目前是IBM执行IT架构师,属于SOA高级技术组。主要关注为前沿客户提供面向服务的架构和实现。他在IT行业有30年的经验,曾担任系统工程师、软件架构师、战略制定者,也是多本中间件图书的作者。Keith的主要兴趣集中在构建支持事务的、面向消息和面向服务的中间件基础设施,在各种企业环境中支持业务过程。最近,他的工作涉及在主要金融服务、零售服务、汽车制造、在线媒体和拍卖公司创建基础设施。Keith拥有化学博士学位,和他的家人一起住在美国科罗拉多州的Boulder。
Tilak Mitra是高级认证执行IT架构师,属于IBM全球服务部。他为IBM在全球提供企业架构方面的咨询,帮助客户实现SOA战略,从愿景直到设计和实现。
Tilak在零售、银行、媒体和娱乐、健康和交通行业有超过10年的行业经验,曾担任各种领导职位,工作内容涉及业务和IT转换,包括解决方案实现和交付。Tilak与IBM SOA Center of Excellence密切合作。在合作中,他对许多IBM SOA解决方案做出了贡献,参与撰写了白皮书和技术文章,这些文章成为了IBM SOA资源。他目前关注的是建立一些资产和技术,支持快速简单地开发基于SOA的复合应用,并能够在不同供应商的平台上执行(如IBM WebSphere和SAP NetWeaver)。
Tilak拥有印度Indian Institute of Science (IISc)的电子工程学硕士学位和Presidency College的物理学学士学位。他是Java Developers Journal (JDJ)的特约记者,并且经常为IBM developerWorks、JDJ和WebSphere Developer’s Journal编写文章。他还在美国多所大学演讲,介绍SOA各方面的内容。
译者序
序
致谢
作者简介
对本书的评价
第1章SOA简介
11SOA 回顾
12要考虑的新问题
13这本书有何不同
14这本书写给谁
15这本书包含哪些内容
16developerWorks的文章链接
17参考资料
第2章揭示好处
21为什么业务部门应该
关心SOA
22架构
23聚焦业务架构
24业务过程
25业务组件
26揭开面纱
27developerWorks的文章链接
28参考资料
第3章SOA治理
31SOA战略的治理
32针对SOA进行组织
33SOA治理的考虑
34小结
35developerWorks的文章链接
36参考资料
第4章服务建模和设计方
法学
41一个SOA参考架构
42面向服务的建模和架构
43小结
44developerWorks的文章链接
45参考资料
第5章利用可复用的资产
51什么是资产
52服务复用
53什么让SOA服务变得可复用
54复用模式
55让遗留系统可复用:从遗留的
整体应用中获取可复用组件
56小结
57developerWorks的文章链接
58参考资料
第6章服务实现
61实现SOA生命周期
62SOA中的建模前活动
63SOA中的服务建模
64SOA中的服务组装
65SOA中的服务部署
66SOA中的服务管理
67SOA编程模型
68架构和设计考虑
69小结
610developerWorks的文章链接
611参考资料
第7章信息服务
71数据和信息服务
72数据,SOA与松耦合
73从数据源到消费者
74数据质量
75数据处理
76数据服务提供者的逻辑模式
77复合服务逻辑
78语义互操作性
79小结
710developerWorks的文章链接
711参考资料
第8章在SOA下协作
81SOA对人们意味着什么
82Web 20与SOA
83构建SOA协作环境
84从SOA到企业运营的好处
85小结
86developerWorks的文章链接
87参考资料
第9章SOA的未来
91复合业务服务与复合应用
程序
92行业模型标准化与
行业范围内支持SOA
93打包的应用程序转变为单点
解决方案
94SOA和EDA的杂合架构
方法
95SOA方法学演进
96业务过程和SOA涉及的人
97SOA测量指标
98企业中无所不在的SOA
99全球使用SOA
910SOA打开了业余软件服务
市场
911小结
912developerWorks的文章链接
913参考资料
〖=A(〗1145667899131415161718181921293247474749505470707172727273757986868789899093105108110117122126127128131131132133136137138143143145145146147147151161164167168169171171172172173174174175175176177177178178〖=〗