WO2020211661A1 - 一种采用图形化的开发的方法、介质、设备和装置 - Google Patents

一种采用图形化的开发的方法、介质、设备和装置 Download PDF

Info

Publication number
WO2020211661A1
WO2020211661A1 PCT/CN2020/083154 CN2020083154W WO2020211661A1 WO 2020211661 A1 WO2020211661 A1 WO 2020211661A1 CN 2020083154 W CN2020083154 W CN 2020083154W WO 2020211661 A1 WO2020211661 A1 WO 2020211661A1
Authority
WO
WIPO (PCT)
Prior art keywords
dag
component
components
connection relationship
module
Prior art date
Application number
PCT/CN2020/083154
Other languages
English (en)
French (fr)
Inventor
李剑
陈超
刘天骐
李晓昱
王喆
Original Assignee
阿里巴巴集团控股有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 阿里巴巴集团控股有限公司 filed Critical 阿里巴巴集团控股有限公司
Priority to SG11202111074VA priority Critical patent/SG11202111074VA/en
Publication of WO2020211661A1 publication Critical patent/WO2020211661A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Definitions

  • the present invention relates to the technical field of computer program development, in particular to a method, medium, equipment and device that adopts graphical development.
  • SQL Structured Query Language
  • SQL Structured Query Language
  • programming language used to access data, query, update and manage relational database systems; it is also an extension of database script files.
  • the technical problem to be solved by the present invention is that the use of command line or text mode to edit SQL statements requires mastering the grammatical content, which affects the efficiency of program development.
  • the present invention solves the above-mentioned technical problems.
  • the embodiments of the present invention provide a graphical development method, including:
  • the encapsulated content further includes: one or more parameter or attribute configuration items;
  • the process of receiving the DAG component selected by the user further includes:
  • it also includes:
  • connection relationship each time a DAG component is added, after the connection relationship changes, the correctness of the front path of the newly added DAG component is checked; the front path includes each DAG component in the connection relationship and the formation path;
  • the verification process includes: checking the correctness of one or more input and output field lists and types of each DAG component.
  • it further includes: on the connection relationship formed by multiple DAG components that have been established, frame selection of multiple DAG components and save them as a callable template.
  • the method further includes: analyzing the code relationship of the DAG component diagram.
  • the analysis process includes:
  • the multiple logical operators after the splitting generate corresponding sentence codes.
  • the method further includes: receiving a switching instruction, and performing a reverse operation on the analysis process to form the DAG component diagram.
  • the embodiment of the present invention also provides a computer-readable storage medium that stores a computer program, and when the program is executed by a processor, the above method steps are implemented.
  • the embodiment of the present invention also provides a computer device installed with the above-mentioned computer storage medium.
  • the embodiment of the present invention also provides a graphical development device, including:
  • the encapsulation module is used to encapsulate the operator that realizes the component function and the names of other DAG components that are allowed to be connected in each DAG component;
  • Display module used to display multiple DAG components of visualization to users
  • the graphics module is used to receive the user's selection of multiple DAG components, and establish the connection relationship of each DAG component according to the function of each DAG component and the components allowed to be connected, and generate a DAG component diagram.
  • the encapsulated content further includes: one or more parameter or attribute configuration items;
  • the graphics module is also connected with a parameter verification module for displaying a parameter or attribute configuration panel for the DAG component selected by the user;
  • the graphics module is also connected with a checking module for checking the correctness of the newly added DAG component after each DAG component is added to the connection relationship.
  • Checking the forward path includes each DAG component in the connection relationship and the formation path;
  • the graphics module is also connected with a template module, which is used to select multiple DAG components based on the established connection relationship formed by multiple DAG components, and save them as a callable template.
  • a template module which is used to select multiple DAG components based on the established connection relationship formed by multiple DAG components, and save them as a callable template.
  • the graphics module is also connected with an analysis module, including:
  • the first sub-module is used to decompose the connection relationship formed by the respective DAG components and connections into a data structure
  • the second submodule is used to split the decomposed data structure into multiple logical operators according to the composition of the sentence;
  • the third sub-module is used for the multiple logical operators after the splitting to generate corresponding sentence codes.
  • the analysis module is further connected with a conversion module, which is used to receive a switching instruction, perform a reverse operation on the analysis process, and form the DAG component diagram.
  • a conversion module which is used to receive a switching instruction, perform a reverse operation on the analysis process, and form the DAG component diagram.
  • the operators that implement the corresponding component functions with code are encapsulated into DAG components, and the software development process is displayed graphically, which simplifies the user development process, and the user pays no attention to the expression of each specific instruction, and Grammatical relationship
  • this development model abstracts and encapsulates the operator of the code into a visual and configurable front-end component, which is more intuitive and easy for users to understand.
  • the logical relationship between each DAG component is abstracted into a connection, and the user only needs to understand the DAG
  • program task development can be completed by dragging and configuring components. Even new users with no language foundation do not need to care about the underlying grammar.
  • Fig. 1 is a flowchart of a method according to an embodiment of the present invention
  • Figure 2 is a schematic diagram of an interface for parameter configuration in an embodiment of the present invention.
  • Figure 3 is a diagram of a DAG component in an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of the verification process of an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of layer structure conversion between DAG components and SQL codes according to an embodiment of the present invention.
  • Fig. 6 is another DAG component diagram according to an embodiment of the present invention.
  • Fig. 7 is three sub-figures after decomposition in the embodiment of the present invention.
  • Fig. 8 is a block diagram of a device structure according to an embodiment of the present invention.
  • the embodiments of the present invention include:
  • S11 Encapsulate the operator that implements the component function and the names of other DAG components that allow connection in each DAG component;
  • S13 Receive the user's selection of multiple DAG components, and the user establishes the connection relationship of each DAG component according to the function of each DAG component and the components allowed to be connected, and generates a DAG component diagram.
  • the user can select one or more DAG components in the form of drag and drop.
  • the DAG development model is more in line with users' thinking habits.
  • users can arrange components in sequence and the relationships between them according to their thinking habits to realize the processing process of expressing a program task. You need to enumerate an example related to business logic.
  • the DAG component diagram actually reflects the flow of data processing.
  • drag and drop configuration editing methods can also make the expression process more intuitive.
  • the DAG-based editing mode can also effectively reduce subsequent development and maintenance costs.
  • the software process framework can be built more quickly, thereby effectively improving efficiency.
  • the method of the present invention can be applied to development programs in multiple languages, such as SQL language, Scala language, etc., each language has its own supported operators, which can be described by codes, and one or more operators can be packaged to implement components Function. For flow calculations and graph calculations, both can be implemented in this way.
  • SQL language is taken as an example for description.
  • the encapsulated content further includes: one or more parameter or attribute configuration items;
  • the process of receiving the DAG component selected by the user further includes:
  • each DAG component is set with a configurable parameter range or attribute configuration range, etc. If the value configured by the user exceeds the range value, after the value comparison, a question pop-up window will pop up to the user. As shown in Figure 2, compared to the existing solution, all the codes need to be completed, and configuration errors will be seen in the later compilation process. In this embodiment, configuration errors can be found during the software development process. Improve the correct rate of the code.
  • it also includes:
  • connection relationship each time a DAG component is added, the connection relationship of the DAG component changes, and the correctness of the front path of the newly added DAG component is checked; the front path includes each DAG component in the connection relationship And form the path.
  • the user drags the GroupBy component and uses the connection connection. After the connection, the TT before the GroupBy component node will be detected in time, and the path formed is correct.
  • the schema can be used To verify the calculation.
  • the connection formed by the TT component and the GroupBy component here can also be a subgraph, forming a single SQL statement.
  • the DAG visualization component standardizes the use of operators, such as the upstream and downstream of the component, what components can be connected, what content is allowed to be configured in the attribute configuration item, and which fields can be used in fields, etc., are strictly regulated. It reduces the possibility of processing logic errors, even if there is an error in the user configuration, it can be prompted in real time. It is convenient for the user to detect in real time whether the connected components and the connection relationship are correct during each DAG component connection process.
  • the user can click on a certain node. For example, if the user clicks on one of the select nodes, the system will check the path before the node and the correctness of the TT—GroupBy—filter—select, and treat this path and node as a task. Whether the formed path and node is correct is checked, and the correctness of the path and node is verified by means of calculation such as schema. Thereby improving the debugging ability of the implementation.
  • 232schema mainly includes the output field list of the component and the field type (such as: aa String, bb String);
  • the Select component obtains the output fields by parsing parameter expressions: the upstream input schema is a String, b String, and the selectFields of the Select component is configured as aa as a, max(bb) as b, which can be parsed through expressions (SQL analysis tools can be used)
  • the schema parsed to the output is: aa String, bb String; for the Join component: suppose that among the two upstream inputs, the schema of one output is aa String, bb String, and the other input is cc String, dd String, then the Join component’s
  • the input schema is a collection of two upstream schemas: aa String, bb String, cc String, dd String. Through this calculation, it can be concluded whether the logic of the entire SQL is correct. When the check of each DAG component node fails, the check of the DAG component graph is terminated, and the
  • connection relationship formed by multiple DAG components that have been established multiple partial DAG components that have formed a connection relationship can be selected, and the multiple DAG components selected
  • the component is saved as a template.
  • the template content includes some common configuration attributes of the components (such as table connection information, table field information, expression information, etc.) and connections between components. So as to form rapid reuse of code, improve the efficiency of soft shell development.
  • it also includes analyzing the component relationship diagram formed by the DAG to form the code finally used for compilation.
  • the above analysis process is to decompose the components of the DAG component diagram into the final code, for example, the DAG component of SQL is finally decomposed into executable SQL code.
  • An example of a specific decomposition process is described in detail below.
  • Fig. 5 in the embodiment, it mainly includes rendered DAG components forming the front end of the connection relationship, which are located in the first row of the figure.
  • each DAG component in the first row is decomposed downward.
  • the view of each DAG component in the first row that forms the connection relationship is shown in Figure 6.
  • These DAG component diagrams are decomposed to form a node list and an edge list to form a json data body.
  • json is the syntax of JavaScript object notation. Subset.
  • Each node stores the component type and the component parameters configured by the user in the component configuration panel, and the edge data stores the directed connection relationship between the components.
  • the view layer in the second row in Figure 4.
  • the DAG sub-graph is split into multiple sub-graphs.
  • the purpose of the split is to make each sub-graph eventually generate a separate SQL statement.
  • the basis of the split is to judge each Does the DAG component of the node need to be disconnected? (For example, the create view node in this example needs to be disconnected from the subsequent nodes to form an independent SQL expression statement).
  • the content of the DAG abstract component layer in the third row as shown in Figure 5 is formed, that is, the abstract component layer.
  • the DAG abstract component layer splits the DAG component into three subgraphs, and the three subgraphs after the split are shown in Figure 6. Corresponds to the content in the three dashed boxes in the third row in Figure 5. During the above-mentioned transmission of each layer, the data structure of each layer's content will be adjusted accordingly.
  • the content is further decomposed to obtain the content of the basic logical operator layer, as shown in the fourth row in Figure 5.
  • Split the DAG component into one or more basic SQL operator structures accordinging to the functions encapsulated by the DAG component, as shown in Figure 5 or Figure 6, the GroupBy component, which can be split into a GroupBy operator and a Select operator.
  • the basic logical operator layer traverses the parsed and split logical operator subgraphs of the abstract component layer in turn to generate the corresponding SQL code.
  • the GroupBy component can be split into a GroupBy operator and a Select operator.
  • the generated statement is: CREATE VIEW view_4cc AS SELECT aa, max(bb)AS bb FROM AA GROUP BY aa;
  • the sub-picture corresponding to the GroupBy component is sub-picture 1 on the left in Fig. 7, sub-picture 2 in the middle and sub-picture 4 on the right.
  • the middle component corresponds to subgraph 2 in FIG. 7
  • the right component corresponds to subgraph 3 in FIG. 7.
  • the SQL generated by subgraph 2 and the SQL generated by subgraph 3 are as follows:
  • the DAG graph code is realized, which is convenient for engineers to further debug and compile the code.
  • the basic logic operator layer receives the SQL text content edited by the SQL layer, uses SQL analysis tools to parse the SQL text content into an AST syntax tree, and traverses and analyzes the AST syntax tree to generate the defined basic operator DAG data structure. Among them, you can use existing SQL tools to traverse the AST syntax tree, and parse each individual SQL statement into an independent logical operator DAG structure according to the final encapsulated function;
  • the abstract component layer encapsulates one or more logical operators into abstract components according to the encapsulation needs of abstract components, and finally outputs the DAG data structure of the abstract components; as in this example: based on the usual syntax features, the groupBy operator must be combined with the select operator Use, because it can be merged into GroupBy abstract components.
  • three independent logical component DAG structures are finally output, as shown in the upper dotted line box component in Figure 5.
  • the DAG view layer combines three independent logical component DAG structures into one independent DAG structure.
  • the principle of merging is to find the input and output correlation between subgraphs.
  • the CreateView node in Figure 6 and Figure 7 finally outputs a view view named view_4cc
  • the first node of subgraph 2 and subgraph 3 reads data from the source named view_4cc, which can determine subgraph 2
  • Sub-figure 3 is associated with data before sub-figure 1, and is the downstream sub-figure of sub-figure 1.
  • the three subgraphs are merged to form a complete DAG data structure, such as the graph structure in the complete DAG view layer in Figure 5.
  • Packaged components can be packaged according to different component functions, such as data processing or data query classification, database definition/object packaging of calculation engine, or database control authority.
  • the front end receives the complete DAG graph data structure and renders it into a visualized DAG editing graph, forming the form shown in Figure 6.
  • the embodiments of the present invention provide a computer-readable storage medium.
  • the steps in the above-mentioned embodiments can be stored in the computer medium in the form of program codes.
  • the program is executed by a processor, the steps in the above-mentioned embodiments are implemented. method.
  • the embodiment of the present invention provides a computer device installed with the above-mentioned computer storage medium.
  • a computer device installed with the above-mentioned computer storage medium.
  • it is used to provide a server to download the above-mentioned code software, or to read the computer in the above-mentioned medium.
  • the embodiment of the present invention also provides a graphical development device, including:
  • the encapsulation module is used to encapsulate the operator that realizes the component function and the names of other DAG components that are allowed to be connected in each DAG component;
  • Display module used to display multiple DAG components of visualization to users
  • the graphics module is used to receive the user's selection of multiple DAG components, and the user establishes the connection relationship of each DAG component according to the function of each DAG component and the components allowed to be connected, and generates a DAG component diagram.
  • the encapsulated content further includes: one or more parameter or attribute configuration items;
  • the graphics module is also connected with a parameter verification module for displaying a parameter or attribute configuration panel for the DAG component selected by the user;
  • the graphics module is also connected with a checking module for checking the correctness of the newly added DAG component after each DAG component is added to the connection relationship.
  • Checking the forward path includes each DAG component in the connection relationship and the formation path;
  • the graphics module is also connected with a template module, which is used to select multiple DAG components based on the established connection relationship formed by multiple DAG components, and save them as a callable template.
  • a template module which is used to select multiple DAG components based on the established connection relationship formed by multiple DAG components, and save them as a callable template.
  • the graphics module is also connected with an analysis module, including:
  • the first sub-module is used to decompose the connection relationship formed by the respective DAG components and connections into a data structure
  • the second submodule is used to split the decomposed data structure into multiple logical operators according to the composition of the sentence;
  • the third sub-module is used for the multiple logical operators after the splitting to generate corresponding sentence codes.
  • the analysis module is further connected with a conversion module, which is used to receive a switching instruction, perform a reverse operation on the analysis process, and form the DAG component diagram.
  • a conversion module which is used to receive a switching instruction, perform a reverse operation on the analysis process, and form the DAG component diagram.
  • Fig. 8 is a block diagram of a device structure according to an embodiment of the present invention.
  • the apparatus in the foregoing embodiment may be integrated in various computer equipment or storage media to implement each method step in the embodiment.
  • each embodiment of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of the present invention is essentially or the part that contributes to the existing technology, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium. It includes several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods in the various embodiments of the present invention.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disk and other media that can store program code .

