[Java] Java EE 7 JSR update

原文はこちら。
https://blogs.oracle.com/jcp/entry/java_ee_7_jsr_update

Java EE 7 JSRのアップデートです。このブログの直近のエントリを見逃してらっしゃる方向けに、現時点でJCPのレビューステージの状態にあるJava EE 7のJSRが8個あります。あなたかたのフィードバックをお待ちしています。
また、Java EE wikiにも仕様には、スケジュールのアップデートが記載されていますので、是非チェックして下さい。最新のJSR 236に関する記述もあります。
GlassFish Server Open Source Edition 4.0
Specification Status
https://wikis.oracle.com/display/GlassFish/PlanForGlassFish4.0#PlanForGlassFish4.0-SpecificationStatus

[WLS] Data Source Security Part 5

原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/data_source_security_part_5

これまでの4エントリを読んでらっしゃるのであれば、この分野のエキスパートになってるはずですが、このエントリでWebLogicリソースの権限に関するトピックについて触れたいと思います。構成パラメーターを使って、具体的な値でどのような結果になるかを例示します。

WebLogicリソースの権限

これまでの議論はすべて、(最終的に)データベース側で使用されているデータベースの資格証明に関するものでした。WebLogic Serverには、どのWebLogic ServerユーザにJDBCリソースへのアクセスが許可されているかを制御するためのリソースの資格証明があります。これらは、データソースに関連付けられており、[セキュリティ]>[ポリシー]から定義できます。 "reserve(新しい接続を取得)"、 "admin(管理)"、 "shrink"、"reset"、(さらに全てを含む"ALL")という、4つのアクセス権がありますが、接続の取得に関する話題であるため、今回は"reserve"に注目します。デフォルトでは、JDBCリソースの権限は完全にオープンで、誰でも何でもできる状態にあります。許可のポリシーを追加すると即座に他の全てのユーザーが制限されます。例えば、"weblogic"が接続を予約できるようにポリシーを追加すると、明示的にポリシーを追加しなければ、他の全てのユーザーは接続の予約に失敗します。検証はWebLogic Serverのユーザーの資格情報のみで実施します(データベースのユーザーの資格情報ではありません)。一般にリソースの構成は、以下のリンクに記載されています。
Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help 12c Release 1 (12.1.1)
Create policies for resource instances
http://docs.oracle.com/cd/E24329_01/apirefs.1211/e24401/taskhelp/security/CreatePoliciesForResourceInstances.html
この機能は非常に有用で、コードやユーザーがデータベースに接続することを制限することができます。

API データベースの資格証明を使用 権限チェックのためのユーザー
getConnection() True もしくは false 現在のWLSユーザ
getConnection(user,password) False APIからのUser/Password
getConnection(user,password) True 現在のWLSユーザ

シンプルなgetConnection()を使うか、データベース資格証明を有効にしている場合、WebLogic Serverシステムに対して認証される現在のユーザをチェックします。データベース資格証明を有効にしていない場合、ユーザとパスワードはAPIから供給されるものを使います。

例

以下は[IDベースの接続プールの有効化]、[Oracleプロキシ・セッション]、[データベース資格証明の使用]間の作用に関する実例です。
データベース側で、以下のオブジェクトを構成します。
  • データベースユーザはscott、jdbcqa、jdbcqa3
  • プロキシの権限を設定する
    • alter user jdbcqa3 grant connect through jdbcqa;
    • alter user jdbcqa grant connect through jdbcqa;
以下のWebLogicデータソースオブジェクトを構成します。
  • weblogic, wluserのユーザを作成
  • "weblogic" を "scott"に資格証明をマッピング
  • "wluser"を"jdbcqa3"に資格証明をマッピング
  • データソース識別子を"jdbcqa"ユーザで構成
  • [クライアントIDを設定]を有効にした状態で全てのテストを実施する(詳細は下記)
  • [Oracleプロキシ・セッション]を無効にした状態で全てのテストを実施する(詳細は下記)
テストプログラムでは以下を実施します。
  • サーブレットで実行
  • "weblogic"ユーザーとしてWebLogic Serverに対し認証
