使.net客户端从Java服务器使用服务的最佳方式是什么?

问题描述:

我有.net中的用户界面,需要从服务器接收请求/回复/更新模型中的数据。唯一的限制是仅在服务器盒上使用Java。使.net客户端从Java服务器使用服务的最佳方式是什么?

实现此目标的最佳方法是什么?是通过在Java中创建一个Web服务然后以.net访问它,还是应该使用IKM创建Java代理并将它们转换为.net?或者你有什么更好的主意?它可以基于HTTP,使用直接套接字连接或任何中间件。在Java中

我推荐web服务路线。它提供了一个标准接口,可供未来其他客户端平台使用。

.NET客户端与Java Web服务很好地交互,虽然有一些问题。适用于.NET客户端的最佳两种技术是Microsoft Web Service增强功能(WSE)和Windows Communication Foundation(WCF)。 WSE是微软不再更新的旧技术,但在Visual Studio 2005及更早版本中仍然很棒。我发现WSE从与基本服务的接口方面入手要容易一些,但WCF对WS- *协议(安全性,信任等)有更多的支持。如果您的需求是基本的,并且您仍然在使用Visual Studio 2005(.NET Framework 2或更早版本),那么请去WSE。如果您喜欢尖端技术,或者您预计会有更高级的安全需求(听起来不像您愿意),那么您可以使用WCF。请注意,在Visual Studio 2008及更新版本中,WSE将无法轻松工作,并且WCF将无法在Visual Studio 2005及更早版本中运行。

进入Web服务路线意味着您将设计一个可以重用的接口,并且在完成工作时会导致更松散耦合的系统比大多数其他路由。缺点主要是性能:xml序列化将比二进制比线更慢,Web服务不能很好地处理大量数据。

写web服务和访问它在.NET

使用标准的网络服务的类型(如SOAP或XML-RPC)是最好的,因为它不仅是容易产生/消耗,很容易在其他语言也是如此。