ITで遊ぶ

レイヤー(俺がITで学んだこと)

このサイトはいろんな人が来てくれる。昔からの友達、仕事でおつきあいした人、後輩、スピリチュアル系、まったく知らない人、Yahoo!やGoogleで迷い込んできた気の毒な人。
IT業界じゃない人も、たくさんいる。そこで、IT業界では知られている考え方だけど、巷の人に役立つんじゃないかな、という考え方を「俺がITで学んだこと」というカテゴリーで書いてみることにした。

第一回目に取り上げるのはレイヤー(層別)。これが最も応用されている分野は通信だ。たとえば、インターネットを支えているTCP/IPというのは、ざっくり次のような層をもつ。リンク(WiFiとかイーサネットとか、物理的なもの), インターネット(IPアドレスの概念とリンクを繋ぐ), トランスポート(普通の通信用、動画用、放送用など), アプリケーション(ドメイン、FTP、HTTP、SMTP, POPなどなどおなじみのもの)

個々の層の解説は話題の目的ではない。大事なことは、「ひとつの層はもうひとつ下の層のことだけを考えればいい」という割り切りである。メールサービスを作る人は、トランスポートではTCPとの会話ルールだけを考えればいい。それが無線LAN(WiFi)なのか、イーサネットなのか、はたまた伝書鳩(RFCというインターネットの規約のひとつに伝書鳩による通信は考察されている。ココを参照のこと)なのかは、一切気にする必要がない。レイヤーの中に押し込められている。

そして、メールを送ると、アプリケーション、トランスポート、インターネット、リンクと層を下がっていく。その度ごとにエンベロープ(封筒)に入れられていく。メールの受け取り側目がけてリンク、インターネット、トランスポート、アプリケーションとレイヤーをあがっていく。レイヤーをひとつ抜けるごとにエンベロープは取り外されていく。最終的には、書いたものとほぼ同じものを受け取る。

複雑な要素を組み合わせる場合、グループ化するという考え方には簡単にたどり着くが、それが上下の層になっていく、という考え方にはなかなか到達しない。レイヤーアーキテクチャーは、グループに関係する問題はグループの中ですべて解決する、という重要なことを教えてくれた。

関連記事

  1. 俺がITで学んだこと(大量のデータの管理)

  2. 木村 岳史さんのおっしゃる「改訂「SIerは5年で死滅する」」

  3. 史上最低のOS Windows 10 S とリカバリー

  4. 木村岳史さんのSI会社再生説には賛成しかねる

  5. 木村岳史が「忖度オヤジ」をあぶり出した

  6. 人間様が気分よくプログラミングするための言語」Ruby

  7. スマホに奪われた業界www

  8. 伝統的な統計学は別に最強じゃない

記事をプリント