私は現在、約 90 KLOC の保険ブローカー向けの、データベースを多用する基幹業務 Rails アプリケーションに取り組んでいます。そのほとんどは、ビジネス トランザクションによるデータ操作と、そのすべてのデータを集計するための複数のレポートです。
私たちは非常に小さなチームに所属しており、コード ベースのサイズと複雑さが管理能力を超え始めています。そのため、私たちはそれを飼いならす方法を研究しています。そのうちの 1 つはサービス指向アーキテクチャに変換することです。つまり、いくつかの小さなアプリケーションに分割します。
このアプローチの問題は、レポート側にあります。通常、レポートには最大 7 つの結合が離れたテーブルが含まれ、途中で複数のテーブルにフィルターが作用します。サービスがテーブルを共有する可能性 (複数の記事でアンチパターンとして述べられている) を破棄した場合、パフォーマンスをそれほど損なわない方法でこのすべてのデータを結合することは可能でしょうか?
では、SOA はそのような問題に対して推奨されるアプローチでしょうか? それとも、解決するよりも多くの問題をもたらしますか?
私たちの専門知識は主に Ruby (Rails と Sinatra) と Python (Plone と Grok) にありますが、他のテクノロジ (.NET、Java) に関するコミュニティが通常この問題をどのように扱っているかも知りたいです。
前もって感謝します!