12月2日、参院本会議で答弁する安倍首相。(参議院インターネット審議中継より)
◆突然飛び出した言葉「シンクライアント」
12月2日に安倍晋三首相は、4月の「桜を見る会」の招待者名簿について、電子データの復元はできないと言った。そして、個々の端末でなくサーバでデータを保存するシンクライアント方式だから、と理由を語った(参照:日本経済新聞)。
4月のデータが12月に破棄されているのは、シンクライアント云々関係なく、運用の問題ではないだろうか。そもそも都合が悪いから破棄したのではないか。破棄が常態化しているように見えるのは、いったいどういうことなのか……。
そうした疑問がいろいろと湧いてくるのだが、それらはいったん脇に置いておき、シンクライアントの話をしたいと思う。およそITに詳しくないと思われる政治家から飛び出したこともあり、この言葉はネットでも話題になった。
そもそもシンクライアントとは何なのか。コンピューターの歴史を振り返りながら、確かめていこうと思う。
◆シンクライアントとは
まず、シンクライアントは「thin client」と書く。thin には、薄い、少ないといった意味がある。シンクライアントには、方式がいくつかあるのだが、大きな枠組みとして言うならば、サーバーで処理をおこない、クライアント(手元のコンピュータ)には最小限のコンピュータ資源しか置かない方式を指す。
シンクライアントの一例を、利用シーンとともに書いてみよう。計算能力が高いサーバー端末があり、手元にはネットワーク機能と表示機能ぐらいしかない貧弱な端末がある。端末で操作をすると、その操作内容がサーバーに送られ、サーバーで処理がおこなわれ、端末に結果が表示される……。
シンクライアントには様々な方式があるので、上記は一例でしかない。ただ、サーバー側に高い負荷をかけて、クライアント側は安くて非力な端末で済ませる。そうしたイメージを持ってもらえば、大きな方向性としては間違っていないだろう。
そもそもなぜ、そうした方式が考案されたのか。理由を知るには、コンピューターの歴史をたどらないといけない。
黎明期の頃、コンピューターは非常に高価だった。そのため一人一台コンピューターを持つことは難しく、大型汎用コンピューターがあり、そこにぶら下がった端末で操作をするのが一般的だった。
この方式は、シンクライアントそのものなのだが、そもそも他の方式が考えられなかった時代なので、わざわざシンクライアントと呼ばれることはなかった。これは、現在「固定電話」と呼ばれているものが、当時ただの「電話」だったのと同じだ。その時期それは、ただのコンピューターだった。
シンクライアントという言葉の登場は、1996年頃になる。既にパーソナルコンピューターが普及を始め、一般的になりつつある時代だ。その時期に、Oracle 社がネットワークコンピュータ(NC)を発表した。NCは、クライアントにハードディスクなどの外部記憶装置を持たず、機能を限定してサーバー側で管理する方式になっていた(参照:コトバンク)。
なぜそうしたものを作ったのかと言うと、その方がトータルのコストが安くなると考えたからだ。しかし、コンピューターは驚くほどの速度で低価格化していった。そのため、この方式は広く普及することはなかった。シンクライアントは、コストの綱引きに負けたのだ。
この、一度負けたシンクライアントは、別の理由で求められるようになった。2005年に個人情報保護法が施行されるとともに、シンクライアントシステムは改めて注目されはじめた。情報を一元管理することで、流出を防ぐことができると考えられたからだ。官公庁が使うシンクライアントは、この文脈によるものだろう。
また、ほぼ同時期に、サーバー側で様々な計算をおこなう、クラウドコンピューティングの時代も始まっている。今では一般的になっているこの言葉は、2006年にグーグルの CEO だったエリック・シュミットが使い出したとされている(参照:コトバンク)。
◆シンクライアントの様々な方式
シンクライアントを実現するには、いくつかの方法がある。大きく分けると、ネットブート型と画面転送型に分かれる。また、画面転送型は、その方式によって3つに分けることができる。
ネットブート型は、サーバーにOSイメージ(OSやアプリケーションなどのデータ)を置き、そのイメージをクライアントに送って起動させる方式だ。イメージとしては、ネットワークを通して Windows が送られてきて起動するようなものだ。サーバーの負荷は少なくて済むが、ネットワークの負荷は大きい。この方式で作成したデータは、ネットワークを通してサーバーに保存される。データがネットワークを流れるので、セキュリティ的な対策も必要になる。
画面転送型は、サーバーでOSやアプリケーションを実行して、クライアントにはその画面だけを送る方式だ。ユーザーがクライアントで操作をおこなうと、その操作の情報がサーバーに送られて、サーバー内で計算がおこなわれる。データはネットワークを流れないので、セキュリティ面ではこちらの方が安全だ。
画面転送型の3つの方式を紹介する。1つ目は、サーバベース型。サーバー上でOSが立ち上がり、そのOSやアプリケーションを、ネットワークでぶら下がった複数のクライアントが共有する方式だ。アクセスが集中すると負荷が高くなったり、OSやアプリケーションのライセンスが複数人で使えるようになっているかなど、クリアしないといけない問題は多い。
画面転送型の2つ目は、ブレードPC型だ。これはサーバー側に、ブレードPCと呼ばれる特殊なコンピューターを、人数分用意する方式だ。普通に考えれば分かるように、高コストになってしまうという問題がある。
画面転送型の3つ目は、仮想PC型だ。サーバー上に仮想のデスクトップ環境を作り、そこにクライアントがアクセスする方式だ。たとえば Windows でも、仮想マシンを起動したりできるのは知っているだろうか。そのサーバー版だと思えばよい。
この仮想PC型は、サーバー資源の増強などもおこないやすく、クラウドコンピューティングとも相性がよい。そのため現在では仮想PC型が主流になっている。
◆Google の Stadia など、ゲーム業界でもシンクライアント
こうしたシンクライアントは、クラウドコンピューティングの普及から分かるように、セキュリティ以外の目的でも使用される。
今年になって、何度も名前を聞いている、Google の Stadia も、シンクライアント方式だ。Google が持つお化け級のサーバーで計算をおこない、クライアントには動画としてゲームの画面を流す。
ただ、遅延がよく発生したりと評判はあまりよくないようだ。高速で信頼できるネットワークの方が、ユーザーが高価なグラフィックボードを積んだパソコンを買うよりも、現状では難易度が高いのだろう。最終的に快適に遊べるようになるかは、今後の環境の変化によって変わるだろう。
◆本質は方式ではなく、都合の悪い記録を抹消することの常態化
いろいろとシンクライアントについて書いた。しかし、冒頭でも述べたように、そこは本質ではない。どの方式を採用したとしても、記録の破棄や改竄をおこなわないようにすることが大切だ。
削除したファイルが復元できるかどうかは、削除した時期とファイルシステムによる。多くのファイルシステムでは、ファイルの削除は記録媒体上のファイルを消すのではなく、そこに書き込まれているという情報だけを消す。そのため、ファイル自体は記録媒体に残されている。
しかし、時間が経てば、そこは書き込んでもよい領域なので、他のデータが書き込まれて消えてしまう。特に、多くの人が共有して使うサーバーのように、頻繁にファイルの書き込みがあるシステムでは、ファイルの復元は困難になりやすい。そもそも復元のためだけに、サーバーを止めるのかという問題もある。それに対して個人で使うパソコンのHDDでは、書き込み頻度も低く、連続した領域にデータを書き込んでいくことが多いために、復旧は比較的実現しやすい。
しかし、個人で使うパソコンでも、SSDのようにファイルが分散して書き込まれる方式では、復元はかなり困難になる。SSDは、記録素子の寿命があるために、どこに何回書き込んだかを確かめながら、書き込み回数が少ない場所にデータを分散して保存していく。そのため、不連続な広大な場所にファイルが保存されており、ファイル削除後の復元は困難になる。
私はプログラムを書き、ゲームやアプリケーションを開発している。そうしたとき、ゲームやアプリケーションを改良するのに最も大切なものは「適切なログ(記録)」だ。記録なしに、問題を突き止めて改善することはできない。
現在の日本の上層部の記録に対する軽視は、プログラマー視点で見れば「改善する気がない」と言っているように見える。現在の、そして将来の人々がよりよい社会で暮らせるように、記録を重視して欲しいものである。
<文/柳井政和>
【柳井政和】
やない まさかず。クロノス・クラウン合同会社の代表社員。ゲームやアプリの開発、プログラミング系技術書や記事、マンガの執筆をおこなう。2001年オンラインソフト大賞に入賞した『めもりーくりーなー』は、累計500万ダウンロード以上。2016年、第23回松本清張賞応募作『バックドア』が最終候補となり、改題した『裏切りのプログラム ハッカー探偵 鹿敷堂桂馬』にて文藝春秋から小説家デビュー。近著は新潮社『レトロゲームファクトリー』。
2019-12-07 17:39:01