JP2010191482A - クライアントサーバシステム、クライアント装置および業務処理振分プログラム - Google Patents

クライアントサーバシステム、クライアント装置および業務処理振分プログラム Download PDF

Info

Publication number
JP2010191482A
JP2010191482A JP2009031955A JP2009031955A JP2010191482A JP 2010191482 A JP2010191482 A JP 2010191482A JP 2009031955 A JP2009031955 A JP 2009031955A JP 2009031955 A JP2009031955 A JP 2009031955A JP 2010191482 A JP2010191482 A JP 2010191482A
Authority
JP
Japan
Prior art keywords
business process
client
server
business
executed
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
JP2009031955A
Other languages
English (en)
Inventor
Takashi Fukushima
隆 福島
Akira Kato
加藤  明
Ryoichi Aoki
良一 青木
Naoki Sekiguchi
直樹 関口
Yoshitaka Minagawa
義孝 皆川
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
Fujitsu Frontech Ltd
Original Assignee
Fujitsu Ltd
Fujitsu Frontech 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, Fujitsu Frontech Ltd filed Critical Fujitsu Ltd
Priority to JP2009031955A priority Critical patent/JP2010191482A/ja
Publication of JP2010191482A publication Critical patent/JP2010191482A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】業務処理の実行をクライアントまたはサーバに振り分けて、クライアントに掛かる負荷を分散することを課題とする。
【解決手段】クライアント10は、業務処理を実行する場合に、業務処理をクライアント10で実行するかサーバ20で実行するかを判定する。この結果、クライアント10で実行すると判定された場合には、業務処理をクライアント10が実行し、サーバで実行すると判定された場合には、業務処理をサーバ20において実行するように通信する。
【選択図】 図1

Description

