.NET 服务的跨平台 RPC
Posted
技术标签:
【中文标题】.NET 服务的跨平台 RPC【英文标题】:Cross platform RPC for .NET service 【发布时间】:2009-07-22 12:38:40 【问题描述】:我有一个当前通过 .NET 远程访问的 .NET 2.0 服务,我想添加对另一种 RPC 方法的支持,该方法允许更广泛的平台和语言支持。
所有 API 方法都接受并返回 XML 和简单类型,如 int。
我知道CORBA 和IIOP.NET 看起来很有希望。
我还应该关注哪些其他技术?
【问题讨论】:
iiop.net 与“真实”ORB 的重新互操作非常错误且不稳定。避免将 iiop.net 与 CORBA 一起使用... 【参考方案1】:如果可能的话,最好的办法可能是:
Windows Communication Foundation (WCF)
WCF 似乎正在(缓慢但肯定地)取代 .NET 远程处理,并且一旦您拥有一组编写为使用 WCF 的类/功能(这主要涉及使用属性和接口的使用来装饰您的类/方法来定义合约 - 无论如何都是标准的 OOP 最佳实践)您可以通过多种不同的通信机制公开该功能,所有这些都可以通过简单的配置文件进行控制。
Windows Communication Foundation (WCF) 提供了一个统一框架,用于快速构建面向服务的应用程序,从而可以轻松构建和使用安全、可靠和事务处理的 Web 服务。
WCF 的单一编程模型统一了 ASMX、WSE、Remoting、COM+ 和 MSMQ 中的功能;因此开发人员只需要学习一种编程模型。
此外,WCF 服务现在通过支持表示性状态传输 (REST)、javascript 对象表示法 (JSON) 和普通旧 XML (POX) 编码等架构,提供了更大的设计灵活性。
您可以为可能需要与您的服务通信的其他基于 .NET 的应用程序指定基于二进制的通信机制,从而尽可能减少通过“线路”流动的数据量,同时,使用 XML 通过 SOAP 公开这些完全相同的服务,以实现最大的可移植性和跨平台访问。
WCF 的一个良好起点及其好处是:Introduction to Building Windows Communication Foundation Services
【讨论】:
【参考方案2】:只使用 SOAP 怎么样? WCF 对它的支持非常好,包括对 WS-Security 和其他此类 WS-* 协议的支持。
【讨论】:
以上是关于.NET 服务的跨平台 RPC的主要内容,如果未能解决你的问题,请参考以下文章