JP2000353153A - メッセージ・ルーティング方法及びその実施装置並びにその処理プログラムを記録した記録媒体 - Google Patents

メッセージ・ルーティング方法及びその実施装置並びにその処理プログラムを記録した記録媒体

Info

Publication number
JP2000353153A
JP2000353153A JP11166466A JP16646699A JP2000353153A JP 2000353153 A JP2000353153 A JP 2000353153A JP 11166466 A JP11166466 A JP 11166466A JP 16646699 A JP16646699 A JP 16646699A JP 2000353153 A JP2000353153 A JP 2000353153A
Authority
JP
Japan
Prior art keywords
message
service
service provider
definition
message format
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.)
Pending
Application number
JP11166466A
Other languages
English (en)
Inventor
Yuji Mizote
裕二 溝手
Tetsuya Hashimoto
哲也 橋本
Tatsuto Aoshima
達人 青島
Makoto Kitagawa
誠 北川
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11166466A priority Critical patent/JP2000353153A/ja
Publication of JP2000353153A publication Critical patent/JP2000353153A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 サービス形態の動的変更やサービスユーザが
送信する任意のメッセージ形式に応じてルーティングを
行うことが可能な技術を提供する。 【解決手段】 プログラム間で送受信されるメッセージ
のルーティングを行うメッセージ・ルーティング方法に
おいて、メッセージの内容を解析し、メッセージにより
要求されたサービスを決定するステップと、サービスに
適合するサービスプロバイダを検索し、メッセージが要
求するサービスの処理を行うサービスプロバイダを決定
するステップとを有するものである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はプログラム間のメッ
セージングにおけるメッセージルータに関し、特にサー
ビスを要求するサービスユーザプログラムのメッセージ
を、サービスの提供を行うサービスプロバイダプログラ
ムにルーティングするメッセージルータに適用して有効
な技術に関するものである。
【0002】
【従来の技術】従来のクライアント・サーバシステム
は、サービスを要求するクライアントプログラムとサー
ビスを実行するサーバプログラムから構成され、クライ
アントはサーバに対してサービス実行の要求を行う。こ
の意味で、本明細書では、クライアントをサービスユー
ザと呼び、サーバをサービスプロバイダと呼ぶことにす
る。
【0003】従来、サービスユーザ・プログラムがサー
ビスプロバイダ・プログラムにサービス要求を行う方式
として、次の2つの方式が知られている。それらは、送
信先サービスプロバイダ指定方式とトレーダ方式の2つ
である。
【0004】送信先サービスプロバイダ指定方式は、サ
ービスユーザがサービスを提供するサービスプロバイダ
を直接指定してサービス要求を行うものであり、従来の
クライアント・サーバシステムで実現されている方式で
ある。例えば、OMG(Object Managem
ent Group)が規定したThe CommonO
bject Request Broker:Archi
tecture and Specification
(CORBA)を利用したアプリケーションの多くは、
オブジェクト間のメッセージ方式を、本方式で実現して
いる。CORBAを利用したアプリケーションでは、サ
ービスユーザはサービスプロバイダのオブジェクト名或
いはインタフェース名を指定してサービスプロバイダと
のネットワーク接続を行い、サービス実行の要求を行
う。
【0005】トレーダ方式は、サービスユーザ・プログ
ラム、サービスプロバイダ・プログラム及びサービスユ
ーザの要求を適切なサービスプロバイダにルーティング
するトレーダ・プログラムの3つを有する。トレーダ
は、サービス名、サービス属性及びそのサービスを提供
するサービスプロバイダのネットワーク位置情報等から
構成されるサービス情報を管理し、実行時にサービスユ
ーザがトレーダに対してサービスの問い合わせを行い、
問い合わせを満たすサービスプロバイダを解決する。こ
れにより、サービスユーザは利用したいサービスのみ意
識すれば良く、サービスプロバイダ構成の動的変更は、
サービスユーザに影響を与えない。トレーダ方式の例と
して、CORBA ServicesのObject T
rading Serviceがある。
【0006】Object Trading Servi
ceでは、サービスユーザをインポータと、サービスプ
ロバイダをエクスポータと呼ぶ。エクスポータは、自身
が提供するサービスに関する情報を決められた手順でト
レーダに登録する。一方、インポータはインポータが要
求するサービスをどのエクスポータが提供するのかを決
められた手順でトレーダに問い合わせ、トレーダはイン
ポータが要求するサービスからそのサービスを提供する
エクスポータを解決し、インポータは解決された前記エ
クスポータに対してメッセージを送信する。
【0007】
【発明が解決しようとする課題】前記従来の送信先サー
ビスプロバイダ指定方式では、サービス自体には変更は
ないが、サービスを実現するサービスプロバイダの構成
が変更された場合、例えば、あるサービスを実現するサ
ービスプロバイダの入れ替えを行う場合等では、サービ
スユーザ側のプログラムになんらかの修正を加えない限
り、サービスユーザは旧サービスプロバイダにサービス
要求を行ってしまう為、サービスプロバイダ構成の動的
変更にサービスユーザが対応できないという問題があ
る。
【0008】また、前記のトレーダ方式において、サー
ビスユーザは、トレーダとの間で決められた手順及びメ
ッセージ形式でサービス要求を行い、サービスプロバイ
ダを解決する必要がある為、独自の手順とメッセージ形
式を持つレガシーシステムは容易にトレーダに接続でき
ないという問題がある。
【0009】例えば、銀行システムを従来の送信先サー
ビスプロバイダ指定方式から、より柔軟なシステム構成
であるトレーダ方式に変更しようとした場合、レガシー
システムであるATM制御プログラムは、勘定系サーバ
と独自のメッセージ形式で接続しており、ATM制御プ
ログラムを修正することなくトレーダと接続する為に
は、ATM制御プログラムとトレーダとの間に中継プロ
グラムを開発する必要がある。この様な中継プログラム
を、接続するレガシーシステムのメッセージ形式毎に開
発する作業は、大変な手間のかかる作業である。
【0010】また、前記従来の技術では、業務のサービ
ス形態が変わり、サービスプロバイダが受け付けるメッ
セージ形式が変更になった場合、サービスユーザ或いは
中継プログラムを修正する必要がある為、サービス形態
の変更が大変な作業となってしまうという問題がある。
【0011】本発明の目的は上記問題を解決し、サービ
ス形態の動的変更やサービスユーザが送信する任意のメ
ッセージ形式に応じてルーティングを行うことが可能な
技術を提供することにある。
【0012】
【課題を解決するための手段】本発明は、プログラム間
で送受信されるメッセージのルーティングを行うメッセ
ージルータにおいて、サービスユーザからのメッセージ
に対応するサービスに適合するサービスプロバイダへ当
該メッセージをルーティングするものである。
【0013】本発明では、メッセージ・ルーティングを
制御する為の情報として、ルーティング対象となるメッ
セージのメッセージ形式定義、メッセージ中のデータに
関する制約条件を条件部として持つと共にメッセージが
要求するサービスが満たすべき条件であるサービス検索
条件を結論部として持つサービス決定ルール、サービス
とサービスプロバイダの対応やサービス属性を記述した
サービス情報の定義を行っておく。
【0014】本発明のメッセージルータは、サービスを
受けるサービスユーザからのメッセージを受信すると、
そのメッセージを前記メッセージ形式定義に基づいて解
析し、前記メッセージ中のデータがサービス決定ルール
の条件部を満たすかを判定して前記メッセージに対応す
るサービスを決定する。次に前記サービス定義から前記
サービス検索条件を満たすサービスプロバイダを決定し
た後、決定したサービスプロバイダへ当該メッセージを
送信する。
【0015】以上の様に本発明のメッセージルータによ
れば、サービスユーザからのメッセージに対応するサー
ビス検索条件を満たすサービスプロバイダへ当該メッセ
ージをルーティングするので、サービス形態の動的変更
やサービスユーザが送信する任意のメッセージ形式に応
じてルーティングを行うことが可能である。
【0016】
【発明の実施の形態】以下にプログラム間で送受信され
るメッセージのルーティングを行う一実施形態のメッセ
ージルータについて説明する。
【0017】本実施形態の説明において、コンテナ型デ
ータ及び定数NULLを用いる。定数NULLは、他の
任意のデータ値と区別することができる特別な値であ
る。コンテナ型データは、0個以上のデータを保持する
オブジェクトで、メソッドFirst、Next、Ad
d、LookUpにより操作される。Addは、引数を
コンテナに加える。Firstは、要素数が0の場合N
ULL値を返し、1以上の場合先頭要素を返す。Nex
tはその次の要素を返し、次のデータが存在しない場合
はNULLを返す。Firstで先頭要素を取得し、N
extを繰り返し呼び出すことにより、コンテナ内に含
まれる要素を走査することができる。LookUpは、
コンテナの要素が構造データであり主キー属性を持つ場
合、引数をキーとして持つ要素を検索する。引数をキー
として持つ要素が存在しない場合は、NULL値を返
す。
【0018】また、コンテナデータSomeDataに
Addメソッド等を引数data適用する場合、Som
eData.Add(data)等と表記する。Som
eData.LookUp(keyData)を、So
meData[keyData]と略記する。これら記
法は、図6から図10のPAD図内で利用している。
【0019】本実施形態では、次の機能を提供すること
により、前記問題を解決する。 (1)メッセージ・ルーティング制御情報定義機能 メッセージ・ルーティング制御情報定義機能は、ルーテ
ィング制御情報として、ルーティング対象となるメッセ
ージのメッセージ形式定義、サービス決定ルール及びサ
ービス定義を定義し編集する。
【0020】(2)サービス決定機能 サービス決定機能は、任意の形式のメッセージに対し
て、メッセージ形式定義及びサービス解決ルールに基づ
いて、メッセージを解析し、メッセージが要求するサー
ビスを決定する。
【0021】(3)サービスプロバイダ決定機能 サービスプロバイダ決定機能は、前記機能で解決したサ
ービスとサービス定義に基づいて、サービスプロバイダ
を決定する。サービスユーザが送信するメッセージ形式
とサービスプロバイダが受信するメッセージ形式が異な
る場合、必要に応じてメッセージ変換を行う。
【0022】以降において、サービス決定機能及びサー
ビスプロバイダ決定機能で利用するデータ構造と処理フ
ローを説明した後、メッセージ・ルーティング制御情報
定義機能の画面イメージを説明する。
【0023】図1は本実施形態のメッセージ・ルーティ
ングを行うシステムの概略構成を示す図である。図1に
示す様に本実施形態のメッセージルータ計算機101
は、メッセージ受信処理部110と、サービス決定処理
部111と、サービスプロバイダ決定処理部112と、
メッセージ送信処理部113と、登録情報編集処理部1
14とを有している。
【0024】メッセージ受信処理部110は、サービス
ユーザ計算機108からのメッセージ124及びメッセ
ージ124のメッセージ形式123を受信し、メッセー
ジ124及びメッセージ形式123を引数としてサービ
ス決定処理部111を起動する処理部である。
【0025】サービス決定処理部111は、メッセージ
125の内容を解析し、メッセージ125により要求さ
れたサービスを決定する処理部である。サービスプロバ
イダ決定処理部112は、サービスに適合するサービス
プロバイダを検索し、メッセージ125が要求するサー
ビスの処理を行うサービスプロバイダを決定する処理部
である。
【0026】メッセージ送信処理部113は、サービス
プロバイダ情報116に基づいてメッセージ125をサ
ービスプロバイダ計算機109に送信する処理部であ
る。登録情報編集処理部114は、2次記憶装置104
上のサービス決定ルールセット120、メッセージ形式
定義テーブル121、サービス定義テーブル122及び
メッセージ変換手続きテーブル127の定義情報の登録
及び変更を行う処理部である。
【0027】メッセージルータ計算機101をメッセー
ジ受信処理部110、サービス決定処理部111、サー
ビスプロバイダ決定処理部112、メッセージ送信処理
部113及び登録情報編集処理部114として機能させ
る為のプログラムは、CD−ROM等の記録媒体に記録
され磁気ディスク等に格納された後、メモリにロードさ
れて実行されるものとする。なお前記プログラムを記録
する記録媒体はCD−ROM以外の他の記録媒体でも良
い。
【0028】図1を利用してシステム構成と処理の概要
を説明する。サービスを利用するサービスユーザが動作
するサービスユーザ計算機108、サービスを提供する
サービスプロバイダが動作するサービスプロバイダ計算
機109及びサービスユーザ計算機108とサービスプ
ロバイダ計算機109を仲介するメッセージルータが動
作するメッセージルータ計算機101が、計算機ネット
ワーク107を介して接続される。サービスユーザ計算
機108及びサービスプロバイダ計算機109は、計算
機ネットワーク107上に複数存在して良いし、同一計
算機上に1つ以上のサービスユーザ、1つ以上のサービ
スプロバイダ或いは1つ以上のメッセージルータが動作
していて良い。
【0029】メッセージルータ計算機101、サービス
ユーザ計算機108及びサービスプロバイダ計算機10
9はいずれも、中央演算装置102、主記憶装置10
3、2次記憶装置104、入出力装置105及び通信装
置106を有している。
【0030】図1を利用して、メッセージルータ計算機
101の内部構成に関して説明する。主記憶装置103
には、プログラムとして、メッセージ受信処理部11
0、メッセージ送信処理部113、サービス決定処理部
111、サービスプロバイダ決定処理部112、登録情
報編集処理部114が格納され、データとしてサービス
情報115、サービスプロバイダ情報116、サービス
決定ルールセット117、メッセージ形式定義テーブル
118、サービス定義テーブル119及びメッセージ変
換手続きテーブル126が格納される。
【0031】2次記憶装置104には、データとして、
サービス決定ルールセット120、メッセージ形式定義
テーブル121、サービス定義テーブル122及びメッ
セージ変換手続きテーブル127が格納される。
【0032】主記憶装置103上のデータであるサービ
ス決定ルールセット117、メッセージ形式定義テーブ
ル118、サービス定義テーブル119及びメッセージ
変換手続きテーブル126は、2次記憶装置104上の
サービス決定ルールセット120、メッセージ形式定義
テーブル121、サービス定義テーブル122及びメッ
セージ変換手続きテーブル127を主記憶装置103上
にロードしたものである。
【0033】図1を利用して、本実施形態の全体処理手
順に関して説明する。サービスユーザ計算機108は、
計算機ネットワーク107を介してメッセージルータ計
算機101にサービス要求のメッセージ124及びメッ
セージ124のメッセージ形式123を送信する。メッ
セージルータ計算機101のメッセージ受信処理部11
0は、通信装置106を介してメッセージ124及びメ
ッセージ形式123を受信し、メッセージ124及びメ
ッセージ形式123を引数としてサービス決定処理部1
11を起動する。
【0034】サービス決定処理部111は、サービス決
定ルールセット117とメッセージ形式定義テーブル1
18を参照して、メッセージ124を解析し、サービス
ユーザ計算機108がメッセージ124により要求する
サービスのサービス情報115を決定し、サービス情報
115とメッセージ形式123を引数として、サービス
プロバイダ決定処理部112を起動する。
【0035】サービスプロバイダ決定処理部112は、
サービス定義テーブル119からサービス情報115に
適合するサービスプロバイダを検索し、メッセージ12
4が要求するサービスを処理するサービスプロバイダの
サービスプロバイダ情報116を決定する。必要に応じ
て、サービスプロバイダが受理できる形式にメッセージ
124のメッセージ変換を行い、メッセージ125を生
成する。メッセージ変換を行わない場合は、メッセージ
124とメッセージ125は同一内容を持つデータであ
る。
【0036】メッセージ送信処理部113は、サービス
プロバイダ情報116に基づいてメッセージ125をサ
ービスプロバイダ計算機109に送信する。なお、メッ
セージ受信処理部110及びメッセージ送信処理部11
3のメッセージ送受信部分に関してCORBA等が利用
できる。
【0037】また、システム100の運用管理者は、入
出力装置105と登録情報編集処理部114を利用し
て、2次記憶装置104上のサービス決定ルールセット
120、メッセージ形式定義テーブル121、サービス
定義テーブル122及びメッセージ変換手続きテーブル
127の定義情報の登録及び変更を行う。
【0038】以降において、本実施形態の構成要素であ
る処理フローとデータ構造について図1から図10を利
用して、また、登録情報編集処理部114のツール画面
例について図11から図14を利用して説明する。処理
フローは、基本的にPADを用いて記述してあるが、処
理フローで参照するデータの図を必要に応じてPAD図
に付加してある。
【0039】図1を用いて、サービス情報115、サー
ビスプロバイダ情報116、メッセージ形式123、メ
ッセージ124及びメッセージ125について説明す
る。
【0040】サービス情報115は、サービス決定処理
部111の結果を格納する為に利用する一時変数であ
る。サービスプロバイダ情報116は、サービスプロバ
イダ決定処理部112の結果を保持する為に利用する一
時変数である。
【0041】メッセージ124は、サービスユーザ計算
機108からメッセージルータ計算機101に送信され
るデータであり、メッセージ形式123は、メッセージ
124のメッセージ形式を示す識別子である。メッセー
ジ125は、メッセージルータ計算機101からサービ
スプロバイダ計算機109に送信されるデータである。
【0042】図2は本実施形態のサービス決定ルールセ
ット117のデータ構造を示す図である。図3は本実施
形態のメッセージ形式定義テーブル118のデータ構造
を示す図である。図4は本実施形態のサービス定義テー
ブル119のデータ構造を示す図である。
【0043】図2のサービス決定ルールセット117
は、メッセージ形式202、ルールの条件部として機能
する条件203、ルールの結論部として機能するサービ
ス情報204及びルール名205を有するサービス決定
ルール201を要素に持つコンテナである。
【0044】メッセージ形式202は、メッセージ形式
定義テーブル118のメッセージ形式定義テーブルエン
トリ302のメッセージ形式303を参照する外部キー
である。
【0045】条件203は、サービスを決定する為の条
件を表現する論理式である。本実施形態では、論理式を
次の様に定義する。論理演算子に対してオペランドであ
る論理変数と項の適用を意味する「論理変数 論理演算
子 項」という形式の表現は論理式である。更に、2つ
の論理式を論理結合子ANDとORで連結したものは論
理式である。この2つの規則により生成される表現が論
理式である。条件203で利用できる論理変数は、メッ
セージ形式202で一意に特定されるメッセージ属性定
義312の属性名313とする。条件203で利用でき
る項は、文字列定数或いは整数値定数とする。論理演算
子として、>(より大きい)、=(等しい)、<(より
小さい)、!=(等しくない)、Like(正規表現等
のパターンが一致する)、CONTAIN(を含む)等
が考えられる。例えば、「業務コード」及び「銀行コー
ド」がメッセージ形式定義の属性である場合、「業務コ
ード= 2 AND 銀行コード = 0022」は、前記
定義と整合する論理式である。
【0046】サービス情報204は、サービス定義テー
ブル119からサービスプロバイダ情報405を検索す
るときに利用する検索条件を論理式で表現したものであ
る。サービス情報204の論理式中で利用できる論理変
数は、サービス定義402のサービス403の名称及び
属性リスト404に含まれる属性名である。項は、文字
列定数、整数値定数或いはメッセージ形式202で一意
に特定されるメッセージ属性定義312の属性名313
である。論理演算子は、条件203と同様である。ルー
ル名205は、サービス決定ルールに対して付与した識
別子である。
【0047】図3のメッセージ形式定義テーブル118
は、メッセージ形式303及びメッセージ形式定義31
1への参照を有するメッセージ形式定義テーブルエント
リ302を要素に持つコンテナである。
【0048】メッセージ形式303は、メッセージ形式
定義テーブル118の主キーであり、メッセージ形式定
義テーブルエントリ302を一意に特定する為の識別子
である。定義の参照304は、メッセージ形式定義31
1へのポインタを保持する。
【0049】メッセージ形式定義311は、属性名31
3、型314及び型情報315を有するメッセージ属性
定義312を要素に持つコンテナである。属性名313
は、属性の名称を保持し、型314は属性の型を保持す
る。本実施形態では、型としてSTRING(固定長文
字列)、BYTE(バイト)、INT32(32ビット
整数値)及びユーザ指定型(USER_TYPE)があ
るものとする。メッセージ中のデータで、ユーザ独自処
理が必要となる部分がある場合、ユーザ指定型を利用す
る。型情報315は、型固有な補足情報を保持する。本
実施形態では、型情報としてSTRING型に対しては
文字列の長さが、ユーザ指定型に対してはユーザ作成の
データ読み込み手続きに関する情報を保持するものとす
る。
【0050】図4のサービス定義テーブル119は、サ
ービス403、属性リスト404、サービスプロバイダ
情報405及びメッセージ形式406を有するサービス
定義402を要素に持つコンテナである。サービス40
3は、サービスを識別する為の識別子である。
【0051】属性リスト404は、属性名と属性値を有
する属性値ペアを要素に持つコンテナであり、属性名は
属性リスト404の要素を一意に特定する為の主キーと
して機能する。サービスプロバイダ情報405は、サー
ビスプロバイダにメッセージを送信するのに必要なサー
ビスプロバイダのネットワーク上の論理的な位置情報で
ある。メッセージ送信処理部113にCORBAを利用
する場合、サービスプロバイダ情報405は、サービス
プロバイダのインタフェース名及びオブジェクト名等を
保持することになる。
【0052】図5は本実施形態のメッセージ変換手続き
テーブル126のデータ構造を示す図である。メッセー
ジ変換手続きテーブル126は、変換元メッセージ形式
503、変換先メッセージ形式504及びメッセージ変
換手続き505を有するメッセージ変換手続きテーブル
エントリ502を要素に持つコンテナである。
【0053】変換元メッセージ形式503は、変換の対
象となるメッセージのメッセージ形式303を参照する
外部キーである。変換先メッセージ形式504は、変換
した結果生成されるメッセージのメッセージ形式303
を参照する外部キーである。変換元メッセージ形式50
3と変換先メッセージ形式504の組み合わせは、メッ
セージ変換手続きテーブル126の主キーであり、メッ
セージ変換手続きテーブルエントリ502を一意に特定
する。メッセージ変換手続き505は、メッセージ変換
の手続きを記述したものであり、ソースコード、コンパ
イルされた実行可能形式のプログラム或いは汎用変換エ
ンジンが解釈実行可能なスクリプト等のうちのいずれか
である。
【0054】図6は本実施形態のサービス決定処理部1
11の処理手順を示すフローチャートである。サービス
決定処理部111は、メッセージ受信処理部110で受
信したメッセージ124とメッセージ形式123を引数
として、メッセージ受信後に起動される。
【0055】サービス決定処理部111は、一時変数と
してメッセージ属性値テーブル603を利用する。メッ
セージ属性値テーブル603は、属性名と属性値を有す
る属性値ペアを要素に持つコンテナであり、属性値ペア
の属性名は、メッセージ属性値テーブル603の主キー
である。また、メッセージ属性値テーブル603は、サ
ービスプロバイダ決定処理部112でも参照される。
【0056】ステップ601において、サービス決定処
理部111は、メッセージ124とメッセージ形式12
3を引数としてメッセージ解析処理を起動し、処理結果
をメッセージ属性値テーブル603に設定する。ステッ
プ602において、サービス決定処理部111は、メッ
セージ属性値テーブル603を引数としてサービス決定
ルール評価処理を起動する。
【0057】図7は本実施形態のメッセージ解析処理の
処理手順を示すフローチャートである。メッセージ解析
処理700は、メッセージ124を解析し、解析結果を
メッセージ属性値テーブル603に格納する処理であ
り、一時変数として、メッセージ形式定義311を格納
する一時変数M、メッセージ属性定義312を格納する
一時変数P及びメッセージ124の読み込み位置を保持
する一時変数Rを利用する。
【0058】ステップ701において、メッセージ解析
処理700は、メッセージ形式定義テーブル118から
メッセージ形式123をキーとしてメッセージ形式定義
311を検索し、取得したメッセージ形式定義311を
一時変数Mに代入する。
【0059】分岐条件702において、ステップ701
でメッセージ形式定義が見つからなかった場合にはステ
ップ703を実行する。ステップ703においてメッセ
ージ解析処理700は、「不明なメッセージである」と
いう例外メッセージを送出する。
【0060】ステップ704において、一時変数Rに
「0」を代入し、ステップ705で一時変数PにMの先
頭要素を代入する。そしてメッセージ解析処理700
は、メッセージ形式定義Mに含まれる全ての属性定義P
に対して、ステップ707からステップ719を実行す
る。
【0061】分岐条件707からステップ714におい
て、メッセージ解析処理700は、属性定義Pの型、つ
まり「P.型」に応じて処理を分岐させる。すなわち分
岐条件707で属性定義Pの型がBYTEである場合に
メッセージ解析処理700は、メッセージ124のRバ
イト目から1バイトをバイトデータとして読み込み(ス
テップ708)、分岐条件709で属性定義Pの型がI
NT32である場合にメッセージ解析処理700は、メ
ッセージ124のRバイト目から4バイトを32ビット
整数値として読み込む(ステップ710)。
【0062】また、分岐条件711で属性定義Pの型が
STRINGである場合にメッセージ解析処理700
は、メッセージ124のRバイト目からPの型情報つま
り「P.型情報」で指定された文字列数分の文字データ
を読み込み(ステップ712)、分岐条件713で属性
定義Pの型がUSER_TYPEである場合にメッセー
ジ解析処理700は、「P.型情報」で指定されたデー
タ読み込み手続きを起動する。前記データ読み込み手続
きはメッセージ124のRバイト目からデータとして読
み込み、読み込んだデータと読み込みだデータ長を結果
として返す(ステップ714)。
【0063】分岐条件716で「0」より大きいデータ
の読み込みを行った場合にメッセージ解析処理700
は、読み込んだデータをメッセージ属性値テーブル60
3のPの属性名つまり「P.属性名」に対応する属性値
として格納し(ステップ718)、読み込んだデータ長
をRに加算する(ステップ719)。ステップ720で
は、一時変数PにMの次の要素を代入し、繰り返し条件
706に戻って処理を続行する。
【0064】図8は本実施形態のサービス決定ルール評
価処理の処理手順を示すフローチャートである。サービ
ス決定ルール評価処理800は、一時変数としてサービ
ス決定ルールを保持する一時変数R、ブール値を保持す
る一時変数RuleHitを利用する。
【0065】まずステップ801では、一時変数Rにサ
ービス決定ルールセット117の先頭要素を代入し、ス
テップ802では、一時変数RuleHitにFALS
Eを代入する。そしてステップ803からステップ80
9において、サービス決定ルール評価処理800は、サ
ービス決定ルールセット117に含まれる任意のサービ
ス決定ルールRに対して、分岐条件804からステップ
809の処理を行う。但し、繰り返し条件803によ
り、途中でRuleHitがTRUEになった時点で、
分岐条件804からステップ809の処理を抜け、ステ
ップ810に進む。
【0066】分岐条件804でサービス決定ルール評価
処理800は、Rのメッセージ形式つまり「R.メッセ
ージ形式」がメッセージ形式123と等しいかを判定す
る。等しい場合にはステップ806からステップ809
において、Rに対するルール評価処理を行う。
【0067】ステップ806ではRの条件203の論理
式を評価する。なお、この論理式中の論理変数はメッセ
ージ属性値テーブル603の属性値である。分岐条件8
07において、ステップ806でのRの条件203が成
立した場合には、Rのサービス情報204をサービス情
報115に代入し(ステップ808)、RuleHit
にTRUEを代入する(ステップ809)。ステップ8
05では、一時変数Rにサービス決定ルールセット11
7の次の要素を代入し、繰り返し条件803に戻って処
理を続行する。
【0068】前記繰り返し処理の後、分岐条件810で
RuleHitがFALSEの場合には「サービスプロ
バイダがみつからなかった」という例外メッセージを送
出する(ステップ811)。
【0069】なお本実施形態のサービス決定ルール評価
処理800では、条件203の論理式を逐次解釈するイ
ンタープリットを行う方法で説明しているが、条件20
3からサービス決定ルール評価処理800と同等の処理
を行うネイティブコードを予め生成しておく方法も考え
られる。
【0070】図9は本実施形態のサービスプロバイダ決
定処理部112の処理手順を示すフローチャートであ
る。サービスプロバイダ決定処理部112は、一時変数
として、サービス定義402を保持する一時変数Sとブ
ール値を保持する一時変数Foundを持つ。
【0071】ステップ901においてサービスプロバイ
ダ決定処理部112は、一時変数Sをサービス定義テー
ブル119の先頭要素で初期化し、ステップ902にお
いて、一時変数FoundをFALSEで初期化する。
【0072】ステップ903からステップ908におい
て、サービスプロバイダ決定処理部112は、サービス
定義テーブル119に含まれる任意のサービス定義Sに
対して処理を行う。但し、繰り返し条件903により、
途中でFoundがTRUEになった時点で、ステップ
904からステップ908の処理を抜け、ステップ90
9に進む。
【0073】ステップ904においてサービスプロバイ
ダ決定処理部112は、サービス情報115に格納され
た論理式を評価する。論理式中の論理変数の値は、Sが
保持するサービス定義402のサービス403の値或い
は属性リスト404の属性値である。論理式中の項がメ
ッセージ形式定義311の属性名313の場合、項の値
は、属性名313に対応するメッセージ属性値テーブル
603の属性値である。
【0074】分岐条件905において、ステップ904
のサービス情報115が保持する論理式が成立した場合
には、Sのサービスプロバイダ情報405をサービスプ
ロバイダ情報116に代入し(ステップ907)、Fo
undにTRUEを代入する(ステップ908)。ステ
ップ906では、一時変数Sにサービス定義テーブル1
19の次の要素を代入し、繰り返し条件903に戻って
処理を続行する。
【0075】分岐条件909において、変数Found
の値がFALSEである場合にサービスプロバイダ決定
処理部112は、「サービスプロバイダがみつからなか
った」という例外メッセージを送出する。
【0076】分岐条件911において、サービス定義S
のメッセージ形式がメッセージ形式123と等しくない
場合にはメッセージ変換処理を起動し、メッセージ12
4をメッセージ形式123からサービス定義Sのメッセ
ージ形式に変換して変換後のメッセージをメッセージ1
25とする。
【0077】図10は本実施形態のメッセージ変換処理
の処理手順を示すフローチャートである。ステップ10
01においてメッセージ変換処理1000は、メッセー
ジ変換手続きテーブル126に対して、変換元メッセー
ジ形式503がメッセージ形式123であり、変換先メ
ッセージ形式504がサービスプロバイダ情報116で
示されるサービスプロバイダ計算機109のメッセージ
形式406である様なメッセージ変換手続き505を検
索する。
【0078】分岐条件1002において、ステップ10
01でメッセージ変換手続き505が見つからなかった
場合にメッセージ変換処理1000は、「不明なメッセ
ージ形式である」という例外メッセージを送出する(ス
テップ1003)。
【0079】ステップ1004においてメッセージ変換
処理1000は、ステップ1001で見つかったメッセ
ージ変換手続き505を起動し、メッセージ124をメ
ッセージ125に変換する。
【0080】本実施形態の登録情報編集処理部114
は、GUIを持つ処理部であり、メッセージ形式定義編
集ツール、サービス決定ルール編集ツール、サービス定
義編集ツール及びメッセージ変換手続き編集ツールを有
している。図11から図14を用いて、登録情報編集処
理部114の編集画面の例を説明する。
【0081】図11は本実施形態のメッセージ形式定義
編集ツールの編集画面の一例を示す図である。メッセー
ジ形式定義編集ツール1100は、メッセージ形式定義
テーブル118で説明したデータ構造を編集し、2次記
憶装置上のメッセージ形式定義テーブル121に格納す
る。
【0082】画面領域1101は、メッセージ形式定義
テーブルに既に登録してあるメッセージ形式定義の一覧
を表示する。画面領域1102及び画面領域1103に
おいて、メッセージ形式定義を行う。
【0083】図12は本実施形態のサービス決定ルール
編集ツールの編集画面の一例を示す図である。サービス
決定ルール編集ツール1200は、メッセージ形式定義
テーブル121及びサービス定義テーブルを参照して、
サービス決定ルール201で説明したデータ構造を編集
し、2次記憶装置上のサービス決定ルールセット120
に格納する。
【0084】サービス決定ルール編集ツール1200
は、メッセージ形式定義テーブル121のメッセージ形
式定義に基づいて条件203を編集し、メッセージ形式
定義テーブル121とサービス定義テーブル122とに
基づいてサービス情報を定義する。
【0085】画面領域1201は、サービス決定ルール
セット120に既に登録してあるサービス決定ルールの
一覧を表示する。画面領域1202において、システム
100の運用管理者は、ルールが処理することができる
メッセージ形式をメッセージ形式定義テーブル121か
ら選択する。画面領域1203において、システム10
0の運用管理者は、ルールの条件を定義する。画面領域
1204において、システム100の運用管理者は、ル
ールのサービス情報を定義する。
【0086】図13は本実施形態のサービス定義編集ツ
ールの編集画面の一例を示す図である。サービス定義編
集ツール1300は、サービス定義テーブル119で説
明したデータ構造を編集し、2次記憶装置上のサービス
定義テーブル122に格納する。
【0087】画面領域1301は、サービス定義テーブ
ルに既に登録してあるサービス定義の一覧を表示する。
画面領域1302及び画面領域1303において、サー
ビス定義を行う。
【0088】ここでは、システム100の運用管理者が
サービス定義を行う様に記述しているが、サービスプロ
バイダ・プログラム自体が、自身が提供するサービスを
プログラム起動時に、サービス定義テーブル119とサ
ービス定義テーブル122に登録し、プログラム終了時
に削除するという方法も考えられる。
【0089】図14は本実施形態のメッセージ変換編集
ツールの編集画面の一例を示す図である。メッセージ変
換編集ツール1400は、メッセージ形式定義テーブル
121を参照して、サービス定義テーブル119で説明
したデータ構造を編集し、2次記憶装置上のメッセージ
変換手続きテーブル127に格納する。
【0090】画面領域1401は、メッセージ変換手続
きテーブル127に既に登録してあるメッセージ変換の
一覧を表示する。画面領域1402及び画面領域140
3において、サービス定義を行う。画面領域1403で
は、メッセージ変換手続きの指定として変換を行うコー
ドを直接入力する方法を取っているが、変換元メッセー
ジ形式の属性と変換先メッセージ形式の属性の対応テー
ブルを定義する方法も考えられる。
【0091】以上説明した様に本実施形態のメッセージ
ルータによれば、サービスユーザからのメッセージに対
応するサービス検索条件を満たすサービスプロバイダへ
当該メッセージをルーティングするので、サービス形態
の動的変更やサービスユーザが送信する任意のメッセー
ジ形式に応じてルーティングを行うことが可能である。
【0092】
【発明の効果】本発明によればサービスユーザからのメ
ッセージに対応するサービス検索条件を満たすサービス
プロバイダへ当該メッセージをルーティングするので、
サービス形態の動的変更やサービスユーザが送信する任
意のメッセージ形式に応じてルーティングを行うことが
可能である。
【図面の簡単な説明】
【図1】本実施形態のメッセージ・ルーティングを行う
システムの概略構成を示す図である。
【図2】本実施形態のサービス決定ルールセット117
のデータ構造を示す図である。
【図3】本実施形態のメッセージ形式定義テーブル11
8のデータ構造を示す図である。
【図4】本実施形態のサービス定義テーブル119のデ
ータ構造を示す図である。
【図5】本実施形態のメッセージ変換手続きテーブル1
26のデータ構造を示す図である。
【図6】本実施形態のサービス決定処理部111の処理
手順を示すフローチャートである。
【図7】本実施形態のメッセージ解析処理の処理手順を
示すフローチャートである。
【図8】本実施形態のサービス決定ルール評価処理の処
理手順を示すフローチャートである。
【図9】本実施形態のサービスプロバイダ決定処理部1
12の処理手順を示すフローチャートである。
【図10】本実施形態のメッセージ変換処理の処理手順
を示すフローチャートである。
【図11】本実施形態のメッセージ形式定義編集ツール
の編集画面の一例を示す図である。
【図12】本実施形態のサービス決定ルール編集ツール
の編集画面の一例を示す図である。
【図13】本実施形態のサービス定義編集ツールの編集
画面の一例を示す図である。
【図14】本実施形態のメッセージ変換編集ツールの編
集画面の一例を示す図である。
【符号の説明】
100…システム、101…メッセージルータ計算機、
102…中央演算装置、103…主記憶装置、104…
2次記憶装置、105…入出力装置、106…通信装
置、107…計算機ネットワーク、108…サービスユ
ーザ計算機、109…サービスプロバイダ計算機、11
5…サービス情報、116…サービスプロバイダ情報、
117…サービス決定ルールセット、118…メッセー
ジ形式定義テーブル、119…サービス定義テーブル、
120…サービス決定ルールセット、121…メッセー
ジ形式定義テーブル、122…サービス定義テーブル、
123…メッセージ形式、124…メッセージ、125
…メッセージ、126…メッセージ変換手続きテーブ
ル、127…メッセージ変換手続きテーブル、110…
メッセージ受信処理部、111…サービス決定処理部、
112…サービスプロバイダ決定処理部、113…メッ
セージ送信処理部、114…登録情報編集処理部、20
1…サービス決定ルール、202…メッセージ形式、2
03…条件、204…サービス情報、205…ルール
名、302…メッセージ形式定義テーブルエントリ、3
03…メッセージ形式、304…定義の参照、311…
メッセージ形式定義、312…メッセージ属性定義、3
13…属性名、314…型、315…型情報、402…
サービス定義、403…サービス、404…属性リス
ト、405…サービスプロバイダ情報、406…メッセ
ージ形式、502…メッセージ変換手続きテーブルエン
トリ、503…変換元メッセージ形式、504…変換先
メッセージ形式、505…メッセージ変換手続き、60
3…メッセージ属性値テーブル、700…メッセージ解
析処理、702、707、709、711、713及び
716…分岐条件、706…繰り返し条件、800…サ
ービス決定ルール評価処理、803…繰り返し条件、8
04、807及び810…分岐条件、903…繰り返し
条件、905、909及び911…分岐条件、1000
…メッセージ変換処理、1002…分岐条件、1100
…メッセージ形式定義編集ツール、1101…画面領
域、1102…画面領域、1103…画面領域、120
0…サービス決定ルール編集ツール、1201…画面領
域、1202…画面領域、1203…画面領域、120
4…画面領域、1300…サービス定義編集ツール、1
301…画面領域、1302…画面領域、1303…画
面領域、1400…メッセージ変換編集ツール、140
1…画面領域、1402…画面領域、1403…画面領
域。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 青島 達人 神奈川県川崎市幸区鹿島田890番地 株式 会社日立製作所システム開発本部内 (72)発明者 北川 誠 神奈川県川崎市幸区鹿島田890番地 株式 会社日立製作所システム開発本部内 Fターム(参考) 5B045 BB01 5B085 BG07 CA04 5B089 GA31 GB01 JA11 KA01 KC44 KG08

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 プログラム間で送受信されるメッセージ
    のルーティングを行うメッセージ・ルーティング方法に
    おいて、 メッセージの内容を解析し、メッセージにより要求され
    たサービスを決定するステップと、サービスに適合する
    サービスプロバイダを検索し、メッセージが要求するサ
    ービスの処理を行うサービスプロバイダを決定するステ
    ップとを有することを特徴とするメッセージ・ルーティ
    ング方法。
  2. 【請求項2】 メッセージ中のデータがサービス決定ル
    ールの条件を満たすかを判定し、メッセージに対応する
    サービスを決定するステップを有することを特徴とする
    請求項1に記載されたメッセージ・ルーティング方法。
  3. 【請求項3】 サービスプロバイダが受理できる形式に
    メッセージ変換を行うステップを有することを特徴とす
    る請求項1または請求項2のいずれかに記載されたメッ
    セージ・ルーティング方法。
  4. 【請求項4】 プログラム間で送受信されるメッセージ
    のルーティングを行うメッセージルータにおいて、 メッセージの内容を解析し、メッセージにより要求され
    たサービスを決定するサービス決定処理部と、サービス
    に適合するサービスプロバイダを検索し、メッセージが
    要求するサービスの処理を行うサービスプロバイダを決
    定するサービスプロバイダ決定処理部とを備えることを
    特徴とするメッセージルータ。
  5. 【請求項5】 プログラム間で送受信されるメッセージ
    のルーティングを行うメッセージルータとしてコンピュ
    ータを機能させる為のプログラムを記録したコンピュー
    タ読み取り可能な記録媒体において、 メッセージの内容を解析し、メッセージにより要求され
    たサービスを決定するサービス決定処理部と、サービス
    に適合するサービスプロバイダを検索し、メッセージが
    要求するサービスの処理を行うサービスプロバイダを決
    定するサービスプロバイダ決定処理部としてコンピュー
    タを機能させる為のプログラムを記録したことを特徴と
    する記録媒体。
JP11166466A 1999-06-14 1999-06-14 メッセージ・ルーティング方法及びその実施装置並びにその処理プログラムを記録した記録媒体 Pending JP2000353153A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11166466A JP2000353153A (ja) 1999-06-14 1999-06-14 メッセージ・ルーティング方法及びその実施装置並びにその処理プログラムを記録した記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11166466A JP2000353153A (ja) 1999-06-14 1999-06-14 メッセージ・ルーティング方法及びその実施装置並びにその処理プログラムを記録した記録媒体

Publications (1)

Publication Number Publication Date
JP2000353153A true JP2000353153A (ja) 2000-12-19

Family

ID=15831930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11166466A Pending JP2000353153A (ja) 1999-06-14 1999-06-14 メッセージ・ルーティング方法及びその実施装置並びにその処理プログラムを記録した記録媒体

Country Status (1)

Country Link
JP (1) JP2000353153A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011118895A (ja) * 2009-12-03 2011-06-16 Internatl Business Mach Corp <Ibm> メッセージ・キューにおける論理的に関連したメッセージをマージする方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011118895A (ja) * 2009-12-03 2011-06-16 Internatl Business Mach Corp <Ibm> メッセージ・キューにおける論理的に関連したメッセージをマージする方法
US9361165B2 (en) 2009-12-03 2016-06-07 International Business Machines Corporation Automated merger of logically associated messages in a message queue
US9367369B2 (en) 2009-12-03 2016-06-14 International Business Machines Corporation Automated merger of logically associated messages in a message queue

