[go: up one dir, main page]

JP2008262541A - 式の処理を改良した方法、装置、およびコンピュータプログラム - Google Patents

式の処理を改良した方法、装置、およびコンピュータプログラム Download PDF

Info

Publication number
JP2008262541A
JP2008262541A JP2008030358A JP2008030358A JP2008262541A JP 2008262541 A JP2008262541 A JP 2008262541A JP 2008030358 A JP2008030358 A JP 2008030358A JP 2008030358 A JP2008030358 A JP 2008030358A JP 2008262541 A JP2008262541 A JP 2008262541A
Authority
JP
Japan
Prior art keywords
template
parse
expression
evaluation
message
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
JP2008030358A
Other languages
English (en)
Other versions
JP5400305B2 (ja
Inventor
Stephen James Todd
ステファン・ジェイムズ・トッド
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2008262541A publication Critical patent/JP2008262541A/ja
Application granted granted Critical
Publication of JP5400305B2 publication Critical patent/JP5400305B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】メッセージングネットワークでのメッセージ選択フィルタの効率的な処理等、式の処理を改良する方法、装置、およびコンピュータプログラムを提供する。
【解決手段】多くのメッセージングシステムでは、メッセージ選択フィルタリングは、かなりの処理オーバーヘッドを含む。繰り返しパターンを含む(多くのJMS環境において等)式のパーズ処理および準備処理を含むシステムでは、従来の処理のテンプレートベースのショートカットを実施して、性能を向上させることができる。本発明は、記憶されたパーズテンプレートを使用して、受信データ処理命令等の入力シーケンスをパーズする。パーズを使用して第1のタイプの式が識別され、次に、その対法の式に関連付けられた記憶されている評価テンプレートを使用することにより第1のタイプの式を暗黙的に最適化することができる。
【選択図】図6

Description

本発明は、メッセージングネットワークでのメッセージ選択フィルタの効率的な処理等、式の処理を改良した方法、装置、およびコンピュータプログラムに関する。
メッセージ指向ミドルウェア(MOM)は、一般に、分散した異種ネットワーク内の遠隔データ処理システムで実行されている可能性のあるアプリケーションプログラム間でデータを転送するために使用される。ミドルウェアは、リカバリ機能および他の信頼性機能を実施すると共に、転送の成功に必要なルーティングおよびフォーマット変換の複雑さの多くからアプリケーションプログラムをシールドすることができる。
1つの定着しているメッセージングモデルは非同期ポイントツーポイントメッセージングであり、この場合、メッセージはまず、送信側アプリケーションにより、送信側にとってローカルのメッセージ処理プログラムにより管理されるキューに配置される。次に、メッセージは、メッセージヘッダ内の情報を用いてメッセージ処理プログラムを相互に動作させることによりネットワークを介して転送され、ターゲットアプリケーションの入力キューに配置され、次に、ターゲットアプリケーションが、メッセージを処理する準備ができたときにメッセージを検索する。ポイントツーポイントメッセージングの利点は、非同期通信の非ブロック性である(メッセージ転送が行われている間に、送信側および受信側の両方が他のタスクに従事でき、送信側がメッセージを送信するときに受信側が使用可能である必要がなく、かつターゲット受信側がメッセージを受信するときに送信側が使用可能である必要がない)。市販の非同期ポイントツーポイントメッセージング製品の一例は、IBM CorporationからのWebSphere MQファミリの製品である。メッセージングの概念への案内書として、IBM Redbook「IBM WebSphere MQ v6 Fundamentals」(IBM文書番号SG24−7128−00、2005年12月)を参照のこと。(IBMおよびWebSphereは、International Business Machines Corporationの登録商標である)。
定着している別のメッセージングモデルはパブリッシュ/サブスクライブ(publish/subscribe)であり、この場合、各サブスクライブが、特定のメッセージ等のパブリケーションの受信に興味があることを登録している場合、パブリッシュメッセージを複数のサブスクライブに送信することができる。パブリッシャがパブリケーションをパブリッシャ/サブスクライブメッセージブローカに送信し、サブスクライブがブローカに要件を登録する(通常、ブローカがパブリッシュメッセージヘッダ内のトピック情報と比較することができる関心トピックを指定する)場合、パブリッシャおよびサブスクライブは互いを識別する必要がない。いくつかのパブリッシュ/サブスクライブメッセージブローカが、基礎となるメッセージキューに関連して使用される。IBM CorporationのWebSphereミドルウェア製品ファミリは、IBM Corporationから入手可能な資料「IBM WebSphere Message Broker Version6 Release0−Introduction」(2006年12月)および「IBM WebSphere Message Broker Version6 Release0−Publish/Subscribe」(2006年12月)に記載されるようなパブリッシュ/サブスクライブメッセージング製品を含む。
多くの市販のMOM製品は、IBM CorporationのWebSphereファミリの製品内の製品を含め、Javaメッセージサービス(JMS)を実施する。JMSは、MOMクライアント間でメッセージを送信するために使用するAPIを定義するJava仕様書である(Sun Microsystems Inc.により定められるJava Community Processの下で開発された)。JMSでは、メッセージプロパティおよびメッセージヘッダ情報でのフィルタリングによりメッセージの選択が可能である。JMSでは、ヘッダおよびフィルタの設定に大きな柔軟性が許されるため、JMSメッセージハンドラはこの柔軟性をサポート可能である必要がある。カスタムメッセージヘッダおよびフィルタを処理できるというこの要件により、JMS環境内でフィルタ式を最適なフォーマットで用意して保存することは不可能であった。部分的にこの理由により、典型的なJMS実装は高性能に向けて最適化されず、特に、新しいフィルタ式をパーズして用意するタスクは、性能に対して負の影響を有する。これについて、以下においてより詳細に説明する。(JavaはSun Microsystems,Inc.の登録商標である)。
Philip Rousselle「Implementing the JMS Publish/Subscribe API」(Dr.Dobb’s Journal,volume 27,issue 4、2002年4月、p.28−32)には、メッセージフィルタリングの管理がJMSパブリッシュ/サブスクライブミドルウェアの性能の大きな要因であると説明されている。Rousselleは、大型フィルタの効率的な管理およびメッセージ選択フィルタ評価の最適化に焦点を合わせたPresumo JMS設計を記載している。その結果が、1組のフィルタ内の共通要素を検出し、効率的な評価が可能なようにフィルタ式を組み合わせる再帰JMSフィルタパーサである。しかし、多くのJMS使用事例では、フィルタ評価ステップが唯一のメッセージフィルタリングプロセスの大きな性能オーバーヘッドではない。メッセージフィルタリングで実施される典型的なプロセスは、以下を含む複数のステップに分けることができる。
1.フィルタをパーズして、メッセージフィルタリングに有用な情報を抽出する。
2.効率的なフィルタ評価に向けてフィルタを準備する(例えば、SQL様シンタックスから新しいフォーマットに変換する)。
3.受信メッセージのメッセージヘッダおよびメッセージプロパティをパーズする。
4.受信メッセージのメッセージヘッダ/プロパティをフィルタと比較して、マッチングするメッセージを識別する(フィルタ式の評価と呼ぶ)。
米国特許出願公開第20070016897号 IBM Redbook「IBM WebSphere MQ v6 Fundamentals」(IBM文書番号SG24−7128−00、2005年12月) IBM Corporation「IBM WebSphere Message Broker Version6 Release0−Introduction」(2006年12月) IBM Corporation「IBM WebSphere Message Broker Version6 Release0−Publish/Subscribe」(2006年12月) Philip Rousselleによる「Implementing the JMS Publish/Subscribe API」(Dr.Dobb’s Journal,volume 27,issue 4、2002年4月、p.28−32) T.Takase、H.Miyashita、T.Suzumura、およびM.Tatsuboriによる「An Adaptive,Fast,and Safe XML Parser Based on Byte Sequences Memorization」(14th international conference on World Wide Web(WWW2005)議事録、p.692−701、2005年3月10−15日、Chiba,Japan)
Rouselleは、パブリッシュ/サブスクライブソリューションでの評価ステップの効率(異なるサブスクリプションからのフィルタの組み合わせ/並列化を含む入念な最適化により実現される)に焦点を合わせているが、本発明の発明者は、メッセージ選択プロセスのフィルタパーズステップおよび準備ステップ内で効率を向上させる必要性が残っていることを認識した。これら2つのステップは、特に、システムに頻繁に新しいフィルタが提示されるいくつかのポイントツーポイントシナリオで、JMSメッセージング性能にとって非常に重大であることが多い。一例のシナリオでは、キューが実行中の多くのプロセス(またはプロセスインスタンス)により共有され、フィルタ式が、どのプロセスがどのメッセージを処理するかを判断するために使用される。一般的な例は、各インスタンスが相関識別子(CorrelId)または何等かのインスタンス識別子(InstanceId)により返信メッセージを選択する共有返信キューである。各InstanceIdまたはCorrelIdは新しいフィルタを必要とする。本発明者は、式をより効率的にパーズして準備する必要性が、JMSパブリッシュ/サブスクライブメッセージフィルタに制限されないより一般的な問題であることも認識した。
T.Takase、H.Miyashita、T.Suzumura、およびM.Tatsubori「An Adaptive,Fast,and Safe XML Parser Based on Byte Sequences Memorization」(14th international conference on World Wide Web(WWW2005)議事録、p.692−701、2005年3月10−15日、Chiba,Japan)には、XML文書をパーズするパターンベースの手法が記載されている。パーサは、新しいXMLメッセージと前に受信したメッセージとの相違を検出し、相違部分に対してのみセマンティックパーズを実行する。XML文書を処理する場合、パーサはバイトシーケンスおよび関連するパーズイベントを覚えるとともに、処理コンテキストを覚え、それにより、マッチングしないバイトシーケンスを部分的にパーズすることができる。これは、より効率的なパーズを提供することができるが、依然として、典型的なメッセージフィルタリングプロセスの非効率性のいくつかに対処していない。
米国特許出願公開第20070016897号(発明者S.Todd、IBM Corporationに譲渡)には、XMLを使用したSOAPメッセージ等のサービス要求のテンプレートベースの効率的なパーズが記載されており、サービス要件情報が抽出されて、サービスの呼び出しへのショートカットが提供される。上述した他の解決策と同様に、これは典型的なメッセージフィルタリングプロセスの非効率性のすべてに対処していない。
本発明の第1の態様は、データ処理システムにおける式の処理を改良する方法であって、
条件付きデータ処理演算を制御するために評価可能な第1のタイプの式の要素を定義するパーズテンプレートを使用してデータ処理命令をパーズするステップであって、それにより、式パラメータ値を含む前記第1のタイプの式の要素を識別する、パーズするステップと、
評価に向けて最適化された形態で前記第1のタイプの式を表す評価テンプレートを選択するステップと、
前記パーズするステップにより識別されたパラメータ値を前記評価テンプレートに挿入するステップであって、それにより、最適化された評価コードを生成する、挿入するステップと、
前記最適化された評価コードを使用するステップであって、それにより、前記式を評価する、使用するステップと、
を含む方法を提供する。
本発明は、記憶されたパーズテンプレートを使用して、受信データ処理命令等の入力シーケンスをパーズする。パーズテンプレートは、好ましくは、1組のパーズテンプレートの要素がそれぞれツリーのノードに関連付けられるツリー構造内に保持される。入力シーケンスとテンプレートツリーとの比較を用いて、マッチングしたパーズテンプレートを識別し、それと同時に、マッチングしたパーズテンプレートを使用して入力シーケンスをパーズする。例えば、入力シーケンスは、条件付きデータ処理演算を制御するために評価する必要がある式を指定するストリング、バイトアレイ、またはバイトストリームであってよい。パーズを使用して第1のタイプの式を識別し、次に、そのタイプの式に関連する前に記憶された評価テンプレートを使用することにより第1のタイプの式を暗黙的に最適化することができる。すなわち、本発明の発明者は、テンプレートパーズを既知のシステムで行われていたよりも十分に利用でき、パーズステップからの情報を推論して、続く準備ステップのショートカットが可能なことを認識した。
当分野において既知のように、準備ステップは、式を元のシンタックスから、より効率的に評価できるフォーマットに変形することを含むことができる。例えば、JMS実装MOM製品内で、新しいJMSメッセージコンシューマに指定されるフィルタ式を、元のシンタックス(SQL「where」節と同様)からMOM製品の内部プログラムコードによる処理に最適化されたフォーマットに変換することができる。代替の応用例では、準備ステップは、XQuery(XML照会言語)または別のXMLフォーマット照会シンタックスから異なるフォーマットに変換することを含むことができる。本発明は、識別された式を評価に向けて最適化された形態で表す事前準備されたテンプレートを選択することにより、準備ステップの繰り返しを回避する。
パーズステップの簡略化および準備ステップのショートカットのこの組み合わせにより、式の処理に関連する性能オーバーヘッドが低減する。式は、例えば、メッセージ選択フィルタ式または変換式であってよい。メッセージ選択フィルタリングは、サブスクライブおよび他のメッセージ受信先がフィルタ式を指定できるポイントツーポイントまたはパブリッシュ/サブスクライブメッセージングシステムで実施することができる。例えば、サブスクライブプリケーションが、受信したいメッセージの特定のメッセージヘッダまたはプロパティを指定することができ、これらヘッダまたはプロパティを有さないメッセージはサブスクライブプリケーションに渡されない。フィルタのこの利用は、サブスクライブ指定のメッセージトピックに加えてであってもよく、またはそれに代えてであってもよい。
本発明はJMSメッセージ選択フィルタリングプロセスにおいて特に有益である。これは、JMSでは、予め規定された明示的な「準備」演算等の完全に予め規定されたメッセージ処理が許されないため、また最適化(「準備」)ステップが行われない場合、XMLおよびSQL様条件付き式を使用するJMS実装がフィルタ式の非効率評価を被るためである。上述したように、JMSおよびXMLは大きな柔軟性を提供するが、この柔軟性およびXMLの冗長性をサポートすると、多くの性能問題に繋がり得る。
本発明の実施形態は、パターンの繰り返しを利用することによりこういった問題を軽減する。JMSメッセージ選択フィルタ式等の式は、多くのメッセージシステムで繰り返し評価する必要があり、この処理オーバーヘッドは、これら式内のパターン(すなわち、繰り返される要素)を認識することにより低減することができる。受信メッセージのヘッダおよびプロパティ内でのパターンの繰り返しも認識して利用することができる。この繰り返しの利用は、最適化された式評価およびメッセージパーズテンプレートを生成し、保存し、再利用することを含む。テンプレートがマッチングしない場合、従来のパーズステップおよび準備ステップを行うことができ、従来の演算の結果を使用して新しいテンプレートを生成することができる。このような一実施形態では、普通と異なるフィルタおよび予測不可能なメッセージヘッダを処理する能力の本質的な損失はないが、パターンが繰り返される場合に効率の増大が可能である。
本発明の一実施形態は、繰り返し実行される式を含む入力ストリングをパーズすること、および式評価に使用できる最適化された形態でパーズされた結果を保存することを含む。この最適化された形態は、例えば、(a)式ツリー、(b)バイトコード、または(c)マシンコードであってよい。JMSの場合、ストリング式はSQL92条件付き式シンタックスに基づく。このテンプレートベースの式のパーズおよび最適化を受信した通信のテンプレートベースのパーズと組み合わせて、式の評価に関連するデータを抽出する(例えば、情報をJMSメッセージヘッダまたはメッセージプロパティあるいはその両方から抽出する)ことができる。
本発明の第2の態様は、
データ処理ユニットと、
1組のテンプレートを記憶するデータ記憶ユニットと、
条件付きデータ処理演算を制御するために評価することができる第1のタイプの式の要素を定義する記憶されたパーズテンプレートを使用して、前記データ処理ユニットを制御して入力データ処理命令をパーズし、式パラメータ値を含む前記第1のタイプの式の要素を識別するテンプレートベースのパーサと、
該テンプレートベースのパーサに関連付けられ、評価に向けて最適化された形態で前記第1のタイプの式を表す記憶されている評価テンプレートを選択する手段と、
前記パーサにより識別されたパラメータ値を前記評価テンプレートに挿入して、最適化された評価コードを生成する手段と、
データ通信を受信する手段と、
前記最適化された評価コードを使用して、前記式を評価して、前記受信データ通信に関連して条件付きデータ処理演算の実行を制御する手段と、
を備えるデータ処理装置を提供する。
一実施形態では、テンプレートベースのパーサは、データ処理命令をパーズテンプレートツリーと比較する。1組のパーズテンプレートの各要素に、ツリーのノードが関連付けられる。パーズテンプレートツリーがマッチングするパーズテンプレートを含む場合、テンプレートベースのパーサは、マッチングしたパーズテンプレートを使用してデータ処理命令をパーズする。しかし、パーズテンプレートツリーがマッチングするパーズテンプレートを含まない場合、第2のパーズプロセスを使用してデータ処理命令をパーズして、式の要素を識別し、明示的な準備プロセスが、識別された式要素に対して行われて、最適化された評価コードが生成される。データ処理装置は、好ましくは、第2のパーズプロセスによるおパーズ結果からパーズテンプレートを導出する手段、準備プロセスによる処理結果から評価テンプレートを導出する手段、ならびに導出されたパーズテンプレートおよび導出された評価テンプレートをデータ記憶手段に保存する手段も含む。導出されたパーズテンプレートは、好ましくは、パーズテンプレートツリーのリーフノードに関連して保存され、導出された評価テンプレートは同じリーフノードに関連して保存される。一実施形態では、テンプレートベースのパーサは、式を評価する前に、第2のテンプレートツリーにアクセスして受信データ通信をパーズする。
本発明のさらなる態様は、機械可読記録媒体に記録されたプログラムコードを含むコンピュータプログラム製品であって、プログラムコードが実行されて上記方法を実行するデータ処理装置を制御する1組の命令をプログラムコードが実装したコンピュータプログラム製品を提供する。
本発明の一実施形態は、1組の1つまたは複数の選択フィルタを適用することにより、JMSメッセージング環境においてメッセージを選択する方法を提供する。選択は、
第1の選択フィルタをパーズしてフィルタ式を識別するステップ、
第1のクラスのフィルタ式を表すパーズテンプレートを生成するステップ、
実行に最適化されたフォーマットで第1のクラスのフィルタ式を表す評価テンプレートを生成するステップ、
第2の選択フィルタをパーズテンプレートと比較して、第1のクラスのフィルタ式を識別し、第2の選択フィルタをパーズして第2の選択フィルタのパラメータを識別するステップ、
第1のクラスのフィルタ式に生成された上記評価テンプレートを第2の選択フィルタに関連付けるステップ、
上記識別されたパラメータを評価テンプレートに挿入して、第2の選択フィルタ内の式の評価に向けて最適化された評価コードを生成するステップ、および
上記最適化された評価コードを実行して、第2の選択フィルタを評価するステップ
を含む。
本発明では、2つ以上の選択フィルタのフィルタ式に適用可能として認識される評価テンプレートを再利用して、繰り返しのパーズおよびテンプレート生成を回避し、それにより、選択フィルタの処理を最適化することができる。
本発明の実施形態を添付図面を参照し例として以下においてより詳細に説明する。
以下において説明する本発明の第1および第2の例示的な実施形態は、改良されたJMSメッセージ選択メカニズムを含む。上述したように、本発明はJMSに制限されず、データ処理演算を処理すべきか否かを判断するために評価される式内でパターンが繰り返される他の環境に適用することも可能である。式は、例えば、メッセージ選択フィルタ式またはメッセージ変換を制御する式であってよく、これら例について以下においてより詳細に説明する。図1〜図4を簡潔に参照することから明らかなように、また以下の付随説明から、本発明がポイントツーポイントメッセージングソリューションおよびパブリッシュ/サブスクライブメッセージングソリューションの両方で実施可能である。
本発明の第1の実施形態を実施するメッセージングシステム100について、図1を参照して以下において説明する。システム100は、従来のデータ処理システムハードウェア特徴(図示せず)と、メッセージ指向ミドルウェア(MOM)プログラム30とインタフェースする1組のアプリケーションプログラム10、20を含むソフトウェアとを組み合わせたものである。MOMは、基礎をなすオペレーティングシステム40からサポートを得る。MOMプログラム30は、メッセージキューを介して非同期ポイントツーポイントメッセージングを実施する。送信側アプリケーションプログラム110は、遠隔データ処理システム150に配置されてよく、ローカルMOMキューマネージャ120により管理されるローカルメッセージキュー140にキューを配置するAPI呼び出しを行うことが可能である。物理ネットワークにわたって分散する複数のMOMキューマネージャが相互に動作して、ターゲットアプリケーションプログラム10のローカルMOMキューマネージャ30により管理されるキュー50へのメッセージの転送を処理する。2つのみのキューマネージャ120、30を図1に示すが、特定のメッセージの送達に関わる多くのシステムがあってよい。相互に動作するMOM製品は、ターゲットアプリケーションプログラム10が準備ができたときにメッセージを処理できるように、異種ネットワークを介してのネットワークルーティングおよびトランザクション保証送達という複雑な問題を処理する。アプリケーションプログラム10は、メッセージを入力キュー50から検索するAPI呼び出しを発行し、キューマネージャ30はこれに応答して、メッセージをアプリケーションプログラム10に渡す。検索が成功したと仮定すると、メッセージはキュー50から削除される。キューを介してメッセージを転送するこの非同期手法は、当分野において周知であり、IBM CorporationのWebSphere MQ製品ファミリ内のMOM製品で実施されていた。
これより、キュー50が、同じアプリケーションプログラムの別個のインスタンスであってよい2つのプロセッサ10、20により共有されるメッセージング環境を考える。例えば、キュー50は共有「replyTo(返信)」キューであってよく、ここから、各アプリケーションインスタンスが各返信メッセージを選択する。選択は、相関識別子(以下参照)または何等かのインスタンス識別子に基づくことができるが、いずれの場合でも、選択では、式を評価して、キューに保持されているメッセージが特定のアプリケーションインスタンスの要件にマッチングするか否かを判断することが必要である。
JMSでは、メッセージは以下を含む。
送信側クライアントおよび受信側クライアントの両方ならびにJMSプロバイダがメッセージの識別およびルーティングに使用する値を含むフィールド210、220、230を有するメッセージヘッダ200(図2参照)。
プロパティ240−各メッセージが、アプリケーション定義のメッセージフィルタリングに使用できるアプリケーション定義プロパティ値をサポートする機能を含む(プロパティはアプリケーション固有のヘッダフィールドと考えることができる)。
送信中のアプリケーションデータを含むメッセージ本体250(または「ペイロード」)。JMS実装では、メッセージ本体は5つのタイプ、すなわちストリーム、マップ、テキスト、オブジェクト、またはバイトのうちの1つであることができる。
メッセージヘッダ内のJMSCorrelationIDヘッダフィールドは、返信メッセージを要求メッセージにリンクするため等、1つのメッセージを別のメッセージにリンクするために使用することができる。例えば、相関識別子は、複数のアプリケーションインスタンスが同じ「replyTo」キューにデータ提供するポイントツーポイントメッセージング実装でのメッセージ選択のベースを提供することができる。JMSコンシューマアプリケーションが、メッセージ「セレクタ」内のメッセージヘッダフィールドリファレンスおよびプロパティリファレンスを介して関心のあるメッセージを特定することができる。JMSメッセージセレクタは、条件付きメッセージ選択フィルタ式であり、すなわち、シンタックスがSQL92条件付き式シンタックスの部分集合に基づくストリングとして指定される。式は、受信メッセージのヘッダフィールド値およびプロパティ値がセレクタ内の対応する要素にマッチングする場合に真と評価される。セレクタは、JMSプロバイダ(MOM製品)によりJMSコンシューマ(メッセージングアプリケーション)の代わりとして評価される。したがって、ヘッダフィールドおよびプロパティがセレクタにマッチングするメッセージのみがコンシューマに送達される。
もちろん、ヘッダフィールドおよびプロパティに基づくメッセージ選択フィルタリングは、上述したようなJMSパブリッシュ/サブスクライブの実施ならびにポイントツーポイントメッセージングの例に欠かせない。パブリッシャ/サブスクライブネットワークを図3に概略的に示す。パブリッシャアプリケーション110、310が、データ処理システム350で実行されているパブリッシャ/サブスクライブブローカ340にメッセージを送信する(ローカルメッセージ処理プログラム120、320および利用可能なネットワーク接続を介して)。パブリッシャ/サブスクライブブローカは、マッチングングエンジン360および1組のサブスクライバ(アプリケーション10、400、430、または各ローカルメッセージ処理プログラム30、390、420)に代わってサブスクリプション情報を保持するリポジトリ370を含む。このパブリッシャ/サブスクライブネットワーク例では、フィルタリングは、ブローカ340のマッチングングエンジン360内で実施することができる。代替のパブリッシャ/サブスクライブネットワークは、中間ネットワークハブにあるブローカ内ではなく、サブスクライバアプリケーションにとってローカルのマッチングする構成要素内でのメッセージプロパティフィルタリングを含むサブスクリプションマッチングングを実施する。本発明は、各種モデルのJMS実装を含むこれらパブリッシャ/サブスクライブ通信モデルおよびポイントツーポイント通信モデルのそれぞれに適用可能である。
典型的なJMS環境では、メッセージ選択フィルタの処理にはコストがかかる。アプリケーションプログラムインスタンスが、呼び出しsession.createConsumer(…,selector)を使用して作成される都度、JMSプロバイダ(すなわち、JMSインタフェースのMOM製品実装)は図4に示すような以下のステップを実施する必要がある。
1.アプリケーションインスタンスの選択フィルタをパーズし(500)、
2.評価に向けてフィルタを準備する(510)。
次に、選択フィルタを、後の評価に使用するために保存する(520)。
次に、アプリケーションプログラムインスタンス10が入力キュー50からメッセージを検索しようとする都度、JMSプロバイダは、
1.特定のメッセージのJMSメッセージヘッダおよびプロパティをパーズし(530)、
2.保存されているフィルタ式を評価して、メッセージがアプリケーションインスタンスの要件にマッチングするか否かを判断する(540)
必要がある。
フィルタ式が真と評価された場合、メッセージが特定のアプリケーションインスタンスにより検索されるのに対して、式が偽と評価される場合、アプリケーションインスタンスはキュー内の次のメッセージの検査に移る。
したがって、従来の方法を使用する場合、フィルタ式は、createConsumer( )演算が実行される都度、1回パーズされ、createConsumer( )演算の都度、準備演算が1回実行される。キュー内の各メッセージが検査される都度、別個のメッセージパーズ演算が1回実行される。
本発明の発明者は、典型的なJMSメッセージング環境において多くの繰り返し処理が実行されることを認識した。本発明者は、テンプレートを使用してパターンを識別して利用し、フィルタ式の効率的なパーズおよび自動準備を実行してJMSメッセージ選択フィルタ式に関連する処理オーバーヘッドを低減することができると結論づけた。
本発明の第1の実施形態では、テンプレートベースのパーズが、新しいJMSコンシューマ作成時に指定されたJMS選択フィルタに対して実行される。すなわち、記憶されている、前に識別された式のタイプを表すテンプレートが選択フィルタと比較される。マッチングが識別される場合、マッチングングプロセスは、既知のタイプの式の要素を識別してパラメータ値(「定数」)を式から抽出するテンプレートベースのパーズにマッチングしたテンプレートを使用することを含む。このような式を識別した後、前に記憶されている最適化された評価テンプレートが選択され、式の評価に使用される。抽出されたパラメータは評価テンプレートに挿入されて、最適化された評価コードが形成される。したがって、共通のタイプの式を表すテンプレートを生成して記憶することにより、新しいJMSコンシューマの作成に関連するパーズステップおよび準備ステップの両方を短縮することが可能である。
さらに、メッセージをJMSコンシューマの入力キューで受け取られると、別のテンプレートベースのパーズが、受信メッセージのメッセージヘッダおよびプロパティに対して実行される。すなわち、メッセージヘッダまたはプロパティ内の前に識別されたパターンを表す記憶されているテンプレートを使用して、入力メッセージのパーズを簡略化する。
この効率的なテンプレートベースのパーズおよび関連する自動化された準備ステップの情報推論は、新しいフィルタならびに広範囲のメッセージヘッダおよびプロパティを処理できる柔軟性を犠牲にすることなく実現される。メッセージ選択フィルタまたは受信メッセージのヘッダ/プロパティが、記憶されているテンプレートのいずれともマッチングしない場合、従来のパーズステップ、準備ステップ、および評価ステップが実行される。次に、これら従来のパーズステップおよび準備ステップの結果を使用して、後に使用する新しいテンプレートを生成することができる。
本発明は他の環境および他のタイプの式に適用可能であるが、JMS選択フィルタを事前処理して評価する例について、図6、図7、および図8を参照して以下においてより詳細に説明してから、他の例の説明に移る。
図6は、データ処理ユニット570、メインメモリ550、不揮発性記憶装置580、入出力ネットワーク接続570、および内部通信バスを備える、ネットワーク接続されたデータ処理システム800内の本発明の第1の実施形態の構成要素の概略図である。この第1の実施形態では、本発明は、システムメモリ550内のJMSプロバイダ(MOM製品)600の各種データリポジトリおよび実行可能構成要素により実施される。JMSプロバイダ600は、これもまたシステムメモリで実行される従来のJMSコンシューマアプリケーション10、20にサポートを提供する。図6に示す各種構成要素により実行される動作について、図7および図8を参照して以下において説明する。
本発明の第1の実施形態では、新しいJMSコンシューマsession.createConsumer(...,selector)を作成する命令をJMSプロバイダ600から受け取る(810)と、命令はまず、テンプレートパーサ610に渡される。テンプレートパーサは、1組の記憶テンプレートを表すテンプレートツリー620にアクセスし(820)、入力ストリングを、テンプレートツリー620内で現在表されている1組のパーズテンプレートと比較する(830)。1組のテンプレートは、「セレクタ」を処理する少なくとも1つのテンプレート、すなわち通常、新しいJMSメッセージコンシューマを作成するために命令内に含まれるフィルタ式を処理するテンプレートを含む。利用できるテンプレートでマッチングするものがない場合、作成命令内のセレクタが、第2のパーサ630により従来通りにパーズされる。このパーズは、入力ストリングを既知のシンタックス規則と比較してセレクタの構造を判断し、メッセージ選択フィルタリングについて評価できるようにし、共通のパラメータタイプおよびデータ値を含む各種式パラメータを識別してから、処理可能なデータ構造内に配置する。準備プロセス640がパーズ結果に対して実行されて、より効率的な評価処理に向けてセレクタを準備する(860)。これは、通常、パーズされた入力ストリングの構造またはシンタックスを、より効率的な処理、この場合は効率的なメッセージ選択フィルタ評価を可能にする新しいフォーマットに変換することを含む従来のステップである。
マッチングするパーズテンプレートが識別されない場合、パーズステップ850および準備ステップ860が上述したように実行されてから、その結果が最適化された評価コード650として保存される(870)。この好ましい実施形態では、パーズ結果はまたパーズテンプレートジェネレータ660に入力されて、新しいパーズテンプレートが作成される(880)。準備ステップの結果は評価テンプレートジェネレータ670に渡されて、新しい式評価テンプレートが作成される(890)。新しいパーズテンプレートは、セレクタ式の識別されたパラメータを表すが、これらパラメータのデータ値は空白のままである。新しい式評価テンプレートはパーズテンプレートおよび前の準備ステップ中に作成された変換済みの式から導出される。新たに作成されたパーズテンプレートはいずれも、パーズテンプレートツリー620に追加され(900)、新しい式評価テンプレートが式評価テンプレートの別個の記憶装置680に追加される(900)。この実施形態では、各式評価テンプレートをパーズテンプレートツリー620のリーフノードに関連付けることにより、新しい式評価テンプレートが各パーズテンプレートに関連付けられる。
その後、新しいJMSコンシューマが同様のセレクタを使用して定義されるとき、パラメータの繰り返しパターンを認識し、新しいパーズテンプレートを使用してパーズする(820)ことができる。すなわち、新しい命令session.createConsumer(...,selector)内で指定されたセレクタがテンプレートパーサ610に渡されると、テンプレートパーサは新しいセレクタをテンプレートツリー620内に表される1組のテンプレートと比較する(820)。新しいパーズテンプレートがマッチングと識別され、これを使用してセレクタの構造が解析され、セレクタのフィルタ式のパラメータ情報を抽出する。式評価テンプレートがすでに、この対法のフィルタ式に対して作成されているため、新しく明示的な準備ステップまたは新しい評価テンプレートの作成は何等必要ない。それに代えて、評価テンプレートセレクタ690は前に保存した式評価テンプレート(このタイプの式を、効率的に評価できるフォーマットですでに表す)を選択し(830)、新しいメッセージ選択フィルタ式を評価することができる。例えば、記憶されている式評価テンプレートでは、JMSフィルタ式のSQL様シンタックスは、各MOMプログラムコードがより効率的に処理する異なるシンタックスで置換されている。
成功したテンプレートベースのパーズステップ820から推論される情報により、記憶されている1組の式評価テンプレートから適当なテンプレートを選択する(830)ことができる。パーズステップ820はまた、コードジェネレータ700により評価テンプレートに結合(840)して、最適化された評価コードを生成することができるパラメータを抽出する。このようにし、繰り返しパターンの認識により、効率的な実行パスである前のパーズの結果の再利用および前の準備の再利用が可能であり、評価ステップに向けての準備の処理が従来の解決策よりも少なくなる。
例えば、JMSメッセージ選択構成要素がフィルタ式:
E−filter1:“JMSCorrelId=‘abc’ and ZZZ=‘zxc’”
を見る場合、メッセージ選択構成要素はフィルタ式をパーズしてから、準備処理を明示的に実行して、以下のように表すことができる最適化された評価コードを生成することができる。
Opt−code1:MQCorrelId::abc [[ZZZ::zxc]]
これは、評価に適した形態でフィルタ式の表現を提供するが、まだいかなる再利用も可能ではなく、またいかなる処理オーバーヘッドも節減しない。メッセージフィルタ式を処理して、以下のように式の要素の繰り返しを認識するパーズテンプレートを作成することもできる。
E−parse_template1:JMSCorrelId=‘%1%’and ZZZ=‘%2%’
次に、メッセージ選択構成要素は、このパーズテンプレートを、最適化された評価コードに関連し、特定の評価関数の使用に向けて最適化された評価テンプレートに関連付けることができる。
E−evaluation_template1:MQCorrelId::%1% [[ZZZ::%2%]]
(JMSCorrelId=’%1%’and ZZZ=’%2%’に関連する)
この説明のための例では、シンボル‘::’および‘[[ ]]’の使用は、‘GetMessage’演算によりMOMシステムから検索されたメッセージのテストに使用できる効率的な内部表現を示す。
初期フィルタ式のパーズは、評価テンプレートに挿入できるパラメータを抽出し、これらは以下のように表すことができる。
E−inserts1:−−>E−evaluation_template1
%1%=abc %2%=zxc
(但し、表現‘−−>E−evaluation_template1’は、これら挿入部がテンプレート‘E−evaluation_template1’と併せて使用されるためのものであることを示し、挿入値は‘abc’および‘zxc’である)。
上記例では、パーズされる式は、そのタイプのすべての式に共通する部分(この部分はテンプレートに表すことができる)および可変部分(挿入部)に分けられる。共通部分は、通常、フィールド名(‘JMSCorrelId’等)および演算子(‘=’および‘and’等)を含むのに対して、挿入部は、通常、式内の「定数」(すなわち、特定のタイプの式の異なるインスタンスで変化する値)を含む。
本発明の代替の実施形態では、式のどの要素がテンプレートの部分になるべきか、またどれを挿入部として処理すべきかを判断するための異なる規則セットがあり得る。例えば、JMSPriorityを特殊なケースとして認識し、副次式‘JMSPriority=1’をテンプレートの部分として扱い、‘JMSPriority=2’特別することが有利であり得る。さらに、上記実施形態は、準備処理の多くの異なる例が当分野において既知であるという点で単なる例示にすぎない。
上記評価テンプレート例は、相関識別子の選択がここでは、MOM製品コードにより効率的にアクセスできる標準メッセージヘッダフィールド(MQCorrelId::)を参照することにより処理できるため、最適化を表す。MOM製品によっては、内部メッセージ処理関数を覆うJMSレイヤを含むものがある。標準メッセージヘッダフィールドのいくつかは元のフィルタ式の対応するパラメータと同じ情報を含むが、効率的な評価を可能にする異なるフォーマットである。この説明のための例では、標準ヘッダフィールドは、拡張されたJMSヘッダを複製し、それにより、‘GetByCorrelId=abc’を使用して共有入力キューからメッセージを検索するとき、または優先度もしくはuserIDに基づいて選択するときにMOM製品は標準ヘッダフィールドを使用できる。元のJMS選択フィルタ式の要素は、異なるシンタックスを有し、MOM製品コードにより効率的に評価することができる等価の要素で置換されている。
異なるヘッダフィールドを調べるように適合されるのみならず、MOM製品の既存のAPI呼び出しオプションまたは内部インデックスを使用してフィルタリングを実行できる(このようなパラメータをMessageId、CorrelId、およびGroupIdとして使用して)評価テンプレートを生成することができる。この場合、基礎をなすMOM製品コードからJMSレイヤへに失敗したメッセージを渡すコストも節減することができる。
既知のソリューションは準備処理を明示的に実行することができるが、繰り返しパターンを識別して評価テンプレートを再利用することができる本発明のテンプレートベースのショートカットを使用して性能の向上が可能である。テンプレートベースのパーズおよび予め記憶された評価テンプレートの使用により、入力式の暗黙的かつ自動化された最適化が可能であり、これにより、この実施形態では、パーズが簡略化され、準備処理の繰り返しが回避され、かつ評価の低いフィルタが「押し出さ」れる。
本発明のこの実施形態では、JMSメッセージ選択構成要素が、例:
E−filter2:s.createConsumer(...,“JMSCorrelId=‘def’ and ZZZ=‘vbn’”)
のような第2の同様の式を続けて見たとき、これは、
E−inserts2:−−>E−evaluation_template1
%1%=def %2%=vbn
により、パーズテンプレート‘E−parse_template1’にマッチングするものとして識別される。
このマッチングの結果、JMSメッセージ選択構成要素は、最適化された式評価テンプレート‘E−evaluation_template1’を第2のフィルタ式に自動的に関連付ける。パーズステップが簡略化されるだけではなく、新しいフィルタを準備して最適化する必要がない。
上記処理は、メッセージ選択に最適化された評価コードを効率的に準備する。
Opt−code2:MQCorrelId::def [[ZZZ::vbn]]
第2のフィルタ(E−filter2)に対応する最適化された評価コード(Opt−code2)は既知の技法の繰り返し処理を使用して生成されるものと同じであるが、最適化された評価コードは、準備処理を繰り返すことなく生成された。この繰り返し処理の回避の恩恵は、かなりの繰り返しを示す環境で顕著であり得る。
図8を参照して以下において説明するのは、フィルタ式を評価する必要がある新しい入力メッセージを受信したときに実行される追加処理である。メッセージが、データ処理システムのネットワーク接続560を介して受信され、JMSプロバイダ600によりメモリの確保領域720内のメッセージキュー50に配置される。受信メッセージのテンプレートベースのパーズが、メッセージパーズテンプレートの記憶されているツリー730にアクセスするメッセージパーサ710により実行される(910)(セレクタのテンプレートパーズとは別個)。マッチングするメッセージパーズテンプレートがツリー内で見つかる場合、このテンプレートベースのパーズは、1組のメッセージヘッダ/プロパティフィールド名、演算子、および定数を、従来のパーズよりも効率的に識別し、多数の繰り返しメッセージがある環境での処理を節減する。図5に明示的に示されていないが、テンプレートベースのメッセージパーサ710は、マッチングするテンプレートがメッセージパーズテンプレートツリー730内で見つからない場合、責務を従来のパーズプロセスに移す。
上記メッセージパーズを、第1の受信メッセージmessage1および続いて受信されるメッセージmessage2について簡略化された例を使用して以下に示す。
message1
M−usr1: <ZZZ>asd</ZZZ><another>data</another>
M−template1: <ZZZ>$1$</ZZZ><another>$2$</another>
M−inMatcher1: $1$−−>ZZZ $2$−−>another
M−inserts1: −−>M−inMatcher1 $1$=zxc $2$=data
message2
M−usr2: <ZZZ>fgh</ZZZ><another>example</another>
M−inserts2:−−>input matcher 1 $1$=fgh $2$=example
上記例では、M−inMatcher1は、M−template1内の挿入物とこれら挿入物が関連付けられるフィールド値との間の関係を示す。したがって、$1$−−>ZZZは、第1の挿入物($1$)にフィールドZZZが関連付けられることを示す。
したがって、第2のメッセージおよびテンプレートパーズ(M−usr2)を見て、$1$=‘gfh’であることを見つけたとき、M−inMatcher1を使用して、ZZZ=‘fgh’であると推定するとともに、同様に、いくつかの内部フォーマット内で([ ]で表される)、ヘッダが
M−header2: [ZZZ=‘fgh’,another=‘example’]
を表すことを推定する。
ここで、メッセージおよび評価式の両方の効率的な内部表現を有し、したがって、フィルタ式エバリュエータ740によりメッセージ内に保持される値に基づいて式を効率的に評価する(920)ことができる。上記メッセージング例では、これは、以下の例:
Opt−code−2:MQCorrelId::def [[ZZZ::vbn]]
M−header2:[ZZZ=‘fgh’,another=‘example’]
のようなヘッダ名を突き合わせることを含む。
Opt−code−2内の要素‘MQCorrelId::def’は、標準メッセージヘッダフィールドへの参照により基礎をなすMOMコードによる処理のために押し出され(上述のように)、‘M−header’に現れる必要がない。マッチングするCorrelIdを有するメッセージが見つかる場合、内部式[[ZZZ==‘vbn’]]がメッセージヘッダ[ZZZ=‘fgh’,another=‘example’]と突き合わせて評価される(920)。式がアプリケーションプログラムに対して真と評価される場合、JMSプロバイダはメッセージを各アプリケーションプログラム10、20に渡す。
別の代替の実施態様では、フィールド名はパーズおよび式とメッセージヘッダとの突き合わせのプロセスからなくなる。特に、フィールド名は、フィールド名からフィールドインデックスへの固定マッピングから判断されるインデックスで置換される。説明のための例では、マッピングは以下のようであってよい。
JMSCorrel−>?1?,AAA−>?2?,ZZZ−>?3?,another−>?4?であり、以下同様である。
したがって、評価テンプレート:
E−evaluation_template1:MQCorrelId::%1% [[ZZZ=‘%2%’]]
は、
E−evalution_template1:MQCorrelId::%1% [[?3?=‘%2%’]]
として記憶され、
Opt−code−2:MQCorrelId::def [[?3?::vbn]]
をもたらす。メッセージマッチングャテンプレート:
M−inMatcher1:$1$−−>ZZZ $2$−−>another
は、
M−inMatcher1:$1$−−>?3? $2$−−>?4?
として記憶される。そして、これは、
M−header2:[?3?=‘fgh’,?4?=‘example’]
をもたらす。
フィールドマッチング(ハッシュテーブル参照として実施可能)はこうして、インデックスマッチングングで置換される。これは単純なアレイ参照として実施することができる。
上述したように、本発明は、JMSメッセージ選択フィルタの評価に制限されず、メッセージブローカまたはクライアントメッセージングシステムにより実施される条件付き変換等の他の式の評価に使用することも可能である。例えば、変換式はSQL様シンタックスで表現することができる。
SELECT name,price,quantity,total AS price quantity WHERE name>“M”
節‘WHERE name>“M””はフィルタとして機能するが、式はさらに、総値の計算によりメッセージを変形すべきことも指定する。ソースは入力メッセージストリームであるため、‘FROM’を指定する必要はない。この例では、パーズおよび準備(または‘最適化’)は、JMSメッセージ選択フィルタについて上述したものと同じであるが、入力メッセージが式と突き合わせて処理される最終評価ステップは、メッセージが単にメッセージ選択に向けてフィルタリングされるのではなく、メッセージが変更されるという点で異なる。
したがって、繰り返しパターンにより記憶されているテンプレートの再利用が促される異なるタイプの式が本発明から恩恵を受けることができる。異なるアプリケーション環境が異なる種々の式準備ステップから恩恵を受けて、最適化された式評価テンプレートを実現する。しかし、準備ステップが高価であることは多くの環境に共通する特徴であるため、本発明の記憶されたパーズテンプレートおよび式評価テンプレートの再利用によるこの処理のショートカットにより、処理オーバーヘッドの価値ある低減を提供することができる。
当分野において既知のポイントツーポイントメッセージングネットワークでのメッセージ転送の概略図である。 当分野において既知のメッセージ構造例を表す。 当分野において既知のパブリッシャ/サブスクライブネットワークの概略図である。 評価に向けてフィルタ式を準備する等の入力データ処理命令の従来の処理を表す。 入力メッセージの対応する式を表す。 本発明の一実施形態によるデータ処理システムの概略図である。 本発明の一実施形態による最適化された評価コードを準備する方法の一連のステップを表す。 入力メッセージの対応する式を表す。
符号の説明
10、20 アプリケーション
560 ネットワーク接続
570 処理ユニット
580 不揮発性記憶装置
590 通信バス
610 テンプレートパーサ
620 式パーズテンプレート
630 第2のパーサ
640 準備プロセス
650 最適化されたコード
660 テンプレートジェネレータ
670 評価テンプレートジェネレータ
680 評価テンプレート
690 評価テンプレートセレクタ
700 コードジェネレータ
710 メッセージパーサ
730 メッセージパーズテンプレート
740 フィルタエバリュエータ

Claims (17)

  1. データ処理システムにおける式の処理を改良する方法であって、
    条件付きデータ処理演算を制御するために評価可能な第1のタイプの式の要素を定義するパーズテンプレートを使用してデータ処理命令をパーズするステップであって、それにより、式パラメータ値を含む前記第1のタイプの式の要素を識別する、パーズするステップと、
    評価に向けて最適化された形態で前記第1のタイプの式を表す評価テンプレートを選択するステップと、
    前記パーズするステップにより識別されたパラメータ値を前記評価テンプレートに挿入するステップであって、それにより、最適化された評価コードを生成する、挿入するステップと、
    前記最適化された評価コードを使用するステップであって、それにより、前記式を評価する、使用するステップと、
    を含む方法。
  2. 前記パーズするステップは、データ処理命令をパーズテンプレートツリーと比較することであって、1組のパーズテンプレートの各要素は前記ツリーのノードが関連付けられる、比較すること、および前記パーズテンプレートツリーがマッチングするパーズテンプレートを含む場合、マッチングするパーズテンプレートを使用して前記データ処理命令をパーズすることを行う第1のパーズプロセスを含む、請求項1に記載の方法。
  3. 前記パーズテンプレートツリーがマッチングするパーズテンプレートを含まない場合、第2のパーズプロセスを使用して、前記データ処理命令をパーズして、式の要素を識別し、準備プロセスが前記式の要素に対して実行されて、最適化された評価コードが生成され、該方法は、
    前記第2のパーズプロセスによるパーズの結果からパーズテンプレートを導出すること、
    前記準備プロセスによる処理結果から評価テンプレートを導出すること、
    前記導出されたパーズテンプレートおよび前記導出された評価テンプレートを保存すること、
    とをさらに含む、請求項2に記載の方法。
  4. 前記導出されたパーズテンプレートを保存するステップは、前記導出されたパーズテンプレートを前記パーズテンプレートツリーのリーフノードに関連付けて保存することを含み、前記導出された評価テンプレートを保存するステップは、前記導出された評価テンプレートを前記リーフノードに関連付けることを含む、請求項3に記載の方法。
  5. 前記選択するステップは、前記パーズテンプレートツリーのリーフノードに関連付けられた評価テンプレートを選択することを含む、請求項2乃至4のいずれか1項に記載の方法。
  6. 前記式はメッセージ選択フィルタ式である、請求項1乃至5のいずれか1項に記載の方法。
  7. 前記式はメッセージ変換式である、請求項1乃至5のいずれか1項に記載の方法。
  8. 前記式の前記評価は、データ通信の受信に応答して実行される、請求項1乃至7のいずれか1項に記載の方法。
  9. 前記データ通信はJMSメッセージであり、前記式の前記評価は、JMSメッセージセレクタを評価して、前記JMSメッセージをJMSメッセージコンシューマに渡すべきか否かを判断することを含む、請求項8に記載の方法。
  10. 前記データ通信の受信は、ヘッダ情報およびメッセージ本体を含むメッセージであり、前記式を評価する前に、前記メッセージはパーズされてヘッダ情報が抽出される、請求項8または9に記載の方法。
  11. 前記受信メッセージの前記パーズは、1つまたは複数のメッセージヘッダフィールドを含むテンプレートを使用するテンプレートベースのパーズ動作を含む、請求項10に記載の方法。
  12. 前記テンプレートベースのパーズ動作は、前記受信メッセージを第2のパーズテンプレートツリーと比較することであって、1組のパーズテンプレートの各要素には前記ツリーのノードが関連付けられる、比較すること、および前記第2のパーズテンプレートツリーがマッチングするパーズテンプレートを含む場合、マッチングしたパーズテンプレートを使用して前記受信メッセージをパーズすることを含む、請求項11に記載の方法。
  13. データ処理ユニットと、
    1組のテンプレートを記憶するデータ記憶ユニットと、
    条件付きデータ処理演算を制御するために評価することができる第1のタイプの式の要素を定義する記憶されたパーズテンプレートを使用して、前記データ処理ユニットを制御して入力データ処理命令をパーズし、式パラメータ値を含む前記第1のタイプの式の要素を識別するテンプレートベースのパーサと、
    該テンプレートベースのパーサに関連付けられ、評価に向けて最適化された形態で前記第1のタイプの式を表す記憶されている評価テンプレートを選択する手段と、
    前記パーサにより識別されたパラメータ値を前記評価テンプレートに挿入して、最適化された評価コードを生成する手段と、
    データ通信を受信する手段と、
    前記最適化された評価コードを使用して、前記式を評価して、前記データ通信の受信に関連して条件付きデータ処理演算の実行を制御する手段と、
    を備えるデータ処理装置。
  14. パーズテンプレートツリーと前記ツリーがマッチングするパーズテンプレートを含まないという前記式との比較に応答して、前記データ処理命令をパーズして、式の要素を識別する第2のパーズプロセスと、
    前記式に最適化された評価コードを生成する準備プロセスと、
    をさらに備える、請求項13に記載のデータ処理装置。
  15. 前記第2のパーズプロセスによるパーズ結果からパーズテンプレートを導出する手段と、
    前記準備プロセスによる処理結果から評価テンプレートを導出する手段と、
    前記導出されたパーズテンプレートおよび前記導出された評価テンプレートを前記データ記憶手段に保存する手段と、
    をさらに含む、請求項14に記載のデータ処理装置。
  16. 前記保存する手段は、前記パーズテンプレートツリーのリーフノードに関連して前記導出されたパーズテンプレートを保存する手段と、前記導出された評価テンプレートを同じ前記リーフノードに関連して保存する手段と、を備える、請求項15に記載のデータ処理装置。
  17. 式の処理を改良する方法を実行するためのプログラムであって、前記プログラムがコンピュータに、
    条件付きデータ処理演算を制御するために評価可能な第1のタイプの式の要素を定義するパーズテンプレートを使用してデータ処理命令をパーズするステップであって、それにより、式パラメータ値を含む前記第1のタイプの式の要素を識別する、パーズするステップと、
    評価に向けて最適化された形態で前記第1のタイプの式を表す評価テンプレートを選択するステップと、
    前記パーズするステップにより識別されたパラメータ値を前記評価テンプレートに挿入するステップであって、それにより、最適化された評価コードを生成する、挿入するステップと、
    前記最適化された評価コードを使用するステップであって、それにより、前記式を評価する、使用するステップと、
    を実行させる、プログラム。
JP2008030358A 2007-02-13 2008-02-12 式の処理を改良した方法、装置、およびコンピュータプログラム Expired - Fee Related JP5400305B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07102234.7 2007-02-13
EP07102234 2007-02-13

Publications (2)

Publication Number Publication Date
JP2008262541A true JP2008262541A (ja) 2008-10-30
JP5400305B2 JP5400305B2 (ja) 2014-01-29

Family

ID=39686962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008030358A Expired - Fee Related JP5400305B2 (ja) 2007-02-13 2008-02-12 式の処理を改良した方法、装置、およびコンピュータプログラム

Country Status (3)

Country Link
US (2) US8161468B2 (ja)
JP (1) JP5400305B2 (ja)
CN (1) CN101246486B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014505896A (ja) * 2010-11-04 2014-03-06 ディジマーク コーポレイション スマートフォンベースの方法及びシステム
US11049094B2 (en) 2014-02-11 2021-06-29 Digimarc Corporation Methods and arrangements for device to device communication
JP2022091978A (ja) * 2012-12-21 2022-06-21 デカ・プロダクツ・リミテッド・パートナーシップ 電子患者ケアのためのシステム

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444596B1 (en) * 2007-11-29 2008-10-28 International Business Machines Corporation Use of template messages to optimize a software messaging system
US7996444B2 (en) * 2008-02-18 2011-08-09 International Business Machines Corporation Creation of pre-filters for more efficient X-path processing
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US8312437B2 (en) * 2008-12-30 2012-11-13 Microsoft Corporation Structured search in source code
US20100198741A1 (en) * 2009-01-30 2010-08-05 Yahoo! Inc. Designating priority for characteristics of vitality events in a social networking system
US9607290B2 (en) * 2010-03-24 2017-03-28 Worldmate, Ltd. Apparatus and method for detecting messages in a parsing process
US8626778B2 (en) * 2010-07-23 2014-01-07 Oracle International Corporation System and method for conversion of JMS message data into database transactions for application to multiple heterogeneous databases
US8510270B2 (en) 2010-07-27 2013-08-13 Oracle International Corporation MYSQL database heterogeneous log based replication
US9298878B2 (en) 2010-07-29 2016-03-29 Oracle International Corporation System and method for real-time transactional data obfuscation
US8555338B2 (en) 2010-08-10 2013-10-08 Mobimate Ltd. Apparatus and method for retrieving a boarding pass
US20120042024A1 (en) * 2010-08-12 2012-02-16 Mobimate Ltd. Apparatus and method for handling a message
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8504542B2 (en) 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
US8560494B1 (en) 2011-09-30 2013-10-15 Palantir Technologies, Inc. Visual data importer
US9378526B2 (en) 2012-03-02 2016-06-28 Palantir Technologies, Inc. System and method for accessing data objects via remote references
US9471370B2 (en) 2012-10-22 2016-10-18 Palantir Technologies, Inc. System and method for stack-based batch evaluation of program instructions
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US9367463B2 (en) 2013-03-14 2016-06-14 Palantir Technologies, Inc. System and method utilizing a shared cache to provide zero copy memory mapped database
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US9740369B2 (en) 2013-03-15 2017-08-22 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US9898167B2 (en) 2013-03-15 2018-02-20 Palantir Technologies Inc. Systems and methods for providing a tagging interface for external content
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US9378123B2 (en) * 2013-12-31 2016-06-28 International Business Machines Corporation Testing of transaction tracking software
US8924429B1 (en) 2014-03-18 2014-12-30 Palantir Technologies Inc. Determining and extracting changed data from a data source
US20160026923A1 (en) 2014-07-22 2016-01-28 Palantir Technologies Inc. System and method for determining a propensity of entity to take a specified action
CN104331278B (zh) * 2014-10-15 2017-08-25 南京航空航天大学 一种用于arinc661规范的指令过滤方法和装置
TWI545918B (zh) * 2014-12-30 2016-08-11 富智康(香港)有限公司 群組資訊過濾系統及方法
US9983148B2 (en) * 2015-05-28 2018-05-29 Kla-Tencor Corporation System and method for production line monitoring
US9514205B1 (en) 2015-09-04 2016-12-06 Palantir Technologies Inc. Systems and methods for importing data from electronic data files
US10558339B1 (en) 2015-09-11 2020-02-11 Palantir Technologies Inc. System and method for analyzing electronic communications and a collaborative electronic communications user interface
US9772934B2 (en) 2015-09-14 2017-09-26 Palantir Technologies Inc. Pluggable fault detection tests for data pipelines
US9652510B1 (en) 2015-12-29 2017-05-16 Palantir Technologies Inc. Systems and user interfaces for data analysis including artificial intelligence algorithms for generating optimized packages of data items
US10554516B1 (en) 2016-06-09 2020-02-04 Palantir Technologies Inc. System to collect and visualize software usage metrics
US9678850B1 (en) 2016-06-10 2017-06-13 Palantir Technologies Inc. Data pipeline monitoring
US10133782B2 (en) 2016-08-01 2018-11-20 Palantir Technologies Inc. Techniques for data extraction
US10621314B2 (en) 2016-08-01 2020-04-14 Palantir Technologies Inc. Secure deployment of a software package
US11256762B1 (en) 2016-08-04 2022-02-22 Palantir Technologies Inc. System and method for efficiently determining and displaying optimal packages of data items
US10552531B2 (en) 2016-08-11 2020-02-04 Palantir Technologies Inc. Collaborative spreadsheet data validation and integration
US10373078B1 (en) 2016-08-15 2019-08-06 Palantir Technologies Inc. Vector generation for distributed data sets
EP3282374A1 (en) 2016-08-17 2018-02-14 Palantir Technologies Inc. User interface data sample transformer
US10650086B1 (en) 2016-09-27 2020-05-12 Palantir Technologies Inc. Systems, methods, and framework for associating supporting data in word processing
US10152306B2 (en) 2016-11-07 2018-12-11 Palantir Technologies Inc. Framework for developing and deploying applications
US10261763B2 (en) 2016-12-13 2019-04-16 Palantir Technologies Inc. Extensible data transformation authoring and validation system
US10203940B2 (en) * 2016-12-15 2019-02-12 Microsoft Technology Licensing, Llc Compiler with type inference and target code generation
US11157951B1 (en) 2016-12-16 2021-10-26 Palantir Technologies Inc. System and method for determining and displaying an optimal assignment of data items
CN106789245A (zh) * 2016-12-22 2017-05-31 浪潮通信信息系统有限公司 一种基于jms的指令执行服务工具及方法
CN108241686B (zh) * 2016-12-26 2021-11-16 北京航管科技有限公司 一种数据集成方法和系统
US10509844B1 (en) 2017-01-19 2019-12-17 Palantir Technologies Inc. Network graph parser
US10180934B2 (en) 2017-03-02 2019-01-15 Palantir Technologies Inc. Automatic translation of spreadsheets into scripts
US10572576B1 (en) 2017-04-06 2020-02-25 Palantir Technologies Inc. Systems and methods for facilitating data object extraction from unstructured documents
US10824604B1 (en) 2017-05-17 2020-11-03 Palantir Technologies Inc. Systems and methods for data entry
US10534595B1 (en) 2017-06-30 2020-01-14 Palantir Technologies Inc. Techniques for configuring and validating a data pipeline deployment
US10204119B1 (en) 2017-07-20 2019-02-12 Palantir Technologies, Inc. Inferring a dataset schema from input files
US10754820B2 (en) 2017-08-14 2020-08-25 Palantir Technologies Inc. Customizable pipeline for integrating data
US11016936B1 (en) 2017-09-05 2021-05-25 Palantir Technologies Inc. Validating data for integration
KR102500594B1 (ko) * 2017-09-15 2023-02-17 콘비다 와이어리스, 엘엘씨 통신 네트워크에서의 서비스 계층 메시지 템플릿들
US11379525B1 (en) 2017-11-22 2022-07-05 Palantir Technologies Inc. Continuous builds of derived datasets in response to other dataset updates
US10552524B1 (en) 2017-12-07 2020-02-04 Palantir Technolgies Inc. Systems and methods for in-line document tagging and object based data synchronization
US10360252B1 (en) 2017-12-08 2019-07-23 Palantir Technologies Inc. Detection and enrichment of missing data or metadata for large data sets
US11176116B2 (en) 2017-12-13 2021-11-16 Palantir Technologies Inc. Systems and methods for annotating datasets
US10853352B1 (en) 2017-12-21 2020-12-01 Palantir Technologies Inc. Structured data collection, presentation, validation and workflow management
GB201800595D0 (en) 2018-01-15 2018-02-28 Palantir Technologies Inc Management of software bugs in a data processing system
US10599762B1 (en) 2018-01-16 2020-03-24 Palantir Technologies Inc. Systems and methods for creating a dynamic electronic form
US11645261B2 (en) 2018-04-27 2023-05-09 Oracle International Corporation System and method for heterogeneous database replication from a remote server
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
US11263263B2 (en) 2018-05-30 2022-03-01 Palantir Technologies Inc. Data propagation and mapping system
US11061542B1 (en) 2018-06-01 2021-07-13 Palantir Technologies Inc. Systems and methods for determining and displaying optimal associations of data items
US10795909B1 (en) 2018-06-14 2020-10-06 Palantir Technologies Inc. Minimized and collapsed resource dependency path
US10789195B1 (en) * 2019-07-17 2020-09-29 Capital One Services, Llc Article, device, and techniques for serverless streaming message processing
CN110688859B (zh) * 2019-09-18 2024-09-06 平安科技(深圳)有限公司 基于机器学习的语义解析方法、装置、介质及电子设备
US11258885B2 (en) 2019-12-10 2022-02-22 Mellanox Technologies, Ltd. Flexible parser in a networking device
US11323372B2 (en) 2020-04-21 2022-05-03 Mellanox Technologies Ltd. Flexible steering
CN112486479A (zh) * 2020-11-30 2021-03-12 浙江中控技术股份有限公司 一种数据采集方法及装置
US11425230B2 (en) 2021-01-28 2022-08-23 Mellanox Technologies, Ltd. Efficient parsing tuned to prevalent packet types
US11711453B2 (en) 2021-10-24 2023-07-25 Mellanox Technologies, Ltd. Template-based packet parsing
US20250190457A1 (en) * 2023-12-08 2025-06-12 International Business Machines Corporation Optimizing publication and subscription expressiveness

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228477A (ja) * 1997-02-13 1998-08-25 Nec Corp 一括検索方式
JP2000298590A (ja) * 1999-03-19 2000-10-24 Internatl Business Mach Corp <Ibm> 発行・引用サービスを提供するメッセージ・ブローカ及び発行・引用環境においてメッセージを処理する方法
JP2002073662A (ja) * 2000-09-05 2002-03-12 Nippon Hoso Kyokai <Nhk> 情報提示装置及び情報提示プログラムを記録した記録媒体

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
IL100990A (en) * 1991-02-27 1995-10-31 Digital Equipment Corp Multilanguage optimizing compiler using templates in multiple pass code generation
US5287490A (en) * 1991-03-07 1994-02-15 Digital Equipment Corporation Identifying plausible variable length machine code of selecting address in numerical sequence, decoding code strings, and following execution transfer paths
JPH0792758B2 (ja) * 1992-01-17 1995-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション コンパイラおよびコンパイル方法
US5481708A (en) * 1992-06-05 1996-01-02 Borland International, Inc. System and methods for optimizing object-oriented compilations
US5835771A (en) * 1995-06-07 1998-11-10 Rogue Wave Software, Inc. Method and apparatus for generating inline code using template metaprograms
US6578197B1 (en) * 1998-04-08 2003-06-10 Silicon Graphics, Inc. System and method for high-speed execution of graphics application programs including shading language instructions
US6378126B2 (en) * 1998-09-29 2002-04-23 International Business Machines Corporation Compilation of embedded language statements in a source code program
US6748374B1 (en) * 1998-12-07 2004-06-08 Oracle International Corporation Method for generating a relational database query statement using one or more templates corresponding to search conditions in an expression tree
US6397383B1 (en) * 1999-02-26 2002-05-28 International Business Machines Corp. Constraint language parser which rejects invalid filter constraint during run time
US6772413B2 (en) * 1999-12-21 2004-08-03 Datapower Technology, Inc. Method and apparatus of data exchange using runtime code generator and translator
US7590644B2 (en) * 1999-12-21 2009-09-15 International Business Machine Corporation Method and apparatus of streaming data transformation using code generator and translator
US7577834B1 (en) * 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US7376939B1 (en) * 2002-02-07 2008-05-20 Xilinx, Inc. System for architecture and resource specification and methods to compile the specification onto hardware
US7480856B2 (en) * 2002-05-02 2009-01-20 Intel Corporation System and method for transformation of XML documents using stylesheets
US7596523B2 (en) * 2002-09-09 2009-09-29 Barra, Inc. Method and apparatus for network-based portfolio management and risk-analysis
US7051322B2 (en) * 2002-12-06 2006-05-23 @Stake, Inc. Software analysis framework
US7089542B2 (en) * 2002-12-13 2006-08-08 International Business Machines Corporation Method and apparatus for finding errors in software programs using satisfiability of constraints
US7093231B2 (en) * 2003-05-06 2006-08-15 David H. Alderson Grammer for regular expressions
US7818729B1 (en) * 2003-09-15 2010-10-19 Thomas Plum Automated safe secure techniques for eliminating undefined behavior in computer software
US7856624B2 (en) * 2003-09-15 2010-12-21 Thomas Plum Automated safe secure techniques for eliminating undefined behavior in computer software
WO2005029241A2 (en) * 2003-09-15 2005-03-31 Plum Thomas S Automated safe secure techniques for eliminating
US7636914B1 (en) * 2003-10-24 2009-12-22 The Math Works, Inc. System and method for providing context to operator overloading
US7340732B2 (en) * 2003-11-26 2008-03-04 Sun Microsystems, Inc. Updating profile frequency for procedure inlining
US7665075B1 (en) * 2004-03-17 2010-02-16 Sun Microsystems, Inc. Methods for sharing of dynamically compiled code across class loaders by making the compiled code loader reentrant
US7673293B2 (en) * 2004-04-20 2010-03-02 Hewlett-Packard Development Company, L.P. Method and apparatus for generating code for scheduling the execution of binary code
US7607120B2 (en) * 2004-04-20 2009-10-20 Hewlett-Packard Development Company, L.P. Method and apparatus for creating data transformation routines for binary data
US7594221B2 (en) * 2004-04-20 2009-09-22 Hewlett-Packard Development Company, L.P. Method and apparatus for translating binary code
CN100464329C (zh) * 2005-06-14 2009-02-25 联想(北京)有限公司 动态结构化查询语言语句的构造方法
GB0514191D0 (en) 2005-07-12 2005-08-17 Ibm Methods, apparatus and computer programs for optimized parsing and service invocation
US7926046B2 (en) * 2005-12-13 2011-04-12 Soorgoli Ashok Halambi Compiler method for extracting and accelerator template program
US7818732B2 (en) * 2006-05-08 2010-10-19 Protomatics, Inc. Transfer syntax notational system and method
US8166465B2 (en) * 2007-04-02 2012-04-24 International Business Machines Corporation Method and system for composing stream processing applications according to a semantic description of a processing goal
US7941791B2 (en) * 2007-04-13 2011-05-10 Perry Wang Programming environment for heterogeneous processor resource integration
US8056065B2 (en) * 2007-09-26 2011-11-08 International Business Machines Corporation Stable transitions in the presence of conditionals for an advanced dual-representation polyhedral loop transformation framework
US8087010B2 (en) * 2007-09-26 2011-12-27 International Business Machines Corporation Selective code generation optimization for an advanced dual-representation polyhedral loop transformation framework
US8087011B2 (en) * 2007-09-26 2011-12-27 International Business Machines Corporation Domain stretching for an advanced dual-representation polyhedral loop transformation framework
US8156474B2 (en) * 2007-12-28 2012-04-10 Cadence Design Systems, Inc. Automation of software verification
US8181167B2 (en) * 2008-01-09 2012-05-15 Kan Zhao Method and system for presenting and analyzing software source code through intermediate representation
JP4336735B1 (ja) * 2008-09-18 2009-09-30 株式会社三菱東京Ufj銀行 サービス処理装置、システム、プログラム及び記録媒体
US8266604B2 (en) * 2009-01-26 2012-09-11 Microsoft Corporation Transactional memory compatibility management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228477A (ja) * 1997-02-13 1998-08-25 Nec Corp 一括検索方式
JP2000298590A (ja) * 1999-03-19 2000-10-24 Internatl Business Mach Corp <Ibm> 発行・引用サービスを提供するメッセージ・ブローカ及び発行・引用環境においてメッセージを処理する方法
JP2002073662A (ja) * 2000-09-05 2002-03-12 Nippon Hoso Kyokai <Nhk> 情報提示装置及び情報提示プログラムを記録した記録媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200500734005; 岡本 隆史,竹内 陽一,横山 和俊,松田 栄之: 'XML文書の差分分析を用いたSOAP通信処理の性能向上手法' コンピュータシステム・シンポジウム論文集 第2004巻 第13号, 20041116, p.45-p.54, 社団法人情報処理学会 *
JPN6013008225; 岡本 隆史,竹内 陽一,横山 和俊,松田 栄之: 'XML文書の差分分析を用いたSOAP通信処理の性能向上手法' コンピュータシステム・シンポジウム論文集 第2004巻 第13号, 20041116, p.45-p.54, 社団法人情報処理学会 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014505896A (ja) * 2010-11-04 2014-03-06 ディジマーク コーポレイション スマートフォンベースの方法及びシステム
JP2022091978A (ja) * 2012-12-21 2022-06-21 デカ・プロダクツ・リミテッド・パートナーシップ 電子患者ケアのためのシステム
JP7423679B2 (ja) 2012-12-21 2024-01-29 デカ・プロダクツ・リミテッド・パートナーシップ 電子患者ケアのためのシステム
JP2024038414A (ja) * 2012-12-21 2024-03-19 デカ・プロダクツ・リミテッド・パートナーシップ 電子患者ケアのためのシステム
JP7769017B2 (ja) 2012-12-21 2025-11-12 デカ プロダクツ リミティド パートナーシップ 電子患者ケアのためのシステム
US11049094B2 (en) 2014-02-11 2021-06-29 Digimarc Corporation Methods and arrangements for device to device communication

Also Published As

Publication number Publication date
US8381201B2 (en) 2013-02-19
US20080196016A1 (en) 2008-08-14
US8161468B2 (en) 2012-04-17
CN101246486A (zh) 2008-08-20
CN101246486B (zh) 2012-02-01
US20120137276A1 (en) 2012-05-31
JP5400305B2 (ja) 2014-01-29

Similar Documents

Publication Publication Date Title
JP5400305B2 (ja) 式の処理を改良した方法、装置、およびコンピュータプログラム
US11394805B1 (en) Automatic discovery of API information
US10630614B2 (en) Opaque message parsing
US7529833B2 (en) Method, system, and web service broker for dynamic web service invocation
US7391735B2 (en) Parsing messages with multiple data formats
KR101004576B1 (ko) 연쇄 발견 웹 서비스
CN102185900B (zh) 一种应用服务平台系统和一种开发应用服务的方法
US20070016897A1 (en) Methods, apparatus and computer programs for optimized parsing and service invocation
WO2020185891A1 (en) Methods, systems, and computer readable media for data translation using a representational state transfer (rest) application programming interface (api)
US7996840B2 (en) Method, system, and apparatus for scheduling pattern based web services
CN112637289A (zh) 一种微服务请求处理方法、设备及存储介质
CN111654542B (zh) 代理服务器、执行服务器、接收设备以及任务执行方法
US7533383B2 (en) Method, system, and apparatus for scheduling pattern based web services
CN100352198C (zh) 用于处理对Web服务的请求的方法和系统
US7289989B2 (en) Pattern based web services
US8819135B2 (en) Method of performing data mediation, and an associated computer program product, data mediation device and information system
US7251674B2 (en) Internationalization of the web services infrastructure
US8099498B2 (en) Probabilistic mesh routing
US9164781B2 (en) Client bundle resource creation
Oh et al. Semantic web-service discovery and composition using flexible parameter matching
JP5732926B2 (ja) リモートプロシージャコール処理方法
Sabbouh et al. Data Sharing for Cloud Computing Platforms
CN117648212B (zh) 基于rpc的数据库调用方法、装置、设备及存储介质
US9218402B2 (en) Method for converting MOF files for compatibility with incompatible CIM implementations
CN120931240A (zh) 业务流程管理方法、电子设备和计算机程序产品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130517

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: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131025

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees