2018年振り返りと2019年予想

初出: TechReport 2018.12

今年個人的に心に残ったテーマと来年盛り上がりそうなテーマをつらつら書きます。

「2018年予想」の振り返り

昨年「TechRepot 2017.12」での2018年予想をふりかえってみます。

ボイスUI(VUI)の躍進

昨年末から度々行われている特売に支えられて、スマートスピーカー自体はかなり速いペースで数が出ているようです。連携できるサービスも、音楽配信サービスや電源制御などを中心に拡大を続けています。

その一方で、肝心のVUIそのものとしては、開発ノウハウの蓄積や共有は進んでいるものの、ハンズフリーとして使える「音声コマンド入力」という域に留まり、躍進と呼べるほどの普及までは届いていないように思います。少しずつ世の中を便利にしていく道具、としての立ち位置を確保していく中で、VUIならではというものが出てくればと期待しています。

PKIの抱える課題が顕在化

昨年Googleから告知されたとおり、Symantec社のルート証明書は主要ブラウザにて無効化されることになりました。Symantec社は既に2017年末にCA事業をDigiCert社に買収していますが、2年以上で契約してしまったサーバ証明書などではSymantec社のルート証明書に紐付いて発行されているため対応が必要となります。

一部の銀行系ウェブサイトでも本書執筆時点(2018年12月)においても「ERR_CERT_SYMANTEC_LEGACY」という悲しいエラーを見ることがあり、まだまだこの問題は終わっていません。それだけでなく、PKI全体の意思決定をブラウザベンダー側が主導で大きく動かしたという「実績」は、今後さらに大きな動きを招く可能性もあります。もはやフルHTTPSなどPKIと無関係なシステムはほとんど無く、全てのエンジニアにとって引き続き注視が必要な領域でしょう。

Windows Subsystem for Linux

引き続き開発者向け扱いではあるものの、ディストリビューションが増え、対応するLinux Kernel機能も拡充を続けて現在はDockerも一部動くようになっているようです。作業環境としてはコンソールエミュレータの機能不足・不安定さ、「Windows側」とのファイルシステム共有の課題などはありつつも、当初に比べて大きく安定して利用できるようになっています。

GPUコンピューティング

暗号通貨のマイニングブームがはじけ狂ったようなGPUの買い占めが沈静化し、あらためてVRやレイトレーシングなどがGPUの成長を支える状況に戻りつつあります。

その一方で、エッジコンピューティングとしてのGPUコンピューティングは存在感を増してきており、エッジAIカメラとしてNVIDIAやAWS、Azureなどから登場してきています。機械学習による画像処理などを手軽に利用できるデバイスとして、来年あたりからいよいよ一般的な利用検証が始まっていくとみています。

NGNの課題とIPv6の普及?

IPv6 IPoE方式のシフトは引き続き続いているようですが、特段どうこう言うような変化は無かったように思います。

量子コンピュータ

今年はあまり大きな動きはありませんでしたが、勉強会などはちらほら見かけるようになってきました。遊んでみたいところです。。

GraphQLによるAPI設計手法の変化

今年もっとも注目している技術テーマはGraphQLです。

GraphQLによる変化にはいくつか要素がありますが、一番重要視すべきは、要求されたリソースに対して決まった内容を返していたRESTに対して、どの項目を返すかをAPIレベルでクライアントから指示する、つまりリクエスト時に意識するということです。これまでRESTであればサーバサイド主導であったAPI設計が、クライアンドサイド主導で設計ができるようになります。

AWSからリリースされたAppSyncは、DynamoDBテーブルやElasticsearchなどと直接連携し、マッピングテンプレートなどを用いてそのままLambdaなどを挟まずに結果を返すことができます。これはいわばRailsなどでいうScaffoldアプリケーションのように、ひとまず最低限の部分を最低限のコードで動かしてから作り込んでいくような開発形態で大きな威力を発揮します。

クライアント側から指示できる範囲が増えるということは、リクエスト内容の認可などセキュリティ的な部分においても課題が出てくることは予想されます。そういった所も含めて、2019年にはGraphQLの利用ノウハウが溜まり、大きく普及していくように思います。

非同期通信

もう一つの大きな技術テーマは「非同期通信」です。

以前からWebSocketなどを利用して、ウェブアプリ等からも永続接続によるリアルタイム非同期処理を行っているシステムはありましたが、サーバサイドアプリケーションを自前で書く必要があるなど、かなりハードルが高いものでした。

今年は、AWSからはGraphQL Subscriptionを利用できるAppSyncやAPI GatewayのWebSocket対応、AzureからはASP.NET SignalRのコネクション管理を提供するSignalR Serviceがリリースされました。またGoogleからは違った方向として、リアルタイムで非同期にデータを同期するGoogle Firebaseのストレージ(FirestoreやRealtime DB)の変更をトリガーにCloud Functionsを実行できるようになっています。

