2010年10月24日
《SOA权威指南:通过BEA Aqualogic Service Bus实现》
原书名: The Definitive Guide to SOA: BEA AquaLogic Service Bus
作者: 【美】Jeff Davies 【印度】Ashish Krishna 【美】David Schorow 著
译者:倪志刚 王铭孜 黄兆勤(2008年01月第1版第1次)
原出版社: Apress
电子工业出版社 Publishing House of Electronics Industry
http://www.phei.com.cn/北京市海淀区万寿路173信箱(100036)
JEFF DAVIES,BEA的SOA构架师与推广者,在软件领域有20多年的工作经验。Jeff有丰富的零售软件,例如Windows与Macintosh平台上的Act!,以及许多其他的商业应用程序(主要集中在电信领域)的开发经验。他还做过企业应用程序的开发、设计、构架设计等方面的工作。在加入BEA之前,Jeff是一家电信公司的首席构架师,主要负责s0A。在BEA,Jeff主要从事基于BEA的产品在一些实际项目中构建s0A解决方案的工作。
DAVID SCHOROW,有20多年的企业软件开发经验。David是BEA AquaLogic Service Bus的首席构架师,指导了ALSB的开发与发展。在加入BEA前,他是HP NonStop产品部门的首席Java构架师,负责监管许多不同的Java项目,包括NonStop Java虚拟机、NonStop SQL JDBC驱动程序,NonStop平台与WebLogic Server的通信以及其他的企业Java产品。David在高性能事务处理系统领域有丰富的经验,这些系统广泛用于飞机订票、保健与银行领域。David拥有MIT的理学学士学位与加州大学伯克利分校的博士学位。
内容简介
本书介绍了作为SOA核心和基础架构的ESB(Enterprise Service Bus,企业服务总线)的主要功能,并且重点介绍BEA的企业级ESB产品——AquaLogic Service Bus(简称ALSB)。在本书中,读者将通过很多详细的例子来领略ALSB如何与一些传统的系统相连接,以及Web Service通用的设计模式,丰富在SOA与ESB上开发与构架方面的经验。本书总共15章,其中大多数章节在内容上相对独立,读者可以单独地阅读每一章。不论是对ESB和SOA概念完全不了解的新手,还是ALSB的专家,本书都具有可读性和指导意义。
P24,@WebService含义
name: WebService 生成的WSDL将会以该name作为porttype
targetNamespace: 目标命名空间
serviceName: 服务名,对应WSDL的<wsdl:service>元素
wsdlLocation: WSDL文件的相对或者绝对路径
endpointInterface: 服务端点接口SEI的文件的全限定名
P25,@SOAPBinding含义
style: 指定SOPA消息的编码类型【Document(*),RPC】
use: 指定SOPA消息的格式风格【Literal(*),Encoded】
parameterStyle: 定义了方法的参数格式【Bare,Wrapped(*)】
P26,@WebMethod含义
operationName: 操作名称,对应<wsdl:operation>元素,默认为Java方法名
action: 与操作对应的action,对SOAP Binding来说,就是SOAPHeader值。
P36,业务服务和代理服务
ALSB将服务分成两类:业务服务(Business Service)和代理服务(Proxy Service)。客户端不直接调用业务服务,而是调用代理服务。
业务服务是在ALSB上定义的,代表ALSB以外的服务,可以理解为client stub,通过这个stub,ALSB可以访问外部的服务,而这个外部服务,就是服务提供者。
代理服务时ALSB上的一个服务,可以代表任何一个真实的服务,通过这个代理服务,可以在消费者和提供者之间建立一个抽象层。
P47,代理服务是由它的消息流定义的,一个消息流由一系列节点组成。节点有4种类型:启动节点(Start),管道对节点(Pipeline Pair),路由节点(Route)和分支节点(Branch)。
启动节点:表示消息流的入口,不可编辑。
管道对节点:表示请求或者响应的消息路径,在请求或响应的不同阶段插入不同的操作,可以接一个其他类型的节点。
路由节点:叶子节点,一般转入到一个业务服务。
分支节点:判断分支,包括条件判断分支和操作判断分支。
P62,一个WSDL由6个部分组成,都在<definitions>根节点之下。
type: 数据类型,用XML Schema表示
message: 所用到的消息(由type构造)
portType: 抽象接口,包括多个操作方法,每个操作方法的输入或者输出的消息由message构造
binding: 描述portType的绑定方式,包括协议、格式等
port: 服务端点的部署信息,主要是URL
service: port的集合。
P113,服务类型与传输协议
SOAP with WSDL: JMS,HTTP,HTTPS
SOAP without WSDL: JMS,HTTP,HTTPS
XML with WSDL: JMS,HTTP,HTTPS
XML without WSDL: JMS,HTTP,HTTPS,Email,File,FTP
消息类型(Binary,Text,MFL,xml): JMS,HTTP,HTTPS,Email,File,FTP
P176,安全范式下在SOA的挑战
1、身份管理(Identity Management):如何访问安全资源,比如数据库、文件系统或者一个需要提供用户密码才能访问的后端遗留系统。
2、消息及有效载荷的隐私保护:如何保证只有合法的服务提供者才能访问这些消息。
3、真实性(Authenticity):如何知道这些消息是真实的,而不是由未授权的人所发布的。
4、完整性(Integrity):如何保证这些消息和它的有效载荷在传输过程中不被篡改。
5、安全执行(Security enforcement):如何保证安全规则和策略被应用和执行。
6、安全互操作性(Security interoperability):如何强制实施诸如SSL,数字签名等安全标准。
SOA坐标体系
CEO 电视接口 企业服务
副总裁 主板 域服务
主管 电路板 应用程序
经理 集成电路 功能
工人 晶体管 数据
CRM HR 产品 库存 服务 订单 资产 财务 合作伙伴 供应链
企业服务映射原则1:如果一个服务必须跨越“域边界”才能完成其工作,它必须存在于企业服务层
企业服务映射原则2:企业服务层不能“跳过”域服务层
通信法则1:每个服务层都要知道它下面的那一层,而不是它上面的那一层
通信法则2:每一个服务层都知道ESL的信息
通信法则3:服务层之间使用Web服务方式
P209,什么是服务
服务的实现不是服务的一部分
任何需要客户知道的事情都是服务的一部分
服务受契约管理,契约定义服务提供什么以及何时如何提供服务