1.3 把数据库作为应用服务器
在过去的十年里,网络应用程序的增加带来了程序内部的通信问题。这种宽松连接应用程序模型创建了一种将应用程序和服务器作为服务提供者的方法。本节说明为什么应用程序需要数据库。通过应用中一部分与另一部分之间的宽松连接,建立只对某些请求响应的专家数据库应用,来实现更强的扩展性。现代数据库系统成为越来越多的商业逻辑的容器。现代应用的自助功能已经将商业逻辑与数据更紧密地联系在了一起。事实上,并行处理请求和回应者的响应的最小单元是数据库处理的。这种连接模式的核心是复杂的应用系统很难操控。明智的做法是将所有的零碎细节放到容器中,尤其是在需要由ACID(Atomicity、Consistency、Isolation、Durability)所定义的基本处理质量时。
原子性说明数据库的更改必须遵循一个“全有或全无”的规则。每一个事务被称为“原子的”。如果事务的一部分失败,那么整个事务就失败了。
一致性说明只有有效的数据才会被写进数据库。如果事务执行时违反了数据库的一致性原则,整个事务将会回滚,而且数据库会恢复到了与这些规则相一致的状态。另一方面,如果事务成功执行的话,便使得数据库从符合一致性规则的一种状态变成符合一致性规则的另一种状态。
隔离性要求多个同时发生的事务不相互影响。
持久性保证了任何提交到数据库的事务都不会丢失。通过数据备份和事务日志来保证持久性,即使并发软件或硬件错误,事务日志也能便利地恢复提交的事务。
理论上讲,维护好关系型数据库管理系统(Relational Database Management System,RDBMS)中的数据,就能获得了更好的性能,更不用说很容易的维护了。在不违反ACID规则下处理事务的能力是把数据库作为应用服务器的核心价值。使这成为可能的因素是应用程序需要与理解或拥有状态数据的系统。通过使用事务和标识符,可以找到正确的信息或至少能确定其状态。SQL Server本身就是一种状态管理机器。
SQL Server 2005至少有3种应用服务器类型技术:通知服务(NS)、复制和最新的SQL服务代理(SQL Service Broker,SSB)。还有自带的Web服务和支持.net框架的能力。原先,应用服务器的目的是在数据库层和顾客表示层之间提供中间层桥梁。中间层包含着业务逻辑。应用服务器对表示层隐藏数据层。这就可以使业务逻辑封装在中间层。就是说每一层都是专门的、可扩展的,其他“能力”也随着每一层而变化。实际上,3层的应用软件很难做。此外,先进的硬件意味着可以利用更多的代码(意味着更多的应用程序)在单一的服务器上获取更多的值。随着业务逻辑被移到数据库中,可以从存储过程、查询和数据库视图中捕获时,就不再需要中间层了。多亏有了电子商务的变革,数据库才前所未有地出现在了表示层。
电子商务应用的设计途径反映了使用数据库的综合业务处理。电子商务带给我们一个结构模型,称为面向服务架构(Service-Oriented Architecture,SOA)。SOA可以松散地定义为互相通信的服务集合。数据库逻辑直接与业务逻辑相联系。此外,数据库对象还会预计哪些数据将被送到它们那里,以及哪些数据它们应该送回来。例如,许多信用卡处理服务使用Web服务来提交信用卡授权请求。回复数据库应用程序知道什么是有效数据并且知道怎样去处理这些数据。任何传给信用卡授权服务的数据,如果格式不对将会被拒绝。Microsoft版的SOA变化源于分布式组件对象模型(Distributed Component Object Model,DCOM)。DCOM是微软Windows操作系统的底层技术,也对现在的对象框架的补充—.NET .COM和.NET框架描绘了与源于面向对象程序设计(OOP)模型的计算机科学近似的现代系统。在面向对象程序设计中,创建对象并为它们提供方法与SOA非常相似。面向对象程序设计的核心是一段代码实现一个功能。这就意味着面向对象的本质是一种服务。SOA最深层的目的是使操作系统有用处。在商业应用软件中,服务的方法让我们做起事来就像下一个订单,运输一个盒子或得到信用卡的授权一样简单。在服务模型下是通信模型,它不像是人类的通信模型。在SQL Server 2005中,新的框架称作SQL服务代理,当并行封装商业处理和逻辑时,它允许产生消息和传输数据。
SQL Server 2005装载了一些可以在SOA型应用程序中利用的技术。第一个是SQL服务代理。这是一个新技术,它使得内部和外部的程序可以发送和接受有保证的异步信息。SQL服务代理垂直建立在SQL Server引擎中,允许在服务器内或服务器间产生消息。通过扩展Transact-SQL数据操作语言(DML)完成消息通知。SQL Server代理有强壮的结构来捆绑业务逻辑、传递消息和队列,并且拥有成功的事务通知平台所需的主要特征。在第4章中将深入了解服务代理。
第二个有趣的面向SOA的特征是内置的XML Web服务。业务逻辑和服务角色被封装在服务中,然后通过XML界面在Web展示。XML Web服务提供了一个强有力而且有趣的技术,将数据库扩展为SOA界面。在XML Web服务中有一个存储过程,它基本完成了一些业务角色。比如,过去你可能填过订购表格。现在,你可以在展出的存储过程中通过Web服务传递一个包含订购信息的XML负荷。XML Web服务是SOA通知的简化形式。SQL Server 2005中的Web服务展示存储过程和查询。Web服务并不是万能的,因为SQL Server引擎要经过一系列的处理步骤才能将XML转成更有用的状态。在SQL Server 2005中的XML Web服务默认是关闭的。在数据层中,另一种有趣的考虑SOA的方式就是.NET框架宿主。
SQL Server 2005作为.NET框架宿主的能力是相当有趣的。尽管很多数据库管理员(DBA)会发现公共语言运行时(Common Language Runtime,CLR)就是这样的技术,但它对于未来数据库的应用设计所赋予的意义是难以令人置信的。可以在第4章中读到关于.NET框架宿主的知识。现在,我们说可以从SQL Server 2005中新的数据类型、新集合、新的数据整形功能中获取新型的业务逻辑。
我相信未来会有越来越多的业务逻辑出现在数据库应用层代码中。随着人们在管理层和分析层的交互,未来将会出现越来越多的服务器对服务器的交互。简单地看看现今涌现的点对点的应用,如IP电视及RSS(Really Simple Syndication)所有这些复杂性和商业逻辑都需要数据系统7×24小时有效。SQL Server 2005在有效性方面提供了重大的新技术,接下来的一部分将会对有效性技术进行全面介绍。
| 回书目 上一节 下一节 |
|
· 第六章 你能帮我吗?.. · Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. |
· 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. |
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||