javascript GUI&桌面应用程序的{j}后端

时间:2017-01-23 12:28:11

标签: java javafx desktop-application web-technologies

我有一个工作桌面应用程序,JavaFx作为前端,java作为后端语言。这很好,直到我要求在移动设备上使用相同应用程序的某些特殊功能(2 - 3年前)。因此创建了android应用程序(它是第一个目标操作系统),它实现了这些新功能(很少重复的功能重复)。桌面客户端和Android客户端使用P2P协议同步信息。

直到现在这很好,但最终发现很难维护GUI几乎相似的单独代码。另一个问题是使用JavaFx客户端和Android实现更丰富的GUI体验(虽然获得原生外观)。使用JavaFx创建复杂的组件(如树或嵌套的复杂表)非常繁琐。

在研究了最近的趋势之后,我确信我应该使用基于HTML5 / CSS3 / JavaScript的GUI,我可以根据不同设备的要求打包(例如Electron用于桌面,Cordova用于移动设备。我看到我的基本HTML代码将保持相同的优势。

现在的问题是,我不想在服务器端使用node.js,并希望继续使用我的java后端。如果我使用Web技术重写完整的GUI,那么与我的java代码进行通信的最佳选择是什么。

请注意,我不希望客户端 - 服务器模型避免嵌入式服务器开销(因此让REST服务超出范围)。

有关项目的一些细节

  1. 它需要大量图形并使用OpenGL& OpenGL ES

  2. 目前,GUI(JavaFX或Android)通过直接调用Java后端代码(来自GUI - >后端)和引发事件(后端 - > GUI)进行通信。

  3. 新版本使用新的二进制文件发送给用户,因此不需要自动更新。

  4. 我看到第一个要求将通过WebGL支持框架/工具包来实现。我正在寻找如何从上面实施第二点。

    我经历了下面的一些问题,但他们都在讨论基于客户端 - 服务器的架构或在JavaFx(WebView或JxBrowser)中嵌入浏览器,或者使用JavaFX-Android SDK直接在Android上移植JavaFX应用程序,但根据我的要求,我不希望客户端服务器不能继续使用JavaFx。

    Pure Java HTML viewer/renderer for use in a Scrollable pane

    How to use HTML and CSS as a Java application GUI?

    Is it possible to create Desktop Application using Java backend & Web Technologies UI

    总结 - 如果我使用Web技术,有什么方法可以从GUI到Java进行通信,反之亦然,而不是服务器基础应用程序。我找到的是node-java,但不确定它是否是正确的方法,可以依赖于未来的java版本(目前使用的是java 1.8)

0 个答案:

没有答案