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

リアルタイム通信向け ネットワークコンピューティング技術の研究

N/A
N/A
Protected

Academic year: 2021

シェア "リアルタイム通信向け ネットワークコンピューティング技術の研究"

Copied!
147
0
0

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

全文

(1)

リアルタイム通信向け

ネットワークコンピューティング技術の研究

Network Computing Technologies for Real-time Communication Systems

2005 12

早稲田大学大学院情報生産システム研究科

情報生産システム工学専攻 知能化ネットワーク研究

山田 哲靖

(2)
(3)

目 次 i

目 次

1 序論 1

1.1 背景と目的 . . . . 1

1.2 要求条件と課題 . . . . 1

1.3 論文の構成と各章の概要 . . . . 2

1.3.1 第2章の概要 . . . . 2

1.3.2 第3章の概要 . . . . 3

1.3.3 第4章の概要 . . . . 3

1.3.4 第5章の概要 . . . . 3

1.3.5 第6章の概要 . . . . 4

1.3.6 第7章の概要 . . . . 4

2 交換システムにおけるソフトウェア技術 5 2.1 要求条件. . . . 5

2.2 レイヤ階層ソフトウェア構造. . . . 6

2.2.1 レイヤ構造 . . . . 6

2.2.2 サービスレイヤ . . . . 6

2.2.3 リソースレイヤ . . . . 6

2.2.4 実行制御. . . . 6

2.3 通信システムモデル . . . . 8

2.4 サービスレイヤ . . . . 8

2.4.1 サービスレイヤの機能 . . . . 8

2.4.2 サービスレイヤののハードウェア非依存性 . . . . 8

2.4.3 S2インタフェース . . . . 10

2.4.4 サービスレイヤのオブジェクトモデル . . . . 10

2.5 リソースレイヤ . . . . 10

2.5.1 リソースレイヤの機能 . . . . 10

2.5.2 リソースレイヤの構造 . . . . 11

2.5.3 サービスレイヤとの共通的機能 . . . . 11

2.6 実行制御レイヤ . . . . 11

2.6.1 CHILLランタイムルーチンによる実行制御 . . . . 12

2.6.2 シグナル通信機構. . . . 12

2.7 呼救済 . . . . 14

2.7.1 コールデータ . . . . 14

2.7.2 コールデータを元にした呼救済処理 . . . . 14

2.7.3 コールデータとしてのプロセスID . . . . 15

2.7.4 救済呼の判定論理. . . . 15

2.7.5 タスクの再生成とプロセスIDの保持 . . . . 15

2.7.6 シグナルの保持 . . . . 15

(4)

2.7.7 異常プロセスの消去 . . . . 15

2.7.8 呼救済処理のまとめ . . . . 16

2.8 到達点 . . . . 16

2.8.1 呼処理性能 . . . . 16

2.8.2 呼救済処理 . . . . 16

2.8.3 生産性 . . . . 18

2.9 残課題 . . . . 18

2.9.1 汎用分散機構 . . . . 18

2.9.2 オープンなAPI . . . . 18

2.9.3 マルチプラットフォームでの信頼性 . . . . 18

2.9.4 マルチプラットフォームでのリアルタイム性 . . . . 18

2.10 結言 . . . . 19

3 リアルタイム分散機構の実現技術 20 3.1 研究の背景 . . . . 20

3.2 要求条件. . . . 21

3.2.1 階層化構造 . . . . 21

3.2.2 プラットフォームの機能 . . . . 21

3.2.3 ソフトウェアコンポーネント . . . . 21

3.2.4 分散オブジェクト指向実現のための要求条件 . . . . 21

3.2.5 CORBAの機能要素 . . . . 24

3.2.6 リアルタイム通信システムでの要求条件 . . . . 24

3.3 オブジェクトのモデル化 . . . . 25

3.3.1 ソフトウェアコンポーネントのCORBA機能要素へのマッピング . . . . 25

3.3.2 リアルタイム通信システムの観点からのマッピング . . . . 27

3.4 要求条件実現のための機構 . . . . 28

3.4.1 シングルモジュールとマルチモジュールでのオブジェクト間通信. . . . 29

3.4.2 シングルモジュールでのオブジェクトの配置 . . . . 29

3.4.3 モジュール間でのオブジェクトリファレンスの変換 . . . . 29

3.4.4 システム拡張 . . . . 29

3.4.5 呼救済 . . . . 30

3.5 オブジェクトの配置 . . . . 31

3.5.1 考慮点 . . . . 31

3.5.2 オブジェクトのインストール . . . . 31

3.6 評価 . . . . 32

3.6.1 ORB処理の負荷 . . . . 32

3.6.2 スタブの処理負荷評価 . . . . 32

3.6.3 ORBコアの処理負荷評価 . . . . 32

3.6.4 オブジェクトアダプタとスケルトンの処理負荷評価 . . . . 34

3.7 結言 . . . . 34

(5)

目 次 iii 4 オープンなソフトウェア構造におけるサービス継続技術 35

4.1 研究の背景 . . . . 35

4.1.1 次世代ネットワークアーキテクチャの動向 . . . . 35

4.1.2 次世代ネットワークの標準化— MSF. . . . 36

4.1.3 次世代ネットワークの標準化— IPCC . . . . 37

4.1.4 ソフトスイッチ . . . . 38

4.2 ソフトスイッチにおけるプロトコル技術 . . . . 38

4.2.1 セッション制御プロトコル. . . . 38

4.2.2 メディアゲートウェイ制御プロトコル . . . . 38

4.3 ソフトスイッチにおけるソフトウェア技術 . . . . 38

4.3.1 オープンAPI . . . . 38

4.3.2 Javaの適用 . . . . 39

4.3.3 コンポーネント技術 . . . . 39

4.4 オープンAPIの標準化動向 . . . . 39

4.4.1 JAIN . . . . 39

4.4.2 Parlay . . . . 40

4.5 要求条件. . . . 41

4.6 キーとなる技術 . . . . 41

4.6.1 階層型分散ネットワークアーキテクチャ . . . . 41

4.6.2 オープンAPI . . . . 41

4.7 オープンAPI技術 . . . . 43

4.7.1 JAIN API . . . . 43

4.7.2 コンフォーマンス検証技術. . . . 43

4.7.3 高性能なAPIの実装 . . . . 43

4.8 高信頼化技術 . . . . 43

4.8.1 前提とする呼処理モデル . . . . 44

4.8.2 呼救済処理 . . . . 44

4.8.3 無中断プログラム入れ換え. . . . 45

4.8.4 浮きリソースの解放 . . . . 46

4.9 評価 . . . . 48

4.9.1 呼処理性能 . . . . 48

4.9.2 呼救済時間の評価. . . . 49

4.9.3 オンデマンド呼救済処理方式 . . . . 50

4.10 結言 . . . . 51

5 マルチプラットフォームでの高信頼化技術 52 5.1 研究の背景 . . . . 52

5.2 要求条件. . . . 53

5.2.1 ネットワークアーキテクチャ . . . . 53

5.2.2 CAのソフトウェアプラットフォーム . . . . 53

(6)

5.3 リアルタイム性に関する要件. . . . 55

5.3.1 通信ノードに対するリアルタイム性の要件 . . . . 55

5.3.2 リアルタイムJava . . . . 57

5.3.3 サービス中断のないプログラム修正の要求 . . . . 57

5.4 既存の部分プログラム入れ換え技術 . . . . 58

5.4.1 クライアントPCの場合 . . . . 58

5.4.2 通信システム(交換機) . . . . 58

5.4.3 J2EEの場合 . . . . 60

5.4.4 ルータの場合 . . . . 60

5.4.5 Linuxのプラグイン. . . . 62

5.4.6 既存の機構のまとめ . . . . 62

5.5 Javaオンラインプラグイン機構 . . . . 62

5.5.1 基本的な手順 . . . . 63

5.5.2 Javaオンラインプラグインファイルのインストールと切替え . . . . 63

5.6 Javaオンラインプラグイン特有の課題 . . . . 65

5.6.1 GCに関して . . . . 65

5.6.2 動的バインディング、動的クラスロードに関して . . . . 65

5.6.3 実行時コンパイラに関して. . . . 65

5.6.4 インライン展開の取り扱い. . . . 66

5.6.5 スタティックデータの変更方法 . . . . 68

5.6.6 初期設定処理 . . . . 69

5.6.7 安全なオペレーション . . . . 69

5.7 適用性の評価 . . . . 70

5.7.1 ポインタの扱い . . . . 70

5.7.2 修正対象プログラム中での処理中断 . . . . 70

5.7.3 無限ループへの対応 . . . . 71

5.7.4 インライン展開への対応 . . . . 71

5.7.5 スタティックデータの修正への対応 . . . . 71

5.8 メモり使用量および性能の評価 . . . . 71

5.8.1 メモり使用量の評価 . . . . 71

5.8.2 デバッグモードでのパフォーマンス . . . . 73

5.8.3 プラグイン処理自体の性能への影響 . . . . 76

5.9 結言 . . . . 77

6 マルチプラットフォームでのソフトリアルタイム技術 78 6.1 研究の背景 . . . . 78

6.1.1 Java言語の必要性 . . . . 80

6.1.2 Java言語の性能に対するこれまでのアプローチ . . . . 80

6.2 要求条件. . . . 80

6.3 動的コード再配置技術 . . . . 85

(7)

目 次 v

6.3.1 概要 . . . . 85

6.3.2 プロファイリング. . . . 86

6.3.3 メソッド再配置 . . . . 86

6.3.4 低呼出頻度メソッドの除外. . . . 89

6.3.5 再コンパイル . . . . 89

6.3.6 メソッド分割 . . . . 89

6.3.7 例外処理関係の制御フロー. . . . 92

6.3.8 クラス階層解析によるインライン展開 . . . . 92

6.3.9 コード生成フェーズ . . . . 94

6.4 動的コード再配置技術の簡易ベンチマークによる評価 . . . . 94

6.5 動的コード再配置技術の大規模なアプリケーションでの評価 . . . . 97

6.5.1 ベンチマークアプリケーション . . . . 97

6.5.2 動的コード再配置の度合い. . . . 98

6.5.3 性能向上度合い . . . . 99

6.6 ガーベジコレクション技術 . . . . 99

6.6.1 世代別ガーベジコレクション . . . . 99

6.6.2 スレッドローカルヒープ . . . . 101

6.7 動的データ配置技術 . . . . 101

6.7.1 動的データ配置技術概要 . . . . 101

6.7.2 頻度別割当の方法. . . . 102

6.7.3 頻度別ヒープの指定方法 . . . . 103

6.7.4 頻度別割当により期待される効果 . . . . 104

6.8 動的データ配置技術のマイクロベンチマークによる評価 . . . . 104

6.8.1 マイクロベンチマークの動作 . . . . 104

6.8.2 マイクロベンチマークの実行環境 . . . . 105

6.8.3 マイクロベンチマークによる評価 . . . . 106

6.9 動的データ配置技術のJPEベンチマークによる評価. . . . 108

6.9.1 大規模リアルタイム通信システムの挙動 . . . . 108

6.9.2 JPEベンチマークの動作 . . . . 108

6.9.3 VTuneによる特性解析 . . . . 109

6.9.4 トレース情報の収集 . . . . 110

6.9.5 ホット/コールド判定の閾値の分析 . . . . 110

6.9.6 オブジェクト中のアクセス領域の比率 . . . . 112

6.9.7 割当サイト毎のオブジェクトアクセス回数の分析 . . . . 112

6.10 動的データ配置技術による性能改善度合の評価. . . . 113

6.11 結言 . . . . 114

(8)

7 結論 117

7.1 リアルタイムソフトウェア分散機構の実現技術. . . . 117

7.2 オープンなソフトウェア構造におけるサービス継続技術 . . . . 117

7.3 マルチプラットフォームでの高信頼化技術 . . . . 118

7.4 マルチプラットフォームでのソフトリアルタイム技術 . . . . 118

8 謝辞 135 A プラグイン機構の商用システムにおける適用性評価 136 A.1 プログラム修正の種別 . . . . 136

A.2 問題の発生するケース . . . . 137

(9)

1

1 序論

関連論文[1–22]

1.1 背景と目的

近年の、特にプロセッサを中心としたコンピュータハードウェア技術の進展は、従来、専用ハード が必要であった領域を汎用コンピュータで代替できる可能性を広げている。また、ハードウェア技術 の進展は、ソフトウェアの機能性という点でもメリットをもたらしている。旧式のハードウェアで は、性能やメモリ量の制約から不可能であったソフトウェア処理が、今や可能となっている。例え ば、現在では、ソフトウェアのポータビリティを向上させるための仮想ハードウェアインタフェー スが利用可能である。

これらの流れは、ソフトウェアの生産性、流通性の点で大きなメリットをもたらすものである。ソ フトウェアがさらにパッケージ化、プラットフォーム非依存化が進められることで、ソフトウェア 開発リソースはサービス高度化のために振り向けられることになり、高度情報化社会の発展を加速 させる方向に向かうであろう。

一方、従来の交換機に代表されるようなリアルタイム通信システムにおいては、専用ハードと専 用OSをベースとしたシステム構築により、リアルタイム性、高信頼性を実現してきた。このよう なミッションクリティカルなマス向け通信システムの領域においては、ソフトウェアの実行環境を 汎用コンピュータに置き換えただけでは、要求品質を満たすことができない。そのため、リアルタ イム性、高信頼性を、汎用コンピュータ上で実現する技術が新たに求められる。

このような背景の下で、本論文は、ミッションクリティカルなマス向け通信システムに対し、汎 用コンピュータ、汎用OSを適用した上で、従来並のリアルタイム性と高信頼性を実現するソフト ウェア技術を明らかにしている。具体的には、インタオペラビリティを確保しつつ、リアルタイム かつ高信頼な分散オブジェクト間通信を実現するソフトウェア分散機構の実現方法を明らかにする

(課題1)。ソフトウェアの階層構造や、アプリケーションの第三者による開発に対応し、階層間の独

立性を高めた上で高信頼化を実現する技術を明らかにする(課題2)。ノンストップでプログラムを 動かし続けるためにあらゆるバグフィックスをシステム運用中に行うための高信頼化技術について 明らかにする(課題3)。最後に、マルチプラットフォーム環境におけるソフトウェア性能の向上技 術について明らかにする(課題4)。

さらに、本論文では、ソフトウェア工学的観点から、言語、OSといったソフトウェア開発環境、

実行環境についても現実のものに即した実現手法を提案する。そして、プロトタイプによる評価結 果を併せて報告することで、提案するソフトウェア技術の実現性と有効性を明らかにする。これに より、提案技術が、今後のリアルタイム通信システムの中核技術として利用可能な実用的技術であ ることを示す。

1.2 要求条件と課題

ミッションクリティカルなマス向け通信システムに対し、汎用コンピュータ、汎用OSを適用した 上で、従来並みのリアルタイム性と高信頼性を実現するために、通信ソフトウェアに要求される条

(10)

件と課題について本節で述べる。

(1) 交換機においては、専用の通信機構により、分散ハードウェア構成に対応してきた。しかし、

汎用コンピュータを組み合わせた分散構成においては、インタオペラビリティを確保しつつ、

リアルタイムかつ高信頼な分散オブジェクト間通信技術が必要である。

(2) 交換機においては、専用的なソフトの作り込みにより、呼救済等の高信頼化機能を具備してき た。しかし、ソフトウェアの階層構造や、アプリケーションの第三者による開発などを考える と、階層間の独立性を高めた上で高信頼化を実現する技術が必要である。

(3) リアルタイム通信システムにおいては、ノンストップでプログラムを動かし続ける必要があ る。そのためにはあらゆるバグフィックスをシステム運用中に行う必要がある。しかしながら、

現状の技術では予め修正が予想される箇所以外のバグフィックスのためにはシステムをリブー トする必要がある。従って、あらゆる部分のバグフィックスをシステム運用中に行える技術が 必要である。

(4) ハードの変化があっても過去に開発したソフトウェアが使用可能であることが望まれる。その ためには、Javaのような、ハードウェアを高度に仮想化するマルチプラットフォームなソフト 環境が必要である。しかし、仮想化による性能低下は、超多重処理を行なうリアルタイム通信 システムにおいては致命的である。従って、マルチプラットフォーム環境におけるソフトウェ ア性能の向上技術が必要である。

上記のような要求条件を満足するためには、以下に示す5つの通信ソフトウェア技術に関する課 題を検討しなければならない。

課題1 リアルタイム分散機構の実現技術の明確化

課題2 オープンなソフトウェア構造におけるサービス継続技術の明確化 課題3 マルチプラットフォームでの高信頼化技術の明確化

課題4 マルチプラットフォームでのソフトリアルタイム技術の明確化

1.3 論文の構成と各章の概要

本論文では、汎用コンピュータをベースとしたリアルタイム通信向けネットワークコンピューティ ング技術に関する研究成果をまとめたものである。本研究の全体構成を以下に示す。

1.3.12章の概要

リアルタイム通信システムのうち、もっとも要求条件の厳しい部類である交換システムを例に、ソ フトウェアの観点から高性能・高信頼性の実現技術について、これまでの達成点を示している。リア ルタイム通信システムにおけるソフトウェア技術については、これまで数多くの研究がなされてき

(11)

1.3. 論文の構成と各章の概要 3 ている。例えば、ソフトウェア生産性向上のためにはオブジェクト指向技術を採り入れたり、サー ビス無中断でのバグ修正のための機構を専用で開発したりしてきた。本論文では、リアルタイム通 信ソフトウェアへの要求条件を整理し、その実現のためにソフトウェア階層の各部において適用さ れている技術をまとめるとともに、従来技術の到達点として、呼処理性能、呼救済処理、生産性に ついて総括する。

従来技術は専用ハードウェアの機能を最大限に活用してリアルタイムかつ高信頼なシステムを作 り上げることを目的としたものであった。本章で総括するように、これまでこれまでに提案されて きたソフトウェア技術では汎用コンピュータベースのリアルタイム通信システム実現という要求条 件に応えることが出来ないことを明らかにするとともに、第1章で述べた課題の妥当性を示す。

1.3.23章の概要

ここでは、課題1に関し、リアルタイム通信システムに適用可能なソフトウェア分散機構の実現 手法について明らかにする。リアルタイム性を要求されるシステムにおいて、汎用の分散機構を利 用する技術として、高速オブジェクト間通信のための機構を提案する。具体的には、リアルタイム 通信システムの機能要素を分散オブジェクトにマッピングする方法、分散構成を隠蔽する通信機構 の実現方法、リアルタイム通信のための処理負荷低減技術について明らかにしている。また、実運 用のために必要な機構として、システムの拡張技術、サービス救済のための機構について提案する。

さらに、性能条件の厳しいプロトコルの例として共通線(SS7)処理を題材とした適用例と性能評 価結果を提示することで、提案技術の実現性と有効性を示す。

従来、リアルタイム性能を要求されるオブジェクト間通信にインタオペラビリティのある機構を 適用した例はなく、筆者が世界で初めて提案したものである。また、ここで提案するオブジェクト 間通信技術は、アプリケーションレベルの通信だけではなく、性能条件の厳しいプロトコル処理に も適用可能であることから、広い適用先が期待できる。

1.3.34章の概要

ここでは、課題2に関し、汎用コンピュータをベースとし、ベアラ制御と通信制御を分離したアー キテクチャを実現するための技術を明確化する。このような、新アーキテクチャにおいて要求され るオープンなソフトウェア構造と、その実現技術を明確化する。特に、階層化ソフトウェア構造を 採った場合でも障害発生時のサービス継続性が実現可能な手法を明確化する。

従来、このようなオープンな構造のソフトウェアにおいては、上位アプリケーションのサービス 継続性は考慮されていない。ここで提案するサービス継続技術は、筆者が初めて提案したものであ る。また、この技術は、さまざまなリアルタイム通信サービスに幅広く活用できる。

1.3.45章の概要

ここでは、課題3に関し、マルチプラットフォーム環境であるJavaにおけるノンストップでのソ フトウェアメンテナンスを可能とするオンラインプラグイン技術について明確化する。Javaに代表 されるようなマルチプラットフォーム環境は、ソフトウェアの開発・維持管理コストの大幅削減の

(12)

ために必須な技術であり、今後とも適用領域を広げていくであろう。しかしながら、通信システム の領域にこのような技術を適用するためには、ノンストップでの運用に耐える高信頼性を実現する 必要がある。ここで提案するオンラインプラグイン技術は、Javaプログラムを完全に無停止のまま メソッドを入れ替えるものである。

従来、Javaにおけるメソッド入れ替えは提案されていたが、デバッグ用途のみであり、オンライ ンコンパイラに対応しておらず性能が著しく劣化するものであった。また、異常発生時のロールバッ クができないことから実サービス向けにはてきようできていなかった。ここで提案するJavaオンラ インプラグイン機構は、実サービス向けのソフトウェアメンテナンス機能としては筆者が初めて提 案したものである。また、本技術は通信システムのみならず、ノンストップ性が要求されるデータ ベースサーバ等、幅広い分野で利用可能である。

1.3.56章の概要

ここでは、課題4に関し、マルチプラットフォームを実現するための技術であるJava言語につい て、リアルタイム性能向上技術として、動的コード配置技術と、動的データ配置技術を提案し、そ の実現手法を提示する。具体的には、次の2つの技術を提案している。実行時のプロファイルデー タに基づき、メソッドをメモリ上に最適配置を行なうことでインストラクションキャッシュのヒット 率を向上させる動的コード配置技術、および、生成するオブジェクトを高頻度アクセスヒープと低 頻度アクセスヒープに分離して配置することによりデータキャッシュのヒット率を向上させる動的 データ配置技術である。性能評価結果により本技術の有効性を示している。即ち、従来のマルチプ ラットフォーム環境上で実現できなかった超多重処理を効率よく処理するソフトリアルタイム性を 実現できることを明らかにしている。

ここで提案する2つの技術は、それぞれ単独でも利用できるが、組み合わせての実施も可能であ る。また、本技術における最適化技術は、大規模な通信システムはもちろん、リソースの限られて いる組み込み系のシステムにも応用可能である。

1.3.67章の概要

本論文では、リアルタイム通信システムに適用可能な、ソフトウェア分散機構、オープンなソフ トウェア構造でのサービス継続技術、マルチプラットフォームでの高信頼化技術、マルチプラット フォームでのソフトリアルタイム技術の4つを提案し、これらの提案技術の実装および評価を通じ て、それらの実現性を検証した結果について、総括する。さらに、本研究が汎用コンピュータをベー スとしたリアルタイム通信向けネットワークコンピューティング技術の構築に果たす役割を述べる。

(13)

5

2 交換システムにおけるソフトウェア技術

関連論文[4–18]

本章では、交換機の最新のソフトウェアアーキテクチャについて述べるとともに、実際のシステ ム開発での適用例について述べる。対象システムとして、ここではSTM, ATM, IN等の電話系の基 幹システムを例にとって議論を進める。

ここで示すソフトウェアシステムアーキテクチャは、保守性と拡張性を狙いとし、階層構成を採っ ている。高信頼化を達成するため、ソフトウェア実行環境としてCHILLランタイムルーチン(CHILL RTR)が適用されている。階層的ソフト構造は、迅速なサービス提供、コスト削減、ソフトウェア の各階層の独立開発を可能とする[12]。

CTRONカーネルのようなリアルタイムOSと、CHILL RTRの組合せにより、リアルタイムパ

フォーマンスと高信頼、高生産性を達成することができた。また、CHILL RTRの適用は、呼救済 時間の削減を実現した。

2.1 要求条件

電話サービスは、社会のライフライン的な役割を担っており、電話サービスを提供するネットワー ク機器のシステム障害の影響は甚大なものとなる。

さらに、通信システムの全国展開を考えると、さまざまなトラヒック量に対応できるものでなけ ればならない。

上記の要求条件から、高信頼、高拡張性、高生産性、ソフトウェアの維持管理コストが低く、サー ビス機能追加が迅速に行なえる、高性能なリアルタイム通信システムが求められる。

ここで、要求条件を整理する。

高生産性と低維持管理コスト

サービス追加や変更が頻繁に発生しても、ソフトウェアの高生産性と低維持管理コスト を維持する必要がある。

拡張性

システムアーキテクチャは、小規模から大規模までのレンジをカバーするものでなけれ ばならない。

リアルタイム処理

一般的な構成のCPUを用ながらも、数千アーランにおよぶ呼処理をこなす性能が必要で ある。

高信頼

仮にシステムがダウンしても、安定状態の呼は、コールデータと呼ばれる呼状態を保存 したメモリの内容から復旧できる必要がある。

(14)

筆者は、上記の要求を満たすシステムとして、アナログPOTS、ナローバンドISDN、ATM(ブ ロードバンドISDN含む)、IN等のリアルタイム通信システムを開発に携わってきた。

上記のシステムは、リアルタイムオペレーティングシステム(リアルタイムOS)を使用し、階層 化されたソフトウェア構造を採っている[9, 16]。

まずは、リアルタイムソフトウェア構造について見ていく。キー技術としては、レイヤ階層を採っ たソフトウェア構造 [15, 23, 24] と、アプリケーション実行環境であるCHILLランタイムルーチ ン [25, 26]である。

2.2 レイヤ階層ソフトウェア構造

レイヤ階層ソフトウェア構造(layerd hierarchical software structure)は、良論理構造の通信ソフ トウェアを開発するために必要な技術である。

レイヤ構造は、ソフトウェアを各レイヤ毎に独立に開発可能とし、最終的にはソフトウェア生産 性を高めることになる[7]。

2.2.1 レイヤ構造

本技術におけるレイヤ構造は、サービスレイヤ、リソースレイヤ、そして実行制御レイヤの3ソ フトウェアレイヤからなる(図 1) [12, 14, 27–33]。

2.2.2 サービスレイヤ

サービスレイヤ(service layer)は、サービスロジックを実行する。また、サービスロジック実行 に必要な、サービス分析の機能も具備する。

2.2.3 リソースレイヤ

リソースレイヤ(resource layer)は、サービス記述のためのS2インタフェースを提供する。S2イ ンタフェースによって、ハードウェアやシステム依存の情報を隠蔽することで、サービスレイヤに おける、メディア種別に依存しないソフトウェア開発を可能とする。

2.2.4 実行制御

実行制御レイヤ(execution control layer)は、S1インタフェースを提供する。S1インタフェース は、プロセッサや通信系ハードの詳細を隠蔽し仮想化する。ハードウェアの仮想化により、プロセッ サや通信系ハードの進化に応じたハードウェア変更を可能とする。

ここではリアルタイムOSとしてCTRONカーネル[33–36]を適用した場合の検討を示す。

信頼性と生産性向上のため、CHILLランタイムルーチン(CHILL RTR)をCTRONカーネル上 に実装した。CHILL RTRは、アプリケーションの実行制御を行なうものであり、アプリケーショ ンに対し、CTRONカーネルインタフェースを隠蔽する。

(15)

2.2. レイヤ階層ソフトウェア構造 7

Services and C al l C o nt ro l

R eso u rces and C o nnect io n C o nt ro l

V irt u al M ach ine N et w o rk / N o de/ M o du l e W ide

C o nt ro l and A ddress Sp ace

N o de/ M o du l e W ide C o nt ro l and A ddress Sp ace

M o du l e W ide C o nt ro l and A ddress Sp ace

O A & M So f t w are

O A & M So f t w are

O A & M So f t w are Service L ay er

R eso u rce L ay er

E x ecu t io n C o nt ro l L ay er S2

S1

図 1: 交換機の論理的なレイヤ

(16)

CHILL RTRはCTRONカーネルに加え、以下の機能を提供する。

(1) 並列オブジェクトが同一論理メモリ空間に存在する場合、その間でのメッセージ通信をスタッ ク間の直接コピーにて実現する。直接コピー方式により、中間バッファへのコピーオーバヘッ ドを削減する。

(2) システムが再起動した場合でも、プロセスの識別子(プロセスID)は変更しない。プロセスID の保持機能により、旧プロセスIDをそのまま使った高速な呼救済処理が可能となる。

(3) プロセッサ間通信機能を提供する。同一プロセッサ上のプロセスにメッセージを送るのと、他 プロセッサ上のプロセスにメッセージを送るのが完全に同一手順で行なえる。この機能によ り、送信先プロセスの厳密な位置をアプリケーションが知る必要がなくなる。

加えて、他プロセッサが再起動して復旧した後でも、それを意識せずにメッセージを送ること ができる。

2.3 通信システムモデル

論理的な通信システムモデルについてここで説明する。

論理的な通信システム構成のモデルを、上記のソフトウェア構造に直接マップした(図2)。

以降で各レイヤに含まれるコンポーネントについて解説する。

2.4 サービスレイヤ

2.4.1 サービスレイヤの機能

