面向平台MIS的远程协助平台关键技术研究
2015-12-07林仙丽孙剑峰朱顺痣
林仙丽 孙剑峰 朱顺痣
摘 要:随着“互联网+”技术的快速发展,基于Web的平台信息管理系统逐渐成为应用系统的开发主流。软件供应商不再局限于本地寻找,更多的是跨地区、甚至是跨国采购,那么一套能有效支持远程协助的开发、部署、运行管控平台就显得尤为重要。作者通过自身多年的Web应用系统开发经历和经验,设计和研发了一套面向平台MIS的远程协助平台Auto-PMIS,包括远程开发、远程部署、远程运维监控,涉及到以代码模板为核心的系统生成器、运行平台和监控平台,该平台能有效规避传统MIS开发模式的周期长、质量不易控、远程维护难等局限性,能有效的缩短平台应用系统的开发周期,提高系统开发质量和生产效率。
关键词:平台管理信息系统 系统生成器 规则引擎 远程协助
中图分类号:TP31 文献标识码:A 文章编号:1674-098X(2015)09(c)-0022-03
Research of Key Technologies of Remote Assistance Platform for Platform-MIS
Lin Xianli1 Sun Jianfeng2 Zhu Shunzhi1
(1.School of Computer & Information Engineering,Xiamen University of Technology,Xiamen Fujian,361024,China;2.Xiamen Gillion Technology Co.,Ltd,Xiamen Fujian,361008,China)
Abstract:With the rapid development of information technology such as “Internet +”,the platform information management system based on Web is becoming the mainstream of J2EE application system. Software vendors are no longer limited to local providers,more is cross regional,and even cross-border procurement,then an effective platform supporting for the development,operation and management of remote assistance is particularly important.Through many years of experience,the author designs and develops a platform Auto-PMIS,which includes remote development,remote deployment,remote maintenance and monitoring.The system can effectively avoid the limitation of traditional MIS development mode,such as long cycle,weak quality control,hard to remote maintenance,and so on.Auto-PMIS can effectively shorten the development cycle and improve the quality and make the production more efficiency.
Key Words:Platform management information system;System generator;Rule engine;Remote assistance
平台经济(Platform Economics)是进入21世纪后经济发展的一种新形式。它指的是一种虚拟或真实的交易场所,平台本身并不生产产品,但它可以方便交易双方或多方的供求关系[1]。平台信息管理系统是平台经济实体的重要组成部分,是提高平台企业效率和效益的关键因素。
随着“互联网+”、“智能物联网”,大数据技术等信息技术的快速发展,基于Web方式的平台信息管理系统已经成为J2EE应用系统的主要发展趋势。但目前,平台信息管理系统的开发,仍然主要还是在采用定制或集中开发模式,通过手工编写代码进行系统开发,目前还没有一种高效、快速的方法來开发这种平台信息管理系统。当前主要采用的模式是:在充分掌握J2EE框架的基础上,系统开发者手工编写程序实体层,服务会话层和交互层JSP页面显示,或使用已经封装好的开发框架(如Struts+Spring+Hibernate框架)[2]。这种开发模式周期一般比较长,程序的质量主要依赖于程序员的个人能力和缜密的思考,系统的质量难以保证。
作者研究了大多数的平台管理信息系统的开发模式,分析了平台信息管理系统的特点,设计了一个通用的平台信息管理系统生成工具Auto-PMIS。该工具不仅能够自动生成实体,生成平台信息管理系统的操作界面和功能,具有查询、添加、修改、删除等功能,而且用于生成系统操作界面的模板可以远程修改,无需重新编译系统就能动态调整系统操作界面和流程,无需重新生成可执行EXE文件。平台信息系统的开发、部署、运行和监控通过Auto-PMIS这个远程协助平台就能得到真正的实现。
Auto-PMIS的应用将大大提高平台信息管理系统的开发效率,因为几乎所有的代码都是由模板生成,程序的质量可以得到更高的保证。此外,使用该工具修改系统,基本上不需要重新编译,而且通过该工具,能够实现远程部署、远程开发和远程运维,大大便利了系统开发过程,减少了开发环节,缩短开发周期,可以有效提高项目的整体效率和进度。
1 Auto-PMIS总体架构
Auto-PMIS从开发、部署、运维3个层面为平台信息管理系统提供支撑,支持平台的开发、运行和管理,其核心部分:开发平台,运行平台,运维平台,在平台信息系统软件生命周期的各个过程提供服务。
Auto-PMIS总体架构如图1所示。
1.1 开发平台
Auto-PMIS开发平台提供可视化建模、界面设计设置至项目代码自动生成一体化的解决方案,由可视化建模、界面定制、前后端分离、代码自动生成、增量生成、质量检测等几大部分构成。
可视化建模,依次是进行业务模块、实体模型和数据建模的设计和建立。
创建实体模型时,需要设置实体属性对应的特性值,例如属性名称,属性类型,中文显示,英文显示,是否唯一,是否需要验证存在性等等。另外可以通过Association对两个实体建立关联关系。
UML建模完成后,利用系统提供的“系统生成”功能,可快速生成实体类对应的Java对象、Java对象对应的service及impl、AS文件以及整个模块的国际化文件。
1.2 运行平台
Auto-PMIS的运行平台,主要包括平台基础框架与平台应用框架、企业服务总线,以及围绕着它们的各种应用,包括规则引擎、工作流、定时任务、硬件接口、企业门户、移动应用、统计报表、商业智能等等应用,提供运行时的解决方案。
运行平台的支持,是平台应用系统的重要支撑和有力支柱。企业服务总线,有序、有机的将各个子应用联系、整合在一起,统一接口,统一调度,统一服务,统一规范,大大增强了系统的规范性、灵活性和可扩展性。
1.3 运维监控平台
负责系统运行维护阶段的管理,包括实时采集运行时运行数据的监控平台、安装、部署方案等等。运维监控平台,可以很好的起到事先预防、事中监控、事后分析的重要作用。例如,可以对系统运行的各种性能数据进行实时的收集,然后通过平台提供的工具进行分析、报警,从而在第一时间知道问题和解决问题,而不是等到问题爆发后束手无策。有时候往往问题的爆发表象,并不是问题的本因,监控系统运行第一手资料的收集,能够很好的协助问题的排查和分析,从而能在尽可能短的时间内解决问题。
2 Auto-PMIS系統生成器
Auto-PMIS的总体应用架构如图2所示。
以P-FMarker实现代码配置生成,以P-Drools实现业务规则配置,通过开发平台,生成平台信息管理系统,加上P-Activiti工作流,P-Monitor运行监控,整体形成一个远程协助平台的系统架构。这样的一个系统架构,不但能实现快速开发、流程可配,而且能做到远程部署、远程运维和监控的目的。
2.1 P-FMarker代码模板
P-FMarker是以Java的FreeMarker为核心建立的一个代码生成器,是基于代码模板来生成所需要的代码文本。代码模板仓库中存放用于生成所需管理操作界面的各类代码模板[3]。
Auto-PMIS P-FMarker采用FreeMarker进行代码生成,能够做到逻辑和界面设计分离,提高灵活性,同时也支持系统修改的灵活性和扩展性,且不需要重新编译生成可执行EXE文件,做到远程运维和修改。实现页面和逻辑分离,还能解决传统逻辑和页面混合在一起,很难修改,很难重新生成问题,因为一旦重新生成,有可能导致原先定制的逻辑代码被覆盖或者被篡改。
P-FMarker通过对freemarker中的类进行二次封装,扩展了创建模板和加载模板的功能,方便代码模板的管理和应用。
2.2 P-Drools业务规则引擎
P-Drools是在Drools基础上增加了一些平台MIS所需要的特定的业务规则引擎。它将会随着业务发展而变化的业务规则从硬编码中剥离出来,以规则脚本的形式存放在单独文件中[4],使得规则的变更不需要修改代码、重编译程序、重新生成可执行EXE文件、重启机器就可以立即在生产环境上生效。
P-Drools的基本工作过程和Drools差不多,也是主要通过使用接口来实现某个业务规则的设定和实现,需要传递数据进去规则接口,在接口内进行规则的检查,再返回规则运行的结果或者规则检查的结果。
规则文件可以使用drl文件,也可以是xml文件。
通过P-FMarker代码模板和P-Drools业务规则引擎,Auto-PMIS可以很好的进行代码生成,图3是对应的结构图。
首先,梳理和整理业务规则范例,总结平台信息管理系统的典型应用操作,比如单表操作,主从表操作等等,总结对应的代码范例,在J2EE MVC架构下,可以整理成代码范例。
接下来,根据配置参数、实现设定好的FreeMarker代码模板,结合实际的业务规则,加上代码生成器和Drools规则引擎,最终生成平台信息管理系统。
这中间,将会是一个不断循环迭代、优化的过程,因为在业务过程中,业务规则可能会产生变化,同样,业务逻辑控制也可能需要不断的调整以适应新的业务调整和新的业务要求。
2.3 P-Activiti工作流
同样是基于Activiti的快速、稳定的BPMN 2.0流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员[5]。
Auto-PMIS P-Activiti的功能组件,包括用于存储、存取定义文件,部署文件和支持数据的RepositoryService,用于启动流程、查询流程、设置获取流程实例变量的RuntimeService,对用户任务和表单进行操作的TaskService,用于日常维护的ManagementService,用于管理用户的IdentityService,以及用于获取正在运行或已经完成的流程实例的信息的HistoryService和用于存取管理和控制表单的FormService。
工作流的引进和实现,大大提高了业务流程的柔性。几乎所有的平台MIS系统,都會涉及到工作流,稳定和健全的工作流引擎,能够增加工作流处理的适应性、柔韧性,有效的处理各种业务流和数据流。
3 Auto-PMIS远程部署与监控
3.1 P-Ramp运行平台
(1)平台基础框架PIA。
主要运用J2EE模型-视图-控制(MVC)结构提供系统程序代码运行的基础框架。
(2)平台应用框架PAA。
主要运用J2EE的关联技术,提供各种应用框架所需的功能,包括认证管理、日志管理、异常管理、国际化处理、事务处理等等。
(3)企业服务总线ESB。
Auto-PMIS使用ESB作为应用架构中最基本的连接中枢,采用“总线”来管理和简化不同服务之间的集成,不同服务、不同应用之间,以定义好的公用标准在消息、事件和服务级别上进行通讯,使得系统在耦合度上能够取得一个很好的平衡。
3.2 P-Monitor监控平台
随着Web应用的不断增强,针对平台项目要求越来越高,系统性能监控越来越重要,监控平台包括数据采集、数据分析、数据统计、监控预警等功能。
(1)多方位监控。
监控数据主要包括:业务处理时间、应用调用时间、垃圾回收时间、CPU、内存占用。
(2)快速定位性能问题。
综合以上信息收集,同时包括对非正常关闭、异常列表、耗时排行、数据量排行、服务执行效率排行等数据分析进行辅助定位性能瓶颈、问题原因,方便解决问题。
(3)快速跟踪预警。
对于执行时间过大与处理数据量过大的服务进行预警,自动通知管理员进行处理。监控平台能够根据管理员需要设置预警参数。
(4)性能决策。
决策者根据项目当前相关性能参数判断是否需要进行软硬件升级,以及升级方案。通过分析给出具体的建议,例如建议增加CPU、建议增加数据库空间等。这些都是运维管理决策的重要客观依据。
4 结语
该文提出了一种Web Platform MIS系统的自动生成、远程部署、远程运维的远程协助平台解决方案,介绍了解决方案的总体架构和开发平台中系统生成器的主要组成、关键实现方法,介绍了运行平台的远程部署和监控。该解决方案可减轻传统系统开发模式中的手工劳动和重复性工作,提高程序质量,缩短了平台MIS系统的开发周期,并可以有效的实现远程支持和协助。
当然,当前自动生成的Web Platform MIS系统对应的功能有一定的局限性,无法实现有复杂业务逻辑功能,这方面有待继续研究,进一步减少定制化开发的比例和提高自动化程度。
参考文献
[1] 陈威如,余卓轩.平台战略[M].北京:中信出版社,2013.
[2] 陈亚辉,缪勇.Struts2+Spring+Hibe
rnate框架技术与项目实战[M].北京:清华大学出版社,2012.
[3] http://freemarker.org
[4] Michal Bali. Drools JBoss Rules 5.0 Developers Guide [M].UK: Packt Publishing,2009.
[5] 杨恩雄.疯狂Workflow讲义——基于Activiti的工作流应用开发[M].北京:电子工业出版社,2014.