[Java] New Java Magazine Issue: More Java 9

原文はこちら。
https://blogs.oracle.com/java/java-magazine-more-java-9

Java 9の進歩は非常に広範囲であり、数号をまるまるJava 9特集にしても全てを網羅できるわけではありません。Java 9はすべての点でJavaとJDKの主要なリリースでした。前号では、Java 8からJava 9への移行方法だけでなく、主要な変更点の多くをカバーしました。今号では、Java 9の最も重要なイノベーションであるモジュールシステムを取り上げます。まず、モジュールの紹介に15ページを割きました。モジュールとは何か、どのように使うのか、について、著名なトレーナーであるPaul Deitelが執筆しています。
Java 9
http://www.javamagazine.mozaicreader.com/SeptOct2017#&pageSet=17&page=0
また、Raul-Gabriel UrmaとRichard Warburtonが引き続き言語の変更の調査をしており、今号では、Java 8で普及しこのリリースで強化された、OptionalsとCompletableFuturesという2機能の新機能を紹介しています。
Java 9 Core Library Updates: Optionals and CompletableFutures
http://www.javamagazine.mozaicreader.com/SeptOct2017#&pageSet=33&page=0
最後に、メソッド呼び出しの仕組みに関する説明を掲載しています。
The Mechanics of Java Method Invocation
http://www.javamagazine.mozaicreader.com/SeptOct2017#&pageSet=43&page=0
さらに、Clojure(LispのようなJVM言語、Closureではありません)の非常にわかりやすい入門、JavaFXの詳細説明(今号はDefine Custom Behavior in FXML with FXMLLoader)、世界で最も詳細なクイズの回答つきのいつものクイズも含んでいます。
Clojure
http://www.javamagazine.mozaicreader.com/SeptOct2017#&pageSet=63&page=0
また、特にモバイルデバイスでJava Magazineをより読みやすくするため、新しい1列形式に移行しています。

[Java] EE4J - Eclipse Enterprise for Java

原文はこちら
https://blogs.oracle.com/theaquarium/ee4j-eclipse-enterprise-for-java

Java EEの開発をEclipse Foundationに移管する予定であることを2週間前に発表してから、大きな進展がありました。本日、このイニシアチブをホストするトップレベルの新たなEclipse Projectである、EE4J(Enterprise Edition for Java)の発表ができることに興奮せざるを得ません。
Opening Up Java EE - An Update
https://blogs.oracle.com/theaquarium/opening-up-ee-update
https://orablogs-jp.blogspot.com/2017/09/opening-up-java-ee-update.html
現在作業の端緒についたところです。Oracle、IBM、Red Hat、およびEclipse Foundationは、あらゆるタスクに取り組まなければならないにもかかわらず、できるだけ早く動くよう積極的に協力しています。また、コミュニティメンバーにも支援してもらうように計画しています。そして、Mike Milinkovich(Eclipse)が彼の発表で言ったように、「it is a massive but exciting undertaking(大規模でエキサイティングな取り組み)」です!
Introducing EE4J: The first step towards Java EE at the Eclipse Foundation
https://mmilinkov.wordpress.com/2017/09/28/introducing-ee4j
現在FAQ作成に取り組んでおり、まもなく発行出来る予定です。しばらくの間、以下のEE4J草案をご覧ください。
The Eclipse Enterprise for Java Project Top Level Project Charter
https://projects.eclipse.org/projects/ee4j/charter
ee4j-communityディスカッションへの参加もお奨めします。
Mailing list: ee4j-community
https://dev.eclipse.org/mailman/listinfo/ee4j-community

[Database] cx_Oracle RPMs have landed on Oracle Linux Yum Server

原文はこちら。
https://blogs.oracle.com/linux/cx_oracle-rpms-have-landed-on-oracle-linux-yum-server

cx_Oracleを使うとOracle DatabaseにPythonからアクセスでき、Python database API仕様に準拠しています。このモジュールはOracle Database 11g、12cで利用でき、Python 2.x、3.xの両方でご利用いただけます。このたび、Oracle Linux YUMサーバにcx_Oracleの最初のRPMビルドをリリースしました。これにはcx_Oracle 6.0が含まれています。RPMビルドは以下から入手できます。
Oracle Linux 7 (x86_64) Development (ol7_developer)
http://yum.oracle.com/repo/OracleLinux/OL7/developer/x86_64/index.html
Oracle Linux 6 (x86_64) Development (ol6_developer)
http://yum.oracle.com/repo/OracleLinux/OL6/developer/x86_64/index.html
このエントリでは、Oracle Linux 7のデフォルトであるPython 2.7.5でcx_Oracle 6.0をインストールする手順を説明します。このエントリでは、Oracle Linux 7 Update 4 Vagrant boxesを使いました。
Oracle Linux Vagrant boxes
http://yum.oracle.com/boxes

1. Download and install Oracle Instant Client 12.2 RPMs

Oracle Instant Clientを使うと、Oracle Databaseアプリケーションの開発および本番環境へのデプロイが可能で、Node.jsやPHP、そしてPythonといった人気のある言語や環境で利用されています。以下のURLからOracle Linux x86-64用のInstant ClientのRPMをダウンロードします。
Oracle Instant Client
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 
RPMはrootユーザーでインストールしてください。以下の例では、yumを使って不足している依存性を自動的に解決しています。
$ sudo yum install ./oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:oracle-instantclient12.2-basic-12################################# [100%]

2. Set Library path

Instant Clientが利用できるよう、環境変数LD_LIBRARY_PATHを適切なディレクトリに設定します。以下はその例です。
$ export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib/:$LD_LIBRARY_PATH
代替策として、他のOracleソフトウェアがマシン上になく、影響を受けない場合には、永続的にInstant Clientを実行時リンクPath(ライブラリのPath)に追加することもできます。以下はその設定例です。
$ sudo sh -c "echo /usr/lib/oracle/12.2/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf"
$ sudo ldconfig

3. Confirm yum configuration

Make sure you have the ol7_developer リポジトリが定義済みでyumの設定で利用可能になっていることを確認します。必要に応じて、最新のOracle Linux YUMサーバのrepoファイル(http://yum.oracle.com/public-yum-ol7.repo)を入手してください。
$  grep -i developer\] -A 5 /etc/yum.repos.d/public-yum-ol7.repo 
[ol7_developer]
name=Oracle Linux $releasever Developement Packages ($basearch)
baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/developer/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

4. Install cx_Oracle RPM

>$ sudo yum install cx_Oracle-py27
...
...
Running transaction
  Installing : cx_Oracle-py27-6.0.2-1.el7.x86_64                                                            1/1 
  Verifying  : cx_Oracle-py27-6.0.2-1.el7.x86_64                                                            1/1 

Installed:
  cx_Oracle-py27.x86_64 0:6.0.2-1.el7   

5. Test connection to Oracle Database 12c

$ python
Python 2.7.5 (default, May 29 2017, 20:42:36) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
>>> db = cx_Oracle.connect("scott/tiger@myhost/sergio")
>>> db.version
'12.2.0.1.0'
>>> 
この新しいcx_OracleのRPMパッケージを使うと、Python-on-Oracleの開発者が迅速かつ簡単に開発を始めることができます。みなさまのご意見をこのエントリのコメント(もちろん原文に英語でお願いします)や、Python and Oracle Developer Communityにお寄せください。
Python and Oracle Developer Community
https://community.oracle.com/community/database/developer-tools/python

[Java] Java 9 Release Now Available!

原文はこちら。
https://blogs.oracle.com/java/java-9-release-now-available

Java 9には、開発者がJava SEプラットフォームを小さなデバイス向けにスケールダウンでき、パフォーマンスとセキュリティを向上させ、ライブラリや大規模アプリケーションの構築およびメンテナンスがより簡単になるモジュールシステムを含め、150を超える新機能が導入されています。

Javaプラットフォームの主要機能リリースであり、オープンなレビュー、週次ビルド、およびOpenJDKコミュニティとJCPを通じた、Oracleエンジニアと世界中のJava開発者コミュニティとの広範な連携を含む業界全体の開発努力の結果がJava 9です。
Java SE Downloads (Java 9)
http://www.oracle.com/technetwork/java/javase/overview/index.html
JDK 9のリリースとそのリリースノートは以下からどうぞ。
Java 9 expert insightsではこのリリースの主要機能を説明しています。ぜひご覧ください。
Java 9 Expert Insights
https://www.oracle.com/java/java9-screencasts.html
  • Small Language Changes in Java Development Kit 9 (Joe Darcy)
  • Modules in Java Development Kit 9 (Alex Buckley)
  • Introducing JShell (Robert Field)
  • A (Re)introduction to the G1 Garbage Collector (Paul Su) 
  • Java in a World of Containers (Paul Sandoz)
  • Collections Framework Enhancements in Java Development Kit 9 (Stuart Marks)
  • Changes to the Java Development Kit Release Model (Aurelio Garcia-Ribeyro)
Javaリリースのペースの変更が予定されています。Java PlatformチーフアーキテクトのMark Reinholdは以下のように説明しています。
“After Java 9 we will adopt a strict, time-based model with a new feature release every six months, update releases every quarter, and a long-term support release every three years...”
(Java 9以降、厳密な時間ベースのモデルを採用する予定です。(具体的には)新機能をリリースは6か月ごと、アップデートリリースは四半期ごと、長期サポート(long-term support)リリースは3年ごとに提供する予定です)
続きは以下のURLをどうぞ。
Moving Java Forward Faster
https://mreinhold.org/blog/forward-faster
Java 9の新機能やアプリケーションの移行方法などをより理解するために、以下のリソースをチェックしてください。
Java Magazineでは、2号にわたってJava 9を取り上げています。無料で購読できますので、ぜひ登録してください!
Get Java Magazine!
http://www.oracle.com/technetwork/java/javamagazine/index.html

[Cloud] Introducing Ravello on Oracle Cloud Infrastructure

原文はこちら。
https://blogs.oracle.com/introducing-ravello-on-oracle-cloud-infrastructure


Ravelloは常に企業がオンプレミスのVMwareアプリケーションをパブリッククラウドに移行しやすくしてきました。本日、Ravello on Oracle Cloud Infrastructureがご利用いただけるようになったことを発表できわくわくしています。これまでよりもずっと高パフォーマンスかつスケーラブルになりました。この新製品によって、パフォーマンス要件の厳しいエンタープライズアプリケーションのクラウドへ”lift-and-shift”(移行)が現実のものになります。
Ravello Service
https://cloud.oracle.com/ravello
Oracle Cloud Infrastructure
https://cloud.oracle.com/cloud-infrastructure

Accelerate Move of Data Center Production Apps to Cloud

企業は通常、仮想化されたホストと物理的なホスト間で本番環境のアプリケーションを実行しています。こうしたアプリケーションをパブリッククラウドに移行しようとした場合、以下のような非常に長い移行プロセスをたどります。
  • 物理ホストを仮想マシンに変換
  • VMware VMを再構築してイメージをクラウド化
  • クラウドベースのネットワークモデルを活用するため、アプリケーション設定を再構築
こうした作業には時間、お金がかかり、その投資にもかかわらず失敗することもあります。Ravelloは業界をリードするNested VirtualizationやSoftware Defined Networking ( Overlay Network) テクノロジーを活用し、基盤のパブリッククラウドを(自社)データセンターであるかのようにして、こうした移行を簡単にします。
High Performance Nested Virtualization
http://cloud.oracle.com/ravello/technology/virtualization
Software Defined Networking (Overlay Network)
http://cloud.oracle.com/ravello/technology/overlay-network
Ravello on Oracle Cloud Infrastructureを使えば、企業は自社のVMwareデータセンター・ベースのアプリケーションをプラットフォームの再構築やネットワークの再構成をする必要はありません。Oracle Cloud Infrastructureに「そのまま」移行し、物理コンポーネントを単にベアメタルサーバーに移動します。 VMware VMと物理ホストを同じクラウド上で実行できるこの独自の機能により、企業のクラウドへの移行(Journey)は迅速、簡単、かつ予測できるものなります。

Data Center-Like Capabilities on Public Cloud

Ravelloは、次世代のNested Hypervisor(HVX)を使用してOracle Cloud Infrastructureでデータセンターのような機能を実現します。HVXは3つのコンポーネントで構成されています。
  1. Nested virtualization engine変更を加えずに、基盤となるクラウド上でVMware VMを実行
  2. Networking overlayパブリッククラウドではサポートされていないクリーンなレイヤ2ネットワークをゲストVMに提供(ブロードキャストおよびマルチキャスト機能を含む)。
  3. Storage overlay基盤となるクラウドストレージを抽象化し、ブロックデバイスをVMware VMに公開
HVXのネストされた仮想化エンジンは、クラウド上でVMware VMを実行する際に比類のないパフォーマンスを提供する3つのモード(ハードウェア・アシスト、ベアメタル・ダイレクト、およびソフトウェア・アシスト)をサポートします。

Figure 1: HVX Nested Virtualization Modes
Hardware-assisted nested virtualization(ハードウェア・アシスト)
Oracle Cloud Infrastructureは、仮想化拡張機能をサポートする次世代の高速ハードウェア上で動作します。これらの拡張機能を使うと、複数のゲストOSが同じ基盤となるハードウェアを安全かつ効率的に共有することができます。HVXは、これらのハードウェアアシストCPU命令セットを使用して、基盤となるクラウドハードウェア上で直接nested virtualizationを実行するため、前世代のHVXに比べて大幅なパフォーマンスが改善しています。通常、クラウドプロバイダーは、ハードウェア支援の仮想化拡張をゲストVMに公開しないため、nested virtualizationモードで実行する場合顧客が認識できるパフォーマンスに制限があります。しかし、Oracle Cloud Infrastructure上でRavelloを実行すると、こうしたハードウェア・アシスト仮想化拡張機能に完全にアクセスできます。そのため、パフォーマンスが向上します。

Directly on Bare Metal(ベアメタル直結)
Oracle Cloud Infrastructureでは、HVXはベアメタルサーバー上での直接実行もサポートしています。中間のハイパーバイザー層を排除することで、HVXはネイティブのパフォーマンスに近い性能を出すことができます。

Software assisted nested virtualization(ソフトウェア・アシスト)
HVXは、ハードウェア仮想化拡張を利用できないクラウド上での利用を考慮し、binary translation with direct executionと呼ばれるソフトウェアベースのnested virtualizationテクノロジを使用して、VMware VMを実行します。このテクノロジは、幅広いワークロードで許容される優れたパフォーマンスを提供します。

Unleashed Performance & Scalability for Apps

