Zopfcode Essay

140文字で収まらない走り書きの置き場

レイヤー(層)ってすごい

コンピューターの「レイヤー(層)」という概念はすごい。真理と呼んでもいいんじゃないかと私は日々思っている。

情報の伝達をレイヤーの連なりとして定義した「OSI参照モデル」のように、レイヤーによってコンピューターに説明を与える概念は昔から存在した。OSI参照モデルは、現代のコンピューターネットワークのデファクトスタンダードを構成するレイヤーとは実はまるで一致しない。それでもなお象徴として高専や大学で教えられるというのは、レイヤーという形式化の手法がそれだけ洗練されたものであるからだろうと解釈している。

レイヤーという概念を一般的に表現するならば、すなわち「具体的事象を、より扱いやすい表現に変換する、連結可能な何か」といえるだろう。上位のレイヤーが生み出される背景には、いつも「もっと便利にしたい」あるいは「もっと簡単にしたい」のどちらかが存在する。よって「より扱いやすい」とあいまいに表現した。

レイヤーごときでなぜそんなに嬉しそうなのか?とそろそろ思われそうだ。私がレイヤーという概念について一番エキサイティングに感じるところ、それは「意図的に実装せずとも、あるいは避けて通ろうとしても、勝手に生じる概念である」というところだ。

郵便局の例

レイヤーは人間社会のありとあらゆる箇所に見出すことができる。この記事ではコンピューターの文脈からレイヤーを取り上げたが、別なたとえとして私はよく郵便局を話題に出す。

あなたが遠くに住む友達に手紙を出したいとしよう。63円*1のはがきを買い、表に郵便番号や住所や宛名を書き、裏に本文を書いてポストに投函すれば、数日のうちに友達の家のポストに手紙が届くことだろう。

この「手紙を送る」という概念は、高度に抽象化されたレイヤーの上に成り立っている。あなたがこの手紙をポストに投函すると、表面上は勝手にはがきが相手先に移動するように見えるが、裏ではさまざまなことが起こっている。

  1. 起点局(普通郵便局)の郵便局員が所定の時間に回収する
  2. 地域外への配送のため、起点局からより大きな地域区分局(ハブ局)へと配送される
  3. 発送地域の地域区分局から、宛先地域を管轄する地域区分局へ配送される
  4. 地域区分局から起点局へ配送される
  5. 起点局から郵便局員が手紙を運び、宛先のポストに入れる

この流れの中には、いくつか興味深いポイントを見出すことができる。

  • あなたと友達は、手紙がどのようにして配送されるか知る必要がない
  • 起点局の局員は、地域区分局に送った手紙がどのようにして配送されるか知る必要がない*2
  • 地域区分局の局員は、起点局から宛先にどのようにして配送されるか知る必要がない

つまり、あなた → 郵便局 → 友達 という抽象化が起きていて、その郵便局の中でも 起点局 → 地域区分局 → 地域区分局 → 起点局 という抽象化が起きている。これは紛れもなくレイヤーが生じているといえる。

この手紙を書くという概念に、さらに上位レイヤーを足すこともできる。あなたがお金持ちで、使用人を雇っているとしよう。遠くに住む友達に手紙を出したいが多忙なため、使用人に「友人 A に〜〜〜という本文で手紙を出しておいてくれ」と頼んだとする。すると使用人は、その名前で住所録から住所を割り出し、はがきを買い、諸情報を書いてポストに入れるだろう。つまり、追加のコスト(使用人を雇うお金)を払うことで、より簡単で便利に手紙が出せる使用人レイヤーが使えるわけだ。

今回はわかりやすい郵便局の例えを使った。これ以外にも、というかほぼ万物に対して、レイヤーという概念は必ず見出すことができる。そういった視点で世の中を見てみると、レイヤーという概念が真理に近いということが次第にわかってくるはずだ。

参考

*1:2020年12月現在。はがきといえば50円だと思っていただけにちょっとびっくりした。

*2:当然ルーティングはなされるので、知ろうと思えば知ることはできるだろうが、原理上必要がない