• 検索結果がありません。

電気通信大学

N/A
N/A
Protected

Academic year: 2021

シェア "電気通信大学"

Copied!
101
0
0

読み込み中.... (全文を見る)

全文

(1)

分野横断アプリケーション統合に向けた Web サービスのプリミティブ化に関する研究

佐々木靖彦

電気通信大学

2007年3月

(2)

分野横断アプリケーション統合に向けた Web サービスのプリミティブ化に関する研究

博士論文審査委員

主査  多田好克  教授

委員  村山隆彦  助教授

委員  田野俊一  教授

委員  渡辺俊典  教授

委員  本多弘樹  助教授

委員  吉永努    助教授

(3)

著作権所有者 佐々木靖彦

2007

(4)

A Study on Web Service Primitive Technology Aiming for Application Integration over

Broad Industry Fields.

Yasuhiko Sasaki Abstract

A high-performance web service engine (primitive) suitable for resource-constrained computers has been proposed. The engine has been developed for the use of web services in broad industry fields such as plant operations, environmental measurements, and automobile controls.

The proposed engine features the hardware-mapped

hierarchical Aho-Corasick machine (H-ACM) and programmable

hierarchical Aho-Corasick machine (PH-ACM). Based on the

simulation results, the proposed approach, H-ACM and PH-ACM,

demonstrated a large speed up compared to the conventional

software approach on processing messages using SOAP, XML, and

HTTP. Also the system expansion for PH-ACM has become

possible by using only the web service interface, SOAP. The

expansion can be performed in a very short time less than 10 ms

for a sample plant monitoring system.

(5)

The engine was implemented on a FPGA (Field Programmable

Gate Array) board that was assumed to be used in a plant

monitoring system. The advantages of the engine with respect

to the small gate size, the low power consumption, and the small

on-chip area were confirmed through the evaluation of the

implementation.

(6)

分野横断アプリケーション統合に向けた Web サービスのプリミティブ化に関する研究

佐々木靖彦

概要

Webサービスは,XML(eXtensible Markup Language)をベースとした拡 張 性 の 高 さ や ,SOAP(Simple Object Access Protocol) を は じ め と す る

W3C(WWW consortium)規定の仕様準拠による標準性の高さを特徴として,次

世代サービス統合技術(SOA: Service Oriented Architecture)の中核技術とし て注目されている.しかしながら,その利用範囲は,情報・ソリューション分 野を中心とした高性能なサーバ等をベースとしたビジネスシステムに留まって きた.

そこで本研究では,Webサービスを,上記のような限定された分野に留まら ず,産業プラント,環境計測,自動車といった,より広い分野へ展開していく ことを可能とすることを目的として,多様な分野で用いられる超小型のコンピ ュータシステムに対しても活用可能とする“Web サービスのプリミティブ化”

に関する技術提案を行う.すなわち,本技術は,性能やリソースが著しく制限 されたコンピュータ群を使っても,XMLやSOAPなどを用いたメッセージを高 速に処理することを可能とする基盤技術である.

本研究では,まず最初に,Webサービスのプリミティブ化を実現する上での 主たる問題点を明らかにするために,比較的リソースが限定された組込みボー

(7)

ド上に既存の技術(汎用CPU上のソフトウェア処理)を用いて Webサービス 単独の機能を実装する.そして,この実装における処理量やメモリ使用量等の 定量的な解析を行う.その結果として,Web サービス処理は,超小型コンピュ ータにおいては相当に負荷が大きく,実用的でないこと示す.特に,このよう な問題は,Web サービス特有のテキストレベルでのプロトコル処理がボトルネ ックとなって生じていることを明らかにする.

次に,上記の問題点を解決するために,超小型のコンピュータを対象とした Web サービスの高速処理エンジンを提案する.これは,オンチップのハードウ ェアとして実装される“階層型Aho-Corasickマシン”と呼ぶ専用モジュールで あり,テキストレベルでのプロトコル処理を効率的に処理する.同モジュール は,テキストレベルでのプロトコル処理において,従来のWebサービスの一般 的な処理方法であるソフトウェア実装に比べて,2桁以上の高速化を達成する ことが可能となる.また,本処理エンジンは,必要な論理ゲート規模が90Kゲー ト以下と著しく小さいため,オンチップの占有面積,消費電力についても,90nm プロセスの条件で,それぞれ,600 µm角,1mW程度となり,従来方式に比べ て大きく削減することが可能となる.

さらに,上述のハードウェアモジュールに対して,ネットワークを介して外 部から機能拡張ができるような仕組みを付加した“プログラマブル階層型

Aho-Corasickマシン”を提案する.これは,ハードウェア化により場合によっ

ては欠点ともなりうる“システム拡張の困難さ”を解決するための技術である.

本来のサービス処理を行う階層型Aho-Corasickマシンとは独立に,機能拡張メ ッセージ処理専用の階層型Aho-Corasickマシンを用意することで,完全にWeb サービスのメッセージルールに準拠した上でシステム拡張が行えるという利点 をもたらす.

最後に,提案技術の応用例として,仮想プラント計測システムに対してFPGA

(Field Programmable Gate Array)を用いた実装を行った結果を示す.8-bit

(8)

級以下で動作周波数も数十MHz以下の超小型コンピュータと組み合わせて,高 速にWebサービス処理が行えることを示し,本提案技術の有効性を確認する.

(9)

目次

1章  序章... 11

1.1  はじめに... 11

1.2  本論文の構成... 16

参考文献... 18

2章  Webサービスと既存技術による実装... 20

2.1  Webサービスを実現する技術階層... 20

2.1.1  3大階層... 20

2.1.2  サブ階層... 21

2.1.2.1  Webサービス階層... 21

2.1.2.2  通信プロトコル階層... 22

2.1.2.3  物理階層... 22

2.2  一般的なWebサービスにおける課題... 23

2.3  既存技術を用いたWebサービスの実装と評価... 23

2.3.1  評価の概要... 24

2.3.2  処理性能に関する評価... 25

2.3.2.1  評価対象と方法... 25

2.3.2.2  評価結果と考察... 26

2.3.3  メモリ使用量に関する評価... 29

2.3.3.1  評価対象と方法... 29

2.3.3.2  評価結果と考察... 30

2.3.4  通信量に関する評価... 31

2.3.4.1  評価対象と方法... 31

2.3.4.2  評価結果と考察... 32

2.4  結論... 35

(10)

参考文献... 36

3章  Webサービス高速処理エンジンの提案... 38

3.1  Webサービスとプリミティブ化の課題... 38

3.1.1  Webサービスを実現するテクノロジスタック... 38

3.1.2  Webサービス活用における課題... 38

3.1.3  Webサービスのプリミティブ化に向けた処理高速化... 39

3.2  Webサービス高速処理技術... 42

3.2.1  従来のメッセージ処理技術... 42

3.2.2  ハードウェア化に向いた処理方法... 43

3.2.3  Aho-Corasickのアルゴリズム... 44

3.2.4  Aho-Corasickのアルゴリズムの優位点... 45

3.2.5  Aho-Corasickのアルゴリズムのハードウェア化... 46

3.2.6  Aho-Corasick法のメッセージ構造解析処理への適用... 49

3.3  性能-リソース間トレードオフと最適化... 51

3.3.1  性能-リソース間トレードオフ... 51

3.3.2  マシン構造を利用した最適化... 52

3.4  関連するハードウェア技術との比較... 53

3.5  実験と評価... 56

3.5.1  評価対象と方法... 56

3.5.2  処理モジュールシミュレータ... 56

3.5.3  評価結果と考察... 56

3.6  結論... 64

参考文献... 64

4システム拡張を容易化するプログラマブルエンジン... 66

4.1  ハードウェア高速処理エンジンの課題... 66

4.2  Webサービス準拠のシステムリプレース... 67

(11)

4.3  プログラマブビリティ付加に対するアプローチ... 68

4.4  プログラマブルAho-Corasickマシンの基本構造... 69

4.5  プログラマブルAho-Corasickマシンの階層化... 71

4.6  実験と評価... 73

4.7  結論... 76

参考文献... 77

5章  システム適用とその評価... 78

5.1  仮想プラント計測システムへの技術適用... 78

5.2  FPGAを活用した評価... 81

5.3  ノード実装... 81

5.4  評価... 83

5.4.1  論理規模... 84

5.4.2  チップ占有面積... 85

5.4.3  消費電力... 86

5.4.4  処理性能... 88

5.5  結論... 89

参考文献... 90

第6章  結論... 91

本研究に関連する論文および学会発表... 94

謝辞... 95

付録... 96

A  既存実装の評価で用いたメッセージサンプル... 96

B  サンプル実装システム... 98

C  サンプル実装の動作波形... 100

(12)

第 1 章  序章

1.1  はじめに

Webサービス[1]は,XML(eXtensible Markup Language)[2],SOAP(Simple Object Access Protocol)[3,4],WSDL (Web Services Description Language) [5]といった要素技術をベースとして,ネットワーク上に分散する様々なサービ スの統合を可能とする技術として注目されてきた.これは,各要素技術が持つ 高い柔軟性(XMLによる任意タグやWSDLによるインタフェース定義)や高い 標準性(W3C1規定のSOAPによるエンベロープやスキーマ)を活用することに より,組織の壁を超えたオープンな次世代サービス統合技術(SOA: Service Oriented Architecture)として,新しい応用を生み出す可能性があるからであ る.

このようなWebサービスであるが,これは従来から使われてきた一般のWeb アプリケーションとは大きく異なる特徴を持つ.従来から使われてきたWebア プリケーションは,HTMLをデータのフォーマットとして利用する.しかし,

HTMLフォーマットは情報を見ることを目的に開発されたものであり,データ

messages with SOAP on XML

サービス 利用者 サービス

提供者 登録

発見 検索

利用 UDDI WSDL messages with

SOAP on XML

サービス 利用者 サービス

提供者 登録

発見 検索

利用 UDDI WSDL

図1.1  Webサービス

1 World Wide Web Consortium(W3C)は,Webの長期的な発展のために,Web技術に関 わるプロトコルやガイドラインを制定し標準化を行う公的な国際組織である.

(13)

を明確な構造とともに受け渡しすることを不得手としていた.さらに,HTML を利用する情報システムは,ブラウザの利用をベースとしたものであり,基本 的に人間が情報を理解して利用することが前提となっていた.その結果,マシ ン(プログラム)同士での情報のやりとりを苦手とし,広い範囲の機能統合を 自動で行わせるといった応用には向いていなかった.

これに対しWebサービスは,XMLをベースとしたSOAPを用いることで,コ ンピュータ同士がメッセージの交換を行うことができるようにされた仕組みで あり,W3Cにより標準化されたものである.構造化されたデータの受け渡しが 行えるだけでなく,ブラウザも不要であるため,人間を介さないマシン間での 高い情報交換能力を備えることが特徴である.また,Webサービスでは,デー タのエンコーディング方法のみを規定しておりプラットフォームは問わないた め,オープンなシステム開発にも有効である2.XMLやWSDLといった技術によ って,構築者の都合に合わせてデータの構造やタグを決定できるため,柔軟性 のあるシステム設計が行えることも大きな魅力である.

さらに,Webサービスでは,サービスを登録したり検索したりすることを容 易にするために,UDDI(Universal Description, Discovery and Integration) [6]と呼ばれる仕組みが設けられている.UDDIは,どのようなWebサービスが どこに存在するかといったことを示すものであり,各サービスのWSDLが登録 されている.すなわち,いわゆるイエローページと同様のディレクトリ・サー ビスに相当する.このような仕組みを利用すれば,同等の機能を有するサービ スを,目的や状況に応じて使い分けるといったことが可能となる.

以上に示したような複数の利点によって,Webサービスは,広範囲のシステ ム連携を可能とする基盤技術として活用することが期待されるようになってい

2 Webサービスは,従来の分散処理アーキテクチャであるCORBA(Common Object Request Broker Architecture)やDCOM(Distributed Common Object Model)に対して,プラットフ ォーム非依存性やファイアウォール透過性を高めた,より先進性の高い分散アーキテクチ ャと言える.

(14)

る.しかしながら,Web サービス技術の現状を捉えると,実際には当初期待さ れたほど普及している状況にはない.例えば,UDDI へのサービス登録数は頭 打ち状態にあり,事実上うまく機能しているとは言えない[7].また,応用事例 を見ても,技術提案当初からの定型的かつ固定的な例が多く,やはり技術の普 及がうまく進んでいないことを示している.

このような状況の中,Webサービスに関わる技術を従来以上に活用していく ためには,新しい展開を検討する必要がある.そうした検討には多様なアプロ ーチが考えられるが,その中でも我々は特に,サービスの粒度に着目したアプ ローチを検討している.すなわち,提供するサービスの粒度を従来よりも著し く細かくするような基盤技術として,Web サービスのプリミティブ化を検討し ている.

従来のようにサービスの粒度が大きいと,現在すでに存在しているサービス に対し,インタフェースだけをWebサービスに準拠させることで活用できると いうメリットがある.既にビジネスアプリケーションとして蓄積されてきたサ ービス群を,比較的短い時間でまとめあげるといった場合には都合がよい.実 際,情報ソリューション分野(あるいは,IT 分野)を中心として,そのような 実装例が多く存在する[8-11].

その一方で,サービスインテグレータにとって,組み合わせて利用できるサ ービスの数が限定的となりがちで,かつ統合後のコストが上昇しがちであると いう問題がある.本技術は,このような問題を解決しようとするものである.

すなわち,サービス粒度を細かくすることで,インテグレータにとって冗長性 が低いサービスだけを低コストに組み合わせることを可能とする.その結果,

採算性の高い統合サービスを提供しやすくなる.

このような状況は,Webサービス技術において頻繁に引き合いに出されるよ うな旅行業務の統合といったような粒度の大きいアプリケーションの統合とは 大きく異なるものである.これは,従来の情報・ソリューション分野における

(15)

WS

(宿予約)

WS

(飛行機予約)

WS

(課金)

AS

クライアント

SOAP

SOAP

UDDI SOAP

SOAP: simple object access protocol, AS: application server, WS: web service

車内外制御ユニット 環境計測

PC サーバ

従来のWebサービス

新しいWebサービス

C: small/embedded computers

SOAP SOAP

産業プラント

WS

(宿予約)

WS

(飛行機予約)

WS

(課金)

AS

クライアント

SOAP

SOAP

UDDI SOAP

SOAP: simple object access protocol, AS: application server, WS: web service

車内外制御ユニット 環境計測

PC サーバ

従来のWebサービス

新しいWebサービス

C: small/embedded computers

SOAP SOAP

産業プラント

図 1.2  Web サービスのプリミティブ化とそれに伴うサービス統合形態 の変化 

Webサービス技術に留まらず,産業プラント,環境計測,自動車,ビルオート メーション,ホームセキュリティ,ヘルスケア,デジタル家電,物流,防災,

ロボットといった分野におけるアプリケーション(以下,フィールドアプリケ ーションと呼ぶ)に対しても横断的に関わるWebサービス技術として展開可能 となることを意味する(図1.2).従来,フィールドアプリケーションにおいて は,各分野ごとの独自の低レベルのインタフェースが使われてきたために,分 野を超えてサービスが協調するといったことは困難であった3.しかし,Webサ ービスという共通のメッセージインタフェースが利用できるようになれば,従

3 例えば,産業プラントの分野ではPROFIBUS,DeviceNet,MODBUS等,多くの種類の フィールドバスが利用されている.また,車内ネットワークではパワートレイン系,ボデ ィ系,セーフティ系,情報メディア系のそれぞれにおいてCAN,FlexRay,LIN,MOST,

IDB1394といった様々なインタフェースが利用されている.また,ビルオートメーション

では,LonWorks,BACnetなどが利用されている.このように,種類の異なるネットワー クに接続される機器の上では,Webサービスなどのより高位の共通データ転送方式なくして アプリケーションが横断的に協調動作することは非常に困難である.

(16)

来は不可能であった分野横断的なサービス統合が可能になる4

さらに,本技術の狙いの一つには,上述したような粒度の細かいサービス群 が従来はクローズドな形で提供される傾向があった状況を変化させることもあ る.例えば,現在では,産業プラント内にあるような特定の目的のシステムは,

単一の事業者により構築されるといった傾向がある.これは,専用システムと して一定の性能基準を満たすために冗長性の低い実装を余儀なくされるからで ある.もし,このようなシステムに対してWebサービスを適用しようとしても,

既存の技術では性能面で満足のいくものが作れないこととなる.従って,Web サービスを産業プラント,環境計測,自動車といった分野に対しても利用する という考えは現実的でなくなる.

しかし本来は,現在の情報・ソリューション分野におけるシステム構築で見 られるようにオープン化が進むことによって,複数の事業主体が提供する要素 部品を最適に組み合わせることより,低いコストでシステム構築が行えるよう になる可能性がある.例えば,産業プラント内のシステムが複数の部品より構 成されるといった場合,その各要素部品ごとに性能やコストなどにおいて優れ たベンダ(部品提供者)は異なることが一般的である.従来はこのような細か い部品ごとの最適ベンダを活用してシステムを組み上げるといったことは困難 であった.しかし,それらの部品が全てWebサービスというオープンなインタ フェースを(十分な性能とともに)備えることができるようになれば,もはや 特定の事業主体が提供する包括的なシステムに頼る必要はなく,真に最適なも のを組み合わせるといったことが行えるようになる.

本研究は,オープンなシステム構築において実績のあるWebサービスという 技術を,従来はクローズドなシステム開発が当たり前であった分野にまで浸透 させた上で,サービス間の連携を可能とすることを狙うものでもある.このよ

4 多様な分野に浸透したサービス間の連携を意味するため,我々はこれをPervasive Syndicationと呼んでいる.

(17)

うな状況では,もはや単一の事業主体の創造性だけに依存する必要はなくなり,

多数かつ多様な第三者的サービスインテグレータの創造性を活用して,より新 しい統合アプリケーションが開発されることを期待できるようになる.

さて,Webサービスのプリミティブ化にとって,まず最初に解決しなければ ならないことは,処理性能の低いコンピュータを用いてもWebサービスのテク ノロジを利用できるようにすることである.これは,現在のWebサービスで利 用されているようなサーバやPCのように数GHzの周波数で動作するCPUやマ ルチプロセッサのような高性能なコンピュータではなく,それらより2桁以上 も低いの性能のコンピュータであっても,SOAPやXMLといった技術を用いて サービスの提供が行えるようにすることを意味する5

本研究では,まず,このようなWebサービスのプリミティブ化を実現しよう とする際に,何が問題となり,今後何を開発する必要があるかについて分析を 行う.次に,その結果を踏まえて,現状の技術が有する問題点を解決すること が可能な,新しいアーキテクチャに基づくテキストレベルメッセージの高速処 理エンジンを提案する.これは,ハードウェア階層型Aho-Corasickマシンとそ の拡張版であるプログラマブル階層型 Aho-Corasick マシンという2つの方式 に基づく処理エンジンである.最後に,提案技術をプラント計測を想定した仮 想システムに適用し,その有効性を確認する.

1.2  本論文の構成

本論文は,以下のように構成される.

第2章では,Webサービス技術の構成要素について階層的に整理し,各階層

5 近年,グリッドコンピューティングの世界においてもWebサービスをRPCとして利用する ものが見られる.OGSA(Open Grid Service Architecture)がそのような例である.こうい った応用においても,なお,利用されるコンピュータは非常に性能が高く,リソースも十 分に大きなものが中心である.本研究は,これらとは異なり,非常に性能が低く,リソー ス制限が厳しいコンピュータで,Webサービスを利用するというところに特徴がある.

(18)

での主要処理についてレビューする.そして,現在の既存技術を組み合わせる ことで実現可能な,比較的コストを低く抑えたWebサービスについて,実装お よび評価した結果について考察する.さらに,これらの評価結果をもとに,現 状のWebサービス技術が有する主要な問題点についてまとめる.

第3章では,第2章で明らかとした問題点を解決するために,特に重要とな るテキストレベルのメッセージ処理を高速化する方法について述べる.まず,

