【精品】软件系统建设方案 中国南车 投标技术方案.doc_第1页
【精品】软件系统建设方案 中国南车 投标技术方案.doc_第2页
【精品】软件系统建设方案 中国南车 投标技术方案.doc_第3页
【精品】软件系统建设方案 中国南车 投标技术方案.doc_第4页
【精品】软件系统建设方案 中国南车 投标技术方案.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国南车 软件系统建设方案 (投标技术方案)Version 1.0.1 20XX.06.22Written By Winskysoft 湖南微凯信息科技有限公司 20XXAll Rights Reserved目录第一章 项目概述1.1 项目背景1.2 项目目标1.3 项目内容1.4 设计原则系统设计、开发与实施,应遵循以下原则: 高可靠性。作为工业产品,可靠性要求是第一位的,也是保障技术先进性正常发挥的重要条件。可靠性除包含系统所设计的硬件外,软件的可靠性、稳定性、网络系统抗病毒攻击能力均成为系统可靠性指标的组成部分。 高可用性。通过对系统进行专门的设计,从而减少因机器故障而导致的停工,而保持其服务的高度可用性。 规范性。按照行业、国家和国际有关要求,遵循软件、硬件、自动化等系统的有关规范。信息分类编码标准化、信息接口标准化。 经济性。必须充分考虑现有软硬件、数据资源的合理利用,避免资源浪费,减少项目投资和节约建设时间。必须考虑项目实施的性价比和实施策略。 先进性。既要符合国际先进管理思想,也必须适合国情和企业情况。必须满足企业现在、未来发展的需要和采用当今较先进的技术两方面结合起来考虑,采用当今成熟的、先进的主流技术,能体现国内外先进的管理思想和理念。 实用性。需求驱动为原则,结合企业生产经营特点和企业发展需要,根据企业的实际情况和管理决策的需要,实事求是地确定解决方案,力求方法、理论的先进性和实际情况有机地结合,高效地服务于企业。 安全性、可靠性与稳定性。系统必须具有极高的安全性和容错性。在系统平台设计、技术保证措施、软硬件选型、系统集成、技术服务以及系统信息资源的安全、可靠性方面均以系统开发成功为目的,不过分追求技术先进性。 可扩展性。软件系统采用组态化、模块化设计,所有功能均作为一个独立组件模块,增加了数据点不需要修改程序,同时,系统的扩展不影响现有系统结构及现有功能的正常使用。 开发性与易维护性。提供采集数据点的配置工具,方便用户进行设备、采集数据点等信息的调整维护工作。 人工智能性。对采集数据进行分析学习,对异常数据进行智能分析诊断并给出预警。1.5 风险评估在项目实施中,为了保证项目的顺利进行,主要从以下个方面来保证项目的风险:BU-商业风险,CU-客户特性风险,DE-开发环境风险,TE-人员经验风险,ST-建造技术风险,PS-产品规模风险,PU-过程风险。1.6 效益分析a.基本建设投资,如:l 计算机设备,我们可以充分利用现有的计算机资源,可以根据实际情况适当投入,可降低投入成本;l 数据通讯设备,利用现有的资源;l 环境设备,利用现有的资源,适当增加所需设备;b.其他支出人员工资、培训费、差旅费、安装费等项目中日常发生的其他正常支出。c.收益第二章 项目设计要点2.1 业务难点本系统分为数据采集,设备控制,数据分析与数据展现四个大的部分。2.1.1 技术上数据流量大,并发性高:一个城市的智能交通系统将面对大量数据终端采集数据以及控制信息的数据传送过程,这将产生很大的数据流量,并且因为众多的设备对于服务器的并发也有很大的压力。对服务器高可用性有很高的要求:城市的交通指挥系统必须能保证在复杂工作情况下尽可能做到24*7的工作,避免因为网线服务器软硬件问题而导致系统无法提供服务。对于软件的安全性,健壮性有较高要求:软件必须能够提供较高的安全性保障,采用的技术必须能够获得所有的源码与细节。适应性强,需要在各种版本、类型的操作系统上发布:本系统具体实施的时候需要在很多地市实施,则需要提供对软件进行良好的版本管理机制,能严格控制软件的质量,确保各项测试工作的计划进行。2.1.2 管理上团队管理要能与产品开发相适应:产品类型的项目适合采用敏捷的开发方式进行项目开发。团队管理要科学化,标准化:必须要通过科学的工具来进行项目开发,项目测试,项目进度等管理。要有较强的版本管理能力:本系统需要进行很多版本的开发、管理与维护。测试管理与实施难度大:测试中有大量的回归测试需要完成。2.1.3 维护上能灵活适应需求变更特性能较方便的实现客户化和本地化能非常方便的进行部署和更新2.2 系统选型比较2.2.1 BS模式与CS模式还是混合模式B/S 是Browser/Server指浏览器和服务器端,在客户机端不用装专门的软件,只要一个浏览器即可(瘦客户端)。C/S 是Client/Server指客户机和服务器,在客户机端必须装客户端软件及相应环境后,才能访问服务器(胖客户端)。1. CS系统的优缺点C/S的优点:1) 能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。2) 对应的优点就是客户端响应速度快。3) 相比较浏览器而言,CS模式的安全性、稳定性、健壮性均优于运行在浏览器上,依赖于浏览器环境的BS结构。C/S的缺点:1) 只适用于网速较快的网络环境如:局域网。2) 客户端需要安装专用的客户端软件及运行环境,维护起来的难度比较高。3) 系统软件升级时,每一台客户机需要重新安装,升级成本非常高。2. B/S最大的优点:1) 所有的程序均运行在服务器上,客户端不用维护,适用于用户群庞大。2) 客户需求发生变化的时候只需要更新升级服务器上的代码即可,能更好的适应客户需求经常发生变化的情况。3) 只要有浏览器即可调用软件的相关功能。B/S的缺点:1) 需要提供对各种浏览器的兼容性处理。2) 对Javascript程序的调试,尤其是内存管理部分难度很高。3. 最终系统选型智能交通系统中,内部管理系统,基础数据管理,信息发布系统等均需要在不同的操作系统上显示,而且经常会涉及到修改升级的问题。比较适合采用BS结构的方式进行开发,所有需要使用系统的客户端只需要提供浏览器即可浏览与操作数据。在智能交通系统中涉及到对硬件进行指挥控制,对于实施性并发性要求特别高的地方则比较适合使用CS类型的客户端。软件运行的时候并不依赖于浏览器等其他系统软件,所以健壮性也可以非常高,能提供长时间稳定的服务。至于升级维护方面可以采用自动升级等方式进行自我维护。综上所述,在智能交通系统里边既有适用于BS类型的部分,也有适用于CS类型的部分,我们正式的方案中应该在适合的场合用适合的系统,故推荐采用混合方式的模式。2.2.2 .NET技术与Java技术Java是由Oracle(甲骨文公司)所拥有的一门程序语言.NET是由Microsoft(微软公司)开发的一整套开发语言及工具的集合。作为开发语言与开发平台,不管是.NET还是Java都非常的成熟和稳定,都有很多小型、中型到大型的项目案例。1. .NET特点.NET主要的特点是开发的效率比Java效率高,学习的曲线低,但是.NET只专注于WINDOWS的平台,不能很好的在其他的操作系统上运行。2. Java特点Java主要特点是开发源码,并且有开源社区大量的开源项目支持。通过精心调试设置好的大中型应用的运行效率并不低。3. 最终系统选型本系统是城市交通信息系统,对于系统安全性有较高的要求。Java完全开放源码的特性比封闭源码的.NET系统要更好。尤其是大中型.NET项目到后期进行优化的时候对人员的要求是非常高的。另外一方面,使用Java技术进行开发的时候也无需对开发与服务器支付任何版权费用。2.2.3 虚拟化,云计算,高可用集群1. 虚拟化概念虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。通过对特定服务器采用虚拟化技术,可以在一台或者一个集群服务器上虚拟出硬件设备并可以安装于使用操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上。2. 云计算概念云计算(cloud puting)是基于互联网的相关服务的增加、使用和交付模式。通常是采用提供动态易扩展且经常是虚拟化的资源。也就是说是使用虚拟化的一种具体使用方式。3. 高可用集群高可用性方案则利用更少的冗余部件同时由软件检测故障,一旦故障发生立即隔离损坏部件,通过提供故障恢复实现最大化系统和应用的可用性。通俗地说,即当A无法为客户服务时,系统能够自动地切换,使B能够及时地顶上继续为客户提供服务,且客户感觉不到这个为他提供服务的对象已经更换。这里的A和B可以存在于各种领域,但一般高可用性特指计算机领域的数据库、应用服务、硬件设备等的失效转移。 如果发生硬件故障时,也可以通过我们所编写的检测脚本,检测到硬件设备时候发生故障。并通过短信网关,邮件等方式及时提醒运维人员对硬件设备进行整修和维护。4. 最终系统选型作为城市交通控制系统,我们必须要做到任何时间都要保证服务器的可用性,并且随着城市信息化建设进程推进,要保证能够简单的通过水平扩展增加服务器的方式来保证系统对性能的需求。而虚拟化技术只是在一台较强服务器上虚拟出硬件设备来,其水平扩展能力,高可用性能力都与采用服务器集群实现高可用性的有一定的差距。所以本系统应该在方案设计中采用高可用性集群方案。2.2.4 软件架构选型1. 面向服务架构面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。通过对本系统实现SOA架构,解除各个功能模块之间的耦合关系,进而使得整个软件功能模块之间实现松散耦合,可以对各种功能模块进行可拔插式组合。综上所述我们在软件架构上应该采用SOA的方式。2. 持久层框架Mybatis与Hibernate都是非常优秀的OR映射工具,Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。而Mybatis的着力点,则在于POJO 与SQL之间的映射关系。当然也可以使用传统的JDBC直接编码的性能,但是开发的工作量要远远低于采用OR映射工具,并且在后期的更新维护上也会有大量的工作量。系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。在这种情况下Mybatis会有更好的可控性和表现,而且DBA能够参与进项目设计与SQL语句的优化工作。综上所述,我们在保证系统的运行性能的同时还要能够对开发效率有很好的支持,能够在后期更新于维护过程中简化复杂性,那么Mybatis作为一种OR映射工具必然成为我们的首选。3. REST开发方式与SpringMVCREST,即Representational State Transfer的缩写,与传统集中式的开发方式相比,这是一类新型的分布式的开发方式,在一些方面(交互设计、服务器端架构)得到了简化。REST的优势在于:非常简单,轻量并且快速。RESTful的通过URL的方式对外提供资源服务。而资源的服务充分利用了HTTP协议中的GET,POST,PUT和DELETE去实现,而且可以用各类格式去访问这些资源,比如,普通文本,XML,PDF,JPEG或者JSON。SpringMVC按照模型、视图、控制器对一个应用系统进行了划分,各层之间的耦合性较低。SpringMVC对于处理器映射、视图解析、文本国际化、主题解析、文件上传等功能提供了很好的实现机制。SpringMVC的视图解析方式,控制器Controller返回一个ModelAndView对象,该对象属性就是视图名字或者模型,使得视图解析配置灵活。而WebMVC模式中还有一种Struts,经过我们测试SpringMVC比Struts吞吐量高66%;响应速度高40%;SpringMVC比Struts快50%以上。综上所述通过SpringMVC提供的REST风格的模式即可实现前文的SOA体系架构的设计。4. JWS/SWT/RIA客户端技术选择JavaTM Web Start 是基于 Java 技术的应用程序的一种部署解决方案。它是连接计算机和 Internet 的便捷通道,允许用户在完全脱离 Web 的情况下运行和管理应用程序。SWT是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的。JQuery使用户能更方便地处理 documents、events、实现动画效果,并且方便地为Web服务器提供Ajax交互。JQuery是RIA富客户端的事实标准。因为本系统是使用BS与CS混合编程模式,所以可以通过JWS或者SWT实现CS编程,通过JQuery实现Ajax框架。我们的软件架构采用的SOA方式,所以不管哪种客户端都可以直接调用Web服务器上的相关服务。5. ArcGISArcGIS是Esri公司集40余年地理信息系统(GIS)咨询和研发经验,奉献给用户的一套完整的GIS平台产品,具有强大的地图制作、空间数据管理、空间分析、空间信息整合、发布与共享的能力。ArcGIS不但支持桌面环境,还支持移动平台、Web平台、企业级环境、以及云计算架构。并且同时为开发人员提供了丰富多样、基于IT标准的开发接口与工具,让您轻松构建个性化的GIS应用。通过GIS系统可以实时展现交通状况,并且一旦出现问题情况,也能够通过应用软件的消息系统给出警示。2.2.5 缓存1. OSCacheOSCache是当前运用最广的缓存方案,JBoss,Hibernate,Spring等都对其有支持。OSCache的特点:1) 缓存任何对象:你可以不受限制的缓存部分jsp页面或HTTP请求,任何Java对象都可以缓存。 2) 拥有全面的API:OSCache API允许你通过编程的方式来控制所有的OSCache特性。 3) 永久缓存:缓存能被配置写入硬盘,因此允许在应用服务器的多次生命周期间缓存创建开销昂贵的数据。 4) 支持集群:集群缓存数据能被单个的进行参数配置,不需要修改代码。 5) 缓存过期:你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不能满足需要时)。2. Memcachedmemcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。Memcached是以Key/Value的形式单个对象缓存。3. 自主开发的内存数据缓存服务在Web应用中对于热点的功能,考虑使用完全装载到内存,保证绝对的响应速度,对于需要频繁访问的热点数据,采用集中缓存(多个可以采用负载均衡),减轻数据库的压力,比如:很多配置信息,操作员信息等等。2.2.6 开发工具选型1. EclipseEclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发。Eclipse的本身只是一个框架平台,但是众多插件的支持使得 Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。2. Maven现在Java新架构的不断出现,例如SpringMVC,Spring,Mybatis等,项目的配置文件的增多,给开发人员带来很大麻烦。在实际的开发当中,Eclipse中的项目越来越庞大,所依赖的第三方Jar包越来越多,这显得项目很臃肿,给项目管理带来了很大不便,尤其是在一些大型项目表现尤为突出。Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 3. Hudson持续集成本项目因为会有众多的客户,会有很多的版本管理,所以必须要采用持续集成的方式来进行项目集成。而Hudson 是一个可扩展的持续集成引擎。能持续、自动地构建/测试软件项目并监控一些定时执行的任务。并支持以下非常重要的特性。a. 集成RSS/E-mail/IM-通过RSS发布构建结果或当构建失败时通过e-mail实时通知。b. 生成JUnit/TestNG测试报告。c. 分布式构建支持-Hudson能够让多台计算机一起构建/测试。 4. CheckstyleCheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来。通过他能提升代码的注释,代码可读性等指标。5. Sonarsonar是一个管理代码质量的开源平台。我们将之与Hudson进行集成,以分析以下质量方面的指标。a. 架构和设计b. 代码重合度c. 单元测试d. 代码复杂度e. 潜在bugf. 编码规则g. 代码注释6. 版本管理采用Subversion作为版本控制系统,能对所有的修改与操作进行复原。2.3 其他要点2.3.1 NTCIP协议NTCIP协议是美国针对智能运输系统(ITS)电子设备间数据传输所制定的标准通讯协议,适用范围包括高速公路、交通信号、紧急事件管理、出行者信息 等。协议涵盖了从简单点对点请求/响应到复杂的面向对象技术的完整协议族。该协议是专门为智能运输系统而设计的开放、通用的数据字典和通信协议族,具有体 系完整,通用性与兼容性好等特点。但是目前国内很多硬件设备对此协议支持并不好。在软件方面的话,我们可以通过适当的设计来兼容该协议。2.3.2 计划与任务调度系统任务调度本身涉及到多线程并发、运行时间规则制定和解析、场景保持与恢复、线程池维护等诸多方面的工作。如果直接使用自定义线程这种刀耕火种的原始办法,开发任务调度程序是一项颇具挑战性的工作。Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器、任务和触发器这3个核心的概念。通过计划任务,可以定时通过通讯链路与物理设备进行数据通讯,通过的数据库数据的定期汇总整理,也可以提升查询系统的响应速度。第三章 集成方案3.1 软件方案3.1.1 系统分层架构3.1.2 适配器设计3.1.3 物理架构3.1.4 开发架构3.1.5 网络拓扑结构备注:1) 采用双防火墙双交换机做网络冗余,保障平台服务采用双千兆交换机分别接在2台防火墙上,当某台设备或者网络链路发生故障后,好设备自动接管已坏设备的工作,不影响网站的整体运行,根据业务及真实服务器的数量,交换机可以随时增加。2) 采用硬件设备负载均衡器,实现网络流量的负载均衡使用硬件设备负载均衡器,将网络流量均衡的分担到Web服务器集群各节点服务器,保障平台服务器资源均衡的使用。3) 采用代理服务器,实现软件级的网络负载均衡。4) 数据库服务器分离成生产数据库集群和查询数据库集群,实现生产读写与后台查询统计进行分离。3.2 硬件方案3.2.1 负载均衡负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。负载均衡技术发展了多年,有很多专业的服务提供商和产品可以选择,我个人接触过一些解决方法,其中有两个架构可以给大家做参考。3.2.2 双机互备模式是两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性,但对服务器的性能要求比较高。配置相对要好。3.3 系统集成质量控制3.3.1 微凯项目管理采用流行的Redmine进行项目管理。3.3.2 微凯的质量管理3.3.3 测试自动化自动化测试就是希望能够通过自动化测试工具或其他手段,按照测试工程师的预定计划进行自动的测试,目的是减轻手工测试的劳动量,从而达到提高软件质量的目的。自动化测试的目的在于发现老缺陷。而手工测试的目的在于发现新缺陷。我公司有专门的测试团队建立了适合自动化测试的测试流程、测试体系;能够通过系统自动把源代码从受控库中取出、编译、集成、发布可运行系统、进行自动化的单元测试和自动化的功能测试。自动化测试的好处1. 对新版本执行回归测试测试每个特征2. 更多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论