esProc 弹性计算功能使用流程
esProc 弹性计算是运行在局域网或私有云的企业内通用计算软件,分成三个部分,服务端由 QVA 和 QVM 构成,应用端由应用程序(以下简称 APP)和 QVS 组成,存储端是 NFS、HDFS,或兼容 S3 协议的对象存储系统。服务端和应用端都有会涉及 SPL 脚本,服务端的 SPL 脚本在 QVM 上执行,称为 QVM 脚本。应用端也需要写 SPL 脚本来调用 QVM 脚本,称为 APP 脚本。
基本流程:APP 调用 APP 脚本,在其中向 QVS 发出计算请求,QVS 再向 QVA 申请计算资源 QVM,然后由 APP 与获得的 QVM 建立连接,由 QVM 执行 QVM 脚本,获得计算结果返回到 APP 脚本中,再返回给 APP。
用户数据和 QVM 脚本平时在存储端,在执行时下载到 QVM 上,APP 脚本则与 APP 部署在一起。
1. 账号与存储
1. 安装配置 QVA
QVA 全称 QDBase Virtual Allocator ,是 QVM 计算资源的分配系统,同时负责管理账户。QVA 外观上呈现为一个 Web 应用,操作系统可以是 Windows\Linux\Mac,比较常见的是 Linux。
1. 找到 esProc 企业版。QVA、QVM、QVA、IDE 都是 esProc 企业版的组件,使用 QVA 需要安装 esProc 企业版。打开 SCUDATA 官网http://www.scudata.com,进入下载页面,可以找到 esProc 企业版。
2. 安装 esProc 企业版。根据不同的 Linux 版本,适用的安装包类型也不同,这里以 rpm 安装包为例,请按照链接里的安装指导进行操作,关键步骤是用 wget 命令下载,用 rpm 命令安装。安装后的 QVA 根目录下文称作esProc 安装目录。
注意:安装时可能提示空间不足但实际空间充足的情况,这一般是临时目录 /tmp 太小导致的,请至少加大到 1GB。
3. 配置 Web Server。安装后,默认的目录结构如下:
esProc安装目录
common(JDK\JDBC)
esProc
…
bin(IDE)
qvm
qva
q-server(Tomat)
webapps
qvs
QVA 位于 qva 目录,可以作为普通 Web 应用部署在用户现有的 Web Server 中。如果不方便,也可以部署在 SCUDATA 自带的 Tomcat 中,即 q-server 目录。q-server 目录默认部署了 QVS,可以简单地把它移出,并移入 QVA,结果如下:
esProc安装目录
common
esProc
…
bin
qvm
qvs
q-server
webapps
qva
此时,QVA 模块只需要 q-server 和 common 目录,为节省空间可删除其他目录。
Tomat 可以用默认配置直接运行,也可以按 Tomcat 的规范要求修改配置,比如修改默认端口号 8090,可以编辑esProc 安装目录 /esProc/q-server/conf/server.xml。
4. 配置 QVA。编辑esProc 安装目录 /esProc/q-server/webapps/qvs/WEB-INF/home/qvsConfig.xml。
有三处关键配置项:
runMode:运行模式,设置为 1 表示企业内弹性计算,与之相对的是公有云模式,本文不涉及。
port:QVM 的统一端口号,默认为 8081。
type:QVM 服务器类型,应设置为 local,与之相对的是公有云模式,本文不涉及。<VmConfig> 里的 <region> 是公有云的 QVM 的地址,本文不涉及。
5. 启动 QVA。执行 Tomcat 启动程序可启动 QVA,即esProc 安装目录/esProc/q-server/bin/startup.sh。用 tail 等命令查看 Tomcat 的控制台输出日志。
2. 安装配置 QVM
QVM全称 QDBase Virtual Machine ,是 esProc 弹性计算功能的计算资源。QVM 的下载、安装、配置都比较简单,可以参考 QVS,这里只说要点。
QVM 的配置文件是esProc 安装目录/esProc/qvm/conf.properties,关键配置项是端口号 server.port,要与 QVA 中的端口号一致,且与其他 QVM 保持一致。
QVM 外观上不是 Web 应用,不需要部署在 Web Server 中。可通过执行esProc 安装目录/esProc/qvm/qvm-start.sh 来启动 QVM。
3. 管理 QVM 实例
esProc 弹性计算的特性是可以在不停机(服务)的情况下,根据需求动态地增加或减少 QVM,为了方便管理 QVA 对应的 QVM 实例,本功能提供了相应的管理端。
在启动 QVA 和一个或多个 QVM 的情况下,用浏览器打开 QVA 管理端:http://qva 域名或 IP: 端口号 /qva,默认端口号 8090,如 http://192.168.12.13:8090/qva。管理 QVM 时应使用管理员账户 admin,默认密码 88888888。登录后进入 Instance Manger->Add Instance,依次增加每个 QVM 实例。
QVM 正常且空闲的状态的下,Status 图标应当如上。本功能的管理端还有日志管理、账户管理等常规功能,这里不在赘述。
4. 创建存储系统
esProc 弹性计算支持多种企业内共享存储,包括 NFS\HDFS,以及兼容 S3 协议的各类对象存储,下面以 HDFS 为例进行说明。
访问 HDFS 需要三个信息,userName、hdfsPath、urlName,即用户名、hdfs 目录、HDFS 服务 URL。其中,hdfs 目录通常是用户主目录,形如 "/user/ 用户名",比如 /user/root。urlName 可向管理员询问,如不确定是否正确,可登录 HDFS 客户端或集群中的任意节点,输入命令 hdfs dfs -df
返回结果的第一项是 urlName,即图中的 hdfs://hadoop-master:9000,主机名可换成对应的 IP。由此可获得访问 HDFS 的完整信息:
"urlName":"hdfs://192.168.13.2:9000",
"userName":"root",
"hdfsPath":"/user/root"
5. 注册 QVA 账户
esProc 弹性计算提供了访问权限控制,应用程序必须使用合法的 QVA 账户和密码,才能请求计算资源。正式的应用程序应当使用非 admin 的普通账户,可通过管理端注册普通账户。
注册过程较简单,要注意的是,一个账户(用户名)有两个密码,分别是管理密码和执行密码,两者不能混用,管理密码用于登录管理端,进行账户和服务的管理;执行密码填在 QVS 的配置文件中,用于 QVS 访问 QVA 获取 QVM 并执行脚本。
注册后用管理密码登录进入,可执行维护管理功能。注意,普通用户只能管理自己的计算任务、日志等信息,不能管理公共的 QVM。
除了用户自己注册,也可以由管理员事先集中配置用户信息。
用户信息存储在一个格式开放的 btx 文件中,即 esProc 安装目录 /esProc/q-server/webapps/qva/WEB-INF/home/cloudUser.btx,管理员可以用 btx 编辑器编辑该文件,即 esProc 安装目录 /esProc/bin/btx.exe。编辑用户信息时,注意密码要用 md5 函数加密(签名)。
6. 安装 QVS
QVS 全称 QDBase Virtual Service,用于接受并处理计算请求,需要安装在用户准备的服务器上。操作系统可以是 Windows\Linux\Mac,比较常见的是 Linux。
QVS 是 esProc 企业版的模块之一,安装过程可参考 QVA。QVS 默认位于 q-server 目录,启动程序是 esProc 安装目录 /esProc/q-server/bin/startup.sh。
QVS 的配置与应用紧密相关,留在后续再做介绍。
7. 安装 IDE
IDE 是 SPL 脚本的集成开发环境,是 esProc 企业版的组件之一,使用 IDE 需要安装 esProc 企业版。IDE 一般安装在开发者的图形桌面环境上,同样支持 Windows/Linux/Mac。esProc 企业版的下载步骤可参考前面章节,下载后可一键安装,整个过程没有难度。
为了检查安装是否正常,可以在配置前先启动 IDE,路径是 esProc 安装目录 /esProc/bin/ esproc.exe。桌面上也有 IDE 的醒目图标。启动后界面类似下面:
2. QVM脚本的本地调试
在 IDE 本地开发并调试 SPL QVM 脚本,脚本可访问远程存储中的数据文件,开发后的脚本上传到远程存储中,供集成环境的应用程序调用。
1. 配置 IDE
1. 复制远程存储的接口类库。以 HDFS 为例,需要将esProc 安装目录\esProc\q-extlib\hdfs 里的 jar 包复制到esProc 安装目录\esProc\lib。
2. 修改配置文件,重点是 IDE 主目录。先运行 esProc 安装目录 \esProc\bin\esproc.exe(esproc.sh),启动 IDE。再打开 IDE 菜单项 Tool->Options,找到 Main path,即IDE 主目录。
IDE 主目录是脚本和数据文件的根目录,默认路径(空白)对应esProc 安装目录\esproc,应当导航或输入合适的路径。其他配置项请根据需要修改。
也可手工修改,配置文件位于 esProc 安装目录 \esProc\config\raqsoftConfig.xml
3. 在 IDE 中激活远程存储的上下文环境。打开菜单“Remote Services->Storage Services Setting”,新建 HDFS 远程存储,填入之前申请到的 HDFS 连接信息,最后点击按钮 connect 激活。之后在脚本执行远程存储函数时,将使用这里的默认远程存储。
2. 手工上传数据文件
在编写 SPL 脚本前,需要先将数据上传到远程存储。以 HDFS 为例,先登录 HDFS 客户端或集群中的节点,用 hdfs dfs -mkdir 命令创建目录(比如 private),用 hdfs dfs -put 命令上传数据文件,用 hdfs df -ls 查看上传结果,应当如下:
通过 HDFS 的页面控制台,也可以看到上传后的文件:
esProc 支持多种数据文件格式,高性能计算还会使用 btx、ctx 等格式;除了上面的手工上传形式,SPL 也支持用脚本上传,这些内容后续会讲到。
3. 开发并调试 QVM 脚本
在激活的远程存储上下文环境中,编写 QVM 脚本,并用 IDE 进行全功能调试。比如 remote002.splx,对两个远程存储中的 txt 进行分组汇总,并按外部参数进行过滤。
A |
B |
|
1 |
=Qfile("private/OrdersHDFS.txt").import@t() |
远程存储中数据文件 |
2 |
=Qfile("private/OrderDetailsHDFS.txt").import@t() |
|
3 |
=join(A1,order_id;A2,order_id) |
关联 |
4 |
=A3.groups(#1.customer_id; count(1):cnt,sum(#2.item_qty):amt) |
分组汇总 |
5 |
=A4.select(amt>arg1 && amt<=arg2) |
按外部参数过滤 |
注意:访问远程存储应当使用 Q 开头的函数,比如代码中的 Qfile,这与访问本地文件系统的 file 函数不同。这段代码在 IDE 和 QVM 中都可以运行,读取的都是远程存储中的数据文件。没有配置远程存储时,Qfile 会按 file 函数的逻辑执行。
开发调试完的 QVM 脚本,也需要上传到远程存储,以便在应用集成环境(或远程调试环境)中使用。可像前面的数据文件一样,用手工方式上传 QVM 脚本;
4. 用脚本上传文件
除了使用远程存储界面手工上传文件外,也可以用脚本上传。
先在 IDE 主目录下建立与 HDFS 同名的目录(比如 private),将刚才编辑的 QVM 脚本即 remote002.splx 复制进去,然后在 IDE 中执行下面的上传脚本:
A |
B |
|
1 |
>Qload("private/remote002.splx") |
上传到远程存储 |
执行后,在页面控制台可以看到刚上传的文件:
Qload 可以上传符合远程存储规定的所有文件,包括前面章节的数据文件,还可以将远程存储上的文件下载到本地,具体用法参考http://d.raqsoft.com.cn:6999/esproc/func/ychfw.html
3. QVM脚本被 APP 调用
集成环境下,Java 程序通过 esProc 的 QJDBC 执行 SPL APP 脚本,APP 脚本可以不访问 QVS 服务,只进行本地运算,也可以用 QConnect 函数访问 QVS,再由 QVS 向 QVA 申请,分配一个 QVM 执行 QVM 脚本。
QVS 有两种运行模式:独立 QVS、内嵌 QVS,独立 QVS 即按常规方式部署 QVS 服务,可以部署在局域网或私有云上,前面章节已经介绍过下载安装过程。内嵌 QVS 指在 Java 程序的进程里启动一次 QVS 服务,后续每次用 QJDBC 执行 QConnect 函数时,都默认访问这个内嵌的 QVS,不必再写明 IP 地址。
1. 无 QVS 服务
QJDBC 的基本用法是不访问 QVS 服务,仅在 Java 中执行普通 SPL 脚本。
1. QJDBC 的部署
在“esProc 安装目录\esProc\q-server\webapps\qvs\WEB-INF\lib”找到下面的四个 jar 包,复制到 Java 应用的类路径:
ecloud-XXXXXXXX.jar
esproc-bin-XXXXXXXX.jar
esproc-ent-XXXXXXXX.jar
esproc-ext-XXXXXXXX.jar
将“esProc 安装目录\esProc\q-server\webapps\qvs\WEB-INF\home\ raqsoftConfig.xml”复制到 Java 类路径,并根据实际情况进行修改,重点改 mainPath,以定位脚本和本地数据文件的根目录。IDE 中也有类似的配置文件。
2. APP 脚本
编写与 esProc 弹性计算 /QVS 无关的 APP 脚本,比如在 Basic001.splx 中用本地的文本文件进行计算:
A |
B |
|
1 |
=file("private/OrderDetailsHDFS.txt").import@t() |
本地文件 |
2 |
=file("private/OrderDetails.txt").import@t() |
用 file 函数 |
3 |
=join(A1,order_id;A2,order_id) |
关联 |
4 |
=A3.groups(#1.customer_id; count(1):cnt,sum(#2.item_qty):amt) |
分组汇总 |
5 |
=A4.select(amt>arg1 && amt<=arg2) |
按外部参数过滤 |
3. Java 集成代码
在 Java 中通过 QJDBC 调用前面的 APP 脚本 Basic001.splx,代码同调用数据库存储过程。
java.sql.Connection con = null;
java.sql.PreparedStatement st=null;
try{
Class.forName("com.esproc.jdbc.QDriver");
con= DriverManager.getConnection("jdbc:esproc:q:local://");
st =con.prepareCall("call private/Basic001(?,?)");
st.setFloat(1,500);
st.setFloat(2,600);
//st =con.prepareCall("call jinxingFS/runOnQvmCloud()");
st.execute();
…
2. 独立 QVS 服务
在前面章节的基础上,只需少许改动就能使用弹性计算,本小节先调用独立 QVS 服务。
1. 修改独立 QVS 服务的配置文件。文件位于“esProc 安装目录\esProc\q-server\webapps\qvs\WEB-INF\home\qvsConfig.xml“
runMode:改为 0,表示运行模式而非调试模式。
user/xpwd:esProc 弹性计算的账号和执行密码。
url:弹性计算的管理端地址,同时也是 QVA 地址。
store: 远程存储信息,对 HDFS 来说 urlName、userName、hdfsPath 是连接信息,bCacheEnable 表示是否开启缓存,默认 false 不开启。
2. 启动独立的 QVS 服务,命令位置:esProc 安装目录 /esProc/q-server/bin/startup.sh。
3. QJDBC 的部署设置:无需改动,与“无 QVS 服务”时配置相同。
4. 在 APP 脚本中访问独立 QVS 服务:
A |
B |
|
2 |
=Qconnect("http://192.168.12.12:8090/qvs":"demoqvs",30,60) |
连接独立的 QVS 服务,第一个参数是独立 QVS 服务的地址 |
3 |
try |
=A1.exec("private/remote002.splx",arg1,arg2) |
4 |
>A1.close() |
|
5 |
return B2 |
注意,private/remote002.splx 是远程存储上的 QVM 脚本,前面章节有介绍。
5. Java 集成代码:无需改动。注意要释放 Statement,否则可能导致 QVM 耗尽
3. 内嵌 QVS 服务
内嵌 QVS 是内嵌于 Java 应用中的 QVS,不能使用全局锁和全局变量
1. QJDBC 的部署设置:
首先把 QVS 的 jar 包复制到 Java 应用类路径,QVS 的 jar 包位于”esProc安装目录\esProc\q-server\webapps\qvs\WEB-INF\lib”。再将远程存储 jar 包复制到 Java 应用类路径,其中,HDFS 的 jar 包位于 esProc 安装目录 \esProc\q-extlib\hdfs。最后,将 QVS 的配置文件放入 Java 应用的类路径(也支持绝对路径),QVS 的配置文件可参考前面独立 QVS 服务的配置文件。
2. 准备好 APP 脚本,脚本代码应访问内嵌 QVS 服务,并调用 QVM 脚本。比如 local_InnerQvs_002.splx:
A |
B |
|
1 |
=Qconnect(:"demoqvs",30,60) |
|
2 |
try |
=A1.exec("private/remote002.splx",arg1,arg2) |
3 |
>A1.close() |
|
4 |
return B2 |
注意,内嵌 QVS 服务的地址无意义,所以 Qconnect 的第一个参数为空。
3. Java 集成代码。
首先,通过静态方法启动一次内嵌 QVS 服务,需指定 QVS 配置文件,可以是类路径和绝对路径。一般在应用或模块的初始阶段执行这个操作,Java 代码如下:
com.scudata.ecloud.server.QVS.init("/qvsConfig.xml");
之后,可以在业务模块中执行 APP 脚本,Java 代码同调用数据库存储过程:
Connection con = null;
java.sql.PreparedStatement st=null;
try{
Class.forName("com.esproc.jdbc.QDriver");
con= DriverManager.getConnection("jdbc:esproc:q:local://");
st =con.prepareCall("call bucket0925/local_InnerQvs_002(?,?)");
st.setFloat(1,500);
st.setFloat(2,600);
st.execute();
4. APP脚本的本地调试
在本地 IDE 中可开发调试 APP 脚本,通过 Qconnect 函数连接 QVS,由 QVS 通过 QVA 申请 QVM,并在 QVM 上执行远程存储上的 QVM 脚本。QVS 有两种部署方式,独立 QVS 服务和内嵌 IDE 的 QVS 服务。
1. 配置并启动独立 QVS 服务
独立 QVS 服务可部署在局域网或私有云上,参考前面章节。
2. 编写 QVM 脚本并上传到远程存储
可参考前面章节,如前面用过的 remote002.splx
A |
B |
|
1 |
=Qfile("private/Orders.txt").import@t() |
远程存储中数据文件 |
2 |
=Qfile("private/OrderDetails.txt").import@t() |
|
3 |
=join(A1,order_id;A2,order_id) |
关联 |
4 |
=A3.groups(#1.customer_id; count(1):cnt,sum(#2.item_qty):amt) |
分组汇总 |
5 |
=A4.select(amt>arg1 && amt<=arg2) |
按外部参数过滤 |
3. 用于独立 QVS 的 APP 脚本
APP 脚本可以通过 Qconnect 函数访问 QVS,通过 QVA 申请 QVM,从远程存储下载脚本并执行。
A |
B |
|
2 |
=Qconnect("http://192.168.12.12:8090/qvs":"demoqvs",30,60) |
连接独立的 QVS 服务,第一个参数是独立 QVS 服务的地址 |
3 |
try |
=A1.exec("private/remote002.splx",arg1,arg2) |
4 |
>A1.close() |
|
5 |
return B2 |
4. 调试 APP 脚本
在 IDE 里对 APP 脚本进行全功能调试。
以上是独立 QVS 服务的用法,下面介绍内嵌 QVS 服务。
5. 配置并启动内嵌 QVS 服务
找到 QVS 服务的配置文件,位于“esProc 安装目录\esProc\q-server\webapps\qvs\WEB-INF\home\qvsConfig.xml“,文件内容见前面章节,同独立 QVS 服务。将该配置文件复制到”esPorc安装目录\esProc\config”。
启动 IDE 时,内嵌 QVS 会根据配置文件而启动。
6. 用于内嵌 QVS 的 APP 脚本
在 IDE 中编写访问内嵌 QVS 服务的脚本:
A |
B |
|
1 |
=Qconnect(:"demoqvs",30,60) |
|
2 |
try |
=A1.exec("private/remote002.splx",arg1,arg2) |
3 |
>A1.close() |
|
4 |
return B2 |
注意,内嵌 QVS 服务的地址无意义,所以 Qconnect 的第一个参数为空;QVM 脚本与 QVS 的部署方式无关,不必需改。用于内嵌 QVS 的 APP 脚本同样可以在 IDE 中进行全功能调试,开发调试的方法与用于独立 QVS 的 APP 脚本没有区别。
7. 将 APP 脚本部署到应用中
经过调试后的 APP 脚本,就可以部署到应用程序中。脚本有两种写法:用于独立 QVS 的 APP 脚本、用于内嵌 QVS 的 APP 脚本,Java 应用的 QVS 服务对应这两种不同的部署方法,Java 代码也有两种不同的写法,请参考前面章节。
5. QVM脚本的远程调试
远程调试 QVM 脚本需要再安装一个 QVS,设置为调试模式,只负责远程调试,与原独立 QVS 逻辑上无关(但因为共用的配置较多,这部分功能也在 QVS 服务中实现)。两个 QVS 分别启动后,本地 IDE 连接调试 QVS,读取远程存储信息,以目录树的形式供开发者维护,即可对 QVM 脚本(包括数据文件)进行增删改以及调试。在 IDE 中调试 QVM 脚本时,实际的运行过程发生在调试 QVS 上,但会实时同步到 IDE 上,便于开发者直观观察。
1. 配置并运行调试 QVS
1. 修改 QVS 配置。配置文件位于esProc 安装目录\esProc\q-server\webapps\qvs\WEB-INF\home\qvsConfig.xml,需要改三处:
1) 修改运行模式 runMode=1,表示调试模式;0 是服务模式。
2) 注释掉 <qva user> 一节,表示形式上不验证 QVA 账户。这一步可选,因为调试模式没有 QVA,QVS 会跳过验证 QVA 账户的环节。
3) 注释掉 <store> 一节,表示使用 QVS 本地文件存储,不使用远程存储。也可保留 <store>,表示既使用本地文件存储,也使用远程存储。留着可以保持最大兼容性。
2. 修改 QVS 上的 SPL 配置。配置文件位于 esProc 安装目录 \esProc\q-server\webapps\qvs\WEB-INF\home\raqsoftConfig.xml。主要修改主目录 mainPath,这是 QVS 的根目录。注意 mainPath 可以是绝对路径也可以是相对路径。写成相对路径时,相对于 esProc 安装目录 \esProc\q-server\webapps\qvs\WEB-INF\home。
服务模式 QVS 和调试模式 QVS 可以部署在不同的服务器上,也可以部署成同一个 Web 服务里的两个应用。为了维护方便,可以修改调试 QVS 的 URL 路径 / 应用名 / 目录名(比如改名为 debug),服务模式的 QVS 则保持不变 (仍然是 qvs)。
2. IDE连接远程调试 QVS
启动 IDE,进入菜单栏的”Remote Services-Login”,在窗口输入调试 QVS 的连接信息并登录。
登录成功后,IDE 左侧会显示出 QVS 上的文件资源,MainPath 表示文件系统目录,Cloud storage directory 表示远程存储。
此时的 IDE 仅用于显示远程服务器的执行结果,它本身并不执行这个脚本。本质上,此时的 IDE 和之前的 IDE 在逻辑上无关,但物理上相同的东西很多,所以做进一个程序(EXE)了。
3. 上载调试脚本和相关文件
在左侧资源列表上,选远程存储的某个目录,比如在 private 上点击右键,在弹出菜单上选择“upload file”,进入上载界面。
为了方便用户,可以在现存的上载路径后面手工填写子目录名,比如从“private”变成加“private/data”,这样可以达到建下级目录 data 的效果。
点击按钮 Upload File,上载后关闭上载界面,IDE 中自动出现刚才创建的目录,展开目录可看到刚才上载的文件:
用同样的方法可以上载数据文件,不再赘述。
4. 远程执行 / 调试脚本。
上载脚本后双击该脚本,即可打开远程存储的脚本,之后可对该脚本进行远程修改、删除、保存、运行、调试,实际的操作发生在 QVS 上,但会同步到本地 IDE 上。
6. APP脚本的远程调试
可以对 APP 脚本进行远程调试,也要启动两个 QVS,一个设置为服务模式,一个设置为调试模式。从本地 IDE 登录到调试 QVS,读取该 QVS 上的远程存储信息,维护 APP 脚本和数据。APP 脚本中的代码通过 Qconnect 函数连接到 QVS 上,申请 QVM 并执行 QVM 脚本。在 IDE 中调试 APP 脚本时,实际的调试过程发生在 QVS 上,但会实时同步到 IDE 上,供开发者直观观察。
1. 配置并启动服务模式 QVS
服务模式的 QVS 即一般的独立 QVS,通常部署在局域网或私有云上,重点在于配置文件 qvsConfig.xml 中 runMode=0,参考前面章节。
2. 配置并启动调试模式 QVS
调试模式的 QVS 前面章节也介绍过,重点在于 qvsConfig.xml 中 runMode=1,参考前面章节。
3. IDE连接远程 QVS
启动 IDE,进入菜单栏的”Remote Services-Login”,在窗口输入调试 QVS 的连接信息并登录,参考前面章节。
4. 上载文件和脚本
上载文件和脚本的过程可参考前面章节,注意这里上载的应当是 APP 脚本,APP 脚本中的 Qconnect 函数连接的是独立的 QVS 服务。
A |
B |
|
2 |
=Qconnect("http://192.168.12.12:8090/qvs":"demoqvs",30,60) |
连接独立的 QVS 服务,第一个参数是独立 QVS 服务的地址 |
3 |
try |
=A1.exec("private/remote002.splx",arg1,arg2) |
4 |
>A1.close() |
|
5 |
return B2 |
5. 远程执行 / 调试脚本
上载脚本后双击该脚本,即可打开远程存储的脚本,之后可对该脚本进行远程修改、删除、保存、执行、调试。
英文版