JP2020017288A - System and method for providing distributed caching in transactional processing environment - Google Patents

System and method for providing distributed caching in transactional processing environment Download PDF

Info

Publication number
JP2020017288A
JP2020017288A JP2019158649A JP2019158649A JP2020017288A JP 2020017288 A JP2020017288 A JP 2020017288A JP 2019158649 A JP2019158649 A JP 2019158649A JP 2019158649 A JP2019158649 A JP 2019158649A JP 2020017288 A JP2020017288 A JP 2020017288A
Authority
JP
Japan
Prior art keywords
caching
cache
data
distributed
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019158649A
Other languages
Japanese (ja)
Other versions
JP6902580B2 (en
Inventor
シェン,シュガン
Xugang Shen
リトル,トッド
Little Todd
ジン,ジム・ヨンシュン
Yongshun Jin Jim
ホウ,ジェシー
Hou Jesse
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2017558432A external-priority patent/JP6613320B2/en
Application filed by Oracle International Corp filed Critical Oracle International Corp
Priority to JP2019158649A priority Critical patent/JP6902580B2/en
Publication of JP2020017288A publication Critical patent/JP2020017288A/en
Application granted granted Critical
Publication of JP6902580B2 publication Critical patent/JP6902580B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

To provide a system and method for providing distributed caching in a transactional processing environment.SOLUTION: A caching system disclosed herein includes a plurality of layers that provide a feature for a plurality of data types, and is configured for use with a plurality of caching providers. A common data structure stores serialized bytes of each data type and architecture information of a source platform executing a cache-setting application, and a cache-getting application can convert the serialized bytes to a local format. A proxy server acts as a client to a distributed in-memory grid, and advertises services to a caching client. Each of the advertised services matches a cache in the distributed in-memory data grid.SELECTED DRAWING: Figure 1

Description

発明の分野:
本発明の実施形態は、概して、アプリケーションサーバおよびクラウド環境に関し、特に、トランザクション処理環境において分散型キャッシングを提供するためのシステムおよび方法に関する。
Field of the Invention:
Embodiments of the present invention relate generally to application servers and cloud environments, and more particularly, to systems and methods for providing distributed caching in a transaction processing environment.

背景:
Tuxedo(登録商標)サーバ環境などのトランザクション処理環境においては、性能を向上させるためのユーザ関連データまたはアプリケーションデータをキャッシュする分散型キャッシングシステムは難易度の高いものになる可能性がある。なぜなら、クライアントプロセスとサーバプロセスとの間でデータを送信するのに複数のデータタイプを用いることができ、このため、さまざまな顧客が別々のキャッシングソリューションを選ぶ可能性があるからである。これらは、本発明の実施形態が対処するように意図される分野である。
background:
In a transaction processing environment such as a Tuxedo (registered trademark) server environment, a distributed caching system that caches user-related data or application data to improve performance may be difficult. Because multiple data types can be used to send data between client and server processes, different customers may choose different caching solutions. These are areas that embodiments of the present invention are intended to address.

概要:
一実施形態に従うと、トランザクション処理環境において分散型キャッシングを提供するためのシステムおよび方法がこの明細書中に記載される。最上層は、キャッシングシステムと対話するためにクライアントをキャッシュすることによってアプリケーションプログラミングインターフェイス(application programming interface:API)をエクス
ポーズして使用できるようにすることができ、複数のバッファタイプと、各バッファタイプに対する1つ以上のコールバック機能とを登録することができる。共通のキャッシング層は共通のデータ構造をサポートすることができ、最上層からキャッシング要求を受取ったとき、そこにあるコールバック機能を用いて、キャッシング要求に関連付けられた特定のバッファタイプと共通のデータ構造との間で変換を行なうことができる。共通のキャッシング層は、キャッシング関連のAPIを提供するために1組の共通のAPIを定義することができるとともに、キーおよび値データのシリアライゼーション/デシリアライゼーションなどの複数のインプリメンテーションについての共通の挙動を定義することができる。プロバイダスイッチおよび関連するAPIを用いて、インプリメンテーション層からプロバイダスイッチの特定のインプリメンテーションをロードすることができる。プロバイダスイッチは、特定のキャッシングプロバイダによって提供されるキャッシング動作を指し示すポインタを含み得る。構成ファイルは、データコーディングと、キャッシングシステムのためにどのキャッシングプロバイダを使用するべきかとを指定するのに用いることができる。
Overview:
According to one embodiment, systems and methods for providing distributed caching in a transaction processing environment are described herein. The top layer can expose and use an application programming interface (API) by caching the client to interact with the caching system, including multiple buffer types and each buffer type. One or more callback functions can be registered. The common caching layer can support a common data structure, and when a caching request is received from the top layer, the callback function there is used to use the specific buffer type associated with the caching request and the common data. Conversions can be made to and from the structure. The common caching layer can define a set of common APIs to provide caching-related APIs and common behavior for multiple implementations such as key and value data serialization / deserialization. Can be defined. The provider switch and associated API can be used to load a particular implementation of the provider switch from the implementation layer. The provider switch may include a pointer to a caching operation provided by a particular caching provider. The configuration file can be used to specify data coding and which caching provider to use for the caching system.

一実施形態に従うと、分散型キャッシングシステムによって使用されるデータシリアライゼーションをサポートするためのシステムおよび方法がこの明細書中に記載される。データシリアライゼーションシステムは共通のデータ構造を含み得る。共通のデータ構造は、複数のデータタイプのシリアライズされたストリーム/バイトを格納するために用いることができる。データ構造は、キャッシュセッターのアーキテクチャを記述する情報を含むヘッダを含み得る。異なるアーキテクチャ上で使用するために、キャッシュされたデータを検索する場合、ヘッダ内のアーキテクチャ情報を用いて、データを、その異なるアーキテクチャ上で使用できるように変換することができる。キャッシュされたデータが同じ
アーキテクチャ上で検索される場合、キャッシュされたデータを変換することなく用いることができる。データ構造は、付加的に、メモリを効率的に使用できるようにするために可変長をもつボディ、後方互換性についてのバージョン情報、および、拡張用のオプション特徴のためのフィールドを含み得る。
According to one embodiment, systems and methods for supporting data serialization used by a distributed caching system are described herein. Data serialization systems may include common data structures. A common data structure can be used to store serialized streams / bytes of multiple data types. The data structure may include a header containing information describing the architecture of the cache setter. When retrieving cached data for use on a different architecture, the architecture information in the header can be used to transform the data for use on that different architecture. If the cached data is retrieved on the same architecture, the cached data can be used without conversion. The data structure may additionally include fields for variable length bodies to allow efficient use of memory, version information for backward compatibility, and optional features for extensions.

一実施形態に従うと、分散型インメモリ・データグリッド(たとえば、Coherence)を
、キャッシングプロバイダとしての分散型キャッシングシステムに統合するためのシステムおよび方法がこの明細書中に記載される。分散型キャッシングシステムにおけるプロキシサーバは、分散型インメモリ・データグリッドに対するクライアントとしての役割を果たし得るとともに、IDCクライアントから転送されたキャッシング要求を受取り得る。起動時に、プロキシサーバは、キャッシング・システム・キャッシュを定義する構成ファイルと、分散型インメモリ・データグリッドキャッシュにキャッシュするマップとをロードし、キャッシング・システム・キャッシュの名前を用いてサービスをアドバタイズすることができる。要求されたサービスを指定するキャッシング要求をキャッシング・クライアントから受取ると、プロキシサーバは、要求されたサービスに基づいてアクセスするために、分散型インメモリ・データグリッドにおける対応するキャッシュを決定することができる。
According to one embodiment, systems and methods are described herein for integrating a distributed in-memory data grid (eg, Coherence) into a distributed caching system as a caching provider. A proxy server in a distributed caching system may serve as a client to the distributed in-memory data grid and may receive caching requests forwarded from IDC clients. At startup, the proxy server loads a configuration file that defines the caching system cache, maps it to cache in the distributed in-memory data grid cache, and advertises services using the name of the caching system cache. be able to. Upon receiving a caching request from a caching client specifying the requested service, the proxy server may determine a corresponding cache in the distributed in-memory data grid to access based on the requested service. .

一実施形態に従うと、トランザクション処理環境において分散型キャッシングシステムを用いて、サービスから戻された結果をキャッシュするためのシステムおよび方法がこの明細書中に記載される。構成ファイルは、サービスから戻された結果をキャッシュするのにどのキャッシュを用いるべきかと、キャッシュされた結果を識別する際に使用されるキーを如何に生成するかとを記述するエントリを含むキャッシングセクションを含み得る。サービスについての要求がクライアントから受取られると、トランザクション処理環境のアプリケーションサーバコアは、関連するキャッシュされたデータが、構成ファイルを用いて生成されたキーによって識別されるキャッシュに存在しているかどうかを判断することができる。存在している場合、アプリケーションサーバコアは、サービスを呼出す代わりに、キャッシュされたデータを直接戻すことができる。他の場合、アプリケーションサーバコアは、サービスを呼出し、生成されたキーを用いて、構成ファイルによって指定されたキャッシュにデータをキャッシュし、クライアントに結果を戻すことができる。   According to one embodiment, systems and methods are described herein for caching results returned from a service using a distributed caching system in a transaction processing environment. The configuration file contains a caching section containing entries that describe which cache to use to cache the results returned from the service and how to generate the keys used to identify the cached results. May be included. When a request for a service is received from a client, the application server core of the transaction processing environment determines whether the associated cached data is present in the cache identified by the key generated using the configuration file. can do. If so, the application server core can return the cached data directly instead of invoking the service. In other cases, the application server core may invoke the service, use the generated key to cache data in the cache specified by the configuration file, and return the result to the client.

一実施形態に従った、トランザクション処理環境における分散型キャッシングを提供するためのシステムを示す図である。FIG. 2 illustrates a system for providing distributed caching in a transaction processing environment, according to one embodiment. 一実施形態に従った、トランザクション処理環境において使用される分散型キャッシングを提供するためのシステムをさらに示す図である。FIG. 3 further illustrates a system for providing distributed caching used in a transaction processing environment, according to one embodiment. 一実施形態に従った、キャッシングAPIを示す詳細なクラス図である。FIG. 4 is a detailed class diagram illustrating a caching API, according to one embodiment. 一実施形態に従った、トランザクション処理環境において使用される分散型キャッシングを提供するための方法を示す図である。FIG. 4 illustrates a method for providing distributed caching used in a transaction processing environment, according to one embodiment. 一実施形態に従った例示的な型付きバッファを示す図である。FIG. 4 illustrates an exemplary typed buffer according to one embodiment. 一実施形態に従った、分散型キャッシングシステムによって使用されるデータシリアライゼーションをサポートするためのシステムを示す図である。FIG. 2 illustrates a system for supporting data serialization used by a distributed caching system, according to one embodiment. 一実施形態に従った、分散型キャッシングシステムによって使用されるデータシリアライゼーションをサポートするための方法を示す図である。FIG. 4 illustrates a method for supporting data serialization used by a distributed caching system, according to one embodiment. 一実施形態に従った、キャッシングプロバイダとしての分散型キャッシングシステムに分散型インメモリ・データグリッドを統合するためのシステムを示す図である。FIG. 2 illustrates a system for integrating a distributed in-memory data grid with a distributed caching system as a caching provider, according to one embodiment. 一実施形態に従った、キャッシングプロバイダとしての分散型キャッシングシステムに分散型インメモリ・データグリッドを統合するためのシステムをさらに示す図である。FIG. 2 further illustrates a system for integrating a distributed in-memory data grid with a distributed caching system as a caching provider, according to one embodiment. 一実施形態に従った、キャッシングプロバイダとしての分散型キャッシングシステムに分散型インメモリ・データグリッドを統合するための方法を示す図である。FIG. 4 illustrates a method for integrating a distributed in-memory data grid with a distributed caching system as a caching provider, according to one embodiment. 一実施形態に従った、トランザクション処理環境において分散型キャッシングシステムを用いて、サービスから戻された結果をキャッシュするためのシステムを示す図である。FIG. 4 illustrates a system for caching results returned from a service using a distributed caching system in a transaction processing environment, according to one embodiment. 一実施形態に従った、トランザクション処理環境において分散型キャッシングシステムを用いて、サービスから戻された結果をキャッシュするための方法を示す図である。FIG. 4 illustrates a method for caching results returned from a service using a distributed caching system in a transaction processing environment, according to one embodiment.

詳細な説明:
トランザクション処理環境(たとえば、Tuxedoサーバ環境)においては、メッセージが1つのプロセスから別のプロセスに送信可能になる前にバッファが割当てられる必要がある。このような環境における複雑なアプリケーションは、さまざまなプロトコルを用いて複数のネットワークを介して通信する異種システムにインストールすることができる。そのため、異なるタイプのバッファが必要となり、各々のバッファタイプは、メッセージを初期化し、送信し、受信し、かつデータを符号化し、復号化するためのさまざまなルーチンを必要とする。
Detailed description:
In a transaction processing environment (eg, a Tuxedo server environment), buffers need to be allocated before a message can be sent from one process to another. Complex applications in such an environment can be installed in heterogeneous systems that communicate over multiple networks using various protocols. As a result, different types of buffers are required, and each buffer type requires various routines to initialize, send, receive, and encode and decode data.

典型的には、ユーザ(たとえば、アプリケーション開発者)が性能向上のために分散型キャッシングシステムに型付きバッファをキャッシュする場合、ユーザは、特定の型付きバッファ用にカスタマイズされたコードを書込む必要がある。さらに、アプリケーションの開発が完成した後に異なるキャッシングプロバイダが用いられる場合、キャッシングプロバイダの変更に対応するために、コードを付加的に変更する必要がある。   Typically, when a user (e.g., an application developer) caches a typed buffer in a distributed caching system for improved performance, the user must write customized code for the particular typed buffer. There is. Furthermore, if a different caching provider is used after the development of the application is completed, the code needs to be additionally changed to accommodate the change in the caching provider.

分散型キャッシングシステム
一実施形態に従うと、トランザクション処理環境において分散型キャッシングを提供するためのシステムおよび方法がこの明細書中に記載される。最上層は、キャッシングシステムと対話させるためにクライアントをキャッシュすることによってアプリケーションプログラミングインターフェイス(API)をエクスポーズして使用できるようにすることができ、複数のバッファタイプと、各バッファタイプに対する1つ以上のコールバック機能とを登録することができる。共通のキャッシング層は、共通のデータ構造をサポートすることができ、最上層からキャッシング要求を受取ると、そこにあるコールバック機能を用いて、キャッシング要求に関連付けられた特定のバッファタイプと共通のデータ構造との間で変換を行なうことができる。共通のキャッシング層は、キャッシング関連のAPIを提供するために1組の共通のAPIを定義し、キーおよび値データのシリアライゼーション/デシリアライゼーションなどの複数のインプリメンテーションについての共通の挙動を定義することができる。プロバイダスイッチおよび関連するAPIを用いて、インプリメンテーション層からプロバイダスイッチの特定のインプリメンテーションをロードすることができる。プロバイダスイッチは、特定のキャッシングプロバイダによって提供されるキャッシング動作を指し示すポインタを含み得る。構成ファイルは、データコーディングと、キャッシングシステムのためにどのキャッシングプロバイダを使用するべきかとを指定するのに用いることができる。
Distributed Caching System According to one embodiment, systems and methods for providing distributed caching in a transaction processing environment are described herein. The top layer can expose and use an application programming interface (API) by caching the client to interact with the caching system, with multiple buffer types and one or more for each buffer type. You can register a callback function. The common caching layer can support a common data structure, and upon receiving a caching request from the top layer, uses a callback function there to share the common data type with the specific buffer type associated with the caching request. Conversions can be made to and from the structure. The common caching layer defines a set of common APIs to provide caching-related APIs and defines common behavior for multiple implementations, such as key / value data serialization / deserialization. Can be. The provider switch and associated API can be used to load a particular implementation of the provider switch from the implementation layer. The provider switch may include a pointer to a caching operation provided by a particular caching provider. The configuration file can be used to specify data coding and which caching provider to use for the caching system.

階層化されたキャッシングシステムは、ユーザと下層のキャッシングプロバイダとの間を分離させることができ、これにより、システムが使いやすくなり、その拡張が容易になる。   A tiered caching system can separate users from underlying caching providers, thereby making the system easier to use and easier to extend.

たとえば、キャッシングシステムは、複数のキャッシングプロバイダとともに用いることができ、ユーザのアプリケーションを変更する必要なしに、複数のデータタイプをキャ
ッシュすることができる。開発者がどんなバッファタイプをキャッシュする必要があるかどうかにかかわらず、かつ、そのキャッシングシステムのためにどのキャッシングプロバイダが構成されるべきであるかにかかわらず、ユーザは、同じセットのAPIを用いてキャッシング動作を実行することができる。
For example, a caching system can be used with multiple caching providers and can cache multiple data types without having to change the user's application. Regardless of what buffer types the developer needs to cache, and regardless of which caching providers are to be configured for that caching system, users use the same set of APIs. To perform a caching operation.

一実施形態に従うと、分散型キャッシングシステムは、アクセス回数および更新回数を減らすことができ、各々がキーによって識別されている複数のタイプのバッファをキャッシュすることができ、複製アクセス、非複製アクセス、ローカルアクセスおよびリモートアクセスを提供することができる。   According to one embodiment, a distributed caching system can reduce the number of accesses and updates, cache multiple types of buffers, each identified by a key, replicated access, non-replicated access, Local and remote access can be provided.

図1は、一実施形態に従った、トランザクション処理環境において使用される分散型キャッシングを提供するためのシステムを示す。   FIG. 1 illustrates a system for providing distributed caching used in a transaction processing environment, according to one embodiment.

図1に示されるように、分散型キャッシングシステム105は、キャッシュにデータを格納する(106)かまたはキャッシュからデータを検索する(107)ために、キャッシング・クライアント(たとえば、Tuxedoクライアントまたはサーバ)101によって使用されるトランザクション処理システム(たとえば、Tuxedoサーバ環境)100において、提供され得る。   As shown in FIG. 1, the distributed caching system 105 includes a caching client (eg, a Tuxedo client or server) 101 for storing (106) data in or retrieving (107) data from the cache. In a transaction processing system (e.g., Tuxedo server environment) 100 that is used by Microsoft.

図1においてさらに示されるように、分散型キャッシングシステムは、複数の層、たとえば、バッファベースの分散型キャッシング(buffer-based distributed caching:BDC)層109、共通の分散型キャッシング(common distributed caching:CDC)層125、分散型キャッシングのインプリメンテーション(implementation of distributed caching:IDC)層141、および、従属型サードパーティベンダー(dependent third-party vendor:DTV)層149を含み得る。構成ファイル103は、BDC層、CD
C層およびIDC層の挙動を定義するために用いることができる。
As further shown in FIG. 1, the distributed caching system comprises a plurality of layers, for example, a buffer-based distributed caching (BDC) layer 109, a common distributed caching (CDC). ) Layer 125, an implementation of distributed caching (IDC) layer 141, and a dependent third-party vendor (DTV) layer 149. The configuration file 103 includes a BDC layer, a CD
It can be used to define the behavior of the C and IDC layers.

一実施形態に従うと、BCD層は、キャッシング・クライアントに対する最上層であり、複数の型付きバッファを処理することができ、型付きバッファをCDCによってサポートされる共通の型付きバッファに変換した後、キャッシング・クライアントからCDC層にキャッシング要件を転送することができる。最上層の主要な機能は、さまざまな型付きバッファのシリアライゼーションおよびデシリアライゼーションである。   According to one embodiment, the BCD layer is the top layer for the caching client and can handle multiple typed buffers, and after converting the typed buffers to a common typed buffer supported by the CDC, Caching requirements can be transferred from the caching client to the CDC layer. The main function of the top layer is the serialization and deserialization of various typed buffers.

図1においてさらに示されるように、BDC層は、キャッシングシステムと通信するためにキャッシング・クライアントによって使用される1組の外部API121をエクスポーズすることができる。たとえば、外部APIは、データをキャッシュするかまたはデータをキャッシュから検索するために、アプリケーションにおいて直接用いることができる。   As further shown in FIG. 1, the BDC layer can expose a set of external APIs 121 used by caching clients to communicate with the caching system. For example, an external API can be used directly in an application to cache data or retrieve data from the cache.

以下の表1は、一実施形態に従った外部APIの例示的なインターフェイスのリストを示す。   Table 1 below shows a list of exemplary interfaces of the external API according to one embodiment.

表1に示されるように、一実施形態に従うと、外部APIは、キャッシュに対するハンドルを取得し、キャッシュにバッファを入れ、バッファをキーに関連付け、バッファをキャッシュから削除して検索する際にアプリケーションが使用するべき方法を含み得る。   As shown in Table 1, according to one embodiment, the external API obtains a handle to the cache, puts a buffer in the cache, associates the buffer with a key, and removes and retrieves the buffer from the cache. It may include the method to be used.

たとえば、ユーザは、Tuxedoキャッシュハンドルを得るために方法「tpgetcache」を用いることができる。方法のパラメータ「名」は、取得すべきキャッシュのタイプを指定することができる。方法についての戻された結果は、構造名TCACHEを指し示すポインタであり得る。「tpcacheput/tpcacheget」はデータをキャッシュに入れる/キャ
ッシュから入手するために用いることができる。「tpcacheremove/tpcachemremove/tpcacheremoveall」は、キャッシュからアイテムを削除するために用いることができる。
For example, a user can use the method "tpgetcache" to obtain a Tuxedo cache handle. The method parameter "name" can specify the type of cache to be obtained. The returned result for the method may be a pointer to the structure name TCACHE. "Tpcacheput / tpcacheget" can be used to cache / get data from cache. "Tpcacheremove / tpcachemremove / tpcacheremoveall" can be used to remove items from the cache.

一実施形態に従うと、BDC層は、キャッシングシステムにおいてキャッシュすることができるデータタイプとして複数の型付きバッファ130を登録することができる。たとえば、複数の型付きバッファは、ストリング(一連の文字)、carray(文字配列)、ptr(バッファを指すポインタ)、FML型付きバッファおよびVIEW型バッファを含み得る。他のデータタイプも、それらのデータタイプがBDC層に登録されていれば、キャッシングのためにサポートされ得る。   According to one embodiment, the BDC layer may register multiple typed buffers 130 as data types that can be cached in a caching system. For example, the plurality of typed buffers may include a string (a sequence of characters), a carry (a character array), a ptr (a pointer to a buffer), an FML typed buffer, and a VIEW type buffer. Other data types may be supported for caching if those data types are registered with the BDC layer.

図1に示されるように、各々の登録された型付きバッファは、型付きバッファを記述するメタデータ(たとえば、型付きバッファメタデータ132)と、符号化および暗号化ならびにシリアライゼーションおよびデシリアライゼーションを含むバッファ上での複数の動作を定義する1つ以上のコールバック機能131と、に関連付けることができる。   As shown in FIG. 1, each registered typed buffer includes metadata describing the typed buffer (eg, typed buffer metadata 132), encoding and encryption, and serialization and deserialization. One or more callback functions 131 that define a plurality of actions on the buffer.

一実施形態に従うと、BDC層は、各々の登録されたデータタイプ毎に、メタデータおよびコールバック機能を提供するスイッチ(データ構造)を含み得る。   According to one embodiment, the BDC layer may include switches (data structures) that provide metadata and callback functions for each registered data type.

以下のリスト1は、一実施形態に従った例示的なスイッチを示す。   Listing 1 below shows an exemplary switch according to one embodiment.

リスト1に示されるように、スイッチは、バッファのタイプ、サブタイプおよびサイズ、シリアライゼーション動作「presend」および「presend2」、デシリアライゼーション
動作「postrecv」、ならびに符号化/暗号化動作「encdec」を記述するメタデータを含み得る。
As shown in Listing 1, the switch describes the buffer type, subtype and size, the serialization operations "presend" and "presend2", the deserialization operation "postrecv", and the encoding / encryption operation "encdec". Can include metadata.

一実施形態に従うと、CDC層は、キャッシング関連のAPIを提供するために1組の共通のAPI(たとえば、キャッシングAPI127)を含み得るとともに、名前/キー値ペアを含むデータのシリアライゼーション/デシリアライゼーションなどの複数のインプリメンテーションについての共通の挙動を定義し得る。CDC層は、シリアライゼーション/デシリアライゼーションのインプリメンテーションのためのコールバック登録をサポートすることによって、複数のタイプのデータをシリアライズ/デシリアライズすることができる。   According to one embodiment, the CDC layer may include a set of common APIs (eg, caching API 127) to provide caching-related APIs, and serialization / deserialization of data including name / key-value pairs, etc. May define common behavior for multiple implementations of. The CDC layer can serialize / deserialize multiple types of data by supporting callback registration for serialization / deserialization implementations.

一実施形態に従うと、共通のデータ構造(たとえば、共通の型付きバッファ)133は、キャッシュされるべき型付きバッファのシリアライズされたバイトを格納するために、CDC層によってサポートすることができる。BDC層に登録される登録済みの型付きバッファまたは他のデータタイプの各々は、シリアライズされ、共通のデータ構造に格納され得る。   According to one embodiment, a common data structure (eg, a common typed buffer) 133 may be supported by the CDC layer to store the serialized bytes of the typed buffer to be cached. Each of the registered typed buffers or other data types registered with the BDC layer may be serialized and stored in a common data structure.

一実施形態に従うと、CDC層は実際のキャッシング動作を実行せず、必要なインターフェイスを定義する。これらのインターフェイスは、キャッシング動作の特定のインプリメンテーションに依拠しない。構成に基づいて、これらのインターフェイスの特定のインプリメンテーションは、IDC層から動的にロードすることができる。   According to one embodiment, the CDC layer does not perform the actual caching operation, but defines the required interface. These interfaces do not rely on a specific implementation of the caching operation. Based on the configuration, specific implementations of these interfaces can be dynamically loaded from the IDC layer.

一実施形態に従うと、キャッシングプロバイダスイッチ143および特定の方法はCDC層に提供されて、プロバイダスイッチの特定のインプリメンテーションを検索するのに使用され得る。プロバイダスイッチは、キャッシングプロバイダによって提供されるキャッシング動作を指し示す複数のポインタを含み得る。プロバイダスイッチの各インプリメ
ンテーションのロードは、BDC層からのキャッシング要求に応じて、キャッシングAPIによって開始され得る(128)。以下のリスト2は、一実施形態に従った例示的なプロバイダスイッチを示す。
According to one embodiment, the caching provider switch 143 and a particular method may be provided to the CDC layer and used to search for a particular implementation of the provider switch. The provider switch may include a plurality of pointers to caching operations provided by the caching provider. Loading of each implementation of the provider switch may be initiated by the caching API in response to a caching request from the BDC layer (128). Listing 2 below shows an exemplary provider switch according to one embodiment.

リスト2に示されるように、プロバイダスイッチは、「入れる(put)」、「入手する
(get)」および「削除する(remove)」などのキャッシング動作を示すポインタを含み
得る。方法「TMTDCGetCachingProviderSW」は、構成ファイルによって定義されるように、キャッシングインターフェイスの特定のインプリメンテーションを検索するために用いられる特定の方法である。
As shown in Listing 2, the provider switch may include pointers to caching operations such as "put,""get," and "remove." The method "TMDDCGetCachingProviderSW" is a specific method used to search for a specific implementation of a caching interface, as defined by a configuration file.

再び図1を参照すると、IDC層は、実際のキャッシング動作を提供することができ、各キャッシングプロバイダ毎にクライアントおよびサーバを含み得る。上述のとおり、各々のクライアントは、プロバイダスイッチのインプリメンテーションであってもよく、CDC層によって使用されるべく提供することができる。クライアントは、1つ以上のダイナミックライブラリによって提供することができ、このため、クライアントの各々を動的にCDC層にロードすることができる。サーバは、実際のキャッシングサーバまたはプロバイダとしてサードパーティアプリケーションを用いることができる。各々のキャッシングプロバイダは、それ自体のIDCインプリメンテーションを有することができ、これにより、ユーザが、アプリケーションコード変更のない構成によってIDCインプリメンテーションを変更することが可能となる。   Referring again to FIG. 1, the IDC layer can provide the actual caching behavior and can include clients and servers for each caching provider. As described above, each client may be an implementation of a provider switch and may be provided for use by the CDC layer. Clients can be provided by one or more dynamic libraries so that each of the clients can be dynamically loaded into the CDC layer. The server can use a third party application as an actual caching server or provider. Each caching provider can have its own IDC implementation, which allows the user to change the IDC implementation with a configuration without application code changes.

一実施形態に従うと、DTV層は、複数のサードパーティキャッシングプロバイダ(たとえば、CoherenceおよびCloudStore)を含み得る。   According to one embodiment, the DTV tier may include multiple third-party caching providers (eg, Coherence and CloudStore).

一実施形態に従うと、BDC層およびCDC層は、トランザクション処理環境に対するクライアントアプリケーションとそこにあるサーバ(たとえば、TuxedoクライアントおよびTuxedoサーバ)との両方に存在し得るとともに、IDC層およびDTV層はサーバ上にのみ存在し得る。   According to one embodiment, the BDC and CDC layers may reside in both the client application to the transaction processing environment and the servers therein (eg, Tuxedo clients and Tuxedo servers), and the IDC and DTV layers reside on the server. May only exist.

一実施形態に従うと、構成ファイルは単純な行指向型フォーマットのファイルであり得る。構成ファイルにおけるプロパティは、行の観点から処理することができるため、新しく導入されたプロパティがファイルのローディングプロセスに影響を与えることはない。表2は、構成ファイルにおけるプロパティのサンプルリストを示す。   According to one embodiment, the configuration file may be a file in a simple line-oriented format. Properties in the configuration file can be handled from a line perspective, so newly introduced properties do not affect the file loading process. Table 2 shows a sample list of properties in the configuration file.

一実施形態に従うと、階層化されたキャッシングシステムは、ユーザと下層にあるキャッシングプロバイダとの間を分離し得るとともに、ユーザがシステム上でキャッシング動作を実行するために同じセットのインターフェイスを用いることを可能にし得る。   According to one embodiment, a tiered caching system may provide a separation between a user and an underlying caching provider and use the same set of interfaces for the user to perform caching operations on the system. May be possible.

具体例として、BDC層が型付きバッファをキャッシュするようにとのキャッシング要求をキャッシング・クライアントから受取ると、BDC層は、CDC層にキャッシング要求を転送する(123)ことができ、これにより、型付きバッファをシリアライズするためにBDC層における対応するコールバック機能を呼出す(137)ことができ、シリアライズされたバイトを共通のデータ構造に格納する(138)ことができる。CDC層は、共通セットのインターフェイスを用いて、構成ファイルによって指定される特定のキャッシングプロバイダからキャッシング動作にアクセスして、キャッシング動作を実行することができる。   As a specific example, when the BDC layer receives a caching request from the caching client to cache the typed buffer, the BDC layer can forward the caching request to the CDC layer (123), which allows the type to be cached. A corresponding callback function in the BDC layer can be invoked (137) to serialize the attached buffer, and the serialized bytes can be stored in a common data structure (138). Using a common set of interfaces, the CDC layer can access and perform caching operations from a particular caching provider specified by a configuration file.

図2は、一実施形態に従った、トランザクション処理環境において使用される分散型キャッシングを提供するためのシステムをさらに示す。   FIG. 2 further illustrates a system for providing distributed caching for use in a transaction processing environment, according to one embodiment.

図2に示されるように、CDC層におけるキャッシングAPIはさらに、共通のキャッシングインターフェイスおよび他の共通の挙動、たとえばシリアライゼーションおよびデシリアライゼーションなど、を定義する複数のオブジェクトを含み得る。ユーザにエクスポーズされる外部APIとは異なり、上述のとおり、キャッシングAPIは、キャッシングシステムによって使用されるべく提供される。   As shown in FIG. 2, the caching API in the CDC layer may further include multiple objects that define common caching interfaces and other common behaviors, such as serialization and deserialization. Unlike an external API exposed to the user, as described above, a caching API is provided for use by the caching system.

一実施形態に従うと、キャッシングAPIは、外部APIのユーザによって取得されるキャッシュを表わし得るキャッシュオブジェクト223を含み得る。このキャッシュは、キャッシュ関連の動作をすべて提供することができ、外部APIからキャッシング動作を受取ることができる。キャッシュは、たとえば、構成ファイルの「tdc.cache」プロパテ
ィによって指定されるキャッシュ名によって識別され得る。
According to one embodiment, the caching API may include a cache object 223 that may represent a cache obtained by a user of the external API. This cache can provide all cache-related operations and can receive caching operations from external APIs. The cache may be identified, for example, by the cache name specified by the “tdc.cache” property in the configuration file.

図2に示されるように、キャッシュオブジェクトは、キャッシュキーオブジェクト225およびキャッシュ値オブジェクト227に関連付けることができる。キャッシュキーオブジェクトは、キャッシュのためのキーを生成および検索するための方法を含み得るとともに、キャッシュ値オブジェクトは、シリアライゼーションインターフェイスを含み得る。   As shown in FIG. 2, a cache object can be associated with a cache key object 225 and a cache value object 227. A cache key object may include a method for generating and retrieving keys for a cache, and a cache value object may include a serialization interface.

一実施形態に従うと、キャッシングプロバイダ229は、構成ファイルにおいて、プロパティcache.providerによって指定されるように、プロバイダ名によって識別される1組のキャッシング動作を定義することができる。プロセスレベルコンテキスト(TUXP)において維持されるグローバルなキャッシュプロバイダコンテナ230は、すべてのキャッシングプロバイダを暗黙的に維持することができる。キャッシュマネージャ224は、トランザクション処理環境においてキャッシュを管理するために用いることができる。キャッシュマネージャは、ユーザが直接キャッシュを作成するべき場合に暗黙的に作成することができるものであるが、単一のキャッシングプロバイダに関連付けることができる。キャッシュマネージャが作成されたとき、キャッシングプロバイダが存在していなければ、関連付けられたキャッシングプロバイダを内部に作成することができる。グローバルなキャッシュマネージャコンテナ228は、スレッド内で暗黙的に作成されたマネージャを管理するためにスレッドレベル・コンテキスト(TUXT)において維持することができる。   According to one embodiment, the caching provider 229 can define a set of caching operations identified by the provider name, as specified by the property cache.provider in the configuration file. A global cache provider container 230 maintained in a process level context (TUXP) can implicitly maintain all caching providers. Cache manager 224 can be used to manage the cache in a transaction processing environment. A cache manager can be implicitly created when a user should create a cache directly, but can be associated with a single caching provider. When a cache manager is created, an associated caching provider can be created internally if no caching provider exists. A global cache manager container 228 may be maintained in a thread-level context (TUXT) to manage managers created implicitly within a thread.

図3は、一実施形態に従ったキャッシングAPIの詳細なクラス図を示す。
図4は、一実施形態に従った、トランザクション処理環境において使用される分散型キャッシングを提供するための方法を示す。
FIG. 3 shows a detailed class diagram of the caching API according to one embodiment.
FIG. 4 illustrates a method for providing distributed caching used in a transaction processing environment, according to one embodiment.

図4に示されるように、ステップ411において、分散型キャッシングシステムは、ト
ランザクション処理環境において提供することができる。分散型キャッシングシステムは、キャッシング・クライアントからキャッシング要件を受取るためのBDC層と、共通セットのキャッシングインターフェイスを提供するためのCDC層と、共通セットのキャッシングインターフェイスのインプリメンテーションを提供するためのIDC層と、実際のキャッシングプロバイダを提供するためのDTV層とを含み得る。
As shown in FIG. 4, at step 411, a distributed caching system can be provided in a transaction processing environment. A distributed caching system includes a BDC layer for receiving caching requirements from caching clients, a CDC layer for providing a common set of caching interfaces, and an IDC layer for providing an implementation of a common set of caching interfaces. And a DTV layer to provide the actual caching provider.

ステップ413において、分散型キャッシングシステムのBDC層は、キャッシング・クライアントからキャッシング要求を受取ることができる。キャッシング要求は、BDC層によってエクスポーズされるAPIを用いて開始することができる。   In step 413, the BDC layer of the distributed caching system can receive a caching request from a caching client. A caching request can be initiated using an API exposed by the BDC layer.

ステップ415において、BDC層はCDC層にキャッシング要求を転送することができる。キャッシング要求に関連付けられた型付きバッファは、BDC層において定義されるコールバック機能を用いて、共通のデータ構造に変換することができる。   In step 415, the BDC layer can forward the caching request to the CDC layer. Typed buffers associated with caching requests can be converted to a common data structure using callback functions defined at the BDC layer.

ステップ417において、CDC層は、インプリメンテーション層から共通セットのキャッシングインターフェイスの特定のインプリメンテーションをロードし、特定のインプリメンテーションを用いてキャッシング動作を実行することができる。   At step 417, the CDC layer may load a particular implementation of the common set of caching interfaces from the implementation layer and perform a caching operation with the particular implementation.

シリアライゼーションサポート
上述のとおり、CDC層は、型付きバッファ上でシリアライゼーション動作/デシリアライゼーション動作を呼出すために、コールバック機能のための登録機能を定義することができる。
Serialization Support As described above, the CDC layer can define a registration function for a callback function to invoke a serialization / deserialization operation on a typed buffer.

一実施形態に従うと、型付きバッファまたは別のデータタイプは、登録機能を用いて、シリアライゼーション・ハンドラ/デシリアライゼーション・ハンドラに登録される必要がある。登録機能の例は以下のとおりであり得る。   According to one embodiment, the typed buffer or another data type needs to be registered with the serialization / deserialization handler using a registration function. Examples of the registration function may be as follows.

上述の登録機能においては、シリアライゼーションコールバック機能(cb1)およびデ
シリアライゼーション機能(cb2)が登録される。これらのコールバック機能は、上述の
とおり、BDC層において定義することができ、以下のリスト3に例示することができる。
In the above-mentioned registration function, a serialization callback function (cb1) and a deserialization function (cb2) are registered. These callback functions can be defined at the BDC layer, as described above, and can be illustrated in Listing 3 below.

リスト3に示されるように、登録された型付きバッファまたは別のユーザ定義型データタイプはシリアライズされたストリームに変換され、キャッシュに格納され得る。その後
、シリアライズされたストリームは、キャッシュから検索された後、変換されてユーザ定義型データバッファに戻され得る。
As shown in Listing 3, the registered typed buffer or another user-defined type data type may be converted to a serialized stream and stored in the cache. The serialized stream can then be converted and returned to the user-defined data buffer after being retrieved from the cache.

分散型キャッシングシステムにおいて使用される型付きバッファを含むさまざまなデータタイプをサポートするために、これらのデータタイプのシリアライズされたストリームを格納するための共通のデータ構造を提供することができる。   To support various data types, including typed buffers used in distributed caching systems, a common data structure for storing serialized streams of these data types can be provided.

一実施形態に従うと、分散型キャッシングシステムによって使用されるデータシリアライゼーションをサポートするためのシステムおよび方法がこの明細書中に記載される。データシリアライゼーションシステムは、複数のデータタイプのシリアライズされたストリーム/バイトを格納するために用いることができる共通のデータ構造を含み得る。データ構造は、キャッシュセッターのアーキテクチャを記述する情報を含むヘッダを含み得る。異なるアーキテクチャ上で使用するために、キャッシュされたデータが検索される場合、ヘッダ内のアーキテクチャ情報を用いて、この異なるアーキテクチャ上で使用できるようにデータを変換することができる。キャッシュされたデータが同じアーキテクチャ上で検索される場合、キャッシュされたデータは、変換されずに用いることができる。データ構造は、付加的に、メモリを効率的に使用できるようにするために可変長をもつボディ、後方互換性についてのバージョン情報、および、拡張用のオプション特徴のためのフィールドを含み得る。   According to one embodiment, systems and methods for supporting data serialization used by a distributed caching system are described herein. A data serialization system may include a common data structure that can be used to store serialized streams / bytes of multiple data types. The data structure may include a header containing information describing the architecture of the cache setter. When cached data is retrieved for use on a different architecture, the architecture information in the header can be used to transform the data for use on this different architecture. If the cached data is retrieved on the same architecture, the cached data can be used without conversion. The data structure may additionally include fields for variable length bodies to allow efficient use of memory, version information for backward compatibility, and optional features for extensions.

図5は、一実施形態に従った例示的な型付きバッファを示す。
図5に示されるように、型付きバッファ(たとえば、Tuxedo型バッファ)511は、フレキシブル・メッセージ・ヘッダ(flexible message header:FML)513、
およびユーザ型付きコンテナモジュール(user typed container module:TCM)51
7を含み得る。TCMはさらに、型付きコンテナヘッダー(typed container header:TCH)519および型付きコンテナボディ(typed container body:TCB)521を含み得る。TCBはT_BUFFER523およびユーザデータ529を含み得る。T_BUFFERは、型付きバッファのタイプ525およびサブタイプ527を格納するために用いることができる。型付きバッファは、他のバッファに格納することができるいくつかの非ユーザTCMを有し得る。
FIG. 5 illustrates an exemplary typed buffer according to one embodiment.
As shown in FIG. 5, a typed buffer (eg, Tuxedo typed buffer) 511 includes a flexible message header (FML) 513,
And user typed container module (TCM) 51
7 may be included. The TCM may further include a typed container header (TCH) 519 and a typed container body (TCB) 521. The TCB may include T_BUFFER 523 and user data 529. T_BUFFER can be used to store typed buffer type 525 and subtype 527. Typed buffers may have some non-user TCMs that can be stored in other buffers.

図6は、一実施形態に従った、分散型キャッシングシステムによって使用されるデータシリアライゼーションをサポートするためのシステムを示す。   FIG. 6 illustrates a system for supporting data serialization used by a distributed caching system, according to one embodiment.

図6に示されるように、データ構造はCDC層によってサポートされる共通の型付きバッファ133であってもよい。データ構造はヘッダ611およびボディ613を含み得る。ヘッダは、4バイトで位置合わせされる必要があり、複数のフィールド、たとえば、マジックフィールド615、メジャーバージョンフィールド617、マイナーバージョンフィールド618、長さフィールド619、vdataフィールド622、exlenフィールド623、タイプフィールド625、およびフラグフィールド621を含み得る。   As shown in FIG. 6, the data structure may be a common typed buffer 133 supported by the CDC layer. The data structure may include a header 611 and a body 613. The header needs to be aligned with 4 bytes and has multiple fields, eg, magic field 615, major version field 617, minor version field 618, length field 619, vdata field 622, exlen field 623, type field 625. , And a flag field 621.

一実施形態に従うと、ボディは、ボディのサイズを示すための長さのフィールド629と、ソース型付きバッファのタイプ631およびサブタイプ633を格納するために用いられるT_Bufferのフィールド626と、ユーザデータフィールド635とを含み得る。   According to one embodiment, the body has a length field 629 to indicate the size of the body, a T_Buffer field 626 used to store the source typed buffer type 631 and subtype 633, and a user data field. 635.

一実施形態に従うと、「マジック」のフィールドは、ヘッダを区別するために用いられるcharであり得るとともに、長さのフィールドは、ヘッダのサイズを示し得る。フラグのフィールドは、メジャーバージョンのフィールドにおける状態を示し得るかまたはオプション特徴を制御し得る。メジャーバージョンのフィールドは、データ構造における構造の
変更を示すことができる。たとえば、新しいフィールド/メンバが追加もしくは削除されるか、または、フィールドの意味が変更される。マイナーバージョンのフィールドは、メジャーバージョン内の変更を示すために用いることができる。たとえば、新しいビット・フラグがフラグのフィールドに投入される。
According to one embodiment, the "magic" field may be a char used to distinguish the header, and the length field may indicate the size of the header. The flag field may indicate status in the major version field or control optional features. The major version field can indicate a structural change in the data structure. For example, new fields / members are added or deleted, or the meaning of the fields is changed. The minor version field can be used to indicate a change in the major version. For example, a new bit flag is entered in the flag field.

一実施形態に従うと、exlenのフィールドは、一般的にはヘッダに含まれないであろう
いずれの余分なヘッダデータ(たとえば、オプションの特徴)をも記述し得る。「exlen
」がゼロでなければ、プレースホルダ「vdata」から始まる最初の「exlen」*4バイトが
ヘッダデータの一部になり得る。余分なヘッダデータは、さまざまなフィールドを有し得る。各々のフィールドは、4バイトで位置合わせされたアドレスから始まり得るとともに、そのタイプを示すunsigned shortとしてfirst shortを用い、フィールドのデータの長
さ(バイト)を示すunsigned shortとしてsecond shortを用い得るとともに、シリアライズされ得る。
According to one embodiment, the exlen field may describe any extra header data (eg, optional features) that would not typically be included in the header. "Exlen
Is non-zero, the first "exlen" * 4 bytes starting with the placeholder "vdata" can be part of the header data. The extra header data may have various fields. Each field may start with an address aligned with 4 bytes, use a first short as the unsigned short to indicate its type, use a second short as the unsigned short to indicate the length (in bytes) of the data in the field, and , Can be serialized.

一実施形態に従うと、vdataのフィールドは、余分なヘッダデータおよびボディを含む
可変データを示すためのプレースホルダであり得る。ヘッダのうち最初の4バイトは、他の用途のために変更される可能性はなく、ヘッダにおけるメンバは、ビッグエンディアンを用いることができる(vdataは含まれていない)。ヘッダのサイズは可変データを含ん
でおらず、そのため、長さのフィールドに影響を与えることはない。
According to one embodiment, the fields of vdata may be placeholders to indicate variable data including extra header data and body. The first four bytes of the header cannot be changed for other uses, and members in the header can use big endian (vdata is not included). The size of the header does not include variable data, and thus does not affect the length field.

一実施形態に従うと、メジャーバージョン、長さおよびフラグのそれぞれのフィールドは、メジャーバージョン間でのプロトコル互換性をサポートするために用いることができる。加えて、フラグのフィールドは、符号化されていないデータ、符号化されたデータおよび自己記述型データのうちの1つであり得るデータの状態を示すことができる。   According to one embodiment, the major version, length, and flag fields can be used to support protocol compatibility between major versions. In addition, the flag field may indicate a state of the data, which may be one of uncoded data, coded data, and self-describing data.

一実施形態に従うと、データが符号化されていない場合、シリアライゼーション中にどの動作も実行されず、ボディは、型付きバッファにおける元のユーザTCMと同じであり得る。キャッシュセッター(たとえば、キャッシュにデータを格納するアプリケーション)と同じアーキテクチャ(たとえば、同じ文字符号化または同じエンディアン)のマシンに存在するキャッシュゲッター(たとえば、キャッシュされたデータを検索するアプリケーション)は、キャッシュされたデータを検索して用いることができる。   According to one embodiment, if the data is not encoded, no operations are performed during serialization and the body may be the same as the original user TCM in the typed buffer. A cache getter (eg, an application that retrieves cached data) that resides on a machine with the same architecture (eg, the same character encoding or the same endian) as a cache setter (eg, an application that stores data in the cache) is cached. The retrieved data can be retrieved and used.

一実施形態に従うと、データが符号化されると、型付きバッファにおける元のユーザTCMが特定の符号化機構を用いてシリアライズされるため、キャッシュゲッターがデータをデシリアライズするために適切な対応機構を用いていれば、如何なるプラットフォーム上のキャッシュゲッターでもデータを正確に取得することができるようになる。   According to one embodiment, as the data is encoded, the original user TCM in the typed buffer is serialized using a particular encoding mechanism, so that the cache getter has the appropriate corresponding mechanism to deserialize the data. If you use, the cache getter on any platform will be able to get the data accurately.

一実施形態に従うと、この明細書中に記載されるデータ構造は「自己記述型」モードまたは状態を提供することができ、これにより、データ構造のボディを、型付きバッファにおいて、たとえば、「符号化されていない」状態で、元のユーザTCMと同じ状態にすることが可能になる。さらに、キャッシュセッターの元のアーキテクチャについての追加情報は、データ構造のヘッダに含めることができる。異なるアーキテクチャに位置するキャッシュゲッターがキャッシュされたデータを入手する場合、追加情報を用いて、異なるアーキテクチャにおいて使用できるようにデータを変換することができる。キャッシュゲッターがキャッシュセッターと同じアーキテクチャに位置する場合、データは、変換されずに直接用いられ得る。   According to one embodiment, the data structures described herein can provide a “self-describing” mode or state, which allows the body of the data structure to be stored in a typed buffer, for example, by In the "unconverted" state, the same state as the original user TCM can be obtained. In addition, additional information about the original architecture of the cache setter can be included in the header of the data structure. If a cache getter located in a different architecture obtains the cached data, the additional information can be used to transform the data for use in a different architecture. If the cache getter is located in the same architecture as the cache setter, the data can be used directly without conversion.

一実施形態に従うと、データ構造は依然として「符号化された」モードをサポートすることができ、このため、Tuxedo符号化アルゴリズムをサポートする他のプロダクトとデータを共有することができるようになる。シナリオの例として、Tuxedoアプリ
ケーションがキャッシュセッターとして機能するとともに、JATMIパッケージを用いるWeblogicアプリケーションがキャッシュゲッターとして機能する例を挙げることができる。
According to one embodiment, the data structure can still support the "encoded" mode, thereby allowing data to be shared with other products that support the Tuxedo encoding algorithm. As an example of a scenario, there can be mentioned an example in which a Tuxedo application functions as a cache setter and a Weblogic application using the JATMI package functions as a cache getter.

一実施形態に従うと、アーキテクチャは、以下のうち1つ以上によって異種となり得る。すなわち、1)異なるエンディアン(バイトオーダー、リトルエンディアンまたはビッグエンディアン);2)異なる文字集合(ASCII、EBCDICなど);および、3)異なるサ
イズを有するタイプ(たとえば、長さが4バイトまたは8バイトであり得る)。
According to one embodiment, the architecture may be heterogeneous by one or more of the following: That is, 1) different endians (byte order, little endian or big endian); 2) different character sets (ASCII, EBCDIC, etc.); and 3) types with different sizes (eg, 4 or 8 bytes in length). possible).

一実施形態に従うと、「自己記述」状態が用いられる場合、構造上の相違についての情報を、データ構造のヘッダにおいて指定することができる。異種環境においては、「自己記述」モードは、符号化モードと比べて2つの利点を有する。すなわち、1)キャッシュセッターについて、「符号化されていない(unencoded)」場合と同じ性能;および、2
)ゲッターがキャッシュゲッターと同じアーキテクチャに位置する場合、キャッシュゲッターについて、「符号化されていない(unencoded)」場合と同じ性能を有する。
According to one embodiment, if a "self-describing" state is used, information about the structural differences can be specified in the header of the data structure. In a heterogeneous environment, the "self-describing" mode has two advantages over the coding mode. 1) the same performance as "unencoded" for the cache setter; and 2
3.) If the getter is located in the same architecture as the cache getter, it has the same performance for the cache getter as it does for the "unencoded" case.

具体例として、キャッシュセッターはデータ構造を用いて、シリアライズされたバイトをそれら自体のフォーマット(たとえば、ビッグエンディアンまたはリトルエンディアン)でキャッシュに格納することができ、かつ、データがどの「エンディアン」にあるかを指定する追加情報を格納することができる。キャッシュゲッターは、データを検索すると、追加情報を用いて、データをローカルフォーマットに変換することができる。   As a specific example, cache setters may use data structures to store serialized bytes in a cache in their own format (eg, big-endian or little-endian), and in which “endian” the data is located. Can be stored. When the cache getter retrieves the data, it can use the additional information to convert the data to a local format.

一実施形態に従うと、異種環境においては、ライブラリは各々のマシンに提供することができ、このため、受取るマシンは、キャッシュセッターのマシンのアーキテクチャにかかわらず、ライブラリを用いて、キャッシュされたデータを変換することができる。   According to one embodiment, in a heterogeneous environment, a library can be provided to each machine, so that the receiving machine can use the library to store cached data, regardless of the architecture of the cache setter's machine. Can be converted.

そのため、データ構造は、キャッシングシステムの性能を向上させることができ、Tuxedo型付きバッファを含むさまざまなデータタイプのシリアライズされたバイトを格納することができる。   As such, the data structure can improve the performance of the caching system and can store serialized bytes of various data types, including Tuxedo typed buffers.

一実施形態に従うと、型付きバッファのユーザTCMをシリアライズするために2つのステップを実行することができる。第1のステップは表示することであり、第2のステップは符号化することである。上述のとおり、シリアライゼーションおよびデシリアライゼーションのための機能はBDC層におけるコールバック機能において実現される。   According to one embodiment, two steps can be performed to serialize the user TCM of the typed buffer. The first step is to display and the second step is to encode. As described above, the functions for serialization and deserialization are implemented in the callback function in the BDC layer.

一実施形態に従うと、型付きバッファのユーザTCMをシリアライズすることができるものの、不必要なデータを減らすために型付きバッファのユーザデータおよびT−バッファだけがキャッシュされる必要があり、型付きバッファの残りはキャッシュされる必要がない。   According to one embodiment, the typed buffer user TCM can be serialized, but only the typed buffer user data and the T-buffer need to be cached to reduce unnecessary data, and the typed buffer Does not need to be cached.

リスト4は、一実施形態に従った型付きバッファの例示的なヘッダを示す。   Listing 4 shows an exemplary header of a typed buffer according to one embodiment.

図7は、一実施形態に従った、分散型キャッシングシステムによって使用されるデータシリアライゼーションをサポートするための方法を示す。   FIG. 7 illustrates a method for supporting data serialization used by a distributed caching system according to one embodiment.

図7に示されるように、ステップ711において、分散型キャッシングシステムがトランザクション処理環境において提供され得る。   As shown in FIG. 7, at step 711, a distributed caching system may be provided in a transaction processing environment.

ステップ713において、複数のデータタイプのシリアライズされたストリーム/バイトを格納するために用いられるデータ構造が提供され得る。データ構造は、キャッシュ設定アプリケーションを実行するシステムアーキテクチャについての情報を含むヘッダを含む。   At step 713, a data structure used to store serialized streams / bytes of multiple data types may be provided. The data structure includes a header that contains information about the system architecture that runs the cache configuration application.

ステップ715において、異なるシステムアーキテクチャ上で実行されるキャッシュ入手アプリケーションはキャッシュされたデータを検索し、ソースシステムアーキテクチャについての情報を用いて、異なるアーキテクチャ上で使用できるようにデータを変換する。   In step 715, a cache acquisition application running on a different system architecture retrieves the cached data and uses the information about the source system architecture to transform the data for use on the different architecture.

Coherenceとの統合
一実施形態に従うと、キャッシングプロバイダ(たとえば、CoherenceまたはCloudStore)は構成によってキャッシングプロバイダとして用いることができる。
Integration with Coherence According to one embodiment, a caching provider (eg, Coherence or CloudStore) can be used as a caching provider by configuration.

一実施形態に従うと、分散型インメモリ・データグリッド(たとえば、Coherence)を
、キャッシングプロバイダとしての分散型キャッシングシステムに統合するためのシステムおよび方法がこの明細書中に記載される。分散型キャッシングシステムにおけるプロキシサーバは分散型インメモリ・データグリッドに対するクライアントとして機能し得るとともに、IDCクライアントから転送されたキャッシング要求を受取り得る。始動時に、プロキシサーバは、キャッシング・システム・キャッシュを定義する構成ファイルと、分散型インメモリ・データグリッドキャッシュにキャッシュするマップとをロードすることができ、キャッシング・システム・キャッシュの名前を用いて、サービスをアドバタイズすることができる。要求されたサービスを指定するキャッシング要求をキャッシング・クライアントから受取ると、プロキシサーバは、要求されたサービスに基づいてアクセスするために、分散型インメモリ・データグリッドにおける対応するキャッシュを決定することができる。
According to one embodiment, systems and methods are described herein for integrating a distributed in-memory data grid (eg, Coherence) into a distributed caching system as a caching provider. A proxy server in a distributed caching system can function as a client for a distributed in-memory data grid and can receive caching requests forwarded from IDC clients. At startup, the proxy server can load a configuration file that defines the caching system cache and maps to cache in the distributed in-memory data grid cache, using the name of the caching system cache to: The service can be advertised. Upon receiving a caching request from a caching client specifying the requested service, the proxy server may determine a corresponding cache in the distributed in-memory data grid to access based on the requested service. .

一実施形態に従うと、キャッシュされるべきデータはシリアライズされてから、プロキシサーバに転送することができ、このプロキシサーバは、シリアライズされたデータを対応するインメモリ・データグリッドキャッシュに格納することができる。キャッシュされたデータが、シリアライズされたバイトとして対応するインメモリ・データグリッドキャッシュから検索されて、キャッシング・クライアントに送り返されると、キャッシング・クライアントは、データを元のデータにデシリアライズすることができる。   According to one embodiment, the data to be cached can be serialized before being forwarded to a proxy server, which can store the serialized data in a corresponding in-memory data grid cache. . When the cached data is retrieved from the corresponding in-memory data grid cache as serialized bytes and sent back to the caching client, the caching client can deserialize the data back to the data.

図8は、一実施形態に従った、キャッシングプロバイダとしての分散型キャッシングシステムに分散型インメモリ・データグリッドを統合するためのシステムを示す。   FIG. 8 illustrates a system for integrating a distributed in-memory data grid with a distributed caching system as a caching provider, according to one embodiment.

図8に示されるように、複数のコンピュータノード(たとえば、ノードA805およびノードB807)は、トランザクション処理環境(たとえば、Tuxedoサーバ環境)におけるクラスタまたはドメインにおいて機能するように構成することができる。各々のコンピュータノードはアプリケーションサーバ(たとえば、アプリケーションサーバA811およびアプリケーションサーバB813)を含み得る。   As shown in FIG. 8, multiple computer nodes (eg, Node A 805 and Node B 807) can be configured to function in a cluster or domain in a transaction processing environment (eg, a Tuxedo server environment). Each computer node may include an application server (eg, application server A 811 and application server B 813).

図8にさらに示されるように、分散型インメモリ・データグリッドクラスタ(たとえば、Coherence)831は、複数のコンピュータノード上でサポートされ得る。分散型イン
メモリ・データグリッドは、複数のコンピュータノードにわたって分散された複数のメンバを含み得る。たとえば、CoherenceメンバA819およびCoherenceメンバC823は、コンピュータノードA上に存在し得るとともに、CoherenceメンバB821およびCoherenceメンバD825はコンピュータノードB上に存在し得る。
As further shown in FIG. 8, a distributed in-memory data grid cluster (eg, Coherence) 831 may be supported on multiple computer nodes. A distributed in-memory data grid may include multiple members distributed across multiple computer nodes. For example, Coherence member A 819 and Coherence member C 823 may reside on computer node A, while Coherence member B 821 and Coherence member D 825 may reside on computer node B.

一実施形態に従うと、1つ以上のプロキシサーバは、ロードバランシングおよび性能向上のために各々のコンピュータノード上に設けることができる。たとえば、Coherenceの
ためのプロキシサーバ815および817は、それぞれ、コンピュータノードAおよびコンピュータノードB上に設けられる。
According to one embodiment, one or more proxy servers may be provided on each computer node for load balancing and performance enhancement. For example, proxy servers 815 and 817 for Coherence are provided on computer node A and computer node B, respectively.

一実施形態に従うと、各々のプロキシサーバは、Tuxedo Java(登録商標)サーバによって実現することができ、分散型キャッシングシステムにおいてサーバとして機能し得る。キャッシング・クライアント(たとえば、Tuxedoクライアントまたはサーバ)からのキャッシング要求は、トランザクション手順を呼出すことによって各々のプロキシサーバに転送され得る。各々のプロキシは、その後、1つ以上のキャッシング要求を分散型インメモリ・データグリッドに転送して、対応する応答を受取ることができる。   According to one embodiment, each proxy server can be implemented by a Tuxedo Java server and can function as a server in a distributed caching system. Caching requests from caching clients (eg, Tuxedo clients or servers) may be forwarded to each proxy server by invoking a transaction procedure. Each proxy can then forward one or more caching requests to the distributed in-memory data grid and receive a corresponding response.

一実施形態に従うと、各々のプロキシサーバは、分散型インメモリ・データグリッドに対するJava(登録商標)クライアントとして、直接、機能し得る。構成ファイルは、分散型インメモリ・データグリッドに如何にアクセスするかを指定することができ、たとえば、1つ以上の分散されたキャッシュまたは複製されたキャッシュにアクセスするべきかどうかを指定することができる。読取りのアクセスが高く、および書込みのアクセスが低い場合、複製されたキャッシュをアクセス用に構成することができる。   According to one embodiment, each proxy server may function directly as a Java client to a distributed in-memory data grid. The configuration file may specify how to access the distributed in-memory data grid, for example, whether to access one or more distributed or replicated caches. it can. If read access is high and write access is low, a replicated cache can be configured for access.

図9は、一実施形態に従った、キャッシングプロバイダとしての分散型キャッシングシステムに分散型インメモリ・データグリッドを統合するためのシステムをさらに示す。   FIG. 9 further illustrates a system for integrating a distributed in-memory data grid with a distributed caching system as a caching provider, according to one embodiment.

図9に示されるように、プロキシサーバ930は、Coherenceのためのキャッシングプ
ロバイダスイッチインプリメンテーション943からトランザクション手順の呼出し929を受取るために、CDC層に存在し得る。トランザクション手順の呼出しは、キャッシング・クライアントから分散型キャッシングシステムへのキャッシング要求を受取った後
、キャッシングプロバイダ・スイッチ・インプリメンテーションをホストしているサーバによって生成することができる。トランザクション手順の呼出しは、共通の型付きバッファから(928)のシリアライズされたバイトを含み得る。
As shown in FIG. 9, a proxy server 930 may reside at the CDC layer to receive a call 929 to a transaction procedure from a caching provider switch implementation 943 for Coherence. The invocation of the transaction procedure can be generated by the server hosting the caching provider switch implementation after receiving a caching request from the caching client to the distributed caching system. The call to the transaction procedure may include (928) serialized bytes from a common typed buffer.

一実施形態に従うと、Coherenceのためのキャッシングプロバイダ・インプリメンテー
ションは、IDC層からCDC層に提供されるIDCクライアントであり得る。Coherence932はデフォルトのキャッシングプロバイダとなるように構成することができる。こ
のため、プロバイダスイッチのインプリメンテーションと、プロバイダスイッチインプリメンテーションをロードするのに用いられる方法とが、Tuxedoダイナミックライブラリlibtuxおよびlibwsに統合され得る。この場合、前者はTuxedoサーバおよび固
有のクライアントによって使用され得るとともに、後者はTuxedo/WSクライアントのために使用され得る。
According to one embodiment, the caching provider implementation for Coherence may be an IDC client provided from the IDC layer to the CDC layer. Coherence 932 can be configured to be the default caching provider. Thus, the provider switch implementation and the method used to load the provider switch implementation can be integrated into the Tuxedo dynamic libraries libtux and libws. In this case, the former can be used by the Tuxedo server and the native client, and the latter can be used for the Tuxedo / WS client.

一実施形態に従うと、Coherenceに基づいたプロバイダスイッチ・インプリメンテーシ
ョンまたはIDCクライアントは、tpcallによってプロキシサーバにキャッシング要求を転送することができる。不必要なコピーを減じるようにとの要求のタイプに基づいて、さまざまなバッファタイプを用いることができる。表3は、キャッシング要求のタイプに基づいて用いることができる型付きバッファのサンプルリストを示す。
According to one embodiment, a Coherence-based provider switch implementation or IDC client can forward the caching request to the proxy server via tpcall. Various buffer types can be used, based on the type of request to reduce unnecessary copies. Table 3 shows a sample list of typed buffers that can be used based on the type of caching request.

