JP5029020B2 - 電文中継プログラム - Google Patents

電文中継プログラム Download PDF

Info

Publication number
JP5029020B2
JP5029020B2 JP2007003869A JP2007003869A JP5029020B2 JP 5029020 B2 JP5029020 B2 JP 5029020B2 JP 2007003869 A JP2007003869 A JP 2007003869A JP 2007003869 A JP2007003869 A JP 2007003869A JP 5029020 B2 JP5029020 B2 JP 5029020B2
Authority
JP
Japan
Prior art keywords
service
business process
execution
message
information
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.)
Expired - Fee Related
Application number
JP2007003869A
Other languages
English (en)
Other versions
JP2008171209A (ja
Inventor
信吾 高砂
正憲 村上
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007003869A priority Critical patent/JP5029020B2/ja
Publication of JP2008171209A publication Critical patent/JP2008171209A/ja
Application granted granted Critical
Publication of JP5029020B2 publication Critical patent/JP5029020B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)
  • Information Transfer Between Computers (AREA)

Description

この発明は、ネットワーク経由でサービスを呼び出すための電文を中継する電文中継プログラムに関し、特に、同期的に実行されるサービスと非同期的に実行されるサービスが混在している場合であっても、非同期的に実行されたサービスのエラーのみを選別してエラーリカバリを実行することができる電文中継プログラムに関する。
コンピュータにおいて実行される処理が途中でエラー終了した場合に、データの整合性を保つ等の目的で、エラー終了した部分から処理を再実行することをエラーリカバリという。エラーリカバリの実現方式としては、処理の実行状況を記録した実行ログを参照してエラーの発生時点を特定し、その直前の部分から処理を再実行する方式が知られている(例えば、特許文献1)。
特開2001−14175号公報
ところで、近年、複数の情報処理システムを連携させるための技術であるSOA(Service Oriented Architecture)が注目されている。SOAは、情報処理システムがもつ機能をサービスとして公開し、電文のやりとりによってサービスの遠隔実行を可能にする技術であり、使用されているOS(Operating System)やコンピュータ言語に関わりなく、情報処理システムの連携を実現することができる。
SOAに基づいて、複数の情報処理システムを連携させる場合、個別の情報処理システム毎に電文をやりとりすることとすると、連携させる情報処理システムが多くなるにつれて電文の呼び出し関係が複雑化する。そのため、電文を中継する電文中継装置(「HUBシステム」とも呼ばれる)を設け、この電文中継装置を介して電文のやりとりをおこなう方式がとられることが多い。
一般に、電文中継装置は、処理の要求元の処理を簡略化させるため、処理の実行を要求する電文に対して、単一のサービスを呼び出すだけではなく、予め定義されたフローに従って複数のサービスを呼び出してその結果を応答することができるように構成される。しかしながら、複数のサービスの呼び出しをフローとして定義する方式は、フローに含まれるサービスが多い場合には、要求元に応答が返るまでの時間を長くし、タイムアウトエラーが発生する可能性を高める。
この問題を解決する手法として、予め定義しておくフローを、処理の実行を要求する電文に対して同期的に実行されるフローと、要求元に応答を返した後に非同期的に実行されるフローとに分割する手法が有効であると考えられる。この手法をもちいる場合、同期的に実行されるフローに関しては、実行結果が要求元に応答されるため、エラーリカバリの実行を要求元に委ねることができる。
一方、非同期的に実行されるフローに関しては、実行結果が要求元に応答されないため、エラーリカバリを電文中継装置が確実におこなう必要がある。ところが、特許文献1にあるような従来技術は、同期的に実行されるサービスと非同期的に実行されるサービスを区別することができないため、非同期的に実行されたサービスのエラーのみを選別してエラーリカバリを実行することができなかった。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、同期的に実行されるサービスと非同期的に実行されるサービスが混在している場合であっても、非同期的に実行されたサービスのエラーのみを選別してエラーリカバリを実行することができる電文中継プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、ネットワーク経由でサービスを呼び出すための電文を中継する電文中継プログラムであって、複数のサービスを呼び出すことにより実現される業務処理の実行を要求する要求電文が受信された場合に、予め記憶手段に記憶されている業務処理定義情報に従って、該業務処理に含まれるサービスを呼び出すための電文のやりとりをおこない、それぞれのサービスを呼び出すための電文のやりとりの結果を実行ログとして記録する業務処理実行手順と、前記実行ログと、前記業務処理定義情報において定義されているサービスの呼び出し手順に係る情報とを照合して、呼び出しが失敗し、かつ、呼び出し結果が前記要求電文の送信元へ応答されていないサービスの情報を抽出する未完了業務処理抽出手順と、前記未完了業務処理抽出手順によって抽出されたサービスの情報に基づいて、呼び出しが失敗したサービスの呼び出しを再実行する業務処理再実行手順とをコンピュータに実行させることを特徴とする。
また、本発明の他の態様では、上記の発明の態様において、前記未完了業務処理抽出手順は、業務処理の実行結果が依頼元に応答された後に、非同期的にサービスの呼び出しをおこなうように前記業務処理定義情報に定義されている場合に、該サービスを、呼び出し結果が前記要求電文の送信元へ応答されていないサービスとみなすことを特徴とする。
これらの発明の態様によれば、サービスの呼び出し結果を記録した実行ログと、サービスの呼び出し手順を定義した業務処理定義情報とを照合して、再実行が必要なサービスの情報を抽出することとしたので、同期的に実行されるサービスと非同期的に実行されるサービスが混在している場合であっても、非同期的に実行されたサービスのエラーのみを選別してエラーリカバリを実行することができる。
また、本発明の他の態様では、上記の発明の態様において、前記未完了業務処理抽出手順は、現在時刻から所定の補正時間を引いた時刻を上限時刻とし、前回起動されたときの上限時刻を下限時刻とした範囲で前記要求電文が受信された業務処理に含まれるサービスに関する情報のみを抽出することを特徴とする。
この発明の態様によれば、参照範囲をずらしながら再実行が必要なサービスの情報を抽出することとしたので、データの重複抽出がなく、かつ、未完了の業務処理の情報を抽出することがないようにしながら、情報抽出を高速におこなうことができる。
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
本発明の一つの態様によれば、サービスの呼び出し結果を記録した実行ログと、サービスの呼び出し手順を定義した業務処理定義情報とを照合して、再実行が必要なサービスの情報を抽出することとしたので、同期的に実行されるサービスと非同期的に実行されるサービスが混在している場合であっても、非同期的に実行されたサービスのエラーのみを選別してエラーリカバリを実行することができるという効果を奏する。
以下に添付図面を参照して、本発明に係る電文中継プログラムの好適な実施の形態を詳細に説明する。
まず、図1〜3に示した例に基づいて、本実施例に係る電文中継方法の概要について説明する。図1に示す例では、本実施例に係る電文中継方法を実行する電文中継装置100と、電文中継装置100に対して処理の実行を要求する電文を送信する要求元装置200と、様々な機能をサービスとして提供する業務処理装置300aおよび300bとがネットワークを介して接続されている。
電文中継装置100には、業務処理装置300aが提供するサービスである処理Aを実行するフローと、そのフローから派生して、業務処理装置300bが提供するサービスである処理Bを非同期的に実行するフローとが1つの業務処理として予め登録されている。
そして、要求元装置200がこの業務処理の実行を要求する入力電文Xを電文中継装置100へ送信すると、電文中継装置100は、予め登録されている定義に従って、処理Aを呼び出すための入力電文Aを生成して業務処理装置300aへ送信する。そして、電文中継装置100は、業務処理装置300aから処理の結果を伝える出力電文Aが応答されると、処理結果を伝えるための出力電文Xを要求元装置200へ応答する。
このとき、電文中継装置100は、出力電文Aが処理Aの正常終了を伝えるものであれば、予め登録されている定義に従って、処理Bを呼び出すための入力電文Bを生成して業務処理装置300bへ送信する処理も実行し、処理の結果を伝える出力電文Bを待ち受ける。ここで、処理Bは、非同期的に実行するものと定義されているため、出力電文Bによって伝えられた処理Bの実行結果は、要求元装置200へは応答されない。
この一連の動作において、電文中継装置100は、呼び出したサービスの実行結果、すなわち、処理Aおよび処理Bの実行結果を、そのサービスを呼び出すために使用した各種パラメータとともに実行ログ122に記録する。図1の例では、「T001」という識別番号で識別される一連の処理で、処理Aと処理Bが正常に終了した旨が、使用されたパラメータとともに実行ログ122に記録されている。
この例では、電文中継装置100は、実行を要求された業務処理に含まれる処理Aと処理Bのうち、処理Aの実行が完了した段階で処理結果を要求元装置200へ応答し、その後、処理Bを実行している。このように、処理Bを非同期的に実行すると、要求元装置200へ応答が返されるタイミングが速くなり、要求元装置200が早期に次の処理へ移行できるとともに、要求元装置200において応答待ちのタイムアウトエラーが発生する可能性が低くなる。
その一方で、このように、処理Bを非同期的に実行することとすると、要求元装置200は、処理Aが正常に完了した段階で処理Bも正常に完了しているものとみなして次の処理へ移行するため、処理Aが正常に完了した後に処理Bが異常終了した場合に、電文中継装置100が処理Bのエラーリカバリを実行することが必要になる。そのため、電文中継装置100は、定期的に実行ログ122を参照し、非同期的に実行した処理が異常終了していれば、その処理を再実行する。
例えば、電文中継装置100は、図2に示すように、処理Aが正常に完了した後に処理Bが異常終了した場合、その旨を実行ログ122に記録する。図2の例では、「T002」という識別番号で識別される一連の処理で、処理Aは正常に終了したが、処理Bは異常終了した旨が、使用されたパラメータとともに実行ログ122に記録されている。
そして、電文中継装置100は、図3に示すように、定期的に実行ログ122を参照し、「T002」という識別番号で識別される一連の処理で、処理Bが異常終了したことを認識すると、予め登録されているフローの定義を参照する。そして、一連の処理において処理Bが非同期的に実行されることを確認すると、実行ログ122に記録されているパラメータをもちいて処理Bを呼び出すための電文を再生成して業務処理装置300bへ送信する。
ここで、処理Bが、「T002」という識別番号で識別される一連の処理で同期的に実行される処理であった場合は、エラーの発生を要求元装置200が把握し、必要な措置をおこなっているはずであるため、電文中継装置100は、エラーリカバリを実行しない。
次に、図1に示した電文中継装置100の構成について説明する。図4は、本実施例に係る電文中継装置100の構成を示す機能ブロック図である。同図に示すように、電文中継装置100は、制御部110と、記憶部120とを有する。制御部110は、電文中継装置100を全体制御する制御部であり、要求電文処理部111と、業務処理実行部112と、未完業務処理抽出部113と、業務処理再実行部114とを有する。
要求電文処理部111は、予め定義されている業務処理の実行を要求する要求電文を要求元装置200から受け付け、受け付けた要求電文に対応する業務処理の実行を業務処理実行部112に依頼し、実行結果を要求元装置200へ応答する処理部である。要求電文には、実行すべき業務処理を識別するための情報と、業務処理の実行に必要な各種パラメータとが含まれる。なお、図4の例では、要求元装置200を1台のみ図示しているが、要求元装置200は何台あってもよい。
業務処理実行部112は、要求電文処理部111において受け付けられた要求電文に対応する業務処理を実行し、その結果を要求電文処理部111へ出力する処理部である。具体的には、業務処理実行部112は、要求電文処理部111から、要求電文に対応する業務処理の実行を依頼されると、まず、記憶部120の業務処理定義情報121を参照して、その業務処理に含まれるサービスに関する情報を取得する。
業務処理定義情報121の一例を図5に示す。同図に示すように、業務処理定義情報121は、業務処理ID、実行順序、サービス名、実行区分、送信先、電文仕様といった項目を有し、業務処理ID毎に、実行順序〜電文仕様といったサービスに関する情報を複数件登録することができる構成となっている。
業務処理IDは、業務処理を識別するための識別番号である。実行順序は、業務処理に含まれるサービスの実行順序であり、サービス名は、サービスの名称である。実行区分は、そのサービスが同期的に実行されるか非同期的に実行されるかを示し、「同期」もしくは「非同期」が設定される。送信先は、そのサービスを呼び出すための電文の送信先のホスト名であり、電文仕様は、そのサービスを呼び出すための電文の仕様に関する情報である。
例えば、図5に示した例の1行目と2行目の情報は、「TR001」という業務処理IDで識別される業務処理は、まず、「online01」というホスト名をもつ業務処理装置へ電文を送信して「決済」という名称のサービスを実行し、続いて、「daily01」というホスト名をもつ業務処理装置へ電文を送信して「日計」という名称のサービスを実行する必要があることを示している。
また、1行目と2行目の実行区分は、それぞれ、「同期」と「非同期」となっており、「決済」という名称のサービスを実行した段階で要求元装置200へその実行結果を応答し、「日計」という名称のサービスは、非同期的に実行すべきことを示している。
業務処理実行部112は、要求電文に含まれる業務処理IDを検索キーとして業務処理定義情報121を検索し、サービスを呼び出す順序や、サービスを呼び出すために必要な電文のやりとりに関する情報、および、要求元装置200へ実行結果を応答するタイミングに関する情報を取得する。
そして、業務処理実行部112は、取得した情報に基づいて、電文の生成と送受信を順次おこなっていき、呼び出したサービスの実行結果を記憶部120の実行ログ122に記録する。また、要求元装置200へ実行結果を応答するタイミングで、それまでの処理結果を要求電文処理部111へ出力する
実行ログ122の一例を図6に示す。同図に示すように、実行ログ122は、起点識別ID、受付時刻、業務処理ID、サービス名、結果、送信先、送信電文、受信電文といった項目を有し、サービスの呼び出しが完了するたびに結果が1行ずつ追加される。
起点識別IDは、業務処理に含まれる最初のサービスを呼び出す際に採番される識別番号であり、同一の要求電文に対応して呼び出される他のサービスの実行結果に対しても同じ番号が設定される。受付時刻は、要求電文が受け付けられた時刻である。
業務処理IDは、業務処理を識別するための識別番号であり、業務処理定義情報121の業務処理IDと対応する。サービス名は、サービスの名称であり、業務処理定義情報121のサービス名と対応する。結果は、サービスの実行結果を示し、「成功」もしくは「失敗」が設定される。送信先は、そのサービスを呼び出すための電文の送信先のホスト名であり、送信電文は、そのサービスを呼び出すために送信した電文の内容であり、受信電文は、そのサービスの実行結果として受信した電文の内容である。
未完業務処理抽出部113は、エラーリカバリを実現するために、定期的に実行ログ122を参照し、再実行が必要なサービスに関する情報を抽出する処理部である。具体的には、未完業務処理抽出部113は、実行ログ122を参照して、結果の項目が「失敗」となっているデータを見つけると、その行の業務処理IDとサービス名の値を検索キーとして業務処理定義情報121を検索する。
そして、検索されたデータの実行区分の値が「非同期」となっていれば、すなわち、そのサービスが非同期で実行されるように定義されていれば、そのサービスを再実行が必要なサービスであると判定する。
なお、未完業務処理抽出部113の機能は、起動のたびに実行ログ122の先頭から再実行の要否を確認していくとすると、前回再実行対象として抽出されたデータが再度抽出されてしまう上に、抽出処理に要する時間が長くなる。また、実行ログ122の末尾付近には、業務処理全体としての処理結果が確定していないサービスの実行結果が記録されており、これを処理対象とすることは適切でない。
そこで、未完業務処理抽出部113は、起動のたびに、データの重複抽出がなく、かつ、未完了の業務処理の情報を抽出することがないように、実行ログ122の検索範囲を設定する。具体的には、現在時刻から所定の補正時間(業務処理がタイムアウトエラーになったと判定される時間よりも長いことが好ましい)を引いた時刻を上限とし、前回の起動時に上限とした時刻を下限とし、この範囲に受付時刻の値が収まるデータを検索対象とする。
そして、未完業務処理抽出部113は、設定した検索範囲で、実行ログ122から再実行が必要なサービスに関する情報を抽出した後、次回起動されたときのために、検索範囲の上限とした時刻を記憶部120に抽出時刻情報123として記憶させる。抽出時刻情報123に記憶された時刻は、次回起動時に、実行ログ122の検索範囲の下限となる。
業務処理再実行部114は、未完業務処理抽出部113によって抽出された情報に基づいて、再実行が必要なサービスを再実行する処理部である。具体的には、未完業務処理抽出部113によって実行ログ122から抽出されたデータの送信電文の項目に設定されている情報と、業務処理定義情報121に記憶されている、そのデータに対応するサービスを呼び出すための電文仕様とに基づいて、電文の再生成と再送信をおこない、その結果を記憶部120の再実行ログ124に記録する。再実行ログ124は、実行ログ122と同様のデータ構造を有する情報である。
また、業務処理再実行部114は、再実行ログ124を参照して、正常に完了していないサービスを再実行する処理もおこなう。再実行ログ124において結果が「失敗」となっているサービスの呼び出しは、業務処理再実行部114によって一旦再実行された際にも異常終了したものであり、ネットワーク等の障害よって呼び出しが失敗している可能性が高い。
そこで、再実行ログ124に基づくサービスの再実行は、自動的にはおこなわずに、管理者等の実行指示を待って実行される。ネットワーク経由のコマンド実行等により、再実行ログ124に基づくサービスの再実行の指示を管理者等から受けると、業務処理再実行部114は、再実行ログ124から再実行が必要なサービスの情報を抽出し、再実行をおこなう。この仕組みにより、ハードウェアの故障等により、再実行が失敗したサービスについても、確実にエラーリカバリをおこなうことが可能になる。
次に、図4に示した電文中継装置100の処理手順について説明する。図7は、電文中継装置100が要求元装置200から要求電文を受信した場合の処理手順を示すフローチャートである。同図に示すように、電文中継装置100の要求電文処理部111にて要求電文が受信されると(ステップS101)、業務処理実行部112は、業務処理定義情報121から実行すべきサービスに関する情報を取得する(ステップS102)。
そして、業務処理実行部112は、サービスの実行順序に従って、サービスを呼び出すための電文の生成と送信をおこない(ステップS103)、応答を待ち受ける(ステップS104)。ここで、サービスが正常に完了した旨の応答があった場合は(ステップS105肯定)、業務処理実行部112は、実行ログにサービスの呼び出しが成功した旨を記録する(ステップS106)。
続いて、業務処理実行部112は、呼び出したサービスが同期的に呼び出される最後のサービスであれば(ステップS107肯定)、要求電文処理部111経由で要求元装置200へ業務処理が正常に完了した旨を応答する(ステップS108)。そして、呼び出したサービスが同期的に呼び出される最後のサービスであるか否かに関わらず、実行すべきサービスを全て実行済であれば(ステップS109肯定)、処理を終了し、さもなければ(ステップS109否定)、ステップS103に戻って、次のサービスの呼び出しをおこなう。
一方、ステップS104にて、サービスが異常終了した旨の応答があった場合は(ステップS105否定)、業務処理実行部112は、実行ログ122にサービスの呼び出しが失敗した旨を記録し(ステップS110)、呼び出したサービスが同期的に呼び出されるサービスであれば(ステップS111肯定)、要求電文処理部111経由で要求元装置200へ業務処理が異常終了した旨を応答する(ステップS112)。そして、呼び出したサービスが同期的に呼び出されるサービスであるか否かに関わらず、処理を終了する。
図8は、電文中継装置100が非同期処理を再実行する場合の処理手順を示すフローチャートである。この処理手順は、一定時間毎に制御部110によって起動される。
再実行の処理手順においては、まず、未完業務処理抽出部113が、現在時刻から所定の補正時間を引いたものを上限時刻とし(ステップS201)、抽出時刻情報123に記録されている時刻を下限時刻として(ステップS202)、この間に呼び出しが失敗したサービスの情報を実行ログ122から抽出する(ステップS203)。
そして、業務処理再実行部114が、抽出結果から未選択の情報を1件選択し(ステップS204)、選択できた場合は(ステップS205否定)、選択した情報に対応するサービスの詳細情報を業務処理定義情報121から取得する(ステップS206)。ここで、取得した情報から、選択したサービスが非同期的に実行されるものではないことが分かった場合は(ステップS207否定)、ステップS204に戻って、次の情報の選択を試みる。
一方、取得した情報から、選択したサービスが非同期的に実行されるものであることが分かった場合は(ステップS207肯定)、業務処理再実行部114は、サービスの再実行のための電文を再生成して再送信し(ステップS208)、応答を待ち受ける(ステップS209)。そして、サービスが正常に終了した旨の応答があった場合には(ステップS210肯定)、再実行ログ124にサービスの呼び出しが成功した旨を記録し(ステップS211)、さもなければ(ステップS210否定)、再実行ログ124にサービスの呼び出しが失敗した旨を記録する(ステップS212)。そして、ステップS204に戻って、次の情報の選択を試みる。
そして、ステップS204において全ての抽出結果を選択済であった場合は(ステップS205肯定)、業務処理再実行部114は、上限時刻を抽出時刻情報123に記録した後(ステップS213)、処理を終了する。
図9は、電文中継装置100が再実行に失敗した処理を再実行する場合の処理手順を示すフローチャートである。この処理手順は、管理者等によって指示されたタイミングで起動される。
この処理手順においては、まず、業務処理再実行部114が、指定された上限時刻と下限時刻間で呼び出しが失敗したサービスの情報を再実行ログ124から抽出する(ステップS301)。
そして、業務処理再実行部114は、抽出結果から未選択の情報を1件選択し(ステップS302)、選択できた場合は(ステップS303否定)、選択した情報に対応するサービスの詳細情報を業務処理定義情報121から取得する(ステップS304)。そして、サービスの再実行のための電文を再生成して再送信し(ステップS305)、応答を待ち受ける(ステップS306)。
そして、サービスが正常に終了した旨の応答があった場合には(ステップS307肯定)、再実行ログ124にサービスの呼び出しが成功した旨を記録し(ステップS308)、さもなければ(ステップS307否定)、再実行ログ124にサービスの呼び出しが失敗した旨を記録する(ステップS309)。そして、ステップS302に戻って、次の情報の選択を試みる。
そして、ステップS302において全ての抽出結果を選択済であった場合は(ステップS303肯定)、業務処理再実行部114は、処理を終了する。
なお、図4に示した本実施例に係る電文中継装置100の構成は、本発明の要旨を逸脱しない範囲で種々に変更することができる。例えば、電文中継装置100の制御部110の機能をソフトウェアとして実装し、これをコンピュータで実行することにより、電文中継装置100と同等の機能を実現することもできる。以下に、制御部110の機能をソフトウェアとして実装した電文中継プログラム1071を実行するコンピュータの一例を示す。
図10は、電文中継プログラム1071を実行するコンピュータ1000を示す機能ブロック図である。このコンピュータ1000は、各種演算処理を実行するCPU(Central Processing Unit)1010と、ユーザからのデータの入力を受け付ける入力装置1020と、各種情報を表示するモニタ1030と、記録媒体からプログラム等を読み取る媒体読取り装置1040と、ネットワークを介して他のコンピュータとの間でデータの授受をおこなうネットワークインターフェース装置1050と、各種情報を一時記憶するRAM(Random Access Memory)1060と、ハードディスク装置1070とをバス1080で接続して構成される。
そして、ハードディスク装置1070には、図4に示した制御部110と同様の機能を有する電文中継プログラム1071と、図4に示した記憶部120に記憶される各種データに対応する電文中継用データ1072とが記憶される。なお、電文中継用データ1072を、適宜分散させ、ネットワークを介して接続された他のコンピュータに記憶させておくこともできる。
そして、CPU1010が電文中継プログラム1071をハードディスク装置1070から読み出してRAM1060に展開することにより、電文中継プログラム1071は、電文中継プロセス1061として機能するようになる。そして、電文中継プロセス1061は、電文中継用データ1072から読み出した情報等を適宜RAM1060上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
なお、上記の電文中継プログラム1071は、必ずしもハードディスク装置1070に格納されている必要はなく、CD−ROM等の記憶媒体に記憶されたこのプログラムを、コンピュータ1000が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等を介してコンピュータ1000に接続される他のコンピュータ(またはサーバ)等にこのプログラムを記憶させておき、コンピュータ1000がこれらからプログラムを読み出して実行するようにしてもよい。
上述してきたように、本実施例では、サービスの呼び出し結果を記録した実行ログと、サービスの呼び出し手順を定義した業務処理定義情報とを照合して、再実行が必要なサービスの情報を抽出することとしたので、同期的に実行されるサービスと非同期的に実行されるサービスが混在している場合であっても、非同期的に実行されたサービスのエラーのみを選別してエラーリカバリを実行することができる。
(付記1)ネットワーク経由でサービスを呼び出すための電文を中継する電文中継プログラムであって、
複数のサービスを呼び出すことにより実現される業務処理の実行を要求する要求電文が受信された場合に、予め記憶手段に記憶されている業務処理定義情報に従って、該業務処理に含まれるサービスを呼び出すための電文のやりとりをおこない、それぞれのサービスを呼び出すための電文のやりとりの結果を実行ログとして記録する業務処理実行手順と、
前記実行ログと、前記業務処理定義情報において定義されているサービスの呼び出し手順に係る情報とを照合して、呼び出しが失敗し、かつ、呼び出し結果が前記要求電文の送信元へ応答されていないサービスの情報を抽出する未完了業務処理抽出手順と、
前記未完了業務処理抽出手順によって抽出されたサービスの情報に基づいて、呼び出しが失敗したサービスの呼び出しを再実行する業務処理再実行手順と
をコンピュータに実行させることを特徴とする電文中継プログラム。
(付記2)前記未完了業務処理抽出手順は、業務処理の実行結果が依頼元に応答された後に、非同期的にサービスの呼び出しをおこなうように前記業務処理定義情報に定義されている場合に、該サービスを、呼び出し結果が前記要求電文の送信元へ応答されていないサービスとみなすことを特徴とする付記1に記載の電文中継プログラム。
(付記3)前記未完了業務処理抽出手順は、現在時刻から所定の補正時間を引いた時刻を上限時刻とし、前回起動されたときの上限時刻を下限時刻とした範囲で前記要求電文が受信された業務処理に含まれるサービスに関する情報のみを抽出することを特徴とする付記1または2に記載の電文中継プログラム。
(付記4)前記業務処理再実行手順は、前記未完了業務処理抽出手順によって抽出されたサービスの情報に基づいて、呼び出しが失敗したサービスの呼び出しを再実行した結果を第2の実行ログに記録し、所定のタイミングで、前記第2の実行ログに呼び出しが失敗した旨が記録されているサービスの呼び出しを再実行することを特徴とする付記1〜3のいずれか1つに記載の電文中継プログラム。
(付記5)ネットワーク経由でサービスを呼び出すための電文を中継する電文中継装置であって、
複数のサービスを呼び出すことにより実現される業務処理の実行を要求する要求電文が受信された場合に、予め記憶手段に記憶されている業務処理定義情報に従って、該業務処理に含まれるサービスを呼び出すための電文のやりとりをおこない、それぞれのサービスを呼び出すための電文のやりとりの結果を実行ログとして記録する業務処理実行手段と、
前記実行ログと、前記業務処理定義情報において定義されているサービスの呼び出し手段に係る情報とを照合して、呼び出しが失敗し、かつ、呼び出し結果が前記要求電文の送信元へ応答されていないサービスの情報を抽出する未完了業務処理抽出手段と、
前記未完了業務処理抽出手段によって抽出されたサービスの情報に基づいて、呼び出しが失敗したサービスの呼び出しを再実行する業務処理再実行手段と
を備えたことを特徴とする電文中継装置。
(付記6)ネットワーク経由でサービスを呼び出すための電文を中継する電文中継方法であって、
複数のサービスを呼び出すことにより実現される業務処理の実行を要求する要求電文が受信された場合に、予め記憶手段に記憶されている業務処理定義情報に従って、該業務処理に含まれるサービスを呼び出すための電文のやりとりをおこない、それぞれのサービスを呼び出すための電文のやりとりの結果を実行ログとして記録する業務処理実行工程と、
前記実行ログと、前記業務処理定義情報において定義されているサービスの呼び出し工程に係る情報とを照合して、呼び出しが失敗し、かつ、呼び出し結果が前記要求電文の送信元へ応答されていないサービスの情報を抽出する未完了業務処理抽出工程と、
前記未完了業務処理抽出工程によって抽出されたサービスの情報に基づいて、呼び出しが失敗したサービスの呼び出しを再実行する業務処理再実行工程と
を含んだことを特徴とする電文中継方法。
以上のように、本発明に係る電文中継プログラムは、ネットワーク経由でサービスを呼び出すための電文の中継に有用であり、特に、同期的に実行されるサービスと非同期的に実行されるサービスが混在している場合であっても、非同期的に実行されたサービスのエラーのみを選別してエラーリカバリを実行することが必要な場合に適している。
本実施例に係る電文中継方法の概要を説明するための図である。 非同期的に実行されるフローが失敗した場合について説明するための図である。 非同期的に実行されるフローの再実行について説明するための図である。 本実施例に係る電文中継装置の構成を示す機能ブロック図である。 業務処理定義情報のデータ構成の一例を示す図である。 実行ログのデータ構成の一例を示す図である。 電文中継装置が要求電文を受信した場合の処理手順を示すフローチャートである。 電文中継装置が非同期処理を再実行する場合の処理手順を示すフローチャートである。 電文中継装置が再実行に失敗した処理を再実行する場合の処理手順を示すフローチャートである。 電文中継プログラムを実行するコンピュータを示す機能ブロック図である。
符号の説明
100 電文中継装置
110 制御部
111 要求電文処理部
112 業務処理実行部
113 未完業務処理抽出部
114 業務処理再実行部
120 記憶部
121 業務処理定義情報
122 実行ログ
123 抽出時刻情報
124 再実行ログ
200 要求元装置
300a〜300n 業務処理装置
1000 コンピュータ
1010 CPU
1020 入力装置
1030 モニタ
1040 媒体読取り装置
1050 ネットワークインターフェース装置
1060 RAM
1061 電文中継プロセス
1070 ハードディスク装置
1071 電文中継プログラム
1072 電文中継用データ
1080 バス

