移植可能なデータ型 (.NET および Java キャッシュ)
異種アプリケーション間でデータを共有するには、ほとんどのメッセージング ソリューションでは、自己記述的なメッセージ テキストに基づいてアプリケーションを構築する必要があります。受信アプリケーションのコーディングでデータをデコードできるように、データの形式を使用するのはアプリケーションの責任になります。 XML データ形式を使用すると、パフォーマンスの問題が発生します。
さらに、複数のパブリッシャーが存在する同時実行性の高いアプリケーション環境では、競合状態が発生してデータの整合性に関する問題が発生する可能性が高くなります。メッセージング システムには、プロセス制御メッセージや複数の宛先のメッセージング (キューまたはトピック) 機能へのメッセージの間に固有の関係はありません。
実際、ほとんどのメッセージング ソリューションは、複数のプロトコル、メッセージの信頼性などの柔軟性をサポートするように設計されています。しかし、Java とデータを共有したい .NET などの対抗アプリケーションに関しては、行動を起こす前に、メッセージのエンコード、デコード、テキスト メッセージの配信設定、メッセージの相関関係、およびデータベース関連の背景情報をベースにしたペイロードの解釈やヘビー ヘッドを構築できます。
.NET および Java キャッシュにおけるデータ型の移植性
NCache の機能が付属しています データ型の移植性 コンパクトなシリアル化を利用してトラフィックとデータ サイズを削減することでパフォーマンスを向上させるバイナリ プロトコルを使用して、キャッシュを介して異種アプリケーションを実現します。この機能を説明するために、ID、名前、数量、カテゴリなどの属性を持つ製品エンティティの例を取り上げます。
データ型の移植性 この機能により、.NET クライアント アプリケーションは、Java クライアント アプリケーションによって挿入されたキャッシュから Product クラスのオブジェクトをフェッチし、.NET Product クラスに正常に逆シリアル化することができ、またその逆も可能になります。
管理ツールから両方の Product クラスを共有タイプとして設定するだけで済みます。 NCache クラスの 1 つ以上の属性を、プラットフォーム全体で共有したい他の属性にマップすると、マップされていない属性には、相手側で受信されるときにデフォルト値が含まれます。実行時データ共有を設定するには、 NCache 管理センター、参照 ポータブルデータ共有のためのクラスの登録 セクションに NCache 管理者ガイド。
クラス属性マッピング
クラス属性マッピング | |
---|---|
製品クラス(C#) | 製品クラス(java) |
Id | _id |
名 | _名前 |
ブランド | _価格 |
量 | |
_カテゴリー |
上記の表では、クラスの属性が相互にマッピングされています。数量とカテゴリはターゲット クラスにマッピング属性がないため、マッピングされないままになります。
Note
クエリインデックス クエリ インデックス リストに追加された場合、共有データ型間でも共有されます。
データ共有
データ共有は、両方を使用しているすべてのクライアントにとって素晴らしい機能です。 NCache .NETおよび NCache Java エディションですが、以下に示すいくつかの制限があります。
カスタムジェネリック型がサポートされるようになりましたが、ジェネリック型を共有することはできません。
複数のバージョンがある場合、ユーザーはリードスルー/ライトスルーおよびキャッシュローダーのデフォルトのバージョンを定義する必要があります。
Data Sharing に登録されたオブジェクトは、同時に Compact Serialization にも登録する必要があります。
.NET / Javaクラスをシリアル化するときは、次のマッピングを考慮する必要があります。