ストラタジーナム メニュー

2007年11月28日水曜日

OCRESブログ 第3回 兵站(ロジスティックス)

組込み系ソフトウエアは、欧米の場合、軍需主導で開発されてきたテクノロジーが多く、時を経て民間がそれを採用して行くケースが非常に良く見られます。
NASAに代表されるような宇宙航空技術分野も例外ではなく、元々軍事用に開発された技術、副産物が、後に民間に開放されたものが数多く存在します。

兵站、ロジスティックス

洋の東西を問わず、近代の軍隊組織において、参謀もしくは参謀本部の役割は極めて重要であり、多くの国では、軍人の最高職位は、その参謀本部の長です。また、どこの国の軍隊もそうですが、絶えず目を外に向け、常に他国の研究を行う事が習い性になっているため、たとえ敵軍であってもその長所を取り入れる事に躊躇しない事が多く、また国際間の技術伝播が早い結果、参謀本部の組織・役割は国際的に似たような構造になっており、インテリジェンス(軍事情報)を扱う部署や、計画とトレーニング、兵站、情報通信(IT)等の組織から構成されています。

歴史的には、近代の参謀制度は、18世紀のプロシア軍やフランス軍に始まると言われます。プロイセン軍は、ナポレオンに大敗した後、仏軍の軍制を真似し、また、普仏戦争後、大敗したフランスはプロシアの軍制を相当研究したと言われています。
そのプロシア軍の参謀本部ですが、その原点はさらに17世紀のプロイセン国王であるブランデンブルグ選帝侯に遡り、当時の敵国スエーデンの軍制を真似た陸軍兵站部に始まると言われています。
従って、歴史的に言うと参謀本部は兵站を原点とし、その後、インテリジェンスや戦略、戦術を扱う部隊へと発展して行きました。
近代戦においては、前線での物的人的消耗が激しく、その補給能力は勝敗に大きく影響しますが、必ずしも一般的には、その価値を認められていません。良く言われる言葉ですが、「戦争の素人は戦略を語り、プロはロジスティックスに着目する」と言われています。

情報のロジスティックス

さて、そのロジスティックスですが、昨今の現代戦では、消耗するのは物的人的資源だけではなく、情報も大量に消費されて行く事が特徴的です。
軍事アプリケーションの一つの特徴は、その強い分散処理指向と、回復能力です。TCP/IPと言う通信プロトコルは、米国国防総省のARPANETの標準プロトコルに採用されたのがきっかけで爆発的広がりを見せた事は有名ですが、そのARPANETは核攻撃にも耐えうる通信網と言うのが最終目的であり、初期から自動復旧能力が非常に重要な課題でした。
また、その情報の消費ですが、情報の種類も多岐にわたり、同一作戦を遂行する陸海空軍や同盟国間でコンパチブルである事が要求されます。
OCRESの試験カバレッジにあるDDS(Data Distribution Service)は、その仕様を決めたものです。
DDSは、システム間のデータの大量の移動、信頼性、回復性能、リアルタイム性の確保等を目的とします。
内容的には、抽象工場(Abstract Factory)を中心としたデザインパターンを使用したフレームワークであり、軍事アプリケーションだけではなく、分散処理能力を求められる民需アプロケーションへの普及が行われています。


2007年11月22日木曜日

OCRESブログ 第2回 軍事と組込み系(1)

イラク戦争の最中にアメリカの国防長官、ラムズフェルド氏が更迭されたニュース(形式的には辞任)を覚えておられる方は多いと思います。
実は、欧米のコンピュータ業界では、その前後にかなりの憶測が飛び交っていました。

産業構造的に欧米と日本のIT業界は決して同質的ではありませんが、最も異なる点の1つは、軍事分野で顕著に現われています。
筆者は、二十代の頃、当時コンピュータの巨人と呼ばれた企業の研究開発部門にいましたが、その会社のアメリカ市場の最大顧客、つまり、世界市場の最大のコンピュータ・ユーザーは米国国防総省でした。
組込み系の、特に高度技術分野においてはこの構図はまったく変わっていません。
従って、欧米のコンピュータ産業は、ハイエンドに行けば行くほど軍事産業色が強くなり、顧客である各国の国防省の動きには非常に敏感で、一方では顔色を窺いつつ、一方では政治家やロピースト、元軍人等のコンサルタントを使い影響力を行使しています。