Claims (3)

  1. ネットワーク経由でサービスを呼び出すための電文を中継する電文中継プログラムであって、
    複数のサービスを呼び出すことにより実現される業務処理の実行を要求する要求電文が受信された場合に、予め記憶に記憶されている、サービスの呼び出し手順に係る業務処理定義情報であって業務処理を識別する情報と業務処理に含まれるサービスの情報と送信元へ応答するか否かを示す情報とを対応付けて定義された業務処理定義情報に従って、実行が要求された業務処理に含まれるサービスを呼び出すための電文のやりとりをおこない、それぞれのサービスを呼び出すための電文のやりとりの呼び出し結果を業務処理およびサービスに対応付けて実行ログとして前記記憶部に記録する業務処理実行手順と、
    前記実行ログを参照して、前記呼び出し結果が失敗である業務処理およびサービスを取得し、該取得した業務処理およびサービスを検索キーとして、前記業務処理定義情報に定義された情報から、前記呼び出し結果が前記要求電文の送信元へ応答されないサービスの情報を抽出する未完了業務処理抽出手順と、
    前記未完了業務処理抽出手順によって抽出されたサービスの情報に基づいて、呼び出し結果が失敗であったサービスの呼び出しを再実行する業務処理再実行手順と
    をコンピュータに実行させることを特徴とする電文中継プログラム。
  2. 前記未完了業務処理抽出手順は、業務処理の実行結果が依頼元に応答された後に、非同期的にサービスの呼び出しをおこなうように前記業務処理定義情報に定義されている場合に、該サービスを、呼び出し結果が前記要求電文の送信元へ応答されていないサービスとみなすことを特徴とする請求項1に記載の電文中継プログラム。
  3. 前記未完了業務処理抽出手順は、現在時刻から所定の補正時間を引いた時刻を上限時刻とし、前回起動されたときの上限時刻を下限時刻とした範囲で前記要求電文が受信された業務処理に含まれるサービスに関する情報のみを抽出することを特徴とする請求項1または2に記載の電文中継プログラム。
