




已阅读5页,还剩67页未读, 继续免费阅读
(计算机软件与理论专业论文)基于cs结构的cobol语言远程新开发环境的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西北工业大学硕士论文 摘要 c o b o l 是一种面向商业的计算机语言,在国内外软件行业中广泛使用。c o b o l 语言产生于二十世纪六十年代,后来又经过四次完善与增强,在2 0 0 2 年产生了最 新的标准一c o b o l2 0 0 2 。由于c o b o l 语言历史悠久,所以世界各国的企业、政府、 团体使用的用c o b o l 开发的软件非常之多。因此,为了支持c o b 0 1 2 0 0 2 新标准并 且提供对c o b o l 现有资产的继承,本文对c o b 0 1 2 0 0 2 集成开发环境的实现进行了 研究。该集成开发环境采用的是客户端、服务器结构,客户端是w i n d o w s 平台, 服务器是h p - u n i x 平台。 本文的重点是论述c o b 0 1 2 0 0 2 新开发环境服务器端系统的设计和实现技术, 因此对于客户端只是进行了简要地介绍,没有过多地论述。对于服务器端系统的 设计和实现,本文讨论的主要内容是:对整个服务器端的软件架构进行了分析, 阐述了主框架的设计与实现方法。对客户端与服务器之间在数据通讯时使用的电 文格式进行了分析,研究了c s ( c 1 i e n t s e r v e r ) 互通信息的内容,主要是两大类: 命令与命令执行的结果;本文将之归类,设计了客户端与服务器传输数据包时使 用的电文协议。认证功能是c o b 0 1 2 0 0 2 新开发环境的一个重要功能,本文对 p a m ( p l u g g a b l ea u t h e n t i c a t i o nm o d u l e s ) 认证架构进行了深入而透彻地研究,并 在此基础上完成了该系统的认证功能。调试器是c o b 0 1 2 0 0 2 新开发环境的重要组 成部分,本文对调试器模块的功能,基本的子功能模块,各子模块之间的调用关 系等进行了详细地设计。 关键字 : c o b o l 语言,集成开发环境,客户端,服务器,电文协议,调试器,p a m 认证 西北工业大学硕士论文 a b s t r a c t c o b o li sak i n do fo r i e n t e d b u m n e s sp r o g r a m m i n gl a n g u a g ea n dp r o d u c e d i nt h e6 0 so ft h e2 0 t h c e n t u r y i n2 0 0 2 ,c o b o ll a n g u a g e s n e w s t a n d a r d - - c o b o l2 0 0 2w a sp r o d u c e d b e c a u s eo ft h el o n gh i s t o r yo fc o b o l ,t h e s o f t w a r eu s e db ye n t e r p r i s e 、g o v e r n m e n t 、g r o u po fm a n yc o u n t r i e sw h i c hi s d e v e l o p e dw i t hc o b o li se x t r e m e l ym u c h f o r t h es t a n d a r do fc o b 0 1 2 0 0 2a n d e x i s t i n g c o b o ls o f t w a r et h ea r t i c l e i n q u i r e s t or e a l i z ec o b o l 2 0 0 2 i n t e g r a t e dd e v e l o p m e n t e n v i r o n m e n t t h e s y s t e m i sb a s e dc li e n t s e r v e r a r c h i t e c t u r e 。c l l e n t e n di sw i n d o w s p l a t f o r m a n ds e r v e re n di sh p u x p l a t f o r m t h ek e yp o i n to ft h ea r t i c l ei sd e s i g na n dr e a l i z a t i o nt e c h n o l o g yo f t h ec o b 0 1 2 0 0 2h e wd e v e l o p m e n te n v i r o n m e n t ss e r v e rs y s t e m t h e r e f o r et h e c i i e n te n di si n t r o d u c t e db r i e f l y r e g a r d i n gs e r v e rs y s t e md e s i g n a n d i m p l e m e n t a t i o nt h ea r t i c l ed i s c u s s e ss e v e r a la s p e c t sb e i n g :h a v i n gc a r r i e d o f ft h ea n a l y s i so fe n t i r es e r v e rs o f t w a r ea r c h i t e c t u r e ,e x p l a i n e dd e s i g n a n d i m p l e m e n t a t i o nm e t h o d o ft h em a i n f r a m e h a v i n ga n a l y z e dt e l e g r a m m e s s a g e ( c o m m u n i c a t e db e t w e e n t h ec l l e n te n da n d t h es e r v e r ) f o r m a ta n d s t u d i e dc s e x c h a n g i n gt h e i n f o r m a t i o nc o n t e n tt h a tm a i n l yi s t w ob i g c a t e g o r i e s :c o m m a n da n dc o m m a n de x e c u t i n gr e s u l t t h i sa r t i c l ec l a s s i f l e d t h e m e s s a g e a n d d e s i g n e d t r a n s m i s s i o n d a t ap a c k e tt e l e g r a mm e s s a g e p r o t o c 0 1 t h ea u t h e n t i c a t i o nf u n c t i o ni sai m p o r t a n tf u n c t i o no fc o b 0 1 2 0 0 2 n e wd e v e l o p m e n te n v i r o n m e n t t h i sa r t i c l eh a sc o n d u c t e dt h o r o u g ha n dt h e t h o r o u g ht or e s e a r c ht h ep a m a u t h e n t i c a t i o na r c h i t e c t u r ea n dc o m p l e t e dt h i s s y r s t e m c e r t i f i c a t i o nf u n c t i o ni nt h i sf o u n d a t i o n t h ed e b u g g e ri s t h e c o b 0 1 2 0 0 2n e wd e v e l o p m e n te n v i r o n m e n t si m p o r t a n tc o n s t i t u e n t d e b u g g e r m o d u l ef u n c t i o n b a s i c s u b f u n c t i o nm o d u l e , e a c hs u b m o d u l e c a l l i n g ( c a l l e d ) r e l a t i o n s h a v eb e e nc a r r i e do nd e t a i l e dd e s i g n i nt h e a r ti c l e k e y w o r d : c o b o l l a n g u a g e , c li e n t ,s e r v e r ,m e s s a g ep r o t o c o l ,d e b u g g e r ,p a m a u t h e n t i c a t i o n ,i n t e g r a t e dd e v e l o p m e n te n v i r o n m e n t 2 西北t 业大学硕上论文 1 1 研究背景 第1 章绪论 c o b o l 是一种面向商业的语言,自2 0 世纪6 0 年代就广泛应用于计算机应用领 域。c o b o l 语言不断地演变并吸收计算机技术发展的最新成果,使自己变得很强大。 现在的编程语言非常之多,c o b o l 与其他语言不同的是,它是针对商业界地使用而 开发的语言,是商业应用程序开发的首选语言。长期以来,国内外广泛使用c o b o l 开发商业软件。 到目前为止,历史上出现过四次c o b o l 标准: 1 1 9 6 8 年,美国标准协会批准了c o b 0 1 分会开发的标准,发布号为x 3 2 3 1 9 6 8 这个文档定义了c o b o l 内核和八个功能模块。 2 1 9 7 4 年对上一个标准进行了修订,发表了a n s ic o b o l x 3 2 3 - 1 9 7 4 文本, 把功能模块扩充到1 1 个。 3 1 9 8 5 年对c o b 0 1 - 7 4 进行了修正,产生了c o b o l - 8 5 ,使c o b o l 语言更加完 善。 4 2 0 0 2 年产生了c o b o l 语言的最新标准c o b 0 1 2 0 0 2 ,与第三个标准c o b 0 1 8 5 相比,c o b 0 1 2 0 0 2 增加了1 4 9 项内容,变更了4 0 项内容。有以下这些方面:多文 字处理功能、解除书写限制、位操作功能、浮点数的操作、地址指针、用户自定 义类型、用户自定义函数、异常处理、数据合法性检查、条件编译、和c 语言等 的连接、文件共享与排它、报表扩展等。 c o b 0 1 2 0 0 2 的出现使c o b o l 成为一种功能更加强大的语言,但目前的c o b o l 开 发工具只支持c o b 0 1 8 5 ,因此必须研制一种新的c o b o l 开发环境以支持新的c o b o l 标准。 随着信息技术的飞速发展,软件开发规模及开发队伍地逐渐增大,软件开发 不再是像过去那样几个开发人员即可解决的事情,而是一项复杂的团队活动。迫 切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项 目组成员按照约定的规则按时完成自己的工作,保证整体的开发进度。而使用高 效的软件开发工具,是使软件开发能够顺利进行的重要因素,它能提高程序员的 开发效率,降低开发成本,对商业应用程序的开发也不例外。因此,有必要研制 一种新的c o b o l 语言开发环境来适应这种需求。 目前,c o b o l 应用程序一般存在于u n i x 环境中。因此,开发基于u n i x 环境的 1 西北工业大学硕士论文 c o b o l 开发工具是一件很有意义的工作。众所周知,u n i x 操作系统的网络功能非 常强大,并且上面曾经提到,现代的软件开发是多人的协同开发,而又由于u n i x 环境一般是构筑在小型机或大型机上的,构造费用是昂贵的,若为每个开发人员 都配备一个完整的u n i x 环境,开发费用势必很大,一个变通的方法是,各个开发 人员在p c 机上远程登陆到u n i x 系统上进行开发。一般来说,u n i x 操作界面没有 w i n d o w s 操作界面友好,因此,为了给开发人员一个友好的开发环境,让开发人员 在客户端使用w i n d o w s 平台进行开发是一个理想的选择。 在上述背景下,本文提出了一种基于c s 结构( 客户端服务器结构) 的c o b o l 语言的新开发环境。从整体上说,它分为两个部分:客户端与服务器。客户端是 个人计算机,操作系统为w i n d o w s 2 0 0 0 、w i n d o w sx p 等;服务器是h p 小型机,操 作系统为h p u n i x 。此集成开发环境大致包括这几个部分:开发界面( 人机界面) 、 认证机制、文件管理、编辑器、编译器、调试器。程序在编辑器中书写完毕后, 要通过编译器的编译,生成可执行程序后才能运行,初次运行结果往往不能达到 预期的结果,这时就要使用调试器对可执行程序进行调试,找到程序的错误之处, 进行更改,再编译、运行、调试,这样反复进行,直到达到满意的结果。 i 2 研究意义 预计2 l 世纪有3 0 0 万人在用c o b o l 语言开发软件。世界各国的企业、政府、 团体使用的用c o b o l 开发的软件是庞大的,估计有千亿条现存的c o b o l 代码,这 么巨大的c o b o l 资产必须要继承,不然财产的损失是无法估计的。因此做好c o b o l 的研究工作是很有意义的。从而,对c o b o l 开发环境的研究是项非常重要的工作。 给c o b o l 程序员提供一个高效的开发工具,对提高软件质量,保证工程进度都是 至关重要的。 在研究背景中曾提到,c o b o l 新开发环境采用c s 结构,分两个部分,服务器 端为h p u n i x 平台,客户端为w i n d o w s2 0 0 0 x p 平台。通讯协议采用t c p i p 协议。 这其实是一个远程开发环境,用户在客户端进行软件开发,核心功能在服务器上 执行。 采用c s 结构,客户端充分利用了w i n d o w s 平台上人机界面可视化的集成开 发环境,使程序员从琐碎的工作中解脱出来,只关心程序的编写过程,势必提高 开发效率。服务器端使用h p u n i x ,运行集成开发环境的核心机能。 远程开发环境给团队开发提供了方便。开发人员只在个人电脑上编写代码或 进行编译与调试等操作,但其实这些编译与调试操作都以命令的形式传给了服务 西北工业大学硕士论文 器,由服务器完成这些操作的执行。这样可以充分利用服务器性能高的优势。 1 3 论文组织结构 本论文是按照作者承担的主要研究和开发工作来安排的,共分为7 章,每一 章的内容如下: 第1 章,绪论。本章简要介绍了本文的研究背景和研究意义,以及论文内容 的安排。 第2 章,c o b o l 语言新开发环境系统概述。本章介绍了c o b o l 语言新开发环 境的系统概要设计,提出了它的总体框架、运行环境、所使用的实 现技术等。 第3 章,服务器端主框架设计与实现。本章介绍了服务器主框架的设计思路 及主要的实现技术。 第4 章,客户端与服务器端的电文设计。本章介绍了客户端与服务器端通讯 时使用的数据包的设计方法。 第5 章,认证机制设计与实现。本章介绍了认证功能的实现机制,采用p a m 认证架构。 第6 章,调试器机制设计与实现。本章介绍了调试器机能的实现机制。 第7 章,结束语。本章总结了全文的主要工作,并展望了后续的研究工作, 指出了进一步的研究内容。 由于该系统规模较大,系由多人合作完成,作者所做的工作是( 若以本文的组 织结构来说的话) ,参与了第3 章服务器端主框架设计与实现和第6 章调试器机制 设计与实现,承担了第4 章客户端与服务器端的电文设计和第5 章认证机制设计 与实现。 两北t 业人学坝 :论文 第2 章c o b o l 语言新开发环境系统概述 2 1 系统框架概述 c o b o 语占新丌发环境( 以下称c o b 0 1 2 0 0 2 开发环境) 包括客户端与服务器端两 部分。客户端只是为用户提供一个方便、友好的开发操作界面,所有的核心机能 都在服务器端处理。服务器端模块处理与客户端地通讯以及各个独立的核心功能, 核心功能包括:编译、调试、认证、共享文件的管理等。 图2 1 是c o b 0 1 2 0 0 2 开发环境物理部署图,给出客户端与服务器端物理上的一 个直观的结构图景。 服务器 倒2 - l c o b 0 1 2 0 0 2 开发环境物理部署图 如上图所示,客户端w o r k b e n c h 存在于客户机上,使用的操作系统是 w i n d o w s 2 0 0 0 x p ,通过网络连接登录到服务器上。服务器是h p 小型机,使用的操 作系统是h p u n i x 。服务器与客户端的通讯采用t c p i p 协议。服务器上有特定的 端口监听着客户端的连接。 图2 2 是c o b 0 1 2 0 0 2 开发环境的系统软件结构图。在h p 服务器上启动服务器 主进程s e r v e rp r o c e s s ,出该进程来监听客户进程的连接。它可以针对每个客户 西北工业大学颁士论文 端创建两个进程为之服务,一个是服务进程,提供文件管理、编译等服务,另一 个是调试进程,专门用来提供调试服务,这两个进程通过两个网络套接字( s o c k e t ) 与客户端进行通讯。 图2 - 2 c o b 0 1 2 0 0 2 开发环境的系统软件结构图 2 2 客户端功能概述 客户端w o r k b e n c h 是集成化开发环境的w i n d o w s 图形界面,给c o b o l 程序员 提供方便的编程环境。w o r k b e n c h 要使用由服务器端设定好的端口号、账户、密码 登录到服务器上,然后用户才能在客户端进行相关的操作,如编写c o b o l 程序、 编译c o b o l 程序、执行、调试程序等。这些操作的执行实际上大都是在服务器上 进行的,只是用户看不到而已。这些操作做为命令发送到服务器上,由服务器执 行,然后将相应的结果返回到客户端。客户端w o r k b e n c h 的主要功能分述如下。 w o r k b e n c h 的主窗口是多文档窗口,其中的子窗口可以独立出来,自由浮动, 子窗口的位置与大小也可以恢复其缺省值。在同一个窗口中放置多个窗口时,可 以使用c t r l + t a b 键进行焦点切换。 用户可以使用w o r k b e n c h 的定制功能对主窗口进行定制,可以定制的项目有 西北工业大学硕。t 论文 菜单、菜单的快捷键、工具条、状态条、加速键等。提供恢复这些可以定制的项 目的缺省值的功能。 提供上下文帮助功能: f l 帮助 ,显示与选中的项目相关的信息,这些项目 可以是,窗口、对话框、消息框、菜单、工具条等; s h i f tf 1 帮助 ,会启动一 个帮助助手,用之点击一个项目则会出现相关的帮助信息。 提供定制w o r k b e n c h 环境的功能,如,可以定制w o r k b e n c h 的缺省工作目录, 外挂应用程序等。 2 2 2 工程管理 工程是创建的一个应用程序的各种信息的集合。每个工程的信息都是独立的。 工程中包括的信息有:生成的文件的路径;环境变量;构成应用程序的文件名 称 设定的断点信息:其它相关信息。在主窗口中有一个子窗口( 登录文件窗口) 显示工程中包含的文件信息,如图2 - 3 所示。 图2 - 3 登录文件窗1 :3 此子窗口有三个标签,从左向右依次是登录文件标签、c l a s s v i e w ( 类结构) 标 签、数据标签。点击一个标签会出现对应的子窗口。在上图所示的登录文件窗口 中,最上面的“h e l l o ”是工程名,其中的文件组成以树型结构显示。文件的种类 可以从其旁边的位图直观地看出来,如。 可以对工程进行编辑,如添加文件、 保存在一个文本文件中。 中间有一个“m ”的位图表示是主程序。 删除文件等。可以将工程的信息打印或 可以对工程进行m a k e ,生成可执行程序。主窗口的底端有一个o u t p u t 窗口会 西北工业大学硕_ 论文 把m a k e 的信息显示出来,如显示“c o m p i l i n gs t a r t :h o m e t e s t a c o b ”类似的 信息;编译时产生的错误消息也会在此窗口中显示出来。 2 2 3 编辑器 编辑器要给c o b o l 程序员提供方便编写c o b o l 程序的功能。由于这是一个c s 结构的开发环境,所以在客户端打开服务器上的文件时,要把文件传送到客户端, 同时将文件显示在编辑器中供程序员编辑。同样,保存文件时,也要将文件从客 户端传送到服务器上。编辑器的功能分类简述如下: 1 打开文件时,文件对话框上有标识只读属性的c h e c k b o x 控件,提供以只 读或读写方式打开文件的接口。当文件以读写方式打开时,要防止其他用户 同时写此文件。 2 以前的c o b o l 程序编辑器都是只提供固定格式的编辑器,现在的编辑器要同 时支持c o b o l 程序的固定编辑格式与自由编辑格式。 3 编辑窗口的主要功能有: 打开本机文件时,编辑窗口的t i t l e b a r 上显示文件的完整路径。打开远 程文件时,t i t l e b a r 显示成“文件名 s e r v e r 名”。一个文件被同时打开 多个时,这多个文件的t i t l e b a r 依次为“文件路径”十“:n ”( n = l ,2 ,) 。 若这些文件被关闭的只剩一个时,t i t l e b a r 显示成文件路径。 固定格式编辑时,自动显示程序行的连续编号,如,当前的程序行的编号 是0 0 0 0 1 0 ,则下一行程序的行号要自动显示成0 0 0 0 2 0 。 c o p y 文( c o b o l 语言中的种文件) 可以展开与缩约显示。 其它的一些功能,如,插入符、标尺、t o o l t i p 的一些常规功能;提供多 种多个窗口的排列方式;文本域的多种选择方式:编辑方式的定制等。 4 文件新建、保存、另存等的功能。 5 输入途中,提供c o b 0 1 2 0 0 2 关键字提示补齐功能。 2 2 4 版管理 大型的团队式的开发,必须要提供代码版本管理的功能,以防止代码版本的 混乱。若用户需要高级的版本管理功能,则可以使用外部版本管理软件,系统提 供了相应的客户端的接口以方便程序员使用。可以使用的版本管理软件有 c v s ( c o n c u r r e n tv e r s i o n ss y s t e m ) 等。这些版本管理软件其实是作为w o r k b e n c h 西北工业大学顾:l :论文 的外挂软件形式存在的。提供的主要版本管理功能有: 版本管理工具的登录:指定要使用的版本管理工具。 c h e c k i n :使用指定的版本管理工具将文件c h e c k i n 库中。 c h e c k o u t :使用指定的版本管理工具将文件从库中c h e c k o u t 。 获得最新状态:取得文件的最新版本。 2 2 5 认证 客户端要使用服务器上的资源,必须要先经过认证,登录到服务器上才能进 行。要登录到服务器上必须提供要连接的服务器名、用户账号、密码等。客户端 要等待服务器上的认证模块对用户的认证结果,才能进行下一步的操作。 连接登录对话框如图2 4 所示。当认证成功时。服务器名、用户账号会在客 户端保存,这样下次连接时直接从下拉框中选择即可,但密码需要再次输入。 2 2 6 调试器 图2 - 4 连接登录对话框 调试器是集成开发环境的一个重要组成部分。它提供的主要功能有: 1 ) 开始调试。 2 ) 调试c o p y 文。 3 ) 设定或取消断点。 4 ) 执行程序。 5 ) s t e p 执行。 6 ) n e x t 执行。 西北工业大学顾e 论文 7 ) n e x t 执行一个命令单位。 8 ) 执行到光标处。 9 ) 忽视断点执行到光标处。 i 0 ) r e t u r n 执行,从被调用函数中返回,执行到函数调用语句的下一条语句 处。 1 1 ) 强制停止。 1 2 ) 再次启动可执行程序。 1 3 ) 调试结束。 1 4 ) 取消所有的断点。 1 5 ) 取消当前编辑窗口中的断点。 1 6 ) 设定或取消断点的条件表达式。 1 7 ) 数据参照,观察变量值。 1 8 ) q u i c k 数据参照:把鼠标指针停留在一个变量名上,此时旁边会弹出一个 小窗口,显示出此时变量的值。 前文已经指出,本文是按照作者负责的工作安排的,而作者主要负责服务器 端的研发,所以本文只专注于服务器端的论述,客户端在文中只是略微介绍一下 功能,不进行过多的论述。 2 3 服务器端机能概述 c o b o l 2 0 0 2 开发环境的客户端只是提供了各种功能的接口,这些功能的实现 都是在服务器端完成地。所以章节2 2 中提到的大部分功能在服务器端都有相应 的模块与之对应,如调试器模块、认证模块、版管理模块等。 s e r v e r 端有一个服务器主进程作为一个服务一直运行,客户端的w o r k b e n c h 向服务器端指定端口发送连接请求,服务器主进程接受请求、进行认证后,向客 户端提供相应的服务,如文件管理、编译、调试等。以下是对服务器端各个功能 模块的概要说明: 认证模块:负责接收客户端的认证请求,认证通过则继续,否则断开连接。 文件管理模块:负责文件命令的解析、文件传送等功能。 版本管理模块:当用户使用版本管理软件时,版本管理功能由版本管理软 件提供。 编译模块:完成c o b o l 工程的编译。 调试模块:负责解析出具体的调试命令,发送给w d b 调试器。将调试命令 西北丁业大学颤:l 论义 的执行结果发送给客户端。 下文将对服务器端的部分机能进行详细介绍,所以此处只是对服务器端的结 构进行概述。详细的论述请参见第3 章服务器端主框架设计与实现、第4 章客户 端与服务器端的电文设计、第5 章认证机制设计与实现、第6 章调试器机制设计 与实现。 西北t 业人学坝一i 论立 第3 章服务器端主框架设计与实现 3 1 主框架( 服务器主进程) 服务器端主框架的主要作用是整合服务器端各个功能模块,使各个功能模块 有机地组合在一起,和谐有序地工作:并且还要负责监听客户端的连接请求与客 户端进行通讯。服务器端主框架的搭建是以一个服务器主进程为主线索,其余部 分为分支而完成地。主进程代表了服务器端主框架。本章介绍的内容也是以该服 务器主进程及其子进程为核心的。服务器端的模块构成如图3 - 1 所示: 西北工业人学硕 论文 图3 - 1 服务器端模块构成图 从图3 一l 上可以直观地看到,服务器端模块包括的核心功能模块有:认证、 调试、编译、文件管理等。 服务器主进程为每个客户端进程启动一个服务进程,服务进程与各客户端 w o r k b e n c h 通过s o c k e t 通讯。服务进程提供的服务包括认证、文件管理( 库管理) 、 版本管理、编译、环境变量设置等。 如果用户需要调试,服务器主进程为每个客户端进程启动一个调试进程,调试 进程与各客户端w o r k b e n c h 通过s o c k e t 通讯。 以下是对服务器端各个功能模块的概要说明: 1 ) 认证模块:服务器主进程负责接受客户端的连接请求,建立服务进程。服 务进程首先调用认证模块,对用户进行认证,认证通过则继续,否则,断开连接。 2 ) 文件管理模块:该模块负责文件命令的解析、传送文件等。同时也提供了 简单的版本管理功能。 3 ) 版本管理模块:当用户使用版本管理软件时,版本管理功能由版本管理软 件提供。版本管理软件有c v s 等。 4 ) 编译模块;服务进程调用编译模块,完成c o b o l 工程的编译。 5 ) 调试模块:该模块负责解析出具体的调试命令并发送给w d b 调试器并将调 试命令的执行结果发送给客户端。 3 1 1 功能简介 服务器主进程作为一个服务在服务器端存在,客户端的w o r k b e n c h 向服务器 指定端口发送连接请求,服务器端接收请求、认证后,向客户端提供相应的服务, 如文件管理、编译、调试等。 h p u x 服务器启动后要启动s e r v e r 端的服务器主进程。该进程针对每个客户 端可以创建两个进程为其服务。一个是服务进程,提供文件管理、编译等服务, 另一个是调试进程,专门用来提供调试服务。这两个进程通过两个s o c k e t 与客户 端进行通讯。服务器主进程如果监听到来自客户端的请求,则首先为客户进程创 建对应的服务进程,然后服务进程调用认证模块进行认证,其后再根据命令的类 型提供相应的服务。 西北_ t 业大学硕士论立 3 1 2 服务器主进程的设计说明 服务器主进程控制服务器端的总流程,它不直接与用户交互,只是作为一个 独立的进程存在、运行。从高层来说它主要实现三个方面的功能: 1 监听客户端的连接。 2 创建服务进程。客户端的所有非调试服务都由服务进程处理。 3 创建调试进程。客户端的所有调试服务都由调试进程处理。 由于服务器主进程在服务器端以服务的形式存在,它统一管理服务器端创建 的进程。因而,服务器主进程应是系统的一个服务,作为一个守护进程存在,在 后台运行。守护进程是生存期较长的一种进程,通常在系统引导装入时启动,在 系统关闭时终止。服务器主进程作为守护进程存在,等待客户端的连接认证请求 并对客户端的服务请求进行处理。 。3 1 3 服务器主进程的实现说明 由前述可知,服务器主进程的功能主要包括:监听客户端的连接请求;根据 客户端的请求创建服务进程或调试进程与客户端直接进行通讯,并为其提供相应 的服务。因此实现服务器主进程的流程也是针对这两点而展开实现的。说明如下: 1 启动主进程后,对f c t ( 文件控制表,用于文件管理,本文不对它进行详 细介绍) 等数据结构进行初始化。 2 主进程需要创建一个监听s o c k e t ,直对指定端口进行监听。当监听到有 客户端的请求时,就接收该连接请求,根据r e c v ( s 0 c k e ts ,c h a rf a r * b u f ,i n tl e n , i n tf l a g s ) 中b u f 的值,判断是调试请求还是非调试请求,如果是调试请求,则创 建调试进程。如果是非调试请求,则创建服务进程。创建完进程后,主进程继续监 听下一个客户的连接请求。请参见图3 - 2 服务器主进程的流程图及其流程描述。 流程描述: 对系统进行初始化操作,如对数据结构f c t 初始化等。 监听客户进程的连接请求( 1 i s t e n 0 ) 。 当有客户连接时,建立连接。 根据接收b u f 值的不同,创建服务进程或调试进程。 服务器主进程继续监听其他客户端的连接请求。 西北工业人学硕f :论文 3 2 服务进程 3 2 1 功能简介 图3 - 2 服务器主进程流程图 前文已有提及,服务进程处理所有与调试无关的命令请求,并将操作结果返 回给客户端。服务进程根据客户端传输过来的数据包,按照协议格式进行拆封, 解析出用户请求进行什么操作( 如编译,认证,版本管理等) ,然后再调用相应的 功能模块执行操作。 注:本文所述的数据包格式、协议格式和电文格式意思相同,电文格式请参 见第4 章客户端与服务器端的电文设计。 西北工业大学硕上论文 3 2 2 设计与实现 服务器主进程接受客户端的连接请求后,获得一个s o c k e t 描述符,在创建服 务进程以后,这个s o c k e t 描述符将供该进程使用。服务进程使用这个s o c k e t 描 述符与客户端直接进行通讯:接收客户端的请求命令,然后调用相应功能模块执 行操作,最后将执行结果发送给客户端。 服务进程的职责分为两个方面: 1 与客户端通讯 服务进程使用服务器主进程创建的s o c k e t 描述符与客户端进行通讯。客 户端w o r k b e n c h 在与服务进程进行s o c k e t 通讯时,将传输内容按照双方规定好 的通讯协议格式进行封装( 请参见第4 章客户端与服务器端的电文设计) 。 2 调用各功能模块 功能模块主要有:编译模块、认证模块和版本管理模块等。 服务进程接受客户端发送的命令,按照协议格式解析出用户请求的是哪一 种操作,根据不同的请求调用不同的模块,可由如下的伪码表示: s w it c h ( c o d e ) c a s e 0 :调用编译模块 c t s e ,u :调用认证模块 c a s e s :调用s f l 文件库管理模块 c a s e v :调用外部版本管理模块 c a s e e :调用环境设置模块 c a s e t :关闭s o c k e t ,断开连接 在每个具体的模块内,解析出具体的命令及参数,然后进行具体的操作,将 执行结果进行封装,发送给客户端。 注:关于c o d e 的具体含义请参见章节4 2 3 。 图3 3 是服务进程的流程图: 西北+ e 业大学硕士论文 图3 - 3 服务进程流程图 流程描述: 服务进程接受客户端的数据。 如果该客户没有经过认证,则根据传送的认证参数调用认证模块进行认证, 若认证成功,初始化环境变量等,然后转到处,接受客户端发送的下一个 数据。若认证不成功则断开连接。 如果该客户已经过认证,解析命令类型。 a 如果是编译命令,调用编译模块( 请参见图3 4 编译执行顺序示意图的说 明。此处的编译流程以发送“编译命令”为例进行说明。当在客户端发送了 编译命令后,客户端必须等待直到有返回结果,才能执行下一条命令( 除了 发送调试命令,因为调试命令的处理由调试进程对应,相关说明请参见章节 3 3 调试进程) ) 。 西北t 业大学顾l 论文 客户端w o r k b e n c h服务器端服务进程 1 发送编译命令。1 服务进程接收命令 2 经判断该用户已经过认证。 3 解析出发送的命令为编译命令。 2 等待编译结果。4 调用编译模块。 5 编译模块解析出具体的编译命令 ( 参数) 。 6 调用编译器。 7 编译器将执行结果返回给编译模 块。 3 ,接收编译结果。8 编译模块将执行结果直接发送给 客户端。 9 服务进程等待接收下一条用户发 送的命令。 图3 - 4 编译执行顺序示意图 b 如果是针对s f l 文件管理的命令,调用库管理模块( 请参见图3 5 库管理 命令执行顺序示意图的说明。此处以客户端发送“文件保存命令为例进 行说明。当客户端发送了保存命令后,必须等待直到有结果返回才能执行 下条命令( 除了发送调试命令,因为调试命令的处理由调试迸程对应,相 关说明请参见章节3 3 调试进程) ) 。 客户端w o r k b e n c h服务器端服务进程 1 发送“文件保存”命令。 1 服务进程接收命令。 2 经判断该用户已经认证过。 3 解析出用户命令为文件命令。 4 调用文件管理模块。 5 文件管理模块解析出客户端发送 的是“文件保存”命令。 2 发送完保存命令后,紧接着发 6 直接通过s o c k e t 获得文件i ;l j 容。 送要保存的文件内容。 7 保存文件。 3 等待结果。 4 接收命令结果。 8 将正确保存结果返回给客户端。 9 服务进程等待接收下一条用户发 送的命令。 西北工业大学硕十论文 图3 - 5 库管理命令执行顺序示意图 c 如果是版本管理命令,过程与上述的文件管理过程相似,此处不再赘述。 d 如果是设置环境变量命令则对各个变量进行赋值。 e 如果是结束命令,则关闭s o c k e t ,断开连接,服务进程与调试进程结束。 在处理完条命令后,服务进程等待客户端发送下一条命令,即调转到。 3 3 调试进程 3 3 1 功能简介 为了更方便地让用户进行调试,专门建立了一条调试通道,只传送与调试有 关的命令和结果,这样用户在调试的过程中还可以进行其它与调试无关的操作, 如打开文件等操作,达到了并行操作的目的,提高了工作效率。这条调试通道是 客户端与服务器建立的第二条连接,调试进程使用另一个s o c k e t 描述符与客户端 通讯。 3 3 2 设计与实现 1 设计思路:服务器主进程创建调试进程后,调试进程再创建一个进程, 调试进程与该进程是父子关系。它们通过管道来通讯,在子进程内启动w d b 调试器。调试进程等待接收客户端发送的调试命令。子进程一直读管道,直 到管道内有数据。调试进程将解析好的调试命令写入管道,子进程从管道中 得到命令,交给w d b 执行,然后将执行结果写入管道,调试进程读管道,取 得调试执行结果,然后封装调试结果,发送给客户端。 2 调试进程流程图请参见图3 6 所示。 流程描述如下: 调试进程创建以后,首先调用f o r k 0 产生一个子进程,它们通过管道来通 讯,在子进程内启动w d b 调试器。调试进程一直等待接收客户端发送的 调试命令。子进程一直读管道,直到管道内有数据。 如果调试进程接收到客户端发送的调试命令,则解析调试命令,然后将该 命令转换成w d b 调试器能够识别的格式。 将转换好的命令写入管道。 调试进程阻塞,等待子进程返回命令执行结果。 l r 西北工业大学硕士论文 子进程读管道,将读到的命令交给w d b 执行,然后将w d b 执行结果写入管 道。 调试进程读管道,取得调试执行结果,然后封装调试结果,发送给客户端。 图3 - 6 调试进程流程图 3 调试命令处理过程详述 对于调试命令完整的处理过程,分两种情况进行描述: 西北工业大学硕上论文 1 ) 在发送“开始调试”命令时,客户端已经通过认证的情况。此时服务 器直接处理调试命令。图3 - 7 说明这种情形的调试过程。 客户端w o r k b e n c h服务器端 l 。执行“开始调试”命令。 1 服务器主进程监听客户端的连接 2 客户端检查与服务器已经连 请求。 接上。 2 服务器主进程监听到有客户端连 3 与服务器建立调试连接。 s o c k e t 2 接,产生s o c k e t 2 。 4 发送调试类型的请求, 3 接收请求,经判断为调试类型。 4 创建调试进程( 以后所有的调试 命令都由调试进程与客户端通过 s o c k e t 2 传送) 。 5 在调试进程的开始处创建一个子 进程,在子进程内启动w d b 调试 器。 6 调试进程等待客户端发送调试命 令。 5 发送“开始调试”命令。 s o c k e t 2 7 接收命令,解析出“开始调试” 6 等待命令的执行结果。 命令并转换成w d b 能识别的命令 格式。 8 将转换后的“开始调试”命令传 给w d b 。 9 调试进程等待w d b 的执行结果。 l o 调试进程获得w d b 的执行结果并 7 获得执行结果。 s o c k e t 2 进行封装。 1 1 将封装好的执行结果发送给客户 8 ,更新w o r k b e n c h 界面。 端。 9 发送下一条命令。 1 2 返回到7 处等待下一条调试命令。 图3 7 调试命令执行顺序示意图( 1 ) 西北工业大学硕士论文 2 ) 在发送“开始调试”命令时,客户端没有经过认证的情况。此时,服 务器会先对用户账号进行认证,然后再处理调试命令。图3 - 8 说明这 种情形的调试过程。 客户端w o r k b e n c h服务器端 1 执行“开始调试”命令。 1 服务器主进程监听客户端的连接 2 客户端检查出与服务器还未 请求, 连接上。 2 服务器主进程监听到有客户端连 3 与服务器建立连接。 接,产生s o c k e t l 。 4 发送认证请求。 s o c k e t l 3 接收请求,经判断不是调试请求。 4 创建服务进程( 以后所有的非调试 命令都由服务进程与客户端通过 s o c k e tl 传送) 。 s o c k e t l5 服务进程调用认证模块。 5 取得认证成功的信息。 6 返回认证结果。 7 服务器主进程继续监听客户端的 连接请求。 6 与服务器建立调试连接。 8 服务器主进程监听到有客户端连 接,产生s o c k e t 2 。 7 发送调试类型的请求。 s o c k e t 2 9 接收请求,经判断为调试类型。 1 0 创建调试进程( 以后所有的调试命 令都由调试进程与客户端通过 s o c k e t 2 传送) 。 1 1 在调试进程的开始处创建一个子 进程,在子进程内启动w d b 调试器。 以下与图3 7 同。 以下与图3 7 同。 图3 - 8 调试命令执行顺序示意图( 2 ) 西北 业大学硕二l 论文 第4 章客户端与服务器端的电文设计 4 1 电文功能简介 前文已经提到,客户端与服务器的通讯使用t c p i p 协议,使用s o c k e t 通讯。 在用户使用c o b 0 1 2 0 0 2 开发环境的过程中,客户端与服务器要频繁地传输数据, 为了使传输的数据在使用时不引起混淆,必须使用二者都能理解的数据包格式, 因此必须设计一种二者都遵循的命令传输协议c t p ( c o m m a n dt r a n s f e rp r o t o c 0 1 ) 。 客户端与服务器进行s o c k e t 通讯时,传输内容和过程要按照双方预先规定好 的c t p 格式。该协议的基本作用就是使服务器明确本次通讯中客户端请求进行何
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南航空乘面试题库精 编
- 新职业探索:应届生面试题库揭秘:常见职业类型及面试要点
- 普惠金融工作总结汇报
- 2026届广东省惠州市惠东中学高三化学第一学期期中监测试题含解析
- 我们的地球讲解版
- 微波技术的应用
- 小儿外科常见护理技术
- 细胞的增殖(二)
- 江西省新余第四中学2026届化学高二第一学期期中调研试题含解析
- 研究技术路线图
- 2025年食品安全培训考试试题及答案
- 2025年长江证券港股通开通测试题及答案
- 2025西安亮丽电力集团有限责任公司招聘10人笔试备考题库及1套完整答案详解
- 2025河北唐山某国有企业单位招聘劳务派遣工作人员44人笔试参考题库附带答案详解(10套)
- 成都银行总行招聘考试真题2024
- 基孔肯雅热培训测试题含答案
- 留疆战士考试题库及答案
- 小额贷款公司贷款五级分类办法
- 2025公卫执业医师考试试题(附答案)
- 医院药品质量管理课件
- 2025年上海市中考招生考试数学真题试卷(真题+答案)
评论
0/150
提交评论