大量のPCの電源管理をWebで行う
Delphi Prismアプリケーションの仕組み
株式会社ドリームハイブ 代表取締役 山本 悟

株式会社ドリームハイブ

コンセプト

まだまだ続く暑い夏、節電が呼びかけられている近頃、たくさんのPCの電源をお手軽に管理して楽にECOして、電気料金も下げてちゃおう♪

かっちょ良く言うと複数のセグメントに存在するPCをユーザが自由にグループ化し、リモートから電源のON/OFFを一括して管理することができる電源管理ソリューション

しゃべる内容

管理実績

約3,000台!

ドリームハイブ製「リモート電源管理システム」が、どのようにして複数のセグメントにまたがって存在するPC の電源管理を行っているのか、その内部構造の技術背景を公開します。

ネットワーク構成

クライアントPC群

中継サーバ

グループ
グループ毎に	  NWアドレスがすべて違うが	  相互に通信は可能

管理者
クライアントPC群

グループ

中継サーバ

クライアントPC群

グループ

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  

中継サーバ

ルータ

管理サーバ

こいつはこんな事ができます• グループ管理‒ 教室・フロア単位などユーザの運用に合わせて、複数のクライアントをグループ化できます‒ グループには、CSVファイルによってクライアント情報を一括登録できます• タスク管理‒ グループ単位で、クライアントの電源ON/OFFをスケジュールできます‒ スケジュールの実行方法は「定時」・「指定日時」・「即時」の3種類から選択できます• クライアント管理‒ クライアント情報は個別に編集が可能であり、故障などで代替機を登録するなどが簡単におこなえます‒ クライアントは、複数のグループに所属することが可能です。
グループごとに同じクライアント情報を登録する必要がありません• 電源状況の確認‒ グループ単位で、クライアントの電源状況をリアルタイムに確認できます• ログ管理‒ タスク管理など、動作に係わるすべてのログを取得、管理できます
Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  管理画面の流れ
メニュー	  	  	  スケジュール一覧画面	  管理

(過去履歴)

電源状況の	  確認選択画面グループ管理クライアント管理• 入力/編集/削除

詳細画面

一覧画面

管理機能
• 入力/編集/削除• 一括登録(CSV)

一覧画面	  管理機能
• 入力/編集/削除(検索機能)

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  

管理機能ホーム画面

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  スケジュール管理画面

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  グループ管理画面

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  クライアント管理画面

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  クライアントの一括登録画面

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  電源状況の確認画面

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  電源状況の確認(詳細)画面

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  

構築に必要な技術とポイント• WOL(Wake On LAN)
• Webサービス(SOAP)• Blackﬁsh SQL• サービスの管理(SCコマンド)システムの構成
1. データベースの結果を返すWebサービス
2. Webサービスに接続して、画面を表示するWebアプリケーション

1.DBのデータを返すWebサービス
UI

ビジネスロジック
ネット
ワーク

利用者

Webアプリケーション

SOAP
XML

Webサービス

データベース

2.DBのデータを受け取るアプリケーション
Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  

16	  プログラム連携

クライアントPC

中継サーバ

管理サーバ

BlackﬁshSQL

http://〜/RpmSystem

PC本体

グループ・端末・タスクの管理
通信：WOLパケット
・起動情報の送信

通信：SOAP・起動情報を取得

RpmRelayServer.exe

通信：ADO.NET・グループ管理・端末管理・タスクの管理http://〜:10083/RpmDataDispatcher/DataService.asmx

WOL送信

DBの管理

待受ポート:1082
通信：HTTP・起動情報が更新されたことを通知

RpmTaskGuardian.
exe
RpmClient.exe
シャットダウンの管理
待受ポート:1081

タスクの監視通信：HTTP・シャットダウン情報の送信

ReConﬁg.exe
設定の変更•EventLog.dll

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  

すべてのシステム

http://〜:10083/RpmDataDispatcher/LogService.asmx
ログの管理

SendRequest.exe
要求をサーバへ送信•Ping.dll•EventLog.dll•Request.dll

利用するアセンブリ

Blackﬁsh SQLには接続(コネクション)数の制限があります• きちんと毎回接続を切りましょう
複数のクライアントから接続される可能性が高いのであれば「リモート接続」を利用し、毎回コネクションを切りましょう→Blackﬁsh SQLはサービスで起動する必要がある例)毎回コネクションを切るコード
begin
for n: Integer := 0 to 30 do begin
using conn: DataStoreConnection := new
DataStoreConnection('host=localhost;database=path\to\TestData.jds;user=sysdba;password=masterkey"
providerName="Borland.Data.BlackfishSQL.RemoteClient')
do beginconn.Open();conn.Close();end;end;end;
Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  

18	  DBの動作のチェック方法• Blackﬁsh SQLにもログ(システム ログ)機能があります‒ C:\Program Files\CodeGear\Delphi Prism\Bin\BSQLServer.exe.conﬁg ファ
イル内の次の値を設定します• <conﬁguration>\<appSettings>\<add key=blackﬁshsql.logFile” value=“ログファイルのパス”>• <conﬁguration>\<appSettings>\<add key=blackﬁshsql.logFilters” value=“ログのフィルタ文字列”>‒ フィルタ文字列
INIT,CONNECT,PREPARE,SET̲PARAMETER,EXECUTE,TRANSACTIONS,ERRORS,L
OCK̲ERRORS,SYSTEM• ※Blackﬁsh SQLがサービスで起動している場合は、サービスを再起動させる必要があります• 本番環境への配布方法‒ 配布するファイル
••
•
•
•

BSQLServer.exe
BSQLServer.exe.conﬁg(設定ファイル：必要があればコピーして編集、設定する)
Borland.Data.BlackﬁshSQL.RemoteClient.dll
Delphi Prism BlackﬁshSQL.slip/App̲Data内のデータベースファイル(本体、ログなど)‒ DBプロバイダへのアセンブリ登録(DbProviderFactories)••••

Web アプリケーションごとに設定するなら「Web.conﬁg」ファイルへ登録
Web サーバで一括して設定する設定なら、「Machine.conﬁg」ファイルへ登録
C:\WINDOWS\Microsoft.NET\Framework\<バージョン>\CONFIG\Machine.conﬁg<conﬁguration>\<system.data>\<DbProviderFactories>

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  

19	  BlackﬁshSQLの設定はSCコマンドで！
■コマンド例
sc failure "BlackﬁshSQL" reset= 900 actions= restart/180000/restart/180000/restart/180000

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  

20	  それと‒ App̲Dataフォルダのセキュリティ設定• Blackﬁsh SQLデータベースのファイルを保存する「App̲Data」のフォルダ・ファイルのセキュリティ設定には、ASP.NETの動作アカウントを追加する必要があります• ASP.NETの動作アカウントはOSによって違いますが、WindowsXP では「ASP.NET」、Windows Server 2003 では「NETWORK SERVICE」ユーザとなっています• ASP.NETの動作アカウントへのアクセス許可には、「変更」を追加しましょう‒ 名前空間の設定• /App̲Code/Service.pas内の[WebService(&Namespace := ʻhttp://tempuri.org/ʼ)]は、自社のURL等を指定しましょう※tempuriのままだと警告メッセージが出ます

Copyright©2011  DREAMHIVE  CO.,  LTD.  All  rights  reserved.  

21	  ご紹介したのは弊社の製品です「リモート電源管理システム」35万から。
お問い合わせください。
→ 03-6666-0707(山本宛)

WOL操作アセンブリのみの販売もしています。