SQL Server XML 和 Web 应用体系结构(二)

2016-01-29 17:05 9 1 收藏

SQL Server XML 和 Web 应用体系结构(二),SQL Server XML 和 Web 应用体系结构(二)

【 tulaoshi.com - SQLServer 】

写入方物理体系结构

SQL Server XML 模板经过高度流程化,能尽可能高效地通过 HTTP 访问数据库。为此付出的代价是功能集受到限制。在模板中找不到所需功能的情况下,SQL Server 的专用 ISAPI 应用被替换为 ASP、ASP 和 COM+ 的组合或自定义的 ISAPI 应用。

本节中说明的体系结构适用于您的页面要执行下列操作的情况:

访问多个服务器上的数据库


处理在设计时未知其格式的 HTTP 请求


调用 COM/COM+ 对象


使用 COM+ 事务


连接至 Internet 上的任何应用或 Web 服务,例如付款提供程序


图 4:写入方体系结构

Web 层上的代码表示应用功能的四个层——数据访问、业务逻辑、工作流和表示。在开发应用时,请确保此代码与体系结构保持一致。这可使代码的可读性更高,也更易于维护。如果决定单独使用 ASP,脚本类的效率会更高。如果在业务逻辑层或工作流层有大量复杂的处理,对这些层使用 COM+ 组件可能速度更快。相反,对于处理量相对较小的情况,使用脚本可能速度更快。

这种新体系结构更出色的原因是,所有层(从数据到表示)都使用 XML 来传输和存储信息。数据库中的存储过程使用这些新功能来读写 XML。数据访问层利用 ADO 2.6 流与数据库进行高效、基于 XML 的通讯。

更新颖的方法是将某些中间层下移到数据库中。

以数据库为中心的体系结构
Duwamish Online 体系结构基于这样一种设想:因为数据库的可伸缩性最低,它应该设计成执行尽可能少的任务。分布式分区视图等新功能允许在多个服务器之间分担工作量,从而提高了数据库的可伸缩性,使开发人员可以选择将大部分工作放在何处。

如果选择将“脚重”服务器群集(数据库方面功能更强)与 SQL Server XML 体系结构一起使用,则另一种方法是使用与 n-层组件的分层方式相似的方式来对数据库中的存储过程进行分层。要实现这一点,必须有好的编程方法,例如选择适当的数据结构和尽可能避免重复代码。



图 5:以数据库为中心的体系结构

这种体系结构中的表示层还包含用于访问数据库中的存储过程的代码。此代码可能与传统数据访问层中的代码相同。但是,调用此代码时数据访问层可能会出错,因为这些例程调用工作流层提供的接口。

在使用存储过程进行开发工作时应该小心避免出现缺陷。让我们先来看一个设计,这个设计使用了几个智能存储过程,它们先执行该层的公共任务,然后再执行在下一个层上继续执行其代码路径的逻辑切换。在工作流层中调用“智能过程”将对应于若干个不同的操作之一。此过程如下所示:

CREATE PROCEDURE
/* 这是一个智能过程,执行工作流操作 */
DoWorkflow
   /* Action 用于选择该调用的多个操作之一 */
   @Action nvarchar(255),
/* SomeOtherParameters 是一个占位符,用于工作流所需的其他输入 */
   @SomeOtherParameters ntext
AS
/* 执行工作流的公共操作 */
Execute SomeCommonWorkflowOperations
If @Action = N'Action1'
BEGIN
      /* 执行 Action 1 */
   Execute BusinessLogicAction1
END
Else If @Action = N'Action2'
BEGIN
      /* 执行 Action 2 */
   Execute BusinessLogicAction2
END
GO

第一次调用此过程时,SQL Server 优化执行恰好第一次运行的任何代码路径。这使其余代码路径的运行效率降低,尽管它们的成本可能更高或者使用的频率更高。

为确保优化执行所有代码路径,可为每个操作创建一个单独的过程,尽可能避免切换逻辑。为防止代码重复,所有层中多个操作共享的函数应该放在单独的过程中。当该设计产生大量过程时,优化可以大大提高应用的效率。

集成
Web 开发中最值得称道的一点是用户看不到实施过程。因此,本文中介绍的体系结构可以轻松地合并到单个应用中,而无需用户参与。下面是一些准则,可以帮助您更轻松地集成应用的不同部分:

在整个应用中使用 XML。XML 可以用于任何技术中,可以使用 XSL 样式表轻松地进行转换,还可以毫无困难地存储在任何地方。SQL Server XML 使得在您的应用中使用 XML 比以前更容易。


尽可能分解代码。
使用 XSL 样式表来转换 XML。可以在模板、COM+ 组件和一段脚本之间方便地共享同一个 XSL 样式表。


当脚本执行多个函数时,使用脚本类分解代码。


在数据库方面,始终使用存储过程进行数据访问。它们不仅易于维护,而且比未编译的 SQL 查询执行速度快得多。
影响
本节说明使用新的体系结构对于您的应用在“功能”和性能方面有何影响。

可编程性
可编程性是指容易编写应用代码。通常反映在开发应用的时间而不是功能方面。以 Duwamish Online 应用为例。该应用的五个层是通过一组完全不同的技术来实现的。表示层使用了 C++(用于缓存组件)和 Web 技术(例如 XML、X

来源:http://www.tulaoshi.com/n/20160129/1500296.html

延伸阅读
标签: Java JAVA基础
Java语言拥有三大特征:平台无关性、网络移动性和安全性,而Java体系结构对这三大特征提供了强大的支持和保证,本文着重介绍Java体系结构对支持信息安全的原理和使用方法。 Java体系结构 Java的体系结构如下图所示,首先Java的源代码Java文件由编译器编译成Java的二进制字节码class文件,然后class文件由Java虚拟...
标签: PHP
  很久以前我就想写这篇文章了,但是一直都没有时间。这里并不是想要告诉你怎样做,我希望它可以投石问路,和大家讨论一下如何开发一个好的、扩展性佳的web应用。 我从事开发已经有2-3年了,回望刚开始做的程序,真有点不相信是自己写的,现在我的web开发技巧已经得到了很大的提高,例如sourceForge(http://sourceforge.net/)就是...
比如: select * from table1 where name=''zhangsan'' and tID 10000 和执行: select * from table1 where tID 10000 and name=''zhangsan'' 一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前...
标签: Java JAVA基础
  最近已经有了很多相关的介绍,JSP正在成为一种卓越的Java技术,可用于创建动态Web应用程序。Java程序员之所以喜爱JSP有数不清的理由。有些人喜欢它为交互式页面带来的“一次编写,处处使用”的方式;还有些人欣赏它是因为它容易学习,并且使他们可以把Java作为一种服务器端脚本语言来使用。但更多的还都是因为一个共同原因――使用JSP的...
标签: ASP
       随着互连网应用的深入和发展,三层体系结构的应用模式也得到更多人的青睐。本文介绍了三层结构应用程序的概念和优点,并结合一个实例介绍了如何建立三层结构的ASP应用程序。      一、两层结构的ASP应用有何缺点   在Browser/Server 应用程序开发领域,微软公司的I...

经验教程

270

收藏

39
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部