近年来, 大宗商品现货交易作为一种新型的大宗商品交易模式, 在我国得到了迅猛发展, 中央、省、市各级地方政府及各大央企、国企、资本巨头纷纷抢占先机, 争相布局、建立各类大宗商品现货交易场所。根据统计数据表明, 截止2016年底, 全国共有各类大宗商品电子类现货交易市场1231家, 其中能源化工类电子交易市场175家。由于大宗商品现货交易具备生产资料大宗货物的战略储备、调节物价、组织生产和套期保值4大基本功能, 因此对整个国民经济的发展起到了十分重要的促进作用[1]。
浙江石油化工交易中心 (以下简称“浙油中心”) 是由物产中大集团股份有限公司 (以下简称“物产中大集团”) 与舟山市人民政府合作设立的一家石油化工类大宗商品现货交易高技术服务平台, 立足现货交易、服务实体经济, 主要从事石油制品、化工原料及产品、燃料油、润滑油等大宗商品现货交易及相关服务。浙油中心积极布局和实施“平台化、集成化、国际化、专业化”的“四化”战略, 努力成为石油化工产业的供应链管理者、产业资源整合者和交易要素配置者, 着力打造集石油化工产品交易中心、定价中心、信息中心、结算中心、金融中心、物流中心于一体的国际化石油化工大宗商品电子交易平台, 立志做中国最优秀的大宗商品交易集成服务商[2,3]。
以物产中大集团分管领导及浙油中心班子成员等为核心的高层管理团队牵头运用互联网聚合行业内产品、渠道、金融、物流、信息等各类服务资源, 组织进行了基于互联网的新型大宗商品交易模式创新, 构建了基于Spring MVC多层架构的石油化工大宗商品现货交易结算仓储一体化线上与线下相结合的服务体系[4,5]。按照软件工程项目管理规范, 带领技术团队并协同软件厂商进行了交易系统的需求调研、系统设计、程序开发、软件测试、数据准备、仿真测试及上线运行。系统在业务功能方面具有4个亮点: (1) 软件涵盖了挂牌交易、竞价交易、采购招标及中远期交易等多种交易模式, 实现了交易方式的多样化; (2) 软件实现了交易结算仓储三位一体, 并支持银商转账等多种结算模式, 确保业务流程的一体化; (3) 软件实现了多级产品分类及属性定制, 确保产品扩展的便捷化; (4) 软件实现了邮件、站内信及短信等多种信息推送机制, 确保业务处理的高效化。
系统在技术应用方面具有4个特点: (1) 系统采用了基于J2EE、Spring MVC、i BATIS的多层架构模式, 确保软件具有很强的开放性和可扩展性; (2) 系统采用了大容量分布式处理和集群技术, 确保软件具有很强的可靠性和易维护性; (3) 系统采用了高端金融交易中间件技术, 确保软件的稳定性和高效性; (4) 系统采用了CA认证、二重密码验证、数据加密、动态码、多级角色权限控制、业务复核、网络隔离等整体安全解决方案, 确保软件的安全可靠性[6,7]。
J2EE是近年来广泛运用的利用Java平台来简化诸多与企业解决方案的开发、部署和管理相关的复杂问题的体系结构, 其核心是一组以Java平台的标准版为基础的技术规范与指南, 包含了各类组件、技术层次及服务架构并具有良好的兼容性, J2EE的出现解决了传统技术存在局限性导致的内部和外部难以互通的困境。
Spring MVC框架作为Spring开源框架的7大模块之一, 具有面向切面编程和控制反转的能力, 且具有完善的Controller控制器集成架构, 用户可以通过先连接到前端控制器并由其判断用户的请求, 然后再根据需要指派给合适的控制对象来进行处理, 而不需要直接连接到所需要的资源。Spring开源框架的7大模块如图1所示。
i BATIS是软件组织Apache的一个开源项目, 一种轻量级的对象关系映射 (ORM) 框架, 其突出特点就是小巧且易于上手。它不同于传统的关系型数据库通过DML/DDL等SQL语句操作数据库表的操作方式, ORM通过面向对象方式操作关系型数据库。在Java面向对象编程语言中, 所有的操作对象都是对象, ORM的功能就是把数据库的表和Java编程语言中的对象对应起来, 把表的列和Java对象中的字段相互匹配, 在程序开发过程中通过ORM提供的查询语句操作普通的Java对象, 而非使用原始SQL语句去直接操作数据库。ORM将其提供的对普通Java对象的查询语句翻译成SQL语句来操作数据库, 从而屏蔽了不同数据库SQL语句的差别, 简化了程序开发工作, 提高了程序的可移植性。
项目开发如果采用EJB等重量级框架会带来很多技术上的困扰, 主要原因是EJB的服务组件提供了许多多余服务, 且在存在扩展方面的困难。因此, 选用Spring MVC框架和i BATIS技术的轻量级框架进行设计, 许多应用不需要采用分布式、不需要J2EE中那些重量级的技术, 开发过程中可以进行技术隔离和改造, 可以有针对性地对应用进行最常见、最简单的应用设计, 在提高系统开发效率的同时还能降低开发的复杂性, 确保系统的稳定性、健壮性及安全性方面都能得到有效的提升。
视图层承担了用户与系统进行信息交互的重任, 是Spring MVC框架系统面向操作用户最直接展示的操作界面。通过表单提交登录信息进行身份合法性验证时, 控制器Login Controller处理登录的业务逻辑是DispatchServlet通过配置文件进行调度提供, 并以Spring Ioc注入属性对后台数据库进行操作。在处理实现Spring MVC框架接口时, 控制器Login Controller以handle Requst方法同时实现了接口包含的数据处理请求。在收到分发器Dispatch Servlet分配的数据请求时, 控制器Login Controller会通过执行handle Requst来验证判断用于登录系统的用户名和密码正确与否, 从而完成系统登录处理的业务逻辑。如果用户名和密码验证通过, 视图解析器则将信息返回至Model And View对象, 通过Spring MVC框架控制器Bean配置文件beans-config.xml进行处理, 并跳转到登录系统成功的操作界面。如果验证不通过, 则跳转到登录系统失败的操作界面。相关配置文件的部分代码如下:
持久层在系统中主要承担了与数据库进行交互的重任。i BATIS的系统结构主要是根据JDBC规范建立与数据库的连接, 并通过反射打通Java对象与数据库参数交互之间相互转化关系。i BATIS的框架结构也是按照这种思想来组织类层次结构的, 其实它是一种典型的交互式框架。在本项目应用中, 系统通过web.xml中的context Config Location读取i BATIS相关的配置文件Sql Map Config.xml、ibatis_beans.xml, 其中ibatis_beans定义了系统的数据源 (datasource) 、数据源包装器 (data Source Proxy) 、spring事物管理器 (transaction Manager) 、基于bean属性名的orm映射 (named ParameterJdbc Template) 、sql Map Client模板类 (sql Map Client Template) 以及sql Map Client对象, sql Map Client引用了系统各个数据库表对象的映射文件, 通过mapping Locations属性来读入, 其中包括了登录相关的sqlmap文件。i-BATIS相关配置文件的部分代码如下:
业务层组件在Spring MVC框架中起到十分重要的作用, 提供了处理业务逻辑的服务组件。通过对业务对象建模, 可以将业务模型进行抽象, 并且封装在Model组件中。控制层组件通过接口方式向业务层组件发出所需服务的指令, 并根据其配置文件配置实例化业务层组件, 业务层将配置实例注入到控制层的组件中, 在Model组件中方便地调用DAO组件来存取数据。在业务层采用Spring MVC框架, 使得管理业务层的对象依赖更加方便, Model组件、DAO组件及事务处理、缓冲连接池等服务组件都能得到统一管理。并且, 系统中的业务校验、业务逻辑和系统事务管理得到了大大简化。同时, 在系统的应用和优化层面, 采用Spring MVC框架可使得系统具有良好的兼容性和可扩展性。以下为业务层登录服务Login Service部分代码:
Memcache是一项开源的高性能、分布式内存对象缓存技术, 是解决系统访问量大、数据库压力倍增的有效方案之一。其主要策略是用内存换磁盘读写, 通过在内存中缓存数据和对象来减少读取数据库的次数, 从而提高了系统访问的速度。部分用户信息、系统常量存储在高速缓存中, 在用户登录、高频交易的业务中提供数据服务。只有当缓存中数据过期时, 再把数据库中的数据读取到缓存中, 从而减少了I/O读写操作, 提高系统的性能。Memcache通过键值对 (keyvalue) 的Hash Map形式在内存中对任意的数据 (比如字符串、对象等) 存储, 数据可以来自数据库调用、API调用, 或者页面渲染的结果。本系统采用“数据库+缓存技术”的分布式缓存技术来优化系统性能, 能够减轻数据库压力、提高访问速度、提升系统运行效率。以下为会员添加权限时, 将权限更新至缓存服务器的代码:
考虑到整个交易系统所面向的用户群包括生产商、经销商、贸易商、终端消费企业、银行、仓储、监管、担保机构、物流配送等, 涉及的交易模式也包括挂牌、竞价、商城、撮合等多种, 交易品种也会较多, 因而系统的整体架构和数据的处理上比较复杂。为了保证整体业务流程的合理顺畅, 数据流转和处理的完整高效, 采用了如下图中所示的“四个统一”作为整体业务功能设计的关键, 即统一用户核心, 统一交易架构设计, 统一支付、结算管理, 统一数据中心。交易系统整体业务功能设计如图2所示。
按照“统一规划、分步实施”的在原则, 根据交易系统建设目标, 全力打造集资讯、交易、结算、仓储于一体、功能全面的电子交易平台, 因此, 在核心功能设计上提出了“一个支撑平台, 八大功能系统, 一个统一异构数据转换”的系统结构。其中, “一个支撑平台”指的是系统运行需要的基础支撑平台, 如短信服务、邮件服务、搜索服务、CA认证、电子签章、报表等辅助支撑模块, 为整个平台的有效运作和扩展提供了基础的服务和保证。“八大功能系统”主要是指门户网站、电子交易系统、资金账户系统、融资系统、会员系统、统一登录系统、信用评价、运维后台。“一个统一异构数据转换”是指提供统一的异构数据转换模式, 与仓储管理等系统有效对接, 整合各种协同服务流程, 整合各种服务资源, 集成各种外部配套服务系统, 形成有效的一站式服务体系。交易系统核心功能设计如图3所示。
在网络与信息安全、冗余、灾备等基础设施方面, 结合交易业务的实际需求, 交易系统采用双活集群部署, 对于关键数据通过Oracle数据库的RAC技术进行了双机热备, 以保证交易系统的高可用性。集群中两节点同时运行各自的应用, 并且能实时相互监控对方的运行情况, 当集群应用中的一台主机宕机后, 预先设定好的另一台主机可立即接管它的一切工作, 确保前台的交易业务不间断进行。这种设计方案可以最大程度地利用硬件资源, 一般要求各节点具有相等或相似的处理能力, 所有的服务在故障转移后均保持可用, 确保交易系统安全、稳定、高效运行。交易系统网络与信息安全设计如图4所示。
分为3个阶段:
(1) 完成需求调研和核心功能的开发, 包括门户网站、电子交易系统、资金账户系统、融资系统、会员系统、统一登录系统、信用评价、运维后台等功能以及外部接口的开发并进行测试, 平台1.0版本上线试运行, 并在选择部分石油化工类产品进行挂牌交易。计划完成时间为2017年1月, 目前已经完成。
(2) 深入会员企业开展调研、考察与交流, 根据会员企业的反馈与需求, 与油品仓储、物流企业进行战略合作, 优化相应的软件功能模块并创新交易模式、拓展交易品种, 软件版本进行升级, 推进系统数据的本地、同城、异地3个阶段的冷、热备份处理, 进一步提高交易系统的安全性。计划完成时间为2017年7月, 目前正在进行之中。
(3) 加大线下现货会员向线上交易的转化力度, 引导、调动并激发会员企业的线上交易热情, 在2016年底已有现货会员228家、现货贸易额达到139.73亿元的基础上, 争取在2017年达到线上线下500家会员企业的规模, 线上线下交易额达到300亿元以上, 并适时导入包括金融、仓储、物流在内的供应链管理集成服务, 不断优化、更新平台软件版本, 目前正在进行之中。
项目进度表如图5所示。
浙油中心从成立之日起就坚持“专业、诚信、公平、共赢”的经营宗旨, 以服务实体经济为己任, 以为客户创造价值为目标, 在充分借鉴国内外大宗商品电子经验的同时, 采用新颖的技术开发、交易管理理念, 积极打造“互联网+交易”新型商业模式, 协同国内知名软件厂商开发了石油化工现货交易细分领域内的专业化、全面化、系统化的交易系统软件, 全面满足石油化工大宗商品现货交易的需求, 对于提升浙油中心交易平台的核心竞争力、促进国内外石油化工大宗商品现货交易商业模式创新等都具有十分重要的意义。
上一篇: 基于重心法的城市冷链仓配中心选址分析
下一篇: 卷烟物流中心密集储分一体化仓储系统的应用