论文部分内容阅读
摘要:主要研究基于校园业务的手机小额支付系统的设计和实现,选择J2ME作为手机客户端应用开发环境,遵循HTTP协议实现服务器与手机客户端的交互。系统包含客户和管理两个子系统,主要提供了在线注册、充值、支付、查询、统计等功能。移动手机用户和PC浏览器用户能够并行使用本系统。文章首先分析了系统需求,主要业务流程,然后进行了用例和类图的设计,最后详细介绍了系统所采用的关键技术。
关键词:移动支付;J2ME;MVC;安全
引言
移动终端和无线通讯技术在高校校园的普及,为校园无线移动应用提供了大量的用户群。同时由于校园中存在着很多小额支付的情况,例如支付图书馆借书的超期费用、补选课程的差额费用、班费、印刷学习资料费等。这些烦琐的小额支付既增加了管理人员的开销也给学生带来了不便。因此本文考虑使用无线移动技术来解决高校的小额支付问题,以提高办事效率。
目前,在我国移动在线的手机支付业务比较多的是基于智能手机终端。在这些移动终端技术中,能处理移动支付的有J2ME、WAP、SMS或SAT技术。J2ME技术具有可移植性、网络资源消耗与服务器负载低、事务保护、安全性、容易安装等特点,在手机支付领域中占了比较大的优势。因此我们拟采用J2ME技术实现高校移动小额支付系统。
1、系统需求分析和用例设计
1.1手机小额支付相关概念和问题
手机支付也称为“移动支付”,它是在移动运营商和商业银行之间加入第三方构筑的转接平台,实现“一点接入、多家服务”的业务模式。通常基于手机的业务项目可以分为四大类:查询、缴费、消费、转账。例如,现在信息查询可以包括:股票行隋、商品防伪编码、考分查询、交通信息、天气预报等。第三方的介入,使银行和移动运营商之间在技术、业务等合作领域有了更为广阔的发展空间,它对移动电子商务的市场开拓起到了催化剂的作用。
在手机支付中一个极其重要的问题是安全问题。为此,一方面需要银行对用户的交易密码和一些敏感数据做加密处理,同时又要让业务系统独立处理业务往来,对于系统业务的访问要有安全日志等监测措施。校园小额支付系统可以作为第三方移动业务服务提供商来促进移动电子商务在高校的发展,并且在财务的结算上可以与原有校园网中的财务管理系统相结合,独立于银行的业务往来。因此它将更具有高校内部网特性,更能满足安全性的要求。
1.2系统需求分析和用例设计
本系统向普通用户(包括手机终端用户和PC浏览器终端用户)和管理员提供小额支付业务服务。整个系统分为普通用户子系统和管理员子系统。其中向普通用户提供在线注册、个人信息管理、在线充值、查询公告、在线支付、账单查询功能;向系统管理员提供包括个人信息管理、在线查询、在线生成充值卡等功能。
1.2.1服务器端主要用例
服务器端面向系统管理员,主要有以下用例:
公告管理向系统管理员提供公告的添加、查询、修改和删除功能。
交易信息管理提供交易信息的统计和查询。
免值管理提供生成充值卡功能。系统生成一定数量的充值卡,并将充值卡信息写入数据库。可以用充值卡实现学生账号的充值。并能进行充值卡和学生账户资金一致性检查和查询。管理员可以查询系统记录的所有充值记录,以便日后核对业务总量。
账号管理提供学生账号的管理、查询、挂起和注销功能。一些高校已经建立了学生的财务账号,例如:很多高校已经给学生开设了校园卡,学生有惟一的账号,校园卡可以由学生充值。否则,需要给每个学生设立一个惟一识别的财务账号,账号可以和学生证号相关联。
交易信息的合法性检查提供对交易信息的合法性管理,防止出现非法的交易事件,可以采用手工的或自动的检测和过滤机制。在本系统中目前还是采用了手工的方式。
1.2.2客户端主要用例
在客户端面向手机用户或PC浏览器用户,以下针对手机用户给出客户端的主要用例:
用户管理提供用户数据的存储和管理功能。用户通过注册,登录后可以使用各个模块的功能。同时用户也有权利将开通的账号注销掉。
在线缴费提供在线支付和转账功能。主要是实现校园各服务机构的在线小额费用收取。在线支付费用,包括支付借书超期费用、支付图书赔偿费用、支付重修费用、支付等级考试费用、支付图像采集费用、支付水费、支付电费等。金额的输入可通过购买和输入充值卡两种方式进行。转账是指账面金额在两个手机账号之间的转移。
在线查询提供各种账目的明细查询。在系统上使用支付和买卖功能或者转账功能后会产生相应的账单,用户可以查询一定时间内的账单。
在线服务向注册用户提供天气的查询,新闻通告以及投诉建议的发布和相关信息查看功能。
在线交易提供类似于有线网络的信息发布平台,系统采用手机客户端发布交易信息并同时提供买卖商品的功能。
系统存储及安全管理提供本地数据的存储管理和安全管理。
1.3主要的业务流程
在图1中,我们给出了系统的主要业务流程分析。
2、系统主要类图设计
2.1服务器端系统设计和主要类图
为实现上述的用例分析和业务流程,在服务器端主要设计了普通用户类、管理员类、支付账单类、充值卡类、充值记录类、公告类、部门类、转账账单类。类之间的关系如图2所示。
2.2基于J2ME技术的客户端支付界面的主要类图
客户端除了用户、账号、天气、商品、部门、账单、转账、在线服务、充值卡以及对应于本地存储的对象账单存储,卡号存储类外,基于J2ME的技术的手机端支付界面的主要类图如图3所示。
客户端界面包含了Form、List、TextBox、Alert类等,这些类继承Screen父类,而Screen类又实现Displayable接口。Form类中命令主要实现CommandListener接口,提供相应按钮事件。Canvas类,通过指针绘制接受用户的输入,触发keyPressed()事件相应用户请求,通过paint方法绘制需要绘制的对象。
3、关键技术
3.1基于MVC模式设计方法
本系统在设计时采用了MVC模式,如图3所示。在模型层封装了模型的状态、负责响应模型状态的查询、应用程序的功能,如卡号、账单等信息,或者保存对象的状态。当状态改变的时候通知视图改变模型状态。
控制层用来处理用户请求,负责选择响应的视图,定义事件行为,以及通知模型状态的改变或者读取模型状态。
终端支付的实现过程主要抽象为以下的一些视图,这些视图是组成视图层的核心界面类。其中主菜单界面类用以控制生成主菜单界面。进度条界面类是在程序需要到后台线程运行的时候,为用户提供的线程处理信息的界面类。在运行的时候可分为可终止任务和不可终止任务型两种级别的界面类。用户交 互界面类包括支付界面类、购买界面类、查询界面类。在每个界面提供控制器响应行为时候,需要用户输入数据。因此,上述界面类都提供了用户输入数据的界面。
3.2服务器和客户端的连接以及数据的传输
由于无线设备所能支持的网络协议非常有限,仅限于HTTP、Socket和UDP等几种协议,为了能在不同类型的手机上移植,我们尽量采用HTTP作为网络连接的首选协议。由于HTTP是一个基于文本的效率较低的协议,因此,必须仔细考虑手机和服务器端的通信内容,尽可能地提高效率。服务器通过消息常量选择处理事件请求的Servlet调用的方法。
在J2ME下API不支持对象的序列化,标准的API没有实现Serialable接口,需要设计实现对象的序列化和反序列化。对象的序列化可以把对象的状态保存在本地存储中或者通过反序列化取得对象的状态。控制器在通知模型改变某个对象的状态时,通过序列化和反序列化可以保持对象状态的一致性和连续性。在本系统的设计中我们通过serialize实现序列化,通过desefialize实现反序列化。序列化和反序列化是一个相反的过程,在实现过程中,序列化和反序列化数据必须对应。
3.3采用的安全技术
本系统的设计不涉及和银行的数据交互,只与高校内部需要小额支付的那部分财务管理关联。因此这里主要考虑校园内部和本系统自身的安全。我们将所采用的安全技术归纳为以下几点:
(1)用户的身份认证和访问控制权限
在系统服务器端,本系统设置管理员身份的认证,并实施了基于RBAC的访问控制权限。本系统进行了企业级CA的配置,对可以进行充值卡生成的管理员需要经过严格的基于X.509的身份认证。利用RBAC芝术将管理员细分为公告管理,账单管理,交易合法性管理和账号管理与充值卡管理几个不同角色。其中充值卡管理具有独立的权限,并对他的操作进行严格的日志记录和审计。
(2)数据的眷名和内容的加密传输
在MIDP1.0规范中并不提供对HTTPS支持,传输的数据的安全性通过使用第三方的一些轻量级的加密包进行。J2ME的MIDP 2.0定义了Javax.microedition.pki包,定义了在安全连接中鉴别证书信息的一些API接口,支持x509证书的PKI;它所定义的API接口可以检查如确定证书的版本号,有效期,证书类型等信息等,使交易双方可以通过证书进行身份认证。本系统采用了开源的加密包Bouncy Castle Crypto API,可以进行xml数字签名和数据加密等。关键数据例如充值卡密码,登录用密码均以加密的方式进行网络传输。充值卡设置为小额面值,密码是一个随机数。
(3)数据存储的加密和对操作曲日志审计
本系统将重要数据信息转化为MD5加密形式后在数据库中保存,防止出现数据泄露后的明文显示。譬如充值卡的密码信息都以加密的方式存储。对重要的操作,譬如管理员的操作,都记录在日志文件中,以备必要的审计和事件的跟踪。手机端的登录密码不进行缓存,并定期通过短信方式提醒更新。
4、结束语
本文设计和实现了基于J2ME技术的高校小额支付系统。该系统能够对高校学生的手机用户提供基于移动终端的查询、支付、转账、商品交易等功能。这些功能也向PC浏览器用户提供。该系统能保证在具有校园网的高校广泛使用小额支付业务。文章详细分析了该系统的需求和业务流程,并给出了系统的主要类图和关键技术的实现。该系统能提高校园中的小额支付的便捷性和灵活性,因此具有一定的实用价值,是一次移动业务在高校校园中的推广和实践。在今后的工程实践中,我们将进一步改进支付业务、加强系统的安全性。
关键词:移动支付;J2ME;MVC;安全
引言
移动终端和无线通讯技术在高校校园的普及,为校园无线移动应用提供了大量的用户群。同时由于校园中存在着很多小额支付的情况,例如支付图书馆借书的超期费用、补选课程的差额费用、班费、印刷学习资料费等。这些烦琐的小额支付既增加了管理人员的开销也给学生带来了不便。因此本文考虑使用无线移动技术来解决高校的小额支付问题,以提高办事效率。
目前,在我国移动在线的手机支付业务比较多的是基于智能手机终端。在这些移动终端技术中,能处理移动支付的有J2ME、WAP、SMS或SAT技术。J2ME技术具有可移植性、网络资源消耗与服务器负载低、事务保护、安全性、容易安装等特点,在手机支付领域中占了比较大的优势。因此我们拟采用J2ME技术实现高校移动小额支付系统。
1、系统需求分析和用例设计
1.1手机小额支付相关概念和问题
手机支付也称为“移动支付”,它是在移动运营商和商业银行之间加入第三方构筑的转接平台,实现“一点接入、多家服务”的业务模式。通常基于手机的业务项目可以分为四大类:查询、缴费、消费、转账。例如,现在信息查询可以包括:股票行隋、商品防伪编码、考分查询、交通信息、天气预报等。第三方的介入,使银行和移动运营商之间在技术、业务等合作领域有了更为广阔的发展空间,它对移动电子商务的市场开拓起到了催化剂的作用。
在手机支付中一个极其重要的问题是安全问题。为此,一方面需要银行对用户的交易密码和一些敏感数据做加密处理,同时又要让业务系统独立处理业务往来,对于系统业务的访问要有安全日志等监测措施。校园小额支付系统可以作为第三方移动业务服务提供商来促进移动电子商务在高校的发展,并且在财务的结算上可以与原有校园网中的财务管理系统相结合,独立于银行的业务往来。因此它将更具有高校内部网特性,更能满足安全性的要求。
1.2系统需求分析和用例设计
本系统向普通用户(包括手机终端用户和PC浏览器终端用户)和管理员提供小额支付业务服务。整个系统分为普通用户子系统和管理员子系统。其中向普通用户提供在线注册、个人信息管理、在线充值、查询公告、在线支付、账单查询功能;向系统管理员提供包括个人信息管理、在线查询、在线生成充值卡等功能。
1.2.1服务器端主要用例
服务器端面向系统管理员,主要有以下用例:
公告管理向系统管理员提供公告的添加、查询、修改和删除功能。
交易信息管理提供交易信息的统计和查询。
免值管理提供生成充值卡功能。系统生成一定数量的充值卡,并将充值卡信息写入数据库。可以用充值卡实现学生账号的充值。并能进行充值卡和学生账户资金一致性检查和查询。管理员可以查询系统记录的所有充值记录,以便日后核对业务总量。
账号管理提供学生账号的管理、查询、挂起和注销功能。一些高校已经建立了学生的财务账号,例如:很多高校已经给学生开设了校园卡,学生有惟一的账号,校园卡可以由学生充值。否则,需要给每个学生设立一个惟一识别的财务账号,账号可以和学生证号相关联。
交易信息的合法性检查提供对交易信息的合法性管理,防止出现非法的交易事件,可以采用手工的或自动的检测和过滤机制。在本系统中目前还是采用了手工的方式。
1.2.2客户端主要用例
在客户端面向手机用户或PC浏览器用户,以下针对手机用户给出客户端的主要用例:
用户管理提供用户数据的存储和管理功能。用户通过注册,登录后可以使用各个模块的功能。同时用户也有权利将开通的账号注销掉。
在线缴费提供在线支付和转账功能。主要是实现校园各服务机构的在线小额费用收取。在线支付费用,包括支付借书超期费用、支付图书赔偿费用、支付重修费用、支付等级考试费用、支付图像采集费用、支付水费、支付电费等。金额的输入可通过购买和输入充值卡两种方式进行。转账是指账面金额在两个手机账号之间的转移。
在线查询提供各种账目的明细查询。在系统上使用支付和买卖功能或者转账功能后会产生相应的账单,用户可以查询一定时间内的账单。
在线服务向注册用户提供天气的查询,新闻通告以及投诉建议的发布和相关信息查看功能。
在线交易提供类似于有线网络的信息发布平台,系统采用手机客户端发布交易信息并同时提供买卖商品的功能。
系统存储及安全管理提供本地数据的存储管理和安全管理。
1.3主要的业务流程
在图1中,我们给出了系统的主要业务流程分析。
2、系统主要类图设计
2.1服务器端系统设计和主要类图
为实现上述的用例分析和业务流程,在服务器端主要设计了普通用户类、管理员类、支付账单类、充值卡类、充值记录类、公告类、部门类、转账账单类。类之间的关系如图2所示。
2.2基于J2ME技术的客户端支付界面的主要类图
客户端除了用户、账号、天气、商品、部门、账单、转账、在线服务、充值卡以及对应于本地存储的对象账单存储,卡号存储类外,基于J2ME的技术的手机端支付界面的主要类图如图3所示。
客户端界面包含了Form、List、TextBox、Alert类等,这些类继承Screen父类,而Screen类又实现Displayable接口。Form类中命令主要实现CommandListener接口,提供相应按钮事件。Canvas类,通过指针绘制接受用户的输入,触发keyPressed()事件相应用户请求,通过paint方法绘制需要绘制的对象。
3、关键技术
3.1基于MVC模式设计方法
本系统在设计时采用了MVC模式,如图3所示。在模型层封装了模型的状态、负责响应模型状态的查询、应用程序的功能,如卡号、账单等信息,或者保存对象的状态。当状态改变的时候通知视图改变模型状态。
控制层用来处理用户请求,负责选择响应的视图,定义事件行为,以及通知模型状态的改变或者读取模型状态。
终端支付的实现过程主要抽象为以下的一些视图,这些视图是组成视图层的核心界面类。其中主菜单界面类用以控制生成主菜单界面。进度条界面类是在程序需要到后台线程运行的时候,为用户提供的线程处理信息的界面类。在运行的时候可分为可终止任务和不可终止任务型两种级别的界面类。用户交 互界面类包括支付界面类、购买界面类、查询界面类。在每个界面提供控制器响应行为时候,需要用户输入数据。因此,上述界面类都提供了用户输入数据的界面。
3.2服务器和客户端的连接以及数据的传输
由于无线设备所能支持的网络协议非常有限,仅限于HTTP、Socket和UDP等几种协议,为了能在不同类型的手机上移植,我们尽量采用HTTP作为网络连接的首选协议。由于HTTP是一个基于文本的效率较低的协议,因此,必须仔细考虑手机和服务器端的通信内容,尽可能地提高效率。服务器通过消息常量选择处理事件请求的Servlet调用的方法。
在J2ME下API不支持对象的序列化,标准的API没有实现Serialable接口,需要设计实现对象的序列化和反序列化。对象的序列化可以把对象的状态保存在本地存储中或者通过反序列化取得对象的状态。控制器在通知模型改变某个对象的状态时,通过序列化和反序列化可以保持对象状态的一致性和连续性。在本系统的设计中我们通过serialize实现序列化,通过desefialize实现反序列化。序列化和反序列化是一个相反的过程,在实现过程中,序列化和反序列化数据必须对应。
3.3采用的安全技术
本系统的设计不涉及和银行的数据交互,只与高校内部需要小额支付的那部分财务管理关联。因此这里主要考虑校园内部和本系统自身的安全。我们将所采用的安全技术归纳为以下几点:
(1)用户的身份认证和访问控制权限
在系统服务器端,本系统设置管理员身份的认证,并实施了基于RBAC的访问控制权限。本系统进行了企业级CA的配置,对可以进行充值卡生成的管理员需要经过严格的基于X.509的身份认证。利用RBAC芝术将管理员细分为公告管理,账单管理,交易合法性管理和账号管理与充值卡管理几个不同角色。其中充值卡管理具有独立的权限,并对他的操作进行严格的日志记录和审计。
(2)数据的眷名和内容的加密传输
在MIDP1.0规范中并不提供对HTTPS支持,传输的数据的安全性通过使用第三方的一些轻量级的加密包进行。J2ME的MIDP 2.0定义了Javax.microedition.pki包,定义了在安全连接中鉴别证书信息的一些API接口,支持x509证书的PKI;它所定义的API接口可以检查如确定证书的版本号,有效期,证书类型等信息等,使交易双方可以通过证书进行身份认证。本系统采用了开源的加密包Bouncy Castle Crypto API,可以进行xml数字签名和数据加密等。关键数据例如充值卡密码,登录用密码均以加密的方式进行网络传输。充值卡设置为小额面值,密码是一个随机数。
(3)数据存储的加密和对操作曲日志审计
本系统将重要数据信息转化为MD5加密形式后在数据库中保存,防止出现数据泄露后的明文显示。譬如充值卡的密码信息都以加密的方式存储。对重要的操作,譬如管理员的操作,都记录在日志文件中,以备必要的审计和事件的跟踪。手机端的登录密码不进行缓存,并定期通过短信方式提醒更新。
4、结束语
本文设计和实现了基于J2ME技术的高校小额支付系统。该系统能够对高校学生的手机用户提供基于移动终端的查询、支付、转账、商品交易等功能。这些功能也向PC浏览器用户提供。该系统能保证在具有校园网的高校广泛使用小额支付业务。文章详细分析了该系统的需求和业务流程,并给出了系统的主要类图和关键技术的实现。该系统能提高校园中的小额支付的便捷性和灵活性,因此具有一定的实用价值,是一次移动业务在高校校园中的推广和实践。在今后的工程实践中,我们将进一步改进支付业务、加强系统的安全性。