CN109117152B - 服务生成系统及方法 - Google Patents
服务生成系统及方法 Download PDFInfo
- Publication number
- CN109117152B CN109117152B CN201810832055.7A CN201810832055A CN109117152B CN 109117152 B CN109117152 B CN 109117152B CN 201810832055 A CN201810832055 A CN 201810832055A CN 109117152 B CN109117152 B CN 109117152B
- Authority
- CN
- China
- Prior art keywords
- service
- metadata
- name
- node
- data source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种服务生成系统及方法。所述系统包括:元数据处理模块,用于解析接收到的服务的操作请求以获取服务的元数据;中间件模块,用于根据所述服务元数据创建树形数据节点以储存所述服务的元数据;服务生成模块,用于在监听到服务元数据变化事件时,获取所述服务变化事件对应的服务的元数据,利用获取到的服务的元数据生成服务。本公开可以将请求信息按照不同类型进行保存、配置,可以将服务元数据的处理与存储和服务的生成解耦以实现功能复用,根据上述服务生成系统,本公开可以实现服务的快速生成部署。
Description
技术领域
本公开涉及数据处理领域,尤其涉及一种服务生成系统及方法。
背景技术
随着大数据技术不断快速发展,当前多数应用软件是构建在异构数据存储之上,由此也带来了数据存储、数据安全、数据转换等一系列复杂的数据管理问题。为了方便数据使用者将更多精力投入到数据的具体使用过程,而非复杂的数据管理问题中,企业需要将数据以服务接口的形式进行暴露,并提供简单易用的数据访问方式。
发明内容
有鉴于此,本公开提出了一种服务生成系统及方法,将服务元数据的处理与存储和服务的生成解耦以实现功能复用。
根据本公开的一方面,提供了一种服务生成系统,所述系统包括:
元数据处理模块,用于解析接收到的服务的操作请求以获取服务的元数据;中间件模块,用于根据所述服务元数据创建树形数据节点以储存所述服务的元数据;服务生成模块,用于在监听到服务元数据变化事件时,获取所述服务变化事件对应的服务的元数据,利用获取到的服务的元数据生成服务。
根据本公开的另一方面,提供了一种服务生成方法,所述方法包括:
解析接收到的服务的操作请求以获取服务的元数据;
根据所述服务元数据创建树形数据节点以储存所述服务的元数据;
在监听到服务变化事件时,获取所述服务变化事件对应的服务的元数据,利用获取到的服务的元数据生成服务。
根据本公开的另一方面,提供了一种服务生成系统,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述服务生成方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述服务生成方法。
本公开通过解析接收到的服务的操作请求以获取服务的元数据,根据所述服务元数据创建树形数据节点以储存所述服务的元数据,在监听到服务变化事件时,获取所述服务变化事件对应的服务的元数据,利用获取到的服务的元数据生成服务。本公开可以将请求信息按照不同类型进行保存、配置,可以将服务元数据的处理与存储和服务生成解耦以实现功能复用,根据上述服务生成方法,本公开可以实现服务的快速生成部署。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出了根据本公开一实施方式的服务生成系统。
图2示出了根据本公开一实施方式的服务生成系统的框图。
图3示出了根据本公开一实施方式服务生成系统中树形数据节点的结构示意图。
图4示出了根据本公开一实施方式的服务生成方法的流程图。
图5示出了根据本公开一实施方式的服务生成系统的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
在大数据服务中,数据暴露为服务接口的过程称为数据服务生成,通过构建数据服务生成系统,快速发布、管理数据服务接口,不仅可以有效促进数据的共享和交换,同时也有助于企业实现面向服务(SOA,Service Oriented Architecture)的架构设计,使系统具有更好的维护性、更高的可用性、更强的伸缩性。
然而,现有技术中的数据服务生成系统具备极大的局限性,例如,现有技术中的数据服务生成系统包括:服务数据处理部分和服务生成部分,其中,服务数据处理部分用于服务数据的处理,服务生成部分用于根据服务数据生成服务,实现二者功能的模块常常具有一定的耦合关系,当数据服务生成系统因为业务需求需要更换服务架构导致服务生成部分变化时(例如从AXIS2架构更换为Spring Cloud等架构技术,其中,AXIS2是Apache提供的WebService的一种框架,Spring Cloud是一系列框架的有序集合),或者由于业务流程变化、服务个性化定制等问题造成服务数据处理部分变化时,因为耦合关系的存在,将导致变化的服务生成部分或者服务数据处理部分无法复用,从而对数据服务生成系统的灵活性造成很大影响。
且,现有以WSO2为例的服务生成技术通常将服务数据以文件的形式存储到磁盘中,然而,磁盘操作本身的性能限制会导致服务发布、更新、删除等功能响应较长,极大的影响数据服务提供的效率及服务消费者的体验。
另外,现有技术通常在分布式环境下对服务进行统一的管理具有较大局限性。
针对以上问题,本公开提出了一种服务生成方法及系统以克服以上问题,实现服务数据处理与服务生成的解耦、实现服务的快速生成、更新、删除,大大提高系统的灵活性,及实现在分布式环境下对服务进行统一的管理。
请参阅图1,图1示出了根据本公开一实施方式的服务生成系统。
如图1所示,所述系统包括元数据处理模块110、中间件模块120及服务生成模块130,其中,元数据处理模块110连接于中间件模块120,中间件模块120连接于服务生成模块130。
元数据处理模块110,用于解析接收到的服务的操作请求以获取服务的元数据。
在一种可能的实施方式中,所述服务的操作请求可以包括创建数据源、删除数据源、创建服务、更新服务、权限注册等,与所述服务的操作请求相对应的服务的元数据可以包括数据源的元数据、服务的元数据、权限信息的元数据等。
在一种可能的实施方式中,元数据处理模块110在获取所述服务的操作请求后,可以对所述请求信息进行审批,例如,元数据处理模块110可以审批所述请求信息中的数据是否合规。
中间件模块120,用于根据所述服务元数据创建树形数据节点以储存所述服务的元数据。
在一种可能的实施方式中,中间件模块120可为zookeeper,zookeeper运行在多个服务器中,多个服务器可组成分布式系统。
服务器可以通过zookeeper对所述服务元数据创建树形数据节点,以对所述服务进行存储。
服务器通过zookeeper可以实现服务信息的持久化,以便实现服务信息的重复使用、快速调用。
此时,zookeeper可以作为服务数据的配置中心对服务数据和权限信息进行保存,以实现服务的快速部署、更新和删除。
通过zookeeper,服务器可以将服务数据处理和服务生成完全解耦,当因为业务流程变化、服务个性化定制等问题造成服务数据处理部分变化时,因为实现了服务数据处理和服务生成的完全解耦,将实现服务生成部分和服务数据处理部分重复使用,从而提高数据服务生成系统的灵活性,并降低系统扩展的开发成本。
Zookeeper是Apache基金会的一个分布式、开源的分布式应用程序协调服务软件,为分布式应用提供一致性服务。
应该说明的是,尽管以zookeeper作为中间件建立属性数据节点对本公开进行了介绍,但是以上举例是示例性的,在其他实施方式中,也可以采用其他的中间件对服务进行注册,例如可以通过Doozer、Etcd、Consul,等作为配置中心,对服务进行注册。其中,Doozer是一个分布式数据存储系统,是通过Paxos算法来实现共识的强一致性系统。Etcd是一个高可用的K-V存储系统,主要应用于共享配置、服务发现等场景。consul是一个服务管理软件,支持多数据中心下分布式高可用的服务发现和配置共享。只要其能够实现服务元数据、权限数据、数据源等的存储、服务的配置即可。
服务生成模块130,用于在监听到服务元数据变化事件时,获取所述服务变化事件对应的服务的元数据,利用获取到的服务的元数据生成服务。
在一种可能的实施方式中,中间件模块120会监控所述树形数据节点的变化,当所述树形数据节点发生变化时,中间件模块120可以通过自身机制触发事件发出变化消息以表明所述树形数据节点发生变化,服务生成模块130会监听到中间件模块120的触发事件。
在一种可能的实施方式中,所述树形数据节点发生变化可以包括:所述树形数据节点的节点数目发生变化(例如创建节点或者删除节点)或所述树形数据节点的节点内容发生变化(例如更新节点中的数据)。
在一种可能的实施方式中,当服务生成模块130监听到中间件模块120的触发事件后,可以获取属性数据节点中的数据,并根据所述树形数据节点的节点数据构造服务接口,所述服务接口用于用户(例如,服务消费者)调用所述服务。应该说明的是,服务生成模块130可以获取服务对应的树形数据节点的全部数据,也可以根据需要获取树形数据节点的部分数据。
服务生成模块130可以将所述节点数据构造为数据服务信息,利用内置的AXIS2、Spring Cloud等框架中的一种,完成服务的发布。
本公开的服务生成系统通过解析接收到的服务的操作请求以获取服务的元数据,根据所述服务元数据创建树形数据节点以储存所述服务的元数据,在监听到服务变化事件时,获取所述服务变化事件对应的服务的元数据,利用获取到的服务的元数据生成服务。本公开可以将请求信息按照不同类型进行保存、配置,可以将服务元数据的处理与存储和服务生成解耦以实现功能复用,根据上述服务生成方法,本公开可以实现服务的快速生成部署。
请参阅图2,图2示出了根据本公开一实施方式的服务生成系统的框图。
如图2所示,所述系统包括元数据处理模块110、中间件模块120及服务生成模块130,其中,元数据处理模块110连接于中间件模块120,中间件模块120连接于服务生成模块130。
元数据处理模块110,用于解析接收到的服务的操作请求以获取服务的元数据。
在一种可能的实施方式中,所述元数据处理模块可以包括:预处理子模块110、服务子模块120、权限信息子模块130及数据源子模块140,服务子模块120、权限信息子模块130及数据源子模块140分别与预处理子模块110连接。
在一种可能的实施方式中,所述预处理子模块110,用于接收并解析用户操作请求以获取请求类型,当所述请求类型为创建服务或更新服务时,确定所述用户操作请求为服务的操作请求,并将所述服务的操作请求发送给所述服务子模块120。
在一种可能的实施方式中,所述预处理子模块110,还用于在所述用户操作请求的请求类型为创建数据源时,确定所述用户操作请求为数据源的操作请求,并将所述数据源的操作请求发送给所述数据源子模块140。
其中,元数据(Metadata)又称中介数据、中继数据,为描述数据的数据(dataabout data),主要是描述数据属性(property)的信息。
在一种可能的实施方式中,所述预处理子模块110,还用于在所述用户操作请求的请求类型为权限注册时,确定所述用户操作请求为权限注册请求,并将所述权限注册请求发送给所述权限信息子模块;
在一种可能的实施方式中,所述服务子模块120,用于解析所述服务的操作请求以获取服务的元数据,还用于将所述服务的元数据提供给所述中间件模块。
在一种可能的实施方式中,所述服务的元数据包括:服务名称、服务引用的数据源名称及服务操作,其中,所述服务操作包括操作名称及操作指令。
以获取所述操作指令对应的操作指令元数据。所述操作指令可为数据库操作指令,例如可以为SQL语句,在一个示例中,所述操作指令可为JDBC方式的SQL语句。
在一种可能的实施方式中,所述操作指令包括操作类型、输出结果、输入参数及操作的数据库表;所述输出结果包括输出结果名称及输出结果类型;所述输入参数包括输入参数名称、输入参数类型、输入参数匹配类型及输入参数连接类型。
其中,所述操作类型包括删除操作、更新操作、插入操作及查询操作,所述输出结果包括输出结果名称及输出结果类型,所述输出结果类型包括字符类型、数值类型、时间类型,所述输入参数包括输入参数名称、输入参数类型、输入参数匹配类型及参数连接类型,所述输入参数类型包括字符类型、数值类型、时间类型,所述输入参数匹配类型可以包括逻辑相同、相似等,参数连接类型可以包括逻辑与、逻辑或、逻辑非等。其中,输出结果和输入参数都可以包括多个,输入参数类型的取值范围可与输出结果取值类型相同,输出结果的类型可默认设置为字符串类型,输入参数类型可以默认设置为字符串类型,用户可以在请求信息中定义输入参数类型。
在一种可能的实施方式中,所述权限信息子模块,用于解析权限注册请求以获取权限信息,还用于将所述权限信息提供给所述中间件模块。
其中,所述权限信息可以包括:权限注册信息及用户名,所述权限注册信息包括服务名称及字段名称。
其中,所述字段名用于匹配服务输出结果,当所述权限信息中包括服务名称和字段名称时,所述服务可以输出与所述字段名称相同的输出结果,所述字段名称用于对用户的权限输出权限进行限定。其中用户名为用户的唯一标识,可以是具有唯一性的用户名。
在一种可能的实施方式中,所述数据源子模块140用于解析所述数据源的操作请求,以获取数据源的元数据,还用于将所述数据源的元数据提供给所述中间件模块。
在一种可能的实施方式中,所述数据源的元数据包括:数据源名称、数据源连接信息、数据源类型驱动名称、用户名及密码。
其中,数据源连接信息包括数据源的IP地址、端口号以及数据库名等;数据源驱动类型名称可与数据源名称对应,所述数据源驱动名称为一固定值,用于标识数据源;用户名为连接该数据源的用户名,密码可为与该用户名对应的密码。
中间件模块120,用于根据所述服务元数据创建树形数据节点以储存所述服务的元数据。
在一种可能的实施方式中,所述中间件模块包括服务元数据配置子模块210及数据源元数据配置子模块220。
在一种可能的实施方式中,服务元数据配置子模块210,在所述请求类型为创建数据服务时,用于针对所述服务的元数据创建树形数据节点,包括:
创建服务根节点,将所述服务名称作为所述服务根节点的值;
将所述服务引用的数据源名称和所述服务操作作为所述服务根节点的子节点;
将所述操作名称作为服务操作子节点的值,将所述操作类型、输出结果、输入参数和所述操作的数据库表作为所述服务操作子节点的子节点;
将所述输出结果名称作为输出结果子节点的值,将输出结果类型作为输出结果子节点的子节点;
将所述输入参数名称作为输入参数子节点的值,将所述输入参数类型、输入参数匹配类型及输入参数连接类型作为输入参数子节点的子节点。
在一种可能的实施方式中,所述服务元数据配置子模块210,还用于在所述请求类型为更新服务时,根据所述数据服务元数据确定待更新的数据,并对所述树形数据节点进行更新,其中,所述更新服务包括更新所述服务的树形数据节点中的数据或者删除所述树形数据节点中的节点。
在一种可能的实施方式中,所述服务元数据配置子模块210,还用于针对所述权限信息创建对应的数据节点,包括:
根据所述权限信息中的服务名称,在对应的树形数据节点中,创建权限节点,将所述权限节点作为所述输出结果子节点的子节点;将所述字段名作为所述权限节点的子节点。
在一种可能的实施方式中,数据源元数据配置子模块220,用于针对所述数据源的元数据创建树形数据节点,包括:
创建数据源根节点,将所述数据源名称作为所述数据源根节点的值;
将所述数据源连接信息、数据源类型驱动名称、用户名及密码作为所述数据源根节点的子节点。
服务生成模块130,用于在监听到服务元数据变化事件时,获取所述服务变化事件对应的服务的元数据,利用获取到的服务的元数据生成服务。在一种可能的实施方式中,服务生成模块130可以利用所述节点数据构造数据库操作指令(例如SQL指令)以生成服务生成框架(例如,AXIS2或Spring Cloud)需要的服务信息,服务发布框架利用生成的服务信息、数据源生成(发布)服务接口,使得服务消费者可以通过所述服务接口获取数据源及服务中的数据,所述的服务接口可为执行在服务器中的基于JDBC的SQL指令,服务消费者可以通过所述服务接口获取所述服务。
在一种可能的实施方式中,所述服务生成模块130还用于:
接收服务消费者的服务访问请求,所述服务访问请求包括服务名称、所述服务消费者的用户名、与所述用户标识对应的密码;
根据所述服务访问请求输出数据,所述数据为所述服务名称下所述用户的权限输出字段对应的信息。
在本实施方式中所述服务访问请求还可以包括输入参数。
在本实施方式中,所述服务调用子模块310,还用于根据所述服务访问请求输出数据,所述数据为所述用户的权限输出字段对应的信息。
当服务生成模块130获取所述服务访问请求后,根据服务消费者的用户名及密码确认其身份信息,当所述服务消费者的身份信息验证通过后,服务调用子模块310从中间件模块20中获取服务中(与服务名称对应)该服务消费者对应的权限字段,根据获取的权限字段获取中间件模块20中其他节点的数据(例如数据源)。
服务生成模块130可以根据从中间件模块20获取的数据构造SQL指令,并执行该SQL指令以向服务消费者输出数据。
当服务消费者调用服务时,可以验证服务消费者的身份及权限信息,检查服务消费者是否具有输出结果的权限,根据不同的权限生成不同的执行语句,根据生成的执行语句完成服务的调用。
下面将以中间件模块120生成所述树形服务节点作为实例对本公开进行举例说明,应该明白的是,以下描述仅为示例性的,并不用于限制本公开。
请一并参阅图1-图3。
图3示出了根据本公开一实施方式服务生成系统中树形数据节点的结构示意图。
中间件模块120的元数据根节点1可以包括子节点数据源根节点2,数据源根节点2可以包括数据源3、数据源4、数据源5等多个子节点。以数据源节点3为例,在解析出操作请求包括创建信息源时,中间件模块120可以在数据源根节点2下创建数据源节点3,数据源节点3可以包括多个子节点。中间件模块120可以将解析出的信息源元数据中的信息源名称作为信息源节点3的值。此外,中间件模块120可以将信息源元数据中的数据源连接信息(例如可以为数据源地址)、数据源类型驱动名称、用户名及密码作为数据源节点3的数据源连接信息子节点6、数据源类型驱动名称子节点7、用户名子节点8及密码子节点9。
中间件模块120可以通过根节点1创建服务根节点a,服务根节点a可以包括多个服务子节点,例如服务子节点b、服务子节点c、服务子节点d及其他。下面以服务子节点c为例进行说明。在解析出所述操作请求包括创建服务后,中间件模块120可以将解析出的服务元数据中的服务名称作为服务子节点c的值;可以将所述服务引用的数据源名称、所述服务操作分别作为所述服务子节点c的数据源名称子节点e、服务操作子节点g。服务操作子节点g可以包括子节点h、子节点i、子节点j等多个子节点,分别对应所述服务的不同操作。以服务操作子节点g的子节点h为例,中间件模块120可以将所述操作名称作为服务操作子节点g的子节点h的值;可以将所述操作类型(可以包括选择、删除、插入、更新等操作类型)、操作的数据库表、输出结果、输入参数作为所述服务操作子节点g的子节点h的操作类型子节点k1、操作的数据库表子节点k、输出结果子节点l、输入参数子节点m,其中输出结果子节点l可以包括多个结果子节点,如结果子节点n、结果子节点o、结果子节点p等,输入参数子节点m可以包括多个输入子节点,例如输入子节点q、输入子节点r、输入子节点s等;以结果子节点n为例,中间件模块120可以将所述输出结果名称作为输出结果子节点n的值,可以将输出结果类型作为输出结果子节点n的输出结果类型子节点t(例如,可以包括字符类型、数值类型、时间类型等);以输入子节点q为例,中间件模块120可以将所述输入参数名称作为输入子节点q的值,将输入参数类型、输入参数匹配类型及输入参数连接类型分别作为输入子节点q的输入参数类型子节点w、输入参数匹配类型子节点x及输入参数连接类型x1。
中间件模块120可以对所述权限信息元数据创建权限节点,将所述服务注册信息及用户名作为所述权限节点的子节点,将所述服务名及服务字段名作为所述服务注册信息子节点的子节点。例如,中间件模块120可以在输出结果子节点l的各个结果子节点下创建权限子节点,以在结果子节点n下面创建权限节点v为例,权限节点v可以包括权限子节点y、权限子节点z及权限子节点z0等,中间件模块120可以在权限子节点y、权限子节点z及权限子节点z0等中写入用户的服务名、服务字段名,也可以将服务名、服务字段名作为、权限子节点z及权限子节点z0等的子节点(未示出)。
通过将用户权限信息配置于结果子节点下,本公开不仅可以实现字段级别的服务权限控制,还可以在服务不重新生成发布的情况下实现权限信息的修改。
且,在分布式环境下,中间件模块120可以作为服务中心提供统一的服务元数据和权限信息的保存,以实现服务的统一管理。
在一种可能的实施方式中,当操作请求为对服务进行更新时,可以对服务进行更新。其中对服务的更新可以包括删除服务或者更新服务,例如,删除服务的某个操作子节点(例如操作子节点i),或者删除某个服务子节点(如服务子节点b),也可以删除数据源(如数据源4)等等。对服务的更新可以包括新增服务子节点、新增操作、权限信息、数据源等,也可以包括对服务操作的修改、权限信息的修改等。
应该明白的是,尽管以图3作为示例介绍了树形数据节点如上,但是,以上介绍是示例性的,并不用于限制本公开,本领域的技术人员可以根据需要选择其他结构对服务生成需要的数据进行存储、配置。
请参阅图4,图4示出了根据本公开一实施方式的服务生成方法的流程图。
如图4所示,所述方法包括:
步骤S110,解析接收到的服务的操作请求以获取服务的元数据。
在一种可能的实施方式中,该步骤具体可为:
接收并解析用户操作请求以获取请求类型,当所述请求类型为创建服务或更新服务时,确定所述用户操作请求为服务的操作请求,并将所述服务的操作请求发送给所述服务子模块;
解析所述服务的操作请求以获取服务的元数据,还用于将所述服务的元数据提供给所述中间件模块;
所述服务的元数据包括:服务名称、服务引用的数据源名称及服务操作,其中,所述服务操作包括操作名称及操作指令;
所述操作指令包括操作类型、输出结果、输入参数及操作的数据库表;所述输出结果包括输出结果名称及输出结果类型;所述输入参数包括输入参数名称、输入参数类型、输入参数匹配类型及输入参数连接类型。
在一种可能的实施方式中,该步骤还可以包括:
在所述用户操作请求的请求类型为创建数据源时,确定所述用户操作请求为数据源的操作请求;
解析所述数据源的操作请求,以获取数据源的元数据;
所述数据源的元数据包括:数据源名称、数据源连接信息、数据源类型驱动名称、用户名及密码。
在一种可能的实施方式中,该步骤具体可为:
在所述用户操作请求的请求类型为权限注册时,确定所述用户操作请求为权限注册请求;
解析权限注册请求以获取权限信息;
其中,所述权限信息包括:权限注册信息及用户名,所述权限注册信息包括服务名称及字段名称。
步骤S120,根据所述服务元数据创建树形数据节点以储存所述服务的元数据。
在一种可能的实施方式中,所述根据所述服务元数据创建树形数据节点以储存所述服务的元数据具体可以包括:
在所述请求类型为创建数据服务时,针对所述服务的元数据创建树形数据节点,包括:
将所述服务名称作为所述服务根节点的值;
将所述服务引用的数据源名称和所述服务操作作为所述服务根节点的子节点;
将所述操作名称作为服务操作子节点的值,将所述操作类型、输出结果、输入参数和所述操作的数据库表作为所述服务操作子节点的子节点;
将所述输出结果名称作为输出结果子节点的值,将输出结果类型作为输出结果子节点的子节点;
将所述输入参数名称作为输入参数子节点的值,将所述输入参数类型、输入参数匹配类型及输入参数连接类型作为输入参数子节点的子节点。
在一种可能的实施方式中,该步骤还可以包括:
在所述请求类型为更新服务时,根据所述数据服务元数据确定待更新的数据,并对所述树形数据节点进行更新,其中,所述更新服务包括更新所述服务的树形数据节点中的数据或者删除所述树形数据节点中的节点。
在一种可能的实施方式中,该步骤还可以包括:
所述根据所述服务元数据创建树形数据节点以储存所述服务的元数据包括:
针对所述数据源的元数据创建树形数据节点,包括:
创建数据源根节点,将所述数据源名称作为所述数据源根节点的值;
将所述数据源连接信息、数据源类型驱动名称、用户名及密码作为所述数据源根节点的子节点。
在一种可能的实施方式中,该步骤还可以包括:
针对所述权限信息创建对应的数据节点,包括:
根据所述权限信息中的服务名称,在对应的树形数据节点中,创建权限节点,将所述权限节点作为所述输出结果子节点的子节点;将所述字段名作为所述权限节点的子节点。
步骤S130,在监听到服务元数据变化事件时,获取所述服务变化事件对应的服务的元数据,利用获取到的服务的元数据生成服务。
应该说明的是,所述服务生成方法为前述的服务生成系统对应方法项,其具体描述请参阅之前对服务生成系统的介绍,此处不再赘述。
本公开的服务生成方法通过解析接收到的服务的操作请求以获取服务的元数据,根据所述服务元数据创建树形数据节点以储存所述服务的元数据,在监听到服务变化事件时,获取所述服务变化事件对应的服务的元数据,利用获取到的服务的元数据生成服务。本公开可以将请求信息按照不同类型进行保存、配置,可以将服务元数据的处理与存储和服务的生成解耦以实现功能复用,根据上述服务生成方法,本公开可以实现服务的快速生成部署。
请参阅图5,图5示出了根据本公开一实施方式的服务生成系统900的框图。
参照图5,该系统900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与服务生成逻辑对应的机器可执行指令以执行上文所述的服务生成方法。
本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储系统,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (18)
1.一种服务生成系统,其特征在于,所述系统包括:
元数据处理模块,用于解析接收到的服务的操作请求以获取服务的元数据;
中间件模块,用于根据所述服务元数据创建树形数据节点以储存所述服务的元数据;
服务生成模块,用于在监听到服务元数据变化事件时,获取所述服务变化事件对应的服务的元数据,利用获取到的服务的元数据生成服务。
2.根据权利要求1所述的服务生成系统,其特征在于,所述元数据处理模块包括:预处理子模块和服务子模块;
所述预处理子模块,用于接收并解析用户操作请求以获取请求类型,当所述请求类型为创建服务或更新服务时,确定所述用户操作请求为服务的操作请求,并将所述服务的操作请求发送给所述服务子模块;
所述服务子模块,用于解析所述服务的操作请求以获取服务的元数据,还用于将所述服务的元数据提供给所述中间件模块;
所述服务的元数据包括:服务名称、服务引用的数据源名称及服务操作,其中,所述服务操作包括操作名称及操作指令;
所述操作指令包括操作类型、输出结果、输入参数及操作的数据库表;所述输出结果包括输出结果名称及输出结果类型;所述输入参数包括输入参数名称、输入参数类型、输入参数匹配类型及输入参数连接类型。
3.根据权利要求2所述的服务生成系统,其特征在于,所述中间件模块包括:
服务元数据配置子模块,在所述请求类型为创建数据服务时,用于针对所述服务的元数据创建树形数据节点,包括:
创建服务根节点,将所述服务名称作为所述服务根节点的值;
将所述服务引用的数据源名称和所述服务操作作为所述服务根节点的子节点;
将所述操作名称作为服务操作子节点的值,将所述操作类型、输出结果、输入参数和所述操作的数据库表作为所述服务操作子节点的子节点;
将所述输出结果名称作为输出结果子节点的值,将输出结果类型作为输出结果子节点的子节点;
将所述输入参数名称作为输入参数子节点的值,将所述输入参数类型、输入参数匹配类型及输入参数连接类型作为输入参数子节点的子节点。
4.根据权利要求3所述的服务生成系统,其特征在于,
所述服务元数据配置子模块,还用于在所述请求类型为更新服务时,根据所述服务的元数据确定待更新的数据,并对所述树形数据节点进行更新,其中,所述更新服务包括更新所述服务的树形数据节点中的数据或者删除所述树形数据节点中的节点。
5.根据权利要求2所述的服务生成系统,其特征在于,所述元数据处理模块还包括:数据源子模块;
所述预处理子模块,还用于在所述用户操作请求的请求类型为创建数据源时,确定所述用户操作请求为数据源的操作请求,并将所述数据源的操作请求发送给所述数据源子模块;
所述数据源子模块,用于解析所述数据源的操作请求,以获取数据源的元数据,还用于将所述数据源的元数据提供给所述中间件模块;
所述数据源的元数据包括:数据源名称、数据源连接信息、数据源类型驱动名称、用户名及密码。
6.根据权利要求5所述的服务生成系统,其特征在于,所述中间件模块还包括:
数据源元数据配置子模块,用于针对所述数据源的元数据创建树形数据节点,包括:
创建数据源根节点,将所述数据源名称作为所述数据源根节点的值;
将所述数据源连接信息、数据源类型驱动名称、用户名及密码作为所述数据源根节点的子节点。
7.根据权利要求3所述服务生成系统,其特征在于,所述元数据处理模块还包括:权限信息子模块;
所述预处理子模块,还用于在所述用户操作请求的请求类型为权限注册时,确定所述用户操作请求为权限注册请求,并将所述权限注册请求发送给所述权限信息子模块;
所述权限信息子模块,用于解析权限注册请求以获取权限信息,还用于将所述权限信息提供给所述中间件模块;
其中,所述权限信息包括:权限注册信息及用户名,所述权限注册信息包括服务名称及字段名称。
8.根据权利要求7所述的服务生成系统,其特征在于,
所述服务元数据配置子模块,还用于针对所述权限信息创建对应的数据节点,包括:
根据所述权限信息中的服务名称,在对应的树形数据节点中,创建权限节点,将所述权限节点作为所述输出结果子节点的子节点;将所述字段名作为所述权限节点的子节点。
9.根据权利要求1-8任一项所述服务生成系统,其特征在于,所述服务生成模块还用于:
接收服务消费者的服务访问请求,所述服务访问请求包括服务名称、所述服务消费者的用户名、与所述用户名对应的密码;
根据所述服务访问请求输出数据,所述数据为所述服务名称下所述用户的权限输出字段对应的信息。
10.一种服务生成方法,其特征在于,所述方法包括:
解析接收到的服务的操作请求以获取服务的元数据;
根据所述服务元数据创建树形数据节点以储存所述服务的元数据;
在监听到服务变化事件时,获取所述服务元数据变化事件对应的服务的元数据,利用获取到的服务的元数据生成服务。
11.根据权利要求10所述的服务生成方法,其特征在于,所述解析接收到的服务的操作请求以获取服务的元数据包括:
接收并解析用户操作请求以获取请求类型,当所述请求类型为创建服务或更新服务时,确定所述用户操作请求为服务的操作请求;
解析所述服务的操作请求以获取服务的元数据;
所述服务的元数据包括:服务名称、服务引用的数据源名称及服务操作,其中,所述服务操作包括操作名称及操作指令;
所述操作指令包括操作类型、输出结果、输入参数及操作的数据库表;所述输出结果包括输出结果名称及输出结果类型;所述输入参数包括输入参数名称、输入参数类型、输入参数匹配类型及输入参数连接类型。
12.根据权利要求11所述的服务生成方法,其特征在于,所述根据所述服务元数据创建树形数据节点以储存所述服务的元数据包括:
在所述请求类型为创建数据服务时,针对所述服务的元数据创建树形数据节点,包括:
将所述服务名称作为所述服务根节点的值;
将所述服务引用的数据源名称和所述服务操作作为所述服务根节点的子节点;
将所述操作名称作为服务操作子节点的值,将所述操作类型、输出结果、输入参数和所述操作的数据库表作为所述服务操作子节点的子节点;
将所述输出结果名称作为输出结果子节点的值,将输出结果类型作为输出结果子节点的子节点;
将所述输入参数名称作为输入参数子节点的值,将所述输入参数类型、输入参数匹配类型及输入参数连接类型作为输入参数子节点的子节点。
13.根据权利要求12所述的服务生成方法,其特征在于,所述方法还包括:
在所述请求类型为更新服务时,根据所述服务的元数据确定待更新的数据,并对所述树形数据节点进行更新,其中,所述更新服务包括更新所述服务的树形数据节点中的数据或者删除所述树形数据节点中的节点。
14.根据权利要求11所述的服务生成方法,其特征在于,所述方法还包括:
在所述用户操作请求的请求类型为创建数据源时,确定所述用户操作请求为数据源的操作请求;
解析所述数据源的操作请求,以获取数据源的元数据;
所述数据源的元数据包括:数据源名称、数据源连接信息、数据源类型驱动名称、用户名及密码。
15.根据权利要求14所述的服务生成方法,其特征在于,所述根据所述服务元数据创建树形数据节点以储存所述服务的元数据包括:
针对所述数据源的元数据创建树形数据节点,包括:
创建数据源根节点,将所述数据源名称作为所述数据源根节点的值;
将所述数据源连接信息、数据源类型驱动名称、用户名及密码作为所述数据源根节点的子节点。
16.根据权利要求12所述服务生成方法,其特征在于,所述方法还包括:
在所述用户操作请求的请求类型为权限注册时,确定所述用户操作请求为权限注册请求;
解析权限注册请求以获取权限信息;
其中,所述权限信息包括:权限注册信息及用户名,所述权限注册信息包括服务名称及字段名称。
17.根据权利要求16所述的服务生成方法,其特征在于,所述方法还包括:
针对所述权限信息创建对应的数据节点,包括:
根据所述权限信息中的服务名称,在对应的树形数据节点中,创建权限节点,将所述权限节点作为所述输出结果子节点的子节点;将所述字段名作为所述权限节点的子节点。
18.根据权利要求10-17任一项所述服务生成方法,其特征在于,所述方法还包括:
接收服务消费者的服务访问请求,所述服务访问请求包括服务名称、所述服务消费者的用户名、与所述用户名对应的密码;
根据所述服务访问请求输出数据,所述数据为所述服务名称下所述用户的权限输出字段对应的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810832055.7A CN109117152B (zh) | 2018-07-26 | 2018-07-26 | 服务生成系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810832055.7A CN109117152B (zh) | 2018-07-26 | 2018-07-26 | 服务生成系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109117152A CN109117152A (zh) | 2019-01-01 |
CN109117152B true CN109117152B (zh) | 2022-02-25 |
Family
ID=64862218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810832055.7A Active CN109117152B (zh) | 2018-07-26 | 2018-07-26 | 服务生成系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109117152B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083342B (zh) * | 2019-04-26 | 2023-04-18 | 重庆紫光华山智安科技有限公司 | 一种程序生成方法、装置以及计算机可读存储介质 |
CN114036174B (zh) * | 2021-12-14 | 2024-06-25 | 中国平安财产保险股份有限公司 | 数据更新方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661494A (zh) * | 2009-09-29 | 2010-03-03 | 莱芜钢铁集团有限公司 | 一种分布式中间件与数据库数据交互方法 |
CN103117983A (zh) * | 2011-11-16 | 2013-05-22 | 中国移动通信集团公司 | 数据服务请求应答方法和数据服务协议栈 |
CN103970899A (zh) * | 2014-05-27 | 2014-08-06 | 重庆大学 | 面向服务的元数据关联性提取管理方法及其管理系统 |
CN104040601A (zh) * | 2011-12-22 | 2014-09-10 | 派尔高公司 | 基于云的视频监视管理系统 |
CN104133717A (zh) * | 2014-08-26 | 2014-11-05 | 中电海康集团有限公司 | 一种用于数据开放系统的服务自动化生成和部署方法 |
CN105429791A (zh) * | 2015-11-03 | 2016-03-23 | 国网技术学院 | 一种分布式服务状态检测器及方法 |
CN107959709A (zh) * | 2017-10-25 | 2018-04-24 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 基于通信中间件数据解耦交互结构的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100573448C (zh) * | 2005-04-22 | 2009-12-23 | 瑞士银行股份有限公司 | 平台无关服务建模技术 |
US8412734B2 (en) * | 2008-12-30 | 2013-04-02 | International Business Machines Corporation | Unifying hetrogenous data |
-
2018
- 2018-07-26 CN CN201810832055.7A patent/CN109117152B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661494A (zh) * | 2009-09-29 | 2010-03-03 | 莱芜钢铁集团有限公司 | 一种分布式中间件与数据库数据交互方法 |
CN103117983A (zh) * | 2011-11-16 | 2013-05-22 | 中国移动通信集团公司 | 数据服务请求应答方法和数据服务协议栈 |
CN104040601A (zh) * | 2011-12-22 | 2014-09-10 | 派尔高公司 | 基于云的视频监视管理系统 |
CN103970899A (zh) * | 2014-05-27 | 2014-08-06 | 重庆大学 | 面向服务的元数据关联性提取管理方法及其管理系统 |
CN104133717A (zh) * | 2014-08-26 | 2014-11-05 | 中电海康集团有限公司 | 一种用于数据开放系统的服务自动化生成和部署方法 |
CN105429791A (zh) * | 2015-11-03 | 2016-03-23 | 国网技术学院 | 一种分布式服务状态检测器及方法 |
CN107959709A (zh) * | 2017-10-25 | 2018-04-24 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 基于通信中间件数据解耦交互结构的方法 |
Non-Patent Citations (5)
Title |
---|
"MetaFlow: A Scalable Metadata Lookup Service for Distributed File Systems in Data Centers";Peng Sun等;《IEEE Transactions on Big Data》;20180601;第4卷(第2期);第203-216页 * |
"Research on metadata in manufacturing-oriented EAI";Wang Rui等;《Journal of Systems Engineering and Electronics》;20070630;第18卷(第2期);第418-426页 * |
"企业信息系统中的数据整合技术研究";陈飞;《中国优秀硕士学位论文全文数据库•信息科技辑》;20050415;第2005年卷(第4期);第I138-91页 * |
"基于工作流的有状态服务研究与实现";费廷伟;《中国优秀硕士学位论文全文数据库•信息科技辑》;20110915;第2011年卷(第9期);第I138-250页 * |
"基于网格技术的企业异构数据集成研究";段瑞珍;《中国优秀硕士学位论文全文数据库•信息科技辑》;20090415;第2009年卷(第4期);第I138-349页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109117152A (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3564829B1 (en) | A modified representational state transfer (rest) application programming interface (api) including a customized graphql framework | |
CN107370786B (zh) | 一种基于微服务架构的通用信息管理系统 | |
US11848871B2 (en) | Network slice management | |
CN110191063B (zh) | 服务请求的处理方法、装置、设备及存储介质 | |
US9690822B2 (en) | System and method for metadata level validation of custom setup objects | |
US8683488B2 (en) | System and method for automatically generating computer code for message flows | |
US20180084085A1 (en) | Cross platform device virtualization for an iot system | |
CN112486547B (zh) | 多租户场景下的应用程序更新方法、装置及电子设备 | |
CN111064626B (zh) | 配置更新方法、装置、服务器及可读存储介质 | |
US11226943B2 (en) | Assigning access control for flat data structure | |
US11409724B2 (en) | Hashed balanced tree data structure | |
CN109117152B (zh) | 服务生成系统及方法 | |
CN112395339B (zh) | 系统间数据准入校验方法、装置、计算机设备和存储介质 | |
CN115878860A (zh) | 一种菜单的生成方法、装置、服务器设备及介质 | |
CN112099879B (zh) | 配置信息管理方法、装置、计算机设备及存储介质 | |
US11582345B2 (en) | Context data management interface for contact center | |
CN109918147B (zh) | OpenStack下驱动的扩展方法、装置、电子设备 | |
CN113179332A (zh) | 用于获取配置信息的方法、电子设备和存储介质 | |
CN109787945B (zh) | 一种Android系统中用户组件的实现方法及装置 | |
CN112418796A (zh) | 子流程节点激活方法、装置、电子设备及存储介质 | |
CN118092982B (zh) | 一种云原生应用的多集群运维方法、设备及介质 | |
CN116595057B (zh) | 数据查询方法、装置、计算机设备及计算机程序产品 | |
CN117009327B (zh) | 一种数据处理方法、装置及计算机设备、介质 | |
CN117435177B (zh) | 应用程序接口构建方法、系统、设备及存储介质 | |
US20240007876A1 (en) | Restoration of a network slice |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |