内蒙古科技大学本科生课程论文
图4.6 业务处理模块总体结构框图
- 30 -
内蒙古科技大学本科生课程论文
(1)线程池性能分析
假设系统平台为每一条消息请求来创建一个线程来做处理,这样的话就会增加对单个任务处理的时间。多线程技术主要用来解决处理器单元内多数量线程执行效率的问题,多线程技术可以明显的降低处理器单元中的空闲时间,提高处理器单元的吞吐性能。假设:
T是一台服务器完成一个任务所需要的时间 T1为线程创建时间 T2为线程执行时间 T3为线程销毁时间
显然T=T1+T2+T3。注意这里是一个极简化的假设。则我们不能忽视T1和T3所带来的开销,当这个占用服务器的开销上升到一定比例时,则就会严重影响到服务器的性能问题。因此,我们要提高服务器的性能,就应该考虑通过降低T1,T3所占用的时间,从而在总体上减少T的时间。通过线程池技术我们可以有效降低T1和T3时间开销提升服务器系统程序的性能。线程池技术把T1和T3分别安排在服务器的一些闲置时间段或者程序启动和结束的时候。这样一来的话,在服务器系统程序处理用户请求的时候,就不会产生T1,T3的开销。
(2)线程池实现机制
我们在这个模块采取的固定尺寸线程池的实现机制,也就是服务器的主线程在启动的时候一并创建一定量的工作线程放置在线程池中。当客户请求消息过来之后,如果存在闲置的线程,则查找一个空闲的线程,该线程就处理客户端请求,处理完成之后,服务子线程会自动挂起再等待下一次主线程的唤醒。在这个模块采取线程池技术处理以后,能够减去客户请求到达之后创建新线程的时间开销,提高服务器的响应速度,在这同时还能够预防客户请求过多而引起的服务器的崩溃。 4.4.3 系统日志模块
支付平台核心业务模块的重要组成部分之一是日志记录模块,尤其是对于用户在线交易,系统日志模块的具有十分重要的地位。支付平台中的异常处理和安全性都依赖于系统运行日志的功能来帮助履行它们的职责。支付平台程序中的日志记录主要用于三个目的:跟踪系统运行的轨迹,作为后续的审计依据;监视程序代码中变量的变化情况,定期的记录到日志文件中提供给其他应用程序进行统计分析汇总
- 31 -
内蒙古科技大学本科生课程论文
工作;作为集成开发环境中的BUG调试器的作用,向日志文件或控制台输出程序代码的调试信息。实践表明日志记录是开发过程中的不可缺失的组成部分。通过系统日志模块从而不断地完善支付平台。同时在支付平台中,日志记录模块还可以用于记录消费者所进行每一笔在线交易,并且记录每一笔在线交易执行过程的情况。
在该支付平台系统日志模块,我们采用的是Apache的一个开源代码项目Log4j,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;我们通过定义日志信息输出的级别,能够更加精细地控制系统生成的日志信息。日志级别、日志输出格式以及日志文件的大小可以通过配置文件来进行灵活地配置,通过配置日志输出信息,我们可以获取想要的系统运行信息,这些都只要通过配置文件来实现,不需要修改应用程序任何的代码。Log4j由三个重要的部分构成:日志信息输出存放位置、日志信息级别,日志信息格式。日志信息的输出位置指定了日志是保存在相应的日志文件中还是输出到控制台;日志信息的级别从高到低有ERROR、WARN、INFO、DEBUG,分别用来控制日志信息的重要程度;日志信息输出格式则是控制系统运行日志信息的显示内容。
该支付平台的日志模块的配置文件信息具体如下: log4j.rootLogger=warn, A1,R log4j.logger.com.fx.kingpass=info
log4j.logger.com.fx.kingpass.web.action=info log4j.logger.com.fx.kingpass.serviceimpl=debug log4j.logger.com.fx.kingpass.ws.client=debug log4j.appender.Al=org.apache.log4j.ConsoleAppender log4j.appender.A 1.layout=org.apache.log4j.PatternLayout log4j.appender.A 1.layout.ConversionPattern=%d %p[%c]一%m %n #create one log file each day
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender log4j.appender.R.File=../orgs/kingpass.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%d %t %p[%c]一%m %n #show hibernate sql in the log file
- 32 -
内蒙古科技大学本科生课程论文
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.tool.hbm2ddl=debug
4.5 系统安全体系设计
为保证第三方支付平台的在线交易安全,构建支付平台的安全体系,从在线交易环节和节点来防范外部的威胁与侵入。在消费者安全接入支付平台、商户安全接入支付平台以及与银行的直联交易模式的三个方面保证其安全的接入,有效的防范外部威胁由这三个交易节点入侵支付平台,危害用户的个人信息以及账户安全。
图4.7 第三方支付平台安全体系结构图
为保证第三方支付平台在线交易安全,需保证支付平台三大链路的安全。一是用户的安全接入支付平台,二是商户的安全接入支付平台以及与银行的安全链路。解决了这三大链路的安全在极大程度上解决了支付平台在线支付安全隐患。
- 33 -
内蒙古科技大学本科生课程论文
4.5.1 B2B企业级安全接入安全模式设计
支付平台通过客户端安全代理模式为企业系统提供服务,在网络层和通信层分别采用了相应的安全措施。
在支付平台与企业电子商务系统实现B2B网络连接时,使用VPN技术保护网络通信安全。报文在经过VPN通路时,被IPSec协议进行了加密,在网络层保证了信息的保密传输。在实际的应用过程中,系统使用Fortinet公司的FortiGate 2000产品实现VPN连接服务,该产品集成了防火墙、VPN、病毒防御、内容过滤四大安全模块。可以再提供VPN接入的同时,多方面的保护系统安全。
图4.8 商户安全接入模块
在保证应用服务安全方面,除在链路层强化安全保障外,系统提供了一个安全接入端。此接入端位于商户办公自动化平台中,对外提供Servlet接口。当办公系统发出账户操作请求时,向该Servlet提供操作需要的参数,如账号,操作代码等等。客户端接到参数后先将参数包装为XML指令,然后通过CXF客户端包装为SOAP信封,发送至核心支付平台。在发送端和接收端,加入了安全处理得拦截器,主要是通过PKI加密模式,保障信息在链路中的保密性、端到端的安全性。
此外,平台还采用短信身份验证来进一步保证用户身份的认证。每次用户登陆,系统将给用户一个随机密码,并发送到注册用户手机上,用户可利用随机密码对系统进行安全访问。
4.5.2 银行支付网关系统安全接入模式
银行的接入网关处于支付平台的核心模块和银行系统之间,直接负责支付指令
- 34 -