カエレバ楽天市場Amazon7net個人的な興味があって、以前よりElixirというプログラミング言語を学んでいる。このElixirの動作環境がErlangVMというものであり、Erlangというプログラミング言語を実行するためのものだ。このElixir、Erlangは高い堅牢性(robustness)を備えており、古くから金融システムや電話交換機に用いられているという。このErlangという言語を作ったのはJoeを中心とした、エリクソン社という通信機器を扱うスウェーデンの企業であり、実装にはErlangが用いられていたようだつまり、Elixirの歴史を追う中でErlangに出会い、Erlangの歴史を追う中で、用途を調べた所、「電話」というワードに辿りついたわけだ。どのような実装がされているのかを理解するためには、電話にはどのような仕様が必要なのかを知りたいと思ったまた、電話の仕組みは現代のインターネットのベースになっているのだという。電話の仕組みは至ってシンプルだった。詳細はぜひこの書籍を読んでほしい。電話の仕組みについて全く知らない自分でも、核になる部分の情報はインプット出来たと思うベースにあるのは、声、つまりは空気振動という現象を電波に変換して、電話線という導線を通じて、対象の相手側に伝えるという物理現象だ。声を電波に変換するということは声をバイト情報(0と1の組み合わせ)にして電波を利用して導線を通じて、相手側に送り出すという事と等しい。電波を利用して送り出したバイト情報を受け手側で復元することで音声を再生する。電話がこのような単純な仕組みで動いていることに驚きを隠せない。何十年も前にだ...さらに関心させられたのは、どのようにして相手側を探索するのかという仕組みと、どのようにして接続を保証しているのかというところだ。相手を探すために、電話交換機という全国に設置されている接続を繋げるための媒体を巡る旅がスタートする。発信者のリクエストを元に電話交換機Aから電話交換機Bに。電話交換機Bから電話交換機Cにと、電話交換機自身に保持されている接続者情報を探し、対象の接続先を探していく。この経路を記録して、発信元に知らせる。このような作業は特定のバイトパターンをコマンドのように定めて行われている。「00001111」のバイト情報であれば「交換機Bで対象の電話番号を持つ接続者を発見しましたよ」というFINDというコマンドとして扱っているわけだ(これは例なので実際には存在しない)。これは現代のIP(インターネットプロトコル)と非常に似ているし、実際にベースになっているのはこの部分からだそうだそして、この探索した経路を元に通話回線(音声をやり取りするための回線)を繋げることで初めて、通話ができる状態になる。音声を届けるための回線と情報をやり取りするための回線は分かれており、通話をするために2本の回線が用意されている。話すとまだまだ面白い話があるが、このぐらいにしておく。どのようにして、届けられる音声の順序を保っているかという話も非常に面白いIP電話の時代になって電話をするために従来の電話線を用いる方法からIP、すなわちインターネット回線を用いた方式に変化していく。ベースの仕組みは全く変わっていない。新たに通話のためのプロトコルをインターネット回線上で定めて、相手側を探すために互いにプロトコルをベースにデータ送り合うだけで、加入電話の時と行なっていたことはほとんど変化していない。IPアドレスをいかにして非公開にするかなど、加入電話の時よりもセキュリティに対する意識と注意が高まっており、どのように秘匿性を保持しているのかが面白い。NATというものが必要なのかがよく分かる全く同じ様な仕組みでIP電話が実装されていることに加入電話というものが、いかに洗礼されて設計されたいたかということに恐怖さえ感じる。仕事柄、第2部の話はすんなり頭に入ってくるので、第2部から読み進めて、第1部に戻るという読み方もありかもしれない業務に直結しないものを読む価値はあるのかある。直接的には役に立たないかもしれないが、インターネットの背景を知ることが出来るため、非常に勉強になる。内容も優しく読みやすかった。この本を読んでみて、「あれ、電話ってもしかして作れるんじゃね」と思った。振動を電波に変える装置から取り掛かろう。Qiitaのアドベントカレンダー...2019-12-04Elixrのプロセスとは一体何なのか。週間)「俺また、やっちゃいました?(致命的バグ)」なろう系23歳の非異世界転生なWeb系Developer。Elixirという言語を推し中。清流elixir運営してます。紅茶の勉強を始めたり、チャリを買おうとして買わなかったりと興味が分散しがち。今は、並行コンピューティングに強めの興味があります。(2)月別アーカイブ広告はてなブログをはじめよう!takamizawa46さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。