面向领域的数据访问平台的优化策略

2012-08-15 00:44王建霞
邯郸职业技术学院学报 2012年4期
关键词:数据源应用程序客户端

王 品 王建霞

(1邯郸职业技术学院电子信息工程系;2教务处,河北邯郸056005)

一、引言

随着网络的不断发展,同一领域的数据信息的共享与集成在网络环境下得以实现。如何实现领域内数据的共享成为本文研究的重要内容。由于领域内各部门的职能与工作方式各不相同,信息化程度也不尽相同,实现资源共享变得尤为重要。前台客户端经常需要从后台数据库中访问数据并在客户端显示与维护数据,常规的数据访问操作是利用ADO.NET从后台数据库中访问数据,再填充到数据集中的数据表里,并将存入数据表中的数据绑定到视图控件中(实际就是在网络中传输数据)。当多个客户端从后台数据库中访问的数据量非常大时,会使数据表中的数据量很大,在服务器端和客户端将消耗大量的内存空间来存放这些数据,同时,大量的数据在网络中传输时也会占用过多的网络带宽,从而降低了整个应用软件的性能。为了解决上述问题,需要优化常规的数据访问技术,减少访问的数据量,从而提高领域内应用软件的整体性能。领域内数据资源的共享就是对于平台内各种各样的数据库中存储的数据的访问,也就是对数据进行了添加、删除、修改和查询的各项操作,要想实现数据的无阻碍访问,必须要通过“数据访问技术”实施相互通信。随着访问技术的不断发展,操作更加简单,功能更加完善,数据访问速度也越来越快。

二、数据访问的模式

1.C/S模式,即客户端/服务器模式

客户端/服务器模式就是把领域内的任务合理地分配到客户端和服务器端,这样可以减少平台的系统开销,也可以把软件、硬件环境的优势充分发挥出来。C/S模式尽管是开放模式,但是需要针对不同的客户端操作系统的不同,安装不同的操作软件,由此并不能对客户实现真正的开放性。

2.B/S模式,即浏览器/服务器模式

随着网络信息的高速发展,平台用户的需求越来越高,资源信息共享的程度越来越强,B/S模式越来越受欢迎,在B/S模式下,不必去考虑用户机器安装的什么操作系统,也不必把软件程序安装到每个客户端,只需要用户安装了浏览器,同一领域内的用户,都可以访问新的和现有的应用系统平台,都可以对数据进行实时更新和处理,逻辑组件可以被不同的应用模块所共享。

领域内平台数据的业务处理一部分在前台实现,但主要的业务处理要在后台的服务器上进行处理,B/S模式利用先进的浏览器技术实现了C/S模式下需要复杂软件才能实现的操作。随着浏览器技术的发展,浏览器操作界面越来越直观,更关键的是对用户的操作培训要求大大降低,软件可操作性强。作为用户只要通过Web浏览器,都可以调用系统资源来完成各种业务处理,这样大大简化了客户端,系统维护与升级的成本和工作量减轻了,用户的总体拥有成本(TCO)降低了。

3.C/S模式与B/S模式区别与联系

C/S模式中,客户端需要具备一定的处理数据和存储数据的能力,需要把对应用软件的计算和数据合理地分配在客户端和服务器两端,网络通信量和服务器的运算量才能降低。由于服务器连接个数和数据通信量会受到一定的限制,C/S模式比较适合于局域网内数目不多的用户使用。

鉴于C/S模式的数据分布特点,客户端万一出现意外状况或突发事件,数据的安全性就会丧失。

另外,对于领域的异地软件的使用,C/S模式下,所需软件就要在各地安装多个服务器,并使多个服务器之间进行数据同步。照此看来,每个数据点上数据安全性都可能会影响整个应用的数据安全性。

在C/S模式的方案里,对于异地的同一领域内都采用在各地安装域级服务器,然后再要求数据的同步,这些服务器每天必须同步完之后,最终的数据才能传送到总部。由于个别数据库因为网络故障不能同步,数据就无法一致,不能用于决策。

C/S模式不可能看到实时数据,一般都是事后数据,有可能造成数据信息的流失。为了减少数据量,C/S模式仅仅上传中间数据报表,在总部不可能查到各分区机构的原始数据。

而对于B/S模式来讲,其数据集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也无需进行什么数据同步,所以平台内数据的安全自然不成问题。

B/S模式的数据是集中存放的,客户端发生的每一笔业务单据都直接进入到总部的数据库,不存在数据一致性的问题。它可以实时看到当前发生的所有业务,方便快速决策,有效地避免了企业损失。

综上所述可以得出:B/S模式有着比C/S模式无法比拟的优势,从国外的发展趋势来看,也验证了这一点。目前,国外大型企业软件要么已经是B/S模式,要么正在经历从C/S到B/S模式的转变,B/S模式的大型管理软件势必在将来的几年内占据管理软件领域的主导地位。

三、B/S模式下的数据访问技术

1.数据访问对象DAO

数据库,数据表,视图和索引的处理需要DAO来实现,使用DAO编程,可以访问并操作数据库,管理数据库的对象和定义数据库的结构等。

关系数据库系统结构的对象类的集合是由DAO数据模型来设计的,一个关系型数据库系统所需的全部操作的属性和方法也是由DAO来提供的,它负责完成管理数据库的创建,表的定义、表之间关系的建立,数据库添加、删除、修改和查询等操作。

2.ADO.NET

ADO.NET是用于数据访问的.NET Framework的组件,ADO.NET的一个优点是可以离线操作数据库,需要数据或更新数据的时候,应用程序才对数据源进行联机,这样可以提高应用程序的效率,尽可能减少应用程序对服务器资源的占用。

