好文档 - 专业文书写作范文服务资料分享网站

系统分析师论文案例集PDF 

天下 分享 时间: 加入收藏 我要投稿 点赞

Vxworks相比,它同样具有功能强大,稳定性好等优点,具有我们所需要的界面显示和文件系统等功能,缺点是实时性稍差,另外缺乏来自平台供应商的技术支持。但uclinux同时也具有Vxworks所没有的优点,首先它是开放源代码的,可以对其源码进行局部修改以适应所开发软件的需要,这一特点对于我们的多跳路由算法特别有用;其次它是免费的,这意味着所开发的产品的成本将会较低。另外,AD公司为发挥BF-21533的强大性能,对uclinux进行了移植工作,并且推出了相应的toolchain编译工具,这意味着无需重新选择处理器也能进行uclinux平台上的开发。这些都最终促使我们选择了此方案。

在应用uclinux平台的过程中,为了充分利用linux的硬件平台无关的特点和加快软件开发进度,我们将系统划分成硬件相关和硬件无关两部分,硬件无关的部分比如音频视频编码和路由算法等在装有相同linux版本的PC机上开发,硬件相关的比如移植工作和各种driver的开发则在具体硬件平台上开发。同时为了保持系统的先进性和开放性,我们采取积极参与开源运动的方法,除了参与uclinux网站上将uclinux移植到BF-21533处理器的项目外,还将系统中的一些非核心部分(比如音频和视频芯片的driver)分离出来,在开源网站上设立相应的项目。在遇到技术难题时,我们除了在项目组内讨论外,同时也在开源世界中和来自全世界的开发者讨论,寻求解决的方法,通过这种方式,我们成功解决了一些棘手的问题比如系统的boot load,我们也将项目中发现的有关移植一些bug,即时反映给AD公司和相关开源项目,帮助完善uclinux在BF-21533上的移植。同样,在我们设立的开源项目中虽然绝大部分都是自己的开发人员在开发,但依然不时会收到热心人发来Email提出一些建议和指出一些bug,其中有一些bug是我们测试时也没有发现的,这不仅提高了我们的软件质量,同时也让我们充分认识到开源运动的力量。

目前,在嵌入式软件开发平台占主流的是以vxworks、wince为代表的商业产品,但以linux为代表的开源运动也将这一潮流带到了嵌入式开发这一领域,显示了它的影响力,而且影响力有越来越大的趋势,这种趋势的驱动力不仅来自linux内部,而且来自于外部厂商的支持,linux 2.6已经正式支持不少嵌入式处理器,vxworks开发商风河公司也已经丢弃了敌视linux的态度,转而和redhat公司合作开发嵌入式linux平台。相信未来在嵌入式开发领域linux必将大有作为。

论软件三层结构的设计

摘要:

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

正文:

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

所谓的远期结售汇就是企业在取得中国外汇管理局的批准后,根据对外贸易的合同等凭证与银行制定合约,银行根据制定合约当天的外汇汇率,通过远期汇率公式,计算出交割当天的外汇汇率,并在那天以该汇率进行成交的外汇买卖业务。远期结售汇系统是我行综合业务系统

46

XX2000的一个子系统,它主要包括了联机部分﹑批量部分﹑清算部分和通兑部分,具有协议管理﹑合约管理﹑报价管理﹑外汇敞口管理﹑帐务管理﹑数据拆分管理﹑报表管理﹑业务缩微和事后监督等功能。

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

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

最后,由于采用了CTS,确保了系统的开放性和互操作性,保证了与我行原来的联机系统和其他系统的兼容,保护了我行的原有投资。

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

