RSSおすすめ記事です

スポンサーリンク

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

ニュースAmazon, クラウド

スポンサーリンク

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

1 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:14:20.02 ID:CAP_USER.net

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

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

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の成熟によって実際にどこまでカバーされるのか、注目されます。
https://www.publickey1.jp/blog/19/awsidlsmithy.html


スポンサーリンク

ネットの反応

2 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:17:42.34 ID:4jFzR4wM.net
Left Caption

CORBAの再発明?

14 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:38:45.10 ID:VIypTmlJ.net
Left Caption

>>2
CORBAの発展系がRESTful API
新しい技術についてこれないオッサンと自白してるようなもんですよ

7 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:28:31.19 ID:gVwEQ1tf.net
Left Caption

あくまでインターフェース定義言語。
オニオンアーキテクチャへの移行なんかが少しお手軽になる感じだろうな。

つまり、もっとAWS使ってくれって話w

8 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:29:13.40 ID:8AXvS9e9.net
Left Caption

まーこれだけAWSがマイクロサービスのバリエーション普及させちまったから、やつらの定義するIDLが覇権を握る理屈はわかる…

だが、オープンにしてもAmazonに全部牛耳られるWebサービスの世界でええんかのぉ

10 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:32:49.79 ID:65KOkbZL.net
Left Caption

OpenAPIじゃ駄目な理由がわからん
ただの囲い込みなのか?

23 : 名無しのシステムエンジニアさん 2019/06/25(火) 01:14:55.22 ID:yNXjmR2w.net
Left Caption

>>10
swaggerだとREST以外のAPIが書けないじゃん
mqttとかzmqとかも使ってるんで、こんなの欲しかった

17 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:40:38.77 ID:XPZhBzJu.net
Left Caption

>>10
後発で出す以上当然より優れた点があると思いたいな

11 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:33:06.59 ID:2XQlOG09.net
Left Caption

言語に依存しない言語って、ちょっと何言ってるかわからない。

13 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:35:08.04 ID:sazFjP+y.net
Left Caption

>>11
CSSはHTMLではない。

12 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:33:31.46 ID:sszdDrCW.net
Left Caption

Smithは欧米でもっとも多い姓名だ。
だからもっと多くの人に合致するという意味なんだろうか?日本だと、鈴木仕様とか佐藤言語という感じか。
うーん、AWSのセンスが気持ち悪い。

16 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:39:01.31 ID:wb204x9l.net
Left Caption

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

うえっ…吐き気がする。

21 : 名無しのシステムエンジニアさん 2019/06/25(火) 00:52:54.08 ID:mTbHWFmq.net
Left Caption

C#以外の言語を禁止にするだけでok

25 : 名無しのシステムエンジニアさん 2019/06/25(火) 01:38:38.76 ID:NCepOu6e.net
Left Caption

WSDLだって言語やプロトコルに依存しないもん!

26 : 名無しのシステムエンジニアさん 2019/06/25(火) 01:46:15.10 ID:Gjrncnln.net
Left Caption

個人的にはXML Schemaをそういう目的に使う事が多いな。
後はProtocol Buffers?
まぁAPI全体の表現はできないけど。
そこそこ便利だろうけどどうだろうな。
ツール群の整備度合いによる。

ともかく自然言語ドキュメントとかでAPIを定義するのは勘弁してくれ。
多少説明やコメントに残るのは当然仕方ないとはいえ。

28 : 名無しのシステムエンジニアさん 2019/06/25(火) 02:07:18.79 ID:4F4TDP+w.net
Left Caption

日本のITゼネコンがこういうのを使うと、
仕様書からこの言語に落とすだけの仕事ができて
オーバーヘッドと誤解を生む原因になるだけだと思う

Posted by flac