在应用程序和数据源之间起桥梁作用的是ADO.NET框架中的数据提供程序,对于从数据源中返回查询结果、对数据源执行命令、将数据集中更改传播给数据源都是ADO.NET框架中数据提供程序来完成的。

将检索关系数据存储在内存中是数据集和读数据操作,它们是ADO.NET的两个主要对象,内存中数据的关系表示形式、对数据进行排序并约束是数据集来实现的,对于数据流的快速读取由读数据来完成。

数据集主要完成以下任务:

1)数据集可以在多个离散表之间进行导航;

2)对于多个数据源进行数据传递;

3)可以对数据进行排序、搜索或筛选,重用同样的记录集合;

4)可扩展样式表语言转换或查询,使用XML操作对数据进行操作。

使用数据集可以被继承来创建一个强类型的数据集,对于设计类型的检查,强类型数据集语句的结束特有优势。数据集的结构或关系被修改后,一个强类型的数据集就被创建,可以将行和列作为对象的属性公开而集全中的项不公开。

2)ADO.NET的技术优势

使用ADO.NET访问技术,目前流行的关系型数据库的数据信息不但能被应用程序访问,就连超文本标记语言都能被访问。应用程序中常用的连接模式和非连接模式是ADO.NET的2种数据访问模式,与传统的数据库访问技术相比,应用程序的可靠性和稳定性得到了非连接的模式的强化。由于应用了非连接模式,所需数据一旦被数据源从系统平台中获得,随即与数据源断开连接,并以超文本标记语言的形式将数据存放在内存中。数据被应用程序处理完毕后,然后与原数据取得连接并更新数据。针对领域数据平台内成千上万的用户,平台内的共享的数据资源能被ADO.NET有效地避免数据库阻塞和过多的活动连接,因此,随着平台用户数据的增加,平台系统资源的成本耗费却增加不太大。

非连接模式是 ADO.NET中数据集类的核心,它能被WEB数据平台很好地应用于软件开发,为了实现数据资源共享的最大化,ADO.NE T模型通过强类型程序设计的操作时,程序编写速度得到了很大提高。

ADO.NET可以较容易地控制从数据库中读取所需的数据,并把读取的数据存储在本地缓存,在对查询的数据操作时,ADO.NET优势较为明显:

1)ADO.NET用数据集填充数据时,返回的都是表中的完整记录,不需要的数据也会显示出来,这样会引起不必要的处理。ADO.NET使用的记录集的指针进行记录数据,只操作需要处理的数据,不显示“不需要”的数据,这样会节省一部分资源,并提高访问效率。

2)用SQL语句来实现返回记录的操作,将条件语句排序及其他的限定语句组合实现,可以比较灵活地来实现多数据的显示,当数据需要分页显示时,运用记录集指针来指示记录的起始位置,当浏览下一页记录时,指针就要从下一页的首记录开始提取,当要浏览上一页记录时,指针就要从上一页的首记录开始搜索,这样不仅减少了对数据库的全部操作,也减少了数据流量。

四、面向领域内的数据访问的优化

在对领域内数据访问平台优化时,最重要的考虑因素就是对数据访问技术进行优化,本文在ADO.NET的基础上在访问数据时采用数据库连接池技术,很大程度上提高了数据访问的速度和平台的性能。

通用的连接数据库的方式是一个物理数据库连接对应一个数据库连接对象,在每个数据的连接建立后,接下来就是数据的访问,数据流量的发送。数据库的连接和数据库的关系系统极大程度上耗费占用领域内的资源。而在多层结构的应用程序环境中这种耗费资源的动作对系统的性能影响尤为明显。

在多层结构的应用程序中为了提高数据资源的共享程度和访问数据的速度,大多都通过数据库连接池(connection pooling)技术来提高访问平台的性能,数据库连接池也就是当应用程序需要调用一个数据库连接时,数据库相关的接口通过返回一个通过重用数据库连接来代替重新创建一个数据库连接。通过这种方式,应用程序可以减少对数据库连接操作,尤其在多层环境中多个客户端可以通过共享少量的物理数据库连接来满足系统需求。通过连接池技术Java应用程序不仅可以提高系统性能同时也为系统提高了可测量性。

在需要高度并发/高度可用应用程序中,大部分时间里用户可能会保持一个打开的连接,而且不是积极地使用该连接,因为用户在使用应用程序的其他功能,意识到这一点很重要。应用程序可以把其宝贵的资源——一个打开的连接——从本质上切割成时间片断,并且在多个用户之间来池化它。连接池在池中提供一些连接对象,对同一个数据源连接的不同请求可以用同一个连接对象来处理,这样就避免了数据连接的重新建立。

领域内运用连接池技术能节省网络带宽,提高客户端访问速度,减少数据流量,从而提高领域内数据访问平台的整体性能。

[1]王净.基于ADO.NET的通用数据访问组件的实现[J].计算机与数字工程.2010,(12)

[2]刘旭光.基于ADO.NET构建数据库访问中间层类库的研究[J].现代电子技术.2012,(12)

[3]李成楠.基于ADO.NET数据库访问技术浅析[J].科技创新导报.2012,(12)

猜你喜欢
数据源应用程序客户端
删除Win10中自带的应用程序
如何看待传统媒体新闻客户端的“断舍离”?
谷歌禁止加密货币应用程序
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
Web 大数据系统数据源选择*
基于不同网络数据源的期刊评价研究
基于真值发现的冲突数据源质量评价算法
分布式异构数据源标准化查询设计与实现
客户端空间数据缓存策略