但是,在设计的过程中我也遇到了一些困难,我主要采取了以下的办法来解决: 1﹑CICS SWITCH组。众所周知,银行系统对于安全性,可靠性,可用性和响应速度要求很高,特别是我行最近进行了数据集中,全国只设两个数据中心,分别在XX和YY 两个地方,这样对以上的要求就更高了,为了保障我行的安全生产,我采用了CTS SWITCH组技术,所谓的CICS SWITCH组,就是一组相同的CTS,每个CTS上都有相同的业务逻辑,共同作为中间层,消除了单点故障,确保了系统的高度可用性。为了简化系统的设计和缩短通讯时间,我采用了简单的负载均衡算法,比如这次分配给第N个CTS,下次则分配给第N+1个CTS,当到了最后一个,就从第一个开始;为了更好地实现容错,我采用了当第N个CTS失效的时候,把它正在处理的业务转到第N+1个上面继续处理,这样大大增加了系统的可用性,可以为客户提供更好的服务;此外,我还采用了数据库连接池的技术,大大缩短了数据库处理速度,提高了系统运行速度。 2﹑并行批量。银行系统每天都要处理大量的数据,为了确保白天的业务能顺利进行,有一部分的帐务处理,比如一部分内部户帐务处理,或者代理收费业务和总帐与分户帐核对等功能就要到晚上批量地去处理,但是,这部分数据在数据集中之后就显得更加庞大,我行以前采用串行提交批量作业的办法,远远不能适应数据中心亿万级的数据处理要求,在与其他技术骨干讨论之后,并经过充分的论证和试验,我决定采用了并行批量的技术,所谓的并行批量,就是在利用IBM的OPC(Tivoli Operations, Planning and Control)技术,把批量作业按时间和业务处理先后顺序由操作员统一提交的基础上,再利用DB2的PARTITION技术,把几个地区分到一个PATITON里面分别处理,大大提高了银行系统的数据处理速度,确保了远期结售汇系统三层结构的先进性。在并行批量的设计过程中,我考虑到批量作业有可能因为网络错误或者资源冲突等原因而中断,这样在编写批量程序和作业的时候必须支持断点重提,以确保生产的顺利进行。

47

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

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

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

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

论软件三层结构的设计

摘要

随着市场的建立和发展,卫生行业面临了很多问题,一些制约卫生事业发展的矛盾和问题日益显现,因此,国家卫生部要求各医院采用信息化管理。前不久,我所在的部门承担了了一个医院管理系统的设计和开发,医院希望以此来转变医院现有的运行机制,提高服务质量。该系统除了目前常见的结费系统、电子病历外,还包括门诊医生工作站、住院医生工作站、护士工作站等分系统。考虑到需要通过Intranet实现功能,并有部分的Internet功能,本项目平台最后采用了Java平台。我在项目中主要负责项目的的前期规划,即选择合适的开发方案,并建立部分的数据流,在系统实施过程中推动其顺利前进。此系统开发成功后投入运行,获得医院相关工作人员的好评。 正文

前不久,我所在的部门承担了了一个医院管理系统的设计和开发,医院希望以此来转变医院现有的运行机制,提高服务质量。客户是一个市级医院,医院很早就开始从事信息化管理,但主要是针对结费这一块,后来,对其进行了改进,加入对病人电子病历的管理和采集,这样当病人二次就诊时,可以很容易地得到病人的既往病史。但随着系统的运行,院方希望对现有系统进行改进,为了更好得为病人服务,医院考虑加入一些其它的分系统,比如门诊医生工作站、住院医生工作站和护士工作站等等。因此我所在的部门承接了该HIS的开发,开发的成果是一个典型的Java技术在Intranet上的应用。

在开发前期,首先要设计出详细的系统功能规范,这一部分所花费的时间很少,因为卫生部在2002年曾经颁发了一个有关医院管理系统功能规范的通知,我们参考了该规范,很快确定了各分系统以及每个分系统的的基本功能。但在选择合适的系统平台上有一番讨论,考虑到医院原有系统在某些地方运行良好,是否有必要将原有系统淘汰重新设计,另外新的分系统到底采用何种平台结构也是需要考虑的问题。

医院原有的结费系统和电子病历系统数据流向范围比较固定,主要集中在交费处和挂号处,一旦引入了新的系统,必然要将数据流向医院的各个部门。医院的Intranet已经实施,因此首先考虑采用B/S架构体系,旧系统的数据模型尽可能保留。在系统的软件平台上,我们考虑使用Java平台,可以让数据在整个系统安全、有效地流动;另外现在也有很多的HIS系统可供我

