问题 问答题 简答题

论文:试题论软件三层结构的设计

目前,三层结构或多层结构已经成为软件开发的主流,采用三层结构有很多好处,例如,能有效降低建设和维护成本,简化管理,适应大规模和复杂的应用需求,可适应不断的变化和新的业务需求等。在三层结构的开发中,中间件的设计占重要地位。

请围绕“软件三层结构的设计”论题,依次对以下3个方面进行论述。

(1)概要叙述你参与分析和开发的软件项目以及你所担任的主要工作。

(2)具体讨论你是如何设计三层结构的,详细描述其设计过程,遇到过的问题以及解决的办法。

(3)分析你采用三层结构所带来的效果如何,以及有哪些还需要进一步改进的地方,如何改进?

答案

参考答案:

我所在的单位是国内主要的商业银行之一,作为单位的主要技术骨干,2003年1月,我主持了远期结售汇系统的开发,该系统是我行综合业务系统XX2000的一个子系统,由于银行系统对安全性,可靠性,可用性和响应速度要求很高,我选择了三层C/S结构作为该系统的软件体系结构,在详细的设计三层结构的过程中,我采用了字符终端为表示层,CICS TRANSATION SERVER为中间层,DB2 UDB 7.1为数据库层,并采用了CICS SWITCH组,并行批量的办法来解决设计中遇到的问题,保证了远期结售汇系统按计划完成并顺利投产,我设计的软件三层结构得到了同事和领导的一致认同和称赞。但是,我也看到在三层结构设计中存在一些不足之处:例如中间层的负载均衡算法过于简单,容易造成系统负荷不均衡,并行批量设计不够严谨,容易造成资源冲突等。

我所在的单位是国内主要的商业银行之一。众所周知,银行的业务存在一个“二八定理”:即银行的百分之八十的利润是由百分之二十的客户所创造。为了更好地服务大客户,适应我国对外贸易的蓬勃发展态势,促进我国对外贸易的发展,2003年1月,我行开展了远期结售汇业务。

所谓的远期结售汇就是企业在取得中国外汇管理局的批准后,根据对外贸易的合同等凭证与银行制定合约,银行根据制定合约当天的外汇汇率,通过远期汇率公式,计算出交割当天的外汇汇率,并在那天以该汇率进行成交的外汇买卖业务。远期结售汇系统j是我行综合业务系统XX2000的一个子系统,它主要包括了联机部分、批量部分、清算部分和通兑部分,具有协议管理、合约管理、报价管理、外汇敞口管理、账务管理、数据拆分管理、报表管理、业务缩微和事后监督等功能。

我作为单位的主要技术骨干之一,主持并参与了远期结售汇系统的项目计划、需求分析、设计、编码和测试阶段的工作。由于银行系统对安全性、可靠性、可用性和响应速度要求很高,我选择了三层C/S结构作为该系统的软件体系结构,下面,我将分层次详细介绍三层C/S软件体系结构的设计过程。(1)表示层为字符终端。我行以前一直使用IBM的VisualGen2.0附带的图形用户终端来开发终端程序,但在使用的过程中,分行的业务人员反映响应速度比较慢,特别是业务量比较大的时候,速度更是难以忍受。为此,我行最近自行开发了一套字符终端CITE,它采用VisualBasic作为开发语言,具有响应速度快、交互能力强、易学、编码快和功能强大的特点,在权衡了两者的优点和缺点之后,我决定选择字符终端CITE作为表示层。

(2)中间层为CICS Transation Server(CTS)。首先,我行与IBM公司一直保持着良好的合作关系,而我行的大部分技术和设备都采用了IBM公司的产品,其中包括了大型机,由于CICS在IBM的大型机上得到了广泛的应用,并在我行取得了很大的成功,为了保证与原来系统的兼容和互用性,我采用了IBM的CTS作为中间层,连接表示层和数据库层,简化系统的设计,使开发人员可以专注于表示逻辑和业务逻辑的开发工作,缩短了开发周期,减少开发费用和维护费用,提高了开发的成功率;其次,对于中间层的业务逻辑,我采用了我行一直使用的Visualage For Java作为开发平台,它具有简单易用的特点,特别适合开发业务逻辑,可以使开发人员快速而准确地开发出业务逻辑,确保了远期结售汇系统的顺利完成;最后,由于采用了CTS,确保了系统的开放性和互操作性,保证了与我行原来的联机系统和其他系统的兼容,保护了我行的原有投资。

(3)数据层为DB2 UDB 7.1。由于DB2在大型事务处理系统中表现出色,我行一直使用DB2作为事务处理的数据库,并取得了很大的成功,在DB2数据库的使用方面积累了自己独到的经验和大量的人才,为了延续技术的连续性和保护原有投资,我选择了DB2 UDB 7.1作为数据层。

但是,在设计的过程中也遇到了一些困难,我们主要采取了以下的办法来解决:

(1)CICSSwitch组。众所周知,银行系统对于安全性、可靠性、可用性和响应速度要求很高,特别是我行最近进行了数据集中,全国只设两个数据中心,分别在XX和YY两个地方,这样对以上的要求就更高了,为了保障我行的安全生产,我采用了CTSSWITCH组技术。为了简化系统的设计和缩短通信时间,我采用了简单的负载均衡算法,例如这次分配给第Ⅳ个CTS,下次则分配给第N+1个CTS,当到了最后一个,就从第一个开始;为了更好地实现容错,我采用了当N第个CTS失效的时候,把它正在处理的业务转到第N+1个上面继续处理,这样大大增加了系统的可用性,可以为客户提供更好的服务;此外,我还采用了数据库连接池的技术,大大缩短了数据库处理速度,提高了系统运行速度。

(2)并行批量。银行系统每天都要处理大量的数据,为了确保白天的业务能顺利进行,有一部分的账务处理,例如一部分内部户账务处理,或者代理收费业务和总账与分户账核对等功能就要到晚上批量地去处理,但是,这部分数据在数据集中之后就显得更加庞大,我行以前采用串行提交批量作业的办法,远远不能适应数据中心亿万级的数据处理要求,在与其他技术骨干讨论之后,并经过充分的论证和试验,我决定采用了并行批量的技术,所谓的并行批量,就是在利用IBM的OPC(Tivoli Operations,Planningand Control)技术,把批量作业按时间和业务处理先后顺序由操作员统一提交的基础上,再利用DB2的PARTITION技术,把几个地区分到一个PARTITION里面分别处理,大大提高了银行系统的数据处理速度,确保了远期结售汇系统三层结构的先进性。在并行批量的设计过程中,我考虑到批量作业有可能因为网络错误或者资源冲突等原因而中断,这样在编写批量程序和作业的时候必须支持断点重提,以确保生产的顺利进行。

由于软件三层结构设计得当,并采取了有效的措施去解决设计中遇到的问题,远期结售汇系统最后按照计划完成并顺利投产,不但保证了系统的开发性开放性、可用性和互用性,取得了良好的社会效益和经济效益,而且我的软件三层结构设计得到了同事和领导的一致认同与称赞,为我行以后系统的开发打下了良好的基础。

在总结经验的同时,我也看到了我在软件三层结构设计中的不足之处:

首先,负载算法过于简单,容易造成系统的负荷不均衡:由于每个业务的处理时间不一样,有的可能差距很远,简单的顺序加一负载分配算法就容易造成负载不均衡,但是如果专门设置一个分配器,则增加了一次网络通信,使得系统的速度变慢,这样对响应速度要求很高的银行系统来说也是不可行的,于是我决定采用基于统计的分配算法,即在收到请求的时候,根据预先设定的权值,按概率,直接分配给CTS。

其次,由于批量作业顺序设计得不过够严谨等各种原因,容易造成资源冲突:在远期结售汇系统运行了一段时间之后,数据中心的维护人员发现了,系统有的时候会出现资源冲突现象,在经过仔细的分析之后,我发现,由于每天各个业务的业务量大小不一样,顺序的两个作业之间访问同一个表的时候便会产生资源冲突,另外,在OPC作业运行的过程中,操作员提交的其他作业与这个时间的OPC作业产生也有可能产生资源冲突。对于第一种情况,可以在不影响业务的情况下调整作业顺序或者对于查询作业运用DB2的共享锁的技术,而第二种情况则要制定规范,规定在某时间断内不允许提交某些作业来解决。为了更好地开展系统分析工作,我将在以后的工作实践中不断地学习,提高自身素质和能力,为我国的软件事业贡献自己的微薄力量。

填空题
单项选择题

马兰兰女士找到了金融理财师王先生咨询个人理财相关事宜,信息资料如下:
一、家庭基本情况
马兰兰女士,36岁,18年前与先生吴军来到城里创业。经过两人的不懈努力,他们已经拥有了自己的餐馆。
马兰兰与吴先生育有一子一女,女儿吴丹丹今年12岁,初中一年级,儿子吴兵今年3岁,幼儿园小班。同时还负责赡养吴先生在农村的父母,预计赡养15年。
二、收入支出和资产负债状况
目前餐馆经营良好,预计今年营业收入100万元,成本费用50万元(含夫妻二人每月工资)。两人每月工资各3000元,用于日常开支。女儿年学费1万元,儿子所在的幼儿园年学费3万元。老家父母每年生活费1万元。
家庭现有股票型基金成本20万元,市值30万元,某银行人民币理财产品20万元,纸黄金成本18万元,市值20万元,国债30万元,定期存款20万元(即将到期),活期存款10万元。3年前购买的二手小货车成本价3万元,去年购买的自用轿车成本25万元。5年前购买的自住用房70平米,当时一次付全款30万元。
马兰兰与先生均没有社保,他们于2年前购买了同一款20年期返还型重大疾病保险,保额均为10万元,20年期缴,马兰兰年缴保费4000元,吴先生年缴保费4500元,目前两人保单现金价值合计3000元。
三、理财目标
1.今年年底购买届时200万元的住房,打算自备款100万元,贷款100万元,贷款利率5.5%,期限20年,按年本利平均摊还。
2.一年后接吴先生父母过来同住。
3.6年后女儿上大学,培养女儿到大学毕业;15年后儿子上大学,培养儿子到硕士毕业。
4.25年后夫妻一起退休,且能够维持现有的生活水平。
四、相关假设
·收入成长率4%。
·通货膨胀率3%。
·房价成长率5%。
·房屋折旧率2%。
·房租成长率3%。
·车辆折旧率10%。
·学费成长率5%。
·小学(6年)/初中(3年)/高中(3年)教育费,每年现值1万元。
·大学(4年)的学费,每年现值2万元。
·研究生(2年)学费,每年现值3万元。
·股票型基金报酬率10%,标准差20%。
·国债报酬率3%,定期存款2%。
·退休前投资报酬率为6.5%,退休后投资报酬率是退休前的80%。
·退休后预期余寿30年。
·发生保险事故后,遗属生活费是原来的80%。

如果马女士家庭决定按照保险需求测算结果投保高额定期寿险,那么保险公司核保需要的财务信息包括______。
(1)马女士家庭的净资产
(2)马女士家庭的现期收入、预期收入
(3)马女士家庭的现期支出、预期支出
(4)马女士家庭收入的持久性
(5)税收因素

A.(1)(2)(3)(4)
B.(1)(2)(4)(5)
C.(1)(3)(4)(5)
D.(1)(2)(3)(5)