[FMW] Oracle Fusion Middleware OpenWorld General Session

原文はこちら。
https://blogs.oracle.com/fusionmiddleware/entry/oracle_fusion_middleware_openworld_general

この戦略とロードマップセッションを見逃したり、Hasan Rizvi(Oracle Fusion MiddlewareとJava DevelopmentのExecutive Vice President)のキーノートの動画をご覧になりたいでしょうか。Hasanの「Oracle Fusion Middleware Strategies Driving Business Innovations」というプレゼンテーションでは製品デモやNike、Los Angeles Department of Water & Power、Nintendo、NTT Docomoといったお客様をご紹介しました。
Hasan Rizviのキーノートはこちらからどうぞ。
http://medianetwork.oracle.com/video/player/1873556035001

[SOA, OSB] 2 way SSL between SOA and OSB

原文はこちら。
https://blogs.oracle.com/ateamsoab2b/entry/2_ways_ssl_between_soa

SOAコンポジットと外部パートナーリンクとの間で双方向のSSLを使う必要がある場合、以下の手順で実現することができます。
  1. 資格証明ストアを作成、キーストアとサーバ証明書を信頼する
  2. WebLogic Server上でキーストアとSSLを構成する
  3. 双方向SSLを使うよう、サーバを構成する
  4. 双方向SSLを使うよう、SOAコンポジットのパートナーリンクを構成する
  5. SOAエンジンで双方向SSLを使うよう構成する
今回は、テストのためにSOAとOSBを使います。OSBとSOAの別のドメインではじめました。2個のSOAPベースのプロキシサービスをOSBにデプロイし、SOAに2個のコンポジットをデプロイしました。SOAでは、1個のコンポジットがOSBのプロキシサービスを呼び、別のコンポジットがOSBから呼び出されます。同様に、OSBでは、1個のプロキシサービスがSOAコンポジットを呼び出し、他方がSOAから呼び出されます。

1.資格証明ストアを作成し、キーストアとサーバ証明書を信頼する

これは開発環境なので、JDKのkeytoolを使ってストアと自己署名証明書(別名オレオレ証明書)を作成していますが、本番環境ではVerisignのような信頼された認証局から発行された証明書を使うべきです。以下のスクリプトを作成して、この手順で必要なものをご説明しましょう。唯一の要件は、エイリアスとしてmykeyを使う必要がある、ということです。
STOREPASS=welcome1
KEYPASS=welcome1

# generate identity keystore for soa and osb.  Note: For SOA, you MUST use alias mykey

echo "creating stores"

keytool -genkey -alias mykey -keyalg "RSA" -sigalg "SHA1withRSA" -dname "CN=soa, C=US" -keystore soa-default-keystore.jks -storepass $STOREPASS -keypass $KEYPASS

keytool -genkey -alias osbkey -keyalg "RSA" -sigalg "SHA1withRSA" -dname "CN=osb, C=US" -keystore osb-default-keystore.jks -storepass $STOREPASS -keypass $KEYPASS

# listing keystore contents

echo "listing stores contents"

keytool -list -alias mykey -keystore soa-default-keystore.jks -storepass $STOREPASS
keytool -list -alias osbkey -keystore osb-default-keystore.jks -storepass $STOREPASS

# exporting certs from stores

echo "export certs from  stores"

keytool -exportcert -alias mykey -keystore soa-default-keystore.jks -storepass $STOREPASS -file soacert.der
keytool -exportcert -alias osbkey -keystore osb-default-keystore.jks -storepass $STOREPASS -file osbcert.der


# import certs to trust stores

echo "import certs"

keytool -importcert -alias osbkey -keystore soa-trust-keystore.jks -storepass $STOREPASS -file osbcert.der -keypass $KEYPASS
keytool -importcert -alias mykey -keystore osb-trust-keystore.jks -storepass $STOREPASS -file soacert.der  -keypass $KEYPASS
SOA Suiteはアウトバウンドのトラフィックのために、WebLogic ServerのSSL実装ではなく、JDKのSSL実装を使っています。パートナーの公開証明書をインポートしてSOAが利用する信頼されたキーストアに取り込みます。SOAがデフォルトで利用する信頼されたキーストアはDemoTrust.jksで、これは$MW_HOME/wlserver_10.3/server/libにあります(これは起動スクリプトの -Djavax.net.ssl.trustStore で設定されています)。ご自身の信頼されたキーストアをお持ちの場合、ご自身の信頼されたキーストアに証明書をインポートする必要があります。
keytool -importcert -alias osbkey -keystore $MW_HOME/wlserver_10.3/server/lib/DemoTrust.jks -storepass DemoTrustKeyStorePassPhrase  -file osbcert.der -keypass $KEYPASS
この手順を踏まない場合、SOAがOSBのサービスを双方向SSLを使って呼び出した際に以下の実行時例外が発生します。
Message send failed: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

