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.
   
   
![image](https://user-images.githubusercontent.com/2106987/105627633-f8e56d00-5e72-11eb-98a1-42403e90a0d4.png)
   
   
![image](https://user-images.githubusercontent.com/2106987/105627640-026ed500-5e73-11eb-9827-1e394736f252.png)
   
   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


Reply via email to