これらはすべて、これまでREST API呼出しによって同期的に実行していたサーバサイド・フロントサイド間のデータ通信を、非同期に実現するためのものです。

こうなると、もはやサーバサイド・フロントサイドで二分することの意味は薄くなり、それらを構成する小さなコンポーネント同士がイベント駆動で結びつき、全てを分散システムとしてシステム全体を作り上げるというパラダイムシフトが起きているわけです。

サーバサイドにおいては、サーバーレスの文脈でイベント駆動によるリアクティブシステムへのシフトが起きていますし、クライアントサイドでもRx(Reactive Extension)系ライブラリの登場からリアクティブプログラミングの波が起きています。非同期通信プロトコルの普及は、この二つの統合がより手軽になっていくという意味で、大きな力を持っています。これからは、「リアクティブ」ファーストになっていくことでしょう。

ストリーム処理

前回のTechReport 2018.10にてとりあげたストリーム処理(リアルタイム処理)ですが、上記の動きを踏まえて、より利用が広まっていく技術と確信しています。

たとえばAWSにおけるフルマネージドなストリーム処理エンジンであるAmazon Kinesis Data Analyticsは、これまで独自のストリーミングSQLでしか処理を記述できなかったため、できることの範囲が限られていました。今年のre:Inventにて「for Java」として汎用のストリーム処理エンジンである「Apache Flink」を選択できるようになりました。データパイプライン(Pub/Subキュー)であるKinesis Data Streamsについても、それとは別にOSSのApache Kafkaのフルマネージドサービスとして「Amazon Managed Streaming for Kafka」が登場しています。

Azureにおいても、以前よりDatabricksとしてApache Sparkのフルマネージドサービスが提供されています。

これらから、AWSやAzureのようなメガクラウドであっても、ストリーム処理という分野においてはOSSのエコシステムに乗るべきだという技術選択が行われたことがはっきりとわかります。

ストリーム処理は「リアルタイム」の扱いをはじめとした様々な特徴や違いがあり非常に面白い分野なので、今後も取り上げていきたいところです。

ワイヤレスIoT

ついにセルラーLPWA とも呼ばれるLTE-MやNB-IoTのサービスが開始されました。各通信キャリアから接続サービスが開始されているほか、SORACOMからはリファレンスデバイスも提供されるなど、既に利用できる状況となっています。

これまでLoRaWANやSigfoxといった独自LPWA網が先行していましたが、いよいよLPWA(Low Power, Wide Area)通信における本命が登場したことになります。いわゆるサブギガ系LPWAとまた通信の性質が異なるため、そのあたりの使い分けのノウハウが溜まっていくまでは、様々な技術検証が行われていくでしょう。

いわゆる5G、次世代のセルラー網についても、オリンピック・パラリンピックでの利用を目指して来年後半には大規模なフィールドテストなどが広まってくるかと思われます。

筆者の本業でもあるBluetooth meshについても頑張っていきたいところです。

GDPRとプライバシー

セキュリティに関しては、GDPR(EU一般データ保護規則)が盛り上がりました。Cookieを受け付けるために一番下のボタンをクリックするようなウェブサイトが増えたことで、いわゆる普通の人にも影響が大きかったと言えます。

GDPRそのものの話はここではしませんが、GDPRにまつわる動きは、グローバルなインターネット上のシステムに対して、特定の国や地域が大きな強制力を与えた事例という側面を持っています。

「データ」というものに求められるべき要求基準は、著作権など既存の枠組みとの整合性の中で国の文化などによっても背景が異なりますが、GDPRを含む様々な国や地域の全ての基準を満たし続けていくコストは、枠組みが増えれば増えるほど増していきます。ちょっとすぐに解が出るものではありませんが、インターネットやそこで繋がるシステムに何を期待されるべきか、それをどうやってきめるかというインターネットガバナンスは、誰もが少しずつ考えていくべき性質のテーマと思います。

VRエコシステム

今年は間違いなくVR元年でした。

3Dで動くVtuberは急速に普及しコンテンツとして申し分なく、様々な安価なVRデバイスも登場し、街角のVR体験ゲームセンターも人気を博しているようです。暗号通貨マイニングバブルが弾けたことでGPUの価格も下がり手軽感が出ています(なお筆者は一番高い時期に入手した模様)。「360度」の角度に加えて位置トラッキングができる「6DoF(six degrees of freedom)」についても、HTC viveのような固定センサーが不要なInside-Out方式のものなど選択肢が増えてきています。VRを取り上げた映画「レディ・プレイヤー1」も大きな成功を収めました。

そんな中で最も注目しているのは、VRMコンソーシアムの設立です。

VRと切っても話せないものがVR空間内における操作キャラクター、3Dアバターです。3Dのアバターは、これまでのようなコントローラで動かすキャラクター以上に、その「中の人」と密接な関係を持つ、いわばアイデンティティの一部ともなり得ます。そういった3Dアバターのモデルデータに関して、相互利用を中心にエコシステムを形成しようというのがVRMコンソーシアムです。

面白いところは、単なる3Dキャラクターデータの定義に留まらず、アバターとしての利用方法に関するライセンス定義ができるところです。たとえば「単なるキャラクターとしては利用しても良いがVR空間で意志を持つアバターとして演じるのは本人のみ」といった条件付けができるわけです。Vtuberの3Dモデルデータが公開されてMMDなどで「踊ってみた」動画が盛り上がっている昨今ですが、そういった動きを含みより発展的な形で、たとえば収益化なども見込んだプラットフォームを目指すようです。

ちょうどソードアート・オンラインのアリシゼーション長編のアニメ化が始まったタイミングでもありますし、VR分野は来年も目が離せない技術領域になりそうです。

シロちゃんの動画は為になるなあ。

新しいプログラミング言語の普及

このところ、新しいプログラミング言語の普及が加速しています。この流れの最初はGo言語ですが、KotlinやRustなどの存在感がこの数年で一気に増しています。

Goは言うまでもなくGoogleが2009年に設計した言語で、かわいいGopherくんのロゴは皆様も必ずどこかで目にしているのではないでしょうか。サーバサイドのAPIや、Hashicorp Terraformなどのクラウド管理ツールなどで幅広く使われています。

KotlinはJavaに対する改良として生まれた言語ですが、とくにAndroidアプリ開発で使われるようになり、ついに2017年からはGoogleによりAndroidの開発言語として正式にサポートされるまでになりました。

Rustはシステムプログラム向けに設計された言語で、開発元であるMozilla Firefoxを手始めに、少しずつシェアを増やしています。先日AWSから公開された仮想化基盤FirecrackerもRustで記述されています。

その一方で、機械学習という固有分野を強みに「戻ってきた」のがPythonです。これもまたライブラリの豊富さなどの既存資源の積み上げがあったものです。

どれも、決して既存の言語で実現できないという領域ではなく、純粋に生産性や安全性といった言語のメリットに対する要求として選ばれています。少し前までは「いちいち新しい言語なんて」という雰囲気も強かったように思いますが、作りたいものに応じた言語を都度選ぶ、という流れが加速しているように思います。

みなさんは、来年どの言語を覚えますか?

技術系同人誌

今年は、個人的には技術系同人誌の大きな波が来たように思います。技術書典の開催地が秋葉原から池袋サンシャインに移動して規模を一気に拡大したことが象徴的ですが、テレビでも取り上げられるなどこの勢いはさらに加速していくとみています。

コミケにおいては「同人誌」ありきですが、その一方で技術書典は「技術書オンリー」と謳い商業化を推進する雰囲気も強く、インプレスなどからたくさんの数が同人誌からの商業出版が行われました。

出版不況と言われて久しい世の中ですが、とくにWeb系の技術に関しては新しい技術の習熟・学習サイクルが技術書典の年2回、コミケと合わせて年4回という開催頻度に上手くマッチすることもあり、最先端近い領域について、書籍という体系化された形で読みたい(書きたい)という需要が強く存在するように思います。

カラオケの原盤権

直接IT技術と関連するものではありませんが、面白い動きだと思ったのがライブ配信におけるカラオケの原盤権、いわゆるカラオケのボーカル抜き音源の利用です。

以前よりニコニコ動画やYouTubeなどでは利用許諾契約を行っていて、条件付きでCDの音源などを使うことができました。その一方で、「歌ってみた」に必須のカラオケ音源については、DAMやJOYSOUNDといったカラオケメーカーとは契約していないため、CDにno vocalトラックが無いものは、たとえば「弾いてみた」「叩いてみた」などの演奏動画を許可をもらって借りて組み合わせるなど、ハードルが高いものでした。

今回動いたのはDAMとSHOWROOMで、SHOWROOMの配信アプリに通信カラオケの機能が搭載されました。単にアプリ内にカラオケの機能が付いたというだけではなく、原盤権としてこれまではまったくできなかったことが、できるようになったわけです。

このカラオケ原盤権の開放の小さな波は、いわゆる「歌ってみた」分野にかぎらず、いろいろな人がカラオケとインターネットを使って自由に楽しむことができるようになる第一歩と考えています。

あとがき

本来ならば総集編 Vol.1に入れる予定だったこの記事ですが、初版の都合で別冊となりました。というわけで、まさかの2冊出しです。総集編で過去分の頒布がなくなることもあり、返って丁度良かったかなという思いもあります。

今年は正直あまりインプットが少なかった年だったのですが、VRやストリーム処理など面白そうな分野がたくさんできてしまっているので、来年はひたすらインプット・アウトプットしていきたいところです。