• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 探索SQL Server 2005面向服务的数据库架构

探索SQL Server 2005面向服务的数据库架构

录入:edatop.com     点击:

  上图中向我们提供了一个重要的细节—事务中的每一个结点都在以各种形式接收、存储和传输数据。有时这些数据是"短暂"的,而有时每个结点可能会把数据存储到一个缓存或其自己的本地数据库中。

  基于在一个应用程序中的这些新的数据处理方式,如今,处于SOA应用程序核心位置的数据库面临着一些与以往N层应用程序不同的挑战。但是,数据一致性仍然同以往一样重要;不过,现在又出现了其它的要求:

  1.数据库操作处于一种新的环境—数据请求经由基于XML的消息而不是通过专用连接方式进行;

  2.缓冲数据仓库部分需要了解何时刷新数据更为有效,而不是根据某个固定时间表实现刷新;

  3.数据库不得不参与以一种固定顺序发生的"对话";

  4. 存在复杂的逻辑必须宿主在数据库中(或宿主在这些数据库附近)。

  今天,XML成为一种应用于新一代分布式系统的良好的消息格式。这种格式能够为几乎任何系统容易地分析并通过某种模式建模语言来定义这些数据的适当结构。于是,交换消息的系统可以把信息依附到一条XML消息中;结果,当这些消息"流经"系统时,数据将"汇集"于消息中。系统只需分析和处理它们能够理解的部分而忽略掉其它内容。简言之,设计XML的目的是为了作为一种灵活的格式来支持分布式系统。

  微软的架构师们正是看到了这种结构化趋势,及时地推出了新一代SQL Server 2005以满足这种新的挑战;而同时,SQL Server 2005仍能继续支持许多现有的非SOA应用程序。本文中,我们将全面探讨如何在一个使用SQL Server 2005的SOA应用程序中应用本地Web服务存取,数据库改变通知,Service Broker以及SQLXML等技术。

  三、 SQL SERVER 2005适应SOA数据要求

  随着我们对SOA概念的不断深入,有一个问题越来越明晰:组成整个系统的每一个组件都会把接收、处理与传送数据作为自身的主要功能之一。即使一个服务提供者对于一条发送自某个服务消费者的消息的响应只是简单地进行"位"设置(置为"on"或"off")而根本不必与一个数据库交互,此提供者也必须处理该消息中的数据以便确定相应的任务。事实上,现代商业应用程序通常会广泛地与数据打交道;所以,对于一个SOA组件来说,常常会存取一个本地的或集中的数据库,或经常二者兼有。
  SQL Server 2005提供了一组新的特征来进一步方便集成化结构化设计—支持把数据库作为一个SOA服务提供者使用。微软SQL Server 开发小组称这组新的特征为"面向服务的数据库架构"(或简称为"SODA")。

  直接在数据库引擎中实现SOA特征存在如下重要理由:

  调整系统规模。即使在最大的企业SOA应用程序中,单个服务也可能按几乎任何规模被实例化;一个使用不太频繁的服务有可能具有比一个典型的小型部门数据库更少的活动。与SQL SERVER集成到一起意味着,一个服务程序可以利用所有的本地支持来适应从嵌入式设备到最为丰富的企业数据库服务器,而不必改进管理复杂性。服务逻辑代码可以在任何规模下执行,而任何实现都可以在发布时刻被调整到一个单独的中间层中。借助于SQL SERVER 2005,服务逻辑可以在数据层上运行或者被发布到中间层中。如果你仔细地设计一个应用程序,那么你会注意到,如何调整的问题将会是一种发布决策而不是一项设计或开发时刻决策。
  按比例调整。你可以通过许多方式来按比例调整以数据中心的计算,通常以按比例调整数据库或通过使用面向服务的架构的方式来分布这些处理。按比例调整数据库将会导致一个数据库簇—而它是紧耦合的;而相比之下,面向服务的方案导致更为松弛的耦合度。直接通过数据库支持SOA的构建有助于减少在一个真正的网格方案中的组件处理问题。
  消息作为数据。各种请求和响应消息都成为一些"有趣"的数据—把它们存档到一个数据库中可能有重大价值。保持这些消息长时间可用则为我们提供了一种历史数据,从而便利了以后的审计和事务分析。因为消息存储在表格中并且有系统目录视 图可用,所以你可以很容易地使用Transact-SQL来观察任何系统部分的状态。
  在SQL SERVER中实现SOA特征存在大量的优点。也只有这样,它才有理由充当一个SOA应用程序中的一个独立的服务提供者。为此,它必须能够实现类似一个服务提供者的行为。

  对于SQL Server 2005(或任何数据库引擎)来说,要承担起作为一个独立的SOA服务程序的角色,它必须实现若干超出其本地数据处理能力的特征:

  端点(End Point)支持。SODA提供者必须提供通信支持以接收和传输消息。典型情况下,这可以通过一个TCP套接字,HTTP GET或PUT,SOAP端点,或其它类型的端点实现。
  过程服务请求。大多数SOA消息要使用XML方式加以格式化;因此,服务提供者必须能够处理并且可能要把打包的数据转换成其它形式以满足组成服务的组件的需要。它还必须能够参与复杂的对话和会话—而它们将作为相互依赖的消息由其它组件接收或发送到这些组件。
  服务逻辑宿主。提供者必须能够执行要求的任何复杂程度的逻辑来处理消息并提供必要的响应,而且还可以协调若干其它服务的输入;而这可能要求普通的应用程序服务器任务,例如对资源进行"池"存储,激活,以及按规模调整处理逻辑。
  SQL SERVER 2005中的各种新特征为这些功能提供了支持;此外,还提供了其它基础性结构来支持数据管理。例如,一个服务提供者必须安全地加入到一个SOA系统中,并且能够对客户端实现认证,而且提供凭证来实现对其它实体的认证,提供持久性,参与会话和事务及其它应用程序级特征。

  SQL Server 2005建立在SQL Server 2000关系数据库引擎特征之上,以及自从它的最初发行版本以来所开发的新技术(例如SQLXML 3.0,通知服务以及其它工具),从而全面实现了面向服务的数据库架构。

  四、小结

  本篇中,我们仅粗略地分析了SOA出现的缘由及其对数据存储的新要求,并进而简要概括了SQL Server 2005对这种新式数据要求所提供的支持。在下篇中,我们将展开SQL Server 2005对SOA架构支持的全面探讨。

上一篇:CTO必须牢记的十大服务器管理错误
下一篇:用路由记录网内用户访问过的网站

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图