Ravello on Oracle Cloud Infrastructureは、ハードウェア・アシストnested virtualizationのおかげで、最大14倍のパフォーマンス向上を実現します。HVXをベアメタル上で直接実行すると、さらなるパフォーマンス向上を実現します。このようなパフォーマンスの向上により、企業はRavelloを使用してOracle Cloud Infrastructureで本番用のVMwareアプリを簡単に実行できるようになりました。

また、企業での需要が高まるにつれて、アプリはその需要に対応するために拡張する必要がありますが、Ravello on Oracle Cloud Infrastructureを使用すれば、企業は1 VMあたり最大32個までvCPUを割り当てたり、また水平方向には数千個のVMを配置したりしてアプリケーションをスケールすることができます。

Try It for Yourself

Ravello on Oracle Cloud Infrastructureを試したくなりましたか?無料トライアルにサインアップしてご連絡ください。
Oracle Cloud Trial Page
https://cloud.oracle.com/ja_JP/tryit

[Java] Java EE 8 and GlassFish 5.0 Released!

原文はこちら。
https://blogs.oracle.com/theaquarium/java-ee-8-is-final-and-glassfish-50-is-released

Java EE 8のオープンソース参照実装であるGlassFish 5,0の一般提供、そしてJava EE 8仕様ならびにその傘下にある仕様(JAX-RS 2.1、Servlet 4.0、CDI 2.0、JSON-B 1.0、Bean Validation 2.0など)が最終化され承認されたことを発表できうれしく思っています。
Java EE 8にはプラットフォームに素敵な機能が追加されています。
  • HTTP/2のサポートを含むServlet 4.0 API
  • 新たなJSON binding APIを含む、JSONサポートの強化
  • 新たなREST Reactive Client API
  • 非同期CDIイベント
  • 新たな可搬性のあるSecurity API
  • Server-Sent Eventsのサポート(クライアントおよびサーバー側)
  • Java SE 8の機能のサポート(例えばDate & Time API、Streams API、アノテーションの強化)、など
本日、GlassFish 5.0でこれらの新機能を利用することができます。願わくば、今後Java EE 8アプリケーションサーバが増えることを願っています。Java EE 8を始めるにあたり有用と思われるリソースを末尾に付けておきます。
このリリースで直面した難題の一つに、旧来のJava.netインフラストラクチャから開発サイクルの途中でGitHubに移行したことがあります。これは必ずしも簡単ではありませんでしたが、今となっては明らかにこのような最新のソフトウェア共同開発プラットフォームのメリットがわかります。コード調査が今やたったの1個のリンクでよくなったからです。願わくば、GitHubの採用で開発者にってプラットフォームがよりアクセスしやすくなることを願っています。
Java EE - Java Enterprise Edition
http://github.com/javaee/
Java EE 8は実にたくさんの人々が関わったチームワークのたまものです。
  • 全てのJCPスペックリードとExpert Groupのメンバー
  • Java EEを構成する様々な参照実装の開発に関わった全ての人々
  • 様々なJava EE実装者
  • Java EEコミュニティ全体
  • そして、GlassFish自体を開発するOracleのチームや開発インフラストラクチャの管理チームのような、裏方作業をしてくれたその他の多くの人々
全ての皆さんに対し称賛を!Java EE 8は、みなさんの仕事と献身がなければ不可能でした。
ご存じのようにこれは、Eclipse Foundation、Red Hat、IBMなどのコミュニティとともにEclipse Foundationの後援の下、開発を移行することによりJava EEをさらにオープンにする取り組みの端緒にすぎません(詳細は以下のリンクをどうぞ )。
Opening Up Java EE
https://blogs.oracle.com/theaquarium/opening-up-java-ee
https://orablogs-jp.blogspot.jp/2017/08/opening-up-java-ee.html
Opening Up Java EE - An Update
https://blogs.oracle.com/theaquarium/opening-up-ee-update
https://orablogs-jp.blogspot.jp/2017/09/opening-up-java-ee-update.html
現在多くの議論が続いており、追加の詳細をJavaOneでご紹介できればと思っています。
Opening Up Java EE: Panel Discussion with Oracle, IBM, Red Hat, and the Eclipse Foundation [CON8030]
https://events.rainfocus.com/catalog/oracle/oow17/catalogjavaone17?search=CON8030&showEnrolled=false
本日、Java SE 9も一般提供されました。前述の通り、GlassFish 5.0はJava SE 8の新機能を活用しています。Eclipse Foundationへの移行に伴って我々の眼前にたくさんの作業があるにもかかわらず、現在、将来のGlassFish 5リリースでJava SE 9の動作保証をすることを目指しています。引き続きこの領域での将来の開発について投稿していく予定です。

全てのOracle Java EEチームを代表して、Davidより。

Resources


[Java] Convergence Of Oracle Java SE Embedded With Oracle JDK

原文はこちら。
https://blogs.oracle.com/java-platform-group/convergence-of-oracle-java-se-embedded-with-oracle-jdk

過去数年にわたり、OracleはOpenJDKコミュニティとJCPで、一般に言われるJava SE、特にOracle JDKをより小さなデバイスで動作するようサイズを小さくすることに取り組んできました。

最初の一手は、Java SE 8にCompact Profileを導入することでした。この機能は、Oracle Java SE 8 Embeddedで利用できます。
An Introduction to Java 8 Compact Profiles
https://blogs.oracle.com/jtc/an-introduction-to-java-8-compact-profiles
https://orablogs-jp.blogspot.jp/2013/08/an-introduction-to-java-8-compact.html
Java SE Embedded 8 Compact Profiles Overview
http://www.oracle.com/technetwork/java/embedded/resources/tech/compact-profiles-overview-2157132.html
つづいて、Jigsawプロジェクトを通してJava SE 9にモジュールシステムを導入することでした。jlinkという新しいツールを使うと、一連のユーザーが提供するモジュールとランタイムの依存関係をアセンブルし、アプリケーション実行に必要なJDK 9モジュールのみを含む、カスタムランタイムイメージに最適化することができます。
Project Jigsaw
http://openjdk.java.net/projects/jigsaw
JEP 282: jlink: The Java Linker
http://openjdk.java.net/jeps/282

この機能は、アプリケーションのランタイムフットプリントをコンパクトプロファイルよりもきめ細かく制御します。関心のある開発者は、この機能やその他の多くのJDK 9の機能を試し、OpenJDKコミュニティを通じて開発に貢献することができます。
JDK 9
http://jdk.java.net/9
JDK 9ではまた、Javaプラットフォームに対し、実験的な静的「Ahead of Time(AOT)」(JEP 295)という新機能も導入されています。この新しいコンパイルツールは、(時間の経過とともに)コンパクトで静的にリンクされたイメージの作成を容易にします。AOTは、Javaアプリケーションで必要とするランタイム・フットプリントの大幅な削減と、スタートアップ・パフォーマンスの大幅な向上を実現します。Oracleはこの新しいAOTコンパイラをOpenJDKコミュニティに提供しました。
JEP 295: Ahead-of-Time Compilation
http://openjdk.java.net/jeps/295
昨年Oracleは、JDK 9のために、32ビットおよび64ビットARMプラットフォームのHotSpotの統合ポートをOpenJDKコミュニティに提供しました。これは、OpenJDKの64ビットAArch64ポートプロジェクトを補完する、OpenJDKの既存の32ビットAArch32ポートプロジェクトの助けを借りて行われました。
AArch32 Port Project
http://openjdk.java.net/projects/aarch32-port/
AArch64 Port Project
http://openjdk.java.net/projects/aarch64-port/
大事なことを言い忘れていましたが、Oracleは、OpenJDK Mobile Projectを立ち上げ、iOS、Android、Windowsなどの一般的なモバイル・プラットフォームにJDKを移植することに注力しています。
関連するOracle Java SE Embeddedの移植を開始したことで、オープンソースのJava SE Embeddedコミュニティは、活気に満ちたオープンソースコミュニティの一端として、JDK 9の革新とコラボレーションを継続できるようになりました。
Mobile Project
http://openjdk.java.net/projects/mobile/
How to contribute
http://openjdk.java.net/contribute/
これに伴い、JDK 9以後、Oracleは「Oracle Java SE Embedded」という別のダウンロードを提供する予定はありません。つまり、Oracle Java SE 8 Embeddedは、「Oracle Java SE Embedded」製品の最終リリースシリーズです。この理由は、JDK 9の新機能のおかげで、別の製品として用意する必要がなくなったからです。