2.WebLogic ServerでキーストアとSSLを構成する

まず、WebLogic Server管理コンソールにログインし、サーバ>構成>キーストアのタブへ移動します。キーストアの種類を「カスタムIDとカスタム信頼」に変更し、残りのフィールドを入力します。
SSLタブへ移動し、IDの項目で詳細設定をクリックします。自己署名証明書を今回VM環境で利用しているため、ホスト名の検証は無効にしました。実際の運用環境のシステムでは、ホスト名検証を実施すべきです。また、「サーバーの証明書を使用」をONにして、アプリケーションがサーバ証明書を使ってHTTPトラフィックを初期化できるようにしました(OSBでこれを有効化することが重要です)。


最後に、「SSLリスニング・ポートの有効化」を[サーバ]>[構成]>[全般]でONにします。



3.  双方向SSLを使うようサーバを構成する

先ほどの手順のスクリーンショットに従うと、[サーバ]>[構成]>[SSL]>[詳細設定]に「相互クライアント証明書の動作」というオプションがあることにお気づきかと思います。これを「クライアント証明書をリクエスト(強制する)」に設定する必要があります。
2と3手順をOSBについても繰り返します。これらの設定が全て終了したら、全サーバを再起動します。

4.SOAコンポジットのパートナーリンクを双方向SSLを使うように構成する

プロジェクトのcomposite.xmlを編集して設定します。パートナーリンクの参照の部分にoracle.soa.two.way.ssl.enabledというプロパティを追加します。

    
    
      WSDLDriven
  true
    
  
OSBでは、プロキシサービスのトランスポート構成で「HTTSが必要」というフラグにチェックします。構成後、composite.jarファイルをリビルドして、Enterprise Manager Fusion Middleware Controlでのデプロイの準備が整いました。

5.SOAエンジンの双方向SSLを構成する

Oracle SOA Suiteは、Oracle WebLogic Serverの実装とSun Secure Socket Layer(SSL)スタックの両方を使って双方向SSLを構成します。
  • インバウンドのWebサービスバインディング用に、Oracle SOA SuiteはOracle WebLogic Serverインフラストラクチャを使うため、SSL用のOracle WebLogic Serverのライブラリを使います。これは既に前の章の手順2と3で実施済みです。
  • アウトバウンドのWebサービスバインディング用に、Oracle SOA SuiteはJRF HTTPClientを使います。そのため、SSL用にSun JDKのライブラリを使用します。これは、Enterprise Manager Fusion Middleware Controlで[soa-infra]を右クリックし、[SOA管理]>[共通プロパティ]を選択してSOAエンジンを設定していきます。

ページの最下部のリンク[詳細SOAインフラ拡張構成プロパティ]をクリックし、[KeystoreLocation]のフィールドにSOAアイデンティティキーストアの完全パスを入力します。



「適用」をクリックし、[ドメイン]>[セキュリティ]>[資格証明]へ移動します。


ここでは、キーストアにパスワードを設定します。注意すべき点として、証明書のエイリアスは手順1で記載したようにmykeyでなければなりませんが、アイデンティティキーストアにパスワードを指定するだけでOKです。これは以下の手順で実施します。
  1. [マップの作成]をクリック
  2. [マップ名]には「SOA」と入力し、[OK]をクリック
  3. [キーの作成]をクリック
  4. 以下のようにパスワード欄にSOAアイデンティティキーストアのパスワードを入力


6.テストとトラブルシューティング

セットアップが完了してサーバを再起動すると、Enterprise Manager Fusion Middleware Controlでコンポジットをデプロイし、テストすることができます。エラーが発生する場合は、サーバログをご覧になってエラーの原因を突き詰めて下さい。
例えば、手順5の設定をせずに双方向SSLをテストすると、BPEL PMからOSBを呼び出した際に以下のようなログが現れます。
java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: oracle.fabric.common.FabricInvocationException: Unable to access the following endpoint(s): https://localhost.localdomain:7002/default/helloword

####<Sep 22, 2012 2:07:37 PM CDT> <Error> <oracle.soa.bpel.engine.ws> <rhel55> <AdminServer> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-0AFDAEF20610F8FD89C5>

............

<11d1def534ea1be0:-4034173:139ef56d9f0:-8000-00000000000002ec> <1348340857956> <BEA-000000> <got FabricInvocationException

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
WebLogic ServerのSSLがサーバ証明書をコンソールで利用できるようにせずに、SOAコンポジットをOSBから双方向SSLで呼び出した場合、以下のエラーが発生します。
####<Sep 22, 2012 2:07:37 PM CDT> <Warning> <Security> <rhel55> <AdminServer> <[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <11d1def534ea1be0:-51f5c76a:139ef5e1e1a:-8000-00000000000000e2> <1348340857776> <BEA-090485> <CERTIFICATE_UNKNOWN alert was received from localhost.localdomain - 127.0.0.1. The peer has an unspecified issue with the certificate. SSL debug tracing should be enabled on the peer to determine what the issue is.>

####<Sep 22, 2012 2:07:37 PM CDT> <Warning> <Security> <rhel55> <AdminServer> <[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <11d1def534ea1be0:-51f5c76a:139ef5e1e1a:-8000-00000000000000e4> <1348340857786> <BEA-090485> <CERTIFICATE_UNKNOWN alert was received from localhost.localdomain - 127.0.0.1. The peer has an unspecified issue with the certificate. SSL debug tracing should be enabled on the peer to determine what the issue is.>
####<Sep 22, 2012 2:27:21 PM CDT> <Warning> <Security> <rhel55> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <11d1def534ea1be0:-51f5c76a:139ef5e1e1a:-8000-0000000000000124> <1348342041926> <BEA-090497> <HANDSHAKE_FAILURE alert received from localhost - 127.0.0.1. Check both sides of the SSL configuration for mismatches in supported ciphers, supported protocol versions, trusted CAs, and hostname verification settings.>

参考資料

  1. Oracle® Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite 11g Release 1 (11.1.1.6.3)
    Configuring SSL
    http://docs.oracle.com/cd/E23943_01/admin.1111/e10226/soacompapp_secure.htm#CHDCFABB
  2. Oracle® Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド 11g リリース1 (11.1.1.6.0)
  3. SSLの構成 http://docs.oracle.com/cd/E28389_01/admin.1111/b55916/soacompapp_secure.htm#CHDCFABB
  4. Oracle® Fusion Middleware Securing Oracle WebLogic Server 11g Release 1 (10.3.6)
    Configuring SSL http://docs.oracle.com/cd/E23943_01/web.1111/e13707/ssl.htm#i1200848
  5. Oracle® Fusion Middleware Oracle WebLogic Serverの保護 11g リリース1(10.3.6)
    SSLの構成
    http://docs.oracle.com/cd/E28389_01/web.1111/b61617/ssl.htm#i1200848

[Java] Android Layout Preview for NetBeans IDE

原文はこちら。
https://blogs.oracle.com/geertjan/entry/android_layout_preview_for_netbeans

多くの場合、EclopseにはNetBeans IDEに比べてプラグインが多い理由は、Eclipseが標準で備えている機能が少ないからです。例えば、標準でサポートしている機能のおかげで、NetBeans IDEにはMavenプラグインもJava EEプラグインも不要なのです。これらはEclipseでは最も人気のあるプラグインの2つなのですがね。
とはいえ、NetBeans IDEが備えていると素晴らしいと思うのは、Androidのサポートでしょう。コミュニティ主導のNBAndroidプロジェクトのおかげで、この機能はしばらくの間ありましたが、しかしながら待望のGUI機能はありませんでした。
NBAndroid
http://www.nbandroid.org/
Progress on layout preview
http://www.nbandroid.org/2012/10/progress-on-layout-preview.html
本日、プロジェクトが大きく前進したとの発表がありました。つまり、レイアウトプレビューに関する速報です。

