调度MIS通用对象模型的Web实现_第1页
调度MIS通用对象模型的Web实现_第2页
调度MIS通用对象模型的Web实现_第3页
调度MIS通用对象模型的Web实现_第4页
调度MIS通用对象模型的Web实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、调度MIS通用对象模型的Web实现陈玉慧 梁云(国家电力公司电力自动化研究院, 南京 210003)摘要:为解决调度信息系统中不断的业务变更对系统结构的破坏,我们构建了面向对象的动态建模框架。本文着重论述了该框架中的核心通用的调度MIS对象模型在WEB中的实现。采用三层体系结构,以COM规范实现数据访问及业务逻辑层,以XML格式表示对象模型及对象实例,在数据表示层采用HTC组件技术,并提供灵活改变页面显示及定义操作处理的方法。最后简单介绍了查询对象数据的实现。关键词:3层结构,对象模型,COM,XML,HTC0 引言开发调度信息管理系统(即调度MIS)面临的最大问题是:在变革如此活跃的时代,电

2、力企业为了在一个不断变化的市场环境下生存,业务处理需要作经常性的变更。企业的组织机构、信息需求、业务活动等都必须作相应调整或改变以适应业务重组的需要。结果,当前调度信息系统所依赖的事实可能在将来被改变。在最坏情况下,这种变动甚至推翻了整个系统的体系结构,以致系统重新设计开发;带来人力投资大,开发、维护周期长,代码可重用率低,系统复用性低等弊端。为解决这些问题,要求有稳定的系统架构,灵活的业务逻辑封装,及多样的表现形式;需求的变化及业务的重组反应为业务逻辑和表现的不同,而不影响底层系统架构。我们采用了成熟的面向对象技术,将系统底层设计成一个基于可视化的面向对象的动态建模的框架,它有着以面向对象技

3、术为企业进行可视化建模的能力并通过运行系统对模型的解释来达到管理企业信息与业务过程的目的。本身不涉及特定的信息或业务过程的描述或处理,而是通过对所建模型的解释以达到对某个具体业务领域内的信息管理的功能。在抽象能力的基础上,通过定义具有电力调度应用语义的预定义对象,可以逐步形成调度MIS的应用系统,这样的应用系统可以在底层架构的基础上更具有电力行业特征,形成特定的调度应用模式,构成产品。便于重用和推广,也便于建立电力调度行业规范。随着WEB技术的发展,基于浏览器,B/S结构的应用成为主流。本文将着重讨论如何在以WEB方式实现调度MIS通用的对象模型,从而以WEB方式实现针对电力调度的专用应用系统

4、,满足电力企业信息化建设需要。1 体系结构在设计调度MIS通用对象模型实现的体系结构时,我们摒弃了传统的以页面为核心的Web编程方式,考虑采用N层应用程序实现。N 层应用程序最初是为了解决与传统的客户端/服务器应用程序相关的问题而出现的。但是,随着 Web 时代的到来,这一体系结构开始成为新开发项目的主流。N 层应用程序就是被分成多个独立的逻辑部分的应用程序。最常见的选择是分为三个部分:表示、业务逻辑和数据。采用三层结构的优点在于:1) 自治性:多层应用结构在各层次上的组件能单独更新、替换或增加、拆除。因此,系统维护更方便,代价相对低得多。通过将业务逻辑集中到中间层,系统获得了对业务逻辑的独立

5、性,即当用户的需求改变时,开发人员可以迅速地在中间层(应用服务器)上更新业务逻辑。2) 可靠性:多层体系结构将数据与程序、数据控制与应用逻辑分层独立管理,能更严格地控制信息访问,对权限的划分更准确、灵活、严格。能有效提高系统安全性。3) 可用性:多层体系架构的组件式系统将界面、界面发布、业务应用逻辑及数据存储分为多个层次分散管理,逻辑或物理地将它们分开,可减轻系统压力,提高整体性能。并且中间层可以采取多机并行的方式,相互备份的方式,保证系统的高可用性。 4) 可伸缩性:适应大规模和复杂的应用需求。采用组件技术能使复杂系统的设计变得简单可行,具有良好的伸缩性。三层或多层结构,可以将数据处理从客户