本発明は、発生するイベントに対応した業務処理を行うクライアントサーバシステム、クライアント装置および業務処理振分プログラムに関する。
従来より、画面に対する利用者の操作をイベントとして捉え、発生するイベントに対応した業務処理を行う画面処理プログラムが開発されている。このような画面制御プログラムが適用されたクライアント装置と、業務処理を保持するサーバとを有するクライアントサーバシステムが知られている。
画面処理プログラムが適用されたクライアントでは、パネルと項目と操作の組み合わせで指定するイベントに業務処理を対応させて定義した定義情報を有する。そして、クライアントは、定義情報を用いて、クライアントで発生したイベントに対応した業務処理を実行する(例えば、特許文献1参照)。
具体的には、クライアントは、イベントに業務処理を対応させて定義したアクションマッピング定義情報を用いて、イベントに対応する業務処理を呼び出し、業務処理を実行する。ここで、クライアントは、対応するイベントが発生した際に、業務処理を行う業務処理プログラムをサーバからダウンロードして業務処理を行っている。
特開2005−275970号公報
しかしながら、上記した画面処理プログラムが適用されたクライアントでは、クライアントで発生したイベントに対応する業務処理について、クライアント装置自身が実行するのみで、業務処理の実行をサーバ側に振り分けることができず、クライアント側の負荷が高くなるという課題があった。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、業務処理の実行をクライアントまたはサーバに振り分けて、クライアントに掛かる負荷を分散することを目的とする。
本願の開示するシステムは、一つの態様において、業務処理を実行する場合に、業務処理をクライアントで実行するかサーバで実行するかを判定し、クライアントで実行すると判定された場合には、業務処理をクライアントが実行し、サーバで実行すると判定された場合には、業務処理をサーバにおいて実行するように通信する。
本願の開示するクライアントサーバシステムの一つの態様によれば、業務処理の実行をクライアントまたはサーバに振り分けて、クライアントに掛かる負荷を分散するという効果を奏する。
図1は、実施例1に係るクライアントサーバシステムによる画面処理の概念を説明するための説明図である。 図2は、実施例1に係るクライアントの構成を示すブロック図である。 図3は、業務ロジックマッピング定義情報のXML定義体項目の一例を示す図である。 図4は、クライアント未起動時およびクライアント起動時の処理を説明するための図である。 図5は、クライアント処理実行時について説明するための図である。 図6は、非同期通信を行った場合の問題点を説明するための図である。 図7は、イベントキューを使用したイベント制御処理を説明するための図である。 図8は、イベントキューを使用したイベント制御処理の具体例について説明するための図である。 図9は、実施例1に係るサーバの構成を示すブロック図である。 図10は、実施例1に係るクライアントの処理動作を示すフローチャートである。 図11は、実施例2に係るクライアントサーバシステムによる画面処理の概念を説明するための説明図である。 図12は、実施例2に係るクライアントの処理動作を示すフローチャートである。 図13は、実施例3に係るクライアントサーバシステムによる画面処理の概念を説明するための説明図である。 図14は、実施例3に係るクライアントの処理動作を示すフローチャートである。 図15は、実施例4に係るクライアントサーバシステムによる画面処理の概念を説明するための説明図である。 図16は、実施例4に係るクライアントの処理動作を示すフローチャートである。 図17は、業務処理振分プログラムを実行するコンピュータを示す図である。
以下に添付図面を参照して、この発明に係るクライアントサーバシステム、クライアント装置および業務処理振分プログラムの実施例を詳細に説明する。
以下の実施例では、実施例1に係るクライアントサーバシステムの概要および特徴、クライアントの構成、サーバの構成および処理の流れを順に説明し、最後に実施例1による効果を説明する。なお、本実施例では、Java(登録商標)アプレットとして動作する画面処理プログラムが適用されたクライアント装置と、クライアント装置に接続されたサーバとを含むクライアントサーバシステムの場合を中心に説明する。
[実施例1に係るクライアントサーバシステムの概要]
まず最初に、図1を用いて、実施例1に係るクライアントサーバシステムの概要を説明する。図1は、実施例1に係るクライアントサーバシステムの概要を説明するための図である。同図に示すように、クライアントサーバシステム1は、クライアント10およびサーバ20を有する。クライアント10は、イベントと業務処理との対応付けを業務ロジックマッピング定義情報として定義する。
ここで、イベント指定は、画面上でカーソルが位置付けられているパネルおよび項目ならびに利用者の操作の組み合わせによって行う。すなわち、イベントとしてボタン押下などの操作だけでなく項目を指定することによって、項目と操作の任意の組み合わせについてイベントを定義することができる。
例えば、アクション「1」に対応するイベントは、カーソルがパネル「P001」の項目「FLD1」に位置する場合に「ENTERキー」が操作されたときに発生する。このように、パネルとパネル内の項目と操作との組み合わせでイベントを指定することによって、多様な画面操作に対してイベントを定義することができる。
また、業務ロジックマッピング定義情報では、パネルごとにイベントと業務処理とを対応付けるのではなく、イベントとアクションを対応付けて記憶している。さらに、業務ロジックマッピング定義情報では、アクションを一意に識別する「アクション」と、業務処理を一意に識別するIDを示す「処理」と、業務処理を実行する処理主体を示す「種別」と、サーバが業務処理を実行するのに必要なデータである「送信データ」とを対応付けて記憶する。
なお、イベントは、パネルとパネル内の項目と操作との組み合わせによって指定するが、パネル間や項目間で共通するイベントについては、パネルや項目の指定を省略することができる。
このような構成のもと、クライアント10は、業務ロジックマッピング定義情報に従って、イベントおよび処理の登録ならびにパネルの作成などの初期化処理を行い表示パネル情報記憶部15bに記憶された画面に表示するパネルについての情報である表示パネル情報を用いて、初期パネルを表示する。
続いて、クライアント10は、利用者の画面操作によってイベントが発生すると、表示パネル情報と業務ロジックマッピング定義情報とを用いて、イベントからアクション(図1の例では、アクション3)を特定する。そして、クライアント10は、特定したアクションに対応する業務処理(図1の例では、業務処理c)を実行する業務処理として決定する。
ここで、クライアント10は、決定された業務処理をクライアント10で実行するかサーバ20で実行するかを判定する。具体的には、クライアント10は、実行することが決定された業務処理に対応する「種別」を業務ロジックマッピング定義情報から読み出し、種別が「クライアント」の場合には、業務処理を呼び出して実行する。
また、クライアント10は、業務処理に対応する種別が「サーバ」の場合には、サーバ20が業務処理に必要なデータを作成し、サーバ20に送信する。具体的には、クライアント10は、業務ロジックマッピング定義情報に従い、送信データを作成する。例えば、クライアント装置10は、業務処理「業務処理c」をサーバで実行する場合には、項目A、項目Bに入力されたデータであるFLD1、FLD2のデータを送信データとして作成し、サーバ20に送信する。
そして、サーバ20は、送信データをクライアント10から受信した場合には、受信された送信データを用いて、業務処理を実行する。その後、クライアント10は、サーバ20から業務処理の実行結果を受信する。
このように、クライアントサーバシステム1では、クライアント10またはサーバ20のいずれが業務処理を実行するか判定し、クライアント10もしくはサーバ20に業務処理を振り分ける。これにより、クライアントサーバシステム1では、業務処理の負担をクライアント10だけでなく、サーバ20にも分担させるとともに、処理主体を意識した作り込みを不要とすることができる。
[クライアントの構成]
次に、図2を用いて、図1に示したクライアント10の構成を説明する。図2は、実施例1に係るクライアント10の構成を示すブロック図である。同図に示すように、このクライアント10は、画面制御部11、システム制御部12、イベント制御部13、通信制御部14、記憶部15を有し、ネットワーク等を介してサーバ20と接続される。以下にこれらの各部の処理を説明する。
画面制御部11は、パネルを表示する処理部である。また、この画面制御部11は、パネル上でのユーザのマウス操作やキーボード操作をイベントとして受け付け、受け付けたイベントをイベント制御部13に通知する。
システム制御部12は、接続されたサーバ20との間でやり取りする各種情報に関する通信を制御する。具体的には、システム制御部12は、クライアント10が起動する際に、起動時に必要な情報、かつクライアントで必要な情報のみを抜粋してダウンロードし、業務ロジックマッピング定義情報記憶部15a、表示パネル情報記憶部15bに記憶させる。
また、システム制御部12は、後述するイベント判定部13bによってクライアント10で業務処理を実行すると判定された場合に、クライアントで動作する業務処理をサーバ20からダウンロードし、業務ロジックマッピング定義情報記憶部15a、表示パネル情報記憶部15bに記憶させる。
記憶部15は、イベント制御部13および通信制御部14による各種処理に必要なデータおよびプログラムを格納するが、特に、業務ロジックマッピング定義情報記憶部15aおよび表示パネル情報記憶部15bを有する。
業務ロジックマッピング定義情報記憶部15aは、業務ロジックマッピング定義情報をXML形式で記憶した記憶部である。図3は、業務ロジックマッピング定義情報のXML定義体項目の一例を示す図である。
同図に示すように、このXML定義体項目では、業務ロジックマッピング定義情報を定義するタグ「logic−Mapping」には、アクションを定義するタグ「action」が含まれる。そして、タグ「action」には、の属性としてアクション発生元のパネルを識別する「panel−id」と、アクション発生項目を識別する「item−id」と、操作を識別する「action−id」が定義される。
また、「action」の中に、アクションコードを表わす「logic」が定義されている。この「logic」には、処理において、サーバロジックを呼び出すか、クライアントロジックを呼び出すか指定する「type」と、呼び出す業務処理を表わす「main」とが含まれている。つまり、「type」では、業務処理ごとにクライアント10で実行するかサーバ20で実行するかが指定されている。
また、「logic」には、サーバ20に送信するデータ「date」が定義されている。そして、「date」には、サーバ20に送信する項目のitem−idを定義する「item−id」が含まれる。
表示パネル情報記憶部15bは、画面に表示するパネルについての情報を記憶した記憶部である。この表示パネル情報記憶部15bに記憶される情報は、画面制御部11によって使用される。
イベント制御部13は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に、初期化処理部13a、イベント判定部13b、業務処理実行部13cを有する。
初期化処理部13aは、業務ロジックマッピング定義情報に従って、イベントおよび処理の登録ならびにパネルの生成を初期化処理として行う処理部である。また、初期化処理部13aは、表示パネル情報記憶部15bに記憶された表示パネル情報を用いてパネルを作成し、画面制御部11を介してパネルを表示する。なお、パネルの生成は、初期化処理時以外にパネルが表示される場合に行うこともできる。
ここで、クライアント10の起動時における処理について図4を用いて説明する。図4は、クライアント未起動時およびクライアント起動時の処理を説明するための図である。同図に示すように、クライアント10は、未起動時には、クライアント上には何も資産がない状態である(図4の(1)参照)。そして、クライアント10は、起動処理が行われると、起動処理を行った旨をサーバ20に通知し、起動時に必要な情報、かつクライアントで必要な情報のみを抜粋してダウンロードする(図4の(2)参照)。
つまり、クライアント10では、起動時にサーバ20から定義情報や業務処理をダウンロードする必要がなく、業務処理に必要な定義情報や業務処理については、必要になったタイミングでダウンロードを行う(後に詳述する図5参照)。
イベント判定部13bは、業務処理を実行する場合に、当該業務処理をクライアント10で実行するかサーバ20で実行するかを判定する。具体的には、イベント判定部13bは、利用者の画面操作によってイベントが発生すると、イベントキューへの登録を行い、イベントキューからイベントを取り出す。なお、イベントキューについては、後に、図6〜図8を用いて説明する。
そして、イベント判定部13bは、表示パネル情報と業務ロジックマッピング定義情報とを用いて、イベントからアクションを特定し、特定されたアクションに対応する業務処理を実行する業務処理として決定する。
その後、イベント判定部13bは、実行することが決定された業務処理に対応する「種別」を業務ロジックマッピング定義情報から読み出し、種別が「クライアント」であるか「サーバ」であるか判定する。この結果、イベント判定部13bは、種別が「クライアント」の場合には、業務処理を実行する旨を業務処理実行部13cに通知する。また、クライアント10は、業務処理に対応する種別が「サーバ」の場合には、サーバ20が業務処理を実行する旨の通知を通信制御部14の業務処理データ送信部14aに通知する。
業務処理実行部13cは、業務処理をクライアント10で実行すると判定された場合には、業務処理をクライアント10が実行する。ここで、クライアントが業務処理を実行する場合について、図5を用いて説明する。図5は、クライアント処理実行時について説明するための図である。
同図に示すように、イベント判定部13bは、クライアント10で動作する業務処理をサーバ20からダウンロードして実行される。つまり、クライアント10が業務処理を実行すると判定された場合にのみ、業務処理に必要な定義情報や業務処理についてダウンロードを行えばよい。
通信制御部14は、業務処理をサーバ20で実行すると判定された場合には、当該業務処理を前記サーバにおいて実行するように通信するが、特に、業務処理データ送信部14aおよび業務処理データ受信部14bを有する。
業務処理データ送信部14aは、業務処理をサーバで実行すると判定された場合には、業務処理に必要なデータをサーバ20に対して送信する。具体的には、通信制御部14は、サーバ20が業務処理を実行する旨の通知をイベント判定部13bから受信すると、業務ロジックマッピング定義情報に従い、送信データを作成し、サーバ20に送信する。例えば、業務処理データ送信部14aは、業務処理「業務処理c」をサーバで実行する場合には、項目A、項目Bに入力されたデータであるFLD1、FLD2のデータを送信データとして作成し、サーバ20に非同期通信で送信する。
業務処理データ受信部14bは、サーバ20から業務処理の結果を非同期通信で受信する。ここで、非同期通信を行った場合の問題点について、図6を用いて説明する。図9左側のフローに示すように、非同期通信を行った場合、サーバ20にイベント(処理1)の実行を依頼した後、スレッドが一旦開放される。このため、図9右側のフローに示すように、イベント(処理1)をサーバに実行するように依頼した後、イベント(処理1)が実行中にも関わらず、別のイベント(処理2)が実行されてしまう。このため、非同期通信終了までの間に発生したイベント(処理2)が本来実施させたくないにも関わらずイベント(処理1)よりも先に実行されてしまう。
そこで、クライアント10では、記憶領域にイベントキューを有して、イベントが順次実行できるように管理している。図7は、イベントキューを使用したイベント制御処理を説明するための図である。同図に示すように、クライアント10では、発生したイベントをそのまま実行するのではなく、一旦キューに格納した後に、イベントを順次実行する。これにより、イベント10は、非同期通信を利用しつつ発生したイベントを順次実行することが可能である。
ここで、イベントキューを使用したイベント制御処理の具体例について説明する。図8は、イベントキューを使用したイベント制御処理の具体例について説明するための図である。同図に示すように、クライアント10は、イベント(処理1)が発生すると、そのイベント(処理1)をイベントキューに登録した後、イベント実行処理として、イベントキューにアクセスし、イベントキューから「処理1」を取得する。そして、クライアント10は、取得された「処理1」をサーバ20において実行させるために、サーバ20に非同期通信で送信する。
そして、クライアント10は、処理1が実行中に、別のイベント(処理2)が発生した場合には、イベント(処理2)をイベントキューに登録するとともに、イベントキューを参照する。ここで、クライアント10は、イベントキューを参照して、処理1が処理中であることを確認し、処理2を実行しない。
その後、クライアント10は、サーバ20から処理1の結果を非同期通信で受信すると、処理1が完了したとして、イベントキューから処理1を削除し、イベントキューを確認する再起呼出しを行う。ここで、クライアント10は、イベントキューに現在処理中の処理がないことを確認する。そして、クライアント10は、イベントキューにアクセスし、イベントキューから処理2を取得して実行する。その後、クライアント10は、処理2の実行が完了すると、イベントキューを確認する再起呼出しを行ってイベントキューに待機中の処理がないことを確認し、処理を終了する。
[サーバの構成]
次に、図9を用いて、図1に示したクサーバ20の構成を説明する。図9は、実施例1に係るサーバ20の構成を示すブロック図である。同図に示すように、このサーバ20は、システム制御部21、通信制御部22、イベント制御部23、記憶部24を有し、ネットワーク等を介してクライアント10と接続される。以下にこれらの各部の処理を説明する。
システム制御部21は、接続されたクライアント10との間でやり取りする各種情報に関する通信を制御する。具体的には、システム制御部21は、クライアント10が起動した際に、起動時に必要な情報、かつクライアントで必要な情報をクライアント10に送信する。また、システム制御部21は、クライアント10で業務処理を実行する場合に、クライアント10で動作する業務処理をクライアント10に送信する。
通信制御部22は、クライアント10が業務処理をサーバ20で実行すると判定した場合には、業務処理に必要なデータをクライアント10から受信し、イベント制御部23に通知する。
イベント制御部23は、通信制御部22から業務処理に必要なデータを受信した場合に、業務処理を実行し、通信制御部22を介してクライアント10に送信する。
記憶部24は、通信制御部22およびイベント制御部23による各種処理に必要なデータおよびプログラムを格納するが、特に、業務ロジックマッピング定義情報をXML形式で記憶した定義情報記憶部24aと、業務処理を記憶した業務処理記憶部24bとを有する。
[クライアントによる処理]
次に、図10を用いて、実施例1に係るクライアント10による処理を説明する。図10は、実施例1に係るクライアント10の処理動作を示すフローチャートである。
同図に示すように、クライアント10のイベント判定部13bは、利用者の画面操作等によってイベントが発生すると(ステップS101肯定)、イベントキューへの登録を行い(ステップS102)、イベントキューからイベントを取り出す(ステップS103)。
そして、イベント判定部13bは、表示パネル情報と業務ロジックマッピング定義情報とを用いて、イベントからアクションを特定し、特定されたアクションに対応する業務処理を実行する業務処理として決定する(ステップS104)。
その後、イベント判定部13bは、業務処理をクライアント10で実行するかを判定する(ステップS105)。具体的には、イベント判定部13bは、実行することが決定された業務処理に対応する「種別」を業務ロジックマッピング定義情報から読み出し、種別が「クライアント」であるか「サーバ」であるか判定する。この結果、イベント判定部13bは、業務処理をクライアント10で実行すると判定された場合には(ステップS105肯定)、業務処理実行部13cが業務処理を実行する(ステップS106)。
また、業務処理をサーバ20で実行すると判定された場合には(ステップS105否定)、業務処理データ送信部14aは、業務ロジックマッピング定義情報に従い、送信データを作成し(ステップS107)、サーバ20に送信する(ステップS108)。例えば、通信制御部14は、業務処理「業務処理c」をサーバで実行する場合には、項目A、項目Bに入力されたデータであるFLD1、FLD2のデータを送信データとして作成し、サーバ20に非同期通信で送信する。その後、業務処理データ受信部14bは、サーバ20から業務処理の結果を非同期通信で受信する(ステップS109)。
[実施例1の効果]
上述してきたように、クライアント10は、業務処理を実行する場合に、業務処理をクライアントで実行するかサーバで実行するかを判定し、クライアントで実行すると判定された場合には、業務処理をクライアントが実行し、サーバで実行すると判定された場合には、業務処理をサーバにおいて実行するように通信する。このため、業務処理の実行をクライアントまたはサーバに振り分けて、クライアントに掛かる負荷を分散することが可能である。
また、実施例1によれば、業務処理の実行をクライアントまたはサーバに振り分ける処理を行うことが可能であるので、業務処理について処理主体を意識した作りこみが不要となり、柔軟なクライアントサーバシステムを開発することが可能である。
ところで、上記の実施例1では、サーバが実行する業務処理に対応付けて、サーバに送信する送信データが定義されている場合を説明したが、本実施例はこれに限定されるものではなく、画面上の変更項目のみを自動で抽出し、送信データを作成するようにしてもよい。
そこで、以下の実施例2では、画面上の変更項目のみを自動で抽出し、送信データを作成する場合として、図11および図12を用いて、実施例2におけるクライアント10aの概要および処理について説明する。図11は、実施例2に係るクライアント10aの概要を説明するための図であり、図12は、実施例2に係るクライアント10aの処理手順を説明するためのフローチャートである。
まず最初に、実施例2に係るクライアント10aの概要を説明する。図11に示すように、クライアント10aの業務ロジックマッピング定義情報では、実施例1と同様に「アクション」と「処理」と「種別」とを対応付けて記憶するが、サーバが業務処理を実行するのに必要なデータである「送信データ」を定義していない。
このような構成のもと、クライアント10aは、実施例1と同様に、決定された業務処理をクライアント10aで実行するかサーバ20aで実行するかを判定する。この結果、クライアント10aは、決定された業務処理をサーバ20aが実行すると判定した場合には、実施例1とは異なり、画面上で変更されたデータのみを抽出して送信データを作成し、サーバ20aに送信する。
つまり、クライアント10aは、画面上の変更項目のみを自動で抽出して送信データを作成するので、業務ロジックマッピング定義上に、送信データを定義しなくてもよい。また、クライアント10aは、画面上の変更項目のみを送信データとして送信するので、サーバ20aとの通信量を削減することができる。
次に、図12を用いて実施例2に係るクライアント10aの処理について説明する。実施例2に係るクライアント10aの処理は、図10に示した実施例1に係る処理と比較して、画面上の変更項目のみを自動で抽出して送信データを作成する点が相違する。
すなわち、図12に示すように、クライアント10aは、業務処理をクライアント10aで実行するかクライアント20aで実行するかを判定した結果(ステップS205)、業務処理をサーバ20aで実行すると判定された場合には(ステップS205否定)、画面上の変更項目のみを抽出して(ステップS207)、送信データを作成する(ステップS208)。
このように、上記の実施例2では、クライアント10aは、業務処理をサーバにおいて実行するように、画面上の変更項目を抽出し、抽出された項目をサーバ側に送信するので、画面上の変更項目のみを送信データとして送信する結果、サーバ20aとの通信量を削減することが可能である。
ところで、上記の実施例1、2では、業務処理について、クライアントが実行するのかサーバが実行するのか予め定義されている場合を説明したが、本実施例はこれに限定されるものではなく、クライアントの負荷状況とサーバの負荷状況とに応じて、クライアントもしくはサーバのどちらで実行する業務処理であるかを判定するようにしてもよい。
そこで、以下の実施例3では、クライアントの負荷状況とサーバの負荷状況とに応じて、クライアントもしくはサーバのどちらで実行する業務処理であるかを判定する場合として、図13および図14を用いて、実施例3におけるクライアント10bの概要および処理について説明する。図13は、実施例3に係るクライアント10bの概要を説明するための図であり、図14は、実施例3に係るクライアント10bの処理手順を説明するためのフローチャートである。
まず最初に、実施例3に係るクライアント10bの概要を説明する。図13に示すように、クライアント10bの業務ロジックマッピング定義情報では、実施例1と同様に「アクション」と「処理」とを対応付けて記憶するが、業務処理を実行する処理主体を示す「種別」については定義を行わなくてもよい。なお、クライアント10bまたはサーバ20b側でないと処理できない業務処理については、種別を定義する必要がある。
このような構成のもと、クライアント10bは、実行する業務処理を決定した後、クライアントの負荷状況とサーバの負荷状況とを判断して、業務処理をクライアント10bで実行するかサーバ20bで実行するかを判定する。
具体的には、クライアント10bは、実行することが決定された業務処理に対応する「種別」が業務ロジックマッピング定義情報に定義されているか検索し、業務処理に対応する「種別」が定義されている場合には、実施例1と同様に、「種別」を読み出して、業務処理を実行する主体が「クライアント」であるか「サーバ」であるかを判定する。
一方、クライアント10bは、業務処理に対応する「種別」が定義されていない場合には、クライアント10bの負荷状況(例えば、CPUまたはメモリの使用率など)と、サーバ20bの負荷状況(例えば、レスポンス時間など)とを判断して、業務処理をクライアント10bで実行するかサーバ20bで実行するかを自動的に判定する。
つまり、クライアント10bは、クライアントの負荷状況とサーバの負荷状況とに応じて、クライアントもしくはサーバのどちらで実行する業務処理であるかを判定するので、クライアント10bおよびサーバ20bの状態に応じた業務処理の自動分散を行うことができる。
次に、図14を用いて実施例3に係るクライアント10bの処理について説明する。実施例3に係るクライアント10bの処理は、図10に示した実施例1に係る処理と比較して、クライアントの負荷状況とサーバの負荷状況とに応じて、クライアントもしくはサーバのどちらで実行する業務処理であるかを判定する点が相違する。
すなわち、図14に示すように、実施例1と同様に、表示パネルと業務ロジックマッピング定義情報とを用いて、実行する業務処理を決定した後(ステップS304)、実施例2に係るクライアント10bでは、決定された業務処理に対応する「種別」の定義があるか判定する(ステップS305)。
その結果、クライアント10bは、業務処理に対応する「種別」が定義されている場合には(ステップS305肯定)、実施例1と同様に、「種別」を読み出し、「種別」に従ってクライアント10bまたはサーバ20bで業務処理を実行する(ステップS306)。
また、クライアント10bは、業務処理に対応する「種別」が定義されていない場合には(ステップS305否定)、クライアント10bの負荷状態およびサーバ20bの負荷状態を判断し、クライアント10bの負荷状態およびサーバ20bの負荷状態に応じて、種別を決定する(ステップS307)。
この結果、クライアント10bは、業務処理をクライアント10bで実行すると判定された場合には(ステップS308肯定)、実施例1と同様に、業務処理を実行する(ステップS309)。また、クライアント10bは、業務処理をサーバ20bで実行すると判定された場合には(ステップS308否定)、実施例1と同様に、業務ロジックマッピング定義情報に従って送信データを作成してサーバ20bに送信し、その後サーバ20bから業務処理の結果を受信する(ステップS310〜S312)。
このように、上記の実施例3では、クライアント10の負荷状況とサーバ20の負荷状況とに応じて、クライアントもしくはサーバのどちらで実行する業務処理であるかを判定するので、クライアント10bおよびサーバ20bの状態に応じた業務処理の自動分散を行うことが可能である。
ところで、上記の実施例1〜3では、クライアントとサーバとの接続関係が一対一である場合に、業務処理をクライアントかサーバに振り分ける処理を説明したが、本実施例はこれに限定されるものではなく、クライアントが複数のサーバと接続関係にある場合であってもよい。
そこで、以下の実施例4では、クライアントが複数のサーバと接続関係にある場合に、任意のサーバに対して業務処理に必要なデータを送信する場合として、図15および図16を用いて、実施例4におけるクライアント10cの概要および処理について説明する。図15は、実施例4に係るクライアント10cの概要を説明するための図であり、図16は、実施例4に係るクライアント10cの処理手順を説明するためのフローチャートである。
まず最初に、実施例4に係るクライアント10cの概要を説明する。図15に示すように、クライアント10cの業務ロジックマッピング定義情報では、実施例1と同様に「アクション」と「処理」と「種別」とを対応付けて記憶するとともに、業務処理を実行するサーバを示す「接続先サーバ」が定義されている。
このような構成のもと、クライアント10cは、業務処理をクライアント10cで実行するかサーバ20cで実行するかを判定し、業務処理に対応する種別が「サーバ」の場合には、業務ロジックマッピング定義情報から「接続先サーバ」を読み出す。そして、クライアント10cは、読み出された「接続先サーバ」から、業務処理を実行するサーバを特定し、特定されたサーバに対して業務処理に必要なデータを送信する。
つまり、クライアント10cは、業務ロジックマッピング定義上に接続先サーバの指定を可能とすることで、任意のサーバ上で業務処理を実行させる。この結果、任意のサーバ上で業務処理呼び出しが可能となることにより、複数サーバの業務処理結果を統合し、1画面上に表示するといった制御が可能となる。
次に、図16を用いて実施例4に係るクライアント10cの処理について説明する。実施例4に係るクライアント10cの処理は、図12に示した実施例2に係る処理と比較して、業務処理をサーバが実行する場合に、接続先サーバ情報を取得し、複数のサーバのうち、いずれのサーバに送信データを送信するか判断する点が相違する。
すなわち、図16に示すように、実施例2と同様に、業務処理をクライアント10cで実行するかを判定した結果(ステップS405)、クライアント10cは、決定された業務処理をサーバ20aが実行すると判定した場合には(ステップS405否定)、画面上の変更項目のみを抽出する(ステップS407)。その後、実施例4に係るクライアント10cでは、接続先サーバ情報を取得する(ステップS408)。
そして、クライアント10cは、送信データを作成し(ステップS409)、接続先サーバ情報に該当するサーバに対して送信データを送信する(ステップS410)。その後、クライアント10cは、サーバから業務処理の結果を受信する(ステップS411)。
このように、上記の実施例4では、クライアント10cは、業務処理ごとに、業務処理を実行するサーバを示す接続先サーバ情報を記憶し、業務処理をサーバで実行すると判定された場合には、接続先サーバ情報を取得する。そして、クライアント10cは、接続先サーバ情報から業務処理を実行するサーバを特定し、特定されたサーバに対して業務処理を実行するので、任意のサーバ上で業務処理呼び出しが可能となり、複数サーバの業務処理結果を統合し、1画面上に表示するといった制御が可能となる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例5として本発明に含まれる他の実施例を説明する。
(1)システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、イベント制御部13と通信制御部14を統合してもよい。
(2)プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図17を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図17は、業務処理振分プログラムを実行するコンピュータを示す図である。
同図に示すように、クライアント装置としてのコンピュータ600は、HDD610、RAM620、ROM630およびCPU640をバス650で接続して構成される。
そして、ROM630には、上記の実施例と同様の機能を発揮する業務処理振分プログラム、つまり、図17に示すように、業務処理判定プログラム631、業務処理データ送信プログラム632が予め記憶されている。なお、プログラム631、632については、図2に示したクライアント10の各構成要素と同様、適宜統合または分散してもよい。
そして、CPU640が、これらのプログラム631、632をROM630から読み出して実行することで、図17に示すように、各プログラム631、632は、業務処理判定プロセス641、業務処理データ送信プロセス642として機能するようになる。各プロセス641、642は、図2に示したイベント判定部13b、業務処理データ送信部14aにそれぞれ対応する。
また、HDD610には、図17に示すように、業務ロジックマッピング定義データ611および表示パネルデータ612が設けられる。なお、業務ロジックマッピング定義データ611および表示パネルデータ612は、図2に示した業務ロジックマッピング定義情報記憶部15aおよび表示パネル情報記憶部15bに対応する。そして、CPU640は、業務ロジックマッピング定義データ611および表示パネルデータ612に対してデータを登録するとともに、RAM620に格納し、RAM620に格納されたデータに基づいて処理を実行する。
1 クライアントサーバシステム
10 クライアント
11 画面制御部
12 システム制御部
13 イベント制御部
13a 初期化処理部
13b イベント判定部
13c 業務処理実行部
14 通信制御部
14a 業務処理データ送信部
14b 業務処理データ受信部
15 記憶部
15a 業務ロジックマッピング定義情報記憶部
15b 表示パネル情報記憶部

