わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

階層,ツリーとレイヤー

「電話で,お寿司の注文をする場面を考えてみますと,客からはどんなセットを何人前,そして自分の名前や連絡先電話番号を言い,店からはOKかNGか,また請求額などを伝えることになります.これらは,具体的な注文の『内容』に関するやりとりです.
 その注文を,どのような『手段』で行うのかは,具体的な注文の内容と分けて考えることができます.電話のほか,店頭で店員さんに話すというのも,注文の仕方の一つです.店頭だと指をさして「これ,これ!」と言えますが,電話ではそうはいきません.
 それと,近年の国際化の流れを受けて,日本国内のお寿司屋さんでも,注文が日本語以外でなされるかもしれません.お客さんが英語で話し,店員さんも英語OKなら,英語で行うわけです.これは『言語』に関することです.
 ここまで出てきた3つの言葉,『内容』『手段』『言語』について,インターネットにおける通信に対応づけてみると,『内容』が最上位,中間に『言語』,そして最も下に『手段』を配置することになります.下のものが基礎となって,上位の機能が提供されます.
 こういった上下関係は『階層化』あるいは『階層構造』と呼ばれます.コミュニケーションの機能を水平方向に分割し,それぞれごとに,やりとりを行うための最適な手段を選べばよいのです.
 ところで授業では,前々回と前回に,『階層化』という言葉を,使ってきました.一つは,Windowsファイルシステムで,Cドライブに何や何のフォルダがあって,フォルダの中には別のフォルダやファイルがあって…というものです.もう一つは,Yahoo!カテゴリに代表される,ディレクトリ型の検索エンジンにおいて,カテゴリを大分類・中分類・小分類などに分けている,と解説しました.
 それらも,『階層構造』をなしています.ただ,今回の注文の件や,インターネット通信における『階層構造』とは,若干,意味が異なります.
 ファイルシステムやカテゴリの階層構造は,『ツリー(tree)』と呼ばれます.『木』です.数学の,場合の数の問題などで作図する,樹形図を想像してください.スタート時には1個の情報で,それが枝分かれしていく,という情報の広がり方をいいます.
 通信における階層構造は,『レイヤー(layer)』と呼ばれます.『層』です.地層なんかは,目に見えるレイヤーの例ですね.曲がったり,変なのが挟まったりするのは,今回,考えないでおきましょう.下から堆積物がたまっていき,長い時間をかけて出来上がる,あれです.あっちとこっち,離れたところにあるけれど,着目する箇所とその周辺が同じなら,これらは同時期のものだろうと推論できる,というのも,通信の階層と関連してきます.
 情報工学あるいは情報の表現として,ツリーとレイヤーには,また別の違いがあります.理論的には,ツリーはいくらでも下に伸ばせます.もちろん大分類中分類小分類の3ステップで終わりという,分類の仕方もありますし,Windowsなどのフォルダの深さにも,実際には制限があります.それらは,現実的な制約とみなされます.
 それに対し,レイヤーというときには,その層の数は,検討する対象に応じて決まっています.層の中で,細分化を図る試みはあっても,層の数を増やすというのは,基本的には御法度です.
 例えば,インターネットの通信,より正確にはTCP/IPプロトコルモデルでは,上から,『アプリケーション層』『トランスポート層』『インターネット層』『ネットワークインターフェイス層』の4つです.OSI参照モデルというものだと,上から『アプリケーション層』『プレゼンテーション層』『セッション層』『トランスポート層』『ネットワーク層』『データリンク層』『物理層』の7つです.
 見た目の異なるツリーとレイヤーに,なぜ『階層』という,共通の二字熟語が使われているのかといいますと…
 階層を英語にすると,hierarchyです.発音は『ハイアラーキー』に近いのですが,日本語で書く際には『ヒエラルキー』とするのが一般的です.そしてツリーもレイヤーも,ヒエラルキーのそれぞれ異なる形態なのです.
 ここまで『階層』とともに,インターネット上ではおおよそどのような情報がやりとりしているかを解説しました.次に,どこからどこへ,情報を送るかについて,IPアドレスを見ていくことにします」

なにこれ

先週の情報処理の授業で,時間をとって解説した内容です.実際には寿司ではなくピザですし,「OSI参照モデル」およびその各層については明言せず,「7つの階層にする考え方もあります」にとどめていました.
上記のレイヤーの説明には,いくつか現実の使われ方との不一致があります.TCP/IPプロトコルモデルは4層,OSI参照モデルは7層というのは,よく知られているところですが,層を上や下に増やすのは,wikipedia:OSI参照モデルの「比喩」に記されています.
情報処理の分野で他によく見かける階層に,「ソフトウェア階層」があります.なのですが,検索してみると,最上位に「アプリケーション層」,最下位に「ハードウェア(物理)層」があるのは多くの図で共通しているものの,中間層はさまざまです.
先日,学会発表をした際,Dockerのレイヤーを取り入れました.以下のページの,"Docker Containers vs. Virtual Machines"の絵です.

Virtual MachineにおけるHypervisorがDockerに取って代わるとともに,Guest OSがないため,軽量・高速で動作する,とよく表現されます.
ただし,Windowsで,Docker Toolboxを導入して動かすのであれば,その図の右側のServerはLinuxのゲストOSであり,その下にVirtualBoxや,ホストOS(Windows)の層を設けることになります.
そうすると,層の数は固定というよりは,積み木のように,土台があってそこに機能を積み重ねていく,というのが,レイヤーとしての階層構造の解釈ではより良いようにも思えてきます.
ところでなぜピザなのか,言語として日本語のほか英語を考えるのかというと,以下の書籍(授業で参考書に指定しています)から持ってきたからです.

よくわかる情報リテラシー (標準教科書)

よくわかる情報リテラシー (標準教科書)

  • 作者: 安齊公士,安間文彦,松下孝太郎,夜久竹夫,渡辺博芳,香山瑞恵,小泉力一,佐々木整,永田奈央美,西端律子,平田謙次,岡本敏雄
  • 出版社/メーカー: 技術評論社
  • 発売日: 2012/12/26
  • メディア: 大型本
  • クリック: 1回
  • この商品を含むブログ (6件) を見る

図3-2は「通信機能の階層化のイメージ」です(p.77).同じページの表3-1(TCP/IPプロトコルモデル各階層の既定内容」も,表見出しとともに授業でスクリーンに表示させました.同じ章で,授業では取り上げられませんでしたが,名前解決(DNS)に関する図3-11(階層化された名前空間, p.89)は,ツリーのほうの階層構造です.