【後編】キーパーソンが語るJava EE開発の現在とこれからの課題
10年以上の歳月をかけて進化を続け、エンタープライズ・システムの開発基盤として不動の地位を確立したJava EE。クラウド・コンピューティングやビッグ・データの登場など、ITトレンドが目まぐるしく移り変わる中、Java EE開発者は今後、同技術をどう活用していくべきか――2011年9月6日に開催された「WebLogic & Java EE活用セミナー」では、「キーパーソン座談会――Java EEシステム開発の現場で今何が起きているか」と題したパネル・ディスカッションが実施され、早くからJava EEによるシステム開発に取り組んできた開発者らが活発な議論を展開した(編集部)。
近年のJava EE開発の特徴
前編で紹介した3つのセッションに続いて実施されたパネル・ディスカッションに登壇したパネリストは、サーバ・サイドJava開発のバイブル的存在である書籍「マスタリングJava EE 5」の著者としても知られ、今回はユーザー企業のITマネジャーの立場で参加した三菱UFJインフォメーションテクノロジー ITプロデュース部 部長の斉藤賢哉氏、Java EEを中心とするプログラミングに関する話題を綴ったブログ「達人プログラマーを目指して」で知られ、今回はSIerの立場で参加したオージス総研のソフトウェア・アーキテクト浅井良氏、そしてエンタープライズITにまつわる話題に特化したブログ・メディア「Publickey」の編集長、新野淳一氏の3名だ。モデレーターは日本オラクルの伊藤敬氏が務めた。
伊藤氏が選んだ最初のディスカッション・テーマは、「近年のJava EE開発の特徴」である。これについて伊藤氏が意見を求めたところ、斉藤氏からは「ここ2、3年は大きな変化が見られない」との答えが返った。なお、斉藤氏が業務で使用しているJava EEのバージョンはようやく5になったところで、つい先ごろまではJ2EE 1.4をメインで使用していたという。そんな斉藤氏は、「Java EEの最新バージョンは6だが、これに一気に移行するのは難しい。その点では、現在のJava EEと企業の開発現場との間には乖離があると言える」と懸念を示した。
この斉藤氏の発言には浅井氏も同意したうえで、さらに「今もStrutsなどを使っている企業は少なくない」と指摘。「そうした企業とSpring Frameworkなどを使う先進的な企業の二極化が進んでいるのかもしれない」との見解を示した。加えて浅井氏は、企業の現場では「UIの改善」といった目に見える部分に関心が向きがちで、「生産性の向上」といった本質的な部分にはなかなか目が向かないようだとも指摘する。
「レスポンス・タイム」や「UIの使いやすさ」といった比較的わかりやすい部分に対する要求レベルばかりが高まっていることは、斉藤氏も実感しているようだ。
「UIに関しては現状、AjaxやFlexなどの技術を使って対応しているが、今後普及するであろうHTML 5にも多くの期待を寄せている。Java EEについては、ユーザーが直接目にする技術ではないが、"縁の下の力持ち"としてユーザーの業務を支えるものと見られている」(斉藤氏)
なお、Java EEに備わるトランザクションやメッセージングといったミドルウェア機能の高さがユーザー側に理解されにくい点について、浅井氏は「システム構築が"インテグレーター主体"か"ユーザー主体"かという日米企業の開発体制の違いが根底にあるのではないか」と指摘した。
Java EEシステム開発における問題点と解決策
こうしたJava EE開発の現状を踏まえ、テーマは次の「Java EEシステム開発における問題点と解決/対応策」に移った。
この中で斉藤氏は改めて、Javaの最新の仕様と開発現場との間のギャップが大きくなっている点を指摘。このギャップを埋めるにあたっては、「経営者」と「現場」の両方の観点で解決にあたる必要があると語る。リスクをとりたくないと考える経営者に対し、新技術による「開発生産性の向上」を定量的に示して説得するのは容易ではない。その中でも、意識的に定量的なメリットをアピールして認めさせることがITアーキテクトに求められる役割の1つではないかというのだ。
浅井氏も斉藤氏と同様に、Java EEの開発技術の進化に企業側の意識の変化が追随できていないことを問題点の1つとして指摘する。そもそも、エンタープライズ・システムは「業務にITシステムを活用する企業」のためものであり、最新技術の採用よりも、既存の情報資産の有効活用や比較的長期のライフサイクルが求められる。さらに、日本ではシステム構築がSIer主体になりがちなことから、保守性、再利用性、拡張性、情報資産の有効活用といったJava EEが目指すアーキテクチャのメリットにまで意識が向きにくいのかもしれない。
Java EEの「開発生産性」について浅井氏は、「今後は大いに自信が持てる」と期待をのぞかせる。Java EEが担う2つの役割である「ミドルウェアに対する標準APIと実行環境」と「標準アプリケーション・プログラミング・モデル」について、浅井氏は「これまで前者に関しては満足できたが、後者については今ひとつだった」と指摘。プログラミング・モデルが大幅に改善されるJava EE 6ならば後者の役割も十分にこなせるようになることから、「今度こそ自信を持って使っていける」と評価する。
一方、「保守性」に関して斉藤氏は、Java EEの進化に伴ってさらに高まっていくだろうとの見通しを述べた。
「アプリケーションの保守性、再利用性を高めるうえで重要なのは、オブジェクト指向にのっとって、いかにきっちりとコンポーネント・モデルを作り上げるかということ。従来のEJBはモデルに制約が多かったが、Java EE 5、同6と進化する中で、純粋なドメイン・モデルのコンポーネントを作れるようになってきた。これにより、今後はさらに保守性が高まるだろう」(斉藤氏)
新野氏は、こうした両氏の意見に賛意を示しつつ、ここ数年、システム開発の流れが"軽量化"、"簡易化"に大きく傾いたことについて、「オフショア開発の利用や不況に伴う開発の内製化が、アジャイル開発やテスト自動化へのニーズにつながり、より軽量なフレームワークへの移行を促したのではないか」との分析を披露。さらに、近年は旧来のエンタープライズの世界よりも、その外部で起きているコンシューマー向けサービスの利用拡大への対応のほうが重視され、"軽量化"、"簡易化"の流れが加速されたのではないかとの見方を示した。
「では、そうした世の流れを受けた各種開発技術とJava EE技術との間には今、ある種のギャップが生じているのだろうか?」――伊藤氏のこの問いに対して浅井氏は、「ギャップはさほど感じていない」と返す。Java EEはあくまでも"標準技術"であり、オープンソースのフレームワークなどを独自に拡張するといった方法で最新の技術と組み合わせて使うことが可能だ。近年では組み合わせの柔軟性も高まっており、「必ずしもすべてをJava EEで作る必要はない。開発側からすれば便利な時代になった」(浅井氏)と語る。
一方、斉藤氏は「クラウドやソーシャルといった最新のトレンドとJava EEの間には、確かにギャップがあるかもしれない」と指摘する。とは言え、一定規模以上のプロジェクトにおいては、Java EEが果たす"標準"としての役割は極めて大きな意味を持つ。「標準であるということは、それに準拠したミドルウェア、あるいは開発要員などの取り替えが利くということ。これは、ビジネス上、大きなメリットになる」とし、「標準であるからには、新たに登場した華やかな技術を拙速に採用するのではなく、本質的な技術を取り込んでいってほしい。それが現在のJava EEが果たすべき大きな責任だ」と注文を付けた。
確かに、次々と現れる有望な技術をどのタイミングで、どこまでJava EEに標準として取り込んでいくかは難しい問題だ。新野氏も、「以前と比べてプログラミング・フレームワークの選択肢は広がっており、使えそうなものをすべてJava EEに取り込んでいくべきかどうかは議論が必要だろう」と指摘。それに対してオラクルの伊藤氏は、「もちろん、何でも取り込もうということではなく、押さえるべきところを押さえつつ、次にJava EEが目指すべきところはどこかという観点から仕様の検討が進められているはず。私自身も今後の発展の方向性を興味を持って見守っている」と語った。
Java EEの現在価値、そして今後への期待
それでは、現在のJava EEは、企業にとってどのような価値があるのだろうか? これに関して、3人のパネリストはそろって、「10年以上の歴史に基く成熟度、完成度の高さ」を挙げた。
「確かに、今日のJava EEは華やかな最新技術ではない。しかし、華やかさだけでシステムのすべてを語れるわけではない。10年以上の歴史の中で、ツールなど多くの資産が形成された。それらが利用できる点は、特にエンタープライズの世界では大きな意味を持つ」(浅井氏)
「言語としての成熟度、完成度の高さ、安定稼働に適応するインフラといった要素は、エンタープライズの世界では計り知れないメリットだ。また、Javaの場合、コミュニティと標準化のためのしっかりとしたプロセスがあることも安心感を高めている」(斉藤氏)
また、今後への期待として浅井氏は、Java EE 6で集大成される「開発の簡易化(EoD:Ease of Development)」が開発者の仕事の仕方に与える変化を挙げる。このEoDを、「単純に開発が楽になるというレベルでとらえるべきではない」というのが浅井氏の主張だ。
「開発者が単純作業から解放されたら、今後はそれ以外の部分でいかに頭を使うかという点で競い合うようになるだろう。Java EE 6に期待するのは、流通や小売、金融といったドメインごとにオブジェクト指向による設計を行う "ドメイン駆動型設計(DDD:Domain Driven Design)"が盛んになるのではないかという点だ。今後のエンタープライズ開発の世界は、ビジネスにもある程度通じた開発者が、ITを駆使してビジネスをよりよく進めていくための方法を考えるという世界になっていくのではないだろうか」(浅井氏)
一方の斉藤氏は、「ユーザー企業のマネジャーとして、Java EEには今後も末長く安心して使っていける技術であってほしい。Java EE 6では、同5で不満に感じていた部分が解消され、フレームワークとしてより完成したものになると思う」と期待を表明した。
さらに新野氏は、「プラットフォームとしてのJavaをユーザーが再評価し始めている」と指摘。例として、TwitterがRubyからJavaに乗り換えたのは、大量のトランザクションを高速に処理できるJavaの性能の高さが評価されたためであることを挙げ、Java(JVM)の上で実行可能な言語が増えてきている点も、Javaへの期待の高さの表れだと語った。
「開発者のキャリアは、学んだ言語に大きく左右される。今、Javaを使っている人たちのキャリアは安定しているはず。Java EEには今後も、開発者が安心して選択できる技術として発展していってほしい」(新野氏)
Java EE開発者の今後
ディスカッションでは最後に、「Java EE開発者の今後」というテーマの下、各パネリストが今後の自身の方向性について展望を述べた。
その中で浅井氏は、国内SI業界のこれまでの傾向として、コンポーネント化や多階層分散アーキテクチャへのニーズはあまり高くなく、大規模だがモノリシックなアーキテクチャを強制するフレームワークが多かったのではないかと指摘。しかし今後は、仮想化技術なども用いてインフラ部分の技術が一層抽象化されていくとの見通しを示したうえで、「顧客の視点で業務をモデル化し、それをアーキテクチャとして実現する役割を果たしていきたい」と抱負を述べた。
一方の斉藤氏は、「Java EEを中心に、日本のソフトウェア業界全体をさらに発展させていきたい」と語る。また斉藤氏は、Java EE開発者に対し、Java EE以外の技術を使ってみることを勧める。「おそらく10年後も、Java EEが確実に使える技術であることは間違いないが、他の技術を経験することで、Java EEの良いところや悪いところが客観的に評価できるようになる。ぜひJava EEのスキルを磨きつつ、他の技術にも手広く触れてみてほしい」とアドバイスした。
加えて両氏は、エンジニアが「語学力」、特に「英語力」を鍛えることの重要性を強調。最新情報の収集や海外のエンジニアらとの情報交換では英語が必須であることを挙げ、日本のエンジニアが今後も生き残っていくためには、これまでよりも一層"グローバル"を意識する必要があると訴えてディスカッションを締めくくった。
* * *
以上、「WebLogic & Java EE活用セミナー」で実施されたセッションを2回にわたってレポートした。前編で寺田氏が説明したように、今日のJava EEはよりシンプルな開発/アーキテクチャを指向しながら、エンタープライズ・システムの標準フレームワークの座を再確立しようとしている。また、その実現基盤となるWebLogic Serverなどのアプリケーション・サーバもさらなる発展を遂げようとしている。これらをいかにうまく活用し、企業にとっての価値を具現化していくか――Java EE開発者の腕の見せどころは、まさにこれから始まろうとしているのかもしれない。
※ 登壇者の所属、役職は、セミナー当時のものです。
※当該書籍は当初、年末の刊行を予定しておりましたが、2012年初旬に刊行延期となりました。ご了承ください。