JP2007003869A 2007-01-11 2007-01-11 電文中継プログラム Expired - Fee Related JP5029020B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007003869A JP5029020B2 (ja) 2007-01-11 2007-01-11 電文中継プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007003869A JP5029020B2 (ja) 2007-01-11 2007-01-11 電文中継プログラム

Publications (2)

Publication Number Publication Date
JP2008171209A JP2008171209A (ja) 2008-07-24
JP5029020B2 true JP5029020B2 (ja) 2012-09-19

Family

ID=39699241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007003869A Expired - Fee Related JP5029020B2 (ja) 2007-01-11 2007-01-11 電文中継プログラム

Country Status (1)

Country Link
JP (1) JP5029020B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014081946A (ja) * 2013-12-04 2014-05-08 Ricoh Co Ltd ライセンス導入支援システム、ライセンス導入支援方法、及びライセンス導入支援プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001014175A (ja) * 1999-06-29 2001-01-19 Toshiba Corp ジョブ運用管理システム、ジョブ運用管理方法及び記憶媒体
JP2001290945A (ja) * 2000-04-07 2001-10-19 Bank Of Tokyo-Mitsubishi Ltd 現金自動預払機を用いた金融取引方法、金融取引メニューの表示方法、現金自動預払機の利用システム、現金自動預払機、および中継センター