サービスレイヤ(service layer)は、ネットワークワイドなマルチメディア呼制御環境を提供する。

さまざまな呼処理サービスを実現するための、高レベルの機能とサービス部品がサービスレイヤに 含まれる。例えば、POTS呼制御サービスシナリオや呼転送サービスシナリオ等を提供する。

サービスレイヤについては、複雑かつ革新的な呼処理アーキテクチャを自由に設計できることが 望まれる。また、ソフトウェア開発を簡易化する環境も必要である。

2.4.2 サービスレイヤののハードウェア非依存性

サービスレイヤはハードウェア仕様に非依存であり、ハードウェア仕様とそれぞれ独立に進化可 能である。サービスレイヤの内部のソフトウェアコンポーネント間と、サービスレイヤ– リソース レイヤ間については、論理IDやオブジェクトIDにより参照しあっている。従って、物理リソース を示す物理IDや、ハードウェアの詳細を表す情報は、本レイヤには含まれない。

(17)

2.4. サービスレイヤ 9

Subscriber D atabase

Subscriber L ine Sp eech P ath To ne G enerato r Serv ice C ircuit Virtual Trunk

[ C aller] [ C allee]

E nh anced Serv ice Analy z er

Basic Serv ice Analy z er

Serv ice(1 )Serv ice(1 )Serv ice (1 ) Serv ice(1 )Serv ice(1 )Serv ice (1 )

Serv ice(1 )Serv ice(1 )C all (1 ) (Serv er) Serv ice(1 )Serv ice(1 )C all (1 )

(Serv er) Serv ice(1 )Serv ice(1 )C all (m + 1 ) (Serv er) Serv ice(1 )Serv ice(1 )C all (m + 1 )

(Serv er)

(m ) (n)

(n)

F ree d ial C red it E nh anced Serv ice Scenario

P O TS O ut-g o ing P o lice call Basic Serv ice Scenario

C o nf erence call

Serv ice(1 )A-SubscriberServ ice(1 ) L ine (1 ) Serv ice(1 )A-SubscriberServ ice(1 )

L ine (1 ) (n)

Serv ice(1 )Serv ice(1 )I SD N - Subscriber

L ine (1 ) Serv ice(1 )Serv ice(1 )I SD N - Subscriber

L ine (1 ) (n)

Serv ice(1 )Serv ice(1 )Sp eech P ath (1 ) Serv ice(1 )Serv ice(1 )Sp eech P ath (1 )

(n)

Serv ice(1 )Serv ice(1 )To ne (1 ) Serv ice(1 )Serv ice(1 )To ne (1 )

(n)

Serv ice(1 )Serv ice(1 )Serv ice C ircuit (1 ) Serv ice(1 )Serv ice(1 )Serv ice

C ircuit (1 ) (n)

Serv ice(1 )Serv ice(1 )M ulti- F req uency O G T (1 ) Serv ice(1 )Serv ice(1 )M ulti- F req uency O G T (1 )

(n)

Serv ice(1 )Serv ice(1 ) B-C h annel (1 ) Serv ice(1 )Serv ice(1 ) B-C h annel (1 )

(n)

C H I L L run-tim e ro utine (R TR ) K ernel

(Sch ed uling , task co ntro l, m em o ry m anag em ent, etc. ) I O C S D riv ers Serv ice

L ay er

R eso urce L ay er

E x ecutio n C o ntro l L ay er (H ard w are

L ay er) H ard w are

S2

S1

図2: 交換機の論理モデル

(18)

2.4.3 S2インタフェース

S2インタフェースは、通信サービスを提供するために、サービスレイヤからS2を通じたメッセー ジによって制御可能なリソースが何であるかを定義したものである。

S2インタフェースにおいては、物理リソースを示す物理IDや、ハードウェアの詳細を表す情報 は現れない。

2.4.4 サービスレイヤのオブジェクトモデル

サービスレイヤモデルは、caller(発側オブジェクト)とcallee(着側オブジェクト)の存在により特 徴づけられる。

サービスはcallerとcallee間の通信により実現される。callerとcalleeは、サービス種別に応じた サービスシナリオを利用しサービスを実行する。サービスシナリオは、加入者種別や加入者のリク エストに応じ、それぞれのサービスを行なうための手続きのセットである。

ハードウェアモジュール内やハードモジュール間の基本的なサービスは、以下のような手順で実 行される。

呼出中や通信中のフェーズにおいて、callerはPOTS入接続シナリオ(POTS in-coming schenario) に関連づけられ、calleeは、POTS出接続シナリオ(POTS out-going scenario)に関連づけられる。

新たなイベント、例えば第三者によるフッキングの割り込みがcallerに通知されると、callerは新 たなサービスシナリオと関連づけられる。このように、callerとcalleeは呼処理の実行部品に対し て、サービス実行環境を提供する。

2.5 リソースレイヤ

2.5.1 リソースレイヤの機能

リソースレイヤ(resource layer)は、サービスレイヤのサーバとして機能する。リソースレイヤ は、単一メディアの呼処理と、ハードウェアリソースの抽象化ビューのための基本的なビルディン グブロックからなっている。例えば、コネクション制御(connection control)、各種回線や各種トラ ンク種別の制御等をサービスレイヤに提供する。また、リソース管理の機能を提供する。

付加サービス的な回線選択機能、例えば加入者回線グループ選択(パイロットダイレクトナンバ) や、トランクグループ選択はリソース階層ではなくサービスレイヤで行なわれる。リソース階層で 提供するのはシングルエンドの機能である。複数端末接続の機能は、サービスレイヤにおいて、リ ソースレイヤのシングルエンド機能を利用して提供される。リソースレイヤは、新しい回線やトラ ンク種別、一般的なハードウェアの進化をカバーし、将来のサービス機能の開発のために、比較的 に不変な基盤を提供する。

(19)

2.6. 実行制御レイヤ 11

2.5.2 リソースレイヤの構造

リソースレイヤのソフトウェアは、ビルディングブロック構成を想定した設計がなされている。例 えば、複数のハードウェアモジュールによって構成された通信システムにおいて、モジュール間に 渡る制御や仮想的なアドレス空間をカバーするものである。

この構成は、通信リソース(例えば、共通線機能、MFトランク等)がノード内の別のハードウェ アモジュールモジュールに存在するような場合にも適用できる。

2.5.3 サービスレイヤとの共通的機能

サービスレイヤとリソースレイヤは、いくつかの共通的な機能を持つ。それぞれのレイヤでは、

レイヤ内の各部を管理、保守(OA&M)するための半自立的なオペレーション機能を持つ。例えば、

リソースレイヤの中の保守運用機能は、通信ハードを保守するためのものである。サービスレイヤ の保守運用機能は、さまざまな呼処理機能(例えばダイアル数字翻訳機能など)が正しく動作してい るかどうかを監視する。

しかしながら、通信システム全体の高レベルでの機能を維持するために、リソースレイヤとサー ビスレイヤの双方を統括するシステム全体としてのOA&M機能が必要である。

2.6 実行制御レイヤ

実行制御レイヤ(execution control layer)にはリアルタイムOSが必要である。リアルタイムOS

としてCTRONカーネルを採用した。しかしながら、通信システムにCTRONカーネルだけを採用

したのでは、次のような問題がある。

(1) システムの部分的な初期設定と、メモリ保存による呼救済機能のための標準的なインタフェー スが用意されていない。