6、端转移到应用服务器和数据库服务器上。即使在用户数量很大的情况下,数据库仍能保持良好的工作负载,保持系统的快速的响应速度。 5) 可互操作性:多层系统结构和组件式系统的开发和维护过程中,技术人员可以按照新的需求,通过在不同系统层次上调度更新的组件或新加入的组件来调整旧的系统,以适应新的与不断变化的要求。我们采用三层体系结构,Web表现层,业务逻辑封装层,数据访问层。具体见图1:图1其中,数据访问与业务逻辑层均用组件方式实现。由于选用了Window 2000系列操作系统,因此采用Microsoft的COM规范。数据表现层由ASP页面及HTC组件实现。Web服务器、应用服务器、数据库可根据需要部署在

7、同一服务器上,或是不同服务器上。11 数据访问层数据访问层采用COM组件技术。COM最初作为Microsoft桌面系统的构件技术,主要为本地的OLE应用服务,但是随着Microsoft服务器操作系统NT和DCOM的发布,COM通过底层的远程支持使得构件技术延伸到了分布应用领域。COM规范具有语言无关、对进程透明等特性并具有可重用机制。12 业务逻辑层业务逻辑层采用组件技术COM实现。COM+不仅继承COM、DCOM和MTS的许多特性,同时也新增了一些服务,比如负载平衡、内存数据库、事件模 型、队列服务等。COM+新增的服务为COM+应用提供了很强的功能,建立在COM+基础上 的应用程序可以直接

8、利用这些服务而获得良好的企业应用特性。COM+的主要特性包括:1) 真正的异步通讯。COM+底层提供了队列组件服务,这使客户和组件有可能在不同的时间点上协同工作。2) 事件服务。新的事件机制使事件源和事件接收方实现事件功能更加灵活3) 可伸缩。动态负载平衡以及内存数据库、对象池等系统服务都为COM+的可伸缩性提供了技术基础。4) 继承并发展了MTS的特性。5) 可管理和可配置性。6) 易于开发。COM+不再局限于一台机器上的桌面系统,它把目标指向了更为广阔的企业内部网,甚至Internet。COM+与多层结构模型为企业应用或Web应用提供了一套完整的解决方案。考虑到业务逻辑层要为所有客户端请求

9、提供服务,负载重,容易成为实际应用中的瓶颈。因此,业务逻辑层以COM实现,以获得更好的伸缩性,更高的效率。13 数据表现层数据表现层的主要功能是:响应客户端请求,访问业务逻辑组件并组织数据提供友好的人机界面。对于所有 N 层应用程序而言,将数据从中间层有效地移动到客户端都是一个关键的环节。 我们采用XML作为传输数据的标准。XML(eXtensible Markup Language,可扩展置标语言)是由W3C于1998年2月发布的一种标准。它是SGML的一个简化子集,它将SGML的丰富功能与HTML的易用性结合到Web的应用中,以一种开放的自我描述方式定义了数据结构,在描述数据内容的同时能突

10、出对结构的描述,从而体现出数据之间的关系。这样所组织的数据对于应用程序和用户都是友好的、可操作的。传统的ASP程序将Web页面定义和处理逻辑混杂在一起,开发、维护繁琐。我们采用HTC组件(HTML Component)技术,将客户端脚本与服务端脚本分离。ASP程序负责访问业务逻辑组件,提供对象数据及操作;HTC组件负责实现客户端脚本并处理WEB页面的定义与组织。从Internet Expolorer5开始,可以使用HTML组件,即HTC。HTC可以用Vbscript、javascript或者支持AcitveX脚本编程接口的任何第三方脚本语言来编写。HTC提供一种简单的方式以便在客户端脚本中实现

11、DHTML行为,它包含脚本和一组特定于HTC的要素,这些要素提供定义组件的属性、方法和事件。2 具体实现21 相关概念对象类(对象模型):利用面向对象的思想方法将调度MIS中所管理的事物抽象为不同种类的对象,具有相同信息特征的所有对象的总和称为对象类。在调度MIS中的单位、人员、变压器、保护装置、缺陷、操作票、计划、项目、设计图纸、合同、调度规程等均为对象类。对象类是由底层建模系统建立的可操作的最基本元素,对象类具有封装性、继承性等面向对象的技术特征。对象或对象实例: 一个对象类中的具体的成员,如某某变电站、张三、1主变、一张具体的保护整定单、某变电站设计图纸等。对象实例是平台运行系统所操作的

