首页> 中国专利> 基于区块链的数据分析类应用程序开发系统及开发方法

基于区块链的数据分析类应用程序开发系统及开发方法

摘要

本发明公开了基于区块链的数据分析类应用程序开发系统及开发方法,涉及应用程序开发领域,方法包括:单例应用程序模块,单例应用程序模块采用单列模式,单例应用程序模块用于:保存预设基本配置信息,以及用于调用日志模块实现日志的动态配置,以及用于调用配置模块实现配置的初始化加载;配置模块,配置模块用于实现配置加载;日志模块,日志模块用于:实现将日志格式化成预设格式,以及用于解析获得用于定位开发环境问题的常用信息;消息事件模块,系统的数据分析结果输出通过消息事件模块的消息发布与订阅功能实现;打包部署模块,用于对应用程序进行打包;本发明能够满足快速开发面向数据分析的应用程序的需求。

著录项

  • 公开/公告号CN114911485A

    专利类型发明专利

  • 公开/公告日2022-08-16

    原文格式PDF

  • 申请/专利权人 成都链安科技有限公司;

    申请/专利号CN202110170273.0

  • 发明设计人 杨霞;郭文生;

    申请日2021-02-08

  • 分类号G06F8/60(2018.01);G06F8/71(2018.01);G06F9/54(2006.01);

  • 代理机构成都云纵知识产权代理事务所(普通合伙) 51316;成都云纵知识产权代理事务所(普通合伙) 51316;

  • 代理人熊曦;刘沙粒

  • 地址 610000 四川省成都市中国(四川)自由贸易试验区成都高新区世纪城南路599号7栋5层505A、505B号

  • 入库时间 2023-06-19 16:23:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-02

    实质审查的生效 IPC(主分类):G06F 8/60 专利申请号:2021101702730 申请日:20210208

    实质审查的生效

说明书

技术领域

本发明涉及应用程序开发领域,具体地,涉及基于区块链的数据分析类应用程序开发系统及开发方法。

背景技术

为了快速的进行针对区块链数据进行分析的应用程序开发,当前存在着各种各样的Python框架,包括面向web应用、面向爬虫、面向持续集成等。但随着大数据的爆发,数据分析的场景越来越多,特别是针对区块链海量链上数据的分析的场景,而Python天然适合于数据分析,现有的应用程序框架要么很重,要么不完整,而且更多的都是面向web应用程序的开发框架,难以满足快速进行针对区块链海量链上数据分析的场景的数据分析应用程序开发的需求。

发明内容

本发明目的是提供一种面向数据分析类应用程序的轻量级应用程序开发系统,满足快速开发针对区块链海量数据进行数据分析的应用程序的需求。

为实现上述发明目的,本发明提供了基于区块链的数据分析类应用程序开发系统,所述系统包括:

单例应用程序模块,单例应用程序模块采用单列模式,单例应用程序模块用于:保存预设基本配置信息,以及用于调用日志模块实现日志的动态配置,以及用于调用配置模块实现配置的初始化加载;

配置模块,配置模块用于实现配置加载;

日志模块,日志模块用于:实现将日志格式化成预设格式,以及用于解析获得用于定位开发环境问题的常用信息;

消息事件模块,系统的数据分析结果输出通过消息事件模块的消息发布与订阅功能实现;

打包部署模块,用于对应用程序进行打包。

