Google、超高速に評価可能でポータブルな式言語「Common Expression Language」(CEL)発表
今回は「Google、超高速に評価可能でポータブルな式言語「Common Expression Language」(CEL)発表」についてご紹介します。
関連ワード (実現、超高速、開発等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Googleは、超高速に評価できて移植性が高い、安全に実行できる式言語「Common Expression Language」(CEL)を発表しました。
式言語とは一般に、プログラミング言語の一部やネットワークなどの構成ファイル、テンプレートファイルなどの中で、簡易な式やロジック、ポリシーなどを記述する際に使われる言語のことです。
こうした用途では、さまざまなプラットフォームに対応する移植性、起動時やプログラムの実行中に評価されることがあることから高速に評価が完了すること、安全に評価が実行できること、用途に応じて拡張しやすいこと、などが求められます。
CELは超高速に評価、ポータブル、サブセットサポート
CELは正にこうした要件に対応した式言語となっており、Googleは次のような特徴があるとしています。
- ナノ秒からマイクロ秒程度の高速な評価に最適化されている
- C++、Java、Goでサポートされるスタックによるポータブル性
- 何千もの適合性テストにより、スタック間での一貫した動作を保証
- 言語の拡張とサブセットをサポート
AWSは2023年に似たような用途のためにポリシー言語「Cedar」をオープンソースで公開しています。
参考:AWS、アプリケーション内できめ細かなアクセス制御を実現するポリシー言語「Cedar」と認可エンジンをオープンソースで公開
GoogleはCedarと比較してCELが上記の4つの特徴を備えている上に、ポリシーの記述だけではなく、より広範な用途に使えることが大きな違いだとしています。
4値論理、SQLへの変換可能
またCELは真(True)、偽(False)、エラー(Error)、不明(Unknown)の4値論理を備えていること、SQLにシームレスに変換できることも特徴と説明されています。
特に大量のデータに対してCELを適用する場合、1つ1つのデータにCELを評価するよりも、データベースにSQLクエリを投げて処理する方が高速になるケースが考えられるとして、SQLへの変換可能性は高性能な式言語の設計における重要な要素だったとのことです。
GoogleはCELをレイテンシが重要でポータブルなロジックを記述するための最高のビルディングブロックにするために今後も開発を続けていくとしています。