エンタープライズ:コラム 2003/08/18 21:39:00 更新


Gartner Column:第106回「アーキテクチャ」って何?

IBMが1964年のシステム/360で初めて使った「アーキテクチャ」という言葉は、現在ではさまざまな意味を持つ。この言葉を使って他人とコミュニケーションするときには、事前にその意味を明確に定義し、合意しておくべきだ。

 いかなる技術分野でもあることだが、特にITの世界では一つの言葉に複数の意味が込められてしまうことが多いようだ。これにより、単純な概念がなかなか理解できなかったり、コミュニケーションにおいてあらぬ誤解を招いてしまったりという問題が生じる。そのような問題を生じさせがちな言葉の一つが「アーキテクチャ」だと思う。

 ちなみに、誤解の種となりがちなもう一つの言葉が「サービス」だろう。サービスは、機器の保守、SI、コンサルティングなどの人の労力による価値の提供ビジネスという意味と、中粒度のソフトウェア部品(要するに、「Webサービス」における「サービス」)という意味の両方で使われている。一度理解してしまえば何でもないのだが、馴染みのない人は混乱してしまうだろう。

 さて、アーキテクチャという言葉であるが、この辞書的には「建築(学)」や「構造」という意味を持つ言葉がITの世界で最初に使われたのは、IBMのメインフレームであるシステム/360が世に発表された1964年のことである。

 そのときのアーキテクチャとは複数の実装に共通な命令セットの仕様のことを指していた。今では信じられないかもしれないが、それ以前には、コンピュータのモデルごとに命令セットが異なる(例えば、ビジネス計算向けモデルと科学技術計算向けモデルの命令が全く異なる)ことが通常だった。複数モデル間で共通の命令セット(アーキテクチャ)を採用したシステム/360は当時としては画期的だったのである。

 このような「命令セットの仕様」という意味のアーキテクチャは今でも使用されている。例えば、「インテルアーキテクチャ」というような言い方である。

 IBMは、このアーキテクチャという用語を、ネットワークプロトコルの仕様にまで広げSNA(システムネットワークアーキテクチャ)という用語を広めようとした。しかし、現在、TCP/IPアーキテクチャとは言わないので、この意味のアーキテクチャという言葉の使用はすたれてしまったかもしれない。

 それ以降、アーキテクチャはハードウェアシステムの「基本設計」という意味でも広く使用されるようになった。AT互換機アーキテクチャ、NUMAアーキテクチャというような言い方である。

 さらに、アーキテクチャという言葉はソフトウェアの世界でも広く使用されるようになってきた。例を挙げれば、クライアント・サーバ・アーキテクチャ、サービス志向アーキテクチャというような言い方である。これは、ソフトウェアにおける「デザイン・パターン」(システム設計の共通パターン)という意味での使用と考えることができる。

 「企業内のテクノロジー標準」という意味でアーキテクチャという言葉を使用する人もいる。例えば、「わが社のアーキテクチャはSolaris、Oracle、Java言語で標準化されている」というような使い方である。

 また、いわゆる「アプリケーションの共通基本設計」という意味で、アーキテクチャを使用することも多い。つまり、全社的な統合アーキテクチャに基づいてトップダウン的にビジネスプロセス設計、データモデル設計、アプリケーション設計の標準化を行おうということである。流行のエンタープライズアーキテクチャ(EA)と言った場合には、この意味のアーキテクチャとその前に触れたテクノロジーアーキテクチャの両方を合わせて言うことが多いようだ。

 余談ではあるが、全社的に共通のエンタープライズアーキテクチャを設計し、トップダウンでそれにしたがって全アプリケーションを設計開発できれば理想的に思える。

 しかし、一般的大企業にとってこの理想を追求することは非現実的である。ガートナーは、仮に、しっかりしたエンタープライズアーキテクチャが存在している場合でも、それを適用するのは、全アプリケーションの30%以内に留めることが現実的かつ効果的な目標であると考えている(この点については、また別の機会に詳しく述べたい)。

 さて、ここまででも、「プロセッサの命令セット仕様」「ハードウェアの基本設計」「ソフトウェアのデザインパターン」「企業内のテクノロジー標準」「アプリケーション共通基本設計」という、似通ってはいるが意味が異なる使用法が出てきた。これ以外にも、マーケティング上の用語として単なる製品体系という意味でアーキテクチャという言葉が使われてしまうこともある。

 もはや、アーキテクチャという言葉に一つの共通の定義を与えることは困難になったと言っていいだろう。ここで重要なのは、アーキテクチャという言葉を使って他人とコミュニケーションするときには、事前にアーキテクチャという言葉の意味を明確に定義し、合意しておくべきだという点だ。

 特に、テクノロジー標準=アーキテクチャと考えている人と、デザインパターン=アーキテクチャと考えている人が、事前の確認なしに同じアーキテクチャという言葉を使うと混乱する危険性が高いだろう。

[栗原 潔,ガートナージャパン]