[Cloud] Announcing Oracle Cloud Infrastructure Modules for the Terraform Modules Registry

原文はこちら。
https://blogs.oracle.com/developers/announcing-oracle-cloud-infrastructure-modules-for-the-terraform-modules-registry

新たに発表されたHashiCorp Terraform Module Registryを使用して、OracleはOracle Cloud Infrastructure Classic(OPC)Provider用の検証済みモジュールの初期セットを提供しています。このモジュールは現在HashiCorpによる認定および互換性テストを受けています。
HashiCorp Terraform Module Registry
https://www.hashicorp.com/blog/hashicorp-terraform-module-registry/
Terraform Moduleは、Terraform構成の再利用可能なパーツを内蔵パッケージとしてカプセル化しています。Terraform Moduleを使用すると、インフラストラクチャ構成全体の再利用性と保守性の両方を向上することができ、テスト済みの構成パターンを一貫して使用できます。
Module Configuration
https://www.terraform.io/docs/configuration/modules.html
Terraform Module Registryを使用すると、Oracle Cloud Infrastructureの検証済みモジュールとコミュニティ・モジュールの両方を簡単に検出して使用することができます。以下で、Oracle Cloud Infrastructure Classic(OPC)モジュールの初版を2個組み合わせた構成で使用する方法を詳しく見ていきます。

Oracle Cloud Infrastructure Classic Modules

Terraform Providerは、Compute、Networking、Storageサービスなどを構成およびプロビジョニングするために使用される個々のリソースをきめ細かく制御することができます。
Resource Configuration
https://www.terraform.io/docs/configuration/resources.html
インフラストラクチャ構成を完全に制御するにあたり、個々のリソースを宣言することは非常に強力な方法ではありますが、例えばComputeインスタンスの起動やネットワークの作成、セキュリティ・ルールの宣言といった、具体的な構成要件を満たすために、何度もリソースのグループを共通パターンで使う必要があります。

Compute Instance Module

opc_compute_instanceリソースは、デフォルトで、ローカルブートストレージを持つ一時インスタンスを作成しますが、永続インスタンスを作成するには、追加のopc_compute_storage_volumeリソースをブートボリューム用に宣言し、作成時にインスタンスにアタッチする必要があります。
compute-instanceモジュールを使うと、ストレージリソースならびにインスタンスリソースの両方の作成が1個の再利用可能なコンポーネントに結合され、複数のリソースの定義と関連付けの詳細が、単一の簡潔なインスタンス定義にカプセル化されます。
Terraform Module for creating Oracle Cloud Infrastructure OPC Compute instances
https://registry.terraform.io/modules/oracle/compute-instance/opc
では、最も簡単なcompute-instanceモジュール定義から始めましょう。
module "persistent-instance1" {
  source           = "oracle/compute-instance/opc"
  instance_name    = "instance1"
  instance_shape   = "oc3"
}
この最小限の設定で、通常明示的に定義が必要な多くの属性に対して、共通のデフォルト値や派生値を使用して、永続ブータブルストレージボリュームを持つインスタンスを作成します。
では、この最小設定と同等の、全て宣言した基本リソースセットと比べてみましょう。
resource "opc_compute_instance" "persistent-instance1" {
  name                = "instance1"
  hostname            = "instance1"
  label               = "instance1"
  shape               = "oc3"

  networking_info {
    index          = 0
    shared_network = true
  }

  storage {
    index  = 1
    volume = "${opc_compute_storage_volume.boot-volume.name}"
  }

  boot_order = [1]
}

resource "opc_compute_storage_volume" "boot-volume" {
  name             = "instance1-boot"
  description      = "$instance1 boot storage volume "
  image_list       = "/oracle/public/OL_7.2_UEKR4_x86_64"
  image_list_entry = 1
  size             = 12
  bootable         = true
}

IP Networks Modules

2個目のモジュールはip-networksモジュールです。 このヘルパーモジュールは、共有IPネットワーク交換(IP Network Exchange)を使って、相互に接続された複数のIPネットワークの作成を簡素化します。これは、異なるアプリケーションデプロイメント層に使用される複数のサブネットを宣言する場合に便利です。
Terraform Module for creating Oracle Cloud Infrastructure OPC IP Neworks
https://registry.terraform.io/modules/oracle/ip-networks/opc
このip-networksモジュールはIPネットワーク交換の名前、サブネットと対応するサブネットワーク名のリストを使ってインスタンス化します。
module "ip-networks" {
    source = "oracle/ip-networks/opc"
    ip_exchange_name = "example"
    subnet_cidrs = [ "192.168.1.0/24", "192.168.2.0/24", "192.168.3.0/24" ]
    subnet_names = [ "network1", "network2", "network3" ]
}
ここでも、同じ構成の同等の基本リソース定義を見てみましょう。
resource "opc_compute_ip_network_exchange" "exchange" {
  name = "example"
}

resource "opc_compute_ip_network" "network" {
  name                = "network1"
  ip_address_prefix   = "192.168.1.0/24"
  ip_network_exchange = "${opc_compute_ip_network_exchange.exchange.name}"
}

resource "opc_compute_ip_network" "network" {
  name                = "network2"
  ip_address_prefix   = "192.168.2.0/24"
  ip_network_exchange = "${opc_compute_ip_network_exchange.exchange.name}"
}

resource "opc_compute_ip_network" "network" {
  name                = "network3"
  ip_address_prefix   = "192.168.3.0/24"
  ip_network_exchange = "${opc_compute_ip_network_exchange.exchange.name}"
}

Using Modules as part of a complete configuration

今度は、上記の2つのモジュールを組み合わせを見てみましょう。 相互接続されたIPネットワークのサブネットワークを2個作成し、各サブネットに1つのCompute インスタンスを作成します。構成を完了するために追加のリソースが2つ作成され、実行中のインスタンスにアクセスできるようにSSHキーが作成されます。 パブリックIPアドレス予約はインスタンスの1つに関連付けられます。
module "ip-networks" {
    source = "oracle/ip-networks/opc"
    ip_exchange_name = "example"
    subnet_cidrs = [ "192.168.1.0/24", "192.168.2.0/24" ]
    subnet_names = [ "network1", "network2" ]
}