このプロジェクトでより多くのGUI機能が出てくるのを楽しみにしています。

[Java] JavaOne 2012 - Java Generics

原文はこちら。
https://blogs.oracle.com/thejavatutorials/entry/javaone_2012_java_generics

JavaOne 2012で、Agile Developer, Inc.のVenkat Subramaniamが「The Good, The Bad, and the Ugly of Java Generics」と題したセッションを実施しました。Subramaniam博士はgenericsの利用方法や、genericsやベストプラクティス使用時に注意すべきことを説明しました。
genericsの利用の詳細は、JavaチュートリアルのGenerics trailがお役にたちます。
Lesson: Generics (Updated)
http://docs.oracle.com/javase/tutorial/java/generics/
このチュートリアルは最近拡張されて以下のトピックを含むようになりました。
セッションカタログページから、プレゼンテーションをご覧頂けます。
CON3468 - The Good, Bad, and Ugly of Java Generics
https://oracleus.activeevents.com/connect/sessionDetail.ww?SESSION_ID=3468 
[訳注]現時点では動画のみです。スライドはUpされていません。

[Database] SAP Applications Run Better on Oracle Exadata

原文はこちら。
https://blogs.oracle.com/databaseinsider/entry/sap_applications_run_better_on

必要な結果を得て競争力を維持するには、ビジネスに不可欠なアプリケーションが、最も信頼性が高く最新の情報にアクセスできる必要があります。これが、より優れた生産性、そして大きな節約をするためにOracle Exadata Database Machineに切り替えるSAPアプリケーションのお客様が増えている理由です。
最新のオンデマンドWebcastをご覧頂くと、SAPアプリケーションを実行する上で、Oracle Exadataが理想的なプラットフォームである理由を知って頂けると共に、次のことも知って頂けます。
  • SAPアプリケーションの性能が向上すること
  • 集中化されたスケーラブルなプラットフォームで信頼性が向上すること
  • 素早く安全にかつ簡単に展開できること
以下のリンクで、顧客事例や実践的な展開戦略を含んだハイライトををご覧頂けます。
SAP Applications Run Better on Oracle Exadata
http://www.oracle.com/go/?&Src=7629307&Act=133&pcode=WWMK12054306MPP006

[Support] 『オラクル ナレッジ活用ガイド』が、さらに読みやすく、そして親しみやすくなりました!

原文はこちら。
https://blogs.oracle.com/supportjp/entry/オラクル_ナレッジ活用ガイド_が_さらに読みやすく_そして親しみやすくなりました

『オラクル ナレッジ活用ガイド』が読みやすくなって再公開されたそうです。原文は日本語ですので、是非原文を当たって下さい。

[Java] JavaOne Content on Video

原文はこちら。
https://blogs.oracle.com/javaone/entry/javaone_highlights_videos

JavaOneのコンテンツは3つのサイズの動画でご覧頂けます。一口飲むのか、ゴクリと飲むのか、それとも消防署に行くのかによって選んで下さい。

Tall(キーノートハイライト)

YouTubeのJavaチャネルに、JavaOne Playlistがあります。ここでJavaOneのキーノートのハイライトをご覧頂けます。
JavaOne Playlist (YouTube)
http://www.youtube.com/playlist?list=PLB6F4FF1E19BD80FE&feature=plcp

Grande(全てのキーノート)

Oracle Media NetworkのJavaOne 2012チャネルで、キーノートの録画(完全版)をご覧頂けます。
Community Keynoteの動画はまもなくUpされる予定です。
2012 JavaOne - See Highlights of 2012 JavaOne
http://medianetwork.oracle.com/media/channels/2012-javaone/1866721757001

Venti(セッション、BOF、Tutorialの全て)

各セッションの音声とスライドをご覧になるには、JavaOneコンテンツカタログからご覧になりたいセッションを選択して下さい(JavaOneホームページ>Programs>Content Catalog)。動画がご利用頂ける場合は、右の列に"Media"があります。"Presentation Download"からスライドをダウンロードして下さい。セッションのコンテンツはまもなくご利用頂けるようになりますので、しばしお待ち下さい。
JavaOne San Francisco 2012 コンテンツカタログ
https://oracleus.activeevents.com/connect/search.ww?event=javaone