Web サービス技術の処理上の課題について説明し,これに対する本研究のアプ ローチを概説する.次に,具体的な高速化手法として,リソース制約の厳しい ハードウェアにマッピング可能な階層型 Aho-Corasick マシンを用いた方法を 提案し,その基本構造と最適化の方法などについて示す.特に,階層型の構造 を持つハードウェアを用いる点や,複数の最適化の種類とそれぞれの効果につ いて詳説する.さらに,上述の提案方法を実装した場合の結果を,高位のシミ ュレータにより評価した結果について示す.最後に,評価結果から得られる結 論についてまとめる.

第4章では,第3章で提案した技術が持つ限界,すなわちシステム変更/シス テム拡張能力の問題を解決するための方法について述べる.新しいアーキテク チャに基づくハードウェアを導入することで,性能や電力といった面での従来 技術に対する大きな優位性を得られる反面,いったんインタフェース仕様を決 定した後の変更は難しくなる.そこで本研究では,このような問題を解決する ために,第3章で述べたアーキテクチャを最大限に活用しつつも,そのインタ フェース仕様をシステム製造後でも変更可能とする技術として,プログラマブ

ル階層型Aho-Corasickマシンを提案する.ここでは,その基本構造と,プログ

ラマブル化に関係する各種の特性について評価する.

(19)

第5章では,階層型Aho-Corasickマシンをシステム適用した結果について考 察する.プラントモニタリング用のデータ収集システムを想定し,SOAP メッ セージをやりとりする超小型ノードの開発を行った.ここでは,8bit 級で動作 周波数が数十 MHz以下の CPU と組み合わせることが可能な Webサービスプ リミティブエンジンの実装を行った.提案技術は,本来,ASIC(Application Specific Integrated Circuit)やSoC(System on Chip)といった形で半導体チップ 上に実装されるものであるが,その機能的な検証を行うために,実際にチップ 作成をしなくてもほぼ同様の機能が実現できる FPGA(Field Programmable

Gate Array)を用いて実装を行い,諸特性について評価を行った.その結果,本

技術が従来の技術に比べて性能や電力など複数の項目に関して,大きな改善が 見られることを確認した.

第6章では,結論として, Webサービスのプリミティブ化について明らかと なった問題点や,それらを解決するために開発した技術およびその評価の結果 についてまとめる.

参考文献

[1] http://www.w3.org/2002/ws/

[2] World Wide Web Consortium, “Extensible Markup Language (XML) 1.0 (Third Edition),” http://www.w3.org/TR/2004/REC-xml-20040204/, 2004.

[3] World Wide Web Consortium, “Simple Object Access Protocol (SOAP) 1.1,”

http://www.w3.org/TR/2000/NOTE-SOAP-20000508/, 2000.

[4] K. Scribner and Mark C. Stiver, “Understanding SOAP: The authoritative solution,”

Pearson Education 2001,  邦 訳   “SOAP 技 術 入 門   Simple  Object  Access  Protocol の概念,活用技法,可能性”,ピアソンエデュケーションジャパン,2001. 

(20)

[5] World Wide Web Consortium, “Web Services Description Language (WSDL) Version 2.0,” http://www.w3.org/TR/2006/CR-wsdl20-primer-20060327/

wsdl20-primer.txt, 2006 [6] http://www.uddi.org/

[7] GMO 総合研究所,“Web サービス最新動向調査”,シードプラニング編,2003. 

[8] 村山隆彦, 藤崎恵美子, 由良俊介, 畑島隆, 簗栄司, 唐沢裕明, 加藤順, 

“Web サービス技術によるファンクラブサービス構築の試み”, 電子情報通信学 会総合大会, D17-7, 2003. 

[9] 松山憲和,大場みち子,“道路交通情報サービスを使った複合 Web サービス 実証実験”,情報処理学会,デジタル・ドキュメント研究会,研究報告  DD51-6,

2005. 

[10] http://www.google.com/

[11] http://www.amazon.com/

 

(21)

第 2 章  Web サービスと既存技術による実装

本章では,Webサービスのプリミティブ化を行うにあたり生じる問題点を明 らかにする.このような目的のため,まずWebサービスを構成する複数の技術 を個別にレビューする.その後,既存技術を組み合わせてWebサービスの実行 環境を作成し,その評価結果をもとにプリミティブ化に対して問題となる項目 を明らかにする.

2.1  Webサービスを実現する技術階層 2.1.1  3大階層

Webサービスは,多くの技術を階層的に積み上げることにより実現される(図 2.1).これらの階層は,その処理の特徴から,大きく3つの階層として括るこ とが可能である.すなわち,(1)Web サービス階層,(2)通信プロトコル階 層,(3)物理階層である.Webサービスのプリミティブ化を検討するにあたっ ては,これらの階層のどの部分が性能やリソースの観点から問題となるかにつ いて明確にする必要がある.そして,その結果に基づき,問題の大きい部分か ら順に対処していくのが望ましい.

さて,3大階層を,上位のレベルから順におおまかに記述すると,以下のよ うに説明できる.なお,具体例については,情報・ソリューション分野におけ る場合を中心に説明しているが,これに限定されるものではない.

(1)Webサービス階層:  Webサービスに関係の深い機能を実現するために 必要となる部分である.具体的には,SOAP 処理,XML 処理,HTTP 処理[1]

などがこれに該当する.

(2)通信プロトコル階層:  汎用的な通信上のプロトコルを定義している部 分である.具体的には,IP/ICMP,TCP/UDP,Socket などがこの階層に該当 する.

(22)

Webサービス階層 (テキストレベ メッセジ処

通信プロト コル階層物理 階層

Phy API(socket)

到達確認と再送、フロー制御、アージェント処理 ルーティング、エラー制御、チェックサム計算

ドキュメントのリクエスト・レスポンス処理

信号伝送、活性化制御、送信パワー制御 エンベロープ処理、エンコーディング処理 WSDL, WS-Reliability

API提供

サービス定義、上位層信頼性確保

XMLパージング、ツリー作成

Link Network(IP) Transport(TCP)

HTTP XML SOAP

Webサービス階層 (テキストレベ メッセジ処

通信プロト コル階層物理 階層

Phy API(socket)

到達確認と再送、フロー制御、アージェント処理 ルーティング、エラー制御、チェックサム計算

ドキュメントのリクエスト・レスポンス処理

信号伝送、活性化制御、送信パワー制御 エンベロープ処理、エンコーディング処理 WSDL, WS-Reliability

API提供

サービス定義、上位層信頼性確保

XMLパージング、ツリー作成

Link Network(IP) Transport(TCP)

HTTP XML SOAP

図 2.1  Web サービスを実現するための技術階層 

(3)物理階層:  有線や無線の各種の信号伝送媒体に直接的に関連する部分 である.例えば,Ethernetのリンク層,ファイ層などが含まれる.

2.1.2  サブ階層

次に,3大階層の各階層における処理の詳細を示す.図2.1には,各階層の 処理概要についても示してある.

2.1.2.1  Webサービス階層

WSDL 処理,SOAP 処理,XML処理,HTTP処理などが含まれる.中心と なるのは,SOAP処理,XML処理,HTTP処理である.全ての処理について共 通に言えることは,いずれも扱っているデータはテキストデータであるという ことである.HTTP 処理では,サーバに送られてきたメッセージのヘッダの内

(23)

容に従い情報の取得や返送を行う.XML処理では,タグの解析を行いドキュメ ントの構造を決定する.SOAP 処理では,エンベロープ処理,エンコーディン グ処理を行う.また,WSDL 処理では,サービス定義の読み込み,プロトコル バインディング,ネットワークバインディングなどを行う.

2.1.2.2  通信プロトコル階層

一般の情報・ソリューション分野におけるビジネス応用では,IP/ICMP層,

TCP/UDP層,Socket層がこれに対応する.各層における処理の詳細は多数の文

献[例えば,2]に記載されているため省略するが,主たる処理はルーティング,

到達確認と再送処理,フロー制御,チェックサム計算,上位APIの提供などであ る.通信プロトコル階層はアプリケーションにより大きく変化する可能性があ る.特に,情報・ソリューション以外の分野では,物理階層においてEthernet 以外の通信が利用されることも多く,それに応じて通信プロトコル層の方式も 変わることが多い6.その場合,処理内容によっては,Webサービス階層との間 での最適な振り分けも考慮する必要がある.例えば,信頼性の確保などは,通 信プロトコル階層で行うに限らず,より上位層で取り扱うアプローチも有り得 る.このような場合,SOAPヘッダを活用したWS-Reliability [3]などを利用す ることが考えられる.

2.1.2.3  物理階層

有線方式ではEthernetをはじめ,RS232C,CAN,SPI,I2C,USB,IEEE1394 など,また無線方式では,IEEE802.11系, IEEE802.15系,微弱無線,特定小 電力無線,Bluetoothなど多様な方式が存在する.この階層では,物理的な信号

6 例えば,プラント応用では,産業用Ethernetの利用が始まりつつあるが,それ以外にも PROFIBUS,DeviceNet,MODBUS等多くの方式がフィールドバスとして存在している.

これらは,IEC61158として標準化が行われているが,統合的というより既存のものの集合 的な位置づけである.

(24)

伝送はもとより,活性化制御や送信パワー制御などが含まれる.

2.2  一般的なWebサービスにおける課題

情報・ソリューション分野で広く利用されているコンピュータ上では,Web サービスの機能(すなわち,上述のテクノロジスタック)を実行させることは 比較的問題なく実現できた.その背景には,数GHzのプロセッサや容量の大き いメモリなどを装備したコンピュータを用いることができるという前提がある.

Web サービスの実装で広く使われる JAX-RPC[4]や.NET[5]などのフレームワ ーク上のソフトウェアは,当然ながら上記のようなリソースを十分に備えたコ ンピュータ上での動作を前提として作られている.

一方,Webサービスを,先に述べたような広い分野のアプリケーションに適 用しようとすると,高性能かつ大容量のメモリといった,十分なリソースを有 するコンピュータの使用は必ずしも当然の前提条件として規定できなくなる.

特に,各種の産業プラント応用や環境計測応用などを考えた場合には,搭載で きるコンピュータの性能やメモリなどは,現在のWebサービスが利用されてい るコンピュータにおけるものよりも2桁〜3桁も小さいものを想定する必要が 生じる.そこで,本章では,そもそも適用が難しいJAX-RPCや.NET等のフレ ームワークではなく,リソース制約が幾分厳しい状況でも動作させることが可 能な環境を実装し,その評価を行った.

2.3  既存技術を用いたWebサービスの実装と評価

Webサービスのプリミティブ化を実現する上で,何が問題となるかを整理す るために,現在のWebサービスを極力コンピュータリソースが限定された組込 みボード上に実装して,評価を行った.

評価に先立って,組込みボード上にWebサービスの機能である3大階層の処 理を実装した.表2.1にその構成を示す.本研究の目的は,Webサービスに関

(25)

表 2.1  ベースシステムの構成

CPU/RAM(server) SH4(240MHz)/32MB

OS CELinux (2.4.20)

HTTP 独自実装

XML XML::Parser (expat*)

SOAP 独自実装

ネットワーク TCP/IP, Ethernet, 10Mbps 参考:client

CPU/RAM

Pentium4(2.99GHz)/1GB

*expatJames Clarkによる高速XMLパーサモジュール

するプリミティブ化を検討することであるから,大量のリソース(メモリやCPU 性能等)を前提としたHTTPサーバ(Apache等)や各種Webサービスを備え たフレームワーク(JAX-RPC,.NET 等)は利用できない.したがって,上記 実装においては多くの部分で独自実装を行い,極力少ないリソースで動作する ように工夫したものを用いている.例えば,従来の方式で見られるようなHTTP サーバから外部プログラム(XML処理,SOAP処理)を起動する際に生じる処 理時間の増加や,別プログラムによるコードサイズの増加といった問題が起こ らないようにした.すなわち,一般に用いられているようなHTTP処理とXML 処理やSOAP処理が別プログラムとなっている構成ではなく,HTTP処理から SOAP処理までの階層を一体化されたプログラムとして構成した.

2.3.1  評価の概要

評価は,3つの項目に対して行った.すなわち,1)処理性能,2)メモリ 使用量,3)通信量の3つである.処理性能の評価では,Web サービスを実行

(26)

図 2.2  Web サービスのベースシステム 

させた上で,これに対しプロファイラを用いたボトルネック解析を行った.メ モリ使用量に関しては,Webサービスのプログラム実行中にpsコマンドを発行 して,動作中の複数のタイミングでのメモリ使用量を測定した.また通信量に 関しては,WebサービスをSOAPメッセージに載せて転送する場合のデータ量 の肥大化について評価した.

2.3.2  処理性能に関する評価 2.3.2.1  評価対象と方法

使用したRemote Procedure Call(RPC)は,最もプリミティブなWebサー ビスの処理時間(Web サービスの下限値としての処理時間)を知るために,単 一のストリング型パラメータを受け取り,単一の実数データを返送するという 最小限の構成のものを用いた(付録1).ここでは,Webサービスの機能提供だ けに着目した評価を行うために,実アプリケーションでは存在する各種の内部 サービスとしては何も処理を行わず,予め用意された規定値を返すだけの実装

(27)

を評価した.

評価は,PCと組込みボードとをネットワーク接続し,クライアント側(PC)

からRPCを行い,サーバ側(組込みボード)の実行性能を計測した(図2.2). 計測では,Web サービスプログラムを走らせたマシン上でプロファイラを使っ て機能別の処理時間の比率を測定した.

