Closed LiteSun closed 3 years ago
The enhanced design looks more powerful and clearer than before π I just want to confirm some details:
start node
end node
and Connection node
used to? Could these nodes also be configured? If so, where can we config them?please send to mailinglist too
and you need refer to more RPA too
imove[1] is also built with X6, the same as the current proposal, but this proposal should have more inspiration from other RPAs indeed.
The enhanced design looks more powerful and clearer than before π I just want to confirm some details:
- what does the
start node
end node
andConnection node
used to? Could these nodes also be configured? If so, where can we config them?- Could we draw two or more orchestrations once in the drawing area?
- how to delete or replace a node which is already in the orchestration? looking forward to your reply, thanks ^_^
The actual effect is more like the following picture.
We can only draw one orchestration in the drawing area.
If you want to delete a plugin, you need to select the plugin and press the delete buttonγ If you want to replace a plugin in the plugin orchestration, you need to delete the plugin and drag a new one to the node.
and you need refer to more RPA too
ok π
RPA (Robotic Process Automation) is the replacement of people by machines to perform jobs and tasks with fixed rules, high repetitiveness, and low added value.
By combining various capabilities into a specific execution chain to accomplish a certain business.
Empowering the demand side without developer intervention and enabling users (O&M, etc.) efficiently and cost-effectively to orchestrate according to logic and ultimately achieve high quality for a specific business through visualization.
Plugin orchestration is still a type of process orchestration.
In Apache APISIX, it is only necessary to implement each single responsibility plug-in (micro-plugin) at the minimum granularity of the business, decouple the complex business and maximize the reuse of plug-ins by orchestrating the description file to enable plug-ins to create plug-ins to complete complex business.
Users use DAG to complete plug-in orchestration and analyze and process request traffic through decision trees to achieve a low-code gateway.
Underlying principle: DAG β JSON β AST β Lua
The original MVP version used @mrblenny/react-flow-chart
as the underlying library, but due to low community motivation, weak documentation, and high cost for contributors to get started, a new underlying framework was chosen to optimize the plugin orchestration. Changing the underlying framework will result in a mismatch in the format of the choreography description file, but will not affect the DAG (JSON) received by the API.
During my research, I found the active community and richly documented diagram editing engine X6, which provides out-of-the-box interactive components and easy-to-use node customization capabilities to facilitate us to quickly build applications such as DAG diagrams that are just right for the underlying implementation.
In addition, @WenMing discovered the open-source project iMove
, a logically reusable, function-oriented, flow visualization JavaScript tool library. Its core is based on X6 and form-render
.
By integrating X6 with form-render, iMove enables writing normalization and orchestration tooling, which facilitates external integration and custom development.
The following are iMove screenshots.
Follow the process to drag and drop the left component to the canvas, configure it on the right side, and finally generate the target DAG.
TODO
convertGraphToScript
True/False
to condition node;Just added a Project here https://github.com/apache/apisix-dashboard/projects/5
why
Currently, our plugin orchestration has some features, but the interaction and functionality needs to be enhanced.
how
The plugin orchestration is divided into three blocks: functional component area, drawing board area, and property configuration area, in which the functional component area contains two parts: the base node and the plugin node. As showing below:
Functional component area
Base node
Plugin node
Drawing board area
Property configuration area
Plugin configuration: Plugin configuration needs to be changed from form configuration to codemirror configuration, as shown in the figure.
Conditional configuration: consistent with existing interactions
Related references: https://help.aliyun.com/product/55838.html https://aidev.xfyun.cn/aso/ https://www.restcloud.cn/restcloud/mycms/esb.html https://antv.vision/en
Feel free to comment here.
cc @membphis @juzhiyuan @liuxiran @bzp2010 @guoqqqi