Abstract

一种采用图形化的开发的方法、介质、设备和装置。方法包括:将实现组件功能的算子、允许连接的其他DAG组件名称封装在每个DAG组件内;向用户展示可视化的多个DAG组件;接收用户选择多个DAG组件、以及按照每个DAG组件的功能和允许连接的组件来建立各个DAG组件的连接关系,生成DAG组件图。通过上述方法,将用代码实现相应组件功能的算子,封装成DAG组件,以图形化的方式显示软件开发过程,简化了用户的开发流程,用户不必关注每条具体指令的表述,以及语法关系,这样的开发模式将代码的算子抽象、封装成可视化、可配置化的前端组件,更加直观,便于用户理解。

Description

一种采用图形化的开发的方法、介质、设备和装置
本申请要求2019年04月15日递交的申请号为201910299903.7、发明名称为“一种采用图形化的开发的方法、介质、设备和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及计算机程序开发的技术领域,特别是指一种采用图形化的开发的方法、介质、设备和装置。
背景技术
SQL即结构化查询语言(Structured Query Language),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
现有技术在使用SQL语句做程序开发时,开发方式通过写SQL语句或在文本中编辑SQL脚本。
现有的开发方式,开发者必须熟悉SQL的具体语法。对首次接触SQL语言的开发者来讲,学习并熟悉使用一门新的SQL语法都有一定的学习和时间成本。从而影响了开发效率。
发明内容
本发明所要解决的技术问题是上述采用命令行或文本方式编辑SQL语句,需要掌握语法内容,影响了程序开发效率。
本发明解决上述技术问题,本发明的实施例提供一种采用图形化的开发的方法,包括:
将实现组件功能的算子、允许连接的其他DAG组件名称封装在每个DAG组件内;
向用户展示可视化的多个DAG组件;
接收用户选择多个DAG组件、以及按照每个DAG组件的功能和允许连接的组件来建立各个DAG组件的连接关系,生成DAG组件图。
优选地,所述封装的内容还包括:一个或多个的参数或属性配置项;
所述接收用户选择的所述DAG组件的过程,还包括:
对所述用户选择的DAG组件,显示参数或属性配置面板;
接收用户输入的配置的参数或属性数据,并实时校验是否正确。
优选地,还包括:
在所述连接关系上,每增加一个DAG组件,所述连接关系发生变化后,对新增加的DAG组件的前路的正确性进行验算;所述前路包括连接关系上的各个DAG组件及形成路径;
或,点击任一个DAG组件,对其前路的DAG组件的路径正确性进行验算。
优选地,所述验算过程包括:检查每个DAG组件的一个或多个的输入、输出的字段列表和类型的正确性。
优选地,还包括:在已经建立的多个DAG组件形成的连接关系上,框选多个DAG组件,作为一个可调用模板进行保存。
优选地,所述生成组件图之后,还包括:分析所述DAG组件图的代码关系。
优选地,所述分析的过程包括:
将所述各个DAG组件及连线形成的所述连接关系,分解为数据结构;
将分解后的数据结构,按照语句的构成,拆分成多个逻辑算子;
所述拆分后的多个逻辑算子,生成相应的语句代码。
优选地,所述生成相依的语句代码后,还包括:接收切换指令,对所述分析过程,执行逆操作,形成所述DAG组件图。
本发明的实施例还提供一种计算机可读存储介质,存储有计算机程序,该程序被处理器执行时,实现上述的方法步骤。
本发明的实施例还提供一种计算机设备,安装有上述的计算机存储介质。
本发明的实施例还提供一种采用图形化的开发的装置,包括:
封装模块,用于将实现组件功能的算子、允许连接的其他DAG组件名称封装在每个DAG组件内;
展示模块,用于向用户展示可视化的多个DAG组件;
图形模块,用于接收用户选择多个DAG组件、以及按照每个DAG组件的功能和允许连接的组件来建立各个DAG组件的连接关系,生成DAG组件图。
优选地,所述封装的内容还包括:一个或多个的参数或属性配置项;
所述图形模块,还连接有参数校验模块,用于对所述用户选择的DAG组件,显示参数或属性配置面板;
接收用户输入的配置的参数或属性数据,并实时校验是否正确。
优选地,所述图形模块,还连接有验算模块,用于在所述连接关系上,每增加一个DAG组件,所述连接关系发生变化后,对新增加的DAG组件的前路的正确性进行验算;所述前路包括连接关系上的各个DAG组件及形成路径;
或,点击任一个DAG组件,对其前路的DAG组件的路径正确性进行验算。
优选地,所述图形模块还连接有模板模块,用于在已经建立的多个DAG组件形成的连接关系上,框选多个DAG组件,作为一个可调用模板进行保存。
优选地,所述图形模块还连接有分析模块,包括:
第一子模块,用于将所述各个DAG组件及连线形成的所述连接关系,分解为数据结构;
第二子模块,用于将分解后的数据结构,按照语句的构成,拆分成多个逻辑算子;
第三子模块,用于所述拆分后的多个逻辑算子,生成相应的语句代码。
优选地,所述分析模块还连接有转换模块,用于接收切换指令,对所述分析过程,执行逆操作,形成所述DAG组件图。
通过上述的实施例,将用代码实现相应组件功能的算子,封装成DAG组件,以图形化的方式显示软件开发过程,简化了用户的开发流程,用户不比关注每条具体指令的表述,以及语法关系,这样的开发模式将代码的算子抽象、封装成可视化、可配置化的前端组件,更加直观,便于用户理解,各个DAG组件之间的逻辑关联抽象成连线,用户只需要理解DAG组件的处理能力,就可以通过拖拉拽、配置组件的方式完成程序任务开发。即使是无语言基础的新用户也不需要关心底层的语法。
附图说明
图1为本发明实施例的方法流程图;
图2为本发明实施例中参数配置的界面示意图;
图3为本发明实施例中一种DAG组件图;
图4为本发明实施例的验算过程的示意图;
图5为本发明实施例的DAG组件与SQL代码的层结构转换示意图;
图6为本发明实施例的另一种DAG组件图;
图7为本发明实施例中的分解后的三个子图;
图8为本发明实施例的装置结构的模块框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
下面结合附图详细说明本发明的实施例,参见图1,本发明的实施例包括:
S11:将实现组件功能的算子、允许连接的其他DAG组件名称封装在每个DAG组件内;
S12:向用户展示可视化的多个DAG组件;
S13:接收用户选择多个DAG组件、以及用户按照每个DAG组件的功能和允许连接的组件来建立各个DAG组件的连接关系,生成DAG组件图。用户可以采用拖拽的形式选择一个或多个DAG组件。
通过上述的步骤,将用代码实现相应组件功能的算子,封装成DAG组件,以图形化的方式显示软件开发过程,简化了用户的开发流程,用户不比关注每条具体指令的表述,以及语法关系,这样的开发模式将代码的算子抽象、封装成可视化、可配置化的前端组件,更加直观,便于用户理解,各个DAG组件之间的逻辑关联抽象成连线,用户只需要理解DAG组件的处理能力,就可以通过拖拉拽、配置组件的方式完成程序任务开发。即使是新用户也不需要关心底层的语法。
DAG开发模式更符合用户的思维习惯。在DAG模式开发,用户可以根据思维习惯,顺序编排组件以及其间的关系,实现表达一个程序任务的处理过程,需要列举一个和业务逻辑相关的实例。而DAG组件图实际上也反映了数据的处理流向。对复杂的数据处理过程,通过托拉拽、配置化的编辑方式也能让其表达过程更加直观。同时基于DAG的编辑模式,也能有效降低后续的开发维护成本。可以更快速的搭建软件的流程框架,从而有效提高了效率。
本发明的方法可以适用多种语言的开发程序,例如SQL语言、Scala语言等,每种语言有各自支持的算子,可以用代码描述算子,一个或多个算子可以封装后,实现组件的功能。对于流计算、图计算的方式,都可以按照这种方案实现。在本发明的实施例中,以SQL语言为例进行说明。
优选地,在上述实施例中,所述封装的内容还包括:一个或多个的参数或属性配置项;
所述接收用户选择的所述DAG组件的过程,还包括:
对所述用户选择的DAG组件,显示参数或属性配置面板;
接收用户输入的配置的参数或属性数据,并实时校验是否正确。
每个DAG组件的功能,都设置有可以配置的参数范围、或属性配置范围等,如果用户配置的数值超过范围值,通过数值比较后,会向用户弹出问题弹窗。如图2所示,相对于现有的方案,需要代码全部完成,在后期的编译过程中,才会看到配置错误的情况,本实施例在软件开发过程中,就可发现配置错误内容,提高了代码的正确率。
优选地,还包括:
在所述连接关系上,每增加一个DAG组件,所述DAG组件的连接关系发生变化,对新增加的DAG组件的前路的正确性进行验算;所述前路包括连接关系上的各个DAG组件及形成路径。如图3所示,在TT组件的基础上,用户拖拽了组件GroupBy,并采用连线连接,经过连接后,会及时检测GroupBy组件节点之前的TT,形成的路径,是否正确,可采用schema的推算的方式进行验证。这里的TT组件和GroupBy组件形成的连接也可以是一张子图,形成一个单独的SQL语句。
通过上述的实时检查,DAG可视化组件规范了算子的使用方式,比如组件的上下游,可以接什么组件,属性配置项允许配置什么样的内容,字段可以用那些字段等,都被严格的规范起来,降低了处理逻辑出错的可能性,即使用户配置出现错误,也能够实时提示出来。便于用户在每次DAG组件连接过程中,实时检测连接的组件以及连接关系是否正确。
优选地,还可以通过用户点击某个节点,如用户点击其中一个select节点,系统会验算该节点之前的路径,TT—GroupBy—filter—select的正确性,将这个路径及节点作为一个任务,对形成的路径及节点是否正确进行验算,采用如schema的推算的方式进行验证这个路径及节点的正确性。从而提升了实施的调试能力。
优选地,在采用schema实时验算的过程中,在组件间有连线动作,或者组件配置完成、修改时、触发以下流程:参见图4,包括:
S21:自顶向下检查每个组件的连线正确性;
211检查每个组件下游允许连接的组件类型(属于组件隐性配置);
212检查不通过,提示连线错误,本次检查终止;
S22、检查每个组件参数配置正确性;
221检查组件的配置参数是否符合参数规则,比如是否参数类型(整形、字符串),是否允许为空等等;
222检查配置项、配置表达式中引用的字段必须来自于上游组件的输出字段。如:上游源表组件输出两个字段aa、bb,则下游的Select组件配置的表达式中不能引用名字非aa、bb的字段;
S23、计算每个组件的输出schema;
231当连线、参数配置检查通过后进行输出shcema的推算;
232schema主要包括组件的输出字段列表以及字段类型(如:aa String,bb String);
233上游组件输出的schema即为下游组件输入的schema;
234每种组件都有固定的shcema推算逻辑,不同组件的解析方法可能不同。比如Select组件通过解析参数表达式获取输出字段:上游输入的schema为a String,b String,Select组件的selectFields配置为aa as a,max(bb)as b,通过表达式解析(可用SQL解析工具)解析到输出的schema为:aa String,bb String;对于Join组件:假设上游两路输入中,一路输出的schema为aa String,bb String,另外一路的输入为cc String,dd String,则Join组件的输入schema为上游两路schema的合集:aa String,bb String,cc String,dd String。通过这样的验算,可以得出整个SQL的逻辑是否正确。当每个DAG组件节点的检查没有通过,则终止DAG组件图的检查,输出节点配置错误信息。从而提升了代码的纠错能力。
优选地,为便于用户后续开发软件更便捷,提升效率,在已经建立的多个DAG组件形成的连接关系上,可以框选已经形成连接关系的多个部分DAG组件,将框选的多个DAG组件作为一个模板保存,后续再次编辑时,可以直接拖拽这个模板,加入到整个开发的软件中。模板内容包括组件的一些公共配置属性(如表的连接信息、表的字段信息、表达式信息等)以及组件间的连线等。从而形成对代码的快速复用,提升软壳的开发效率。
优选地,还包括,对DAG形成的组件关系图进行分析,形成最终用于编译的代码。上述的分析过程,是将DAG组件图的组件,分解成最终的代码,如SQL的DAG组件最终分解为可执行的SQL代码。下面详细说明一个具体分解过程的实例。
参见图5,在实施例中,主要包括渲染后的形成连接关系的前端的DAG组件,位于 图中的第一行。
在分解过程中,从第一行的DAG各个组件,向下分解。第一行的各个DAG组件,其形成连接关系的视图如图6所示,这些DAG组件图,进行分解后,形成节点列表和边列表,构成一个json数据体,json为JavaScript对象表示法语法的子集。每一个节点存储了组件类型以及用户在该组件配置面板配置的组件参数,边数据存储了组件间的有向连线的关系。如图4中的第二行的视图层。
第二行的视图层接到DAG数据体之后,将DAG子图拆分为多个子图,拆分的目的使每一个子图最终都生成一个单独的SQL语句,拆分的依据为判断每个节点的DAG组件是否需要就此断开,(如本例的create view节点与其后节点需要断开,以形成一个独立的SQL表达语句)。经过拆分后,形成如图5所示的第三行的DAG抽象组件层的内容,即抽象组件层。
DAG抽象组件层将DAG组件拆分成3个子图,拆分后的三个子图如图6所示。对应图5中第三行中三个虚线框中的内容。在上述每层的传输过程中,每层内容的数据结构也会相应调整。
抽象组件层接到视图层的数据后,将内容进一步分解后,得到基础逻辑算子层的内容,如图5中的第四行所示。将DAG组件拆分成一个或者多个基础的SQL算子结构(根据DAG组件封装的功能),如图5或图6中GroupBy组件,可以拆分成一个GroupBy算子和一个Select算子。
基础逻辑算子层,依次遍历抽象组件层解析、拆分后的逻辑算子子图,生成对应的SQL代码。
如GroupBy组件,可以拆分成一个GroupBy算子和一个Select算子,生成的语句为:CREATE VIEW view_4cc AS SELECT aa,max(bb)AS bb FROM AA GROUP BY aa;
GroupBy组件对应的子图为图7中左侧的子图1,中间为子图2、右侧为子图4。图5中的基础逻辑算子层中,中间的组件对应图7中的子图2,右侧的组件对应图7中的子图3。
基础逻辑算子层,将子图2生成的SQL和子图3生成的SQL分别如下:
子图2生成的SQL语句代码:
SELECT aa,bb FROM view_4cc WHERE aa>0 and aa<100;
子图3生成的SQL语句代码:
SELECT aa,bb FROM view_4cc WHERE aa>100
通过上述的步骤,实现了将DAG图代码话,便于工程人员进一步调试,编译代码。
在上述过程中,如果用户需要从代码状态切换到DAG组件的视图模式,可以通过切换按钮,将从代码行的窗口切换为DAG视图模式,此时,按照上述代码分析过程的逆运算,转换为DAG视图。以SQL语言为例,具体过程如下:
执行SQL切换到DAG的动作触发以下流程:
基础逻辑算子层,接收到SQL层编辑的SQL文本内容,利用SQL解析工具将SQL文本内容解析成AST语法树,遍历、解析AST语法树生成定义的基础算子DAG数据结构。其中遍历AST语法树可以使用现有的SQL工具,按照最终的封装的功能,将每一条单独的SQL语句解析为一个独立的逻辑算子DAG结构;
抽象组件层,根据抽象组件封装需要,将一个或者多个逻辑算子封装成抽象组件,最终输出抽象组件DAG数据结构;如本示例中:基于通常的语法特征,groupBy算子一定结合select算子使用,因为可以合并为GroupBy抽象组件。本例中最终输出三个独立的逻辑组件DAG结构,如图5所示的上虚线框中组件。
DAG视图层,将三个独立的逻辑组件DAG结构合并为一个独立的DAG结构。合并的原则是寻找子图之间的输入输出关联。比如图6、图7中的CreateView节点最终输出一个名字为view_4cc的view视图,子图2、子图3的首节点,从名字为view_4cc的源上读取数据,由此可以判定子图2、子图3与子图1之前有数据关联,为子图1的下游子图。合并三个子图形成一个完整的DAG数据结构,如图5中的完整DAG视图层中的图结构。封装的组件,可以按照不同的组件功能封装,如按照数据处理或数据查询分类、按照数据库的定义/计算引擎的对象封装、或数据库的管控权限。
前端,接收到完整的DAG图数据结构,渲染为可视化的DAG编辑图,形成如图6所示的形式。
优选地,本发明的实施例提供一种计算机可读存储介质,上述实施例中的步骤,可以采用程序代码的形式存储在计算机介质中,该程序被处理器执行时,实现上述实施例中的方法。
优选地,本发明的实施例提供一种计算机设备,安装有上述的计算机存储介质。如用于提供下载上述代码软件的服务器,或读取上述介质中的电脑。
优选地,本发明的实施例还提供一种采用图形化的开发的装置,包括:
封装模块,用于将实现组件功能的算子、允许连接的其他DAG组件名称封装在每个DAG组件内;
展示模块,用于向用户展示可视化的多个DAG组件;
图形模块,用于接收用户选择多个DAG组件、以及用户按照每个DAG组件的功能和允许连接的组件来建立各个DAG组件的连接关系,生成DAG组件图。
优选地,所述封装的内容还包括:一个或多个的参数或属性配置项;
所述图形模块,还连接有参数校验模块,用于对所述用户选择的DAG组件,显示参数或属性配置面板;
接收用户输入的配置的参数或属性数据,并实时校验是否正确。
优选地,所述图形模块,还连接有验算模块,用于在所述连接关系上,每增加一个DAG组件,所述连接关系发生变化后,对新增加的DAG组件的前路的正确性进行验算;所述前路包括连接关系上的各个DAG组件及形成路径;
或,点击任一个DAG组件,对其前路的DAG组件的路径正确性进行验算。
优选地,所述图形模块还连接有模板模块,用于在已经建立的多个DAG组件形成的连接关系上,框选多个DAG组件,作为一个可调用模板进行保存。
优选地,所述图形模块还连接有分析模块,包括:
第一子模块,用于将所述各个DAG组件及连线形成的所述连接关系,分解为数据结构;
第二子模块,用于将分解后的数据结构,按照语句的构成,拆分成多个逻辑算子;
第三子模块,用于所述拆分后的多个逻辑算子,生成相应的语句代码。
优选地,所述分析模块还连接有转换模块,用于接收切换指令,对所述分析过程,执行逆操作,形成所述DAG组件图。
图8为本发明实施例的装置结构的模块框图。上述实施例中的装置,可集成在各种计算机设备内,或存储介质内,实现实施例中的各个方法步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是 这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (16)

  1. 一种采用图形化的开发的方法,其特征在于,包括:
    将实现组件功能的算子、允许连接的其他DAG组件名称封装在每个DAG组件内;
    向用户展示可视化的多个DAG组件;
    接收用户选择多个DAG组件、以及按照每个DAG组件的功能和允许连接的组件来建立各个DAG组件的连接关系,生成DAG组件图。
  2. 根据权利要求1所述的方法,其特征在于,所述封装的内容还包括:一个或多个的参数或属性配置项;
    所述接收用户选择的所述DAG组件的过程,还包括:
    对所述用户选择的DAG组件,显示参数或属性配置面板;
    接收用户输入的配置的参数或属性数据,并实时校验是否正确。
  3. 根据权利要求1所述的方法,其特征在于,还包括:
    在所述连接关系上,每增加一个DAG组件,所述连接关系发生变化后,对新增加的DAG组件的前路的正确性进行验算;所述前路包括连接关系上的各个DAG组件及形成路径;
    或,点击任一个DAG组件,对其前路的DAG组件的路径正确性进行验算。
  4. 根据权利要求3所述的方法,其特征在于,所述验算过程包括:检查每个DAG组件的一个或多个的输入、输出的字段列表和类型的正确性。
  5. 根据权利要求1所述的方法,其特征在于,还包括:在已经建立的多个DAG组件形成的连接关系上,框选多个DAG组件,作为一个可调用模板进行保存。
  6. 根据权利要求1所述的方法,其特征在于,所述生成DAG组件图之后,还包括:分析所述DAG组件图的代码关系。
  7. 根据权利要求6所述的方法,其特征在于,所述分析的过程包括:
    将所述各个DAG组件及连线形成的所述连接关系,分解为数据结构;
    将分解后的数据结构,按照语句的构成,拆分成多个逻辑算子;
    所述拆分后的多个逻辑算子,生成相应的语句代码。
  8. 根据权利要求7所述的方法,其特征在于,所述生成相依的语句代码后,还包括:接收切换指令,对所述分析过程,执行逆操作,形成所述DAG组件图。
  9. 一种计算机可读存储介质,其特征在于,存储有计算机程序,该程序被处理器执行时,实现权利要求1~8任一项所述的方法。
  10. 一种计算机设备,其特征在于,安装有权利要求9所述的计算机存储介质。
  11. 一种采用图形化的开发的装置,其特征在于,包括:
    封装模块,用于将实现组件功能的算子、允许连接的其他DAG组件名称封装在每个DAG组件内;
    展示模块,用于向用户展示可视化的多个DAG组件;
    图形模块,用于接收用户选择多个DAG组件、以及按照每个DAG组件的功能和允许连接的组件来建立各个DAG组件的连接关系,生成DAG组件图。
  12. 根据权利要求11所述的装置,其特征在于,所述封装的内容还包括:一个或多个的参数或属性配置项;
    所述图形模块,还连接有参数校验模块,用于对所述用户选择的DAG组件,显示参数或属性配置面板;
    接收用户输入的配置的参数或属性数据,并实时校验是否正确。
  13. 根据权利要求12所述的装置,其特征在于,所述图形模块,还连接有验算模块,用于在所述连接关系上,每增加一个DAG组件,所述连接关系发生变化后,对新增加的DAG组件的前路的正确性进行验算;所述前路包括连接关系上的各个DAG组件及形成路径;
    或,点击任一个DAG组件,对其前路的DAG组件的路径正确性进行验算。
  14. 根据权利要求12所述的装置,其特征在于,所述图形模块还连接有模板模块,用于在已经建立的多个DAG组件形成的连接关系上,框选多个DAG组件,作为一个可调用模板进行保存。
  15. 根据权利要求12所述的装置,其特征在于,所述图形模块还连接有分析模块,包括:
    第一子模块,用于将所述各个DAG组件及连线形成的所述连接关系,分解为数据结构;
    第二子模块,用于将分解后的数据结构,按照语句的构成,拆分成多个逻辑算子;
    第三子模块,用于所述拆分后的多个逻辑算子,生成相应的语句代码。
  16. 根据权利要求15所述的装置,其特征在于,所述分析模块还连接有转换模块,用于接收切换指令,对所述分析过程,执行逆操作,形成所述DAG组件图。