実装した各処理の概要は以下のとおりである.

1)HTTP 処理:  リクエストメッセージのサイズ分を読み込んだ後,リク エストヘッダを分離し,ボディ部をXML::Parserに渡す

2)XML 処理:  XML::Parser は XML ドキュメントのパージングを行い SOAP処理へと結果を渡す

3)SOAP処理:  SOAPのRPCメッセージを解釈した後,それに応答する 適切なSOAPレスポンスを返信する

通信プロトコル階層以下の処理については,半導体チップと OS に搭載され ている機能を利用した.また,計測にあたっては,ネットワークの状態などに よるばらつきを抑え,またシステム起動時の準備時間を含めないようにするた めに,1000回のRPCを行い平均時間を取得した.

2.3.2.2  評価結果と考察

計測結果を図2.3に示す.同図は,単一クライアントからのアクセスの場合 を示したものである.計測結果の表の上位を占めているのは,HTTP処理,XML 処理,SOAP 処理であることがわかる.すなわち,3大階層の中で処理時間を 大きく占めているのは,Web サービス階層である.通信プロトコル階層以下の 処理時間は相対的に小さく,あまり問題とはならない.例えば,socket による socket/bind/listenなどの前準備(prepare_socketという関数になっている)は

(28)

User+System Time = 60.35653 Seconds Exclusive Times

%Time ExclSec Name

8.13 4.905 CHTTPProcessor::read_and_respond 5.69 3.435 XML::Parser::parse

5.25 3.167 XML::Parser::Expat::ParseString 5.24 3.161 CServer::check_open_connection 4.48 2.703 XML::Parser::Expat::setHandlers 4.08 2.465 XML::Parser::Tree::Start 3.97 2.396 CServer::open_new_connection

3.61 2.177 CHTTPProcessor::analyzeRequestHeaderFields 3.60 2.172 CServer::clean_connection

3.30 1.994 CXMLSoapProcessor::process_SOAP_RPC 3.03 1.826 CXMLSoapProcessor::BEGIN

2.87 1.733 CHTTPProcessor::analyzeHeaderFields 2.76 1.667 CServer::recv_socket

2.62 1.581 CXMLSoapProcessor::process_SOAP_Body 2.54 1.531 CXMLSoapProcessor::process_SOAP

②全処理時間に占める該当処理の比率

③該当処理の絶対時間

①全処理時間(RPC1000回)

④HTTP文書のヘッダ、ボディ分離。ボディサイズ分の読み 込み。リクエストラインの分離

⑤XML文書のパージング。ドキュメントツリーの作成

⑥開いているコネクションのチェック

⑦新しい接続要求に対して、acceptしてからHTTP処理オ ブジェクト(CHTTPProcessor)を生成

⑧HTTPリクエストラインの中のメソッド、URI、バージョンの 分離

⑨RPCの終了したHTTP処理オブジェクトを消滅、コネク ションクローズ

⑩SOAPのRPC処理。RPCパラメータの分離と処理結果の タグ生成

⑪SOAPとXMLの処理オブジェクトの初期化

⑫HTTPのヘッダフィールドの予約語チェック

⑬socket受信処理

⑭RPCメソッド名の取得、レスポンセスタグの生成

⑮SOAPエンベロープ切出し、名前空間/エンコディングの切出し

User+System Time = 60.35653 Seconds

Exclusive Times

%Time ExclSec Name

8.13 4.905 CHTTPProcessor::read_and_respond 5.69 3.435 XML::Parser::parse

5.25 3.167 XML::Parser::Expat::ParseString 5.24 3.161 CServer::check_open_connection 4.48 2.703 XML::Parser::Expat::setHandlers 4.08 2.465 XML::Parser::Tree::Start 3.97 2.396 CServer::open_new_connection

3.61 2.177 CHTTPProcessor::analyzeRequestHeaderFields 3.60 2.172 CServer::clean_connection

3.30 1.994 CXMLSoapProcessor::process_SOAP_RPC 3.03 1.826 CXMLSoapProcessor::BEGIN

2.87 1.733 CHTTPProcessor::analyzeHeaderFields 2.76 1.667 CServer::recv_socket

2.62 1.581 CXMLSoapProcessor::process_SOAP_Body 2.54 1.531 CXMLSoapProcessor::process_SOAP

②全処理時間に占める該当処理の比率

③該当処理の絶対時間

①全処理時間(RPC1000回)

②全処理時間に占める該当処理の比率

③該当処理の絶対時間

①全処理時間(RPC1000回)

④HTTP文書のヘッダ、ボディ分離。ボディサイズ分の読み 込み。リクエストラインの分離

⑤XML文書のパージング。ドキュメントツリーの作成

⑥開いているコネクションのチェック

⑦新しい接続要求に対して、acceptしてからHTTP処理オ ブジェクト(CHTTPProcessor)を生成

⑧HTTPリクエストラインの中のメソッド、URI、バージョンの 分離

⑨RPCの終了したHTTP処理オブジェクトを消滅、コネク ションクローズ

⑩SOAPのRPC処理。RPCパラメータの分離と処理結果の タグ生成

⑪SOAPとXMLの処理オブジェクトの初期化

⑫HTTPのヘッダフィールドの予約語チェック

⑬socket受信処理

⑭RPCメソッド名の取得、レスポンセスタグの生成

⑮SOAPエンベロープ切出し、名前空間/エンコディングの切出し

図2.3  Webサービス実行処理のプロファイル

リストに登場せず,またrecv/send処理も3%以下である.

図2.4は,3大階層のそれぞれについて,その処理比率を示したものである.

Web サービス階層の処理が9割近くを占めていることがわかる.特に,リクエ ストメッセージの解析処理,すなわち,各種のテキストレベルのメッセージ処 理(HTTP,XML,SOAPの解析)が,大きな負荷を占めていることがわかる.

(29)

0%

50%

100%

処理比率

通信プロトコル階層 及び物理階層

Webサービス階層 WSリクエスト系

SOAP XML HTTP の解析 WSレスポンス系

通信系

0%

50%

100%

処理比率

通信プロトコル階層 及び物理階層

Webサービス階層 WSリクエスト系

SOAP XML HTTP の解析 WSレスポンス系

通信系

図2.4  Webサービス処理の処理負荷構成

図2.5に,クライアント数を増加させた場合のサーバでの処理時間の変化示 す.通信プロトコル階層の処理時間の増加はあるものの,その変化量は5%程 度でありさほど大きくないため,Web サービス階層で処理時間の大きな比率を 占めるという状況は変化しない.

