CN116860487B - 基于RMI技术的Matlab集成调度的方法 - Google Patents
基于RMI技术的Matlab集成调度的方法 Download PDFInfo
- Publication number
- CN116860487B CN116860487B CN202311126502.4A CN202311126502A CN116860487B CN 116860487 B CN116860487 B CN 116860487B CN 202311126502 A CN202311126502 A CN 202311126502A CN 116860487 B CN116860487 B CN 116860487B
- Authority
- CN
- China
- Prior art keywords
- matlab
- driver
- calling
- function
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000005516 engineering process Methods 0.000 title claims abstract description 16
- 230000006870 function Effects 0.000 claims abstract description 67
- 230000008569 process Effects 0.000 claims description 22
- 238000010276 construction Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 230000010354 integration Effects 0.000 abstract description 2
- 241000208340 Araliaceae Species 0.000 description 9
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 9
- 235000003140 Panax quinquefolius Nutrition 0.000 description 9
- 235000008434 ginseng Nutrition 0.000 description 9
- 239000011800 void material Substances 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101100379627 Dictyostelium discoideum argJ gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于RMI技术的Matlab集成调度的方法,属于软件集成的技术领域,包括:编写及编译Matlab驱动程序,提供MatlabEngine.jar;构造需要在程序中执行的Matlab功能函数;调用驱动程序提供的执行Matlab函数的接口,实现与Matlab软件的集成调用。本发明利用RMI技术实现了与Matlab集成的通用接口驱动程序,使开发人员在调用Matlab时,直接面向接口驱动程序提供的通用接口进行开发,屏蔽了基于RMI技术调用Matlab的技术细节,降低了学习成本。
Description
技术领域
本发明涉及一种基于RMI技术的Matlab集成调度的方法,属于软件集成的技术领域。
背景技术
Matlab是一款商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术语言和交互式环境,主要应用于工程计算、控制设计、信号处理与通讯、图像处理等领域。在实际设计使用过程中,存在与其它建模、设计、仿真工具的集成调度应用场景。Matlab本身提供了COM接口的支持,这些接口允许从外部应用程序进行远程通信,但JAVA本身并不支持COM。故本发明采用另外一种远程通信技术RMI与Matlab建立连接,RMI支持在不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用,但这也提高了不同工具基于RMI 方式与Matlab之间数据交互及集成调度所带来的开发复杂度和学习成本。
发明内容
为了解决上述技术问题,本发明提供了一种基于RMI技术的Matlab集成调度的方法,其具体技术方案如下:
一种基于RMI技术的Matlab集成调度的方法,包括以下步骤:
步骤一:编写Matlab驱动程序:
1.1)基于JAVA语言编写通过RMI技术调用Matlab驱动程序的连接程序;
1.2)定义调用Matlab驱动程序核心功能的函数接口、出参及入参;
1.3)封装步骤1.1)和步骤1.2),实现具体调用Matlab驱动程序功能的逻辑;
步骤二:编译Matlab驱动程序:
编译上述步骤一中的程序代码,提供MatlabEngine.jar驱动程序;
步骤三:调用Matlab驱动程序:
3.1)在第三方程序中引用MatlabEngine.jar驱动程序;
3.2)构造需要在第三方程序中执行的Matlab驱动程序的功能函数;
3.3)调用MatlabEngine.jar驱动程序提供的连接接口,初始化Matlab驱动程序的连接引擎,启动Matlab驱动程序;
3.4)调用MatlabEngine.jar驱动程序提供的执行Matlab驱动程序函数的接口,实现与Matlab驱动程序的集成调用。
进一步的,所述步骤一中1.1)、基于JAVA语言编写通过RMI技术调用Matlab驱动程序的连接程序的具体过程为:
步骤1.11:根据指定的端口,启动RMI Registry服务;
步骤1.12:构建提供服务的实现类,通过注册中心接口registry提供的bind方法,将实现类注册到RMI Registry上并对外暴露一个名称;
步骤1.13:构建Matlab进程启动命令,利用JAVA提供的ProcessBuilder类的start方法启动Matlab驱动程序进程,进程启动命令中包含RMI Registry暴露的名称和绑定的端口,Matlab驱动程序进程启动时,读取到对应的参数,将自己提供服务的实现类注册到RMIRegistry服务上;
步骤1.14:Matlab驱动程序提供了RMI相关的类或接口;
步骤1.15:指定ip或端口获取相关类的远程对象,通过远程对象连接或操作Matlab驱动程序。
进一步的,所述步骤一中1.2)、定义调用Matlab驱动程序的核心功能的函数接口及出参入参的具体过程为:
在MatlabEngine.jar驱动程序程序里MaltabProxy对象中,定义调用Matlab驱动程序核心功能的函数接口。
进一步的,所述步骤一中1.3)、封装上述方法,实现具体调用Matlab驱动程序功能的逻辑:将上述连接Matlab驱动程序或者调用Matlab驱动程序核心函数的方法都统一对外暴露接口,使用者只需要调用接口就行,不用关心内部具体是怎么实现的;
步骤1.31: 创建RMIMatlabInstance对象,提供构造方法,构造方法里封装连接Matlab驱动程序的具体逻辑,对外暴漏连接Matlab驱动程序的接口;
步骤1.32:将MatlabProxy里定义的核心函数封装在MatlabProxy类中,统一对外提供调用Matlab驱动程序核心函数的接口。
进一步的,所述步骤二中编译Matlab驱动程序的具体过程为:
步骤2.1:使用Eclipse工具导入Matlab驱动程序的源码;
步骤2.2:配置JAVA编译环境;
步骤2.3:通过IDE工具进行编译生成MatlabEngine.jar驱动程序。
进一步的,所述步骤三中调用Matlab驱动程序具体过程为:
3.1)在程序中引用MatlabEngine.jar驱动程序;
3.2)构造需要在程序中执行的Matlab驱动程序的功能函数;
3.3)创建RMIMatlabInstance实例,初始化Matlab驱动程序连接引擎,启动Matlab驱动程序;
3.4)调用RMIMatlabInstance提供的执行Matlab驱动程序函数的接口,实现与Matlab驱动程序的集成调用。
进一步的,所述MatlabProxy里定义的核心函数包括:
RMIMatlabInstance:构造函数,定义连接Matlab驱动程序的具体逻辑;
connect:连接Matlab驱动程序;
disconnect:断开与Matlab驱动程序的连接;
isConnect:判断Matlab驱动程序是否连接;
executeCommand:执行Matlab驱动程序函数;
executeCommandForResult:执行Matlab驱动程序函数,并获取返回值;
getVariable:获取工作空间指定的参数值;
setVariable:设置参数值;
getVariableNames:获取工作空间所有的参数名;
eval:在Matlab驱动程序里执行命令;
feval:调用Matlab驱动程序的函数,并传参;
getVariable:获得Matlab驱动程序里名为variableName变量的值;
setVariable:给Matlab驱动程序里名为variableName变量设置值;
returningEval:在Matlab驱动程序里执行命令并返回结果;
returingFeval:调用Matlab驱动程序的functionName函数,并传参,获取Object类型的返回值。
本发明的有益效果是:
1. 本发明通过JAVA语言,基于RMI方式调用Matlab驱动程序远程对象,与Matlab驱动程序创建连接,实现了与Matlab驱动程序集成的通用驱动程序,使开发人员在调用Matlab驱动程序时,无需关心程序如何与Matlab驱动程序创建连接,直接面向驱动程序提供的通用接口进行开发,屏蔽了基于RMI技术调用Matlab驱动程序的技术细节,降低了学习成本。
2. 由于是通过封装接口的方式提供能力,因此基于JAVA开发的程序可直接调用接口与Matlab驱动程序进行集成调度,这极大降低了JAVA程序与Matlab驱动程序进行集成调度带来的开发难度与开发成本。
附图说明
图1是本发明整体流程图,
图2是本发明中驱动程序基于RMI方式连接Matlab流程示意图,
图3是本发明中其他软件通过驱动程序调用Matlab的流程示意图,
图4是本发明中软件集成调度方法的架构示意图。
实施方式
下面结合具体实施方式,进一步阐明本发明。应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
基于RMI技术的Matlab集成调度的方法,参见图1,包括以下操作步骤:
步骤一:参见图2,编写Matlab驱动程序:
1)基于JAVA语言编写通过RMI技术调用Matlab驱动程序的连接程序的具体步骤如下:
步骤1:根据指定的端口,启动RMI Registry服务:
private synchronized void initRegistry(boolean force) throwsMatlabConnectionException {
if (this._registry == null || force) {
try {
this._registry = LocalHostRMIHelper.createRegistry(this._options.getPort());
} catch (Exception arg4) {
try {
this._registry = LocalHostRMIHelper.getRegistry(this._options.getPort());
} catch (Exception arg3) {
throw new MatlabConnectionException("Could not create orconnect to the RMI registry", arg3);
}
}
}
};
步骤2: 构建提供服务的实现类,通过注册中心接口registry提供的bind方法,将实现类注册到RMI Registry上并对外暴露一个名称:
this._registry.bind(receiver.getReceiverID(), LocalHostRMIHelper.exportObject(receiver));
步骤3:构建Matlab进程启动命令,利用JAVA提供的ProcessBuilder类的start方法启动Matlab进程。进程启动命令中包含RMI Registry暴露的名称和绑定的端口,Matlab驱动程序进程启动时,读取到对应的参数,将自己提供服务的实现类注册到RMI Registry服务上。
private Process createProcess(RemoteMatlabProxyFactory.RemoteRequestReceiver receiver)
throws MatlabConnectionException {
ArrayList processArguments = new ArrayList();
if (this._options.getMatlabLocation()= null) {
processArguments.add(this._options.getMatlabLocation());
} else {
processArguments.add(Configuration.getMatlabLocation());
}
......
String runArg = "javaaddpath \'" + codeLocation + "\'; " + MatlabClassLoaderHelper.class.getName()
+ ".configureClassLoading(); " + "javarmpath \'" +codeLocation + "\'; "
+ MatlabConnector.class.getName() + ".connectFromMatlab(\'" + receiver.getReceiverID() + "\', "
+ this._options.getPort() + ");";
processArguments.add(runArg);
ProcessBuilder builder = new ProcessBuilder(processArguments);
builder.directory(this._options.getStartingDirectory());
try {
Process e = builder.start();
......
return e;
} catch (IOException arg7) {
}
}
整体实例方法如下:
public Request requestProxy(RequestCallback requestCallback) throwsMatlabConnectionException {
//创建RMI Registry 服务
......
this.initRegistry(false);
//构建提供服务的实现类
RemoteMatlabProxyFactory.RemoteRequestReceiver receiver = newRemoteMatlabProxyFactory.RemoteRequestReceiver(
requestCallback, proxyID, Configuration.getClassPathAsRMICodebase(),
Configuration.getClassPathAsCanonicalPaths());
//将服务类注册到RMI Registry上
this._registry.bind(receiver.getReceiverID(), LocalHostRMIHelper.exportObject(receiver));
......
//启动Matlab驱动程序进程
Process e = this.createProcess(receiver);
......
request = new RemoteMatlabProxyFactory.RemoteRequest(proxyID,e, receiver, maintainer);
return request;
}
2)定义调用Matlab驱动程序核心功能的函数接口及出参入参的具体步骤如下:
在上述步骤创建的MaltabProxy对象中,定义调用Matlab驱动程序核心功能的函数接口,具体参见表1.
表1
3)、封装上述方法,实现具体调用Matlab驱动程序功能的逻辑:这一步是指将上述连接Matlab驱动程序或者调用Matlab驱动程序核心函数的方法都统一对外暴露接口,使用者只需要调用接口就行,不用关心内部具体是怎么实现的。
步骤1: 创建RMIMatlabInstance对象,提供构造方法,构造方法里封装连接Matlab驱动程序的具体逻辑;
步骤2:将MatlabProxy里定义的核心函数封装在该类中,统一对外提供;
下面给出各个核心函数的对应入参、执行方法以及功能说明:
函数名称:RMIMatlabInstance,
入参:String MatlabPath,
执行方法:public RMIMatlabInstance(String MatlabPath){
try {
MatlabProxyFactoryCreations.Builder builder=new MatlabProxyFac
toryCreations.Builder().
setPort(rmiPort).setProxyTimeout(proxyTimeout).setHidden
(false);
if( !CommonUtil.isEmpty(MatlabPath)){
if(SystemOS.isLinux()){
MatlabPath = MatlabPath + File.separator+MatlabConstant.
LINUX_MATLAB_NAME;
}else if(SystemOS.isWindows()){
MatlabPath = MatlabPath + File.separator+MatlabConstant. WIN_Matlab_NAME;
}
builder.setMatlabLocation(MatlabPath);
}
MatlabProxyFactoryOptions options = builder.build();
factory = new MatlabProxyFactory(options);
connect();
} catch (Exception e) {
e.printStackTrace();
}
}
功能说明:构造函数,定义连接Matlab驱动程序的具体逻辑。
函数名称:executeCommand,
入参:String command,
执行方法:public void executeCommand(String command) throws Exception {
connect()
proxy.eval(command+";");
}
功能说明:执行Matlab驱动程序函数。
函数名称:executeCommandForResult,
入参:String functionName
int outputArgsLength
Object[] inputArgs,
执行方法:Public Object[] executeCommandForResult(String functionName, int outputArgsLength, Object[] inputArgs) throws Exception {
connect();
return proxy.returningFeval(functionName, outputArgsLength,
inputArgs);
}
功能说明:执行Matlab驱动程序函数,并获取返回值。
函数名称:getVariable,
入参:string variableName,
执行方法:public Object getVariable(String variableName) throws Exception {
connect();
return proxy.getVariable(variableName);
}
功能说明:获取工作空间指定的参数值。
函数名称:setVariable,
入参:String variableName,Object value,
执行方法:public void setVariable(String variableName, Object value) throws Exception {
connect();
proxy.setVariable(variableName, value);
}
功能说明:设置参数值。
函数名称:getVariableNames,
入参:无,
执行方法:public String[] getVariableNames() throws Exception {
connect();
Object[] results=proxy.returningEval("who", 1);
String[] vars=(String[]) results[0];
return vars;
}
功能说明:获取工作空间所有的参数名。
函数名称:connect,
入参:无,
执行方法:public void connect() throws Exception {
if (proxy == null || !proxy.isConnected()) {
proxy = factory.getProxy();
proxy.eval("clc");
proxy.addDisconnectionListener(new DisconnectionListener()
{
@Override
public void proxyDisconnected(MatlabProxy proxy) {
proxy.disconnect();
rmiPort = rmiPort+1;
}
});
}
}
功能说明:连接Matlab驱动程序。
函数名称:disconnect,
入参:无,
执行方法:public void disconnect() throws Exception {
if (proxy.isConnected()) {
rmiPort = rmiPort+1;
proxy.disconnect();
}
}
功能说明:断开与Matlab驱动程序的连接。
函数名称:isConnect,
入参:
执行方法:public boolean isConnect() throws Exception {
return (proxy==null || proxy.isConnected());
}
功能说明:判断Matlab驱动程序是否连接。
步骤二:参见图3,编译Matlab驱动程序:
1)、编译Matlab驱动程序的具体过程为:
步骤1:使用Eclipse工具导入如上程序源码;
步骤2:配置JAVA编译环境;
步骤3:通过IDE工具进行编译生成MatlabEngine.jar驱动程序。
参见图3,是其他软件通过驱动程序调用Matlab的流程示意图。
步骤三:参见图4,调用Matlab驱动程序具体过程为:
1)在程序中引用MatlabEngine.jar驱动程序;
2)创建RMIMatlabInstance实例,初始化Matlab连接引擎,启动Matlab驱动程序;
3)构造需要在程序中执行的Matlab驱动程序功能函数;
4)调用RMIMatlabInstance提供的执行Matlab驱动程序函数的接口,实现与Matlab驱动程序的集成调用。
本发明方案所公开的技术手段不仅限于上述技术手段所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
Claims (1)
1.一种基于RMI技术的Matlab集成调度的方法,其特征在于,包括以下步骤:
步骤一:编写Matlab驱动程序:
1.1)基于JAVA语言编写通过RMI技术调用Matlab驱动程序的连接程序:
步骤1.11:根据指定的端口,启动RMI Registry服务;
步骤1.12:构建提供服务的实现类,通过注册中心接口registry提供的bind方法,将实现类注册到RMI Registry上并对外暴露一个名称;
步骤1.13:构建Matlab驱动程序进程启动命令,利用JAVA提供的ProcessBuilder类的start方法启动Matlab驱动程序进程,进程启动命令中包含RMI Registry暴露的名称和绑定的端口,Matlab驱动程序进程启动时,读取到对应的参数,将自己提供服务的实现类注册到RMI Registry服务上;
步骤1.14:Matlab驱动程序提供了RMI相关的类或接口;
步骤1.15:指定ip或端口获取相关类的远程对象,通过远程对象连接或操作Matlab驱动程序;
1.2)定义调用Matlab驱动程序核心功能的函数接口、出参及入参,在MatlabEngine.jar驱动程序里MaltabProxy对象中,定义调用Matlab驱动程序核心功能的函数接口;
1.3)封装步骤1.1)和步骤1.2),实现具体调用Matlab功能的逻辑,将连接Matlab驱动程序或者调用Matlab驱动程序核心函数的方法都统一封装,对外暴露接口:
步骤1.31: 创建RMIMatlabInstance对象,提供构造方法,构造方法里封装连接Matlab驱动程序的具体逻辑,对外暴漏连接Matlab驱动程序的接口;
步骤1.32:将MatlabProxy里定义的核心函数封装在MatlabProxy类中,统一对外提供调用Matlab驱动程序核心函数的接口;
所述MatlabProxy里定义的核心函数包括:
RMIMatlabInstance:构造函数,定义连接Matlab驱动程序的具体逻辑;
connect:连接Matlab驱动程序;
disconnect:断开与Matlab驱动程序的连接;
isConnect:判断Matlab驱动程序是否连接;
executeCommand:执行Matlab驱动程序函数;
executeCommandForResult:执行Matlab驱动程序函数,并获取返回值;
getVariable:获取工作空间指定的参数值;
setVariable:设置参数值;
getVariableNames:获取工作空间所有的参数名;
eval:在Matlab驱动程序里执行命令;
feval:调用Matlab驱动程序的函数,并传参;
getVariable:获得Matlab驱动程序里名为variableName变量的值;
setVariable:给Matlab驱动程序里名为variableName变量设置值;
returningEval:在Matlab驱动程序里执行命令并返回结果;
returingFeval:调用Matlab驱动程序的functionName函数,并传参,获取Object类型的返回值;
步骤二:编译上述步骤一中Matlab驱动程序的程序代码,提供MatlabEngine.jar驱动程序:
步骤2.1:使用Eclipse工具导入Matlab驱动程序的源码;
步骤2.2:配置JAVA编译环境;
步骤2.3:通过IDE工具进行编译生成MatlabEngine.jar驱动程序;
步骤三:调用Matlab驱动程序:
3.1)在第三方程序中引用MatlabEngine.jar驱动程序;
3.2)构造需要在第三方程序中执行的Matlab功能函数;
3.3)创建RMIMatlabInstance实例,调用MatlabEngine.jar驱动程序提供的连接接口,初始化Matlab驱动程序连接引擎,启动Matlab驱动程序;
3.4)调用RMIMatlabInstance提供的执行Matlab驱动程序函数的接口,调用MatlabEngine.jar驱动程序提供的执行Matlab函数的接口,实现与Matlab驱动程序的集成调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311126502.4A CN116860487B (zh) | 2023-09-04 | 2023-09-04 | 基于RMI技术的Matlab集成调度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311126502.4A CN116860487B (zh) | 2023-09-04 | 2023-09-04 | 基于RMI技术的Matlab集成调度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116860487A CN116860487A (zh) | 2023-10-10 |
CN116860487B true CN116860487B (zh) | 2024-03-15 |
Family
ID=88234496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311126502.4A Active CN116860487B (zh) | 2023-09-04 | 2023-09-04 | 基于RMI技术的Matlab集成调度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116860487B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923485A (zh) * | 2009-06-17 | 2010-12-22 | 大唐软件技术股份有限公司 | Corba系统中的java远程调用方法 |
CN107479875A (zh) * | 2017-07-19 | 2017-12-15 | 广州慧睿思通信息科技有限公司 | 一种Java调用DLL的便捷方法 |
CN115658041A (zh) * | 2022-12-27 | 2023-01-31 | 南京国睿信维软件有限公司 | 基于在线业务流程编排的低代码增强业务实现方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010052110A1 (en) * | 2000-02-14 | 2001-12-13 | Julian Orbanes | System and method for graphically programming operators |
US6789254B2 (en) * | 2001-06-21 | 2004-09-07 | International Business Machines Corp. | Java classes comprising an application program interface for platform integration derived from a common codebase |
US7908313B2 (en) * | 2004-07-21 | 2011-03-15 | The Mathworks, Inc. | Instrument-based distributed computing systems |
US7367032B2 (en) * | 2005-01-07 | 2008-04-29 | International Business Machines Corporation | Partial dynamic implementation of JAVA interfaces |
US7606833B2 (en) * | 2005-04-08 | 2009-10-20 | The Mathworks, Inc. | System and method for using an RMI activation system daemon with non-JAVA applications |
-
2023
- 2023-09-04 CN CN202311126502.4A patent/CN116860487B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923485A (zh) * | 2009-06-17 | 2010-12-22 | 大唐软件技术股份有限公司 | Corba系统中的java远程调用方法 |
CN107479875A (zh) * | 2017-07-19 | 2017-12-15 | 广州慧睿思通信息科技有限公司 | 一种Java调用DLL的便捷方法 |
CN115658041A (zh) * | 2022-12-27 | 2023-01-31 | 南京国睿信维软件有限公司 | 基于在线业务流程编排的低代码增强业务实现方法 |
Non-Patent Citations (3)
Title |
---|
ADAMS二次开发技术在分布式仿真中的应用;梁思率等;《系统仿真学报》;第21卷(第10期);第2940-2944页 * |
MATLAB环境中HLA联邦成员开发技术研究;史璐莎;张斌;张涛;;计算机技术与发展(第10期);第16-20+24页 * |
机械液压约束活塞发动机多学科协同优化设计支持环境研究;柳勋;《中国优秀硕士学位论文全文数据库 信息科技辑》(第6期);I138-1181 * |
Also Published As
Publication number | Publication date |
---|---|
CN116860487A (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Breu et al. | Towards a formalization of the unified modeling language | |
Pino et al. | Software synthesis for DSP using Ptolemy | |
Haber et al. | Montiarc-architectural modeling of interactive distributed and cyber-physical systems | |
Zhang et al. | Design, construction, and application of a generic visual language generation environment | |
JP2005510790A (ja) | ソフトウェア・オブジェクトを作成する方法と装置 | |
Hanus | A functional logic programming approach to graphical user interfaces | |
WO2008011011A2 (en) | System and method for providing and using meta-data in a dynamically typed array-based language | |
Xu et al. | Adk: An agent development kit based on a formal design model for multi-agent systems | |
CN116860487B (zh) | 基于RMI技术的Matlab集成调度的方法 | |
Lumpe et al. | Towards a formal composition language | |
Mannadiar et al. | Domain-specific engineering of domain-specific languages | |
Butting et al. | Architectural programming with montiarcautomaton | |
Bardaro et al. | AADL for robotics: a general approach for system architecture modeling and code generation | |
Griss et al. | Using UML state machine models for more precise and flexible JADE agent behaviors | |
Ubayashi et al. | An AOP implementation framework for extending join point models | |
Wada et al. | Leveraging metamodeling and attribute-oriented programming to build a model-driven framework for domain specific languages | |
Kozaczynski et al. | Architecture specification support for component integration | |
CA2278582A1 (en) | Virtual robot | |
Walker | Essential software structure through implicit context | |
Schloegel et al. | Composable code generation for model-based development | |
Seban | An overview of object-oriented design and C++ | |
Olarnsakul et al. | A component coordination model for customization and composition of component-based system design | |
Sattler | A Framework for Component-Oriented Tool Integration | |
Levendovszky et al. | Tooling the Dynamic Behavior Models of Graphical DSLs | |
Mészáros et al. | Code generation with the model transformation of visual behavior models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |