ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

富士通は、マイクロソフトとまではいわないけど、他社よりかは優位にたてたのに。。。って話

2005-09-20 12:14:33 | 開発ネタ

 富士通は、J2EEのプラットフォームとしてInterStageというのを使い、そのプログラミング方法として、CBM,CBSというものを使います(表現としては、不適切かもしれません。とにかく、富士通は、J2EEのとき、CBM,CBSを使います)。

 このCBMとCBS、ちょっと考え方を変えれば、MicrosoftのLINQのような考え方を、Javaで容易に実現でき、生産性も、他の会社に比べてあげることができたのに。。。みんなが、楽に開発できたのに。。でも、考え方が悪かったせいで(>_<!)というお話。




 このCBMとCBSとは、
 CBS=ほぼセッションBeanのこと。
     トランザクション管理と、エンティティの呼び出しを行う
 CBM=ほぼ、エンティティBeanのこと
     資源に対するマッピング、操作を行うクラスです。

 で、たしか、私の記憶だと、CBM,CBSともに、コントローラーとなる部分と、実態の操作部分をもち、クライアントとやりとりするメッセージクラスを持ちます(CBMメッセージ、CBSメッセージ、バリューオブジェクトに、役割的には相当する)。
 で、このメッセージ交換は、CAANMsgクラス(だったかな)なのですが、このCAANMsgは、ハッシュマップに変換できます。実際には、ハッシュマップが飛んでいるイメージです。




 ということは、昨日までのウィリアムのいたずらの考え方を応用すれば、

 CBMに、汎用RDBアクセスのクラス、
      汎用XMLアクセスのクラス
      汎用的メールアクセスクラス
 などを1つつくって、

 CBSに、とりあえず、その汎用RDBアクセスのクラスを読み出したり、書き出したりするクラスを1つづつ提供しておけば。。。

 SQLで、Where句をかくとき、どのように変換しなければならないかは、クラスからわかるわけですから(それは、前のブログで示した)それをもとに、SQLを作れるわけです(しんふぉうえあを使う場合には、NCを付けないといけないけど、それは、日本語クラスを作ればいいだけだし、そもそも、Prepare Statemantを使う場合は、いらない気がした。。。気のせいかも)。
 つまり、DBアクセスクラスは、CBM,CBS1つづつ(実際にはいくつかのクラスに分かれるが、各テーブル分用意する必要はないという意味)。でOKとなるはずです。




 この場合、各テーブルごとに用意するときにくらべ、ソースが少なくなるので、管理が楽になり、生産性があがる。。。だけじゃないんです。

 この方法を採用すれば、CBMに、CSVを読み込むテキストファイルのものを提供することにより、DBアクセスしないダミー用のものをつくれる(シナリオをテキストファイルをつくってチェックするツールはあるけど、CSVファイルをテーブル代わりに、読み込み、更新するっていうものではない)っていうこともあるし、そもそも、テーブルごとだと、CBM,CBSを作る人が必要になる。その人がつくって入れるまで、業務で利用する側は、作業がとまる。
 ところが、これの場合は、DBのほうが対応すれば、すぐに、使うことができる。

 つまり、途中に人を介在させないため、各テーブル作成時に必要となる人の都合・連絡・コミュニケーション一切考えないでいい。
 なので、生産性は、ずいぶん上がる。。。(コミュニケーション不要という部分で、ずいぶん上がる)




 なんだけど、実際には、そういう方向には進まなかった。

 たぶん、世の中の流れからなんでしょうね。

 世の中は
・入出力用のハッシュマップを使い、テーブルごとにクラスを作成する
・入出力用のハッシュマップを使い、1つのクラスで行う
 とあったとき(ハッシュマップ=CAANMsg)下の方向でなく、上の方向に進んだ。

 つまり、すべてのテーブルのクラスを作成し、その作成が大変なので、自動化する方向へすすんだ。(それが、EJBBuilder)。そのため、EJBBuilderのバージョン管理まで必要になって、現場は。。。って言う話は、あんまりにもやばやばな話になってくるので、カットしよう。

 しかし、このテーブルごとにクラスを作成してしまう方法は、結局、O/Rマッピングとおんなじようなもんで、ここをEJBBulderでカイゼンしても、他社との差別化は、さほどできないことは、想像できよう(Hibernateを使うのと同じようなもんっすからね)。

 ただ、もし、関係者が読んでいれば(って、読んでいるとは思ってないで書いているんだけど)そこ(=テーブルアクセス部分。それ以外の部分は必要)のCBM,CBS作成部分がなくなるというだけで、かなり生産性が上がり、他社との差別化が出来そうなことは、想像できるんではないでしょうか・・・

 そして、MicrosoftのLINQは、それをやろうとしているって、ことだね。




なーんて書いちゃって、じつは、やばやばだったりして。。。
もし、ゆりかもめのなかとか、もんじゃやきたべながら、みんなよんでたら。。。
どーしよー(>_<!)

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ハッシュマップとXMLの相... | トップ | コンサルティングコーチング... »
最新の画像もっと見る

開発ネタ」カテゴリの最新記事