用java实现客户机-主服务器/从属服务器应用程序

用java实现客户机-主服务器/从属服务器应用程序,java,client,Java,Client,我们有一个字符串处理服务C++,使用具有不同布局的输入/输出的STDIN/OUT,每个布局单独运行,最终将在不同的机器上运行,每个布局需要时间来加载,这就是为什么在第一次运行之后必须保持运行的原因。p> 我必须使用客户端实现一个系统,该系统将要求主服务器将其连接到实际运行相关布局服务的相关从属服务器。从属服务器将把从客户机传递到服务的数据进行通信,完成后,主服务器上的数据将可用于其他客户机 问题是实现服务器的最佳方式是什么?我应该在从机/主机之间保持一个打开的连接,直到进程完成,以通知主机连接已

我们有一个字符串处理服务C++,使用具有不同布局的输入/输出的STDIN/OUT,每个布局单独运行,最终将在不同的机器上运行,每个布局需要时间来加载,这就是为什么在第一次运行之后必须保持运行的原因。p> 我必须使用客户端实现一个系统,该系统将要求主服务器将其连接到实际运行相关布局服务的相关从属服务器。从属服务器将把从客户机传递到服务的数据进行通信,完成后,主服务器上的数据将可用于其他客户机

问题是实现服务器的最佳方式是什么?我应该在从机/主机之间保持一个打开的连接,直到进程完成,以通知主机连接已结束,还是在同步函数中保留某种类型的var来检查


我忽略的任何其他重要输入或其他设计也非常受欢迎,Thanx 我会设置一个主服务器。该服务器将运行一个进程,该进程可能通过HTTP接受请求,因此它将是一个Web服务,我将让它读取请求,解析出它是什么,然后调用正确的从属服务器。基本上,它充当代理。一旦接收到从机的响应,它就会将其转发回调用者。这里的简单性意味着,如果您开始获得更多的一种类型的请求,您可以为此设置额外的服务器,并向它们循环请求

<奴隶>是开放C++程序,向前输入和检索输出的WebServices。这就是它所能做的

我不会担心除了你的描述之外,除了从程序和C++程序,还保持开放连接。在这个过程中,仅使用web请求就可以保持主设备和从设备之间的连接处于打开状态,但这不应该是一个问题。这样你就不必担心这个细节了

现在如果我是你,我会认真地研究java中C++代码的重新实现,或者通过JNI或其他东西调用它。如果你能避免它,我认为避开C++包装器周围的java事物将会是一个很好的设计目标。java可以在启动过程中执行任何昂贵的进程,然后像C++代码那样在内存中准备好。
我希望这有帮助

根据您的可伸缩性需求,您可能需要查看。这将为您提供一个构建可扩展、无阻塞服务器实现的起点