日本オラクルは11月25日、ソフトウェアの開発、実行環境であるJavaプラットフォームの現況を、10月に米国で開催したプライベート会議「JavaOne 2015」の話題を絡めて報告した。
Javaを用いた開発において、DevOpsへの関心が急増しているという。今年のJavaOneで開かれた全450セッションのうち107のセッションがDevOpsと関係するものだった。これに対して2014年のJavaOneでは7セッションだけだった。
Javaにおいて関心が高まっているDevOpsとは、開発、テスト、デリバリを継続的に繰り返すことによって開発と改善のサイクルを効率よく回す方法論だ。実際のDevOpsでは、継続的な開発、テスト、デリバリをツールによって極力自動化することが求められる。
JavaOneのDevOps関連セッションでは主に「どんなDevOpsツールを使って、どんな成果が得られたのか」の報告がなされた。
実際のJava開発プロジェクトにおいても、すでに各種のDevOpsツールが定着している(図1)。例えば、Maven(プロジェクト管理)、Jenkins(継続的インテグレーション)、Git(バージョン管理)などがよく使われている。インフラはクラウドの利用が前提となっており、開発したソフトウェアの配布・実行環境はDocker(コンテナ管理)が事実上の標準となっているという。
DevOpsはJava開発プロジェクトのホットトピック
「DevOpsの方法論を身に付ければ、Javaの適用市場が広がる」と説明するのは、日本オラクルでクラウド・テクノロジー事業統括Fusion Middleware事業統括本部ビジネス推進本部シニアマネージャーの伊藤敬氏。「従来のJava EEは基幹システムなどのSoR(Systems of Record)を市場としてきたが、DevOpsによってソーシャル系システムなどのSoE(Systems of Engagement)の市場に出ていける」(伊藤氏)。
DevOpsはJava開発プロジェクトのホットトピック
DevOpsの先にはマイクロサービスの姿も見えてくる。継続的にシステムを開発するのであれば、個々の成果物は小さく単一なほどよく、これらを必要に応じて組み合わせればよいという理屈だ。
JavaOneでも、マイクロサービスに関わるセッションが約30ほどあった。伊藤氏は、マイクロサービスの典型例としてショッピングサイトの事例を提示。この事例では、Play Frameworkで構築したインタフェースの背後に、ScalaやJava、JavaScriptで作成した約150のサービスを用意し、これらをREST APIで呼んでいる。
マイクロサービスを動作させる実行環境については、今後の話題になるという。「現状のアプリケーションサーバとは異なる、もっと小型の実行環境が商用製品として出てくる。現在ではまだ決定打となる解決策は出てきていないが、来年のJavaOneではマイクロサービス向け実行環境の主流が見えてくるだろう」(伊藤氏)。
Java EE/Java SE/Java MEの開発が続く、Java EEはMVCが注目
伊藤氏は、Java EE(Enterprise Edition)とJava SE(Standard Edition)のロードマップも説明した。
Java EEの次期版(Java EE 8)は2017年上半期のリリースに向けて開発が進んでおり、並行してリファレンス実装となるアプリケーションサーバ「GlassFish」の開発が進んでいる。
Java EE 8で新しく追加される要素は、JSON-B(JavaとJSONの変換)、MVC(画面遷移)、Security(セキュリティ)の3つ(図2)。特にMVCに関しては、MVCフレームワークとして歴史が長いStrutsの後継になるかどうかで注目を集めているという。
Java EE 8の仕様策定状況。新要素はJSON-B、MVC、Securityの3つ
一方のJava SEの次期版は(Java SE 9)は2016年9月22日にリリースを予定している。Java SE 9では、パッケージの上位概念となるモジュールを導入することによって、モノリシックから脱却するとしている。モジュールの内部でどのパッケージを公開するかを指定できるので、必要なライブラリのみを読み込めるようになる。
IoTデバイス向けには、Java ME Embeddedを提供している。この9月には最新版のJava ME Embedded 8.2をリリース済み。Windows向けのSDKに加えて新たにLinux向けを用意するなど、開発環境を整備した。