12、对象。对象属性:对象类中的数据成员定义,如变电站类的名称、电压等级等等。2 2 数据访问组件数据访问组件能够提供广泛的异构数据库访问和复制能力。传统的客户机/服务器结构则需要在客户端安装许多访问异构数据库的驱动程序,而三层/多层结构只要在数据访问层有相应的驱动程序就可以访问异构数据源。数据访问组件提供DBAgent(数据访问代理)接口用以实现对后台数据库的访问。在DBAgent内部,我们为不同的数据库提供了相同的接口引擎,屏蔽了不同类型数据库的差异。当数据库发生了变化,由于实现通过DBAgent进行数据库访问,调用数据访问组件的程序不需要做任何变动。实现了对不同数据库的透明访问。例如,现在数据

13、访问组件提供了对 Oracal数据库的访问,当使用DB2的数据库时,仅需在数据访问组件中添加DB2的数据库访问驱动,就可直接支持DB2数据库,而对业务逻辑及数据表现层没有任何影响。2 3 业务逻辑组件业务逻辑组件遵循COM规范,封装业务处理细节,调用数据访问组件,为数据表现层提供通用对象访问接口;包括安全组件,模型访问组件,对象管理组件。其中安全组件管理用户对对象类及对象实例的权限;模型访问组件提供对对象类的访问,对象管理组件管理实例化的信息系统的对象实例;以上组件协同工作,以接口方式为数据表现层提供实现通用对象模型所需服务。主要功能包括:1) 封装权限处理,根据对象类定义,对不同权限的用户提

14、供不同权限范围的对象类的定义信息。可以控制到对象类某个属性可见,可读及可修改。2) 提供用户请求单个对象实例的具体信息;同时根据底层模型及权限控制定义,自动屏蔽用户无权访问的信息。3) 提供用户提供过滤条件,提供同一对象类的多个对象实例的查询信息4) 提供对象实例的新增方法。5) 提供对象实例的修改方法。6) 提供对象实例的删除方法。24 对象类及对象实例的XML表示业务逻辑组件提供的对象类及对象实例信息,均采用XML格式表示,结构清晰,具有很强的可读性,可用作系统间的数据交换。其中,l 对象类主要包括属性定义,简单表示为: 其中:prop节点表示对象类中某个具体属性定义,如变电站类的名称或电

15、压等级的属性定义。在prop节点中,id、name、clsid 子节点为与底层建模相关的对象类信息。Dbmsdatatype、length、scale、defaultvalue为属性的物理信息,即属性的数据类型,长度,精度,缺省值信息;canvisible、canmodify、candelete为属性的权限定义,是由底层建模定义和访问该对象类的用户权限决定的。CntID、editorname、datadef、proplinks为特殊属性定义,CntID表示属性是否有特殊的属性含义,如是否是签名属性等,editorname表示该属性的输入是否需要特殊的编辑器;datadef表示属性是否有相应的数

16、据定义,如电压等级这样的属性,就可抽象为ID-String属性;一种具体的电压等级对应一个内部的ID值;在datadef节点中存放所有电压等级和ID对应的数据。Proplinks定义属性之间的关系,如签名属性往往包括签名人和签名时间,在签名人的proplink节点中存放相应的签名时间的属性ID。l 对象实例也以XML表示,为: 其中:pmprop节点对应具体的对象实例属性,PMProp的id属性对应对象类定义中的属性ID,value属性及为具体的属性值。如变电站类的名称属性值为“1变电站”。25 HTC编程处理 数据表现层的HTC组件包括:PMInstArray类,PMInst类,及PMPro

