




已阅读5页,还剩74页未读, 继续免费阅读
(控制理论与控制工程专业论文)基于wosaxfs标准的atm应用系统的设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
鞍山科技大学硕士学位论文摘要 摘要 随着我国金融电予化建设的发展,a t m ( a u t o m a t i ct e l l e rm a c h i n e ) 自动取款 机以其服务方便快捷的特点越来越受到大众的欢迎。为了更好地发展银行业务,各 厂家和代理商加强联合,共同制定了开放的标准w o s a x f s 接口,它为w i n d o w s 操作系统和基于w i n d o w s 的应用程序以及客户服务之间提供无缝衔接。支持 w o s a x f s 标准接口的a t m 客户应用软件将独立于厂商的硬件,与硬件平台无关。 一个a t m 客户的统一软件平台应用能运行在不同的支持w o s a x f s 标准的a t m 设备上。 本文首先通过绪论简介了当前的论文背景,说明当前计算机技术的发展和银行 业a t m 客户应用系统统一软件平台的发展要求,论文研究的目的和意义;接着引 入应用系统的分布式结构、面向对象技术、消息响应机制、动态链接库技术、多线 程以及这些技术对软件开发的重用和集成的作用;然后构造一个a t m 客户软件设 计的整体模型,引入w o s a x f s 概念,介绍w o s a x f s 架构、x f s 逻辑设备的使 用、w o s a x f s 的应用机制,在这个基础上银行的a t m 客户应用程序更易于开发 和集成,同时也充分利用了软件的重用;接着介绍了a t m c 软件设计中涉及的相关 模块以及之间的调用关系,实现交易、通信、数据格式转换模块等具体的功能模块 的设计。a t m 终端交易报文采用的是i s 0 8 5 8 3 国际金融信息报文,由数据转换模 块实现通讯报文格式转换。 最后基于w o s a x f s 标准完成a t m 系统软件设计,实现a t m 的取款、查询 余额、修改密码和转帐主要功能,满足客户的需求。 关键字:a t m ,w o s a x f s 协议,消息响应机制,i s 0 8 5 8 3 鞍山科技大学硕士学位论文a b s t r a l 0 t a b s t r a c t w i t ht h ed e v e l o p m e n to ft h ec o n s t r u c t i n go ft h ef m a n c i a lc o m p u t e r i z i n go fo u r c o u n t r y ,a t m ( a t mt e l l e rm a c h i n e ) i sm o r ea n dm o r ep o p u l a rw i t ht h ep e o p l eb yi t s c o n v e n i e n c ea n ds h o r t c u t 。i no r d e rt oi m p r o v es e l f - s e r v i c e s ,m a n u f a c t u r e r sa n d d e l e g a t e s j o i nt o g e t h e rt om a k es o m es t a n d a r d sa n dp r o t o c o l s ,w o s a x f si so n eo ft h o s e 。i t p r o v i d e ss e a m l e s si n t e g r a t i o nf o rw i n d o w sb a s e dc l i e n ta p p l i c a t i o na n ds e r v e r s 。t h e i n t e r n e ta p p l i c a t i o n so fa t mc l i e n tw h i c hs u p p o r t e dt h ew o s a x f ss t a n d a r di n t e r f a c e i si n d e p e n d e n to ft h eh a r d w a r ep l a t f o r m 。au n i t es o f t w a r ep l a f f o r mo fa t mc l i e n tc a n r u nt od i f f e r e n td e v i c eo fa t mw h i c hs u p p o r t e dt h ew o s a x f ss t a n d a r d 。 f o rt h ec o n t e n to ft h i sa r t i c l e ,t h ea r t i c l ec o n t e x ti si n t r o d u c ef i r s t l yt oa c c o u n tf o r t h ed e v e l o p m e n to ft h ec u r r e n tc o m p u t e rt e c h n o l o g ya n da t ms o f t w a r e ,a n de x p l a i n o r d e ra n d s i g n i f i c a t i o no ft h i sa r t i c l e 。t h es e c o n dp a r ti n t r o d u c et h ed i s t r i b u t i n gs t r u c t u r e o fa p p l i c a t i o ns y s t e m ,t h eo b j e c to r i e n t e dt e c h n o l o g y ,t h em e c h a n i s mo fm e s s a g e r e s p o n s e ,d y n a m i cl i n k e dl i b r a r yt e c h n o l o g y ,m u l t i t h r e a d i n gw h i c hr e u s et h es o f t w a r ea n d e a s yt oa d df u n c t i o n 。t h em i r dp a r ti sa b o u tt h ea t m m o d e lt oa c c o u n tf o rt h ec o n c e p t a n df r a m e w o r ko f t h ew o s a x f s ,h o wt ou s et h el o g i c a ld e v i c eo fx f s 。a st h eb a s e o fa b o v e ,t h ea t ms o f t w a r ei se a s yt oe x p a n da n di n t e g r a t e 。a n dm a k ef u l lu s eo f s o f t w a r ew h i c hi su s e d 。t h ef o u r t hp a r ti n t r o d u c et h em o d u l e sa n di n t e r a c t i o ni nt h e a t m cs o f t w a r ed e s i g na n di m p l e m e n tt h ed e s i g no fd e t a i l e df u n c t i o no ft r u n c a t i o n m o d u l e 、c o m m u n i c a t i o nm o d u l e 、d a t at r a n s i t i o nm o d u l e ,e t c 。i s 0 8 5 8 3i n t e m a t i o n a l i n f o r m a t i o nf i n a n c i a lm e s s a g ew a su s e di nt h et r a n s i t i o no fa t mt e r m i n a l ,t h et r a n s i t i o n o f t h ef o r mo f c o m m u n i c a t i o nm e s s a g ew a si m p l e m e n t e db yt h ed a t at r a n s i t i o nm o d u l e 。 a tl a s t ,t h es o f t w a r ed e s i g no fa t ms y s t e mb a s et h ew o s a x f ss t a n d a r dt o i m p l e m e n tt h ed e t a i l e df u n c t i o n ,w h i c hi sa t mw i t h d r a wm o n e y ,t r a n s f e ra c c o u n t , c h a n g ep a s s w o r da n dq u e r y 。 k e y sw o r d s :a t m ,c e n x f sp r o t o c o l ,t h em e c h a n i s mo fm e s s a g er e s p o n s e , i s 0 8 5 8 3 i i 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得鞍山科技大学或其它教育机构的学位或证书而使用过的材料,与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示了谢意。 签名:j 鱼仁日期:型旦生巡 关于论文使用授权的说明 本人完全了解鞍山科技大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件,允许论文被查阅和借阅:学校可以 公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保 存论文。 ( 保密的论文在解密后应遵守此规定) 墼 鞍山科技大学硕士学位论文 第一章绪论 第一章绪论 1 1 课压背景 a t m ( a u t o m a t e dt e l l e rm a c h i n e ) 自动柜员机是一种组合了多种不同金融业务功 能的自助服务设备,持卡人可利用该设备所提供的功能完成存款、取款、信息查询、 代理业务等功能。 随着金融电子化和信息化的不断发展,自助服务逐渐成为银行服务客户的重要 渠道。a t m 作为银行的服务窗口,代表着银行的形象、承载着业务信息,可为客户 提供高效、便捷的服务。当前大多数银行的a t m 数量多、分布点广、交易量大, 早已得到客户的普遍认可。银行各分行完成在主机建立数据中心后,a t m 改变了原 来直联主机的方式,通过综合前置机连接到主机,a t m c ( a 1 m 客户) 端程序也相 应进行了改变。 目前a t m c 端程序都由厂商按照银行a t m 1 终端接口规范进行开发和改造, 但银行使用的a t m 品牌较多,各厂商a t m 操作系统和开发平台不尽相同,导致部 分交易在不同品牌a t m 上流程不相同,而太多的软件版本也导致a t m 的运营维护 成本增高。曾经占领a t m 操作系统市场多年的d o s 和o s 2 已不再为行业所支持。 同时,个人金融业务不断扩展,金融自助设备服务的需求逐年增加,在a t m 设备 上进行软件功能的扩充和改造的工作越来越多,越来越复杂,新的业务需求难以在 旧的操作系统上开发和实现。如何规范a t m 的开发和管理,如何提高a t m 的运行 效率,并选择具有发展前景的操作系统和开发平台,成为各家银行面临的亟待解决 的重大课题。 随着全球信息技术的发展和个人电脑的发展,人们倾向于购买各个电脑厂商的 硬件,然后自己组装成一台完整的电脑,这样可以避免购买单个厂商的硬件,从而 不用受制于某个单独的厂商。作为与个人电脑相似的银行金融外设a t m ,银行希望 能够类似个人电脑那样购买多个厂商的产品,然后组装成一台a t m 机。这样一来, 银行的a t m 机就不会受制于某一家厂商,银行只需要一台a t m 机的各个厂商维护 各自的设备,整机可以由某个厂商维护,也可由专门维护a t m 机的专业公司来维 护。最终,会有更多原来没有能力生产整台a t m 的厂商或代理公司进入到金融行 业,它们只销售a t m 机中的几个硬件,从而银行拥有更多的选择,会得到更多更 好的服务,得到更便宜的价格,它是各个厂商互相竞争中的最大受益者。所以,国 外银行现在都要求各个厂商的设备能够互相连接起来,从而组成一台完整的a t m 机2 l 。 鞍山科技大学硕士学位论文第一章绪论 a t m 系统的通信也由原来的a t m 一主机简单大机通信,转向使用 a t m c a t m p a t m s 的三层通信。其中a t m c 为a t m 客户终端,a t m p 为a t m 的前置机,a t m s 为a t m 主机。a t m 系统网络通讯也越来越多的使用基于t c p i p 协议的网络来代替旧的x 2 5 或s n a 网络。 1 2 课置研究的意义 根据上一小节对当前课题研究背景的分析,本文提出了a t m c 系统解决方案, 提出了统一a t m c 应用软件,构建a t m c 统一平台系统的思想。 为了提高系统的通讯控制和对硬件设备驱动的并行处理,a t m c 统一平台系统 以多任务的w i n d o w s 操作系统为战略平台,遵循w o s a x f s 标准,w o s a x f s 是 基于w o s a 的扩展金融服务( w i n d o wo p e ns y s t e ma r c h i t e c t u r e e x t e n s i o n sf o r f i n a n c i a ls e r v i c e s ) ,是微软公司为全球金融行业软件提出的一种软件架构。这意味 着a t m c 应用系统导入了标准化,规范化机制。只要任何一个厂商自己硬件的软件 驱动程序符合w o s a x f s 标准接口,那么它的硬件就可以无缝连接到其他同样符 合这套规范的a t m 机上,而不需要做任何的软件改动;同时w o s a 也规定了硬件 驱动程序和a t m 上层控制流程的程序之间的接口规范,支持w o s a x f s 标准接口 的a t m c 应用软件独立于厂商的硬件,与硬件平台无关,一个a t m c 应用软件的 统一平台应用能运行在各个支持w o s a x f s 标准的不同a t m 设备上。从而银行可 以购买非厂商提供的a t m c 上层程序,银行就会有更多的选择和更专业的软件服 务。 a t m c 统一平台应用可以运行在不同厂商、不同机型、支持w o s a x f s 标准 的a t m 上。a t m c 统一平台应用可以实现客户界面的统一、交易流程的统一、客 户凭条的统一。a t m c 应用软件的统一维护、统一开发大大降低了软件开发维护的 复杂度和成本投入,简化了a t m 的管理,从而满足各个银行的不同需求。 1 3a t m 系统结构综述 1 3 1a i m 系统网络结构 系统网络结构如图1 1 所示,a t m 作为外围子系统与综合前置机系统、主机系 统组成一个层次分明、布局合理、功能完善的银行客户服务体系,a t m c 统一平台 系统遵循综合业务系统的设计思想和大中心的集中式网络结构,通信协议采用 t c p i p 协议。 系统主要部分包括: a t m c :a t mc l i e n t 就是常见的自动取款机,提供2 4 小时的自助金融服务( 查询、 取款、转帐、修改密码) 鞍山科技大学硕士学位论文 第一章绪论 a t m m :a t mm a n a g e r 自动取款机的管理端,是由银行的工作人员维护和负责, 对前端的a t m 、查询机等金融电子设备及各类交易进行监控、管理、统计。 a t m p :a t mp r o c e s s o r 是a t m 综合前置处理系统,它负责自助设备交易的转发, 进行交易数据的处理和格式的转换,并进行自助设备档案和密钥的管理。 a t m s :a t ms e r v i c e 就是a t m 主机系统,它具备客户帐务处理、银行内部核算等 功能。是整个系统的核心,存放客户的帐户信息、卡片信息和a t m 终端档 案等重要信息。 图卜1a t m 系统网络结构图 1 3 2a t m c 统一平台系统整体架构 a t m c 统一平台系统整体架构如图1 2 所示: 鞍山科技大学硕士学位论文第一章绪论 a t m c 统一平台应用 】【 i x f sm a n a g e r h l 厂商s e r v i c ep r o v i d e r 】【 1w i n d a w s 操作系统 u la t m 硬件 图1 2a t m c 系统整体架构 a t m c 统一平台系统的整体架构分为5 层,最底层是a t m 硬件设备,如读卡 器、打印机等;第二层是操作系统,本课题选用w i n d o w sx pp r o f e s s i o n a l :第三层 是基于w i n d o w sx p 的s p ( s e r v i c ep r o v i d e r ) 软件,由厂商提供;第四层是微软提 供的x f sm a n a g e r ,用于连接统一平台应用和s p 。负责两者之间的通信,x f s m a n a g e r 使顶层的一个应用程序可适用于底层的不同厂商的不同硬件上:最上层为 a t m c 统一平台应用,采用面向对象、w e b 等开发技术,负责客户交易和a t m 管 理等功能的实现。 1 4 本人所做的工作及论文结构 本文是实际应用系统的设计。本课题正是从市场角度出发,开发了基于 w o s a x f s 标准的a t m c 应用软件的统一平台,设计具体的a t m 业务流程和控制 流程,实现a t m 的业务交易功能。本人在这个项目中主要是按照中国银联代理业 务终端检测指南的要求,基于w o s a x f s 协议和i s 0 8 5 8 3 国际金融信息报文,参 加a t m c 应用软件架构的设计与开发。实现了a t m c 应用程序部分软件代码、数 据转换模块中打包解包的程序设计及代码。 本文共分六章,其内容安排如下: 第一章绪论主要介绍了本课题背景、课题研究的意义、a t m 系统结构的综述、本 人所做的工作及论文结构。 第二章介绍了a t m 系统终端软件平台技术,先介绍a t m 系统的软件体系结构选 择;其次提出a t m 系统编程思想采用面向对象技术;再次介绍了a t m c 软件设计中用到的动态链接库技术,实现软件的模块化提供技术支持;最 后引入了多线程技术,a t m 业务增加的同时,希望以多通道、多线程技术 鞍山科技大学硕士学位论文第一章绪论 支持前端平台提交的任务。 第三章主要分析w o s a x f s 的架构;x f s 逻辑设备的工作流程、析构过程、工 第四章 第五章 第六章 作机制;w o s x f s 实现的应用机制。通过对w o s a j x f s 标准的深层分 析,为下一章a t m c 应用软件的开发做技术支持。 基于w o s a j x f s 的a t m c 统一应用平台软件设计。首先按照统一应用平 台软件设计原则,设计了软件的整体结构与应用控制结构;然后在整体结 构的基础上,分层设计了系统的各个实现模块和子模块;接下来对基于 w o s a x f s 协议的接口模块、a t m c 交易控制模块、通讯模块、设备模块 控制等主要模块的功能、实现机制、数据结构进行详细的设计。 a t m c 系统功能设计与应用层运行结果展示。 结论。 鞍山科技大学硕士学位论文第二章a t m 系统软件中相关技术 第二章a t m 系统软件中相关技术 2 1b ,s 、c ,s 近年来,随着计算机技术与网络技术突飞猛进的发展,分布式应用系统成为目 前最流行的结构。分布式结构一般分为两层模式和多层模式,两层c s 结构模式和 多层的b s 结构模式。 b s 结构:即b r o w s e r s e r v e r ( 浏览器,服务器) 结构。在这种结构下,用户界面完 全通过w w w 浏览器实现,一部分事务逻辑在前端实现,但是主要事务 逻辑在服务器端实现,形成所谓3 - t i e r 结构,如图2 - 1 。b s 结构利用不 断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大 功能,是一种全新的软件系统构造技术。b s 符合银行系统集中管理的 要求,基本能做到终端应用零维护。 图2 1b r o s w e r s e r v e r 体系结构 c s 结构:即c l i e n t s e r v e r ( 客户机,服务器) 结构,a t m c + a t m p 的方式,是大家熟 知的软件系统体系结构,通过将任务合理分配到c l i e n t 端和s e r v e r 端, 应用逻辑在客户端,通过报文( 如i s 0 8 5 8 3 ) 和a t m p 通讯,a t m p 和后 台主机进行通讯,处理交易。降低了系统的通讯开销,可以充分利用两 端硬件环境的优势。 b s 和c ,s 区别:是b s 把应用逻辑从客户端移到了服务器主机上,但如此一来, 对a t m 应用软件系统结构设计是一个颠覆。b s 结构下,a t m 终端完 全不知道交易流程,它的每一个动作都是服务器通过对控件的远程调用 来告诉终端的。也就是说:在c s 结构下,记录流水一 出钞一 记帐一 打 印凭条一 退卡这一系列动作都是客户端控制的,模块函数调用都是 本地调用。而在b s 结构下,上述每一个动作都将变成s e r v e r 对终 端控件的网络远程调用。如果没收到s e r v e r 的调用,终端自己是不 鞍山科技大学硕士学位论文第二章a t m 系统软件申相关技术 知道下一步动作是什么的。所以,b s 结构下,对网络的要求大幅提高, 要求网络带宽和网络的稳定性得到绝对保证。 如果终端不涉及任何物理动作的系统,所有的逻辑都能放到s e r v e r 上的,比 较适合b s 结构,比如网上银行,手机银行。但是多媒体白助终端系统( 一些自助终 端上要提供i c 卡转帐,票据打印,对帐单打印等等服务,需要终端作出许多物理动 作,并不适合采用b s 结构。如果交易流程的处理也由服务器完成,就要随时知道 a t m 各设备状态,服务器要完成对机器设备的驱动调用比较困难。 根据上面的分析和对比,本文最终采用c s 结构,由前台应用过程控制交易的 操作流程,在客户端启动应用程序( 该程序由各个模块的驱动调用及状态的取得等 组成) ,用它来完成对各模块的驱动和调用。客户端利用t c p i p 应用程序访问服 务器的丰富资源,如高速c p u 、大容量硬盘、高速打印机、大型数据库等,服务器 的t c p i p 应用程序则可以将客户机访问的结果回送给客户机。 2 2 面向对象技术 面向对象技术是目前流行的系统设计开发技术,它包括面向对象分析和面向对 象程序设计。面向对象程序设计技术的提出,主要是为了解决传统程序设计方法一 结构化程序设计所不能解决的代码重用问题1 3 】。 结构化程序设计从系统的功能入手,按照工程的标准和严格的规范将系统分解 为若干功能模块,系统是实现模块功能的函数和过程的集合。由于用户的需求和软、 硬件技术的不断发展变化,按照功能划分设计的系统模块必然是易变的和不稳定的。 这样开发出来的模块可重用性不高。 面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务( 功能) 为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有 更强的稳定性。 面向对象程序设计同结构化程序设计相比最大的区别就在于:前者首先关心的 是所要处理的数据,而后者首先关心的是功能。 面向对象程序设计是一种围绕真实世界的概念来组织模型的程序设计方法,它 采用对象来描述问题空间的实体【4 。关于对象这一概念,目前还没有统一的定义。 一般的认为,对象是包含现实世界物体特征的抽象实体,它反映了系统为之保存信 息和( 或) 与它交互的能力。它是一些属性及服务的一个封装体,在程序设计领域, 可以用“对象= 数据+ 作用于这些数据上的操作”这一公式来表达。 类是具有相同操作功能和相同的数据格式( 属性) 的对象的集合。类可以看作 抽象数据类型的具体实现。抽象数据类型是数据类型抽象的表示形式。数据类型是 鞍山科技大学硕士学位论文 第二章a t m 系统软件中相关技术 指数据的集合和作用于其上的操作的集合,而抽象数据类型不关心操作实现的细节。 从外部看,类型的行为可以用新定义的操作加以规定。类为对象集合的抽象,它规 定了这些对象的公共属性和方法;对象为类的一个实例。对象和类的关系相当于一 般的程序设计语言中变量和变量类型的关系。 消息是向某对象请求服务的一种表达方式。对象内有方法和数据,外部的用户 或对象对该对象提出的服务请求,可以称为向该对象发送消息。合作是指两个对象 之间共同承担责任和分工。 2 2 1 面向对象的绩程方法基本特征 面向对象的编程方法具有四个基本特征: 1 抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当 前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。过程抽象是指 任何一个明确定义功能的操作都可被使用者看作单个的实体看待,尽管这个操作实 际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型 对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。 2 继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确 表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。 新类继承了原始类的特性,新类称为原始类的派生类( 子类) ,而原始类称为新类 的基类( 父类) 。派生类可以从它的基类那里继承方法和实例变量,并且类可以修 改或增加新的方法使之更适合特殊的需要。这也体现了大自然中一般与特殊的关系。 继承性很好的解决了软件的可重用性问题。比如说,所有的w i n d o w s 应用程序都有 一个窗口,它们可以看作都是从一个窗口类派生出来的。但是有的应用程序用于文 字处理,有的应用程序用于绘图,这是由于派生出了不同的子类,各个子类添加了 不同的特性。 3 封装: 封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数 据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概 念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受 保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的 可见性,即哪些特性对外部世界是可见的,哪些特性用于表示内部状态。在这个阶 段定义对象的接口。通常,应禁止直接访问一个对象的实际表示,而应通过操作接 鞍山科技大学硕士学位论文第二章a t m 系统软件中相关技术 口访问对象,这称为信息隐藏。事实上,信息隐藏是用户对封装性的认识,封装则 为信息隐藏提供支持。封装保证了模块具有较好的独立性,使得程序维护修改较为 容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减 少到最低限度。 4 多态性: 多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个 时间加在一起和把两个整数加在一起肯定完全不同。又比如,同样的选择编辑一粘贴 操作,在字处理程序和绘图程序中有不同的效果。多态性包括参数化多态性和包含 多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了 应用程序函数同名问题。 在w i n d o w s 中,程序的基本单位不是过程和函数,而是窗口。一个窗口是一组 数据的集合和处理这些数据的方法和窗口函数。从面向对象的角度来看,窗口本身 就是一个对象。w i n d o w s 程序的执行过程本身就是窗口和其他对象的创建、处理和 消亡过程。w i n d o w s 中的消息的发送可以理解为一个窗口对象向别的窗口对象请求 对象的服务过程。因此,用面向对象方法来进行w i n d o w s 程序的设计与开发是极其 方便的和自然的。 2 2 2 面向对象程序设计优点 面向对象程序设计优点:开发时间短,效率高,可靠性高,所开发的程序更强 壮。由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而 缩短了开发时间;应用程序更易于维护、更新和升级。继承和封装使得应用程序的 修改带来的影响更加局部化。 在w i n d o w s 的界面设计和软件开发环境中,可以说处处贯穿着面向对象的思 想。采用面向对象的方法来进行w i n d o w s 程序设计还可以简化对资源的管理。当我 们将资源映射成一个c + + 对象时,对资源的使用可以翻译成以下c + + 顺序: 创建一个对象、使用对象、撤消该对象。 一个对象的创建是对一个对象的定义过程,可以由对象的构造函数处理对资源 的请求过程。当某一个对象退出活动范围时,它的撤消可以由编译器来自动管理。 各种资源和w i n d o w s 结构都能以这种方式处理。 2 3 动态链接库技术 较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们 彼此协作来完成整个软件系统的工作。在构造软件系统时,如果将所有模块的源代 码都静态编译到整个应用程序的e x e 文件中,会产生一些问题:一个缺点是增加了 鞍山科技大学硕士学位论文第二章a t m 系统软件中相关技术 应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间, 造成系统资源的浪费;另一个缺点是,在编写大的e x e 程序时,在每次修改重建时 都必须调整编译所有源代码,增加了编译过程的复杂性,也不利于阶段性的单元测 试:而且,一些模块的功能可能较为通用,在构造其它软件系统时仍会被使用。 w i n d o w s 系统平台上提供了一种完全不同的较有效的编程和运行环境,你可以 将独立的程序模块创建为较小的动态链接库( d y n a m i cl i n k a b l el i b r a r y ,d u l ) 文件, 并可对它们单独编译和测试。在运行时,只有当e x e 程序确实要调用这些d l l 模 块的情况下,系统才会将它们装载到内存空间中。这种方式不仅减少了e x e 文件的 大小和对内存空间的需求,而且使这些d l l 模块可以同时被多个应用程序使用0 1 。 一个d l l 在内存中只有一个实例;d l l 实现了代码封装性:d l l 的编制与具体的 编程语言及编译器无关。 动态连接库的建立 1 、n o n m f cd l l 的建立 这种动态链接库指的是不用m f c 的类库结构,直接用c 语言写的d l l ,其导 出的函数是标准的c 接口,能被非m f c 或m f c 编写的应用程序所调用。如果建立 的d l l 不需要使用m f c ,那么应该建立n o n m f cd l l ,因为使用m f c 会增大用 户库的大小,从而浪费用户的磁盘和内存空间。 每一个d l l 必须有一个入口点,就象用c 编写的应用程序时,必须有一个 w i n m a i n 函数样。在n o n m f cd l l 中d l l m a i n 是一个缺省的入口函数,你不 需要编写自己的d l l 入口函数,用这个缺省的入口函数就能使动态链接库被调用时 得到正确的初始化。如果应用程序的d l l 需要分配额外的内存或资源,或者说需要 对每个进程或线程初始化和清除操作时,需要在相应的d l l 工程的c p p 文件中对 d l l m a i n 0 函数按照下面的格式书写。 b o o la p n 1 1 r yd l l m a i n ( h a n d l eh m o d u l e d w o r du l _ r e a s o n _ _ f o r _ _ c a l l , l p v o i d l p r e s e r v e d ) s w i t c h ( u l _ r e a s o n _ f o r _ c a l l ) c a s ed l l - 馊o c e s s a 订x c h : c a s ed l l _ t h r e a d _ a t t a c h : c a s ed l lt h r e a dd e t a c h : 鞍山科技大学硕士学位论文第二章a t m 系统软件中相关技术 c a s ed u 。p r o c e s s d e t a c h : ) r e t u mt r u e ; , 参数中,h m o u d l e 是动态库被调用时所传递来的一个指向自己的旬柄( 实际上, 它是指向_ d g r o u p 段的一个选择符) ;u l _ r e a s o nf o rc a l l 是一个说明动态库被调原 因的标志,当进程或线程装入或卸载动态链接库的时候,操作系统调用入口函数, 并说明动态链接库被调用的原因,它所有的可能值为: ( 1 ) d l l _ p r o c e s s _ a t t a c h :进程被调用或调用l o a dl i b r a r y ,d l l 被链接到当前 进程的地址空间并被初始化; ( 2 ) d l l _ t h r e a d _ a t t a c h :当前进程创建一个新线程,d l l 在新线程正文内被调 用; ( 3 ) d l l _ p r o c e s s _ d e t a c h :调用d l l 的进程被终止,d l l 被卸载; ( 4 ) d l l _ t h r e a d _ d e t a c h :调用d l l 的线程被终止,d l l 被卸载; l p r e s e r v e d 为保留参数。 如果在d l l 中加入想要输出的函数、变量、c + + 类或其它函数,可以调用v c 的关键字一d e c l s p e c ( d l l e x p o r t ) 。 2 、m f ca p p w i z a r d d 1 1 方式下r e g u l a rd l l 和e x t e n s i o nd l l 的建立 在m f ca p p w i z a r d d 1 1 下生成的d l l 文件有三种方式:静态链接到m f c 的常 规d l l 、动态链接到m f c 的常规d l l 以及i v l f c 扩展d l l ,在创建d l l 是,要 根据实际情况选择创建d l l 的方式。 静态链接到m f c 的常规d l l 和静态连接到m f c 常规d l l 的区别是:前者使 用的是m f c 的静态链接库,生成的d l l 文件长度大,一般不使用这种方式;后者 使用m f c 的动态链接库,生成的d l l 文件长度小;动态链接到m f c 的常规d l l 所有输出的函数应该以如下语句开始: a f x _ m a n a g e _ s t a t e ( a f x g e t s t a t i c m o d u l e s t a t e ( ) ) 此语句用来正确地切换m f c 模块状态 m f c 扩展d l l 的特点是用来建立m f c 的派生类,d 1 1 只被用m f c 类库所编 写的应用程序所调用。e x t e n s i o nd l l s 和r e g u l a rd l l s 不一样,它没有一个从 c w i n a p p 继承而来的类的对象,编译器默认了一个d l l 入口函数d l l m a i n o 作为 对d l l 的初始化,你可以在此函数中实现初始化,代码如下: 鞍山科技大学硕士学位论文第二章a t m 系统软件中相关技术 b o o lw i n a p ia p i e n t r yd l l m a i n ( h i n s t a n c eh i n s t d l l ,d w o r dr e a s o n , l p v o i df l m p l o a d ) 参数h m s t d l l 存放d l l 的句柄,参数r e a s o n 指明调用函数的原因,l p r e s e r v e d 是一个被系统所保留的参数。对于隐式链接是一个非零值,对于显式链接值是零。 动态连接库的调用 动态链接库的调用可以分为两种:一种是隐式调用,一种是显示调用。 1 、隐式的调用 这种调用方式需要把产生动态连接库时产生的l i b 文件加入到应用程序的工程 中,在使用d l l 中的函数时,只须说明一下后就可以直接通过函数名调用d l l 的 输出函数,调用方法和程序内部其他的函数是一样的。隐式调用不需要调用l 0 a d l i b r a r y ( ) 和f r e el i b r a r y ( ) 。程序员在建立一个d l l 文件时,链接程序会自动生成一 个与之对应的l i b 导入文件。该文件包含了每一个d l l 导出函数的符号名和可选 的标识号,但是并不含有实际的代码。l i b 文件作为d l l 的替代文件被编译到应用 程序项目中。 当程序员通过隐式调用方式编译生成应用程序时,应用程序中的调用函数与 l i b 文件中导出符号相匹配,这些符号或标识号被写入到生成的e x e 文件中。l i b 文件中也包含了对应的d l l 文件名( 但不是完全的路径名) ,链接程序也将其存储 在e x e 文件内部。当应用程序运行过程中需要加载d l l 文件时,w i n d o w s 根据这 些信息发现并加载d l l ,然后通过符号名或标识号实现对d l l 函数的动态链接。 所有被应用程序调用的d l l 文件都会在应用程序e x e 文件加载时被加载在到内存 中。 2 、显式调用 这种调用方式是指在应用程序中用l o a dl i b r a r y 或m f c 提供的a f x l o a d l i b r a r y 显式的将自己所做的动态连接库调进来,并指定d l l 的路径作为参数。l o a d l i b a r y 返回h i n s t a n c e 参数,应用程序在调用g - e t p r o c a d d r e s s 函数时使用这一参数。当 完成对动态链接库的导入以后,再使用g e t i h o c a d d r e s s 0 获取想要引入的函数,该函 鞍山科技大学硕士学位论文第二章a t m 系统软件中相关技术 数将符号名或标识号转换为d l l 内部的地址,之后就可以象使用本应用程序自定义 的函数一样来调用此引入函数了。在应用程序退出之前,应该用f r e el i b r a r y 或m f c 提供的a f x f r e e l i b r a r y 释放动态连接库。 使用显式调用方式可以让程序员来决定d l l 文件何时加载或不加载,而操作系 统在载入应用程序时不必要将所有该应用程序所引用的d l l 都一起加载到内存中, 只要在使用某个d l l 时再将其载入,这样就可以减少应用程序在初始加载时所使用 的时间和对内存的消耗。在对d l l 加载的过程中,w i n d o w s 将遵循下面的搜索顺 序来定位d l l : 包含e x e 文件的目录; 进程的当前工作目录; w i n d o w s 系统目录; w i n d o w s 目录: 列在p a t h 环境变量中的一系列目录。 在w i n d o w s 操作系统中使用动态链接库( d l l ) 有很多优点,一是多个应用程 序、甚至是不同语言编写的应用程序可以共享一个d l l 文件,真正实现了资源“共 享”,大大缩小了应用程序的执行代码,更加有效地利用了内存;另一点是d l l 文件作为一个单独的程序模块,封装性、独立性好,在软件需要升级的时候,开发 人员只需要修改相应的d l l 文件就可以了,而且,当d l l 中的函数改变后,如果 没有修改参数,程序代码并不需要重新编译。这在编程时十分有用,大大提高了软件 开发和维护的效率。 2 4 多线程 a t m 机业务的增加,导致后台处理大幅度提高,希望以多通道、多线程的技术 实现方式,高效率、高稳定性地支持多种前端平台提交的服务。本文在a t m c 与 a t m p 进行数据通信中,使用了多线程技术。 进程和线程是多任务操作系统的概念,进程定义为程序的一个实例,在n t 中进 程是没有活力的( 实际上w i n 3 2 的进程都是如此) ,进程必须占用一个线程,进程 由其拥有的线程来执行包含在地址空间中的代码。线程描述进程内的执行,每个线 程都有自己的一组c p u 寄存器和堆栈,线程是比进程更小的运行单位,一个进程可 以拥有多个线程,操作系统按照线程分配c p u 时间片。 m f c 提供了强大的线程编程支持,通过使用c w i n t h r e a d 对象来创建和管理线 程。m f c 中线程分为两类:用户界面线程和工作线程,都使用同一基础的w i n 3 2 a p i 线程机制,并且都使用c w i n t h r e a d 对象,但是在m f c 给线程增加功能上不同。工 鞍山科技大学硕士学位论文 第二章a t m 系统软件中相关技术 作线程没有消息循环,不能够处理用户界面对象。用户界面线程支持m f c 对象, 能够处理用户界面对象,而且m f c 还为用户界面线程提供了消息循环。 工作线程的唯一目的是执行线程函数或者控制函数,w i n 3 2 线程a p i 中指定了 线程函数的原型: d w o r dw i n a p it
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机电设备安装无线控制系统方案
- 混凝土浇筑前预处理与清理方案
- 标准厂房信息化管理系统建设方案
- 水稻有机肥课件
- 水电站发电系统优化方案
- 水电站新员工培训课件
- 知识点1.2构成的分类特点和要素设计构成设计造型83课件
- 二零二五年度文化产业共享用工合作协议范本
- 二零二五年度新型建筑材料砌砖工程个人承包合同范本
- 2025版殡葬用品售后服务合同规范文本
- 项目成本预算管理制度
- 2025年成都教师招聘考试教育公共基础知识真题及答案
- 中学语文教学资源开发与利用指南
- 2025年材料管理岗位考试题库
- 年级主任职责详解及管理要点
- 储能项目投资测算方案
- 【25秋】统编版小学语文二年级上册-《第八单元大单元设计》课件
- 2025年长沙中考化学试卷真题解读及复习备考指导
- 舆情安全管理办法
- 替换车管理办法规定
- 临床营养学病例报告
评论
0/150
提交评论