juzhiyuan edited a comment on issue #1247: URL: https://github.com/apache/apisix-dashboard/issues/1247#issuecomment-766325566
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**. ### Scenarios 1. screen grabbing: keystroke wizard. 2. process automation: automated operation and maintenance, automated inspection. 3. ... ### Evolution 1. completely manual. 2. manual + semi-automation. 3. AI + full automation. ### Products 1. Blue Prism. 2. UiPATH. 3. Automation Anywhere. ## Process Orchestration By combining various capabilities into a specific execution chain to accomplish a certain business. ### Objectives **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. ## Plug-in orchestration 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. ### Principle 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 ### Status - Underlying: completed. - Front-end: MVP version completed. ### Selection 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](https://x6.antv.vision/), 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`. - with nodes: visual interfaces for reuse and orchestration. - with pointing edges: flow visualization and the ability to carry parameters on edges. - with function definitions: the nodes can be configured through forms built by JSONSchema. 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. ### Version planning 1. Modify iMove to. 1. support for **external components** incoming: plug-ins and configuration parameters. 2. support orchestration template import and export (X6 natural support), according to the X6 specification, very few description files are not a backward-compatible problem. 2. process template assets. 1. contributors contribute templates, specific scenarios by submitting PRs. 3. ease of use. 4. optimization boundary condition qualification. ## Reference - [https://www.zhihu.com/question/324352017](https://www.zhihu.com/question/324352017) - BPMN.io - [https://developer.aliyun.com/article/781352](https://developer.aliyun.com/article/781352) - [https://mp.weixin.qq.com/s/GiFpswpm_N_5MlnBywRTgw](https://mp.weixin.qq.com/s/GiFpswpm_N_5MlnBywRTgw) ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org