...

第3章 MQ Telem e try

by user

on
Category: Documents
52

views

Report

Comments

Transcript

第3章 MQ Telem e try
第3章 MQ Telemetry
1
Smarter Planet実現のための新たなメッセージング・ニーズ
Smarter Planet実現のための新たなメッセージング・ニーズ
IBMは交通や環境、エネルギー、医療といった地球規模の多様な課題を解決するための
コーポレート・ビジョンとして 「Smarter Planet」を提唱
Smarter Planet実現のためには、多様/大量のセンサー・デバイスからネットワーク経由で
データを収集するためのインフラが必要
不確実・低帯域幅N/W上で大量のデバイスと、メッセージング・バックボーンとを相互接続する
ためのテクノロジーが求められる
Smarter Planet環境の特徴とデータ収集に対する要件
特徴
要件
大量のデータを多数のデバイスから収集
・中間集約拠点の設置(マルチホップ転送)
・軽量プロトコルの使用
・宛先を意識しない通信モデル
不確実・低帯域幅N/Wからの接続
・通信エラーへの対処
デバイスの遠隔制御
・デバイス、サーバー間の相互通信
2
MQ Telemetry
デバイスでの利用を想定した、軽量なパブリッシュ/サブスクライブ処理を実現
MQが以前から提供しているパブリッシュ/サブスクライブ機能とは異なり、
転送データの軽量化に特化した仕組みを提供
様々な機器上のデバイスとWMQメッセージ基盤を連携可能
デバイス
キュー・マネージャー
MQTT
クライアント
MQTTプロトコル
MQTT
サーバー
オープン・プロトコルMQTT(MQ Telemetry Transport)を通信プロトコルに使用
MQTT V3.1に準拠
ネットワーク・プロトコルは、TCP/IP(IPv4/IPv6)、SSLをサポート
WMQ V7.0.1.2 から、MQの標準機能として提供
以前は、WebSphere Message Brokerでサポート(SCADAノード)
„機能をMQに移管し、WMB
V7ではサポート終了
MQTTのサーバー機能とクライアント用のライブラリ(C、Java)を提供
Telemetryデーモンの提供
MQTTクライアントとサーバーの間で、ゲートウェイとして機能する組み込みコンポーネント
3
MQTT (MQ Telemetry Transport)
仕様が公開されたオープンなパブリッシュ/サブスクライブ型通信プロトコル
http://mqtt.org/
„仕様は上記URLから入手可
„最新のバージョンはV3.1
TCP/IPが前提
シンプル・軽量で開発容易性を備えたプロトコル
„クライアント・サーバー間で送受信されるパケットは最小化されたフォーマット
–ビット単位でフォーマットを規定
–パケットの固定ヘッダー部分は、2バイトのみ
低帯域ネットワーク、信頼性の低い小型デバイスなど、リソースに制約のある環境で
稼働するアプリケーションとの通信を想定
„クライアント接続の予期しない切断に対し、「遺言(Last
Will and Testament)」機能を提供
„クライアント切断時、サーバー側でのパブリケーションの保持
メッセージ送信の信頼性に応じて、3つのサービス品質(QoS : Quality of Service)を規定
„QoS
=0
„QoS = 1
„QoS = 2
:メッセージは1回のみ送信される(送信先の届くかは保証しない)
:メッセージは最低1回は送信先に送られる
:メッセージは必ず正確に1回送信先に送られる
4
MQ Telemetry適用イメージ
MQTTクライアントを実装したデバイスからMQにMQTTプロトコルで接続
通信が不安定な環境でも信頼性を保ったメッセージ連携が可能
組み込みデバイスとの双方向通信が可能
デバイスからのデータ収集、デバイスへの管理コマンドの送信・データ一斉配信など
Pub/Subの仕組みにより宛先アプリケーションの数や、宛先を意識しない
Telemetryデーモンにより、メッセージの集約やフィルタリングが可能
メッセージの集約・転送
MQTTクライアント
Telemetryデーモン
エンタープライズ・システム
MQTTクライアント
MQTTプロトコル
Pub/Subによる
メッセージを送受信
MQTTクライアント
WMQ
Telemetry
デバイス、MQ間をMQTTで接続
5
(補足)Publish / Subscribe型メッセージ通信モデル
Publish / Subscribe型
送信プログラムと受信プラグラムがトピックを介して1対Nで通信するモデル
„
„
„
„
送信側(パブリッシャー)が受信側(サブスクライバー)を意識せずにデータ送受信を行う
サブスクライバーは受信したいトピックにサブスクライブ(購読)登録を行う
パブリッシャーは、送信したいデータをトピックに対してパブリッシュ(送信)する
両者の間には必ずPub/Subブローカーが介在し、データの管理、配信を行う
購読の登録(トピックA)
トピックA
パブリッシャー
パブリッシャー
送信
Pub/Sub
ブローカー
管理情報/データを保持
・サブスクライブ登録情報
・パブリッシュ・データ など
トピックA
サブスクライバー
配信
トピックA
サブスクライバー
(参考)Point-to-Point(PTP)型
送信プログラムと受信プログラムがキューを介して1対1で通信するモデル
プログラムA
プログラムA
プログラムB
プログラムB
6
(補足) Pub/Sub の構成要素
トピック
情報提供者 (パブリッシャー)と情報受信者(サブスクライバー)を連携する、共通の”話題”
パブリケーション
パブリッシャーとサブスクライバーがやり取りするメッセージ
パブリッシャ-が 発信(送信) したパブリケーションを、ブローカーが 受信・配信 し、それをサブス
クライバーが 受信
パブリッシャー
パブリッシャーは、トピックを宛先として情報を配信
サブスクライバー
パブリケーションを受信するために、購読要求(サブスクリプション)を登録する
サブスクリプション
サブスクライバーがパブリケーションを受信するために登録する情報
ブローカー
パブリケーションの受信/配信と、パブリッシャー、サブスクライバーの管理を行う
7
(補足)トピック
トピック
トピックAの
サブスクリプション登録
パブリッシャーとサブスクライバーを紐付ける共通の話題
階層構造に構成することができる
パブリッシャー
トピックA
サブスクライバー
Pub/Sub
ブローカー
トピック・ツリー
トピックを階層構造で表記したもの
トピック・ツリーの各セグメントをノードという
トピックAに関する
情報を発信
トピック・ストリング
トピックAに関する
情報を受信
トピック・ツリー
スラッシュを階層の区切り文字としてノードを表現する文字列
スラッシュで区切られた文字列の単位がノード
パブリッシャーがパブリケーションを発信する宛先
サブスクライバーがパブリケーションを受信するために指定するもの
トピック・ストリング (例:“result” のノードのトピック・ストリング)
/men
/olympic/london/judo/women/result
/result
/olympic
/london
/judo
/women
/beijing
/tennis
/men
/women
/result
ノード
8
MQ Telemetry の構成コンポーネント
MQ Telemetryは以下のコンポーネントから構成される
MQ キューマネージャー
Telemetry サービス
(MQTTサーバー)
Telemetry チャネル
Telemetry チャネル
Telemetryチャネル
MQTT
クライアント
Telemetry
デーモン
MQTT
クライアント
MQTT
クライアント
9
MQ Telemetry の構成コンポーネント
Telemetryサービス
MQTTのサーバー機能を提供するコンポーネント
MQのサービスとして稼働(Javaプロセス)
„MQサービス名は“SYSTEM.MQXR.SERVICE”
(固定)
キューマネージャーに1つのみ構成可能
Telemetryチャネル
MQTTクライアントからの接続を受け付け、通信を行うコンポーネント
„Telemetryチャネルのプロパティで使用するポートを指定
複数のチャネルを構成可能
„クライアントをグループ化し、異なった設定のチャネルを使い分けることが可能
チャネル毎にJAASやSSLのセキュリティ設定が可能
MQTTクライアント
MQ TelemetryのAPIを使用して、Telemetryチャネルに接続し、Pub/Sub通信を実施
JavaとCで実装可能
„Java
SE/Java ME 用の MQTT v3 クライアント・ライブラリー、C 用 MQTT v3 ライブラリーを提供
10
MQ Telemetry の構成コンポーネント
Telemetryデーモン(拡張MQTTクライアント、C実装)
MQTTクライアントとサーバーの間で、ゲートウェイとして機能するコンポーネント
„複数クライアントからの接続を集約してMQTTサーバーに接続
–MQTTサーバー側の接続負荷を軽減
„Telemetryデーモン同士で接続し、階層的な構成を取ることも可能
„メッセージのストア・アンド・フォワード
–一時的にメッセージをメモリーに保管し、ネットワークの瞬断に対応
Pub/Subネットワーク内のメッセージをフィルタリング
„トピックベースのフィルタリング
11
MQ Telemetry と MQ との関係
MQ Telemetry サービスは、MQのPub/Subアプリケーションとして稼動
MQTTクライアントとMQ Pub/Sub アプリケーションは相互通信可能
① MQTT クライアントからのサブスクライブ登録は
Telemetry サービスによって、
MQ Pub/Sub ブローカーに登録される
② MQTT クライアントからパブリッシュした
メッセージは該当トピックを
サブスクライブしているMQ Pub/Sub
アプリケーションにも送信される
③ MQ Pub/Subアプリケーションからパブリッシュしたメッセー
ジは該当トピックをサブスクライブしているMQTTクライアン
トに送信される
④ MQアプリケーションから直接MQTTクライアントにメッ
セージを送信することが可能
MQアプリはMQTTクライアントのクライアントIDを指定して
送信(クライアントIDはMQTTクライアントが接続時に指
定するユニークなID)
※MQTTクライアントからMQアプリへの直接メッセージ送
信は不可
12
MQ Pub/Sub
アプリ
③
MQ キューマネージャー
MQ Pub/Sub ブローカー
トピック
サブスクリプション
Telemetry サービス
Telemetry チャネル
①
②
MQTT
クライアント
MQ
アプリ
④
構成/管理
MQ Telemetryの構成、管理はMQ Explorerから実施
MQ Telemetryを導入すると、MQ Explorerに以下のMQ Telemetry項目が追加される
13
構成/管理
初期構成は、「サンプル構成の定義」ウィザードから実施
※初期構成は、製品提供の下記スクリプト、もしくは手動でも構成できる
<MQ導入Dir>/mqxr/samples/SampleMQM.bat(or SampleMQM.sh)
14
構成/管理
「サンプル構成の定義」ウィザードを実行すると以下のコンポーネントが作成される
„Telemetryサービス「SYSTEM.MQXR.SERVICE」(固定名)
„Telemetryチャネル「PlainText」
–初期構成後、ユーザーは任意の名前で複数のTelemetryチャネルを構成可
15
構成/管理
MQTTクライアント・ユーティリティを利用してパブリッシュ、サブスクライブのテストが可能
接続の実施
サブスクライブ
の実行
パブリッシュの
実行
16
構成/管理(UNIX)
UNIX環境での手動での構成手順
Telemetry 伝送キューの作成
echo "DEFINE QLOCAL('SYSTEM.MQTT.TRANSMIT.QUEUE') USAGE(XMITQ) MAXDEPTH(100000)" | runmqsc qMgr
デフォルト伝送キューを設定
echo "ALTER QMGR DEFXMITQ('SYSTEM.MQTT.TRANSMIT.QUEUE')" | runmqsc qMgr
„MQTTクライアントがMQメッセージを受信するための設定
„デフォルト伝送キューを変更しない場合は、MQを受信するクライアントごとにリモート・キュー定義を追加す
る必要がある
MQTT クライアント用ユーザーIDの作成
„パブリッシュ、サブスクライブ、およびMQTT
クライアントへのパブリケーション送信の権限
Telemetryサービスをインストール
„<導入ディレクトリ>/mqxr/samples
のinstallMQXRService_unix.mqsc を実行
cat installMQXRService_unix.mqsc | runmqsc qMgr
サービスを開始
echo "START SERVICE(SYSTEM.MQXR.SERVICE)" | runmqsc qMgr
Telemetryチャネルを構成
echo "define channel(MQTTCHL) chltype(MQTT) port(1883) MCAUSER(userid)" | runmqsc qMgr
17
MQTT クライアントの開発
MQ Telemetry が提供する Java および C のクライアント・ライブラリーを利用
WebSphere MQ Telemetry Software Development Toolkit (SDK)にて提供
簡単な動詞(verbs)のセットのみで実装可能
„connect
/ publish / subscribe / disconnect ....
„10数行程度の短いコードで実装できる
18
コード・イメージ(Java、パブリッシャーの例)
・・・MQTT用のパッケージ
import com.ibm.micro.client.mqttv3.*;
public class MqttPubSync {
public static void main(String[] args) {
try {
MqttClient client = new MqttClient("tcp://localhost:1883", “PubClient001");
・・・クライアントの作成
MqttConnectOptions conOptions = new MqttConnectOptions();
conOptions.setCleanSession(false);
client.connect();
・・・接続オプションの設定
・・・クリーン・セッション設定
・・・接続の実施
MqttTopic topic = client.getTopic("/MQTT/Examples");
MqttMessage message = new MqttMessage("Hello World!".getBytes());
message.setQos(1);
・・・トピックの作成
・・・メッセージの作成
・・・QoSの設定
MqttDeliveryToken token = topic.publish(message);
token.waitForCompletion(10000);
・・・パブリッシュの実施
・・・確認応答待ち
client.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
・・・接続の切断
}
}
※上記は簡略化したコード・イメージであり、稼動を保証するものではありません。
19
コード・イメージ(C言語、パブリッシャーの例)
・・・MQTT用のヘッダー
#include "MQTTClient.h"
int main(int argc, char* argv[])
{
MQTTClient client;
MQTTClient_connectOptions conn_opts;
MQTTClient_message pubmsg;
MQTTClient_deliveryToken token;
int rc;
char *PAYLOAD = "Hello World!";
・・・ローカル変数の定義
MQTTClient_create(&client, "tcp://localhost:1883", "PubClient001",
MQTTCLIENT_PERSISTENCE_NONE, NULL);
memset(&conn_opts, '¥0', sizeof(conn_opts));
conn_opts.cleansession = 1;
rc = MQTTClient_connect(client, &conn_opts);
if (rc != MQTTCLIENT_SUCCESS) {
printf("Failed to connect, return code %d¥n", rc);
exit(-1);
}
pubmsg.payload = PAYLOAD;
pubmsg.payloadlen = strlen(PAYLOAD);
pubmsg.qos = 1;
MQTTClient_publishMessage(client, "/MQTT/Examples", &pubmsg, &token);
rc = MQTTClient_waitForCompletion(client, token, 10000L);
MQTTClient_disconnect(client, 10000);
MQTTClient_destroy(&client);
}
※上記は簡略化したコード・イメージであり、稼動を保証するものではありません。
20
・・・クライアントの作成
・・・接続オプションの設定
・・・クリーン・セッション設定
・・・接続の実施
・・・メッセージの設定
・・・QoSの設定
・・・パブリッシュの実施
・・・確認応答待ち
・・・接続の切断
・・・クライアント終了
(メモリ開放)
MQTTのメッセージ保証
MQTTにおけるメッセージ保証の仕組み
MQTTクライアント(パブリッシャー)から送信されたメッセージが他のMQTTクライアント(サブスク
ライバー)に到達するまでの間のメッセージ保証について、MQTTでは以下の仕組みを用意
サービス品質(QoS : Quality of Service)
MQTTクライアントとMQTTサービス間のメッセージ転送の信頼性について、3つのレベルを用意
QoS = 0 / 1 / 2
„QoSが高いほど、より確実に、より正確にメッセージを転送
„ただし、転送負荷は高くなり、パフォーマンスは低くなる
セッション管理
MQTTクライアントのセッション情報を保持することで、クライアント障害やN/W障害が起きた場
合でも再接続後に処理を再開することが可能
„QoS=1/2の場合、障害時に未完了の転送を再接続後に再開できる
„サブスクライバー障害時に届いていたパブリケーションを再接続後に受信できる
21
サービス品質(QoS)
MQTTプロトコルでは3種類のサービス品質(QoS:Quality of Service)を規定
MQTTクライアントとMQTTサービス間のメッセージ(パブリケーションおよびサブスクライブ登録)
のサービス品質
サブスクライブ登録
MQTT
クライアント
パブリケーション
MQTT
サーバー
パブリケーション
MQTT
クライアント
QoS
QoS
QoS = 0
„メッセージは1回のみ送信される
–送達確認を行わないため、転送途中で障害が発生するとメッセージ消失の可能性がある
„最も高速な転送モード
QoS = 1
„メッセージは最低1回は送信先に送られる
–送達確認を行うため、1回は必ず送信先に到達する
–受信側で複数回メッセージを処理する可能性がある
QoS = 2
„メッセージは必ず正確に1回送信先に送られる
–送達確認と重複送信確認を行うことで、メッセージは1回だけ確実に送信先に到達する
„最も負荷の高い転送モード
22
サービス品質(QoS)
サブスクライブ登録の要求メッセージは常にQoS=1で送信される
パブリッシュ時のQoSより高いQoSでサブスクライバーはメッセージを受信することはできない
„サブスクライバーがQoS=2を指定していても、パブリッシャーからQoS=1でパブリッシュされたメッセージは、
サブスクライバーへもQoS=1で転送される
キューマネージャー内に(一時的に)格納されるパブリケーション・メッセージ(※)の永続性は
QoSに依存
※リテイン・パブリケーション時のリテイン・キューやサブスクライバー・キューに格納されるメッセージ
„QoS=0の場合、ノン・パーシステント・メッセージ
„QoS=1/2の場合、パーシステント・メッセージ
23
(補足) QoS=0 の処理フロー
QoS=0 では、送信処理のみ実施(送達確認は行わない)
„MQTTアプリケーションのパブリッシュによって、MQTTクライアントから1回だけパブリケーションが送信される
„MQTTサービスはパブリケーションを受信するとサブスクライバーにパブリッシュ
„MQTTアプリケーションのパブリッシュ実行からMQTTサービスのパブリッシュまでの間に障害が発生すると
メッセージは消失する可能性がある
MQTTアプリ
MQTT
クライアント
MQTT
サービス
キューマネージャー
パブリッシュ実行
パブリケーション送信
サブスクライバーにパブリッシュ
24
(補足) QoS=1 の処理フロー
QoS=1 では、送達確認を実施
„MQTTアプリケーションからパブリッシュが実行されると、MQTTクライアントはパブリケーションをローカルに保
管し、パブリケーションを送信
„MQTTサービスはパブリケーションを受信するとサブスクライバーにパブリッシュし、確認応答を返信
„確認応答を受け取ると、保管しているパブリケーションを破棄
MQTTアプリ
MQTT
クライアント
MQTT
サービス
キューマネージャー
パブリッシュ実行
パブリケーション送信
サブスクライバーにパブリッシュ
メッセージの保管
確認応答の返信
メッセージの破棄
25
(補足) QoS=2 の処理フロー
QoS=2 では、送達確認と重複チェックを実施
„MQTTサービスはパブリケーションを受信すると、サブスクライバーにパブリッシュ
さらにパブリケーションのメッセージIDを保管し、パブリケーション受信応答をMQTTクライアントに返信
„MQTTクライアントはパブリケーション受信応答を受け取るとパブリケーション破棄指示を送信
„MQTTサービスは保管していたメッセージIDを破棄し、パブリッシュ完了応答を返信
„MQTTクライアントは応答を受信すると保管していたメッセージを破棄
MQTTアプリ
MQTT
クライアント
MQTT
サービス
キューマネージャー
パブリッシュ実行
パブリケーション送信
サブスクライバーにパブリッシュ
メッセージの保管
UOW
パブリケーション受信応答
ID
メッセージID の保管
パブリケーション破棄指示
パブリッシュ完了応答
メッセージID の破棄
メッセージの破棄
26
メッセージIDを保管して
おくことで再送メッセー
ジを受信したときにサ
ブスクライバーへのパ
ブリッシュが完了して
いるかチェックする
セッション管理(ステートフル/ステートレス)
MQTTサービスでは、MQTTクライアントのセッション情報を保持することが可能
クライアントごとにサブスクリプションや未完了パブリケーションなどのセッション情報を保持
„クライアントIDとアドレスでクライアントを識別
クライアントは接続時にセッション情報を保持するか指定(クリーン・セッション属性の指定)
„クリーン・セッション属性=false
„クリーン・セッション属性=true
(デフォルト)
⇒セッション情報を保持する(ステートフル)
⇒セッション情報を保持しない(ステートレス)
ステートフル・クライアントの場合
接続中に登録したサブスクリプションは、接続が(意図せず)切断した後も保持される
„継続サブスクリプションとして登録
切断している間も当クライアントに対するパブリケーションは保管され、
再接続時にクライアントにパブリッシュされる
切断前に未完了だったパブリケーション(QoS=1/2)は再接続後に完了
ステートレス・クライアントの場合
(前回ステートフルで接続していた場合に)保管されているセッション情報は、接続時に破棄
接続中に登録したサブスクリプションは、接続が切断されると破棄
27
「遺言」パブリケーション
MQTTクライアントが予期せずに終了した場合に、「遺言」を残すことができる
MQTTクライアントは接続時に「遺言」パブリケーションを登録
„接続オプションにトピック、QoS、ペイロードを指定
„リテイン(保存)パブリケーションの指定も可
conOptions.setWill(MqttTopic lastWillTopic, byte [] lastWillPayload, int lastWillQos,boolean lastWillRetained);
Telemetryサービスはクライアント接続の予期しない切断を検知すると、
登録されている「遺言」パブリケーションをパブリッシュ
„クライアントからdisconnectメソッドが発行されずに接続が切断された場合に実施
利用例
MQTTクライアントのステータス情報の通知(保管)
„MQTTクライアントは接続後、および(正常)切断前にそれぞれ使用可/使用不可(正常)を示すリテイ
ン・パブリケーションをパブリッシュ
„「遺言」パブリケーションには、使用不可(異常)を示すリテイン・パブリケーションを登録しておく
※リテイン・キューに送信(保管)されるメッセージをパーシステントにするため、各パブリケーションのQoSは1
もしくは2に設定しておく
„該当トピックにサブスクライブしたアプリケーションは、常に、3つのうちのいづれかのパブリケーションを受信す
ることができる
(リテイン・パブリケーションは同一トピックに対して最新のパブリケーションのみが保管される)
28
(参考) MQTTのセキュリティ
MQTTの通信はVPNを使用してMQTT装置とサーバー間でセキュアな通信を実現可能
IPSecなどVPNネットワークで認証や暗号化を実現し、トラステッド・ネットワークを確立
その他、SSLやJAASなどのセキュリティー・メカニズムを使用したセキュアな通信もサポート
通信の暗号化、認証、認可
ただし端末ごとの認証や認可は困難なため、考慮が必要
認証と認可
認可はMQのOAM機能を使用して実施
„膨大な装置にそれぞれセキュリティープロファイルを設定するのは非現実的
„ユーザーをグループ化し、共通IDを使用する
認証はSSLやJAASを使用
認証と許可のユーザーは異なってもよい
SSLとJAAS
SSLでのセキュリティ設定
„装置と遠隔測定チャネル間の通信の暗号化
„サーバー認証
(正しいサーバーに装置が接続しているか)
(クライアント装置がサーバーに接続することを許可されているか)
„クライアント認証
JAASでのセキュリティ設定
„パスワードを使用したクライアントの認証
„LDAPとともに使用することで、シングル・サインオン・ディレクトリーを使用したパスワード検査が可能
29
(参考) MQTT パフォーマンス例
LinuxでのMulti-Publisher / Multi-Subscriberのパフォーマンステスト結果
QoS0で秒1877件、QoS1で秒1235件、QoS2で秒1088件とQoSレベルがあがるほど、
パフォーマンスは劣化
同時接続数が増えればCPU使用率も上がり、QoS0の場合、同時接続数1000で71%程
度、10万接続で92%程度まであがる。
[ Linux Multi-Publisher, Multi-Subscriber graph ]
測定環境
Red Hat Enterprise Linux V5.5 64-bit
Processor: 3.66GHz Intel Xeron
Architecture: 2 dual core CPU (4way SMP)
RAM: 4Gb
Network: 1Gbit Ethernet Adapter
[出典] MP0A: WebSphere MQ Telemetry V7.0.1 - Performance Evaluation
http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg24027711&loc=en_US&cs=utf-8&lang=en
30
(参考) MQTT パフォーマンス例
WindowsでのMulti-Publisher / Multi-Subscriberのパフォーマンステスト結果
Windowsは同時接続50000までをテスト
QoS0で秒3157件、QoS1で秒2035件、QoS2で秒1819件とQoSレベルがあがるほど、
パフォーマンスは劣化
接続数が増えるほど、メッセージの処理件数は下がり、CPU使用率は100%に近づく
測定環境
[ Windows Multi-Publisher, Multi-Subscriber graph ]
Windows Server 2008
Processor: 3.66GHz Intel Xeron
Architecture: 2 dual core CPU (4way SMP)
RAM: 4Gb
Network: 1Gbit Ethernet Adapter
31
参考資料
MQTT.org
http://mqtt.org/
„ MQTTの仕様や各種クライアント・サーバーの実装など、様々な情報にアクセス可能
WMQ Information Center - WebSphere MQ Telemetry
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r1/topic/com.ibm.mq.doc/tt00000_.htm
System Requirements for WebSphere MQ V7.1 Telemetry
http://www-01.ibm.com/support/docview.wss?uid=swg27023057
developerWorks
さらに拡がるMQの世界 - WebSphere MQ Telemetry のご紹介
http://www.ibm.com/developerworks/jp/websphere/library/wmq/mq_world_ws/
WebSphere MQ V7 アップデート・ワークショップ 2章(WMQ Pub/Sub)など参照
http://www.ibm.com/developerworks/jp/websphere/category/wmq/
WebSphere MQ SupportPacs
http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg27007198&wv=1
MP0A(パフォーマンスレポート)、IA93(MQTT Cクライアント)など参照
32
Fly UP