软件项⽬投标技术⽅案⽬录
1. 技术服务总体要求 (1)
2. 项⽬总体架构及技术解决⽅案 (5)
2.1. 项⽬总体架构(根据实际项⽬) (5)
2.1.1. SSH框架介绍和分析 (5)
2.1.2. 基于SSH框架的Web应⽤架构分析与设计 (9)
2.2. 技术解决⽅案 (12)
3. 服务保证措施 (26)
4. 技术培训计划 (30)
4.1. 概述 (30)
4.2. 培训对象 (31)
4.2.1. 普通⽤户层 (31)
4.2.2. 系统管理员和应⽤级管理员 (31)
4.2.3. 技术⼈员培训 (31)
4.3. 培训课程 (32)
4.3.1. 应⽤系统使⽤培训 (32)
4.3.2. 系统运维技术培训 (32)
4.3.3. 项⽬管理初级(可选) (32)
4.3.4. 系统⽀撑软、硬件环境应⽤管理 (32)
4.3.
5. 系统设计与开发基础(可选) (33)
4.4. 培训组织保障 (33)
4.5. 教学⽅案 (33)
4.5.1. 实践培训 (34)
4.5.2. 集中培训 (34)
4.5.3. 研讨会 (34)
4.5.4. 远程培训 (35)
4.5.5. ⼀对⼀培训 (35)
4.6. 培训规模设定建议 (35)
4.7. 培训阶段安排 (35)
4.7.1. 系统开发阶段 (36)
4.7.2. 初验 (36)
4.7.3. 系统安装 (36)
4.7.4. 调试 (36)
4.7.
5. 试运⾏ (36)
4.7.6. 最终验收 (37)sql软件长什么样
4.8. 培训质量保障 (37)
5. 售后服务⽅案 (37)
5.1. 安装调试服务 (38)
5.2. 售后电话服务 (38)
5.3. (38)
1.技术服务总体要求
在软件开发的过程中,我们⼀向遵循软件产品的以下原则:
1、功能性:与⼀组功能及其指定的性质有关的⼀组属性,具体包括:
适合性:与规定任务能否提供⼀组功能以及这组功能的适合程度有关的软件属性
准确性:与能否得到正确或相符的结果或效果有关的软件属性
互⽤性:与同其他指定系统进⾏交互的能⼒有关的软件属性
依从性:使软件遵循有关的标准,约定,法规及类似规定的软件属性
安全性:与防⽌对程序及数据的⾮授权的故意或意外访问的能⼒有关的软件属性
2、可靠性:与在规定的⼀段时间和条件下,软件维持其性能⽔平的能⼒有关的⼀组属性,具体包括:
成熟性:与由软件故障引起失效的频度有关的软件属性
容错性:与在软件故障或违反指定接⼝的情况下,维持规定的性能⽔平的能⼒有关的软件属性
易恢复性:与在失效发⽣后,重建其性能⽔平并恢复直接受影响数据的能⼒以及为达此⽬的所需的时间和能⼒有关的软件属性
3、易⽤性:与⼀组规定或潜在的⽤户为使⽤软件所需作的努⼒和对这样的使⽤所作的评价有关的⼀组属性,具体包括:
易理解性:与⽤户为认识逻辑概念及其应⽤范围所花的努⼒有关的软件属性易学性:与⽤户为学习软件应⽤所花的努⼒有关的软件属性
易操作性:与⽤户为操作和运⾏控制所花努⼒有关的软件属性
4、效率:与在规定的条件下,软件的性能⽔平与所使⽤资源量之间关系有关的⼀组属性,具体包括:
时间特性:与软件执⾏其功能时响应和处理时间以及吞吐量有关的软件属性资源特性:与在软件执⾏其功能时所使⽤的资源数量及其使⽤时间有关的软件属性
5、可维护性:与进⾏指定的修改所需的努⼒有关的⼀组属性,具体包括:
易分析性:与为诊断缺陷或失效原因及为判定待修改的部分所需努⼒有关的软件属性
易改变性:与进⾏修改,排除错误或适应环境变化所需努⼒有关的软件属性稳定性:与修改所造成的未预料结果的风险有关的软件属性
易测试性:与确认已修改软件所需的努⼒有关的软件属性
6、可移植性:与软件可从某⼀环境转移到另⼀环境的能⼒有关的⼀组属性,具体包括:
适应性:与软件⽆需采⽤有别于为该软件准备的活动或⼿段就可能适应不同的规定环境有关的软件属性
易安装性:与在指定环境下安装软件所需努⼒有关的软件属性
遵循性:使软件遵循与可移植性有关的标准或约定的软件属性
易替换性:与软件在该软件环境中⽤来替代指定的其他软件的机会和努⼒有关的软件属性
基于以上原则,根据项⽬的不同需求,我们将会考虑采⽤B/S和C/S两种模式开发。(根据实际项⽬来)
1、B/S模式
B/S是Brower/Server的缩写,客户机上只要安装⼀个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进⾏数据交互。B/S模式较C/S模式:
C/S模式客户端需要安装专⽤的客户端软件。⾸先涉及到安装的⼯作量,其次任何⼀台电脑出问题,如病毒、硬件损坏,都需要进⾏安装或维护。特别是有很多分部的情况,不是⼯作量的问题,⽽是路程的问题。还有,系统软件升级时,每⼀台客户机需要重新安装,其维护和升级成本⾮常⾼。C/S模式对客户端的操作系统⼀般也会有限制,可能适应于Windows系列操作系统,⽽不适⽤于Linux、Unix等操作系统。
⽽B/S最⼤的优点就是可以在任何地⽅进⾏操作⽽不⽤安装任何专门的软件。只要有⼀台能上⽹的电脑就能使⽤,客户端零维护。系统的扩展⾮常容易,只要能上⽹,再由系统管理员分配⼀个⽤户名和密码,就可以使⽤了。甚⾄可以
在线申请,通过公司内部的安全认证(如CA证书)后,不需要⼈的参与,系统可以⾃动分配给⽤户⼀个账号进⼊系统,这在最⼤程度上满⾜了项⽬要求。
系统采⽤的是⽬前较流⾏的⼀种Web应⽤程序开源框架
--Struts+Spring+Hibernate(SSH)。
集成SSH框架的系统从职责上分为四层:表⽰层、业务逻辑层、数据持久层和域模块层,以帮助开发⼈员在短期内搭建结构清晰、可复⽤性好、维护⽅便的Web应⽤程序。其中使⽤Struts作为系统的整体
基础架构,负责MVC的分离,在Struts框架的模型部分,利⽤Hibernate框架对持久层提供⽀持,业务层⽤Spring⽀持。具体做法是:⽤⾯向对象的分析⽅法根据需求提出⼀些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO接⼝,并给出Hibernate的DAO实现,采⽤Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring完成业务逻辑。
系统的基本业务流程是:在表⽰层中,⾸先通过JSP页⾯实现交互界⾯,负责传送请求(Request)和接收响应(Response),然后Struts根据配置⽂件(l)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。⽽在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
采⽤上述开发模型,不仅实现了视图、控制器与模型的彻底分离,⽽且还实现了业务逻辑层与持久层的分离。这样⽆论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,⼤⼤提⾼了系统的可复⽤性。⽽且由于不同层之间耦合度⼩,有利于团队成员并⾏⼯作,⼤⼤提⾼了开发效率的同时,也保证了软件产品的质量。
2、C/S模式
C/S (Client/Server,客户机/服务器)模式⼜称C/S结构,是20世纪80年代末逐步成长起来的⼀种模式,是软件系统体系结构的⼀种。C/S 结构的关键在于功能的分布,⼀些功能放在前端机(即客户机)上执⾏,
另⼀些功能放在后端机(即服务器)上执⾏。功能的分布在于减少计算机
系统的各种瓶颈问题。C/S模式简单地讲就是基于企业内部⽹络的应⽤系统。与B/S(Browser/Server,浏览器/服务器)模式相⽐,C/S模式的应⽤系
统最⼤的好处是不依赖企业外⽹环境,即⽆论企业是否能够上⽹,都不影
响应⽤。
C/S结构服务器通常采⽤⾼性能的PC、⼯作站或⼩型机,并采⽤⼤型
数据库系统,如ORACLE、SYBASE、InfORMix或 SQL Server。客户端需要
安装专⽤的客户端软件。C/S结构的优点是能充分发挥客户端PC的处理能⼒,很多⼯作可以在客户端处理后再提交给服务器,因此对应的优点就是客户端响应速度快。
C/S架构软件的优势与劣势:
(1)应⽤服务器运⾏数据负荷较轻。最简单的C/S体系结构的数据库应⽤由两部分组成,即客户应⽤程序和数据库服务器程序。⼆者可分别称为前台程序与后台程序。运⾏数据库服务器程序的机器,也称为应⽤服务器。⼀旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应⽤程序运⾏在⽤户⾃⼰的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进⾏任何操作时,客户程序就⾃动地寻服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应⽤服务器运⾏数据负荷较轻。
(2)数据的储存管理功能较为透明。在数据库应⽤中,数据的储存管理功能,是由服务器程序和客户应⽤程序分别独⽴进⾏的,并且通常把那些不同的(不管是已知还是未知的)前台应⽤所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号可以重复、必须有客户才能建⽴定单这样的规则。所有这些,对于⼯作在前台程序上的最终⽤户,是“透明”的,他
们⽆须过问(通常也⽆法⼲涉)背后的过程,就可以完成⾃⼰的⼀切⼯作。在客户服务器架构的应⽤中,前台程序不是⾮
常“瘦⼩”,⿇烦的事情都交给了服务器和⽹络。在C/S 体系的下,数据库不能真正成为公共、专业化的仓库,它受到独⽴的专门管理。
C/S模式系统的开发:
C/S结构是建⽴在中间件产品基础之上的,要求应⽤开发者⾃⼰去处理事务管理、消息队列、数据的复制和同步、通信安全等系统级的问题。这对应⽤开
发者提出了较⾼的要求,⽽且迫使应⽤开发者投⼊很多精⼒来解决应⽤程序以外的问题。这使得应⽤程序的维护、移植和互操作变得复杂。如果客户端是在不同的操作系统上,C/S结构的软件需要开发不同版本的客户端软件。但是,与B/S 结构相
⽐,C/S技术发展历史更为“悠久”。从技术成熟度及软件设计、开发⼈员的掌握⽔平来看,C/S技术应是更成熟、更可靠的。
2.项⽬总体架构及技术解决⽅案
2.1.项⽬总体架构(根据实际项⽬)
2.1.1.SSH框架介绍和分析
⼤型企业级Web应⽤系统的开发通常要求有⼀个良好的软件架构、便于协作开发和扩展升级,⽽传统的开发模式不能很好地满⾜这些要求。
基于当前Web应⽤程序开发⾯临的问题,项⽬结合⽬前⽐较流⾏的开源框架SSH(Spring、Struts、Hi
bernate),具体讨论其基本相似性及有关基本概念,提出了⼀种开发JavaEE Web应⽤的轻量级解决⽅案,此系统架构可以在短期内搭建结构清晰、可复⽤性好、可扩展性好、维护⽅便的Web应⽤程序。
1、框架技术
框架⼀般具有即插即⽤的可重⽤性、成熟的稳定性以及良好的团队协作性。JavaEE复杂的多层结构决定了⼤型的JavaEE项⽬需要运⽤框架和设计模式来控制软件质量。⽬前,市场上出现了⼀些商业的、开源的基于JavaEE的应⽤框架,其中主流的框架技术有:基于MVC模式的Struts框架、基于IoC模式的Spring 框架以及对象/关系映射框架Hibernate等。
2、框架共同点
所有现代的⽹络开发框架⼏乎都遵循了模型-视图-控制(MVC)设计模式:商业逻辑和描述被分开,由⼀个逻辑流控制器来协调来⾃客户端的请求和服务器上将采取的⾏动。这条途径成为了⽹络开发的事实上的标准。每个框架的内在的机制当然是不同的,但是开发者们使⽤来设计和实现他们的Web应⽤软件的API 是很类似的。差别还存在于每个框架提供的扩展⽅⾯,例如标签库,JavaBean包装器等。
所有的框架使⽤不同的技术来协调在Web应⽤程序之内的导航,例如XML配制⽂件,java属性⽂件或定制属性。所有的框架在控制器模块实现的⽅法⽅⾯也存在明显的不同。例如,EJB可能实例化在每个
请求中需要的类或使⽤Java反射动态地调⽤⼀个适当的⾏为(Action)类。另外,不同框架在各⾃引⼊的概念上也有所不同。例如,⼀个框架可能定义⽤户请求和反应场所,⽽另外⼀个框架可能仅仅定义⼀个完整的流:从⼀个请求到多个响答和随后的再请求。
各种Java框架在它们组织数据流的⽅法⽅⾯是很类似的。在请求发出后,在应⽤程序服务器上产⽣⼀些⾏动;⽽作为响应,⼀些可能包含对象集的数据总是被发送到WEB层。然后从那些对象:可能是有setter和getter⽅法的简单类、JAVABEANS、值对象、或者⼀些集合对象中提取数据。现代的Java框架还想⽅设法简化开发者的开发任务,如通过使⽤简易的API、数据库连接池、甚⾄数据库调⽤包等提供⾃动化的追踪⽅式来实现。⼀些框架或者能够钩进(hooked into)另外的JavaEE技术中,例如JMS(Java消息服务)或JMX,或把这些技术集成到⼀起。服务器数据持续性和⽇志也有可能成为框架的⼀部分。
3、MVC模式
MVC模式是⼀个⽤于将⽤户界⾯逻辑与业务逻辑分离开来的基础设计模式,它将数据处理、界⾯以及⽤户的⾏为控制分为:Model(模型)-View(视图)-Controller(控制器)。
Model:负责当前应⽤的数据获取与变更及相关的业务逻辑。可⽤JAVABEAN 来体现;
View:负责显⽰信息。可以使⽤JSP、VELOCITY模板等技术;
Controller:负责收集转化⽤户的输⼊。常⽤⼀个SERVLET来实现;
View和Controller都依赖于Model,但是Model既不依赖于View,也不依赖于Controller,这是分离的主要优点之⼀,这样Model可以单独的建⽴和测
试以便于代码复⽤,View和Controller只需要Model提供数据,它们不会知道、也不会关⼼数据是存储在SQL Server还是
Oracle数据库中或者别的什么地⽅。
4、WEB层框架Struts
Struts是⼀个在JSP Model2基础上实现的MVC框架,其主要的设计理念是通过控制器将表现逻辑和业务逻辑解耦,以提⾼系统的可维护性、可扩展性及可重⽤性。Struts框架的体系结构如下图所⽰:
下⾯就上图所⽰的体系结构图分析Struts框架中的MVC组件。
视图(view):视图部分主要由JSP页⾯组成,其中没有流程逻辑、业务逻辑和模型信息,只有标记。Struts⾃⾝包含了⼀组标记库(TagLib),这也是Struts的精华之⼀,灵活运⽤它们可以简化JSP页⾯的代码,提⾼开发效率。
控制器(controller):Struts中的Controller主要是其⾃⾝提供的ActionServlet。ActionServlet接收所有来⾃客户端的请求并根据配置⽂件(l)中的定义将控制转移到适当的Action对象。
模型(model):Struts没有定义具体Model层的实现,Model层通常是和业务逻辑紧密相关的,有持续化的要求。⽬前在商业领域和开源世界,都有⼀些优秀的⼯具可以为Model层的开发提供便利。
5、业务逻辑层框架Spring
Spring是⼀个解决了许多JavaEE开发中常见问题并能够替代EJB技术的强⼤的轻量级框架。这⾥所说的轻量级指的是Spring 框架本⾝,⽽不是指Spring 只能⽤于轻量级的应⽤开发。Spring的轻盈体现在其框架本⾝的基础结构以及对其他应⽤⼯具的⽀持和装配能⼒。与EJB这种庞然⼤物相⽐,Spring可使程序研发⼈员把各个技术层次之间的风险降低。
Spring框架的核⼼是控制翻转IoC(Inversion of Control)/依赖注⼊
DI(Dependence Injection)机制。IoC是指由容器中控制组件之间的关系(这⾥,容器是指为组件提供
特定服务和技术⽀持的⼀个标准化的运⾏时的环境)⽽⾮传统实现中由程序代码直接操控,这种将控制权由程序代码到外部容器的转移,称为“翻转”。DI是对IoC更形象的解释,即由容器在运⾏期间动态地将依赖关系(如构造参数、构造对象或接⼝)注⼊到组件之中。Spring采⽤设值注⼊(使⽤Setter⽅法实现依赖)和构造⼦注⼊(在构造⽅法中实现依赖)的机制,通过配置⽂件管理组建的协作对象,创建可以构造组件的IoC容器。这样,不需要编写⼯⼚模式、单例模式或者其他构造的⽅法,就可以通过容器直接获取所需的业务组件。Spring框架的结构如下图所⽰。
Spring框架由七个定义明确的模块组成,且每个模块或组件都可以单独存在,或者与其他⼀个或多个模块联合实现。Spring Core Container是⼀个⽤来管理业务组件的IoC容器,是Spring应⽤的核⼼;Spring DAO和Spring ORM 不仅提供数据访问的抽象模块,还集成了对Hibernate、JDO和iBatis等流⾏的对象关系映射框架的⽀持模块,并且提供了缓冲连接池、事务处理等重要的服务功能,保证了系统的性能和数据的完整性;Sprnig Web模块提供了Web应⽤的⼀些抽象封装,可以将Struts、Webwork等Web框架与Spring整合成为适⽤于⾃⼰的解决⽅案。
Spring框架可以成为企业级应⽤程序⼀站式的解决⽅案,同时它也是模块化的框架,允许开发⼈员⾃由地挑选适合⾃⼰应⽤的模块进⾏开发。Spring框架式是⼀个松耦合的框架,框架的部分耦合度被设计为最⼩,在各个层次上具体选⽤哪个框架取决于开发者的需要。
6、持久层框架Hibernate
O/R mapping技术是为了解决关系型数据库和⾯向对象的程序设计之间不匹配的⽭盾⽽产⽣的。Hibernate是⽬前最为流⾏的O/R mapping框架,它也是开
源软件,它在关系型数据库和Java对象之间做了⼀个⾃动映射,使得程序员可以以⾮常简单的⽅式实现对数据库的操作,它不仅负责从Java类到数据库表格(以及来⾃Java数据类型的SQL数据类型)的映射,⽽且还提供数据查询和检索能⼒,并能⼤⼤减少花在SQL和JDBC⼿⼯数据处理上的开发时间。Hibernate⼯作原理如下图所⽰:
Hibernate通过对JDBC的封装,向程序员屏蔽了底层的数据库操作,使程序员专注于OO程序的开发,有助于提⾼开发效率。程序员访问数据库所需要做的就是为持久化对象编制xml映射⽂件。
底层数据库的改变只需要简单地更改初始化配置⽂件(l 或者hibernate.properties)即可,不会对应⽤程序产⽣影响。
Hibernate有⾃⼰的⾯向对象的查询语⾔HQL,HQL功能强⼤,⽀持⽬前⼤部分主流的数据库,如Oracle、DB2、MySQL、Microsoft SQL Server等,是⽬前应⽤最⼴泛的O/R映射⼯具。Hibernate为
快速开发应⽤程序提供了底层的⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论