ニュース

オラクル、エンタープライズJavaの最新動向を説明

 日本オラクル株式会社は2日、エンタープライズJavaの最新動向に関する説明を実施した。米Oracle クラウド・アプリケーション基盤開発担当グループ・バイスプレジデントのアニール・ガー氏は、「Java EE(Enterprise Edition)は、クラウドやマイクロサービス向けのアプリケーション開発を想定した点が特徴。エンタープライズシステム構築の標準仕様であり、JCPプロセスに沿って、コミュニティとともに提案仕様の検討を進めている。ベンダーロックインがないという利点がある」などと語った。

米Oracle クラウド・アプリケーション基盤開発担当グループ・バイスプレジデントのアニール・ガー氏
Java Platform, Enterprise Editionへの提案仕様

 また、2016年9月に米サンフランシスコで開催された「JavaOne 2016」で発表したJava EE 8およびJava EE 9のロードマップについても、あらためて言及。Java EE 8を2017年末までに提供し、2018年にはJava EE 9の提供を開始することを示した。Java EE 8では、修正提案仕様として新たにJSON-BおよびSecurityが加えられている。

Java EE 8(修正提案仕様,2016)
Java EEロードマップ

 ガー氏は、「エンタープライズ・アプリケーション開発は変化し、ソフトウェアの役割も大きくシフトしている。ソフトウェアに問題が発生すると、ビジネスそのものに支障が出ることになる。例えば、Uberは、ソフトウェアをビジネスのエンドトゥエンドで用いており、ソフトウェアに問題が発生すると、ビジネスそのものが止まってしまう。ここに、ソフトウェアの重要性が根本的にシフトしている理由がある」と前置き。

 「ビジネスニーズの変化とともに、ソフトウェアに対する要求も変化している。アプリを多数で細かな断片に分割するマイクロサービスや、複数のデータセンターや仮想領域を活用する分散コンピューティング、Javaだけにとどまらず、多数のプログラミング言語を活用する多言語化、DockerやCloud、DevOpsなどの新たなテクノロジーを活用できることが、より重要になっている」という点を指摘する。

過去数年における急速な変化

 その上で、「Javaは、こうしたニーズに対応でき、特定のベンダーにも縛られずに、幅広いエコシステムに対応できる。Javaの立ち位置は非常にいい。エンタープライズ・アプリケーションの経験を持ち、複雑性も理解し、さらに実装してきた実績もある。セキュリティの強化も図っている。Java EEへの投資は確実に保護され、次世代アプリケーションの開発へとつなげることができる」と述べた。

 また、Java EEのAPIにおいては、主要なオープンソースプロジェクトをサポートしており、「オープンソースは使い始めたとしても、複数のベンダーがサポートするのかどうかがわからないというリスクがある。Java EEはそうした課題も解決できる」と主張。「多くのオープンソースプロジェクトが、Java EEをより拡張することになる」という。

Java EE APIs

 さらに、クラウドのアプリケーション開発においては、モバイルを中心とした異種クライアントへの対応、ステートレスサービスの主流化による個別の管理運用への対応、リレーショナルデータベースおよびノンリレーションデータベースへの対応が求められるなど、多様な選択肢が重視されていることを示しながら、「こうした環境においても、Java EEは最適化している」とした。

クラウドアプリケーション開発

 また、「Java EEは、リアクティブフログラミングを実現するとともに、Eventual Consistency(結果整合性)を持つこと、Key Valueとドキュメント型データベース向けの永続性とクエリインターフェイスを組み込めること、機密管理やOAuth、OpenIDをサポートするといったセキュリティを備え、俊敏性と拡張性を実現する」と述べている。

セキュリティを備えた俊敏性と拡張性を実現するデザイン

 さらに、「何千ものマイクロサービスを利用している際には、複雑化が増す。ひとつのマイクロサービスが壊れることで、サービス全体に大きな影響を及ぼすことを避けるため、プラットフォーム側で回復性を持たせる必要がある。サーキットブレーカーや回復用コマンド、ヘルスレポート機能の標準化などによるレジリエンシー(回復性)が大切である」と述べ、Java EEの優位性を強調した。

ロケーションの透過性と回復性

 そのほか、マイクロサービスをDockerコンテナのなかでパッケージ化。「アプリケーションとランタイムをコンテナにパッケージするとともに、サービスパッケージとコンフィグレーション機能を分離するなど、バッケージングのシンプル化を実現。マルチテナンシーにより、リソース活用を最適化。ハードウェアを3分の1にまで減らすことができ、ハードウェア取得コストの削減、運用コストの削減を達成した」などと語った。

パッケージングのシンプル化