48

们参考,虽然往往是单机版的系统,但其中的数据模型有很好的参考价值。医院的现有网络系统和操作系统多种多样,这就要求我们选择的软件平台必须具有开放性、平台无关性。而在不同的系统上安装相应的Java客户端虚拟机并不困难,最后,在项目组的讨论和征求客户意见下,项目组采用了此方案。

在项目中,我们这样设计Java架构系统,将系统分为三层:

(1)表示层采用Jsp实现页面输出,这也是用户直接访问层,表示层接受来自网络浏览器的HTTP请求,然后返回给客户端浏览器可以显示的HTML页面;

(2)中间件层用Java实现对数据库的访问,考虑到数据的分布特点,我们使用了数据库连接池技术;

(3)数据库层用SQL Server实现数据库的管理和存储过程。 JSP以其执行的高效性和使用的方便性,已成为近年来大家首选的因特网开发技术,JSP是一种页面开发技术,它以Java为其服务器端语言,结合Java Script作为其客户端语言,能方便地实现页面的表示。选择Jsp作为前台语言,是考虑到它的平台无关性,能够兼容其他的操作系统和数据。利用Jsp可以将HTML文件很方便地发送到客户端Web浏览器,同时也可以支持一些非HTML格式的文档发送。我们在网站中的用户层页面设计中,广泛地参考了现有的一些成功案例,在节约设计和开发的费用的同时也得到了用户的认可。比起单纯的Servlet技术,Jsp在页面元素上也更为丰富,在这里,我们为今后客户页面定制做了部分尝试,设计了一个比较简单的模块,用户可以通过选择控件来动态生成页面提供打印,当然在这部分我们设计中,可提供的数据库字段是固定有限的,灵活性没有很好体现。

我们大量工作主要放在中间件层,由于系统中的医生工作站分系统是主要部分,因此数据库的负载成为一个不得不考虑的问题。综合考虑,我们决定采用数据连接池技术,因为基本上每个医生都对应一个客户终端,无论是病人资料的查讯或录入,或者医嘱的处理,都涉及到对数据库的频繁读写,服务器对于数据连接的频繁打开和关闭必然导致性能下降。一方面,我们预先考虑数据库的连接量,在系统初始阶段建立相应的存储空间,当数据库连接打开和关闭时都对该连接池进行处理;另一面,我们也使用了高速缓存技术,对某些固定的SQL查讯结果,例如药品查讯、药性禁忌等,将结果采用缓存存储,以加快对数据库的访问,降低了服务器端的负载,提高性能。值得一提的是,为了尽可能得避免纠纷,医院要求采用医生签名制度,我们设计了电子签名,采用加密算法保证各环节产生数据的有关人员不能抵赖。

数据库层我们选择了SQL Server,程序员比较熟悉此平台的开发和设计。在前期,我们到医院做了大量的走访工作,了解整个数据流,同时广泛参考现有的系统,虽然对医院行业不是很熟悉,但数据层开发遇到的问题的并不是很大。在概要设计阶段,我们使用了一些计算机辅助开发工具,这也加快了详细设计的进程。比如使用了Sybase的PowerDesigner工具,在概要设计中规划了E-R图和各个分系统以及分系统之间的数据流图,然后让工具直接生成后台数据库中的基本表结构,大大提高了开发效率。

整个项目实施完成后,医院相关工作人员反映良好,但其中也暴露出了一些问题,值得改进。

首先,用JSP编程时容易导致系统信息的扩散。如果有人恶意攻击服务器,程序执行将出现异常。这时,就会在页面上打印出相应的错误信息。这些信息会暴露出这台服务器的路径信息。这个漏洞往往会被人利用,程序员对此也一头雾水,下一步我们考虑从服务器入手,采用通用的异常说明界面,解决该问题。

其次,在设计上,可以使用更多的辅助开发工具和建模工具,比如Rational Rose,可以利用它的代码自动生成功能,来大大提高开发速度;在用户界面定制方面,我们希望通过不断的实践,加强其灵活性,尽可能把可供选择的字段扩大到整个数据库。

