在线客服

咨询热线

云存储环境下数据库系统的构建

作者: 刘志军 王爱红 杜志范

  摘要:本文对微软基于云计算的操作系统Windows Azure,以及构建云端关系型数据库服务的系统SQL Azure进行了介绍,并给出了使用SQL Azure管理下的数据库开发在Windows Azure环境下运行的应用系统方法,最后给出在SQL Azure下对数据库的进行操作的代码示例。
  关键词:云计算;云存储;Windows Azure;SQL Azure数据库
  中图分类号:TP393.4文献标识码:A文章编号:1007-9599 (2012) 02-0000-02
  Database System Construction under Cloud Storage Environment
  Liu Zhijun,Wang Aihong,Du Zhifan
  (Hebei Institute of Mechinery Electricity,Shijiazhuang054048,China)
  Abstract:This paper based on cloud computing of Microsoft operating system Windows Azure,and the construction of the clouds of relational database service SQL Azure system are introduced,and gives the use SQL Azure under the management of the database development in Windows Azure environment run the application system method,and finally gives the SQL Azure database to operate under the code examples.
  Keywords:Cloud computing;Cloud storage;Windows Azure;SQL Azure database
  一、序言
  云计算一般比较认同的定义是:云计算是分布式处理、并行处理、网格计算、网络存储和大型数据中心的进一步发展和商业的实现。利用云计算技术架构自己硬件和软件平台,所建数据中心资源只供内部利用,不对外界开放的云称为私有云;以即用即付的方式提供给公众的信息技术公司的云称为公共云。根据服务等级,目前主要提供三种层次服务为用户所用:将基础设施作为服务(IAAS)、将平台作为服务(PAAS)和将软件作为服务(SAAS)。
  云存储是与云计算同时兴起的一个概念。云存储一般包含两个含义:一:云存储是云计算的存储部分,即虚拟化的、易于扩展的存储资源池。用户通过云计算使用存储资源池。二:云存储指存储作为一种服务,通过网络提供给用户。用户通过不同方式来使用存储,如通过互联网开放接口,使得第三方网站可以通过云存储提供的服务为用户提供完整的Web服务;用户直接使用存储相关的在线服务,比如网络硬盘,在线存储,在线备份等服务;用户传送文件、或者服务商发布内容时的缓冲等。使用云存储一般按时间、空间或两者结合付费。
  云存储的使用是离不开云计算的,目前全球IT企业均在争相研发、推出自己云计算相关产品,被采用最多的主要有Amazon、IBM、Google、Windows等一些企业的云计算机产品,下面我们就以Windows提供的云计算为例说明。
  二、微软云计算操作系统--Windows Azure
  Windows Azure是由微软开发的一套云计算操作系统,用来提供云线上服务所需要的操作系统与基础储存管理的平台,是微软的云计算的核心组成元件之一,以及微软线上服务策略的一部份。Windows Azure也是专为在微软建设的资料中心管理所有服务器、网络以及储存资源所开发的一种特殊版本Windows Server操作系统。它具有针对资料中心架构的自我管理机能,可以自动监控划分在资料中心数个不同的分区的所有服务器与储存资源,自动更新修补程序,自动执行虚拟机器部署与镜像备份等能力。Windows Azure被安装在资料中心的所有服务器中,并且定时和中控软件Windows Azure Fabric Controller进行沟通,接收指令以及回传执行状态资料等等。
  Windows Azure本身的设计是负责处理大量分散式计算的工作,并且符合云计算的特性。因此应用程序在Windows Azure上可以自由设定一个或多个执行实体,并且利用Windows Azure平台的特性。应用程序可切割为处理用户接口服务的Web应用程序,以及专门处理后台计算或资料处理工作的服务应用程序,后端则可以用Windows Azure Storages或是SQL Azure数据库来管理储存资料。
  在Windows Azure平台上提供了三种不同的应用程序角色:Web Role、Worker Role、VM Role,分别代表不同的应用程序执行环境。不论是那个角色都可以设定一个以上的实例(instance),每个实例都是独立的虚拟机器,Windows Azure Fabric Controller中的Load Balancer(平衡负载器)会自动分配负载到不同的instance中。
  Windows Azure提供了三种不同格式的储存体服务(BLOB、Table、Queue),用来提供给Windows Azure上运行的应用程序储存信息使用。BLOB是用来储存档案、图片、视频、可执行文件、压缩文件等二进制格式的文件,基本上它的储存单位就是文件。Table是给具结构化资料的应用程序储存与管理的一种储存服务,它在Windows Azure储存区中会以Key-Value键值对方式储存,并且由Partition来切割在Windows Azure储存区的储存位置,它实际的资料是XML。虽然Table可以储存结构化的资料,但它并不是关系型数据库。Queue是一种先到先服务,或称为FIFO(先入先出)的储存服务,它可以允许应用程序将信息储存到队列中排队,然后由负责处理的应用程序(通常是Worker)从队列提取信息并处理以后,将信息从队列中移除。信息可以是字串或是最长8KB的二进制资料,队列经常会作为跨执行个体通讯以及工作切割通知的信息传递之用。
  三、云存储下的数据库--SQL Azure
  SQL Azure是由微软SQL Server 2008为主,建构在Windows Azure云端操作系统之上,执行云端运算的关系型数据库服务。其基底是SQL Server 2008,不过它是一个特殊设计的SQL Server 2008,并且以Windows Azure为基座平台,配合Windows Azure的特性。SQL Azure也是一种分散在许多实体基础架构与其内部许多虚拟服务器(Virtual Servers)的一种云端储存服务,外部应用程序或服务可以不用在乎数据库实际储存在哪里,就可以利用SQL Azure显露的SQL Server Fabric壳层服务以接受外部连接,并且在内部使用连线绕送(connection routing)的方式,让连线可以对应到正确的服务器,而且数据库是在云端中由多个服务器来提供服务,每一次连线所提供服务的服务器可能会不同,因此也可以保证云端储存的高度可用性(High availability)。
  SQL Azure架构在资料中心可分为三个部份:服务提供层(Service Layer)、平台提供层(Platform Layer)、基础建设层(Infrastructure Layer)。SQL Azure服务对外的供应模型是一台逻辑服务器(Logical Server),此服务器是由SQL Azure Gateway所显露,每一个Windows Azure的帐户都可以建立一台SQL Azure Server,就像在本地的SQL Server执行个体一样,但这个执行个体是在云端上执行且具有高可用性等特征的数据库服务器。每台SQL Azure Server都具有下列内容:
  1.DNS名称,用户端应用程序要使用这个DNS名称连入数据库。
  2.master数据库,存放登入信息(logins),服务器角色以及管理服务器所必要的动态管理透视表(Dynamic Management View)。
  3.SQL Azure防火墙,用来管理连入SQL Azure Server的连线来源。
  4.使用者数据库,每个数据库都有不同的计费标准,一台SQL Azure Server可以有多个使用者数据库。
  作为SQL Server版本Transact-SQL的子集,有些功能可以在SQL Azure上使用,如数据库索引管理与索引重建;触发程序;对数据库、表格、使用者与登入等的建立、修改与删除;用户自定义函数等。有些Transact-SQL特性不能使用,如分散式查询、数据库映射等。
  SQL Azure开发工具与管理工具基本上与SQL Server完全相同,但也有基于SQL Azure所发展的工具。开发人员可利用Visual Studio 2010的服务器管理员连接到SQL Azure Server并管理数据库与数据结构。SQL Server 2008(非R2)则可通过输入连线字串的方式连接SQL Azure Server,或是使用命令行工具sqlcmd.exe连到SQL Azure Server。
  SQL Server Management Studio可直接管理SQL Azure,除此之外,微软也在Windows Azure Portal中使用SQL Azure Database Manager管理数据库内的组件(如数据表,视图等组件)。
  SQL Azure Data Sync是微软开发作为云端(Cloud)与本地端(On-premise)资料同步化的服务,以Microsoft Sync Framework为基础的同步工具,可以在云端与企业内部或用户端(手持式装置或是电脑)进行资料的同步工作。
  云存储环境下,在本地对SQL Azure中数据库操作代码如下(以测试数据库HoLTestDB为例):
  1.通过SQL Server 2008 R2 Management Studio连接数据库服务器并连接至HoLTestDB数据库,并单击New Query按钮。
  2.执行如下语句,创建新数据表。
  CREATE TABLE HoLTestTable(MyRowID int PRIMARY KEY CLUSTERED)
  3.执行如下语句,以插入一些数据。
  INSERT INTO HoLTestTable VALUES (1)
  GO
  INSERT INTO HoLTestTable VALUES (2)
  GO
  INSERT INTO HoLTestTable VALUES (3)
  GO
  4.执行如下语句以检查插入是否成功SELECT*FROM HoLTestTable
  5.最后,删除该表DROP TABLE HoLTestTable
  四、总结
  Windows Azure是微软基于云计算的操作系统,主要目标是为开发者提供一个平台,帮助开发可运行在云服务器、数据中心、Web和PC上的应用程序。云计算的开发者能使用微软全球数据中心的储存、计算能力和网络基础服务。SQL Azure是微软基于Microsoft SQL Server 2008构建的云端关系型数据库服务。SQL Azure服务具有高可用性和可伸缩性的特点,并且提供多租户的服务。对于大多数开发者来说,它提供了熟悉的开发环境。使用SQL Azure管理下的数据开发在Windows Azure环境下的应用系统是今后发展的趋势所在。通过本文可以看到开发SQL Azure下数据库应用系统与开发本地数据库有着相同的开发过程,开发者无需学习新技术和新工具,对于SQL Azure管理下的数据库开发就可以迅速上手。
  参考文献:
  [1]周平.云计算及云存储的管理技术[J].上海电力学院学报,2010,10
  [2]晏强.云存储技术研究[J].计算机与信息技术,2011,12
  [3]周可.云存储技术及其应用[J].中兴通讯技术,2010,8
  [4]王平建.云存储中的访问控制技术研究[J].信息网络安全,2011,9
  [基金项目]2011年河北省科技厅科技项目,编码:112135127
  [作者简介]刘志军(1971-),男,工程硕士,副教授,计算机信息工程系副主任,九三学社社员,研究方向为互联网技术,计算机网络通信。

转载注明来源:https://www.xzbu.com/8/view-2275035.htm