NetBeansはJava以外の言語での開発にも対応可能E
Oracle Development Tools, NetBeans AdvocateのDirector、Geertjan Wielenga氏は、Javaプラットフォームの公式IDEであるNetBeansを、デモを交えて紹介。
NetBeansはオープンソースのIDEであり、多くのプラグインが存在する。最近では、Javaとともに他言語を使う機会が増えているが、プラグインがあれば他言語にも対応可能である。たとえば、Oracle JETを使えば、JavaScript、CSS3、HTML5を利用できる。また、JDK 9のEarly Access版をインストールして、Project JigsawなどJava SE 9の機能を試すことも可能だ。
Java EEをベースとしたマイクロサービス開発を後押し
Oracle, Cloud Application Foundation Producet Management and Technology AdvocateでDirectorを務めるDavid Delabassee氏が登壇。変化を続けるアプリ開発のトレンドにどのように対応していくべきかを語った。
アプリ開発のトレンドは常に変化している。最近のトレンドとしては、マイクロサービス、分散コンピューティング、複数のプログラミング言語の使用、クラウド、コンテナ、DevOpsなどが挙げられる。
Java EE 7でもそういったトレンドに対応する新機能が導入されている。HTML5やWebSocket(全二重通信のためのプロトコル)のサポート、JSON-P、JAX-RS(REST対応のAPI)などだ。市場ではWebLogic Server、WebSphere Application Server(Liberty Profile)、JBossなどJava EE 7に対応したアプリケーションサーバが出始めているほか、WildFly(Java EEコンテナ)、Vaadin(Webアプリフレームワーク)、Jersey(Webサービスフレームワーク)といった多くのオープンソース製品でJava EEが採用されている。
Delabassee氏は、Java EEの今後の展望として、クラウドで利用しやすいプラットフォームを目指すとともに、マイクロサービスにフォーカスしていくと述べた。
マイクロサービスは、新しいアプリケーションアーキテクチャである。これまで主流であったモノリシックアプリケーションは一枚板のように巨大なプロセスで複数の機能を提供するが、マイクロサービスでは複数の小さなサービスを組み合わせて1つの機能を構成する。各サービスは役割が明確に定義され、それぞれが独立しており、ステートレスであるため、スケーラビリティに優れ、耐障害性が高い。他のサービスに影響を及ぼさずに、サービスの追加や障害の修正を実行できるからだ。アプリ開発のトレンドがモノリシックアプリケーションからマイクロサービスへとシフトしていき、アプリ開発のスタイルが変わっていくのは、極めて自然な進化であると、Delabassee氏は言う。
Java EEは、CDI(Contexts and Dependency Injection、サービス間の依存性を外部ファイルに設定して注入する)、JAX-RS(RESTにより多様なクライアントに対応する)、JPA(Java Persistence API、データベースへのアクセスを抽象化する)など、マイクロサービス開発に必要な機能を提供している。そのため、デベロッパはマイクロサービスの機能部分に専念することが可能だ。アプリをクラウドに移行する際も同様で、モニタリング、クラスタリングなどについてはJava EEの機能を利用できる。
Delabassee氏は、Java EE上でマイクロサービス開発を行う際には各サービスを完全に独立させ、互いに隔離することが必要と述べた。たとえば、WebLogic Serverではマイクロコンテナという機能によりサービスの独立性を確保できる。一方、Java EEでサービスの独立性を確保するには、Project Jigsawによるモジュール化機能、JAX-RSやJSON-Pによる使いやすさ、アプリの起動時間の短縮が重要となる。
今後は、モジュール化により必要なAPIのみをバンドルし、Java EEベースの任意のプラットフォーム上にデプロイして動作する形のアプリが求められるようになるだろう。Delabassee氏は、Java EEはマイクロサービス開発の鍵となる機能に注力するとともに、デベロッパが開発しやすいプラットフォームを目指すと強調し、今こそアプリ開発のスタイルを変えるときだと呼びかけた。
