gpt4 book ai didi

java - .Net/PHP/iPhone 中的 JNDI

转载 作者:行者123 更新时间:2023-12-01 15:46:45 24 4
gpt4 key购买 nike

让我向您解释一下我目前所陷入的完整情况。

我们正在使用 GWT 和 Hibernate 开发非常复杂的应用程序,由于客户的要求,我们正在尝试将客户端和服务器代码托管在不同的服务器上。现在,我可以使用 JNDI 来实现这一点。

这里是棘手的部分,客户也需要在不同的平台上拥有该应用程序,数据库将相同,方法也将相同,比如说我们应用程序的 iPhone/.Net 版本。我们不想再次生成服务器代码,因为它对于所有人来说都是相同的。

我曾尝试在服务器代码顶部使用 WebServices 包装器,但由于体系结构和类依赖关系的复杂性,我无法这样做。例如,让我们考虑下面的代码。

    class Document {
List<User>;
List<AccessLevels>;
}

文档类有用户列表、访问级别列表和更多其他类列表,并且其他类有更多列表。一些重要的服务器方法将类(文档或任何其他)作为输入并在输出中返回一些其他类。而且我们不应该在 Web 服务中使用复杂的架构。

所以,我需要坚持使用 JNDI。现在,我不知道如何访问对任何其他应用程序的 JNDI 调用???

请提出克服这种情况的方法。我对技术变革持开放态度,这意味着 JNDI/WebServices 或任何其他可以很好地为我服务的技术。

谢谢你,

问候,

最佳答案

我从未见过 JNDI 用作请求/响应进程间通信的机制。我不相信这会是一条富有成效的攻击路线。

您认为当有效负载复杂时,Web 服务不合适。我不同意,我见过许多成功的项目使用相当大的有效负载,并且有许多嵌套类。简单示例:客户的订单、订单行、产品、...等等。

显然希望保持较小的有效负载大小,但存在序列化和网络成本,大对象会更昂贵。但到目前为止,提出一个大要求比提出很多小要求要好得多。 “繁忙”的接口(interface)在网络上的性能不佳。

我怀疑您可能遇到的一个问题是某些服务器端类不是纯数据,它们指的是仅在服务器上有意义的类,您不希望在客户端中使用这些类。

在这种情况下,您需要构建一个“适配器”层。这是一项枯燥的工作,但无论您使用哪种进程间通信技术,您都需要这样做。您需要我所说的数据传输对象 (DTO) - 这些表示客户端可以理解的有效负载,仅使用对客户端合理的类,并且服务器可以使用和创建它们。

假设您使用技术 XXX(JNDI、Web 服务、直接套接字调用、JMS)

  Client --- sends Document DTO --XXX---> Adapter transform DTO to server's Document

反之亦然。我的主张是,无论选择什么 XXX,您都会遇到相同的问题,您需要客户端使用不透露服务器实现细节的“精简”对象。

适配器负责创建和理解 DTO。

我发现,一旦拥有一组 DTO,使用 JAX/RS 处理 RESTful Web 服务就非常容易,创建 Web 服务只需要几分钟的时间。

关于java - .Net/PHP/iPhone 中的 JNDI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6922215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com