余久久,张继山,吴 宁,戴礼慧,刘 丽
近年来,许多高校结合本校实际情况积极组织校园二手交易活动,使学生的二手物品得到了充分利用,避免一定的浪费[1].但目前国内还没有面向高校校园成型的二手物品中、小交易网站,只有“闲鱼网”“赶集网”“全球二手网”等大型综合性二手交易平台,交易对象也不完全是本地在校大学生群体,且买卖双方佣金管理费用较高[2].
不同于普通商品,校园大学生的闲置物品大都耐用性较短,价格较低,交易周期短,也不存在快递运费等问题.所以,为了满足校园二手物品交易市场的需求,充分考虑校园大学生二手物品交易的流程与特点,使用简单而易用的二手物品交易系统更有助于校园大学生“买卖”二手物品.
基于此,本文采用软件敏捷方法中的Scrum模型,设计出一个基于Openstack 云平台的轻量级校园二手物品交易系统.系统采用J2EE的Struts−Spring−Hibernate(SSH)轻量级集成框架,遵守Internet 数据关联规则,学生卖家可以在短时间内将需要出售的二手物品信息发布至系统上,学生买家能够充分浏览网上二手物品信息,选择看中的物品并加入个人订单,完成线上交易活动.
Openstack 是NASA(美国国家航空航天局)和Rackspace 共同开发的一个云计算平台,整体逻辑结构如图1 所示.其中的计算支持组件是平台架构核心,还包括网络支持、身份认证、UI 界面、对象存储、块存储、镜像管理等.平台UI 界面为其他所有组件提供了一个可视化的Web 界面,方便用户对组件的可视化管理[2].历经不断的发展与维护,目前Openstack已成为主流的开源云平台之一.
图1 Openstack 云平台结构
软件敏捷方法是一种轻量级的软件工程项目实践方法.其以用户需求的进化为核心,采用迭代的方式完成软件开发过程.简单地说,敏捷方法就是把一个软件系统划分为多个相互联系,但也可独立运行的子系统,并分别完成开发过程,其强调快速性及适应性,而在此期间整个软件一直处于可使用(运行)状态[3].
在软件敏捷方法中的Scrum 模型(图2)针对迭代式增量软件开发过程,已被广泛运用于各类轻量级软件开发项目中,成为当前的主流的敏捷开发模型.
图2 软件敏捷方法Scrum 模型
Scrum 模型中,待开发的产品需求列表(backlog)将以若干个“用户故事”的形式予以快速提取与提炼.一个Sprint 在Scrum 模型中表示一个开发(迭代)周期,通常4 周以内.在每一个Sprint 结束后,必须要发布(产生)一个基于原软件产品基础上的、可运行的、可用的、能够实现用户价值的软件产品增量(版本)[3].从整体来看,以迭代形式完成一个软件产品的开发全过程通常会历经多个Sprint周期.
Struts−Spring−Hibernate(SSH)是一个基于J2EE 适用于中、小型Web 应用系统的轻量级三层组合框架,能较好实现网络及系统管理等功能[3].SSH 框架的优点在于具有良好的扩展性与稳定性.HTTP 通信协议在SSH 中广泛使用,能借助无线网有效实现Android 用户客户端与系统服务器之间的数据通信过程.
当用户通过Android 手机客户端对本二手物品交易系统进行实际使用(如页面浏览、数据操作等)时,手机上会以电脑Web 页面分页的形式展示数据,尽管内容正确,但页面数据尺寸显示(排列)方式不美观.
系统客户端页面采用了GirdView 自动分页技术,在数据显示方面,能较好地呈现其美观性,亦能实现Android 手机客户端多页面显示的层次性.为实现带缓存的数据分页显示,系统后台可开启SqlDataSomw 数据源的“允许缓存”属性,提高Web 应用程序扩展性及程序的运行效率,并降低开发成本[4].
系统的服务器端采用Openstack 构建私有云平台.系统在Openstack 云平台上进行数据处理,包括二手物品管理、二手物品交易、用户管理等主要功能模块,Web 服务器通过API把反馈结果返回给用户.网络架构如图3 所示.在具体配置上,选用两台电脑分别作为服务器的计算节点与控制节点.每台电脑均配置两块以太网网卡,第一块网卡设置为外部可访问的地址,第二块网卡设置为云平台各节点内部通信的地址[2].
图3 基于Openstack 云平台的系统网络架构
系统网络架构基于J2EE 设计为适用于中、小型Web 应用系统的SSH 轻量级三层组合框架.客户端使用Android 平台开发完成与服务器端的数据交互,以及自身的网络通信服务、数据库管理等[5].系统管理员将预交易的二手物品各类信息存入后台数据库,学生卖家可以发布预出售的二手物品相关信息(物品介绍、图片、价格等),学生买家登录系统可以进行查询、咨询、收藏、购买二手物品信息操作.
用户通过Android 手机打开系统后,网络基站迅速发送相关命令,并通过网关传给数据库服务器.数据库服务器解析收到的指令,通过SQL 指令在数据库中进行查找后,发送给用户[6].图4 为本系统的数据库查找过程.
图4 数据库查找过程
系统的开发过程采用图1 所示的敏捷方法Scrum 模型,整个系统全部开发时间为1 个半月左右.由于用户需求的变更,在此期间共进行3 次迭代开发,产生3 个Sprint 周期,每一个Sprint 周期持续大约2 周时间,在每一个Sprint 结束之后都能在线产生(发布)一个可测试的且运行稳定的系统版本[3].限于篇幅,仅介绍关于该二手物品交易系统在第一个Sprint 周期的开发过程.
采用图1 所示的敏捷方法Scrum 模型.因为在开发初期,由于认知的局限性,用户通常无法确定整个系统的全部功能需求,即用户对拟开发产品的功能认知度是逐步完善的.所以,在每一次Sprint 开展之前开发人员只需要充分了解本次迭代开发需要为用户实现系统(产品)哪方面的价值,用户需要做的工作是什么,本次迭代的时间、工作如何完成等[3].在每个Sprint 中,用户需求需要提炼,以“用户故事”的形式凝练出本次迭代开发需要实现的待办事项列表,把每一个待办事项再继续分解(细化)成若干个独立的、可执行的开发任务(活动),并为每一个开发任务设置(开发)优先级.
在与用户沟通后,结合本项目敏捷开发实际,摒弃了传统的需求分析过程,Scrum 开发团队把在第一个Sprint 中所需要实现的用户需求及其对应开发任务,以用户故事列表的形式制定出来[3,7].表1 为第一个Sprint 中(持续2 周时间)的用户故事列表.在本次Sprint 中,所涉及到的买家/卖家信息表、物品信息表、交易信息表、订单信息表等,因篇幅受限,这里不予列出.
表1 用户故事列表
Scrum 团队搭建基于J2EE 的SSH 三层轻量级框架,采用基于ZigBee 技术的网络架构,在第一个Sprint 迭代开发中,按照表1 所示的用户故事列表,直接进入编码阶段,面向Android客户端,使用Java 编程语言快速开发一个简单的二手物品交易系统,直接形成一个可运行的版本,及时上线发布.图5~图10 分别展示了本系统的用户注册、用户登录、二手物品发布、二手物品详情、我的订单、交易留言等主要功能界面.
图5 用户注册
图6 用户登录
图7 二手物品发布
图8 二手物品详情
图9 我的订单
图10 交易留言
本轮Sprint 迭代发布中的核心开发任务“二手物品发布”主要代码如下:
本系统采用软件敏捷方法的Scrum 模型完成开发,在1 个半月左右通过3 个Sprint 迭代周期,其V1.0 版本完成线上发布,初步实现了用户对系统的期望价值,可为校园学生通过Android 手机客户端实现二手物品交易.系统运行稳定,页面展示流畅,Android 客户端操作便捷,面向在校大学生,成功实现了1 000多件学生二手物品的线上交易活动,较好地完成预期开发任务.系统可以集成部分新功能,如信息资讯推送、个人微信绑定等,实现V2.0 版本.
智慧校园是高校信息化建设发展的必然趋势.智慧校园基础支撑平台是通过服务总线和流程引擎解决校园各种(微)应用与(微)服务,将各个业务应用程序及相关子模块的用户角色(权限)抽取出来,形成不同的业务办理流程.今后将把本系统作为本地智慧校园智慧生活微服务的一个典型应用程序,建立统一的“校园二手物品交易”微信公众号,以增强用户体验,从而更好地服务于本地智慧校园基础支撑平台建设.在后续工作中,本系统会作为一个本地校园生活应用服务程序,着眼于增强校园用户体验感层面,开发团队将为该二手物品交易系统申请统一的微信公众号.在校学生将通过“微信认证”获得自定义菜单接口,为公众号设置个性化的自定义菜单,通过移动终端平台直接使用该二手物品交易系统,提高用户体验[8−9].
本文通过敏捷方法Scrum 模型设计实现的校园二手物品交易系统,基本能够满足学生对二手物品的交易需求,学生用户注册后可以查看并发布自己想出售的个人用品,通过在线留言实现买家与卖家联系,以减少闲置物品的浪费.此外,基于当前智慧校园基础支撑平台构建的角度,本系统依托移动终端平台,亦能成为智慧校园功能体系中的校园生活智慧应用子系统,在日常生活领域为校园师生提供更好、更便捷的微应用与微服务.