PCT/CN2020/083154 2019-04-15 2020-04-03 一种采用图形化的开发的方法、介质、设备和装置 WO2020211661A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SG11202111074VA SG11202111074VA (en) 2019-04-15 2020-04-03 Graphical development method, medium, device, and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910299903.7A CN111831272A (zh) 2019-04-15 2019-04-15 一种采用图形化的开发的方法、介质、设备和装置
CN201910299903.7 2019-04-15

Publications (1)

Publication Number Publication Date
WO2020211661A1 true WO2020211661A1 (zh) 2020-10-22

Family

ID=72838065

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/083154 WO2020211661A1 (zh) 2019-04-15 2020-04-03 一种采用图形化的开发的方法、介质、设备和装置

Country Status (3)

Country Link
CN (1) CN111831272A (zh)
SG (1) SG11202111074VA (zh)
WO (1) WO2020211661A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113495723A (zh) * 2021-07-28 2021-10-12 北京信安世纪科技股份有限公司 一种调用功能组件的方法、装置及存储介质
CN114879943A (zh) * 2022-06-30 2022-08-09 浙江大华技术股份有限公司 一种算法方案生成方法、装置以及计算机可读存储介质
CN114969085A (zh) * 2022-03-16 2022-08-30 杭州半云科技有限公司 一种基于可视化技术算法建模的方法和系统
CN117171203A (zh) * 2023-09-04 2023-12-05 申万宏源证券有限公司 一种基于零代码推理引擎的sql自动生成方法及系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506497B (zh) * 2020-11-30 2021-08-24 北京九章云极科技有限公司 一种数据处理方法和数据处理系统
CN113821200B (zh) * 2021-08-20 2022-08-30 浙江时空道宇科技有限公司 大数据任务可拖拽建模方法、系统、存储介质和终端
CN113792067B (zh) * 2021-11-16 2022-02-11 全景智联(武汉)科技有限公司 一种基于递归算法的sql自动生成系统与方法
CN114153445B (zh) * 2022-02-09 2022-05-20 中国电子信息产业集团有限公司 一种通过批量选择组件实现快速生成连接关系的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140149963A1 (en) * 2012-11-26 2014-05-29 Electronics And Telecommunications Research Institute Method and apparatus for combining robot software components
CN108228172A (zh) * 2018-01-11 2018-06-29 携程旅游网络技术(上海)有限公司 脚本的编写方法及系统
CN108415695A (zh) * 2018-01-25 2018-08-17 新智数字科技有限公司 一种基于可视化组件的数据处理方法、装置和设备
CN108628597A (zh) * 2018-04-25 2018-10-09 赵宇 一种机器视觉系统开发方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564368B1 (en) * 1998-10-01 2003-05-13 Call Center Technology, Inc. System and method for visual application development without programming
US6385769B1 (en) * 1999-02-03 2002-05-07 International Business Machines Corporation Text based object oriented program code with a visual program builder and parser support for predetermined and not predetermined formats
CN106775765B (zh) * 2017-01-12 2020-10-27 武汉图灵创客科技有限公司 图形化编程系统
CN108334321A (zh) * 2017-01-18 2018-07-27 阿里巴巴集团控股有限公司 程序代码的展示设备、方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140149963A1 (en) * 2012-11-26 2014-05-29 Electronics And Telecommunications Research Institute Method and apparatus for combining robot software components
CN108228172A (zh) * 2018-01-11 2018-06-29 携程旅游网络技术(上海)有限公司 脚本的编写方法及系统
CN108415695A (zh) * 2018-01-25 2018-08-17 新智数字科技有限公司 一种基于可视化组件的数据处理方法、装置和设备
CN108628597A (zh) * 2018-04-25 2018-10-09 赵宇 一种机器视觉系统开发方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113495723A (zh) * 2021-07-28 2021-10-12 北京信安世纪科技股份有限公司 一种调用功能组件的方法、装置及存储介质
CN113495723B (zh) * 2021-07-28 2023-09-22 北京信安世纪科技股份有限公司 一种调用功能组件的方法、装置及存储介质
CN114969085A (zh) * 2022-03-16 2022-08-30 杭州半云科技有限公司 一种基于可视化技术算法建模的方法和系统
CN114879943A (zh) * 2022-06-30 2022-08-09 浙江大华技术股份有限公司 一种算法方案生成方法、装置以及计算机可读存储介质
CN117171203A (zh) * 2023-09-04 2023-12-05 申万宏源证券有限公司 一种基于零代码推理引擎的sql自动生成方法及系统
CN117171203B (zh) * 2023-09-04 2024-04-26 申万宏源证券有限公司 一种基于零代码推理引擎的sql自动生成方法及系统

