![](http://ez-cdn.shoeisha.jp/static/images/article/2327/title.jpg)
オブジェクトよりも大きいサービスは使えるの?
ここまでの話で大体のSOAの姿というのは見えてきたんですが、そもそもサービスの再利用っていうのは現実的にあり得るんでしょうか。オブジェクト指向のオブジェクトよりもずっと粒度が大きいわけですよね。粒度が大きくなれば汎用性は下がるから、再利用性も低下するんじゃないでしょうか?
![オブジェクトよりもモジュールの粒度が大きいSOA](http://ez-cdn.shoeisha.jp/static/images/article/2327/obj.jpg)
そもそも、SOAで大事なのは再利用性だけではなくて、保守の容易さだということは抑えておく必要があるよね。スパゲティシステムでは、一文字書き換えたり、コンマを一個入れるために1ヶ月かかるところが、SOAのような独立したモジュール構成になっていればごく短期間ですむ。保守が楽になるという点がSOAの非常に大きな効用なんですよ。
なるほど。SOAの価値を再利用性だけで測るのはナンセンスということですね。
そういうこと。でも、サービスの再利用は現実的にあり得ると思うよ。例えば、こんなSOAのシステムがあるとしましょう。
![SOAで構築したシステムの例](http://ez-cdn.shoeisha.jp/static/images/article/2327/sample.jpg)
さて、ある人が製造のデータと販売、在庫のデータをくっつけたいと考えた場合、これまでだったら、個別のデータベースにアクセスしなければならなかった。ところが、あらかじめサービスを定義しておけば、新しいコンシューマがサービスを組み合わせるだけでシステムを構築できるわけです。
![既存のサービスを流用することで新たなシステムを構築できる](http://ez-cdn.shoeisha.jp/static/images/article/2327/ryuyou.jpg)
うーん、本当にこんなに上手く行くものでしょうか?(次ページへ続く)