第5回 奥義その壱 ソフトウェアシーケンス図を制する


西村 泰洋
富士通株式会社
マーケティング本部
フィールドイノベーション
プロジェクト員
2008年1月24日
RFIDシステムに必要なプログラムの実装方法はベンダによってクセがある。本連載はRFIDシステムに必要とされるプログラミングスキルを伝授するバイブルである(編集部)

 これまで、モトローラ(第1回第2回)やオムロン(第3回第4回)という日本の市場で大きなシェアを持つリーダ/ライタの特徴とプログラミング例を解説してきました。実際のプログラミング例を見ていただくことで、読者の皆さんのリーダ/ライタ含めたRFIDシステムに関する知識、そして好奇心は以前にも増して高くなっているのではないでしょうか。

 今回解説するソフトウェアシーケンス図は、どのメーカーのリーダ/ライタを選定してRFIDシステム開発(プログラミング)に臨むとしても、必ず知っておいていただきたい手法です。このソフトウェアシーケンス図は各メーカーに固有なものではなく、RFIDシステムに共通する考え方であり、さらにいえば近距離無線のシステム開発に共通の考え方です。

 従って、ソフトウェアシーケンス図を意識して開発を進めていくのと、それを知らずに取り組むのでは結果が全く異なってしまうといえるでしょう。今回は、一般的なシーケンス図に筆者のチームでのアレンジを加えた、より実用的な手法を紹介します。

 ソフトウェアシーケンスの基本

 まず、「RFIDシステム導入バイブル」の第3回で利用したハードウェア構成図を見てください。

 このスケルトンでは、リーダ/ライタに対してPCから処理を命令する中で、PCでは業務アプリケーション・API・ドライバ、リーダ/ライタではドライバに連携した物理層(ファームウェア、この図では明記していません)、そしてRFIDタグがリーダ/ライタから発射された電波で起電・応答をする仕組みになっています。

ハードウェア構成図(RFIDシステム導入バイブル「第3回」より)

 つまり、ソフトウェアシーケンスを考えるうえでの、登場人物は以下が挙げられます。

  • 業務アプリケーション
  • API(ミドルウェア)
  • ドライバ
  • 物理層(ファームウェア)
  • RFIDタグ(今回はパッシブタイプを前提として進めますので、RFIDタグはリーダ/ライタの電波で起電・応答します)

 「RFIDシステム導入バイブル」の第3回では、ソフトウェアシーケンスとして以下のような簡単な解説をしました。これらのシーケンスは、多くのメーカーに共通するものです。

 簡単にいえば、OPEN、READ、CLOSEコマンドで読み取り処理をします。

コマンド1:OPENコマンドでリーダ/ライタを始動させて搬送波の供給を開始
コマンド2:READコマンドで変調を掛けてデータを読み取り
コマンド3:CLOSEコマンドで搬送波の供給を停止



 プログラミングレベルのシーケンス

 ソフトウェアシーケンスの基本の復習は以上です。いよいよこれから、本題に入っていきます。前段の説明では、OPEN、READ、CLOSEの3つのコマンドを例に解説をしていますが、それをソフトウェアシーケンス図にしてみましょう。

 なお、近距離無線システムの世界では縦線でシステムレイヤーの境界を表すケースが多いようですが、ユーザーとの討議から得られた筆者の経験では横線で示した方が理解しやすいと感じておりますので、この連載では横線で解説していきます。

図1 基本的なソフトウェアシーケンス図

 図1には、実線の矢印と破線の矢印があります。実線の矢印はシステムエンジニア(SE)やプログラマが自分自身で確認できる処理です。破線矢印の処理はAPI/ミドルウェアの命令に従って処理される層であり、リーダ/ライタのマニュアルや仕様書で確認ならびに想像する部分です。図1は最も基本的でシンプルなソフトウェアシーケンス図といえます。

 次に本連載の第2回で紹介したモトローラのソフトウェアシーケンス図を考えてみましょう。第2回で取り上げたメインモジュールのフローチャート(図1)、OpenReaderのフローチャート(図2)と見比べてください(それぞれリンクをクリックすると別ウィンドウに表示されます)。

図2 モトローラのソフトウェアシーケンス

 図2は、APIをOPENしてからリーダ/ライタの物理層をOPENし、それからREADするというソフトウェアシーケンス図です。ここで理解していただきたいのは、各処理(矢印)に応じたコマンドがあるということです。

 SEやプログラマにとって、マニュアルや仕様書そして実際の動作から推測するしかないという部分も多いことでしょう。そのため、このような図を作成してプログラミングに臨むことは、RFIDシステムへの理解が確実に進み、またプログラミングにおける漏れやミスを防ぐこともできます。

 
1/4

Index
奥義その壱 ソフトウェアシーケンス図を制する
Page1
ソフトウェアシーケンスの基本
プログラミングレベルのシーケンス
  Page2
シーケンス図作成のポイント
システム設計におけるシーケンス図の活用
  Page3
「BPOE」を踏まえてシーケンスを考える
  Page4
現実の世界への適用
リーダ/ライタを見抜く、それはシーケンス図を描けること


RFIDシステムプログラミングバイブル 連載インデックス


RFID+IC フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

Master of IP Network 記事ランキング

本日 月間
ソリューションFLASH