AWS、言語やプロトコルに依存しないインターフェイス定義言語(IDL)「Smithy」をオープンソースで公開

2019年6月25日

クラウド時代のアプリケーションは、複数のソフトウェアがAPIを通じて連携するアーキテクチャが主流になると考えられています。そのため、さまざまなソフトウェアにおいて正確かつ確実にAPIを実装することの重要性が高まっています。

AWSは、このAPIを定義する言語、およびその定義からAPIを実装するコードを生成するツールからなる「Smithy」ベータ版をオープンソースとして公開しました。

fig

SmithyのWebサイトから、その説明を引用しましょう。

Smithy is a protocol-agnostic interface definition language and set of tools for building clients, servers, and documentation for any programming language.

Smithyはプロトコルに依存しないインターフェイス定義言語(IDL:Interface Definition Langugae)と、どんなプログラミング言語にも対応したクライアントやサーバ、ドキュメントなどを生成する一連のツールです。

つまりSmithyを用いてAPIを定義すると、そこからさまざまなプログラミング言語に対応したAPIのソースコードとドキュメントが生成されるわけです。それによって正確で確実に相互連携を可能にするソフトウェアの開発が容易になると期待されます。

SmithyはAWSの内部でIDLとして10年ほど使われてきたものをベースとしていると、次のように説明されています。

Smithy is based on an interface definition language that has been widely used within Amazon and AWS for over a decade.

SmithyはAmazonとAWSの内部で10年ほど広く使われてきたインターフェイス定義言語をベースとしています。

プロトコルとプログラミングに依存しないことが大きな特徴

Smithyの大きな特徴は、プロトコルやプログラミング言語に依存しない点でしょう。

例えばIDLとして知名度が高く、実際に多く使われてもいるOpen APIは、RESTful APIのためのIDLとされています。

参考:RESTful APIの記述標準化を目指す「Open API Initiative」をマイクロソフト、Google、IBMらが立ち上げ。Swaggerをベースに

アプリケーション間で使われるプロトコルにはそのほかにもgRPCやGraphQL、MQTT、古くはXMLをベースにしたSOAPなど、さまざまなものがあります。

大型のアプリケーションであれば、こうした複数のプロトコルをそれぞれ適切な場所において適切な形で使い分けることになるでしょう。また、アプリケーションを開発するチームごとに得意なプログラミング言語や適切なフレームワークを用いることになるでしょう。

Smithyが単体でこうしたさまざまなプロトコル、プログラミング言語でAPIを実装することをカバーするとすれば、非常に有効なIDLとツールになるはずです。特に大規模な組織で開発を行っている企業などでは、定義とツールを一元化できる意義は大きいでしょう。

AmazonとAWSがSmithyのベースとなった技術を開発したのも、自社の大規模開発におけるこうしたツールのニーズが高かったためであることは間違いないと思います。

ただし、現状の公開されているSmithyはまだベータ版のためか、どのプログラミング言語に対応しているのか具体的な説明は見つからず、またGitHubのリポジトリ内のコードをざっと見たかぎりでは、ツールのコードもまだすべてが揃っているわけではなさそうです。

今後のSmithyの成熟によって実際にどこまでカバーされるのか、注目されます。

あわせて読みたい

AWS プログラミング言語 API




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本