Skip to content

Latest commit

 

History

History
167 lines (114 loc) · 7.38 KB

README.ja.md

File metadata and controls

167 lines (114 loc) · 7.38 KB

Reactive Solar Farm Monitor

(English/日本語)

Reactive Solar Farm Monitor は Typesafe Reactive Platform を利用したリアクティブシステムの具体例を示すため作成されたサンプル実装です。

リアクティブシステムとは?

下記の要件を満たすシステムがリアクティブシステムです。

  • すばやい応答時間を保ち高いユーザービリティを実現
  • 限りなく100%に近い稼働率を達成
  • ワークロードが変動してもスケールアウト/スケールインが容易

詳細はリアクティブ宣言を参照してください。

Typesafe Reactive Platform とは?

Play FrameworkAkkaScalaJava を組み合わせることでリアクティブシステムを実現することができる開発基盤です。

詳細は Typesafe Reactive Platform を参照してください。

概要

本サンプルシステムはソーラーファーム(大規模な太陽光発電所)に設置されたソーラーパネルの故障を検知するシステムを想定しています。

ソーラーファームには数万枚のソーラーパネルが設置されており、各ソーラーパネルにはそのパネルの発電量を逐次測定するデバイスが取り付けられています。 このデバイスが測定した発電量をもとにソーラーパネルの故障を検知できないでしょうか。 単にソーラーパネルの発電量が低下(ある閾値を下回る)したことを故障としてしまうと、悪天候でたまたま発電量が少なくなってしまった場合もソーラーパネルが故障したとみなされてしまいます。 そこで、このシステムではある瞬間における全ソーラーパネルの平均発電量と各ソーラーパネルの発電量を比較し、発電量が著しく平均を下回っているソーラーパネルを故障したとみなしています。

abstract

また、このシステムには達成しなければならない下記のような要件があります。

  • ソーラーファームの発電効率を高めるため、ソーラーパネルの故障は1秒以内に検知できる
  • 故障検知までのタイムラグが生じないように、稼働率は100%を達成する
  • ソーラーファームの規模が拡大しソーラーパネルが増えた場合にスケールアウトできる

アーキテクチャ

本サンプルシステムは Typesafe Reactive Platform を利用し、メッセージ駆動のアーキテクチャを採用しています。

architecture

スクリーンショット

screenshot

起動方法

Docker を利用した起動

Docker がインストールされたPCで下記のコマンドを実行してください。

docker run -d --name=broker                                    crowbary/apache-apollo
docker run -d --name=solar_farm_simulator --link=broker:broker crowbary/reactive-solar-farm-monitor-solar-farm-simulator
docker run -d --name=monitor -p 9000:9000                      crowbary/reactive-solar-farm-monitor
docker run -d --name=analyzer_seed  --link=broker:broker --link=monitor:primary_seed                                      crowbary/reactive-solar-farm-monitor-analyzer
docker run -d --name=analyzer_node1 --link=broker:broker --link=monitor:primary_seed --link=analyzer_seed:secondary_seed  crowbary/reactive-solar-farm-monitor-analyzer
docker run -d --name=analyzer_node2 --link=broker:broker --link=monitor:primary_seed --link=analyzer_seed:secondary_seed  crowbary/reactive-solar-farm-monitor-analyzer

ブラウザで http://[DOCKER_HOST]:9000/ へアクセスしてください。

  • DOCKER_HOST: 上記の docker run コマンドを実行したホストのIPアドレスまたはホスト名

Analyzer のノードはいくつでも追加することができ、下記のコマンドを実行することで Analyzer のノードが新たに一つ立ち上がります。

docker run -d --link=broker:broker --link=monitor:primary_seed --link=analyzer_seed:secondary_seed  crowbary/reactive-solar-farm-monitor-analyzer

sbtを利用した起動

1. 実行前の環境構築

(1) sbtのインストール

MacWindows、もしくは Linux の手順に従ってインストールしてください

(2) Apache Apolloのインストール
  • Apache Apolloのサイト よりインストーラをダウンロード
  • 任意ディレクトリ(${APOLLO_HOME})に解凍
  • 任意ディレクトリ(${APOLLO_EXEC})でBroker Instanceの作成
cd ${APOLLO_EXEC}
${APOLLO_HOME}\bin\apollo create mybroker
(3) Bowerのインストール
  • Node.jsのインストール
  • Gitのインストール
    • Windowsの場合、「Adjusting your PATH environment」で「Use Git from the Windows Command Prompt」をチェックしGitコマンドを有効にする
  • Bowerのインストール
npm install -g bower

2. プロジェクトの作成と実行

(1) プロジェクトの作成

任意ディレクトリでプロジェクトを作成

git clone https://github.com/tech-sketch/reactive-solar-farm-monitor.git
cd  reactive-solar-farm-monitor
bower install
(2) Brokerの実行
${APOLLO_EXEC}\mybroker\bin\apollo-broker run
(3) Simulatorの実行
sbt solarFarmSimulator/run
(4) Analyzerの実行

少なくとも2つのノードが必要です

sbt analyzer/runNode1
sbt analyzer/runNode2

追加のノードが必要な場合は4台まで起動できます

sbt analyzer/runNode3
sbt analyzer/runNode4
(5) Monitorの実行
sbt run

3. アプリケーションの確認

ブラウザで http://localhost:9000/ へアクセスしてください。

ライセンス

Reactive Solar Farm Monitor は Apache License version 2.0 のもとにリリースされています。 Apache License version 2.0 の全文はこちらからご覧いただくことができます。


※ 記載されている会社名、製品名は、各社の登録商標または商標です。
※ Icon made by Freepik from www.flaticon.com is licensed under CC BY 3.0

Copyright © 2015 TIS Inc.