我目前正在处理桌面应用程序的需求--使用Java
如果由于某种原因GUI崩溃,它不应该影响后台进程。一旦GUI重新启动--执行状态以及日志消息应该返回给GUI。
桌面应用程序是为两个窗口构建的&ubuntu12.04。
根据我在Java中的知识,这可以使用Socket来实现。将GUI保持为客户端,并在服务器中执行后台代码。(但我仍然试图了解,如果GUI崩溃,服务器如何保持活力-我的意思是,如果服务器是从GUI实例@任何点启动的,如果GUI崩溃,服务器也会死,bcz仍然属于同一个JVM实例,对吗?)
真正的问题在于--如何在新进程中从gui实例启动服务器(Tcp)。有人能指指点点-如何实现这一要求?
发布于 2014-10-18 11:12:14
套接字,RMI,协议缓冲器,线程,CORBA,DCOM,.RPC系统的数量是长而广泛的。不过,它们都有一个相似的目标:提供一个允许客户端进程和另一个服务器进程相互对话的系统。
今天,可能的最佳实践是使用标准通信系统,在这种系统中,您可以将客户端更改为不同的技术,服务器将不需要任何修改。很多人使用的系统是web服务。这还是另一种远程通信形式,但如果您使用它实现服务器,您将能够非常轻松地编写基于web的客户端,或者使用标准API向其他客户端打开您的服务器。
如果你需要原始速度,插座是最好的,但它的低水平。你必须制定你自己发送的协议(信息)。我从未发现这是一个问题TBH,但是很多人更喜欢为您提供这样一个框架--协议缓冲区可以做到这一点,或者您可以使用更高级别的RMI来将您绑定到Java中,并使其稍微容易一些。
发布于 2014-09-18 03:37:12
如果在java中使用RMI,您的问题就可以解决。
RMI是远程方法调用。
在这个过程中,您可以为GUI创建两个applications.one和另一个服务器(在那里存在实际的流程(函数))。如果necessary.But与两个应用程序相互独立,GUI可以通过调用参数的方法与服务器进行通信。对你的案子来说,这是可行的。因为如果GUI(客户端)崩溃,服务器就不会发生任何事情,因为它独立于客户端执行。一旦重新启动客户端,就可以找到服务器并继续工作。但是,如果服务器崩溃,则必须同时重新启动客户端和服务器。这些应用程序可以在同一个JVM中运行,也可以在单独的JVM中运行。无论如何,您必须使用IP地址来配置通信。如果你愿意的话,我可以给你一个小的可执行应用程序(包括应用程序客户端和服务器)。
谢谢。
https://softwareengineering.stackexchange.com/questions/256388
复制相似问题