(58)【調査した分野】(Int.Cl.,DB名)
第1システム環境で構成された第1システム及び第2システム環境で構成された第2システムを含むサービス支援システムを用いて、サービスを支援するためのプログラムであって、
スポークシステムとして機能する前記第2システムにおいて、ハブシステムとして機能する前記第1システムからの要求に応じてサービス処理を実行する複数のサービス機能部と、前記複数のサービス機能部の中での一群のサービス機能部を呼び出すコンポジット部とを設け、
前記第2システムを、
前記第1システムから要求電文を取得し、
前記コンポジット部に対する要求電文を取得した場合には、前記コンポジット部に関連付けられた各サービス機能部の稼働状態を確認し、コンポジット番号を用いて、前記サービス機能部が利用するデータベースの排他制御を行ないながら、前記サービス機能部を順次、呼び出し、前記サービス機能部は、前記コンポジット番号を取得して前記データベースを更新しながら、前記スポークシステム内においてサービス処理を実行し、すべての前記各サービス機能部の実行後に、前記データベースにおいて前記コンポジット番号による排他制御を解除し、実行結果を前記第1システムに返信し、
個別のサービス機能部に対する要求電文を取得した場合には、前記サービス機能部を呼び出してサービス処理を実行し、実行結果を前記第1システムに返信する手段として機能させることを特徴とするサービス支援プログラム。
【発明を実施するための形態】
【0013】
以下、本発明を具体化した実施形態を
図1〜
図5に従って説明する。本実施形態では、金融機関における各商品を管理する複数の業務システム(商品管理システム)を接続するサービス支援システムを説明する。このサービス支援システムは、ハブ&スポーク方式で構築されており、ハブシステムに繋がる業務システムがスポークシステムとして機能する。ハブシステムは、電文のあて先への振り分けやトランザクション処理の制御等を行なう。本実施形態では、ハブシステムは、企業の基幹業務システムなどに用いられる汎用コンピュータシステム(メインフレーム)中心の基幹系システム(第1システム環境)であり、業務システムは、オープン系システム(第2システム環境)で構成する場合を想定する。このため、ハブシステムは、異なるシステム環境(OS、文字コード等)に応じたプロトコルの変換を行なう。
【0014】
図1を用いて、サービス支援システムの概要を説明する。サービス支援システムは、チャネル層10、第1システムとしての共通システム20、第2システムとしてのプロダクト層30から構成される。
【0015】
チャネル層10は、店舗端末や現金自動預払機(ATM)、インターネットバンキングサーバ等、顧客との取引を受け付けるシステムである。
共通システム20は、顧客との取引において共通的に行なわれる処理(共通業務)を管理するコンピュータシステムである。この共通システム20は、メインフレームにより構成され、共通業務としては、例えば、行内勘定、顧客番号、手数料等の管理を行なう。この共通システム20は、後述するプロダクト層30の各サービス(商品サービスやコンポジットサービス)を呼び出すためのフロー定義テーブルを保持している。このフロー定義テーブルにおいては、取引種別に対応して、呼び出すサービスが登録されている。
【0016】
プロダクト層30は、金融機関が提供する各商品(融資、外国為替、信託、定期性預金等)を、それぞれ管理するコンピュータシステムである。このプロダクト層30は、オープン環境システムからなる商品サービスコントロール31により構成される。一つの商品(例えば、外国為替)のためには、複数の商品サービス(例えば、画面入力、外貨計算、チェック、データベース書込等)を利用する。このため、一つの商品サービスコントロール31においては、各商品のための商品サービスA(例えば、外貨計算)を管理する。また、他の商品サービスコントロール31においては、商品サービスB(例えば、データベース書込)を管理する。
【0017】
また、一つの取引が、複数の商品に関連する場合がある。この場合には、チャネル層10から取得した一つの取引要求電文に対して、複数の商品サービスコントロール31を用いる。このように複数の商品サービスを利用するコンポジットサービスのために、プロダクト層30には、コンポジットコントロール32を設けておく。このコンポジットコントロール32は、サービス支援プログラムを実行することにより起動されて、各商品サービスを呼び出す。この場合、予め定められた順番で各商品サービスを呼び出して、複数の商品サービスを連携させる。
【0018】
本実施形態では、チャネル層10から取引要求電文を取得した共通システム20が、プロダクト層30のサービスを呼び出す場合を想定する。ここで、個別の商品サービスを呼び出す場合には、プロダクト層30において、目的の商品サービスコントロール31に対して要求電文を送信する。この場合には、共通システム20は、プロダクト層30において利用可能なプロトコルを用いて要求電文を送信する。
【0019】
一方、プロダクト層30において、コンポジットサービスを利用する場合には、共通システム20は、このコンポジットコントロール32に要求電文を送信する。この場合、共通システム20は、コンポジットコントロール32に対して、プロダクト層30において利用可能なプロトコルを用いて要求電文を送信する。このコンポジットコントロール32は、コンポジットサービスにおいて利用する各商品サービス及びサービス実行順番を記憶している。例えば、商品サービスA〜Cを取りまとめたコンポジットコントロール32は、同じプロダクト層30のシステム環境において、各商品サービスA〜Cの商品サービスコントロール31を、予め記憶された順番で呼び出す。
【0020】
更に、プロダクト層30には、各商品サービスを実現するためのデータを記憶するデータベース装置35を備える。データベース装置35は、複数の商品サービスコントロール31が同じデータを同時に利用することがないように、ある商品サービスコントロール31がデータを利用している間、別の商品サービスコントロール31による同じデータの利用を制限する排他制御を行なう。
【0021】
次に、
図2を用いて、第1システム環境で構成された共通システム20が、第2システム環境で構成されたプロダクト層30の商品サービスを利用して、取引サービスを実行する場合を説明する。
【0022】
まず、共通システム20は、要求電文の送信処理を実行する(ステップS1−1)。具体的には、顧客との間で取引が行なわれた場合、チャネル層10から共通システム20に取引要求電文が送信される。チャネル層10から取引要求電文を受信した共通システム20は、取引要求電文の取引内容に基づいて、処理の要求電文をプロダクト層30に送信する。この場合、共通システム20は、取引要求電文の取引種別に基づいて、フロー定義テーブルを用いて、呼び出すサービスを特定する。そして、このサービスのサービス識別子を要求電文に設定する。
【0023】
そして、プロダクト層30は、共通システム20からの要求電文の取得処理を実行する(ステップS1−2)。この場合、コンポジットサービス又は単独の商品サービスによって処理が異なる。
【0024】
「単独サービス」が呼び出された場合、プロダクト層30は、商品サービス処理を実行する(ステップS1−3)。そして、この商品サービスコントロール31は、商品サービス番号を用いて、商品サービス要求に応じた処理を実行する。
【0025】
商品サービス処理を完了した場合、プロダクト層30の商品サービスコントロール31は、応答電文の返送処理を実行する(ステップS1−8)。具体的には、商品サービスコントロール31は、商品サービス要求電文に対応する応答電文を共通システム20に返信する。この応答電文には、商品サービスの処理結果を含める。
【0026】
一方、「コンポジット」が呼び出された場合、プロダクト層30のコンポジットコントロール32は、商品サービスの特定処理を実行する(ステップS1−4)。コンポジットコントロール32は、コンポジットサービスを構成する商品サービスを特定する。
【0027】
次に、プロダクト層30のコンポジットコントロール32は、商品サービスの呼出処理を実行する(ステップS1−5)。具体的には、コンポジットコントロール32は、特定した商品サービスコントロール31に対して、コンポジット番号を用いて、商品サービス要求を行なう。
【0028】
この場合、商品サービスコントロール31は、商品サービス処理を実行する(ステップS1−6)。この商品サービスコントロール31は、コンポジット番号を用いて、商品サービス要求に応じた処理を実行する。この場合、コンポジットコントロール32は、終了した商品サービスを仮記録する。
【0029】
そして、プロダクト層30のコンポジットコントロール32は、すべてのサービスを終了したかどうかについての判定処理を実行する(ステップS1−7)。具体的には、コンポジットコントロール32は、コンポジットサービスを構成するすべての商品サービスについての処理を終了したかどうかを判定する。
【0030】
すべての商品サービスを終了していないと判定した場合(ステップS1−7において「NO」の場合)、プロダクト層30のコンポジットコントロール32は、未処理の商品サービスの呼出処理を実行する(ステップS1−5)。
【0031】
一方、すべてのサービスを終了したと判定した場合(ステップS1−7において「YES」の場合)、プロダクト層30のコンポジットコントロール32は、応答電文の返送処理を実行する(ステップS1−8)。
【0032】
そして、共通システム20は、応答電文の取得処理を実行する(ステップS1−9)。具体的には、共通システム20は、プロダクト層30から、処理結果が含まれる応答電文を取得する。この場合、チャネル層10から取得した取引サービス要求電文に対応する商品サービスを終了したかどうかを判定する。未処理の商品サービスが残っている場合には、共通システム20は、プロダクト層30に対して、未処理のサービス要求電文を送信する。一方、すべての商品サービスを終了した場合には、共通システム20は、チャネル層10に対して、取引サービスの応答電文を返信する。
【0033】
次に、
図3を用いて、コンポジットサービスを利用する場合の処理を詳述する。
まず、コンポジットコントロール32は、前処理を実行する(ステップS2−1)。この前処理においては、商品サービス情報チェック、サービス閉塞チェック、明細閉塞チェック、取引ステータスチェック、排他制御、ジャーナル設定の各処理を実行する。
【0034】
商品サービス情報チェックは、コンポジットサービスを構成する商品サービスを確認する処理である。
サービス閉塞チェックは、特定した商品サービスの稼働状況を確認する処理である。例えば、サービス提供時間外やシステムのメンテナンスによりサービス提供が停止されていないかどうかを確認する。
【0035】
明細閉塞チェックは、取引サービス要求電文の対象(例えば、口座)の状況を確認する処理である。
取引ステータスチェックは、取引の状況を確認する処理である。
排他制御は、サービスに用いるデータベース装置35の記憶エリアについての排他制御を行なう処理である。
ジャーナル設定は、サービス提供履歴を記録する領域を確保する処理である。
【0036】
そして、コンポジットコントロール32は、主処理を実行する(ステップS2−2)。ここでは、コンポジットサービスに必要な商品サービスと、各商品サービスの処理順序を特定する。
【0037】
次に、コンポジットコントロール32は、呼出処理を実行する(ステップS2−3)。ここでは、コンポジットコントロール32は、コンポジットサービスにおいて、予め定められた各商品サービスコントロール31を呼び出す。
【0038】
この場合、商品サービスコントロール31は、前処理を実行する(ステップS3−1)。この前処理においては、商品サービス情報チェック、コンポジット番号取得、コンテキスト情報登録、ジャーナル設定の各処理を実行する。
【0039】
商品サービス情報チェックは、処理対象の商品サービスを確認する処理である。
コンポジット番号取得は、コンポジットコントロール32から取得した要求電文に含まれるコンポジット番号を取得する処理である。
コンテキスト情報登録は、商品サービスに用いる引数等のコンテキスト情報を仮記憶する処理である。
ジャーナル設定は、サービス提供履歴を記録する領域を確保する処理である。
【0040】
そして、商品サービスコントロール31は、主処理を実行する(ステップS3−2)。ここでは、商品サービスコントロール31は、商品サービス処理を実行する。
【0041】
次に、商品サービスコントロール31は、呼出処理を実行する(ステップS3−3)。具体的には、商品サービスコントロール31は、要求電文に基づいてデータベース装置35を更新する。この場合、商品サービスコントロール31は、コンポジットコントロール32から取得したコンポジット番号を用いて、データベース装置35にアクセスする。
【0042】
そして、商品サービスコントロール31は、後処理を実行する(ステップS3−4)。この後処理においては、ジャーナル情報登録、コンテキストサブ情報クリアの各処理を実行する。
【0043】
ジャーナル情報登録は、サービス提供履歴を記録する処理である。
コンテキストサブ情報クリアは、コンポジットサービスに用いたコンテキスト情報を削除する処理である。
【0044】
次に、すべての商品サービスを終了した場合、コンポジットコントロール32は、後処理を実行する(ステップS2−4)。この後処理においては、楽観的排他制御、コンテキスト情報クリアの各処理を実行する。
楽観的排他制御は、自身の排他制御が継続している場合には、データ更新を可能にする制御を行なう処理である。
コンテキスト情報クリアは、商品サービスに用いたコンテキスト情報を削除する処理である。
【0045】
次に、
図4を用いて、データベース装置35における排他制御を説明する。
図4(a)は、単独の商品サービスにおける処理の説明図である。
ここでは、商品サービスコントロール31において、商品サービスの前処理(ステップS4−1)が実行された場合、データベース装置35は、この商品サービスのために、ロック処理を実行する(ステップS4−2)。この場合、データベース装置35は、サービス要求に記録されている商品サービス番号を用いて排他制御を行なう。そして、この商品サービス番号以外の商品サービスコントロール31やコンポジットコントロール32のアクセスを排除する。一方、同じ商品サービス番号の商品サービスコントロール31によるアクセス(ステップS4−3)の場合、データベース装置35は、データ更新を許容する。
【0046】
そして、商品サービスコントロール31において、商品サービスの後処理(ステップS4−4)が実行された場合、データベース装置35は、ロック解除処理を実行する(ステップS4−5)。
【0047】
一方、
図4(b)は、コンポジットサービスにおける処理の説明図である。
コンポジットコントロール32において、前処理(ステップS5−1)が実行された場合、データベース装置35は、このコンポジットサービスのために、ロック処理を実行する(ステップS5−2)。この場合、データベース装置35は、サービス要求に記録されているコンポジット番号を用いて排他制御を行なう。そして、このコンポジット番号以外の商品サービスコントロール31やコンポジットコントロール32によるアクセスの排他制御を行なう。
【0048】
そして、コンポジットコントロール32において、一つの商品サービスを呼び出した場合(ステップS5−3)、データベース装置35は、このコンポジットコントロール32から呼び出された各商品サービスコントロール31のデータ更新を許容する。この場合、商品サービスコントロール31は、コンポジット番号を用いて、データベース装置35にアクセスする。そして、データベース装置35は、同じコンポジット番号を用いる商品サービスコントロール31からのアクセスによるデータ更新を許容する。
【0049】
そして、コンポジットコントロール32において、他の商品サービスを呼び出した場合(ステップS5−4)も、データベース装置35は、同じコンポジットコントロール32から呼び出された商品サービスコントロール31のデータ更新を許容する。この場合も、商品サービスコントロール31は、コンポジット番号を用いて、データベース装置35にアクセスする。そして、他の商品サービスコントロール31からのアクセスであっても、データベース装置35は、ロック時と同じコンポジット番号を用いる限り、データ更新を許容する。
【0050】
そして、すべての商品サービスを終了した場合、コンポジットコントロール32は後処理を実行する(ステップS5−5)。この場合、データベース装置35は、ロック解除処理を実行する(ステップS5−6)
【0051】
以上、本実施形態によれば、以下に示す効果を得ることができる。
(1)本実施形態では、コンポジットサービスを利用する場合には、共通システム20は、コンポジットコントロール32に要求電文を送信する。この場合、共通システム20は、コンポジットコントロール32に対して、プロダクト層30において利用可能なプロトコルを用いて要求電文を送信する。ここで、共通システム20におけるシステム環境と、プロダクト層30におけるシステム環境とが異なる場合、共通システム20がプロダクト層30の複数の商品サービスを個別に呼び出すことになると、環境の違いによる処理負荷が大きくなる。そこで、本実施形態のように、コンポジットサービスを利用することにより、複数の商品サービスをまとめて、効率的に処理を行なうことができる。
【0052】
(2)本実施形態では、コンポジットコントロール32は、前処理を実行する(ステップS2−1)。この前処理においては、商品サービス情報チェック、サービス閉塞チェック、明細閉塞チェック、取引ステータスチェック、排他制御、ジャーナル設定の各処理を実行する。これにより、複数の商品サービスを利用する場合の環境を整えることができる。
【0053】
(3)本実施形態では、コンポジットコントロール32において、前処理(ステップS5−1)が実行された場合、データベース装置35は、このコンポジットサービスのために、ロック処理を実行する(ステップS5−2)。そして、コンポジットコントロール32において、一つの商品サービスを呼び出した場合(ステップS5−3,S5−4)、データベース装置35は、このコンポジットコントロール32から呼び出された各商品サービスコントロール31のデータ更新を許容する。これにより、共通のコンポジットサービスに含まれる複数の商品サービスは、排他制御されることなく、データベース更新を行なうことができる。
【0054】
なお、上記実施形態は、以下の態様に変更してもよい。
・上記実施形態では、サービス支援システムは、ハブ&スポーク方式で構築された共通システム20、プロダクト層30から構成される。サービス支援システムは、複数のシステム環境により構成されたシステムであれば、前述の形態に限定されるものではない。そして、本発明は、高速レスポンス及び安定性、安全性を求められるオンラインシステムにも適用できる。
【0055】
・上記実施形態では、コンポジットサービスにおいて、複数の商品サービスを呼び出すように構成した。ここで、コンポジットサービスが、他のコンポジットサービスを呼び出すようにしてもよい。更に、一つの取引サービスにおいて、複数のコンポジットサービスを呼び出すようにしてもよい。
【0056】
・上記実施形態では、複数の商品サービスを利用するコンポジットサービスのために、コンポジットコントロール32を設ける。ここで、サービスの設計支援装置を用いて、コンポジットサービスの実装要否を判定するようにしてもよい。この設計支援装置には、過去の取引履歴を記録した取引履歴情報記憶部に接続される。
【0057】
図5を用いて、設計支援装置における設計処理を説明する。
まず、設計支援装置は、サービス履歴の取得処理を実行する(ステップS6−1)。具体的には、設計支援装置は、設計対象の取引サービスの指定画面をディスプレイに出力する。ここで、担当者は、設計対象の取引サービスを指定画面に入力する。この場合、設計支援装置は、取引履歴情報記憶部から、設計対象の取引サービスの利用履歴を取得する。
【0058】
次に、設計支援装置は、サービス処理負荷予測処理を実行する(ステップS6−2)。具体的には、設計支援装置は、取引サービスを実現するために必要な商品サービスを特定する。そして、設計支援装置は、共通システム20から、プロダクト層30の商品サービスを個別に呼び出した場合の負荷を計算する。この場合には、共通システム20から、プロダクト層30に要求電文を送信する場合のオーバーヘッドを加えてサービス処理負荷を算出する。
【0059】
次に、設計支援装置は、実装候補の特定処理を実行する(ステップS6−3)。具体的には、設計支援装置は、複数の商品サービスを組み合わせた実装候補を特定する。例えば、取引サービスが、商品サービスA,B,Cから構成される場合には、以下の実装候補が生成される。
【0060】
・コンポジットサービス(A,B,C):すべての商品サービスをコンポジット化。
・コンポジットサービス(A,B)及び商品サービスC:商品サービスA,Bをコンポジット化。
・商品サービスA及びコンポジットサービス(B,C):商品サービスB,Cをコンポジット化。
・商品サービスA,商品サービスB,商品サービスC:コンポジット化しない。
【0061】
次に、設計支援装置は、実装候補毎に以下の処理を繰り返す。
既存コンポジットを利用可能かどうかについての判定処理を実行する(ステップS6−4)。具体的には、設計支援装置は、既存コンポジットを検索して、処理対象の実装候補に含まれるコンポジットサービスが記録されているかどうかを判定する。
【0062】
既存コンポジットを利用可能と判定した場合(ステップS6−4において「YES」の場合)、設計支援装置は、既存コンポジット以外の商品サービスの特定処理を実行する(ステップS6−5)。具体的には、設計支援装置は、取引サービスに含まれる商品サービスから、コンポジットサービスに含まれる商品サービスを差し引いた残りの商品サービスを特定する。なお、既存コンポジットを利用不可と判定した場合(ステップS6−4において「NO」の場合)、設計支援装置は、既存コンポジット以外の商品サービスの特定処理(ステップS6−5)をスキップする。
【0063】
次に、設計支援装置は、オーバーヘッドの算出処理を実行する(ステップS6−6)。具体的には、設計支援装置は、共通システム20からプロダクト層30に要求電文を送信する場合の負荷を算出する。この場合、個別の商品サービスやコンポジットサービスを呼び出すために必要な要求電文を特定し、この要求電文において必要なオーバーヘッドを算出する。
【0064】
次に、設計支援装置は、パフォーマンス算出処理を実行する(ステップS6−7)。具体的には、設計支援装置は、算出したオーバーヘッドに基づいて、システム負荷や遅延時間を算出する。
設計支援装置は、すべての実装候補について終了するまで繰り返す。
【0065】
そして、設計支援装置は、評価結果の出力処理を実行する(ステップS6−8)。具体的には、設計支援装置は、実装候補毎に、算出したパフォーマンスを関連付けたテーブルを出力する。
これにより、取引履歴を考慮して、コンポジットサービスの要否を判定することができる。
【0066】
更に、すべての取引サービスにおいて用いられる商品サービスの組み合わせを考慮して、コンポジットサービスの要否を判定するようにしてもよい。この場合には、複数の取引種別の取引サービスにおいて、共通して用いられる複数の商品サービスを特定する。そして、これらの商品サービスにより、コンポジットサービスを構築する。