其中,本申请发明人通过对现有技术的分析发现当前急需一个面向数据分析类应用程序的轻量级系统,本系统只需要实现1、程序运行所需的环境配置的加载,保障在程序运行期间,可以在任意地方获取到相同的配置信息;2、程序运行期间日志的打印输出,以满足不同环境日志的查看与采集需求;3、基于kafka用装饰器封装消息发布与订阅功能;4、基于docker容器技术封装程序的自动化打包。本系统不包含现有系统常用的URL路由映射、复杂中间件、模版编程、admin等,以及部分系统深度集成的数据库访问等模块,避免了系统繁重,使得系统简化实现轻量级。如果需要基于该系统访问数据库可以直接使用丰富的Python库即可。本系统封装了在大数据领域不可或缺的消息发布与订阅的装饰器,简化了应用程序的开发过程。基于本系统,开发人员只需要编写数据分析的核心逻辑代码,并且可以高效率的发布分析结果,或者直接存储到数据库。不用去关心程序如何运行,如何进行环境隔离,如何采集程序日志监控程序状态,以及通过何种方式发布到生产环境。开发人员只需要完成数据分析的逻辑即可,提高了应用程序的开发效率。本发明中的一种面向数据分析类应用程序的轻量级系统能够帮助程序员快速的进行程序开发,更多的去关注业务逻辑的实现。

优选的,本系统中配置模块的配置加载方式包括配置更新方式和配置初始化方式;配置更新方式为:使用新配置对象覆盖原有配置对象,同时保证未出现在新配置对象中的属性维持初始值;配置初始化方式为:默认加载开发环境的配置文件,从环境变量中寻找是否存在测试环境或者开发环境的配置信息,若存在则使用配置更新方式对加载的开发环境配置进行覆盖,否则直接使用开发环境配置运行应用程序。

优选的,本系统中,配置模块使用预设字典存储配置。

优选的,本系统中,所述预设字典为python字典。

优选的,本系统中,所述常用信息包括但不限于:时间、日志级别、应用程序名、应用程序版本、请求标识、追踪链路ID、远程IP、请求发起者、日志方法名和日志消息。

优选的,本系统中,日志模块用于:实现将日志格式化成Json格式,以及用于实现基于json格式的处理程序,以及用于开发环境调试的字符串格式的处理程序;在单例应用程序模块中根据配置信息使用不同的处理程序。

优选的,本系统集成基于开源库confluent_kafa封装的python装饰器,实现事件的发布以及订阅。

优选的,本系统中,基于消息事件的驱动模式,在数据分析中解决入库与分析解耦,将分析结果发布。

优选的,系统集成使用DOCKER一键打包应用,同时通过集成的发布脚本,动态的获取不同环境的配置,在运行时将配置注入到DOCKER容器的环境变量中。

本发明还提供了用于数据分析类应用程序的开发方法,所述方法基于所述的用于数据分析类应用程序开发的系统,所述方法包括:

在系统中添加配置文件,并设置默认参数;

初始化应用程序;

调用单例应用程序模块、配置模块、日志模块和消息事件模块实现应用程序的开发;

将开发后的应用程序打包成DOCKER镜像然后部署应用程序;

在部署应用程序的时拉取配置管理中的配置以JSON的方式注入环境变量中;

系统的配置模块检查环境变量中的配置并更新配置;

应用程序使用更新后的配置运行。

本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:

本发明能够自动加载不同环境配置,本发明能够在程序中访问,本发明能够面向不同场景的输出多样日志,本发明能够发送和监听数据分析应用程序中的事件消息;本发明能够实现快速容器化部署。本发明中的系统简单实现了轻量级设计,能够帮助程序员快速的进行程序开发,更多的去关注业务逻辑的实现。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明的一部分,并不构成对本发明实施例的限定;

图1为基于区块链的数据分析类应用程序开发系统的组成示意图;

图2为用于数据分析类应用程序的开发方法的流程示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

实施例一

请参考图1,图1为基于区块链的数据分析类应用程序开发系统的组成示意图,本发明实施例一提供了基于区块链的数据分析类应用程序开发系统,所述系统包括:

单例应用程序模块,单例应用程序模块采用单列模式,单例应用程序模块用于:保存预设基本配置信息,以及用于调用日志模块实现日志的动态配置,以及用于调用配置模块实现配置的初始化加载;

配置模块,配置模块用于实现配置加载;

日志模块,日志模块用于:实现将日志格式化成预设格式,以及用于解析获得用于定位开发环境问题的常用信息;

