JP2005222533A - 挿入されたメッセージ修正を使用した、コード作成のため受信したメッセージディスパッチの調整 - Google Patents

挿入されたメッセージ修正を使用した、コード作成のため受信したメッセージディスパッチの調整 Download PDF

Info

Publication number
JP2005222533A
JP2005222533A JP2005004312A JP2005004312A JP2005222533A JP 2005222533 A JP2005222533 A JP 2005222533A JP 2005004312 A JP2005004312 A JP 2005004312A JP 2005004312 A JP2005004312 A JP 2005004312A JP 2005222533 A JP2005222533 A JP 2005222533A
Authority
JP
Japan
Prior art keywords
message
receive path
dispatch
modification
modifying
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
JP2005004312A
Other languages
English (en)
Other versions
JP2005222533A5 (ja
JP5042454B2 (ja
Inventor
Daniel W Roth
ダブリュ.ロス ダニエル
David A Wortendyke
エー.ワーテンダイク デビッド
David E Levin
イー.レビン デビッド
Dhananjay M Mahajan
エム.マハジャン ダーナンジェイ
Erik B Christensen
ビー.クリステンセン エリク
George P Copeland
ピー.コープランド ジョージ
Luis F Cabrera
エフ.カブレラ ルイス
Scott C Seely
シー.シーリー スコット
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005222533A publication Critical patent/JP2005222533A/ja
Publication of JP2005222533A5 publication Critical patent/JP2005222533A5/ja
Application granted granted Critical
Publication of JP5042454B2 publication Critical patent/JP5042454B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 ディスパッチする前に挿入されたメッセージ修正を使用して、動的に、コード作成するために受信したメッセージをディスパッチする機構を提供すること。
【解決手段】 メッセージを受信した後、ディスパッチ用コンポーネントに渡される前、そのメッセージの受信経路内に配置された1つまたは複数の受信経路コンポーネントを通過する。1つまたは複数の受信経路コンポーネントは、ディスパッチを実行するためにディスパッチ用コンポーネントにとって役立つ可能性がある情報を含むように、そのメッセージを修正することができる。ディスパッチ用コンポーネントは、修正されたメッセージを受け取り、その修正済みメッセージからの情報を使用し、ディスパッチを実行する。ディスパッチ用コンポーネントは、そのメッセージと共に行われるべき処理をより柔軟に識別することができる。そのメッセージにとって理想的な、専門的で柔軟な処理が可能となる。
【選択図】 図4

Description

本発明はコンピューティング技術に関し、より詳細には、ディスパッチする前に挿入された(inter−positioned)メッセージ修正を使用して、動的に、コード作成する(code)ために受信したメッセージをディスパッチする機構に関する。
コンピューティング技術により、人々の仕事と遊びの方法は変容することとなった。現在、コンピューティングシステムは、デスクトップコンピュータ、ラップトップコンピュータ、タブレットPC、携帯情報端末(PDA)、家庭向け装置などを含めて、多種多様な態様で提供されている。コンピューティングシステムは、その最も基本的な形として、システムメモリと、1つまたは複数のプロセッサとを備える。システムメモリ内のソフトウェアがプロセッサによって実行され、そのコンピューティングシステムの他のハードウェアに所望の機能を実行するように指示することができる。
ソフトウェアは通常、非常に複雑であり、数千、あるいは数百万行ものソースコードからコンパイルされ、または解釈される。ソフトウェア開発プロセスを少しでも秩序をもったものにするため、より特定の動作を実行する管理可能なサブルーチンまたはメソッドに、そのタスクを分割することができる。そのソフトウェアのより複雑な機能を全体として実行するため、メソッド同士を相関付ける(interrelate)。メッセージ処理システムでは、受信したメッセージは、それがどのような周囲の関連事実によりアクセス可能であるかに応じて、1つまたは複数のこれらのメソッドの処理を行うディスパッチ機構(dispatching mechanism)によってディスパッチされる。
最も適切なディスパッチを実行するためには、ディスパッチ用コンポーネントが可能な限り関連する情報にアクセスできる方が有利となるであろう。しかし、システム内のコンポーネントすべてが情報に等しくアクセスできるわけではない。たとえば、ディスパッチ機構は、メッセージがいずれの接続を介して受信したか、いずれのプロトコルを使用してメッセージを送達するか、メッセージ交換の履歴、現在のロードバランシング状態、メッセージが受信した時刻、メッセージの送信者の重要度などに関して直接情報を有していない可能性がある。さらに、関連情報がメッセージ自体の中に存在しないか、または少なくとも、メッセージから容易にはアクセスできない可能性がある。
したがって、より柔軟な適切にメッセージを処理を可能にするため、メッセージのディスパッチを実行する際ディスパッチ機構が以前には未知であった情報、またはアクセスするのが困難な情報を、より容易に受け入れることが可能となる機構が有利となりうるのである。
従来技術に関する上述の問題は、ネットワーク環境内の他のコンピューティングシステムからメッセージを受信することが可能な受信コンピューティングシステムを含むネットワーク環境内で実施することができる本発明の原理によって解決される。受信コンピューティングシステムは、さらに処理するために、受信したメッセージを1つまたは複数のメソッドのグループにディスパッチするディスパッチ用コンポーネントを備える。本発明の原理は、たとえディスパッチ機構がディスパッチに関連する何らかの情報に直接アクセスできない可能性があるにせよ、また例えその情報が存在しない、あるいは受信コンピューティングシステムによって受信したメッセージから容易に得られないとしても、ディスパッチ用コンポーネントが受信したメッセージをディスパッチする機構に関する。
メッセージを受信した後に、そのメッセージは、ディスパッチ用コンポーネントに渡される前にそのメッセージの受信経路内に配置された1つまたは複数の受信経路コンポーネントを通過する。1つまたは複数の受信経路コンポーネントは、ディスパッチを実行するためにディスパッチ用コンポーネントにとって役立つ可能性がある情報を含むように、そのメッセージを修正することができる。そのような情報には、たとえば、そのメッセージがいずれの接続を介して受信したか、そのメッセージを受信するために使用されたプロトコルの種類、そのメッセージが受信した時刻、そのメッセージの取扱い優先順位、そのメッセージの送信者の状況、そのコンピューティングシステムの負荷、またはディスパッチに役立つ任意の他の情報が含まれる。ディスパッチ用コンポーネントは、修正されたメッセージを受け取り、(潜在的に修正それ自体を含め)その修正済みメッセージからの情報を使用してディスパッチを実行する。
ディスパッチ用コンポーネントにとって役立つ追加情報を含むようにメッセージを修正するため、ディスパッチ用コンポーネントは、そのメッセージと共に行われるべき処理をより柔軟に識別することができる。したがって、そのメッセージにとって理想的な、専門的で柔軟な処理が可能となる。たとえば、送信者が大口顧客であった場合、送信者が小口顧客であった場合と異なるコードによって特別に処理することができる。この場合、顧客データベースにアクセスできる受信経路内のコンポーネントは、適切な顧客状況をメッセージに追加することができ、それにより、メッセージをディスパッチ用コンポーネントによって適切にディスパッチすることができる。
本発明の追加の特徴および利点は、以下の説明で述べられることになり、また一部には、その説明から自明となり、あるいは、本発明を実施することによって学習することができる。本発明の特徴および利点は、特許請求の範囲で特に指摘されている手段および組合せによって実現し獲得することができる。本発明のこれら、および他の特徴は、以下の説明と特許請求の範囲から、より完全に明らかとなり、あるいは以下で述べられている本発明を実施することによって学習することができる。
本発明の上記の、また他の利点および特徴を得ることができるやり方を述べるため、簡単に上述した本発明について、添付の図面に示されているその特定の実施形態を参照することによって、より具体的に述べる。これらの図面は、本発明の典型的な実施形態を示すにすぎず、したがってその範囲を制限するものとみなすべきでないことを理解して、本発明について、添付の図面を使用することによって追加の特殊性および詳細と共に述べ、かつ説明する。
本発明の原理は、メッセージを受信した後に、そのメッセージが、ディスパッチ用コンポーネントに渡される前に受信経路内に配置された1つまたは複数の受信経路コンポーネントを通過する機構に関する。1つまたは複数の受信経路コンポーネントは、ディスパッチを実行するためにディスパッチ用コンポーネントにとって役立つ可能性がある情報を含むように、そのメッセージを修正することができる。ディスパッチ用コンポーネントは、修正されたメッセージを受け取り、(潜在的に修正それ自体を含め)その修正済みメッセージからの情報を使用してディスパッチを実行する。ディスパッチ用コンポーネントにとって役立つ追加情報を含むようにメッセージを修正するため、ディスパッチ用コンポーネントは、そのメッセージと共に行われるべき処理をより柔軟に識別することができる。したがって、そのメッセージとして理想的な、専門的で柔軟な処理を可能とすることができる。
図面では、同じ符号は同じ要素を指すが、本発明が好適なコンピューティング環境内で実施される様子が示される。以下の説明は、本発明の例示された実施形態に基づいており、本明細書で明示的に述べられていない代替の実施形態に関して、本発明を限定すると考えるべきでない。
以下の説明では、別段の表示がない限り、本発明について、1つまたは複数のコンピュータによって実行される動作や、演算を記号で表したものを参照して述べる。したがって、そのような動作および演算は、「コンピュータによって実行された」と呼ぶことができ、構造化された形でデータを表す電気信号をコンピュータの処理装置が操作することを含むことを理解されたい。この操作により、データが変換され、またはコンピュータのメモリシステム内の所定の場所においてデータが維持され、当業者には容易に理解できる方法で、コンピュータの演算が再構成され、または他の方法で変更される。データを維持するデータ構造は、データのフォーマットによって定義された特定の特性を有するメモリの物理的配置である。しかし、本発明について前述の文脈で述べるが、当業者であれば以下で述べる様々な動作および演算をハードウェアで実行することもできることを理解するように、何らかの限定を意味するものではない。図1は、これらのデバイスにとって使用可能なコンピュータアーキテクチャの例の概略図である。
図1のアーキテクチャは、説明のための好適な環境の一例にすぎず、本発明の使用または機能の範囲についてどのような限定を暗示するものでもない。コンピューティングシステムは、図1に示されている任意の1つのコンポーネントまたはコンポーネントの組合せに関してどのような依存または要件もないものと解釈すべきである。
本発明は、多数の他の汎用または専用コンピューティング環境もしくは構成、または通信環境もしくは構成と共に動作可能である。本発明と共に使用するのに適した周知のコンピューティングシステム、環境、構成の例には、それだけには限らないが、移動電話、ポケットコンピュータ、パーソナルコンピュータ、サーバ、マルチプロセッサシステム、マイクロプロセッサをベースとするシステム、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境が含まれる。
コンピューティングシステム100は、一般に、その最も基本的な構成では、少なくとも1つの処理装置102およびメモリ104を含む。メモリ104は、揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、またはその2つの何らかの組合せとすることができる。この最も基本的な構成が、図1に破線106によって示されている。
記憶媒体デバイスは、追加の特徴および機能を有することができる。たとえば、それだけには限らないが、PCMCIAカード、磁気ディスクおよび光ディスク、ならびに磁気テープを含めて、追加の記憶装置(取外し式および固定式)を含むことができる。そのような追加の記憶装置は、図1に、取外し式記憶装置108および固定式記憶装置110によって示されている。コンピュータ記憶媒体には、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータなど情報を記憶するための任意の方法または技術で実施される揮発性と不揮発性、取外し式と固定式の媒体が含まれる。メモリ104、取外し式記憶装置108、および固定式記憶装置110は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体には、それだけには限らないが、RAM、ROM、EEPROM、フラッシュメモリ、他のメモリ技術、CD−ROM、デジタル多用途ディスク、他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶、または他の磁気記憶デバイス、および、所望の情報を記憶するために使用することができ、コンピューティングシステムによってアクセスすることができる任意の他の媒体が含まれる。
本明細書では、「モジュール」または「コンポーネント」という用語は、コンピューティングシステム上で実行されるソフトウェアオブジェクトまたはルーチンを指す可能性がある。本明細書に述べられている様々なコンポーネント、モジュール、エンジン、サービスは、(たとえば、別個のスレッドとして)コンピューティングシステム上で実行されるオブジェクトまたはプロセスとして実装することができる。本明細書に述べられているシステムおよび方法は、ソフトウェアで実施されることが好ましいが、ソフトウェアとハードウェア、あるいはハードウェアで実施することも可能であり、そのように企図されている。
コンピューティングシステム100はまた、ホストが、ネットワーク120を介して他のシステムおよびデバイスと通信することを可能にする通信チャネル112を含むことができる。通信チャネル112は、通信媒体の例である。通信媒体は、一般に、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送機構など変調データ信号に統合する。限定ではなく例を挙げると、通信媒体は、有線ネットワークおよび直接配線接続など有線媒体と、音響、電波、赤外線および他の無線媒体など無線媒体とを含む。本明細書では、「コンピュータ読取可能な媒体」という用語は、記憶媒体と通信媒体を共に含む。
コンピューティングシステム100はまた、キーボード、マウス、ペン、音声入力コンポーネント、タッチ入力デバイスなど、入力コンポーネント114を備えることができる。出力コンポーネント116は、画面ディスプレイ、スピーカ、プリンタなど、また、それらを駆動するための(しばしば「アダプタ」と呼ばれる)出力(rendering)モジュールを含む。コンピューティングシステム100は、電源118を有する。これらのコンポーネントはすべて、当技術分野で知られており、ここで詳細に論じる必要はない。
図2は、本発明の原理に従って、協動して相互作用し、受信したメッセージの柔軟なディスパッチを実行することができる様々なコンポーネント200を示す。この様々なコンポーネントは、図1のコンピューティングシステム100の状況で実行されたとき、メモリ104内でインスタンス化され、および/または、たとえば取外し式記憶装置108および/または固定式記憶装置110など永続メモリ内で持続することができる。永続(persistent)メモリとしては、たとえば磁気ディスクがある。
メッセージ201は、1つまたは複数の受信経路コンポーネントを含むメッセージ受信経路202内で受信される。たとえば、メッセージ受信経路202は、おそらくは水平省略記号202Bによって表された他のものの中でもとりわけ、受信経路コンポーネント202Aを含むものとして示す。受信経路コンポーネントは、たとえば、接続層、暗号化層、アクセス制御層、環境解析層、接続マネージャ、アプリケーションプログラム、または、メッセージがディスパッチ用コンポーネント205に送られる前にメッセージ201にアクセスできる任意の他のコンポーネントとすることができる。たとえば図1のコンピューティングシステム100のメモリ内で、様々な受信経路コンポーネントを実装することができる。
受信経路コンポーネントの少なくとも1つは、少なくとも1つの修正によりそのメッセージを修正するように構成される。修正されたメッセージを、追加された情報204と共に図2に修正済みメッセージ201’として示すが、この追加情報はそれによって示されたその修正によって表されるのである。この修正には、たとえば、1つまたは複数のデータフィールドの追加、1つまたは複数のデータフィールドの削除、および/または1つまたは複数のデータフィールドの修正が含まれる。たとえば、メッセージ201がシンプルオブジェクトアクセスプロトコル(SOAP)エンベロープであった場合、追加された情報204は、追加、削除または修正されたSOAPヘッダとすることができるが、本発明の原理によってメッセージ201の本文内のデータフィールドの修正が排除されることはない。この情報は、修正によって学習し、または取得することができる任意の新しい情報を示す。たとえば、ディスパッチ用コードは、その修正が何であったかではなく、修正が加えられたか否かに関心があるにすぎない可能性がある。
ディスパッチ用コンポーネント205は、修正済みメッセージ201’を受け取り、ディスパッチ規則206と(追加された情報204’を含む可能性がある)修正済みメッセージ201’からの情報とを使用し、1つまたは複数のメソッドのどのグループにそのメッセージを送信するか識別する。追加された情報204’は、デスクリプト(descript)とすることができる。図2の例では、修正済みメッセージ201’を、たとえば、さらに処理するためにメソッド207に送信することができる。受信経路コンポーネントは、ディスパッチ用コンポーネント205によって容易にアクセスすることができない、あるいはまったくアクセスすることができない情報にアクセスできる可能性がある。たとえば、受信経路コンポーネント202Aによってアクセス可能な情報203Aは、修正済みメッセージ201’によってアクセスすることができない場合があり得る。したがって、受信経路コンポーネントがメッセージ201に情報を追加することを可能にすることにより、ディスパッチ用コンポーネント205は、通常なら容易にアクセス(またはまったくアクセス)することができないはずの情報を使用し、どこにメッセージ201’をディスパッチするかについて、より知性をもって判断をすることができる。
図3は、ディスパッチ機構が受信したメッセージをディスパッチする方法300のフローチャートを示すが、この方法を使用しても、ディスパッチ機構がディスパッチに関連する何らかの情報に直接アクセスできない可能性があり、また、その情報が存在しない、または受信コンピューティングシステムによって受信したメッセージから容易に得られない可能性がある。まず、メッセージが受信される(動作301)。次いで、そのメッセージは、ディスパッチ用コンポーネントに渡される前に、そのメッセージの受信経路内に配置された1つまたは複数の受信経路コンポーネントを通過する(動作302)。これが行われているとき、受信経路コンポーネントの少なくとも1つは、少なくとも1つの修正によりメッセージを修正する(動作303)。この修正は、たとえば、接続層、暗号化層、アクセス制御層、環境解析層、接続マネージャ、アプリケーションプログラム、またはディスパッチ用コンポーネントによって受信される前にメッセージの経路内にある任意の他のコンポーネントなど、受信経路コンポーネントの1つまたは複数によって実行することができる。ディスパッチ用コンポーネントは、考えられるメッセージ内の他の情報と共にメッセージの修正を受信し(動作304)、どこに修正済みメッセージをディスパッチするか判定するため、ディスパッチ規則のリストを評価する(動作305)。
図4は、修正済みメッセージを使用してディスパッチするための方法400を示すフローチャートである。まず、ディスパッチ用コンポーネントは、メッセージに対する修正内に存在する情報を参照するディスパッチ規則にアクセスする(動作401)。次いで、ディスパッチ用コンポーネントは、ディスパッチ規則に従ってメッセージをディスパッチする。一実施形態において、メッセージは、階層構造化された文書とすることができる。その場合、ディスパッチ規則は、Xpathステートメントを使用して表現することができるが、これは必ずしも必要ではない。
追加された情報204は、たとえば、メッセージがいずれの接続を介して受信したかを識別する接続識別情報とすることができる。これにより、ディスパッチ機構はメッセージを、そのインスタンスに対応する適切なコードインスタンスにディスパッチすることができるようになる。
またはこれに替えて、追加された情報は、たとえばメッセージを受信するために使用されたプロトコル種別とすることができる。これは、そのプロトコルにとって適切なコードに対してディスパッチする際の支援となるであろう。たとえば、特定のプロトコルに従うといわれるメッセージを妥当性検査するように、ある種のコードを適合させることができる。
追加された情報は、メッセージが受信した時刻を含むことができる。勤務時間外に受信した場合、勤務時間中に比べ、メッセージに対し一定の処理が実行されるであろう。この場合、受信時刻が与えられれば、ディスパッチ機構は適切なコードに対してディスパッチすることができる。
追加された情報は、取扱い優先順位を含むことができる。たとえば、大量の商品の注文を表すメッセージや、新規顧客からのメッセージは、優先順位が高いものと決定することができる。受信経路コンポーネントの1つは、顧客データベースにアクセスして取扱い優先順位を識別することが可能になる。したがって、ディスパッチ用コンポーネントは、たとえ受信したメッセージ自体に取扱い優先順位が指定されていなかったとしても、取扱い優先順位が与えられれば、適切なコードに対してディスパッチすることができる。
追加された情報はまた、送信者の状況に関する情報を含むことができる。たとえば、得意先顧客はある種の状況識別子を有することができ、新規顧客は別の状況識別子を有することができ、および小口顧客はさらに別の状況識別子を有することができる。この情報は、メッセージ送信者の状況が与えられれば、メッセージに追加して適切なディスパッチを可能にすることができる。
追加された情報はまた、コンピューティングシステムの現在のワークロードを含むことができる。受けている負荷が少ないコードに対してメッセージを送信することが適切な場合がある。
これらは、メッセージをディスパッチする際に有用となる可能性のある追加情報の諸例を示している。これらは、決して完全なリストとなるものではない。本発明の原理は、受信経路内にある間に、任意の様々な情報をメッセージに追加することを可能にすることであることを当業者なら(この説明を見直した後に)理解するであろう。したがって、この多種多様な情報を使用し、より柔軟かつ適切にメッセージをディスパッチすることができる。
本発明は、その精神または本質的な特徴から逸脱することなしに、他の特定の形態で実施することができる。上述の実施形態は、あらゆる面において限定的なものではなく、例示的なものにすぎないと見みすべきである。したがって、本発明の範囲は、上述の説明によってではなく、特許請求の範囲によって示される。特許請求の範囲と等価な意味および範囲内に入る変更はすべて、それらの範囲に包含すべきである。
本発明の特徴を実施することができる好適なコンピューティングシステムを示す図である。 本発明の原理に従って、協動して相互作用し、受信したメッセージの柔軟なディスパッチを実行することができる様々なコンポーネントを示す図である。 本発明の原理による、コンピューティングシステムが受信したメッセージの柔軟なディスパッチを実行する方法のフローチャートである。 修正されたメッセージを使用してディスパッチするための方法のフローチャートである。
符号の説明
102 処理装置
104 システムメモリ
108 取外し式記憶装置
110 固定式記憶装置
112 通信チャネル
114 入力コンポーネント
116 出力コンポーネント
118 電源
120 ネットワーク

Claims (34)

  1. ネットワーク環境内の他のコンピューティングシステムからメッセージを受信する機能を有し、さらに処理を行うように、受信したメッセージを1つまたは複数のメソッドのグループにディスパッチするディスパッチ用コンポーネントを含む受信コンピューティングシステムを含む該ネットワーク環境において、前記ディスパッチ機構がディスパッチに関連する何らかの情報に直接アクセスできない可能性がある場合でも、および該情報が存在しないか、または前記受信コンピューティングシステムによって受信したメッセージから容易に取得できない場合であっても、前記ディスパッチ機構により受信したメッセージをディスパッチする方法であって、
    メッセージを受信する動作と、
    前記ディスパッチ用コンポーネントに渡される前に前記メッセージの受信経路内に配置された1つまたは複数の受信経路コンポーネントによって前記受信したメッセージを通過させる動作と、
    前記1つまたは複数の受信経路コンポーネントの少なくとも1つが、少なくとも1つの修正により前記メッセージを修正する動作と、
    前記ディスパッチ機構が前記修正済みメッセージを前記受信経路から受信する動作と、
    前記ディスパッチ機構が、前記少なくとも1つの修正から取得可能な情報を使用し、さらに処理するように前記メッセージを1つまたは複数のメソッドのグループにディスパッチする動作と
    を備えたことを特徴とする方法。
  2. 前記メッセージは、シンプルオブジェクトアクセスプロトコル(SOAP)エンベロープを含み、
    前記1つまたは複数の受信経路コンポーネントの少なくとも1つが前記メッセージを修正する動作は、追加情報を有するSOAPヘッダを前記メッセージに追加する動作を含むことを特徴とする請求項1に記載の方法。
  3. 前記1つまたは複数の受信経路コンポーネントの少なくとも1つが前記メッセージを修正する動作は、
    少なくとも1つのデータフィールドを前記メッセージに追加する動作を含むことを特徴とする請求項1に記載の方法。
  4. 前記1つまたは複数の受信経路コンポーネントの少なくとも1つが前記メッセージを修正する動作は、
    前記メッセージ内の少なくとも1つのデータフィールドを修正する動作を含むことを特徴とする請求項1に記載の方法。
  5. 前記1つまたは複数の受信経路コンポーネントの少なくとも1つが前記メッセージを修正する動作は、
    少なくとも1つのデータフィールドを前記メッセージから削除する動作を含むことを特徴とする請求項1に記載の方法。
  6. 前記1つまたは複数の受信経路コンポーネントの少なくとも1つが前記メッセージを修正する動作は、
    受信コンポーネントが前記メッセージを修正する動作を含むことを特徴とする請求項1に記載の方法。
  7. 前記1つまたは複数の受信経路コンポーネントの少なくとも1つが前記メッセージを修正する動作は、
    前記受信コンポーネント以外の受信経路コンポーネントが前記メッセージを修正する動作を含むことを特徴とする請求項1に記載の方法。
  8. 前記1つまたは複数の受信経路コンポーネントの少なくとも1つが前記メッセージを修正する動作は、
    単一の受信経路コンポーネントが前記メッセージを修正する動作を含むことを特徴とする請求項1に記載の方法。
  9. 前記1つまたは複数の受信経路コンポーネントの少なくとも1つが前記メッセージを修正する動作は、
    複数の受信経路コンポーネントが前記メッセージを修正する動作を含むことを特徴とする請求項1に記載の方法。
  10. 前記少なくとも1つの修正は、前記メッセージがいずれの接続を介して受信したかを識別する接続識別を含むことを特徴とする請求項1に記載の方法。
  11. 前記少なくとも1つの修正は、前記メッセージを受信するために使用されたプロトコル種別を含むことを特徴とする請求項1に記載の方法。
  12. 前記少なくとも1つの修正は、前記メッセージが受信した時刻を含むことを特徴とする請求項1に記載の方法。
  13. 前記少なくとも1つの修正は、前記メッセージの取扱い優先順位に関する情報を含むことを特徴とする請求項1に記載の方法。
  14. 前記少なくとも1つの修正は、前記メッセージの送信者の状況に関する情報を含むことを特徴とする請求項1に記載の方法。
  15. 前記少なくとも1つの修正は、前記コンピューティングシステムの負荷に関する情報を含むことを特徴とする請求項1に記載の方法。
  16. 前記ディスパッチ機構が、前記少なくとも1つの修正を使用し、さらに処理するように前記メッセージを1つまたは複数のメソッドのグループにディスパッチする動作は、
    前記メッセージに対する前記少なくとも1つの修正内に存在する情報を参照するディスパッチ規則にアクセスする動作と、
    前記ディスパッチ規則に従って前記メッセージをディスパッチする動作と
    を含むことを特徴とする請求項1に記載の方法。
  17. 前記ディスパッチ規則は、1つまたは複数のXpathステートメントを使用して表現されることを特徴とする請求項16に記載の方法。
  18. さらに処理するように、受信したメッセージを1つまたは複数のメソッドのグループにディスパッチするディスパッチ用コンポーネントを含み、ネットワーク環境内の他のコンピューティングシステムからメッセージを受信する機能を有する受信コンピューティングシステムを含むネットワーク環境において使用するコンピュータプログラム製品であって、前記ディスパッチ機構がディスパッチに関連する何らかの情報に直接アクセスできない可能性がある場合でも、および該情報が存在しないか、または前記受信コンピューティングシステムによって受信したメッセージから容易に取得されない場合であっても、前記ディスパッチ機構により受信したメッセージをディスパッチする方法を実行し、前記コンピューティングシステムの1つまたは複数のプロセッサによって実行されると、
    メッセージを受信する動作と、
    少なくとも1つの修正により前記メッセージを修正する動作と、
    前記ディスパッチ機構が前記修正済みメッセージを前記受信経路から受信する動作と、
    前記ディスパッチ機構が、前記少なくとも1つの修正から取得可能な情報を使用し、さらに処理するために前記メッセージを1つまたは複数のメソッドのグループにディスパッチすることができるように、1つまたは複数の他の受信経路コンポーネントから前記ディスパッチ機構に少なくとも間接的に、前記修正済みメッセージを提供する動作と
    を前記コンピューティングシステムに実行させるコンピュータ実行可能命令を有する1つまたは複数のコンピュータ読取可能な媒体を備えたことを特徴とするコンピュータプログラム製品。
  19. 前記メッセージは、シンプルオブジェクトアクセスプロトコル(SOAP)エンベロープを含み、
    前記1つまたは複数の受信経路コンポーネントの少なくとも1つを実行して前記メッセージを修正する動作を実行するためのコンピュータ実行可能命令は、追加情報を有するSOAPヘッダを前記メッセージに追加する動作を実行するためのコンピュータ実行可能命令を含むことを特徴とする請求項18に記載のコンピュータプログラム製品。
  20. 前記少なくとも1つの修正によりメッセージを修正する動作を実行するためのコンピュータ実行可能命令は、
    少なくとも1つのデータフィールドを前記メッセージに追加する動作を実行するためのコンピュータ実行可能命令を含むことを特徴とする請求項18に記載のコンピュータプログラム製品。
  21. 前記少なくとも1つの修正によりメッセージを修正する動作を実行するためのコンピュータ実行可能命令は、
    前記メッセージ内の少なくとも1つのデータフィールドを修正する動作を実行するためのコンピュータ実行可能命令を含むことを特徴とする請求項18に記載のコンピュータプログラム製品。
  22. 前記少なくとも1つの修正によりメッセージを修正する動作を実行するためのコンピュータ実行可能命令は、
    少なくとも1つのデータフィールドを前記メッセージから削除する動作を実行するためのコンピュータ実行可能命令を含むことを特徴とする請求項18に記載のコンピュータプログラム製品。
  23. 前記少なくとも1つの修正は、前記メッセージがいずれの接続を介して受信したかを識別する接続識別を含むことを特徴とする請求項18に記載のコンピュータプログラム製品。
  24. 前記少なくとも1つの修正は、前記メッセージを受信するために使用されたプロトコル種別を含むことを特徴とする請求項18に記載のコンピュータプログラム製品。
  25. 前記少なくとも1つの修正は、前記メッセージが受信した時刻を含むことを特徴とする請求項18に記載のコンピュータプログラム製品。
  26. 前記少なくとも1つの修正は、前記メッセージの取扱い優先順位に関する情報を含むことを特徴とする請求項18に記載のコンピュータプログラム製品。
  27. 前記少なくとも1つの修正は、前記メッセージの送信者の状況に関する情報を含むことを特徴とする請求項18に記載のコンピュータプログラム製品。
  28. 前記少なくとも1つの修正は、前記コンピューティングシステムの負荷に関する情報を含むことを特徴とする請求項18に記載のコンピュータプログラム製品。
  29. 前記1つまたは複数のコンピュータ読取可能な媒体は、物理メモリ媒体を含むことを特徴とする請求項18に記載のコンピュータプログラム製品。
  30. 前記物理メモリ媒体は、永続メモリを含むことを特徴とする請求項29に記載のコンピュータプログラム製品。
  31. 前記物理メモリ媒体は、システムメモリを含むことを特徴とする請求項29に記載のコンピュータプログラム製品。
  32. ネットワーク環境内の他のコンピューティングシステムからメッセージを受信する機能を有し、さらに処理するように受信したメッセージを1つまたは複数のメソッドのグループにディスパッチするディスパッチ用コンポーネントを含む受信コンピューティングシステムを含むネットワーク環境において、前記ディスパッチ機構がディスパッチに関連する何らかの情報に直接アクセスできない可能性がある場合でも、および該情報が存在しないか、または前記受信コンピューティングシステムによって受信したメッセージから容易に取得されない場合であっても、前記ディスパッチ機構により受信したメッセージをディスパッチする方法であって、
    前記ディスパッチ機構に提供される前に、少なくとも1つの修正で前記受信したメッセージを修正するステップと、
    前記ディスパッチ機構が、前記少なくとも1つの修正から取得可能な情報を使用し、さらに処理するように前記メッセージを1つまたは複数のメソッドのグループにディスパッチする動作と
    を含むことを特徴とする方法。
  33. 前記受信したメッセージを修正するステップは、
    前記メッセージを受信する動作と、
    前記ディスパッチ用コンポーネントに渡される前に、前記メッセージの受信経路内に配置された1つまたは複数の受信経路コンポーネントによって前記受信したメッセージを送る動作と、
    前記1つまたは複数の受信経路コンポーネントの少なくとも1つが、少なくとも1つの修正で前記メッセージを修正する動作と、
    前記ディスパッチ機構が前記修正済みメッセージを前記受信経路から受信する動作と
    を含むことを特徴とする請求項32に記載の方法。
  34. 1つまたは複数のプロセッサと、
    システムメモリと、
    コンピュータ実行可能命令を有する1つまたは複数のコンピュータ読取可能な媒体であって、前記コンピュータ実行可能命令は、1つまたは複数のプロセッサによって実行されると、
    ディスパッチ用コンポーネントに渡される前に前記メッセージの受信経路内に配置される1つまたは複数の受信経路コンポーネントであって、受信経路コンポーネントの少なくとも1つが、少なくとも1つの修正で前記メッセージを修正するように構成された受信経路コンポーネントと、
    さらに処理するように、受信したメッセージを1つまたは複数のメソッドのグループにディスパッチし、および前記少なくとも1つの修正から取得可能な情報を使用し、前記メッセージをディスパッチするディスパッチ用コンポーネントと
    を前記コンピューティングシステムに前記システムメモリ内でインスタンス化させる1つまたは複数のコンピュータ読取可能な媒体と
    を備えたことを特徴とするコンピューティングシステム。
JP2005004312A 2004-01-23 2005-01-11 受信コンピューティングシステムのための方法とコンピュータプログラム、およびコンピューティングシステム Expired - Fee Related JP5042454B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/763,448 US7565451B2 (en) 2004-01-23 2004-01-23 Adaptive dispatch of received messages to code using inter-positioned message modification
US10/763,448 2004-01-23

Publications (3)

Publication Number Publication Date
JP2005222533A true JP2005222533A (ja) 2005-08-18
JP2005222533A5 JP2005222533A5 (ja) 2008-03-06
JP5042454B2 JP5042454B2 (ja) 2012-10-03

Family

ID=34634609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005004312A Expired - Fee Related JP5042454B2 (ja) 2004-01-23 2005-01-11 受信コンピューティングシステムのための方法とコンピュータプログラム、およびコンピューティングシステム

Country Status (7)

Country Link
US (1) US7565451B2 (ja)
EP (1) EP1557990B1 (ja)
JP (1) JP5042454B2 (ja)
KR (1) KR101143222B1 (ja)
CN (1) CN1645841B (ja)
AT (1) ATE397344T1 (ja)
DE (1) DE602005007073D1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060184462A1 (en) 2004-12-10 2006-08-17 Hawkins Jeffrey C Methods, architecture, and apparatus for implementing machine intelligence and hierarchical memory systems
US7739208B2 (en) 2005-06-06 2010-06-15 Numenta, Inc. Trainable hierarchical memory system and method
US7941389B2 (en) 2006-02-10 2011-05-10 Numenta, Inc. Hierarchical temporal memory based system including nodes with input or output variables of disparate properties
US20070192267A1 (en) 2006-02-10 2007-08-16 Numenta, Inc. Architecture of a hierarchical temporal memory based system
US20080208966A1 (en) * 2007-02-28 2008-08-28 Numenta, Inc. Hierarchical Temporal Memory (HTM) System Deployed as Web Service
US8732098B2 (en) 2006-02-10 2014-05-20 Numenta, Inc. Hierarchical temporal memory (HTM) system deployed as web service
US7937342B2 (en) 2006-11-28 2011-05-03 Numenta, Inc. Method and apparatus for detecting spatial patterns
WO2008106615A1 (en) 2007-02-28 2008-09-04 Numenta, Inc. Spatio-temporal learning algorithms in hierarchical temporal networks
WO2008106623A2 (en) 2007-02-28 2008-09-04 Numenta, Inc. Episodic memory with a hierarchical temporal memory based system
US7941392B2 (en) 2007-02-28 2011-05-10 Numenta, Inc. Scheduling system and method in a hierarchical temporal memory based system
WO2009006231A1 (en) 2007-06-29 2009-01-08 Numenta, Inc. Hierarchical temporal memory system with enhanced inference capability
US8719841B2 (en) * 2007-11-16 2014-05-06 Microsoft Corporation Dispatch mechanism for coordinating application and communication medium state
US8505030B2 (en) * 2007-11-16 2013-08-06 Microsoft Corporation Coordinating resources using a volatile network intermediary
US9021503B2 (en) * 2007-11-16 2015-04-28 Microsoft Technology Licensing, Llc Coordinating application state and communication medium state
US8175984B2 (en) 2007-12-05 2012-05-08 Numenta, Inc. Action based learning
US8175985B2 (en) 2008-03-19 2012-05-08 Numenta, Inc. Plugin infrastructure for hierarchical temporal memory (HTM) system
US7983998B2 (en) 2008-03-21 2011-07-19 Numenta, Inc. Feedback in group based hierarchical temporal memory system
US8407166B2 (en) 2008-06-12 2013-03-26 Numenta, Inc. Hierarchical temporal memory system with higher-order temporal pooling capability
US8195582B2 (en) 2009-01-16 2012-06-05 Numenta, Inc. Supervision based grouping of patterns in hierarchical temporal memory (HTM)
US8301706B2 (en) 2009-06-15 2012-10-30 Microsoft Corporation Routing of pooled messages via an intermediary
US11651277B2 (en) 2010-03-15 2023-05-16 Numenta, Inc. Sparse distributed representation for networked processing in predictive system
US9189745B2 (en) 2010-03-15 2015-11-17 Numenta, Inc. Temporal memory using sparse distributed representation
US8549538B2 (en) * 2010-03-18 2013-10-01 Microsoft Corporation Coordinating communication medium state for subtasks
US8250234B2 (en) 2010-04-26 2012-08-21 Microsoft Corporation Hierarchically disassembling messages
US9141447B2 (en) * 2010-12-15 2015-09-22 Microsoft Technology Licensing, Llc Conditional deferred queuing
US8504570B2 (en) 2011-08-25 2013-08-06 Numenta, Inc. Automated search for detecting patterns and sequences in data using a spatial and temporal memory system
US8645291B2 (en) 2011-08-25 2014-02-04 Numenta, Inc. Encoding of data for processing in a spatial and temporal memory system
US8825565B2 (en) 2011-08-25 2014-09-02 Numenta, Inc. Assessing performance in a spatial and temporal memory system
US9159021B2 (en) 2012-10-23 2015-10-13 Numenta, Inc. Performing multistep prediction using spatial and temporal memory system
US9385935B2 (en) * 2013-03-06 2016-07-05 Microsoft Technology Licensing, Llc Transparent message modification for diagnostics or testing
US10318878B2 (en) 2014-03-19 2019-06-11 Numenta, Inc. Temporal processing scheme and sensorimotor information processing
US11681922B2 (en) 2019-11-26 2023-06-20 Numenta, Inc. Performing inference and training using sparse neural network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138566A1 (en) * 2001-03-14 2002-09-26 Microsoft Corporation Using state information in a distributed environment
US20030014733A1 (en) * 2001-07-10 2003-01-16 Ringseth Paul F. System and methods for providing a declarative syntax for specifying SOAP-based web services

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US8001189B2 (en) * 2001-10-16 2011-08-16 Microsoft Corporation Routing of network messages
US7039701B2 (en) * 2002-03-27 2006-05-02 International Business Machines Corporation Providing management functions in decentralized networks
US20030212587A1 (en) * 2002-05-13 2003-11-13 International Business Machines Corporation Apparatus and methods for coordinating Web services using role based interpretation of coordination plans
US7103676B2 (en) * 2002-11-04 2006-09-05 Nokia Corporation User-identifier translator and linking apparatus for XML-based services and corresponding method
US7356616B2 (en) * 2002-11-06 2008-04-08 Microsoft Corporation Maintaining structured time data for electronic messages
US7418485B2 (en) * 2003-04-24 2008-08-26 Nokia Corporation System and method for addressing networked terminals via pseudonym translation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138566A1 (en) * 2001-03-14 2002-09-26 Microsoft Corporation Using state information in a distributed environment
US20030014733A1 (en) * 2001-07-10 2003-01-16 Ringseth Paul F. System and methods for providing a declarative syntax for specifying SOAP-based web services

Also Published As

Publication number Publication date
US20050198390A1 (en) 2005-09-08
US7565451B2 (en) 2009-07-21
KR101143222B1 (ko) 2012-05-18
ATE397344T1 (de) 2008-06-15
EP1557990B1 (en) 2008-05-28
JP5042454B2 (ja) 2012-10-03
EP1557990A1 (en) 2005-07-27
CN1645841A (zh) 2005-07-27
DE602005007073D1 (de) 2008-07-10
CN1645841B (zh) 2010-06-16
KR20050076750A (ko) 2005-07-27

Similar Documents

Publication Publication Date Title
JP5042454B2 (ja) 受信コンピューティングシステムのための方法とコンピュータプログラム、およびコンピューティングシステム
CN111339186B (zh) 工作流引擎数据同步方法、装置、介质及电子设备
US7877091B2 (en) Method and system for executing a container managed application on a processing device
CN107817962B (zh) 一种远程控制方法、装置、控制服务器及存储介质
JP2006164266A (ja) オペレーティングシステムのパフォーマンスの改善
US8645920B2 (en) Data parallelism aware debugging
CN110708238B (zh) 用于处理信息的方法和装置
EP1557756B1 (en) Deterministic rule-based dispatch of objects to code for processing objects
US10438154B2 (en) Guaranteed processing for performing a work item queuing operation using generational queues
US8522256B2 (en) Hosting non-messaging workflows in a messaging host
CN113835790B (zh) 基于Android的分页页面显示方法和装置
US9348610B2 (en) Replacement of virtual functions
CN113849449A (zh) 一种通信系统和信息交互方法、设备和介质
CN113010280A (zh) 分布式任务的处理方法、系统、装置、设备和介质
CN106570143B (zh) 一种发送响应对象的方法和装置
JP5005921B2 (ja) アクセス制限されたバッファを用いる際のセッション状態を保持するためのメカニズム
US20180367492A1 (en) Providing notification based on dynamic group
US20180089450A1 (en) Taxonomy-facilitated actions for content
US20220318232A1 (en) Dynamically limiting the scope of spreadsheet recalculations
US20050177774A1 (en) Automated generation of computer-executable compensation procedures for previously executed methods
US20060106772A1 (en) Optimization of communication of data structures using program analysis
CN114090134A (zh) 一种数据交互方法、装置、存储介质及电子设备
WO2022212024A1 (en) Dynamically limiting the scope of spreadsheet recalculations
CN115695342A (zh) 消息处理方法、装置、设备、介质和程序产品
CN115686793A (zh) 调度方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120618

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120711

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150720

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees