
SOAのセミナーはなぜ途中から難解になるのか?!
SOAの考え方やメリットがわかって、じゃあやってみようという話になったあたりから話が難しくなりますよね。データモデルというのもそのひとつですが、これはなんでしょう?
SOAを本当に使えるものにするためには、データモデルの問題って凄く大きいんですよ。そもそもシステムにとってデータモデリングは非常に重要なんですが、再利用性や拡張性を重視するSOAというアーキテクチャであればなおさらです。特に、汎用的なサービスの設計にはデータモデリングは必要不可欠といえます。

といってもピンとこないと思うから、例を出しましょうか。銀行ありますよね。あそこって、口座の情報をどんな風に管理していると思いますか?
銀行ですか。うーん、顧客IDがあって、それに口座の情報が紐づいている感じでしょうか?

実は、レコードの一番頭にくるキーは銀行名なんですよ。その後に支店、口座ときて、その属性として名前が付属しています。

でも、この管理方法には問題がある。例えば、一人が複数の支店に別の口座を持っていたり、同じ支店の中に異なるタイプの口座を持っていたりするとしますよね。このような場合に、顧客ごとに名寄せすることはできるでしょうか?
IDも何も無いんですよね。うーん、難しいんじゃないでしょうか。(次のページへ)