module "persistent-instance1" {
  source           = "oracle/compute-instance/opc"
  instance_name    = "instance1"
  instance_shape   = "oc3"
  ip_network       = "${module.ip-networks.ip_networks[0]}"
  ssh_key          = "${opc_compute_ssh_key.ssh-key.name}"
}

module "persistent-instance2" {
  source           = "oracle/compute-instance/opc"
  instance_name    = "instance1"
  instance_shape   = "oc3"
  ip_network       = "${module.ip-networks.ip_networks[1]}"
  ip_reservation   = "${opc_compute_ip_address_reservation.ip-reservation.name}"
  ssh_key          = "${opc_compute_ssh_key.ssh-key.name}"
}

resource "opc_compute_ssh_key" "ssh-key" {
  name    = "example-sshkey1"
  key     = "${file("~/.ssh/id_rsa.pub")}"
  enabled = true
}

resource "opc_compute_ip_address_reservation" "ip-reservation" {
  name            = "example-ip-reservation"
  ip_address_pool = "public-ippool"
}
この例では、IPネットワーク上にインスタンスを作成しているため、opc_compute_ip_address_reservationでパブリックIP予約を使っていますが、IPネットワークを使わない場合、共有ネットワークインターフェースでIP予約を作成するために、opc_compute_ip_reservationを使う必要があります。

Summary

どのようなプログラミング言語でも、再利用可能なコード要素にカプセル化し分解することで、開発と保守が大幅に省力化できますが、この原則は、宣言的および機能的な構造を使用してクラウドインフラストラクチャを定義できる、infrastructure-as-codeの領域でも等しく適用されます。Terraform ModuleとTerraform Modules Repositoryを使うと、ベンダーが提供するモジュールとコミュニティが提供するモジュールの両方を信頼性の高い方法で採用して、素早く初期設定を作成できます。

More Information

Related Content

[WLS, Java] How to Use Java EL to Write WLDF Policy Expressions

原文はこちら。
https://blogs.oracle.com/weblogicserver/use-java-el-policy-expressions

WLDF(WebLogic診断フレームワーク)は、サーバやクラスタの直近の時間間隔のメトリックの傾向を見るための複雑なロジックを隠蔽する、Smart Rulesと呼ばれる特化した機能を提供します。この機能が不十分であるということであれば、WLDFが提供するBeanや関数、Java Expression Language(Java EL)を使って、ポリシー式を直接を記述することもできます。
Oracle WebLogic Server 12cでポリシー式を作成するにあたり、Java ELは推奨される言語です。Java ELには数多くの強力な機能が組み込まれていますが、より複雑にすることもできます。しかしながら、より簡単にするために、WebLogicのデータやイベントに直接アクセスするポリシー式で利用可能な、Beanや関数から構成される一連のEL式をWLDFが提供します。
簡単なポリシー式や複雑なポリシー式をBeanや関数を使って記述することができますが、Java ELを使ったプログラミング技術や経験が十分にあることが前提です。
例えば、5分間のタイムウィンドウにおける平均のHeapFreePercentが20より小さいかどうかをチェックする比較的簡単なポリシー式は、以下のように記述できます。
wls:extract("wls.runtime.serverRuntime.JVMRuntime.heapFreePercent", 
            "30s",
            "5m").tableAverages()
                 .stream()
                 .anyMatch(hfp -> hfp < 20)
cluster1に属する全サーバの、2分間のタイムウィンドウで30秒ごとに属性PendingUserRequestCountの平均値をチェックし、ノードの75%で保留リクエストが平均100個を上回る場合に呼び出されるようなより複雑なポリシー式は、以下のように記述できます。
wls:extract(wls.domainRuntime.query({"cluster1"},
                                  "com.bea:Type=ThreadPoolRuntime,*",
                                  "PendingUserRequestCount"),
         "30s",
         "2m").tableAverages()
               .stream()
               .percentMatch(pendingCount -> pendingCount > 100) > 0.75
ポリシー式でJava ELを使う例や詳細情報は、以下のドキュメントをご覧ください。
Oracle® Fusion Middleware
Configuring and Using the Diagnostics Framework for Oracle WebLogic Server 12c (12.2.1.3.0)
Writing Collected Metrics Policy Expressions Using Functions
http://docs.oracle.com/middleware/12213/wls/WLDFC/config_watches.htm#WLDFC-GUID-45CD1259-6151-412A-A9E4-AA676E2C47C0

[Docker, Cloud] Get a highly available Kubernetes Cluster on Oracle Cloud Infrastructure in minutes

原文はこちら。
https://blogs.oracle.com/developers/get-a-highly-available-kubernetes-cluster-on-oracle-cloud-infrastructure-in-minutes

「この頃どこでも使われているようだね」、とKubernetesについて語る人がいます。最近の調査では、企業の71%が Kubernetesを使ってコンテナを管理していると言われていることからも、Kubernetesは基本的にコンテナ管理とオーケストレーションの共通語になっています。もしかすると、クラウド自身について言及する人がいるかもしれません。
451 Research study reveals rapid adoption of Kubernetes for hybrid cloud infrastructure (CoreOS Blog)
https://coreos.com/blog/451-research-container-survey-results
Federation
https://kubernetes.io/docs/concepts/cluster-administration/federation/
本日、簡単にKubernetes ClusterをOracle Cloud Infrastructure (OCI) 上に立ち上げることができるオープンソースのTerraformテンプレート、Terraform Kubernetes Installerを発表できうれしく思っています。
Terraform Installer for Kubernetes on Oracle Cloud Infrastructure
https://github.com/oracle/terraform-kubernetes-installer/
これを使うと、お客様は商用グレードのKubernetesコンテナオーケストレーションを、Oracleの次世代OCIクラウドインフラストラクチャの管理、セキュリティ、予測可能なパフォーマンスと組み合わせることができます。

Kubernetesクラスタを起動し、稼動させるのは、まして商用環境に対応可能な状態にするというのは、これまで非常に困難なことでした。純粋主義者(そしてKubernetesを学ぶ人たち)であれば、Kubernetesクラスタを立ち上げるために困難な道を選ぶかもしれませんが、 我々のほとんどは、Kubernetesクラスタの立ち上げを簡単かつ自動化する方法を求めています。
Kubernetes The Hard Way
https://github.com/kelseyhightower/kubernetes-the-hard-way
この分野のベンダーおよびKubernetesコミュニティから(多数の)プロジェクトが作られており、多くが開発段階にあります。私たちは以下の理由からTerraformを使うことにしました。
  • Terraformは、(Kubernetesがコンテナ用であるように)クラウドインフラストラクチャのオーケストレーションのための非常に一般的な方法になっている
  • Terraformが状態を管理するため、例えばKubernetesクラスタにノードを簡単に追加または削除できる
  • 既存のOCI用Terraform Providerが、活用して構築することができるOCIインフラストラクチャの管理のための強力な抽象化を提供している
    Terraform and Oracle Bare Metal Cloud Services
    https://blogs.oracle.com/developers/terraform-and-oracle-bare-metal-cloud-services

What it Does

Terraform Kubernetes Installerは、Oracle Cloud Infrastructure(OCI)のテナントで、可用性の高い、構成可能なKubernetesクラスタをプロビジョニングして構成するための、一連のTerraformモジュールと基本構成のサンプルを提供します。これには、Virtual Cloud Network (VCN)とサブネット、Kubernetesコントロール・プレーンを実行するためのインスタンス、etcdとKubernetes masterクラスタのフロントエンドのロードバランサが含まれます。

