CyberSavvy用SQL Server2008创建自动化“数据库工厂”

互联网 | 编辑: 邹震 2008-09-04 14:30:00转载-投稿

    基本情况
  CyberSavvy 公司位于华盛顿州的Redmond, 该软件公司共有17名SOHO 办公的开发人员,分布于美国和加拿大。作为微软的合作伙伴以及微软的首选经销商,CyberSavvy 所开发的多款应用程序被微软的销售、市场、以及其他团队所使用。
  CyberSavvy 所开发的商业智能应用程序需要同数据库集成,该公司在这方面经验丰富,并且希望通过基于服务的平台来简化并自动化数据库设计和部署,从而降低成本。在实现其解决方案的过程中,最大的挑战是如何确保数据在服务器数据库和客户端桌面机或移动设备间同步时保持完整性,同时还需要考虑到多用户的并发连接以及脱机用户。
  最初该公司基于Web 服务来处理同步问题,但随后发现当对复杂的关系型数据连续进行插入/更新/删除操作时,会产生很多问题并且不稳定。如果任意一个步骤出现问题,则会导致整个同步过程的失败。当用户采用脱机方式工作了数天以后,再次尝试同步时,有可能会由于其所作的更改已经被其他人再次进行了更新,并最终导致同步失败,这将使得后续的操作全部失败。
  在公司能够为客户提供数据丰富的自动化解决方案之前,需要能够更好的确保数据在网络中的传输。由于该公司将数据库自动化服务作为应用程序来提供,因此需要更好的伸缩性、支持更多的数据类型、提供更好的安全性和加密功能、以及通过数据压缩来减少备份所需的空间。

  解决方案
  CyberSavvy 开发了DataPlace,该产品被公司称之为“数据库工厂”,它可以将所有复杂的流程以及数据库创建时的设计工作进行自动化,并在部署时为脱机用户采用Smart Clients. 客户描述他们希望用数据库做什么,然后在后台DataPlace 服务将在CyberSavvy 的服务器中创建数据库,然后将企业产品数据库通过互联网复制到客户的计算机中,该过程一般不超过5分钟。事实上,DataPlace 编辑器使用相同的复制方式实现客户设计需求同服务器自动化进程间的通信,从而使得用户在SQL Server 中创建新的架构时并不需要直接连接到服务器中。
  DataPlace 解决方案采用Microsoft SQL Server? 2008 企业版以及Windows Server? 2003 企业版作为服务端,并采用SQL Server 2008 Express 版作为客户端。DataPlace 利用SQL Server 合并复制功能,并通过IIS 6.0进行同步。采用复制方式可以让CyberSavvy 不再使用其早期产品中所采用的中间层的方法进行同步。
  DataPlace 包含一个智能客户端应用程序和一个 DataPlace 编辑器(同数据库一起下载到用户的计算机中)。智能客户端所包含的数据库设计器可以让用户更轻松的根据需求更改数据库的架构或其它属性。这些更改都将通过复制的方式传输到后台的服务器中,并通过服务端的DataPlace 应用程序来进行处理。只要客户端数据库处于打开状态,DataPlace 编辑器就可以自动检查复制更新,此外用户也可以定制自动检查更新的间隔。
  “DataPlace 能够成功实现得益于SQL Server 2008的强大功能以及SQL Server 合并复制所提供的坚如磐石的数据完整性,”CyberSavvy 公司总裁Peter Hammond 说道,“合并复制功能帮助我们解决了很多复杂问题,并可以通过网络以一种多用户、安全、可伸缩、且可重复的方式来处理数据。利用微软应用程序平台,我们可以将关系型数据库的优势带给最终用户。而这些用户往往需要使用关系型数据库,但却不知道如何创建及管理。”
  该解决方案只是CyberSavvy 公司未来展望中的一部分,它可以让企业从数据库解决方案中获益。
  “毫不夸张的说,利用我们的自动化系统,我们可以在5分钟之内为客户创建出企业级的数据库,”Hammond 说道,“我们的客户在不增加基础架构投资的情况下,即可享受SQL Server 2008 的所有好处,而他们只需要偶尔连接一下网络。”
   DataPlace 解决方案架构包括:
* 客户端数据库:SQL Server 2008 Express Edition 是DataPlace 解决方案中的重要组成部分,通过它可以对数据在本地进行存储、查询、以及生成报表,从而极大减少了C/S 结构所需网络流量。SQL Server Express 不需要额外的成本,是SQL Server 数据库产品中完全免费的一个版本,虽然如此,它依然能够提供其它版本的SQL Server 2008所具备的可靠性以及高性能。
* 服务端数据库:作为软件即服务(SaaS) 提供商,CyberSavvy 在自己的服务器中维护着客户数据库的一个副本。该公司在一个实例中支持超过200个客户,并采用SQL Server 2008 企业版作为数据库,采用 Windows Server 2003 标准版作为操作系统,并采用配置了英特尔4路双核Xeon 处理器及4GB 内存的Dell PowerEdge 2850 服务器。数据库当前的数据量为500G,并且在快速增长。
* 应用程序层:CyberSavvy DataPlace 应用程序共存于服务端数据库以及客户端数据库中。Database 编辑器软件集成在客户端计算机的SQL Server 2008 Express 中,并通过互联网同IIS 6.0以及SQL Server 2008 合并复制Web 同步组件来进行同步。
* 存储层:数据存储于Dell PowerVault SAN 阵列中,共有3.5 TB 的数据存储总量。通过SQL Server 2008所提供的备份压缩功能可以极大的提高存储效率。

  无论是个人开发者,还是诸如Lowe’s, Microsoft, 以及Spherion 这样的大型企业,DataPlace 都被证明非常受欢迎。
 
  好处
  CyberSavvy 利用SQL Server 2008以及其它微软应用程序平台(包括Microsoft .NET Framework),并采用微软最新的开发工具,在创建DataPlace 数据库工厂的过程中享受到了集成开发环境所带来的好处。不仅如此,该公司还享受到了SQL Server 2008所带来的一系列好处,包括利用备份压缩来降低存储需求,利用Service Broker 轻松实现自动化,利用FILESTREAM 数据类型来处理大文件,以及利用SQL Server 2008的可伸缩性来满足未来数据量增长的需求。
  集成化的数据库开发
  CyberSavvy 公司的解决方案需要坚固的关系型数据库作为基础,最终他们选择了SQL Server 2008。
  “我们的开发人员都有多年的相关经验,”Hammond 说道,“但由于SQL Server 2008可以同微软的其它开发工具以及技术进行紧密集成,因此我们的工作变得更加简单。” 在开发DataPlace 的过程中,CyberSavvy 公司利用了微软应用程序平台中所集成的高效开发环境,其中包括Microsoft Visual Studio? 2005 和Visual Studio 2008 Beta 2; 以及Microsoft .NET Framework 2.0 和3.0,从而实现同SQL Server 2008的紧密集成。
  “DataPlace 完美诠释了数据库解决方案应该做什么而不应该做什么,”Hammond 说道,“我们开发的所有应用程序都有一个最简单且最重要的原则,那就是坚固。 我们的客户需要完全相信其数据的安全性。对于我们来说,这意味着我们的解决方案所要采用的技术需要久经考验。这就是我们选择SQL Server 的原因。”
  作为一款利用.NET 技术的应用程序,客户端的DataPlace 编辑器可以更加精确的满足客户需求。“客户可以在我们所提供的基础架构之上利用.NET 技术创建自己的用户界面,并可以构建自己的应用程序,”Hammond 说道,“事实上,客户可以利用任何能够连接SQL Server 的技术来创建自己的应用程序。由于SQL Server 是一款非常流行的产品,因此几乎很少有技术人员不知道如何去连接SQL Server。”
  令CyberSavvy 公司最为兴奋的是,那些没有SQL Server 或其它数据库使用经验但熟悉Excel 或SharePoint 列表的客户,依然可以对CyberSavvy 公司的产品进行定制化。CyberSavvy 公司的开发人员创造性的利用了复制及后台应用程序逻辑来将客户端发起的操作传输到服务端的计算机中。
  “DataPlace 可以让那些对SQL Server 一无所知的人也能够进行添加新表、新列,更改列名以及其它数据库更改操作,”Hammond 说道,“他们所做的更改会以纯数据的方式复制到服务器中。随后服务器会通过我们所创建的一系列逻辑来检查并确定这些更改,然后自动扩展数据表架构以适应这些更改。”
  DataPlace 可以让用户的数据库满足其更新需求。
  “利用SQL Server 2008以及我们通过微软开发工具所实现的后台自动化,客户可以在没有一名开发人员的情况下来进行特定的数据库更改,”Hammond 说道,“快速提升架构非常重要,因为在传统的数据库开发过程中,我们不能很方面的确认是否有更改,而当需要允许进行更改的时候则需要花费大量的时间和成本。”

  降低存储需求
  SQL Server 2008 内置了备份压缩和数据压缩功能,使得CyberSavvy 公司可以减少SAN 中所存储的数据量。SQL Server 2008 数据压缩功能可以减少存储以及相应的I/O 开销,从而提升了硬件环境的可伸缩性。SQL Server 2008 备份压缩功能可以减少所需的备份数据量,从而显著降低基于磁盘的备份成本。此外,由于所需的磁盘I/O 有所降低,因此备份的速度得到了显著提升。
   “作为软件服务提供商,我们要进行大量的备份操作,”Hammond 说道,“我们所提供的服务等级要求我们每隔15分钟就进行一次增量备份,并且每天夜里都要进行数据库的完整备份。我们的备份数据量已经达到了1TB,因此只要能减少备份所需的磁盘空间,对于我们来说都是有帮助的。我们期待SQL Server 2008的备份压缩功能可以带来80%的压缩比。”

  利用Service Broker 轻松实现自动化
  CyberSavvy 公司的开发人员对于SQL Server 2008中Service Broker 的改进印象非常深刻。Service Broker 在SQL Server 2005中即被引入,它通过对普通T-SQL 数据操作语言进行扩展,让内部或外部进程发送并接收可靠且异步的消息。发送者将消息发送到同一个数据库的队列中,或者发送到同一个SQL Server 实例的另一个数据库中,亦或发送到同一个服务器或远程服务器的一个实例中。
  “Service Broker 在SQL Server 2008中更加完善,”CyberSavvy 公司的架构师Dan Dzina 说道,“Service Broker 更容易管理,并且相关技术文档也越来越多,它可以让开发人员依靠坚如磐石的SQL Server 关系型引擎来支持事务消息。”
  CyberSavvy 公司利用Service Broker 可以简化很多工作,这些自动化的工作在此之前是利用SQL Server 中的CLR 功能来实现的。随着 .NET Framework 3.5以及WCF和WWF 的不断改进,自动化的实现变得更加容易且更加组件化。这样就可以同外部服务更加灵活的进行交互,例如在飞机上即可实现对后台服务器中的活动目录进行管理或删除域账号。
  “我们利用Service Broker 和活动目录进行集成,这样就可以采用异步方式对其进行操作,而不会影响到SQL Server 进程,”Dzina 说道,“ Service Broker 对我们来说很有价值,因为我们需要实现很多自动化并且需要频繁对架构进行变更。Service Broker 将SQL 管理对象提供给我们的后端模型,从而极大简化了我们对自动化进程的管理。”

  利用FILESTREAM 来处理文件
  CyberSavvy 利用SQL Server 2008 中所支持的FILESTREAM 数据类型来简化对关系型和非关系型数据的管理。FILESTREAM 数据类型可以让二进制数据直接存储在NTFS 文件系统中,同时该数据依然是整个数据库的一部分,并且保持事务一致性。
  新引入的FILESTREAM 数据类型可以对二进制数据进行扩展,让通常利用数据库进行管理的二进制数据存储在数据库之外。在采用SQL Server 2008之前,CyberSavvy 公司不鼓励客户在数据库中存储文件。
  “利用FILESTREAM,我们可以通过相应API 在文件系统中体现出非关系型文件的价值,”Hammond 说道,“在SQL Server 2008 之前,我们也允许将文件存储在DataPlace 中,但只能采用varbinary(max)方式,另外我们还需要编写额外的代码来管理这些文件。”

  SQL Server 2008中可伸缩性的改进
  在将DataPlace 设计为数据库工厂并集中数据存储解决方案的过程中,CyberSavvy 需要高伸缩性的关系型数据库以满足大公司以及中小型企业客户不断增长的需求。
  “我们这么早就迁移到SQL Server 2008的一个重要原因是该产品的可伸缩性,”Hammond 说道,“我们非常成功的在一个实例中提供数百个数据库。我们当前的数据总量在500GB 并且有超过500个发布,预计数据总量很快会达到几个TB。我们可以满足企业级客户的需求,并且还没有发现在伸缩性方面遇到任何瓶颈。”
   采用复制的方式可以提供更多的空间用于实现可伸缩性,这是因为DataPlace 的查询和报表处理都是在客户端的数据库中利用SQL Server 2008 Express 版来完成的。
   “我们最大限度的发挥了性能和可伸缩性,主要是因为采用客户端来分担高负载的操作,而我们的后台服务器只负责进行复制,”Hammond 说道,“复制技术在SQL Server 2008之前其实已经很成熟了,这种强大的功能彻底改变了我们的业务模式 —从利用中间件传输数据改为采用复制技术。虽然我们还不能完全利用微软的复制技术,但依靠该技术我们还是可以在传输信息方面采用更加安全的方法,这样就可以让我们腾出更多的精力去关注客户所要实现的功能。”
  CyberSavvy公司在其DataPlace 软件即服务解决方案之上又开发了2款新产品。Project360° 是一款资源管理/时间跟踪的解决方案,而Enterprise Product Roadmap 解决方案则用来跟踪产品并生成动态PPT。
  “我们只用了几周的时间就按照客户特定的需求开发了这两款产品,而并没有花费数月时间,这远远提前于客户所规定的最后期限,”Hammond 说道,“DataPlace 在彻底释放SQL Server 能量的同时,缩减了进入市场的时间以及总体成本。最终,我们可以随心所欲的去关注客户的需求。”

  轻松实现加密
  SQL Server 2008中包含很多和安全性相关的功能,可以帮助企业保护数据,其中包括内置的数据加密功能。这种内置的加密功能提供了相应函数及API,从而可以非常方便的使用加密过的数据。
  DataPlace 采用一个简单的接口来定义需要加密的数据列并为用户动态创建非对称密钥,从而避免了实现加密功能的复杂性。通常加密需要数据采用二进制形式,但在DataPlace 中所有加密数据都在一个存储过程层面采用其原始类型,从而方便了应用程序层的展示。
  “如果你加密一个字符串、图片、甚至是一个字节的数值,DataPlace 都可以确保数据的正常展现,同时数据在表中则以纯二进制的方式通过加密进行保护,”Hammond 说道,“SQL Server Express 可以采用和服务器产品同样级别的安全性来管理这些加密密钥,从而可以为最终用户提供企业级的安全性。”

  迁移到SQL Server 2008的其它好处
  CyberSavvy 团队还指出了已经采用或即将采用的一系列SQL Server 2008 中的新功能,其中包括:
* 变更数据捕获:SQL Server 2008中新提供的变更数据捕获功能可以收集完整的变更信息,并将其放置在变更数据表中。该功能可以维护跨表间的一致性,甚至可以处理跨架构的更改。“我们迫切希望使用SQL Server 2008 中的变更数据捕获功能,因为我们正在通过自己开发的代码,利用镜像数据表来记录创建、修改、以及删除等操作,从而来实现相同的功能,”CyberSavvy 公司的数据库开发人员Joe Snitker 说道,“变更数据捕获功能采用相同的原理,但是其可伸缩性要强很多,它可以为我们带来很多好处。”
* MERGE 语句:MERGE 语句是SQL Server 2008中新引入的,它可以让开发人员更有效的处理常见的数据库管理任务,例如检查一行是否存在然后执行插入或更新语句。“这一点对我们来说非常重要,因为我们在解决方案中使用了合并复制,”Dzina 说道,“随着新的数据被复制,我们经常要按照条件批量处理更新、插入、以及删除等操作。因此MERGE 语句可以简化数据和流程的处理或跨表间的移动。该语句还可以更轻松的处理需要行级安全性的作业,从而避免了打开多个指针逐行查找数据来应用规则并决定哪些数据需要更新、插入、或删除。MERGE 语句可以避免很多类似的循环。”
* 集成化的全文搜索:SQL Server 2008 引入了集成化的全文搜索功能,该功能可以让用户在利用全文索引来提升文本查询性能的同时,使得全文搜索和关系型数据库之间实现无缝切换。“在推出全文搜索功能之前,我们需要采用存储过程来连接所有字段并将其传递给WHERE 子句,”Snitker 说道,“我们过去的解决方案根据字段的大小,可以扩展到10万行,但是我们依然很高兴可以放弃这些代码,转而采用SQL Server 2008中集成的全文搜索功能。”
* 稀疏列:SQL Server 2008 中的稀疏列功能可以让NULL 数据不消耗物理磁盘空间,从而在数据库中更有效的管理空数据。“任何能够减少存储空间的功能对我们都很有帮助,”Hammond 说道,“我们有很多数据表允许空值,因此稀疏列功能很有帮助。之前,任何数据都会消耗物理磁盘空间,而稀疏列可以避免这些空值占用磁盘空间。”

* 透明化的数据加密:SQL Server 2008 可以对整个数据库、数据文件、以及日志文件进行加密,而不需要对应用程序进行更改。“我们发现很多客户都对数据库加密很感兴趣,”Hammond 说道,“我们为客户提供列级别的加密,用户都认为这个功能简直难以置信!他们都很喜欢这个功能。”

  总而言之,CyberSavvy 利用坚如磐石一般的关系型数据库SQL Server 2008以及Visual Studio 2005 和.NET Framework 创建了灵活且可伸缩的数据库工厂,从而为客户提供了含金量更高的解决方案。该解决方案很好的利用了SQL Server 合并复制功能在运行SQL Server 2008 Express 版的客户端以及运行SQL Server 2008企业版的服务端之间传输数据以及架构更改。

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