こういったインタフェースの追加は、CTRON仕様にアーキテクチャ依存の機能(システムコー ル)を追加することになる。

しかし、アーキテクチャ依存の追加システムコールを使用したアプリケーションプログラムは ポータブルでなくなり、別のアーキテクチャ依存のシステムコールを持った他のOSへ移植で きなくなる。

(2) CTRONのタスク同期と通信機能は論理メモリ空間の異なるタスク間のために設計されている。

この設計は汎用的ではあるが、処理負荷は軽くはない。共通な論理メモリ空間内で動作してい る並列オブジェクト間の通信手段としては不適当である。

(3) CTRONカーネルは、ハードウェアモジュール間での軽量なプロセッサ間通信機構を用意して

いない。

(20)

高信頼なリアルタイム通信システムにおいては、上記の問題を解決する必要がある。

問題解決のため、CHILLランタイムルーチン(CHILL RTR)の実装を行なった。

CHILL RTRは、CHILL言語仕様に準拠しながら、通信システムに適合た初期設定機能と呼救済

機能を提供するものである。

2.6.1 CHILLランタイムルーチンによる実行制御

CHILL RTRは、CTRONカーネル機能を利用して、CHILLプロセスの実行環境を提供する。

CHILL RTRは、CHILLプロセスをCTRONタスクにマッピングする(図3)。

Supporting CHILL (CCITT Z.200) by RTR

Conc urrent Ex ec ution by O pera ting Sys tem CHILL

P roc es s CHILL

P roc es s CHILL

P roc es s CHILL P roc es s

CTRO N Ta s k CTRO N

Ta s k CTRO N

Ta s k CTRO N

Ta s k RTR

CHILL Environment

CTRO N

Environment

図3: CHILL RTRによる実行制御

CHILL RTRは、CHILlプロセスそれぞれに対応するPCB(process control block)、シグナル キュー、メモリプールを管理する。PCBにはそれぞれ、CTRONタスクIDが含まれる。CHILL RTRはCHILLプロセスIDをCTRONタスクIDに変換および逆変換を行なう(図 4)。その他の RTRインタフェースコールはCTRONシステムコールにマッピングされる。

2.6.2 シグナル通信機構

ハードウェアモジュール間のプロセッサ間通信のために、シグナル通信機構を拡張した(図5)。

この機構は、高信頼かつ高速なモジュール間メッセージ通信機構であるMET(message transferring

equipment)を使用して、シグナルを他モジュールにあるプロセスに届ける機構である。

加えて、ユーザプログラムはこの機能を用いて、同一のソフトウェアインタフェース(CHILL RTR インタフェース)によりモジュール内のプロセス間シグナル通信も可能である。送信先プロセスID

(21)

2.6. 実行制御レイヤ 13

PCB no.

Proc ess ID Proc ess na m e

: T a sk ID

:

:

User ID = PCB no.

: PCB

Inst a nc e p ri m i t i v e

CT R O N t a sk c ont rol b l oc k

( T CB) R T R i nt erf a c e CT R O N i nt erf a c e

h el d b y

CH IL L u ser p rog ra m h el d b y

R T R h el d b y

CT R O N

図 4: CHILLプロセスとCTRONタスクの関係

SEND a _ s i g n a l

TO p r o c e s s # 1 R EC EI V E

C H I L L

P r o c e s s # 0 C H I L L

P r o c e s s # 1

l o c a t i o n i n f o . R TR

l o c a t i o n i n f o . M R TR

E T i / f

M E T

M E i / f T M E

T

Mo d u l e # j Mo d u l e # i

V i r t u a l R TR ( v i s i b l e t o C H I L L u s e r p r o g r a m )

MET: Me s s a g e Tr a n s f e r De v i c e ( I n t e r m o d u l e c o m m u n i c a t i o n u n i t )

図5: プロセッサ間でのシグナリング

(22)

の内容により通信先プロセスが存在するモジュールじ動的に判別されるため、ユーザプログラムが シグナルを送ろうとするプロセスの位置を隠蔽することができる。

シグナル通信のインタフェースは以下のものを含む。

(1) シグナル登録

このルーチンは、シグナルに対する論理的なシグナル番号を設定する。モジュール間の シグナル通信において、シグナル名はCHILl RTRによって論理シグナル番号に変換さ れる。

(2) サーバ登録

このルーチンは、プロセスに対する論理的なサーバ番号を設定する。

(3) サーバ参照

このルーチンは、論理サーバ番号をプロセス番号に変換する。

この機構は、いくつかのハードウェアモジュールに配置されたプログラムを、一つのモジュール に縮退して配置することを可能とする。加えて、同じ手順にて、別論理メモリ空間(非共有メモリ空 間)の間でのプロセス間メッセージ通信を可能とする。

2.7 呼救済

信頼性の向上のため、CHILL RTRは呼救済のための機能を提供する。システム障害の際に、通 話中であったサービスは、システム復旧後もそのまま継続される。

2.7.1 コールデータ

コールデータ(call data)とは、呼毎の情報を記録したもので、呼救済処理や呼処理のために利用 される。コールデータはメモリ空間の連続域に配置される。それは、コールデータ自体を容易に保 護するためと、コールデータ以外のデータをまとめて消去できるためである。

2.7.2 コールデータを元にした呼救済処理

システム障害が発生すると、コールデータ以外のデータは初期化される。呼状態は、コールデー タを元に復元される。この時、接続中の通話バスはハードウェア的に保持されたままとなっている。

しかし、異常だったり不完全な呼がコールデータに含まれるかも知れない。これは、障害がコー ルデータに影響を与えたり、逆にコールデータの異常により障害が引き起こされた可能性があるか らである。

従って、障害から復旧する再起動処理の間に、異常と思われるコールデータは検出し、消去する 必要がある。

(23)

2.7. 呼救済 15

2.7.3 コールデータとしてのプロセスID

CHILL RTRのlプロセスIDはコールデータとして扱われる。CTRONカーネル中のタスクは全

て再起動処理中に消去される。呼処理に必要なタスクはその後に再生成される。

再起動処理において、プロセスIDは復旧時間を短縮するために、障害前と同じに保たれる。この 理由は、コールデータ内のプロセスIDを更新するのは複雑な処理が必要であるからである。CHILl RTRは、変換機能により、プロセスIDを新たなタスクIDと関連づける。

2.7.4 救済呼の判定論理

救済する呼を選択するには2つの基準がある。

(1) 安定状態(通話中や呼出中など)ではない呼は救済しない(削除される)。

(2) コールデータ間での関係をチェックすることにより、不整合のあるコールデータに対応する呼 は救済しない(削除される)。

2.7.5 タスクの再生成とプロセスIDの保持

プロセスIDはコールデータ中に保存されている。システム再起動処理中にカーネル内の全ての タスクが消去されても、呼処理に必要なタスク(呼切断や付加サービス等)は復元される。この処理 において、呼救済処理の短縮のためプロセスIDは変更されない。この理由は、コールデータ内の 各所に保存されているプロセスIDを新たなものに変換する処理が複雑なためである。CHILL RTR はプロセスIDを新たなタスクIDと対応づける機能を持つ。

2.7.6 シグナルの保持