基本構成では、Kubernetesのmasterとノードのシェイプ/サイズ、基盤となるアベイラビリティ・ドメイン(AD)への配置方法を指定できる多くの入力変数をサポートします。

VMシェイプだけでなく、ベアメタルシェイプ(ハイパーバイザではありません!)を指定することができ、Kubernetesクラスタ用にOCIインフラストラクチャのパワーとパフォーマンスをフルに活用できるので、これは非常に強力です。ノードはインテリジェントに(たとえば可用性ドメインを使って)ラベル付けされて、Kubernetesのマルチゾーンへのデプロイメントをサポートしているため、Kubernetesスケジューラがアベイラビリティ・ドメイン間でPODを展開できます。
Running in Multiple Zones
https://kubernetes.io/docs/admin/multiple-zones/
READMEに記載されているように、Terraformを使用してクラスタにノードを追加したり削除したりすることもできます。
README - Terraform Kubernetes Installer for Oracle Cloud Infrastructure
https://github.com/oracle/terraform-kubernetes-installer/blob/master/README.md
基本構成の範囲を超える要件の場合、モジュールを使用して独自のカスタマイズされた構成を作成することもできます。

Highly Available Kubernetes Control Plane

What's Next

われわれのバックログには、Kubernetes永続化ストレージの統合と(公開サービス用の)ロードバランサの統合があります。しかしながら、このテンプレートをより良くするためにコミュニティから寄せられたリクエストや貢献を見てうれしく思います。
Load Balancing - Oracle Cloud Infrastructure
https://cloud.oracle.com/en_US/bare-metal-load-balancer
是非GitHubでIssueやプルリクエストをお寄せください(詳細手順はCONTRIBUTINGファイルをご覧ください)。
Terraform Installer for Kubernetes on Oracle Cloud Infrastructure
https://github.com/oracle/terraform-kubernetes-installer/
Contributing to the Terraform Kubernetes Installer for Oracle Bare Metal Cloud Services
https://github.com/oracle/terraform-kubernetes-installer/blob/master/CONTRIBUTING.md

我々の目標は、開発者とDevOpsチームが次世代のクラウドインフラストラクチャ上で標準的なKubernetesのメリットを享受できるよう、できるだけ簡単にすることです。

Related Content

[Docker] Announcing Oracle Linux Container Services for use with Kubernetes

原文はこちら。
https://blogs.oracle.com/linux/announcing-oracle-linux-container-services-for-use-with-kubernetes

オープンソースとコンテナのエコシステムへの取り組みを継続しているOracleは、Cloud Native Computing Foundationに参加します。そしてOracle Linux Container Services for use with Kubernetes(Kubernetesを使うOracle Linux Container Services)を発表できることを喜ばしく思います。
Oracle Joins the Cloud Native Computing Foundation
https://www.oracle.com/corporate/pressrelease/oracle-joins-cncf-091317.html
Kubernetesは、業界の先端を行くオープンソースのコンテナオーケストレーションおよび管理プラットフォームで、コンテナ化されたアプリケーションの標準として急速に浮上してきています。Kubernetesのデプロイは複雑になることがあります。特にストレージ、セキュリティ、およびネットワーキングに関してはそのようになることがあります。Oracle Linux Container Services for use with Kubernetesのリリースによって、バックアップとリカバリをサポートしながら、Kubernetesの構成とセットアップを簡素化します。このソリューションは、マイクロサービスおよび次世代アプリケーション開発のために包括的なコンテナおよびオーケストレーション環境を提供することを目的として、Oracle LinuxおよびOracle Linux Container Services for Dockerの拡張として開発されました。

Release Information

Oracle Linux Container Services for use with Kubernetesの現在のリリースは、Kubernetesバージョン1.7.4に基づいています。Oracle Linux 7で利用でき、Oracleが提供およびサポートするDocker Engineと統合するように設計されています。
Oracle Linux Container Services for use with Kubernetesは一連のDockerコンテナで動作し、これらのイメージはOracle Container Registryから入手できます。
Oracle Container Registry
https://container-registry.oracle.com/
Oracleは、kubeadmクラスタ構成ユーティリティを利用するセットアップおよび構成スクリプトを提供します。このスクリプトを使うと、ネットワーク構成、ファイアウォール、プロキシ、最初のクラスタのデプロイメントの設定、バックアップとリカバリのサポートの追加といった、Oracle Linuxの設定が簡単になります。

Installation and Upgrade

Oracle Linux Container Services for use with Kubernetesは、Oracle Linux Yum Serverから無料でダウンロードできます。yum install kubeadmを使用してkubeadmパッケージと必要な依存関係をインストールし、続いて、kubeadm-setup.sh upを実行して環境を設定します。
Oracle Linux Yum Server
http://yum.oracle.com/
お客様はOracle Linux Yum ServerならびにOracleのUnbreakable Linux NetworkでリリースされているOracle Linux Container Services for use with Kubernetesの最新アップデートを使用されることをお勧めします。標準のyum updateコマンドを使用してアップグレードを実行できます。
Unbreakable Linux Network
https://linux.oracle.com/
For more information on how to install and configure Oracle Linux Container Services for use with Kubernetesのインストールや構成方法に関する詳細は、以下のドキュメントをチェックしてください。
Oracle® Linux 7
Oracle Linux Container Services for use with Kubernetes User's Guide
https://docs.oracle.com/cd/E52668_01/E88884/html/index.html

Resources – Oracle Linux

Documentation
Software Download
Blogs
Community Pages
Social Media
Data Sheets, White Papers, Videos, Training, Support & more
Product Training and Education
コミュニティベースのサポートをお求めの方は、Oracle Technology NetworkコミュニティのOracle Linuxスペースを訪ねてください。
Oracle Linuxスペース
https://community.oracle.com/community/server_&_storage_systems/linux/oracle_linux
Oracle Technology Network
https://community.oracle.com/welcome

[Cloud] Sending Emails from Visual Builder Cloud Service

原文はこちら。
https://blogs.oracle.com/shay/sending-emails-from-visual-builder-cloud-service

データ変更の結果のメール送信という要件は、Oracle Visual Builder Cloud Service (VBCS、以前はApplication Builder Cloud Service、ABCSと呼ばれていました)のお客様からかなり多く伺ってきました。以前のバージョンで、アプリケーションからクライアントのメールソフトウェアを起動する機能を追加しましたが、数週間前にロールアウトした新バージョンでは、VBCS内、つまりバックエンド/サーバー/クラウドサイドでメール処理全体を管理することができるようになりました。
ビジネスオブジェクトに新たなトリガーを定義すると、”send email notification”というステップがロジックフローに追加されていることがわかります。

この定義をすると、メールのテンプレートを定義したり、テンプレートを選択したりすることが可能です。メールのテンプレートにはパラメータを配置できるため、再利用性に富んでいます。これらのパラメータに式を使って値を設定できるので、オブジェクトのフィールドの値を含めることができます。

以下の動画で、メール通知をビジネスオブジェクトのイベントに追加する方法を説明しています。

[Java] Opening Up Java EE - An Update

原文はこちら。
https://blogs.oracle.com/theaquarium/opening-up-ee-update

前回のエントリで、OracleはJava EEテクノロジーをオープンソースファウンデーションに移行し、Java EE標準の進化のプロセスをより迅速、柔軟かつオープンにする計画を始めていると発表しました。プロセスを進めるため、ベンダー、コミュニティメンバー、オープンソースファウンデーションと8月中旬から多くの議論を実施してきました。以下に現在までの進捗状況を纏めます。

まず、この新しい方向性に対するサポートを求めるため、IBMとRed HatというJava EEプラットフォームの最大のコントリビュータに接触しました。Oracle、IBM、Red Hatは、共同でサポート可能なアプローチを改善するために継続的に協調して取り組んでおり、ここまで、この分野でうまく進めてきました。そして、この移行が全当事者にとって成功となるよう、引き続き協力していくことを期待しています。IBMとRed Hat には感謝しています。

第2に、先ほどの提案を改良しました。計画が将来変更の可能性があるという、いつもの警告の下で、我々の意図は以下の通りです。
  • Oracleが主導するJava EEテクノロジ-および関連するGlassFishテクノロジーを、ファウンデーションに再ライセンスする。この中には、RI(Reference Implementation)、TCK(Technology Compatibility Kit)、関連プロジェクトのドキュメントが含まれる。
  • 既存のJava EE 8 TCKに合格する基盤ソース(foundation sources)を使用して、互換実装を構築する能力を実証する。
  • ファウンデーション内でプラットフォームのブランド戦略を定義する。これにはJava EEの新しい名前を決定することも含まれる。既存のjavaxパッケージ名やコンポーネント仕様名が利用できるようにして、既存のJSRの継続性を提供できるようにする予定である。
  • 既存の仕様を進化させ、新しい仕様をプラットフォームに組み込むことが可能なプロセスを定義する。
  • ベンダーだけでなく、開発者や他のコミュニティメンバーを募集し、プラットフォームテクノロジーのスポンサーになってもらい、ファウンデーション内でプラットフォームを進化させることができるようにする。これにはEclipse MicroProfileテクノロジーのプラットフォームへの編入の可能性も含まれる。
  • Java EE 8の完成後速やかに移行できるよう、上記の作業をできる限り速やかに開始する。
第3に、提案を議論するためにいくつかのファウンデーションと面会しました。彼らに時間を取ってもらったこと、そして彼らからのフィードバックとコメントに感謝しています。慎重にレビューした後、私たちは、Eclipse Foundationを、我々の提案を実現するためのファウンデーションとして選択しました。Eclipse Foundationは、Java EEおよび関連テクノロジーに強い経験と関わりがあり、このことは、Java EEの迅速な移行、コミュニティに優しいプラットフォーム進化プロセスの作成、MicroProfileなどの補完的なプロジェクトを活用する上で助けになります。私たちはこのコラボレーションを楽しみにしています。

上記のすべてに加えて、OracleはJava EE 8に移行するライセンシーを含む既存のJava EEライセンシーを引き続きサポートする予定であることをお見知りおきください。Oracleは、WebLogic Serverの既存のバージョンを引き続きサポートし、WebLogic Serverの将来のバージョンでJava EE 8をサポートする予定です。この計画により、既存のJava EE標準を引き続きサポートしながら、よりオープンな環境への進化を可能にすると確信しています。やるべきことがたくさんありますが、正しい方向に進むと信じています。近日中に追加のアップデートをお届けできると思います。

Safe Harbor Statement
The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

[Java] Faster and Easier Use and Redistribution of Java SE

原文はこちら。
https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se

Exec Summary:

  • OracleはJava SEのリリースサイクルを増やし6ヶ月毎にすることを提案します。
    Moving Java Forward Faster
    https://mreinhold.org/blog/forward-faster
  • Oracleは開発者、お客様、利用者によるJava SEの利用方法をシンプルにします。
  • Oracle JDKは引き続き商用の長期サポートを提供するために存続します
    Oracle JDK
    http://www.oracle.com/technetwork/java/javase/downloads/index.html
    • Oracle JDKは、OpenJDKのバイナリがOracle JDKと置き換え可能になると(2018年後半ごろ予定)、主に商用およびサポートの顧客向けになります。
    • オラクルは、引き続き、完全なすぐに実行可能な(ready-to-run)アプリケーションのパッケージングおよび配布を強化します。

Introduction

クラウドは、モダンなアプリケーションの開発、デプロイ、利用の方法や形態を変えました。クライアント側では、すぐに実行できるモバイルファーストなネイティブ・アプリケーションとHTML5/JavaScript Webインターフェイスがますます普及しています。クラウド側では、「アプリケーション」がコンテナベースのモジュール型マイクロサービス、さらにはFunctionsに移行しています。開発者はより頻繁なリリースサイクルと柔軟なライセンス供与を期待しています。
引き続き、Javaは世界で最も人気のある開発プラットフォームおよびアプリケーションプラットフォームの一つです。
TIOBE Index for September 2017
https://www.tiobe.com/tiobe-index/
Language Framework Popularity: A Look at Java, June 2017
http://redmonk.com/fryan/2017/06/22/language-framework-popularity-a-look-at-java-june-2017/
The RedMonk Programming Language Rankings: June 2017
http://redmonk.com/sogrady/2017/06/08/language-rankings-6-17/
Java SEのビルド、リリース、ライセンスおよび配布モデルは10年以上前からありますが、将来のクラウドの動向に対応するために更新される予定です。
この目的のために、Java SEの作成、配布方法に関する数多くの変更を提案します。

Introducing OpenJDK builds under the GPL from Oracle

OracleはOpenJDKビルドの出荷を計画しています。これにより、開発者がJavaアプリケーションをクラウド環境にデプロイすることが簡単になります。まずはLinux x64バイナリを提供し、その後macOSとWindows向けのバイナリを提供する予定です。これらは"Classpath Exception"付きGPLv2(GPLv2 with the "Classpath Exception")ライセンスの下提供されます。つまり、開発者は簡単かつ無料で自身のフレームワークやアプリケーションを付属して配布できる、というものです。
GNU General Public License, version 2, with the Classpath Exception
http://openjdk.java.net/legal/gplv2+ce.html
Oracleは、Java Flight Recorderのような、以前はOracle JDKでのみ利用可能だった商用機能もオープンソース化する予定です。
Accelerating the JDK release cadence
http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
OpenJDKコントリビュータに提案し議論した後、数多くの追加の内部開発プロジェクトをオープンソース化する予定です。
初期時点では違いがあることはわかっていますが、いくつかのリリースを経ると、OpenJDKビルドとOracle JDKバイナリの間に技術的な違いなくなるはずです。これを実現するために、Oracleは他のOpenJDKコントリビュータと協力し、追加のポートをサポートする可能性のあるオープンなビルド・アンド・テストインフラストラクチャに取り組むことにしています。

Ongoing Oracle JDK Support

