金融信息服务平台项目技术方案Word文档格式.docx
《金融信息服务平台项目技术方案Word文档格式.docx》由会员分享,可在线阅读,更多相关《金融信息服务平台项目技术方案Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
3.4.2PC端后台 6
3.5第三方开发 6
3.5.1微信开发 7
3.5.2支付开发 7
3.5.3资金托管开发 7
3.6安全体系 7
3.6.1数据加密机制 7
3.6.2JWT认证标准 7
3.6.3完善的日志机制 8
3.7集群方案 8
四、 工作量估算 9
五、 参与人员 26
3.1技术总监 27
3.2架构师 27
3.3开发团队 28
3.3.1项目经理(1人) 28
3.3.2前端开发工程师(4人) 29
3.3.3后台服务开发工程师(3人) 32
3.3.4UI设计工程师(2人) 35
3.3.5数据库开发工程师(2人) 36
3.3.6质量控制工程师(2人) 38
六、 经费预算 40
一、简介
本技术方案是由华夏标准信用管理有限公司设计,目的是为金担当信息服务平台提供技术上可实施的方案。
本方案从技术选型、工作量估算、参与人员和经费预算几个方面做了详细评估,是充分分析了客户需求并结合自身行业经验做出的成果。
二、系统总体架构
本系统使用三层架构和基于Web的访问界面,以便于前端业务用户的使用。
先进、可靠、稳定的架构可以有效降低系统间耦合度,使系统复杂度分割合理,保证系统可维护性与可管理性。
系统架构如下图所示:
三、技术选型
3.1开发语言
选择Java体系的最大的优势在于其庞大而完善的生态系统,其学习成本和技术风险是比较低的。
Java生态系统的完善性主要体现在一下几个方面:
l数量丰富的从业人员
l完善的第三方技术体系和社区
l功能强大的开发工具
选择Java体系能为项目的持续开发和维护提供一个平稳的成长曲线。
3.2数据库
MySQL数据库相对Oracle、SQLServer等数据库优势如下:
l免费
l多种存储引擎可灵活适应不同的业务场景
l分布式集群有成熟的方案可供实现
l能与Java很好的集成
选择MySQL不仅可以节省一大批License费用,也能为平台在初期成长时提供良好的存储支持。
3.3基础技术架构
3.3.1Spring框架
Spring框架作为轻量级IOC容器,现在已经是行业标准,其适应范围很广。
作为粘合剂,Spring框架有很多优点:
lSpringMVC
n为分层构建和管理代码提供良好支持。
n为RestFulAPI设计提供良好支持,使得构建集群系统更为容易。
lSpringAOP
n为垂直领域构建代码提供良好支持
n使代码隔离后更容易管理
lSpring声明式事务
n事务的控制更为简单
3.3.2iBatis数据访问框架
是最简单的一种持久化框架,其结构清晰,灵活配置。
相对Hibernate和ApacheOJB等“一站式”ORM解决方案而言,ibatis是一种“半自动化”的ORM实现。
其主要优点如下:
l把sql语句从Java源程序中独立出来,放在单独的文件中编写,给程序的维护带来了很大便利。
l封装了底层JDBCAPI的调用细节,并能自动将结果集转换成JavaBean对象,大大简化了Java数据库编程的重复工作。
l简单易于学习,易于使用,非常实用。
l需要程序员自己去编写sql语句,程序员可以结合数据库自身的特点灵活控制sql语句,因此能够实现比hibernate等全自动orm框架更高的查询效率,能够完成复杂查询。
3.3.3Redis缓存框架
由于使用了iBatis作为数据访问框架而没有使用Hibernate,因此选择了额Redis作为主要的缓存容器。
Redis是一个基于key-value的高速缓存系统,能支持更多复杂的数据结构,并且有持久化的功能。
并且Redis也是集群系统中的重要组件之一。
本系统使用Redis来应对高并发访问下对数据库造成巨大压力的问题。
3.4前端开发
3.4.1PC端网站
PC端网站由于需要兼顾各种访问者,而访问者使用的浏览器众多,标准不一,所以在兼容各浏览器版本上的工作量会比较大。
其中主要是HTML4、XHTML1和HTML5的兼容工作量。
由于一些比较知名的框架的新版本已经明确表示不再支持IE6-8,在JS框架使用上还是以JQuery1.11.3为主。
lJQuery1.11.3
3.4.2PC端后台
PC端后台是各个机构和平台维护者使用,可以对浏览器有较高要求,比如使用谷歌浏览器的最新版,可以完美支持HTML5的相关特性,在JS框架上可以使用JQuery2.1,EasyUI1.3.6以及各种JQuery小插件。
罗列部分主要组件如下:
lJQuery2.1.4
lEasyUI1.3.6
lBASE642.1.7
lFancybox2.1.5
lUploadify3.2.1
3.5第三方开发
3.5.1微信开发
l企业号
企业号,是微信为企业用户提供的移动应用入口,也可以连接组织与个体间相互认可且稳定的关系。
微信企业号与公众号最主要的区别是,只有限定范围内的用户才可以关注对应的企业号,使用企业号发送的信息数量几乎不受限制。
企业号开发社区比较成熟,腾讯提供了详细的开发文档,在Github上也有基于JAVA开发的SDK:
weixin-java-tools。
3.5.2支付开发
现在国内第三方支付平台众多,必须要对用户受众、第三方支付的知名度、支付接口的形式、第三方支付服务的稳定性、接口规范、费率等进行考察,在做好以上的调研分析后,结合自身的需求,才能最终确认接入哪家(或者几家)第三方支付。
不同形式的支付方式可能会形成不同的产品呈现方式。
下面提供几家我们做过的第三方支付平台。
l汇付宝
l中金支付
l宝付支付
3.5.3资金托管开发
资金托管是银监会对P2P平台做出的要求,其选择过程与选择第三方支付过程一样,本系统的资金托管方和第三方支付方都是同一个厂商,这样处理在实现上可以更为统一。
3.6安全体系
3.6.1数据加密机制
在保障信息安全各种功能特性的诸多技术中,密码技术是信息安全的核心和关键技术,通过数据加密技术,可以在一定程度上提高数据传输的安全性,保证传输数据的完整性。
我们通过下列方法来提升web安全性。
l所有敏感信息存储时全部加密,使用对称加密算法AES。
l所有敏感信息传输时全部加密,使用非对称加密算法RSA。
l所有口令只存储签名后的内容,使用数字签名算法DSA。
3.6.2JWT认证标准
认证是任何web应用中不可或缺的一部分。
JWT代表JSONWebToken,它是一种用于认证头部的token格式。
这个token帮我们实现了在两个系统之间以一种安全的方式传递信息,JWT认证方式比OAuth2认证标准实现起来更为简单也有效。
我们在以下场景使用JWT。
l单点登录
l移动端请求数据
l其它第三方请求数据
3.6.3完善的日志机制
日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug;
在运行维护阶段,日志系统又可以帮我们记录大部分的异常信息,从而帮助我们更好的完善系统。
本系统主要是使用Log4J及其扩展组件来实现日志机制,记录用户、第三方服务的每一步操作。
3.7集群方案
每个大型网站都会有不同的架构模式,而架构内容也就是在处理均衡负载,缓存,数据库,文件系统等,只是在不同的环境下,不同的条件下,架构的模型不一样,目的旨在提高网站的性能。
在本系统中,我们设计的集群架构图如下:
本架构结构清晰,在系统成长初期可以很好的在阿里云上实现这样的架构,阿里云也提供了该架构中的主要组件,在中后期脱离阿里云后可以通过的增加低成本服务器来应对业务发展需要。
四、工作量估算
工作量估算有多种方式,有的以页面数量为基础,有的以人员代码效率为基础,有的以功能为基础,我们则以数据表数量为基础,用这种方式评估工时需要建设方对需求认识比较透彻,在初期建设时能较好反应真实的结果。
其具体算法如下:
l10个字段以内的表设为1工作时。
l10个字段以上的表,每增加5个(包含5个以内)的字段,工时加0.3
l每一个分类字段按分类数量多少来计算工时
n4个以内的分类数,工时加0.5
n4个以上8个以下的分类数,工时加2
n8个以上的分类数,工时加5
l每一个外键字段工时加1
l每一个时间字段工时加0.5
l每一个排序字段工时加0.5
l多个平台展示时,每增加一个平台工时加1
l由于所有约束全由代码实现,整体工时x1.3
l基于代码迭代、质量控制的情况,整体工时x1.5
l需求变更时,增加的表的工时按以上算法,修改的表的工时则在原基础上x1.5
总工时表如下:
合计总工时约为:
1700人/天
五、拟参与人员
组织架构示意图如下:
3.1技术总监
技术总监为技术的最高负责人。
负责技术管理体系的建设和维护,制定技术,准确判断行业技术发展趋势和管理现状。
同时把控项目的长远目标和长期技术方向,根据项目的发展变化组建合适团队。
姓名
年龄
专业
计算机应用
拟担任项目职务
技术总监
最高学历
本科
毕业学校
长沙大学
从业时间
2001
工作及项目经历
时间
项目内容
所在公司
职务
教育背景
毕业院校
专业技能
自我评价
3.2架构师
系统架构师将掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的人。
确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。
他负责设计系统整体架构,考虑从需求到设计的每个细节,把握整个项目,提高项目的设计效率,使开发容易,维护方便,升级简单等。
大专
工作及项目经历
3.3开发团队
3.3.1项目经理(1人)
项目经理为具体项目工作的管理者,主要对项目进行背景调查,收集整理项目相关资料,进行需求策划,撰写项目调查报告和信息综述,对项目组成部分或模块进行完整系统设计,联系项目相关单位和相关技术专家,制定项目可行性研究报告,协同配合制定和申报立项报告材料,组织项目团队完成项目任务,保证项目的完成时间和完成质量。
3.3.2前端开发工程师(4人)
前端开发熟练掌握HTML(4,5)、CSS(2,3)、Javascript这三门语言。
其不仅在PC端能做Web页面,在移