データベース資格証明の使用 IDベース getConnection
(scott,***)
getConnection
(weblogic,***)
getConnection
(jdbcqa3,***)
getConnection()
使用する 使用する ユーザー(scott)
クライアント(weblogic)
Proxy(なし)
weblogicで失敗(DBユーザーではない) ユーザー(jdbcqa3)
クライアント(weblogic)
プロキシ(なし)
デフォルトユーザー(jdbcqa)
クライアント(weblogic)
プロキシ(なし)
使用しない 使用する scottで失敗
(WLSユーザーではない)
ユーザー(scott)
クライアント(scott)
プロキシ(なし)
jdbcqa3で失敗(WLSユーザーではない) ユーザー(scott)
クライアント(scott)
プロキシ(なし)
使用する 使用しない scott用のプロキシで失敗 weblogicで失敗(DBユーザーではない) ユーザー(jdbcqa3)
クライアント(weblogic)
プロキシ(jdbcqa)
デフォルトユーザー(jdbcqa)
クライアント(weblogic)
プロキシ(なし)
使用しない 使用しない scottで失敗
(WLSユーザーではない)
デフォルトユーザー(jdbcqa)
クライアント(scott)
プロキシ(なし)
jdbcqa3で失敗(WLSユーザーではない) デフォルトユーザー(jdbcqa)
クライアント(scott)
プロキシ(なし)

[クライアントIDの設定]を無効にした場合、全てのケースでクライアントはNULLになります。
Oracle Thinドライバでない場合、上記表で非NULLプロキシを使うと、例外が発生します。プロキシセッションを明示的・暗黙的にサポートしているのはOracle Thinドライバだけだからです。
oracle-proxy-sessionをtrueにすると、("jdbcqa"のプロキシを使用して)成功するパターンは以下の条件に限られます。
  1. [データベース資格証明の使用]を有効に設定し、getConnection(jdbcqa3,…) もしくは getConnection()を使う場合。
  2. [データベース資格証明の使用]を無効に設定し、getConnection(wluser, …) もしくは getConnection()を使う場合。

まとめ

データソースのセキュリティに関して、選択可能なオプションが多数あります。WLSやデータベースのユーザ数と変動率、データアクセスの粒度、セキュリティIDの深さ(接続ユーザや実際のユーザーに関するプロパティ)、パフォーマンス、ソフトウェアスタック内のさまざまなコンポーネントの調整やドライバの機能を考慮しなければなりません。今、あなたは全体像(パート1の表)を持っているわけですから、より多くの情報に基づいて選択できます。

[SOA/BPM] Undeploy multiple SOA composites with WLST or ANT by Danilo Schmiedel

原文はこちら。
https://blogs.oracle.com/soacommunity/entry/undeploy_multiple_soa_composites_with

現在携わっているプロジェクトのBuild Managementチームから複数のコンポジットを一度にアンデプロイする方法を質問されました。もちろん、Enterprise Managerには「このパーティションから全てのコンポジットをアンデプロイする」というメニューがあるのですが、毎日たくさんのデプロイを実行しているため、質問してきた彼はスクリプトでアンデプロイしたかったのです。継続的統合環境(CI Environment)で毎晩のデプロイメントがずっと重要なのです。毎晩手作業でEnterprise Managerからアンデプロイメントを実行したがる人がどこにいるというのでしょう。

しかしながら、WLSTやANTを使うことで、スクリプトによるアンデプロイ方法としてSOA Suiteには2個出てきます。以下の記事ではその両方を説明しています。

WLSTでアンデプロイする

SOA/BPM Suite 11gの事前構成済みの仮想マシンを使って、以下に記載している動作や手順を確認できます。
Pre-built Virtual Machine for SOA Suite and BPM Suite 11g
http://www.oracle.com/technetwork/middleware/soasuite/learnmore/vmsoa-172279.html
  • <MIDDLEWARE_HOME>/Oracle_SOA1/common/bin. のWLSTディレクトリに移動する
    cd /oracle/fmwhome/Oracle_SOA1/common/bin/
  • WLSTを実行する
    ./wlst.sh
  • SOA serverに接続する