Also Published As

Publication number Publication date
JP2008171209A (ja) 2008-07-24

Similar Documents

Publication Publication Date Title
CN110659256B (zh) 多机房同步方法、计算设备及计算机存储介质
CN103460203A (zh) 群集唯一标识符
JP2007272695A (ja) ブラウザ処理プログラムおよびブラウザ処理装置
JP4500318B2 (ja) 分散トランザクション処理方法、装置、及びプログラム
CN112596801A (zh) 事务处理方法、装置、设备、存储介质、数据库
JP5029020B2 (ja) 電文中継プログラム
JPWO2008105099A1 (ja) アプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置
JP2006053728A (ja) 障害対処ルール伝播方法、障害復旧装置およびプログラム
JP6364727B2 (ja) 情報処理システム、分散処理方法、及び、プログラム
JP6676352B2 (ja) データ処理装置
JP2008108046A (ja) トランザクション処理システムおよびトランザクション処理方法、ならびにそのプログラム
JP2010152435A (ja) 情報処理装置及び情報処理方法及びプログラム
JPH11161530A (ja) トランザクション処理システム
JP2007102794A (ja) フロントエンド処理機能を有する情報処理システム
JP2007295279A (ja) 障害管理装置及び障害管理方法及びプログラム
CN110647298B (zh) 一种数据存储控制方法及装置
JP5537917B2 (ja) 管理装置及びデータ処理制御装置及び管理方法及びデータ処理制御方法及びプログラム
JP4716492B2 (ja) 冗長構成システムおよび第1のコンピュータシステムに障害が発生したときに第2のコンピュータシステムが直ちにリカバーする方法
JP5812512B2 (ja) データベースシステム、マスタースレーブ管理方法およびマスタースレーブ管理プログラム
JP5048537B2 (ja) ワークフロー処理装置
CN113409109B (zh) 订单创建方法、装置、服务器及存储介质
CN111414198B (zh) 一种请求处理方法及装置
WO2022180815A1 (ja) 情報処理プログラム、情報処理方法及び情報処理装置
JP4547218B2 (ja) コンピュータ稼働状況取得システム、方法及びプログラム
TWI220707B (en) Mainboard test program processing system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120322

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees