ほとんど知られていない、IoTに役立つ10個の最新Apacheプロジェクト - 2018年2月

[Apache TLP+Incubator 一覧 2018年2月](https://qiita.com/toast-uz/items/d47293950c6e66b1793b) を作りながら目をつけた、IoTに役立つ10個の最新Apacheプロジェクトを紹介します。まだほとんど日本語解説記事が無いもの（Google日本語力が1,000件未満のもの）を集めました。

筆者はざっと見ただけでまだ使ってはいませんので、解説が不正確かもしれませんし、本当に役立つかは未知数です。まずは、「こんなオープンソースがあるんだ〜」というふうに、本記事が知るキッカケになっていただければ幸いです。

なお、Google日本語力は、Googleにおいて"Apache X"とダブルクォーテーションで囲って日本語検索をした検索件数のことで、「日本で知られている」度合いを表しています。特に、Google日本語力0件となったプロジェクトは、もしかしたら本記事が日本初紹介かもしれません。

#1. ほとんど知られていないIoTに役立つ10個のプロジェクト

以下では、Google日本語力が小さい（=知られていない）方から紹介しています。

##1.1. Apache PLC4X (Incubator)

+ 2017年12月 Incubator昇格、Google日本語力 0件。
+ 産業用PLC (Programmable Logic Controller)との通信ライブラリ。
+ Modbus、OPC-UA、S7/Profinetをサポート。

##1.2. Apache Gossip (Incubator)

+ 2016年4月 Incubator昇格、Google日本語力 0件。
+ ピアツーピアで情報を伝播させるGossipプロトコル（というプロトコルがあるのですね）の実装。
+ 本来は、クラスタの障害検出に使われるようだ。Aapche Cassandraで使われているGossipと同じ？
+ IoTのデバイス同士のピアツーピアの情報交換にも使えるかもしれない。

##1.3. Apache iota (Incubator)

+ 2016年1月 Incubator昇格、Google日本語力 0件。
+ Apacheの著名オープンソースを組み合わせたフルスタックのIoTプラットフォーム。同名のブロックチェーン技術とは無関係。
+ iotaとしては、セキュリティサービスを含むデータフロー、マネジメント、暗号化や変換などのマイクロサービスとAPIフレームワークを提供し、デバイスとKafkaとの仲介を行う。

##1.4. Apache Twill

+ 2016年6月 TLP昇格、Google日本語力 84件。
+ Hadoop YARNを使ったリソース制御アプリを、Javaスレッドと同様なモデルで開発できる。

##1.5. Apache Bahir

+ 2016年5月 TLP昇格、Google日本語力 90件。
+ Spark、Flinkの拡張機構（ストリーミングコネクタやデータソース）を共通化したもの。
+ バハールまたはバヒルと読む？

##1.6. Apache Edgent (Incubator)

+ 2016年2月 Incubator昇格、Google日本語力 91件。
+ エッジコンピューティングのためのプログラミングモデルとランタイムを提供。エッジデバイス上でストリーミング分析する上で、一定の条件のもと、バックエンドに限定されたデータを送信する。
+ バックエンドとの通信は、Kafka、MQTT、IBM Watson IoT Platformなどに対応。
+ Java、Android対応。主ターゲットはRaspberry Pi。

##1.7. Apache Mynewt

+ 2017年6月 TLP昇格、Google日本語力 120件。
+ 少リソースでも動作する組み込み向けRTOS (RealTime OS)。
+ BLE5、Bluetooth mesh、Wi-Fi、LoRaなどのネットワークスタックを提供する。
+ Arduinoを含むボードマイコン向け。
+ OIC1.1（OCF規格）による集中管理が可能。

##1.8. Apache RocketMQ

+ 2017年9月 TLP昇格、Google日本語力 288件。
+ 中国アリババ社が提供する爆速のメッセージングミドルウェア。Kafkaの置き換えを狙う。多重度が高い分散環境において、Kafkaよりも高速らしい。
+ https://rocketmq.apache.org/docs/motivation/ にKafkaとの比較詳細がある。

##1.9. Apache PredictionIO

+ 2017年10月 TLP昇格、Google日本語力 672件。
+ Spark上で使える機械学習。

##1.10. Apache Samza

+ 2015年1月 TLP昇格。Google日本語力 959件。
+ LinkdIn社がKafkaと親和性が高いように開発したストリーミングエンジン。

#2. ある程度知られている〜超有名プロジェクト

ある程度知られているプロジェクトを、比較対象としていくつか紹介します。そうはいっても、Flinkは知らない人も多いのでは。後ろの3つは超有名プロジェクトです。

##2.1. Apache Flink

+ 2014/12 TLP昇格、Google日本語力 3,860件。
+ バッチもできるがリアルタイムストリーミングに強い。ストリーミング領域ではSparkを置き換える存在になる可能性あり。
+ フリンクと読む。

##2.2. Apache Kafka

+ 2012/11 TLP昇格、Google日本語力 36,400件。
+ メッセージブローカーとしてApacheエコシステムの中核の一部をなす存在。

##2.3. Apache Hadoop

+ 2008/1 TLP昇格、Google日本語力 52,200件。
+ 2010年代のApacheビッグデータ関連プロジェクトのエコシステムの中核。

##2.4. Apache Spark

+ 2014/2 TLP昇格、Google日本語力 74,400件。
+ バッチ、インタラクティブ、ストリーミングそれぞれに活用可能な高機能・分散ビッグデータクエリエンジン。Apacheエコシステムの中でHadoopのクエリエンジンを置き換える存在になった。

#3. おまけ

IoTとは関係は薄いが、面白そうだと思ったプロジェクトを紹介します。

##3.1. Apache Royale

+ 2017年9月 TLP昇格、Google日本語力 38件。
+ JavaScriptで、あらゆるデバイス上でのネイティブアプリ開発ができる仮想環境。Cordovaの発展系？

##3.2. Apache Fineract

+ 2017年4月 TLP昇格、Google日本語力 80件。
+ 金融業務システムのオープンソース版という珍しい存在。

##3.3. Apache OpenWhisk (Incubator)

+ 2016年11月 Incubator昇格、Google日本語力 632件。
+ サーバーレスコンピューティング環境。

##3.4. Apache Metron

+ 2017年4月 TLP昇格、Google日本語力 657件。
+ いわゆるSIEM (Security Information and Event Management: セキュリティ情報イベント管理)のオープンソース版。Cisco社寄贈。