国防総省(ペンタゴン)とポトマック川


ラムズフェルド氏の更迭は、ネオコンに代表される文民、つまり軍事の非専門家達による国防総省の完全掌握の失敗と言う側面があり、それはそれで面白い話題ではありますが、当然の事ながら、漏れ伝わる話の確度に幅があり、オンライン向きの話題ではないので、これ以上は触れません。しかし、次回以降、組込み系と言う言う観点で、軍事アプリケーションの特徴を見て行きたいと思います。

2007年11月19日月曜日

OCRESブログ 第1回 コンピュータの誕生







筆者の会社に、世界最初のコンピュータとして知られるENIACをパソコン上でシミュレートさせるソフトウエアを作った人がおり、先日そのソフトのデモを見せてもらいました。
ENIACそのものは、元々、第二次世界大戦中に米陸軍の大砲の弾道計算をする目的で始められたそうですが、完成したのは1946年で、戦争は既に終っていました。
当時、2万本近い真空管を使い、総重量30トンを超えた計算機は、今では、2キロに満たないノート型Macで、遥かに高速に走ります。(正確に言うと、Windowsアプリケーションなので、筆者の環境では、Mac上の仮想PCで走っています。)
このENIACですが、今のコンピュータと違い内部演算を10進数で行っています。当時、既に二進法の方が効率的である事は専門家の間では知られていましたが、スポンサー達を説得するために、わざわざ十進法を採用したそうです。
また、プログラミングは配線をいじって行うタイプで、所謂フォン・ノイマン型コンピュータは、ENIACの直接の後継機種であるEDVACによって初めて実装されました。

写真を見ると、プログラミング用のケーブルが一部配線されている様子が映されています。



真空管を2万本近く使っており、恐らく計算機内部の配線はもっとゴチャゴチャしたものだったでしょう。





ENIACほどエポックメーキングなものではありませんが、筆者も30年ほど前に、実験室でIC(TTLだったと思います)で構成されたNAND回路を使ってコンピュータを作った事があります。トランジスタや真空管ではなくICを用い組み立てたのですが(当時LSIや超LSIは既にありましたが、種類が限られており、実験機はICで作っていました)、それでも電線がのたくって渦を巻き、雲のようになっていて、配線をたどるだけでも大変な作業でした。
この当時を振り返って思い出すのは、ある有名な飛行家の言葉です。人類の初飛行は、アメリカのライト兄弟によって成し遂げられましたが、別にこの兄弟だけが初飛行に挑戦していたわけではなく、世界中で様々な人々によって試みられ、ことごとく失敗していました。この飛行家は、失敗が繰り返されていた頃、インタビューに答え、「飛行機を発明する事は何でもない事である。作る事も、頑張れば何とかなる。問題は、実際に飛ばす事だ。」と言う名言を残しています。
コンピュータも似たような事が言えます。コンピュータ回路も、動作原理さえ知ってれば、設計はすぐ出来ます。アナログ回路よりも、ある意味、遥かに簡単です。配線も頑張れば何とかなります。問題は、正しく動かす事、デバッグが極めて困難なのです。昨今、時々CPUのハードウエア・バグが見つかって、新聞雑誌の紙面を賑わす事がありますが、その複雑さ、困難さを示す良い例でしょう。

さて、目をソフトウエア分野に向けて見ましょう。
オブジェクト指向を含め、現在主流となっているソフトウエア・アーキテクチャの考え方の原形部分が、既にコンピュータの黎明期である50年代には大部分出そろっていたことに驚かされます。
様々な理由で、当時はまだ実用的でないと見做されたアプローチが50年後の現在、有効な手段として発展して来ています。
逆に言うと、アイデアの発見よりも、実用化の方が遥かに時間のかかる作業である、と言えます。
オブジェクト指向なり、フレームワークなり、昨今主流になりつつあるアプローチも、原理の理解よりも、実際に使う事の方が、時間と労力を要する作業と言えるでしょう。