数据中心系统分布结构(共11篇)
数据中心系统分布结构 篇1
0 引 言
测井数据是利用井下仪器、地面设备获得的一种测井资料, 利用测井曲线可以预测含有原油的砂体分布, 掌握储层物性参数空间分布规律, 该数据的处理在石油勘探与开发过程中占有重要地位。目前, 测井曲线的处理大多由手工完成, 费工费时。通常, 一条中等规模的测井曲线, 需要10个以上的人时处理, 而国外基于UNIX工作站开发的测井曲线处理系统, 不但操作复杂, 脱离我国实际生产情况, 且价格过于昂贵, 由于此类系统通常采用单机处理模式, 信息检索和处理速度、系统容量低下, 严重制约了油田开发数据处理的进程。因此, 开发基于Windows平台的, 适合我国实际生产需求的分布式测井数据自动处理系统是非常必要的。
1 系统模型
测井数据处理的主要工作是确定石油储层的性质。储集层是指具有储集空间, 储集空间又相互连通的岩层。本系统主要处理的测井参数有储层厚度、孔隙度、油气饱和度、渗透率等等, 图1是经过分析得到的数据流图。其中现场生产单位给出的测井数据分为新老两个系列。
新系列经验公式的变量有:厚度外 (米) ;三側向 (黑) /Rlls;三側向 (红) /Rlld;密度/Den;声波时差/Hac;井径/Cal;微电极 (黑) /Rmg;微电极 (红) /Rmn;自然电位/Sp;伽玛/Gr。
老系列经验公式的变量有:厚度外 (米) ;0.25米/R025;0.45米/R045;三側向 (黑) /Rlls;三側向 (红) /Rlld;声波时差/Hac;井径/Cal;微电极 (黑) /Rmg;微电极 (红) /Rmn;自然电位/Sp。
该系统通过对原始数据读取, 绘制曲线, 将数据导入内存;然后根据分层数据表对原始数据进行读值操作, 得到读值曲线;最后根据经验公式计算出参数数据;在整个过程中, 操作员都可以对当前数据进行处理, 调整预设参数, 人工干预数据的生成过程[2,3,4]。
2 关键技术
2.1 高速分布式并行检索
分布式并行体系结构下的测井数据的检索通常分为两个步骤, 其方法与系统内部结构如图2所示。
(1) 异地检索所要处理的测井曲线所在位置
注意:尽管单个测井曲线数据文件可以被存放在磁带或者硬盘中, 但运算时为了加快处理速度, 通常需要将其导入内存。为此, 在从单机中读出测井数据进行扩散的同时, 硬盘存储该数据的节点自动记录各条曲线的扩散信息 (包括文件名称、曲线名称、源节点、目的节点、目前状态等) ;同时, 由于此类信息的数据项较多, 且使用频繁, 在此采用了“分布式哈希”DHT (Distributed Hash Table) 算法, 计算求得该曲线扩散的目标节点, 并将其主动发布到该节点上;目标节点接到扩散信息后, 将其纳入本地测井曲线记录表中。当其他节点需要该曲线信息时, 首先从本地记录表中检索曲线所在的位置, 如果有对应的记录, 则通过千兆以太网, 从对应节点的内存 (而不是硬盘) 中获得该曲线的最新数据。如果没有该项记录, 则利用曲线的文件名等元数据, 通过DHT算法得出该曲线的扩散记录所在的目标节点;进而向目标节点发出查询信息;目标节点接到信息后, 查询本地记录表, 发送对应的曲线数据给请求节点。这种方法从系统整体上降低了检索的开销。
(2) 测井曲线特定层段的检索
当本地/异地需要从特定曲线中检索层段数据时, 如何从数万条相关记录中检索有用信息一直困扰着研发人员。根据测井曲线自身的特性 (沿y轴反方向生长, 并逐级分层) , 且相同深度包含的层段数据量可能不同 (浅层砂岩通常分层较少, 而深层砂岩可能在数米之内有上百个层段) , 因此本系统采用了二级并行索引的方式解决该问题:第一级索引基于深度构建, 其基本思路是在导入数据时, 在曲线模型中加入深度索引信息;即每读出100米数据, 即标注该100米数据的起始段编号和结束段编号。第二级索引基于层段名建立, 即每当读出名称相同 (中/英文名前缀相同) 的层段数据, 记录其若干连续同名层段中的起始/结束段名以及编号;所有的索引信息以附加信息形式添加在特定曲线数据的尾部, 并且在曲线模型的元数据记录其入口及相关信息。
2.2 分布式数据同步
该系统将有众多的操作员进行数据处理, 可能会出现多个操作员频繁处理同一条记录的情况, 如果不采用分布式数据同步方法保证数据处理的顺序性, 将会导致数据的不一致。本系统采用的分布式同步算法的主要步骤如下:
1) 当编辑曲线的节点需要进入处理特定层段时, 利用“文件名称+曲线名+处理层段名称”, 按照哈希类算法生成仲裁节点标志, 然后向仲裁节点发送请求。
2) 仲裁节点中建立“先进先出”的请求队列, 并按照请求消息到达的先后顺序发送应答给请求节点;当队列头部是连续“读”请求时, 可以同时发送若干应答给多个“读”请求节点;如果队列头部是“写”请求, 则仅仅发送应答给“写”请求节点。至此, 分布式同步问题以本地方法得到了解决。
3) 仲裁节点将携带本地请求队列的应答消息发送给优先级最高的节点;当该节点退出临界区后, 如应答消息中的队列非空, 无需发送释放消息给仲裁节点, 直接转发应答给下一个节点 (也可能是多个“读”节点) ;如此循环, 直到应答消息中的队列为空;应答消息中的队列为空后, 最后一个获得该消息的节点, 退出编辑状态后, 将发送释放消息给仲裁节点。
3 试验与分析
该系统目前已在生产现场得到了应用。生产部门组织了该系统与目前国外某型专用测井数据处理系统的对比试验。其中, 本系统采用4台微机服务器 (CPU 2.8G, 内存1G, 并且可以随时扩容) 作为试验平台;国外专用小型机中有4片CPU, 内存1G, 系统无法扩容。最终的处理时间对比如图3所示。较之国外系统, 本系统的平均处理时间缩短了三分之二以上;国外系统只允许一个操作员控制一条曲线, 整个系统最多只有5个操作员可进入系统;而本系统可以同时容纳20个操作员, 提高了工作效率。
4 结 论
本文给出了基于分布式并行结构的测井数据处理系统, 并描述了该系统实现的关键技术。该系统已经在生产中得到了应用。现场使用证明, 该系统具有良好的扩容性能, 能够减轻计算、通信等负载, 因此具有较高的推广价值。
摘要:针对测井数据处理系统中交互数据检索速度慢等一系列问题, 提出一个专用分布式并行模型。该模型通过分布式并行技术提高数据检索速度, 通过定点同步的方法保证了多用户数据一致性。性能及试验分析表明, 该模型提高了系统的容量和处理速度, 提供了高效的数据一致性维护等服务。
关键词:分布式并行,检索,数据处理
参考文献
[1]王群.矿场地球物理.黑龙江:大庆石油学院出版社, 1999:1-3.
[2]Jose Duato.并行计算机互联网络技术[M].谢伦民, 等译.北京:电子工业出版社, 2004:22-48.
[3]Jie Wu.分布式系统设计[M].高传善, 译.北京:机械工业出版社, 2001:3-16.
[4]张海藩.软件工程导论[M].3版.北京:清华大学出版社, 1998:8-129.
[5]Stoica I, Morris R, Karger D, et al.Chord:AScalable P2P Lookup Serv-ice for Internet Applications[C].Proc.of the ACM SIGCOMM.ACMPress, 2001:149-160.
数据中心系统分布结构 篇2
Mnesia试图解决典型电信系统的数据管理问题,具备一些在传统数据库中通常找不到的特性。电信应用有许多不同于传统数据库管理系统的需求。用Erlang语言实现的应用程序需要具备宽广的特性,这是传统数据库管理系统无法满足的。
Mnesia的设计要求如下:
快速实时的键(key)/值(value)查找
主要用于运营和维护的非实时复杂查询
由于分布式应用导致的分布式数据
高容错
动态重配置
复杂对象
Mnesia与其它大部分数据库管理系统的区别在于其是被设计用于解决电信应用中的典型数据管 理问题,
因此,Mnesia有许多传统数据库的概念,如事务和查询,也有许多电信应用数据管理系统的概念,如高速实时操作,可配置的容错等级(在复制的意 义上)以及不停机进行重新配置的能力等。Mnesia与Erlang编程语言是紧耦合的,使得Erlang几乎成为数据库编程语言。其最大的好处是在操作 数据时由于数据库与编程语言所用的数据格式不同而带来的阻抗失配问题完全消失。
介绍内容来自百度百科
项目主页:www.open-open.com/lib/view/home/1331130157624
数据中心系统分布结构 篇3
关键词:对等网络; 覆盖网; IP网; 多关键字查询
中图分类号:TP393.01
文献标志码:A
Decentralized structured P2P system grouped by location
SHEN Xinpeng, LI Zhanhuai
(College of Computer Sci. & Eng.,Northwestern Polytechnical Univ., Xi’an, 710072)
Abstract: Because Chord is a typical distributed structured peer-to-peer (P2P) system based on overlay network, the distance between two adjacent peers may be very far on IP network, and the network access speed is greatly reduced. To solve the problem, a new P2P system is proposed to improve the Chord system. The peers in the same location are connected in a Location Area P2P Network (LAPN) which is connected by pointers. The method can resolve the problem and improve the system efficiency.
Key words: peer-to-peer network; overlay network; IP network; query on several keys
0 引 言
随着计算机处理能力和存储容量的提高以及通信技术的进步,人们可以随时随地接入网络并通过直接交换共享计算机资源和服务,对等计算[1](Peer-to-peer Computing)因此应运而生.对等网[2](Peer-to-peer,P2P)是没有任何集中控制的分布式系统,系统中每个节点在功能上均等同,既是客户机又是服务器,没有主从之分.
以Chord为代表的分布式结构化系统是P2P系统结构的研究重点.[3]系统中没有集中目录服务器,但节点的组织是结构化的.这里的结构是指系统对P2P网络拓扑和文件放置都精确地加以控制,仔细将文件均匀地分布在参与的节点中.该系统的优点是易于扩展,查询效率高,支持稀少文件的查询;缺点是对节点的不断加入和离开需要频繁地进行额外工作,不能有效支持多样化查询.而且由于该系统是在IP网(IP Network)上建立覆盖网(Overlay Network),结果出现在覆盖网上的两个相邻节点在IP网上却相距很远的情况,于是,理论上只需要很少的延迟(比如一个Hop),反映到实际IP网络上却需要很大的延迟,导致网络的实际访问速度大大降低.
为了解决这些问题,本文在分布式结构化P2P系统Chord的基础上进行改进,提出基于地域分组的分布式结构化P2P(Decentralized Structured P2P System Group by Location,DSPSGL)系统,它可以很好解决以上问题,是对P2P系统的一次有益改进.
1 DSPSGL系统介绍
在结构化P2P系统中,节点之间的访问路径长度一般都根据Overlay Network上的距离进行计算.但是Overlay Network上相邻的节点在IP Network上可能相距很远,从而造成数据访问的理论速度与实际速度差别很大.
为此,对分布式结构化P2P系统进行改进,提出DSPSGL系统.在DSPSGL系统中,处于同一地域的节点构成分布式结构化的局域P2P网络(Local Area P2P Network,LAPN),这些LAPN的相互连通形成完整的DSPSGL网.
1.1 系统拓扑结构
在DSPSGL系统中,采用一致性哈希(Consistent Hashing) 算法[4]将网络中每个节点的标志映射成一个长度为M 位(bit)的二进制序列:节点标志符(pID),并将其唯一分配给该节点.它表示1到2M-1间的数,在一维环空间(模2M)上由小到大按顺时针排列,选择合适的M值,可以保证两个节点的pID相同概率接近0.
在Chord 模型中,节点标志符(pID)通过哈希IP地址得到,但是该方法存在明显不足.现在国内很多用户使用ADSL方式上网,他们每次登入网络的IP地址都是变化的,因此同一节点两次登入系统的节点标志符不同.这就违反了节点标志符的唯一性原则,可能会造成同一节点在存储文件和查找文件时的节点标志符不一致的情况,失去定义节点标志符的意义.这里使用哈希机器CPU的ID来生成节点标志符.每台机器CPU的ID是唯一不变的.使用该方法可以保证节点多次接入系统时,其pID保持不变.
同时,每个节点还有一个N(N 这样,DSPSGL系统中所有的节点都有一个节点标志符和一个地区标志符,组成一个 M×N 的二维圆环.坐标(pID,aID)决定节点在该圆环中的位置. 图1显示一个8×4的网络.其中aID为01和10的节点各有两个,aID为11的节点有4个,没有pID相同的节点. 图 1 节点环空间 具有相同地区标志符(aID)的节点按节点标志符从小到大顺时针排列组成一个小的LAPN.每个LAPN都是一个小的Chord网络.但是一个节点同时只能属于一个地区,因此这些LAPN是相互孤立的,见图2. 图 2 LAPN 为了使这些网络可以相互联通,对网络中的某些节点增加一个或多个地区指针.每个地区指针指向某个LAPN的任意一个节点. 将节点标志符(pID)的前N位称为节点的伪地区码(fake area ID,简称nfaID).由于LAPN网中的节点按节点标志符从小到大顺时针排列,故LAPN网上各节点的伪地区码也就从小到大顺时针排列成一个环. 如果一个节点的伪地区码(nfaID)为n1,其前继节点(指在LAPN环空间上从这个节点出发逆时针方向的第一个节点)的伪地区码(nfaID)为n2,若n1=n2,则该节点没有地区指针;若n1>n2,则该节点有n1-n2个地区指针,分别指向地区标志符为(n2+1, n2+2, …, n1-1, n1)的LAPN中的任意一个节点.若n1 例如,图1所示的DSPSGL系统中,地区标志符为11的LAPN 网的各个节点的地区指针见表1所示. 在表1所示的地区指针中,节点001的所有地区指针均为NULL,若连续多个节点的地区指针都为NULL,将使系统的算法复杂度大大提高.为此,对地区指针的算法进行修正.若一个节点(其伪地区码是n1)的所有地区指针都为NULL,就再给它增加若干个指针,直至有一个非空指针,即增加分别指向地区标志符为(n1+1, n1+2, …, n1+n3-1, n1+n3)的LAPN指针,其中前n3-1个指针都为NULL,最后一个指向n1+n3的地区指针非空.这样经过修正后每个有地区指针的节点都至少有一个非空的地区指针. 图1所示的DSPSGL系统的地区指针经修正后,其他节点的地区指针不变,节点001增加一个指向aID=01的LAPN的地区指针. 增加地区指针后,DSPSGL系统中的节点就相互连通.图1所示的系统增加地区指针后见图3. 1.2 文件的加入和查找 文件是对系统中要存储的数据的统称.在系统中每个文件都有一个唯一确定的文件标志符(fID).它也是通过一致性哈希算法得到的.文件标志符(fID)表示为一个1到2M -1间的数. 在介绍文件的加入和查找算法之前,首先定义几个概念.图 3 连通后的DSPSGL系统 后继节点:文件标志符为f0的后继节点就是在LAPN环空间上节点标志符等于f0的节点或者从f0出发顺时针方向的第一个节点. 文件的伪地区码(ffaID):称文件标志符(M位)的后N(N 后继LAPN:节点p0的地区标志符为a0的后继LAPN.它必须满足:(1)不是p0所在的LAPN;(2)地区标志符等于a0或者是在地区标志符环空间上从a0出发顺时针方向的第一个有效地区标志符.求节点p0的地区标志符为a0的后继LAPN算法如下:如果节点p0的地区标志符等于a0,将a0加1;然后在a0(N位)后面补M-N个0,构成一个M位的二进制数k,在p0所处的LAPN上查找k的后继节点p1,p1上必然有指向aID等于a0的LAPN地区指针.若此指针为NULL,说明该LAPN暂时不存在,就将a0加1,再次查找p1上的地区指针,如此反复直到找到一个非空的地区指针.该指针指向的LAPN就是节点p0的地区标志符为a0的后继LAPN. 从节点p0增加一个文件标志符为f0的文件到系统的算法: (1)在节点p0所处的LAPN中查找f0的后继节点p1,将文件保存到p1上; (2)确定文件f0的伪地区码为fa0; (3)查找p0的地区标志符为fa0的后继LAPN; (4)在此后继LAPN上查找文件f0的后继节点p2,并将文件保存到p2上; (5)修改p0所处的LAPN的指向后继LAPN地区指针指向节点p2. 注意:文件的伪地区码取文件标志符的后N位,这与节点的伪地区码不同,原因是根据以上文件加入系统的算法,如果文件的伪地区码取文件标志符的前N位,将会使所有文件在后继LAPN中仅集中在少数几个节点上,即集中在伪地区码等于地区标志符的节点上. 从节点p0查找文件标志符为f0的文件算法: (1)在p0所处的LAPN中查找f0的后继节点p1; (2)在节点p1上若找到文件f0,将文件复制到节点p0上,查询结束,正常返回; (3)若没有找到文件,确定文件f0的伪地区码为fa0; (4)查找节点p0的地区标志符为fa0的后继LAPN; (5)在后继LAPN上查找文件f0的后继节点p2; (6)在节点p2上若找到文件f0,将文件同时复制到节点p0和p1中,成功返回,若找不到,异常返回. 1.3 基于多关键字的文件存储和查找 前面介绍简单的文件存储和查找算法,但有时需要基于关键字进行文件的存储和定位.为此在DSPSGL系统中增加称为索引的新实体.索引就是文件的多个关键字和文件名(文件标志符)一种对应关系.在系统中,每个索引也有一个唯一的索引标志符(iID),该标志符是对索引进行一致性哈希运算得到的一个M位的二进制序列,它表示1到2M-1间的数. 为了使系统具有多关键字查询功能,在保存索引标志符k的节点n上建立索引信息表.表中每一项保存一个文件的所有索引和对应的文件标志符.例如关键字“网络”对应的索引信息见表2. 从节点p0增加一个具有多个关键字的文件算法如下: 首先按照1.2节中介绍的加入算法将文件(文件标志符为k)存储到节点p1(p0所在的LAPN上的节点)和p2(后继LAPN上的节点)上,然后在节点p0对每个关键字分别进行哈希运算,得到对应的索引标志符(k1,k2, … , kn).对每一个索引ki,再次使用第1.2节中介绍的加入算法选择合适的节点pki1(p0所在的LAPN上的节点)和节点pki2(后继LAPN上的节点)存储该索引信息.在节点pki1和pki2的索引信息表中保存该文件的所有关键字和文件标志符fID的对应关系. 当从节点p0使用一个或多个关键字搜索文件时,对其中的任意一个关键字进行哈希运算,得到索引标志符k;使用第1.2节中介绍的查找算法找到存储该索引的节点pk;然后在节点pk上打开其索引信息表,找到所有符合检索条件的文件对应的文件标志符,最后根据找到的文件标志符取得要查找的文件. 例如要查找具有关键字“算法,网络”的文件,可以对关键字“网络”进行哈希运算,得到索引标志符k,找到存储该索引的节点pk,读取其索引信息表,在其中查找同时具有“算法”和“网络”两个关键字的文件,发现有4个,对应的文件标志符分别是12,15,13,40. 最后再根据第1.2节介绍的算法,分别取得这4个文件. 1.4 节点的加入 在DSPSGL系统中,节点p0加入系统前,必须先知道系统中任意一个节点p1的信息;再根据自己的CPU ID值和IP地址计算节点的标志符(pID)为p0,地区标志符(aID)为a0. 若a0(节点p0的地区标志符)等于p1的aID,说明p0就在p1所处的局域P2P网络(LAPN)中.在此LAPN上查找p0的后继节点p2.将p0插入p2前面,先根据Chord算法更新信息(包括将后继节点的部分文件和索引信息移动到新节点上来),然后再根据p0的后继节点p2以及前继节点p3的nfaID和地区指针更新p0和p2的地区指针.具体算法与前面确定地区指针的算法相同. 若a0不等于p1的aID,说明p0不在p1所处的LAPN上.在a0(N位)后面补M-N个0,构成一个M位的二进制数k,在p1所处的LAPN上查找k的后继节点p2,p2上必然有指向aID等于a0的LAPN的指针. 若指针不为空,就可以找到地区标志符等于a0的LAPN,然后在此LAPN上确定p0的位置,并更新它及其相邻节点的信息(包括Chord网络信息、文件及索引信息和地区指针等). 若指针为NULL,说明p0是该LAPN的第一个节点,此时要通知所有其他LAPN更新指向该LAPN的指针,并在节点p0上建立指向所有LAPN网的地区指针,然后确定节点p0的地区标志符为a0的后继LAPN(其地区标志符为a1),从后继LAPN上把伪地区码小于等于a0的文件和索引复制到节点p0上(伪地区码大于a0且小于等于a1的文件和索引留在原LAPN上). 2 DSPSGL系统分析 根据以上介绍可以发现DSPSGL系统是对Chord系统的一种改进,具有稳定性高、响应迅速、支持多关键字查找等特点.下面对系统性能进行简单分析. 2.1 系统的健壮性分析 在系统中每个LAPN就是一个Chord网,因此节点失效不会引起LAPN瘫痪.同时每个LAPN网中都有指向所有其他LAPN的指针,若LAPN1的某个节点失效使得指向LAPN2的指针丢失,那么可以通过LAPN1上指向LAPN3的节点转到LAPN3上寻找指向LAPN2的指针.因此,任何一个或多个节点的失效都不会引起系统瘫痪,不存在单点故障问题. 2.2 算法复杂度分析 在P2P系统中,对系统性能影响最大的是访问节点,因此下面以访问节点的个数为依据,简单分析各主要算法的系统开销,前提是假定没有节点失效问题.假定系统中有M个节点,有N个LAPN,每个LAPN中最多有X个节点,因此在LAPN中查找节点的算法复杂度为logX. 首先分析查找节点p0的地区标志符为a0的后继LAPN的算法复杂度.由前面的介绍可知该算法就是先在a0后面补M-N个0构成M位的二进制数k,然后在p0所在的LAPN中查找k的后继节点p1,最后在节点p1上查找指向后继LAPN的指针,因此其复杂度为log X. 文件加入算法是同时将文件放入起始节点p0所在的LAPN和其后继LAPN中.放入p0所在的LAPN中需要一次查找文件的后继节点;放入后继LAPN需要一次查找后继LAPN和一次查找文件的后继节点,因此其复杂度是logX. 基于多关键字的文件加入算法相当于多个文件的加入,因此算法复杂度还是log X. 文件查找算法:若文件存在于起始节点p0所在的LAPN,只需查找一次文件的后继节点即可.若不在该LAPN,需要分别查找后继LAPN和文件的后继节点一次,因此它的算法复杂度为log X. 基于多关键字的文件查找算法相当于两次文件查找,因此算法复杂度还是log X. 节点p0已知节点p1加入系统时有3种情况:(1) p0和p1在同一LAPN中,即将p0加入p1所在的LAPN,算法复杂度为logX;(2) p0和p1不在同一LAPN中且p0所在的LAPN已经存在,此时需要在p1所在的LAPN上查找地区指针,然后在p0所在的LAPN上找到p0所在的位置,实际上是两次在LAPN上查找节点,算法复杂度是logX;(3) p0和p1不在同一LAPN中且p0所在的LAPN不存在,首先需要在p1所在的LAPN上查找地区指针(算法复杂度log X),然后更新所有LAPN中指向这个新LAPN的地区指针(算法复杂度N·log X),最后要访问其后继LAPN上的所有节点并进行文件迁移(算法复杂度X).因此其算法复杂度为N·log X+X. 3 结 论 从以上分析可以看出DSPSGL系统的健壮性很好,其文件加入和查找的算法复杂度均为log X(X是LAPN中的节点数),与Chord算法相比有一定的改进.节点加入时,除了建立新的LAPN时复杂度较高外,其他时刻的算法复杂度也比Chord算法低. DSPSGL系统在系统总体性能有所改进的前提下实现节点访问与IP网的关联,可使大部分操作在同一地域的IP网中完成,从而大大提高对等网的效率,同时实现基于多关键字的文件索引功能.因此,DSPSGL系统是一种有前途的新型P2P系统. 参考文献: [1] FOX G. Peer-to-peer networks [J]. Computing in Sci & Eng, 2001,3(3): 75-77. [2] MILOJICIC D S, KALOGERAKI V, LUKOSE R, et al. Peer-to-peer computing [R]. Hewlett-Packard Company, 2002. [3] STOICA I,MORRIS R,NOWELL D L,et al.Chord:a scalable peer-to-peer lookup protocol for Internet applications [J].IEEE/ACM Transactions on Networking,2003,11(1): 17-32. [4] MATEI R, LAMNITCHI A, FOSTER I. Mapping the Gnutella network [M]. IEEE Internet Computing, 2002. (编辑 廖粤新) 然而,软件开发企业也面临着另外的挑战———产品上市时间。软件质量属性———如性能、安全性、可靠性、适用性和可修改性是进行以程序架构为中心的设计的源动力。但是,其往往对软件的上市时间产生的是不直接或明确的影响。事实上,对软件生产商而言,在设计初期或开发阶段的实际中,软件的上市时间可能比其质量属性作用更重要,尤其是在软件开发这一竞争白热化的领域。从软件开发的角度来看,设计师可为软件的非功能性需求采纳新的软件架构,比如上面提到的那些质量属性。因此,通过一种不同的架构和/或新技术,对试图将当前系统转换为一个新系统的软件开发人员而言,是极为重要的,因为这样可以减少对时间的耗费并提高其他的质量属性。 如上所述,分布式系统在当今社会已经司空见惯。然而,许多分布式系统的设计并未充分利用其领域一些新型科技的优势。例如,使用单线程(ST)对在电信和无线应用中的系统进行研究。多线程设计的替代品,如Half-Sync/Half-Async(HS/HA)和Leader Followers(LFs)这两种设计模式[Schmidt00],尤其可以提高软件的性能。事实上,其中一个系统的研究是由ST转化为HS/HA,另外一个系统是由ST转化为LFs。分布式系统应用中的许多设计模式已被捕获并记录下来。一些较为低级模式的代码有待设计细化;另一方面,展示出分布式的高级结构或架构。这两种模式的实例在随后被分为HA/HA和LFs。 即便上述的模式已被良好记录下来,使用新技术将旧系统手动转换为一个新系统也可能需要大量的时间或专业知识。Lung杂志系列刊登了一篇有关为了更高性能和服务质量需求对ST到HS/HA进行转换的实证研究,这些需要渊博的知识和大量的努力。因此,本文旨在使用有良好记录的设计模式进行工具的开发,以便于分布式系统程序之间的转换。本文将重点探讨两个被普遍采用的并行模式:HS/HA和LFs。 程序转换工具的开发基于对现有系统的分析,包括使用相关设计模式进行总体框架和可重复利用组件的设计。工具使用Python语言编写,用于将现有的使用Java的单线程技术设计的系统自动转换为另外使用HS/HA和LFs高级并行设计模式之一的Java程序。设计模式的选择由用户决定。相对于手动转换而言,用户可以使用我们提供的软件工具对现有系统进行更为便利的转换,从而可大大节省转换所需的时间,同时,由于工具已经进行了良好的测试和确认,软件的质量也有保证。另外,一个单线程系统可通过使用工具转换为HS/HA和LFs,以便对软件架构进行调试或者进行高精度分析。 本文的其他章节划分如下:第1章对一些相关工作进行介绍,第2章讨论了程序转换方法。第3章对程序转换工具进行阐述,并通过实例说明工具的使用。最后的第4章对全文进行总结。 1 相关研究 由于在理论和实践方面的重要性,设计模式在软件工程学中已被广泛认同。由于众多不同的系统或特定的系统,设计模式也不尽相同。 Schmidt等人描绘了网络和并行系统中的多种设计模式,它们包括程序服务的引入和类型配置、事件处理模式、同步模式和并行模式。程序服务的引入和类型配置主要用于处理有效的应用程序接口(APIs),以在独立式或联网系统引入和配置服务和组件。 事件处理模式用于描述如何在联网系统中对事件进行初始化、接收、多路信号分离、发送和处理。可分为四种类型:接收器、接收器的连接器、预处理器和异步处理标志。本文将对前三种模式进行研究。可利用组件的开发基于上面提到的用于程序转换的三种模式。 并行模式展示了典型通讯软件的多种架构。基于并行管理视角,本文选取了三种基本的架构,它们是:传统的使用接收模式的单线程(ST)技术、HS/HA和LFs。选用ST的最初原因是其简易性,更为重要的是,它是在现有系统研究中被采用的原始类型。许多系统也是通过使用ST技术进行开发的,其余两种模式也由于在行业中的采用而被列于其中,HS/HA和LFs可潜在提升系统性能。 Lung介绍了通讯软件中基于多种架构的基本变化分析。ST技术中的线程将通过select()功能对事件和到达的信息进行处理。但是,该技术经常导致数量方面的问题。解决途径是,通过使用HS/HA和LFs模式之一作为总体架构。 LFs模式提供了与ST实例和那些同步线程相似的多线程的功能,但是,一次只允许对一个线程进行处理———引导器等候网络事件的发生。其他的线程和事件就需要排队等待,一旦引导器监测出事件,就会让排队的事件之一进入处理。换言之,变为进行服务处理的线程。另一方面,HS/HA将系统分为3层,异步层从网络读取信息并将它们储存于队列中,多线程从队列读取信息并将它们进行处理。 2 以架构为中心的程序转换 如前章所述,那些不同的架构有着相似之处,但也有不同。每种架构各有其优劣,尽管一般而言,HS/HA和LFs可能会有更好的性能。虽然如此,软件架构可能包括复杂的操作或行为。在实际的案例研究中,我们为了性能提升之需将网络系统从ST转换为LFs。但是,基于LFs模式的系统并不像预料中那样比ST模式的系统性能更好。使用工具便利以架构为中心的软件开发不仅可以节约时间,而且可在实际程序转换前对正在运行的系统的架构评估进行提升。 以下所述的技术采用基于对以架构为中心的程序转换的支持。技术的开发请见我们前面有关以架构为中心的多产框架的研究。框架的开发包括以下步骤: 1)在架构层对范围进行限定并采取多样化分析; 2)对现有机器软件系统进行设计方面的恢复; 3)使用模型对现有系统进行再改造; 4)对多种架构进行评估; 5)添加可利用组件和框架。 第一章已经高亮显示了第一个步骤,第二步强调的是,与其开发一个新系统,不如再利用现有系统的重要性。我们研究了多种多样的系统,包括业界开发的网络原型系统。设计的恢复过程提供的宝贵讯息对接下来的再设计帮助很大。我们使用以下设计模式对ST系统进行了人工干预:接收器、接收器的连接器,HS/HA和LFs。 接下来进行的是完整的ST、HS/HA和LFs软件架构评估(突出强调其性能)。该过程有助于我们更好理解不同架构下的软件质量属性。最近的开发中采用的是包含以下可再用组件的框架———发送器、连接接收器、连接器、服务处理器、HS/HA和LFs,该框架允许用户通过一种特别的方法(如ST、HS/HA或LFs)对系统作出选择并使其运行。 本文通过工具开发层面对先前论点进行扩展,以支持基于用户选择的自动程序转换。技术包含以下主要任务: 1)基于所选设计模式和现有系统,对架构/设计层之间的多种类型的相同点与不同点展开分析; 2)在组件层进行相似性分析; 3)在代码层进行相似性分析; 4)进行从ST到HS/HA的人工转换,并对结果进行核实; 5)对方案进行开发,为ST到HS/HA或LFs的转换建造工具。 3 程序转换工具 本章将介绍用于工具开发的技术。工具的最初版本在分析阶段被调整用于整体的框架结构,工具主要用于ST到HS/HA和LFs之一的转换。3.1讲述了所需的步骤,3.2将对更细化的算法进行介绍。 3.1 转换步骤 转换工具的开发过程包括三个步骤:提取、输入和再构造。提取主要针对类和方法。在我们的研究中,提取指的是类的提取,输入步骤用于在不同的分析阶段添加特定的主程序行或方法,最终的再构造步骤对方法和类进行再建。这三种步骤将在本章作出详尽的论述。 软件工具也有自己的数据库,包括用于执行特定设计模式的所有支持文件。基于用户选定的设计模式,适当的支持文件与总框架的接口类进行连接。接口类用于显示特定的设计选项。 数据库内的支持文件用于LFs模式或HS/HA模式的基础结构的创建,以下为用于程序变换的数据库内支持文件列表: ·工作池 ·工作对象 ·排列层 ·同步层 ·服务处理线程 其中,前两个文件用于LFs类型,后面三个文件用于HS/HA类型。 在数据提取过程,首先是从单线程的接口类中读取数据并提取方法。需要注意的是,因为已对所有数据的不同之处作出分析,故无需读取所有数据。 数据录入阶段主要是新方法的添加。添加至ST的有两种方法:startLeaderFollower()和stopLeaderFollower()。另外,需添加新连接:位于LeaderFollower接口和工作池之间,还有工作池与工作类之间的连接。 从ST到HS/HA,需添加一种额外的方法:startServiceHandlers()。介于HSyncHaSync接口和ServiceHandler线程的新线程,以及介于HSyncHaSync接口和Asynchronous层的连接也需要进行创建。 再构造过程负责对代码进行重建。其间,带有新附加方法和再利用组件的现有系统进行了重建。在本过程结束后,生成包含所产生程序的新输出文件。 3.2 详细算法 本章描述了工具所用的算法。每种工具对ST技术中的每个方法及介于ST和HS/HA或LFs之间的不同处进行跟踪。 以下为更为具体的算法: 在程序转换过程中,ST代码的每种方法被当成一个整体进行处理。在每种方法下,工具将逐行搜寻用于程序转换的原始ST代码。另外,工具将每种方法出现的变化进行记录(在第二章的分析阶段已事先进行了讨论),包括标题文件和附加变量等。 算法: Python中的图形用户接口(GUI)开发为了使用上的便利,在实际中有其重要性。一般而言,Python程序开发所需时间少,被誉为“胶着”程序语言,便于进行配置管理。用户对目标系统具有真实的选择权。普通的引导行及数据接收和阻隔被良好记录下来。但是,通过可执行系统对数量选取的更抽象的数据进行比较将更为有用。 4 结束语 质量属性或非功能性需求是进行软件开发的重要环节,包括可维护性和生产效率。始于架构层的软件开发在展示质量方面起着更好的杠杆调节作用。在具体实践中,所需的生产效率和开发时间对软件公司起着至关重要的作用。本文展示了以架构为中心的程序转换,旨在描述有关传统的软件质量和生产效率的问题。应用的目标领域在分布式和并发式系统。 我们的初始化工具开发基于对现有系统的研究,尽管我们是在一个大的范围中进行分析的。然而,普通Java程序工具可以进行提示。本理念也可用于其他领域,如当多任务类型为潜在的架构方法,尤其是当工具可以被多次使用时。 参考文献 [1]Alhussaini A..Software Restructuring and Performance Evaluation[R].Ottawa,Canada:Project Report2004,Dept of Systems&Computer Eng,Carleton Univ. [2]Barbacci M.Quality Attribute Workshops(QAW)[R].3rd ed.Technical Report CMU/SEI-2003-TR-016,2006. [3]Balasubramaniam B,Elankeswaran P,Gopalasundaram U.et al.Transformation and Building Reusable Components with Design Patterns[R].Ottawa,Canada:Project Report2005,Dept Of Systems&Computer Eng,Carleton Univ. [4]Gamma E,Helm R,Johnson R,et al.Design Patterns:Elements of Reusable Object-Oriented Software[M].Addison Wesley,1995. 2 嵌入式Linux的内核下数据挖掘系统设计描述 在上述进行了算法设计的基础上,进行数据挖掘系统的软件开发设计,基于云计算的分布式数据挖掘系统总体模型中,采用ST 超低功耗 ARM CortexTM-M0 微控制器,系统建立在嵌入式Linux 的内核平台上,系统包括程序加载模块、数据存储模块、数据缓存调度模块和数据通信传输模块等,通过配置CAN_IMASK 寄存器,采用LabWindows/CVI 进行数据远程控制和信息通信,基于云计算的分布式数据挖掘系统给用户提供一个简单、统一的系统调用接口,系统可配置4 路组联合Cache,基于云计算的分布式数据挖掘系统的寄存器系统时钟120 MHz。嵌入式Linux 的内核下数据挖掘系统通过VISA 软件接口发送Flash 设备上的文件系统内核到HP E1562D/ESCSI 数据硬盘进行数据存储,调用s3c2440_adc_read 函数,进行程序加载和基于云计算的分布式数据挖掘系统的嵌入式控制,使用Qt/Embedded 作为GUI,利用开源Linux 操作系统的.丰富网络资源,实现数据挖掘系统的远程通信信息传输和控制。 3 仿真实验 为了测试本文设计的基于云计算的分布式数据挖掘系统在实现数据挖掘中的优越性能,进行仿真实验,分布式数据信息采样的时宽为10 ms, 分布式数据的随机采样率为KHz,调控因子λ=0.25。根据上述仿真环境和参数设定,进行基于云计算的分布式数据挖掘系统的数据挖掘和处理性能分析,首先进行数据挖掘的输出时域波形采样,结果可见,采用本文算法进行数据挖掘的准确度较高,为了对比性能,采用本文方法和传统方法,以数据挖掘的准确配准性为测试指标,得到对比结果。实验结果表明,采用该方法进行基于云计算的分布式数据挖掘,数据挖掘的准确配准性能较好,系统的可靠性较好。 4 结束语 关键词:分布式数据库;数据分片;数据同步 1 引言 高職院校医学专业学生在校理论学习结束后,要进入医院等用人单位顶岗实习,为毕业后能迅速适应就业岗位打下良好基础。但在实习学生管理方面,各院校仍在采用传统的人工管理模式,沟通不畅,资源浪费且效率低下。所以,如何进行高效的学生实习管理,成为众多医学院校亟待解决的一个核心问题。随着互联网技术的不断发展,信息化的管理模式成为了各医学院校进行实习学生管理的最优选择,开发一个基于数据库和网络的实习管理系统,实现实习学生的信息化管理,降低学校对实习学生的管理成本,提高管理效率,实现学院-医院双重管理的无缝衔接,是众多高职医学院校正在进行的一项课题。 由于在实际环境下,学生实习的单位在地理位置上是分散的,以笔者所在学校为例,实习单位主要分布在西安市、咸阳市、宝鸡市、渭南市、榆林市、汉中市、重庆市等省内外地区,且每年都有新增的实习单位。因此,在进行管理系统的设计时,采用什么样的数据库方案就成了决定系统效率和稳定性的关键因素。 2 数据库设计方案 在数据库方案的选择上,可以考虑集中式数据库和分布式数据库。集中式数据库硬件系统是由一个处理器、与它相关联的数据存储设备以及其他外围设备组成,见图1。 若采用集中式数据库,所有系统成分均驻留在单个计算机(或场地)内,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个中心站点集中控制,这样有利于数据的维护和保持数据一致性,但是,一旦中心数据库发生故障,就会导致整个系统瘫痪。 分布式数据库是由一组数据组成的,这组数据分布在网络中的不同计算机上,网络中的每个结点都具有独立处理的能力,可以执行局部应用,也能通过网络通信子系统执行全局应用,如图2所示。 对用户来说,一个分布式数据库系统从逻辑上看如同集中式数据库系统一样,用户可以在任何一个场地执行全局应用。所以,根据学生实习的实际情况来看,适宜采用分布式数据库系统,允许各实习单位将自己常用的数据存储在本地,在本地录入、查询、维护,实行局部控制,在降低通信代价的同时,提高响应速度。 3 数据分布策略 在进行数据分布设计时,可考虑采用分割式与复制式相结合的数据分布策略。在学院站点上保留一个完整的数据副本,然后根据学生将要去往的实习单位,将所有实习学生的信息按照实习单位进行分配,即一个实习单位一个数据子集副本。这样,各实习单位可自治的查询和修改本单位实习学生的数据,发挥系统的并发操作能力。同时,由于数据分布在多个站点上,当部分站点出现故障时,系统仍能保持运行,提高了系统的可靠性。 在本系统中,每个实习单位都需要对分配给自己的实习学生的信息进行一系列的管理,也就是说,对于学生的基本信息及其关联信息的应用较为频繁。所以在进行数据分片设计时,应采用水平分片,使实习单位的绝大多数应用在实习单位的站点内完成,系统的效率得到提高,避免因为频繁访问两个或多个片段导致执行连接操作增加而使得代价增加。并且,采用水平分片方法产生的片段,将被分配到访问它次数最多的站点上,即在各实习单位站点上只分配去该单位实习的学生信息,而全部实习学生的数据则存放在学院站点上。 4 数据同步设计 在进行分布式数据库之间的数据同步(数据复制)时,可采用发布/订阅方式:首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述的发布进行订阅。基于快照的事务复制,主数据库服务器生成快照,备份库服务器读取并加载该快照,然后不停地从主数据库服务器复制事务日志。 在本系统应用环境下,同一地区的不同实习单位共用一个站点空间,而在实习管理过程中,对分配给自己的实习学生数据的修改总是由实习单位发起的,所以,在给实习单位分配实习学生时,将学院数据库服务器作为源数据库服务器进行学生信息数据的发布,各地区数据库服务器作为目标数据库服务器对该发布进行订阅;学生进入实习单位后,可将各地区数据库服务器作为源数据库服务器对随管理过程变化的学生信息进行数据发布,学院数据库服务器作为目标数据库服务器对该发布进行订阅,采用事务复制来保证数据的一致性。在第一次设置好事务复制后,发布的表、存储过程等将会被镜像,之后每次对于发布服务器所做的改动都会以日志的方式传送到订阅服务器,使得发布服务器和订阅服务器几乎可以保持同步。 二十一世纪是一个信息化的时代,所以数据库的开发和运用也越来越深入到社会的各个角落,因此数据库的结构分布和功能为了符合发展需求,通过需求的不同而提高其标准。信息系统的重要基础就是数据库,所以必须运用数据库功能和结构分布只能在运用一定的组织模型来使数据库获取信息时更加有效、及时、精确和便利。从而得知只有集合性的多功能数据库的出现才能够满足这一需求,因为不但能够使数据储存更加方便,而且还能够提高对数据的维护和检索功能。把用户需求的满足作为多功能数据库的宗旨,用户想要开发的数据库想拥有那种性能、存储何种数据以及各个数据实体之间存在何种关系,这是数据库中所要表达出来的内容。 1 多功能数据库的结构分布设计 1.1 需求分析设计 对用户的需求进行调研分析是数据库的分布设计进程中的首要阶段。顾名思义搜集数据库的基本资料是调研分析的基础工作,在此基础上再使数据库的处理环节完善起来。把数据库中数据进行需求性分析时可以在三方面出发:第一先明确用户的信息需求,也就是说用户想要在数据库中获得何种数据,以此为出发点来设计数据库中所要储存的内容。第二了解用户在数据库处理方面的需求,使数据库之间的相关联性建立起来。第三设计的数据库要保证用户在使用过程中的可靠和完整,下面就以一家报纸的管理信息系统为例子进行阐述。 报纸的订户管理系统必须要以完备的信息作为基础,因此必须从以下几个特征为起点:在数据量方向分析,此类信息数据具有实时性和变化多样的特性,从而在统计时所用的数据非常宏大。一年这类报纸的销量就多达几十万余份,而且原有的数据非常复杂。在订阅时间上分析,每个月为一个基本单位,大多数用户不是每个月的三十天里都会订阅这个报纸,所以会破月订阅,还要随时订阅及时送递。这种订户的形成,就会造成在统计订户时不清晰,造成漏送的事情时有发生。而且在进行统计时,使用的是手动上票的方式,来统计新订户从而完成投递报纸总量的统计;报纸投递员的流动性,也增加了统计作业的难度。在对投递员进行规整时,要求按着整个城市的街道进行区域性的划分,并且以投递员所投递多少份报纸、报亭的报纸份数以及毁损的报纸的多少为依据,来给投递员安排投递报纸的数量。如果投递员的人数发生改变,此类信息也就会随之改变。从而得知,把订户作为数据库的信息进行处理时,应当根据一下几个方面进行考量,这样才能够构建具有任性化和科学化的数据库管理系统。 录入数据到数据库中时,应当不间断把数据递交给数据库进行储存。这也就是把基本的订户的信息和投递人员的信息需要在数据库系统中不断的更改,不断的更迭数据,使数据库保持时效性,完成每天的报纸将要送递和发行的计算。 在投递的报纸份量上,每个邮局报刊亭需要的报纸量、订户订阅的报纸数量、零售量和损耗的数量这些都要考虑在内。如若订户已经取消了报纸订阅,还应当及时把用户的信息打印出来,交给投递员使投递员能够注意从而不再对其用户进行发放报纸,避免了报纸的额外损失。在某个区域的投递员由于各种原因而不来时或者辞职时,应当做好交接工作,并且对所预留的工作信息进行及时的查找,使新上任的投递员或者交接班的投递员能够接人接下来的工作,并且做到游刃有余。这种对信息查询的方式,也就做到了公开透明,有利于工作的下一步开展。 1.2 概念结构设计 把抽象的用户的需求转变为概念研究的目标被称为概念结构设计,概念结构设计的研究目标为:图像的处理、Web网站的开发这两种。 概念结构设计是多功能数据库设计的关键环节,它不仅满足于用户各类实体设计的需求,还能够使数据属性之间的关系进行相连,产生关联后设计出概念设计模型。 在对数据结构之间的关系进行描述时,运用了实体-联系图模型的方式来进行阐述数据库中各属性之间的关系的。在描绘概念数据模型方式中最为普遍用到的就是两图之间的关系,在实体-联系图模型中,有实体、属性和关联组成,下面就以报纸的发送数量为例子来进行实体-联系图模型的描述。 投递人员首先要把自己所属的街道弄清楚,然后再把所属区域的用户在数据库中找出来,然后确认投递报纸的用户的姓名、地址、报纸的数量这几个方面,确认之后再进行投递工作。订户在接受报纸时,应当先检查投递员的报纸,是否属于自己要的那一份,并且明确的对快递员的姓名进行了解。在进行核查完毕时,再接收报纸。数据库的概念设计模型根据这个模型来确定订户、投递员以及街道等各方面的关系进行设计,使整个数据模型图真正构建起来之后,就会使投递员能够很迅速的完成自己的工作,也不至于会把那些已经取消订阅报纸的用户给混淆掉,这就把很抽象的一些实体的东西,来构建成为一个实体-模型图,也就使数据库模型的优点充分的展现出来。 1.3 逻辑结构设计 支撑实体-联系图转变为数据库管理系统的数据模型相契合的数据逻辑结构,被称之为逻辑结构设计,因此概念结构转变为逻辑结构的基础之上进行数据库应用设计。 2 多功能数据库的功能发挥 多功能数据库进行设计的基础就是由PB供给的数据库开发工具。并且在数据库中可以看出订户的基本信息,字段名为Qisongshijian的,字段类型为date,字段宽度无标识,字段的含义是送报的第一天;字段名为tiansongshijian的,字段类型如上面相同为date,无自断宽度标识,字段的含义这是停送一天;字段名为fabiaohao的,字段类型为char,字段宽度为12,字段的含义为发行站开出的凭证号;字段名为dizhi,字段类型为char,字段的宽度则是为40,该字段的含义为鼎湖手包的详细地址;字段名为dhxingming,字段类型为char,6个字段宽度,字段含义为订户的姓名;字段名为fenshu,字段类型为Interger,字段的含义为征订份数;字段名为duandaohao的,字段类型为仍未Interger,自断含义则是发行站确定投递员标号;字段名为jiandangriqi,字段类型为date,自断含义为上票日期。这种标识的方式,就是把订户的基础信息全部展现出来,进而说明多功能数据库能够实现多功能。为了实现多功能数据库的发挥的功能种类更加繁多,应当设计物理的参数,进而完成数据库各样事物的查找工作。在进行查询作业时,应当把查询的数据中各样的内在联系弄清楚,然后把各个条件设定的属性连接起来对投影属性进行查询,如若有应当修正或者更新的参数,则是把每一个事务所所要更替的数据参数进行更新和修改,这就提高了各个事务所之间的运转频率和功能需求,并在此基础上把主机中计算机系统的性能和功能都显示出来。 3 结束语 综上所述,多功能数据库的结构分布主要在概念模型和逻辑结构设计这两个流程中表现出来。多功能数据库的基本环节就是从概念模型完成逻辑模型的转变、逻辑模型能够加以优化和设计逻辑模型。这就使多功能数据库的结构更加规范化,不但减少了多余数据的罗列,而且还能更加简单、快速的对数据进行查询工作,这样就使数据库的结构比单一的数据库更具有优越性,并且系统的功能也得到提升。 参考文献 [1]夏吉祥,杨志刚,王海英.城市地下空间工程信息数据库结构的研究与建立[J].地下空间与工程学报.2013. [2]张飞.交通战备系统的数据处理及数据库结构设计[J].科技情报开发与经济.2014. 1 分布式数据库的概念及优势 1.1 分布式数据库的概念 利用计算机网络, 将地域上分离的多个数据库系统在逻辑上关联起来, 形成一个统一的数据库系统, 以便于集中的管理和控制, 这就构成了分布式数据库。它的物理数据库存在于多个不同的计算机网络中, 但是任何地方的用户访问该数据库, 都无法察觉到所使用的数据是由分布式数据库从其他网络数据库中传输过来的。这个系统可以实现对分布式数据库的各种操作, 如建立、查询、维护和删除等。 1.2 分布式数据库的优点 综合而言, 分布式数据库存在以下优点: (1) 较高的可靠性, 相对于传统的集中式数据库而言, 因为数据存在于多个不同地域的数据库中, 即使一个地方的计算机发生故障时, 其他地方的计算机仍可以正常工作, 对故障加以弥补, 整个系统不会受到影响。而当故障排除后, 分布式数据库系统也可以更方便的恢复数据。 (2) 数据共享方便, 可用性好。因为所有分布式数据库逻辑上为一个数据库, 用户可以像使用本地数据库资源一样分享使用所有数据资源。且部分数据库损坏后, 其余数据库仍可正常使用。 (3) 查询效率高, 速度快。因为分布式数据库采用的是分布式的并行处理机制, 所以查询速度很快。 (4) 便于管理。分布式数据库的管理同样采用分布式并行管理机制, 数据库管理员可以在不同的地域对数据库进行管理, 从而均衡的分担了数据库的管理任务。 2 基于SQL Server的分布式数据库构架 在分布式数据库体系结构中, 每个SQL Server均作为独立的数据库服务器。要想在这些分布的服务器上实现数据库的管理 (包括数据库的建立、维护和删除等) , 必须通过注册服务器来实现, 而分布式的查询则要通过链接服务器来实现。其体系结构如图1所示。 2.1 注册服务器 SQL Server是分布式数据库系统, 在后台数据库服务器和管理工具之间采用的是Client/Server机制, 以便于实现管理工具和数据库的分离。注册服务器的作用, 就是对分布在Intranet或Internet上的数据库进行注册, 将这些分布式数据库加入到集成管理工具的作用范围之内。其工作流程如下: 2.1.1 配置被管理服务器的网络实用工具。 这需要在SQL Server程序组的“服务器网络实用工具”中配置包括TCP/IP协议, 默认端口号等。一般, 除非具备相应的知识, 否则不能改变默认的端口号。 2.1.2 配置被管理的服务器数据库中客户机的网络实用工具。 这需要在SQL Server程序组的“客户机网络实用工具”中配置TCP/IP协议和端口号。这里应当注意客户机的端口号应该与 (1) 中服务器配置的端口号保持一致。此外, 若“服务器别名配置”列表中, 找不到 (1) 中要注册的服务器, 还需要通过添加IP地址的方式添加该服务器进入“服务器别名配置”列表。 2.1.3 在管理服务器上完成注册。 管理服务器即实现对分布式数据库进行统一管理的管理服务器, 本文中用“管理服务器”命名。在“管理服务器”中注册被管理服务器步骤如下: 首先, 右击一个服务器或一个服务器组, 选择“新建SQL Server注册”, 启动注册向导。在注册向导中, 从“可用的服务器”列表中选择要注册的服务器, 并单击“添加”;单击“下一步”后选择“使用windows身份验证”或者“使用SQL Server验证”。之后可以将需要注册的服务器分配到制定的组中, 点击完成即可进入连接注册过程。这样一来, 只要在被注册的服务器上为登陆账户设置足够的权限, 便可以实现对被注册服务器的分布式数据库管理。 2.2 链接服务器 虽然通过注册服务器, 可以将不同地域的SQL Server数据库服务器统一为一个逻辑的整体, 但是却不能通过SQL的select、insert、update等语句对这些注册服务器上的数据进行操作, 而必须通过“链接服务器”。这是因为SQL语句只能对本地数据库操作, 对异构数据库或者其他SQL Server数据库上的数据进行操作需要通过OLE DB或者ODBC, 而这必须通过“链接服务器”来实现。 创建链接服务器可以通过数据库管理器或者通过调用系统过程sp_add link edserver。下面介绍在数据库管理器下, 将SQL Server独立服务器创建为链接服务器的方法。 首先, 在SQL Server实例的“安全性”中, 右击“链接服务器”, 创建新的链接服务器。在“服务器类型”中, 选择“其它数据源”。之后选择“Microsoft OLE DB Provider for SQL Server”作为提供程序, 并为新建的链接服务器命名。之后, 在“安全性”标签页中, 建立登陆到服务器的用户间的映射关系。具体操作为在“本地服务器到远程服务器映射”栏的“本地登陆”栏中, 填写本地的登陆账户名, 并勾选“模拟”;勾选“用此安全上下文进行”;最后在远程登陆对话框中输入登陆账户名和密码即可完成链接服务器的创建。创建完成后, 在管理器的链接服务器列表中就可以看到创建的链接服务器了。 关于异构数据源以及使用系统过程创建链接服务器的方法, 在本文的参考文献中有较为详细的介绍。 3 分布式数据库系统具体应用 为了进一步说明使用SQL Sever创建分布式数据库的方法, 我们下面介绍使用SQL Sever具体创建存在分支机构的质检院 (所) 管理的分布式数据库。 3.1 质检机构数据库和表的创建。 这里假设共有三个分支机构。其实三个分支机构都是建立检验报告信息的数据库, 只是机构所处的地点不同而已, 因此, 分布式数据库采用水平分片的形式进行设计。数据库结构一样, 三个分支机构数据库表的建立如下: (1) 分支机构1 (Data Server1中) (2) 分支机构2 (Data Server2中) 与分支机构1数据库的创建方法类似, 只是约束条件不同: CONSTRAINT[CK_WJITEM]CHECK ([class]='分支机构2') (3) 分支机构3 (Data Server3中) 同样只是约束条件不同: CONSTRAINT[CK_WJITEM]CHECK ([class]='分支机构3') 3.2 创建链接服务器。 需要分别在三个分支机构的数据库服务器上建立相应的链接服务器, 以workshop1创建与workshop2、workshop3链接为例。打开企业管理器--安全性--链接服务器--新建连接服务器。创建完毕后, 用同样的方法在workshop2和workshop3上创建与其他服务器的链接。 3.3 建立分布式视图。 要求在所有的分布式服务器上建立分布式视图, 如, 在workshop1服务器上, 通过企业管理器浏览dataserver1中的视图, 并建立新的视图WJVIEW: 用同样的方法在其他两个服务器上也建立分布式视图。这样一来, 我们就实现了分布式数据库管理系统的建立, 在三个分支机构的任何一台服务器上, 只要访问本地视图, 就可以实现对所有数据库内容的访问管理。 4 结语 基于SQL Sever的分布式数据库系统是通过注册服务器与链接服务器来实现的。用户访问和管理非本地数据库, 只需要通过访问本地的链接服务器的本地视图就可以实现。分布式数据库系统, 可以将在地域上分离的多个数据库系统, 整合为逻辑上统一的整体。从而实现“分散的数据”, “统一的管理”。相对于传统的基于文件服务器的多主机共享数据的方式, 传输速度大大提升, 对网络完整性的依赖程度降低, 可靠性也有很大提高。 摘要:当今社会, 网络与信息技术的发展, 对数据库技术的发展提出了更高的要求。如何实现跨地域的分散数据库的统一管理与访问, 分布式数据库系统为解决这一问题提供了很好的方法。本文初步探讨了分布式数据库系统的概念与优势, 并介绍了分布式数据库系统的体系结构和具体应用。对相关工程技术人员有一定参考价值。 关键词:分布式数据库,SQL Sever,注册服务器,链接服务器 参考文献 [1]龚元明, 吕宜宏.SQL Server分布式对象体系结构及其应用[M].北京:理工大学学报, 1998 (6) :第41-44页. [2]张旭中.分布式数据库查询优化技术[J].电子科技大学, 2003. [3]陈国红.数据库技术及其发展趋势[M].纺织高校基础科学学报, 2001 (3) :第244-248页. 随着石油、煤炭资源等化石能源的使用产生了大量的CO2, 引起全球变暖问题, 使人类的生存受到威胁。天然气、风能、太阳能这些“绿色能源”由于其具有清洁、无污染、可再生特点引起全世界的关注, 其中分布式能源作为一种可以有效利用新能源的发电形式, 成为研究的热点。我国微网的管理系统研究尚处于起步阶段, 目前清华大学、中国科学院电工研究所、天津大学、河海大学等单位相继开始了微网管理系统技术的研究, 同时微网的能量管理系统技术已经慢慢是国内近年的研究热点。本文主要对分布式微网能量管理系统结构和能量管理方案的介绍和分析。 2 微网管理系统概念 分布式微网能量管理系统 (Microgrid-EMS, 简称MEMS系统) 是分布式能源 (分布式DR) 的控制核心, 以计算机为基础的现代电力系统的综合自动化系统。分布式微电网自身容量较小, 加上光伏、风电、和负荷的变化, 分布式能源本身具有波动性和间歇性, 且具有大量的电力电子设备接口, 电力电子设备具有较快的反应速度、输出阻抗小、过载能力低等特点, 所以增加了微网控制的难度, 微网电压和频率的变动较大, 微网能量协调控制通过对微电源的P/Q控制、V/f控制和下垂控制进行组合对微网整体进行协调控制, 控制系统需要统筹各个分布式电源运行方式, 在电力系统中扮演重要的中间角色, 并完成系统内部各微电源之间、独立微网与主微网、多个微网间、区域微网间的多种协作和管理。 3 微网管理系统结构 分布式微网能量管理系统一般分为微网就地设备控制器层、中间控制层能量分析和管理层的分布式能量管理系统 (见图1) 。 3.1 系统分层结构 微网就地控制器层主要包括燃气分布式电源控制器、光伏逆变器、储能PCS设备、负荷控制器;中间控制层包括数据通信模块、运行控制模块、储能管理模块、负荷管理模块;能量分析和管理层包括数据通信与监控模块、数据监测和分析、性能计算、经济调度和优化运行模块、预测模块和控制策略管理等。 不同微网的就地设备控制层之间不需要通信, 而不同中间控制层之间实现数据交互和通信, 根据不同微网之间的运行和负荷特性进行协调控制, 微网能量分析和管理系统将所有中间控制层上送的数据进行汇总和分析, 并根据微网运行情况和需求发送指令至中间控制层, 实现能源的综合分析和管理。 3.2 系统分层管理 3.2.1 微网就地设备控制层 微网就地设备层主要完成实时数据采集、分布式电源输出控制、负荷控制, 并将数据上送至中间管理层。 数据采集主要包含分布式电源本体、储能系统、光伏系统和负荷系统的实时数据, 主要包含电气参数和热力参数, 具体见表1。 微网就地设备控制层的控制主要是对分布式电源的输出功率、出力、燃料进气量、冷热负荷和接收运行模式指令的控制, 运行模式控制主要有PQ运行模式、VF运行模式、下垂特性运行模式, 根据用户需求和电网状态调节微网在并网、离网和并离网切换的运行模式。 3.2.2 微网中间控制层 微网中间控制层接收就地控制层发送的设备运行数据, 通过分析制定控制策略, 对各控制器进行管理和调度。当检测到大电网故障时, 发命令给就地设备控制层, 实现微网与电网断开, 并切换到并/离网控制模式, 微网进入孤岛运行模式。当检测到大电网恢复后, 运行控制模块指令切换到离/并网模式, 微网进入并网运行。微网中间控制层储能系统的充放电状态进行检测, 根据系统需求对蓄电池进行充放电管理, 并对储能装置的运行方式 (PQ、VF) 、输出有功、无功功率进行控制。中间控制层对微网内的负荷根据重要程度分为敏感负荷、一般负荷、可中断负荷, 根据检测到的负荷大小分配微电源的处理, 保持微电源与负荷之间的平衡, 在微电网孤网运行时, 切除可中断负荷或一般负荷, 保证敏感负荷的正常供电。 3.2.3 微网能量管理层 能量管理层采集中间控制层上传的微网实时数据信息、分布式电源信息、负荷信息等, 实现微网的调度、管理和控制, 实现冷、热、电各种能源的综合优化, 跟根据用户需求和电网状态, 实时调整控制策略和运行模式, 实现微网的经济和安全稳定运行 (图2) 。具体主要有以下几个方面。 (1) 数据通信和管理。完成能量管理层与中间控制层的数据信息通讯, 将中间层上传的数据进行画面显示、告警处理、曲线显示等, 包含传统电网能量管理系统中SCADA功能, 如报表打印、数据统计、历史数据存储、权限管理等。 (2) 预测功能。主要包含供能预测和负荷预测。其中供能预测是指太阳能发电、风能发电单元的短期及长期发电能力, 根据分布式电源的类型、一次能源的变化、发电费用、环境因素、检修周期等预测分布式电源出力。负荷预测包括冷、热、电负荷预测, 需要根据负荷长期历史信息和气象信息, 通过预测算法来预测下一时刻负荷信息。根据不同能源价格情况和电网状态不断优化运行方式, 得到最优最经济的运行工况。 (3) 经济调度和优化运行。主要指微网并网运行时, 不仅要考虑分布式DR提供冷热电能、有效利用可再生能源、保护环境、减小燃料费用等, 还需要考虑微网与大电网之间的电能交易。在满足微网安全性、可靠性和供电质量要求条件下, 考虑购售电价、微网安全性、各分布式电源技术性能、环保等因素, 经济调度各分布式电源和储能设备的功率以及与大电网之间的功率交换, 实行微网运行的经济成本最小。 (4) 控制策略管理。 微网系统采用了大量电力电子元件, 且存在多种运行模式, 微网系统旋转储能较低, 缺乏负荷跟踪能力, 在并网运行和孤岛运行模式变化下, 与传统电网相比缺少稳定性, 微网系统的过负荷能力与传统电网相比很差。 所以对微网系统采用多种控制策略和控制方法, 对提高微网稳定性具有重要意义。 分布式DR控制方法主要有PQ控制、下垂控制和VF控制三种。在正常情况下, 微电网并网运行, 所有分布式DR采用PQ运行方式, 此时为电网的电压和频率就是微网的电压和频率, 微网内部的分布式电源工作在电压源或电流源状态, 在不同控制策略的控制下, 调整各自功率输出。微网中分布式电源提供的功率满足不了微网中负荷的需求时, 微网可以从配电网吸收能量, 反之, 当微网中分布式电源功率过剩时, 微网可以向配电网输送能量。当配网出现电压骤升、骤降、不平衡和谐波等电能质量问题或有计划检修时, 微电网转入孤岛运行模式, 此时一个分布式DR采用PQ作为主电源运行, 而其他分布式DR采用VF运行模式, 此时的电压和频率由主电源负责调节。 4 微网能量管理和控制方案 微网能量管理系统在并网运行方式下, 分布式能量管理系统控制微电源采用PQ运行方式, 并根据用电负荷、供热负荷、供冷负荷, 调节分布式DR烟气量、输出功率、调节光伏逆变器运行方式、通过BMS和PCS调节储能系统存储状态, 并根据电网的电压、频率、电流和输入功率实现调节微电网中间层的控制策略 (表2) 。 在孤岛运行方式下, 分布式能量管理系统控制一个稳定的微电源采用VF, 其余分布式DR采用PQ控制运行方式 (表3) 。 微网能量管理系统根据分布式电源的类型、一次能源的变化、发电费用、环境因素、检修周期情况预测分布式电源出力, 不同能源价格情况下的经济运行情况, 优化运行方式, 得到最优最经济的运行工况。 根据能源价格和供能价格, 微网管理系统进行运行统计数据实时计算, 根据表4可以计算出系统供能成本、收入、发电量、供热量、供冷量, 并根据一次能源价格、电价、蒸汽价格和冷价格进行实时统计和调整, 指导微网供能系统优化运行。 5 结语和展望 随着分布式微网和多能源互补微网的快速发展, 而微网的能量管理和控制技术是微网的核心, 同时也是微网技术研究重点和难点, 本文对分布式微网能量管理系统结构和能量管理方案进行介绍和简要分析, 研究了微网管理系统分层控制结构、优化管理方案和控制策略。 未来的微网结构设计应以其结构特性为基础, 考虑基本因素对微网结构影响, 在满足用户对电能多样性需求以及微网灵活配置功能实现的基础上, 微网结构设计还需要考虑运行的经济性、可扩展性以及易维护等, 并将做进一步研究。 摘要:指出了随着分布式微网和多能源互补微网的快速发展, 微网的能量管理和控制技术成为了微网的技术核心, 同时也是微网技术研究重点和难点, 对分布式微网能量管理系统结构和能量管理方案进行了简要分析, 研究了微网管理系统分层控制结构、优化管理方案和控制策略。 关键词:分布式微网,能量管理,分层结构,控制 参考文献 [1]杨秀媛, 黄丹, 申洪.多能源互补独立电力系统的控制策略仿真研究[J].中国电机工程学报, 2013, 33 (4) :156~162. [2]黄文焘, 邰能灵, 范春菊.微电网结构特性分析与设计[J].电力系统保护与控制, 2012, 40 (18) :149~155. [3]张连芹, 邰能灵.微网能量管理方案研究[J].水电能源科学, 2013, 31 (4) :183~186. [4]汪少勇.基于分布式电源的微网的设计与运行[J].电力自动化设备, 2011, 31 (4) :120~123. [5]周念成, 邓浩, 王强钢.光伏与微型燃气轮机混合微网能量管理研究[J].电工技术学报, 2012, 27 (1) :74~83. 在分布式存储系统中,对数据的拷贝能够增强性能,提供高可用性和容错能力,因此它是保证分布式系统有效性的一个关键技术。将创建的多个数据副本合理地分布在多个服务器节点上,用来分担访问请求的处理任务,可以在一定程度上降低节点失效率,缩短用户响应时间[1,2]。本文将讨论在数据复制过程中,副本管理器采用何种复制方式能够更准确高效地完成数据副本的更新工作,分布式系统的复制模型,以及数据拷贝的方式。 1 复制数据管理 在分布式存储系统中不仅数据量巨大,而且为了保证系统的可靠性,每份数据对象的副本数量也很多,因此,维护各个节点中副本的一致性就成了一个很重要的问题[3]。在计算机科学领域中,数据的一致性问题已经存在了很长的时间,构成了分布式计算的基础[4]。而实际上,统计学和管理科学是对于一致性问题较正式的研究源头[5]。 1.1 数据复制的基本原则 当执行一个操作时,用户不需要知道存在多少个数据副本,仅仅对其中一项操作,而不管事实上的操作可能是针对一个以上的拷贝一起进行的,这是数据复制的其中一项原则即复制透明性。一致性是数据复制的另一项基本原则,然而,在不同的具体情况下,数据一致性在强度上是会有所不同的。给定对象的副本不一定是完全相同的,至少不要求在任何时间点都一样,一些副本可能已经更新了最新的数据,但是一些副本可能还没有收到这个更新。但是如果不同的客户对同一个对象发出请求,却得到不一致的结果,这通常是不可接受的。 1.2 系统模型 副本由不同的副本管理器(Replica Manager,RM)来管理,副本管理器是包含了特定计算机上的副本,并且直接操作这些副本的组件。副本管理器所组成的集合可以是静态的,也可以是动态的。在动态系统中,新的副本管理器可能会不断出现,副本管理器可能崩溃,接着他们被认为离开了系统。而这在静态的系统中不允许出现新的副本管理器,也不会出现新的副本管理器,但它们可能暂停工作很长时间。 如图1所示副本管理的一般模型,副本管理器集合给用户提供了某种服务。副本管理器存储在服务器上,前端(Front End,FE)组件作为用户访问服务器的门户,每个客户发出的请求首先被一个前端组件处理,它的作用是由消息传递的方式,代替客户,与多个副本管理器进行通信,而不是直接让客户进行通信。这种手段保证了复制透明性[6]。 副本对象上进行的一个操作通常涉及5个阶段,但是对于不同类型的系统,每个阶段的动作都是不一样的。 (1)请求。前端将来自客户的请求分给一个或多个副本管理器。一种形式是前端只和某一个副本管理器通信,然后由这个副本管理器与其他副本管理器通信;另一种形式是将这些副本管理器看成一个组,由前端将请求组播到各个副本管理器; (2)协调。接到请求后,副本管理器需要进行协调来保证执行的一致性,它们会对是否执行请求达成一致,并同时决定该请求相对于其他请求的次序; (3)执行。副本管理器执行请求,也包括执行的效果可以去除的试探性请求; (4)协定。副本管理器对将要提交的处理结果达成一致; (5)响应。一个或多个副本管理器给前端应答。一种形式是由一个副本管理器响应前端,还有一种情况是由前端接受一组副本管理器的应答,然后选择或综合成一个结果返回给客户。 副本的撤销也是一种必要情况,引起副本撤销的原因有很多,例如副本所在节点的存储空间不够;副本生命周期结束;副本所在节点的处理能力达到极限;副本被访问的频率很低。生成一个副本的代价是比较高的,所以无谓的副本删除要尽量避免[7]。 1.3 副本复制策略 副本复制策略有5种,路径复制、源请求复制、优先级复制、邻居节点复制和随机复制[8,9]: (1)路径复制。将副本发送给请求路径上的所有节点。实现原理简单是它的优点,也很方便数据的查找;但是创建的副本数量会远远大于需求量,这就会增加维护副本的一致性的开销; (2)源请求复制。只将副本发送给请求节点。当对目的节点请求时,若目的节点没有过载,那么就可以读取数据,若目标节点没有多余的能力处理,就创建一个新副本,并且是在请求节点未过载的情况下,才把创建的新副本发给它,同时通知路径上所有节点此请求节点上也存储了该数据副本; (3)优先级复制。优先将副本发送向已经有副本的节点,直至这些节点达到饱和,再选择其他节点来存储数据副本; (4)邻居节点复制。保存所有网络数据的访问历史记录,新建一份访问率较高的副本,并发送给频繁请求该副本的节点的邻节点,当该节点再次请求访问该数据时,就可以到它的邻居节点上直接读取数据; (5)随机复制。在选择一个或多个节点来存放数据副本时,采用随机的方式,而随机选择的对象分为两种,请求路径上的节点以及整个网络的节点。 2 容错服务 如果在副本管理器发生故障的条件下,服务还能够保持响应用户请求,同时用户并不能区分该服务是在副本数据上实现的,还是被一个正确的副本管理器提供的,那么这个基于复制的服务就是正确的。 在可靠性理论中,一般都会用RAS来描述系统的健壮与完整性。RAS也就是可靠性(Reliability),可用性(Availability)和可维护性(Serviceablility)[10]。 2.1 线性化能力 假设一个系统中的两个副本管理器分别位于A和B两个计算机上,它们都维护x和y两个银行账户的副本。客户在本地计算机上查看和更新账户,如果本地的服务器出现故障,那么使用另一个服务器。当对客户的操作响应结束后,副本管理器会在后台相互传播更新。x和y的初始余额为0.00。如表1所示。 客户1在本地的副本管理器A上更新账户x余额为1.00,然后更新y余额为2.00,但是此时A发生故障,于是客户1将这个操作放在副本管理器B上。现在客户2在他的本地副本管理器B上读取数据,查询到y余额为2.00,但x仍为0.00,这是因为A发生故障,应用在它上的x的更新还没有传递过来。 这个执行不符合银行账户的规约,也就是不正确的,而对于复制对象有不同的正确性准则,最严格的正确系统是可线性化的,这个性质就是可线性化能力。 一个被复制的共享对象服务,如果对于任何执行,存在一个由全体用户发出的执行序列,并满足下面的两个准则,那么这个服务就认为是可线性化的: (1)操作的交错序列,符合对象的单个正确副本所遵循的规约。 (2)操作的交错执行次序与实际运行中的次序实时一致。 2.2 顺序一致性 线性化能力中要求的实时性是现实中所需要的,客户应该收到最新最近的数据。但是这是一种理想条件,受到网络延迟及其他因素的制约。一个更能满足现实需要并且相对严格的条件是顺序一致性(Sequential Consistency)。在不要求实时的情况下,这个条件抓住了处理请求的顺序实质。它规定:如果所有的进程以一定的顺序执行操作,每一个进程的操作都以程序规定的顺序出现,则任何操作的结果都是一样的。顺序一致存储器不保证读返回的值是1 nm,1 ms甚至1 min以前另一个进程写入的,它只保证所有进程以相同的顺序看见存储器访问[11]。 一个被复制的共享对象服务,如果对于任何执行,存在一个由全体用户发出的执行序列,并满足下面的2个准则,那么这个服务就认为是顺序一致的: (1)操作的交错序列符合对象的单个正确副本所遵循的规约。 (2)操作在交错执行中的次序,和在每个客户程序中执行的次序一致。 2.3 被动复制 在图2中的复制模型中,任何时候都有一个主副本管理器和至少一个次副本管理器,称为“从管理器”或“备份”。这个模型的实质就是在上面2.2节中提到的前端与服务交互方式中的一种情况,前端只和主副本管理器通信,然后由主副本管理器执行操作并将更新操作发送到服务中的其他备份管理器。如果主副本管理器出现故障,那么将从剩余的备份管理中提升一个称为新的主副本管理器。 在主备份管理器出现故障时,如果某个备份变成新的主备份管理器并且新的系统配置从故障点正确接管的话,即满足下面条件时,系统仍具有线性化能力: (1)主副本管理器被惟一的备份副本管理器代替 (2)当接管主副本管理器时,剩余的副本管理器在哪些操作已经被执行上达成一致。 被动复制的缺点是开销相对较大,试图同步通信在每次组播时需要要几个回合的通信,而且当主副本管理器发生故障时,组通信系统需要进行协商并传递试图,这会导致更多的延时。 考虑到当用户较多,与服务通信数量较大的问题,可以将这个模型做一些改进,客户可以将读的请求发送给备份副本管理器,这样可以减轻主副本管理器的负载,虽然不能保证线性化,但是仍能提供具有顺序一致性的服务给用户。 2.4 主动复制 如图3中所示的主动复制模型中,副本管理器是一个状态机,所有副本管理器被组织成一个组,并充当同等的角色。前端将用户发出的请求消息组播到副本管理器组,组内的副本管理器按相同但独立的方式来处理请求并作出响应。 可以看出任何一个副本管理器的崩溃都不会对服务的性能产生影响,因为剩下的副本管理器能继续正常处理请求并做出应答。这个系统具有顺序一致性,所有的副本管理器处理同样次序的请求,组播的可靠性保证每一个正确的副本管理器处理同样的请求集合,全序保证以同样的顺序处理他们。主动复制系统并不具有线性化能力,因为副本管理器处理请求的全排序未必和客户发出这些请求的实时次序相一致。 3 结语 本文分析了分布式系统中的用于复制数据管理的基本的体系结构模型及它的执行过程,进而讨论了向用户提供容错服务的复制模型,并在这个基础上提出了一些改进。然而,现实中的实际情况是多变而复杂的,在解决实际问题时需要根据具体情况做出相应的处理,才能使得系统有更好的可用性和安全性。 参考文献 [1]徐小龙,邹勤文,杨康.分布式存储系统中数据副本管理机制[J].计算机技术与发展,2013(2):245-249. [2]葛建清.异质结构化对等网络动态副本访问负载均衡策略研究[D].上海:华东师范大学,2010. [3]王泰格,邵玉如,杨翌.分布式存储系统介绍及其数据一致性实现方法探究[J].企业技术开发,2012(8):18-19. [4]LYNCH N A.Distributed algorithms[M].San Franciso,CA:Morgan Kaufmann,1997. [5]DE GROOT M H.Reaching a consensus[J].American Statistical Association,1974,69(345):118-121. [6]COULOURIS George,DOLLIMORE Jean,KINDBERG Tim.Distributed systems concepts and design[M].金蓓弘,马应龙,译.北京:机械工业出版社,2013. [7]陈赓,余宏亮,张堃.对等网络中基于位置信息和文件流行度的自适应复本管理机制算法[J].计算机学报,2009,32(10):1927-1937. [8]LüQ,CAO P,COHEN E,et al.Search and replication in unstructured peer-to-peer networks[C]//16th International Conference on Supercomputing.New York:ACM Press,2002:11-15. [9]BASSAM A A,CHEN W,ZHOU B B,et al.Effects of replica placement algorithms on performance of structured overlay networks[C]//Parallel and Distributed Processing Symposium.Nice:IPDPS,2007:111-117. [10]王伟娜.分布式存储系统中容错子系统的设计与实现[D].沈阳:东北大学,2008. 计算机应用系统通常是体系结构和技术的结合,它们所具有的一个共同点是其分布式本质。分布式系统是一个动态的计算机集合,这些计算机由网络连接到一起,运行专门设计的软件,为用户提供集成式计算机环境。分布式系统的范围包括从支持商业处理的单用途应用程序,到服务于大范围用户并具有广泛资源的全方位服务的计算机设备。 早期客户机/服务器模型是是两层C/S体系结构,在此体系结构中,既可以方便,统一地对数据进行管理,又可以合理有效地利用现有的硬件资源,平衡系统的负荷。但是两层的C/S结构并不能适用所有的情况,因为某些业务不能依赖软件厂家直接提供的功能,而必须定制,这样的程序很难进行移植。因此建立一种新的工作方式,进一步分离客户层,使客户机上的所有处理过程不直接操作数据库管理系统,这样就可以把客户端的处理分为应用程序和业务逻辑处理。这种处理导致了三层的C/S结构的出现。客户层负责可视化界面,进行人机交互处理;中间层进行业务逻辑处理;而服务器层则负责数据的管理。采用三层C/S结构有下述优点:1)可以对任务进行合理分配。2)有利于提高系统的性能,使中间层的业务逻辑处理与数据层的业务数据紧密结合在一起,而无需考虑客户的具体位置。3)添加新的中间层服务器能够满足新增客户机的需求,可以大大提高三层系统的可伸缩性。4)在客户机的应用程序和数据层的数据库之间增加中间层,可以使客户机的应用程序独立于数据层的数据库。5)可以将业务逻辑集中到一起,有利于系统的实施。 在三层系统体系结构中,客户层和数据层都己被严格定义,而中间层未明确定义。因为中间层包括了所有与应用程序界面和持久数据存储无关的处理,我们可以把中间层划分为许多服务程序,将每一个服务程序都视为独立的层,这样原来的三层体系结构就变为N层体系结构。典型的N层结构就是基于Web的应用程序,如图1所示。 由于客户/服务器应用程序跨越了多台计算机,所以需要TCP/IP或者IPX网络协议来连接应用程序的各个节点。N层系统需要更复杂的设备来实现跨网络的通信。因为在客户应用程序和中间层服务之间不能象2层系统那样以一种通用的结构方式实现;相反,客户应用程序需要一种通信模型,以协调客户应用程序的不同开发平台。这种模型即为客户应用程序的中间件。最早被广泛认同的中间件技术是远程过程调用,使用远程过程调用,客户应用程序可以调用在远程计算机上执行的C语言函数。 从分布式应用系统的角度来看,一个网络项目最少分三层:外观层、事物逻辑层、数据服务层。多层结构比两层结构具有更大的灵活性。首先,三层可以运行在不同的机器上,如果应用是业务逻辑比较复杂,可以使用高配置的计算机来运行业务逻辑层;如果应用的数据量很大,就可以采用分布式的数据库来作为应用的数据存储结构。其次,只要层与层之间的接口保持不变,那么某一层的变化不会影响到其他层,当层与层之间是松散藕合时,可以简单地替换组件(或整个一层),以适应变化了的需求。 分布式构架的网络整合平台,主要有Microsoft整合的Windows与因特网的平台一Windows DNA与Sun公司提出的基于Java2平台,由一系列中间件服务组合起来的J2EE(Java2Enterprise Edition)体系结构。 Windows DNA的全名为Windows Distribute Internet Architecture,即Windows的分布式互联网体系结构,是微软整合了Active X,WWW技术(如VBScript,DHTML等)平台的总称。微软利用IIS以及WWW作为系统前端来处理用户互动界面,以COM架构作为中间层来处理企业程序,以SQL Server作为后端储存数据的服务器,以实现三层式(Three-tier)或更多层系统的开发环境。三层式系统开发的好处在于,系统的界面、系统内部的程序以及企业后端的储存数据库可以分开。再者,因为整个系统是整构在网络上的,因此用户端只需有个普通的IE浏览器就可以在任何地方存取到系统,以减少最为繁杂的用户管理工作。 SUN所引导发起的J2EE体系则是一种利用Java2平台来简化诸多与多级企业解决方案的开发、部署和管理相关的复杂问题的体系结构。它是由一系列中间件服务组合起来的体系,J2EE作为中间件,提供了强大的服务功能,使开发人员只需要关注商业逻辑,而不需要注意其他的细节,因而能够加快开发速度,提高系统的运行效率和稳定性。J2EE技术的基础是核心Java平台或Java2平台的标准版。J2EE具有如“编写一次,到处运行”的特性,方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全机制等等。 在Windows DNA之后,微软便开始将研究重心转到一个新的计划——NGWS(Next Generation Windows System,新一代的Windows系统)即微软所推出的.NET。Microsoft.NET是微软于2000年6月发布的下一代软件和服务战略,其目的是整合新的设备和技术,建立全新的网络协议和格式,协调众多的智能设备与网站,从而提供更简单,更为个性化,更有效的互联网服务。 2 NET的开发工具 .NET开发平台在开发人员用以创造应用程序的工具和技术上做了根本的变化。Visual Studio.NET就是微软公司为实现其.NET技术而开发的一整套工具组件,它提供了一个用于在该平台上创建应用程序的可视化集成开发环境(IDE)。集成开发环境是目前计算机语言产品都具备的一种工作环境,是进行程序设计的工作场所。在集成开发环境中,程序员可以对源程序进行编辑和编译,对目标程序进行调试运行。 2.1 Visual Studio.NET 2002年2月,微软发布了Visual Studio.NET(简称VS.NET)的最终版本,这是微软极力推荐的创建.NET应用程序的软件开发工具集。作为微软的下一代开发工具,它和.NET开发框架紧密结合,遵循.NET Framework,利用通用语言运行环境和公用层次类库提供加速开发过程的高效工具。VS.NET主要用于开发企业规模的Web应用程序以及高性能的桌面应用程序。 在开发网络应用程序时,以前开发人员只能在Web页中嵌入VB Script或J Script。现在,Web页可以用VS.NET中的任何一种语言来生成。IDE也提供了从Web表单控件中创造Web页的拖放式GUI(Graphical User Interface,图形用户界面),它是完全动态的,易于编码,能自动处理状态问题,根据浏览器兼容能力生成纯HTML,并且将用户界面问题和编码问题相分离。 在VS.NET环境中,所有控件的代码,包括格式化代码,都可以显示出来,这样便于高级开发者修改表单和控件的缺省行为,并且在应用程序的外观上给予它们更紧凑的控制。此外VS.NET还提供了完全集成的数据处理,尤其是XML和数据库集成,通过和数据源相连结合起来,大大简化了对来自不同种类的数据源的联合数据(例如将来自Oracle数据库的雇员数据合并到基于XML的销售成绩表中)的处理。使用.NET框架的开发工具,大大提高了开发者的效率,集成了多种语言支持;简化了服务器端的开发,提供了高效地创建和使用网络服务的方法,使开发人员能够快速构建和部署强健的、可靠的应用程序[1]。 2.2 C# .NET开发框架支持多种语言,Visual C#.NET作为.NET Framework的主力开发语言,这是由C#的特点决定的[2,3,4]。 1)功能性和高效性。C#是Microsoft公司为推行.NET战略而发布的一种全新的编程语言,它的前身是C++语言。这种语言给开发人员提供了大量灵活的进行底层控制的能力,但这种灵活性是以开发的效率为代价的。比如指针操作引起的不安全因素,内存回收需要程序员介入等,使得用C++开发软件的困难程度比其他语言要高得多。由于与生俱来的复杂性和漫长的开发周期,开发人员都期望有新的、更好的开发语言,这种新的语言应能兼有功能灵活性和开发效率特点,融C++的强大和Visual Basic的简易于一体。 2)包容不断涌现的Web编程标准。在目前国际互联网应用日益广泛的情况下,越来越多的解决方案需要使用不断涌现的Web标准如超文本标识语言(HTML)、可扩展标识语言(XML)和简单对象访问协议(SOAP)等。现有的开发语言都是在Internet或者说是Web发展初期开发的,它们不可能提供适合于新的Web开发的技术支持。C#在保证了强大的功能和灵活性的同时,给C和C++带来了类似于VB的快速开发,并且它还针对.NET作了特别设计。C#可以快速的构建从底层系统级到高层商业组件,使用C#语言构建的这些组件,能够很容易的转换为Web Services,从而可响应来自Internet的与平台和开发语言无关的访问。XML是在Internet上传输结构化数据的标准方法,为了提高性能,C#允许XML数据直接映射为结构数据类型以代替类,这是一个处理少量数据的更高效的方法。这些特性结合起来使得C#成为优秀的下一代网络编程语言。 .NET为编写网络化仪器软件,提供服务器端脚本编写环境,使用它可以创建和运行动态交互的Web服务器应用程序,它能够把HTML、脚本、组件等有机地组合在一起,形成一个能够在服务器上运行的应用程序,创建以网页形式通过Internet发布的网络化仪器。在C#的Web编程中,可以用C#编写自己的服务器端组件,除了传统组件外,还包括那些具有特殊功能的可编程组件。使用它们可以更自由、更容易地进行数据绑定,具有强大的跨平台性。 3 结论 本文详细介绍网络化仪器的核心技术——.Net分布式技术,它基于分布式系统体系结构,采用.NET框架公共语言运行环境和.NET类库两个主要部件,并以Visual Studio.NET和C#为开发工具。 参考文献 [1]艾迪明.NET框架体系结构[J].计算机工程与应用,2003,(2). [2]Adrian,等,著,王海峰,等,译,C#.NET Web开发指南[M].北京:机械工业出版社,2003. [3]陆昆仑,等,著,用C#.NET开发网络服务[M].北京:希望电子出版社,2003. 【数据中心系统分布结构】推荐阅读: 分布式数据库系统07-18 分布式数据流系统分析07-16 数据中心系统平台06-22 数据中心的布线系统10-14 数据挖掘系统结构12-03 新闻中心系统结构10-31 数据结构课程设计—西文图书管理系统12-19 空间分布数据11-13 分布数据查询07-03 分布数据库09-26数据中心系统分布结构 篇4
数据中心系统分布结构 篇5
数据中心系统分布结构 篇6
数据中心系统分布结构 篇7
数据中心系统分布结构 篇8
数据中心系统分布结构 篇9
分布式系统数据复制的研究 篇10
数据中心系统分布结构 篇11