使.net客户端从Java服务器使用服务的最佳方法是什么?
我在.net中有一个用户界面,需要在请求/回复/更新模型上从服务器接收数据。唯一的限制是只能在服务器上使用Java。
实现此目标的最佳方法是什么?是通过Java创建Web服务,然后在.net中访问它,还是应该创建Java代理并通过使用IKM在.net中对其进行转换?还是我们有更好的主意?它可以基于HTTP,使用直接套接字连接或者任何中间件。
解决方案
回答
用Java编写Web服务并在.net中访问它
回答
最好使用标准类型的Web服务(例如SOAP或者XML-RPC),因为它不仅易于产生/使用,而且在其他语言中也很容易。
回答
我推荐Web服务路线。它提供了一个标准接口,将来可以供其他客户端平台使用。
.NET客户端与Java Web服务的交互非常好,尽管有一些陷阱。 .NET客户端可以使用的最好的两种技术是Microsoft Web服务增强(WSE)和Windows Communication Foundation(WCF)。 WSE是一种较旧的技术,不再由Microsoft进行更新,但是在Visual Studio 2005及更早版本中仍然可以正常使用。我发现WSE在与基本服务的接口方面更容易入门,但是WCF对WS- *协议(安全性,信任等)的支持更多。如果需求是基本的,并且仍在使用Visual Studio 2005(.NET Framework 2或者更旧的版本),请使用WSE。如果我们喜欢最前沿的技术,或者我们预期会有更高级的安全需求(听起来不尽如人意),则可以使用WCF。请注意,WSE在Visual Studio 2008和更高版本中不容易工作,WCF在Visual Studio 2005和更高版本中不工作。
遵循Web服务路线将意味着我们将设计一个可重用的接口,并且与大多数其他路线相比,完成后将导致系统耦合更松散。缺点主要是性能:xml序列化将比二进制传输慢,并且Web服务不能很好地处理大量数据。