SoftEtherの開発や中国の「グレートウォール」のハッキングで知られる登 大遊氏は、ゲットイット主催のWebセミナーで、日本のITエンジニアに求められる「トライ&エラーの思考法」について語った。
大学在学時に、ソフトウェアVPN(Virtual Private Network)の「SoftEther VPN」(以下、SoftEther)を開発したことで広く知られる登 大遊氏。SoftEther開発後も中国の検閲用ファイアウォール「グレートウォール」へのハッキングなどで話題を集め、現在は東日本電信電話(NTT東日本)のビジネス開発本部 特殊局員、情報処理推進機構(IPA)の産業サイバーセキュリティセンター サイバー技術研究者、筑波大学の客員教授などを務めている。
登氏が、ゲットイットが開催したWebセミナーで、日本のITエンジニアに必要な「トライ&エラー(トライアルアンドエラー)の思考法」について話した。ゲットイットは、リユースIT製品の販売やレンタル、メーカーサポートが終了した製品の保守をサポートするIT機器保守(第三者保守)など幅広い役割で、NTTグループをはじめとする多数の企業を支援している企業だ。
登氏のコンピュータ経験は小学生までさかのぼる。同氏は任天堂のゲーム機『NINTENDO64』のゲームを自ら作ろうと試みた。だが、当時覚えた「BASIC」では難しかったため、中学時代は「C」の解説書を朝から晩まで熟読していたという。その際に「DirectX」のドキュメントから英語と開発手法を学び、ゲームエンジンの開発にも挑戦。しかし、「このまま続けていてもプロには勝てない」と考え、ジャンルの異なる通信分野にその興味を移す。結果、大学時代にSoftEtherを開発するに至った。
他にも登氏は、NTT東日本の「シン・テレワークシステム」やIPAとJ-LIS(地方公共団体情報システム機構)が共同開発した「自治体テレワークシステム for LGWAN」の開発にも携わっている。
同氏は日本のITについて「クラウドやインターネットは使えるようになったが、技術開発には至っていない」と指摘している。
「技術は大まかに『アプリケーション』(以下、アプリ)とOSやネットワークといった『システムソフトウェア』に分けられる。船舶に例えると船体に相当するのがシステムソフトウェア、船上の客室やプールなどの設備がアプリとなる。日本人はアプリを開発できても、システムソフトウェアではGoogleやMicrosoft、Amazon Web Services、Appleなどに後れを取っている」
登氏は「日本の技術者がシステムソフトウェアを開発できる状況を実現したい」と訴える。
システムソフトウェア開発というと専門的で大規模な機器が必要そうに思えるが、同氏によると、約600万人が利用しているSoftEtherのダイナミックDNSサーバは中古のPCで構成されているという。また、シン・テレワークシステムも安価な「Raspberry Pi」で構築されている。
「中古機器などをうまく使って気軽に開発、実験を始めることが重要だ」と登氏は強調している。
同氏は大学時代に実験用コンピュータを入手するため、大学構内の物品廃棄日に捨てられるサーバやネットワーク機器を拾い集めて、独自のネットワーク研究開発環境を構築していたという。
登氏は「最近は(コンピュータを収集できる場所も)なくなってしまった。それを復活させれば日本でも(IT産業が)世界を席巻(せっけん)できるのではないか」と持論を述べる。
登氏は「トライ&エラー」についてどう考えているのか。
「例えばVPNネットワーク通信処理におけるバグの洗い出しがある。ネットワークなどリアルタイム性の高いシステムソフトウェアでは、問題が再現されるまで動物カメラマンのように待つ必要がある。だが、相手は動物ではなく自ら作ったもの。自業自得だが苦行だ」
アプリであれ、システムソフトウェアであれ、テスト(検証)は欠かせない。だが、システムソフトウェアならではの課題がある。それは「多くの人が使わないと問題を発見できない」ということだ。
「われわれは、限られた条件で動作するアプリではなく、さまざまな条件下で利用される“基盤”を開発しているため、全てのパターンを網羅した検証は難しい。現実的には、作りながら公開し、指摘された異常を修正する方法しかない」
そのため登氏は、開発したシステムソフトウェアを自身で使用するだけでなく、インターネットで募った有志に試してもらう、といった検証もしている。
トライ&エラーの観点でいえば、SoftEtherを開発した2003年当時のことについて「仮想環境が発展途上のため、実機を用いた検証が特に困難だった」と同氏は振り返る。
「実機を使うと、エラーが出たときにOSごと停止してしまい、デバッガーが使えなかった。リセットしてから検証しようとしてもデバッガーが使えるようになるまで待ち時間があった。現在は、仮想マシンでソフトウェア開発やカーネルプログラミングが可能なため、トライ&エラーに必要な時間は短くなっている」
一方で、アプリなど“表層的な分野”の開発者は増えているものの、システムソフトウェアなどの“コア”の部分に対応できる開発者が減少し続けていると登氏は言う。その理由の一つはシステムソフトウェアの安定性。もう一つは長期的視点の持ちにくさだ。
システムソフトウェアは一度安定すれば再開発に過度な労力をかける必要はない。そのため、既に安定したシステムソフトウェアが存在する分野で改めて開発や検証を進めようとは考えなくなる。また、システムソフトウェアは利益を生み出すまでの期間が読みにくく、短期的に見ればスマートフォンアプリなどを開発した方が利益につながる。そのため、「システムソフトウェア開発に目を向ける企業は少ない」と登氏は考えている。
登氏は次に、ICT人材のマインドセットについて話した。
同氏はシステムソフトウェアとアプリの大きな違いとして「ハードウェアとつながる特権」を挙げる。
「システムソフトウェアを理解した上でアプリを作れる人と、システムソフトウェアに関心がない人やアプリだけを作りたい人を比べると、前者はハードウェア資源やコストが限られている環境でも高速で動作するアプリを開発できる。なぜならハードウェアとつながる唯一の特権領域がシステムソフトウェアだからだ」
せっかくやるのであればシステムソフトウェア領域まで入り込めば面白い、と登氏は話す。
「アプリ開発では満足できずに、性能向上を目的としてシステムソフトウェア開発に手を出した人々が、IT企業の中心的存在となり、生き残っている」
登氏はGoogleの成り立ちに触れ、「同社は『x86互換サーバ』を並べて、その上で検索エンジンの基盤をスケーリングし、低レイヤーを含めたさまざまな試行錯誤をし、ストレージやCPUの分散システムを独自開発した。一方、NTTドコモは他社が開発した『Solaris』やHewlett Packardの『HP-UX』に頼って実装していた。『iモード』のメールサーバの性能は悪くなかったが、2000年以降は『Gmail』が登場し、支配的になっていった。それはGoogleがスケールできるシステムソフトウェアを自ら開発していたためだ」と指摘する。
日本の企業は米国に比べ、アプリとシステムソフトウェアのバランス感覚が悪いという。
「米国の大手IT企業の場合、次世代の従業員が入社すると、動いている巨大なシステムの環境を見せながら勉強させる。だが、日本の企業や大学、役所ではそういった高度で複雑な事柄を後輩に教えられる人材はせいぜい数名程度で、その人々も“絶滅危惧種”だ」
では、具体的には何ができるのか。登氏は1つ目に「技術解説書を残すこと」を提案している。
「システムソフトウェア領域は高度かつ複雑な範囲の広い知識が必要なため、口頭では伝えにくい。体系化した文章を残さなければ、日本のIT技術は滅んでしまうだろう」
2つ目は「開発環境を整備すること」だ。技術者が“自分が全てを支配できる研究開発環境”を持つことが重要だと登氏は言う。
登氏は「クラウドは短期賃貸マンションやホテルの客室に泊まるのと同じだ。コンピュータの構造を理解するには、建物や土地そのものの知識が必要だ。だが、“借りた部屋の中”にいるだけではその全容は把握できない」と指摘している。
「ネットワークについても、VPC(仮想プライベートクラウド)やファイアウォール経由ではなく、インターネットに直結して脅威と直面し、グローバルIPで実験できる環境が必要だ。米国の大手IT企業では従業員に“土地”を用意し、自由に建築物を建てさせ、それが倒れるところまで経験させるという。その経験から『倒れないシステム』を作れるようになるからだ。日本も、サーバやネットワークをプレーンな状態から構築できる人材を育成する時期が来ている」
最後に登氏は、ハードウェアへの思いの丈を語った。
「システムソフトウェア開発はインターネットへ直結したり自作のネットワーク機器を使用したりするため、ハードウェアにも触れる必要がある。私がルーターを自作する際には、ネットオークションで投げ売りされているサーバを購入し、足りないPCパーツを取り寄せて、数十個のNIC(ネットワークインタフェースカード)を試している。これらは一見、無駄に思えるかもしれない。だが、それらをすることでシステムの奥深くに存在する“クセ”が見えてくる。また、LinuxやBSDを動かしてみると、IT技術入門書では見かけないトラブルに遭遇する。OSのソースコードに目を通さなければならないし、場合によっては、コードを修正する必要も出てくる。そうした状況に追い込まれる(自身を追い込む)のが重要だ」
登氏は「コンピュータの本質を理解している人は希少価値がある」と述べ、ITエンジニアが自由に使える環境の重要性を強調した。また、企業にとってもそれは同じだ。登氏は「(前述したような試行錯誤で)SI(システムインテグレーター)企業が知識を蓄え、それを用いて問題を解決すれば顧客はその企業の価値に気付き、次のビジネス上の成功にもつながる」と言う。
なお、本セミナーを開催したゲットイットは、年間約14万点の中古部材を流通させるリユースIT製品の専門商社だ。同社はリユースIT製品の販売に加えて、第三者保守やIT機器レンタルサービス、運用後の機器の買い取りにも対応している。
ITエンジニアが「自由に使って壊す」環境を構築する上で、ゲットイットは強力なパートナーになるだろう。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:株式会社ゲットイット
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2024年2月8日