[zmemo.netトップページ▲] [ZMemo分館トップページ▲] [始祖鳥生息地]
プロジェクトZ(始祖鳥生息地別館)
最終更新日:2004年6月3日

スクリプト状態送信プロトコル『TAB/1.0』について

【概要】

 TABプロトコル(Talk And Broadcast protcol)は、スクリプトの状態をそれ以外のスクリプトに報告するための規約です。
 この規約に沿うことで、製造元が違う場合でも、スクリプトの適切な相互反応を実現することが可能です。

 TABプロトコルはスクリプト間通信/DSCPにより、スクリプトの状態を示すステータス文字列を他のスクリプトにブロードキャストすることによって、実現します。

 注意すべき点は、TABは命令ではなく状態報告であるということです。よって、TABを受け取ったことに対する動作についてはあくまでも受信側にゆだねられます。『送信側は状態の送信のみをおこない、判断は受信側でおこなう』という設計思想です。

 これにより、受信側のスクリプトは、送信側のスクリプトの細かな挙動を検出することが可能となります。

【TABの項目について】

TAB送信情報は、以下の情報を含みます。

(01)送信時刻
・送信側
TABの送信時刻を設定します。
特定のスクリプトを宛先とする場合には、宛先とするスクリプトコードを設定します。
(同じスクリプトが複数起動されている場合などに有効です。)
・受信側
受信側が、一定時間以上古いTAB情報を除外する場合などに必要です。
(これにより、一時間も前のTAB情報に受信側が反応する、ということを避けられます。)

(02)送信元スクリプトコード
・送信側
自分自身のスクリプトコードを設定します。
・受信側
受信側が、送信元のスクリプトコードを判断するために必要となります。

(03)送信元ETag
・送信側
自分自身のETagを設定します。
・受信側
受信側が、送信元のスクリプトを特定したいときに必要となります。
(同じスクリプトが複数起動されている場合などに有効です。)

(04)TAB宛先のスクリプトコード
・送信側
 特に宛先を指定しない場合には、設定の必要はありません。
 特定のスクリプトを宛先とする場合には、宛先とするスクリプトコードを設定します。
 (同じスクリプトが複数起動されている場合などに有効です。)
・受信側
 受信側が、受信したTAB情報が自分に対して当てられたものかを判断する場合に必要です。
 この項目は、カンマ区切りで複数スクリプトのスクリプトコードを指定することが可能です。
 受信側のスクリプトコードが、この項目で指定されたスクリプトコードのいずれかに一致する場合は、受信側宛てのTA
Bであると判断します。  ただし『ALL』が指定されている場合は、すべての受信側に対して有効となります、

(05)TAB宛先のETag
・送信側
 特に宛先を指定しない場合には、設定の必要はありません。
 特定のスクリプトを宛先とする場合には、宛先とするスクリプトコードを設定します。
 (同じスクリプトが複数起動されている場合などに有効です。)

・受信側
 受信側が、受信したTAB情報が自分に対して当てられたものかを判断する場合に必要です。
 この項目は、カンマ区切りで複数スクリプトのETagを指定することが可能です。
 受信側のETagが、この項目で指定されたETagのいずれかに一致する場合は、受信側宛てのTABであると判断します。
 ただし『ALL』が指定されている場合は、すべての受信側に対して有効となります、

(06)TABコード
・送信側
 スクリプト内で一意性のある任意のコードを設定します。

・受信側
 この項目により、受信側は、TAB送信元のスクリプトが何をおこなっているかを知ることができます。

【文法】

TABの送信形式は以下の通りです。

TAB:Time;SenderScriptCode;SenderETag;ToScriptCode;ToETag;TAB_code;

TABメッセージの先頭には、常に『TAB:』スキームが設定されます。
以降の各項目はセミコロンで区切ります。

(01)string SenderScriptCode
送信元スクリプトコードです。
TAB送信時には、自分自身のスクリプトコードを設定します。

(02)string SenderETag
送信元ETagです。
TAB送信時には、自分自身のスクリプトコードを設定します。

(03)int Time
送信時刻です。

(04)string ToScriptCode
TAB宛先のスクリプトコードです。
すべてのスクリプトを対象とする場合は『ALL』(半角大文字)を指定します。
※空白、ヌルストリングは許可されません。
宛先のToScriptCodeが複数件存在する場合はカンマで区切ります。

(05)string ToETag
TAB宛先のETagです。
すべてのスクリプトを対象とする場合は『ALL』(半角大文字)を指定します。
※空白、ヌルストリングは許可されません。
宛先のETagが複数件存在する場合はカンマで区切ります。

(06)string TAB_code
TABコード本体です。
スクリプト内で一意性のある任意のコードを設定します。

【受信したメッセージがTABか否かを判断する方法】

先頭から4文字目までが『TAB:』と一致するかによっておこなうことができます。
TABメッセージの先頭には、常に『TAB:』スキームが設定されます。

【TAB使用時の前提】

(01)TABコードはスクリプト内で一意とする。
(02)TABコードに使用できる文字はセミコロンを除く英数字とする。
 MBS(全角文字など)をコードに使用する場合はURLエンコードを行なうこと。
(03)TABコードはスクリプト作成者の判断により削除してもよい。
 ただしTABコードを発信する位置を変えたり、TABコードによってあらわされる内容が変わってはならない。

【TAB通信プロトコルサンプルスクリプト】

 TAB通信プロトコルサンプルスクリプトを作成しました。同梱の汎用TABコード通信モジュール(m01s_tab.dde)をスクリプトに組み込めば、TABシステムの導入が簡易化されます。

TAB通信サンプルスクリプト
(CHC-TAB-SAMPLE)
Ver.0.20
ZMemoパッケージファイル
chc-tab-sample.zsc ダウンロード
16.6 KB (17,076 バイト)
2004年6月3日、22:07:34
ZMemoがインストールされている場合、ダブルクリックだけでインストール・起動ができます。
デフォルトの場合、アーカイブはC:\Program Files\ZMemo\Script\CHC-TAB-SAMPLEに展開されます。
TAB通信サンプルスクリプト
(CHC-TAB-SAMPLE)
Ver.0.20
LHA圧縮ファイル
chc-tab-sample.lzh ダウンロード
22.3 KB (22,928 バイト)
2004年6月3日、22:07:34

 ひたきの実行には、ZIDNEYさん製作の『透ける付箋紙ZMemo』の最新版と、これが動作する実行環境が必要です。
 ZMemo最新版は、別途こちらからダウンロードしてください。

【更新履歴】

・2004年4月24日  本ドキュメント公開