最后,大量使用Java技术,势必对服务器的负载过大,在今后的开发中,除了现有的数据库连接池和缓存技术,我们考虑使用更多的数据库脚本来替代部分Java代码,来高速实现逻辑,

49

相较而言,数据库脚本的执行速度较有优势,结合结果缓存,应该对服务器的性能有较大的提高。

上面是我在今后的系统设计和开发中需要注意和加以改进的地方,也是我今后应该努力的方向。

论软件三层结构的设计

摘要

随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。在这种体系结构中,将应用功能分成表示层、功能层和数据层三部分。

本人在去年参加了一个备件流程管理项目的开发,在此项目中担任需求分析和结构设计等工作。结合需求分析结果和该单位的实际情况,在该项目中我们采用C/S和B/S的混合模式,客户端使用的是Delphi和FrontPage进行开发,中间件我们采用的是COM+,使用Delphi进行开发,后台使用SQL Server数据库。本文详细描述三层结构的设计过程,重点讨论中间件的设计过程和在设计实施过程中碰到的一些问题以及解决的方法,文章最后说明了采用三层结构带来的效果,以及可以改进的地方。 正文

2003年8月,我参加了某钢铁公司备件采购项目,主要负责该项目的需求分析和结构设计等工作。该钢铁公司原先的备件采购全部是人工完成,手续复杂,办事效率低下,更重要的是无法提供及时有效的信息供企业领导参考。该公司一方面需要通过此项目来缩短采购时间,提高办事效率,另一方面该公司已经建成比较完善的局域网,需要在内部网上公开采购结果,并要做出统计分析,供全公司员工和领导查询参考。该项目涉及部门主要包括该集团公司下的仓储公司,供应公司,招标公司,劳企部等。

根据我们做出的需求分析以及各种体系结构的优缺点,我决定采用C/S和B/S混合的体系结构来开发。对于仓储公司等部门的需求,需要对数据进行更新处理,采用C/S结构可以更快更好的开发且数据处理速度更快,可以更好的满足要求。对于领导和员工的查询需求,我们采用B/S模式。采取这样的结构可以很好的满足用户需求,且容易开发和维护。由于都是在windows平台上使用,因此在开发工具的选择上,我们使用Delphi来开发仓储公司等部门的客户端和中间件,使用FrontPage来开发网页,连接在其内部网上提供查询服务。中间件我们采用的是COM+,进行逻辑处理,数据层使用SQL Server。

以下详细介绍三层结构的功能分配和物理分布,描述三层结构设计的过程,讨论在设计实施过程中碰到的一些问题以及解决的方法,文章最后说明采用三层结构带来的效果,以及可以改进的地方。

对于客户端,B/S结构仅提供查询功能,使用Internet Explorer,各个子公司、二级部门都可以通过内部网使用。C/S结构提供日常操作和管理界面,承担着整个系统的数据录入及数据维护工作,使用Delphi开发,它是系统数据的入口,使用频繁,安装在仓储公司、供应公司等单位;中间件和数据库以及Web服务器都放在集团公司的计算机中心,便于维护管理。中间件负责根据客户端要求从数据库中取得数据,并在进行处理后提交到客户端显示;后台使用SQL Server数据库,数据集中在数据库服务器进行管理,方便数据管理和分析,保证数据安全。其物理分布如下图:

50

系统分析师论文案例集PDF 

Vxworks相比,它同样具有功能强大,稳定性好等优点,具有我们所需要的界面显示和文件系统等功能,缺点是实时性稍差,另外缺乏来自平台供应商的技术支持。但uclinux同时也具有Vxworks所没有的优点,首先它是开放源代码的,可以对其源码进行局部修改以适应所开发软件的需要,这一特点对于我们的多跳路由算法特别有用;其次它是免费的,这意味着所开发的产品的成本将会较低。另外,AD公司为发挥BF-2
推荐度:
点击下载文档文档为doc格式
2ft8785se79mzf00wd5w
领取福利

微信扫码领取福利

微信扫码分享