OracleはOracle JDKのビルド、出荷を継続する予定です。
Oracle Java SE Downloads
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Oracle JDK 8は公開アップデートを少なくとも来年中は提供し、商用サポートは2025年までご利用頂けるようにする予定です。OpenJDKバイナリが開発者にとってJava SEプラットフォームにおける最新のイノベーションにアクセスするための主要なチャネルになるので、 Oracle JDKはOracleの商用およびサポート契約をされているお客様に対する長期サポート(long term support、LTS)版として残ります。
Advanced Management ConsoleのようなOracle JDKとは別にパッケージ化された有償機能(Commercial Features) は、引き続きOracleのJava SE Advancedという有償製品として提供される予定です。
Advanced Management Console
http://www.oracle.com/technetwork/java/javaseproducts/advanced-mgmt/advancedmanagementconsole-2254207.html
Oracle Java SE Advanced
https://www.oracle.com/java/java-se-advanced-suite.html
クライアントアプリケーションの開発については、古い「プラグイン」からモダンな展開方法にシフトし続けるため、Javaアプリケーションとは別に、スタンドアロンのJava Runtime Environment(JRE)をインストールする必要性が減りました。JDK 9に入っているjlinkツールを使うとアプリケーション開発者が事前インストール済みのシステムJREに依存するのではなく、専用ランタイムをパッケージングしデプロイすることがずっと簡単になるでしょう。
JEP 282: jlink: The Java Linker
http://openjdk.java.net/jeps/282
Java Platform, Standard Edition Tools Reference Release 9
jlink
https://docs.oracle.com/javase/9/tools/jlink.htm#JSWOR-GUID-CECAC52B-CFEE-46CB-8166-F17A8E9280E9


Oracleは来年の後半に複数年の作業でスタンドアロン・アーキテクチャーからの移行を始める予定です。

[WLS] WebLogic Server 12.2.1.3 is Available

原文はこちら。
https://blogs.oracle.com/weblogicserver/weblogic-server-12213-is-available

このたびOracle WebLogic Server 12.2.1.3.0 がご利用頂けるようになったことを発表できうれしく思っています。Oracle WebLogic Server 12.2.1.3.0 は、Oracle Technology Network (OTN) からダウンロードいただけますし、Oracle Softeware Delivery Cloud (OSDC) からもまもなくダウンロードできるようになる予定です。
Oracle WebLogic Server Installers
http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-main-097127.html
WebLogic Server 12.2.1.3.0 は、2015年10月にリリースされたWebLogic Server 12.2.1.0.0 のPatch Set 3 (PS3) とも呼ばれ、Oracle Fusion Middleware 12.2.1.3.0 の一部としてデリバリされます。
Announcing Oracle WebLogic Server 12.2.1
https://blogs.oracle.com/weblogicserver/announcing-oracle-weblogic-server-1221
https://orablogs-jp.blogspot.jp/2015/10/announcing-oracle-weblogic-server-1221.html
WebLogic Server 12.2.1のPatch Setには、製品メンテナンスおよび最初の12.2.1以後見つかったバグの修正が含まれています。そして、最新のPatch Setがリリースされれば、WebLogic Server 12.2.1をご利用のお客様に対し、最新のPatch Setを適用することを推奨するのが一般的です。PS3は、WebLogic Server 12.2.1.0.0、12.2.1.1.0 (PS1)、そして12.2.1.2.0 (PS2) でサポートされる機能の全てを包含しています。以前の12.2.1 リリースをお使いのお客様は、プロジェクト計画の脈絡の中で意味がある場合、できる限り速やかにPS3への移行を検討すべきです。WebLogic Serverの以前のバージョンからWebLogic Server 12.2.1へ移行を計画されているお客様は、できる限り、かつ合理的である限り、PS3へ移行するように移行計画を変更されるべきです。Fusion Middleware 12.2.1.3.0 でサポートされるシステム構成も更新されています。
Oracle Fusion Middleware 12c (12.2.1.3.0) Certification Matrix
http://www.oracle.com/technetwork/middleware/fmw-122130-certmatrix-3867828.xlsx
WebLogic Server Patch Setは主としてメンテナンスを意図しているとはいえ、これらのリリースには数は少ないながらも、お客様を混乱させずに価値を提供する新機能が含まれています。 これらの機能はWebLogic Server 12.2.1.3ドキュメントのWhat's New?に纏められています。
Oracle WebLogic Server 12.2.1.3.0 Documents
http://docs.oracle.com/middleware/12213/wls/index.html
Oracle® Fusion Middleware
What's New in Oracle WebLogic Server 12.2.1.3.0
12c (12.2.1.3.0)
What's New in Oracle WebLogic Server 12.2.1.3.0
http://docs.oracle.com/middleware/12213/wls/NOTES/whatsnew.htm#NOTES107
今後このブログでこれらの新機能について紹介していく予定ですが、今回は2個のセキュリティに関連する機能をご紹介したいと思います。

Secured Production Mode

Secured Production Modeは、本番環境を保護する際に役立つ新しい構成オプションです。セキュリティに関するドキュメントに記載の通り、Secured Production ModeはデフォルトでセキュアなWebLogic Serverの構成の適用を支援し、セキュアな環境では通常使われる設定を使わない場合にユーザーに対し警告します。
Oracle® Fusion Middleware - Securing a Production Environment for Oracle WebLogic Server 12c (12.2.1.3.0)
How Domain Mode Affects the Default Security Configuration
http://docs.oracle.com/middleware/12213/wls/LOCKD/practices.htm#GUID-F980DB67-7CDE-4EF8-986D-D188D4EDB706

Oracle Identity Cloud Integrator

Oracle Identity Cloud Integratorは、オプションで構成可能な、Oracle Identity Cloud Serviceを使うことができる新たなWebLogic Serverセキュリティプロバイダです。
Oracle® Fusion Middleware - Administering Security for Oracle WebLogic Server 12c (12.2.1.3.0)
Configuring the Oracle Identity Cloud Integrator Provider
http://docs.oracle.com/middleware/12213/wls/SECMG/identity-cloud_atn.htm#SECMG-GUID-E27E8192-7FD1-4FB8-896A-58E653DA45BF
Identity Cloud Service (IDCS)
https://www.oracle.com/cloud/paas/identity-cloud-service.html
https://cloud.oracle.com/ja_JP/identity
WebLogic Server 12.2.1.3をお使いのお客様は、オンプレミス、Oracle Cloudを問わず、Identity Cloud Integratorを使えば、Oracle Cloud PaaSやSaaSサービスが利用する同一のIdentity Cloud Serviceと統合された認証およびIdentityアサーションをサポートします。これらの機能がお客様の進化するセキュリティ要求事項に答えることができると願っておりますし、これらの機能を有効にしない限り、影響を与えないように実装しています。
WebLogic Serverを使用するOracle Java Cloud Serviceおよびその他のOracle Cloud Servicesは、今後12.2.1.3をサポートする予定です。
Oracle Java Cloud Service
https://cloud.oracle.com/ja_JP/java
また、WebLogic Server 12.2.1.3をサポートするようDockerイメージを更新中で、Oracle Open WorldでWebLogic ServerのDockerサポートについて多くのことをお話したいと考えています。
WebLogic on Docker
https://github.com/oracle/docker-images/tree/master/OracleWebLogic
以前のエントリに記載した通り、まもなく登場するJava EE 8をサポートする新しいWebLogic Serverバージョンを現在開発中です。
WebLogic Server and Opening Up Java EE
https://blogs.oracle.com/weblogicserver/weblogic-server-and-opening-up-java-ee
https://orablogs-jp.blogspot.jp/2017/08/weblogic-server-and-opening-up-java-ee.html
そういうわけで、最新の機能とメンテナンスを備えた最新のリリースを利用するために、貴社のWebLogic Server 12.2.1プロジェクトでWebLogic Server 12.2.1.3を利用するようにターゲットの切替を開始してください。まもなく他のアップデートもご紹介する予定にしています。