コンポーネント開発はどこまで進んでいるか?コンポーネント開発のキホン(1)

» 2004年07月08日 12時00分 公開
[最首英裕,イーシー・ワン 代表取締役社長(CEO)]

 ソフトウェアの部品化(コンポーネント化)という考え方は、これまで多くの人が取り組んできたテーマだ。機能単位で分離し、システムの保守性を高めるだけでなく、一度作成した部品を再利用することで、開発生産性を向上させる……。こうしたアイデアはしかし、同時に多くの挫折も生み出してきた。

 J2EEの登場により、ソフトウェア部品の再利用が改めて脚光を浴びている。ソフトウェア部品を、企業の枠を超えて共有しようとする動きも出てきている。しかし、ソフトウェア部品の再利用は、果たして本当に実現するのだろうか? 共有は本当にうまくいくのだろうか? そもそもJavaが実現できることは何なのだろうか? いまだ答えが出たとはいえないテーマだが、コンポーネント開発の最前線で何が起きているのかを語ってみたい。

[1] マーケットの現状

 この数年、ソフトウェア・ビジネスは大きく変化してきた。コスト削減要求は、ますます厳しくなり、ユーザーは最適なシステム投資を模索し続けている。例えば、こんな要求が増えてきた。「個別要求に応えてきたシステムを、全体最適の観点から見直したい」「長年の随時保守対応によって複雑化してしまったシステムを、保守性の高い構造に再構成したい」。

 こうしたことを実現するため、硬直化した既存システムから、思い切ってアーキテクチャそのものを変革しようとする企業が増えてきている。

 ある企業は、多様な商品構成のため、工場ごとに独自のシステムを構築してきた。製品ジャンルが異なる中で、最適なシステムを選択してきた結果だ。ある一定のコストを容認するならば、現在のシステムは十分最適化されているといえる。しかし、マーケットの変化にさらに柔軟に対応しつつ、より一層のコスト削減を実現するために、この企業では、全体を見通したモデリングの結果、共有化部分と個別部分に分離したコンポーネント開発に踏み切った。

 全社的な取り組みは、まだ始まったばかりだが、こうした企業が、何を狙い、どのように取り組んでいるのかについて触れてみたい。

[1-1] コンポーネント化を指向する企業

 比較的単純な構造の情報システムを持つ企業は、コンポーネント化という考えに、あまり共感を示さないものだ。いわく、「自分たちのシステムは1つであり、業務を頻繁に変えることはあり得ない。システムは、できるだけコストを掛けずに構築し、ビジネスモデルに修正があったら、すべて捨てて作り直してしまえばよい」。そういい切れる企業には、パッケージを利用したシステムが適している。

 しかし、複雑なビジネスモデルを有する企業は、違うことを考えつつある。例えば、事業部ごと、もしくは分社化された企業ごとに異なるビジネスを展開している企業や、複数の子会社を持ち、いくつかのビジネス分野で構成されている企業だ。このような企業にとって、個々の事業分野での俊敏性は非常に重要なテーマである。同時に、全社的な効率化も追求しなければならないのはいうまでもない。

ALT 図1 CIO Magazine日本語版 2003年2月号の投資動向調査(「生き残りをかける日本企業のIT投資動向を読む」〜CIO Magazine IT投資動向調査 2003〜)

 CIO Magazine日本語版 2003年2月号の投資動向調査(「生き残りをかける日本企業のIT投資動向を読む」〜CIO Magazine IT投資動向調査 2003〜)によると、自社内もしくは業者に依頼する独自開発のニーズは、パッケージの購入ニーズをはるかに上回るという。「パッケージで解決できるシステムは、自社の優位性を追求しなくても良い部分に限定している」とは、ある企業のCIOの言葉だ。「全体最適と個別最適のバランスを取りやすくするためにも、システムはコンポーネント化を指向していきたい」とも。

[1-2] 乗り越えなければならない問題

 では、「コンポーネント化」とはどのように具現化していけばいいのか。概念として理解できても、実際にコンポーネントを活用してシステムを構築するのは簡単ではない。

 基幹システムのオープン系移行を検討し、言語をPL/1からJavaへ置き換えていく場合がある。そこで問題になるのが、果たして自分たちはどこまでできるのか、ということだろう。出来上がったシステムは、自分たちに理解できるものなのだろうか、と不安になることはないだろうか。「コンポーネント化の概念に共感できても、具現化をベンダに頼ってしまっては、果たして本当に全体最適を実現できるのだろうか?」という疑問。あるいは「全体最適をベンダに委ねてしまっては、相手に生殺与奪権を与えたことにならないか?」と不信の念が起こるのは仕方のないことだ。

 しかも、仮にそれらしき部品を作成したとして、それだけで再利用が実現するのだろうか? コンポーネント化を考えていくと、そこには技術論のみで解決できないさまざまな問題が噴出してくる。

 つまり、コンポーネント化にどのレベルまで取り組むのか、という点。全社的な取り組みとして、中長期的に生産性を劇的に上げるために進めていくのか。それとも、単一のプロジェクトで作成される成果物が、保守性の高い構造であることを目的とするのか。コンポーネントという言葉が持つ意味には、実にさまざまな要素が含まれている。どこまでのレベルで何をするかによって、取り組む内容も大きく異なってくる。私たちはこうしたコンポーネントへの取り組みを、5段階に類型化して考えている。この類型を「cBank 5ステップ」と呼んでいる。

[2] 5つのステップ

 cBankとは、イーシー・ワンが進めているコンポーネント・ビジネスの総称である。対象はJ2EEに絞っている。われわれはコンポーネント化の具体的な方法の模索を通して、ソフトウェア部品産業の創出を目指しているのである。ソフトウェア部品産業の創出などというと、随分と現実離れしたことをいっているように思われるかもしれない。IT業界の現実は、オープン系への移行から、ようやくJava開発に踏み切ったというのがせいぜいのところだろう。あるいは、Java開発への着手は済んでいたとしても、ようやくコンポーネントベース開発を指向し始めたところかもしれない。

ALT 図2 コンポーネント開発のステップ

 コンポーネント化というテーマで話をすると、取り組みの状況によって、考えなければならない点が大きく違ってくる。こうした点を踏まえ、コンポーネント化への取り組みを5段階に分類したのが、「cBank 5ステップ」だ。次回は、この5ステップからコンポーネント化について考えてみたい。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