iseeit.jp 情報通信技術

『情報通信技術』に関するスキルのほかに、『情報セキュリティ』に関するスキルも重点テーマです。また、特に今後の『高速モバイル通信』と『インターネット』に注目していきます。

2009年8月アーカイブ

SSL サーバ証明書の役割

 

https 通信に必要な SSL サーバ証明書には、HTTP プロトコル上で SSL による送信データの暗号化に必要な鍵が含まれています。また、SSL サーバ証明書によって、その発行者(ドメイン)の実在性が認証機関により証明されることになります。

Internet Explorer では、あらかじめ信頼できる認証機関が登録されており、その信頼できる認証機関から発行されている SSL サーバ証明書(セキュリティ証明書)であることをチェックしています。

信頼できる認証機関が発行する SSL サーバ証明書は、暗号化したデータの送信先(ドメイン)が、目的の送信先相手(ドメイン)であり、その相手(ドメイン)の実在性を証明していることにもなります。

信頼できる認証機関が認証する情報としては、

Common Name: サイトの URL。ブラウザは、このコモンネームと入力された接続先アドレスの一致をチェックします。

Organization:組織

・Organization Unit : 部署。

・City or Locality : 市町村。

・State or Province : 都道府県。

・Country : 国。

 

認証レベルにより、SSL サーバ証明書の種類がいくつかあります。

一般的な SSL サーバ証明書は、Common Name と Organization との認証、あるいは、Common Name だけの認証によるものです。EV SSL 証明書(Extended Validation SSL 証明書)は、Organizationより厳格な認証プロセスによって、その実在性を証明します。

 

信頼できる認証機関が発行する SSL サーバ証明書は、SSL 暗号化通信の実現のみならず、実在性の証明という役割においても大きな意味をもちつつあります。

アノマリ(anomaly)

 

アノマリ(anomaly)というと、情報セキュリティでは、NIDS のアノマリ通信検知機能に関係します。

RFC に準拠していない通信の検知、通常よりあきらかに多いトラフィックの検知、通常は使用しないポートへの接続の検知などが代表的な例としてあげられます。

 

なお、アノマリは、誤検知をもたらすこともあります。

・フォルスネガティブ(False Negative)は、不正な通信にもかかわらす、不正であると判断されなかった場合。

・フォルスポジティブ(False Positive)は、正常な通信にもかかわらす、不正であると判断された場合。

これらは、ログの分析から、アノマリ検知をフォローしていくことが必要となりますが、常に誤検知の可能性は残ることとなります。

 

ちなみに、ほかの世界でも、アノマリはあります。資本市場理論では説明できない証券価格の規則的な動きのことをいいます。市場は、常に理論通りの合理的な規則によって動くものでもありませんが、その理論外であっても、なお規則性がみられるものを指しています。つまり、不合理ながらも規則性のある動きのことです。

また、プロジェクトマネジメントにおいても、理論ではないが、規則性があるアノマリの例がよくいわれます。

 

アノマリは、リスクのあるところに存在しているといえそうですが、アノマリだけで判断することは、それでも不十分、つまり誤検知する場合もあることの認識は必要といえます。

 

クロスサイトスクリプティング(Cross Site Scripting:CSS、XSS)は、Web サーバの入力欄にスクリプトを含んだタグを打ち込むことによって cookie(クッキー)を読み出す攻撃です。例としては、掲示板の入力欄から悪意あるスクリプトコードが入力され、他の訪問者がその掲示板の内容を表示したとき、訪問者のブラウザにおいて、その悪意あるスクリプトコードが実行される、というようなことがあげられます。

 

クロスサイトスクリプティングに関して、情報処理技術者試験の午前試験問題をちょっとみてみます。試験問題の全文については、情報処理技術者試験センターの Web サイト http://www.jitec.jp/ にて公開されています。

平成18年度テクニカルエンジニア(情報セキュリティ)試験の午前試験問題の問43。

問43 クロスサイトスクリプティングに該当するものはどれか。

ア 悪意をもったスクリプトを、標的となるサイト経由でユーザのブラウザに送り込み、その標的にアクセスしたユーザのクッキーにある個人情報を盗み取る。

イ クラッカの Web サイトにアクセスしたユーザに悪意をもったスクリプトを送り込み、そのスクリプトを実行させて Web ページ中のHTMLタグを変換する。

ウ 攻撃者が、JavaScript を使ったセッション管理に使うクッキーにアクセスし、ブラウザに広告などのダミー画面を表示する。

エ 入力情報を確認するためにフォームの入力値を画面表示するプログラムの脆弱性を利用して、クッキーにある個人情報を改ざんする。

答えは、ア。

 

平成18年度情報セキュリティアドミニストレータ試験の午前試験問題の問28。

問28 クロスサイトスクリプティングによる攻撃へのセキュリティ対策はどれか。

ア OS のセキュリティパッチを適用することによって、Web サーバへの侵入を防止する。

イ Web アプリケーションで、クライアントに入力データを再表示する場合、情報内のスクリプトを無効にする処理を行う。

ウ Web サーバに SNMP プログラムを常駐稼動させることによって、攻撃を検知する。

エ 許容範囲を超えた大きさのデータの書き込みを禁止し、Web サーバへの侵入を防止する。

答えは、イ。

対策としては、スクリプトのタグの入力チェックや、スクリプトの無効化があげられています。

リスク分析手法

リスク分析は、どこにどのようなリスクがどの程度存在しているかを把握することです。

リスク分析手法としては、GMITS(Guidelines for the Management of IT Security:ISO/IEC TR 13335のこと)で紹介されている4つの手法が取り上げられることが多いようなので、ちょっとみてみました。

 

(1)ベースラインアプローチ

社内外の基準や規程、標準、ガイドラインなどを標準にして、リスク分析を行う方法です。短期間で効率的な実施ができますが、場合によっては過剰あるいは不十分な分析結果となるとされています。

(2)詳細リスク分析

情報資産、脅威、脆弱性の洗い出しを行い、その組み合わせからリスクの大きさを評価する手法です。情報資産ごとのリスクに応じた対策が実施できますが、分析には多くの時間がかかるとされています。

(3)非形式的アプローチ(非公式アプローチ)

分析者の知識と経験によってリスク分析を行う方法です。分析者の能力によって分析の時間や品質に差が出るとされています。

(4)組み合わせアプローチ

上記のアプローチを組み合わせて、それぞれの手法のメリットを活かし、デメリットを補うものです。ベースラインアプローチを基本にし、重要な事項については、詳細リスク分析を実施する、などのような方法がとられます。

 

さて、平成18年度情報処理技術者試験の情報セキュリティアドミニストレータ午前試験の問36をみてみます。なお、試験問題の全文については、情報処理技術者試験センターの Web サイト http://www.jitec.jp/ にて公開されています。

問36 ISMS におけるリスク分析の方法の一つであるベースラインアプローチはどれか。

ア 公表されている基準などに基づいて一定のセキュリティレベルを設定し、実施している管理策とのギャップ分析を行った上で、リスクを評価する。

イ 情報資産を洗い出し、それぞれの情報資産に対して資産価値、脅威、脆弱性及びセキュリティ要件を識別し、リスクを評価する。

ウ 複数のリスク分析方法の長所を生かして組み合わせ、作業効率や分析精度の向上を図る。

エ リスク分析を行う組織や担当者の判断によって、リスクを評価する。

答えは、ア。

ちなみに、イは詳細リスク分析、ウは組み合わせアプローチ、エは非形式的アプローチ(非公式アプローチ)の説明に該当しそうです。

耐タンパ性

耐タンパ性について、情報セキュリティ用語としての意味には、「物理的あるいは論理的に内部の情報を読み取られることに対する耐性のこと」がよくあげられます。さらに加えて、情報の改ざんに対する防衛機能の強度性能、のような意味でも使われます。

もともと、タンパー(tamper)は、「不法に加えて変更する、勝手に書き換える」などのような意味をもつ単語ですが、情報セキュリティ用語として、正当な鍵をもたずに暗号を解読しようとする悪意ある第三者のことを指している場合もあります。

 

平成19年度システム監査技術者試験の午前試験問題の問18をみてみます。なお、試験問題の全文については、情報処理技術者試験センターの Web サイト http://www.jitec.jp/ にて公開されています。

問18 IC カードの情報の解読や偽造に対して、物理的に情報を保護するための機能を示すものはどれか。

ア SECE

イ インターロック

ウ インボリューション

エ 耐タンパ性

答えは、エ。

暗号鍵の数

情報処理技術者試験のいくつかの試験区分の午前試験では、暗号鍵の数に関する出題がよくありますので、ちょっと復習してみたいと思います。なお、試験問題の全文については、情報処理技術者試験センターのWebサイト http://www.jitec.jp/ にて公開されています。

まずは、平成19年度情報処理技術者試験テクニカルエンジニア(情報セキュリティ)午前試験問題の問37です。

問37 公開鍵暗号方式によって、n人が相互に暗号を使って通信する場合、異なる鍵は全体で幾つ必要になるか。
ア  n + 1
イ  2n
ウ   n(n - 1)
エ  log

答えは、イ。

公開鍵暗号方式では、送信者と受信者とでは異なる鍵を使用します。暗号化鍵と復号鍵からなります。そして、送信者は受信者の公開鍵(暗号化鍵)で暗号化し、受信者は秘密鍵(復号鍵)で復号します。

公開鍵(暗号化鍵)は、送信者が異なる場合でも同一のものになりますので、鍵は常に、それぞれの受信者ごとにペア分しか存在しないことになります。

 

つぎに、平成18年度情報処理技術者試験AN・PM・AE午前共通試験問題の問31です。

問31 100人の送受信者が共通鍵暗号方式で、それぞれ秘密に通信を行うときに必要な共通鍵の総数は幾つか。

ア 200

イ 4,950

ウ 9,900

エ 10,000

答えは、イ。

共通鍵暗号方式では、送信者と受信者とで同じ鍵を使用します。そして、相手が複数になると、相手ごとに異なる鍵を使用することになります。これらのことから、n人が共通鍵暗号方式で通信する場合の鍵の総数を求める式は、次のようになります。

n(n - 1)

ちなみに、公開鍵暗号方式と共通鍵暗号方式を読み違えてしまうケアレスミスもありえますので、ご注意を。

情報セキュリティを学習すると、比較的早い段階で、ソーシャル・エンジニアリング(social engineering)という用語が出てきます。IT 技術を利用するのではなくて、人間の心理や行動の隙(スキ)を利用して、秘密情報を取得する行為となります。

対策としては、教育によってそれらの手法に対しての注意意識を高めることや、物理的な方法によってそのような隙(スキ)を埋めることが、よくあげられます。

 

情報セキュリティ関連の試験問題から、ソーシャル・エンジニアリングに関する用語をいくつかあげてみます。

 

ショルダーハッキング

ショルダーハックと呼ばれることもあります。たとえば、キーボード入力している人の後方(肩口)から、そのキーボード入力値やディスプレイに映し出されている内容を盗み見る行為です。

 

ピギーバック

たとえば、社員しか入室できない場所に、その社員の後ろにくっついて無許可で入室する行為です。

 

スキャビンジング

スカビンジング、トラッシング、ごみあさり、などのように呼ばれることもあります。廃棄物の中から情報を盗み出す行為です。

 

盗難

情報機器や書類などを物理的に盗み出す行為です。

 

なりすまし

関係者になりすまして、情報を聞き出すなどの行為です。

最小特権の原則と職務分離の原則

情報セキュリティ関連の試験問題では、最小特権の原則、職務分離の原則について問われることがあります。

 

最小特権・最小権限の原則 (Least Priviledge)

ユーザやグループが、その業務を遂行するのに必要な最小限度の権限(特権)のみを許可することです。

職務分離・責務分離の原則 (Separation of Duty)

ユーザの役割や責任に基づいて、職務や責務を分離することです。

 

簡単な問題で確認してみましょう。

問題:ユーザやグループにアクセスを許可する場合に、その業務に関連するアクセスのみ許可することは、次のどのセキュリティ方針に合致しますか。

