JP2010257262A - 通信制御プログラム、通信システム、通信制御装置および通信制御方法 - Google Patents
通信制御プログラム、通信システム、通信制御装置および通信制御方法 Download PDFInfo
- Publication number
- JP2010257262A JP2010257262A JP2009107225A JP2009107225A JP2010257262A JP 2010257262 A JP2010257262 A JP 2010257262A JP 2009107225 A JP2009107225 A JP 2009107225A JP 2009107225 A JP2009107225 A JP 2009107225A JP 2010257262 A JP2010257262 A JP 2010257262A
- Authority
- JP
- Japan
- Prior art keywords
- information
- failure
- transmission information
- unit
- transmission
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 230000006854 communication Effects 0.000 title claims description 96
- 238000004891 communication Methods 0.000 title claims description 95
- 230000005540 biological transmission Effects 0.000 claims abstract description 103
- 238000003860 storage Methods 0.000 claims abstract description 100
- 230000004044 response Effects 0.000 claims abstract description 44
- 238000000605 extraction Methods 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims description 205
- 239000000284 extract Substances 0.000 claims description 10
- 238000007726 management method Methods 0.000 description 30
- 238000013075 data extraction Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 19
- 238000013500 data storage Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000012805 post-processing Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 3
- 238000004148 unit process Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001771 impaired effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】送信側プロセスで生じた障害を受信側プロセスに効率的に通知すること。
【解決手段】格納手段1eは、実行手段1aから送信情報を順次受け付け、受け付けた送信情報それぞれを送信情報記憶手段1cに格納する。取出手段1fは、実行手段1bから送信情報の取得要求を順次受け付け、受け付けた各取得要求に応じて送信情報記憶手段1cに記憶された各送信情報を取得し、取得した各送信情報を実行手段1bに出力する。制御手段1gは、障害が発生した旨を示す障害情報を格納手段1eから取得すると、通知情報記憶手段に記憶され障害の内容を定義した通知情報を取出手段1fに取得させ、実行手段1bからの取得要求に応じて、この通知情報を実行手段1bへ出力させる。
【選択図】図1
【解決手段】格納手段1eは、実行手段1aから送信情報を順次受け付け、受け付けた送信情報それぞれを送信情報記憶手段1cに格納する。取出手段1fは、実行手段1bから送信情報の取得要求を順次受け付け、受け付けた各取得要求に応じて送信情報記憶手段1cに記憶された各送信情報を取得し、取得した各送信情報を実行手段1bに出力する。制御手段1gは、障害が発生した旨を示す障害情報を格納手段1eから取得すると、通知情報記憶手段に記憶され障害の内容を定義した通知情報を取出手段1fに取得させ、実行手段1bからの取得要求に応じて、この通知情報を実行手段1bへ出力させる。
【選択図】図1
Description
本発明は、プロセス間のデータ通信を制御する通信制御プログラム、通信システム、通信制御装置および通信制御方法に関する。
コンピュータは、ユーザに利便性の高い様々な機能を提供する。コンピュータでは、基本的な機能を制御するオペレーティングシステム(OS:Operating System)が実行される。OSは、サービスに応じた複数のアプリケーションプログラム(以下、単にアプリケーションという)を動作させる。アプリケーションの実行は、プロセスと呼ばれる単位処理で管理される。OSは、各プロセスを実行するためのハードウェアリソースを各プロセスに割り当てる。OSは、複数のプロセスを協調して動作させることで、単一または複数のアプリケーションの機能をコンピュータ上に実現する。
ここで、複数のプロセス間のデータ通信をキュー(Queue)やスタック(Stack)と呼ばれるバッファを用いて行うことが考えられる。キューは、データの先入れ先出し(FIFO:First In First Out)を行うためのデータ構造である。また、スタックはデータの後入れ先出し(LIFO:Last In First Out)を行うためのデータ構造である。
キューなどのバッファを用いることで、送信側プロセスが送信したデータを一時保存しておくことができ、送信側プロセスと受信側プロセスとの間での非同期でのデータ通信を可能とする。これにより、送信側プロセスと受信側プロセスとのデータ通信における関係を疎に保つことができる。例えば、送信側プロセスを実行するアプリケーションと受信側プロセスを実行するアプリケーションとの処理をそれぞれ独立に行うことも可能である。具体的には、受信側のアプリケーションが障害などで停止していても、送信側のアプリケーションはキューなどにデータを格納する処理を継続して行える。また、送信側のアプリケーションが障害などで停止していても、受信側のアプリケーションはキューなどに格納されたデータを取得して処理を継続して行える。また、動作中のアプリケーションに影響を及ぼさずに、停止中のアプリケーションに対する保守作業を行うこともできる。その結果、各アプリケーションの稼働率の向上を図ることができる。
ところで、システムの運用管理において、コンピュータで稼動するOSやアプリケーションの実行状態の監視が行われる。そして、例えばアプリケーションのエラーやリソース不足などが発生した場合には、管理者にその旨が通知される。管理者は、この通知を受けて、アプリケーションの処理が正常に行われていないことを認識し、対処することができる。
プロセス間通信を行う情報処理システムでも、このような監視による通知が行われる。例えば、依頼元コンピュータから受け付けた処理依頼の内容が、処理を実行する依頼先コンピュータの最大許容資源枠内で実行不可である場合には、該当の処理依頼をキューに登録せずに、その旨を依頼元コンピュータに通知する方法が知られている(例えば、特許文献1参照)。
ここで、上述のバッファを用いてプロセス間のデータ通信を行う場合、受信側プロセスは、バッファに対してデータの取得要求を行う。バッファでは、この取得要求に応じてFIFOまたはLIFOの手順により受信側プロセスにデータを送信する。このとき、バッファにデータが格納されていない場合、受信側プロセスとバッファとは、送信側プロセスによりデータが格納されるのを待機することが考えられる。しかし、送信側プロセスが障害などでデータを格納することができない場合に、受信側プロセスやバッファで待機を継続することは、該当のプロセスに割り当てられたリソースを無駄に使用することになる。
そこで、送信側プロセスは、障害などによりデータをバッファに格納できない場合に、バッファに対して発生している取得要求を解放するよう指示する解放要求を行うことが考えられる。そして、バッファは、解放要求を受け付けると、受信側プロセスから受け付けた取得要求に対して、例えばNULLを返信することが考えられる。
しかし、単にNULLを返信するのみでは、送信側プロセスなどで生じた障害などを受信側プロセスで把握することができないという問題がある。このため、受信側プロセス(または受信側のアプリケーション)で、送信側プロセスの障害などに応じた後処理を行うことが困難であるという問題がある。
一方、バッファを介したプロセス間通信とは別個の通信経路で送信側プロセスの障害を受信側プロセスに通知することも考えられる。しかし、この方法では、通知用の通信経路を新たに設けなければならないという問題がある。また、このようにすると、各アプリケーション間で連携が発生し、上述した送信側のアプリケーションと受信側のアプリケーションとの独立性が損なわれる可能性があるという問題がある。
本発明はこのような点に鑑みてなされたものであり、送信側プロセスで生じた障害を受信側プロセスに効率的に通知する通信制御プログラム、通信システム、通信制御装置および通信制御方法を提供することを目的とする。
上記課題を解決するために、通信制御プログラムが提供される。この通信制御プログラムは、コンピュータを格納手段、取出手段および制御手段として機能させる。格納手段は、所定の第1の処理を実行する第1の実行手段から送信情報を順次受け付け、受け付けた送信情報それぞれを送信情報記憶手段に格納する。取出手段は、所定の第2の処理を実行する第2の実行手段から送信情報の取得要求を順次受け付け、受け付けた取得要求それぞれに応じて送信情報記憶手段に記憶された送信情報それぞれを取得し、取得した送信情報それぞれを第2の実行手段に出力する。制御手段は、障害が発生した旨を示す障害情報を格納手段から取得すると、障害の内容を定義した通知情報を記憶する通知情報記憶手段に記憶された通知情報を取出手段に取得させ、取得要求に応じて、この通知情報を第2の実行手段へ出力させる。
また、上記課題を解決するためにネットワークを介して接続された送信装置と受信装置と、送信装置および受信装置の間のデータ通信を中継する通信制御装置とを備えた通信システムが提供される。この通信システムの通信制御装置は、第1の実行手段、格納手段、取出手段、第2の実行手段および制御手段を有する。第1の実行手段は、送信装置から送信情報を受信する。格納手段は、第1の実行手段から送信情報を順次受け付け、受け付けた送信情報それぞれを送信情報記憶手段に格納する。取出手段は、送信情報の取得要求を順次受け付け、受け付けた取得要求それぞれに応じて送信情報記憶手段に記憶された送信情報それぞれを取得し、取得した送信情報それぞれを取得要求の送信元に出力する。第2の実行手段は、送信情報の取得要求を取出手段に出力し、出力した取得要求に応じて取出手段から送信情報を取得し、取得した送信情報を受信装置に送信する。制御手段は、障害が発生した旨を示す障害情報を格納手段から取得すると、障害の内容を定義した通知情報を記憶する通知情報記憶手段に記憶された通知情報を取出手段に取得させ、送信情報の取得要求に応じて、この通知情報を第2の実行手段へ出力させる。
また、上記課題を解決するために、上記通信制御プログラムを実行するコンピュータと同様の機能を有する通信制御装置が提供される。また、上記課題を解決するために、上記通信制御プログラムを実行するコンピュータと同様の処理を行う通信制御方法が提供される。
上記通信制御プログラム、通信システム、通信制御装置および通信制御方法によれば、送信側プロセスで生じた障害を受信側プロセスに効率的に通知することができる。
以下、本実施の形態を図面を参照して詳細に説明する。
図1は、本実施の形態の概要を示す図である。コンピュータ1は、実行手段1a,1b、送信情報記憶手段1c、通知情報記憶手段1d、格納手段1e、取出手段1fおよび制御手段1gを有する。
図1は、本実施の形態の概要を示す図である。コンピュータ1は、実行手段1a,1b、送信情報記憶手段1c、通知情報記憶手段1d、格納手段1e、取出手段1fおよび制御手段1gを有する。
実行手段1aは、所定の単位処理を実行する送信側プロセスまたはアプリケーションである。実行手段1aは、実行手段1bに実行させる処理に用いる送信情報を送信する。
実行手段1bは、所定の単位処理を実行する受信側プロセスまたはアプリケーションである。
実行手段1bは、所定の単位処理を実行する受信側プロセスまたはアプリケーションである。
ここで、送信情報記憶手段1c、取出手段1f、格納手段1eおよび制御手段1gは、実行手段1aと実行手段1bとの間のデータ通信を中継するバッファの機能を有し、キューまたはスタックのデータ構造を備える。データ構造をキューまたはスタックの何れとするかは、実行手段1a,1bが実行する処理に応じて決定される。例えば、データの入力順序が実行手段1bの処理に影響を与える場合には、キューが選択される。
送信情報記憶手段1cは、実行手段1aが実行手段1bに送信する送信情報を一時的に記憶する。
通知情報記憶手段1dは、実行手段1aで発生し得る障害の内容を示す通知情報を記憶する。通知情報記憶手段1dは、例えば障害の内容を識別する障害識別情報に対応付けて通知情報を記憶している。
通知情報記憶手段1dは、実行手段1aで発生し得る障害の内容を示す通知情報を記憶する。通知情報記憶手段1dは、例えば障害の内容を識別する障害識別情報に対応付けて通知情報を記憶している。
格納手段1eは、実行手段1aから順次受け付けた送信情報を送信情報記憶手段1cに格納する。
取出手段1fは、実行手段1bから順次受け付けた取得要求に応じて、送信情報記憶手段1cに記憶された送信情報をFIFOまたはLIFOの手順に従って取り出し、実行手段1bに出力する。
取出手段1fは、実行手段1bから順次受け付けた取得要求に応じて、送信情報記憶手段1cに記憶された送信情報をFIFOまたはLIFOの手順に従って取り出し、実行手段1bに出力する。
制御手段1gは、格納手段1eから実行手段1aで障害が発生した旨を示す障害情報を受け付けると、通知情報記憶手段1dに記憶された通知情報を取出手段1fに取得させる。そして、制御手段1gは、実行手段1bから取出手段1fへの取得要求に応じて、取出手段1fにより取得させた通知情報を実行手段1bに対して出力させる。
ここで、制御手段1gは、例えば格納手段1eから障害情報として障害識別情報を含む情報を受け付ける。そして、制御手段1gは、この障害識別情報に対応する通知情報を取出手段1fに取得させる。
コンピュータ1によれば、格納手段1eにより、実行手段1aから実行手段1bへ送信する送信情報が順次受け付けられ、この送信情報それぞれが送信情報記憶手段1cに格納される。また、取出手段1fにより、実行手段1bから送信情報の取得要求が順次受け付けられ、この取得要求それぞれに応じて送信情報記憶手段1cに記憶された送信情報それぞれが取得され、この送信情報それぞれが実行手段1bに出力される。制御手段1gにより、障害が発生した旨を示す障害情報が格納手段1eから取得されると、通知情報記憶手段1dに記憶された通知情報が取出手段1fにより取得される。そして、取出手段1fにより、実行手段1bからの取得要求に応じて、取得された通知情報が実行手段1bへ出力される。
これにより、送信側で生じた障害を受信側に効率的に通知することができる。具体的には、障害が発生した旨を示す通知情報が、実行手段1aと実行手段1bとのバッファを介したデータ通信と同じ通信経路で送信可能なので、別個に通信経路を設ける必要がない。また、通知情報を受け付ける実行手段1bは、取出手段1fに対する送信情報の取得要求を継続的に送信していれば、その応答として通知情報を適宜取得できるので、データ通信以外の処理手順を新たに設ける必要もない。
また、通知情報記憶手段1dに実行手段1aで生じ得る障害ごとに、障害の内容を示す情報を格納しておけば、実行手段1aで生じた障害を実行手段1bは的確に把握することができる。このため、実行手段1bは、実行手段1aで生じた障害に応じた後処理を行うこともできる。
ところで、コンピュータ1は、例えばネットワークを介して商品の発注・受注を行う電子商取引システムで発注側システムと受注側システムとの間のデータ通信を中継する手段として用いることができる。この場合、コンピュータ1は、発注側システムから発注情報を受け付け、一時的に格納する。そして、受注側システムから受け付ける発注情報の取得要求に応じて、発注情報を受注側システムに送信する。以下では、このような電子商取引システムを例に採り、更に具体的に説明する。
なお、電子商取引システムでは、取引の順序(注文して、その注文をキャンセルするなど)が処理に影響する。したがって、コンピュータ1が備えるバッファとしては、キューが選択される。このため、以下ではキューを用いた場合を例示して説明するが、データ受け渡しの順序が処理に影響しない情報処理システムでは、スタックを用いて同様の処理機能を実現することもできる。
図2は、電子商取引システムの構成を示す図である。電子商取引システム10は、発注システム11、受注システム12および受付サーバ100を有する。
発注システム11は、顧客からの商品注文を受け付けるシステムである。発注システム11では、ネットワーク20に端末装置21,22,23,・・・が接続されている。ネットワーク20は、例えば、インターネットまたは広域LAN(Local Area Network)である。端末装置21,22,23,・・・は、顧客が電子商取引に用いるコンピュータである。
発注システム11は、顧客からの商品注文を受け付けるシステムである。発注システム11では、ネットワーク20に端末装置21,22,23,・・・が接続されている。ネットワーク20は、例えば、インターネットまたは広域LAN(Local Area Network)である。端末装置21,22,23,・・・は、顧客が電子商取引に用いるコンピュータである。
受注システム12は、顧客からの商品注文に応じて商品の取引業務を行うシステムである。受注システム12では、ネットワーク30に業務サーバ200が接続されている。ネットワーク30は、例えば、LANである。業務サーバ200は、商品注文に応じて商品の取引業務を行うコンピュータである。業務サーバ200は、取引の結果を受付サーバ100を介して端末装置21,22,23,・・・に応答する。
受付サーバ100は、ネットワーク20,30の間の通信を中継する。受付サーバ100は、端末装置21,22,23,・・・からの商品発注の内容に応じた発注情報を生成して一時的に格納するキューを備えている。受付サーバ100は、業務サーバ200から発注情報の取得要求を受け付けると、FIFOの手順に従って、キューに格納された発注情報を業務サーバ200に送信する。
端末装置21,22,23,・・・を利用するユーザは、例えば、受付サーバ100が提供する所定のインタフェースを端末装置21,22,23,・・・上の所定のブラウザを閲覧・操作することで、電子商取引システム10に商品の発注を行うことができる。受付サーバ100は、例えば、このインタフェースを利用させるために、ユーザに対してユーザID(IDentifier)やパスワードによる認証を行う。このように、受付サーバ100は、電子商取引システム10を利用するユーザの管理も行う。
電子商取引システム10は、発注システム11と受注システム12との間のデータ通信を受付サーバ100を介して行うことで、両システムの連携を疎に保つことができる。このため、例えば、受注システム12が停止したとしても、発注システム11により商品発注の受け付けを継続して行うことができる。また、発注システム11が停止したとしても、受注システム12は、受付サーバ100に格納された発注情報により、取引業務を継続して行うことができる。
図3は、受付サーバのハードウェア構成を示す図である。受付サーバ100は、CPU(Central Processing Unit)101、RAM(Random Access Memory)102、HDD103、グラフィック処理装置104、入力インタフェース105および通信インタフェース106,107を有する。
CPU101は、受付サーバ100全体の動作を制御する。
RAM102は、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションソフトウェア(以下、アプリケーションという)のプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、CPU101による処理に必要な各種データを記憶する。
RAM102は、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションソフトウェア(以下、アプリケーションという)のプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、CPU101による処理に必要な各種データを記憶する。
HDD103は、OSのプログラム、アプリケーションのプログラムを記憶する。また、HDD103は、CPU101による処理に必要な各種データを記憶する。なお、HDD103の代わりに例えばSSD(Solid State Drive)などの他の不揮発性の記憶装置を用いることもできる。
グラフィック処理装置104は、モニタ51と接続される。グラフィック処理装置104は、CPU101からの命令に従って画像をモニタ51の画面に表示させる。
入力インタフェース105は、キーボード52とマウス53と接続される。入力インタフェース105は、キーボード52やマウス53から送られてくる信号をCPU101に送信する。
入力インタフェース105は、キーボード52とマウス53と接続される。入力インタフェース105は、キーボード52やマウス53から送られてくる信号をCPU101に送信する。
通信インタフェース106は、ネットワーク20と接続され、端末装置21,22,23,・・・との間でデータの送受信を行う。通信インタフェース107は、ネットワーク30と接続され、業務サーバ200との間でデータの送受信を行う。
なお、端末装置21,22,23,・・・および業務サーバ200に関しても、受付サーバ100と同様のハードウェア構成により実現できる。
図4は、受付サーバの機能構成を示す図である。受付サーバ100は、PUT側処理部110、キュー処理部120およびGET側処理部130を有する。これらの機能は、CPU101が所定のプログラムを実行することで実現される。ただし、これらの機能のうち、少なくとも一部または全部を専用のハードウェアで実現してもよい。また、PUT側処理部110、キュー処理部120およびGET側処理部130は、それぞれ別個のアプリケーションにより実現される。そして、PUT側処理部110とGET側処理部130との間で、キュー処理部120を介したプロセス間通信が行われる。
図4は、受付サーバの機能構成を示す図である。受付サーバ100は、PUT側処理部110、キュー処理部120およびGET側処理部130を有する。これらの機能は、CPU101が所定のプログラムを実行することで実現される。ただし、これらの機能のうち、少なくとも一部または全部を専用のハードウェアで実現してもよい。また、PUT側処理部110、キュー処理部120およびGET側処理部130は、それぞれ別個のアプリケーションにより実現される。そして、PUT側処理部110とGET側処理部130との間で、キュー処理部120を介したプロセス間通信が行われる。
PUT側処理部110は、顧客からの商品注文を受け付けるアプリケーションである。PUT側処理部110は、端末装置21から商品発注を受け付けると、商品発注の内容に応じた発注情報を生成する。PUT側処理部110は、キュー処理部120に対して、生成した発注情報の格納依頼(以下、PUT要求という)を出力する。
PUT側処理部110は、発注受付部111、発注情報生成部112および通知情報記憶部113を有する。
発注受付部111は、端末装置21から商品発注の所定の入力を受け付ける。発注受付部111は、受け付けた商品発注の内容を発注情報生成部112に出力する。
発注受付部111は、端末装置21から商品発注の所定の入力を受け付ける。発注受付部111は、受け付けた商品発注の内容を発注情報生成部112に出力する。
発注情報生成部112は、発注受付部111から取得する商品発注の内容に基づいて、発注情報を生成する。発注情報とは、発注を行ったユーザのユーザID、対象商品および商品価格などを含む情報である。発注情報生成部112は、生成した発注情報を含むPUT要求をキュー処理部120に出力する。
また、発注情報生成部112は、PUT側処理部110で発生した障害により、発注情報を生成できない場合、障害が発生している旨を示す障害情報をキュー処理部120に出力する。この障害情報には、障害の内容を識別するための障害識別情報や、該当の発注を行った顧客を特定または絞り込むための情報が含まれる(詳細は後述する)。
通知情報記憶部113は、PUT側処理部110の各機能で発生し得る障害の内容を示す通知情報を障害識別情報に対応付けて記憶する。具体的には、PUT側処理部110の機能を実現するアプリケーションで発生したエラーや、端末装置21との通信処理における不具合の内容を示す情報などが考えられる。通知情報は、例えば受付サーバ100の管理者によって予め作成され、通知情報記憶部113に格納されている。
ここで、PUT側処理部110というアプリケーションに対して、発注受付部111や発注情報生成部112をプロセスと呼ぶことができる。また、発注受付部111や発注情報生成部112の機能を更に細分化してプロセスとしてもよい。この点は、キュー処理部120およびGET側処理部130に関しても同様である。
キュー処理部120は、PUT側処理部110から受け付けるPUT要求に含まれる発注情報を一時的に格納するためのアプリケーションである。キュー処理部120は、GET側処理部130から発注情報の取得要求(以下、GET要求という)を受け付けると、FIFOの手順により発注情報を順次応答する。
キュー処理部120は、発注情報用キュー121、通知情報記憶部122、データ格納部123、データ取出部124および制御部125を有する。
発注情報用キュー121は、PUT側処理部110で生成された発注情報を一時的に記憶する。
発注情報用キュー121は、PUT側処理部110で生成された発注情報を一時的に記憶する。
通知情報記憶部122は、PUT側処理部110の通知情報記憶部113に記憶されたた通知情報と同一の情報を記憶する。
データ格納部123は、発注情報生成部112から受け付けたPUT要求に含まれる発注情報を発注情報用キュー121に順次格納する。また、データ格納部123は、受付サーバ100の起動時などには、通知情報記憶部113に記憶された通知情報を取得して、通知情報記憶部122に格納する。
データ格納部123は、発注情報生成部112から受け付けたPUT要求に含まれる発注情報を発注情報用キュー121に順次格納する。また、データ格納部123は、受付サーバ100の起動時などには、通知情報記憶部113に記憶された通知情報を取得して、通知情報記憶部122に格納する。
更に、データ格納部123は、発注情報生成部112から障害情報を受け付けると、受け付けた障害情報を制御部125に出力する。
データ取出部124は、GET側処理部130からGET要求を受け付けると、発注情報用キュー121が記憶する発注情報のうち、最も過去に格納された発注情報を取り出す。そして、データ取出部124は、取り出した発注情報をGET側処理部130に出力する。また、データ取出部124は、制御部125の指示に基づいて、通知情報記憶部122に記憶された通知情報を取り出す。データ取出部124は、GET側処理部130からのGET要求に応じて取り出した通知情報をGET側処理部130に出力する。
データ取出部124は、GET側処理部130からGET要求を受け付けると、発注情報用キュー121が記憶する発注情報のうち、最も過去に格納された発注情報を取り出す。そして、データ取出部124は、取り出した発注情報をGET側処理部130に出力する。また、データ取出部124は、制御部125の指示に基づいて、通知情報記憶部122に記憶された通知情報を取り出す。データ取出部124は、GET側処理部130からのGET要求に応じて取り出した通知情報をGET側処理部130に出力する。
制御部125は、データ格納部123から障害情報を受け付けると、データ取出部124にデータの取り出し元を通知情報記憶部122に切り替えるよう指示する。
GET側処理部130は、業務サーバ200と連携し、業務サーバ200に発注情報を送信するためのアプリケーションである。GET側処理部130は、キュー処理部120が保持する発注情報を取得し、業務サーバ200に送信する。また、GET側処理部130は、キュー処理部120から通知情報を受け付け、通知情報を管理者に通知する、また、業務サーバ200に送信する。GET側処理部130は、発注情報抽出部131、障害対応処理部132および発注情報送信部133を有する。
GET側処理部130は、業務サーバ200と連携し、業務サーバ200に発注情報を送信するためのアプリケーションである。GET側処理部130は、キュー処理部120が保持する発注情報を取得し、業務サーバ200に送信する。また、GET側処理部130は、キュー処理部120から通知情報を受け付け、通知情報を管理者に通知する、また、業務サーバ200に送信する。GET側処理部130は、発注情報抽出部131、障害対応処理部132および発注情報送信部133を有する。
発注情報抽出部131は、業務サーバ200からのリクエストに応じてキュー処理部120にGET要求を送信する。また、発注情報抽出部131は、GET要求に応じてキュー処理部120から取得した発注情報を発注情報送信部133に出力する。また、発注情報抽出部131は、キュー処理部120に送信したGET要求に応じて通知情報を通知した場合、取得した通知情報を障害対応処理部132に出力する。
障害対応処理部132は、発注情報抽出部131から取得した通知情報で示される障害に応じてGET側処理部130の所定の障害対応処理を行う。このような対応処理としては、例えば、GET側処理部130が通信する業務サーバ200側のプロセスと連携して、障害の内容に応じた後処理を行うことが考えられる。
具体的には、発注を行ったユーザに対して、業務サーバ200側から電子メールなどで注文が正常に受け付けられなかった旨を通知するなどの処理が考えられる。このようにすると、PUT側処理部110が障害によってメッセージ送信できないような場合でも、ユーザに対する通知を確実に行うことができる。
また、例えば、業務サーバ200側の関連プロセスからの注文情報の取得要求に対して障害理由を通知した上で、障害のメンテナンスのために該当の関連プロセスとの通信を一時的に停止することなどが考えられる。このようにすると、例えば、業務サーバ200が複数の受付サーバとデータ通信する場合に、障害の起こった受付サーバ100からの注文情報の取得が停止される。このため、業務サーバ200側での無用なプロセスの発生を抑止することができる。
更に、障害対応処理部132は、管理者に対してPUT側処理部110の障害を通知するための通知画面を生成する。
発注情報送信部133は、発注情報抽出部131から取得した発注情報を業務サーバ200に送信する。
発注情報送信部133は、発注情報抽出部131から取得した発注情報を業務サーバ200に送信する。
図5は、キューの構造例を示す図である。発注情報用キュー121は、リングバッファにより実現できる。発注情報用キュー121では、記憶領域としてサイズNの固定領域が割り当てられている。すなわち、アドレスが0からN−1までの記憶領域が割り当てられている。ここで、データ格納部123が発注情報用キュー121に発注情報に対応するデータ(発注レコード)を格納する場合は、記憶領域の先頭(アドレスが0の位置)から開始して、データ格納済み領域の末尾に順にデータを追加していく。また、データ取出部124が発注情報用キュー121からデータを取り出す場合は、データ格納済み領域の先頭から順にデータを取り出す。なお、格納するデータのサイズは、固定長であってもよいし、可変長であってもよい。
発注情報用キュー121では、データ格納済み領域の先頭を示すHeadポインタと、データ格納済み領域の末尾を示すTailポインタとが設定される。Headポインタは、データが取り出されるごとに、次のデータの先頭に移動する。Tailポインタは、データが追加されるごとに、新たに追加されたデータの末尾の位置に移動する。そして、Tailポインタは、記憶領域の末尾(アドレスがN−1)を超えると、記憶領域の先頭(アドレスが0)に戻る。このようにして、発注情報用キュー121では、固定領域が順次再利用される。なお、データが取り出された場合には、例えば該当の領域のデータをクリア(または、取り出し済みを示すフラグを格納)する。このようにすると、発注情報用キュー121に未取り出しのデータが存在するか否かの検出を行うことができる。
図6は、発注レコードのデータ構造例を示す図である。発注レコード121aは、発注情報生成部112によって生成される。そして、発注レコード121aは、データ格納部123により発注情報用キュー121に格納される。発注レコード121aには、オーダーIDを示す項目、顧客IDを示す項目、注文商品コードを示す項目、数量を示す項目および価格を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの発注レコードを示す。
オーダーIDを示す項目には、発注レコードを識別するためのIDが設定される。顧客IDを示す項目には、顧客を識別するためのIDが設定される。注文商品コードを示す項目には、注文対象の商品を識別するためのコードが設定される。数量を示す項目には、注文対象の商品の注文数量が設定される。価格を示す項目には、該当の商品注文の該当の数量分の価格が設定される。
発注レコード121aには、例えば、オーダーIDが“001234”、顧客IDが“C0001”、注文商品コードが“0123456789”、数量が“2”、価格が“100,000”という情報が設定される。
図7は、障害区分管理テーブルのデータ構造例を示す図である。障害区分管理テーブル122aは、受付サーバ100の起動時などにデータ格納部123により通知情報記憶部113から読み出され、通知情報記憶部122に格納される。障害区分管理テーブル122aには、エラーIDを示す項目および障害区分を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの障害区分に関する情報を示す。
エラーIDを示す項目には、エラーを識別するIDの範囲を示す情報が設定される。障害区分を示す項目には、該当のエラーIDに対応する障害の区分(障害が発生したプロセスなどを特定するための情報)が設定される。
障害区分管理テーブル122aには、例えば、エラーIDが“E0000〜E0099”、障害区分が“発注受付処理エラー”という情報が設定される。これは、エラーID範囲“E0000〜E0099”に含まれるエラーIDによって識別されるエラーの区分が発注受付部111で発生した障害を示すものであることを示している。
また、障害区分管理テーブル122aには、例えば、エラーIDが“E0100〜E0199”、障害区分が“発注情報生成処理エラー”という情報が設定される。これは、エラーID範囲“E0100〜E0199”に含まれるエラーIDによって識別されるエラーの区分が発注情報生成部112で発生した障害を示すものであることを示している。
図8は、エラー管理テーブルのデータ構造例を示す図である。エラー管理テーブル122b−1,122b−2,122b−3,・・・は、受付サーバ100の起動時などにデータ格納部123により通知情報記憶部113から読み出され、通知情報記憶部122に格納される。エラー管理テーブル122b−1,122b−2,122b−3,・・・は、障害区分管理テーブル122aの障害区分に対応付けられる。例えば、エラー管理テーブル122b−1は、障害区分“発注受付処理エラー”に対応付けられている。
以下では、エラー管理テーブル122b−1に関してのみ説明するが、エラー管理テーブル122b−2,122b−3,・・・に関しても同様の構成である。
エラー管理テーブル122b−1には、エラーIDを示す項目および送信メッセージを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、エラーに関する情報を示す。
エラー管理テーブル122b−1には、エラーIDを示す項目および送信メッセージを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、エラーに関する情報を示す。
エラーIDを示す項目には、エラーを識別するIDが設定される。エラー詳細を示す項目には、該当のエラーIDに対応するエラーの内容を示す情報が設定される。
エラー管理テーブル122b−1には、例えば、エラーIDが“E0000”、エラー詳細が“out of memory error”という情報が設定される。これは、発注受付部111において、メモリ不足によるエラーが発生していることを示している。
エラー管理テーブル122b−1には、例えば、エラーIDが“E0000”、エラー詳細が“out of memory error”という情報が設定される。これは、発注受付部111において、メモリ不足によるエラーが発生していることを示している。
図9は、ユーザ管理テーブルのデータ構造例を示す図である。ユーザ管理テーブル122cは、受付サーバ100の起動時などにデータ格納部123により通知情報記憶部113から読み出され、通知情報記憶部122に格納される。ユーザ管理テーブル122cには、ポート番号を示す項目および顧客IDを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、ユーザに関する情報を示す。
ポート番号を示す項目には、端末装置21,22,23,・・・に発注受付のサービスを提供するためにPUT側処理部110が使用するポート番号が設定される。顧客IDを示す項目には、該当のポート番号を用いて通信する顧客の顧客IDが設定される。
ユーザ管理テーブル122cには、例えば、ポート番号が“21001”、顧客IDが“C0001”という情報が設定される。これは、ポート番号“21001”で通信する通信先の端末装置を利用するユーザの顧客IDが“C0001”であることを示している。例えば、企業などに発注受付のサービスを提供する場合、このようにポート番号と顧客IDとが一対一に対応付けられる。
また、ユーザ管理テーブル122cには、例えば、ポート番号が“25001〜26000”、顧客IDが“C1001〜C2000”という情報が設定される。これは、ポート番号“25001〜26000”で通信する通信先の端末装置を利用するユーザの顧客IDが“C1001〜C2000”であることを示している。例えば、不特定多数のユーザにサービスを提供する場合、このように複数のポートを複数の顧客IDに対して割り当てる。
発注情報生成部112は、キュー処理部120に出力する障害情報に、該当の発注を受け付けた際の上記ポート番号を含める。データ取出部124は、制御部125から、障害情報に含まれるポート番号を取得し、通知情報記憶部122に記憶されたユーザ管理テーブル122cを参照することで、エラーが発生した顧客の顧客IDを特定することができる。
図10は、エラー通知情報の具体例を示す図である。(A)は、通信パケットの所定の領域に複数の項目を設けて送信する場合を例示している。(B)は、XML文書で送信する場合を例示している。
エラー通知情報124aは、データ取出部124によって生成され、GET側処理部130に送信される。エラー通知情報124aには、エラーIDを示す領域、エラー区分を示す領域、エラー詳細を示す領域、発生日を示す領域、発生時刻を示す領域および対象顧客IDを示す領域が設けられている。
エラーIDを示す領域には、エラーを識別するIDが設定される。エラー区分を示す領域には、該当のエラーIDに対応するエラー区分を示す情報が設定される。エラー詳細を示す項目には、エラーIDに対応するエラー内容の詳細を示すメッセージが設定される。発生日を示す項目には、該当のエラーの発生日付が設定される。発生時刻を示す項目には、該当のエラーの発生時刻が設定される。対象顧客IDを示す項目には、該当のエラーが発生した注文を行ったユーザの顧客IDが設定される。
エラー通知情報124bは、データ取出部124によってエラー通知情報124aに替えて生成される。エラー通知情報124bには、エラー通知情報124aに含まれる各項目の情報を、所定のタグによって識別することができる。
GET側処理部130や業務サーバ200は、エラー通知情報124a,124bの内容に応じて、管理者への通知や所定のリカバリ処理を実行することができる。
エラー通知情報124a,124bの何れを生成するかは、GET側処理部130や業務サーバ200が取り扱うデータの形式に応じて選択される。なお、以下では、データ取出部124は、エラー通知情報124aを生成するものとする。
エラー通知情報124a,124bの何れを生成するかは、GET側処理部130や業務サーバ200が取り扱うデータの形式に応じて選択される。なお、以下では、データ取出部124は、エラー通知情報124aを生成するものとする。
図11は、エラー通知画面の表示例を示す図である。エラー通知ウィンドウ150は、障害対応処理部132により、エラー通知情報124aに基づいて生成され、モニタ51に表示される。エラー通知ウィンドウ150には、エラーの詳細な内容を示すエラー表示領域151が設けられている。エラー表示領域151には、PUT側処理部110でエラーが発生した旨を示すメッセージ(例えば、“発注受付サービスでエラーが発生しました”など)や発生したエラーに関する情報が表示される。例えば、該当のエラーの発生日、発生時刻、障害区分、エラーID、対象顧客IDおよびエラー詳細が表示される。障害対応処理部132は、エラー通知情報124aに含まれる情報を参照して、これらの情報を取得することができる。
管理者は、エラー通知ウィンドウ150に表示された内容を閲覧することで、PUT側処理部110で発生したエラーを認識し、該当の障害に対する対応作業を行える。
次に、以上のような構成を有する受付サーバ100の処理に関して説明する。
次に、以上のような構成を有する受付サーバ100の処理に関して説明する。
図12は、データ通信処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS11]受付サーバ100が起動する。そして、PUT側処理部110、キュー処理部120およびGET側処理部130が起動する。
[ステップS11]受付サーバ100が起動する。そして、PUT側処理部110、キュー処理部120およびGET側処理部130が起動する。
[ステップS12]キュー処理部120は、発注情報用キュー121を実現するための領域をRAM102上に確保する。
[ステップS13]キュー処理部120は、通知情報記憶部122を実現するための領域をRAM102上に確保する。
[ステップS13]キュー処理部120は、通知情報記憶部122を実現するための領域をRAM102上に確保する。
[ステップS14]データ格納部123は、通知情報記憶部113に記憶された障害区分管理テーブル122a、エラー管理テーブル122b−1,122b−2,122b−3,・・・およびユーザ管理テーブル122cを取得し、通知情報記憶部122に格納する。これにより、PUT側処理部110とGET側処理部130との間のキュー処理部120を介したデータ通信を行う準備が整う。
[ステップS15]データ格納部123は、発注情報生成部112からPUT要求を受け付けたか否かを判定する。受け付けた場合、処理がステップS16に移される。受け付けていない場合、処理がステップS17に移される。
[ステップS16]データ格納部123は、PUT要求に含まれる発注レコードを発注情報用キュー121に格納する。
[ステップS17]データ取出部124は、発注情報抽出部131からGET要求を受け付けたか否かを判定する。受け付けた場合、処理がステップS18に移される。受け付けていない場合、処理がステップS19に移される。
[ステップS17]データ取出部124は、発注情報抽出部131からGET要求を受け付けたか否かを判定する。受け付けた場合、処理がステップS18に移される。受け付けていない場合、処理がステップS19に移される。
[ステップS18]データ取出部124は、発注情報用キュー121に最も過去に格納された発注レコードを取り出す。データ取出部124は、取り出した発注レコードを発注情報抽出部131に送信する。
[ステップS19]制御部125は、データ格納部123を介してPUT側処理部110から障害情報を受け付けたか否か(または、既に受け付け済みか否か)を判定する。受け付けた(または、既に受け付け済みである)場合、制御部125は障害情報を受け付けた日時を取得して、処理がステップS20に移される。受け付けていない場合、処理がステップS15に移される。なお、本ステップにおいて「障害情報を既に受け付け済みである場合」とは、「障害情報を受け付け後、発注情報用キュー121に格納された発注情報が全てGET側処理部130に送信されるまでの間」に制御部125が判定し得る状態である。このため、この場合には制御部125は既に障害情報を受け付けた日時を取得済みであるので、この日時取得処理は省略される。
[ステップS20]制御部125は、障害情報を受け付けた旨をデータ取出部124に通知する。データ取出部124は、発注情報用キュー121に格納された発注レコードが全て送信済みであるか否かを判定する。全て送信済みである場合、処理がステップS21に移される。全て送信済みでない場合、処理がステップS17に移される。
[ステップS21]データ取出部124は、制御部125から障害情報に含まれるエラーID、障害が発生したタイミングで注文を受け付けたポート番号および上記ステップS19で制御部125が取得した障害発生の日時を取得する。そして、データ取出部124は、取得したエラーIDに基づき通知情報記憶部122に記憶された障害区分管理テーブル122aを参照して障害区分を取得する。また、データ取出部124は、取得したエラーIDに基づき通知情報記憶部122に記憶されたエラー管理テーブル122b−1,122b−2,122b−3,・・・を参照してエラー詳細を取得する。更に、データ取出部124は、取得したポート番号に基づきユーザ管理テーブル122cを参照して、対象のユーザの顧客IDを取得する。データ取出部124は、これらの情報を用いてエラー通知情報124aを生成する。
[ステップS22]データ取出部124は、発注情報抽出部131からGET要求を取得したか否かを判定する。取得した場合、処理がステップS23に移される。取得していない場合、処理がステップS22に移される(すなわち、GET要求を待機する)。
[ステップS23]データ取出部124は、上記ステップS21で生成したエラー通知情報124aを発注情報抽出部131に送信する。
[ステップS24]発注情報抽出部131は、受信したエラー通知情報124aを障害対応処理部132に出力する。障害対応処理部132は、エラー通知情報124aに基づいて、エラー通知ウィンドウ150を生成し、管理者にPUT側処理部110で障害が発生していることを通知する。また、障害対応処理部132は、PUT側処理部110の障害に応じた所定の対応処理を実行する。
[ステップS24]発注情報抽出部131は、受信したエラー通知情報124aを障害対応処理部132に出力する。障害対応処理部132は、エラー通知情報124aに基づいて、エラー通知ウィンドウ150を生成し、管理者にPUT側処理部110で障害が発生していることを通知する。また、障害対応処理部132は、PUT側処理部110の障害に応じた所定の対応処理を実行する。
このようにして、受付サーバ100では、PUT側処理部110の通知情報をシステム起動時にキュー処理部120の通知情報記憶部122に予め登録する。そして、PUT側処理部110で障害が発生した場合には、キュー処理部120は、その障害を識別するための情報を受け付け、通知情報記憶部122を参照して該当の障害に対応する通知情報をGET側処理部130に送信する。
図13は、障害通知の流れの具体例を示すシーケンス図である。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS31]PUT側処理部110は、端末装置21,22,23,・・・から商品発注を受け付けると、キュー処理部120に対して発注レコードを含むPUT要求を送信する。キュー処理部120は、PUT要求を受け付けると、PUT要求に含まれる発注レコードを発注情報用キュー121に格納する。
[ステップS31]PUT側処理部110は、端末装置21,22,23,・・・から商品発注を受け付けると、キュー処理部120に対して発注レコードを含むPUT要求を送信する。キュー処理部120は、PUT要求を受け付けると、PUT要求に含まれる発注レコードを発注情報用キュー121に格納する。
[ステップS32]キュー処理部120は、PUT側処理部110からPUT要求を受け付け、PUT要求に含まれる発注レコードを発注情報用キュー121に格納する。
[ステップS33]GET側処理部130は、業務サーバ200から発注レコード取得のリクエストを受け付けると、キュー処理部120に対してGET要求を送信する。
[ステップS33]GET側処理部130は、業務サーバ200から発注レコード取得のリクエストを受け付けると、キュー処理部120に対してGET要求を送信する。
[ステップS34]キュー処理部120は、GET要求に応じて発注情報用キュー121から発注レコードを取り出し、GET側処理部130に送信する。
[ステップS35]キュー処理部120は、PUT側処理部110からPUT要求を受け付け、PUT要求に含まれる発注レコードを発注情報用キュー121に格納する。
[ステップS35]キュー処理部120は、PUT側処理部110からPUT要求を受け付け、PUT要求に含まれる発注レコードを発注情報用キュー121に格納する。
[ステップS36]GET側処理部130は、キュー処理部120に対してGET要求を送信する。
[ステップS37]キュー処理部120は、GET要求に応じて発注情報用キュー121から発注レコードを取り出し、GET側処理部130に送信する。以降、上記ステップS31〜S37と同様の処理が繰り返される。
[ステップS37]キュー処理部120は、GET要求に応じて発注情報用キュー121から発注レコードを取り出し、GET側処理部130に送信する。以降、上記ステップS31〜S37と同様の処理が繰り返される。
[ステップS38]PUT側処理部110は、発注の受付処理に関する障害を検知する。
[ステップS39]PUT側処理部110は、キュー処理部120に対して検知した障害に応じた障害情報を送信する。キュー処理部120は、PUT側処理部110から障害情報を受信する。ただし、この時点でキュー処理部120に格納された発注レコードに未送信のものが存在するものとする。この場合、キュー処理部120は、GET側処理部130に対するエラー通知を保留する。
[ステップS39]PUT側処理部110は、キュー処理部120に対して検知した障害に応じた障害情報を送信する。キュー処理部120は、PUT側処理部110から障害情報を受信する。ただし、この時点でキュー処理部120に格納された発注レコードに未送信のものが存在するものとする。この場合、キュー処理部120は、GET側処理部130に対するエラー通知を保留する。
[ステップS40]GET側処理部130は、キュー処理部120に対してGET要求を送信する。
[ステップS41]キュー処理部120は、GET要求に応じて発注情報用キュー121から発注レコードを取り出し、GET側処理部130に送信する。
[ステップS41]キュー処理部120は、GET要求に応じて発注情報用キュー121から発注レコードを取り出し、GET側処理部130に送信する。
[ステップS42]GET側処理部130は、キュー処理部120に対してGET要求を送信する。
[ステップS43]キュー処理部120は、GET要求に応じて発注情報用キュー121から発注レコードを取り出し、GET側処理部130に送信する。ここで、キュー処理部120は、全ての発注レコードをGET側処理部130に対して送信済みであることを検知するものとする。すると、キュー処理部120は、上記ステップS39で受信した障害情報に基づいてエラー通知情報の生成を行う。
[ステップS43]キュー処理部120は、GET要求に応じて発注情報用キュー121から発注レコードを取り出し、GET側処理部130に送信する。ここで、キュー処理部120は、全ての発注レコードをGET側処理部130に対して送信済みであることを検知するものとする。すると、キュー処理部120は、上記ステップS39で受信した障害情報に基づいてエラー通知情報の生成を行う。
[ステップS44]GET側処理部130は、キュー処理部120に対してGET要求を送信する。
[ステップS45]キュー処理部120は、GET要求に応じて上記ステップS43で生成したエラー通知情報をGET側処理部130に送信する。GET側処理部130は、受信したエラー通知情報に応じて、所定の対応処理を実行する。
[ステップS45]キュー処理部120は、GET要求に応じて上記ステップS43で生成したエラー通知情報をGET側処理部130に送信する。GET側処理部130は、受信したエラー通知情報に応じて、所定の対応処理を実行する。
このように、キュー処理部120は、PUT側処理部110から障害情報を受信した後、キュー処理部120が保持する注文レコードを全てGET側処理部130に送信済みとなったタイミングでエラー通知情報をGET側処理部130に送信する。このため、キュー処理部120が正常に受け付けた発注レコードに関しては、通常通り業務サーバ200に送信して、その後の受注処理を行うことができる。
なお、GET側処理部130が実行する対応処理として、受付サーバ管理者に対する障害の通知が行われる。管理者は、GET側処理部130がモニタ51に表示するエラー通知ウィンドウ150を参照して障害の詳細な内容を把握し、対応作業を行うことができる。
また、例えば、GET側処理部130が通信する業務サーバ200側のプロセスと連携して、障害の内容に応じた後処理を行うことが考えられる。
具体的には、発注を行ったユーザに対して、業務サーバ200側から電子メールなどで注文が正常に受け付けられなかった旨を通知するなどの処理が考えられる。このようにすると、PUT側処理部110が障害によってメッセージ送信できないような場合でも、ユーザに対する通知を確実に行うことができる。
具体的には、発注を行ったユーザに対して、業務サーバ200側から電子メールなどで注文が正常に受け付けられなかった旨を通知するなどの処理が考えられる。このようにすると、PUT側処理部110が障害によってメッセージ送信できないような場合でも、ユーザに対する通知を確実に行うことができる。
また、例えば、業務サーバ200側の関連プロセスからの注文情報の取得要求に対して障害理由を通知した上で、障害のメンテナンスのために該当の関連プロセスとの通信を一時的に停止することなどが考えられる。このようにすると、例えば、業務サーバ200が複数の受付サーバとデータ通信する場合に、障害の起こった受付サーバ100からの注文情報の取得が停止される。このため、業務サーバ200側での無用なプロセスの発生を抑止することができる。
図14は、障害対応の第1の具体例を示す図である。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップST101]GET側処理部130は、端末装置21との通信に対して障害が発生したことを検知する。
[ステップST101]GET側処理部130は、端末装置21との通信に対して障害が発生したことを検知する。
[ステップST102]GET側処理部130は、業務サーバ200に障害が発生した旨を通知する。
[ステップST103]GET側処理部130と業務サーバ200とは、障害の内容に応じた対応処理を行う。例えば、GET側処理部130と業務サーバ200との間の関連するプロセス間通信を一時的に停止するなどの後処理が考えられる。また、業務サーバ200側から、端末装置21のユーザに対して注文が正常に受け付けられなかった旨の通知を電子メールなどによって行うことが考えられる。
[ステップST103]GET側処理部130と業務サーバ200とは、障害の内容に応じた対応処理を行う。例えば、GET側処理部130と業務サーバ200との間の関連するプロセス間通信を一時的に停止するなどの後処理が考えられる。また、業務サーバ200側から、端末装置21のユーザに対して注文が正常に受け付けられなかった旨の通知を電子メールなどによって行うことが考えられる。
[ステップST104]GET側処理部130は、モニタ51にエラー通知ウィンドウを表示して、管理者に障害が発生したことを通知する。
[ステップST105]受付サーバ100の管理者は、エラー通知ウィンドウにより発生した障害の詳細を確認して、該当の障害に対する対応を行う。
[ステップST105]受付サーバ100の管理者は、エラー通知ウィンドウにより発生した障害の詳細を確認して、該当の障害に対する対応を行う。
このように、受付サーバ100では、PUT側処理部110で発生し得る障害の内容をキュー処理部120に予め格納する。そして、PUT側処理部110は、キュー処理部120に少なくとも障害の識別情報および該当のポート番号を送信するのみで、GET側処理部130に発生した障害の詳細を通知することができる。
このようにすることで、たとえPUT側処理部110の機能が障害によって制限された場合でも、GET側処理部130で障害内容を確実に検知できるようになる。また、GET側処理部130側での業務サーバ200との間の関連プロセスにおける後処理を確実に実行することができる。
更に、障害の通知に際して、キュー処理部120を介した通信経路を活用できるので、PUT側処理部110とGET側処理部130との間に、このための新たな通信経路を設ける必要がない。
なお、電子商取引システム10において、受注システム12から発注システム11にデータを送信する場合も考えられる。具体的には、受注内容に応じて取引上の約款や取引の契約内容を端末装置21,22,23,・・・に送信することが考えられる。
このため、受付サーバに、受注システム12から発注システム11へのデータ通信を行うためのPUT側処理部、キュー処理部およびGET側処理部と同様の構成が更に設けられた場合を考えることができる。なお、これらの構成は、発注システム11から受注システム12へのデータ通信を行うためのPUT側処理部110、キュー処理部120およびGET側処理部130の構成とは別個に設けられるものである。この場合、受注システム12から発注システム11へのデータ通信に対しても、上述した機能を実現することができる。
以下では、このような構成の電子商取引システムの障害対応の具体例を説明する。
図15は、障害対応の第2の具体例を示す図である。以下、図15に示す処理をステップ番号に沿って説明する。なお、電子商取引システム10aが有する受付サーバ100aは、発注システム11から受注システム12へのデータ通信に上述の発注情報用キューを介したプロセス間通信を行うほか、受注システム12から発注システム11へのデータ通信に関しても約款などを格納するためのキューを介したプロセス間通信を行う。また、受付サーバ100aにおいて業務サーバ200側から約款などのデータを受け付けるアプリケーションをPUT側処理部と呼ぶこととする。また、PUT側処理部が受け付けたデータを格納するキューを応答情報用キューと呼ぶこととする。応答情報用キューからデータを取り出して端末装置21,22,23,・・・に送信するアプリケーションをGET側処理部と呼ぶこととする。
図15は、障害対応の第2の具体例を示す図である。以下、図15に示す処理をステップ番号に沿って説明する。なお、電子商取引システム10aが有する受付サーバ100aは、発注システム11から受注システム12へのデータ通信に上述の発注情報用キューを介したプロセス間通信を行うほか、受注システム12から発注システム11へのデータ通信に関しても約款などを格納するためのキューを介したプロセス間通信を行う。また、受付サーバ100aにおいて業務サーバ200側から約款などのデータを受け付けるアプリケーションをPUT側処理部と呼ぶこととする。また、PUT側処理部が受け付けたデータを格納するキューを応答情報用キューと呼ぶこととする。応答情報用キューからデータを取り出して端末装置21,22,23,・・・に送信するアプリケーションをGET側処理部と呼ぶこととする。
[ステップST201]GET側処理部は、応答情報用キューからのエラー通知により、業務サーバ200との通信に対して障害が発生したことを検知する。
[ステップST202]GET側処理部は、業務サーバ200に障害が発生した旨を通知する。
[ステップST202]GET側処理部は、業務サーバ200に障害が発生した旨を通知する。
[ステップST203]業務サーバ200は、障害の内容に応じた対応処理を行う。例えば、業務サーバ200とPUT側処理部との間の関連するプロセス間通信を一時的に停止するなどの後処理が考えられる。また、業務サーバ200側から、通信対象のユーザに対してデータ送信が正常に受け付けられなかった旨の通知を電子メールなどによって行うことが考えられる。
[ステップST204]GET側処理部は、モニタ51にエラー通知ウィンドウを表示して、管理者に障害が発生したことを通知する。
[ステップST205]受付サーバ100aの管理者は、エラー通知ウィンドウにより発生した障害の詳細を確認して、該当の障害に対する対応を行う。
[ステップST205]受付サーバ100aの管理者は、エラー通知ウィンドウにより発生した障害の詳細を確認して、該当の障害に対する対応を行う。
このように、発注システム11と受注システム12との間の双方向のデータ通信に関して、PUT側処理部110、キュー処理部120およびGET側処理部130に対応する構成を別個に設けることで、双方向のデータ通信それぞれについて、発生した障害の詳細を確実に取得することが可能となる。また、双方向のデータ通信それぞれについて、障害に応じた後処理を適宜実行することができる。
以上説明したように、受付サーバ100によればPUT側処理部110で生じた障害をGET側処理部130に効率的に通知することができる。具体的には、障害が発生した旨を示す通知情報が、キュー処理部120を介したデータ通信と同じ通信経路で送信可能なので、別個に通信経路を設ける必要がない。また、GET側処理部130は、発注情報用キューに対する発注レコードの取得要求を継続的に送信していれば、その応答としてエラー通知情報を適宜取得できるので、データ通信以外の処理手順を新たに設ける必要もない。
また、以上の説明では、受付サーバ100にキューを設けることとしたが、受け付けたデータの順序がGET側処理部130または業務サーバ200における処理に影響を及ぼさない場合には、キューに替えてスタックとすることもできる。
なお、受付サーバ100が有すべき機能は、コンピュータにより実現することができる。その場合には、これらの処理機能の処理内容を記述したプログラムが提供される。そして、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスクなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、そのプログラムを、サーバコンピュータからネットワークを介して他のコンピュータに転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、そのプログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上、本発明の通信制御プログラム、通信システム、通信制御装置および通信制御方法を図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置き換えることができる。また、他の任意の構成物や工程が付加されてもよい。また、本発明は前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 コンピュータ
1a,1b 実行手段
1c 送信情報記憶手段
1d 通知情報記憶手段
1e 格納手段
1f 取出手段
1g 制御手段
1a,1b 実行手段
1c 送信情報記憶手段
1d 通知情報記憶手段
1e 格納手段
1f 取出手段
1g 制御手段
Claims (8)
- コンピュータを、
所定の第1の処理を実行する第1の実行手段から送信情報を順次受け付け、当該送信情報それぞれを送信情報記憶手段に格納する格納手段、
所定の第2の処理を実行する第2の実行手段から前記送信情報の取得要求を順次受け付け、当該取得要求それぞれに応じて前記送信情報記憶手段に記憶された前記送信情報それぞれを取得し、当該送信情報それぞれを前記第2の実行手段に出力する取出手段、
障害が発生した旨を示す障害情報を前記格納手段から取得すると、前記障害の内容を定義した通知情報を記憶する通知情報記憶手段に記憶された前記通知情報を前記取出手段に取得させ、前記取得要求に応じて当該通知情報を前記第2の実行手段へ出力させる制御手段、
として機能させることを特徴とする通信制御プログラム。 - 前記通知情報記憶手段は、前記障害を識別するための障害識別情報と前記通知情報とを対応付けて記憶しており、
前記制御手段は、前記取出手段から取得した前記障害情報に含まれる前記障害識別情報を抽出し、前記通知情報記憶手段を参照して、当該障害識別情報に対応する前記通知情報を前記取出手段に取得させる、
ことを特徴とする請求項1記載の通信制御プログラム。 - 前記取出手段は、前記制御手段から前記通知情報の取得を指示されると、前記送信情報記憶手段に記憶された全ての前記送信情報を前記第2の実行手段に出力した後に、前記通知情報を前記第2の実行手段へ出力する、
ことを特徴とする請求項1または2の何れか1項に記載の通信制御プログラム。 - 前記取出手段は、前記取得要求を受け付けると、前記送信情報記憶手段に記憶された前記送信情報のうち、前記格納手段により最も過去に格納された送信情報を取得することを特徴とする請求項1乃至3の何れか1項に記載の通信制御プログラム。
- 前記取出手段は、前記取得要求を受け付けると、前記送信情報記憶手段に記憶された前記送信情報のうち、前記格納手段により最も新しく格納された送信情報を取得することを特徴とする請求項1乃至3の何れか1項に記載の通信制御プログラム。
- ネットワークを介して接続された送信装置と受信装置と、前記送信装置および前記受信装置の間のデータ通信を中継する通信制御装置とを備えた通信システムであって、
前記送信装置から送信情報を受信する第1の実行手段と、
前記第1の実行手段から送信情報を順次受け付け、当該送信情報それぞれを送信情報記憶手段に格納する格納手段と、
前記送信情報の取得要求を順次受け付け、当該取得要求それぞれに応じて前記送信情報記憶手段に記憶された前記送信情報それぞれを取得し、当該送信情報それぞれを前記取得要求の送信元に出力する取出手段と、
前記取得要求を前記取出手段に出力し、当該取得要求に応じて前記取出手段から前記送信情報を取得し、当該送信情報を前記受信装置に送信する第2の実行手段と、
障害が発生した旨を示す障害情報を前記格納手段から取得すると、前記障害の内容を定義した通知情報を記憶する通知情報記憶手段に記憶された前記通知情報を前記取出手段に取得させ、前記取得要求に応じて当該通知情報を前記第2の実行手段へ出力させる制御手段と、
を備える前記通信制御装置、
を有することを特徴とする通信システム。 - 所定の第1の処理を実行する第1の実行手段から送信情報を順次受け付け、当該送信情報それぞれを送信情報記憶手段に格納する格納手段と、
所定の第2の処理を実行する第2の実行手段から前記送信情報の取得要求を順次受け付け、当該取得要求それぞれに応じて前記送信情報記憶手段に記憶された前記送信情報それぞれを取得し、当該送信情報それぞれを前記第2の実行手段に出力する取出手段と、
障害が発生した旨を示す障害情報を前記格納手段から取得すると、前記障害の内容を定義した通知情報を記憶する通知情報記憶手段に記憶された前記通知情報を前記取出手段に取得させ、前記取得要求に応じて当該通知情報を前記第2の実行手段へ出力させる制御手段と、
を有することを特徴とする通信制御装置。 - コンピュータの通信制御方法であって、
格納手段が、所定の第1の処理を実行する第1の実行手段から送信情報を順次受け付け、当該送信情報それぞれを送信情報記憶手段に格納し、
取出手段が、所定の第2の処理を実行する第2の実行手段から前記送信情報の取得要求を順次受け付け、当該取得要求それぞれに応じて前記送信情報記憶手段に記憶された前記送信情報それぞれを取得し、当該送信情報それぞれを前記第2の実行手段に出力し、
制御手段が、障害が発生した旨を示す障害情報を前記格納手段から取得すると、前記障害の内容を定義した通知情報を記憶する通知情報記憶手段に記憶された前記通知情報を前記取出手段に取得させ、前記取得要求に応じて当該通知情報を前記第2の実行手段へ出力させる、
ことを特徴とする通信制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009107225A JP2010257262A (ja) | 2009-04-27 | 2009-04-27 | 通信制御プログラム、通信システム、通信制御装置および通信制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009107225A JP2010257262A (ja) | 2009-04-27 | 2009-04-27 | 通信制御プログラム、通信システム、通信制御装置および通信制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010257262A true JP2010257262A (ja) | 2010-11-11 |
Family
ID=43318086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009107225A Pending JP2010257262A (ja) | 2009-04-27 | 2009-04-27 | 通信制御プログラム、通信システム、通信制御装置および通信制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010257262A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021157345A (ja) * | 2020-03-25 | 2021-10-07 | 京セラドキュメントソリューションズ株式会社 | データ連携システムおよびapiプラットフォーム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04217059A (ja) * | 1990-02-27 | 1992-08-07 | Internatl Business Mach Corp <Ibm> | 共用知能メモリを介して結合された複数のプロセッサ間でメッセージを伝達するための機構 |
JPH1049219A (ja) * | 1996-08-02 | 1998-02-20 | Mitsubishi Electric Corp | 障害発生回避装置 |
JP2002082792A (ja) * | 2000-06-22 | 2002-03-22 | Konica Corp | 管理システム、中継サーバー、管理装置、管理方法及び画像形成装置 |
JP2007249829A (ja) * | 2006-03-17 | 2007-09-27 | Hitachi Electronics Service Co Ltd | 内部ネットワーク間通信システム及び情報処理装置及び中継情報処理装置及び通信制御プログラム及び内部ネットワーク間における通信制御方法及び遠隔障害管理システム及び被管理装置及び管理装置 |
-
2009
- 2009-04-27 JP JP2009107225A patent/JP2010257262A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04217059A (ja) * | 1990-02-27 | 1992-08-07 | Internatl Business Mach Corp <Ibm> | 共用知能メモリを介して結合された複数のプロセッサ間でメッセージを伝達するための機構 |
JPH1049219A (ja) * | 1996-08-02 | 1998-02-20 | Mitsubishi Electric Corp | 障害発生回避装置 |
JP2002082792A (ja) * | 2000-06-22 | 2002-03-22 | Konica Corp | 管理システム、中継サーバー、管理装置、管理方法及び画像形成装置 |
JP2007249829A (ja) * | 2006-03-17 | 2007-09-27 | Hitachi Electronics Service Co Ltd | 内部ネットワーク間通信システム及び情報処理装置及び中継情報処理装置及び通信制御プログラム及び内部ネットワーク間における通信制御方法及び遠隔障害管理システム及び被管理装置及び管理装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021157345A (ja) * | 2020-03-25 | 2021-10-07 | 京セラドキュメントソリューションズ株式会社 | データ連携システムおよびapiプラットフォーム |
JP7473870B2 (ja) | 2020-03-25 | 2024-04-24 | 京セラドキュメントソリューションズ株式会社 | データ連携システムおよびapiプラットフォーム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10348809B2 (en) | Naming of distributed business transactions | |
ES2227692T3 (es) | Provision de enlaces de comunicaciones en una red de ordenadores. | |
CN1095264C (zh) | 高效计算机服务器系统 | |
CN104579905B (zh) | 消息传递方法和系统及mom服务器、接收端 | |
US9804809B2 (en) | Print control system | |
JP2013088901A5 (ja) | 情報処理システム、画像処理装置、制御方法、コンピュータプログラムおよびユーザ装置 | |
WO2003067398A2 (en) | System and method for managing internet transactions | |
CN109491895A (zh) | 服务器压力测试方法及装置 | |
CN111597032B (zh) | 任务调度管理方法、装置及电子设备 | |
JP2010257262A (ja) | 通信制御プログラム、通信システム、通信制御装置および通信制御方法 | |
US9606758B1 (en) | System and method of connecting a computer to a printer | |
CN108632473A (zh) | 个人数据的信息传输方法、装置和系统 | |
US8589605B2 (en) | Inbound message rate limit based on maximum queue times | |
US8914439B2 (en) | Fallback ordering for on-line environment | |
JP6753511B2 (ja) | 操作支援装置、操作支援方法、及びプログラム | |
CN107171820A (zh) | 信息传输、发送、获取方法和装置 | |
CA2610226C (en) | Method and system for sharing data between radiology information systems | |
CN111581244B (zh) | 一种异构系统业务交易数据有序同步方法、系统及设备 | |
WO2017065332A1 (ko) | 고객관리 서비스 제공 서버 및 이를 이용한 고객관리 방법 | |
JP2016208184A (ja) | 管理装置、管理システム、管理方法、および管理用プログラム | |
JP2018013884A (ja) | 物品管理システム及びプログラム | |
JP4323459B2 (ja) | セキュリティサービス仲介サーバ及びセキュリティサービス仲介方法 | |
US9235365B2 (en) | Method for transmitting an enable signal to a client device when a printing device is available to execute an order | |
KR101230225B1 (ko) | 통합순번 호출 처리시스템 및 그 방법 | |
JP2002255352A (ja) | 宅配便伝票印刷方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110610 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120918 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130205 |