出版时间:2010-12 出版社:清华大学出版社 作者:Philip A. Bernstein,Eric Newcomer 页数:387 译者:战晓苏,马严
Tag标签:无
前言
40年来,事务处理一直是一项重要的软件技术。运输业、金融业、零售业、电信业、制造业、政府部门和军事等各个领域的大型企业都完全依赖事务处理应用程序来完成电子预定服务、银行业务、证券交易、订单处理、音乐和视频服务、运货跟踪、政府服务、电话交换、库存控制以及指挥与控制等功能。很多大型的硬件和软件供应商,例如IBM、HP、Oracle、Microsoft、Dell、Red Hat和EMC,其收益的很大一部分来自于事务处理系统。事务处理产品和服务的销售额每年高达几百亿美元。作为消费者,我们每天都在使用这一技术来取款、购买燃气、租影碟及网上购物。事务处理系统的工作原理具体是怎样的呢?这一问题曾经只有商用数据处理领域的计算机专业人员感兴趣。但是现在随着事务处理在经济领域的广泛使用,各个领域的工程师们都对此有兴趣。尽管如此,专业人员却难以找到可读性强的、技术内容充实的、介绍这一复杂技术的书籍。而本书填补了这一空白。一 绝大多数大规模事务处理系统的软件环境都基于事务中间件,事务中间件有助于将很多软件组件联合起来。这些组件包括驱动Web浏览器和其他设备的前端应用程序,将请求路由到能够运行它们的服务器的中间层应用程序,以及执行事务逻辑的服务器应用程序。常见的事务中间件包括IBM的CICS、Microsoft的.NET. Enterprise Services,以及Java:Enterprise Edition产品,如IBM Web Sphere Application Server、Oracle的Web Logic Servei和Red Hat的JBoss. Application Server。本书的前半部分着重介绍事务中间件技术。对很多软件工程师而言,事务中间件在技术上比较晦涩难懂,此技术是他们不太熟悉的一种软件粘合剂,需要用到的技术似乎不只是操作系统、数据库系统、通信系统和应用程序设计语言。本书通俗地介绍了事务中间件,解释了事务中间件对事务处理系统的性能、安全性、可扩展性、可用性、可管理性和易使用性所起的作用。本书的前半部分详细地介绍了事务中间件,包括事务中间件为应用程序编程人员提供的特性,以及如何构造事务中间件来提供这些特性。事务抽象本身在很大程度上是通过数据库系统实现的。数据库系统确保每个事务作为一个整体而执行,确保每个事务不受其他事务的干扰,确保每个事务生成的结果在硬件和软件发生故障的情况下能够保留下来。此行为是通过锁定、写日志、通信协议和复制等技术实现的。这些技术是本书后半部分的主题。本书介绍事务处理,旨在满足广大读者的需要,包括以下读者。
内容概要
《国外计算机科学经典教材:事务处理原理(第2版)》为从事于应用程序开发、产品评估、系统设计、数据库管理和产品工程化等工作的各类人员提供了清晰、简明的指导。可帮助读者理解事务处理系统的内部情况,并描述了它们的工作原理以及如何最佳地使用它们。包括应用服务器的体系结构、事务通信范式,以及事务故障和系统故障的恢复机制。 书中第1版发行以来的这些年,事务处理系统的使用已经发生了很大的变化。电子商务已经成为业务数据处理投资的主要焦点。例如,网上银行和网上股票购买、eBay}8卖,以及企业数据库管理。新的标准、新的技术和产品,以及新的语言允许Web服务、REST./HTTP禾oSOA成为企业应用程序设计的主导风格。借助于《国外计算机科学经典教材:事务处理原理(第2版)》及其丰富的示例,读者能够开发、集成、部署和管理最高水准的事务处理应用程序。为系统专业人员完整地修订了经典的非数学事务处理参考文献内容进行了更新,重点放在通过互联网进行事务处理的需求上——这是通过Web服务器、SOA以及重要的TP技术和标;隹进行的业务数据处理投资的重点内容保留了第l版实用、深入和全面的技术基础,并对所有主题进行了扩展,包括事务中间件、业务流程管理、事务同步和数据库复制。
作者简介
作者:(美国)伯恩斯坦(Philip A.Bernstein) (美国)纽克默(Eric Newcomer) 译者:战晓苏 马严Philip A. Bernstein是微软公司的首席研究员,撰写了关于数据库和事务系统的150多篇技术性文章。以前曾是DEC公司事务处理产品组的首席架构师和哈佛大学的教授。他当选为美国计算机协会(ACM)的院士,同时也是美国国家工程院院士。Eric Newcomer是工作于Progress Software公司CTO办公室的独立顾问。以前曾是IONA科技公司的CTO和]DEC公司的TP架构师。他对多个企业软件的产品和标准起了促进作用。
书籍目录
第1章 介绍1.1 基础知识1.1.1 问题1.1.2 什么是事务处理1.1.3 事务处理应用程序1.1.4 事务程序的主要功能1.2 TP系统的体系结构1.2.1 面向服务的计算1.2.2 硬件的体系结构1.3 原子性、一致性、隔离性和持久性(ACID)1.3.1 原子性1.3.2 一致性1.3.3 隔离性1.3.4 持久性1.4 两阶段提交1.5 事务处理性能1.5.1 Rpc.A和FPC.B基准1.5.2 TPC.C基准1.5.3 TPC.E基准1.6 可用性1.7 系统样式1.7.1 批处理系统1.7.2 实时系统1.7.3 数据仓库系统1.7.4 其他系统类型1.7.5 为什么要设计TP系统1.8 TP系统配置1.9 小结第2章 事务处理抽象2.1 介绍2.2 事务2.2.1 集合事务括号2.2.2 事务标识符2.2.3 链式事务2.2.4 面向对象编程中的事务括号2.2.5 嵌套事务2.2.6 异常处理2.2.7 保存点2.2.8 使用保存点支持嵌套事务2.3 进程和线程2.3.1 为什么需要线程2.3.2 实现线程2.4 远程过程调用2.4.1 事务RPC2.4.2 绑定客户机和服务器2.4.3 RPC走查2.4.4 RPC的系统特性2.4.5 如何比较RPC系统2.5 共享状态2.5.1 事务上下文2.5.2 会话2.5.3 无状态服务器2.5.4 有状态应用程序2.6 可伸缩性2.6.1 扩展服务器2.6.2 扩展系统2.7 小结2.7.1 事务括号2.7.2 进程和线程2.7.3 远程过程调用2.7.4 共享状态2.7.5 可伸缩性技术第3章 事务处理应用程序体系结构3.1 介绍3.2 应用程序体系结构3.2.1 多层体系结构3.2.2 面向服务的体系结构3.2.3 面向对象设计3.2.4 简单请求3.3 前端程序3.3.1 前端程序层次3.3.2 使用表单和菜单收集输入3.3.3 构造请求3.3.4 记录3.3.5 Web服务器3.3.6 Web服务器的状态管理3.3.7 认证与加密3.4 请求控制器3.4.1 指定请求控制器功能3.4.2 事务括号3.4.3 请求完整性3.4.4 进程结构3.4.5 会话结构3.4.6 安全性..3.5 事务服务器3.6 事务中间件3.7 数据库服务器与事务中间件3.8 小结第4章 队列化的事务处理4.1 为什么使用队列4.2 队列事务处理模型4.2.1 从服务器的角度看排队4.2.2 从客户端的角度看排队4.3 客户端恢复4.4 处理不可撤消的操作4.5 队列管理器4.5.1 对队列消息的操作4.5.2 路由选择4.5.3 调度器4.6 发布.订阅4.7 其他面向消息的中间件4.7.1 基于代理的体系结构4.7.2 基于总线的体系结构4.7.3 比较代理与总线4.8 队列式产品和标准4.8.1 IBM的Web Slphere MQ4.8.2 Oracle Streams AQ4.9 小结第5章 业务流程管理5.1 介绍5.2 业务流程定义5.3 业务流程的执行5.4 事务特性5.4.1 隔离性5.4.2 原子性5.4.3 持久性5.5 使流程状态持久5.5.1 使用专用的运行时系统5.5.2 使用队列请求5.5.3 伪会话5.5.4 使用日志5.6 业务流程的其他模型5.7 产品和标准5.7.1 Web服务业务流程执行语言5.7.2 SQL Server服务代理5.8 小结第6章 锁定6.1 介绍6.1.1 正确性和两阶段规则6.1.2 事务只通过读取写入来交互6.1.3 保持事务握手6.1.4 自动锁定6.2 实现6.2.1 锁管理器6.2.2 锁的设置和释放6.2.3 粒度6.2.4 多粒度锁定6.3 死锁6.3.1 死锁预防6.3.2 死锁检测6.3.3 选择牺牲品6.3.4 分布式死锁检测6.4 性能6.4.1 锁转换6.4.2 锁抖动6.4.3 锁定性能的数学模型6.5 热点6.5.1 延迟操作直到提交6.5.2 乐观方法6.5.3 批处理6.5.4 分区技术6.6 查询一更新问题6.6.1 数据仓库6.6.2 隔离度6.6.3 多版本数据6.6.4 多版本实现的细节6.7 避免幻象6.8 乐观并发控制6.9 B.树锁定6.9.1 B+树6.9.2 B+树的插入6.9.3 树锁定6.9.4 B.链接优化6.10 多粒度锁定6.11 嵌套事务的锁定6.12 小结6.13 附录:基本的可串行性理论6.13.1 历史等价6.13.2 可串行性定理6.13.3 两阶段锁定定理第7章 系统恢复7.1 系统故障的原因7.1.1 强化环境7.1.2 系统管理7.1.3 硬件7.1.4 软件7.2 系统恢复的模型7.2.1 检测进程故障7.2.2 客户端恢复7.2.3 服务器恢复7.2.4 基于检查点的恢复7.2.5 基于事务的服务器恢复7.2.6 无状态服务器7.3 数据库恢复概述7.3.1 故障类型7.3.2 恢复策略7.4 系统模型7.4.1 锁定假设7.4.2 页面粒度操作7.4.3 存储模型7.4.4 日志7.5 数据库恢复管理器7.5.1 实现异常终止7.5.2 实现提交7.6 影式分页算法7.7 基于日志的数据库恢复算法7.7.1 实现提交7.7.2 实现异常终止7.7.3 实现重启7.8 在基于日志的算法中优化重启操作7.8.1 模糊检查点技术7.8.2 操作日志化7.8.3 用户技巧7.9 媒介恢复7.9.1 镜像硬盘7.9.2 归档7.10 小结第8章 两阶段提交8.1 介绍8.2 两阶段提交协议8.2.1 假设8.2.2 准备就绪8.2.3 协议8.2.4 性能8.2.5 阻塞8.3 故障处理8.4 优化和变化8.4.1 再感染8.4.2 协调转移8.4.3 阶段零8.4.4 推定异常终止8.4.5 只读事务8.4.6 合作终止协议8.5 进程构成8.5.1 独立事务管理器8.5.2 列入事务中8.5.3 进程树模型8.6 用户一览表8.7 小结第9章 复制9.1 介绍9.2 复制的服务器9.2.1 主一备份模型9.2.2 复制资源9.2.3 复制具有共享资源的服务器9.3 在复制数据和更新间同步9.3.1 单副本可串行性9.3.2 复制更新9.3.3 复制请求9.4 单主站主副本复制9.4.1 正常的操作9.4.2 故障和恢复9.4.3 具有多个从副本的主副本的恢复9.4.4 一致性、可用性和分区兼容性9.5 多主副本9.5.1 分区操作可能十分有用9.5.2 多主的更新传递9.5.3 非盲更新9.5.4 使用版本矢量检测复制冲突9.5.5 冲突解决方案9.5.6 维护版本矢量9.5.7 版本矢量的更新规则9.5.8 简化的版本矢量更新规则9.5.9 示例回顾9.5.10 再次讨论一致性、可用性和分区兼容性9.5.11 MicrosoftSyncFramework9.6 其他复制技术9.7 数据共享系统9.7.1 锁定9.7.2 高速缓存9.7.3 记入日志9.8 小结第10章 事务中间件产品和标准10.1 介绍10.1.1 事务中间件的发展趋势10.1.2 事务中间件编程模型10.1.3 Java EE与.NET Framework10.2 Web浏览器前端程序10.3.NETFramework10.3.1 开发前端程序10.3.2 开发请求控制器和10.3.3 REST/HTTP支持10.3.4 WCF部署选项10.3.5 使用System. Transactions进行事务管理10.3.6 显式编程模型10.3.7 与遗留TP监视器的集成10.4 Java企业版10.4.1 开发前端程序10.4.2 REST支持10.4.3 开发请求控制器和事务服务器10.4.4 使用Java进行事务管理10.4.5 与遗留TP监视器的集成10.4.6 Spring事务10.5 面向服务的体系结构10.5.1 基于Web服务的SOA10.5.2 基于REST/HTTP的SOA10.6 持久抽象机制10.6.1 ODBC和JDBC10.6.2 存储过程10.6.3 JPA10.6.4 ADO.NET和ADO.NET实体框架10.7 遗留的TP监视器10.7.1 CICS事务服务器10.7.2 IMS10.7.3 Tllxedo10.7.4 ACMS10.7.5 PathwayTS/MP10.8 TP标准10.8.1 Web服务.事务10.8.2 XA接口10.8.3 对象事务服务10.8.4 JTA10.8.5 服务组件体系结构10.8.6 OSGi联盟10.8.7 高级消息队列协议10.9 小结第11章 未来的发展趋势11.1 介绍11.2 云计算11.3 可伸缩分布式计算11.4 存储技术11.5 流和事件处理11.6 小结缩略语表参考文献说明参考文献
章节摘录
插图:
编辑推荐
《事务处理原理(第2版)》:为系统专业人员完整地修订了经典的非数学事务处理参考文献内容进行了更新,重点放在通过互联网进行事务处理的需求上——这是通过Web服务器SOA以及重 要的TP技术和标准进行的业务数据处理投资的重点内容保留了第1版实用、深入和全面的技术基础,并对所有主题进行了扩展,包括事务中间件、业务流程管理、事务同步和数据库复制
图书封面
图书标签Tags
无
评论、评分、阅读与下载