詳細は以下のエントリをご覧下さい(英語)。
Undeploy multiple SOA composites with WLST or ANT (Inside BPM and SOA by Danilo Schmiedel)
http://inside-bpm-and-soa.blogspot.de/2012/11/undeploy-multiple-soa-composites-with.htmlRead the full article by Danilo Schmiedel

[Java] Concurrency Utilities for Java EE (JSR 236) in Early Draft Review!

原文はこちら。
https://blogs.oracle.com/theaquarium/entry/concurrency_utilities_for_java_ee1

コミュニティは長らくconcurrency API for Java EEを待望してきました。実際のところ、JSR 236(Concurrency Utilities for Java EE)は2003年にスタートしたのですから。そのJSR 236が、ちょうどJava EE 7に間に合うようプロジェクトを進めてきたというすばらしいニュースが飛び込んできました。数日前、JSR 236が早期ドラフトレビューとしてリリースされました。是非お読み頂き、フィードバックをお願いいたします。

JSR-000236 Concurrency Utilities for Java EE 1.0 Early Draft Review
http://download.oracle.com/otndocs/jcp/concurrency_utilities-1_0-edr-spec/index.html

[Network] Announcement Oracle Virtual Networking

原文はこちら。
https://blogs.oracle.com/eSTEP/entry/announcement_oracle_virtual_networking

Oracle Virtual Networkingに関する情報や付随情報がOracleのWebサイトとOracle Technical Network (OTN)からダウンロードできるようになりました。
Oracle Virtual Networkingは、サーバーやストレージの仮想I/Oや仮想ネットワークを管理するためのハードウェアとソフトウェア製品の完全なポートフォリオにより、データセンターの経済学を激変させます。これらの製品はもうご注文頂けます。これは、2012年11月6日のXsigo買収に伴うものです。

詳細は以下のリンクからどうぞ。

[Java] Garbage Collection Basics

原文はこちら。
https://blogs.oracle.com/javatraining/entry/garbage_collection_basics

Javaは素晴らしいプログラミング言語でありプラットフォームです。その優れた特徴の一つに自動ガベージコレクションがあります。どのように機能するかご存知ですか?

ガベージコレクションの基礎を概説するオンラインのWebコースを作成しました。このコースに含まれている多くは、様々なホワイトペーパーなどで既に発表していますが、これらをJDK7に合わせて更新し、必要な手順を説明するすてきなイラストを差し込みました。このコースを気に入ってもらえるとうれしいです。
Oracle Learning Library - Garbage Collection Basics (Oracle By Example)
https://apex.oracle.com/pls/apex/f?p=44785:24:9261305608325::NO:24:P24_CONTENT_ID,P24_PREV_PAGE:6624,16
GI GCに関するオンラインWebコースは1週間後ぐらいにリリースする予定です。

[Java] SAP NetWeaver Cloud Java EE 6 Web Profile Certified!

原文はこちら。
https://blogs.oracle.com/theaquarium/entry/sap_netweaver_cloud_java_ee

SAP NetWeaver CloudがJava EE 6ファミリーに加わったことを歓迎しています!NetWeaver Cloud SDK-2.x.BetaがJava EE 6 Web Profile TCKに対して認証されました。これにより、Web Profile実装の個数が7個になり、公式のJava EE互換ページに掲載されている認定プラットフォームの総数は18個になりました。
Java EE Compatibility
http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html
GlassFish、WebLogic、Websphere、JBoss ASなどは完全なJava EE 6プラットフォームに準拠しています。他のJava EE 6 Web ProfileだけのプラットフォームにはResinやApache TomEEも含まれています。
実はSAP NetWeaver CloudはEclipseLink、TomcatおよびOpenEJBを使用しています。NetWeaverチームによると、試用してフィードバックがほしいということです。詳細は以下のリンクからどうぞ。
SAP NetWeaver Cloud is Java EE 6, Web Profile Certified
http://scn.sap.com/community/developer-center/cloud-platform/blog/2012/11/15/sap-netweaver-cloud-is-java-ee-6-web-profile-compatible