各プロセスに対応したシグナルキューに保存されたシグナルは、再起動処理の間も保持すること が可能である。しかしながら、システムの障害がシグナルによって引き起こされた可能性もあるた め、異常なプロセスに到着していたシグナルは廃棄することとした。呼処理は、シグナルが廃棄さ れても、タイムアウトや新たなシグナルの到着により処理を継続できるように設計する必要がある。

2.7.7 異常プロセスの消去

再起動処理の後、いくつかの無効なプロセス(復元されたタスクと関連づけされていない)が残る かも知れない。そのようなプロセスのPCBは消去される。

(24)

2.7.8 呼救済処理のまとめ

呼救済処理は次のようにまとめられる(図 6)。

(1) コールデータ以外のデータ領域は全て消去する。例えば、

アプリケーションのワークデータ

カーネル内のデータ(タスクやメモリプールなど)

(2) 呼を救済するかどうか、コールデータの内容を用いて判断する

呼が安定状態でなければ救済の対象とはしない

コールデータ内で一貫性のない呼は救済対象とはしない (3) プロセスの復元

PCBは保存され、新たに作られたタスクと関連づけられる (4) 異常プロセスの消去

新たなタスクと関連づけられなかったプロセスのPCBとシグナルキュー消去される

2.8 到達点

上記技術を適用した通信システムにおける達成点を以下にまとめる。

2.8.1 呼処理性能

1コールの呼処理ステップは、さほど増加しない。従来の非オブジェクト指向のソフト構造より若 干増加しているものの、直列オブジェクトやコンパイル時のメソッドバインディング等の工夫によ り、オーバヘッドは抑えられている。

CHILL RTRを適用したオーバヘッドは4000アーラン級の通信システムへの適用にあたっては問

題とならなかった。

2.8.2 呼救済処理

サービス受け付け中断時間は、障害検出時間、ハードウェア初期化時間、ソフトウェア呼救済処 理時間の合計である。サービス受け付け中断時間の目標値は従来の通信システムと同様の30秒以下 と設定した。

今回のシステムにおいて、4000アーランの通信システムにおいて、呼救済時間は12秒であった。

この呼救済時間に障害検出とハードウェア初期化時間を加えても上記の目標は達成できる。

さらに呼の救済判定処理のさらなるチューニングにより、より時間が短縮される可能性もある。

CTRONカーネルだけを用いた場合と比較し、CHILL RTRの適用により呼救済時間が短縮され

た。CTRON上で同等の処理を行なった場合、より処理時間が必要であることが分かった。

(25)

2.8. 到達点 17

Figure 7: Call Saving Processing

Service L ay er

&

R esource L ay er ( a)

st at e= t alk ing

PI D = # 1 st at e= unst ab le

PI D = # 0 st at e= ringing

PI D = # 2 . . . . st at e= t alk ing

PI D = # 1 st at e= unst ab le

PI D = # 0 st at e= ringing

PI D = # 2 . . . . T I D = 8 2 5 6 T I D = 8 5 1 2 T I D = 8 0 0 0 . . . . T I D = 8 2 5 6 T I D = 8 5 1 2 T I D = 8 0 0 0 . . . .

U I D = # 2 U I D = # 0 U I D = # 1 . . . .

U I D = # 2 U I D = # 0 U I D = # 1 . . . .

( b )

( c)

R T R

CT R O N Call D at a

N ot Call D at a 8 0 0 0 8 2 5 6 8 5 1 2

# 0 # 1 # 2

PI D ->

<- T I D ( m em ory ad d ress) PCB

T CB

* 0 * 1 * 2

Call Processing

Service L ay er

&

R esource L ay er st at e= t alk ing

PI D = # 1 st at e= unst ab le

PI D = # 0 st at e= ringing

PI D = # 2 . . . . st at e= t alk ing

PI D = # 1 st at e= unst ab le

PI D = # 0 st at e= ringing

PI D = # 2 . . . .

T I D = T I D = T I D = . . . .

T I D = T I D = T I D = . . . .

cleared cleared cleared . . . .

cleared cleared cleared . . . .

R T R

CT R O N Call D at a

N ot Call D at a 8 0 0 0 8 2 5 6 8 5 1 2

# 0 # 1 # 2

PI D ->

<- T I D ( m em ory ad d ress) PCB

T CB

* 0 * 1 * 2

J ud ging & R est rat ion of Processes

Service L ay er

&

R esource L ay er st at e= t alk ing

PI D = # 1 cleared st at e= ringing

PI D = # 2 . . . . st at e= t alk ing

PI D = # 1 cleared st at e= ringing

PI D = # 2 . . . .

cleared T I D = 8 0 0 0 T I D = 8 2 5 6 . . . .

cleared T I D = 8 0 0 0 T I D = 8 2 5 6 . . . .

U I D = # 1 U I D = # 2 . . . .

U I D = # 1 U I D = # 2 . . . .

R T R

CT R O N Call D at a

N ot Call D at a 8 0 0 0 8 2 5 6 8 5 1 2

# 0 # 1 # 2

PI D ->

<- T I D ( m em ory ad d ress) PCB

T CB

* 0 * 1 * 2

D elet ion of I nvalid Processes

Y E S N O Y E S <- saved

cleared

図 6: 呼救済処理

(26)

2.8.3 生産性

CHILl RTRの適用と、オブジェクト指向設計の適用により、CTRONシステムコールを直接利用

した場合と比較して、プログラムコード規模が削減され、プログラム可読性が向上した。

サービスレイヤの生産性は、従来のシステムより高い。一方、リソースレイヤの生産性は従来と 変わらなかった。

機能拡張は主にサービスレイヤに集中するため、トータルな生産性は初期開発時でも高いが、機 能追加時により高くなる。

従って、本ソフトウェア構造の適用により、高い生産性が実現できた。[17]。

2.9 残課題

2.9.1 汎用分散機構

通信システムのスケーラビリティを確保するためには分散処理の考え方を取り入れる必要がある。

さらに機能拡張性を考慮すると、分散処理機構としてはある程度広く使われている汎用な技術を用 いるのが望ましい。従来の通信システムは、専用OSや専用ミドルウェアによる分散通信は実現で きているが、ヘテロジニアスな環境で利用できる汎用な分散機構は適用できていない。

2.9.2 オープンなAPI

複数メディア種別に対して統合的にサービスを提供するためには、メディア種別に非依存となる よう抽象化されたAPIを規定する必要がある。このような抽象化APIを、リアルタイムかつ高信頼 に実現したシステムはこれまでに存在していない。

2.9.3 マルチプラットフォームでの信頼性

Javaに代表されるようなマルチプラットフォーム環境は、ソフトウェアの開発・維持管理コスト の大幅削減のために必須な技術であり、今後とも適用領域を広げていくべきである。しかしながら、

通信システムの領域にこのような技術を適用するためには、ノンストップでの運用に耐える高信頼 性が実現できていない。

2.9.4 マルチプラットフォームでのリアルタイム性

超多重処理を効率よくこなすというソフトリアルタイム性は、特に大規模な通信システムにおい ては最重要な要求条件である。このようなソフトリアルタイム性は、Javaのようなマルチプラット フォーム環境上では実現できていない。

(27)

2.10. 結言 19

2.10 結言

通信システムへの階層化ソフト構造とオブジェクト指向の適用は、高信頼性と高生産性を実現する。

しかし、第2.9章で示した4つの課題についてはこれまでの技術では達成されていない。これら 残課題について、以降の章にて解決方法を提案する。

