- spring activiti ACT_RE_MODEL
hshpy
spring数据库sql
InSpring,ifyou'rereferringto"activiti"inthecontextofworkfloworbusinessprocessmanagement,it'slikelyyou'reusingtheActivitiBPMN(BusinessProcessModelandNotation)engine.InActiviti,ACT_RE_MODELisoneofthetab
- 【已解决】java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
badme
AndroidJavajavaandroid
一、开发现场:开发中使用activity作为二级界面弹出,且设置了透明主题二,崩溃日志:Causedby:java.lang.IllegalStateException:Onlyfullscreenopaqueactivitiescanrequestorientationatandroid.app.Activity.onCreate(Activity.java:986)atcom.xx.xxx.x
- 2024年3月5日 晨会汇报
进击切图仔
English前端
Goodmorning,colleagues!Today,I’dliketoshareanupdateaboutmyrecentworkactivitieswhichencompassesoftwoareas:anoverviewofmyworkactivitiesfromyesterdayandanagendafortoday.Yesterday’sprimarytaskwastofixingb
- org.activiti.engine.impl.RuntimeServiceImpl#startProcessInstanceByKey
hshpy
java开发语言springactiviti
Theorg.activiti.engine.impl.RuntimeServiceImpl#startProcessInstanceByKey(String,Map)methodisusedtostartanewprocessinstanceintheActivitienginebasedontheprovidedprocessdefinitionkeyandprocessvariables.H
- 数字化转型之数字资产知识库(springboot+es+vue+neo4j)
老街老街
前言在数字化高度普及的时代,企事业机关单位在日常工作中会产生大量的文档,例如医院制度汇编,企业知识共享库等。针对这些文档性的东西,手工纸质化去管理是非常消耗工作量的,并且纸质化查阅难,易损耗,所以电子化管理显得尤为重要。【springboot+elasticsearch+neo4j+vue+activiti】实现数字知识库管理系统。一、项目概要springboot、vue前后端分离技术。先进的富文
- TE好文精读精译010|动物对控制野火也很大的作用(2)
雷健_ef2d
来源:20200307期《Science&technology》专栏Wildfires原文Theroleoflargebrowsers,too,ismoresubtlethanmightatfirstappear.Theiractivitiesoftendestroythelowestbranchesofatreeandthuscreateagapbetweenthosebranchesthatr
- 【AI视野·今日CV 计算机视觉论文速览 第293期】Fri, 19 Jan 2024
hitrjj
视觉计算机视觉Papers计算机视觉SAMSegmetationInpainting图像感知图像重建
AI视野·今日CS.CV计算机视觉论文速览Fri,19Jan2024Totally103papers上期速览✈更多精彩请移步主页DailyComputerVisionPapersParaHome:ParameterizingEverydayHomeActivitiesTowards3DGenerativeModelingofHuman-ObjectInteractionsAuthorsJeongh
- 【Java万花筒】构建智能业务流程:探索Java流程与规则引擎库的全面指南
friklogff
Java万花筒java开发语言
领略Java流程与规则引擎的魅力:全面解析jBPM、Activiti、Drools等引擎库前言随着业务流程的复杂化和规则的多样化,Java流程与规则引擎成为了现代软件开发中不可或缺的组件之一。本文将深入探讨几个主要的Java流程与规则引擎库,包括jBPM、Activiti、Drools、Camunda、SpringStateMachine和RuleFlow,介绍它们的核心概念、功能特点以及应用场景
- Everyday English 0911
风华九里
中印边界蜿蜒曲折,跨越了地球上一些最高的山脉。这条未正式确定的边界沿线上的军事活动很难得到核实。Militaryactivitiesalongtheunofficialborder,whichzigsandzagsthroughsomeofthehighestmountainrangesonearth,aredifficulttoverify.unofficialborder=unmarkedbo
- camunda 优质的工作流组件引擎
ForestSpringH
web学习后端
Camunda流程引擎一、前言1、学习camunda可以得到什么?我们知道传统的activiti在其发展的过程中由于部分团队成员关于未来这款开源软件发展意见的分歧,导致分化为多个知名的流程引擎软件,camunda就是其中一条不可多得的团队,作为一个优质的工作流程引擎开源社区,它们被国际多个知名的大型互联网企业用来作为流程审批等服务的底层引擎,同时它提供八种外置的API工具,以及分隔开的BPMN流程
- 基于Java开发的全文检索、知识图谱、工作流审批机制的知识库
老街老街
一、项目介绍image.png一款全源码,可二开,可基于云部署、私有部署的企业级知识库云平台,应用在需要进行常用文档整理、分类、归集、检索的地方,适合知识密集型单位/历史文档丰富的单位,或者大型企业、集团。获取方式:平台私信。为什么建立知识库平台?image.png二、项目所用技术springboot+vue+tinyMce+activiti+elasticsearch+neo4j+redis+m
- Java整合activiti审批工作流引擎,在线流程编辑器,springboot+vue+activiti后台管理平台
码上编程
前言目前市场上有很多开源平台没有整合工作流,即使有,也是价格不菲的商业版,来看这篇文章的估计也了解了行情,肯定不便宜。我这个快速开发平台在系统基础功能(用户管理,部门管理…)上整合了工作流,你可以直接用来开发ERP,OA,CRM等企业级应用,不用再担心如何再去花大量的时间集成工作流进来。博主是个人开发者。研究工作流有几年了,依稀记得第一次写工作流是用在江苏某省局的用车申请业务上,那时候年轻气盛,精
- springboot2.0+activiti 7 整合(一)--初识activiti和创建数据库
南国木马
一、初识activiti因最近项目需求需要运用流程,选择使用activiti流程框架,网上大多是springboot2.0以下版本和activiti6.0的整合,因项目已经使用springboot2.0,所以记录整合activiti7的过程。个人对activiti的印象:1.activiti本身就是一个比较完整的应用程序,它包含数据库,API和前端;**可独立运行,详细可参考[activiti6.
- Activiti工作流管理系统(三)
swiftgod
前言当工作流流程图发布完成之后,下一步就是启动工作流,也是工作流引擎的核心功能,本篇重点将要对工作流的启动和流程进行详细说明。说明:所有项目配置均在系列第一篇文章中进行介绍,配置系列通用。系列三内容初始化参数、启动工作流、执行工作流页面总览页面总览.png功能详细说明初始化参数说明在实际项目中,有可能会有如下需求:需要在启动工作流的时候,提前向工作流中传参(全局变量),这些参数往往在业务上具有重要
- 2018-02-04
123321aaa
的确,时间是有限的。大家经常问我:你如何去管理时间。实际上我告诉大家,我的时间管理非常差。我如果有个管理秘诀的话,就是把想做的事情做掉,剩下的事情找不到时间,它就会自动消失。这个规律对我非常有启发:你的活动终将占满所有的时间,Youractivitieswillexpandtofillallthetimeyouhave。这也是个特别有用的真理:这意味着哪怕我们没有孩子,没有工作,你也不会一天到晚闲
- Springboot整合activiti7感悟1
光顾着
javatomcat
ActivitiModelerActivitiModeler是Activiti官方提供的一款在线流程设计的前端插件,开发人员可以方便在线进行流程设计,保存流程模型,部署至流程定义等等,后续我们的项目也是集成ActivitiModeler绘制流程定义。下载activiti-explorer官网下载:Getstarted|Activiti解压activiti-5.22.0.zip,在activiti-
- 流程引擎activiti、flowable、camunda简单介绍
A尘埃
流程引擎
市场上比较有名的开源流程引擎有osworkflow、jbpm、activiti、flowable、camunda。其中:Jbpm4、Activiti、Flowable、camunda四个框架同宗同源,祖先都是Jbpm4,开发者只要用过其中一个框架,基本上就会用其它三个。推荐使用camunda(流程引擎)+bpmn-js(流程设计器)组合,笔者在公司项目中经过实战验证,camunda在功能方面比fl
- SpringBoot 2.7.6 集成Activiti 7.1.0.M6 所需的配置文件
程序员爱技术
springbootjavasecurityactiviti7
4.0.0org.jliang.appsactiviti030.0.1-SNAPSHOTactiviti03activiti0311UTF-8UTF-82.7.6org.springframework.bootspring-boot-dependencies${spring-boot.version}pomimportorg.springframework.bootspring-boot-star
- The ways to handle stress
关大全
Recently,Ihadatalkwithmyforeignteacheraboutthewaytohandlestress.Shegavemesomeadvices.Themostefficetivewaytohandlestressistostayhealthyandfit.Eathealthyfoodandexerciseregularly.Physicalactivitieswillal
- bpmn.js一个基于Bpmn 2.0的前端工作流展示和绘制工具
胖蔡
Web技术开发bpmn-js流程编辑器实战前端javascript开发语言bpmn-js流程编辑器flowable
bpmn.js是由开源工作流引擎camunda内部组织BPMN.IO组织开发的一款基于BPMN2.0的工作流展示、编辑的web端工具库。由于工作流引擎activiti、flowable、camunda属于同宗分流,其工作流定义格式大致相同,所以我们可以使用bpmn.js完美融合其中任一工作流引擎。什么是工作流引擎?这里引用咖啡兔在《Activiti实战》一书中对于工作流的描述:工作流(WorkFl
- [AIGC] 开源流程引擎哪个好,如何选型?
程序员三木
AIAIGC开源
开源流程引擎是指一种自动化的工作流解决方案,它可以帮助你管理和协调你的业务流程和决策。但是,在开源世界里,有许多不同的流程引擎可以选择。因此,如何选择适合你的开源流程引擎,是一个具有挑战性和价值的话题。文章目录哪些开源流程引擎值得考虑?1.Activiti2.jBPM3.Camunda4.Flowable5.Bonita如何选择开源流程引擎?1.评估你的需求2.研究开源流程引擎的特点3.试用开源流
- 2022-07-08 Enough Thinking. Do The Work
春生阁
Thinkoflifelikeabookwithmanychapters.Eachchapterisfilledwithnewexperiences,activities,responsibilitiesandnewsettings,andnewchallenges.Whatyoudoineachchapterdetermineshowyourstoryends.Whatdoyouhavetosh
- oracle数据库索引失效情况总结
喜羊羊love红太狼
数据库
场景:在开发中有时候遇到某个表中的列明明是创建了索引,但查询时却发现索引失效。环境:下面是工作流activiti中的两张表act_hi_procinst、act_hi_taskinst关系是一对多(一个流程包含多个流程环节),一个是历史流程表,一个是历史流程环节表。索引失效情况及验证:(单表act_hi_procinst已经在delete_reason_列上创建了索引)验证一:索引列为isnull
- 晨会汇报表达整理
进击切图仔
English
正文开头,whichencompassestwokeyareas–包括两个方面asummary/recapofyesterday’sworkandtheoverview/plan/myagendafortoday.–昨天的总结和今天的计划let’smoveontotoday’sreport–下面开始汇报First,I’lltouchonmyactivitiesfromyesterday–首先说昨天
- 5.activiti流程变量
_少年不知愁
1.流程变量在整个工作流中扮演很重要的作用。例如:请假流程中有请假天数、请假原因等一些参数都为流程变量的范围。流程变量的作用域范围是只对应一个流程实例。也就是说各个流程实例的流程变量是不相互影响的。流程实例结束完成以后流程变量还保存在数据库中(存放到流程变量的历史表中)。2.设置流程变量/**设置流程变量*/@TestpublicvoidsetVariables(){/**与任务(正在执行)*/T
- SpringBoot+flowable快速实现工作流
姓王名礼
springbootjava后端
文章目录1.使用flowable-ui绘制流程图1.1网关2.SpringBoot集成flowable2.1添加Maven依赖2.2添加配置2.3添加代理类2.4流程开发2.5测试1.创建流程2.查询待办列表3.同意4.生成流程图最近在一个开源项目里见到有使用另一个工做流框架:flowable。在简单了解flowable后与activiti框架相比的第一感觉就是开发方便快速,易与springBoo
- 使用 LiveDataBus 替代 EventBus
一叶飘舟
android
前言引用官方LiveData介绍LiveDataisanobservabledataholderclass.Unlikearegularobservable,LiveDataislifecycle-aware,meaningitrespectsthelifecycleofotherappcomponents,suchasactivities,fragments,orservices.Thisawa
- 2024年2月5日 晨会汇报
进击切图仔
前端English
Goodmorning,everyone!Today,Iwouldliketoprovideabriefupdateonmyrecentworkactivities,coveringtwokeyareas:anoverviewofyesterday’sworkandmyagendafortoday.Yesterday,myprimaryfocuswasondevelopingpagesassoci
- Activity启动流程分析三 ActivityStackSupervisor启动Activity ClientTransaction在AMS和App之间的通信
今晚打老虎666
FrameWorkandroidjvm前端java开发语言
ActivityStackSupervisor启动Activity在之前的分析里面,ActivityStarter在计算完源activty栈,目标activty栈和启动模式后,把后续的启动流程交给RootWindowContainer了。在resumeFocusedStacksTopActivities方法里面继续启动流程。resumeFocusedStacksTopActivities这个方法我
- 关于Android 中的Activity,Application和Task
小马工匠坊
Android
什么是AndroidApplication?简单来说,一个apk文件就是一个Application。任何一个AndroidApplication基本上是由一些Activities组成,当用户与应用程序交互时其所包含的部分Activities具有紧密的逻辑关系,或者各自独立处理不同的响应。这些Activities捆绑在一起成为了一个处理特定需求的Application,并且以“.apk”作为后缀名存
- java工厂模式
3213213333332132
java抽象工厂
工厂模式有
1、工厂方法
2、抽象工厂方法。
下面我的实现是抽象工厂方法,
给所有具体的产品类定一个通用的接口。
package 工厂模式;
/**
* 航天飞行接口
*
* @Description
* @author FuJianyong
* 2015-7-14下午02:42:05
*/
public interface SpaceF
- nginx频率限制+python测试
ronin47
nginx 频率 python
部分内容参考:http://www.abc3210.com/2013/web_04/82.shtml
首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出)。nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开。步骤如下:
- java线程和线程池的使用
dyy_gusi
ThreadPoolthreadRunnabletimer
java线程和线程池
一、创建多线程的方式
java多线程很常见,如何使用多线程,如何创建线程,java中有两种方式,第一种是让自己的类实现Runnable接口,第二种是让自己的类继承Thread类。其实Thread类自己也是实现了Runnable接口。具体使用实例如下:
1、通过实现Runnable接口方式 1 2
- Linux
171815164
linux
ubuntu kernel
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.2-unstable/
安卓sdk代理
mirrors.neusoft.edu.cn 80
输入法和jdk
sudo apt-get install fcitx
su
- Tomcat JDBC Connection Pool
g21121
Connection
Tomcat7 抛弃了以往的DBCP 采用了新的Tomcat Jdbc Pool 作为数据库连接组件,事实上DBCP已经被Hibernate 所抛弃,因为他存在很多问题,诸如:更新缓慢,bug较多,编译问题,代码复杂等等。
Tomcat Jdbc P
- 敲代码的一点想法
永夜-极光
java随笔感想
入门学习java编程已经半年了,一路敲代码下来,现在也才1w+行代码量,也就菜鸟水准吧,但是在整个学习过程中,我一直在想,为什么很多培训老师,网上的文章都是要我们背一些代码?比如学习Arraylist的时候,教师就让我们先参考源代码写一遍,然
- jvm指令集
程序员是怎么炼成的
jvm 指令集
转自:http://blog.csdn.net/hudashi/article/details/7062675#comments
将值推送至栈顶时 const ldc push load指令
const系列
该系列命令主要负责把简单的数值类型送到栈顶。(从常量池或者局部变量push到栈顶时均使用)
0x02 &nbs
- Oracle字符集的查看查询和Oracle字符集的设置修改
aijuans
oracle
本文主要讨论以下几个部分:如何查看查询oracle字符集、 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题。
一、什么是Oracle字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货
- png在Ie6下透明度处理方法
antonyup_2006
css浏览器FirebugIE
由于之前到深圳现场支撑上线,当时为了解决个控件下载,我机器上的IE8老报个错,不得以把ie8卸载掉,换个Ie6,问题解决了,今天出差回来,用ie6登入另一个正在开发的系统,遇到了Png图片的问题,当然升级到ie8(ie8自带的开发人员工具调试前端页面JS之类的还是比较方便的,和FireBug一样,呵呵),这个问题就解决了,但稍微做了下这个问题的处理。
我们知道PNG是图像文件存储格式,查询资
- 表查询常用命令高级查询方法(二)
百合不是茶
oracle分页查询分组查询联合查询
----------------------------------------------------分组查询 group by having --平均工资和最高工资 select avg(sal)平均工资,max(sal) from emp ; --每个部门的平均工资和最高工资
- uploadify3.1版本参数使用详解
bijian1013
JavaScriptuploadify3.1
使用:
绑定的界面元素<input id='gallery'type='file'/>$("#gallery").uploadify({设置参数,参数如下});
设置的属性:
id: jQuery(this).attr('id'),//绑定的input的ID
langFile: 'http://ww
- 精通Oracle10编程SQL(17)使用ORACLE系统包
bijian1013
oracle数据库plsql
/*
*使用ORACLE系统包
*/
--1.DBMS_OUTPUT
--ENABLE:用于激活过程PUT,PUT_LINE,NEW_LINE,GET_LINE和GET_LINES的调用
--语法:DBMS_OUTPUT.enable(buffer_size in integer default 20000);
--DISABLE:用于禁止对过程PUT,PUT_LINE,NEW
- 【JVM一】JVM垃圾回收日志
bit1129
垃圾回收
将JVM垃圾回收的日志记录下来,对于分析垃圾回收的运行状态,进而调整内存分配(年轻代,老年代,永久代的内存分配)等是很有意义的。JVM与垃圾回收日志相关的参数包括:
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-Xloggc
-XX:+PrintGC
通
- Toast使用
白糖_
toast
Android中的Toast是一种简易的消息提示框,toast提示框不能被用户点击,toast会根据用户设置的显示时间后自动消失。
创建Toast
两个方法创建Toast
makeText(Context context, int resId, int duration)
参数:context是toast显示在
- angular.identity
boyitech
AngularJSAngularJS API
angular.identiy 描述: 返回它第一参数的函数. 此函数多用于函数是编程. 使用方法: angular.identity(value); 参数详解: Param Type Details value
*
to be returned. 返回值: 传入的value 实例代码:
<!DOCTYPE HTML>
- java-两整数相除,求循环节
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class CircleDigitsInDivision {
/**
* 题目:求循环节,若整除则返回NULL,否则返回char*指向循环节。先写思路。函数原型:char*get_circle_digits(unsigned k,unsigned j)
- Java 日期 周 年
Chen.H
javaC++cC#
/**
* java日期操作(月末、周末等的日期操作)
*
* @author
*
*/
public class DateUtil {
/** */
/**
* 取得某天相加(减)後的那一天
*
* @param date
* @param num
*
- [高考与专业]欢迎广大高中毕业生加入自动控制与计算机应用专业
comsci
计算机
不知道现在的高校还设置这个宽口径专业没有,自动控制与计算机应用专业,我就是这个专业毕业的,这个专业的课程非常多,既要学习自动控制方面的课程,也要学习计算机专业的课程,对数学也要求比较高.....如果有这个专业,欢迎大家报考...毕业出来之后,就业的途径非常广.....
以后
- 分层查询(Hierarchical Queries)
daizj
oracle递归查询层次查询
Hierarchical Queries
If a table contains hierarchical data, then you can select rows in a hierarchical order using the hierarchical query clause:
hierarchical_query_clause::=
start with condi
- 数据迁移
daysinsun
数据迁移
最近公司在重构一个医疗系统,原来的系统是两个.Net系统,现需要重构到java中。数据库分别为SQL Server和Mysql,现需要将数据库统一为Hana数据库,发现了几个问题,但最后通过努力都解决了。
1、原本通过Hana的数据迁移工具把数据是可以迁移过去的,在MySQl里面的字段为TEXT类型的到Hana里面就存储不了了,最后不得不更改为clob。
2、在数据插入的时候有些字段特别长
- C语言学习二进制的表示示例
dcj3sjt126com
cbasic
进制的表示示例
# include <stdio.h>
int main(void)
{
int i = 0x32C;
printf("i = %d\n", i);
/*
printf的用法
%d表示以十进制输出
%x或%X表示以十六进制的输出
%o表示以八进制输出
*/
return 0;
}
- NsTimer 和 UITableViewCell 之间的控制
dcj3sjt126com
ios
情况是这样的:
一个UITableView, 每个Cell的内容是我自定义的 viewA viewA上面有很多的动画, 我需要添加NSTimer来做动画, 由于TableView的复用机制, 我添加的动画会不断开启, 没有停止, 动画会执行越来越多.
解决办法:
在配置cell的时候开始动画, 然后在cell结束显示的时候停止动画
查找cell结束显示的代理
- MySql中case when then 的使用
fanxiaolong
casewhenthenend
select "主键", "项目编号", "项目名称","项目创建时间", "项目状态","部门名称","创建人"
union
(select
pp.id as "主键",
pp.project_number as &
- Ehcache(01)——简介、基本操作
234390216
cacheehcache简介CacheManagercrud
Ehcache简介
目录
1 CacheManager
1.1 构造方法构建
1.2 静态方法构建
2 Cache
2.1&
- 最容易懂的javascript闭包学习入门
jackyrong
JavaScript
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。
一、变量的作用域
要理解闭包,首先必须理解Javascript特殊
- 提升网站转化率的四步优化方案
php教程分享
数据结构PHP数据挖掘Google活动
网站开发完成后,我们在进行网站优化最关键的问题就是如何提高整体的转化率,这也是营销策略里最最重要的方面之一,并且也是网站综合运营实例的结果。文中分享了四大优化策略:调查、研究、优化、评估,这四大策略可以很好地帮助用户设计出高效的优化方案。
PHP开发的网站优化一个网站最关键和棘手的是,如何提高整体的转化率,这是任何营销策略里最重要的方面之一,而提升网站转化率是网站综合运营实力的结果。今天,我就分
- web开发里什么是HTML5的WebSocket?
naruto1990
Webhtml5浏览器socket
当前火起来的HTML5语言里面,很多学者们都还没有完全了解这语言的效果情况,我最喜欢的Web开发技术就是正迅速变得流行的 WebSocket API。WebSocket 提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看6个HTML5教程介绍里 的 WebSocket API:它可用于客户端、服
- Socket初步编程——简单实现群聊
Everyday都不同
socket网络编程初步认识
初次接触到socket网络编程,也参考了网络上众前辈的文章。尝试自己也写了一下,记录下过程吧:
服务端:(接收客户端消息并把它们打印出来)
public class SocketServer {
private List<Socket> socketList = new ArrayList<Socket>();
public s
- 面试:Hashtable与HashMap的区别(结合线程)
toknowme
昨天去了某钱公司面试,面试过程中被问道
Hashtable与HashMap的区别?当时就是回答了一点,Hashtable是线程安全的,HashMap是线程不安全的,说白了,就是Hashtable是的同步的,HashMap不是同步的,需要额外的处理一下。
今天就动手写了一个例子,直接看代码吧
package com.learn.lesson001;
import java
- MVC设计模式的总结
xp9802
设计模式mvc框架IOC
随着Web应用的商业逻辑包含逐渐复杂的公式分析计算、决策支持等,使客户机越
来越不堪重负,因此将系统的商业分离出来。单独形成一部分,这样三层结构产生了。
其中‘层’是逻辑上的划分。
三层体系结构是将整个系统划分为如图2.1所示的结构[3]
(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。
该层用于向客户端用户提供GUI交互,它允许用户