理解WSDL,IDL

IDL用于跨语言RPC调用,描述接口及数据结构,如Web Service的WSDL和Thrift的IDL。它非RPC必需,但能生成不同平台的接口定义,确保消息传递的一致性。服务发布方可直接分享API类库,消费者直接使用,而使用IDL则允许外部根据描述生成本地数据结构。WSDL在Web Service中并非必须,消费者可以直接使用服务发布的类。
摘要由CSDN通过智能技术生成

很多RPC技术都会使用中间语言来定义接口描述,比如Web Service常用的WSDL, Thrift使用的IDL。


这类文件都是接口定义/描述语言 (Interface Definition/Description Language),有几个特点:

1. 采用中间语言来描述接口,以及接口使用到的数据结构(类)

2. 一般都采用文本文件,方便传递

3. 语法上可以使用XML,也可以自定义格式。使用XML的话有一堆工具可以进行读写和直接映射到类/对象。使用自定义格式的话需要自己写解析


需要理解的是,从RPC调用的过程来说,IDL不是RPC的必要组件,它的存在主要是为了支持跨语言调用,通过IDL,可以使用工具生成不同平台下的接口定义和相关的类定义,从本质上说IDL只是描述接口的数据结构的一种方式,更通俗的说,是描述消息的一种方式。

因为RPC本质上来说就是不同主机之间的消息传递,只是这种消息是一个方法而已。所以通过IDL可以让不同语言下的程序拿到统一含义的消息描述。


如果不是跨语言的RPC调用,根本不需要IDL来描述接口,可以直接把定义接口和相关数据结构的类打包,比如取名叫api.jar,服务发布方把api.jar直接发布出去。服务消费者拿到api.jar之后实际上就拿到了消息的数据结构,可以在本地直接使用这些数据结构,保证服务消费者向服务提供方发送的消息是符合约定的。


当然,使用IDL的话,可以让组织外部或者不方便拿到api.jar的人根据IDL来生产接口的数据结构,但请记住,IDL不是RPC的必要组件,它只是为了提供一种描述接口的数据结构,让服务的消费

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值