开源的网络服务框架:Apache Etch 1.4.0 发布

  • 李士窑

2014 年 8 月 10 日

话题:Apache语言 & 开发架构

Apache Etch是一个开源、跨平台、语言和传输方式独立的网络服务框架,可用来构建和使用网络服务。Etch 提供的工具集包括一个网络服务描述语言、一个编译器和与各种语言进行绑定的库。它具有传输方式独立的特性,允许开发者根据需求使用不同的传输方式。它的目标是使得开发者能够快捷的定义和访问轻量、集中的服务,并可以使用相似的方式进行组合和部署服务。使用 Etch 可以使得开发、访问服务相比使用其他开发工具库更加简单和快捷。

近日,Etch 团队宣布 Etch 1.4.0 发布,现已提供了 Linux 和 Windows 环境下的源码和二进制格式的下载,该版本新增了 C++ 语言的支持,并做了多方面的改进,还修复了大量 Bug,主要改进包括:

  • 新增了 C++ 支持,在进行 beta 版本测试
  • GO 语言版本升级到了 1.3
  • 解决了 ValueFactory SRuntimes 互斥锁不能解锁的问题
  • 修复了不能继承 equals 和 getHashCode 方法的问题
  • 修复了 EtchPacketizer 的 sessionData 在一个 Buffer 中不能接收多个数据包的问题
  • CAPU 版本升级到了 0.13.0 版本
  • 修复在 hasResult() 或 hasException() 方法中客户端挂起的问题
  • 修复了调用 EtchFlexBuffer 的 put 方法后 Buffer Index 不能更新的问题
  • 能够在 EtchRuntime 中配置日志级别和日志附加的相关信息
  • 能够在多个平台上编译 C++
  • 构建系统能够进行充分利用多核进行构建

Etch 为了提供一个简洁、正式的描述客户端和服务端信息交换, 所以提供了以下强大的功能:

  • 支持单向和双向的实时通信
  • 具有高性能和高扩展性
  • 支持客户和服务器端使用不同的语言编写
  • 支持客户 / 服务器模式运行的环境(如瘦 Web 客户端、嵌入式设备、PC 应用、服务器应用)
  • 支持添加新语言和新的传输方式
  • 性能要快而轻量,还必须具有足够的灵活性以满足不同的需求
  • 方便开发者访问和构建各种服务

Etch 是一个快速发展的项目,对 Java、C#、C 的支持已经稳定可用,C++ 的支持处于 beta 版本测试阶段,Go、JavaScript、Python 的支持还处于 Alpha 版本。接下来的版本中,将会支持 iOS 设备和 iOS 模拟器 。


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

Apache语言 & 开发架构