【TechTarget中国原创】从本质上来说,Thrift准许开发商关注服务的业务逻辑,使用这12个支持语言的任何一种,如果服务逻辑要求大量使用异步算法,则可以用Erlang语言来简化开发,或者如果这些专家倾向于Java就可以用Java语言,如果服务需要和用Ruby on Rails编写的网络应用整合在一起,就要用Ruby语言。而Thrift是通过Thrift文件来实现其灵活性的。
一个Thrift文件涵盖了服务的数据类型和方法特征,这和SOAP、CORBA中使用的其它语言中立合同是一样的—它们分别是WSDL和IDL合同。一旦我们设计了一个Thrift合同,就可以在任何一个特定的语言生产更多的短线。
但是,Thrift短线和其它技术不同。因为它包含了协议和socket方法(管道编码)。Thrift一直在思考这个问题,并且尤其关注服务,它一直在使用自己的协议,用户抽取和服务器抽取,更不用说依靠使用方法来定义那些可以在其支持的十二种语言之间简单映射的类型了。
从这个意义上来说,Thrift对用户服务抽取的支持和集成产品的一些功能有重叠的地方。因为它的合同和编码的生成方法同CORBA这样的分布式技术极为相似。Thrift是一款带有自我支持服务的版本,尤其是当许多编程语言用来支持服务的不足之处时或者还有其它处理运行时间版本控制的设计方式。
至于由谁来使用Thrift,首先是在Facebook工程学小组指导下的Apache项目,Facebook工程学小组谈及了Thrift在现实世界的实用性。Thrift成为了一个让单个小组选择编程语言的重要组成部分,这些编程语言是建立在小组和域基础之上的,并且可以依靠Thrift 在它们内部云中实现服务整合。
所以,如果你的组织SOA措施正在考虑从众多的编程语言中选取一门语言,有必要折中地考虑一下开放源软件。Thrift值得你近距离观察,其独特的协议和文件描述格式可能和少数抱守的技术人员不太对味,但是在版本控制支持方面,它所带来的收益,即使和那些已有的集成方法和产品相比较,也足以使其在市场上成为有力的竞争者。