使用rmi而不直接连接数据库有什么好处

时间:2014-06-12 20:09:45

标签: java database rmi

我们已经要求为拥有10个分支机构的公司设计申请。

他们需要一个分布式数据库应用程序,使用它们可以存储和检索其他分支的数据。为了实现这一点,我计划通过网络使用连接字符串的ip地址访问数据库。

但我发现一些文章说使用RMI 技术是实现这一目标的最佳途径。但是,使用rmi而不是将应用程序直接连接到数据库,我无法找到任何详细的优势。是否有必要使用RMI技术? 我不了解rmi。请给我一个详细的答案。提前致谢。

1 个答案:

答案 0 :(得分:1)

RMI是最好的技术吗?我们必须同意“最好”。但我的第一反应是“不”。

答案取决于这些分支机构是通过安全网络访问数据,公司内部还是通过浏览器和公共互联网进行访问。

如果所有分支都在同一安全网络的防火墙内,则RMI可能是可接受的。如果所有这些都可以处理Java客户端,那么您将能够使其工作。

但如果他们越过公共互联网,唯一有意义的解决方案是通过端口443进行HTTPS。客户端将用HTML5和CSS3编写,以便在浏览器中运行。

无论该问题的答案如何,我认为您希望在每种情况下都在客户端和数据库之间建立中介。您不希望客户端直接访问数据,因为它不安全。中介将负责:

  1. 用户的身份验证和授权。
  2. 验证请求数据。
  3. 将请求绑定到查询以避免SQL注入攻击。
  4. 记录和监控。
  5. 交易维护。
  6. 只有当所有服务器和客户端都是基于Java的时候,RMI才有意义。

    更现代的方法是使用HTTP Web服务,SOAP或REST,而不是RMI。这具有与非Java客户端一起使用的优点。您也可以通过这种方式为移动客户提供更好的服务。