処理時間の絶対値で見ると,1回あたりのサービス時間は約60m秒であるこ とがわかる.組込み用CPUとしては比較的性能が良いもの(240MHz動作)で あっても,大きな時間がかかっていることがわかる.先に記したように,現在 は単一パラメータのSOAP-RPC 処理のみだが,より複雑なRPCの場合を想定 すると,処理時間は一層増加することが予想される.また,メモリの必要量に 関しては次節に述べるが,そこで示されるような大きな容量のメモリを確保で きない場合には,データスワップなどにより処理時間はさらに大きくなると考 えられる.

(30)

50 55 60 65 70

0 1 2 3 4 5 6 7 8 クライアント数

実行時間(mSec)

9 50

55 60 65 70

0 1 2 3 4 5 6 7 8 クライアント数

実行時間(mSec)

9

図2.5  クライアント数の増加に対する処理時間の変化 

本研究が対象とする応用を考えた場合,上記の実装で用いたシステムより2 桁〜3桁性能が低いコンピュータでWebサービスを実現しようとすれば,数百 ミリ秒〜数10秒という大きな時間を要してしまう.ノード本来のサービス処 理を含めないWebサービスのためだけにかかる時間としては非常に大きく,実 用に際して大きな障害となる.

2.3.3  メモリ使用量に関する評価 2.3.3.1  評価対象と方法

メモリ使用量に関する分析の目的は,既存技術を用いて最低限のWebサービ ス機能を実行しようとする場合に,どの程度の容量のメモリを必要とするかの 知見を得ることにある.現在のWebサービス提供環境として比較的自然な実装 をした上で,できるだけリソースを減らした構成でのメモリ使用量が判断でき る.

なお,メモリ使用量の測定に際しての実行条件は,先に性能分析のところで 述べたものと同一の条件で行った.

(31)

2.3.3.2  評価結果と考察

図2.6にメモリ使用量の計測結果を,時系列の形で示す.なお,socket処理 でのバッファサイズは8Kバイトとしてある.

計測結果の要点を以下にまとめる.

1)プログラム起動直後の消費実メモリ量は,約2.5Mバイトである.

2)ネットワーク処理(socket)の準備に必要な実メモリ量は,約1.1Mバイト である.

3)一つのコネクションあたりに必要な実メモリ量は,約0.1Mバイトである 4)サービスの提供に必要な総実メモリ量は,約3.7Mバイトである

メモリの必要量という観点で見ると,複数のクライアント(10アクセス以 下)からの接続がある状況でも,およそ 4M バイトがあればよいことになる.

この値は,Web サービスを提供するノード開発時のシステム設計における一つ の目安として利用することが可能である.ただし,やはりこのようなメモリ容 量は,本研究が狙っているアプリケーションに対しては,コスト的な制約から は搭載することが難しいものである(例えば,8bit 級以下の超小型コンピュー タにおいては,最大でも数十Kバイト〜数百Kバイト以下のRAMが一般的で ある).

(32)

2.544

3.600 3.604 3.736

0.0 1.0 2.0 3.0 4.0 5.0

プログラム 起動直後

socket 準備完了後

コネクション 完了後

サービス 提供中 (MB)

2.544

3.600 3.604 3.736

0.0 1.0 2.0 3.0 4.0 5.0

プログラム 起動直後

socket 準備完了後

コネクション 完了後

サービス 提供中 (MB)

図2.6  メモリ使用量の時間変化 

2.3.4  通信量に関する評価 2.3.4.1  評価対象と方法

通信量に関する評価の目的は,データ量がどの程度肥大化するのか,また,3 大階層(さらにはより詳細な階層)のどの部分でデータの肥大化が著しいかに ついての知見を得ることである.データの肥大化は,複数のノードを持つシス テム内でのノード間データ転送に影響を与え,システムの性能や運用性に大き く関係する.したがって,ここでは,その原因を探る.

先の性能/メモリ使用量評価で用いたRPCと同一のSOAPレスポンスメッセ ージを対象に,データの肥大化を分析した.最上位のSOAP 層から一つずつ降 りていく形でデータを積み上げ,最終的にどの程度肥大化するかを調べた.

データの肥大化とは具体的には,SOAP 層,XML 層,HTTP 層まで(Web サービス階層)は,テキストによるドキュメントデータ構造の付加やヘッダの 付加である.次に,TCP層,IP層まで(通信プロトコル階層)とLink層(物 理階層)では,ヘッダとトレイラが付加されることを意味する.物理階層では,

高速系のインタフェースになどにおいては,実際にはビットスタッフィング,

8B/10B(4B/5B)変換,プリアンブルなどさらにデータ肥大化の要素が加わる

(33)

表 2.2  各階層におけるデータサイズの増大(単位:bit)

階層 ヘッダ サイズ

データ サイズ

トレイラ サイズ

SOAP 3232 128 0

XML 368 3360 648

HTTP 1992 4376 0

TCP 160 6368 0

IP 160 6528 0

Ether 112 6688 32

合計 6832(コア占有率128 / 6832 = 1.9%)

が,これらはここでの見積もりから除外してある.

2.3.4.2  評価結果と考察

評価結果について表2.2に示す.表2.2では,テキスト数16のデータ(16 桁の数量データ16バイト相当)を送る場合に,各階層別に前節で示したデータ の積み上げを行い,最終的にデータがどの程度肥大化するかを示している.送 ろうとしているデータをコアデータと呼ぶことにすれば,データ数が1の場合,

コアデータの全体データに占める比率はわずか 1.9%に過ぎないことがわかる.

データの肥大化という見方をすれば,約53倍にデータがふくれあがる.

ただし,これは単一データだけをやりとりするRPCであって,最も効率の悪 い場合である.効率の向上を行おうとした場合に,複数のデータをセットの形

(34)

0.0 0.2 0.4 0.6 0.8 1.0

0 100 200 300

データ占有率

セット内データ数 0.0

0.2 0.4 0.6 0.8 1.0

0 100 200 300

データ占有率

セット内データ数

図2.7  コアデータ占有率とデータ数の関係)

でまとめてやりとりするケースも想定される.図2.7は,セット内データ数を

1〜256まで増加させたときの様子を示している.先の単一データの場合と比べ

て,データの肥大化率は大きく抑制されている.しかしデータ数が増加するに つれやがて飽和し,最終的に肥大化率は約3倍程度になる.

図2.7においてセット内データの数が小さい部分に着目した場合,データ数 が16以下ではコアデータの占有率は16%以下である.このようなケースは実際 によく利用される領域と考えられるが,これでも 6 倍以上に肥大化することが わかる.

図2.8は階層別に見たときにデータの肥大化がどこで著しく生じているか を示している.単一データレスポンスの場合には,SOAP,XML,HTTP 層で のデータ肥大化が著しい.また,セット内データ数256の場合にはSOAPとXML 層での肥大化が大きいことがわかる.いずれにしても,データ肥大化の原因の ほとんどはWebサービス階層であることがわかる.

(35)

0%

20%

40%

60%

80%

100%

単一データ 256データ

Ethernet IP TCP HTTP XML SOAP コアデータ コア