ア 最小特権

イ 職務の分離

ウ アクセス管理

 

正解は、アの最小特権です。

 

次に、平成18年度テクニカルエンジニア(情報セキュリティ)午後2試験の問1の問題文より一部を抜き出してみました。なお、試験問題の全文は、情報処理技術者試験センターの Web サイト http://www.jitec.jp/ にて公開されています。




例えば、データベース管理とオペレーションの業務を同一の者が実施するのは、セキュリティの観点からは適切な対応とは言えないね。[ a ] の原則を徹底するためには、人事管理システムの運用体制を含めて考えなければならないな。



例えば、本社管理部の人事グループの人材管理担当者が、SW事業部からの要請でセキュリティ技術をもった人材を探す場合には、スキルやグループの情報にアクセスする必要がありますが、給与担当者の場合には、本給や交通費など業務に関係する情報だけを参照できれば十分です。RDBでこのようなアクセス制御を行うには、どんな方法があるのでしょうか。



RDBの設計でも対応できると思います。この場合、表と利用者ビューは、利用者の業務要件を満たすように設計します。利用者が人事情報DBへアクセスする場合には、この利用者ビューだけが利用可能となるように制御すれば、[ a ] の原則が徹底できると思います。



[ a ] に入れる適切な字句を答える設問です。試験センターが公表している正解は、「責務の分離」です。

両方の [ a ] には同じ字句が入ることからすると、ちょっと混乱してしまいそうです。

2番目の [ a ] に関しては、最小特権とも考えられそうですが、例えば、人材管理担当者と給与担当者の責務分離を維持するために必要なアクセス制御方法を設計した、つまり、責務の分離の原則を徹底、ということにもなりましょうか。

情報セキュリティの三要素

まずは、問題からです。

問題:情報セキュリティの三要素でないものは、次のうちどれですか。

ア 機密性

イ 漏えい防止

ウ 完全性

エ 可用性

 

情報セキュリティの要素については、ISO/IEC 17799 の定義がよく利用されます。

 

機密性(Confidentiality):アクセスを認可された者だけが情報にアクセスできることを確実にすること。

完全性(Integrity):情報およびプロセス(処理方法)が正確、完全であることを保護すること。

可用性(Availability):情報および関連する資源が、認可されたユーザ(利用者)、プロセス(処理方法)、システムにより要求された時に、いつでも利用可能なことを確実にすること。

 

三要素でないものの答えは、イとなります。

 

また、OECD(Organization for Economic Co-operation and Development)セキュリティガイドラインでは、次のように定義されています。

 

可用性:データ、情報、情報システムが、適時に、必要な様式に従い、アクセスでき、利用できること。

機密性:データ及び情報が、権限ある者が、権限ある時に、権限ある方式に従った場合のみ開示されること。

完全性:データ及び情報が正確(accurate)で完全(complete)であり、かつ正確さ(accuracy)、完全さ(completeness)が維持されること。

 

 

問題:アクセス制御を行う目的は、次のうちどれですか。

ア 機密性、完全性、可用性のため

イ 機密性、可用性のため

ウ 機密性のため

 

アクセス制御は、権限に従ってデータのアクセスを制御することから、正解はウとなります。

フェムトセル(femtocell)

フェムトセル(femtocell)は、出力の非常に小さい超小型の携帯電話基地局のことをいいます。サポートするエリアは半径数十メートル(m)といわれています。屋内などで携帯の電波が届きにくかった箇所に対応することができます。

また、家庭でも設置が可能となるように検討されていて、ADSL や光などの回線を利用して事業者と接続する形態などが考えられているようです。

たとえば、家庭内にフェムトセルを導入するとした場合、これまで圏外であったり、電波が微弱であったのであれば導入する意味は十分にありそうです。しかし、そうでない場合は、通話面では、これまでの携帯電話での通話、あるいは固定電話や IP 電話との比較、データ通信では、これまでの携帯電話でのデータ通信、あるいは無線 LAN との比較で、なんらかしらのメリットがあるかどうかの判断となりそうです。

UWBの概要

UWB(Ultra Wide Band:超広帯域無線)は、非常に広い帯域幅を使用して、近距離高速通信が可能な無線技術です。

10mの距離で最大110Mbps、3m以内では最大480Mbpsの高速伝送が可能とされています。

UWBを利用したWireless USBは、USB2.0と同じ480Mbpsで通信が可能です。いくつか製品も登場してきています。

そして、PAN(Personal Area Network)、特に無線PANを実現する技術としても注目されています。

また、UWBは、無線通信以外にも、位置測定や、レーダーへの利用が進められています。

WiMAXの概要

高速無線通信を実現する技術としてWiMAX(Worldwide Interoperability for Microwave Access)が注目されています。

WiMAXは、最大通信速度が約75Mbps、通信可能距離が約10km(最大出力で約50km)。FWA(Fixed Wireless Access:固定無線アクセス)の用途のほかに、移動体向けのモバイル通信での利用も考えられています。(モバイルでは、最大通信速度が約15Mbps、通信可能距離が最大約3km。)

WiMAXについては、固定向けの方式とモバイル(移動端末)向けの方式がそれぞれ規格化されています。現在では、IEEE 802.16-2004がWiMAX、IEEE 802.16eは特にMobile WiMAXといわれます。

ジャンボフレーム(Jumbo Frame)

 

イーサネット(Ethernet)におけるデータ送受信単位をフレーム(Frame)といい、そのフレームサイズは 1,518 バイトであることは、よく知られていることと思われます。

ジャンボフレーム(Jumbo Frame)は、ギガビットイーサネット(Gigabit Ethernet)において、この1,518バイトのフレームサイズよりも大きいサイズで送受信を行うことのできる機能です。

ジャンボフレームにおけるフレームのサイズは、その機器によってさまざまといえます。ギガビットイーサネット製品の検討の際には、この点についても注意深く見てみてみたほうがよいようです。

 

コーデック(CODEC)

コーデック(CODEC)には、主に次のような2つの意味があります。

 

(1)COder-DECoder

アナログ信号をデジタルデータに変換し、また、その逆の変換をする電子回路をいいます。関連する用語として、A/D コンバータ(または ADC:アナログ-デジタル変換回路)や D/A コンバータ(または DAC:デジタル-アナログ変換回路)があります。

また、信号やデータを一定の規則に従って符号化/復号する回路や装置、ソフトウェアのことを指す場合もあります。

この場合、エンコード(encode:符号化)、デコード(decode:復号)という用語もよく用いられます。

エンコード(符号化)を行う装置やソフトウェアはエンコーダ、デコード(復号)を行う装置やソフトウェアはデコーダと呼ばれます。

なお、エンコードは、符号化された文字コード(Shift_JISやEUC-JPなど)を指す用語としても用いられています。

 

コーデックは、変換に利用する技術・方法(アルゴリズム)を指す場合もあります。

 

(2)COmpresser-DECompressor

データを圧縮/伸張するソフトウェアのことをいいます。

そして、データを圧縮することや、圧縮に利用する技術・規格・方法(アルゴリズム)を指す用語として、エンコードが使われる場合も多くあります。

最近は、動画配信などマルチメディア通信に関連した技術が話題となることが多いので、コーデックやエンコードは、圧縮に関する用語としで登場することが多いようです。

ACL(Access Control List)

ACL(Access Control List:アクセス制御リスト)は、パケットフィルタリング(パケット単位で送受信をコントロールする技術)において、設定するルール、およびそのルールの設定機能をいいます。アクセスリスト(Access List)ともいわれます。

なお、パケットフィルタリングを行うルータのことを、スクリーニング・ルータと呼ぶことがあります。ファイアウォールを構成する際に利用される場合があります。この場合、スクリーニング・ルータは、ネットワークレベルのファイアウォールとも説明されます。

ただ、このスクリーニング・ルータによるパケットフィルタリングだけでは、情報セキュリティ上、十分とはいえない場合もあり、NAT(Network Address Translation)機能を併用したり、プロキシサーバを併設したりするなど、他の方法との組み合わせで構成されることも多いようです。さらに、多機能なファイアウォール製品が利用されることもあります。

 

さて、ACLについては、情報セキュリティ技術に関する学習書で取り扱われる項目で、CCNAでも登場する項目です。なお、CCNAでは、アクセスリスト(Access List)の呼び名が使われることが多いようです。

IP ネットワークを対象としたアクセスリストを特に IP アクセスリストといい(CCNAでは、標準 IP アクセスリストと拡張 IP アクセスリストを学習することになります)、主として IP アドレス、TCP/UDP プロトコルおよびポート番号が、パケットフィルタリングの対象となります。

トランク(trunk)

「木の幹」という意味です。

VLAN(Virtual LAN)において、複数のスイッチにそれぞれ接続されている複数の VLAN 情報を、そのスイッチ間において1つのポートと1本のケーブルで、それぞれ同一の VLAN 同士で交換を可能にする技術です。

トランク用プロトコルには、IEEE が標準化した IEEE802.1Q と、Cisco Systems 社の ISL(Inter-Switch Link) があります。

IEEE802.1Q では、Ethernet フレームに、32 ビットのタグが埋め込まれます。ISL では、Ethernet フレームをカプセル化します。

一般に、VLAN を識別するために VLAN ID を Ethernet フレームに埋め込むことを VLAN タギング(または、タギング)といいます。

また、ISL では、Ethernet フレームをカプセル化することを ISL タギングといいます。 (さらに、ISL では、VLAN IDのフィールドもあり、VLAN ID の埋め込みもされます。)

VPN と IPsec

情報処理技術者試験の午前試験過去問題より、VPN と IPsec に関する出題をいくつかみてみます。試験問題の全文については、情報処理技術者試験センターのWebサイト http://www.jitec.jp/ にて公開されています。

 

平成17年度テクニカルエンジニア(ネットワーク)試験の午前試験の問40。

問40 インターネット VPN を実現するために用いられる技術であり、ESP(Encapsulating Security Payload)や AH(Authentication Header)などのプロトコルを含むものはどれか。

ア IPsec

イ MPLS

ウ PPP

エ SSL

答えは、ア。

ESP(Encapsulating Security Payload)は、IP パケットの暗号化と認証の機能を、AH(Authentication Header)は、IP パケットの認証機能を提供します。

IPsec には2つの通信モードがあります。トランスポートモードは、送信ホストから受信ホストまでの全通信区間で IPsec による暗号化が行われます。トンネルモードは、経路途中のゲートウェイ間で IPsec による暗号化が行われます。

 

平成18年度テクニカルエンジニア(情報セキュリティ)試験の午前試験の問23。

問23 IPsec に関する記述のうち、適切なものはどれか。

ア IKE は IPsec の鍵交換のためのプロトコルであり、ポート番号80が使用される。

イ 鍵交換プロトコルとして、HMAC-MD5 が使用される。

ウ トンネルモードで暗号化を使用すると、元のヘッダまで含めて暗号化される。

エ ホストAとホストBとの間で IPsecによる通信を行う場合、認証や暗号化アルゴリズムを両者で決めるために ESP ヘッダではなく AH ヘッダを使用する。

答えは、ウ。

トンネルモードで暗号化される情報については、次の問題も参照してみてください。

肢アに関連して、IKE(Internet Key Exchange)は、SA(Security Association:通信を開始する際に保持・適用する暗号化アルゴリズムなどのセキュリティに関する情報、および、それによる通信路)の自動生成と管理を行うプロトコルです。

ちなみに、ISAKMP(Internet Security Association and Key Management Protocol)は、IKE プロトコルの手順に従って実際にパラメータを交換するプロトコル、そして、Oakley(Oakley Key Determination Protocol)は、実際に鍵を交換するためのプロトコルのひとつとなります。

肢イに関連して、IPsec の AH、ESP に使用される認証アルゴリズムとして、HMAC-MD5、HMAC-SHA1があります。また、ESP に使用される暗号化アルゴリズムとしては、DES-CBC、3DES-CBC、AES-CBC があります。

 

平成19年度テクニカルエンジニア(情報セキュリティ)試験の午前試験の問12。

問12 図は IPsec のデータ形式を示している。ESP トンネルモードの電文中で、暗号化されているのはどの部分か。

新 IP ヘッダ ESP ヘッダ オリジナル IP ヘッダ TCP ヘッダ データ ESP トレーラ ESP 認証データ


ア ESP ヘッダから ESP トレーラまで

イ TCP ヘッダから ESP 認証データまで

ウ オリジナル IP ヘッダから ESP トレーラまで

エ 新 IP ヘッダから ESP 認証データまで

答えは、ウ。

トンネルモードでは、暗号化の範囲は、もとの IP パケットの IP ヘッダから ESP トレーラまで。認証(ハッシュの対象)の範囲は、ESP ヘッダから ESP トレーラまで。

ちなみに、トランスポートモードでは、次のようになります。

IP ヘッダ ESP ヘッダ TCP ヘッダ データ ESPトレーラ ESP 認証データ

トランスポートモードでは、暗号化の範囲は、TCP ヘッダから ESP トレーラまで。認証(ハッシュの対象)の範囲は、ESP ヘッダから ESP トレーラまで。

 

平成18年度テクニカルエンジニア(ネットワーク)試験の午前試験の問41。

問41 IP ネットワークの VPN サービスを実現する技術の一つである MPLS の説明として、適切なものはどれか。

ア IP プロトコルに暗号化や認証などのセキュリティ機能を付加するための規格である。

イ L2F と PPTP を統合して改良したデータリンク層のトンネリングプロトコルである。

ウ PPP データフレームを IP パケットでカプセル化して、インターネットを通過させるためのトンネリングプロトコルである。

エ ラベルと呼ばれる識別子を挿入することによって、IP アドレスに依存しないルーティングを実現する、ラベルスイッチング方式を用いたパケット転送技術である。

答えは、エ。

MPLS(Multi Protocol Label Switching)では、IP パケットにラベルと呼ばれる情報を付加し、そのラベルによって IP パケットの転送を行います。IP-VPN を実現する技術のひとつとされています。

VPN(Virtual Private Network)の概要

 

VPN(Virtual Private Network)は、インターネットなどオープンなネットワーク上で構築されている仮想的な専用回線網をいいます。

VPN には、主にインターネットを利用するインターネット VPN と、通信事業者が運用する閉域ネットワークを利用する IP-VPN とがあります。

 

インターネット VPN での技術要素としては、IPsec(IP Security Protocol)があげられます。IPsec は、IP パケットの暗号化と認証機能を実現する技術です。

インターネット VPN では、そのほかに SSL が利用される場合もあります。この場合は、SSL-VPN と呼ばれます。

 

IP-VPN での技術要素としては、MPLS(Multi Protocol Label Switching)があります。エッジルータとラベルスイッチルータ(コアルータともいわれます)という専用のルータで IP パケットを転送します。また、IP パケットのヘッダにラベルという IP-VPN 専用の情報が付加されます。

IP-VPN は、広域イーサネットともよく比較されます。主として、IP-VPN は、ネットワーク層(レイヤ3)での通信であるのに対して、広域イーサネットは、データリンク層(レイヤ2)での通信となります。広域イーサネットでの技術としては、VLAN(Virtual LAN)があげられます。

 

そのほか、例えば、リモート拠点から ISP にアクセスして本社拠点に接続する場合の技術として、PPTP/L2TP があげられます。

 

コンバージェンス(convergence)

ネットワーク上の関連するルータ同士で、一貫した経路情報を維持し、通信経路が安定している状態をコンバージェンス、または、経路情報の収束といいます。

 

各ルーティングプロトコルで、コンバージェンスに関連しそうな事項をちょっと確認してみます。

 

まず、ディスタンスベクタ型のRIPでは、30秒(デフォルト値)ごとにアドバタイズされます(ルータから他のルータへ経路情報を伝えます)。IGRP の場合は、90秒ごとです。

このとき、ルータ間で交換される経路情報をルーティングアップデート(Routing Update)といいます。このルーティングアップデートをもとに、各ルータはルーティングテーブルを作成します。

なお、ディスタンスベクタ型のルーティングプロトコルでは、ルータの台数が多いほどコンバージェンスまでに時間がかかります。また、ルーティングアップデートがブロードキャストされることから、ネットワークのトラフィックの増加やルータ以外の機器での CPU 負荷の増加がいわれています。さらに、ルーティングループという現象が発生する可能性があります。(スプリットホライズン、ルートポイズニング、といったような解消策がとられます。)

 

つぎに、リンクステート型の OSPF では、隣接するルータ間で10秒(デフォルト値)ごとに Hello パケットを送信します。この隣接するルータをネイバー(neighbor)といいます。そして、ネイバーの状況をネイバーテーブルに反映します。

各ルータは、マルチキャストでネイバーと LSA (Link State Advertisement)を交換し、それぞれ、 LSDB (Link State Database:リンクステート・データベース)を作成します。これにより、コストによる最短経路を計算して、各ルータはルーティングテーブルを作成します。

 

また、マルチアクセスネットワークにおいては、OSPF を設定する各ルータのなかから DR (Designated Router:代表ルータ) BDR (Backup Designated Router:バックアップ代表ルータ)が選出されます。DR と BDR はお互いにネイバー関係を形成し、そのほかの各ルータは、DR および BDR とネイバー関係を形成します。これにより、コンバージェンスが高速化します。

RSVP

情報処理技術者試験の午前試験過去問題から、RSVP をみてみます。試験問題の全文については、情報処理技術者試験センターの Web サイト http://www.jitec.jp/ にて公開されています。

 

平成19年度テクニカルエンジニア(情報セキュリティ)試験の午前試験の問19。

問19 RSVP の説明として、適切なものはどれか。

ア IP ネットワークにおいて、ホスト間通信の伝送帯域を管理するためのプロトコルである。

イ LAN システムにおいて、物理的なケーブルやノードの接続形態に依存せず、ノードを任意に論理的なグループに分ける技術である。

ウ PPP によるデータリンクを複数束ねることができるように拡張したプロトコルである。

エ リモートアクセスを利用するユーザの認証を行うためのプロトコルである。

答えは、ア。

 

平成17年度テクニカルエンジニア(ネットワーク)試験の午前試験の問30。

問30 RSVP の説明として、適切なものはどれか。

ア QoS を実現するために、IPパケットに優先度情報を付加することによって、インターネットを流れるトラフィックを制御する。

イ オーディオ・ビジュアル情報などの連続した情報の発生源を遠隔制御する。

ウ シーケンス番号とタイムスタンプを付加することによって、リアルタイム情報を伝送するパケット間の時間差を保証する。

エ ネットワーク資源の予約を行い、ノード間でのマルチメディア情報のリアルタイム通信を実現する。

答えは、エ。

 

RSVP(Resource Reservation Protocol)は、IP ネットワーク上で送信先までの帯域を予約し、通信品質を確保するプロトコル、ということになります。リアルタイムの動画像配信などで一定の伝送速度が連続的に必要なシステムに有効です。

メトリック(Metric)

最初に、ルーティングプロトコルの分類について復習してみます。

タイプ ルーティングプロトコル名 策定団体・企業
IGP RIP IETF
OSPF IETF
IGRP Cisco Systems
EIGRP Cisco Systems
IS-IS ISO
EGP EGP IETF
BGP IETF

IGP(Interior Gateway Protocol)は、AS(Autonomous System:自律システム)の内部で使用されるルーティングプロトコルです。自律システムとは、サービスプロバイダのように1つの組織などで管理されているネットワークシステム(ネットワークの集合体)のことです。

EGP(Exterior Gateway Protocol)は、AS間で経路情報を交換するために使用されるルーティングプロトコルです。EGPは、BGPに取って代わられるようになり、現在ではほとんど使用されていません。

次に、IGP について、アルゴリズムによる分類をみてみます。

ルーティングプロトコル名 アルゴリズム
RIP ディスタンスベクタ型
IGRP
OSPF リンクステート型
IS-IS
EIGRP ハイブリッド型

ディスタンスベクタ(Distance-Vector:距離ベクトル)型のルーティングプロトコルは、メトリック(Metric)で経路を判定する方式です。メトリックは、経路選択に使用する判断基準という事になります。

RIP では、ホップカウント(ホップ数、目的のネットワークまでに経由するルータの数)をメトリックとしています。なお、最大ホップ数が15に制限されており、16以上は到達不能と判断します。

IGRP では、複数のメトリックを使用します(複合メトリック:Composite Metric)。複合メトリックの構成要素は、帯域幅・遅延・信頼性・負荷・MTU の5つです。なお、デフォルトでは帯域幅と遅延の2つを使用しています。

ペイロード(payload)

有効積載量などのように訳されます。

ネットワーク関連の書籍でも良く使われる用語ですが、ペイロードとは何のことか?その意味を説明をしている書籍はほとんどなかったように思われます。ネットワークの勉強をはじめた頃に、つまづいてしまった用語でした。いまなら、ネットで簡単に調べられるので、そのようなことはないと思いますが・・・。

さて、一般にパケットは、ヘッダ部とデータ部に大きくわけられます。ペイロードはデータ部にあたる部分をいいます。

コンピュータ・ネットワークは、階層構造が大きな特徴で、一般に、下位層のプロトコルは上位層で作られた通信データをカプセル化して、つまり、ヘッダ情報を付加していきます。ペイロードは、その階層のプロトコルのヘッダ情報以外の部分を指すとも説明できます。

ペイロードは、IP パケットの構成の説明で使われることが多いようですが、イーサネット・フレームの構成の説明でも使われることもあります。

VLSM(可変長サブネットマスク)

サブネットマスクは本来、固定長ですが、サブネット化されたIPアドレスをさらにネットワーク内で細分化する方法があります。この方法をVLSM(Variable Length Subnet Mask:可変長サブネットマスク)といいます。

たとえば、ネットワークアドレス 192.168.0.0/24 において、サブネットマスク 255.255.255.128 を適用してサブネット化したときは、192.168.0.0/25 と192.168.0.128/25 の2つのサブネットワークに、それぞれ126台分のホストアドレスの割り当てが可能となります。

そして、VLSM を利用すると、さらにそのサブネットワークをサブネット化する、というようなことができるようになります。たとえば、

・192.168.0.0/25

(割り当てが可能なホストアドレス数は126)

・192.168.0.128/26

(割り当てが可能なホストアドレス数は62)

・192.168.0.192/26

(割り当てが可能なホストアドレス数は62)

というような3つのサブネットワークを構成することもできることとなります。

VLSM を利用する主な理由としては、IP アドレスの効率的な割り当てをすることにあります。

なお、VLSM に対応したルータおよび RIPv2、OSPF などのクラスレスルーティングプロトコルのサポートが必要です。

APIPA

まずは練習問題から。

問題:APIPA(Automatic Private Internet Protocol Addressing)によって設定されたIPアドレスは、次のどれですか。

A. 169.253.0.1

B. 169.254.0.1

C. 169.255.0.1

D. 192.254.0.1

 

かなり以前ですが、Windows 2000 の PC に、USB の有線 LAN ネットワーク・アダプタを接続してみたところ、メモリ不足や、 USB ポートのエラーが表示されたあとに、フリーズ。しかたがなく、電源ボタンで落として再起動。すると、いままでつながっていた無線 LAN もインターネットにつながらなくなってしまいました。

このとき、IPCONFIG コマンドで状況を確認してみると、IP アドレスが、169.254.・・・で始まるアドレスになっていました。

Windows 2000 には、APIPA(Automatic Private Internet Protocol Addressing)の機能がありました。ネットワークに DHCP サーバがない状態でも、IP アドレスの自動設定を行う機能です。サブネットマスク 255.255.0.0、クラス B のアドレス 169.254.0.1 から 169.254.255.254 の範囲で割り当てられます。なお、デフォルトゲートウェイは設定されませんので、ブロードバンドルータなどでインターネット接続できない状態になります。

問題の答えは、B となります。

マルチキャスト

練習問題からはいります。

問題:IPv4のマルチキャストに関する記述のうち、適切なものはどれですか。

ア マルチキャストアドレスは、先頭1ビットが、”0”である。

イ マルチキャストアドレスには、クラスDのアドレスが使用される。

ウ マルチキャストパケットは、ネットワーク上のすべてのコンピュータによって受信される。

 

まず、IP アドレスは、主にクラスA、クラスB、クラスC の3つのクラスに分けられていることは、一般によく知られています。

クラスAは、サブネットマスクが 255.0.0.0 で、とり得るアドレスの範囲は、0.0.0.0 から 127.255.255.255 です。アドレスの先頭1ビットが、”0”です。

クラスBは、サブネットマスクが 255.255.0.0 で、とり得るアドレスの範囲は、128.0.0.0 から 191.255.255.255 です。アドレスの先頭2ビットが、”10”です。

クラスCは、サブネットマスクが 255.255.255.0 で、とり得るアドレスの範囲は、192.0.0.0 から 223.255.255.255 です。アドレスの先頭3ビットが、”110”です。

ほかに、クラスDという特別なクラスが決められています。クラスDのアドレスの範囲は、224.0.0.0 から 239.255.255.255 です。アドレスの先頭4ビットが、”1110”です。マルチキャスト(multicast)専用のアドレスです。

 

ところで、IP による通信は、ユニキャスト(unicast)と呼ばれる1対1の通信と、ブロードキャスト(broadcast)と呼ばれる1対Nの通信が一般的です。

クラスDにおけるマルチキャスト通信も、1対Nの通信ですが、ブロードキャスト通信との違いは、ブロードキャスト通信は、同一のネットワーク ID のアドレスが割り当てられているホストすべてに対する通信であるのに対して、マルチキャスト通信は、ホストグループ(マルチキャストグループ)と呼ばれる論理ネットワークに登録されているすべてのホストやルータに対する通信となります。

 

上記の問題の答えは、イとなります。

 

ちなみに、マルチキャストに関連する用語をいくつかみてみます。

IGMP(Internet Group Management Protocol)は、ホストグループ(マルチキャストグループ)を管理するプロトコルです。主に、ホストやルータがグループに参加/離脱することを管理します。

RTP(Real-time Transport Protocol)と RTPC(Real-time Transport Control Protocol)、さらに RTSP(Real-time Streaming Protocol)と、マルチキャスト通信との組み合わせで、動画データなどの同時配信のしくみに利用することができます。なお、これらのプロトコルは、ユニキャストでも使われます。

IP マルチキャスト放送は、簡単にいうと、マルチキャストを利用した放送ということになります。インターネットの技術面よりも、著作権問題から認知されている方も多いことと思います。

IP アドレス(IPv4)に関する基本問題

ネットワーク試験では、IPアドレス(IPv4)に関する問題がよく出題されます。基本的な問題で、知識のおさらいをしてみます。

 

[問題1]IPv4のIPアドレスは何ビットで構成されているか。

 

答えは、32ビット。

 

IPv4のIPアドレスは、例えば、192.168.0.1 のように表記します。これは、

(8ビット).(8ビット).(8ビット).(8ビット)

の構成で、合計で、32ビットになります。

 

[問題2]ネットワークアドレスが 192.168.16.40/29 のとき、最適なものはどれか。

(平成19年度情報処理技術者試験テクニカルエンジニア情報セキュリティ試験午前問題の問13より。なお、試験問題の全文については、情報処理技術者試験センターの Web サイト http://www.jitec.jp/ にて公開されています。)

ア 192.168.16.48 は同一サブネットワークのIPアドレスである。

イ サブネットマスクは、255.255.255.240 である。

ウ 使用可能なホストアドレスは最大 6 個である。

エ ホスト部は 29 ビットである。

 

答えの前に、IP アドレスに関するいくつかの用語を確認してみます。

まず、IP アドレスには、ネットワーク ID とホスト ID の2つの意味が含まれています。IP アドレスは、ネットワーク部とホスト部からなるともいいます。そして、この境界を表現するのが、サブネットマスクです。

IP アドレスに対してサブネットマスクで論理積(AND)をとったものが、ネットワーク ID となります。例えば、IP アドレスが、192.168.0.1 で、サブネットマスクが、255.255.255.0 のとき、ネットワーク ID は、192.168.0.0、ホスト ID は、1 となります。

さて、上記の問題では、192.168.16.40/29 と表現されています。IP アドレスは、192.168.16.40 で、さらにサフィックス /29 が付加されています。この /29 は、CIDR(Classless Inter-Domain Routing)による、サブネットマスクの表現になります。サブネットマスクのビット数にあたり、この /29 の場合は、255.255.255.248 と同じになります。ちなみに、サブネットマスクが 255.255.255.0 のときは、/24 となります。

このサブネットマスクの表現の変換には、ちょっと訓練(あるいは暗記)が必要ですが、いったんビット表現にすることで理解できると思います。

/29 は、255.255.255.248、11111111.11111111.11111111.11111000 となります。

このことから、選択肢イとエは、間違いとなります。

 

ところで、IP アドレスには、ネットワークアドレスとブロードキャストアドレスというものがあります。

これらのアドレスには、ホストを割り当てできないというルールがあります。ネットワークアドレスは、ホスト ID のすべてのビットが 0 となるもので、ブロードキャストアドレスは、ホスト ID のすべてのビットが 1 となるものです。

192.168.16.40/29 の場合は、ネットワークアドレスが、192.168.16.40(11000000.10101000.00010000.00101000)、ブロードキャストアドレスが、192.168.16.47(11000000.10101000.00010000.00101111)となります。

選択肢ウについて、ホスト ID は 3 ビットで、8 つのアドレスの割り当てが可能ですが、ネットワークアドレスとブロードキャストアドレスを割り当てるルールがあることから、使用可能なホストアドレスは最大 6 個となり、この肢が正解となります。

 

念のため、IP アドレス 192.168.16.48 は、11000000.10101000.00010000.00110000 となります。

わたしは、このような試験問題に備えて、

 

2進数 → 10進

10000000 → 128

01000000 → 64

00100000 → 32

00010000 → 16

00001000 → 8

00000100 → 4

00000010 → 2

00000001 → 1

 

を暗記して、試験に臨んでいました。例えば、00101000 は、32 + 8 で 40 という計算になります。

ウェルノウンポート

ウェルノウンポート(well-known ports)も、ネットワーク試験では、基礎知識として出題されることが多いです。

ポート番号は、0 から 65535 までありますが、0 から 49151 までは事前に用途が割り当てられています。そして、この範囲の中で、特に 0 から 1023 までは、ウェルノウンポート番号と呼ばれ、利用頻度が高い用途(プロトコル)が割り当てされています。

一般的なネットワーク試験で対象となるのは、TCP/IP におけるウェルノウンポートでしょう。ネットワークの専門書では、多くのウェルノウンポートを解説していますが、初中級エンジニアを対象とする試験で出題対象となるものは、ある程度範囲が限定されます。(ただ、ベンダ試験などの場合は、問われる対象が違ってくることがあります。)

TCP/IP でのウェルノウンポートで、最低限覚えておきたいと思われるものをあげてみました。

ポート番号 対応プロトコル サービス名
7 TCP,UDP Echo
20 TCP,UDP FTP(Data)
21 TCP,UDP FTP(Control)
22 TCP,UDP SSH
23 TCP,UDP Telnet
25 TCP,UDP SMTP
53 TCP,UDP DNS
80 TCP,UDP HTTP
110 TCP,UDP POP3
119 TCP,UDP NNTP
123 TCP,UDP NTP
143 TCP,UDP IMAP
161 TCP,UDP SNMP
443 TCP,UDP HTTPS

これらのウェルノウンポートに関連しそうな用語をいくつかみてみます。

Outbound Port 25 Blocking は、ここ数年よく見る用語となりました。迷惑メール対策として導入された手法です。25 番ポートの外部への通信を遮断することで、外部のメールサーバーとの直接の通信を禁止するものです。メール送信で外部の SMTP サーバを利用する場合、主に接続しているプロバイダと、利用する SMTP サーバのプロバイダが異なる場合があてはまりますが、そのときは、SMTP AUTH と 587 番ポートを利用するなどの措置がとられます。

HTTP トンネルは、本来、Web 用途の 80 番ポートを使って、他のポート番号のサービスを利用する場合の手法となっています。セキュリティ対策のためにファイアウォールを通過できるポート番号が限られることが背景にあるようです。

SSH ポートフォワーディングは、他のポート番号のサービスを、SSH で確立されている暗号化された通信経路を使って利用する場合の手法をいいます。この場合の通信経路を SSH トンネルと呼ぶこともあります。

スリーウェイハンドシェイク

スリーウェイハンドシェイク(3 way handshake)は、TCP のコネクションを確立する手順のことをいいます。3ステップからなることからこのように呼ばれます。

 

1.送信側のホストから受信側のホストへ SYN パケットが送信されます。

2.受信側のホストから送信側のホストへ SYN - ACK パケットが送信されます。

3.送信側のホストから受信側のホストへ ACK パケットが送信されます。

 

SYN は、TCP ヘッダ内にフラグフィールドとしてあります。「コネクションの確立を要求する」という意味です。

また、ACK も、TCP ヘッダ内にフラグフィールドとしてあり、「確認応答」という意味です。

 

ちなみに、手順の2番目において、受信側のホストからは、SYN フラグと ACK フラグの立ったパケットが送信されることになります。

このことは、受信側のホストからは、送信側のホストへ ACK の返信と同時に、SYN による接続確立要求の送信を行っていることになります。このような返信とともに他の通信データ(通信要求)を同じパケットで送信することは、ピギーバックといわれています。

オクテット

ネットワークの専門書を読んでいると、例えばフレームの構成やパケットの構成の説明において、その長さやフィールド長の単位に、バイトが使われていたり、オクテットが使われていたりします。

オクテットは、情報通信の分野では、8ビット単位を意味しています。つまり、1オクテット=8ビットとなります。

1バイトも8ビットですから、1オクテット=1バイトということになります。

では、なぜ、ネットワークの専門書ではオクテットが使われていることが多いのでしょうか。

初期のコンピュータでは、1バイトが必ずしも8ビットでなかった時代があったといわれています。そのため、正確に(厳密に)8ビットという単位を表現するために、オクテットが使われたといわれています。

現在では、1バイト=8ビットが定着していますので、バイトで表現しても間違いではないということになります。

コンピュータ利用の広がりは、標準化されたネットワーク技術があってこそといえる点もあると思います。コンピュータアーキテクチャの変化に左右されない標準化ネットワークへのひとつのあらわれが、オクテット表現にあったのかもしれません。

ネットワークアーキテクチャ

まだ、イーサネットおよび TCP/IP が、ごく一部のわずかな環境でのみ利用されていた頃、その頃のネットワークの解説書には、ネットワーク技術の歴史に関する解説なども含めて、ネットワークアーキテクチャということばがよく使われていたような気がします。

 

ネットワークアーキテクチャということばが使われた経緯については、ITPro Dictionary でのネットワークアーキテクチャの解説ページ(http://itpro.nikkeibp.co.jp/word/page/10001239/)をたまたま読んで、わたしがわずかに記憶していた、SNA を中心とした歴史がちょっとだけ思い出されました。といっても、特に残っていた記憶や現在の認識と一致していたのは、

「米 IBM が標準通信方式として SNA(Systems Network Architecture)を発表して以来,大手コンピュータ・メーカーが相次いで独自のネットワーク・アーキテクチャを発表したが、最近では TCP/IP の採用が目立っている。」

といったようなことです。

まれに、TCP/IP アーキテクチャということばが使われている文章をみかけることがありましたが、わたしの感覚では、一般的には使われてはいないものと感じます。ネットワーク技術の標準として、TCP/IP が定着しているからなのかもしれません。なんとなく、アーキテクチャということばからは、考案というか着想というか、そして、競合のありうるような状態において使われる場面が多いようにも感じられます。

 

ちなみに、最近では、次世代ネットワーク NGN の解説で、「NGN のネットワークアーキテクチャ」と使われているのを見ることもあります。

 

さて、一般にアーキテクチャの解説にあたっては、技術要素の階層図が用いられたり、機能要素間の接続関係を図であらわしたものが使われたりすることが多いと思います。これにより、重要機能とそれを実現する主要な技術要素、そしてそれらの関係を明らかとなります。

さらに、ネットワークアーキテクチャにおいては、プロトコル体系も重要である点が特徴といえそうです。

 

最近のコンピュータ関連技術、あるいは IT 技術は、ネットワーク技術抜きでは考えられないともいえそうです。ネットワークアーキテクチャは、他の上位アーキテクチャの構成要素として登場する場面も多いようです。

アーランの計算問題(2)

平成18年度情報処理技術者試験テクニカルエンジニア(ネットワーク)試験の午後2試験の問1からです。なお、試験問題の全文については、情報処理技術者試験センターの Web サイト http://www.jitec.jp/ にて公開されています。

「問1 営業支援システムに関する次の記述を読んで、設問1から6に答えよ。」という出題です。

この問題文のなかから、呼量(アーラン)の計算に関係しそうな部分を抜き出します。




顧客が要求するサービスの判定には、音声ガイダンスに従って顧客が入力したトーン信号を使用する。IVRが、入力されたトーン信号に従って、音声による情報提供や営業店への電話転送を行う。

A社の調査結果では、顧客からの電話の8割は音声応答システムで対応可能であり、残りの2割は営業店での人による対応が必要な問い合わせであった。



全営業店を合計すると、ピーク時には1,000呼/時の問合せ電話を処理する必要があった。かかってきた電話に対して、音声応答システムで対応可能か、人による対応が必要かを判定するために、平均1.5分を必要とした。その判定後の音声応答システムによる対応は、1呼に対して平均4.5分であった。また、人による対応では、前記の判定時間を含めて平均15分必要であった。

以上の条件でのピーク時の呼量は、【 h 】アーランとなる。電話の呼損率を1%未満にするため、表4を用いて必要最小限の回線数を算定し、本社センタに設置されたVoIP-GWの外線電話着信用には【 i 】回線を準備することにした。




表4 呼損率表(呼損率1%未満)
呼量(単位:アーラン)   55    70    85   100   115   130 
必要回線数   69    85   101   117   133   149 



設問4で、【 h 】、【 i 】に入れる適切な数値が問われています。

問題文全部を読まないと、事例の状況は非常にわかりにくいと思いますが、この抜き出しだけでなんとか【 h 】、【 i 】は埋められるのではないかと思います。

まず、ピーク時の1,000呼/時のうち、8割は音声応答システム、2割は営業店での人による対応となります。

音声応答システムは、

800呼/時 × (1.5分+4.5分)÷60分 = 80アーラン

となり、営業店での人による対応は、

200呼/時 × 15分÷60分 = 50アーラン

となります。よって、

80アーラン + 50アーラン =130アーラン

【 h 】には、130が入ります。

さて、呼損率は、回線がつながらない確率をいいます。アーランB式という公式が使われますが、ちょっと複雑なので、呼損率表が便利です。問題文でも提示されています。

【 i 】には、呼量が130アーランで、呼損率を1%未満にするために必要最小限の回線数が入ります。表4から、130アーランで必要回線数は149であることになります。

アーランの計算問題

情報処理技術者試験テクニカルエンジニア(ネットワーク)試験の午前試験問題で、必ず出題されていたのが呼量(アーラン)を求める問題です。また、平成19年度春のテクニカルエンジニア(情報セキュリティ)試験の午前試験問題でも出題されました。その問題をいくつかみてみようと思います。なお、試験問題の全文については、情報処理技術者試験センターの Web サイト http://www.jitec.jp/ にて公開されています。

平成19年度テクニカルエンジニア(情報セキュリティ)試験の午前試験の問22。

問22 20台の電話機のトラフィック量を調べたところ、電話機1台当たりの呼の発生頻度(発着呼の合計)は6分に1回、平均回線保留時間は36秒であった。このときの呼量は何アーランか。

ア 2

イ 4

ウ 5

エ 10

答えは、ア。

アーランは、トラフィック量の単位で erl が使われます。1回線を1時間占有したときに1アーランとする、という説明がわかりやすいと思います。そして、ここでは、

 

呼量(アーラン)=1時間当たりの呼数×平均保留時間

 

の式から求めるものとします。

 

問題にあてはめてみます。

電話機1台当たり「6分に1回」から、1時間で10回。電話機は20台なので、200回。

そして、「平均回線保留時間は36秒」は、時間にすると、36秒÷3600秒=0.01時間。

よって、1時間当たり200回×0.01時間=2アーラン。

 

平成18年度テクニカルエンジニア(ネットワーク)試験の午前試験の問36。

問36 ある企業の本店での内線通話を調査したところ、通話数が1時間当たり120回、平均通話時間が90秒であった。本店内線の呼量は何アーランか。

ア 0.03

イ 3

ウ 180

エ 10,800

答えは、イ。

120回×90秒÷3600秒=3アーラン。

 

平成17年度テクニカルエンジニア(ネットワーク)試験の午前試験の問37。

問37 180台の電話機のトラフィックを調べたところ、電話機1台当たりの呼の発生頻度(発着呼の合計)は3分に1回、平均回線保留時間は80秒であった。このときの呼量は何アーランか。

ア 4

イ 12

ウ 45

エ 80

答えは、エ。

60分÷3分×180台×80秒÷3600秒=80アーラン。

SAN の方式

次の文は、平成18年度情報処理技術者試験テクニカルエンジニア(ネットワーク)午後2試験の問2の問題文から一部分を抜き出したものです。なお、試験問題の全文は、情報処理技術者試験センターの Web サイト http://www.jitec.jp/ にて公開されています。

ディスク装置の集約には、サーバに直結した DAS(Direct Attached Storage)ではなく、SAN(Storage Area Network)や NAS(Network Attached Storage)が使われる。SAN には、ファイバチャネルを使った FC-SAN と、IP ネットワークを使った IP-SAN の2種類がある。

FC-SAN では、【 a 】機能を用いて、サーバと接続するディスク装置の組合せを定義することができる。IP-SAN では、同様の制御を行うために VLAN を使う場合が多い。

IP-SAN では、DAS で利用される入出力プロトコルを TCP/IP 通信に拡張した【 b 】を用いて、サーバとディスク装置との通信を実現する。NAS の場合には、NFS など【 c 】のためのプロトコルを利用し、PC やサーバからディスク装置のデータにアクセスする。

さて、抜き出した部分は、穴埋め問題の一部分になります。

【 a 】には、「ゾーニング」が入ります。

【 b 】には、「iSCSI」が入ります。

【 c 】には、「ファイル共有」が入ります。

NAS と SAN

はじめは、平成18年度秋期情報処理技術者試験AN・PM・AE共通午前試験問題からです。なお、試験問題の全文は、情報処理技術者試験センターの Web サイト http://www.jitec.jp/ にて公開されています。

問4 NASを利用すると達成できるものはどれか。

ア サーバごとに専用の磁気ディスクを接続しているシステムで、各磁気ディスクに発生している空き領域をシステム全体で有効に利用する。

イ 磁気ディスクに障害が発生しても、自動的に予備の磁気ディスクを起動してパリティ情報からデータを復元し、処理を継続する。

ウ 磁気ディスクのファイル領域の断片化によるヘッドの移動量の増大から、読み書きの速度低下や、故障を誘発しやすくなっているので、断片化を解消する。

エ データベースをアクセスするのに、習得に時間がかかるSQLを使わず、身近な表計算ソフトを操作する感覚でアクセスする。

正解は、ア。

NAS(Network Attached Storage)は、ネットワークに直接接続するタイプのストレージデバイスです。RAID 構成ハードディスク、ネットワークインターフェイス、OS、管理用ユーティリティなどを一体化した単機能サーバです。

なお、選択肢アで、「サーバごとに専用の磁気ディスクを接続しているシステム」と説明がありますが、この「サーバ」について、汎用的なサーバを思い浮かべてしまうと、単に一般的なファイル共有システムのようなことの説明と思ってしまって、NAS でなくても、と思ってしまいそうです。ただ、「サーバ」について、ストレージ専用サーバのようなものを思い浮かべることができたならば、正解に結びつけられそうそうです。

つぎに、平成19年度春期情報処理技術者試験テクニカルエンジニア(データベース)午前試験問題からです。

問7 複数のサーバに個別の外部記憶装置を接続する代わりに、ファイバチャネルを用いた SAN 装置を導入することの利点はどれか。

ア 安価な記憶装置を用いて容易かつ安価に大容量の外部記憶が実現できる。

イ サーバ間で負荷分散を実現でき、処理要求の増減に柔軟に対応できる。

ウ サーバや LAN を介さずに、データのバックアップが可能である。

エ ファイル共有が柔軟に行えるので、異機種サーバでのデータ交換が容易になる。

正解は、ウ。

SAN(Storage Area Network)は、外部記憶装置間、および、記憶装置とサーバとを接続する高速ネットワークのことです。

NAS は、LAN など多用途・多目的なネットワークにストレージを接続することになるのに対して、SAN は、ストレージ専用のネットワークを構成することになります。

※ストレージ:記憶装置

ネットワークの種類

まずは、つぎの問題をみてみます。

問題 LAN と WAN の特徴の違いを正しく説明したものは次の中のどれですか。

 

ア 通信事業者を介さずに接続するネットワークがLANであり、通信事業者が提供する通信回線を介して LAN よりも広い範囲で接続するネットワークが WAN である。

イ LAN では 1 km 以上離れたコンピュータの接続はできないが、WAN では距離の制限はない。

ウ LAN では光ケーブルのみが使われ、WAN ではメタルケーブルのみが使われる。

エ LAN で使用できるプロトコルは TCP/IP だけであるが、WAN ではその制約はない。

 

答えは、ア。

 

LAN(Local Area Network)は、一室内あるいは一フロア内、一施設内などの規模で構築されるネットワークをいいます。また、WAN(Wide Area Network)は、それよりももっと広い地域・範囲(他県や他国など)におよぶ規模で構築されるネットワークをいいます。

そして、WAN の特徴としてあげられるのは、通信事業者が提供する通信回線を利用するという点にあります。

その点、LAN は、導入したユーザーが主体となって管理・運営するというのが特徴といえそうです。

そのほか、MAN(Metropolitan Area Network)ということばもよく目にします。大学や企業の敷地内をカバーするネットワーク、あるいは、都市や市街地をカバーするネットワークとなります。また、50 km エリア内でのネットワークとして紹介されていることもあります。通信事業者を介する場合もあれば、そうでない場合もあるようです。

ちなみに、○○ Area Network の略語をほかにも目にすることがあります。

SAN は、Storage Area Network。PAN は、Personal Area Network。CAN は、Campus Area Network。

OSI 参照モデル

ネットワーク試験等では、OSI 参照モデルは、必須事項で、基本中の基本事項です。コンピュータシステムは、階層構造であることも大きな特徴ですが、この OSI 参照モデルは、そのことをよくあらわしていると思います。

第7層 アプリケーション層 ネットワーク・アプリケーション・プロトコル。HTTP や FTP などを利用するためのアプリケーションインターフェース機能など。
第6層 プレゼンテーション層 データの表現形式を規定。コード変換や暗号化、圧縮などの機能。
第5層 セッション層 通信の開始・終了などの制御方式を規定。
第4層 トランスポート層 データ転送の信頼性を確保するための方式を規定。
第3層 ネットワーク層 ネットワーク同士の通信方式を規定。一般に、この層で扱うデータの単位をパケットという。
第2層 データリンク層 ネットワークに接続されている機器間での通信方式を規定。一般に、この層で扱うデータの単位をフレームという。
第1層 物理層 ネットワークの物理的な接続や伝送方式の仕様を規定。

ちなみに、IEEE802 の LAN では、データリンク層をさらに、論理リンク制御(Logical Link Control:LLC)と媒体アクセス制御(Media Access Control:MAC)の2つの副層(sublayer)に分割しています。

さて、OSI 参照モデルは、ネットワーク機能の階層をあらわしていますが、コンピュータシステムでは、さらにこの上位に、OS やミドルウェア、アプリケーションプログラムなど、階層を積み上げて表現することもあります。コンピュータシステムは、このような階層構造によって機能を分割し、効率化されているといえます。

ただ、このような多層構造であるがために、たとえば障害が発生したときに、原因調査に時間がかかってしまうことがよくあります。障害は、最上位層で認識されますが、その原因が下位層のどれかである場合もありますし、ネットワーク上の他の機器のどこかの層であったりすることもあります。

なお、システム関連の書籍では、このようなときの原因解明ノウハウに焦点をあてたものもよくみられます。層によって担当エンジニアも異なることがほとんどでしょうし、基本的にエンジニアは越権行為を好まないと思いますので、切り分けと連携が重要なのだろうと思います。

O/R マッピング

 

リレーショナル・データベースの専用言語 SQL は、よくできた言語だとつくづくよく思っています。わたしは SQL92 というバージョンからおつきあいしています。

ただ、SQL は、他のプログラム言語と親和しにくいと感じられることがしばしばです。これまでに多くのプログラムインターフェースが登場してきましたが、正規化ルールにしたがって、実際のデータ群を分解してテーブルに Insert、Update する。トランザクションを制御する。Select では、非正規化された大量のデータをすべて変数(あるいはフィールド)に写す(あるいはマッピングしておく)など、これらのプログラミング上の煩雑さは大きなままです。

また、リレーショナル・データベースのカラム変更の容易さに比べて、プログラム対応は煩雑となることがしばしばです。

わたしは、だいぶ以前のことですが、EXCEL でデータベースのカラムを定義しておいて、マクロでテーブル定義の SQL 文を出力し、C 言語向けにカラムと対応した構造体と変数を出力するといったようなものを作ったことがありましたが、その効果は限定的でした。その当時は、データフォーマットの調整や、データの変数コピーの煩雑さ、そして、Insert、Update よりも Select の非正規化データの処理のプログラミングなどの煩雑さなどを解決できなかったことを思い出します。

 

さて、今は、オブジェクト指向設計・実装が主流ですから、クラス設計・実装において、このようなリレーショナル・データベースに対するプログラミングの煩雑さをどうやって軽減するか、プロジェクトのたびによく問題にあがることでした。特に非正規化の Select は、複数エンティティのリレーションによって発生し、その条件も内容も流動しやすく、プロセスごとに非正規化を考えると似たような SQL 文が多数発生しやすくなる、といったようなことをふまえて、どのようにクラス設計にするかが問題の中心となることも多かったと思います。

そして、プログラミングにおいては、SQL 文のコーデイング、カラムとフィールドの対応、条件の設定など、単純ではありますが、システムが大きいほどカラムも SQL 文も多くなり、そのコーディング量は膨大となり、単純ミスも発生しやすい作業でした。

 

O/R マッピングは、このようなプログラミング上の煩雑さを軽減するために考案された手法で、無償で公開されているO/R マッピングフレームワークもあります。

このような O/R マッピングの取り組みに、わたしはこの記事の最初にあるような SQL 言語に対する思い以上に感心しています。

 

最近では、モデリングに UML の使用が普及していますが、ER モデリングも使われ続けていて、整合性の調整の手間が気になることがしばしばありました。

オブジェクト指向設計・実装とリレーショナル・データベースの相性は、よいといえるものではありませんが、工夫してなんとかつきあっているといった感じでしょうか。

 

このごろは、XML データベースが書籍や雑誌で扱われるようになりました。オブジェクト指向との相性はよさそうです。これまでのリレーショナル・データベースの正規化・非正規化を主体に考えるのではなく、オブジェクト思考にまかせて考えればよいのかもしれません。

ただ、リレーショナル・データベースと SQL は、EUC のような作業と相性がよいといえそうです。このように考えると、O/R マッピングは、引き続き必要な技術となるのでしょう。しかし、そのような作業でも、思考・アプローチをかえれば、リレーショナルでなくとも本来の目的を達成できるのかもしれません。

 

ビジネス・インテリジェンス(BI)

Business Intelligence の略称で BI です。

定義としては、業務システムなどで蓄積される企業内の膨大なデータから分析・加工して、企業活動に活用することをいうとされています。

方式としては、ETL(Extract Transform Load)で基幹系システムなどに蓄積されたデータを抽出・加工し、データウェアハウス(Data WareHouse)のデータベースにロードする。そして、OLAP(Online Analytical Processing)あるいはデータマイニングによって分析、あるいは、レポーティングを行うというようなことです。

 

OLAPとデータマイニングの違いは?

一般的には次のようにいわれます。

OLAPは、データウェアハウスなどに集められた大量のデータをキューブと呼ばれる多次元構造データベースに格納し、これを様々な角度から検索・集計するものです。スライス&ダイス、ドリルダウンなどの機能を用います。

データマイニングは、大量のデータを統計的手法で分析するものです。ニューラルネットワーク、ディシジョンツリーなどが手法としてあげられます。

 

さて、大規模なデータウェアハウスを必要としないで分析時間もスピードアップしたBI(リアルタイムBIと呼ばれる)の登場も話題としてあるようです。

UNION ALL & NOT EXISTS

SQL では、 UNION ALL & NOT EXISTS がわたしの得意技でした。同じような SQL 結果を得るのに、LEFT JOIN 句がありましたが、LEFT JOIN 句では、DBMS によって結果を得るまでのレスポンススピードが大きく異なることが多かったのに対して、UNION ALL & NOT EXISTS では、DBMS による差異がほとんどありませんでした。

UNION ALL & NOT EXISTS を利用した SQL の例です。

 

 

試験情報、試験分類の2つのテーブルを試験分類コードで結合します。試験情報レコードに対する試験分類レコードは0か1存在します。

 

(SELECT a.ID,a.試験通番,a.試験名称,a.試験名短縮,a.試験記号,a.試験分類コード,a.表示順位,a.無効区分,a.作成日,a.更新日,b.ID,b.試験分類名称,b.試験分類名短縮,b.表示順位,a.試験コメント,a.試験情報1,a.試験情報2,a.試験情報3

FROM 試験情報 a,試験分類 b

WHERE a.試験分類コード=b.試験分類コード AND a.無効区分='0' AND b.無効区分='0')

UNION ALL

(SELECT a.ID,a.試験通番,a.試験名称,a.試験名短縮,a.試験記号,a.試験分類コード,a.表示順位,a.無効区分,a.作成日,a.更新日,0,'','',0,a.試験コメント,a.試験情報1,a.試験情報2,a.試験情報3

FROM 試験情報 a 

WHERE a.無効区分='0' AND

NOT EXISTS

(SELECT * FROM 試験分類 b WHERE a.試験分類コード=b.試験分類コード AND b.無効区分='0') )

ORDER BY 14,11,7,1 

 

UNION ALL 以前の SELECT 文では、試験分類コードで結合できる全レコードが対象となり、UNION ALL 以後の SELECT 文では、NOT EXISTS の条件で試験分類コードで結合できない試験情報テーブルのレコードが対象となります。そして、この SQL文の実行結果として、その両方のレコードが得られるというものです。

なお、UNION ALL では、その前後の SELECT 文で出力するカラムの数が一致している必要があります。また、ORDER BY 以降の数字は、それぞれの SELECT 文に指定しているカラムの位置の順番にあたります。

正規形

データベース設計における正規形について、情報処理技術者試験の午前問題を基に見てみることにします。なお、試験問題の全文については、情報処理技術者試験センターのWebサイト http://www.jitec.jp/ にて公開されています。

まずは、平成19年度テクニカルエンジニア(データベース)午前試験問題の問24からです。

問24 第1、第2、第3正規形とそれらの特徴aからcの組み合わせとして、適切なものはどれか。

a:どの非キー属性も、主キーの真部分集合に対して関数従属しない。

b:どの非キー属性も、推移的に関数従属しない。

c:繰返し属性が存在しない。

  第1正規形 第2正規形 第3正規形

答えは、ウ。

正規形の説明では、候補キーという用語がよく登場します。冗長がなく一意性を有する属性が候補キーとなります。その候補キーの中から主キー(Primary Key)が選ばれます。また、非キー属性は、候補キー以外の属性をいいます。

第2正規形は、第1正規形で、かつ、すべての非キー属性がすべての候補キーに対して完全関数従属するときのことをいいます。

関数従属とは、たとえば、属性Aの値を決めると常に属性Bの値が定まるとき、BはAに関数従属するといいます。(この場合、A→Bと表記します。)

そして、完全関数従属は、非キー属性が、候補キーを構成する複数の属性について関数従属しているような場合に、非キー属性には、候補キーを構成する一部の属性について関数従属(部分関数従属)はない、というような意味です。

なお、集合AがBの部分集合で、かつ、Bと等しくないとき、集合Aは集合Bの真部分集合であるといいます。「どの非キー属性も、主キーの真部分集合に対して関数従属しない。」とは、どの非キー属性も主キーを構成する一部の属性に対して関数従属するものではない、というようなことになりましょうか。まだ、第2正規化の余地があるということになります。

第3正規形は、第2正規形で、かつ、非キー属性のすべてが候補キーに非推移的に関数従属するときのことをいいます。

推移的に関数従属とは、たとえば、属性Aの値を決めると常に属性Bの値が定まり、なおかつ、そのときの属性Bの値により常に属性Cの値が定まるとき、CはAに推移的に関数従属するといいます。

第3正規形は、非キー属性の中に、候補キーに推移的に関数従属する属性がないことになります。

ちなみに、関数従属について、平成17年度テクニカルエンジニア(データベース)午前試験問題の問24もみてみます。

問24 関数従属に関する記述のうち、適切なものはどれか。ここで、A、B、Cはある関係の属性の集合とする。

ア BがAに関数従属し、CがAに関数従属すれば、CはBに関数従属する。

イ BがAの部分集合であり、CがAに関数従属すれば、CはBに関数従属する。

ウ BがAの部分集合であれば、AはBに関数従属する。

エ BとCの和集合がAに関数従属すれば、BとCはそれぞれがAに関数従属する。

答えは、エ。

さて、RDBのテーブル設計において、正規化は、必須のスキルです。ただ、必ずしも第3正規形まで進めればよいものでもなく、レコード件数やリレーションの複雑さに応じて、部分的に第2正規化そして部分的に第3正規化を行う、といったことも行われます。実際に非正規化の際にパフォーマンスが悪くなる、といったことはよくあることです。DBMSの性能に応じて、ということになりましょうか。あるいは、アプリケーションプログラムで調整可能な範囲で、ということにもなりましょうか。

ANSI/SPARC3層スキーマ

スキーマ(schema)は、「データベースの構造」というような意味になります。元々は、「概要」や「大要」といった意味です。

ANSI/SPARC3層スキーマでは、データベースの構造について、概念スキーマ外部スキーマ内部スキーマの3層を定義しています。

それぞれの層の説明の例としてよくあげられるのは、概念スキーマについては table 定義、外部スキーマについては view 定義、内部スキーマについては、物理ファイル定義です。

このANSI/SPARC3層スキーマに関して、平成17年度情報処理技術者試験テクニカルエンジニア(データベース)午前試験問題の問21をみてみます。なお、試験問題の全文については、情報処理技術者試験センターのWebサイト http://www.jitec.jp/ にて公開されています。

問21 ANSI/SPARC3層スキーマに関する記述として、適切でないものはどれか。

ア ANSI/SPARC3層スキーマの意義は、物理的データ独立性及び論理的データ独立性を確保することである。

イ 外部スキーマは、実世界が変化しても応用プログラムができるだけ影響と受けないようにするための考え方である。

ウ 関係データベースのビューやネットワークデータベースのサブスキーマは、概念スキーマに相当する。

エ 内部スキーマは、直接編成ファイルやVSAMファイルなどの物理ファイルを用いて、概念スキーマをコンピュータ上に実装するための記述である。

答えは、ウ。

この問題に関連して、わたしが個人的に感じていることをちょっと書いてみます。

アは、物理的データの独立性及び論理的データ独立性についての記述です。理論としてよくみることのある説明です。実際には、物理的データ構造を意識せずに論理的データを扱うことができますが、それはDBMSごとのしくみによって実現されているものがほとんどのように思えます。完全な独立性が確保されるかというと、そうともいえないこともありそうです。

イも理論としてよくみることのある説明です。ただ、実際には、外部スキーマの代表例である view を利用することがそれほど多くはないように思えます。メンテナンスや管理が煩雑になりますし、結局のところ、なんらかの変化がおきた時には応用プログラム(アプリケーションプログラム)にもなんらかの影響が及ぶことがほとんどなので、構造上の複雑さを避けるために外部スキーマを設けないことも多いと感じます。むしろ、応用プログラム(アプリケーションプログラム)が外部スキーマを兼ねているとも感じられます。

エについて、直接編成ファイルやVSAMファイルというと、汎用機やオフコンが思い浮かびます。現在の現役エンジニアの方のうち、何人くらいの方が扱ったことがあるのだろう?と、ふと思いました。ちなみに「内部スキーマは、物理ファイルを用いて、概念スキーマをコンピュータ上に実装するための記述である。」という説明でも、理解できそうな気もします。

DOA に SOA

DOA(Data Oriented Approach:データ中心アプローチ)のモデリング技法である DFD(Data Flow Diagram)の簡単な例が次のような図になります。

 

DFD

 

この例に「プロセス-E」を追加してみます。「プロセス-E」は「データストア-X」と「データストア-Y」を参照します。

 

DFD

 

果たして、このような「プロセス-E」は最適な方法なのでしょうか?

DFD 上のプロセスから見ると、データストアは、プロセス間のインターフェースになっているともいえます。このような考え方ですべてを進めてしまうと、DBMS への負荷が高くなることが予想されます。また、データストアが別々のデータベースである場合や別々のネットワークである場合、対応が複雑になることが予想されます。

条件にもよりますが、たとえば次のようなアプローチも自然に発想できそうです。

 

DFD

 

ESB と EAI

SOA(Service Oriented Architecuture:サービス志向アーキテクチャ)の重要技術のひとつに ESB(Enterprise Service Bus)があります。異種システム間などでサービスをつなぐ中継技術など、あるいはそれらを実装するミドルウェアにあたります。

この ESB との比較によく用いられているのが EAI(Enterprise Application Integration)です。

ESB は、バス型で分散処理であり、疎結合であることに対して、EAI は、ハブ・アンド・スポーク型で集中処理であり、密結合であることがいわれます。

EAI は、ベンダーの独自技術によって実現されているともいわれます。この EAI をベースにした SOA 製品も登場しています。

 

SOA の3つの基本ポイント

サービス志向アーキテクチャ(SOA:Service Oriented Architecuture)について、わたしが注目する3つの基本ポイントをあげてみます。

SOA の1つめの基本ポイントは、SOAP(Simple Object Access Protocol)。SOAP は、XML と HTTP を利用してオブジェクト間の通信を行うプロトコル。SOAP を利用することにより、異種システム間の連携がやり易くなるであろうこと。また、SOAP が HTTP プロトコルを利用しているため、ファイアウォールを通過できる点も重要なポイントだとわかります。

SOA の2つめの基本ポイントは、訳のままですが、「サービス志向アーキテクチャ」。「サービス」(のオブジェクト)を提供し、そして、その「サービス」(のオブジェクト)を利用するための共通フレームワークであること。Web サービスが例にあげられますが、企業システムにおいては、イントラネット Web サービスが中心となりそうです。当然ながら、インターネット Web サービスもターゲットとなりえます。

SOA の3つめの基本ポイントは、「サービス志向」であること。「サービス」(というオブジェクト)は、ビジネス業務における一連の機能を提供します。企業システムの構築や連携について、SOA では、この「サービス」の視点で切り込んでいくことになります。このことに関連して、BPMN(Business Process Modeling Notation:業務処理プロセスを記述する表記法)、BPEL(Business Process Execution Language:業務処理プロセスを記述する言語)というキーワードが登場します。また、ESB(Enterprise Service Bus:異種システム間などでサービスをつなぐ中継技術など)も重要なキーワードです。

DOA と DFD

データ中心アプローチ(DOA:Data Oriented Approach)は、「データの構造」や「データの流れ」に着目して情報システム分析・構築を進める方式です。わたしの知るところでは、IBM社系列において特に推進されてきた方式です。また、経済産業省のホームページの公表資料によると、エンタープライズアーキテクチャ(EA)の成果物には、機能情報関連図(DFD)があげられています。

この DOA でのモデリング技法に、DFD(Data Flow Diagram)や ER 図(Entity Relationship Diagram)がよく知られています。

DFD を構成する要素は、4つ。「外部実体/ターミネータ」、「プロセス」、「データストア」、「データフロー」。

あるいは、「データの源泉/吸収」、「処理(プロセス/バブル)」、「蓄積(データストア/ファイル)」、「データの流れ(データフロー)」とも。情報処理技術者試験問題ではこちらがよく使われています。

DFD の構成要素が単純であることから、システム全体(のデータの動き)について展望のよいフローを書くことができます。しかし、まじめに細かく「データフロー」線を書いてしまうと、「データフロー」線が多くなり、逆に見づらくなるという面もあります。よって、「フロー」線について網羅・詳細な表現には不向きとも感じられます。

 

「人月」について思うこと

企業に導入される情報処理システムの構築費用の算出に使われることがいまでも多い「人月」。関係者の中には、この「人月」に疑問を感じてる方も多くいます。

一般に、雇用契約や委任契約、請負契約は、労務供給契約になります。人の労務について対価が支払われることになります。このようにみると、「人月」による算出については、ある程度合理性があるようにも思えます。また、この業界では下請負の使用が常にあるといえますので、このような事情も「人月」による算出と関連しているように思われます。

なお、請負契約は、仕事の完成を目的とする契約で、完成義務があります。請負人がこの完成義務を履行することによって、注文者にはその仕事の結果に対して報酬支払義務が生じます。

仕事の完成が目的で、それに対する報酬となるので、その報酬からは、労務供給契約でありながら、実際の人の労務内容との関係性において希薄になりがちと感じられます。

情報処理システムの構築費用として、ハードウェアや商用ソフトウェアなど、価格があらかじめ定まっている製品の導入が前提となることがほとんどでしょう。ただ、これらの製品自体の設定やチューニング作業は、人の労務になります。

また、ビジネスプロセス/ビジネスルール/ビジネスロジックや、ユーザビリティ、そしてそれらに合わせた前提製品とのインターフェース、などなど、作り込み作業がある場合も、人の労務になります。

このような作業の定量化/定型化、人の技量の考慮、作らない技術、などなど、「人月」という算出方法についての疑問を解消できそうな、いくつかの方法があげられます。

ソリューション(solution)

ソリューション(solution)は、問題などの「解決策」というような意味です。

また、「業務上の問題点の解決や要求・要望の実現を行なうための手段」のように説明されますが、その手段とは、情報システムを指す場合がほとんどのようです。

専門の業者(システムインテグレータ:SIer)などが顧客の要望に応じてシステムの設計を行ない、必要となるあらゆる要素(ハードウェア、ソフトウェア、通信回線、人員など)を組み合わせて提供するもののことをいいます。

とはいえ、情報システムが経営上・業務上のすべての問題を解決できるわけではないことは、いうまでもありません。情報システムを利用するほうが最善であるのか、人の思考・行動によるほうがよいのか、あるいは、両者を共存・分担させたほうがよいのか、といったようなことも実際には考えられているものと思います。

システムインテグレータは、情報システムを提供するのが業務ですから、基本的には情報システムの要件とそれ以外の要件を切り分けて、情報システム化に関する要件のみを進めていくのが役割と考えられている場合も多いようです。

モチベーション(motivation)

モチベーションは、「動機づけ」と訳されるのが一般的ですが、わかりやすく「やる気」という意味にもとられます。何らかの達成に向けられた意思やそれにともなう行動と考えることもできそうです。

目的の達成のほかに、当初計画していなかったことからも達成を感じることがありえますので、モチベーションも、状況により、人により、といったようなことがいえそうです。

 

さて、マネジメントに関する書籍などでは、モチベーションの理論がよく紹介されます。代表的な3つの理論をちょっとみてみます。

 

マズローの欲求段階説

A.H.マズローは、人間の欲求を、「生理的」、「安全」、「社会的」、「尊厳」、「自己実現」、のように低次から高次への5段階に分類しました。

そして、低次の欲求が充足される事により、高次の欲求へと移行するものとしています。

 

マグレガーのX理論・Y理論

D.マグレガーは、人間についてX理論とY理論という2つの対立的な考え方を説明しています。

X理論は、「人間は本来怠け者で、責任を回避しようとし、放っておくと仕事をしなくなる」というような考え方です。

また、Y理論は、「人間は本来勤勉で、進んで仕事を行い、自己実現のために自ら行動し、進んで問題解決をするし、責任を取ろうとするもの」というような考え方です。

 

ハーズバーグの動機づけ理論・衛生理論

F.ハーズバーグは、仕事に満足をもたらす要因と不満をもたらす要因は別のものであるとする考え方を示したものです。

満足をもたらす要因は動機づけ要因と呼び、この要因が満たされると満足度が高まりやすい、としています。

また、不満をもたらす要因は衛生要因と呼び、この要因が満たされていないと不満足につながる、としています。ただ、衛生要因が満たされても満足感やモチベーションが高まるものとは限らない、ともしています。

資源平準化

PMBOK®第3版では、「特定の納入日を守る必要のあるスケジュール・アクティビティに対して、共有している欠かすことの出来ない資源が、特定の期間または限られた量でしか利用できない状況において、プロジェクト作業の特定の期間にわたって特定の資源の使用を一定レベルに保つ場合」に、資源平準化が適用されると説明されています。

 

さて、次の問題を考えてみます。

 

問題:Aプロジェクトにおいては、稼動開始日の厳守と短期開発が条件となっています。また、ある特殊技術の知識・経験も必須なため、Aプロジェクトは、その知識・経験を有していて稼動可能なメンバーをできる限りすべて集めて結成されています。

資源平準化を行い、メンバー全員がまったく遊びのない状態でスケジュールを作成しましたが、このスケジュールでは稼動開始日に間に合わないことがわかりました。この場合に採用すべき工程短縮策として、最も効果が期待できるものは、次のうちのどれですか。

 

ア クラッシング

イ ファスト・トラッキング

ウ 生産性向上

 

 

この問題では、有限のメンバー(資源)の使用を一定レベルに保つ資源平準化が行われ、その結果、期日に間に合わないというものです。(一般に、資源平準化の結果、全体的なプロジェクト期間が延びる可能性があることがいわれています。)

 

まず、アのクラッシングについて。問題文からは、メンバーの追加は見込めない状況といえます。

特殊技術の知識のいらない補助的作業に、追加メンバーをあてることも考えられますし、期間中に教育することも考えられますが、問題文から短期開発であることから、どの程度スケジュール短縮につながるかというと、あまり期待できないかもしれません。

 

つぎに、イのファスト・トラッキングについて。資源平準化は、一般的にクリティカル・パス上の作業から優先的にメンバーの割り当てを行います。クリティカル・パス上の作業について、さらに並行作業が可能かどうかは、クリティカル・パス分析の精度によるところもありますが、これについてもあまり期待できないかもしれません。

 

最後に、ウの生産性向上について。どの程度の生産性を見込んでスケジュールを作成したのかにもよりそうです。高度な生産性であらかじめ計画している場合には、あまり期待できないかもしれません。ただ、所要時間について三点見積りなどの確率的分析によって、スケジュールを作成している場合には、可能性はあるかもしれません。

 

三点見積もり

三点見積もりは、次の3種類の値から算出するものです。

 

最頻値 実現可能性が最も高いスケジュールアクティビティの所要期間またはコストの見積り値(見込み値)。

楽観値 最良のシナリオで実現されるスケジュールアクティビティの所要期間またはコストの見積り値(見込み値)。

悲観値 最悪のシナリオで実現されるスケジュールアクティビティの所要期間またはコストの見積り値(見込み値)。

 

三点見積もりについては、PMBOK®第3版では、主に、第6章のプロジェクト・タイム・マネジメントと第11章のプロジェクト・リスク・マネジメントで取り上げられています。

一般に、次のような計算式が使われます。

 

三点見積り値  =  楽観値+4×最頻値+悲観値

 

この計算式は、PERT(Program Evaluation Review and Technique)加重平均値を求める式にもなっています。

また、確率分布による定量的リスク分析において、ベータ分布が使われる場合も、上記の計算式となります。

 

ちなみに、三角分布が使われる場合の計算式は、次のようになります。

 

三点見積り値  =  楽観値+最頻値+悲観値

 

 

例題で確認してみます。

 

問題:あるアクティビティの所要期間について、楽観的見積りが2日、最頻見積りが4日、悲観的見積りが12日でした。ベータ分布に基づく三点見積りによる見積り値は何日ですか。

 

2+4×4+12  =  5(日)

 

工期短縮の手法(2)

 

スケジュールを短縮する手法として、クラッシング(Crashing)とファスト・トラッキング(Fast Tracking)がよくいわれます。

簡単な問題で、この2つの手法の特徴をみてみます。

 

問題:最小の追加費用でプロジェクト工期を短縮する方法として適切なものは、次のうちどれですか。

 

ア クラッシング

イ ファスト・トラッキング

 

答えは、ア。

 

クラッシングは、例えば、2人で10日かかる作業項目について、要員を追加して5日で完了させるという方法です。PMBOK®では、「コストとスケジュールのトレードオフを分析し、最小の追加コストで最大の期間短縮を得る方法を決定するスケジュール短縮技法である。」としています。

 

問題:プロジェクトを予定より早く完了させる必要が生じました。アクティビティを分析して同時期に実施できるものについては、並行実施して期間を短縮する方法として適切なものは、次のうちどれですか。

 

ア クラッシング

イ ファスト・トラッキング

 

答えは、イ。

 

ファスト・トラッキングは、例えば、すべての設計書が完成する前に、共通処理等のプログラミングを実施するなどの方法があてはまります。PMBOK®では、「通常は順を追って実行するフェーズやアクティビティを並行して実行するというスケジュール短縮技法である。」としています。

 

なお、クラッシングについては、例えば要員追加によるコスト増、ファスト・トラッキングについては、手戻り増が考えられます。

工期短縮の手法については、手戻り減という点に注目した、フロントローディングテストファーストをミックスした手法がとられることも多いと思われます。

 

工期短縮の手法

 

プロジェクトの工期維持・短縮のための施策として、「フロントローディング」と、「テストファースト」という手法を耳にすることがよくあります。どちらも手戻りをなくすことによって、工期と品質の維持、または、工期短縮と品質向上を目的とする点で共通しているようです。

どのような内容の手法かというと、どちらもその定義はいくつか存在しています。

フロントローディング」は、一般的には、「設計の前倒し」ともいわれています。

 

  • 業務設計と平行して方式設計や運用設計などを行う。
  • 業務設計の上流工程で下流工程での課題点をあらかじめ検証する。

 

の2点が「フロントローディング」の代表的な特徴と、わたしは思っています。ときには、設計と開発を平行して進行させる場合にも使われることがあるようです。

 

テストファースト」は、テストを先行させることです。おもにアジャイル手法で解説されています。実際には、

 

  • 実装コードのコーディングに入る前にテストコードのコーディングを行う
  • コードを書く前にテストケースを作成する

 

のような内容で説明されることが多いようです。そして、プログラミングとユニットテスト(単体テスト)の工程を対象としていることが多いようです。

 

テストファースト」については、結合テストやシステムテストの全テストケースについても、プログラミング前に作成して公開する、とういうような取り組みがあってもいいのではないかと思うことがありました。上流工程で作成する設計書だけでは、具体的事例との整合についての表現が乏しくなりがちと思われます。このようなことによって発生する手戻りや障害を事前になくすことができるのではないか、と考えられます。

 

ソフトウェアテストの各工程の完了基準

多くのプロジェクト計画書では、ソフトウェアテストの各段階ごとに完了基準を数値的に設定しておくことがほとんどだと思います。テスト項目数とバグ数について、その数値的基準を、ステップ数あたり何件とか、仕様書のページ数あたり何件とか。これらは、過去の経験値から設定されたり、会社の指針から設定されている場合が多いと思います。しかし、これらはあくまでも目安で、テスト仕様書が完成するまでは、実際の数字が確定しないこととなります。

 

テスト工程をはじめるにあたって、テスト推進チームが発足するなどして、テスト作業の体制やルールなどの標準化などをすすめていくわけですが、このテスト推進チームにおいてもテスト項目数や目標検出バグ数の見積り、その妥当性の判断の指針の決定は重要な作業で、詳細スケジュールの決定にも関係してきます。

 

ソフトウェアテストの最初の段階となる単体テストでは、ロジック網羅、条件分岐、限界値・代表値などのテスト内容を実施して、そのすべての消化が単体テストの完了基準となることが多いと思います。

その次の段階の結合テストで、最初から動かなくてテスト項目が消化できない、そして結合テストのスケジュール遅延ということがよくあったりします。

このような結合テスト初期段階のつまづきを予防するために、単体テストの後半に、結合テスト的な項目を20%から30%含ませるなどして、あるいはプレ結合テストというような形で実施して、次工程となる結合テストの実施可能性を判断して、単体テストの完了とするというようなことを行うこともあると思います。

そして、この実施方法をもとにすると、結合テストにおいてもシステムテスト的な項目の一部を実施し、そして、システムテストにおいても受入れ・運用テスト的な項目の一部を実施するということになります。

 

現実的な完了の判断は、このような現テスト工程の状況についてアセスメントを実施して、次のテスト工程へ進むかの判定会議によることになるかと思います。

このアセスメントや判定会議では、テスト項目の内容分類と消化数、バグ発生原因分類や発生状況の推移、バグ対応状況の推移などの統計もカギとなります。

テスト項目数は、有用な統計にするための根本的な数字ですから、それなりに相当な数が必要だと思います。ただ、テスト項目数は、スケジュールや要員にも直接関連しますので、妥当数を判断することが重要となります。

 

なお、テスト項目は、全テスト工程を通して全網羅を目指さなければならないと考えます。トップダウン的にみれば、各テスト工程は、この全網羅を段階的に配分しているわけで、その配分に見合っている必要があると思います。

 

さて、結局のところ、実際のテスト項目数は、テスト直前にならないと明確にならないようです。

ただ、ウォータフォール型の開発によれば、要件定義が終われば、その人員は運用テストの準備に、また、システム設計が終われば、その人員はシステムテスト、結合テストの準備に取り掛かることに理論上なっていますので、必ずしもテスト直前にならないと明確にならないわけでもなさそうです。

さらには、設計書にシナリオを作成することもよくあります。このシナリオが後のテストケースとして利用されることを考えれば、シナリオからテスト項目数を見積もることもできるそうです。

バランススコアカードの特徴

 

バランススコアカード(BSC : Balanced Score Card)は、経営業績評価の手法のひとつです。

バランススコアカードの特徴といえば、「財務の視点」、「顧客の視点」、「業務プロセスの視点」、「学習と成長の視点」の4つ視点において、目標と戦略を明確にし、評価するというような手法であることです。

おおまかな手順としては、それぞれ4つの視点から、

 

  1. 具体的目標を設定
  2. 重要成功要因(KSF : Key Success Factor)を抽出
  3. 重要業績達成指標(KPI : Key Performance Indicator)を設定
  4. アクションプランを策定

 

というものです。

説明によっては、重要目標達成指標(KGI : Key Goal Indicator)を設定したり、用語について重要成功要因(CSF : Critical Success Factor)とあったりします。おそらく、自由度の高い評価フレームワークであるということなのでしょう。

それぞれ4つの視点について、もう少しみてみたいと思います。

財務の視点」:直感的にイメージしやすいのは、「利益」、「売上」、「コスト」だと思います。財務的な成果が対象となります。

顧客の視点」:これについても直感的にイメージしやすいのは、「顧客満足度」だと思います。「有用性」、「品質」、「価格」などが思いあたります。あるいは、「シェア」、「市場成長」などもこの視点にあたります。

業務プロセスの視点」:意外と直感的に定義しにくい視点と感じます。個人的な理解として、事業や業務の運営・運用について、「開発(実用化といったほうがしっくりいくかもしれません。)」→「改善(悪いところを改める。まれに、よりよくするという場合もあるかもしれません。)」→「改革(改めて変える。)」→「革新(旧来の方法を変えて新しくする。イノベーション。)」といったような視点なのだろうと思っています。

学習と成長の視点」:「学習」から直感でイメージできるのは、「(技術・知識)習得」、「研究」。「成長」からは、「発展」、「進化」、「増大」、「成熟」など。また、具体的な例示として「社員のモチベーション」などがあげられています。

これら4つの視点の内容をみてみると、いうまでもないかもしれませんが、それぞれの内容について非常に関連性が強い、つまり、要因(原因)・結果の関係でつながることがわかります。このことも、バランススコアカードの特徴といえると思います。

バランススコアカードは、SWOT分析(内部環境の強み(Strong)・弱み(Weakness)、外部環境の機会(Opportunity)・脅威(Threats)を分析)や、PPM分析(市場占有率と市場成長率から、金のなる木・花形・負け犬・問題児の4つに分類して分析)というような分析手法とあわせて用いられることも多いようです。

 

タイムボックス

 

これまで、情報処理技術者試験の午前試験問題で、RAD(Rapid Application Development)の特徴を問うものが何度か出題され、なんとなく印象に残っています。いずれも「タイムボックス」の説明が正解となっています。

RAD(Rapid Application Development)とは、部分的に定義された要求から開発を開始し、後続する開発で要求を見直していく開発手法で、プロトタイピングを繰り返して完成させていきます。

プロトタイピングを繰り返す手法として、スパイラルモデルがありますが、RADにおいては、「タイムボックス」を設定することに特徴があります。「タイムボックス」は、スパイラルモデルで懸念される無制限の繰り返しを防ぐために、開発期間をあらかじめ定めることを意味しています。

ちなみに、RADの特徴をあらわすキーワードとして、他に「ワークショップ」があります。「ワークショップ」は、ユーザを含めてすべての関係者が参加し協力するということを意味しています。

 

ところで、アジャイル開発関連の書籍を読んでいると、RADのことばがでてきます。RADを起源とするDSDM(ダイナミック・システム開発方法論)の説明のためです。

アジャイル開発において、「反復」または「繰り返し」をあらわすことばとして、イテレーション(iteration)が使われています。

そして、イテレーションの「タイムボックス」化と、その「タイムボックス」化したイテレーションの終了日の厳守を重要としています。なお、「タイムボックス」の終了日までに予定していたスコープのすべてが実現できないときは、終了日までに実現可能なスコープまでに縮小して完成させ、いかなるときも作業ペースを一定に保つことを重視しています。

関連して、RUP(Rational Unified Process)が有名です。イテレーションを、方向づけ、推敲、作成、移行、の4つのフェーズに体系化している点が特徴です。RUPにおいては、「タイムボクシング」ということばが定義されています。

タイムボクシング」は、最も重要な任務の目標に注力し、開発のトレードオフを発生させないようにするための構造を提供します。不可能あるいは不合理な目標を設定したり、「タイムボックス」の中で粗悪な品質のものを提供しようとするわけではありません。(『ラショナル統一プロセス≪RUP≫ガイドブック』より。)

タイムボックス」は、確実に、高い精度が求められてきています。

 

 ⇒ affiliated with
 (2011.08.28 21:00)