实现远程业务逻辑有什么区别?
目前我们正计划使用ADF来开发前端 Web 应用程序(从Struts转移)。由于从 Struts 到 ADF 的迁移还将包括 PL/SQL 和 Oracle Forms,因此用户数量急剧增加,因此前端使用TopLink调用EJB与通过RMI调用ADF 业务组件之间有什么区别?
ADF 非常广泛,因为它涵盖了前端一直到数据访问。如果您打算使用整个堆栈,它是一个很棒的RAD框架,但如果您只打算使用其中的一部分,它就不那么热门了。
我假设您正在谈论将 TopLink 或 ADF 业务组件 (BC4J) 用于数据访问层。
我想说,如果您打算使用基于 RMI 的应用程序,TopLink 可能会更好,主要是因为 BC4J 的强大功能在于它的视图对象,它不会序列化(因此将这些结果转换为 TopLink 样式的值对象,反正)。
如果您正在做一个直接向上和向下的 Web 应用程序并且并不真正关心 EJB 和 RMI,那么我认为您会发现 BC4J 在使标准 Web 应用程序扩展方面提供了很多东西......长话短说,它将 SQL 映射到视图对象,这些对象基本上是智能数据网格,具有非常可调的行为,可以直接绑定到Oracle ADF Faces 的JSF组件,从而提供非常好的无缝 RAD。
我现在正在经历类似的情况。我不是专家,但这里是我从我的经验中收集到的。EJB 使用 Toplink 还是 ADF 是否能更好地扩展在很大程度上取决于您的具体情况。在某些情况下,一个可能比另一个更好,但我觉得它们都是很好的解决方案。
但是,既然您提到该项目还涉及 Oracle Forms 的迁移,那么 ADF 似乎将是最佳选择,因为 Oracle 似乎将 JDeveloper 和 ADF 定位为 Forms and Reports 的继任者(请参阅ADF 文档针对 Forms and Designer开发人员)。
您不应使用 ADF BC 的 EJB 部署。它需要大量的 RMI 同步。我将它与 ADF Swing一起使用。转到下一个记录大约需要三秒钟。我们需要重写组合框以使其执行。
在Oracle 11g(2009-05 版)中,您将获得基于视图对象创建 SDO WS 的选项,并且您可以在其他 ADF 项目中的基于 ADF BC 服务的实体中使用这些选项。