Java Champion寺田氏が「JavaOne 2016」で感じたこととは - (page 2)

谷川耕一 羽野三千世 (編集部) 2016年10月21日 11時05分

  • このエントリーをはてなブックマークに追加
  • 印刷

 現在Red Hat、IBM、GlassFishのフォーク製品を販売しするPayara、TomcatベースのJava EEアプリケーションサーバ「TomEE」を提供しているTomitribe、さらには「London Java Community」、世界最大のJavaユーザーグループである「SouJava」といったところが参画する「MicroProfile」というプロジェクトが立ち上がっている。

 「MicroProfileのプロジェクトは、OracleのJava EEの動きの停滞に業を煮やし立ち上がったものです。クラウド上で変化に強いアプリケーションを提供するためには、マイクロサービス化することで拡張性が高くなります。Java EEのテクノロジで、その実現を目指しているのがこのプロジェクトです」(寺田氏)

 Java EE 6から、プロファイルという概念が導入されている。これは、Java EEの全機能のうち、関連する機能だけをまとめて提供する仕組みだ。MicroProfileは、マイクロサービス化のために必要な機能だけをまとめ、提供するためのプロジェクトとして立ち上がった。

 「これまでのJava EEは、含まれる仕様を組み合わせて1つのフレームワークにして提供する、モノリシックなアプローチで提供されてきました。この方法が悪いわけではありません。しかしこのやり方で標準化を行おうとすると、全ての仕様ができあがるのを待ち、さらに各仕様で整合性を考慮する必要もあり、標準化プロセスに時間がかかってきました。加えて、できあがった標準仕様を各社がアプリケーションサーバ製品として実装するのにさらに時間がかかります」(寺田氏)

 Java EEの仕様を、モノリシックなアプローチでまとめるのではなく、アジャイル的に策定・開発を進め、細かい単位で機能を積み上げていく。それに合わせた新しい標準化のプロセスもあるのでは。そうすることで、変化にも柔軟に対応できスピーディーに標準仕様を作れる。それを進めようとしているのが、MicroProfileのプロジェクトなのだ。


 「アジャイル的なやり方で仕様を考え、優先度の高いものから決めていく。JavaOneの期間中、MicroProfileのプロジェクトでは、JavaOneとは別途彼らのやり方を伝える場を設けていました。そこで話を聞くと、このMicroProfileのやり方は今の時代に合ったものだなと感じました」(寺田氏)

 このMicroProfileのプロジェクトメンバーは、これまでJava EEの仕様策定に積極的に携わってきた人たちだ。OracleのJava EEの方針と対立することがプロジェクトの目的ではなく、またJava EEの開発者を分断しようとしているわけではない。「彼らは新しい標準の作り方があり、それを自分たちの手で進めたいと考えているようです」と寺田氏。Java EEのマイクロサービス化という方針自体は双方で同じだ。要は、標準化へのアプローチの違いであり、「OracleとMicroProfileのプロジェクトが十分にコミュニケーションできていないのが問題だと思います」と寺田氏は指摘する。

 「Oracleが示したJava EEの今後方針も良いものだし、MicroProfileのやり方も今の時代にマッチしたものだと思います。今は、両方の動きを十分に注目する必要があります。お互いに、まだ始まったばかりなのでどちらがよいかを判断するのが難しい状況です。そこで今は、両社の動きに十分注目する必要があります。願わくば、両者がうまくコミュニケーションをとり、お互いを尊重しその上で今後の進め方をどうするか話し合って決めて欲しいです。それによってより良いものが生まれて欲しいというのが、私の願いです」(寺田氏)

 このまま両者が対立の構図となってしまうと、現状でOracleが示したJava EE 8、EE 9の提案がJCPにおける投票で全て否決される可能性もある。JCPで投票権を持つ主要各社や、世界でも有力なJavaのコミュニティがMicroProfileのプロジェクトを支持している状況もあり、これはあり得ないことではない。事の発端はOracleがJava EEの動きを止めたように見えたことだ。そういったところからも、Oracleからの歩み寄りに期待していると寺田氏は言う。お互いが歩み寄ることができれば、Java EEはより良いものになっていくのではないかと期待する。。

現在のロードマップはあくまでもOracleからの提案の段階

 ロードマップの内容を確認して、Java EE 8はJava EE 9に進化するためのマイナーバージョンアップの位置づけとなっていると寺田氏は言う。これはかつてのJava EE 7の世界から、クラウド化、マイクロサービス化という新しいJava EE 9への大きな変化をスムースに行うためのものだ。この大きな変化のために、Java EE 8では当初の予定からはいくつか落とされる機能も示された。その話を聞き、「Java EE 8にネガティブな印象を持った人もいるかもしれません」と寺田氏。

 JMSはそんな機能の1つ。Java EE 8ではJMS 2.0のままで2.1の開発は行わない。またMVC 1.0も落とされる予定だ。「MVCは今後マイクロサービスが主流となりRESTによる通信が増え、フロントエンドではJavaScriptが多用されるようになるため優先度が落とされたようです」(寺田氏)。落ちる機能がある一方で、JSON-B、Security、Health Checking、Configurationが新機能として追加される予定だ。JSON-BとSecurityは以前から追加が検討されていたものだ。今回のロードマップで新たに登場したのがHealth CheckingとConfigurationだ。繰り返しになるが、これらの機能追加・削除はOracleが示した提案に過ぎず、これから投票によりどうなるかが決まる。そこで、どうしてもMVCが必要だという意見が多ければ、それは継続される可能性もある。

 そして寺田氏がJava EE 8で更新される技術として注目するのが、JAX-RS 2.1とServlet 4.0だ。Servlet 4.0でHTTP/2に対応し、クライアントからのリクエスト/レスポンスに対し、複数のリクエストを1つのソケット内で同時に処理できるようになる。「また、JAX-RSは性能向上が大きなポイントです。今後のクラウド化、マイクロサービス化ではRESTの呼び出しが増えることになります。その際のクライアント側の処理性能を向上させるためにかなり、重要な機能を追加しています」(寺田氏)とのことだ。


 Java EE 8を経てJava EE 9では、マイクロサービス化のためのService Registry、Services Directory、Circuit Breaker、Polyglot Persistence(NoSQLサポート)、CQRSといったマイクロサービスデザインパターンへの対応が明らかにされている。

Java EE9の理解にはマイクロサービスの知識が求められる

 「マイクロサービスが何かをきちんと勉強していないと、Java EE 9で入ってくる機能を理解するのは難しいかもしれません。マイクロサービスですでに提供されているデザインパターンの一部に、Java EE 9で対応します。プログラムをどうやって更新すれよいのか、さらにヘルスチェックをどうするのか。スケールアウト、スケールバックなどのオートスケールにどう対処するのか。これらにJavaの標準のAPIで対応するのにどうすればいいかを理解できれば、今回示されたJava EE 9の機能に期待できると思います」(寺田氏)

 今後、クラウド上で提供するアプリケーションはマイクロサービス化の方向に進んでいくことが予想される。そのためのノウハウを学ぶことが重要になると寺田氏。モノリシックなアプリケーションの開発が全てダメというわけではない。とはいえ、今後システムアーキテクトは、マイクロサービスという新しいアーキテクチャを理解し、それをどういうときにどう活用すればよいかを提案できるようになる必要があるのだ。

 言い換えれば、従来はモノリシックなアプリケーションで落ちることのない堅牢なアプリケーションを作る発想だった。それがマイクロサービス化され、クラウドの分散環境でアプリケーションが動くようになると、どこかで障害が発生したり、ネットワークが切れていたりといった状況が前提になる。そういった状況下でも、全てが動かなくなるのではなく動き続けられるようにするのだ。その実現が、これからのクラウドネイティブなシステム開発には求められるだろうと寺田氏は指摘する。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

  • このエントリーをはてなブックマークに追加

SpecialPR

連載

CIO
月刊 Windows 10移行の心・技・体
ITアナリストが知る日本企業の「ITの盲点」
シェアリングエコノミーの衝撃
デジタル“失敗学”
コンサルティング現場のカラクリ
Rethink Internet:インターネット再考
インシデントをもたらすヒューマンエラー
トランザクションの今昔物語
エリック松永のデジタルIQ道場
研究現場から見たAI
Fintechの正体
米ZDNet編集長Larryの独り言
大木豊成「仕事で使うアップルのトリセツ」
山本雅史「ハードから読み解くITトレンド放談」
田中克己「展望2020年のIT企業」
松岡功「一言もの申す」
松岡功「今週の明言」
内山悟志「IT部門はどこに向かうのか」
林 雅之「デジタル未来からの手紙」
谷川耕一「エンプラITならこれは知っとけ」
大河原克行「エンプラ徒然」
内製化とユーザー体験の関係
「プロジェクトマネジメント」の解き方
ITは「ひみつ道具」の夢を見る
セキュリティ
セキュリティインシデント対応の現場
エンドポイントセキュリティの4つの「基礎」
企業セキュリティの歩き方
サイバーセキュリティ未来考
ネットワークセキュリティの要諦
セキュリティの論点
スペシャル
エンタープライズAIの隆盛
インシュアテックで変わる保険業界
顧客は勝手に育たない--MAツール導入の心得
「ひとり情シス」の本当のところ
ざっくり解決!SNS担当者お悩み相談室
生産性向上に効くビジネスITツール最前線
ざっくりわかるSNSマーケティング入門
課題解決のためのUI/UX
誰もが開発者になる時代 ~業務システム開発の現場を行く~
「Windows 10」法人導入の手引き
ソフトウェア開発パラダイムの進化
エンタープライズトレンド
10の事情
座談会@ZDNet
Dr.津田のクラウドトップガン対談
Gartner Symposium
IBM World of Watson
de:code
Sapphire Now
VMworld
Microsoft Inspire
Microsoft Connect()
HPE Discover
Oracle OpenWorld
Dell Technologies World
AWS re:Invent
AWS Summit
PTC LiveWorx
吉田行男「より賢く活用するためのOSS最新動向」
古賀政純「Dockerがもたらすビジネス変革」
中国ビジネス四方山話
ベトナムでビジネス
日本株展望
企業決算
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]