最初分布式应用程序开发的复杂度被认为是原始的传输控制协议(TCP)/互联网协议(IP)网络模型。这个复杂度随着网络传输和网络服务的演变一直在快速增长。因此,直接在应用程序编程接口(API)工作的开发者们需要更高水平的专业知识。这些专业知识包括由大量的传输协议提供的所有服务,以及这些各种各样的服务如何与提供IP网络层的底层服务结合起来的技术。 例如,一个Web应用程序的开发者想要在一台移动终端机上进行操纵,他应该掌握如何选择一个用于不同网络环境的适当的传输协议,包括应用程序逻辑在内。也就是说,开发者不仅应该考虑在静态环境下,Web应用程序通过连接WiFi或蜂窝网络进行的操作,也应该实现足够的逻辑来应对从一个网络移到另一个网络的变化,甚至是终端断开连接的情况。 今天,分布式应用程序的开发人员需要专注于应用程序逻辑,以便使开发更有效率,同时减少开发延误和实现过程中的一些错误。为了达到这个目标,他们需要将通信系统的所有细节做一个抽象。这意味着他们不需要直接应对如何选择和配置网络传输和网络服务,以及如何处理在应用程序分布式组件之间数据传输的细节。
读者 本书适合网络领域的专家阅读,但实际上它也适合其他读者,包括任何在学习开发分布式系统时,对能够将传输层和网络层的服务做一个抽象的解决方案感兴趣的人们。本书将从企业内部和企业之间的层次上,为感兴趣的读者提供分布式应用程序信息技术(IT)解决方案。 特别的,本书将介绍各种中间件通信层的演进,所谓的中间件通信层即为了隐藏应用程序组件的分布复杂性而被设计的一个适应层。本书将把精力集中在深深影响了这类系统设计的主要范式上,这类主要范式是面向服务的体系结构(SOA)范式。即使这不是一个新的或革命性的概念,经过在这一领域数年的工作,人们已经意识到SOA范式所涉及的复杂性太高以至于通常不好理解。SOA通常演变为Web服务(WS)的基本概念,它失去了范式迫切需要构建敏捷和灵活的分布式系统的巨大优势。这在云计算架构领域是特别重要的,在这个领域遵循面向服务的架构、平台或软件是一项基本原则。 方法 本书的目标是根据实际使用情况进行演示,演示在开发当前和下一代企业应用程序时,如何有效地应用云计算平台和SOA的概念。为了避免一条条地罗列各种理论的定义和概念,本书决定提出一个实践性的实用方法,命名为基于项目的学习。这种方法是基于概念的合理化和在实际项目的设计和开发基础上的能力提高。 我们选择一个案例,研究的灵感来自众所周知的易贝(eBay)在线市场。基于这个C2C(客户到客户)分布式系统用例,将介绍所有必要的组件来构建智能SOA平台。最初这个平台的实现是在实现SOA支柱的基础上完成的,SOA的基本支柱即企业服务总线(ESB),旨在保证可集成性、互操作性和可扩展性等非功能性的需求。本书将考虑这个初始阶段作为基本SOA概念的开发,它将作为平台的第一个版本解决方案,被命名为10智能SOA服务平台(SSOAPaaS 10)。基于额外的非功能性需求,主要是关于一个更好的解耦或减少分布式组件之间的直接依赖关系以及主动性需求属性,将会以SSOAPaaS 20之名开发一个新版本的平台。SSOAPaaS 20包括第二个基本支柱,丰富了前一个平台,第二个基本支柱通常称为基于事件的事件驱动架构(EDA)系统。在最后的开发中,额外的非功能性需求,就可管理性和可伸缩性方面而言,将在SSOAPaaS 30中给予解决。SSOAPaaS 30解决方案的扩展与自我管理的属性将使智能平台实现本书的目标:为基于SOA的系统设计和开发一个智能平台。 本书需要提供一个专门的IT架构以便很容易地安装和部署不同版本的SSOAPaaS所需的组件,将开发基于虚拟化和云技术的解决方案,这个解决方案促进了一个有效的、便携的和可扩展的架构的设计和实现。这个平台名为智能PaaS(SPaaS),它提供所需的架构管理功能以支持3个不同版本的智能SOA平台。 本书结构 本书包括6章主体、概述以及总结和展望3个部分: 在概述部分(第0章),提供一个总体的介绍,包括本书的主要目标和所采用的基于项目的学习方法。 第1章主要内容是案例研究,介绍了提出三代SOA平台的主要需求。 第2章旨在介绍SOA、EDA、云计算和自主计算的基本概念。它将展示通信层中间件、企业应用程序集成和SOA解决方案的基本概念,并将介绍WS和ESB技术。企业界重要的企业集成进化描述所代表的面向消息和EDA范例会在其后介绍。此外,关于虚拟化和云计算架构的介绍将展示非功能性需求,诸如如何使用先进的虚拟化和云计算策略来实现可管理性和可伸缩性。本章将说明手工管理SOA平台的复杂性,接下来介绍用来实现智能平台解决方案的自主计算框架。 第3章主要介绍了包含一系列关于SPaaS解决方案开发内容的第一本手册,它旨在开发智能IT基础设施,需要安装和部署不同版本SSOAPaaS平台所需的组件。 第4章基于这本手册,展示了通过SSOAPaaS 1.0平台,SOA范式和技术如何满足互操作性、可扩展性和集成性等非功能性需求。 第5章旨在说明面向消息的中间件(MOM)概念以及如何使用消息传递系统[即Java消息服务(JMS)]来提供异步通信信道(即点对点或发布/订阅模式)。此外,有关复杂事件处理(CEP)的概念也有所介绍。本章介绍了在SSOAPaaS2.0平台下,面向消息和事件驱动的范例和技术如何能够满足可用性和主动性等非功能性需求。 第6章展示了最后一本手册,它专注于如何在全球化和广泛联系的企业中架构现代SOA平台。这一手册向人们展示了非功能性需求,例如可管理性和可伸缩性如何在SSOAPaaS 30平台中实现。 最后,总结和展望部分(第7章)总结了通信中间件和SOA平台所扮演的角色在满足集成性、互操作性和大型网络系统的性能需求方面的演变。当前和未来的挑战和观点将被描述出来,这些挑战包括在云计算架构方面未来智能和自主SOA平台的设计和开发。此外,智能的自我配置指南、自主开发和优化策略也将会被展示出来。这些策略指导着下一代作为一种服务解决方案的平台开发。 图Ⅰ 1给出了整体结构和各种将要讨论的话题。 图Ⅰ 1本书结构 为了展示如何在现代企业应用程序的开发中有效地应用SOA概念,本书提出了一个基于项目的学习方法,基于案例研究并且引入了分布式系统设计与开发的基础方法。本书将介绍SOA和EDA以及云计算和自主计算模式如何在现代分布式架构中发挥基础性的作用。 本书将解释说明,通过使用一个实用的基于手册的方法,所有这些技术和方法的融合如何使智能SOA平台的搭建能够满足大量的非功能性需求。这些非功能性需求包括可集成性、互操作性、可用性、主动性、可管理性、可扩展性、可移植性、可伸缩性和安全性。
|