ZDNet コラム
2004/01/15 14:37:00 更新


Opinion:AOPを用いてアプリ開発を簡素化する

JBoss Groupを率いるMarc Fleury氏が、JBoss 4.0におけるアスペクト指向プログラミングサポートについて語る。

 このところ、AOP(アスペクト指向プログラミング)が話題となることが多く、現場ではちょっとしたブームとなっているようだ。中核となるコアの技術者たちは直感的にAOPの最先端の性質と可能性を理解しているようだが、IT部門の人々は自分たちのアプリケーション構造にどのような影響を与えるものなのかを知りたがっているようだ。

 今日、ITにおける新規の企業開発の多くは、アプリケーションサーバといわれるシステムの上でJavaプログラミング言語を用いて行われることが多い。アプリケーションサーバは、サーバサイドで動くネットワークベースのアプリケーションのデファクトのOSとなっている。対照的なのが、デスクトップアプリケーションの標準のOSである米MicrosoftのWindowsだ。 

 アプリケーションサーバの今日の世代の多くが、EJB(Enterprise Java Beans)として知られるあらかじめパッケージされたシステムサービスのライブラリを提供している。しかし、アプリケーション開発者となると、高レベルなEJBプログラマは数に限りがある少数派となり、教育するのも維持するのも高くつくのが現状だ。EJBが難しすぎるといわれる理由は、平均的なアプリケーション開発者に、その仕様が定義する全てのサービスを学び、ある程度理解することを要求するからだ。

 典型的なJavaアプリケーションサーバベンダーは、ツールベンダーと連携して、Java開発で生じるシステムレベルの開発から“(開発の)痛みを取り除く”ツールを強力にプッシュしている。ベンダー各社は、システムレベルの複雑性を覆うツールに依存している。だが、このアプローチは一方向にしか作用しない。なぜなら、ツールそのものがある程度複雑化してしまい、その多くがプロプライエタリ技術だからだ。

 これとは対照的に、Microsoftの.Netは“簡単に使えるツール”という評判に加え、一種の原始的なAOPをベースとした土台となるフレームワークを簡素化することで、開発者にアピールしている。しかし、.NETのインスタンスを見ると、AOPは確かに簡素性を提供しているものの、サービスとバックエンドの機能はかなり制限されている。例えば、.NETでのフィールドは、完全にO/R(オブジェクト/データべース)技術が欠けているか、夜毎にリブートをかけなければならないバグに支配された実装となった。これは、デスクトップのエンドユーザーにとっては許容範囲かもしれないが、サーバサイドのシステム管理者にとっては許容範囲とはいえない。

 JBoss 4.0はAOPを強化して、システムレベルでのサービスを簡素化して通常のJavaプログラマが利用できるようにすることにより、これらのアプローチに代わる優れた選択肢となっている。JBossは、運用環境で検証済みの成熟したサービスを備えている。JBossのAOPは、全てのEJB機能に加え、現時点でのEJB仕様を上回る機能をアラカルトで提供している。その一つが、データベース開発者にはお馴染みとなったプログラム上の構造で、あるオブジェクトの以前の状態に自動的にロールバックをかけるアシディティだ。使いやすさという点では、持続性を例にとって見よう。持続性、あるいはデータベースにアクセスできる機能は、企業のITシステムでしばしば用いられる標準的なEJBの機能の一つだ。JBossでは、オブジェクトの振る舞いに持続性を加えるために全AOP開発者が行わなければならないことは、望みの振る舞いを記述したXML(テキスト)をひもづけした記述子を持つオブジェクトをシステムにフィードするだけよいのだ。

 IT部門の結論として、JBossのような機能を満載したAOPフレームワークを用いれば、真にエンタープライズレベルの開発を幅広いユーザー層にもたらすことから、EJBの能力をフルに活用できるといえる。IT部門はいまや、幅広いサービスを実装できるし、システムコードの再利用を可能にするXML主導のセマンティックスを用いることにより、効率を向上させて開発サイクルを短縮することで恩恵を得られるのだ。さらに、AOPはこれまでのEJBとは異なり、高度な特別トレーニングや急激な学習曲線を必要としないのだ。

 楽しいコーディングを!

※筆者Marc Fleuryは、JBoss Groupの社長兼共同設立者。

原文へのリンク

[Marc Fleury,JBoss Group]

この記事は、ZDNet米国版掲載記事を翻訳したものであり、CNET Networks,Incもしくはその供給元にその著作権が帰属します。Copyright(C) 2005 CNET Networks, Inc. All Rights Reserved.“ZDNet”はCNET Networks, Inc.のトレードマークです。