Java .Net/PHP/IPhone中的JNDI
让我向你解释一下我目前所处的全部情况 我们正在用GWT和Hibernate开发非常复杂的应用程序,由于客户机的需求,我们试图在不同的服务器上托管客户机和服务器代码。现在,我可以使用JNDI实现这一点 这里是棘手的部分,客户端也需要在不同的平台上使用该应用程序,数据库和方法将是相同的,比如说我们应用程序的iPhone/.Net版本。我们不想再次生成服务器代码,因为它对所有人都是一样的 我曾尝试在服务器代码顶部使用WebServices包装器,但由于架构和类依赖关系的复杂性,我无法做到这一点。例如,让我们考虑下面的代码。Java .Net/PHP/IPhone中的JNDI,java,.net,web-services,jakarta-ee,jndi,Java,.net,Web Services,Jakarta Ee,Jndi,让我向你解释一下我目前所处的全部情况 我们正在用GWT和Hibernate开发非常复杂的应用程序,由于客户机的需求,我们试图在不同的服务器上托管客户机和服务器代码。现在,我可以使用JNDI实现这一点 这里是棘手的部分,客户端也需要在不同的平台上使用该应用程序,数据库和方法将是相同的,比如说我们应用程序的iPhone/.Net版本。我们不想再次生成服务器代码,因为它对所有人都是一样的 我曾尝试在服务器代码顶部使用WebServices包装器,但由于架构和类依赖关系的复杂性,我无法做到这一点。例如,
class Document {
List<User>;
List<AccessLevels>;
}
类文档{
列表
列表
}
文档类具有用户列表、访问级别列表和其他类的更多列表,而其他类具有更多列表。一些重要的服务器方法将类(文档或任何其他类)作为输入,并在输出中返回其他类。我们不应该在Web服务中使用复杂的体系结构
所以,我需要坚持使用JNDI。现在,我不知道如何访问任何其他应用程序的JNDI调用
请提出克服这种情况的方法。我对技术变化持开放态度,这意味着JNDI/WebServices或任何其他为我提供良好服务的技术
谢谢你
关于,我从未见过JNDI被用作请求/响应进程间通信的机制。我不相信这将是一个有效的攻击线 当有效负载很复杂时,您认为Web服务是不合适的。我不同意,我见过许多成功的项目使用相当大的有效负载,有许多嵌套类。一个简单的例子:客户的订单行中有。。。等等 显然,保持有效负载大小较小是可取的,因为存在序列化和网络成本,大型对象将更加昂贵。但有一个大的要求比有很多小的要求要好得多。“繁忙”接口在网络中无法正常运行 我怀疑您可能遇到的一个问题是,某些服务器端类不是纯数据,它们指的是仅在服务器上有意义的类,您不希望这些类出现在客户端中 在这种情况下,您需要构建一个“适配器”层。这是一项枯燥的工作,但无论您使用什么进程间通信技术,您都需要这样做。您需要我所说的数据传输对象(DTO)——它们表示在客户机中理解的有效负载,只使用对客户机合理的类,服务器可以使用和创建这些类 让我们假设您使用XXX技术(JNDI、Web服务、直接套接字调用、JMS) 反过来也是如此。我的主张是,无论选择哪个XXX,您都会遇到同样的问题,您需要客户机处理“精简”对象,这些对象不会显示服务器的任何实现细节 适配器负责创建和理解DTO
我发现使用JAX/RS使用RESTful Web服务非常容易,一旦您有了一组DTO,创建Web服务只需几分钟的时间 我同意您在WebServices中的观点,但这里的架构非常复杂,我们无法创建每个类的DTO,大约有400-500个类。我们已经使用JNDI实现了不同服务器之间的通信,而且它工作得很好,所以我只是想知道我是否可以在.net/php中访问JNDI,我的工作会更容易…很有趣。。。您是否将JNDI用作“公告板”?如果对象在所有服务器中都是有意义的,那么这肯定是可行的。我不清楚这在一个更受限制的客户端环境中如何工作。无论如何,JNDI和许多其他Java API肯定可以从C代码通过JNI访问。我建议您看看CodeMesh这样的产品:
Client --- sends Document DTO --XXX---> Adapter transform DTO to server's Document