SOAP XML

HTTP

SOAP

XML

0%

20%

40%

60%

80%

100%

単一データ 256データ

Ethernet IP TCP HTTP XML SOAP コアデータ コア

SOAP XML

HTTP

SOAP

XML

図2.8  コアデータ占有率とデータ数の関係

以上をまとめると,次のようになる.

1)  システムを構築した場合にノード間のデータ転送量を削減するために は,できるだけ大きな単位をセットにしたレスポンスメッセージを構成する ことが望ましい.しかし,これでもデータは3倍に肥大化する.

2)  実際の応用で少量のデータでレスポンスメッセージを返送しなければ ならないケースも多々あると考えられるが,その場合にはデータの肥大化率 は6倍から53倍にもおよぶ.

3)  肥大化の主たる原因は Web サービス階層にある.したがってデータの 肥大化を抑制しようとした場合に,最も効果をあげられるのは Web サービ ス階層に対する改善である.

さて,データ肥大化率に関してかなり大きな結果となることを示したが,こ こでは注意も必要である.つまり,コアデータと呼んでいるものだけが SOAP メッセージの運んでいる情報ではないということである.例えば名前空間やエ

(36)

ンコーディングなどの情報(スキーマ情報)もSOAP メッセージの中には一緒 に埋め込まれている.つまり,上述の比較は,この情報が欠落しているコアデ ータとの比較を行っているために,このような程度の大きい肥大化として見え ている.また,本例では関係なかったが,SOAP ヘッダを用いる場合には,そ こにはアプリケーション固有の追加情報として,トランザクション情報(リク エスト・レスポンスの対の情報など)やセキュリティ情報なども含まれる.全 く同一条件で比較するには,これらを考慮しなければならない.

しかしながら,プロプライエタリ(クローズド)な専用システムの場合には,

このような名前空間やエンコーディングの情報があらかじめ理解済みとして不 必要である.したがって,このようなプロプライエタリな専用システムとの比 較といった見方をすれば,先の肥大化率の評価結果は妥当なものであると言え る.つまり,クローズドなシステムとも競争できるオープンな統合システムを Webサービスという手段を使って構築しようとすれば,上述の肥大化は大きな 課題であると言える.また,クローズドで短命なシステムと比較して,オーブ ンかつ長命なシステムのメリットは大きいため,データ肥大化率に関する課題 を解決することはやはり重要である7

2.4  結論

Webサービスのプリミティブ化を実現する上での課題を整理するために,そ こで用いられるテクノロジスタックを整理した.さらに,比較的リソースが限 定された組込みボード上にWebサービス単独の機能を実装し,処理性能,メモ リ使用量,通信データ量について定量的な解析を行った.

その結果,処理性能に関しては,本研究の対象とするアプリケーションで利 用される超小型のコンピュータを用いた場合には,実用的な性能が得られない

7 XMLに関して通信されるデータサイズの縮小を含めてバイナリXMLの取り組みもW3C で行われている.ただし,バイナリ化してもデータの構造解析や処理では本質的になんら かの記号の解析が必要になる.

(37)

ことが明らかとなった.また,これら性能における問題の原因は,Web サービ ス階層での処理が主たる要因となっていることが明らかとなった.

次に,メモリ使用量に関しては,約 4M バイトの実メモリを下限として動作 可能であることがわかった.しかし,このような容量のメモリを搭載すること は超小型のコンピュータシステムでは難しいため,実装にあたって大きな問題 となることが明らかとなった.

最後に,通信データ量に関しては,一般に肥大化率は3〜50倍におよぶこと が明らかとなった.肥大化率を抑制するためには,できるだけ大きな単位でレ スポンスメッセージを構成することが望ましい.しかし,実際によく利用され ると考えられるセット数16以下の場合では,肥大化率は6倍程度より小さくは できない.データ肥大化に関して階層別に見た場合では,やはりWebサービス 階層での肥大化率が著しいことがわかった.

プリミティブ化に向けた総合的な意味での改善を考えると,処理性能や通信 データ量の観点からもWebサービス階層での対策が最も効果的である.したが って,各種の問題を解決するためには,Web サービス階層での新しい技術開発 が必要であると考えられる.

参考文献

[1] R. Fielding, J. Gettys, J. C. Mogul, H. Frystyk, T. Berners-Leee,

“Hypertext Transfer Protocol – HTTP 1.1,” RFC2616, W3C/MIT, 1999.

[2] K. Washburn and J. Evans, “TCP/IP: Running a Succesful Network,”

Addison-Wesley Publishing Company, 1993.

[3] OASIS WSRM TC, “WS-Reliability Ver1.1,” http://www.oasis-open.org/

specs/ index.php#wsrv1.1, 2004.

[4] Sun Microsystems, Inc., Java API for XML Processing, (JAXP1.3) specification, 2004.

(38)

[5] http://msdn.microsoft.com/XML/

表 2 . 1  ベースシステムの構成 CPU/RAM(server) SH4(240MHz)/32MB  OS CELinux  (2.4.20)  HTTP  独自実装 XML XML::Parser  (expat*)  SOAP  独自実装 ネットワーク TCP/IP, Ethernet, 10Mbps  参考:client  CPU/RAM  Pentium4(2.99GHz)/1GB
図 2.2  Web サービスのベースシステム  させた上で,これに対しプロファイラを用いたボトルネック解析を行った.メ モリ使用量に関しては, Web サービスのプログラム実行中に ps コマンドを発行 して,動作中の複数のタイミングでのメモリ使用量を測定した.また通信量に 関しては, Web サービスを SOAP メッセージに載せて転送する場合のデータ量 の肥大化について評価した. 2
表  2.2  各階層におけるデータサイズの増大(単位:bit)  階層 ヘッダ サイズ データサイズ トレイラサイズ SOAP 3232  128  0  XML 368  3360  648  HTTP 1992  4376  0  TCP 160  6368  0  IP 160 6528  0  Ether 112  6688  32  合計 6832(コア占有率 128 / 6832 = 1.9%) が,これらはここでの見積もりから除外してある.     2
図 B 1  システム全景
+2

参照

関連したドキュメント

-4.12 trillion -0.28 trillion -1.60 trillion -0.01 trillion -0.25 trillion -8.72

[r]

EC における電気通信規制の法と政策(‑!‑...

電気第一グループ 電気第二グループ 電気第三グループ 電気第四グループ 計装第一グループ 計装第二グループ 情報システムグループ ※3

[r]

 電気通信事業  :  スピードネット㈱,東京通信ネットワーク㈱,㈱パワードコム   有線テレビジョン放送事業  : 

今までの少年院に関する筆者の記述はその信瀝性が一気に低下するかもしれ

電気第一グループ 電気第二グループ 電気第三グループ 電気第四グループ 計装第一グループ 計装第二グループ 計装第三グループ