ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server WebLogic Webサービスの紹介
11g リリース1 (10.3.6)
B61646-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

3 Microsoft WCF/.NETとの相互運用性

この章では、WebLogic Webサービスが、Microsoft Windows Communication Foundation (WCF)/.NET 3.0、3.5、および4.0 Frameworkを使用して作成されたWebサービスにアクセスして消費できること(その逆も同様)を確認するため、Microsoft社と協力して実施された相互運用性テストについて説明します。詳細は、http://msdn2.microsoft.com/en-us/netframework/default.aspxを参照してください。

表3-1では、JAX-WSおよびJAX-RPC Webサービスを使用して実施した相互運用性テストを説明します。

表3-1 実施した相互運用性テスト

領域 相互運用性ガイドライン

基本データ型と複合データ型

基本データ型の相互運用性ガイドライン


WS-I Basic Profile 2.0、1.2、および1.1

Basic Profileの相互運用性ガイドライン

注意: WS-I Basic Profile 2.0および1.2は、JAX-WSにのみ適用されます。WS-I Basic Profile 1.1は、JAX-WSおよびJAX-RPC Webサービスの両方に適用されます。

Web Services Reliable Secure Profile (WS-RSP) 1.0

Web Services Reliable Secure Profileの相互運用性ガイドライン


Web Services Security (WS-Security) 1.0および1.1

WS-Securityの相互運用性ガイドライン


Web Services Security Policy (WS-SecurityPolicy) 1.2

WS-SecurityPolicyの相互運用性ガイドライン


Web Services Secure Conversation Language (WS-SecureConversation) 1.3

WS-SecureConversationの相互運用性ガイドライン


Web Services Policy Framework (WS-Policy) 1.5

相互運用性の制約はありません。

Web Services Addressing (WS-Addressing) 0.9および1.0

なし

MTOM (メッセージ転送最適化メカニズム)

なし

SAMLアサーション

SignedInfoから参照するSAMLアサーションの使用



さらに、以下の機能の組合せもテストされました:

以下の節では、テストにおいて特定された相互運用上の問題とガイドラインについて説明します。

基本データ型の相互運用性ガイドライン

Microsoft .NET 3.0/3.5でanyTypeクラスを使用している場合、どのJavaデータ型が返されるかは保証されません。特定のJavaデータ型を戻す必要がある場合は、anyTypeを使用しないようにしてください。

Basic Profileの相互運用性ガイドライン

WS-I Basic Profile 1.2および2.0のプロファイルは、WebLogic WebサービスJAX-WSおよびMicrosoft .NET 4.0 Frameworkとの間でテストされました。相互運用性の制約はありませんでした。

WS-I Basic Profile 1.1は、WLS JAX-RPCおよびMicrosoft .NET 3.0/3.5 Frameworkとの間でテストされました。このテストによって、次のJava Webサイトに記載されているユース・ケースに対して、Microsoft .NET 3.0/3.5が文字列のBasic Profile 1.1セマンティクスを強制しないことが判明しました: http://docs.oracle.com/cd/E17802_01/webservices/webservices/reference/tutorials/wsit/doc/DataBinding7.html

Web Services Reliable Secure Profileの相互運用性ガイドライン

WebLogic WebサービスおよびMicrosoft .NET WebのWeb Services Reliable Secure Profile実装は、次の警告を表示しますが、互換性があります。

WS-Securityの相互運用性ガイドライン

以下に、WS-Securityの相互運用性ガイドラインを示します。

WS-SecurityPolicyの相互運用性ガイドライン

このリリースでは、WebLogic ServerおよびMicrosoft .NET 3.5はWeb Services Security Policy (WS-SecurityPolicy) 1.2をサポートします。Microsoft .NET 3.0では、SecurityPolicy仕様の2005年12月のドラフト・バージョンがサポートされています。

2005年12月のドラフト・バージョンでは、<sp:SignedEncryptedSupportingTokens>ポリシー・アサーションがサポートされていません。そのため、Microsoft .NET 3.0では、UsernameToken<sp:SignedSupportingTokens>ポリシー・アサーションで暗号化します。UsernameTokenを暗号化せずに<sp:SignedSupportingTokens>ポリシー・アサーションを使用する場合、WebLogic ServerとMicrosoft .NET Web Servicesは相互運用できません。

WS-SecureConversationの相互運用性ガイドライン

以下に、WS-SecureConversationの相互運用性ガイドラインを示します。

SignedInfoから参照するSAMLアサーションの使用

SAMLアサーションが<wsee:Security>ヘッダーの<ds:Signature>要素の<ds:SignedInfo>要素で参照される場合、Microsoft .NETでは、<wsse:SecurityTokenReference>から参照されるSAMLアサーションをサポートしません。<wsse:SecurityTokenReference>の使用は、http://www.oasis-open.org/committees/download.php/16768/wss-v1.1-spec-os-SAMLTokenProfile.pdfで説明されているWS-Security仕様でのベスト・プラクティスとして定義されます。

Microsoft .NETとの互換性を確保するには、Webサービス・クライアント・コードで、WLStub.POLICY_COMPATIBILITY_PREFERENCEフラグをWLStub.POLICY_COMPATIBILITY_MSFTフラグに設定する必要があります。フラグを設定すると、SAMLアサーションは、SecurityTokenReferenceを使用せず、直接参照で署名されます。

次に、JAX-WS Webサービス・クライアントに対するMicrosoft .NET互換性フラグの設定方法の例を示します。

例3-1 JAX-WS Webサービス・クライアントでのMicrosoft .NET互換性フラグの設定

. . .
import weblogic.wsee.jaxrpc.WLStub;
. . .
public String test(String hello) throws Exception { 
     . . .
    BindingProvider provider = (BindingProvider)port; 
    Map context = provider.getRequestContext(); 
     . . .
     . . .
    context.put(WLStub.POLICY_COMPATIBILITY_PREFERENCE, WLStub.POLICY_COMPATIBILITY_MSFT); 
    try { 
       String result = port.getName(hello); 
       System.out.println("MSFT Result was: " + result);
       return result; 
      } catch (Exception e) {             
        throw new RuntimeException (e); 
      } 
}

次に、JAX-RPC Webサービス・クライアントに対するMicrosoft .NET互換性フラグの設定方法の例を示します。

例3-2 JAX-RPC Webサービス・クライアントでのMicrosoft .NET互換性フラグの設定

. . .
. . .
import weblogic.wsee.jaxrpc.WLStub;
. . .
 
@WebMethod() 
public String callSamlHelloSV_WSS10_MSFT(String input) { 
     try { 
         System.out.println("Calling sayHello(" + input + ") with MSFT Ways");    
         ((Stub)port)._setProperty(WLStub.POLICY_COMPATIBILITY_PREFERENCE,
                       WLStub.POLICY_COMPATIBILITY_MSFT); 
         String result = port.sayHelloSV_WSS10(input); 
         System.out.println("MSFT Result was: " + result); 
         return result; 
     } 
     catch (RemoteException e) { 
         throw new RuntimeException(e); 
     } 
}