我正在为执行远程命令或其他应用程序开发一个java应用程序或服务,并接收这些命令的结果。我想将这个应用程序投射到可以使用swing接口或web界面。
我必须注意传递我的businnes类的参数以及如何处理结果。我需要使用一个架构和项目,让我能够将我的类用于桌面应用程序或Web应用程序。
我认为这与API和服务设计有关。一些流行的应用程序具有用于控制服务的web界面或仪表板,并且安装的代理可以管理服务以执行一些恶魔,服务或应用程序。要为数据库系统启动或停止命令,目录服务是其他任务
有一些指导如何在Java中开发应用程序和服务,我可以在Web和桌面环境中使用它吗?
我对此感到困惑,因为在我看来,如果我选择以摆动的方式发展这一点,那么所有的想法都会让我感到清醒。但是当我使用网络视角想象同一个项目时,我失去了我的指示。
抱歉,我希望有人可以帮我。 :-P
答案 0 :(得分:3)
答案 1 :(得分:2)
您可以查看Naked Objects,您可以在其中开发域对象模型并且或多或少地免费获取UI(您可以获得桌面GUI和各种形式的Web UI)。如果您正在开发面向公众的应用程序,这可能不是一种可行的方法,但更适合为专家用户开发的应用程序。
答案 2 :(得分:1)
最近我开始处理一个简单的CMS时遇到了类似的情况。我希望我的cms引擎没有用于与之交互的UI /客户端,最后我决定采用面向Web服务的方法。作为RESTful WS / ROA的学生,我通常喜欢采用这种方法。
如果我理解你的问题,我会将其设计为,我希望提供远程访问的每个外部程序,服务,Web服务都是我的Web服务的“应用程序”,其中“应用程序”将是“资源”。对“应用程序”资源执行操作意味着使用不同的查询参数执行GET请求。 “应用程序”的推断方式取决于“应用程序”资源。
我在CMS引擎中采用的类似方法是为内容生成表示。我支持Ruby(JRuby),Groovy,JavaScript(Rhino)和Velocity模板来生成表示。用户将模板脚本创建为资源,然后在内容类型定义中引用。客户端从内容通用媒体格式(Atom XML,JSON)向表示提供URI,并且在获取它们时接收脚本生成的输出。我很想对你的问题采取类似的方法。它不仅将UI与业务对象分离,而且还提供了从长远来看添加新后端服务的灵活性。
作为RESTful WS over Java的工具,我建议Jersey,Abdera,Jackson。作为如何一起使用它们的示例,您可以查看CMS项目referring to。
答案 3 :(得分:1)
您好我建议您使用模块化方法构建您的系统 您将所有业务逻辑公开为可由REST访问的服务, 另外,创建可以拥有Web应用程序层和桌面层。
原理上它看起来像是在更高层次
weblayer / desktop --------- {REST interface} ------- {business logic} ----- EIS
对于模块化,您可以考虑OSGI 希望这有帮助