Claims (6)

  1. 業務処理を実行する場合に、当該業務処理をクライアントで実行するかサーバで実行するかを判定する業務処理判定部と、
    前記業務処理判定部によって前記業務処理をクライアントで実行すると判定された場合には、当該業務処理をクライアントが実行する業務処理実行部と、
    前記業務処理判定部によって前記業務処理をサーバで実行すると判定された場合には、当該業務処理を前記サーバにおいて実行するように通信する業務処理データ通信部と、
    を備えることを特徴とするクライアントサーバシステム。
  2. 前記業務処理判定部は、前記クライアントの負荷状況と前記サーバの負荷状況とに応じて、クライアントもしくはサーバのどちらで実行する業務処理であるかを判定することを特徴とする請求項1に記載のクライアントサーバシステム。
  3. 前記業務処理ごとに、当該業務処理を実行するサーバを示す接続先サーバ情報を記憶する接続先サーバ情報記憶部をさらに備え、
    前記業務処理データ通信部は、前記業務処理判定部によって前記業務処理をサーバで実行すると判定された場合には、前記接続先サーバ情報記憶部から前記接続先サーバ情報を取得し、当該接続先サーバ情報から業務処理を実行するサーバを特定し、当該サーバに対して業務処理を実行するように通信することを特徴とする請求項1または2に記載のクライアントサーバシステム。
  4. 前記業務処理データ通信部は、前記業務処理判定部によって前記業務処理をサーバで実行すると判定された場合には、画面上の変更項目を抽出し、抽出された項目をサーバ側に送信することを特徴とする請求項1〜3のいずれか一つに記載のクライアントサーバシステム。
  5. 業務処理を実行する場合に、当該業務処理をクライアントで実行するかサーバで実行するかを判定する業務処理判定部と、
    前記業務処理判定部によって前記業務処理をクライアントで実行すると判定された場合には、当該業務処理をクライアントが実行する業務処理実行部と、
    前記業務処理判定部によって前記業務処理をサーバで実行すると判定された場合には、当該業務処理を前記サーバにおいて実行するように通信する業務処理データ通信部と、
    を備えることを特徴とするクライアント装置。
  6. 業務処理を実行する場合に、当該業務処理をクライアントで実行するかサーバで実行するかを判定する業務処理判定手順と、
    前記業務処理判定手順によって前記業務処理をクライアントで実行すると判定された場合には、当該業務処理をクライアントが実行する業務処理実行手順と、
    前記業務処理判定手順によって前記業務処理をサーバで実行すると判定された場合には、当該業務処理を前記サーバにおいて実行するように通信する業務処理データ通信手順と、
    をコンピュータに実行させることを特徴とする業務処理振分プログラム。
JP2009031955A 2009-02-13 2009-02-13 クライアントサーバシステム、クライアント装置および業務処理振分プログラム Pending JP2010191482A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009031955A JP2010191482A (ja) 2009-02-13 2009-02-13 クライアントサーバシステム、クライアント装置および業務処理振分プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009031955A JP2010191482A (ja) 2009-02-13 2009-02-13 クライアントサーバシステム、クライアント装置および業務処理振分プログラム

Publications (1)

Publication Number Publication Date
JP2010191482A true JP2010191482A (ja) 2010-09-02

Family

ID=42817502

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009031955A Pending JP2010191482A (ja) 2009-02-13 2009-02-13 クライアントサーバシステム、クライアント装置および業務処理振分プログラム

Country Status (1)

Country Link
JP (1) JP2010191482A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022554220A (ja) * 2019-10-26 2022-12-28 ミミック・テクノロジー・インコーポレイテッド 分散型エッジクラウドコンピューティングのための方法およびシステム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09265460A (ja) * 1996-03-28 1997-10-07 Mitsubishi Electric Corp 分散処理システム及び分散処理方法
JP2000076172A (ja) * 1998-08-28 2000-03-14 Toshiba Corp 分散システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09265460A (ja) * 1996-03-28 1997-10-07 Mitsubishi Electric Corp 分散処理システム及び分散処理方法
JP2000076172A (ja) * 1998-08-28 2000-03-14 Toshiba Corp 分散システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022554220A (ja) * 2019-10-26 2022-12-28 ミミック・テクノロジー・インコーポレイテッド 分散型エッジクラウドコンピューティングのための方法およびシステム
JP7426636B2 (ja) 2019-10-26 2024-02-02 ミミック・テクノロジー・インコーポレイテッド 分散型エッジクラウドコンピューティングのための方法およびシステム

Similar Documents

Publication Publication Date Title
US11003423B2 (en) System and method for autowiring of a microservice architecture
EP3764220B1 (en) Automatic application updates
AU2016298207B2 (en) Background job processing framework
EP1906305B1 (en) Method and system for data preparation and communication between software applications
JP5936103B2 (ja) クライアントでJavaメソッドを呼び出すシステム、コンピュータ、方法及びプログラム
JP2006268470A (ja) 非同期通信方法
US7197712B2 (en) Server visualization and control
WO2009114767A2 (en) Service-oriented architecture system and method
JP2006091954A (ja) リモート接続システム、サーバコンピュータ、リモート接続方法及びプログラム
JP2005228183A (ja) プログラム実行方法、および、プログラム実行のための計算機システム
JP2010191482A (ja) クライアントサーバシステム、クライアント装置および業務処理振分プログラム
WO1998037497A1 (fr) Processeur d'informations relatives a un espace virtuel
CN113946614A (zh) 一种iOS基于静态库的网络数据传输方法、装置及系统
JP2011141697A (ja) 制御装置の処理方法及び制御装置
CN110035044A (zh) 信息处理系统和信息处理方法
JP6151946B2 (ja) 情報処理システム、情報処理装置およびそれらの制御方法
JP2012247815A (ja) 文書管理システムにおけるインデックス設定手法
JP5482330B2 (ja) 情報処理装置及びプログラム
JP7208086B2 (ja) 管理システム、方法、及び、プログラム
JP7271147B2 (ja) サービス認可処理装置、システム、方法及びプログラム
JP2018180744A (ja) 画像形成装置のコントローラ上で動作するアプリケーション実行環境
JP2008234118A (ja) ユーザインタフェース提供装置、ユーザインタフェース生成方法、およびプログラム。
JP2017175414A (ja) 画像処理サーバ、データ送信プログラム及び振分装置
WO2018190001A1 (ja) メッセージ管理装置及びメッセージ管理方法
JP2004240890A (ja) ミドルウェア透過分散アプリケーションアクセス方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121003

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130219