Apache TLP+Incubator 一覧 2018年2月 を作りながら目をつけた、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社寄贈。