一実施形態に従うと、プロキシサーバは、始動されると、構成ファイルから構成プロパティをロードすることができる。この場合、構成プロパティが定義することができる提供されたTuxedoキャッシュは、分散型キャッシングシステムにおける、構成された論理キャッシュまたは物理キャッシュであり得る。プロキシサーバは、Tuxedoキャッシュ名を用いて、サービスをアドバタイズすることができる。構成ファイルからのプロパティのリストの例を以下のリスト5に示すことができる。   According to one embodiment, the proxy server, when started, can load configuration properties from a configuration file. In this case, the provided Tuxedo cache that the configuration properties can define can be a configured logical or physical cache in a distributed caching system. The proxy server can use the Tuxedo cache name to advertise the service. An example of a list of properties from the configuration file can be shown in Listing 5 below.

一実施形態に従うと、上述のプロパティであれば、プロキシサーバは、「tc」という名のTuxedoサービスをアドバタイズすることができる。IDCクライアントは、tpcallによってプロキシサーバがアドバタイズしたサービス「tc」に対し、キャッシュ「tc」についての要求を転送することができる。リスト3に示されるように、プロパティは、分散型キャッシングシステムにおいて構成されたキャッシュについての、マップされたCoherenceキャッシュを指定することができる。キャッシング・クライアントがコマンド「getcache」によってキャッシュを取得する必要がある場合、プロキシサーバは、このキャッ
シュのために必要なすべてのプロパティ(たとえば、プロパティoptions.encoding)をキャッシング・クライアントに送り返すことができる。
According to one embodiment, with the above properties, the proxy server can advertise a Tuxedo service named "tc". The IDC client can transfer a request for the cache “tc” to the service “tc” advertised by the proxy server by tpcall. As shown in Listing 3, a property can specify a mapped Coherence cache for a cache configured in a distributed caching system. If the caching client needs to get the cache via the command "getcache", the proxy server can send back all the necessary properties for this cache (e.g. the property options.encoding) to the caching client.

一実施形態に従うと、要求されたサービスの名前が、構成ファイルによってCoherence
キャッシュにマッピングされたTuxedoキャッシュの名前と同じであり得る場合、プロキシサーバは、要求されたサービスに基づいてCoherenceキャッシュ名を決定すること
ができる。
According to one embodiment, the name of the requested service is specified by Coherence
If it can be the same as the name of the Tuxedo cache mapped to the cache, the proxy server can determine the Coherence cache name based on the requested service.

一実施形態に従うと、プロキシサーバはCoherenceのクライアントとして機能すること
ができる。プロキシサーバは、プロキシサーバによって用いられるCoherence構成ファイ
ルによって定義されるように、固有のクライアント(Coherenceクラスタのメンバ)また
はリモートクライアントであり得る。
According to one embodiment, the proxy server can function as a client of Coherence. A proxy server can be a unique client (a member of a Coherence cluster) or a remote client, as defined by the Coherence configuration file used by the proxy server.

一実施形態に従うと、Coherenceキャッシュは、アプリケーションの要件によって決定
されるように、分散型キャッシュ、ローカルキャッシュまたは他の任意のタイプのキャッシュであり得る。
According to one embodiment, the Coherence cache may be a distributed cache, a local cache, or any other type of cache, as determined by the requirements of the application.

一実施形態に従うと、キャッシュにデータを格納するために、たとえば「入れる(put
)」というコマンドがアプリケーションにおいて呼出されると、データはシリアライズされてからプロキシサーバに転送され得る。プロキシサーバがバイト[]のタイプであり得るシリアライズされたデータを受取ると、プロキシサーバはシリアライズされたデータをCoherenceに格納することができる。
According to one embodiment, to store data in the cache, for example, "put
) "Is called in the application, the data may be serialized before being transferred to the proxy server. When the proxy server receives the serialized data, which may be of type byte [], the proxy server can store the serialized data in Coherence.

同様に、データをキャッシュから検索するために、たとえば「入手する(get)」とい
うコマンドがアプリケーションにおいて呼出されると、キャッシュされたデータは、バイト[]のタイプを備えたCoherenceから検索されて、さらにキャッシング・クライアント
に送り返され、このキャッシング・クライアントが、データをその元のフォーマットにデシリアライズすることができる。
Similarly, when a command is called in an application to retrieve data from the cache, for example, a "get" command, the cached data is retrieved from the Coherence with a type of byte [], Sent back to the caching client, which can deserialize the data into its original format.

図10は、一実施形態に従った、キャッシングプロバイダとしての分散型キャッシングシステムに分散型インメモリ・データグリッドを統合するための方法を示す。   FIG. 10 illustrates a method for integrating a distributed in-memory data grid with a distributed caching system as a caching provider, according to one embodiment.

図10に示されるように、ステップ1011において、プロキシサーバは、トランザクション処理環境において分散型キャッシングシステムに提供することができる。プロキシサーバは、キャッシング・システム・キャッシュを定義する構成ファイルと、分散型インメモリ・データグリッドキャッシュにキャッシュするマップとをロードし、キャッシング・システム・キャッシュの名前を用いてサービスをアドバタイズすることができる。   As shown in FIG. 10, in step 1011 the proxy server can provide to the distributed caching system in a transaction processing environment. The proxy server can load the configuration file that defines the caching system cache and the map to cache in the distributed in-memory data grid cache and advertise the service using the name of the caching system cache .

ステップ1013において、プロキシサーバは、キャッシング要求を受取ることができる。キャッシング要求は、分散型キャッシングシステムのIDCクライアントからのトランザクション手順の呼出しの際に転送される。   At step 1013, the proxy server can receive the caching request. The caching request is transferred when the transaction procedure is called from the IDC client of the distributed caching system.

ステップ1015において、プロキシサーバは、トランザクション手順の呼出しの際に、要求されたサービスに基づいてアクセスするために、分散型インメモリ・データグリッドにおける対応するキャッシュを決定することができる。   At step 1015, the proxy server may determine a corresponding cache in the distributed in-memory data grid to access based on the requested service upon invocation of the transaction procedure.

サービスキャッシング
上述の分散型キャッシングシステムは以下のキャッシング特徴を提供することができる。すなわち、アクセス回数および更新回数が極めて少なく、キーによって識別されたTuxedoバッファをキャッシュすることができ、複製アクセス、非複製アクセス、ローカルアクセスおよびリモートアクセスを含む調整可能な品質サービスを提供する、というキャッシング特徴を提供することができる。
Service Caching The distributed caching system described above can provide the following caching features. That is, caching in which the number of accesses and updates is very low, the Tuxedo buffer identified by the key can be cached, and adjustable quality services including duplicate access, non-duplicate access, local access and remote access are provided. Features can be provided.

一実施形態に従うと、トランザクション処理環境において分散型キャッシングシステムを用いて、サービスから戻された結果をキャッシュするためのシステムおよび方法がこの明細書中に記載される。構成ファイルは、サービスから戻された結果をキャッシュするのにどのキャッシュを用いるべきかと、キャッシュされた結果を識別する際に使用されるキーを如何に生成するかとを記述するエントリを含むキャッシングセクションを含み得る。サービスについての要求がクライアントから受取られると、トランザクション処理環境のアプリケーションサーバコアは、関連するキャッシュされたデータが、構成ファイルを用いて生成されたキーによって識別されるキャッシュに存在しているかどうかを判断することができる。存在している場合、アプリケーションサーバコアは、サービスを呼出す代わりに、キャッシュされたデータを直接戻すことができる。他の場合、アプリケーションサーバコアは、サービスを呼出し、生成されたキーを用いて、構成ファイルによって指定されるキャッシュにデータをキャッシュし、クライアントに結果を戻すことができる。   According to one embodiment, systems and methods are described herein for caching results returned from a service using a distributed caching system in a transaction processing environment. The configuration file contains a caching section containing entries that describe which cache to use to cache the results returned from the service and how to generate the keys used to identify the cached results. May be included. When a request for a service is received from a client, the application server core of the transaction processing environment determines whether the associated cached data is present in the cache identified by the key generated using the configuration file. can do. If so, the application server core can return the cached data directly instead of invoking the service. In other cases, the application server core may invoke the service, use the generated key to cache the data in the cache specified by the configuration file, and return the result to the client.

一実施形態に従うと、キャッシュされるべきサービスについて戻された結果は、サービス要求における入力キーワードに基づいた、データベースからの検索結果であり得る。   According to one embodiment, the results returned for the service to be cached may be search results from a database based on input keywords in the service request.

サービス(たとえば、Tuxedoサービス)が、或る期間内で特定の要求に応じて、同じ結果を戻すのに比較的長い時間を費やし得る場合、サービスキャッシング特徴により、システム性能を著しく向上させることができる。加えて、このキャッシング特徴は、ユーザが、既存のコードを変更することなく、サービスから戻された結果をキャッシュすることを可能にする。   If a service (eg, Tuxedo service) can spend a relatively long time returning the same result in response to a particular request within a certain period of time, service caching features can significantly improve system performance. . In addition, this caching feature allows a user to cache results returned from a service without changing existing code.

一実施形態に従うと、構成ファイルは、キャッシュされた結果を識別するために用いら
れるべきキーを如何に生成するかを指定することができる。このような識別用途のキーは、単純な連続ストリング(simple solid string)、サービス名から構成されるストリン
グ、要求データから構成されるストリング、ならびに、サービス名および要求データから構成されるストリング、のうちの1つであり得る。
According to one embodiment, the configuration file may specify how to generate the key to be used to identify the cached result. Keys for such identification use include simple solid strings, strings composed of service names, strings composed of request data, and strings composed of service names and request data. May be one of the following.

一実施形態に従うと、要求データがキーを生成するために用いられるべき場合、要求データ全体またはデータの一部を、要求データを含んでいる型付きバッファに従ってキーの一部として用いることができる。ユーザは以下を用いることができる。   According to one embodiment, if the request data is to be used to generate a key, the entire request data or a portion of the data can be used as part of the key according to a typed buffer containing the request data. The user can use:

1)開始インジケータ/終了インジケータによって識別されるSTRIGN/CARRAYバッファの一部;
2)VIEW/VIEW32バッファのうちの1つのフィールドもしくはいくつかのフィールド;
3)FML/FML32バッファのうちの1つのフィールドもしくはいくつかのフィールド;または、
4)XMLバッファのうちの1つのフィールドもしくはいくつかのフィールド。
1) part of the STRIGN / CARRAY buffer identified by the start / end indicators;
2) one or several fields of the VIEW / VIEW32 buffer;
3) one or several fields of the FML / FML32 buffer;
4) One or several fields of the XML buffer.

一実施形態に従うと、トランザクション処理環境においては、FML型バッファなどの型付きバッファは、複数セットの名前値ペアを含み得る。型付きバッファは、クライアントからサーバに要求を送信し、サーバからクライアントに結果を戻すために用いることができる。キャッシュされたサービス結果は、特定のキャッシング要求についての外部からのデータを含み得る複数セットの名前値ペアを含み得る。たとえば、キャッシュされた名前値ペアのうちのいくつかは特定の要求のために必要とされないかもしれないが、但し、これらの名前値ペアは後続のキャッシング要求のために必要とされるかもしれない。   According to one embodiment, in a transaction processing environment, a typed buffer, such as an FML-type buffer, may include multiple sets of name-value pairs. Typed buffers can be used to send requests from the client to the server and return results from the server to the client. A cached service result may include multiple sets of name-value pairs that may include external data for a particular caching request. For example, some of the cached name-value pairs may not be needed for a particular request, but these name-value pairs may be needed for a subsequent caching request .

そのため、一実施形態に従うと、要求データから生成されたキーを用いることにより、クライアントアプリケーションが、必要なデータを正確に示し、それらのデータだけを検索することが可能となり、これにより、アクセス時間を減らし、性能を増強させることができる。   Thus, according to one embodiment, using a key generated from the requested data allows the client application to pinpoint the required data and retrieve only those data, thereby reducing access time. Can reduce and enhance performance.

図11は、一実施形態に従った、トランザクション処理環境において分散型キャッシングシステムを用いて、サービスから戻された結果をキャッシュするためのシステムを示す。   FIG. 11 illustrates a system for caching results returned from a service using a distributed caching system in a transaction processing environment, according to one embodiment.

図11に示されるように、分散型キャッシングシステムは、分散されたかまたは複製された複数のキャッシュ(たとえば、キャッシュA1121およびキャッシュB1123)を含み得るキャッシングプロバイダ1119としてCoherenceを用いるように構成するこ
とができる。
As shown in FIG. 11, a distributed caching system can be configured to use Coherence as a caching provider 1119 that can include multiple distributed or replicated caches (eg, cache A 1121 and cache B 1123). .

さらに図示されるように、トランザクション処理環境のための構成ファイル1104は、分散型キャッシングシステムを如何に用いるかを記述するエントリを含み得るサービスキャッシングセクション1107を含み得る。   As further shown, the configuration file 1104 for the transaction processing environment may include a service caching section 1107, which may include entries describing how to use the distributed caching system.

たとえば、キャッシングセクションは、サービスAのためのキャッシュA1110およびサービスBのためのキャッシュB1111によって例示されるように、特定のサービスから戻されたものをキャッシュするためにどのキャッシュを使用すべきかを記述することができる。   For example, the caching section describes which cache to use to cache return from a particular service, as illustrated by cache A 1110 for service A and cache B 1111 for service B. be able to.

一実施形態に従うと、セクションにおける追加のエントリは、サービスAのためのキーを生成するための方法1113、およびサービスBのためのキーを生成するための方法1
115によって示されるように、特定のサービスからのキャッシュ済み結果を識別する際に使用すべきキーを如何に生成するかを記述することができる。上述のとおり、キー生成方法は、要求データを含むバッファのタイプに基づいて、キーを生成する際に、要求におけるデータのうちどのフィールドを使用すべきかを定義することができる。
According to one embodiment, the additional entries in the sections are a method 1113 for generating a key for service A and a method 1 for generating a key for service B.
As indicated by 115, it can describe how to generate a key to be used in identifying cached results from a particular service. As described above, the key generation method can define which field of the data in the request should be used when generating the key, based on the type of buffer containing the requested data.

図11を参照して、アプリケーションサーバコア(たとえば、Tuxedoコア)1114は、戻された結果をサービス1102からクライアントアプリケーション(たとえば、Tuxedoクライアント)1101に渡すために提供することができる。アプリケーションサーバコアは、複数のサービス(たとえば、サービスA1105およびサービスB1109)を実行することができるアプリケーションサーバA(たとえば、Tuxedoサーバ)1117に関連付けることができる。アプリケーションサーバコアはまた、結果についての特定のサービスを呼出すべきか、またはキャッシュにキャッシュされた結果を用いるべきかどうかを判断する際に使用されるサービスキャッシング論理1128にも関連付けることができる。   Referring to FIG. 11, an application server core (eg, Tuxedo core) 1114 may provide the returned results for passing from the service 1102 to a client application (eg, Tuxedo client) 1101. The application server core may be associated with an application server A (eg, Tuxedo server) 1117 that may execute multiple services (eg, service A 1105 and service B 1109). The application server core may also be associated with service caching logic 1128 that is used in deciding whether to invoke a particular service for the result or to use the cached result in the cache.

具体例として、サービスA1125についての要求がアプリケーションサーバによって受取られると、それに関連付けられたアプリケーションサーバコアは、サービスAのために構成されたキャッシュをチェックして、構成ファイルにおけるサービスについての関連するエントリに従って生成されたキー1127によって識別されるような、関連するキャッシュデータがキャッシュに存在するかどうかを判断することができる。存在する場合、アプリケーションサーバは、サービスAを呼出す代わりに、直接、キャッシュされたデータを戻すことができる。存在しない場合、アプリケーションサーバコアはサービスAを呼出し(1108)、クライアントアプリケーションに結果を戻すことができる。クライアントアプリケーションに結果を転送し返す前に、アプリケーションサーバコアは、生成されたキーを用いるデータを、サービスAによって使用されるように構成されたキャッシュにキャッシュすることができる。   As a specific example, when a request for service A 1125 is received by an application server, its associated application server core checks the cache configured for service A and according to the relevant entry for the service in the configuration file. A determination can be made whether relevant cache data, such as identified by the generated key 1127, is present in the cache. If so, the application server can return the cached data directly instead of calling service A. If not, the application server core may invoke service A (1108) and return the result to the client application. Before forwarding the result back to the client application, the application server core may cache the data using the generated key in a cache configured to be used by service A.

図12は、一実施形態に従った、トランザクション処理環境において分散型キャッシングシステムを用いて、サービスから戻された結果をキャッシュするための方法を示す。   FIG. 12 illustrates a method for caching results returned from a service using a distributed caching system in a transaction processing environment, according to one embodiment.

図12に示されるように、ステップ1211において、分散型キャッシングシステムは、特定のサービスのために戻された結果をキャッシュするためにどのキャッシュを使用すべきかと、キャッシュされた結果を識別する際に使用されるキーを如何に生成すべきかとを記述しているエントリを備えた構成ファイルを含み得るトランザクション処理環境において提供することができる。   As shown in FIG. 12, in step 1211, the distributed caching system determines which cache to use to cache the returned results for a particular service and in identifying the cached results. It can be provided in a transaction processing environment that can include a configuration file with entries describing how the keys to be used should be generated.

ステップ1213において、アプリケーションサーバに関連付けられたアプリケーションサーバコアは、サービスについての要求が、サービスをホストしているアプリケーションサーバに対してクライアントアプリケーションから送信されていることを検出することができ、関連するキャッシュされたデータが構成ファイルを用いて生成されたキーによって識別されるキャッシュに存在しているかどうかを判断することができる。   In step 1213, the application server core associated with the application server may detect that a request for the service is being sent from the client application to the application server hosting the service and the associated cache It can be determined whether the data obtained is present in the cache identified by the key generated using the configuration file.

テップ1215において、関連するキャッシュされたデータがキャッシュに存在している場合、アプリケーションサーバコアはサービスを呼出す代わりに、キャッシュされたデータを直接戻すことができる。他の場合、アプリケーションサーバコアは、サービスを呼出し、構成ファイルによって指定されたキャッシュに、生成されたキーを用いるデータをキャッシュし、クライアントに結果を戻すことができる。   At step 1215, if the relevant cached data is present in the cache, the application server core can return the cached data directly instead of invoking the service. In other cases, the application server core may invoke the service, cache the data using the generated key in the cache specified by the configuration file, and return the result to the client.

この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取り可能記憶媒体を含む、1つ以上の従来の汎用また
は特化型デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
The present invention is directed to one or more conventional general purpose or special purpose digital computers, computing devices, machines, including one or more processors, memory and / or computer readable storage media programmed in accordance with the teachings of the present disclosure. Alternatively, it may be conveniently implemented using a microprocessor. Appropriate software coding can be readily prepared by skilled programmers based on the teachings of this disclosure, as will be apparent to those skilled in the software art.

実施形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された非一時的な記憶媒体または(1つもしくは複数の)コンピュータ読取り可能な媒体であるコンピュータプログラムプロダクトを含む。この記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに適した任意の種類の媒体もしくはデバイスを含み得るものの、これらに限定されない。   In some embodiments, the present invention relates to a non-transitory storage medium or computer (s) storing instructions that can be used to program a computer to perform any of the processes of the present invention. Includes a computer program product that is a readable medium. This storage medium can be any type of disk, including floppy (registered trademark) disk, optical disk, DVD, CD-ROM, microdrive, and magneto-optical disk, ROM, RAM, EPROM, EEPROM, DRAM, VRAM, flash memory It may include, but is not limited to, a device, a magnetic or optical card, a nanosystem (including a molecular memory IC), or any type of medium or device suitable for storing instructions and / or data.

本発明のこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するかまたは本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。実施形態は、本発明の原理およびその実際の応用を最もうまく説明することによって他の当業者がさまざまな実施形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は添付の特許請求の範囲およびそれらの同等例によって規定されるものと意図されている。   The foregoing description of the present invention has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations will be apparent to practitioners skilled in the art. The embodiments are to best explain the principles of the invention and its practical applications so that others skilled in the art can appreciate the various embodiments and the various variations that are appropriate for the particular intended application. Is selected and described. It is intended that the scope of the invention be defined by the following claims and their equivalents:

Claims (78)

トランザクション処理環境に分散型キャッシングを提供するためのシステムであって、
1つ以上のマイクロプロセッサを含むコンピュータと、
前記コンピュータ上で実行されるとともに、キャッシング機能を提供する複数の層を含むトランザクション処理環境とを含み、前記複数の層は、
キャッシング要求を受取るためのバッファベースの分散型キャッシング(BDC)層と、
キャッシング動作の複数のインプリメンテーションを含むインプリメンテーション層とを含み、各々のインプリメンテーションは異なるキャッシングプロバイダによるものであり、前記複数の層はさらに、
共通のキャッシング関連のインターフェイスを定義する共通の分散型キャッシング(CDC)層を含み、
前記BDC層から転送されたキャッシング要求を受取ると、前記CDC層は、前記特定のキャッシングプロバイダによってキャッシング動作のインプリメンテーションをロードして、前記キャッシング要求に関連付けられたデータについてキャッシング動作を実行する、システム。
A system for providing distributed caching in a transaction processing environment,
A computer including one or more microprocessors;
A transaction processing environment that is executed on the computer and includes a plurality of layers for providing a caching function, wherein the plurality of layers include:
A buffer-based distributed caching (BDC) layer for receiving caching requests;
An implementation layer comprising a plurality of implementations of the caching operation, each implementation being from a different caching provider, wherein the plurality of layers further comprises:
Includes a common distributed caching (CDC) layer that defines common caching-related interfaces,
Upon receiving a forwarded caching request from the BDC layer, the CDC layer loads an implementation of a caching operation with the particular caching provider and performs a caching operation on data associated with the caching request. system.
1つ以上のキャッシングプロバイダを含む従属型サードパーティベンダー層をさらに含む、請求項1に記載のシステム。   The system of claim 1, further comprising a dependent third-party vendor layer that includes one or more caching providers. 前記1つ以上のキャッシングプロバイダはCoherenceおよび/またはCloudStoreを含む
、請求項1または2に記載のシステム。
The system of claim 1 or 2, wherein the one or more caching providers comprises Coherence and / or CloudStore.
前記BDC層は、前記分散型キャッシングシステムにおいて使用される複数のデータタイプを登録し、各々の登録されたデータタイプは、そのデータタイプについての動作を定義するスイッチに関連付けられている、請求項1から3のいずれか一項に記載のシステム。   2. The BDC layer registers a plurality of data types used in the distributed caching system, each registered data type being associated with a switch that defines an operation for that data type. The system according to any one of claims 1 to 3. 各々の登録されたデータタイプについての定義された動作は、シリアライゼーション、デシリアライゼーション、符号化または復号化のうち1つ以上を含む、請求項4に記載のシステム。   5. The system of claim 4, wherein the defined actions for each registered data type include one or more of serialization, deserialization, encoding or decoding. 前記CDC層は、前記共通のキャッシング関連のインターフェイスを提供するためのアプリケーションプログラミングインターフェイス(API)を含む、請求項1から5のいずれか一項に記載のシステム。   The system of claim 1, wherein the CDC layer includes an application programming interface (API) for providing the common caching-related interface. 前記CDC層は、前記特定のキャッシングプロバイダからキャッシング動作のインプリメンテーションをロードする際に使用される、キャッシングプロバイダスイッチおよび関連するAPIを含む、請求項1から6のいずれか一項に記載のシステム。   The system of any one of claims 1 to 6, wherein the CDC layer includes a caching provider switch and an associated API used in loading an implementation of a caching operation from the particular caching provider. . 前記キャッシングプロバイダスイッチは複数のポインタを含み、前記複数のポインタの各々は、特定のキャッシングプロバイダによって提供されるキャッシング動作を指し示す、請求項7に記載のシステム。   The system of claim 7, wherein the caching provider switch includes a plurality of pointers, each of the plurality of pointers pointing to a caching operation provided by a particular caching provider. 前記CDC層は、前記BDC層において定義される1つ以上のコールバック機能を呼出して、前記キャッシング要求に関連付けられた前記データのシリアライゼーションまたはデシリアライゼーションを実行する、請求項1から8のいずれか一項に記載のシステム。   9. The method of claim 1, wherein the CDC layer invokes one or more callback functions defined in the BDC layer to perform serialization or deserialization of the data associated with the caching request. The system according to paragraph. トランザクション処理環境において分散型キャッシングを提供するための方法であって
、1つ以上のマイクロプロセッサ上で実行されるとともに、キャッシング機能を提供する複数の層を含むトランザクション処理環境を設けるステップと、
バッファベースの分散型キャッシング(BDC)層においてキャッシング要求を受取るステップと、
共通のキャッシング関連のインターフェイスを定義する共通の分散型キャッシング(CDC)層において、前記BDC層から転送される前記キャッシング要求を受取るステップと、
特定のキャッシングプロバイダによってキャッシング動作のインプリメンテーションを、前記CDC層を介して、インプリメンテーション層からロードするステップとを含み、前記インプリメンテーション層はキャッシング動作の複数のインプリメンテーションを含み、各々のインプリメンテーションは異なるキャッシングプロバイダによるものであり、前記方法はさらに、
前記キャッシング要求に関連付けられたデータについて、ロードされたキャッシング動作を実行するステップを含む、方法。
A method for providing distributed caching in a transaction processing environment, the method comprising: providing a transaction processing environment executing on one or more microprocessors and including a plurality of layers for providing caching functionality;
Receiving a caching request at a buffer-based distributed caching (BDC) layer;
At a common distributed caching (CDC) layer defining a common caching-related interface, receiving the caching request forwarded from the BDC layer;
Loading an implementation of a caching operation by a particular caching provider from the implementation layer via the CDC layer, wherein the implementation layer includes a plurality of implementations of the caching operation, Implementation is from a different caching provider, and the method further comprises:
Performing a loaded caching operation on the data associated with the caching request.
1つ以上のキャッシングプロバイダを含む従属型サードパーティベンダー層を設けるステップをさらに含む、請求項10に記載の方法。   The method of claim 10, further comprising providing a dependent third party vendor layer that includes one or more caching providers. 前記1つ以上のキャッシングプロバイダはCoherenceおよび/またはCloudStoreを含む
、請求項10または11に記載の方法。
The method according to claim 10 or 11, wherein the one or more caching providers include Coherence and / or CloudStore.
前記BDC層は、前記分散型キャッシングシステムにおいて使用される複数のデータタイプを登録し、各々の登録されたデータタイプは、そのデータタイプについての動作を定義するスイッチに関連付けられている、請求項10から12のいずれか一項に記載の方法。   The BDC layer registers a plurality of data types used in the distributed caching system, each registered data type being associated with a switch that defines an operation for that data type. The method according to any one of claims 1 to 12. 各々の登録されたデータタイプについて定義された前記動作は、シリアライゼーション、デシリアライゼーション、符号化または復号化のうち1つ以上を含む、請求項13に記載の方法。   14. The method of claim 13, wherein the operations defined for each registered data type include one or more of serialization, deserialization, encoding or decoding. 前記CDC層は、前記共通のキャッシング関連のインターフェイスを提供するためのアプリケーションプログラミングインターフェイスを含む、請求項10から14のいずれか一項に記載の方法。   15. The method of any one of claims 10 to 14, wherein the CDC layer includes an application programming interface to provide the common caching-related interface. 前記CDC層は、キャッシングプロバイダスイッチと、前記キャッシングプロバイダスイッチの特定のインプリメンテーションにおいて使用される関連するAPIとを含む、請求項10から15のいずれか一項に記載の方法。   16. The method of any one of claims 10 to 15, wherein the CDC layer includes a caching provider switch and an associated API used in a particular implementation of the caching provider switch. 前記キャッシングプロバイダスイッチは、複数のポインタを含み、前記複数のポインタの各々は、特定のキャッシングプロバイダによって提供されるキャッシング動作を指し示す、請求項16に記載の方法。   17. The method of claim 16, wherein the caching provider switch includes a plurality of pointers, each of the plurality of pointers pointing to a caching operation provided by a particular caching provider. 前記CDC層は、前記BDC層において定義される1つ以上のコールバック機能を呼出して、前記キャッシング要求に関連付けられたデータのシリアライゼーションまたはデシリアライゼーションを実行する、請求項10から17のいずれか一項に記載の方法。   18. The CDC layer according to any one of claims 10 to 17, wherein the CDC layer invokes one or more callback functions defined in the BDC layer to perform serialization or deserialization of data associated with the caching request. The method described in. トランザクション処理環境において分散型キャッシングを提供するための1セットの命令を格納する非一時的なコンピュータ読取可能記憶媒体であって、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに以下のステップを実行させ、前記以下のステップは、
バッファベースの分散型キャッシング(BDC)層においてキャッシング要求を受取るステップと、
共通の分散型キャッシング(CDC)層において前記BDC層から転送される前記キャッシング要求を受取るステップとを含み、前記CDC層は共通のキャッシング関連のインターフェイスを定義し、前記以下のステップはさらに、
特定のキャッシングプロバイダによるキャッシング動作のインプリメンテーションを、前記CDC層を介して、インプリメンテーション層からロードするステップを含み、前記インプリメンテーション層は、キャッシング動作の複数のインプリメンテーションを含み、各々のインプリメンテーションは異なるキャッシングプロバイダによるものであり、前記以下のステップはさらに、
前記キャッシング要求に関連付けられたデータについて、ロードされたキャッシング動作を実行する、非一時的なコンピュータ読取可能記憶媒体。
A non-transitory computer-readable storage medium storing a set of instructions for providing distributed caching in a transaction processing environment, the instructions when executed by one or more processors. The following steps are performed by the above processor, and the following steps are performed:
Receiving a caching request at a buffer-based distributed caching (BDC) layer;
Receiving the caching request forwarded from the BDC layer at a common distributed caching (CDC) layer, wherein the CDC layer defines a common caching-related interface, the following steps further comprising:
Loading an implementation of a caching operation by a particular caching provider from the implementation layer via the CDC layer, wherein the implementation layer includes a plurality of implementations of the caching operation, The implementation of is from a different caching provider, and the following steps further comprise:
A non-transitory computer-readable storage medium that performs a loaded caching operation on data associated with the caching request.
1つ以上のキャッシングプロバイダを含む従属型サードパーティベンダー層を設けるステップをさらに含む、請求項19に記載の非一時的なコンピュータ読取可能記憶媒体。   20. The non-transitory computer readable storage medium of claim 19, further comprising providing a dependent third party vendor layer that includes one or more caching providers. トランザクション処理環境における分散型キャッシングシステムにおいて使用されるデータシリアライゼーションをサポートするためのシステムであって、
1つ以上のマイクロプロセッサを含むコンピュータと、
前記コンピュータ上で実行されるとともに、キャッシング機能を提供する複数の層を含むトランザクション処理環境と、
ヘッダおよびボディを含むデータ構造とを含み、前記ヘッダは、キャッシング要求を開始するソースアプリケーションを実行するソースプラットフォームのアーキテクチャ情報を含み、前記キャッシング要求に関連付けられたデータは、シリアライズされ、前記データ構造に格納され、その後、キャッシュに格納され、
異なるアーキテクチャを備えたプラットフォーム上で動作するアプリケーションがキャッシュされたデータを検索するとき、前記アプリケーションは、前記ソースプラットフォームの前記アーキテクチャ情報を用いて、前記キャッシュされたデータをローカルフォーマットに変換する、システム。
A system for supporting data serialization used in a distributed caching system in a transaction processing environment,
A computer including one or more microprocessors;
A transaction processing environment that is executed on the computer and includes a plurality of layers that provide a caching function;
A data structure including a header and a body, wherein the header includes architectural information of a source platform executing a source application that initiates the caching request, wherein data associated with the caching request is serialized, and Stored, then cached,
A system wherein when an application running on a platform with a different architecture retrieves cached data, the application uses the architecture information of the source platform to convert the cached data to a local format.
前記データ構造は前記トランザクション処理環境において使用される型付きバッファである、請求項21に記載のシステム。   22. The system of claim 21, wherein the data structure is a typed buffer used in the transaction processing environment. 前記ソースプラットフォームの前記アーキテクチャ情報は文字集合およびバイトオーダーを含む、請求項21または22に記載のシステム。   23. The system according to claim 21 or 22, wherein the architecture information of the source platform includes a character set and a byte order. 前記データ構造は、後方互換性についてのバージョン番号と、将来拡張できるようにするためのオプション特徴についての余分なデータのためのフィールドとを含む、請求項21から23のいずれか一項に記載のシステム。   24. The method of any one of claims 21 to 23, wherein the data structure includes a version number for backward compatibility and a field for extra data for optional features to allow for future expansion. system. 前記データ構造は、登録されたデータタイプの各々についてのシリアライズされたバイトをBDC層に格納してから、前記シリアライズされたバイトをDTV層におけるキャッシュに格納する、請求項21から24のいずれか一項に記載のシステム。   25. The data structure of any one of claims 21 to 24, wherein the data structure stores serialized bytes for each of the registered data types in a BDC layer, and then stores the serialized bytes in a cache in a DTV layer. The system according to paragraph. 前記キャッシュされたデータが、ソースアーキテクチャと同じアーキテクチャを備えたプラットフォーム上で実行されるアプリケーションによって検索されると、前記アプリケーションは、前記キャッシュされたデータを変換することなく直接用いる、請求項21から25のいずれか一項に記載のシステム。   26. When the cached data is retrieved by an application running on a platform having the same architecture as the source architecture, the application uses the cached data directly without conversion. A system according to any one of the preceding claims. トランザクション処理環境における分散型キャッシングシステムにおいて使用されるデ
ータシリアライゼーションをサポートするための方法であって、
1つ以上のマイクロプロセッサを含むコンピュータ上で実行されるとともに、キャッシング機能を提供する複数の層を含むトランザクション処理環境を設けるステップと、
ヘッダおよびボディを含むデータ構造を設けるステップとを含み、前記ヘッダは、キャッシング要求を開始するソースアプリケーションを実行するソースプラットフォームのアーキテクチャ情報を含み、前記キャッシング要求に関連付けられたデータは、シリアライズされ、前記データ構造に格納され、その後、キャッシュに格納され、
異なるアーキテクチャを備えたプラットフォーム上で動作するアプリケーションがキャッシュされたデータを検索するとき、前記アプリケーションは、前記ソースプラットフォームの前記アーキテクチャ情報を用いて、前記キャッシュされたデータをローカルフォーマットに変換する、方法。
A method for supporting data serialization used in a distributed caching system in a transaction processing environment, comprising:
Providing a transaction processing environment that executes on a computer that includes one or more microprocessors and includes a plurality of layers that provide caching functionality;
Providing a data structure that includes a header and a body, wherein the header includes architectural information of a source platform executing a source application that initiates the caching request, wherein data associated with the caching request is serialized; Stored in a data structure, then stored in a cache,
A method wherein, when an application running on a platform with a different architecture retrieves cached data, the application uses the architecture information of the source platform to convert the cached data to a local format.
前記データ構造は前記トランザクション処理環境において使用される型付きバッファである、請求項27に記載の方法。   The method of claim 27, wherein the data structure is a typed buffer used in the transaction processing environment. 前記ソースプラットフォームの前記アーキテクチャ情報は、文字集合およびバイトオーダーを含む、請求項27または28に記載の方法。   The method according to claim 27 or 28, wherein the architecture information of the source platform includes a character set and a byte order. 前記データ構造は、後方互換性についてのバージョン番号と、将来拡張できるようにするためのオプション特徴についての余分なデータのためのフィールドとを含む、請求項27から29のいずれか一項に記載の方法。   30. The method of any one of claims 27 to 29, wherein the data structure includes a version number for backward compatibility and a field for extra data for optional features to allow for future expansion. Method. 前記データ構造は、登録されたデータタイプの各々についてのシリアライズされたバイトをBDC層に格納してから、前記シリアライズされたバイトをDTV層におけるキャッシュに格納する、請求項27から30のいずれか一項に記載の方法。   31. The data structure of any of claims 27 to 30, wherein the data structure stores serialized bytes for each of the registered data types in a BDC layer, and then stores the serialized bytes in a cache in a DTV layer. The method described in the section. 前記キャッシュされたデータが、ソースアーキテクチャと同じアーキテクチャを備えたプラットフォーム上で実行されるアプリケーションによって検索されるとき、前記アプリケーションは、前記キャッシュされたデータを変換することなく直接用いる、請求項27から31のいずれか一項に記載の方法。   32. When the cached data is retrieved by an application running on a platform having the same architecture as the source architecture, the application uses the cached data directly without conversion. The method according to any one of the preceding claims. トランザクション処理環境における分散型キャッシングシステムにおいて使用されるデータシリアライゼーションをサポートするための1セットの命令を格納する非一時的なコンピュータ読取可能記憶媒体であって、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに以下のステップを実行させ、前記以下のステップは、
前記コンピュータ上で実行されるとともに、キャッシング機能を提供する複数の層を含むトランザクション処理環境を設けるステップと、
ヘッダおよびボディを含むデータ構造を設けるステップとを含み、前記ヘッダは、キャッシング要求を開始するソースアプリケーションを実行するソースプラットフォームのアーキテクチャ情報を含み、前記キャッシング要求に関連付けられたデータは、シリアライズされ、前記データ構造に格納され、その後、キャッシュに格納され、
異なるアーキテクチャを備えたプラットフォーム上で動作するアプリケーションがキャッシュされたデータを検索するとき、前記アプリケーションは、前記ソースプラットフォームの前記アーキテクチャ情報を用いて、前記キャッシュされたデータをローカルフォーマットに変換する、非一時的なコンピュータ読取可能記憶媒体。
A non-transitory computer readable storage medium storing a set of instructions for supporting data serialization used in a distributed caching system in a transaction processing environment, the instructions being executed by one or more processors. And causing the one or more processors to perform the following steps, wherein:
Providing a transaction processing environment executing on the computer and including a plurality of layers for providing a caching function;
Providing a data structure that includes a header and a body, wherein the header includes architectural information of a source platform executing a source application that initiates the caching request, wherein data associated with the caching request is serialized; Stored in a data structure, then stored in a cache,
When an application running on a platform with a different architecture retrieves cached data, the application uses the architecture information of the source platform to convert the cached data to a local format. Computer readable storage medium.
前記データ構造は前記トランザクション処理環境において使用される型付きバッファである、請求項32に記載の非一時的なコンピュータ読取可能記憶媒体。   33. The non-transitory computer-readable storage medium of claim 32, wherein the data structure is a typed buffer used in the transaction processing environment. 前記ソースプラットフォームの前記アーキテクチャ情報は、文字集合およびバイトオーダーを含む、請求項33または34に記載の非一時的なコンピュータ読取可能記憶媒体。   35. The non-transitory computer readable storage medium of claim 33 or claim 34, wherein the architectural information of the source platform includes a character set and a byte order. 前記データ構造は、後方互換性についてのバージョン番号と、将来拡張できるようにするためのオプション特徴についての余分なデータのためのフィールドとを含む、請求項33から35のいずれか一項に記載の非一時的なコンピュータ読取可能記憶媒体。   36. The method of any one of claims 33 to 35, wherein the data structure includes a version number for backward compatibility and a field for extra data for optional features to allow for future expansion. Non-transitory computer readable storage medium. 前記データ構造は、登録されたデータタイプの各々についてのシリアライズされたバイトをBDC層に格納してから、前記シリアライズされたバイトをDTV層におけるキャッシュに格納する、請求項33から36のいずれか一項に記載の非一時的なコンピュータ読取可能記憶媒体。   37. The data structure of claim 33, wherein the data structure stores serialized bytes for each of the registered data types in a BDC layer, and then stores the serialized bytes in a cache in a DTV layer. A non-transitory computer-readable storage medium according to claim 1. 前記キャッシュされたデータが、ソースアーキテクチャと同じアーキテクチャを備えたプラットフォーム上で実行されるアプリケーションによって検索されるとき、前記アプリケーションは、前記キャッシュされたデータを変換することなく直接用いる、請求項33から37のいずれか一項に記載の非一時的なコンピュータ読取可能記憶媒体。   38. When the cached data is retrieved by an application running on a platform having the same architecture as the source architecture, the application uses the cached data directly without conversion. A non-transitory computer-readable storage medium according to any one of the preceding claims. トランザクション処理環境における分散型キャッシングシステムに分散型インメモリ・データグリッドを統合するためのシステムであって、
1つ以上のマイクロプロセッサを含むコンピュータと、
前記コンピュータ上で実行されるとともに、キャッシング機能を提供する複数の層を含むトランザクション処理環境とを含み、前記複数の層は共通の分散型キャッシング(CDC)層およびインプリメンテーション層を含み、前記システムはさらに、
前記インプリメンテーション層において動作する分散型インメモリ・データグリッドと、
前記CDC層におけるプロキシサーバとを含み、前記プロキシサーバは、前記インメモリ・データグリッドに対するクライアントとして機能し、前記CDC層からのトランザクション手順の呼出しの際にキャッシング要求を受取り、キャッシングに関連付けられたデータを前記分散型インメモリ・データグリッドにおけるキャッシュに格納するかまたは前記キャッシュから検索する、システム。
A system for integrating a distributed in-memory data grid with a distributed caching system in a transaction processing environment,
A computer including one or more microprocessors;
A transaction processing environment running on the computer and including a plurality of layers for providing caching functionality, the plurality of layers including a common distributed caching (CDC) layer and an implementation layer, the system comprising: Is also
A distributed in-memory data grid operating at the implementation layer;
A proxy server at said CDC layer, said proxy server acting as a client to said in-memory data grid, receiving a caching request when invoking a transaction procedure from said CDC layer, and data associated with caching. For storing or retrieving from a cache in the distributed in-memory data grid.
前記分散型インメモリ・データグリッドはCoherenceである、請求項39に記載のシス
テム。
40. The system of claim 39, wherein the distributed in-memory data grid is Coherence.
前記プロキシサーバは構成ファイルからプロパティをロードし、前記ロードされたプロパティはキャッシュを定義し、前記定義されたキャッシュを前記分散型インメモリ・データグリッドにおけるキャッシュに対してマッピングする、請求項39または40に記載のシステム。   41. The proxy server loads properties from a configuration file, wherein the loaded properties define a cache and map the defined cache to a cache in the distributed in-memory data grid. System. 前記プロキシサーバは前記定義されたキャッシュの名前を用いてサービスをアドバタイズする、請求項39から41のいずれか一項に記載のシステム。   42. The system according to any one of claims 39 to 41, wherein the proxy server advertises a service using the name of the defined cache. 前記プロキシサーバは、前記定義されたキャッシュに基づいて、かつ、前記定義されたキャッシュと前記分散型インメモリ・データグリッドにおけるキャッシュとの間におけるマッピングに基づいて、キャッシング動作を実行する際に使用される前記分散型インメモリ・データグリッドにおける前記キャッシュを決定する、請求項39から42のいずれか一項に記載のシステム。   The proxy server is used in performing a caching operation based on the defined cache and based on a mapping between the defined cache and a cache in the distributed in-memory data grid. 43. The system of any one of claims 39 to 42, wherein the cache is determined in the distributed in-memory data grid. 1つ以上の付加的なプロキシサーバが、ロードバランシングのために、前記分散型インメモリ・データグリッドをホストする各々のコンピュータノード上に設けられる、請求項
39から43のいずれか一項に記載のシステム。
44. The method according to any one of claims 39 to 43, wherein one or more additional proxy servers are provided on each computer node hosting the distributed in-memory data grid for load balancing. system.
前記プロキシサーバはJava(登録商標)サーバである、請求項39から44のいずれか一項に記載のシステム。   The system according to any one of claims 39 to 44, wherein the proxy server is a Java (registered trademark) server. トランザクション処理環境における分散型キャッシングシステムに分散型インメモリ・データグリッドを統合するための方法であって、
1つ以上のマイクロプロセッサを含むコンピュータ上で実行されるとともに、キャッシング機能を提供する複数の層を含むトランザクション処理環境を設けるステップを含み、前記複数の層は、共通の分散型キャッシング(CDC)層およびインプリメンテーション層を含み、前記方法はさらに、
前記インプリメンテーション層において動作する分散型インメモリ・データグリッドを設けるステップと、
前記CDC層にプロキシサーバを設けるステップとを含み、前記プロキシサーバは前記インメモリ・データグリッドに対するクライアントとして機能し、前記CDC層からのトランザクション手順の呼出しの際にキャッシング要求を受取り、前記キャッシングに関連付けられたデータを、前記分散型インメモリ・データグリッドにおけるキャッシュに格納するかまたは前記キャッシュから検索する、方法。
A method for integrating a distributed in-memory data grid with a distributed caching system in a transaction processing environment, comprising:
Providing a transaction processing environment running on a computer including one or more microprocessors and including a plurality of layers that provide caching functionality, the plurality of layers comprising a common distributed caching (CDC) layer And an implementation layer, the method further comprising:
Providing a distributed in-memory data grid operating at the implementation layer;
Providing a proxy server at the CDC layer, the proxy server acting as a client to the in-memory data grid, receiving a caching request when invoking a transaction procedure from the CDC layer and associating with the caching. Storing the retrieved data in or retrieving from the cache in the distributed in-memory data grid.
前記分散型インメモリ・データグリッドはCoherenceである、請求項46に記載の方法
47. The method of claim 46, wherein the distributed in-memory data grid is Coherence.
前記プロキシサーバは構成ファイルからプロパティをロードし、前記ロードされたプロパティはキャッシュを定義し、前記定義されたキャッシュを前記分散型インメモリ・データグリッドにおける前記キャッシュに対してマッピングする、請求項46または47に記載の方法。   47. The proxy server loads properties from a configuration file, the loaded properties define a cache, and map the defined cache to the cache in the distributed in-memory data grid. 47. The method according to 47. 前記プロキシサーバは前記定義されたキャッシュの名前を用いて、サービスをアドバタイズする、請求項46から48のいずれか一項に記載の方法。   49. The method according to any one of claims 46 to 48, wherein the proxy server advertises a service using the name of the defined cache. 前記プロキシサーバは、前記定義されたキャッシュに基づいて、かつ、前記定義されたキャッシュと前記分散型インメモリ・データグリッドにおけるキャッシュとの間におけるマッピングに基づいて、キャッシング動作を実行する際に使用される前記分散型インメモリ・データグリッドにおける前記キャッシュを決定する、請求項46から49のいずれか一項に記載の方法。   The proxy server is used in performing a caching operation based on the defined cache and based on a mapping between the defined cache and a cache in the distributed in-memory data grid. 50. The method of any one of claims 46 to 49, wherein the cache in the distributed in-memory data grid is determined. 1つ以上の付加的なプロキシサーバが、ロードバランシングのために、前記分散型インメモリ・データグリッドをホストする各々のコンピュータノード上に設けられる、請求項46から50のいずれか一項に記載の方法。   51. The method of any one of claims 46 to 50, wherein one or more additional proxy servers are provided on each computer node hosting the distributed in-memory data grid for load balancing. Method. 前記プロキシサーバはJava(登録商標)サーバである、請求項46から51のいずれか一項に記載の方法。   52. The method according to any one of claims 46 to 51, wherein the proxy server is a Java server. トランザクション処理環境における分散型キャッシングシステムに分散型インメモリ・データグリッドを統合するための1セットの命令を格納する非一時的なコンピュータ読取可能記憶媒体であって、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに以下のステップを実行させ、前記以下のステップは、
コンピュータ上で実行されるとともに、キャッシング機能を提供する複数の層を含むトランザクション処理環境を設けるステップを含み、前記複数の層は、共通の分散型キャッシング(CDC)層およびインプリメンテーション層を含み、前記以下のステップはさら
に、
前記インプリメンテーション層において動作する分散型インメモリ・データグリッドを設けるステップと、
前記CDC層にプロキシサーバを設けるステップとを含み、前記プロキシサーバは前記インメモリ・データグリッドに対するクライアントとして機能し、前記CDC層からのトランザクション手順の呼出しの際にキャッシング要求を受取り、前記キャッシングに関連付けられたデータを、前記分散型インメモリ・データグリッドにおけるキャッシュに格納するかまたは前記キャッシュから検索する、非一時的なコンピュータ読取可能記憶媒体。
A non-transitory computer-readable storage medium storing a set of instructions for integrating a distributed in-memory data grid with a distributed caching system in a transaction processing environment, the instructions comprising one or more processors. When executed, causes the one or more processors to perform the following steps, wherein:
Providing a transaction processing environment running on the computer and including a plurality of layers that provide caching functionality, the plurality of layers including a common distributed caching (CDC) layer and an implementation layer; The following steps may further include:
Providing a distributed in-memory data grid operating at the implementation layer;
Providing a proxy server at the CDC layer, the proxy server acting as a client to the in-memory data grid, receiving a caching request when invoking a transaction procedure from the CDC layer and associating with the caching. A non-transitory computer readable storage medium for storing or retrieving retrieved data in a cache in the distributed in-memory data grid.
前記分散型インメモリ・データグリッドはCoherenceである、請求項53に記載の非一
時的なコンピュータ読取可能記憶媒体。
54. The non-transitory computer-readable storage medium of claim 53, wherein the distributed in-memory data grid is Coherence.
前記プロキシサーバは構成ファイルからプロパティをロードし、前記ロードされたプロパティはキャッシュを定義し、前記分散型インメモリ・データグリッドにおける前記キャッシュに前記定義されたキャッシュをマッピングする、請求項53または54に記載の非一時的なコンピュータ読取可能記憶媒体。   55. The proxy server of claim 53 or 54, wherein the proxy server loads properties from a configuration file, wherein the loaded properties define a cache and map the defined cache to the cache in the distributed in-memory data grid. A non-transitory computer-readable storage medium as described. 前記プロキシサーバは、前記定義されたキャッシュの名前を用いてサービスをアドバタイズする、請求項53から55のいずれか一項に記載の非一時的なコンピュータ読取可能記憶媒体。   56. The non-transitory computer readable storage medium of any one of claims 53 to 55, wherein the proxy server advertises a service using the name of the defined cache. 前記プロキシサーバは、前記定義されたキャッシュに基づいて、かつ、前記定義されたキャッシュと前記分散型インメモリ・データグリッドにおけるキャッシュとの間におけるマッピングに基づいて、キャッシング動作を実行する際に使用される前記分散型インメモリ・データグリッドにおける前記キャッシュを決定する、請求項53から56のいずれか一項に記載の非一時的なコンピュータ読取可能記憶媒体。   The proxy server is used in performing a caching operation based on the defined cache and based on a mapping between the defined cache and a cache in the distributed in-memory data grid. 57. The non-transitory computer readable storage medium of any one of claims 53 to 56, wherein the cache in the distributed in-memory data grid is determined. 1つ以上の付加的なプロキシサーバが、ロードバランシングのために、前記分散型インメモリ・データグリッドをホストする各々のコンピュータノード上に設けられる、請求項53から57のいずれか一項に記載の非一時的なコンピュータ読取可能記憶媒体。   58. The method of any one of claims 53 to 57, wherein one or more additional proxy servers are provided on each computer node hosting the distributed in-memory data grid for load balancing. Non-transitory computer readable storage medium. トランザクション処理環境における分散型キャッシングシステムにおけるサービス結果をキャッシュするためのシステムであって、
1つ以上のマイクロプロセッサを含むコンピュータと、
前記コンピュータ上で実行されるとともに、キャッシング機能を提供する複数の層を含むトランザクション処理環境と、
キャッシュされたデータを格納する際に使用されるように構成されたキャッシングプロバイダと、
前記トランザクション処理環境のための構成ファイルとを含み、前記構成ファイルはサービスのために戻された結果をキャッシュするためにどのキャッシュを使用すべきかと、前記キャッシュされた結果を識別する際に使用されるキーを如何に生成すべきかとを記述するエントリを含むキャッシングセクションを含む、システム。
A system for caching service results in a distributed caching system in a transaction processing environment,
A computer including one or more microprocessors;
A transaction processing environment that is executed on the computer and includes a plurality of layers that provide a caching function;
A caching provider configured to be used in storing cached data;
A configuration file for the transaction processing environment, the configuration file being used in identifying which cache to use to cache the returned results for the service and the cached results. A caching section that includes an entry describing how the key to be generated should be generated.
前記キーはキャッシング要求に関連付けられたデータから生成される、請求項59に記載のシステム。   The system of claim 59, wherein the key is generated from data associated with a caching request. アプリケーションサーバコアに関連付けられたサービスキャッシング論理をさらに含み、前記サービスキャッシング論理は、結果がキャッシュにおいて既に存在しているかどうかに基づいて、前記結果を前記キャッシュから検索すべきか、または、新しい結果を生成するようにサービスを呼出すべきかどうかを判断する、請求項59または60に記載のシ
ステム。
Further comprising service caching logic associated with an application server core, wherein the service caching logic should retrieve the result from the cache or generate a new result based on whether the result already exists in the cache. 61. The system of claim 59 or 60, wherein the system determines whether to invoke the service to perform the call.
前記アプリケーションサーバコアは、前記結果が前記キャッシュに存在するかどうかを判断するために前記キャッシュをチェックする、請求項59から61のいずれか一項に記載のシステム。   62. The system of any one of claims 59 to 61, wherein the application server core checks the cache to determine whether the result is in the cache. 前記アプリケーションサーバコアは、要求データから生成されたキーと、前記キャッシュされたデータに関連付けられたキーとに基づいて前記判断を行なう、請求項62に記載のシステム。   63. The system of claim 62, wherein the application server core makes the determination based on a key generated from the requested data and a key associated with the cached data. 各々のキーは、単純な連続ストリング、サービス名から構成されるストリング、前記要求データから構成されるストリング、ならびに、前記サービス名および前記要求データから構成されるストリング、のうちの1つである、請求項64に記載のシステム。   Each key is one of a simple contiguous string, a string composed of a service name, a string composed of the request data, and a string composed of the service name and the request data. 65. The system of claim 64. 前記キャッシュは前記構成ファイルによって前記サービスのために定義される、請求項59から64のいずれか一項に記載のシステム。   65. The system of any one of claims 59 to 64, wherein the cache is defined for the service by the configuration file. トランザクション処理環境における分散型キャッシングシステムにおいてサービス結果をキャッシュするための方法であって、
1つ以上のマイクロプロセッサを含むコンピュータ上で実行されるとともに、キャッシング機能を提供する複数の層を含むトランザクション処理環境を設けるステップと、
キャッシュされたデータを格納する際に使用されるように構成されたキャッシングプロバイダを設けるステップと、
前記トランザクション処理環境のために構成ファイルを設けるステップとを含み、前記構成ファイルはサービスのために戻された結果をキャッシュするためにどのキャッシュを使用すべきかと、前記キャッシュされた結果を識別する際に使用されるキーを如何に生成すべきかとを記述するエントリを含むキャッシングセクションを含む、方法。
A method for caching service results in a distributed caching system in a transaction processing environment, comprising:
Providing a transaction processing environment that executes on a computer that includes one or more microprocessors and includes a plurality of layers that provide caching functionality;
Providing a caching provider configured to be used in storing the cached data;
Providing a configuration file for the transaction processing environment, the configuration file identifying which cache to use to cache returned results for a service and identifying the cached results. A caching section that includes an entry that describes how to generate the key used for.
前記キーは、キャッシング要求に関連付けられたデータから生成される、請求項66に記載の方法。   67. The method of claim 66, wherein the key is generated from data associated with a caching request. アプリケーションサーバコアに関連付けられたサービスキャッシング論理を提供するステップをさらに含み、前記サービスキャッシング論理は、結果がキャッシュにおいて既に存在するかどうかに基づいて、前記キャッシュから前記結果を検索すべきかどうか、または、新しい結果を生成するように前記サービスを呼出すべきかどうかを判断する、請求項66または67に記載の方法。   Providing service caching logic associated with an application server core, wherein the service caching logic should retrieve the result from the cache based on whether the result already exists in the cache; or 68. The method of claim 66 or 67, wherein determining whether to invoke the service to generate a new result. 前記アプリケーションサーバコアは、前記結果が前記キャッシュに存在するかどうかを判断するために前記キャッシュをチェックする、請求項66から68のいずれか一項に記載の方法。   69. The method of any one of claims 66 to 68, wherein the application server core checks the cache to determine whether the result is in the cache. 前記アプリケーションサーバコアは、要求データから生成されたキーと、前記キャッシュされたデータに関連付けられたキーとに基づいて前記判断を行なう、請求項69に記載の方法。   70. The method of claim 69, wherein the application server core makes the determination based on a key generated from the requested data and a key associated with the cached data. 各々のキーは、単純な連続ストリング、サービス名から構成されるストリング、前記要求データから構成されるストリング、ならびに、前記サービス名および前記要求データから構成されるストリング、のうちの1つである、請求項70に記載の方法。   Each key is one of a simple contiguous string, a string composed of a service name, a string composed of the request data, and a string composed of the service name and the request data. 71. The method of claim 70. 前記キャッシュは前記構成ファイルによって前記サービスのために定義される、請求項
66から71のいずれか一項に記載の方法。
72. The method of any one of claims 66 to 71, wherein the cache is defined for the service by the configuration file.
トランザクション処理環境における分散型キャッシングシステムにおいてサービス結果をキャッシュするための1セットの命令を格納する非一時的なコンピュータ読取可能記憶媒体であって、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに以下のステップを実行させ、前記以下のステップは、
1つ以上のマイクロプロセッサを含むコンピュータ上で実行されるとともに、キャッシング機能を提供する複数の層を含むトランザクション処理環境を設けるステップと、
キャッシュされたデータを格納する際に使用されるように構成されたキャッシングプロバイダを設けるステップと、
前記トランザクション処理環境のために構成ファイルを設けるステップとを含み、前記構成ファイルは、サービスのために戻された結果をキャッシュするためにどのキャッシュを使用すべきかと、前記キャッシュされた結果を識別する際に使用されるキーを如何に生成すべきかとを記述するエントリを含むキャッシングセクションを含む、非一時的なコンピュータ読取可能記憶媒体。
A non-transitory computer readable storage medium storing a set of instructions for caching service results in a distributed caching system in a transaction processing environment, wherein the instructions are executed by one or more processors. , Causing the one or more processors to perform the following steps, wherein:
Providing a transaction processing environment that executes on a computer that includes one or more microprocessors and includes a plurality of layers that provide caching functionality;
Providing a caching provider configured to be used in storing the cached data;
Providing a configuration file for the transaction processing environment, the configuration file identifying which cache to use to cache returned results for a service and the cached results A non-transitory computer readable storage medium that includes a caching section that includes an entry describing how to generate a key to be used.
前記キーはキャッシング要求に関連付けられたデータから生成される、請求項73に記載の非一時的なコンピュータ読取可能記憶媒体。   74. The non-transitory computer readable storage medium of claim 73, wherein the key is generated from data associated with a caching request. アプリケーションサーバコアに関連付けられたサービスキャッシング論理を提供するステップをさらに含み、前記サービスキャッシング論理は、結果がキャッシュにおいて既に存在するかどうかに基づいて、前記結果を前記キャッシュから検索すべきかどうか、または、新しい結果を生成するように前記サービスを呼出すべきかどうかを判断する、請求項73または74に記載の非一時的なコンピュータ読取可能記憶媒体。   Providing service caching logic associated with an application server core, wherein the service caching logic should retrieve the result from the cache based on whether the result already exists in the cache; or 75. The non-transitory computer-readable storage medium of claim 73 or 74, wherein it is determined whether to invoke the service to generate a new result. 前記アプリケーションサーバコアは、前記結果が前記キャッシュに存在するかどうかを判断するために前記キャッシュをチェックする、請求項73から75のいずれか一項に記載の非一時的なコンピュータ読取可能記憶媒体。   78. The non-transitory computer readable storage medium of any of claims 73 to 75, wherein the application server core checks the cache to determine whether the result is in the cache. 前記アプリケーションサーバコアは、要求データから生成されたキーと、前記キャッシュされたデータに関連付けられたキーとに基づいて前記判断を行なう、請求項76に記載の非一時的なコンピュータ読取可能記憶媒体。   77. The non-transitory computer-readable storage medium of claim 76, wherein the application server core makes the determination based on a key generated from the requested data and a key associated with the cached data. 各々のキーは、単純な連続ストリング、サービス名から構成されるストリング、前記要求データから構成されるストリング、ならびに、前記サービス名および前記要求データから構成されるストリング、のうちの1つである、請求77に記載の非一時的なコンピュータ読取可能記憶媒体。   Each key is one of a simple contiguous string, a string composed of a service name, a string composed of the request data, and a string composed of the service name and the request data. 78. The non-transitory computer readable storage medium of claim 77.
JP2019158649A 2015-10-22 2019-08-30 Systems and methods for providing distributed caching in transaction processing environments Active JP6902580B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019158649A JP6902580B2 (en) 2015-10-22 2019-08-30 Systems and methods for providing distributed caching in transaction processing environments

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017558432A JP6613320B2 (en) 2015-10-22 2015-10-22 System and method for providing distributed caching in a transaction processing environment
JP2019158649A JP6902580B2 (en) 2015-10-22 2019-08-30 Systems and methods for providing distributed caching in transaction processing environments

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017558432A Division JP6613320B2 (en) 2015-10-22 2015-10-22 System and method for providing distributed caching in a transaction processing environment

Publications (2)

Publication Number Publication Date
JP2020017288A true JP2020017288A (en) 2020-01-30
JP6902580B2 JP6902580B2 (en) 2021-07-14

Family

ID=69580503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019158649A Active JP6902580B2 (en) 2015-10-22 2019-08-30 Systems and methods for providing distributed caching in transaction processing environments

Country Status (1)

Country Link
JP (1) JP6902580B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130086154A1 (en) * 2011-09-30 2013-04-04 Oracle International Corporation System and method for providing asynchrony in web services
JP2014501416A (en) * 2010-12-30 2014-01-20 フェイスブック,インク. Distributed cache of graph data
JP2014501962A (en) * 2010-11-12 2014-01-23 アリババ・グループ・ホールディング・リミテッド Method and apparatus for accessing virtual machine data
JP2014528114A (en) * 2011-08-02 2014-10-23 アジャイ ジャドハブ Cloud-based distributed persistence and cache data model

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014501962A (en) * 2010-11-12 2014-01-23 アリババ・グループ・ホールディング・リミテッド Method and apparatus for accessing virtual machine data
JP2014501416A (en) * 2010-12-30 2014-01-20 フェイスブック,インク. Distributed cache of graph data
JP2014528114A (en) * 2011-08-02 2014-10-23 アジャイ ジャドハブ Cloud-based distributed persistence and cache data model
US20130086154A1 (en) * 2011-09-30 2013-04-04 Oracle International Corporation System and method for providing asynchrony in web services

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佐藤 直生 NAOKI SATOU: "雲の向こうの未来 クラウドをつかむ The Catcher in the Cloud.", UNIX MAGAZINE VOL.24 NO.2, vol. 第24巻, JPN6021018139, JP, ISSN: 0004507412 *

Also Published As

Publication number Publication date
JP6902580B2 (en) 2021-07-14

Similar Documents

Publication Publication Date Title
JP6613320B2 (en) System and method for providing distributed caching in a transaction processing environment
JP2018531439A6 (en) System and method for providing distributed caching in a transaction processing environment
US10048949B2 (en) Methods and systems for providing a user interface
US7962917B2 (en) System data interfaces, related architectures, print system data interfaces and related print system architectures
US10817312B2 (en) Programming model for performant computing in document-oriented storage services
AU2019425532B2 (en) System and methods for loading objects from hash chains
JPH1069395A (en) Request dispatch mechanism in distributed object system
US8234586B2 (en) User interface framework and techniques
JP6902579B2 (en) Systems and methods for providing distributed caching in transaction processing environments
JP6902580B2 (en) Systems and methods for providing distributed caching in transaction processing environments
JP6827084B2 (en) Systems and methods for providing distributed caching in transaction processing environments
CN112347794B (en) Data translation method, device, equipment and computer storage medium
US7720877B1 (en) Class structure based enhancer for data objects

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190919

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190919

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200923

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210525

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210621

R150 Certificate of patent or registration of utility model

Ref document number: 6902580

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250