铁路站车Wi-Fi运营服务平台中运营管理系统的设计与实现
2016-02-16李潇怡蒋秋华
李潇怡,蒋秋华,谭 雪,王 斌
(1.中国铁道科学研究院,北京 100081;2.中国铁道科学研究院 电子计算技术研究所,北京 100081)
铁路站车Wi-Fi运营服务平台中运营管理系统的设计与实现
李潇怡1,蒋秋华2,谭 雪1,王 斌2
(1.中国铁道科学研究院,北京 100081;2.中国铁道科学研究院 电子计算技术研究所,北京 100081)
运营管理系统作为铁路站车Wi-Fi运营服务平台中系统业务和内容服务数据的支撑点,由运营管理人员对铁路Wi-Fi基础资产及组织机构权限进行统一的管理与维护。文章采用Spring、Hibirnate、jQuery等技术,使用B/S架构和MVC设计模式,结合Shiro身份验证框架,实现组织人员管理、权限管理、设备管理、基础数据管理以及商户投放范围管理等功能模块。介绍了运营管理系统的设计背景、设计架构以及设计优势。
Spring;MVC;Hibernate;jQuery;运营管理系统
中国铁路的庞大旅客群体必然带来巨大的互联网接入流量,铁路旅行具有空间相对封闭固定、旅客在途时间长等特点,旅途中的休闲、娱乐、购物等方面均有互联网接入的需求。根据铁路总公司的需求,开发一套完整、安全、方便、简洁、结合铁路业务特点的管理系统迫在眉睫。本运营管理系统通过维护基础数据为铁路站车Wi-Fi运营服务平台各个子系统提供数据支撑,是整个平台正确运行的重要保障。
1 铁路站车Wi-Fi运营服务平台概述
铁路站车Wi-Fi运营服务平台是铁路旅客便捷获取铁路提供的优质客运服务及其他各类延伸服务的重要平台,是铁路系统向社会展示与宣传中国铁路的重要窗口,充分利用铁路资源为广大旅客提供现代化、多元化、全行程的信息服务。铁路站车Wi-Fi运营服务平台系统总体结构如图1所示。
铁路站车Wi-Fi系统分为3个平台:列车Wi-Fi服务平台、车站Wi-Fi服务平台、铁路总公司Wi-Fi服务平台(简称:总公司Wi-Fi服务平台)。
(1)列车Wi-Fi服务平台
列车Wi-Fi服务平台通过数据同步网络从总公司Wi-Fi服务平台获取内容服务、视频服务、交易服务等相关数据,向列车旅客提供Wi-Fi接入信息服务。
(2)车站Wi-Fi服务平台
图1 铁路站车Wi-Fi运营服务平台系统总体结构
车站Wi-Fi服务平台分为客服外网和车站生产网。客服外网与安全生产网、互联网之间采用安全隔离。客服外网与车站生产网分别部署了车站Wi-Fi服务器与内容服务器。车站Wi-Fi服务平台通过数据同步网络从总公司Wi-Fi服务平台获取内容服务、视频服务、交易服务等相关数据,向列车旅客提供Wi-Fi接入信息服务。
(3)铁路总公司Wi-Fi服务平台
铁路总公司Wi-Fi服务平台是整个站车Wi-Fi系统的核心,主要负责编辑和管理站车旅客Wi-Fi信息服务数据内容,并与列车Wi-Fi服务平台和车站Wi-Fi服务平台同步。
各平台功能如图2所示。
2 运营管理系统的架构设计
2.1 SpringMVC架构
本系统采用Spring框架,其中,Spring MVC是一个构建于Spring FrameWork之上的现代应用程序框架,由3部分组成:
(1)Controller:Spring MVC将处理HTTP请求职责委托给Controller,Controller映射一个或多个URL且构建成HttpServletRequest和HttpServletResponse对象配合运行。Controller API并不试图隐藏其依赖,相反,它完全支持并暴露其功能。Controller负责处理HTTP请求,执行任何必须的任务,组成响应对象,并将控制传回到主请求处理工作流。Controller不处理视图呈现,而是关注于处理请求和响应对象,以及对服务层的委托。Controller故意设计成单例,像Servlet—样。作为单例,它们可以处理并发的请求,因此不需要在每个请求中维持状态。
(2)View:由Controller产生的响应被View类实例呈现为输出。Controller不执行任何视图呈现,也不知道所使用的视图呈现技术。Spring MVC为诸多不同的视图呈现技术提供良好的支持,这些技术包括JSP、JSTL、Velocity、Freemaker等。因为Controller完全不知道视图技术,所以要在同一个应用程序中混合和匹配呈现工具甚至同时使用多种工具都轻而易举。
(3)ModelAndView:当处理完成时,控制器负责构建对象集合,这些对象用于组成响应(模型)并选择用户接下来看到的页面(即View)。这种模型与视图的组合被封装在类中。
图2 系统功能结构图
为了让封装类便于构造和管理,本系统运用工厂模式通过对HttpServletRequest和Http-ServletResponse对象进行封装来解除控制器Controller对servlet API的过度依赖,最后通过扩展控制器Controller接口的子类AbstractController完成请求的转交。缓存处理的优化也可以通过这个封装类来进行。Spring Web MVC尽量不让控制器知道所使用的任何技术,这样有助于保持低耦合。因此,模型是任意对象的Map,而视图一般以逻辑名称来区分,之后视图名称就解析成真正的视图实例,随后出现在处理管道中。其工作原理如图3所示。
图3 Spring MVC工作流程图
系统用户发送http请求后,具体工作流程如下:
(1)用户发送请求至前端控制器,前端控制器根据请求信息(如:URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,如图3中的 1、2 步骤。
(2)页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个命令对象,并进行验证,然后将命令对象委托给业务对象进行处理。处理完毕后返回一个 ModelAndView(模型数据和逻辑视图名),如图3中的 3、4、5 步骤。
(3)前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染,如图3中的步骤 6、7。
(4)前端控制器再次收回控制权,将响应返回给用户,如图3中的步骤 8。
至此整个工作流程结束。
2.2 Shiro安全框架
本系统将Shiro安全框架作为身份认证工具,使用起来比较简单,功能足够强大,扩展性较好。它可以不跟任何的框架或者容器捆绑,独立运行在服务器上。其整体框架如图4所示。
图4 Shiro整体框架图
本系统用户登录时,Shiro认证处理过程如下:
(1)用户提交用户名密码后,应用程序创建了一个终端用户认证信息的AuthenticationToken实例,然后调用Subject.login方法。
(2)Subject的实例通常是DelegatingSubject类或其子类的实例对象,在认证开始时,会委托应用程序设置的securityManager实例调用securityManager.login(token)方法。
(3)SecurityManager接受到token信息后会委托内置的Authenticator的实例调用authenticator.authenticate(token)。
(4)默认ModularRealmAuthenticator会调用AuthenticationStrategy进行多Realm身份验证。在Realm被调用后,AuthenticationStrategy将对每一个Realm的结果作出响应,但如果应用程序中仅配置了一个Realm,Realm将被直接调用而无需再配置认证策略。
(5)Authenticator会把相应的token传入Realm,判断每一个Realm是否支持提交的token,从Realm获取身份验证信息,如果没有返回/抛出异常表示身份验证失败。如果支持,Realm将调用getAuthenticationInfo(token);getAuthenticationInfo方法就是实际认证处理。至此,本系统登陆认证处理流程结束。认证成功后跳转到系统主页面。
2.3 B/S 架构
本系统采用B/S 架构(浏览器/ 服务器模式),该模型结合客户端,将系统的核心功能集中在Web应用程序服务器上,在服务器端运行主要的程序代码,把较少的逻辑交给Web浏览器。系统按照业务应用,将架构划分为3个层次。
(1)表现层:展现给用户的界面,用来直接与用户进行交互,如数据显示,数据输入等。该层处理页面外观显示相关的工作。
(2)业务逻辑层:对数据业务逻辑的处理,一般能够提供应用程序接口上的所有功能。该层是系统架构的核心,其关注点在业务逻辑的制定、流程的实现等。
(3)数据访问层:该层直接和数据库进行交互。通常表示为数据的添加、删除、修改、查询功能操作。为了保证数据操作的原子性,应保证所有数据交互都集中于该层。
由于本系统铁路业务的特殊性,修改升级维护很频繁,所以业务变动时只要将服务器端进行升级和修改,客户端不做任何变动。
3 运营管理系统的主要功能
3.1 各模块功能介绍
运营管理系统包含组织人员管理模块、用户个人信息管理模块、权限管理模块、设备管理模块、基础数据管理模块、列车信息管理模块以及商户信息和商户投放范围管理模块。各模块功能如图5所示。
3.1.1 组织人员管理
包括部门管理和用户管理,其中,部门管理用于维护铁路局各部门的基本信息,如部门名称、部门类型、部门编码等,用户管理用于为创建好的各部门分配管理用户,并维护用户的详细信息。
3.1.2 个人信息管理
个人信息管理提供基于个人登录信息修改的功能以及用户登录密码初始化的功能。系统将用户登录密码使用MD5加密后保存至数据库中。
图5 系统功能结构图
3.1.3 权限管理
包括资源权限管理和角色权限管理两部分。资源权限管理用于维护铁路站车Wi-Fi运营服务平台的所有资源,角色管理用于维护铁路站车Wi-Fi运营服务平台中所有角色,同时角色权限管理可以为新增角色分配资源和操作权限。
3.1.4 设备管理
包括设备厂商、设备信息、设备使用信息3个子模块,其中设备厂商模块用于维护设备厂商的信息,设备信息模块用于维护全路的设备信息,设备使用信息模块用于维护设备的使用情况。
3.1.5 基础数据管理
包括类型字典、路局字典、段及运用所字典、系统参数字典。其中类型字典模块定义了本系统的所有数据类型。铁路局字典来源于12306互联网售票系统数据库,段及运用所字典的数据来源于动车所数据库,所以本系统只提供信息查询功能。系统参数字典提供基于各系统所涉及参数的增加、删除、修改和查询功能。
3.1.6 列车信息管理
包括车组配属信息、当日开行详细信息、车次、班组信息字典。其中车组配属信息、当日开行详细信息数据来源于动车所数据库,车次、班组信息来源于12306互联网售票系统数据库,所以本系统只提供对这4个模块的查询功能。
3.1.7 商户投放范围管理
包括商户投放范围管理和商户投放范围信息查询模块。其中,商户投放范围管理用于维护组织机构中所定义商户的投放范围和投放类型。商户投放范围信息查询用于查询商户的投放范围信息。
3.1.8 商户信息管理
商户信息管理模块用于维护商户的详细信息。
3.2 系统业务流程
运营管理系统业务流程图如图6所示。
图6 运营管理系统业务流程图
本系统采用Java语言,以Eclipse为开发工具,根据登陆用户获取角色和资源的主要函数如下所示:
(1)public List<Role〉getRoleByLoginName(Stri ng LoginName){}
该方法根据唯一的用户id,在用户-角色-组织机构关联表里根据用户id查找该用户对应的角色,如果是铁路总公司运营管理人员,则获取全部系统资源和数据,如果是铁路局运营管理人员,则根据各铁路局用户名获取管理员的分配的相应资源和数据。
(2)public SystemRoleResourcegetRoleResourceB yLoginName(String LoginName,List<Role〉roleList){}
该方法根据角色id循环查找角色-资源关联表中此角色对应的资源集合以及用户id查找用户-角色-组织机构关联表里对应的组织机构。
(3)public List<SystemMenu〉sysmenulist(List<SysResource〉resourceList){}
该方法根据权限资源id递归查找菜单表中该用户对应的菜单,并将菜单添加到菜单树中。
至此,用户分别得到自己的菜单和资源以及组织机构数据。
3.3 在铁路站车Wi-Fi运营服务平台的作用
铁路站车Wi-Fi运营服务平台分为平台支撑层、平台服务层和平台应用层,平台应用层又划分为列车Wi-Fi服务平台、车站Wi-Fi服务平台以及地面Wi-Fi平台3个部分。
其中,地面Wi-Fi平台为车站和列车Wi-Fi服务平台提供管理和数据支撑服务,分为以下12个子系统:用户中心、内容服务系统、客运服务系统、视频服务系统、游戏服务系统、广告管理系统、交易服务系统、电子支付前置系统、网络服务管理系统、结账清算系统、运营管理系统以及监控系统。运营管理系统通过Web service调用或者数据库同步的形式为平台应用层中各子系统提供身份认证和基本数据信息,与其他系统的数据交互如图7所示。
4 系统应用效果展示
本系统部署在铁路总公司层,将核心数据部署在客服内网服务器上,将前台展示内容部署在客服外网服务器上,内外网之间通过安全平台隔离,客服外网通过Web service调用客服内网服务,将得到的数据展示到Web端或通过接口返回给各个子系统。以铁路总公司管理员admin为例,通过谷歌浏览器访问,核心模块如图8~12所示。
图9 部门管理展示图
图10 资源管理展示图
图11 角色管理展示图
图12 用户管理展示图
5 系统设计优势
(1)该系统以Java为编程语言,它以Java虚拟机为基本平台运行,在不同的操作系统中具有可移植性。
(2)本文采用相对比较简单的 Spring-MVC完成系统开发。前台页面采用 EasyUI框架,该框架可以调用现成方法,省去很多配置前台 CSS 或 JS 的时间,从而使开发人员有更多精力去关心业务逻辑。
(3)系统设计为B/S结构,使用B/S类型的应用可以根据用户的访问量以及服务器的性能考虑实现多Web服务器架设的负载均衡技术,以避免随着用户流的增大而引发的服务器性能问题。
(4)系统使用了MVC架构,该架构不仅实现了功能的分解,而且其低耦合性能可以更好地扩展业务功能,使每一层只关注自己的任务,互不影响。
(5)系统将Shiro作为权限认证框架,较之Spring Security,Shiro 更加简单和灵活,能够非常清晰的处理认证、授权、管理会话以及密码加密。
(6)系统数据库需要保存用户密码等私密资料。在密码上,系统使用MD5加密后才保存至数据库中,这样避免了密码明文被泄漏的风险。
(7)系统在页面展现与代码结构上都以功能模块为基本单元设计,对于新功能、新模块的扩展,系统和页面实现上完全有能力驾驭。
6 结束语
本文介绍了B/S结构、MVC设计模式和Spring框架,并以铁路总公司的运营模式为需求,研究并实现了基于SpringMVC的运营管理平台,按照表示层、业务层、数据库访问层开发、组织,不仅提高了软件的开发效率,也有利于后期的扩展和维护。本系统结合铁路自身的特色,以人的主体性为导向,利用互联网把管理人员和运营人员及商户很好的结合起来,增强相互沟通,形成协同管理的模式,为铁路站车Wi-Fi运营服务平台的正确运营提供了可靠的数据依托和数据参考。
[1]曹春钰,朱小青.南通理工学院人事管理系统的设计与实现[J].信息技术与信息化, 2015(6):52-53.
[2]Craig Walls Ryan Breidenbach.Spring in Action(中文版)[M].李 磊,程 立,译.北京:人民邮电出版社,2008.
[3]PAUL Deck.Spring MVC学习指南[M].林仪明,崔 毅,译.北京:人民邮电出版社,2015.
责任编辑 陈 蓉
Operation Management System in Wi-Fi operation service platform for railway station and train
LI Xiaoyi1,JIANG Qiuhua2,TAN Xue1,WANG Bin2
( 1.China Academy of Railway Sciences,Beijing 100081,China;2.Institute of Computing Technologies,China Academy of Railway Sciences,Beijing 100081,China)
As the Operation Management System is the key point of the system service and content service data in Wi-Fi operation service platform,operation administrators should uniformly manage and maintain the basic assets and organization authority of railway Wi-Fi.This article used the technologies of Spring,Hibirnate,jQuery,applied B/S structure and MVC design pattern,combined with Shiro authentication framework,implemented the functional modules of personnel management,authority management,device management,basic data management as well as business scope management.The article mainly introduced the design background,design architecture and advantages of the Operation Management System.
Spring;MVC;Hibernate;jQuery;Operation Management System
U293.2∶TP39
A
1005-8451(2016)10-0031-07
2016-01-29
李潇怡,在读硕士研究生;蒋秋华,研究员。