消息事件模块,系统的数据分析结果输出通过消息事件模块的消息发布与订阅功能实现;

打包部署模块,用于对应用程序进行打包。

本发明实施例主要解决的技术问题是提供一种快速进行面向数据分析应用程序的轻量级系统,能够解决的问题A不同环境配置的自动加载问题,以及如何在程序中访问的问题;B面向不同场景的多样日志输出问题;C数据分析应用程序中的事件发送与监听问题;D快速容器化部署问题。

为解决上述问题,具体实施方案如下:

A:单例APP的实现:首先系统实现一个APP类,1.该类提供一个self.config的实例变量用于保存全局的配置信息;2.同时封装init_log(self)实例方法用于调用日志模块实现日志的动态配置;3.封装load_config(self)实例方法用于调用配置模块实现配置的初始化加载;4.为了确保APP类不会被实例化为多个对象,造成内存资源的浪费,希望在程序运行期间只存在一个实例对象,使用一种常用的软件设计模式:单例模式(SingletonPattern),该系统基于python metaclass来实现APP类的单例对象。

B:配置模块:该模块实现一个配置加载类,使用python字典存储配置,该类提供两个类方法1.配置更新类方法,使用新的配置对象去覆盖旧的配置对象,同时保证未出现在新的配置对象中的属性维持初始值;2.配置初始化类方法,首先默认加载开发环境的配置文件,然后去从环境变量中寻找是否有测试环境或者开发环境的配置信息,如果存在则使用配置更新类方法对加载的开发环境配置进行覆盖,否则直接使用开发环境配置运行程序。

方法在单例APP的load_config中被显示调用。

C:日志模块:1.该模块实现一个将日志格式化成Json格式的类,该类继承python的logging.Formatter,并且解析了用于问题定位的常用信息,包括时间、日志级别、程序名、程序版本、请求uri、追踪链路ID、远程IP、请求发起者、日志方法名、日志消息等信息。2.日志模块实现了基于json格式的handler,方便生产环境的问题定位,以及一个用于开发环境调试的字符串格式的handler,方便在开发中进行程序的调试。

在单例APP的init_log中根据配置信息使用不同的handler。

D:在系统中的数据分析结果由kafka消息发布与订阅来完成结果的输出,本系统中集成基于开源库confluent_kafa封装便于使用的python装饰器,实现事件的发布以及订阅,基于消息事件的驱动模式,在数据分析中可以解决入库与分析解耦,同时将分析结果发布出去,关注该分析结果的应用可以订阅相关消息就可以完成功能

E:在系统中集成使用DOCKER一键打包应用,同时通过集成的发布脚本,动态的获取不同环境的配置,在运行时将配置注入到DOCKER容器的环境变量中。该配置信息在配置模块中被加载到程序中。

实施例二

请参考图2,图2为用于针对区块链海量数据进行数据分析类应用程序的开发方法的流程示意图,本发明实施例二提供了用于针对区块链海量数据进行数据分析类应用程序的开发方法,所述方法基于所述的基于区块链的数据分析类应用程序开发系统,所述方法包括:

在系统中添加配置文件,并设置默认参数;

初始化应用程序;

调用单例应用程序模块、配置模块、日志模块和消息事件模块实现应用程序的开发;

将开发后的应用程序打包成DOCKER镜像然后部署应用程序;

在部署应用程序的时拉取配置管理中的配置以JSON的方式注入环境变量中;

系统的配置模块检查环境变量中的配置并更新配置;

应用程序使用更新后的配置运行。

本发明的有益效果是:1.为面向针对区块链海量数据进行数据分析的应用程序提供一种可选的系统,该系统集成了程序开发与部署的基本能力;2.为后续面向针对区块链海量数据进行数据分析的应用程序提供了一种思路,可以基于此思路封装更多的插件,实现更丰富的数据分析能力;3.使得面向针对区块链海量数据进行数据分析的应该程序开发更加方便,可以更专注于业务能力的实现。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。

本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。

此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号