(电力系统及其自动化专业论文)基于组件的电力系统分析软件的研究开发.pdf_第1页
(电力系统及其自动化专业论文)基于组件的电力系统分析软件的研究开发.pdf_第2页
(电力系统及其自动化专业论文)基于组件的电力系统分析软件的研究开发.pdf_第3页
(电力系统及其自动化专业论文)基于组件的电力系统分析软件的研究开发.pdf_第4页
(电力系统及其自动化专业论文)基于组件的电力系统分析软件的研究开发.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(电力系统及其自动化专业论文)基于组件的电力系统分析软件的研究开发.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华中科技大学硕士学位论文 a b s t r a c t c o m p o n e n tt e c h n o l o g yi sap o p u l a rs o f t w a r et e c h n o l o g y , c o m i n g a f t e ro b j e c t o r i e n t e d t e c h n o l o g y i nt h i sw a y ,s o f t w a r es y s t e mi sd e v e l o p e db yc o m p o s i n gs o f t w a r em o d u l e s c o m p o n e m - b a s e ds o f t w a r ee n g i n e e r i n gm a k e s s o f t w a r es y s t e m so p e na n de a s yt ou p d a t e a n dm a i n t a i n t h u ss h o r t e nd e v e l o p m e n tp r o c e d u r ea n di m p r o v e ss o f t w a r eq u a l i t y t h e a u t h o rc a r e f u l l yr e s e a r c h e dc o m p o n e n tt e c h n o l o g ya n di t sa p p l i c a t i o ni np o w e rs y s t e m a n a l y s i ss o f t w a r e a n dp r a c t i c e dc o m p o n e n t b a s e d s o f t w a r ee n g i n e e r i n g , t h es t a b i l i t yo fp o w e rs y s t e mi so n eo f t h em o s tc o n c e m e d p r o b l e m s o ft h eo p e r a t o r s f r o m19 7 0 8 0 s b l a c k o u t sa s s o c i a t e dt ov o l t a g ei n s t a b i l i t yp h e n o m e n ah a p p e n e di nm a n y c o u n t r i e s ,w h i c h a t t r a c t e d g r e a t a t t e n t i o n so fp o w e r e n g i n e e r s a n ds c h o l a r s i t sa n e f f e c t i v ew a yt oa v o i dt h ev o l t a g ec o l l a p s ei n c i d e n tt ou s et h et h e o r yo fs t a t i cv o l t a g e s t a b i l i t ya n a l y s i si np l a n n i n ga n do p e r a t i o n t h i st h e s i sf i r s t l yg i v e sas u m m a r y o ft h es t a t e o fa r ti nr e s e a r c ha n da p p l i c a t i o no nv o l t a g es t a b i l i t ys t a t i cs e c u r i t ya s s e s s m e n t ,t h e n s i n g u l a r v a l u ea n a l y s i sm e t h o d ,s e n s i t i v i t ya n a l y s i sm e t h o da n dm a r g i ni n d e xa n a l y s i s m e t h o di s s i m p l yi n t r o d u c e d b a s e do nt h er e s e a r c ho nt h et h e o r ya n da p p l i c a t i o no f i m i c r o s o f tc o m c o m p o n e n tt e c h n o l o g y ,c o mc o m p o n e n tt e c h n o l o g yi si m p l e m e n t e di n t h ed e s i g na n dd e v e l o p m e n to fv s a ( v o l t a g es t a b i l i t ya n a l y s i s ) t h ea d v a n t a g e so f c o m p o n e n tt e c h n o l o g y a r e a n a l y z e d i n t h i st h e s i sa n dt h e s h o r t a g e s o fc o m p o n e n t t e c h n o l o g y ,s u c ha st h ec o m p o n e n t m a r k e ta n dc o m p o n e n tt e c h n o l o g ya r es t i l lt om a t u r e , i sa l s op o i n t e do u t a tl a s t ,t h ev s as o f t w a r ei su s e dt oc a l c u l a t et h ep o w e r f l o w , a n a l y z et h ev o l t a g e s t a b i l i t yo fc e n t e rc h i n ap o w e rs y s t e m i k e yw o r d s :c o m p o n e n tt e c h n o l o g y v o l t a g es t a b i l i t y c o m c o m p o n e n tt e c h n o l o g y s t a t i cv o l t a g es t a b i l i t ya n a l y s i s l l 华中科技大学硕士学位论文 1 1 电压稳定分析研究的现状 1 绪论 经济的发展和人民生活水平的提高,使得电能的需求量逐步增大。伴随着技术 的进步,现代电力系统进入了大电网、大机组和远距离输电的时代。然而,多数电 厂远离负荷中心。由于环境和资金的限制,新增输电走廊的建设落后于装机容量的 增加。因此,电网常运行在接近于极限的状态。同时,由于用户提高了对电能质量 要求,使得o l t c 等动态调节电压的装置在现代电网中得到了广泛应用。此外,空 调等动态负荷在整个负荷中所占比例也在增大。i 见代电网的以上特点,使得电力系 统比较容易遭受到电压崩溃事故的威胁。 电力系统电压稳定性问题虽然早在2 0 世纪4 0 年代苏联学者马尔科维奇就己提 出,但出于当时电力系统的机组容量、网络规模、电压等级及其输电距离有限,直 到7 0 年代这一研究领域的进展很慢。随着电力系统规模的不断扩大和互联网络的增 加,电力系统能够更经济、更有效的提供高质量的电能来满足人民生产和生活同益 增长的对电能的需求,同时面临的电力系统稳定性问题也更加严重。7 0 年代以来世 界上一些大电网相继发生了以电压崩溃为特征的系统瓦解事故。典型的电压崩溃事 例有:1 9 7 8 年1 2 月1 9 日法国电网发生崩溃,造成全网7 5 的负荷停电,停电时间 最长达8 小时。1 9 8 2 年8 月4 日比利时电网发生电压崩溃,事故中负荷停电2 4 0 0 m w , 停电时间最长达1 小时2 8 分。1 9 8 3 年1 2 月2 7 日瑞典电网发生电压崩溃,全网6 7 的负荷停电,全部恢复时间7 小时。1 9 8 7 年7 月2 3 日日本东京电网发生电压崩溃, 事故中负荷停电8 1 6 8 m w ,停电时间最长达3 小时2 1 分。1 9 9 6 年7 月2 日和8 月 1 0 日美国西部电网两次发生电压失稳。这些电压崩溃事故导致了大面积停电,造 成了巨大的经济损失和社会生活紊乱,使电压稳定这个长期被忽视的课题变成了关 注的热点,国内外许多学者对此进行了大量深入的研究。文献【2 】给出了较详细的关 于电压稳定问题的文献目录。 电压稳定静态安全分析方法都是建立在电力系统潮流方程的基础之上的,根据 潮流方程在系统不同状态下的特性来研究系统的电压稳定性,常用的方法有裕度指 标方法、奇异值分析方法、灵敏度分析方法等。目前,国内外在电压稳定静态安全 华中科技大学硕士学位论文 分析领域内的研究工作主要集中在以下几个方面: 1 电压稳定机理的研究 电压崩溃机理研究的根本目的是要弄清楚主导电压崩溃发生发展的本质因素以 及电压稳定问题和电力系统中其他问题的相互关系。8 0 年代以来,由于认识到仅从 静态角度无法合理解释电压稳定现象,研究人员已经将机理研究的重点转向电压稳 定动态机理的方向上来。文献 3 】对一个实际系统分别运用静态分析工具和动态电磁 仿真工具做了计算,分析比较了两种方法计算的结果。 2 静态安全指标的研究 这个方面是电压稳定静态安全分析研究的核心,包括两个方面的内容:寻找恰 当的安全指标和尽量快速又有足够精度的计算方法。对静态安全指标的要求是:准 确可靠,线性性好。现有的静态安全指标都是以潮流j a c o b i a n 矩阵奇异作为电压失 稳的判据,分析方法也基本上是建立在静态潮流方程基础之上。总的来讲,静态安 全指标有以下几种【4 j : 基于过程的裕度指标:这一类指标通常是按照某种过渡过程方式增加负荷直至 稳定极限点,得到极限点与基本方式之间的有功、无功和电压的差值,以此来直接 判断基本方式与稳定极限的距离。如:连续潮流法、崩溃点法等。裕度指标的优点 主要有三条”。:a ) 能给运行人员一个较直观的表示系统当前运行点到电压崩溃点距离 的度量:b ) 线性性较好,即系统运行点到电压崩溃点的距离与裕度指标大小呈线性 关系:c ) 可以比较方便地计及过渡过程中各种因素如约束条件、发电机有功分配、 负荷增长方式等的影响。缺点是计算量大,而且要解决求取极限点时潮流不收敛的 问题。裕度指标的物理意义明确,研究工作主要集中在极限点的算法上。另外,系 统逼近极限的不同方式对裕度指标的影响也必须全面地考虑。 基于当前运行点的状态指标:这一类指标都是抓住了系统i 临近崩溃点的某些特 征,通过计算当前运行点的相应量来间接评价系统当前运行状态与稳定极限的邻近 程度。例如:基于系统物理量之间微分关系的灵敏度指标,基于潮流方程解的个数 的潮流多解指标,以及基于潮流j a c o b i a n 矩阵的最小奇异值或特征值的指标【6 培】,二 阶性能指标( s e c o n do r d e rp e r f o r m a n c ei n d e x ) 等【6 。状态指标计算量小,但一 个普遍的问题是接近稳定极限点时急剧变化,线性性不好,而且指标数值大小与网 络规模、拓扑结构关系很大,临界值确定比较困难,因此实际应用e p 必须针对不同 的系统或系统不同的运行方式做大量的计算和比较。 华中科技大学硕士学位论文 刨内外已经有很多电力公司采用裕度指标或者将裕度指标和状态指标相结台进 行实际系统的电压稳定分析。例如,东京电力公司( t e p c o ) 采用曲线拟合法拟合 p 、7 曲线i | “j 从而获得有功裕度,以便监视系统的电压稳定状况。法圈国家电力拧制 q 】一l 、录用线。i t ! r j , 台法i 1 算p v 曲线和有功裕度】。e p r i 将裕度指标和状态指标相结 合 发丁采用静态力;圭分析鬯压稳定的综合程序v s a b h 。我国电科院同样采用 线性拟合法计算p v 曲线和功率裕度i i :i 。 1 2 电压稳定静态分析方法 电j j 、稳定静态安全分析方法都是建立在静态涮j 流方程的基础之上的,不同方法 的j i 要医别在十抓住了潮流方程在极限点5 1 t 近的不同特征,各种方法究其本质都是 样的即以潮流j a c o b i a n 矩阵奇异,作为系统电_ j 三稳定的极限状态f 】3 1 。文献3 分别在简单系统中证明了灵敏度指标、奇异值指标和裕度指标的一致性。文献f 1 4 在复杂系统中证明了灵敏度指杯、奇异值指标和能量函数指标的一致性。本节主要 介绍了r 程实践中应用较为广泛、数学物理意义较为明确的灵敏度分析方法、奇异 值分析方法和裕度指标分析方泣。 1 2 1 电压稳定灵敏度分析理论 灵敏嗖分析方法是以潮流方程为基础从定性物理概念出发,利用系统中某些 量的变化关系柬分析稳定问题| 】”。其分析的理论基础一般是由单机单负荷简单系统 中推出,然后推广应用于复杂系统。 电力系统的静态模型是以潮流方程来表示的,即: 节点功率平衡方程f ( x u ,a 1 _ 0( 1 1 ) 系统输出方程 y = g ( x u 口) ( 1 2 ) 其中,根据系统中的物理量在潮流方程中的作用,将这些物理量分为以下四类: 参数变量口:包括线路和变压器导纳参数g 、b 等通常不变化的量。 状态变量爿:包括p q 节点电压幅值吮及相角p p v 节点电压的相角0 。等。 控制变量u :包括负荷节点的有功功率p 和无功功率甄,发电机节点的有功功 率p 。和电压,平衡节点的电压 j 和相角po 等。 华中科技大学硕士学位论文 输出变量j 7 :包括发电机节点的无功功率线、平衡节点有功功率p o 和无功功率 函、系统有功损耗p t 。和无功损耗o 。等。 1灵敏度指标分类 铂实际系统中t 当控制变量和参数变量发生微小变化时,系统的状态变量或输 出变量都会发生微小变化。用它们之间的微分关系柬表示这种变化关系,就称为灵 敏良指标。 依据系统中变量的分类,可以将灵敏度指标分为三种类型【16 1 : 1 ) 状态变量,、7 对控制变量u 的灵敏度指标a i a ,简称状态变量灵敏度。 ( ! ) 输出变量】7 对控制变量u 的灵敏度指标黑,简称输出变量灵敏度。 ( 3 ) 输出变量】7 对参数变量0 l 的灵敏度指标_ d f ,简称参数变量灵敏度。 2 灵敏度指标及其物理意义 状态变量灵敏度竺d u 篆万d r , ) ,即负荷节点电压与该节点有功、无功需求变化的相互关系。式中 凡印份别指负荷节点输出的有上力、无功功率 ,为负荷节点电压。筹 8 , - - 8 m 。 o 为a 的奇异值; v 的列向量v i 为a 的对应于6 的左奇异向量,i r 时为对应于0 的左奇异向量; u 的列向量u i 为a 的对应于6 的右奇异向量,i r 时为对应于0 的右奇异向量; ( 2 ) a 的右奇异向量就是a 7 a 的单位右特征向量; a 的左奇异向量就是a a 的单位右特征向量。 2静态电压稳定奇异值分析 华中科技大学硕士学位论文 由文献【13 ,经过数学推导,可以得到下面的结论: 潮流j a c o b i a n 矩阵的最小奇异值6 可以表示系统当前运行状态与静态稳定极 限状态之间的最短距离。 潮流j a c o b i a n 矩阵的左奇异向量对应于系统最灵敏的功率( 尸,q ) 注入方向; 潮流j a c o b i a n 矩阵的右奇异向量对应于系统最灵敏的电压、功角( v 、0 ) 变 化方向。 3奇异值分析的应用 奇异值分析应用时主要以参与系数为判掘,实际应用时,往往做归一化处理。 节点参与系数用来判断薄弱节点和薄弱区域,节点k 对最小奇异值参与系数为: p k = u m k 。k ( 1 4 ) 其中,、7 ,l l m i n 分别为j a c o b i a n 矩阵对应于6 。的左、右奇异向量,v 。k ,u 。k 分别为上述向量的第k 个元素。 关键支路和关键发电机的判据则是支路参与系数与发电机参与系数。这类参与系 数定义是,当系统运行状态沿最危险状态的方向变化时,该元件的输出变量( p 、q ) 变化占系统输出变量变化的比例。对于支路而言,支路参与系数大说明该支路是弱 稳支路;对于发电机而言,发电机参与系数大则说明电网状态变化时,该发电机承 担了较大份额的无功损耗,是关键发电机。 1 2 3 裕度指标计算方法 文献 1 7 将裕度指标定义为:从系统给定运行状态出发,按照某种模式,通过负 荷或传输功率的增长逐步逼近电压崩溃点,则系统当前运行点到电压崩溃点的距离 可作为判断电压稳定程度的指标,称之为裕度指标。裕度指标能够给出以实际物理 量量度的电压稳定安全指标,最为直观,因此在实际应用中占有非常重要的地位。 裕度指标计算的关键是确定崩溃点,计算结果取决于以何种方式逼近崩溃点,计算 过程中的一个关键问题是解决临近崩溃点时潮流不收敛的问题。裕度指标是以当前 状态的实际物理量与电压稳定极限状态时的差别来定义的: 巧:生当1 0 0 ( 1 5 ) 。 d 华中科技大学硕士学位论文 k ,:望! = 望l l o o j 绋 足,:堡生1 0 0 7 : ( 1 6 ) ( 1 7 ) 其中,下标c 表示稳定极限状态物理量的值,0 表示当前状态物理量的值。 上述等式既可以表示一个节点的裕度,也可以表示整个系统的裕度。采用裕度指 标分析电力系统稳定性时,最常用的工具是p v 、q v 曲线。、。 1 3 组件技术的起源与发展 在软件业,从第一批软件系统诞生之日起,人们就试图创建模块化的软件系统。 随着软件系统规模的增大,模块化软件系统的重要性f 益突出。理想的模块化软件 系统是这样的:开发像大型集成电路一样即插即用的软件模块,然后将软件模块像 措积木一样地组装成软件系统。到目前为止,有很多解决方案试图实现这一目标, f 县没有一个解决得很好。人们曾经认为面向对象的程序设计技术( o o p ) g 够实现这个 曰杯,可实际上它也没有办到。组件技术( c o m p o n e n tt e c h n o l o g y ) 向这个模块化软 件系统的目标又迈进了一步。一个软件系统要模块化成组件,是基于如下考虑【1 9 】: a ) 出于并行丌发和维护需要,源代码必须模块化。 b ) 出于新增功能和升级需要,软件功能必须模块化。 c ) 出于软件系统稳定性需要,软件系统必须模块化。 d ) 出于性能和测量上的考虑,软件被分割为多个执行模块,能够配置在一台或 多台计算机上分布运行。 组件技术对软件开发的促进作用是非常显著的。发端于上个世纪5 0 年代的组件 技术,开发思想源于传统的软件模块和五花八门的子程序库 2 0 。以后,其原形中还 出现了抽象数据类型以及在此基础上诞生的面向对象开发思想。但是,组件技术超 越了以上所有这些软件开发概念,采用组件技术开发大规模、不同类型乃至分布式 的系统速度快而成本也得到大大降低。 组件技术( c o m p o n e n tt e c h n o l o g y ) 是继面向对象技术( o b j e c t o r i e n t e d t e c h n o l o g y ) 之后又一新兴的软件技术。它通过组装组件来开发大型的软件系统。这 种方法使得软件系统具有开放性、易升级、易维护等特点,缩短了软件开发周期, 华中科技大学硕士学位论文 提高了软件质量。目蓟,组件技术已经在大型分布式系统中广泛应用。基于组件的 丌发趋于成为软件丌发的主流开发方式。第二章将对组件技术做一个详细的介绍和 说明。 1 4 本文所作的工作 如前所述,随着我国电力系统进入一个超高压、大机组、远距离送电的新时代, 各大电网的电压稳定问题将变得更加突出。由于电压失稳的机理解释尚无定论,迫 切需要将多种分析方法综合起来在工程实践中检验其可信性和各自的优缺点。在这 样的情况下,开发一个具有多种静态电压稳定分析方法的软件很有必要。 目前,组件技术已经被广泛应用,基于组件的丌发方法正在成为软件开发的主 流丌发方式,这种开发方法使得软件系统具有开放性、易升级、易维护等特点,缩 短了软件开发周期,提高了软件质量。为了将组件技术应用到电力系统分析软件之 中,本文对组件技术的理论及其在电力系统分析软件中的应用做了深入研究,考察 了目前组件技术在电力系统分析软件中的应用情况。在此基础之上,实践了基于组 件的软件工程,设计开发了基于组件的、具备多种电压稳定分析方法的电力系统分 析软件,并针对2 0 1 0 年华中电网做了潮流计算和电压稳定分析,给出了分析结果。 华中科技大学硕士学位论文 2 1 组件技术的基本概念 2 组件技术简介 组件( c o m p o n e n t ) ,又称构件( c o m p o n e n i ) ,是独立于特定的程序设计语言和 应用系统、可重用的和自包含( s e l f - c o n t a i n e d ) 的软件部分,可以独立地制造、分 发、销售、装配。概括地讲,组件必须满足两个条件: 1 组件是独立的发却单元( i n d e p e n d e n td e p l o y m e n t ) 。 这个条件包含了三个要求:首先,组件独立于程序设计语言与运行环境,组件 之间也不存在依赖关系。其次组件具有即插即用的特点,可以集成到软件系统中 而不需要重新编译整个软件系统。最后,组件必须做为一个整体发布,不能分割。 2 组件可以被第三方集成( t h i r d p a r t yc o m p o s i t i o n ) 。 第三方不可能了解组件的设计和实现细节。因此,组件必须自包含,不能依赖 其他软件部分。组件通过接口与其他软件部分通信,组件的接口与实现无关。而且, 组件自身必须明确地说明其提供的服务和对环境的要求。 目i u 组件技术已在交通、金融、电信等行业的大型分布式软件系统中得到了广 泛的应用f 2 ”。但是关于组件以及组件技术的概念,仍然有很多混淆和误解。下面将 其中的几个问题单独列出来,予以说明。 1 组件技术与面向对象( o b j e c t o r i e n t e d ,简称o o ) 技术 组件技术是继面向对象技术之后发展起来的一种新的软件工程技术,是面向对 象技术的延伸。他们之间有着密切的关系,因此往往有人将两者混淆起来,实际上 o o 技术对于组件技术而言,既不是必要条件,也不是充分条件 2 2 。 首先,组件不一定要用0 0 语言编写,任何一种可以实现组件标准接口的所需 功能的程序设计语言都可以用来编写组件。 而且,组件技术扬弃了0 0 技术的某些特点,多态性和继承性是0 0 技术的重 要特点。但是,对象之间的继承关系可能导致系统间的级联影响,即父类的改动会 影响子类。组件技术更注重的是封装性,它希望将程序修改导致的影响严格限制在 组件的内部。 2 组件( c o m p o n e n t ) 和对象( o b j e c t l 华中科技大学硕士学位论文 组件和对象是两个经常被混同的概念,甚至有人提“组件对象( c o i t 。p o n e n t o b j e c t ) ”。它们有一些共同点,例如都支持信息封装。实际上它们是两个互不包含的 概念,它们的区别主要在于以下几点: ( 1 ) 组件是一个独立发布( d e p l o y ) 的软件单元,可以揣有多个拷贝;而对象是 一个实例( i n s t a n t i a t i o n ) ,它有独一无二的标识。 ( 2 ) 组件是无状态的,而对象是有状态的。 组件是用来发布的软件单元,所以必须保证发布的所有软件单元的一致性,因 此不允许有状态,尤其不允许有持久、可存储的状态( p e r s i s t e n ts t a r e ) 。不过,发布 组件的序列号是个例外,但是组件的序列号与组件提供的服务是没有关系的。对象 一 是一个实例的单元,捌有状态,而且对象的状态往往是持久、可存储的。 ( 3 ) 组件必须自包含( s e l f - c o n t a i n e d ) ,而对象无此要求。 组件发布之后,要求能够在不同的环境下,与其他的组件协同运作,所以必须 自我包含。同时封装它内部的实现,并通过明确的接口与外部环境交流,说明组件 自身的功能和其对环境的要求。 3 关于“划( b i n a d ,1 ” 很多关于组件的文献都声称“组件是二进制的软件模块”,实际上这个观点存在 争议”。二进制的意义原本是指“机器码”,即机器可识别,可执行。人们要求组件 是二进制的软件模块,实际上是要求组件可以用来发布( d e p l o y a b l e ) 。可是二进制( 可 执行,e x e c u t a b l e ) 和可发布不是同一个概念。对于解释执行的程序设计语言,例如 一些脚本语言而言,并不存在二进制执行模块。那么,二进制是否意味着信息封装 ( i n f o r m a t i o nh i d i n g ) ,甚至由此引伸出“跨平台、跨语言”以及“产权保护”的含 义呢? 这个观点也是片面的。首先,二进制固然强制封装了信息,但这并不是组件 信息封装的唯一手段。对于解释执行程序,不存在对应的二进制执行码,而且组件 的封装不局限于对象,也可以是软件开发各个阶段( 分析、设计、编码、测试) 可 一 辨识的各种相对独立的部分,存在着包括设计组件、文档组件、框架组件甚至源代 码组件这样一些“异类”组件,二进制对其毫无意义。其次,二进制机器码借助分 析工具,并不是不可能被人弄懂,所以在技术上不能够提供“产权保护”。最后,至 于跨平台、跨语言,那是指在组件平台( c o m p o n e n tp l a t f o r m ) 下,各种不同程序设 计语言开发的组件可以在不同的操作系统下协同运作。这本身和组件是否二进制是 没有什么关系的。因此,本文中将一些文献中对于组件的插述,如“二进制模块”, 1 0 华中科技大学硕士学位论文 改称为“物理模块”。 2 2 基于组件的软件工程 软件丌发一直以来都受到以下一些问题的困扰:丌发预算和丌发进度时常超出 预定的限制条件、维护成本增长过快、不恰当的功能设计、拙劣的性能、不断膨胀 的b u g 和代码量、不兼容、重复丌发等等。这些问题在最严重的情况下就会导致所 谓的“软件危机”。基于组件的软件工程( c o m p o n e mb a s e ds o f t w a r ee n g i n e e r i n g 以 下简称c b s e ) - 肓望解决这些问题。 基于组件的软件工程是指用装配可重用软件组件的方法来构造应用程序。它以 组件为核心,包含了系统分析、构造、维护和扩展的各个方面。在下文中将详细介 绍c b s e 的特点、意义和开发方法。 1c b s e 的特点 与传统的软件开发方法( 面向对象和结构化程序设计) 比较,c b s e 有以下特点: ( 1 ) 即插即用。 组件可以方便地集成到软件系统中,不用修改代码,也不用重新编译。 ( 2 ) 以接口为核心。 组件的接口和实现是分离的。组件通过接口与其他软件部分交互,组件的具体 实现被封装在内部,组装者只关心接口,不必了解其实现细节。 ( 3 ) 标准化。 组件的接口必须严格地标准化,这是组件技术成熟的标志之一。目前主要的组 件标准有:m i c m s o f t 的c c m d c o m ,j a v a 的j a v ab e a n s 和e j b ,o m g 组织的 c o r b a 。计算机界很久以前就有用组件来装配成软件的想法,但始终未能成为现实, 其中的一个主要原因是组件标准的缺乏。正是由于出现了以上较为成熟的组件标准, 才使得c b s e 走向现实。 ( 4 ) 组件通过市场销售和分发。 大量成熟的组件可以通过市场购得,市场的竞争机制也能够促进组件生产的质 量的提高、种类的增加和价格的降低。 2c b s e 的意义 ( 1 ) c b s e 从根本上改变了软件生产方式。 华中科技大学硕士学位论文 众所周知,福特创造的汽车流水线制造法改变了汽车的生产方式,使其走向工 业化大规模生产。而福特制造法的精髓就是改变以往的手工作坊方式,将汽车生产 的重点从制造每一个零件转到装配。汽车制造者不必自己设计制造每一个零件,大 部分零件由外购而来。福特制造法大大提高了汽车的产量和质量,大幅度降低了汽 车价格。过去的软件作坊生产方式与福特之前的汽车生产方式十分相似,开发者往 往要编写程序中的绝大多数代码,甚至从头做起。因此,如果能按组装汽车的方式 开发软件,将是软件工程的巨大进步。 ( 2 ) c b s e 提高了软件重用率。 组件可以分发销售给多个其他用户,一方面大大降低单个组件的成本,另一方 面大大降低软件开发中的重复劳动。 ( 3 ) c b s e 使开发者将更多的注意力放到业务流程和业务规则上去。 由于开发者的主要工作是构造系统框架和装配组件,使他们可以摆脱编程的细 节问题,将更多的精力投入到与用户交流。另外,开发者和业务管理者也可以在更 高的层次上,用偏近于业务而不是偏近于计算机的语言进行讨论。 ( 4 ) 用c b s e 开发的系统灵活,便于维护和升级。 由于c b s e 是模块化开发,如果某个模块需要修改,只需用修改好的模块替换 掉以前的模块,不用重新编译整个系统。若想扩展系统的功能,也只需将符合框架 约束条件和接口要求的扩展模块直接加入到该系统即可。由此可见,c b s e 开发的系 统的维护和升级都十分方便。 ( 5 ) c b s e 降低了对系统开发者的要求。 尽管c b s e 没有消除系统开发者和使用者之间的分界线,但却移动了这条分界 线。s _ 是:n n c b s e 的开发者主要任务是装配已有的模块,不需要有很高的编程技 巧。 3 c b s e 的开发 c b s e 的开发又称基于组件的开发( c o m p o n e n tb a s e dd e v e l o p m e m ,以下简称 c b d ) ,包括组件的开发和应用程序的开发两部分,开发过程如下图所示: 1 2 华中科技大学硕士学位论文 组件的丌发 应用程序的丌发 图2 1 基于组件的开发过程 而传统的软件开发方式( 包括面向对象和结构化程序设计) 是瀑布模型,按照 需求分析一概要设计一系统设计一丌发实现一单元测试一系统测试的流程步一步 进行。两相比较,在软件结构上,c b d 是松耦合机制,模块高度内聚,而传统软件 开发都是紧耦合机制。c b d 中,组件使用重在接口,是一个黑盒模型:而传统软件 开发中的子程序、对象都重在实现,是白盒模型。传统的开发流程是瀑布式( w a r e r f a l l ) 的,如果一级工作出错或没做好,下面所有级都会受到影响:而c b d 则是进化式 ( e v o l u t i o n a l ) ,主要通过组件的装配来完成应用程序的开发,如果个别组件选用不 当或者存在问题,可以安全地修改、升级、替换,不会影响到系统的其他部分。 2 3 微软c o m 组件技术 。 2 3 1 三种组件平台 目自u 主要有三种组件平台( c o m p o n e n tp l a t f o r m ,或者c o m p o n e n ti n f r a s t r u c t u r e ) 1 m i c r o s o r ( 美国微软公司) 的c o m ( c o m p o n e n to b j e c tm o d e l ,组件对象模 型) d c o m ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ,分布式组件对象模型) c o m + 2 o m g ( o b j e c lm a n a g e m e n tg r o u p 对象管理组织1 的c o r b a ( c o m m o n o b j e c t 华中科技大学硕士学位论文 r e q u e s t b r o k e ra r c h i t e c t u r e 通用对象请求代理) : 3s u n ( 美国升阳公司) 的e j b ( e n t e r p r i s ej a v ab e a n s ) 。 以目前的情况来看口“,e j b 最晚出现,但发展迅猛,广泛应用于大型电子商务 系统开发,但只适用于j a v a 语言环境和j v m ( j a v av i r t u a lm a c h i n e ,j a v a 虚拟机) 平台,未能实现程序设计语言无关性,而且运行效率低,对j 2 e e 服务器配置要求高。 c o m d c o m c o m + 是微软一家推出的标准,主要应用于w i n d o w s 平台和局域网。 c o r b a 作为i b m 、h p 、s u n 等超过8 4 0 家o m g 成员联合推出的标准,实现了平 台、语言无关,但只定义了框架和内核,各种实现相差很大,以至于c o r b a 标准 目前还没有形成第三方的组件市场,用户采用c o r b a 时往往选择一家供应商的全 套方案,c o r b a 广泛应用于u n i x 系统和i n t e m e t ,也适用于m a c 、w i n d o w s 等其他 操作系统。有人认为,以后的发展趋势是c o m 主导桌面w i n d o w s 市场,而c o r b a 则会融合到e j b 中,从而主导非w i n d o w s 市场。现在由于c o m 的影响,客户端的 组件开发已经成为主流,本文也主要在w i n d o w s 下使用m i c r o s o f t 的工具开发c o m 组件,所以本章重点介绍微软的c o m 组件技术。 2 3 2 微软组件平台 c o m 的起源要追溯到o l e ( o b j e c tl i n k i n g a n de m b e d d i n g ,对象链接和嵌入) 。 1 9 9 1 年,微软开发了一种新的规范o l e l0 。o l e l 0 基本上是一种处理复合文件的 方法。而复合文件就是- , 0 0 在单个文件中以文本、图形、视频和声音等多种格式存 储数据的方法。更进一步地说,o l e l 0 是努力朝着以文件为中心的方向发展,而不 是向以应用为中心的方向发展口。遗憾的是,o l e l 0 由于过于复杂,难以推广。1 9 9 6 年,微软发布了o l e 2 0 规范,其内含功能比复合文档更多。该规范推出了一个完全 的基于对象的服务结构,此结构易于扩展、定制和增强。这种服务体系结构的基础 是c o m 。同年,微软推出d c o m ,提供了分布式支持。1 9 9 6 年发布的m t s ( m i c r o s o f t t r a n s a c t i o ns e r v e r ,微软事务处理服务) ,虽然没有和c o m 集成到一起,却给c o m 提供了事务支持。1 9 9 9 年推出的c o m + 是微软组件技术的集大成者,它集中了c o m 、 d c o m 、m t s 以及m s m q ( m i c r o s o f tm e s s a g eq u e u e ,微软消息队列) 的功能,支 持分布式对象、事务处理、负载均衡、队列对象( 它支持组件之间异步通讯) 、对象 池缓存、内存数据库、元数据存储、语音翻译、事件和出版定购服务。它还有一个 1 4 华中科技大学硕士学位论文 良好的安全模型,该模型集成到w i n d o w s n t 的安全环境中,这使得开发者工作变得 容易。 作为一个组件平台,需要为组件提供以下几种服务:打包发布、分布式、安全、 事务管理、异步通讯。从提供服务的角度来看,c o m 家族( c o m 、d c o m 、c o m + 等的统称) 包括这样几个部分口7 1 : ( 1 ) m i c r o s o f ti n t e r f a c ed e f i n i t i o nl a n g u a g e ( m i d l ) ,微软接口定义语言。描述商 业逻辑和功能如何打包成组件,然后通过接口让外部访问。 ( 2 1c o m 组件模型。组件通过c o m 互相请求服务。 ( 3 ) d c o m 。提供分白式服务,支持位置透明性以及通过网络访问组件。 ( 4 ) t h em i c r o s o f tt r a n s a c t i o ns e r v e r ( m t s ) ,微软事务处理服务。提供组件安全 和事务管理服务。 ( 5 ) t h em i c r o s o f tm e s s a g eq u e u e ( m s m q ) ,微软消息队列。提供组件异步通讯 服务,组件之问通过消息队列异步通讯。 其中,( 4 ) 、( 5 ) 两项服务是通过微软的产品来提供的。 出于c o m 是同w i n d o w s 操作系统捆绑,从1 9 9 5 年起免费发送的( d c o m 是从 1 9 9 6 年起,c o m + 则是从1 9 9 9 年起同w i n d o w s 2 0 0 0 一起) ,它现在占有最大的安装 份额。作为一个二进制标准,它与超过9 0 的桌面机兼容。它是语言无关的,拥有 大量的用户和最好的开发工具支持( 如v i s u a lb a s i c v i s u a lc + + ,b o r l a n dc + + ,b o r l a n d d e l p h i p o w e r b u i l d e r 等) 。因此成为了独立软件商和开发者的曹选,从而支配了桌面 应用市场。c o m d c o m 已经被移植到了许多操作系统( 如s o l a r i s ,u n i x ,l i n u ) ( , m a c 0 s ,o s 4 0 0 ) 上,所以它也接近了平台无关【2 5 1 。然而,c o m + 目前仍然局限在 w i n d o w s 2 0 0 0 上应用,它所提供的服务由w i n d o w s2 0 0 0 操作系统来实现,所以微软 实际上放弃了c o m d c o m 的跨平台这优点。c o m + 与w i n d o w s 2 0 0 0 的紧密结合 也使得它具有了稳定、可测量、安全等等优点。 2 3 3o l e 技术 1 9 9 3 年,微软发布了o l e 2 0 规范,该规范推出了一个完全的基于对象的服务 结构此结构易于扩展、定制和增强。这种服务体系结构的基础是c o m 。通过o l e 的服务结构可以得到的服务有剪贴板( c l i p b o a r d ) 、拖放( d r a ga n dd r o p ) 、嵌入 华中科技大学硕士学位论文 的服务结构可以得到的服务有剪贴板( c l i p b o a r d ) 、拖放( d r a ga n dd r o p ) 、嵌入 ( e m b e d d i n g ) 、就地激活( i n p l a c e a c t i v a t i o n ) 、链接( l i n k i n g ) 、标记( 永久命名, m o n i k e r ) 、o l e 自动化( o l e a u t o m a t i o n ) 、o l e 控件( o l e c o n t r 0 1 ) 、o l e 文档( 0 l e d o c u m e n t ) 、结构化存储( s t r u c t u r e ds t o r a g e ) 、一致的数据传输( u n i f o r m d a t a t r a n s f e r , u d t ) 。而最终用户以三种方式和o l e 交互:o l e 文档、o l e 自动化和o l e 控件。 ( 1 ) o l e 文档 o l e 文档的特征是公共用户模型( c o m m o nu s e rm o d e l ) 。简单的说就是访问 o l e 文件的各个应用程序的用户接口( u i ) 特征是类似的。公共用户模型具有以文 档为中心的特征,并利用了o l e 的集成数据功能。这些集成数据的功能之一是“链 接”和“嵌入”。不同类型以及在不同应用程序中所产生的数据对象都可以被嵌入或 链接到同一个o l e 文档中。这使得用户可以在当前主应用程序中处理对象,而不必 返回到产生此对象的应用程序中去,即“就地编辑( i n p l a c ee d i t ) ”。微软的字处理 程序w o r d 就是一个o l e 文档的典型例子。 ( 2 ) o l e 自动化 o l e 自动化使得用户能利用类似于v i s u a lb a s i cf o ra p p l i c a t i o n ( v b a ) ,v b s c r i p t 或j a v a s c r i p t 这样的高级脚本语言,来访问和修改对象的属性和方法。因此,用户可 以定制对象以及对象之间的交互性,从而完成用户定义的操作。o l e 自动化的最突 出的优点是丌发简单,非程序员也可以使用。微软的e x c e l 电子表格就是一个典型的 0 l e 自动化对象。 ( 3 ) o l e 控件 o l e 控件是可以嵌入到应用程序中的自包含的、可重用的组件。o l e 控件和o l e 自动化对象之间的区别在于:o l e 控件是自包含的。o l e 控件提供了控件和容器之 间的双向通信,可以引发和响应事件。o l e 控件永远都是在其所放置的容器中进程 内( i n p r o c e s s ) 运行的,从运行模块的角度上来看,它是一个标准的w i n d o w s d l l ( d y n a m i cl i n kl i b r a r y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论