Application Integration System, Corresponding Computer Device, and Storage Medium
By providing an application integration system based on low code interaction mode, the problem of lack of visual programming methods and high technical thresholds in the prior art is solved, and the effect of reducing R&D costs and improving implementation efficiency is achieved.
Patent Information
- Application Number
- CN202211003156.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-19
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2042-08-19
AI Technical Summary
The existing application integration platform lacks visual programming methods, has high technical thresholds and complex operations, and when supporting three situations: service integration, data integration, and message integration, the software purchase and learning costs are high.
It provides an application integration system based on low-code interaction mode, including a visual web designer, a front-end conversion module and a back-end API interface module. It combines and draws the processing flow by dragging and dropping the configuration components, generates metadata definition files and saves them to the database.
It lowers the technical threshold for application integration, reduces R&D costs, improves implementation efficiency, and allows both professional and non-professional personnel to use the system easily.
Smart Images

Figure CN115480753B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of electronic digital data processing, and in particular, to an application integration system, corresponding computer devices, and computer-readable storage media. Background Art
[0002] The essence of enterprise informatization application integration is to connect the originally separate homogeneous or heterogeneous systems in an enterprise, and then deeply develop enterprise business to create the greatest commercial value. Application integration helps enterprises solve the common problems in enterprise informatization, such as difficult information resource sharing, serious information islands, difficult collaboration between IT systems, and difficult and slow response of IT systems to business requirements.
[0003] The construction of application integration, from the initial island construction, point-to-point integration, service integration to the current hybrid cloud integration, requires both an enterprise application integration implementation methodology and solutions, and also the support of application integration platform software or tools. Enterprise application integration platforms or tools are generally divided into three types: service integration, data integration, and message integration, each with its own products or middleware. For example, service integration is generally an ESB bus, mainly based on the interface integration of WebService and RestAPI; data integration is generally in the form of ETL or ELT; message integration generally uses MQ message middleware. Although application integration has been accepted and implemented by domestic enterprises, software manufacturers, integrators and other customers, in the practice of enterprise informatization in recent years, the following problems still exist:
[0004] - Commercial or open-source integration platform products lack a visual programming method or lack an efficient visual programming method. The integration application editors they provide have a high technical threshold, complex operations, and users need to have a high technical background and go through professional training. For some custom integration scenarios, the script function is insufficient, and online code editing and dynamic execution are not possible. Only offline integration code can be written according to the agreed SDK specifications;
[0005] - Some large enterprise application integration scenarios need to support service integration, data integration, and message integration at the same time. If corresponding middleware is purchased or used for each integration method, the software purchase cost and learning cost will increase significantly. Therefore, the best enterprise integration solution is to have a product or tool that can support these three integration scenarios at the same time;
[0006] - For application integration platforms or tools developed based on the popular open-source Apache Camel, there is a problem in design. The DSL of Apache Camel does not have the product concept of integrated applications, and integrated applications are expressed from a technical perspective rather than a business perspective. The product expression is not clear and needs further encapsulation and abstraction;
[0007] -For pure custom development of application integration, users need to learn various open-source application integration-related technologies for hard coding, resulting in high R & D costs and poor software maintainability.
[0008] Therefore, there is a need to provide a lightweight application integration system based on low-code with a clear concept of integrated applications. Summary of the Invention
[0009] The present invention provides an application integration system, corresponding computer device, and storage medium. Based on a low-code interaction mode, it can be used by both R & D personnel and implementation personnel, reducing R & D costs and improving implementation efficiency.
[0010] In the first aspect of the present invention, an application integration system is provided, which includes:
[0011] A visual Web designer, which is used to obtain a visual Web design result by dragging and dropping corresponding primitive elements to configure the component combination of the integrated application and draw the processing flow of the integrated application in response to adding a new integrated application. The primitive elements include terminal components, routing components, processor components, messages, directed connections, terminal attributes, routing attributes, and processor attributes. The terminal component is a connector component for receiving or accessing external resources. The routing component is a component for intermediate processing of input messages. The processor component is a processing node component for routing. One end of a directed connection is the source and the other end is the target component, and the connection arrow indicates the message flow direction. The terminal component includes four types: IN, IN-OUT, OUT, and OUT-IN. Each integrated application includes one IN or IN-OUT type terminal, one or more routings, and one or more OUT or OUT-IN type terminals. Each routing includes one input, one or more processors, and one or more outputs;
[0012] A front-end conversion module, which is used to convert the visual Web design result into a corresponding metadata definition file. The metadata definition file describes the coordinate positions and mutual relationships of each component of the terminal, routing, and processor;
[0013] A back-end API interface module, which is used to call the corresponding API interface to save the metadata definition file to the database.
[0014] In the second aspect of the present invention, a computer device is provided, including a processor, a memory, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, it realizes the functions of the system according to the first aspect of the present invention.
[0015] According to a third aspect of the present invention, there is provided a computer-readable storage medium having stored thereon a computer program, which when executed by a processor, implements the functions of the system according to the first aspect of the present invention.
[0016] In accordance with the present invention, by responding to a newly added integrated application, obtaining a visual Web design result by dragging and dropping corresponding graphic elements to configure the component combination of the integrated application and drawing the processing flow of the integrated application, converting the visual Web design result into a corresponding metadata definition file, and calling a corresponding API interface to save the metadata definition file to a database to complete the corresponding integrated application, a lightweight application integration system based on a low-code designer is realized. Professional R & D personnel and business-savvy implementers can easily use such an application integration system, which reduces the technical threshold of application integration, reduces R & D costs, and improves implementation efficiency at the same time.
[0017] After reading the detailed description of the embodiments of the present invention in conjunction with the accompanying drawings, other features and advantages of the present invention will become clearer. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1 It is a block diagram of an embodiment of the system according to the present invention;
[0019] Figure 2 It is an example of a graphic element;
[0020] Figure 3 It is a visual Web design result of an example of an integrated application;
[0021] Figure 4 is Figure 3 An example of a configuration sub-page of "routing <return processing>" in
[0022] For clarity, these drawings are schematic and simplified, showing only the details necessary for understanding the present invention and omitting other details. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0023] The embodiments and examples of the present invention will be described in detail below with reference to the accompanying drawings.
[0024] The scope of application of the present invention will be apparent from the detailed description given below. However, it should be understood that while the detailed description and specific examples illustrate the preferred embodiments of the present invention, they are given for illustrative purposes only.
[0025] Figure 1The block diagram of a preferred embodiment of an application integration system according to the present invention is shown. The application integration system is a WEB system with a B / S structure, including a visual Web designer (also known as a low-code designer) 102, a front-end conversion module 104, a back-end API interface module 106, an integrated application management module 108, an integration engine 110, and a system management module 112. In other embodiments, the application integration system may include some of the foregoing modules, or may include other modules in addition to the foregoing modules.
[0026] The visual Web designer 102 is used to obtain a visual Web design result by dragging and dropping corresponding primitive elements to configure the component combination of the integrated application and draw the processing flow of the integrated application in response to the addition of an integrated application.
[0027] The core primitive elements of the low-code designer include: terminals, routers, processors, messages, directed connections, and component (terminal, router, processor) attributes. Among them, the terminals are divided into four types: IN, IN-OUT, OUT, and OUT-IN; the messages are divided into three types: input messages, normal output messages, and abnormal output messages. Figure 2 An example of the primitive elements is shown.
[0028] A terminal is a connector component that receives or accesses external resources. From the perspective of the integration method, it includes five common terminals: HTTP, WebService, database, scheduled task, and Kafka terminal; from the perspective of the communication method, it is divided into two types: IN and OUT. Among them, IN is for external calls, and the integration engine receives external messages or returns; OUT is for the integration engine to access or obtain external resources, and is divided into: 1) IN type: the integration engine publishes an API for third-party calls, but does not return a response message, which is applicable to HTTP and WebService terminals; 2) IN-OUT type: the integration engine publishes an API for third-party calls and returns a response message at the same time, which is applicable to HTTP, WebService, and scheduled task terminals; 3) OUT type: the integration engine updates data in the database, but does not care about whether it is successful, which is applicable to HTTP, WebService, and database terminals; 4) OUT-IN type: the integration engine calls the API interface of a third party and needs to obtain the response message of the other party, which is applicable to HTTP and WebService terminals.
[0029] A router is a component that performs intermediate processing on input messages, and can implement functions such as message processing, message routing, message conversion, and exception handling, and outputs the processing result to the next terminal or router node.
[0030] The processor is a processing node component of routing, which encapsulates the classic operations of message processing, routing, and transformation in the Enterprise Integration Pattern (EIP), and can provide functions such as data filtering, data mapping, data transformation, data splitting, sending message responses, scripting, and logging.
[0031] The low-code designer can provide default and extensible terminal, routing, and processor basic components. For example, it includes four types of terminals: HTTP, WebService, database, and timer; three types of routing: parameter processing (a type of message processing), EIP processing (such as message routing and message transformation), and error processing (a type of exception handling); and five types of processor components: data filtering, data transformation, sending message responses, Groovy scripting, and logging. Different types of terminals, routing processors all have their own independent visual property editors.
[0032] The overall interaction logic of the low-code designer is to draw the overall process of the integrated application on the total page, that is, the combined processing process of terminals and routing, and then enter the configuration sub-page of each routing to draw the combined processing process of processors. Each integrated application includes an IN or IN-OUT type terminal, one or more routings, and one or more OUT or OUT-IN type terminals. At the same time, each routing includes an input, one or more processors, and one or more outputs. Terminals cannot be directly connected to terminals and must go through routing, and routing can be connected to routing.
[0033] Each integrated application and routing have two virtual nodes, INPUT and OUTPUT, representing the start and end of the processing process. Generally speaking, they have a start state and one or more end states. The first terminal of the integrated application is default to represent the start of the process, and the INPUT word is not displayed. The component where the message finally flows shows the OUTPUT word; for routing processing, it needs to be explicitly represented as starting. If there is only one end processor, it is default to represent the end of the process, and the OUTPUT word is not displayed.
[0034] Figure 3 Shows the visual Web design result of an integrated application example. Figure 4 Shows Figure 3 An example of the configuration sub-page of "routing <return processing>".
[0035] The front-end conversion module 104 is used to convert the visual Web design result into a corresponding metadata definition file.
[0036] The metadata definition needs to completely describe an integrated application and its components such as terminals, routing, and processors, as well as their mutual relationships, and also includes the attributes of each component.
[0037] According to the type and communication method, the property sets of each terminal and the processor are different and need to be defined in advance separately. Among them: The core properties of the OUT-IN HTTP terminal are hostname (remote host IP), port, resourceUri (URL address), method (HTTP method), requestHeaders (request message header), requestBody (request message body), requestTimeout (request delay); The core properties of the IN-OUT HTTP terminal are hostname (host IP), port, resourceUri (URL address), enableCors (whether cross-origin is supported), compressResponse (whether compression is supported), responseTimeout (response timeout), etc.; The core properties of the OUT-IN Webservice terminal are serviceAddress (service address), operationName (operation method), portName (WSDL port name), serviceName (WSDL service name), namespaceURI (namespace), requestHeaders (message body), connectionTimeout (connection timeout), soapRequestTemplate (SOAP request template); The core properties of the IN-OUT Webservice terminal are serviceAddress (service address), portName (WSDL port name), serviceName (WSDL service name), namespaceURI (namespace), responseTimeout (response timeout); The core properties of the database terminal are dataSource (data source), type (operation types include INSERT, UPDATE, DELETE, QUERY), script (SQL statement), params (parameter list), enableTransaction (whether transactions are supported), timeout (operation delay); The core properties of the timer terminal are cron (CRON expression), ifParallelProcess (whether parallel), dependencies (task properties).
[0038] The data filtering processor makes a branch judgment on the characteristic data of the message header according to conditions and transfers to the next processing node according to the branch. It can contain multiple filtering conditions, and the attributes of each filtering condition are as follows: cname (filtering condition name), id (target node ID), subType (condition type), GUIMeta (page filtering condition configuration metadata), expression (filtering condition expression). The attributes of each common processor are different and will not be elaborated here.
[0039] The metadata definition needs to describe the coordinate positions and mutual relationships of components such as terminals, routers, and processors on the low-code designer canvas. The mutual relationships are expressed through connection lines. One end of a connection line is the source component and the other end is the target component, and the arrow of the connection line indicates the message flow direction.
[0040] The metadata definition can be expressed in JSON or XML data format.
[0041] The core structure and description of the metadata definition are as follows:
[0042]
[0043]
[0044] Through the drag-and-drop on the low-code designer canvas of visual programming, the component combination and process definition of the integration application are determined, and then the metadata definition file of the integration application model is formed.
[0045] To improve the low-code programming efficiency, users can directly perform online programming in the Groovy script processor. That is, based on the open-source Groovy script WEB code text editor, what you see is what you get. The programming operation is basically the same as that of the offline IDE. You can directly edit the code, dynamically compile and execute, test and publish, and test on the WEB page to see the program execution result. After publishing, a binding relationship can be established with the integration application to which the Groovy script processor belongs. When the integration engine executes the integration application, it dynamically executes the script of the integration application node.
[0046] The backend API interface module 106 is used to call the corresponding API interface to save the metadata definition file to the database. The backend API interface module can follow the standard HTTP RESTFUL API definition specification, and the core interfaces include integration application creation, modification, deletion, query, etc.
[0047] New interface:
[0048] http: / / IP: port number / create
[0049] POST method
[0050] Request body parameter: Metadata definition JSON file
[0051] Response body parameter: Success or failure
[0052] Modify interface:
[0053] http: / / IP:port number / update?id=<Integration application ID>
[0054] POST method
[0055] Request body parameter: Modified metadata definition JSON file
[0056] Response body parameter: Success or failure
[0057] Delete interface:
[0058] http: / / IP:port number / delete?id=<Integration application ID>
[0059] POST method
[0060] Response body parameter: Success or failure
[0061] The present invention does not depend on a front - end framework. It can choose popular ones such as REACT and VUE currently, or can also be implemented in the way of native JavaScript / CSS / Html5.
[0062] The integrated application management module 108 is used to perform unified life - cycle management on the completed integrated applications, and publish or unpublish them through the service registry. Publishing a newly created integrated application is to notify the integration engine of the metadata definition of the integrated application model and trigger the execution process, and at the same time synchronize it to the service registry for external calls. Conversely, unpublishing is to abort the execution of the integrated application by the integration engine and delete the corresponding external service address in the service registry.
[0063] The integration engine 110 is used to correctly deploy, parse and execute the integrated application in the execution container, complete core functions such as protocol conversion, data conversion, service routing, service orchestration, data retention, etc., and at the same time support script execution.
[0064] In the embodiment, the integration engine is implemented based on open - source Apache Camel and Spring Boot. The integration engine converts the metadata definition of the integrated application model in the database into an Apache Camel Spring DSL file, dynamically loads it into the Spring environment, and then Apache Camel parses, constructs and executes the Spring DSL.
[0065] The core parsing and conversion rules of the metadata definition of the integrated application model, for example, include:
[0066] 1) One integrated application corresponds to one camelContext; one terminal corresponds to one from or to function; one route corresponds to the execution flow fragment of multiple processing functions between from and to or one routeId; the processor of one route corresponds to a pre - set or custom processing function of Apache Camel between from and to.
[0067] 2) Terminal types are distinguished according to the property descriptions of the from or to functions.
[0068] 3) For common and basic processors referring to Apache Camel, direct mapping and parsing are performed on both sides. Custom processors need to follow the Apache Camel custom processor definition specification.
[0069] In addition, to ensure the execution of Groovy scripts, the integration engine needs to pre - set and provide a Groovy execution environment. At the same time, it provides common system resource management such as data source management, variable management, transformation dictionary management, etc.
[0070] The system management module 112 is used to track and monitor the execution of integrated applications, provide logs, and can also provide relevant security policies to uniformly manage nodes in the cluster mode. For example, it can perform fine - grained real - time monitoring on the input and output message flows of the terminals and routes of each integrated application: 1) Each terminal and route defaultly carry message input queues, and data statistics cut - offs are added at both the input and output ends to provide the request queue length, total number of messages, number of error messages, and processing rate (number of messages per second); 2) Capture error messages and record the error stack; 3) Provide an ElasticSearch search engine to ensure the retention and fast query of the smallest - granularity information records.
[0071] The service registry is the service directory of the integrated application. The service directory provides the services provided by IN - type HTTP or Webservice terminals, and the service - related information includes: service name, service access address, etc. It is also the only public entry for external access to the external services of the application integration system. The integration engine is based on a distributed architecture and can be deployed in a cluster. The combination of the two can provide a highly available and high - performance data integration service entry. The system management module uniformly manages the service registry and the integration engine cluster of the application integration. Their mutual relationship is as follows: the application integration management module publishes and triggers the running of the integrated application and synchronizes it to the service registry. The service registry notifies the caller of new service information changes. The caller obtains the service information from the service registry and places it in the local cache. The integration engine runs the integrated application, and the caller makes service calls from the integration engine.
[0072] As a sub-module of the integrated application management module, the service registry can be technically implemented using a database, ZooKeeper, or Redis. It is in a cluster mode by itself. For the application integration engine cluster, a peer-to-peer cluster can be used, and Nginx can be used for load balancing to share the access pressure of the front-end services.
[0073] The overall core process of the application integration system is as follows: Start the application integration system; the integration engine loads the Camel running environment and custom environments such as Groovy; use the low-code designer to design integrated applications, including adding, modifying, and / or deleting, or editing after anti-publishing; the integrated application management module publishes the integrated application, triggers the running of the integrated application, and synchronizes it to the service registry; the integration engine parses the metadata definition of the integrated application model to generate Spring DSL and dynamically loads it, and Camel parses and runs Spring DSL; the system management module performs real-time monitoring and tracking of the integrated application process.
[0074] The application integration system in the above embodiment provides a lightweight and complete solution based on a low-code designer. It provides a low-code interaction mode based on a well-defined application integration model, which can be easily used by professional R & D personnel and business-savvy implementers, reducing the technical threshold of application integration, while also reducing R & D costs and improving implementation efficiency.
[0075] In another embodiment, the application integration system may further include a front-end reverse conversion module, which is used to, in response to modifying an integrated application, reverse-convert the metadata definition file of the corresponding integrated application into the corresponding visual Web design result and display it on the canvas of the visual Web designer. The user can re-design on the canvas of the visual Web designer. After that, the front-end conversion module forms a modified metadata definition file based on the modified visual Web design result, and the back-end API interface module calls the corresponding API interface to update the modified metadata definition file to the database.
[0076] In another embodiment, the application integration system may further include a deletion module, which is used for the user to search for the integrated application to be deleted and submit it on the page. After that, the back-end API interface module calls the corresponding API interface to delete the corresponding metadata definition file in the database.
[0077] In another embodiment, the present invention provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, it realizes the functions of the system embodiment shown in Figure 1 or other corresponding system embodiments, which will not be elaborated here.
[0078] In another embodiment, the present invention provides a computer device, including a processor, a memory, and a computer program stored on the memory and executable on the processor, wherein when the processor executes the computer program, it implements the functions combined with Figure 1 the system embodiment shown or other corresponding system embodiments, which will not be elaborated herein.
[0079] The multiple different embodiments or their specific features, structures or characteristics described herein may be appropriately combined in one or more embodiments of the present invention. Additionally, in certain cases, as appropriate, the order of steps described in the flowchart and / or the stream processing may be modified and does not necessarily have to be executed exactly in the described order. Further, multiple different aspects of the present invention may be implemented using software, hardware, firmware, or a combination thereof and / or other computer-implemented modules or devices that perform the functions. The software implementation of the present invention may include executable code stored in a computer-readable medium and executed by one or more processors. The computer-readable medium may include a computer hard drive, ROM, RAM, flash memory, portable computer storage media such as CD-ROM, DVD-ROM, flash drive, and / or other devices with a Universal Serial Bus (USB) interface, and / or any other suitable tangible or non-transitory computer-readable medium or computer memory on which the executable code may be stored and executed by the processor. The present invention may be used in combination with any appropriate operating system.
[0080] Unless explicitly stated, the singular forms "a", "the" used herein both include plural meanings (i.e., having the meaning of "at least one"). It should be further understood that the terms "having", "including" and / or "comprising" used in the specification indicate the presence of the stated features, steps, operations, elements and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, elements, components and / or their combinations. As used herein, the term "and / or" includes any and all combinations of one or more of the listed related items.
[0081] Some preferred embodiments of the present invention have been described above, but it should be emphasized that the present invention is not limited to these embodiments and can be implemented in other ways within the scope of the subject matter of the present invention. Those skilled in the art can make various variations and modifications to the present invention based on the inspiration of the technical concept of the present invention and without departing from the content of the present invention, and these variations or modifications still fall within the protection scope of the present invention.
Claims
1. An application integration system, characterized in that, The system includes: A visual Web designer that, in response to adding a new integrated application, obtains a visual Web design result by dragging and dropping corresponding primitive elements to configure the component combination of the integrated application and draw the processing flow of the integrated application. The primitive elements include terminal components, routing components, processor components, messages, directed connections, terminal attributes, routing attributes, and processor attributes. The terminal component is a connector component for receiving or accessing external resources. The routing component is a component for intermediate processing of input messages. The processor component is a processing node component for routing. One end of a directed connection is the source and the other end is the target component, and the connection arrow indicates the flow direction of the message. The terminal component includes four types: IN, IN - OUT, OUT, and OUT - IN. Each integrated application includes one IN or IN - OUT type terminal, one or more routings, and one or more OUT or OUT - IN type terminals. Each routing includes one input, one or more processors, and one or more outputs; A front - end conversion module that converts the visual Web design result into a corresponding metadata definition file, which describes the coordinate positions and mutual relationships of each component of the terminal, routing, and processor; A back - end API interface module that calls the corresponding API interface to save the metadata definition file to the database.
2. The system according to claim 1, wherein The system further includes: A front - end inverse conversion module that, in response to modifying an integrated application, inversely converts the metadata definition file of the corresponding integrated application into a corresponding visual Web design result and displays it in the visual Web designer; Wherein the front - end conversion module forms a modified metadata definition file according to the modified visual Web design result of the visual Web designer, and the back - end API interface module calls the corresponding API interface to update the modified metadata definition file to the database.
3. The system according to claim 1, wherein The terminal component includes HTTP, WebService, database, and timer terminals. The routing component includes parameter processing, error processing, and EIP processing routings. The processor component includes Groovy script, data filtering, data conversion, send message response, and logging processors.
4. The system according to claim 1, wherein The system further includes: An integrated application management module that performs life - cycle management on integrated applications, publishes integrated applications through a service registry, and triggers the running of integrated applications.
5. The system according to claim 4, characterized in that, The system further includes: An integration engine that loads the running environment, converts the metadata definition file of the triggered integrated application into a file suitable for the running environment and loads it into the running environment, and parses and executes the corresponding integrated application.
6. The system according to claim 5, characterized in that, The system further includes: A system management module that tracks and monitors the execution of integrated applications and provides logs.
7. The system according to claim 3, characterized in that, The system further includes: A programming module that directly performs online programming in the Groovy script processor.
8. The system according to claim 1, wherein The metadata definition file is expressed in JSON or XML data format.
9. A computer device, comprising a processor, a memory, and a computer program stored on the memory and executable on the processor, wherein when the processor executes the computer program, the functions of the system according to any one of claims 1-8 are implemented.
10. A computer-readable storage medium, having stored thereon a computer program, wherein when the computer program is executed by a processor, the functions of the system according to any one of claims 1-8 are implemented.