参数化构件(精选7篇)
参数化构件 篇1
0引言
Bentley是一个国际化的BIM软件开发商和平台服务商,在建筑工程、地理工程、土木工程(道路、桥梁、场地)、工厂设计及机械制造等行业提供有效的软件解决方案,从勘察、设计到施工及运维的各个阶段为基础设施全生命周期的可持续发展提供支持。目前该公司软件已在我国的建筑、水利水电、厂房、城市轨道交通得到应用[1,2,3,4],在土木工程中也提供较多产品如Power Civil、Bridge Master、ProConcrete等,但是在铁路桥梁工程进行探索应用时仍不能满足桥梁设计的实际需求[5],需要进行二次开发实现基于线路的桥梁参数化建模。
1概述
由于Power Civil和Micro Station的实体参数化功能较弱,为方便实现结构物的三维参数化,在开发过程中定义了一种描述语言——PCL(Parametric Component Language),并在Micro Station平台上开发了相应的语言解释器,以实现结构体的参数化。该方法将结构体分为3个层次:图元Element、构件Component和组件Assembly,一般用Element定义二维参数化图元,Component定义三维参数化构件,Assembly定义三维参数化组装体。
参数化构件的原理:首先实现二维轮廓的参数化,通过拉伸、扫描二维轮廓等方法形成参数化构件,再由构件通过组合、并交差、排列、变换等操作形成复杂构件或组件。由此可知,一个参数化构件的主要参数是其轮廓几何参数、高度参数、定位参数等,而由这些参数组成的构件或组件为保证其相互关系,就必须注意建立其参数关系。在PCL里通过参数传递、共用表达式等方式来建立,建立的PCL文件在Power Civil启动时自动完成加载。
2 PCL中对象的标准格式
下面以定义支承垫石为例进行说明,在PCL文件中使用“#”,“#”后面的内容全部为注释内容。
3通桥(2009)4301/4201系列圆端形实体墩参数化
4客专实体墩模型参考图
在启动Power Civil时,自动加载定义的PCL文件,选择一个三维视图,执行[调用参数化构件]—将在组件页面中显示所定义的实体桥墩—“圆端形实体桥墩(托盘圆弧过渡)—银西”(见图2)。右侧显示出所定义的主控参数,在三维视图中点击页面中[调用]按钮,实体墩的参数化的模型将显示在视图中(见图3)。
选择三维视图中的实体桥墩模型,点击右键—修改标准构件参数页面,修改主控参数后(见图4),执行页面中[修改]按钮,驱动实体模型的修改。
利用所定义的实体桥墩模型,可以创建标准图(见图5),利用标准图创建出银西线实体桥墩参考图,在基于线路创建桥梁模型时,直接选择银西线实体桥墩参考图,则能根据线路高程与地形图相对关系自动确定合理桥墩高度,调用参考图完成桥墩参数实例化。
5结束语
高效率高质量建模是BIM技术应用的基础,构件的参数化设计是二次开发中需要首要解决的问题。通过对图元Element、构件Component和组件Assembly等PCL格式定义可以建立构件模型的标准库,利用模型库能够快速创建出铁路桥梁模型,该方法能够实现铁路桥梁构件的参数化、关联化、标准化设计。
参考文献
[1]蒋慧.Bentley三维软件在建筑设计中的应用[J].工程设计与研究,2014(137):19-23.
[2]高博.三维协同设计在水利设计院中的应用[J].水科学与工程技术,2013(5):94-96.
[3]庄叶凯.Bentley三维工厂软件在工程设计中的应用[J].有色冶金设计与研究,2009(6):108-109.
[4]刘奥.武汉地铁2号线常青花园车辆段BIM设计[J].铁路技术创新,2015(3):81-84.
[5]刘彦明.BIM技术在铁路设计中的推广应用[J].铁路技术创新,2015(3):51-54.
参数化构件 篇2
1 复合材料结构件概述
复合材料结构件具有较高的耐腐性、刚度、强度等优势, 在航空领域发挥着非常重要的作用, 如飞机承力结构件、方向舵、垂直和水平尾翼、舱门、阻力板、发动机机罩等都采用了复合材料结构件[1]。同时, 飞行器利用复合材料结构件的可设计性和良好物理性能, 有效降低了生产成本, 使整个飞机结构减轻了20~40%的重量, 而复合材料结构件的应用状态对于整个飞行器运行状态有着重要影响, 其应用部位和材料用量是评价一个飞行器结构科学、合理的重要指标。另一方面, 应注意复合材料结构件的一些缺点, 在操作使用或者维护不合理的情况下, 受到弹伤、雷击、鸟撞等因素影响, 复合材料结构件易发生断裂、破孔、裂纹、缺口、分层等缺陷, 在一定程度上影响飞机的动态和静态运行性能。
2 复合材料结构件固化成型工艺
(1) 手糊。手糊固化成型工艺适用于形状结构复杂、面积较大的复合材料结构件, 其主要是按照标准的铺层方法, 将浸润在胶水中的胶布分层糊在模具上, 然后进行加热固化, 这种固化成型工艺的操作使用方法比较简单, 但是效率较低; (2) 缠绕。缠绕固化成型工艺适用于方管、锥管、圆管等结构件中, 在缠绕机上放上芯模, 将结构件缠绕成型以后, 然后进行加热固化, 最后将芯模取出, 加工成制品; (3) 模压。模压适用于质量要求高、尺寸小、形状结构复杂的复合材料结构件, 在专用模具中将预浸料填充密实, 结合进行合模, 采用标准加工工艺, 最后加热固化。
3 复合材料结构件固化成型工艺参数控制研究
复合材料结构件固化成型工艺参数控制主要包括保温时间、升降温速度、压力、温度等。固化成型工艺从本质上是一个对复合材料结构件加压、加热的过程, 使纤维和热固性树脂相结合, 从而形成复合材料结构件。因此, 固化成型工艺参数控制对于复合材料结构件质量有着直接的影响。
(1) 热压机压力、温度和操作控制。在使用热压机过程中, 应结合实践经验和具体情况, 严格控制热压机运行工艺参数, 在加热过程中, 下层和上层加热板温度应明显高于中间层加热板温度, 结合复合材料结构件的形状、结构和设计要求, 合理把握热压机加热时间。对于复合材料的碳纤维制品, 在使用固化工艺时, 按照工艺参数要求, 当碳纤维制品温度达到130摄氏度时再进行一次加固, 但是在实际操作应用中, 在碳纤维制品温度达到120摄氏度时必须增加5MPa压力, 否则碳纤维制品一旦形成胶凝态, 再加压已经没有效果。同时, 结合不同季节的温度变化, 合理控制模具温度和加热板温度之间的温差, 夏季应尽量减小温差, 冬季应尽量增大温差[2]; (2) 烘箱温度控制。复合材料结构件放入烘箱中进行固化成型工艺, 会经历两个温度折点, 如图1所示, 因此在进行固化成型工艺之前, 应先了解工艺流程, 在保温阶段应保温, 在加热阶段应加热, 特别注意在温度折点附近时, 严禁超温, 保障复合材料机构件质量。
在操作过程中, 当模具温度低于烘箱温度15摄氏度时不再加温, 这时到达第一个转折点, 当模具温度逐渐上升, 至折点还差4摄氏度时, 将烘箱温度调节到115摄氏度, 使复合材料结构在第一个转折点周围保持恒温, 然后适当延长保温时间, 在到达第二个转折点时, 持续保温2h, 当模具温度达到155摄氏度时, 烘箱温度下降到167摄氏度, 当磨具温度达到158摄氏度时, 烘箱温度调节到162摄氏度, 在整个固化成型工艺中, 规范记录复合材料结合件温度。另外, 还应注意真空泵冷却用循环水水压控制情况[3], 在固化成型操作过程中, 冷却真空泵持续通过循环水, 确保江循环水水压的稳定正常。
3.3热压罐压力、温度控制
在外加压、抽真空状态下, 热压罐可在短时间内将罐中的温度调整均匀, 在必要情况下, 热压罐还可强制降温, 有效加快固化成型速度, 提高复合材料结构件质量。使用热压罐对复合材料结构件进行固化成型, 应严格控制加外压和卸掉真空的时间, 时间过晚或者过早都会影响结构件质量, 对热压罐抽真空可快速抽出低分子气体和挥发物。加外压主要是在胶凝状态下树脂相变, 加压时间过早, 会导致树脂流失, 使得复合材料结构件贫胶[4], 加压时间过晚, 复合材料结构件内部会呈现疏松状态, 产生气泡或者孔隙, 因此应衔接好加外压和卸真空操作。
4 结语
复合材料结构件作为一种新型的材料产品, 在航天航空领域发挥着重要作用, 固化成型工艺是保障复合材料结构件质量的关键环节, 应结合复合材料结构件的实际特性和加工要求, 采用合适的固化成型方法, 严格控制固化成型工艺参数, 规范热压机、烘箱和热压罐的操作使用, 不断提高复合材料结构件质量, 在未来发展过程中, 应继续加大对复合材料结构件固化成型工艺的研究, 推动复合材料结构件在更多领域的应用。
参考文献
[1]杨德桐.复合材料结构件固化成工艺操作及控制[J].航天返回与遥感, 2013 (02) :53-57.
[2]杨德桐.复合材料结构件固化成型工艺参数控制[J].航天制造技术, 2012 (05) :10-13.
[3]陈晓静.复合材料构件固化成型的变形预测与补偿[D].南京航空航天大学, 2011.
构件化角色设计的研究 篇3
1 构件化软件
本文将构件分成六个层[1]:语义层描述构件具体实现功能, 是构件价值的体现;基约层用来描述构件实体提供或需求服务的接口, 负责构件之间的通信, 连接包括一组参数;技术层描述构件适应具体的操作平台、兼容语言等;契约层即行为交互层, 描述构件之间及构件与环境之间的行为交互, 包括消息的顺序、消息的同步、消息的异步及消息堵塞等条件;服务层描述构件非功能属性, 主要指构件的服务质量;构件是可在一定的范围内, 有限制的修改以达到提高复用目的, 同时构件多次复用具有持久性, 即构件多次复用的结果是一致的修改后的构件独立于原构件。
根据以上的分析, 本文从复用观点出发, 认为构件是具有相对独立的功能, 显示且严格的接口描述, 具体的语境依赖, 特定的契约约束, 相对明确的服务指标, 可被限制性修改且能多次复用、易于组装的软件单元。
2 角色控制
目前, 大多数信息管理系统的权限控制都是从资源存取控制客体出发进行管理, 这种权限管理方式没有考虑到实际企业的权限结构, 缺乏灵活性和透明性。
无论是基于本体方向, 还是面向对象方向, 或者是基于层次关系方向。角色控制在以下方面存在不足, 首先, 权限操作复杂, 授权方式不够灵活, 不能满足后期新角色的加入, 特别是对一些大型的结构性数据的权限管理力量薄弱;其次, 随着构件化技术的成熟, 要求资源共享能力越来越高但目前的角色管理在不同的系统中大都自行开发, 没有达到复用的目的;第三, 系统中的角色管理被限定在确定的用户, 同时用户必须兼顾角色中的权限, 因此, 角色管理对用户的透明性差。
3 构件化角色设计原则
基于构件的复用最终的价值是将设计可复用的产品以即插即用的方式用到工程中去, 目前, 无论是基于本体方向, 还是面向对象方向, 或者是基于层次关系方向。它们在以下方面存在不足, 首先, 权限操作复杂, 授权方式不够灵活, 不能满足后期新角色的加入, 特别是对一些大型的结构性数据的权限管理力量薄弱;其次, 随着构件化技术的成熟, 要求资源共享能力越来越高但目前的角色管理在不同的系统中大都自行开发, 没有达到复用的目的;第三, 系统中的角色管理被限定在确定的用户, 同时用户必须兼顾角色中的权限, 因此, 角色管理对用户的透明性差。
基于此, 本文提出角色构件的设计应具有可复用性、用户透明性及可配置性等原则。
3.1 复用性
构件复用作为一种现实有效的软件开发方法正受到越来越多的重视和研究。近年来, 随着DNA, 中间件等三层体系结构和分布式对象的兴起, 为基于可复用构件的软件体系结构赋予了更大的内涵。从而使人们在评价构件复用的意义时, 不应只局限于开发周期的缩短, 软件质量的可靠提高, 更要认识到构件组装式的开发在系统维护 (如版本更新, 功能增删等) , 分布式计算等方面所带来的极大便利。由于维护阶段占软件开发周期总成本的67%左右, 因此构件重用对整个软件产业的重要意义就不言而喻了。从维护和分布计算的角度考虑构件复用就是要实现“即插即用”。
3.2 用户透明性
在计算机技术中, 一种本来是存在的事物或属性, 但从某个角度看似乎不存在称为透明性现象。通常, 在计算机系统中, 低层次的机器级的概念性结构和功能特性, 对高级程序员来说是透明的。本文提出的透明性狭义指系统中的角色管理被限定在确定的用户, 同时用户必须兼顾角色中的权限因此, 角色管理对用户的透明性差。
本文构件化角色的设计如下:所有构件仅提供限制性功能接口, 通过配置使得不同的用户得到不同的权限, 用户修改构件是封闭的, 使用构件是透明的, 角色构件的功能及权限对所有用户都是透明的, 用户只需知道做什么, 不必理会怎样做。
3.3 可配置性
可配置性的最低层次就是一般的配置文件、配置参数, 这是一种比较规格和静态的参数结构, 参数表, 稍微复杂一些可以采用树结构。软件中自然是有大量的参数需要这样去配置。二次开发程序, 用来满足复杂的、动态的功能实现和参数定义。一般说普通配置文件解决不了问题的时候, 脚本程序就需要出场了。可配置性高的层次是指技术发展的方向, 实现 (而不是说用户使用) 的难易程度。自然, 一般而言普通配置文件和参数体系容易被用户理解;而二次开发的脚本不太容易被用户理解和掌握。但也不能绝对这么说。通过一定的方法和努力, 二次开发的代码也可以很简单, 但依然保持了它的功能灵活性。
本文提出的可配置性狭义的指通过配置用户的等级来实现用户的权限。
4 结语
构件化软件被视为软件复用有效手段之一[2], 角色控制模块是重复开发率最高的模块之一, 基于此, 本文将构件化的思想引入到角色控制管理中, 提出了角色设计应具有复用性、用户透明性及可配置性等原则, 为角色复用、再复用和基于角色的权限控制提供了一种可行的解决途径。
摘要:系统中角色控制模块是重复开发率最高的模块之一。本文将构件化的思想引入到角色控制管理中, 提出了角色设计应具有复用性、用户透明性及可配置性等原则, 为角色复用、再复用和基于角色的权限控制提供了一种可行的解决途径。
关键词:构件化,角色控制,复用性
参考文献
[1]Qi Huac heng;Ron g Mei, Zh angGuangquan;A behavior-driven modelof component interaction adaptation[C].Computer Science&Education, 2009.
[2]C.Canal, Pascal Poizat and GwenSalaün.Model-based Adaptation ofBehavioral Mismatching Components[J].In IEEE Transactions on SoftwareEngineering, 2010, 34 (4) :546-563.
参数化构件 篇4
关键词:软件构件,企业信息系统,.NET平台,C#语言
0引言
当前, 企业信息系统需求呈井喷状态, 软件规模越来越大, 而人们对于软件开发周期的要求却越来越短。使用传统的信息系统开发方法, 大量的重复劳动导致开发效率的降低。而使用构件化技术开发信息系统不仅能显著提高软件的质量, 降低开发人员的劳动强度, 而且能随着系统业务流程的变化而变化。因此, 基于构件技术开发企业信息化系统方法受到了业内人士的普遍关注。
软件构件是指具有相对独立功能和可复用价值的软件成分, 是粗粒度、相对独立、可替换的软件系统组成部分, 能够完成明晰功能的软件实体, 可独立部署并易于第三方组装。它的使用同开发、生产无关, 构件其实就是对一组类的组合进行封装, 并完成1个或多个功能, 为用户提供多个接口。整个构件隐藏了具体的实现, 只通过接口对外提供服务。
1企业信息系统的构件化开发方法
信息系统是稳定性和可变性相统一的实体。其稳定性特征表明, 大部分信息系统在信息模型和功能上有类似之处, 尽管不同领域对信息系统的功能需求各异, 但在一定范围内系统所处理的信息结构是相对稳定的, 变化的只是其内容;同时, 信息系统所涉及到的业务种类有限, 处理过程也具有相似性, 不同的只是其运作和控制方式上的差异。正是基于信息系统的稳定性和基础业务的相似性, 从而可以将相同的操作进行抽象, 将实体信息及其处理处理过程封装在不同的构件中。
基于构件的信息系统开发与传统开发方式不同之处在于分析、设计和实现等各个阶段中所充实的工作不再是从零开始, 而是从开发转变为系统集成, 可以看成是一个以组装构件为主的软件开发过程。一种可行的构件化企业信息系统开发框架如图1所示。
上述方法可以快速建立信息系统, 其核心部分是构件。根据构件处理信息的不同, 可将其分为3类:
① 通用基本构件:是特定于计算机系统的构成成分, 如基本的数据结构、用户界面元素等;
② 领域共性构件:是企业信息系统所属领域的共性构成成分, 它们存在于该领域的各个应用系统中;
③ 应用专用构件:是每个应用系统的特有构成成分。信息系统开发中的重复劳动主要指前两类构成成分的重复开发。
因此, 通过凝结共性, 通用基本构件和领域共性构件将具有良好的可复用性, 由此可将开发者的主要精力聚集在系统专用构件的开发及各构件的组装工作中。
企业信息系统的构件化方法摒弃“一切从零开始”的开发模式, 而是以已有工作为基础, 充分利用积累的知识和经验, 通过用户需求和问题域的详细分析发掘可重用的成分, 在旧系统中提炼或新开发通用基本构件和领域共性构件。开发者的精力投入专属新系统功能的构件开发过程。所有构件经过测试、标准化、描述和分类后导入构件库, 从而新系统的开发是构件开发、组装和系统测试的过程。
2复用中的实际问题及关键技术
2.1复用中的实际问题
在实际的开发中, 软件的复用程度并不理想。基于构件的软件开发将开发的重点由原来的软件编程转变为利用已有构件组合集成新的软件系统。由于建立一个应用需要复用很多已有的软件构件, 这些构件可能是在不同的时间、由不同的人员开发的, 并且有不同的用途, 因此需要将它们组装在一起。除了良好的软件架构和合理的软件开发过程指导外, 程序员对构件的正确理解和准确利用至关重要。软件复用面临一个矛盾:一方面存在大量的可复用构件, 另一方面程序员很难找到真正需要的构件。要解决这个问题, 就需要对构件的静态特性和动态行为做出准确、全面的描述, 并建立构件库对构件进行合理的分类和组织, 提供良好的检索方法支持。
2.2关键技术
基于上述软件复用中的实际问题可以看出, 构件的描述技术作为构件化软件设计中的关键技术之一, 在基于构件软件开发 (CBSD) 的应用实践中占有重要地位。构件描述是指以构件模型为基础, 解决构件的精确描述、理解及组装的问题。它规定了一个软构件所需的结构和内容, 不仅用于指导软件构件的设计、开发、管理、组装和测试等活动, 而且可用于构件库的组织、存储、检索和浏览。
3解决方案
面向对象基于Web的.NET技术是企业信息系统开发中经常采用的开发平台。.NET平台非常适合于构件化布署, 采用构件化工程方法, 将代码与逻辑和业务对象的剥离能够实现软件复用。一个.NET平台下采用C#语言提炼、开发和加工构件的过程示意图如图2所示。C#是面向构件的编程语言, 对构件开发有很好的支持。XML描述能嵌入C#构件注释中。传统构件描述中采用数学符号 (难以理解、实现、维护及推广) 或直接使用自然语言 (很难保证构件质量) , 而XML具有良好的扩展性和自描述性, 因此可将XML作为构件描述语言。
用C#等语言开发的源代码, 构成各个功能模块。将能够复用的功能模块提取出来, 通过标准的接口定义, 解耦合 (构件与数据库、应用环境等分离, 真正意义上实现独立, 以适用于其他应用系统) , 并通过XML描述对构件进行良好的注释。VSTS (Visual Studio Team System, Microsoft 开发工具) 编译源码后, 生成2个文件, DLL程序集 (构件) 和含有构件描述数据的XML文档。通过XML构件描述解析工具的解析将XML文档转换为构件描述元数据, 最后, 构件源码、程序集和构件描述元数据3类形式的文件通过构件入库管理系统一起入构件库。
这样, 使用者在构件库中搜索到所需构件时, 通过阅读详细的描述信息能够清楚地了解构件的基本功能, 正确地应用于企业信息系统的开发, 而且当构件升级为新版本时, 其描述信息也能随之更新, 避免了描述与实体的脱节。
4结束语
企业信息系统构件化开发方法的框架具有通用意义, 可用于基于构件开发软件的过程中。上述提出的.NET平台下C#语言开发构件的过程已应用于工程实践中, 构件的XML描述能够自动载入构件库, 实现了构件体与描述的一体化, 提高了构件的精确描述度和理解力。
参考文献
[1]杨芙清, 梅宏.构件化软件设计与实现[M].北京:清华大学出版社, 2008.
[2]王志坚, 费玉奎, 娄渊清.软件构件技术及应用[M].北京:科学出版社, 2005.
构件化设计在电子签名中的应用 篇5
在学校的机房管理中, 清点学生名单是一件重复而繁锁的事情, 特别是同时上机人数较多时, 这样不仅费时, 而且经常出现先点名的人被记录, 而后点名没有被记录到的情况。点名时间过长, 不仅影响其他学生的正常上机调试思路, 而且登记记录也费时间, 为解决这个问题, 以ASP.NET为开发工具, 以构件化的设计思路, 开发了一个电子签名程序, 经学校机房使用, 效果很好。
2 电子签名系统需要解决的问题
(1) 系统能够自动将现在的时间转化为一个学期的第几周星期几, 例如, 某学校2011年秋学期是2011年8月28日开学, 现在是2011年9月25日, 转化为结果为:第5周星期日。
(1) 能自动记录学生上机时间。
(2) 能限定学生一人只能签名一次。
(3) 通过IP限定, 一台计算机只能签名一次。
(4) 超过指定时间, 限定功能自动取消。
(5) 能记录并提醒学生迟到时间。
(6) 能统计一个学期所有学生签名情况。
3 电子签名系统设计
3.1 数据库
电子签名系统需要3个数据表:第一个表是学生基本信息表, 表名student, 该表主要用于记录学生的基本情况, 表的结构如表1所示。
第二个表是用于记录学生签名信息的表, 表名是QM, 表的结构如表2所示。
第三个表是将签名结果以统计形式显示出来的, 是一个交叉表查询, 表名是QMSQL, 要求是将QM表中学号、姓名两个字段设计为行标题, 而分组设计为列标题的查询的设计, 如图1所示。
3.2 Web构件开发
在ASP.NET中, 可以通过用户控件、Web Services和Class来开发Web构件, 下面所讲的实例均是以Class来实现。为了实现上述功能, 需要开发几个Web小构件, 方法是将要实现的功能在类中实现, 在程序中直接调用即可。
(1) 获取当前时间在一年中的第几周, 参数为日期时间型dt, 返回整型结果。
(2) 将现在的时间转化为一个学期的第几周, 参数为字符型起始时间StartTime, 返回整型结果。
(3) 检查用户当天是否已经签名, 参数分别为字符型的表名tableName、学号字段名XHFieldName、学号字段值XHFieldValue、周时间字段名ZJFieldName、时间字段值ZJFieldValue, 返回逻辑型结果。
(4) 检查签名用户的合法性, 参数分别为字符型表名tableName、用户名字段名UserNameFieldName、用户名字段值UserNameFieldValue、密码字段名PasswordFieldName、密码字段值PasswordFieldValue, 返回逻辑型结果。
(5) 实现电子签名。参数分别为字符型的查询SQL语句parasql、记录签名的表名tablename、学号字段值XH、姓名字段名XM, 签名时间字段值ZJ。
3.3 程序基本流程
程序基本流程是:用户首先登录并签名, 并判断用户身份的合法性。如果身份合法, 则判断当前时间, 如果时间在指定时间之内, 则将签名结果写入服务器的数据库。签名成功后, 自动跳转到显示签名结果的页面。
4 实现电子签名
4.1 登录表单设计
用户登录程序, 可事先连接数据库, 读取数据库中的班次字段, 将班级字段中不重复的班次字段记录添加到列表框中, 姓名和学号由学生签名时自己输入, 签名时间通过构件类自动生成, 如图2所示。
4.2 登录界面事件处理
(1) 创建类实例
(2) 通过调用构件, 在时间文本框自动显示时间
(3) 提交时检查签名并实现签名
4.3 显示签名结果
无论签名是否成功, 均提供查看程序给学生查看自己签名结果是否已经写入数据库。签名结果其实是显示数据库中已经签名的数据, 所以是一个数据显示程序, 该部分内容已经有很多文章中作了介绍, 在经就不再赘述。签名结果有两种形式, 第一种是签名的数据, 包括签名者的学号、姓名、签名时间等;第二种数据是签名的统计结果, 是将学生每周的签名结果都显示出来, 以便检查和统计, 为了使同一程序实现两种结果的显示, 可以通过地址栏传递参数来实现。显示签名的程序是DisplayQM.aspx, 当以参数DisplayQM.aspx OP=QMd时, 显示签名的统计结果, 当以参数DisplayQM.aspx OP=QM可以显示签名原始数据, 详细设计可参考源程序代码。DisplayQM.aspx的设计效果如图3所示。
4.4 程序运行效果
程序首先运行DZQM.aspx, 运行效果如图4所示。
如果输入正确的班次、姓名和学号, 提交后运行效果如图5所示。
单击“确定”按钮, 5秒钟后, 显示签名结果, 如图6所示。
5 结语
构件化的设计的最大好处是代码可以重复利用, 从而实现软件复用。本程序能够自动计算周次和时间、自动统计并显示签名结果, 在机房上机管理中通过电子签名, 可以客观公正地记录学生上机或签名时间, 自动记录并统计, 减轻了教师管理和统计的工作量, 提高工作效率, 使用了几年时间, 效果良好。
参考文献
[1]刘友生, 陈一平, 曹光忠.Web Services内部架构对QoS的影响[J].辽宁工程技术大学学报 (自然科学版) , 2010, (01) .
[2]刘友生, 等.构件化Web项目开发.北京:清华大学出版社, 2011.
参数化构件 篇6
俗话说, 你不理财, 财不理你。 投资和理财已经成为现代人经济生活的重要内容。 随着人民生活水平的提高, 人们将富裕的钱财, 除进行必要的储蓄存款外, 很多人将多余的钱进行理财和投资, 股票是人们投资和理财的主要选择, 因此实时接收股票信息, 进行实时分析是股民的基本要求, 将以ASP.NET为开发工具的, 以构件化的设计思路, 详细介绍股票实时接收信息系统的开发设计思路及实现步骤。 分两个部分介绍, 第一部分, 首先介绍股票信息接收系统构件的开发, 第二部分主要介绍如何利用构件来实现股票实时信息的接收, 可以分别在电脑和手机上接收实时信息, 效果如图1和图2所示。
2股票实时接收信息系统设计与实现
2.1程序要实现的功能
股票实时接收信息系统主要要完成以下功能:
(1) 股票竞价信息的显示, 包括5档的竞买价报价和5档的竞卖价报价。
(2) 股票分时走势的实现和显示。
(3) 股票实时K线图的显示, 如日K线、 周K线、 月K线等信息。
(4) 股票的当前价格显示。
(5) 股票的其他信息显示, 如成交量、 成交额、 股票名字、 今日开盘价、 昨日收盘价、 当前价格、 今日最高价、 今日最低价等信息。
(6) 能够保存和添加自选股, 双击自选股能够直接显示当前股票的相关信息。
(7) 能够直接查询相应股票信息, 即当输入股票代码后, 就可以直接通过操作显示上述(1) - (5) 的信息。
2.2数据库
股票实时接收信息系统的数据库需要用到以下数据表:
(1) 表Gp_Code: 股票代码信息表, 表的结构如表1所示。
Gp_Code表主要用于存放深圳和上海所有股票代码,如图3所示。
(2)表MGp:自选股信息表,用于用户保存自选股票代码信息,表的结构与表1完全相同,如图4所示。
2.3相关构件
股票实时信息包括竞买价报价(买一至买五)、 竞卖报价( 卖一至卖五) 、 成交量、 成交额、 股票名字、 今日开盘价、 昨日收盘价、 当前价格、 今日最高价、 今日最低价、 分时走势、 日K线、 周K线、 月K线等信息上, 这些信息的获取需要有一定的接口, 这里以新浪股票接口为例来说明。 相关构件包括
(1) 构件函数: Get Field Value———从数据库获得指定字段的值
该构件的功能是根据指定的参数, 获取数据库中指定字段的值, 该函数有3个参数: Fields Order No、 Gp_code和Tablename, 构件代码及参数说明如下:
调用方法举例:
(2) 构件函数: Bind Filed Rec Value To Literal———绑定记录的数据到Literal控件
该构件的功能是根据指定的参数, 获取数据库记录的数据, 并将数据绑定到指定到Literal控件中, 该函数有3个参数: my Literal、 Bind File Name、 Disp File Name和Table Name, 构件代码及参数说明如下:
调用方法举例:
( 3) 构件函数: Get Address Url———获得程序执行时的URL地址
该构件的功能是获取当前执行ASP程序的URL, 该函数没有参数, 可直接调用。 构件代码及参数说明如下:
(4) 构件函数: produceiframe———动态生成一个能够直接绑定到Label和Literal控件的内部框架
该构件的功能通过传递两个参数, 首先, 动态生成一个股票的链接, 并根据链接动态生成一个内部框架, 在该内部框架中显示动态生成的股票链接, 该该框架可以直接绑定到Label和Literal控件, 即通过Label和Literal控件显示框架的内容。 该构件函数有两个参数, 一个是Gp_code:股票代码, 另一个是time Type: 即股票K线类型, 如日K线、 月K线、 实时线等, 该参数不同, 显示的K线类型不同。 构件代码及参数说明如下:
调用方法举例:
(5)构件函数:Gp Type———获得股票类型代码
该构件传递一个参数Gp_code, 即股票代码, 返回股票的类型代码, 如传递参数为上海股代码 “600100” , 则返回sh600100, 如传递参数为深圳股代码为 “ 002201” , 则返回sz002201。 构件代码及参数说明如下:
调用方法举例:
(6) 构件函数: Get Gp Link———生成股票K线图链接
该构件传递两个参数, 一个是Gp_code: 股票代码, 另一个是time Type: 即股票K线类型, 如日K线、 月K线、 分时K线等, 该参数不同, 显示的K线类型不同。 构件代码及参数说明如下:
调用方法举例:
(7) 构件函数: Get Gp Infornation———获得股票实时信息
该构件传递两个参数, 一个是Gp_code: 股票代码, 另一个是string_para: 字符型数值0-31, 这个参数的数值表示的意义如下:
0: 股票名字;
1:今日开盘价;
2:昨日收盘价;
3:当前价格;
4:今日最高价;
5:今日最低价;
6:竞买价,即“买一”报价;
7:竞卖价,即“卖一”报价;
8:成交量(成交的股票数);
9:成交额(成交金额,单位为“元”);
10:“买一”申请量,如果120手;
11:“买一”申请报价;
12-19:分别为“买二”至“买五”申请报价的量和价;
20-29:分别为“卖一”至“买五”申请报价的量和价;
30:当前日期;
31: 当前时间;
构件代码及参数说明如下:
调用方法举例:
(8) 构件函数: Get Gp List Link———根据股票代码生成超链接
该构件传递两个参数, 一个是Gp_code: 股票代码, 另一个是GPname: 股票名称, 函数根据代码和股票名称, 动态生成显示股票名称和代码的链接, 这个参数的数值表示的意义如下:
调用方法举例:
3自动连续视频播放构件的发布
构件化仿真模型研究与自动化实现 篇7
随着计算机软硬件技术的飞速发展以及系统仿真技术研究的不断深入,仿真系统的规模日益扩大、功能不断增强、复杂度越来越高,对仿真系统的可扩展性、适应性、可重用性和互操作性提出了越来越高的要求[1,2]。
传统的仿真系统一般是针对单个系统、特定功能的开发,对每个仿真系统采用不同的设计方法和实现结构。从而导致了大量重复的开发,不但开发周期长、经费浪费严重,而且使得系统的维护和升级变得非常困难。
对此,将软件构件技术引入到仿真系统的开发中,进行构件化建模仿真。基于构件技术的仿真系统开发将仿真系统分解成为独立、可复用、可替代的仿真构件,通过仿真构件组合的模式可以有效地减少仿真系统新代码数量、缩短开发周期,增强仿真系统的适应性、可重用性[3]。本文下面主要对仿真构件的特征描述与实现结构进行相关的分析与研究。
1 仿真构件的模型分析
仿真构件模型是为了仿真构件的实现、文档化和部署而建立的标准。仿真构件模型标准包括可重用的构件化模型描述规范和构件接口规范,是构件化仿真系统必须具备的基本元素。保证仿真系统中构件具有一致的语义和语法描述规范,特别是仿真构件的接口定义,使得仿真构件之间以及仿真构件与系统之间能够实现良好的互操作性,也是仿真构件实现可重用性和互操作性的基础。
在软件工程领域,构件模型主要包括COM/COM+ /.NET、CORBA以及EJB。但是,这些构件技术没有指定统一的标准规范,并不是天然适合于仿真系统开发的。尽管仿真构件是属于软件构件中的一种,但它与通常的软件工程构件,如基于Web服务的构件、商务构件等有不同之处[4,5]。
基于Web服务的构件借助Web方便地提供和使用服务,通过定义WSDL(Web服务描述语言)对在Web领域内的通信协议和消息格式进行标准化,提供一个更好、没有语义歧义的服务并支持服务或构件的重用。但是,仿真构件只能在特定的仿真环境中运行,这是由于约束的限制,比如仿真构件的有效性限制了仿真构件的应用范围[6]。
商务构件的目的是提高商务过程的支持能力,其软件系统大多是信息系统。但仿真构件关注点与之不同,仿真构件更关注仿真过程中事件的出现和时间的约束,以及对客观世界功能的简化等。软件工程的构件与仿真构件还有一个重要的差别是互操作的接口。软件构件更关注接口的语法层,如接口名、接口的参数定义等。仿真构件除了满足一定的语法层接口,还必须要求严格一致的语义层接口,仿真系统之间的互操作必须遵循公共的协议信息接口。
尽管软件构件模型并不是天然适合仿真构件模型,但是软件构件模型已经具有广泛的应用市场和比较成熟的技术支撑,并且相对简单易用,而单独为仿真应用创建一种仿真模型规范并要获得广泛的应用并不现实。因此,比较实际的做法就是将仿真系统中与仿真相关部分和与仿真无关部分分离开,与仿真无关部分完全可以采用软件构件模型进行开发,而与仿真相关部分则可以应用比较成熟的仿真框架技术。例如,软件构件模型可以采用CORBA,仿真框架技术可以采用HLA,结合两者则可构成一个非常可行的构件化开发模式,如图1所示。在这种开发模式下,将仿真联邦分解成相对独立的CORBA构件,各个构件能够独立开发,提高了开发效率,同时使得仿真系统具有很好的扩展、可重用性。
2 仿真构件的元数据描述
元数据是保证仿真构件顺利重用的重要信息,它不仅有助于模型开发者和使用者理解仿真构件,而且有助于在资源库中搜索、选择和重用仿真构件[7]。元数据描述仿真构件模型的基本特征,包括了用于创建、集成、运行和测试仿真构件的相关信息。构件开发者在仿真构件中附加元数据,使得构件使用者在集成构件时可以获取更多接口信息,从而增强仿真构件的可操作性和可组合性。下面列出仿真构件几个关键的元数据项:
(1) 仿真构件的基本信息:包括仿真构件ID、名称、功能、版本、作者、创建时间、修改时间;
(2) 仿真构件的开发信息:包括仿真构件的开发语言、开发平台、开发操作系统;
(3) 仿真构件的应用信息:包括仿真构件应用领域、应用操作系统;
(4) 仿真构件的存储信息:包括仿真构件的文件名、文件属性、存储路径;
(5) 仿真构件的接口信息:包括仿真构件接口个数、各个接口的描述信息以及接口方法的详细信息。
当然,仿真构件的元数据不止以上几个,比如构件的VV&A信息、使用历史等元数据,甚至还可以允许构件开发者扩展自己的元数据定义。有了规范良好的仿真构件元数据,模型开发者可以方便地搜索、使用已有的仿真构件,同时给仿真构件使用者更加透明的构件信息,提高了构件的重用程度。
在进行仿真系统的构件设计时,如果将元数据信息直接嵌入到仿真构件之中,不但增加了构件开发的工作量,也可能引入错误代码;同时构件使用方对元数据的获取也不方便,依赖于开发方提供的文档性说明,不利于集成工作的有效进行。较好的做法是以配置文件的方式提供元数据信息,而且这种配置文件应该以一种标准化的格式提供,这样能更适用于不同的仿真环境。XML是当前被广泛应用的标准化文本格式,并有较多工具支持XML文件的自动创建和修改。因此,以XML的格式提供构件的元数据是比较好的做法。
如图2所示,给出了雷达对抗仿真系统中信号处理构件元数据的XML表示。通过XML的解析器(如VC下的MSXML),构件使用方可以很方便的从XML中导出元数据,提取出所需要的接口信息进行仿真构件的组装。
3 仿真构件的实现结构
在实现上,仿真构件主要包括三大部分:模型描述文件、模型数据文件以及代码执行体,各部分功能如下:
(1) 模型描述文件:主要用来定义仿真构件的静态结构,描述仿真构件的动态行为能力,如元数据描述。
(2) 模型数据文件:主要用来提供仿真构件运行过程中所需的数据,如初始化脚本,根据模型描述文件为构件内仿真对象实例提供初始化数据,比如创建的实例个数和该实例相应属性的默认值等。
(3) 代码执行体:是仿真构件特定于某种平台和编程语言的代码实现,通过编码化实现模型对数据的操作,完成仿真模型具体的服务功能,这是仿真模型设计与开发的最后一步,只有这样才能最终体现仿真构件的价值。
如图3所示,模型描述文件定义了模型结构,模型数据文件描述了构件运行中所需要的数据,代码执行体实现了模型操作,即仿真服务的调用。因此,模型结构和模型操作经过设计和开发后,通常不会随意改变;而模型数据在不同的仿真运行中通常发生变化,但必须在模型结构的基础上进行,作为模型操作的输入。这种结构使模型数据的变化不会影响到模型结构和模型操作,提高了数据处理的灵活性和仿真模型的重用性。
4 仿真构件自动化工具设计与实现
仿真构件自动化工具是为了从实现上更好的支持构件化仿真模型的快速开发,减少重复劳动,提仿真软件的质量,主要包括仿真构件开发平台与仿真构件组装平台两部分。
1) 仿真构件开发平台
仿真构件开发平台实现仿真构件代码框架的自动生成。根据构件模型的组成(过程、实体、交互),分别为其定义一组用于实现的代码模板集。模板由控制逻辑和静态文本组成,由于模板中的文本可根据需要定制,因此具有较高的灵活性。利用XML强大的信息交换能力和开放性标准,制定相应的处理过程,可根据仿真构件模型的描述从模板中抽取所需要的数据产生代码。主要需要实现的功能如下:
(1) 仿真构件特征描述:描述仿真构件的特征,主要包括构件的名称、接口名称、接口包含的方法以及构件相关的元数据描述,描述信息保存在XML格式的文档中;
(2) 仿真构件代码框架生成:利用仿真构件特征描述文件生成对应的代码框架;
(3) 仿真构件代码浏览与编辑:在生成的代码框架的基础上可以进行代码的查看和编辑,实现仿真构件的相关接口方法;
(4) 仿真构件代码编译:编译生成或编辑的构件代码,生成对应的构件文件,一般以dll形式保存。
基于上述分析的功能要求,实现了一个仿真构件开发平台,利用该工具生成仿真构件代码框架,其运行过程为:
(1) 进行仿真构件基本特征描述,并保存为对应的XML文件,该部分由构件模型向导生成,如图4所示。
(2) 利用生成的XML文件自动生成对应的仿真构件代码框架,并能够进行浏览和编辑,如图5所示。
(3) 编译编辑好的仿真构件代码,测试编码的正确性,并生成对应的构件执行文件。
2) 仿真构件组装平台
仿真构件组装平台给仿真构件的使用者提供一个进行构件组装的环境,用来简化仿真构件的组装操作,也可以称作仿真构件的装配车间。仿真构件组装平台需要实现的功能主要包括:
(1) 仿真构件维护查询:搜索并列出构建仿真系统需要的仿真构件集,在仿真构件组装过程中对这些满足需求的构件集进行管理;
(2) 组装框架维护查询:对已有的仿真系统组装框架进行维护,并提供当前可用的框架给构件组装者选择;
(3) 组装结构描述:描述可视化组装环境中已配置的仿真系统框架结构和仿真构件信息;
(4) 组装结构描述的XML转化:利用XML的标准实现组装结构的描述,并生成XML文件;
(5) XML文件管理:进行XML文件的存储和载入等管理;
(6) 代码生成:将XML文件描述的组装信息转化为代码;
(7) 编译运行:编译生成代码,并提供仿真运行环境。
基于上述分析的功能要求,实现了一个仿真构件的组装平台,如图6所示。在该平台运行界面的左边区域有两个列表用来实现仿真构件的管理和维护;中间区域为仿真构件的可视化组装区域,下方显示的是当前选择的仿真构件的基本信息;右边区域的列表显示当前的组装配置信息,上方显示的是组装的基本信息。实现仿真构件组装的主要操作过程为:首先从构架库中选择仿真构件组装框架,然后从构件库中选择对应的仿真构件进行配置,并填写组装的基本信息,全部配置完成之后通过保存选项将配置信息保存为XML文件,最后在编程环境中导入XML文件,生成相关代码进行编译即可以生成动态链接库或可执行程序。
5 结 语
本文对仿真构件进行了较为全面的分析与研究,同时开发了仿真构件开发工具,实现了仿真构件代码框架的自动生成与仿真构件组装的自动化,有效地提高了仿真构件开发的自动化程度,减少了工作量,对于促进构件技术在仿真系统中的应用具有一定的现实意义。构件化的仿真系统开发建立在仿真构件之上,通过组合仿真构件灵活实现仿真系统,能有效地提高仿真系统的可扩展、可重用等特性,同时也符合了标准化建模仿真的思想,必将成为未来仿真系统开发的主流方向之一。
摘要:为提高仿真系统的可扩展性、适应性、可重用性和互操作性等特性,将软件构件技术引入到仿真系统的开发中,对仿真模型构件进行深入的分析与研究,主要包括仿真构件的模型分析、仿真构件的元数据描述、仿真构件的实现结构分析。最后,设计并开发了仿真构件自动化开发工具,实现了仿真构件的代码框架自动生成与仿真构件的自动化组装。
关键词:仿真,构件,元数据,代码生成
参考文献
[1]杨锋,李群,等.体系对抗仿真跨层次建模方法论[J].系统仿真学报,2005,17(2):270-274.
[2]程相东,肖明清.基于MDA的分布式建模仿真框架[J].计算机工程,2010,36(15):268-270.
[3]卿杜政,李伯虎,孙磊,等.基于构件的一体化建模仿真环境(CISE)研究[J].系统仿真学报,2008,20(4):900-904.
[4]李海,郭彬彬.基于COM服务器构件的HLA集成技术[J].北京理工大学学报,2006,26(2):162-165.
[5]潘慧芳,周兴社,於志文.CORBA构件模型综述[J].计算机应用研究,2005,22(5):14-15.
[6]张建伟,李辉,游志远.用CORBA实现实时分布式仿真系统[J].四川大学学报:自然科学版,2003,40(1):168-170.