阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

BERT-- 作为 Protocol Buffers/Thrift 的动态替代

  • 2009-11-03
  • 本文字数:771 字

    阅读完需:约 3 分钟

尽管 XML 在数据编码方面尤为突出,仍然有很多情况下效率不高成为了阻碍,这是由编码 / 解码的效率不足与所占用的空间两方面所造成的。流行的二进制序列化格式有得到广泛使用的 ASN.1, Google 的 ProtocolBuffers,以及 Facebook 的 Thrift

一个新的格式现在为 GitHub 的后端提供支持:BERT ,它由 Tom Preston-Werner 在 Erlang 用于编码节点间通讯术语的外部术语格式(ETF) 的基础上所构建。

BERT 对 ETF 进行了扩展,加入了字典,时间和正则表达式等复杂数据类型。

BERT 不同于 ASN.1 与 Protocol Buffers 之处在于其格式不要求一个模式或者是 IDL 规范。Tom Preston-Werner 解释这使得 BERT 就好像是 JSON 这一思想的二进制版:

我喜欢 JSON。我喜欢抽取一种语言的子集并用它来促进进程间通信这种概念。这使我想起我关于 Erlectricity 所做的工作。两年以前我为 Erlectricity 写过一个 C 扩展来加速 Erlang 的外部术语格式的反序列化。
[…] 如果我将 Erlang 的外部术语格式的公共部分抽取出来,让它成为进程间通信的标准,会怎么样呢?如果让 Erlang 拥有像 JavaScript 的 JSON 那样的相同的事物又会怎样呢?如果能在这一格式的基础上构建一个 RPC 协议,又会如何?这些东西看起来会像什么样子,能简单的实现吗?

BERT-RPC 允许对托管在 BERT-RPC 服务器上的代码远程调用,它使用 BERTs 来编码 (节点的) 协商,并返回调用的值。Tom 提到了 BERT-RPC 的一些特性

  • 同步及异步的调用 […]
  • 流 (来或往)
  • 缓存指令

Ruby 代码可通过使用像 Ernie 这样的 BERT-PRC 服务器来获得。

已有现成的 BERT 和 BERT-RPC 规范。至于 Ruby 和 Erlang 实现的其它语言可替代实现包括 BERT for Javascript Python ,以及其它。

你更倾向于 BERT 这样的无模式方案呢,还是像 ASN.1 和 ProtocolBuffers 这样的基于 IDL 的选择?

查看英文原文: BERT as Dynamic Alternative to Protocol Buffers/Thrift

2009-11-03 08:363937
用户头像

发布了 133 篇内容, 共 35.0 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

OpenTiny Vue 3.10.0 版本发布:组件 Demo 支持 Composition 写法,新增4个新组件

OpenTiny社区

前端 开源项目 UI组件库

Adobe联创去世,没他就没有PDF,乔布斯也因他逆风翻盘

Openlab_cosmoplat

PDF

Maxon MX6974 F5 Qualcomm QCN9074 embedded 4x4 industrial WiFi 6 Module

wifi6module

面部表情识别的伦理问题与应对策略

来自四九城儿

使用 ChatGPT 的代码解释器进行数据科学的 5 种方法

3D建模设计

Python 数据分析 ChatGPT

LangChain + Streamlit + Llama:将对话式AI引入本地机器

3D建模设计

人工智能 LLM

UltraEdit mac(文本编辑器) v22.0.0.18中文版下载

mac

UltraEdit 文本编辑器 苹果mac Windows软件

业内首份!电信和互联网数据安全标准汇编发布(附下载)

极盾科技

数据安全

如何使用LLM实现文本自动生成视频

3D建模设计

Python 人工智能

一云多芯能力再获认可!天翼云助推政企上云行稳致远!

天翼云开发者社区

云计算

从FTP到SFTP,哪个才是跨国传输大文件的最佳方案

镭速

大文件传输 传输大文件 跨国大文件传输

图数据库有哪些:知名图数据库产品和应用场景介绍

悦数图数据库

数据库 图数据库

企业级即时通讯协作和移动应用管理平台哪个品牌好?

WorkPlus

如何设计自动化测试落地方案

老张

自动化测试 测试方案

2023.10.14-价值最大化沙盘演练

ShineScrum捷行

如何高效实现混合App开发?

FinFish

混合开发 小程序化 混合app 超级App开发

Dreamweaver 2021中文版下载 网页编辑软件dw2021纯净版

mac

苹果mac Windows软件 Dreamweaver 2021 网页编辑软件 DW021

这款Linux不收费,却赢得了江湖!

高端章鱼哥

Linux 开源 npm

面部表情识别技术的最新研究进展

来自四九城儿

解码全栈

互联网工科生

开发者 全栈工程师 全栈开发

第二周作业

大肚皮狒狒

使用three.js与WebGL相比有什么优势?

3D建模设计

WebGL three.js

如何使用Redis实现分布式锁?

王磊

Java Java面试题

提升研发效能的低代码思路

高端章鱼哥

自动化 研发效能 低代码 JNPF

低代码平台实践

这我可不懂

低代码 零代码 JNPF 纯代码

面部表情识别技术在人机交互中的应用

来自四九城儿

学习 ChatGPT 一切基础知识的绝佳资源

3D建模设计

人工智能 ChatGPT LLM

近期大型攻防演练观感及未来攻防趋势判断

墨菲安全

安全 软件供应链

百度智能云推出828大促活动,文心AI作画低至9.9元

科技热闻

悦数图数据库与 keyarchOS 完成浪潮信息澎湃技术认证

悦数图数据库

数据库 图数据库 分布式图数据库

企业级私有化部署即时通讯,完美替代SaaS平台

WorkPlus

BERT--作为Protocol Buffers/Thrift的动态替代_SOA_Werner Schuster_InfoQ精选文章