Also Published As

Publication number Publication date
SG11202111074VA (en) 2021-11-29
CN111831272A (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
WO2020211661A1 (zh) 一种采用图形化的开发的方法、介质、设备和装置
US10853231B2 (en) Detection and correction of coding errors in software development
US10133649B2 (en) System and methods for model-based analysis of software
US8943003B2 (en) Composite production rules
US20160147637A1 (en) Contextual debugging of sql queries in database-accessing applications
US8527452B2 (en) Construction of rules for use in a complex event processing system
CN110874367B (zh) 结构化查询语言语句的可视化方法和装置
US20060136863A1 (en) Applying coding standards in graphical programming environments
CN106648662B (zh) 基于工程造价计算描述语言bcl的报表生成装置及生成方法
CN108255837B (zh) 一种sql解析器及方法
US8869105B2 (en) Extensibility integrated development environment for business object extension development
Hu et al. DeepGraph: A PyCharm tool for visualizing and understanding deep learning models
Guana et al. Chaintracker, a model-transformation trace analysis tool for code-generation environments
Wanderley et al. SnapMind: A framework to support consistency and validation of model-based requirements in agile development
Kolahdouz-Rahimi et al. A comparison of quality flaws and technical debt in model transformation specifications
US10732938B2 (en) System design apparatus and method
Wimmer et al. A Petri Net based debugging environment for QVT Relations
Favre et al. Formal mof metamodeling and tool support
Nagoya et al. Developing a web dictionary system using the SOFL three-step specification approach
KR101974804B1 (ko) 플로우 다이어그램 생성 방법 및 이를 실행하는 장치
Jim et al. From UML diagrams to behavioural source code
CN116610558A (zh) 代码检测方法、装置、电子设备及计算机可读存储介质
Tamble An Interactive modeling editor for QVT relations
Flotyński et al. E-XR Development Tools for Explorable Environments
Mendes A new models editor for the IVY Workbench

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20790923

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20790923

Country of ref document: EP

Kind code of ref document: A1