我遇到了项目客户端 - 服务器 - 数据库的问题。我在Java SE(GUI:Swing)中编写了客户端应用程序。 Hibernate将提供服务器和数据库之间的通信。但是,我不知道如何实现客户端应用程序和服务器应用程序之间的通信,实际上我还没有。
- 第一个想法是在Java SE中编写服务器应用程序,并使用RMI协议进行客户端的远程服务器方法调用。
- 第二个想法是使用EJB +在Java EE中编写应用程序服务器。 JBoss的。
答案 0 :(得分:1)
- 哪种想法更合理?
醇>
这取决于您的拓扑。 RMI是单机拓扑的不错选择,甚至可以跨LAN运行良好;但它有限制使它成为poorly suited for the Internet。
在您提出的两个想法中,如果您的客户是通过Internet分发的,那么JavaEE更合理。还有其他可行的选择,例如Typesafe Activator,一个支持Web服务的轻量级非JavaEE应用程序服务器。
- 哪个想法更快?
醇>
RMI具有最简单和最紧凑的序列化,因此它总是会稍微快一些。然而,这是一个相对不重要的问题,除非你的应用程序非常喋喋不休,即便如此,它仍然不可能超过好的设计。
- 在第一个想法的情况下,我读到Web服务器已经习惯了 动态交付的课程。如果我,我是否需要使用Web服务器? 会预测所有必要的课程,我会把它们放在本地吗?
醇>
在这两种情况下,您都需要服务器提供的数据的客户端对象表示,在这两种情况下,您都希望在服务器和客户端之间保持这些数据类的同步。所以这不是一个特别有用的区别。
- 多线程(访问服务器+等)等方面 多个客户端同时访问数据库)/ 安全?在第二个想法的情况下,我必须照顾这些 方面你自己?
醇>
正确。 JavaEE为这些问题提供了解决方案,而RMI却没有。
- 你能给我一个客户端和服务器实现的例子 第二个想法?如何连接,如何调用远程方法 客户等参数转移
醇>
这个请求太过于涉及到答案。此外,辅导不在StackOverflow的范围内。我能做的最好的事情是建议您聘请JavaEE专业人士,或者找一本JavaEE书籍并开始学习! :)