Tag: ipc

合并不同语言的程序

我有三个程序(一个在C ++ + WinAPI中,另一个在C#.NET中,最后一个在Java中)具有不同的function。 我即将选择一个并实现其他两个的function。 有可能以某种方式合并它们吗? 我需要在一个GUI中,在一个过程中(至少在视觉上)将它们放在一起。 IPC不是问题。 谢谢你的一切

IPC建议大量小数据

我们将实施一个多进程软件,我们正在寻找一个合适的IPC。 事实: 我们将使用Java(如果我们面临时间关键的话,我会使用C) 所有进程都在一台Unix机器上。 这些进程每秒发送大量(约1000个)小(约4k)数据。 你推荐什么IPC技术? Web服务,RMI,TCP套接字,Unix套接字,管道,……?

IPC:为每个请求连接或保持套接字打开?

我打算使用套接字(本地TCP)在两个进程(本地运行)之间进行通信。 一个进程将充当服务器,但两个进程都异步地向彼此发送消息。 我应该在进程的生命周期内保持套接字连接打开,还是为每个请求重新连接? 如果我保持本地套接字打开可能会出现任何问题吗?

我应该使用哪种Java RMI / RPC / IPC技术?

我正在开发一个Java应用程序,它包含一个服务器和一个客户端(将来可能是多个客户端),它可以在不同的主机上运行。 对于这两者之间的通信,我目前使用自定义协议,该协议由通过网络套接字发送的JSON消息组成,并且两端都转换回Java Bean对象。 然而,应用程序越复杂,我注意到这种方法不符合我的标准并且过于复杂。 我正在寻找一个完善的,可能标准化的替代方案。 我已经看过远程方法调用(RMI),但是读到协议很慢(网络开销很大)。 我正在寻找的技术应该是轻量级的(协议和库明智的),健壮的,可能支持压缩(如果它支持大的话!),可能支持加密,良好的文档和良好的建立(例如Apache项目)。 它应该像使用RMI在远程对象上调用方法一样简单,但没有缺点。 你能推荐什么?

如何快速学习Java RMI

我有一个Java应用程序,我已经工作了一两年了。 我想创建一个非常简单的集合(可能会增加以后的复杂性),我可以用来从另一个JVM(例如MATLAB)控制我的Java应用程序。 我假设RMI是最好的方法,但我不确定,因为我几乎一无所知。 快速学习RMI的最佳方法是什么? 假设我想使用这样的界面: interface Application { public void setLoggingEnabled(boolean enable); public boolean isLoggingEnabled(); } 如何使用RMI在此接口上实现两个JVM之间的桥接? 关于阻塞/线程/同步,我需要了解什么才能使其工作?

Java和C ++之间的IPC

我的目标是从同一个SQLite数据库中读取两个独立的应用程序(一个在Java中,另一个在C ++中,在同一台机器上)。 C ++实现已经有效,并且具有我进行该通信所需的所有方法。 它使用sqlite3.h库。 要做的第一个理性的事情是在Java应用程序中使用JDBC或SQLite包装器。 问题是我的嵌入式系统(POSIX)具有非常有限的资源,并且当我将必要的* .jar包含在其中时执行简单查询需要很长时间。 我已经尝试过Christian Werner的Xerial JDBC,sqlite4java,sqljet和Javasqlite Wrapper / JDBC驱动程序。 JavaVM只需要很长时间来加载所有内容并执行它,性能是一个关键问题。 作为一种解决方法,我管理Java应用程序以使用系统命令并运行sqlite3命令shell来执行查询并获得答案。 我正在寻找更“时尚”和安全的解决方案。 我实际上需要Java应用程序来使用C ++中的方法。 它们只是在实现方法时返回一个字符串,只返回一个值。 经过大量的IPC阅读,我得出的结论是我必须使用命名管道。 问题是我必须使用JNI,但我有一个初学Java级别,到目前为止,JNI对我来说太复杂了。 在这种情况下,JNI是否过度杀伤? 我可以在这里实施哪些其他解决方案

.NET和Java客户端应用程序之间的IPC

我必须得到两个不同的客户端应用程序,没有任何代理或服务器。 在两个进程,Java和.NET之间,IPC的最佳方法是什么? 它必须能够在多用户termainl服务器中工作,所以请不要使用套接字。 我希望它轻巧简单,即插即用,所以请不要使用RMI / WS。 我现在正在考虑使用JNI来访问Mutex和命名管道,我是否正朝着正确的方向前进? 欢迎任何想法! 谢谢丹尼斯

Java / Python中的快速IPC / Socket通信

两个进程(Java和Python)需要在我的应用程序中进行通信。 我注意到套接字通信占用了93%的运行时间。 为什么沟通这么慢? 我应该寻找套接字通信的替代方案,还是可以加快速度? 更新:我发现了一个简单的修复。 似乎缓冲输出流由于某种未知原因而没有真正缓冲。 所以,我现在将所有数据放入客户端/服务器进程的字符串缓冲区中。 我在flush方法中将它写入套接字。 我仍然对使用共享内存在进程之间快速交换数据的示例感兴趣。 一些其他信息: 应用程序中的消息大小大多数时间不到64kb。 服务器是Java,客户端是用Python编写的。 套接字IPC实现如下:它需要50个周期发送200个字节! 这必须太高了。 如果我在5000个周期内发送2个字节,则需要的时间要少得多。 这两个进程都在一台Linux机器上运行。 在实际应用程序中,每个周期都会对客户端的iFid.write()进行大约10次调用。 这是在Linux系统上完成的。 这是服务器端: public class FastIPC{ public PrintWriter out; BufferedReader in; Socket socket = null; ServerSocket serverSocket = null; public FastIPC(int port) throws Exception{ serverSocket = new ServerSocket(port); socket = serverSocket.accept(); out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); in […]

C ++和Java之间的低延迟IPC

在以下情况下,实现C ++ / Java IPC的最佳方法是什么? (有人最近问了一个类似的问题 ,但我的要求更具体) 我有两个程序 – 一个用C ++编写,另一个用Java编写 – 需要相互通信。 两者都在同一台机器上运行。 程序相互发送消息。 消息通常很短(少于几百字节),但可能大小为100KB或更多。 消息不需要被确认(即,不是像HTTP那样的请求/响应模型)。 例如,C ++程序向Java程序发送消息,Java程序可以通过稍后向C ++程序发送消息来进行回复 – 反之亦然。 一个理想的解决方案是:a)非常低的延迟,b)没有安全麻烦(用户不必授权打开端口等)和c)将是平台无关的。 我的第一个想法是使用套接字 – 每个程序都充当另一个程序的服务器。 套接字比其他forms的IPC有更多的开销,我不知道如果让系统自动分配端口号,服务器将如何通知客户端端口号。 我也考虑过命名管道 ,但它们在不同平台上不受支持(至少不一致)。 JNI看起来像一个选项,但它可以跨越流程边界吗? 有什么建议么? 谢谢! 后续问题 如果我使用套接字,我是否需要打开两个套接字以允许异步通信,如上所述?

Java和.NET 3.5之间进程间通信的最佳方法是什么?

第三方应用程序从XML文件中读取一些Java代码,并在发生某个事件时运行它。 在Java中,我想告诉在同一台机器上运行的.NET 3.5应用程序发生了这个事件。 每次传输的总数据可能是几个字符。 使用Java告诉.NET进程发生了什么事情的最佳方法是什么? Java似乎不支持Windows上的命名管道,.NET本身不支持内存映射,任何涉及Web服务或RMI的解决方案都是过度的。