服务化可编排的在线模板生成系统及方法与流程

文档序号:18894239发布日期:2019-10-15 22:39阅读:404来源:国知局
服务化可编排的在线模板生成系统及方法与流程

本发明涉及互联网技术领域,尤其是一种服务化可编排的在线模板生成系统及方法。



背景技术:

现有的模板引擎主要有:thymeleaf、freemarker和velocity;

thymeleaf是一个javaxml/xhtml/html5模板引擎,可以在web(基于servlet)和非web环境中工作。它更适合在基于mvc的web应用程序的视图层提供xhtml/html5,但它甚至可以在脱机环境中处理任何xml文件。

freemarker是一个基于java的模板引擎,最初专注于使用mvc软件架构生成动态网页。但是,它是一个通用的模板引擎,不依赖于servlets或http或html,因此它通常用于生成源代码,配置文件或电子邮件。

velocity是一个基于java的模板引擎。它允许任何人使用一个简单而强大的模板语言引用对象中定义的java代码。

以freemarker为例,freemarker的模板生成流程为:

1)制作模板。前端开发人员编写html静态页面代码,插入占位符(内容以${}包围,如图1中的${name})用于freemarker引擎识别,替换为业务数据;

2)数据准备。后端准备业务数据,按照约定好的格式,这里是java对象(如图1中,name:world);

3)模板渲染。将模板和数据作为输入项,传入freemarker引擎,输出替换后的真实文件(如图1中的output,${name}已经替换成world)。

现有的几种模板引擎存在如下缺点:

1、需要专业的开发人员编写代码来制作模板,所以该模板引擎无法直接面向不懂代码的终端普通用户;

2、同一个模板无法进行版本控制,模板一旦修改无法回滚,且不支持多个版本并行存在,无法解决技术更新过渡期新、旧模板需并行一段时间存在的业务需求;

3、无法根据用户需求动态的进行多个模板的编排、合并等高级操作;

4、模板引擎自身只能是html格式,无法提供不同格式的输出,如doc、pdf等。



技术实现要素:

发明目的:为克服现有技术的缺陷,本发明提出一种服务化可编排的在线模板生成系统及方法。本发明中,模板制作过程可直接面向终端用户,更加便捷,入门门槛低。直接在现有模板拷贝或手动在编辑器中制作,排版,插入书签即可,无需要求用户手写divtbfor循环等开发代码;且制作过程中能够随时预览,随时调整样式。

技术方案:为实现上述技术效果,本发明提出以下技术方案:

一种服务化可编排的在线模板生成系统,包括浏览器、业务服务器、模板引擎服务器;

业务服务器获取用户的业务请求,然后根据业务请求生成符合模板引擎服务器规定的操作指令;

模板引擎服务器根据操作指令调用预先封装好的功能模块生成用户所需的模板文件;模板引擎服务器的功能模块包括:制作模块、检索模块、生成模块、渲染模块;制作模块直接与业务服务器交互,根据操作指令生成用户所需的特定模板文件的参数,检索模块根据模板文件的参数在线配置生成模板文件,然后返回给业务服务器;生成模块通过业务服务器获取需要填入模板中的数据,并按照模板规定的格式将数据封装到模板里的键值对中,生成实际需要的文件;渲染模块将生成的文件按照用户请求的格式进行渲染。

进一步地,制作模块包括三个子功能模块,分别为模板域、模块特性、书签;三个子功能模块均根据业务服务器给出的操作指令进行调用,其中,模板域用于为不同的业务创建各自的域以实现不同业务之间的隔离;模块特性用于为模板增加特性属性;书签以键值对形式插入在模板中,由用户通过模板参数自定义,书签的键即插入模板文件内容中特殊格式的占位符;书签的值为特定格式的具体实例数据。

进一步地,还包括浏览器,业务服务器通过浏览器与客户交互,获取用户的业务请求。

本发明还提出一种基于服务化可编排的在线模板生成系统的模板生成方法,包括顺序执行的步骤(1)至(5):

(1)用户打开浏览器,向业务服务器进行业务请求;

(2)业务服务器根据业务请求去模板引擎服务器检索模板,模板引擎服务器在线配置生成所需模板并返回满足条件的模板和该模板中所引用的书签列表;

(3)根据不同场景,由用户手动输入或选择步骤(2)中返回的书签键对应的值或者由程序从数据库拉取需要的数据,组装成模板引擎服务器规定的键值对集合格式,加上模板唯一标识一并传给模板引擎服务器;

(4)模板引擎服务器接收到步骤(3)发送的数据后,进行键、值替换操作,生成文件;

(5)根据用户的业务请求对生成的文件进行渲染。

进一步的,用户向业务服务器进行业务请求时,执行以下步骤:在制作模块中创建用于数据隔离的模板域d,为模板域d配置特性f。

进一步的,当用户需要修改模板时,通过制作模块进行修改,生成新的模板快照,原模板保留在模板引擎服务器的数据库中。

进一步的,书签以key-value格式存在,其中key用于定义数据属性,包括名称、用途,value用于定义存储数据的格式,书签类型包括文本、下拉框、日期控件、表格。

进一步的,模板支持配置一个或多个特性。

进一步的,渲染格式包括html、pdf。

有益效果:与现有技术相比,本发明具有以下优势:

1)模板制作过程可直接面向终端用户,更加便捷,入门门槛低。直接在现有模板拷贝或手动在编辑器中制作,排版,插入书签即可,无需要求用户手写divtbfor循环等开发代码;且制作过程中能够随时预览,随时调整样式;

2)引入了模板域的概念,可用于不同业务进行权限认证和数据隔离,使数据更加安全;

3)通过模板特性给模板的使用场景进行多维度的分类,便于后台管理,尤其是模板数量很多的情况下;

4)支持多版本控制,每次制作的快照都会保留,方便随时回滚到指定版本,且支持多版本并行访问;如:访问1.0和2.0版本的模板时,只要参数中加个版本号即可。

5)不仅支持程序从数据库及其他数据源中拉取数据组装书签键值对,还支持用户从界面上选择、输入相关数据;且该页面支持后台配置。即页面的数据来源于模板返回的携带的书签集合;当涉及到书签数目或类型修改时,无需修改页面,管理后台修改书签属性即可动态加载;

6)支持多个子模板编排、合并成新的大模板;解决复杂业务不同团队分工协作的难题;

7)自身支持多个渲染方式,html、pdf等,由用户自定义,支持插件扩展;

8)pdf格式支持自定义水印等附加功能,标明出处,方便维权等。

附图说明

图1为现有模板生成引擎freemarker的模板生成原理图;

图2为本发明服务化可编排的在线模板生成系统的整体流程图;

图3为本发明中制作模块的工作流程图。

具体实施方式

下面结合附图和具体实施例对本发明作更进一步的说明。

本发明提出一种服务化可编排的在线模板生成系统,如图2所示,包括浏览器、业务服务器、模板引擎服务器;

浏览器提供交互窗口,业务服务器通过浏览器与用户交互,获取用户的业务请求,然后根据业务请求生成符合模板引擎服务器规定的操作指令;

模板引擎服务器根据操作指令调用预先封装好的功能模块生成用户所需的模板文件;模板引擎服务器的功能模块包括:制作模块、检索模块、生成模块、渲染模块;制作模块直接与业务服务器交互,根据操作指令生成用户所需的特定模板文件的参数,检索模块根据模板文件的参数在线配置生成模板文件,然后返回给业务服务器;生成模块通过业务服务器获取需要填入模板中的数据,并按照模板规定的格式将数据封装到模板里的键值对中,生成实际需要的文件;渲染模块将生成的文件按照用户请求的格式进行渲染。

其中,整个模板引擎服务器可分为4个功能模块,分别是制作模块、检索模块、生成模块、渲染模块;其对应功能如下:

1)制作模块。如图3所示,该模块分为模板域、模板特性、书签三个子模块,可直接面向终端的用户,通过页面编辑器直接编辑需要的模板。编辑前需要准备好三个子功能模块,其功能如下:

1.1)模板域。用于隔离各个业务及子域还可以区分同个业务不同分类。每个域会对应有上下文以及集成认证功能,防止不同业务之间篡改、越权访问。

1.2)模块特性。同一个域下,给不同模板贴的标签,用于区分模板使用场景。同一模板支持配置一个或多个特性,即只有多个特性同时满足时才能检索出模块;具有树状结构特性的父子传递性,即配置了父节点的特性b到指定模板a后,模板a将具备该父节点b及以下所有子节点特性。如:c模板的特性是:浙江省、合同模板、招标文件,则说明该模板c为浙江省招标文件中的使用的合同模板,其他省市的招标文件的合同无法使用到该模板。该子功能模块定义特性,服务于检索模块。

1.3)书签。以key-value格式存在,先定义key的名称、用途、以及其对应的value的数据类型,包含且不限于文本、下拉框、日期控件、表格,按行扩展、按列扩展。该子功能模块服务与生成模块。

以上三个子模块完成后,排版样式、配置特性、引用书签等,即可完成模块制作,形成1.0版本,再次编辑时会保留副本,重新生成新的1.1版本,可随时回退,也可以并行访问。

2)检索模块。根据所属的模板域、配置的特性等拉取业务需要的模板。该模块分为检索条件策略、检索结果策略。

2.1)检索条件策略。检索默认模板、检索指定版本号的模板;

2.2)检索结果策略。检索出多条记录的处理策略有:

1)按时间倒序后取第一条;2)按时间顺序后取第一条;3)直接报错提示,请用户确认并修改,确保只能有一条记录可拉取;检索出0条记录时,提示用户确认并修改。

3)生成模块。根据业务方传入(用户输入或者程序获取)的业务数据,封装到模板中引入的书签key中,组装成key-value形式的json串,与2)中检索出来的模板结合,通过引擎替换书签的key为value后生成实际需要的文件。

4)渲染模块。根据生成模块中生成的实际文件,转换为业务需要的格式进行渲染,如:html页面渲染、pdf展示。

一种服务化可编排的在线模板生成系统生成模板的具体流程如图1所示:

a)用户打开浏览器,进行业务请求,包括创建用于数据隔离的模板域、模板特性集合、创建书签集合;

b)业务服务器通过配置好的特性集合去模板引擎服务器检索模板,该服务器将返回满足条件的模板和该模板中所引用的书签列表;

c)根据不同场景,由用户手动输入或选择b)中返回的书签键对应的值或者由程序从数据库等数据源拉取需要的数据,组装成引擎规定的键值对集合格式,加上模板唯一标识一并传给引擎服务器;

d)模板引擎服务器接收到c)中参数信息后,进行键、值替换操作,生成模板文件;其中如果涉及到多个模板编排、合并操作,也在此步骤中替换操作之前;需要修改时,直接修改模板,生成新的模板快照,原模板保留副本;

e)生成的文件,根据业务需要,转换为需要的格式进行渲染,默认为html,可转换为pdf格式后打印、下载。

本发明具有以下优点:

1)设计提效。本发明通过模板和书签将界面与数据、业务代码与逻辑代码进行了分离,复用了大量代码,使设计更加清晰,业务更加专注于业务逻辑即可,大大的提高了开发效率;以前一名普通的开发人员编写一个中等复杂度模板,至少需要半个工作日(4小时);而现在普通的运营人员配置模板大约只需要20分钟。为方便统计我们30分钟计算,一个模板可节省3.5个小时,提效87.5%;当模板数量大幅度增加时,该提效会更加明显;

2)使用对象范围扩大,门槛降低。模板的制作和书签的定义完全可以交付给运营人员,遇到有模板局部修改时,无需开发人员修改代码、紧急发布上线,后台配置即可;将开发人员从繁杂的重复劳作中解脱出来,有更多的时间关注业务;

3)管理提效。本发明是集中式管理,各个业务无需在重复开发,直接引入即可;集中式的管理,更有利于全平台监控、优化和管理。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1