17、p类。类图定义如图2:图2PMProp类主要根据对象类中的属性定义,以不同的表现方式实现对象实例中某个特定的属性。如一般的文本输入属性,表现为网页元素INPUT框;长文本属性,表现为TEXTARE输入框;IDstring选择,表现为SELECT的下拉选择等等。同时可根据属性定义,限制输入的最大长度,检查输入的有效性等等。PMProp类封装了对象类中所有属性的处理及表现,是数据表示层实现对象模型的最小元素。PMInst类根据对象类定义,实现对象类,是对象类在客户端的具体实现。通过PMInst类的封装,在数据表示层实现了通用对象模型。这样,一个PMInst类的实例就对应了一个系统中的对象实例。根据

18、应用需求,PMInst类提供了对象类相关的操作,如对象类数据发生变化后,向业务逻辑组件提交修改数据的操作。为了让PMInst类有更好的通用性及灵活性,PMInst类中还定义了页面表示属性及操作定义属性。在某个具体的应用中,涉及的对象可以是单个对象实例,也可以是多个对象实例。为在数据表现层中实现一个或多个对象实例的统一处理,我们定义了PMInstArray类。PMInstArray类提供了对象管理方法:包括新增、删除、修改,及整体页面定义和操作定义等等。26 自定义的页面表现在全WEB界面的应用系统中,常常存在开发者提供的页面表现不能满足目标用户需求的问题。系统后期的大量维护工作是修改页面布局及

19、字体,页面用色的调整。为解决该问题,在设计实现通用对象模型时,我们加入了对页面表现及控制的通用处理。在上述HTC类定义中,我们分别在PMInstarray类及PMInst中加入了cssfile及Uidef属性,用户通过对cssfile和Uidef的定义,可实现两个层次的页面表现定义:l CSS层次的改变 CSS是Cascading Style Sheets(层叠样式表单)的简称。更多的人把它称作样式表。顾名思义,它是一种设计网页样式的工具。样式表为网页的展示效果提供了更多的灵活性。通过样式表的定义,可定义网页上几乎所有元素的颜色、背景、边界、边框等等属性。借助CSS的强大功能,网页将在您丰富的

20、想象力下千变万化。在我们的系统中,用户可自定义css文件,然后将该css文件名作为参数传入PMInst类或PMInstarray类,实现css层次的页面表现定义。虽然css规范功能强大,但样式表不能改变大范围的页面布局,也就是说,如果PMInst类的缺省页面设计为两列的表单(TABLE)样式,那么定义css可以改变表单的背景,字体大小颜色等等,但不能将表单样式变为多列的表单或是根本不使用表单元素。这样的工作是由更高层次的页面定义完成的。l 自定义页面布局调度MIS通用对象模型对系统处理数据的高度抽象及HTC组件对通用对象模型的类,属性的统一处理,使用户自定义页面成为可能。为实现用户自定义页面布

21、局。我们提供了一个所见即所得的Web页面编辑工具,先选择要定义的对象类,工具将自动生成包括选定对象类的所有属性的Web页面,用户即可对该页面进行再加工,设计、定义出满足自己要求的页面。最后将页面布局文件通过工具上传至Web服务器,并将文件名传入相应的UIdef参数,就可实现完全的自定义页面。27 用户自定义对象操作的支持以上HTC类仅提供了调度MIS通用对象模型的一般操作,但往往在调度MIS应用,这些操作还不能完全满足要求。因此,在PMInstarray类及PMInst类中还提供了定义操作的入口,即jsfile参数。开发人员或用户可根据DHTML规范,以对象方式访问HTC类,以脚本语言编写完成

22、需要的操作的脚本文件。随着应用的丰富,自定义对象操作定义的增加,我们还可将一些普遍性的操作固化为通用操作,近一步完善HTC类设计。3 扩展应用在实际的调度MIS系统中,除了数据的管理,即增加、删除、修改处理外,另一个重要的数据展示就是数据查询的实现。在调度MIS对象模式的扩展应用中,我们提供了通用的调度对象查询。通用的调度对象查询包括C/S结构的查询定义工具:定义要查询那种对象类、对象类的哪些属性,以及那些对象类属性将作为查询条件。查询的WEB实现仍以三层模式实现。业务逻辑组件接收查询定义及当前过滤条件,提供符合条件的对象实例的XML格式数据。数据表现采用了XSL(可扩展样式语言),将查询结果的XML数据直接转化为网页文件。并可通用定义不同的XSL文件,将调

温馨提示

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

评论

0/150

提交评论