(28)

3 リアルタイム分散機構の実現技術

関連論文[7, 9, 16, 19]

本章では、ソフトウェア生産性およびシステム拡張性において優れているCORBAをリアルタイ ム通信システムへ適用する場合のキー技術について述べる。リアルタイム通信システムにおける分 散オブジェクト通信機構への要求条件を明確にする。

処理負荷を低減するために、どのようにオブジェクトを配置し、どのようにオブジェクトをバイ ンドするかを考慮した、CORBA上でのソフトウェア機能要素のマッピングについて紹介する。

システムの高信頼化のために、システムが再起動される時、提供中サービスを継続することを保 証するための機構を明らかにする。

分散オブジェクト間通信の処理負荷の見積りは、本ソフトウェア構造が超多重処理を行なうリア ルタイム通信システムに適用可能であることを示す。

3.1 研究の背景

リアルタイム通信システムは、スケーラブルであるだけではなく、キャリアが新たなネットワー クサービスを容易かつ迅速に提供できなければならない。そのためには、ソフトウェアを効率的に 開発でき、かつ、安価に維持できることを可能にする必要がある。

また、新たな通信システムが追加されたり、サービス機能を追加変更した場合でも、ノンストッ プでのサービス提供が求められる。

さらに、システムが再起動したとしても、実行中サービスは継続されなければならない。

スケーラビリティとサービスの迅速な提供を両立させる一つの有効なアプローチとして、オブジェ クト指向設計と分散OSの適用が考えられる[10, 23]。

そして、一つのソフトウェアファイルがあらゆるシステム容量、あらゆるシステムアーキテクチャ に適用可能なような、オブジェクトが通信システムの中に柔軟に配置可能なソフトウェア構造を確 立する必要がある。

さらに、オブジェクトが追加や移動した場合においても、サービスの実行には影響を与えてはな らない。

前述の点を考慮して、NOSES(Non-stop Service Enhanceable Software) [8, 11, 15]において開発 したプラットフォームを、CORBA [37] を用いた分散コンピューティング環境に適合するように機 能追加を行なった。

なぜならば、CORBAは広く使われ、一般的なオペレーティングシステム(OS)上で動作するこ とから、次世代システムの分散オブジェクト環境として適切であると考えたからである。

CORBAオブジェクト指向のフレームワークを、リアルタイム通信ソフトウェア構造に適合させ

る方法を明らかにする。

そして、電話、ISDN、PHS、パケット通信、ブロードバンドISDN(B-ISDN)、インテリジェント ネットワーク(IN)のようなさまざまな種類のリアルタイム通信サービスの構築を容易とするための オブジェクトの定義と配置について述べる。

(29)

3.2. 要求条件 21 まず最初に、新しいソフトウェア構造のための必要条件および前提条件を明確にし、次にオブジェ クト構造を示す。次に、システムの高信頼化のため、システムが再起動した場合にも、実行中のサー ビスを救済する機構を明らかにする。そして、分散オブジェクト間通信のオーバヘッドを見積もる。

最後に、これらのデータと傾向について要約する。

3.2 要求条件

3.2.1 階層化構造

本ソフトウェアプラットフォームは、電話、ISDN、PHS、パケット通信、ブロードバンドISDN(B-

ISDN)、インテリジェントネットワーク(IN)のようなさまざまな種類の通信システムにおいて利用

されている。

ソフトウェア構造は、図1に示すような階層構造を採っている。

3.2.2 プラットフォームの機能

ソフトウェアプラットフォーム部分の主要機能を表1 に示す。

ここにあげた機能は、各種の通信システムにおいて共通的に利用される機能である。

3.2.3 ソフトウェアコンポーネント

上記の機能要素それぞれをソフトウェアコンポーネントと呼ぶことにする。

ソフトウェアコンポーネントは、相互に密接に関連したC++クラスの集合体であり、ソフトウェ アの管理単位である。それぞれのソフトウェアコンポーネントは、5から10のC++クラスを含み、

一体となって特定の役割を担う。

例えば、TCAP (ITU-T Rec. Q.77x)ソフトウェアコンポーネントは、TCAPプロトコル仕様に 定義された役割を果たし、その配下にあるクラスは、Q.77xモデルにおいて定義された機能要素(コ ンポーネントサブレイヤ、トランザクションサブレイヤ、マネージメント機能等)に対応する。通信 システムを構成する他の要素も、同様にソフトウェアコンポーネントとして実装される。

各コンポーネントは、外部からアクセス可能な1つのC++クラスを持っている。各コンポーネン

トはC++インタフェースルーチンによりアクセスされる[15]。

これらの機構により、ソフトウェアコンポーネントは1つのC++クラスであるかのように振舞 う図7。

3.2.4 分散オブジェクト指向実現のための要求条件

CORBAに基づく分散オブジェクト指向ソフトウェアプラットフォームを確立するために、まず

CORBAの特性を明らかにする必要がある。

次に、ソフトウェアコンポーネントを、CORBAのフレームワークの中で機能要素としてマッピ ングするかを考える。

(30)

表1: プラットフォームの主要ソフトウェアコンポーネント

Entities Roles

device management for each device: fault processing, configuration control

system initialization complete system initialization, partial initial- ization [30, 31]

file update complete system file update without affecting calls in service [30, 31]

plug-in on-line partial file modification [12, 14]

processor replacement replacement of existing processor with new one without affecting calls in service

back up management back up of system file

file management file access, creation/deletion of file/directory office data handling modification or addition of office data [32]

TMN command message handling conversion of CMIP messages to internal com- mand/message format, command execution control, logging, etc. [27–29]

alarm handling handling of system alarms

file transfer file transfer based on FTAM or FTP [27]

OSI communication communication control based on ITU-T X.200 series Recommendations

common channel signalling protocol handling of the common channel sig- nalling protocols, such as MTP3, SCCP or TCAP (ITU-T Q.700 series Recommenda- tions) [33]

etc. etc.

(31)

3.2. 要求条件 23

! " # $

% & ' ( $ ) * ! + , -

# ' " # ) * # .

図 7: ソフトウェアコンポーネントとインタフェースルーチン

! " "# $ %$ & ! $

" % ' $ % ' $ ($ " # $

) %

*,+ -/. 0 1 2

図 8: CORBAモデル

図 2: 交換機の論理モデル
Figure 7: Call Saving Processing
表 1: プラットフォームの主要ソフトウェアコンポーネント
表 3: 呼救済処理の評価
+7

参照

関連したドキュメント

- 3 - 論 文 審 査 結 果 の 要

PointEast Research: Long Haul WDM capacity utilization, Jan

Harada, “Cognitive Wireless Router system by distributed management of heterogeneous wireless networks,” IEICE Transactions on Communications, vol.E93-B, no.12, pp.3311–3322,

受信側にあらかじめ複数の波の成分が同時に存在する「量子重ね合わせ状態」という特殊な光を用意してお

(Tokyo QKD Net wor k)を構築し、様々な盗聴攻撃の検知実験、及び完全秘匿なテレビ会議システムの試 験運用を行った(図

(1) 脳情報通信技術の研究開発:

Prediction)

[15] Hideaki Kanai, Toyohisa Nakada, Yusuke Hanba and Susumu Kunifuji, ``A Support System for Context Awareness in a Group Home using Sound Cues,'' 2nd International Conference