2009/01/13[アーキテクチャ]こんにちは、豆蔵でSOAを主担当としている岩崎です。SOAという単語が語られて検討が進む場合、もう最初からSOAありき、何が何でもSOA、で話が進んでしまう局面に多く出会います。考えてみれば分かることですが、SOAは単なる手段です。何かを成すための手段でしかありません。これは「手段の自己目的化」などという言葉で大学時代にポストモダンな方面でアレコレ議論した記憶がありますが、要するに手段が一人歩きし始めて、目的を見失ってしまいがち、という話です。それが今回のお題です。System、つまり業務システムというのは、究極的には二つの方向性しか無いと言われています。ひとつが収益を生むためのシステム、もうひとつが経費(コスト)削減のためのシステムです。概ね元々のシステム化要求を辿っていくと、このどちらかに突き当たります。突き当たらない場合は、その要求は投資に見合わない浪費、と捉えられても致し方ないでしょう、と言われています。このうち、SOAが手段として使われるのはどちらでしょうか。目的次第、その目的実現の為の無数の手段の選択次第。要するにケース・バイ・ケースです、と言い切ってしまえばここで話が終わってしまうので、このうちの一つの方向性である「経費削減のためのシステム」に焦点を絞ってみます。コスト削減という大目標さて、本稿執筆時の平成二十年も年の暮れですが、世の中の不景気ぶりには目を覆いたくなります。言う私の携わる仕事の周辺でも、開発が凍結しただの、導入が延期しただのと、明日は我が身とゾッとする話がちらほらと。そんな中、ITシステムだけが、世間の逆境よどこ吹く風、相変わらず大飯喰らい、なんて話が許されるはずもありません。業界紙などでよく見る数値では、世の中の情報システム部門予算の6割強が、既存システムの保守・運用に消えていく、と言われているそうです。その数値自体が本当に正しいかどうかはさておいても、新規で開発するよりもずっと多くのお金が保守・運用に投じられているというのが現実です。仮に、経費削減という大目標を達成するのであれば、その為に手を入れる場所は、多くの経費を投じられている保守・運用部分である事が最短の方策であろう事は、もはや誰の目にも明らかであると言えるでしょう。意外にもこれまで多く論じられてきた、アプリケーションの新規構築部分では無い。SOAの上手い使いどころさて、そんな世の中の事情とは少し違う軸で登場し、それなりに脚光を浴びつつあるSOAですが、この経費削減のための手段として上手く使えないだろうか、というのが近年の感じるところです。システムをSOA化しよう、将来はこっちに行くはずだから、なんて話だと、「・・・それ貴方の趣味でしょう!?」なんて茶々も聞こえてきそうです。冒頭の手段そのものが目的化している例とでも言えるのでしょうか。いずれにせよ、あまり説得力がありません。経費削減のための手段だ、との主張では、俄然その存在が輝いてきます。『経費削減のためにはどれだけでも経費を惜しまない』なんて逆説的な主張も出るほど企業はIT投資つまり経費に困っている訳ですから、説得力が違います。SOAがどうやって経費削減に繋がるかというと、これはとにかく「既存システムを上手く繋いで新しいシステムを作ってしまいましょう」という主張に繋がる話となってきます。システム廃棄や塩漬けでは解決できない事ところで、「究極のコスト削減はITシステムを丸ごと廃棄してしまうことだ」なんて冗談は通じないほど、企業の運営にITシステムは組み込まれています。この冗談はコスト削減の手段として適切ではありません。既存のシステムをそのままひたすら延命しよう、なんて後ろ向きの話も、外的要因でなかなかそうも行かないのが現実です。外的要因とは、機械やOSなどの保守切れでシステムを変更せざるを得ない、なんていう単純な話から、ITシステムが担当していたビジネス領域が丸ごと変化してしまい、中身を作り替える必要性に迫られるという、緊急度の高い話まであります。いずれにせよ、そのままひたすら延命できたとしても、冒頭の莫大な経費は相変わらずなので、これもコスト削減の為の手段としては適さないと言えるでしょう。加えてビジネス領域が変化してしまった場合には、既存のシステムをそのまま延命の場合、新たなシステムを作り足さなければなりません。システム統合の方向性SOAの使いどころ、として筆者が有用性に注目しているのは、実はこの領域になります。「追加コストを最小に抑えながら、ビジネスの変化に追従する為の方策」その為の手段として、SOAというのはあるべきではないだろうか。コスト削減の為SOAを利用して既存システムを統合し、余計な部分を捨てて、足りない部分だけ足す。このような当たり前といえば当たり前の方策に、現場の要請は傾きつつあるのではないか。既存システム統合の為のSOAの適用については、SOAとひとくちに言ってもありとあらゆる方式が考えられます。現場での適用事例についても、私の経験上言っても、ひとつとして同じモデルはありません。方向性は同じ「コスト削減」。上手い具合にシステムを繋ぎましょう、足りない部分だけ作りましょう。・・・年末の吹き荒れる不況の風にそのような命題を肌で感じる、現場からの呟きでした。次回は、少し趣向を変えて「SOAとトランザクション処理」について考えてみます。