本研究では,まず最初に,既存技術を用いたサンプル実装を通して,Webサ ービスのプリミティブ化を実現する上での主たる問題点を明らかとした.その 結果,以下のような結論が得られた.
A-1) リソースが厳しく制約された超小型コンピュータシステムにおいては,
Webサービスは非常に負荷が重く実用的でない
A-2) このような負荷の主たる要因は,テキストレベルのメッセージ処理に に存在する
A-3) Webサービスの実現には,比較的容量の大きいメモリが必要であり,
対象とするアプリケーションにおけるコスト制約を満足できなくなりうる
次に,上記の問題点を解決するために,超小型のコンピュータを対象とした Web サービスの高速処理エンジンとして,ハードウェア実装される階層型
Aho-Corasickマシンと呼ぶ専用モジュールを提案し,テキストレベルでのプロ
トコル処理を効率的に処理できることを示した.それらの評価を通して,以下 のような結論が得られた.
B-1) Aho-Corasick のアルゴリズムをハードウェアマッピングした上で,
これを階層的に積み上げた構造を導入することで,テキストレベルのメッセー ジ処理の従来の一般的な方法であるソフトウェア実装に比べて,2桁ないし4 桁の高速化が可能となる.
B-2) 構成するマシン内部のコード比較ブロックの並列度を変化させること で,性能とリソースのトレードオフが生じる.また,これを活用したマシンの 最適化が可能である.
B-3) マシン構造を規定する状態遷移図のエッジオーダや仕様の実装範囲に 応じて,回路規模や性能に大きな変化が見られる.また,これを用いたマシン 最適化が可能である.
さらに,上述のハードウェアモジュールに対して,ネットワークを介して外 部 か ら 機 能 拡 張 で き る よ う な 仕 組 み を 付 加 し た プ ロ グ ラ マ ブ ル 階 層 型
Aho-Corasickマシンを提案し,ハードウェア化に付随するシステム拡張の困難
さを解決することを可能とした.さらに,それらの評価を通して,以下のよう な結論が得られた.
C-1) 主となる階層型Aho-Corasickマシンとは独立に3ファンクションテ ーブル書き換えメッセージ処理専用の Aho-Corasick マシンを用意することで,
比較的小規模のリソース増加でプログラマビリティを付加することが可能とな る.
C-2) 3ファンクションテーブルの書き換え時間は非常に短く,迅速なシス テムリプレースが要求されるアプリケーション(高い可用性が求められるアプ リケーション)にも適用可能である
C-3) システムリプレースの実行は,別途専用のプロトコルによるインタフ ェースを必要とせず,完全にWebサービスの枠組みに準拠した形でこれが行え る.
最後に,仮想プラントモニタシステムへの技術適用を通して,以下のような 結論が得られた.
D-1) 処理エンジンは,論理規模がゲートサイズ換算で100Kゲート以下で 実装可能である
D2) 占有面積については,90nmプロセスの条件で600 µm角程度となり,
コスト制約が厳しいアプリケーションに適用可能である
D-3) 消費電力については,90nmプロセスの条件で1mW程度以下となり,
低消費電力性が求められるアプリケーションにも有効である
D-4) 性能については,SOAPメッセージ処理に対して,約3桁の速度向上 が図れる
以上,提案技術について,シミュレーション及びシステム適用を通して、そ の有効性を確認した.今後,このような基盤技術を活用して,多様なアプリケ ーション開発がなされることを期待したい.
本研究に関連する論文および学会発表
[1] 佐々木靖彦,村山隆彦,多田好克,“分野横断アプリケーション統合に向け
た Web サービスのプリミティブ化に関する実装と考察”,情報処理学会,デジ タル・ドキュメント研究会,研究報告 DD53-3,pp. 17-24, 2006. 主に本論 文の第2章に関連
[2] 佐々木靖彦,村山隆彦,多田好克,“ハードウェア階層型Aho-Corasickマ シンを用いた Web サービス高速処理技術”,情報処理学会,トランザクション 論文誌,コンピュータシステム ACS-15,pp. 308-316, 2006 主に本論文の第 3章に関連
[3] Y. Sasaki, T. Murayama, and Y. Tada,”A High-performance XML/SOAP Processing Engine for Broader Use of Internet Messaging Technologies,”
Proceedings of International SoC Design Conference, pp. 43-46, 2006 主に 本論文の第3章,第5章に関連
[4] Y. Sasaki, T. Murayama, and Y. Tada , ”A High-performance Programmable XML Engine for Next Generation Communication,”
Proceedings of IEEE International Conference on Communication Technology, pp. 258-261, 2006 主に本論文の第4章,第5章に関連
謝辞
本研究を行うにあたり,多くの方々から多大なるご支援を頂きました.この 場を借りてお礼申し上げます.
特に,村山隆彦助教授は,WebサービスをはじめとするWeb技術に関わる広 い見識に基づき,システム構築に関わる実践面を含めた多方面からのご指導を 下さいました.また,多田好克教授は,研究における技術的な助言はもちろん,
筆者の研究環境の整備まで手厚いご支援を下さいました.さらに,両教授とも,
本研究に関する学会投稿の際には,筆者の拙い原稿の水準を上げるために,辛 抱強くお付き合い下さいました.佐藤喬助手は,筆者が研究室配属になって以 降,計算機をはじめとした様々な研究環境の構築においてご支援下さいました.
また,多田研究室と村山研究室の学生メンバは,研究室ミーティングや日々 の議論の際に,それぞれの分野に根ざした有意義な意見を提供して下さり,筆 者の視点を広げることにお手伝い下さいました.
さらに,田野俊一教授,渡辺俊典教授,本多弘樹助教授,吉永努助教授は,
各方面の専門的な見地からご指導下さいました.
これら多くのご支援やご助言がなければ,本研究は決して実を結ぶことはな かったものと思います.筆者として,感謝の念に絶えません.誠にありがとう ございました.
付録
A 既存実装の評価で用いたメッセージサンプル リクエストメッセージ
POST http://spa.is.uec.ac.jp/ws/SOAP/request.cgi HTTP/1.1 Accept: text/xml
Accept: multipart/*
Content-Length: 517
Content-Type: text/xml; charset=utf-8
SOAPAction: "SOAP/NodeInfo#getTemperature"
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body><namesp1:getTemperature xmlns:namesp1="SOAP/NodeInfo">
<c-gensym3 xsi:type="xsd:string">
C</c-gensym3>
</namesp1:getTemperature></SOAP-ENV:Body></SOAP-ENV:Envelope>
レスポンスメッセージ HTTP/1.1 200 OK
Date: Tue, 0x Aug 200x 02:32:41 GMT Server: Apache/2.0.47 (Fedora)
Content-Length: 535
Content-Type: text/xml; charset=utf-8
Client-Date: Tue, 0x Aug 200x 02:32:41 GMT Client-Response-Num: 1
SOAPServer: XXX
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body><namesp1:getTemperatureResponse xmlns:namesp1="SOAP/NodeInfo">
<s-gensym3 xsi:type="xsd:float">
27.2</s-gensym3></namesp1:getTemperatureResponse></SOAP-ENV:Body>
</SOAP-ENV:Envelope>
B サンプル実装システム
B1 システム全景
図B1 システム全景
B2 開発用FPGAボード
・ボード右端に見えるチップがXilinx製FPGAチップ(200Kgates)
・ボード中央上のケーブルがコンフィグレーション用JTAGケーブル
・ボード左下がシリアル接続用ケーブル
・ボード右上および右下のLEDがデバッグ用に用いたディスプレイ
図B2 開発用FPGAボード