Similar Documents

Publication Publication Date Title
JP4445509B2 (ja) 構造化文書検索システム及びプログラム
AU2003243169B2 (en) System and method for processing of XML documents represented as an event stream
US5745360A (en) Dynamic hypertext link converter system and process
JP4824110B2 (ja) ページに関するページ・レイアウトを継承するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
US6658625B1 (en) Apparatus and method for generic data conversion
US8326856B2 (en) Method and apparatus of automatic method signature adaptation for dynamic web service invocation
CN101246486B (zh) 用于改进的表达式处理的方法和装置
US6848079B2 (en) Document conversion using an intermediate computer which retrieves and stores position information on document data
US20020103823A1 (en) Method and system for extending the performance of a web crawler
US6704776B1 (en) Selecting attribute based content for server applications
US20060155740A1 (en) Method, System and Program Product for Locating Remote Source Files
JPH11272667A (ja) 構造化文書作成方法、構造化文書作成装置及び構造化文書作成用プログラムを格納した記憶媒体
JP2006024179A (ja) 構造化文書処理装置、構造化文書処理方法、及びプログラム
US20040107404A1 (en) Web page communications using parameters and events
JP2009543166A (ja) ページによってページ・レイアウトを定義するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
JPH0981445A (ja) 情報管理装置
JPH08110880A (ja) 名前サービス方式
JPH11232192A (ja) 電子メッセージをアーカイブし、アクセスするためのデータ処理システム及び方法
JP2005031995A (ja) ユーザインタフェース制御装置及びその方法
JP2000066656A (ja) 動的文書の特殊文字処理システムおよび特殊文字処理プログラムを記録した記録媒体
US6725251B2 (en) Local-file-transfer method and local-filed-transfer system for client-server system
JP2004118374A (ja) 変換装置及び変換方法及び変換プログラム及び変換プログラムを記録したコンピュータ読み取り可能な記録媒体
US6963863B1 (en) Network query and matching system and method
JP2004062536A (ja) アプリケーションプログラムプラン生成装置、アプリケーションプログラムプラン生成方法、プログラム及び記録媒体
JP2005500741A (ja) ペイロード検査を介したパケット・ルート付け、及び発行−申し込みネットワークにおける申し込み処理