ITmedia NEWS > 企業・業界動向 >

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

» 2019年06月28日 12時48分 公開
[新野淳一ITmedia]

この記事は新野淳一氏のブログ「Publickey」に掲載された「AWS、言語やプロトコルに依存しないインターフェイス定義言語(IDL)『Smithy』をオープンソースで公開」(2019年6月25日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。

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

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

photo

 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とされています。

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

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

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

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

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

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

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

Copyright © ITmedia, Inc. All Rights Reserved.