目录
三、微软云关系数据库SQL Azure
(一)SQL Azure概述
SQL Azure是微软的云中关系型数据库。SQL Azure数据库简化了多数据库的供应和部署。SQL Azure还为用户提供了内置的高可用性和容错能力。SQL Azure提供了关系型数据库存储服务,包含三部分:
- SQL Azure数据库:提供了一个云端的DBMS,这使得本地应用和云应用可以在微软数据中心的服务器上存储数据。
- SQL Azure报表服务:SQL Server Reporting Service(SSRS)的云化版本。主要是用SQL Azure数据库提供报表服务,允许在云数据中创建标准的SSRS报表。
- SQL Azure数据同步:允许同步SQL Azure数据库和本地SQL Server数据库中的数据,也能够在不同的微软数据中心之间同步不同的SQL Azure数据库。
(二)SQL Azure关键技术
SQL Azure除了提供SQL Azure数据库服务外,还提供报表服务和数据同步服务。
1、SQL Azure数据库
SQL Azure数据库是SQL Azure的一种云服务,提供了核心的SQL Server数据库功能。SQL Azure 数据库支持TDS和Transact-SQL(T-SQL)。SQL Azure数据库提供的是一个基于云的数据库管理系统。
在创建一个部署在Windows Azure的应用中,用户使用了SQL Azure数据库,这个应用可以运行在企业数据中心或移动设备上。SQL Azure数据库应用能够使用任何现有的SQL Server客户端,也可以使用SQL Server中的大量工具。
每个SQL Azure账户都拥有一个或多个逻辑服务器。每台服务器都拥有多个SQL Azure数据库。用户可以自由地使用SQL Azure数据库。
SQL Azure与SQL Server的差别:
- 劣势:
① SQL Azure省略了SQL Server中的一些技术点。
② 用户没有底层管理功能,所有管理功能都由微软实现。
③ 用户不能直接关闭自身运行的系统,也不能管理运行应用的硬件设施。 - 优势:
① SQL Azure运行环境比较稳定。
② 应用获取的服务比较健壮。
③ 存储的所有数据均备份了3份。
2、SQL Azure报表服务
基于SQL Server报表服务(SSRS,SQL Server Reporting Services)实现SQL Azure报表服务。现在SQL Azure Reporting主要有两个使用场景。第一,SQL Azure报表创建的报表可以发布到某一个门户上,云端用户可以访问这个门户的报表,也可以通过URL地址直接访问报表;第二,ISV(Independent Software Vendor,独立的软件开发商)能够嵌入发布到SQL Azure报表门户的报表。
3、SQL Azure数据同步
为了提高存储数据的访问性能,同时确保网络发生故障时应用仍然能够访问数据库,需要在本地拥有SQL Azure的数据库副本,微软使用了SQL Azure数据同步技术。
“轮辐式(hub-and-spoke)”模型,所有的变化将会首先被复制到SQL Azure数据库“hub”上,然后再传送到其他“spoke”上。
上述的同步过程可以同步整个数据库,也可以只同步有更新的数据库表格。
(三)SQL Azure和SQL Server对比
1.物理管理和逻辑管理
- SQL Azure能够自动复制所有存储的数据以提供高可用性。
- SQL Azure还可以管理负载均衡、故障转移等功能。
- 用户不能管理SQL Azure的物理资源。
- SQL Azure不能使用SQL Server备份机制。
2.服务提供
- 部署SQL Azure时,准备和配置所需要的硬件和软件均由SQL Azure服务程序来执行。
- 用户在Windows Azure平台上创建了一个账户后便可以使用SQL Azure数据库。
- 每个SQL Azure订阅都会绑定到微软数据中心的某个SQL Azure服务器上。
3.Transact-SQL支持
- SQL Azure中由微软进行物理资源的管理, SQL Server Transact-SQL语句都有一些参数并不适用于SQL Azure。
4.特征和类型
- SQL Azure不支持SQL Server的所有特征和数据类型。
- SQL Azure提供物理管理,会锁住任何试图操作物理资源的命令语句。
四、Windows Azure AppFabric
(一)AppFabric概述
AppFabric为本地应用和云中应用提供了分布式的基础架构服务。用户本地应用与云应用之间进行安全联接和信息传递。云应用和现有应用或服务之间的连接及跨语言、跨平台、跨不同标准协议的互操作变得更加容易,与云提供商或系统平台无关。
AppFabric目前主要提供互联网服务总线(Service Bus)、访问控制(Access Control)服务和高速缓存服务,如图所示。
Windows Azure AppFabric的所有部件都是在Windows Azure的基础上创建的。其部件描述如下。
1、服务总线
通过云中应用公开的终端使公开应用服务变得简单,这个终端是可以被其他应用访问的。服务总线同样能够处理网络地址转换所带来的挑战,并且可以在没有打开新的公开应用端口的情况下通过防火墙。
2、访问控制
AppFabric访问控制服务简化了支撑身份认证的工作,同时也定义了一定的规则来控制用户的访问。
3、高速缓存
提升应用的访问速率,可以缓存这些经常被访问的信息,从而减少应用查询数据库的次数。
(二)AppFabric关键技术
1、服务总线
AppFabric中,服务总线(Service Bus)解决了这些问题,如图所示。一个WCF服务可以通过服务总线注册终端,然后由客户端发现和使用这些终端访问服务。
用户服务需要使用AppFabric服务总线的开放TCP连接显示终端,并保持这个连接一直处于开放的状态,这就解决了两个问题:解决问题一:服务总线上的开放连接可以路由到应用程序;解决问题二:通过连接将消息传回应用时防火墙不会阻止该消息。
服务总线充当了一个外部DMZ(Demilitarized Zone,隔离区)的角色,起到了间接阻止攻击的作用。
服务总线提供了一些有用的特征:
(1)支持消息缓冲:消息缓冲是通过一个简单的队列来实现的。不需要客户端直接响应服务。存储消息持久存放在磁盘上。存放的消息通常需要进行备份。
(2)多个WCF服务监听同一个URI:服务总线通过监听服务随机传播客户端请求,为WCF服务提供负载均衡和容错能力。
2、访问控制
- 应用接受来自多个IdPs发出的身份和常见声明的Token,而不是处理包含不同声明的各种Tokens。
- 访问控制是为一些IdPs提供支撑服务的,它同样可以对支持OpenID的IdP有效。
- 浏览器和其他客户端可以通过OAuth 2或WS-Trust请求AC Tokens。
- 为了创建应用,Windows开发者使用WIF(Windows Identity Foundation)接受AC Tokens。
- 访问控制的目标是为了使创建过程变得简单。
3、高速缓存
AppFabric高速缓存服务为Windows Azure应用提供了一个分布式缓存,同时为访问高速缓存提供了一个库。
高速缓存服务保存每个应用角色实例近期访问数据条款副本的缓存。如果应用需求的数据条款不在本地的高速缓存中,高速缓存库将会自动地连接高速缓存服务提供的共享高速缓存。高速缓存可以通过一些Windows Azure实例进行传播,每个实例都保存了不同的缓存数据。
在Windows Azure中,AppFabric高速缓存并不是缓存最近的访问信息。
Windows Server AppFabric与Windows Azure AppFabric之间最大的区别在于:Windows Azure AppFabric是一种服务,它不需要配置服务器和管理高速缓存,而且是面向多租户的,每个应用都可以获得实例。