JP2014119960A - クライアントサーバシステム、クライアント装置、サーバ装置、クライアントサーバシステムの制御方法及びプログラム - Google Patents

クライアントサーバシステム、クライアント装置、サーバ装置、クライアントサーバシステムの制御方法及びプログラム Download PDF

Info

Publication number
JP2014119960A
JP2014119960A JP2012274603A JP2012274603A JP2014119960A JP 2014119960 A JP2014119960 A JP 2014119960A JP 2012274603 A JP2012274603 A JP 2012274603A JP 2012274603 A JP2012274603 A JP 2012274603A JP 2014119960 A JP2014119960 A JP 2014119960A
Authority
JP
Japan
Prior art keywords
identifier
client
packet
client device
storage unit
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
JP2012274603A
Other languages
English (en)
Inventor
Satoshi Shiga
聡 志賀
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012274603A priority Critical patent/JP2014119960A/ja
Publication of JP2014119960A publication Critical patent/JP2014119960A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】クライアント装置からサーバ装置へのアクセスが集中した場合でも、ユーザビリティが低下しないようにする。
【解決手段】サーバ装置であるウェブサーバ100が、ネットワーク300を介してMFP等のクライアント装置からパケットを受信したとき、処理回路130がそれに識別子が付加されているか否かを判断し、そのパケットを識別子が付加されていればサブCPU121に、付加されていなければメインCPU111に振り分けて渡す。また、ウェブサーバ100にアクセス可能な複数のクライアント装置からそれぞれ要求されることが予測されるデータを全てHDD114に格納しておく。そして、通信不可能な動作状態のクライアント装置から要求されることが予測されるデータを、そのHDD114から読み出し速度が速いRAM113に予めキャッシュしておく。
【選択図】 図3

Description

この発明は、ネットワークを介してアクセス可能なクライアント装置とサーバ装置とを備えたクライアントサーバシステムと、そのクライアント装置とサーバ装置、クライアントサーバシステムの制御方法及びプログラムに関する。
従来から、プリンタ機能、スキャナ機能及びコピー機能等を有するデジタル複合機であるMFP(Multi Function Peripheral:多機能周辺装置)が広く用いられている。
近年では、そのMFPをクライアント装置とし、サーバ装置であるウェブサーバと通信ネットワークを介して接続することによりMFPの一般的な機能以外の付加機能をウェブサーバを用いて実現するクライアントサーバシステムが提供されている。
このクライアントサーバシステムでは、MFPがウェブブラウザを備え、このウェブブラウザを用いてウェブサーバに様々な要求を行うことができる。そして、ウェブサーバはMFPのウェブブラウザからの様々な要求に基づいて処理を行う。
例えば、ウェブサーバは、データベース上のドキュメントの検索処理や、スキャンデータの文字を認識して文書に変換するOCR(Optical Character Recognition:光学文字認識)処理を行ったりする。
あるいは、MFPの表示手段であるLCD(Liquid Crystal Display:液晶ディスプレイ)パネルに表示する画面のデータである表示画面データを送信する処理を行ったりする。このように様々な処理を行う。
このようなクライアントサーバシステムにおいて、ウェブサーバに複数のMFPからアクセス可能とすることにより、1台のウェブサーバが備える上述したような処理に係るアプリケーションを複数のMFPで共有することができる。
従って、各MFPにアプリケーションを実装する場合と比較すると実装作業に伴う人件費等のコストを抑えることができるというメリットがある。
また、このクライアントサーバシステムでは、MFPのLCDパネル等に表示する画面のデータである表示画面データをMFP内で記憶しておく必要がないため、MFPの記憶装置の容量を節約できるというメリットもある。
ここで、特許文献1には、ウェブサーバ(Webサーバ)と情報処理装置としてのMFPとからなるシステムが記載されている。そのシステムにおいて、ウェブサーバが適切な画面をMFPに通知できるようにするために、MFPがユーザの指示による画面遷移のタイミングで自身の装置情報をウェブサーバに送信する技術が開示されている。
ところで、ウェブサーバが複数のMFPから要求を受け付け得る場合に、要求が集中すると処理に時間がかかる場合がある。
例えば、ユーザがMFPのタッチパネル等からウェブサーバの各アプリケーション(例えば、スキャンデータのOCR処理)の要求を行った場合を考える。
このような場合、処理に時間がかかったとしても、ユーザの心理としてウェブサーバが各アプリケーションを実行していると感じるため、故障などの不安あるいは待つことによるストレスを生じにくい。
しかし、ユーザが速い処理結果を期待するような処理の場合には、ユーザはすぐに処理結果が得られることを期待する。
そのため、ウェブサーバの処理に時間がかかると、ユーザはMFPが故障しているのではないかと不安になったり、あるいは待たされることによりストレスを生じてしまうという問題があった。
例えば、ユーザがMFPのタッチパネル等を操作して表示画面を遷移させるような場合、ユーザとしてはすぐに新たな表示画面が表示されることを期待する。このような場合に、ウェブサーバの表示画面データの送信に係る処理に時間がかかったとすると、ユーザに故障の疑念やストレスを生じさせてしまうことになる。
しかしながら、ウェブサーバをサーバ装置とし、MFPをクライアント装置としたクライアントサーバシステムにおいては、ウェブサーバに要求が集中すると、ユーザが速い処理結果を期待するような処理であっても、その処理に時間がかかる場合がある。そのため、ユーザビリティ(使いやすさ)が悪いという問題があった。
特許文献1には、この問題を解決するための技術が開示されていない。
この発明はこのような問題を解決するためになされたものであり、サーバ装置とクライアント装置とを備えたクライアントサーバシステムにおいて、サーバ装置へのアクセスが集中した場合でも、ユーザビリティが低下しないようにすることを目的とする。
上記目的を達成するため、この発明のクライアントサーバシステムは、クライアント装置と、そのクライアント装置からネットワークを介してアクセス可能なサーバ装置とを備えたクライアントサーバシステムを、次のように構成したことを特徴とする。
上記クライアント装置が、
上記サーバ装置へのアクセス要求を生成するアクセス要求生成手段と、
そのアクセス要求生成手段が生成するアクセス要求に係るアクセス対象のアドレスに基づき、識別子の要否を判断する識別子要否判断手段と、
その識別子要否判断手段が識別子要と判断した場合には、上記アクセス要求生成手段が生成したアクセス要求を送信するためのパケットに上記識別子を付加して、識別子否と判断した場合にはそのパケットに上記識別子を付加せずに、それぞれ上記サーバ装置へ送信するパケット送信手段と、
自己のステータスに関連する情報を上記サーバ装置へ通知する通知手段とを有する。
また、上記サーバ装置が、
第1のCPU及び第2のCPUと、上記クライアント装置から上記パケットを受信した場合に、そのパケットに上記識別子が付加されているか否かを判断する識別子付加判断手段と、
上記クライアント装置から受信したパケットを、上記識別子付加判断手段が上記識別子が付加されていると判断した場合には上記第2のCPUに渡し、上記識別子が付加されていないと判断した場合には上記第1のCPUに渡す振り分け手段と、
当該サーバ装置にアクセス可能な複数の上記クライアント装置からそれぞれ要求されることが予測されるデータを全て格納する不揮発性の第1の記憶部と、
その第1の記憶部より読み出し速度が速い第2の記憶部と、
上記クライアント装置の上記通知手段から通知される上記情報に基づいて、ステータスが通信可能な動作状態であると判断したクライアント装置から要求されることが予測されるデータを、上記第1の記憶部から上記第2の記憶部へキャッシュするクライアント情報管理手段とを有する。
この発明のクライアントサーバシステムによれば、サーバ装置がクライアント装置から受信したパケットを、それに識別子が付加されているか否かによって、第1のCPUと第2のCPUとに振り分けて渡して処理することができる。
また、通信可能な動作状態にあるクライアント装置から要求されることが予測されるデータを、読み出し速度が速い記憶部へ予めキャッシュしておくことによって、アクセス要求があったときに、要求されるデータを迅速に読み出して送ることができる。
したがって、クライアント装置からサーバ装置へのアクセスが集中した場合でも、ユーザビリティが低下しないようにすることができる。
この発明によるクライアントサーバシステムの一実施形態を示すシステム構成図である。 図1に示したMFP200のハードウェア構成を示すブロック図である。 図1に示したウェブサーバ100のハードウェア構成を示すブロック図である。 ウェブサーバ100とMFP200の機能ブロック図である。 クライアント管理テーブルの一例を示す図である。 図3に示したRAM113における画面データの記憶例を示す図である。 図3に示したメインCPU111が図4の記憶部管理部172の機能としてクライアント管理テーブル171を更新する手順を示すフローチャートである。 図2に示したMFPのCPU201がウェブサーバ100への要求送信のトリガを検出したときに実行する処理のフローチャートである。
URLテーブルの一例を示す図である。 MFP200が送信するイーサネットフレームの先頭部を示す説明図である。 図3に示したネットワークI/F140がイーサネットフレームを受信したときに、ウェブサーバの処理回路130とメインCPU111及びサブCPU121がそれぞれ連係して実行する処理のフローチャートである。 図11における処理回路130によるステップS23の処理の詳細を示すフローチャートである。 URLテーブルの他の例を示す図である。
以下、この発明を実施するための形態を図面に基づいて説明する。
図1は、この発明によるクライアントサーバシステムの一実施形態を示すシステム構成図である。
このクライアントサーバシステムは、図1に示すように、複数台のMFP200と、これらの各MFP200からネットワーク300を介してアクセス可能なウェブサーバ100とを備えている。
ウェブサーバ100は、この発明によるサーバ装置の一実施形態であり、各MFP200に付加機能を提供したり、あるいは各MFP200のタッチパネル205(図2参照)に表示する画面のデータである画面データを提供したりするサーバ装置である。
MFP200は、この発明によるクライアント装置の一実施形態であって、プリンタ機能、スキャナ機能、コピー機能、FAX機能、画像データの転送機能などの複数の画像処理機能を有する多機能周辺装置であり、デジタル複合機とも称される。各MFP200の構成及び機能は全て同じである必要はないが、ここでは説明の便宜上全て同じ構成のものとして説明する。
なお、ネットワーク300としては、LAN(ローカルエリア・ネットワーク)やインターネットなど有線、無線を問わず任意の通信ネットワークを採用可能である。また、MFP200の台数は、図示の数に限らず任意の台数を接続可能であり、MFP200以外の画像形成装置や情報処理装置等のクライアント装置も接続可能である。
次に、図2を参照してMFP200のハードウェア構成について説明する。図2は、そのMFP200のハードウェア構成を示すブロック図である。
このMFP200は図2に示すように、CPU201、ROM202、RAM203、HDD204、タッチパネル205、エンジン部I/F206、エンジン部207及びネットワークI/F208を備えている。
このうち、CPU201は、MFP200全体を管理および制御する中央処理装置である。ROM202は、CPU201が実行するプログラム及び固定データを格納している不揮発性の記憶手段である。
RAM203は、CPU201が実行するプログラムを展開したり一時的なデータを格納し、各種処理を行う際の作業領域として使用する読み書き可能な記憶手段である。
HDD204は、各種データやCPU201が実行するプログラムを記憶する不揮発性の大容量記憶手段である。
タッチパネル205は、表示手段である液晶ディスプレイ(LCD)上に、ユーザからのタッチ操作を検出する検出手段であるタッチセンサを重ねて設けたものである。そして、画面データに基づいて画面を表示したり、あるいはユーザからのタッチ操作を受け付けたりする。
エンジン部I/F206は、MFP200の画像処理に関わる各種機能(プリンタ機能、スキャナ機能、コピー機能及びFAX機能等)を実行するためのハードウェアを含むエンジン部207と通信を行うためのインタフェースである。
ネットワークI/F208は、このMFP200が、ウェブサーバ100とネットワーク300を介して通信を行うためのインタフェースである。
そして、CPU201は、ROM202内の各種プログラムを読み出し、RAM203に展開した後、その各種プログラムに従って動作する。それによって、この発明に係わる機能であるアクセス要求生成手段、識別子要否判断手段、パケット送信手段、および通知手段としての機能を含む各種機能を実行することができる。
次に、図3を参照してウェブサーバ100のハードウェア構成について説明する。図3は、そのウェブサーバ100のハードウェア構成を示すブロック図である。
このウェブサーバ100は図3に示すように、メイン制御部110とサブ制御部120、処理回路130及びネットワークI/F140を備えている。
このうち、メイン制御部110は、第1のCPUであるメインCPU111、ROM112、RAM113及びHDD114を備えている。
メインCPU111は、ウェブサーバ100全体を管理および制御するとともに、図4によって後述する各種アプリケーション154に係る処理と、記憶部管理部172及びアクセス頻度解析部173の各機能部を実現する処理を担当する第1のCPUである。
ROM112は、メインCPU111が実行するプログラム及び固定データを格納している不揮発性の記憶手段である。
RAM113は、データの読み書き速度がHDD114よりも速い第2の記憶部であり、メインCPU111が実行するプログラムを展開したり一時的なデータを格納し、各種処理を行う際の作業領域として使用する読み書き可能な記憶部である。また、このRAM113は、HTML(Hyper Text Markup Language)文書の画面データも記憶する。
HDD114は、不揮発性の第1の記憶部であり、このウェブサーバ100にアクセス可能なクライアント装置である各MFP200からそれぞれ要求されることが予測される各種データを全て格納する大容量記憶装置である。この各種データには、画面データであるHTML文書も含まれる。
そして、このウェブサーバ100と通信可能な動作状態(ステータス)にあるクライアント装置(MFP200)から要求されることが予測されるデータが、第1の記憶部であるHDD114から第2の記憶部であるRAM113へキャッシュされる。
一方、サブ制御部120は、第2のCPUであるサブCPU121、ROM122及びRAM123を備えている。
サブCPU121は、画面データであるHTML文書を要求元へ提供する処理を担当する第2のCPUである。ROM122は、サブCPU121が実行するプログラム及び固定データを格納している不揮発性の記憶手段である。
RAM123は、サブCPU121が実行するプログラムを展開したり一時的なデータを格納し、各種処理を行う際の作業領域として使用する読み書き可能な記憶手段である。
なお、この実施形態において、サブ制御部120はメイン制御部110のHDD114を共有して使用するようにしているが、サブ制御部120が独自にHDDを備えてもよい。
処理回路130は、ネットワークI/F140がクライアント装置から受信するパケットを、メイン制御部110のメインCPU111とサブ制御部120のサブCPU121のいずれかに振り分ける回路である。この処理回路130も専用のCPU及びROM、RAM等のメモリを有している。
そのクライアント装置は、ウェブサーバ100にネットワーク300を介して接続されている装置であって、MFP200以外の図示しない他の装置も含まれる。
また、この処理回路130は、クライアント装置であるMFP200からステータス通知パケットを受信すると、メインCPU111へ送る処理も行う。
ネットワークI/F140は、このウェブサーバ100が、クライアント装置とネットワーク300を介して通信を行うためのインタフェースである。
次に、図4を参照してMFP200とウェブサーバ100の機能について説明する。図4は、そのウェブサーバ100とMFP200の機能ブロック図である。
MFP200は、ウェブブラウザ210、パケット生成送信部220、サービスプロバイダ230、スキャナ処理部240、プリント処理部250、FAX処理部260、およびステータス通知パケット生成送信部270の各機能を備えている。
なお、これらの各部の機能は、MFP200の図2に示したCPU201が、各種プログラムを実行して各部を制御することにより実現される。
まず、ウェブブラウザ210は、アクセス要求生成部211、識別子要否判断部212、および解析表示部213の機能を有する。
このうち、アクセス要求生成部211は、ウェブサーバ100へのアクセス要求であるHTTPリクエストを生成する。そのHTTPリクエストには、画面データを取得するための要求や、ウェブサーバ100側で行う各種アプリケーション154の実行要求などが含まれる。このアクセス要求生成部211が、アクセス要求生成手段の機能に相当する。
ここで、HTTPリクエストにより画面データの要求を行う場合は、アクセス対象である画面データの場所を示すパスをURL(Uniform Resource Locator)により特定し、その特定したパスを指定してデータを取得する要求を行う。
また、ウェブサーバ100側の後述する各種アプリケーション154の実行要求を行う場合は、例えば、アクセス対象であるプログラムのパスをURI(Uniform Resource Identifier)により特定する。そして、その特定したパスを指定してプログラムファイルに係るプログラムの実行要求を行うことが考えられる。
あるいは、HTTPリクエストにアプリケーションを実行させるためのSOAP(Simple Object Access Protocol)リクエストを含めて送信して、そのSOAPリクエストで指定したアプリケーションを実行させることもできる。
ウェブブラウザ210の識別子要否判断部212は、HTTPリクエストに係るアクセス対象を示すURL(又はURI、以下特に断らない限り同様)に基づき、識別子の要否を判断する機能を備えている。この識別子要否判断部212が、MFP200の識別子要否判断手段の機能に相当する。
解析表示部213は、HTTPリクエストの応答であるHTTPレスポンスを解析して、その解析した結果に基づいて図2に示したタッチパネル205上にその画面を表示する等の機能を有する。
具体的には、例えばHTTPレスポンスに含まれるHTML文書が画面データである場合には、そのHTML文書を解析して、タッチパネル205にその画面を表示する。
また、HTTPレスポンスに含まれるHTML文書が、SOAPレスポンスなどアプリケーションの実行結果だった場合は、そのレスポンスを処理すべきアプリケーションに渡す。
次に、パケット生成送信部220は、ウェブブラウザ210のアクセス要求生成部211が生成したHTTPリクエストを送信するためのパケットを生成して、ウェブサーバ100へ送信する機能を有する。
その際、ウェブブラウザ210の識別子要否判断部212が、識別子要と判断した場合には生成したパケットに所定の識別子を付加して、識別子否と判断した場合にはそのパケットに識別子を付加せずに、それぞれウェブサーバ100へ送信する。このパケット生成送信部220がパケット送信手段の機能に相当する。
サービスプロバイダ230は、ジョブ生成部231とジョブ実行部232の機能を有する。このサービスプロバイダ230は、ウェブサーバ100の後述するロジック部153からアプリケーションの実行要求を受け付けた場合に、その実行要求に係るアプリケーションを実行して、その結果をロジック部153に送信する。
そのため、ジョブ生成部231は、実行要求に係るアプリケーションを実行するためのジョブを生成する。
また、ジョブ実行部232は、ジョブ生成部231が生成したジョブを実行する。ここでのジョブとしては、スキャナ処理部240、プリント処理部250、およびFAX処理部260等の機能を実行するためのジョブを含む。
そのスキャナ処理部240は、図2に示したエンジン部207が有するスキャナ部によって、原稿の画像を読み取る処理を行う。
プリント処理部250は、同じくエンジン部207が有するプリンタエンジンによって、用紙等の記録媒体に画像を形成する処理を行う。
FAX処理部260は、同じくエンジン部207が有するスキャナ部とプリンタエンジンとFAX通信部とを使用して、原稿を読み取って相手先へファクシミリ送信する処理と、相手先から送信されたファクシミリデータを受信してプリント出力する処理とを行う。
なお、コピー処理は、スキャナ処理部240とプリント処理部250との連係処理によってなされる。また、これらのスキャナ処理部240、プリント処理部250及びFAX処理部260の各機能は、ジョブ実行部232に限らず、ユーザが図2に示したタッチパネル205の操作によって、直接その実行を指示することもできる。
次に、ステータス通知パケット生成送信部270は、MFP200が、自己のステータスが通信可能な動作状態であることを通知するステータス通知パケットを生成し、それをウェブサーバ100に送信する機能を有する。
MFP200の動作状態には、ウェブサーバ100に対して通信可能な動作状態(「アクティブ状態」ともいう)と通信不可能な動作状態とがある。通信可能な動作状態は、MFP200の電源が投入された通常の起動状態である。通信不可能な動作状態には、MFP200の電源ステータスが省電力状態あるいはオフ状態等の場合がある。
ステータス通知パケット生成送信部270は、通信可能な動作状態の間は、ウェブサーバ100に対してステータス通知パケットを定期的に送信する。
その定期的な送信周期としては、例えば1〜3秒程度が適当であるが、その周期については特に規定はせず、このクライアントサーバシステムの運用に応じて適宜所定の周期を設定するとよい。
このステータス通知パケット生成送信部270が、自己のステータスに関連する情報をサーバ装置であるウェブサーバ100へ通知する通知手段(通知手順)の機能を果す。
一方、ウェブサーバ100は、振り分け部131とウェブアプリケーション150及びクライアント情報管理部170の機能を有する。そのうち、振り分け部131の機能は、図3に示した処理回路130によってなされる。
また、ウェブアプリケーション150のうち、画面データ記憶部151におけるデータ読み出し機能と表示サービス部152の機能は、図3に示したサブ制御部120のサブCPU121(第2のCPU)が、対応するプログラムを実行することにより実現される。
また、ロジック部153とその各種アプリケーション154の各機能は、図3に示したメイン制御部110のメインCPU111(第1のCPU)が、対応するプログラムを実行することにより実現される。さらに、クライアント情報管理部170の主な機能、および画面データ記憶部151における高速記憶部155及び低速記憶部156のデータ書き換え機能等もメインCPU111によって実現される。
これらのうち、振り分け部131は、クライアント装置であるMFP200からパケットを受信したときに、そのパケットに所定の識別子が付加されているか否かを判断する識別子付加判断手段の機能を有する。そして、そのパケットに識別子が付加されていると判断した場合には、受信したパケットをサブCPU121に渡し、識別子が付加されていないと判断した場合には、受信したパケットをメインCPU111に渡す。
さらに、MFP200からパケット(ステータス通信パケットは除く)を受信すると、そのパケットをクライアント情報管理部170の記憶部管理部172にも送る。
なお、この振り分け部131が、ウェブサーバ100の識別子付加判断手段と振り分け手段に対応する。
ウェブアプリケーション150の画面データ記憶部151は、MFP200の図2に示したタッチパネル205に画面を表示させるための画面データを、RAM113又はHDD114に記憶する機能を備えている。
その画面データ記憶部151の高速記憶部155は、図3に示したRAM113に相当する第2の記憶部である。低速記憶部156は、図3に示したHDD114に相当する第1の記憶部である。そして、高速記憶部155は低速記憶部156より、読み書き速度(少なくとも読み出し速度)が速い。
表示サービス部152は、画面データ記憶部151が記憶した画面データのうち、振り分け部131から渡されたHTTPリクエストで指定されている画面データを取得する機能を有する。
表示サービス部152が画面データ記憶部151から画面データを取得する際、振り分け部131からRAM113へのアクセス指示を受け取らなかった場合には、低速記憶部156であるHDD114から画面データを取得する。
また、振り分け部131からRAM113へのアクセス指示を受け取った場合には、後述するクライアント管理テーブル171を参照し、その参照結果に基づいて高速記憶部155であるRAM113から画面データを取得する。
さらに、この表示サービス部152は、その取得した画面データを対応するHTTPレスポンスに含めて、HTTPリクエストの送信元のMFP200に送信する機能も有する。
ロジック部153は、振り分け部131から渡されたHTTPリクエストに基づいて各種アプリケーション154を実行し、その実行結果を対応するHTTPレスポンスとしてMFP200へ送信する機能を有する。
各種アプリケーション154としては、例えばMFP200のユーザ認証を行うための認証アプリケーションやOCRアプリケーションなどが含まれる。
次に、クライアント情報管理部170は、クライアント管理テーブル171、記憶部管理部172、アクセス頻度解析部173、およびステータス通知パケット受信部174の各機能を有する。
クライアント管理テーブル171は、図3に示した処理回路130内のNVRAM等の不揮発性メモリに保持される。また、ステータス通知パケット受信部174の機能も処理回路130によってなされる。
また、記憶部管理部172とアクセス頻度解析部173の各機能は、図3に示したメインCPU111が各機能と対応するプログラムを実行することにより実現される。
次に、図3に示した処理回路130に保持される上記クライアント管理テーブル171の一例を、図5を用いて説明する。
この図5に示すクライアント管理テーブル171は、「対象MFP」、「データ保管先アドレス」、「電源ステータス」、「アクセス頻度情報」及び「最終アクセス日時」の各管理情報の項目を有する。
対象MFPは、この実施形態ではMFP200の識別情報である。しかし、ウェブサーバ100に接続されている全てのクライアント装置を識別するための情報であり、例えばIPアドレス等の固有の情報でもよい。
データ保管先アドレスとしては、図4における高速記憶部155(図3におけるRAM113)に格納されている画面データ記憶領域のアドレスが記憶される。
電源ステータスとしては、MFP200が通常の起動状態、すなわち通信可能状態であることを示す情報として「ON」を、スリープ状態又はオフ状態等の通信不可能状態であることを示す情報として「OFF」をそれぞれ記憶する。
アクセス頻度情報は、MFP200等のクライアント装置が通信可能な期間において、ウェブサーバ100に対してアクセスを行った回数を目安とした値である。
例えば、MFP200からのステータス通知パケットを所定間隔で連続して受信した期間を「通信可能な期間」とすると、その期間中におけるそのMFP200からのアクセス数を、その通信可能な期間で除した値である。すなわち、アクセス頻度情報=(アクセス回数÷通信可能な期間)となる。
最終アクセス日時としては、MFP200等のクライアント装置からステータス通知パケットを除いたパケットによって、最後にアクセスがあった日時の情報を記憶する。
次に、図4におけるクライアント情報管理部170の記憶部管理部172について説明する。
この記憶部管理部172は、ステータス通知パケット受信部174又は振り分け部131から受け取ったパケットの内容と、アクセス頻度解析部173からのアクセス頻度情報と最終アクセス日時とに基づき、クライアント管理テーブル171の内容を更新する。
また、クライアント管理テーブル171の内容に応じて高速記憶部155又は低速記憶部156に対する画面データの読み書きの指示を出す。
アクセス頻度解析部173は、記憶部管理部172からの指示と情報に基づいてアクセス頻度情報を算出し、最終アクセス日時と共に記憶部管理部172へ送り返す。
ステータス通知パケット受信部174は、MFP200からステータス通知パケットを受信すると、それを記憶部管理部172へ送る。
以上、図1乃至図5を参照して説明したウェブサーバ100とMFP200において、特徴的な点は次のとおりである。
まず、ウェブサーバ100へのアクセスが集中した場合でもユーザビリティ(使いやすさ)が低下してしまうのを防ぐために、クライアント装置であるMFP200が特定の場合に、HTTPリクエストを送信するためのパケットに所定の識別子を付加するようにした。そして、ウェブサーバ100がそのパケッットを受信したときに、所定の識別子の有無に応じてHTTPリクエストをメインCPU111又はサブCPU121の何れかに振り分けるようにした点である。
さらに、ウェブサーバ100からMFP200に対して画面データを素早く返送できるようにするために、MFP200からの要求の可能性が高い画面データは予め読み出し速度が速いRAM113に記憶しておく。
それによって、サブCPU121がそのRAM113から画面データを読み出してMFP200に提供することによって、画面データの返送時間を短縮できるようにした点もある。
そこで、それらの点について、以下に図6〜図13も参照しながら説明する。
まず、図3に示したウェブサーバ100のメインCPU111は、図4に示したクライアント情報管理部170の機能によってMFP200の動作状況を監視し、その動作状況に応じてMFP200に提供する画面データを事前にRAM113に記憶させておく。
画面データ記憶部151の低速記憶部156には、ウェブサーバ100にアクセス可能な全てのMFP200から要求されることが予測される全ての画面データが格納される。また高速記憶部155に格納される画面データは、低速記憶部156からキャッシュ(コピー)される。
どの画面データを高速記憶部155にキャッシュするかは、記憶部管理部172が、図5に示したクライアント管理テーブル171の管理情報を参照して決定する。
図6は、図3に示したRAM113における画面データの記憶例を示す図である。
高速記憶部155であるRAM113には、それぞれメモリアドレスで指定された領域に、各MFP200(この例ではD,B,A,Fとする)の画面データが格納されている。
MFP200から一定の時間間隔で送信されるステータス通知パケットを、ステータス通知パケット受信部174が受信すると記憶部管理部172へ送る。記憶部管理部172はそれを受け取ると、そのステータス通知パケットを受け取っている間は、そのMFP200のステータスが通信可能な動作状態であると判断し、そのMFP200からのアクセスを監視する。
MFP200からのアクセス中は、アクセス頻度解析部173にそのアクセス頻度情報を算出させ、そのアクセス頻度情報によって、図5に示したクライアント管理テーブル171のアクセス頻度情報を書き換える。
また、記憶部管理部172が最後にステータス通知パケットを受け取った後、予め設定した所定時間を経過してもステータス通知パケットを受け取らなかった場合には、そのMFP200がOFFになったものと判断する。それによって、記憶部管理部172はそのMFP200が通信不可能な動作状態であることを検知して、クライアント管理テーブル171の最終アクセス日時を書き換える。
そして、記憶部管理部172はクライアント管理テーブル171の情報を更新する度毎に、RAM113に格納する画面データを更新する。
例えば、電源ステータスがONで、且つアクセス頻度情報が予め設定した値以上の対象MFPについて、記憶部管理部172がその対象MFPから受信するパケットによって要求されることが予測される画面データを優先してRAM113に格納しておく。
なお、格納条件として、アクセス頻度情報の代わりに最終アクセス日時を用いてもよい。その場合、電源ステータスがONで、且つ最終アクセス日時がある日時より新しい対象MFPについて、記憶部管理部172がその対象MFPから受信するパケットによって要求されることが予測される画面データを優先してRAM113に格納しておく。
次に、図3に示したウェブサーバ100のメインCPU111が、記憶部管理部172の機能としてクライアント管理テーブル171を更新する手順を、図7のフローチャートに沿って説明する。
メインCPU111が図7に示す処理を開始すると、まずステップS1でMFPからのステータス通知パケットの受信状態を監視する。
そのステータス通知パケットは、MFP200が起動中であって通信可能状態にあれば、定期的にウェブサーバ100宛に送られるもので、メッセージとしては、送り元のMFP200を識別できるIPアドレス等の情報のみが付加されている。
したがって、ウェブサーバ100にステータス通知パケットが、その送信周期より長い期間届かなかった場合は、そのMFP200は省電力状態にあるか電源がOFFされている状態、すなわち電源ステータスが「OFF」の状態にあると判断できる。
そこで、メインCPU111はステップS1の監視処理において、ステータス通知パケットを受信すると、その中のIPアドレスに基づいて対象MFPを識別する。また、最後にステータス通知パケット受信してから所定時間(ステータス通知パケットの送信周期より長い時間)経過していないMFPに対しては、それぞれ経過時間を計測する。
そして、ステータス通知パケットを受信して対象MFPを識別するか、最後にステータス通知パケット受信してから所定時間経過したMFPがあると、メインCPU111は次のステップS2で、電源ステータスがONか否かを判断する。
このステップS2では、ステップS1で対象MFPを識別すれば電源ステータスがONであると判断し、ステップS3へ進む。所定時間経過したMFPがあった場合は、その対象MFPの電源ステータスがOFFであると判断して、ステップS9へ進む。
ステップS9では、図3に示したRAM113にその対象MFPの画面データが記憶されていたらそれを削除して、ステップS7へ進む。ステップS7では、クライアント管理テーブル171を更新する。すなわち、電源ステータスを「OFF」にし、その他の情報を削除する。その後、ステップS8で一定時間ウエイト(Wait)を入れて、最初のステップS1の監視処理に戻る。
一方、対象MFPの電源ステータスがONで、ステップS2からステップS3へ進んだ場合は、メインCPU111は次の判断と処理を行う。すなわち、ステップS3で図5に示したクライアント管理テーブル171内の対象MFPのデータを参照し、その対象MFPに対応する電源ステータスがONになっているか否かを判断する。ONになっていれば、そのままステップS7へ進んでクライアント管理テーブルを更新し、アクセス頻度と最終アクセス日時を書き換える。その後、ステップS8で一定時間ウエイト(Wait)を入れて、最初のステップS1の監視処理に戻る。
ステップS3の判断で電源ステータスがOFFであった場合は、ONではないのでステップS4へ進み、高速記憶部であるRAM113のキャパシティ(空き容量)を確認する。そして、ステップS5でRAM113に新たに書き込める領域があるか否かを判断する。
その結果、RAM113の記憶容量が不足していて、新たに書き込める領域がないと判断した場合(Nの場合)はステップS10へ進み、RAM113に空き領域を確保するための処理を行ってからステップS6へ進む。新たに書き込める領域があると判断した場合(Yの場合)は、そのままステップS6へ進む。
ステップS10におけるRAM113に空き領域を確保するための処理については、2種類の処理を想定しており、次のどちらかの処理を実行するように事前に選択設定することができる。
(1)RAM113に格納されている画面データの中で、アクセス頻度情報が最も低いMFPの画面データを削除する。すなわち、アクセス頻度が最も低いクライアント装置に対するデータから順に削除する。
(2)RAM113に格納されている画面データの中で、最終アクセス日時が最も古いMFPの画面データを削除する。すなわち、最終アクセス日時が最も古いクライアント装置に対するデータから順に削除する。
ステップS6では、対象MFPの画面データを図3に示したHDD114からRAM113に転送してキャッシュし、ステップS7へ進む。ステップS7ではクライアント管理テーブル171を更新し、対象MFPの電源ステータスを「ON」にすると共に、データ保管先アドレス、アクセス頻度情報、及び最終アクセス日時の各情報を書き込む。
その後ステップS8で、一定時間ウエイト(Wait)を入れて、最初のステップS1の監視処理に戻る。
このようにステップS8で一定時間ウエイトを入れるのは、クライアント管理テーブル171の内容の更新作業を一定時間周期で行って、クライアント管理テーブル171の内容を常に新しい内容にするためである。
この図7の処理が、ステータスが通信可能な動作状態であると判断した対象MFP(クライアント装置)から要求されることが予測されるデータを、低速記憶部156から高速記憶部155へキャッシュする手順に相当する。
次に、MFP200による画面データの要求とウェブサーバ100による画面データの提供に関する処理について説明する。
図8は、MFP200のCPU201が、ウェブサーバ100への要求送信のトリガを検出した場合に実行する処理のフローチャートである。
なお、ウェブサーバ100への要求送信のトリガとしては、例えば、別の画面に移動する指示、各種アプリケーション機能の動作実行を指示したり、ウェブサーバ100に対して各種データの取得を要求する等のユーザによる操作が挙げられる。
その操作は、ボタンやキー等のハードウェア操作子による操作でも、図2に示したタッチパネル205等によるGUI(Graphical User Interface)に対する操作であってもよい。
さらに、上記トリガには、電源投入時にウェブサーバ100に対して自動的に初期画面の画面データを要求する場合のような、自動的な要求送信のトリガも含めてよい。例えば、「電源投入」あるいは「初期化処理が所定の段階まで進んだこと」がトリガとなる。
CPU201は、上述のトリガを検出すると図8に示す処理を開始する。
そして、まずステップS11で、検出したトリガに応じて生成する要求に記載するアクセス対象のリソースのURLを特定する。
例えば、操作子やGUIの操作に応じて要求を生成する場合、その操作子やGUIの機能を示すデータに、アクセス対象のURLが含まれているか関連付けられていることが考えられる。
そして、ステップS12で、ステップS11で特定したURLが予め登録されたURLか否かを判断する。この処理がクライアント装置の識別子要否判断手順に相当する。
ここでは、CPU201は、図9に示すURLテーブルを参照してステップS12の判断を行う。このURLテーブルは、ウェブサーバ100においてサブCPU121に処理を担当させる要求に係るURLを登録したものであり、クライアントサーバシステムの管理者等が予めMFP200のHDD204等に記憶させておく。
この実施形態においては、タッチパネル205に表示させる画面データを取得する際のアクセス先URLを、全てこのURLテーブルに登録してある。
従って、画面データを取得するための処理(ウェブサーバ100から見れば画面データを提供するための処理)は、サブCPU121が担当することになる。
ここで、CPU201が図8のステップS12において、ステップS11で特定したURLが予め登録されたURLである(Y)と判断すると、ステップS13へ進む。そして、ステップS11で特定したURLで特定されるリソースへのアクセスを要求するHTTPリクエストを生成する。
その後CPU201は、ステップS14で、ステップS13で生成したHTTPリクエストを送信するためのIPパケットを生成し、そのIPヘッダにフラグを立てる。このフラグを立てる処理が識別子の付加に該当する。そして、ステップS17へ進んで、生成したIPパケットを送信して処理を終了する。
一方、CPU201がステップS12の判断において、ステップS11で特定したURLが予め登録されたURLでない(N)と判断すると、ステップ15へ進む。ここでもステップ13と同様に、ステップS11で特定したURLで特定されるリソースへのアクセスを要求するHTTPリクエストを生成する。
そして、ステップS16へ進み、ステップS15で生成したHTTPリクエストを送信するためのIPパケットを生成し、そのIPヘッダにフラグを立てない。
このようにIPヘッダにフラグを立てない場合、識別子の付与は行われないことになる。その後、ステップS17へ進んで、生成したIPパケットを送信して処理を終了する。なお、ステップS17におけるIPパケットの送信先は、ステップS11で特定したURLのウェブサーバ100となる。
この図8におけるステップS13とステップS14の処理が、クライアント装置のアクセス要求生成手順に相当し、ステップS14,16,17の処理がクライアント装置のパケット送信手順に相当する。
また、図8のステップS12の処理は、MFP200の図4に示したウェブブラウザ210における識別子要否判断部212の機能に、ステップS13及び15の処理は、アクセス要求生成部211の機能にそれぞれ相当する。さらに、ステップS14,S16,S17の処理は、パケット生成送信部220の機能に相当する。
なお、この実施形態では、HTTPリクエストの送信は、TCP/IP(Transmission
Control Protocol/Internet Protocol)及びイーサネット(登録商標)のプロトコルを用いて行う。この場合、CPU201は、まずHTTPリクエストをボディとし、これにTCPのヘッダ及びフッタを付加してTCPパケットを作成する。
次に、CPU201はそのTCPパケットをボディとし、IPのヘッダ及びフッタを付加してIPパケットを作成する。さらに、CPU201は、そのIPパケットをデータフィールドに配置し、イーサネットのヘッダ及びフッタを付加してイーサネットフレームを作成し、このイーサネットフレームをネットワークI/F208から送信する。
図8におけるステップS14及びS16は、これらのうちIPパケットの作成までの処理と対応し、ステップS17はイーサネットフレームの作成及び送信の処理と対応する。
この点について、図10を参照しながらさらに説明する。
図10は、MFP200が送信するイーサネットフレームの先頭部を示す図である。
この図10に示すのは、図8のステップS17でMFP200が送信するイーサネットフレームのうち、イーサネットヘッダ及びフレームのデータフィールドに配置したIPパケットの一部である。
宛先MACアドレスと送信元MACアドレスとタイプとがイーサネットヘッダであり、それに続く部分がIPパケットを配置したデータフィールドである。その先頭にはIPヘッダがある。
IPヘッダには、IPパケットの宛先IPアドレスと送信元IPアドレスが含まれるが、それ以外に未使用領域がある。この実施形態では、この未使用領域に1ビットのフラグエリアを設けている。
図8のステップS14でフラグを立てたり、ステップS16でフラグを立てなかったりするのは、このフラグエリアに設けたフラグに関してである。
この実施形態において、CPU201がIPヘッダのフラグエリアを「1」にすることが、ステップS14におけるIPヘッダにフラグを立てることであり、IPヘッダにフラグを立てることが識別子を付加することに相当する。
IPヘッダには、送信元のMFP200のIPアドレスである送信元IPアドレスと、宛先であるウェブサーバ100のIPアドレスである宛先IPアドレスとが含まれる。
次に、ウェブサーバ100の図3に示したネットワークI/F140がイーサネットフレームを受信したときの処理について、図11を参照しながら説明する。
図11は、ネットワークI/F140がイーサネットフレームを受信したときに、ウェブサーバ100の処理回路130とメインCPU111及びサブCPU121が、それぞれ連係して実行する処理のフローチャートである。なお、図中の破線は処理の実行主体の区別を示している。
サーバ装置であるウェブサーバ100において、ネットワークI/F140がイーサネットフレームを受信すると、まず処理回路130が、内蔵のCPUによって図11に示す処理を開始する。
なお、以下の説明では、受信したイーサネットフレームのデータフィールドには、IPパケットが記載されているものとする。
処理回路130は、まずステップS21で受信したイーサネットフレームを解析し、そのデータフィールドからIPパケットを取り出す。これによって、ウェブサーバ100はIPパケットを受信したことを認識できる。
次に、処理回路130はステップS22で、取り出したIPパケットのIPヘッダを参照し、図10で説明したフラグエリアにフラグが立っているか否かを判断する。この処理が、受信したパケットに識別子が付加されているか否かを判断する識別子付加判断手順に相当する。
そして、ステップS22でフラグが立っている(識別子が付加されている)と判断した場合は、ステップS23に進んでサブCPU121にIPパケットを渡す。ステップS22でフラグが立っていない(識別子が付加されていない)と判断した場合は、ステップS27に進んでメインCPU111にIPパケットを渡す。
この処理が、図4における振り分け部131の機能、およびこの発明によるクライアントサーバシステムの制御方法における振り分け手順に相当する。
サブCPU121がIPパケットを受け取ると、サブCPU121はステップS24でその受け取ったIPパケットを解析し、そのボディ部に含まれるTCPパケットに含まれるHTTPリクエストを取得する。
そして、ステップS25でそのHTTPリクエストにより要求された処理を実行し、ステップS26でその処理結果をHTTPレスポンスとしてHTTPリクエストの送信元へ送信して、処理を終了する。
一方、メインCPU111がIPパケットを受け取ると、メインCPU111はステップS28乃至S30で、上述したサブCPU121による処理と同様の処理を行う。
すなわち、受け取ったIPパケットを解析し、そのボディ部に含まれるTCPパケットに含まれるHTTPリクエストを取得する(S28)。そして、そのHTTPリクエストにより要求された処理を実行し(S29)、その処理結果をHTTPレスポンスとしてHTTPリクエストの送信元へ送信して(S30)、処理を終了する。
ところで、前述したようにこの実施形態においては、図2のタッチパネル205に表示させる画面データを取得する際のアクセス先URLを、全て図9に示したURLテーブルに登録してある。したがって、図8のフローチャート及び図9のURLテーブルによれば、IPパケットのフラグエリアにフラグが立っているのは、画面データの取得を要求するHTTPリクエストを含むIPパケットとなる。
そして、そのフラグエリアにフラグが立っているIPパケットは、サブCPU121に渡される。それによって、サブCPU121は図11におけるステップS25で、HTTPリクエストにより要求された処理として、HTTPリクエストで指定されているURLが示す画面データを図3のRAM113から取得する。これが、図4における表示サービス部152の機能に相当する。
その後、ステップS26で、その取得した画面データを含むHTTPレスポンスをMFP200に送信する。
一方、フラグエリアにフラグが立っていないIPパケットは、画面データの取得を要求する以外のHTTPリクエストを含むIPパケットである。このようなIPパケットはメインCPU111に渡される。
それによって、メインCPU111は図11におけるステップS29で、HTTPリクエストにより要求された処理として、図4におけるがロジック部153等の機能に相当する処理を実行し、その実行結果を含むHTTPレスポンスをMFP200に送信する。
次に、図12によって図11における処理回路130によるステップS23の処理の詳細を説明する。
図3に示した処理回路130は、図11におけるステップS23で図12に示す処理を実行する。
まず、ステップS231でMFP200から受信したパケットからIPパケットを抽出し、そのIPパケットからMFPのIPアドレスを取得する。
処理回路130は次いで、ステップS232でMFPのIPアドレスから対象MFPを識別する。さらに、ステップS233でクライアント管理テーブルを参照し、対象MFPに対応するデータ保管先アドレスを参照する。
そして、ステップS234で画面データはRAM113にあるか否かを判断する。クライアント管理テーブル171は図5に示した構成になっているので、対象MFPに対応するデータ保管先アドレスにアドレスが保管されていれば、RAM113のそのアドレスの領域に画面データが保管されていると判断できる。また、対象MFPに対応するデータ保管先アドレスにアドレスが保管されていなければ、画面データはRAM113にはなく、HDD114に保管されていると判断できる。
なお、図7によって前述したように、ウェブサーバ100と通信可能な状態にあるMFP200に要求されることが予測される画面データは、殆どRAM113に保持されている。
そこで処理回路130は、ステップS234で画面データがRAM113にあるか否かを判断するが、殆どの場合はあると判断してステップS235へ進む。そして、サブCPU121へIPパケットを渡すと共に、RAM113へのアクセス指示を送ってこの処理を終了する。
しかし、処理回路130がステップS234で、画面データがRAM113にないと判断した場合は、ステップS236へ進んでサブCPU121へIPパケットを渡すだけで、この処理を終了する。
それによって、処理回路130からIPパケットを受け取ったサブCPU121は、図11におけるステップS25の処理に際して、処理回路130からRAM113へのアクセス指示があったか否かを判断する。
そして、RAM113へのアクセス指示があった場合は、HTTPリクエストによって要求された画面データをRAM113から読み出す処理を実行する。
サブCPU121がRAM113から画面データを読み出すときには、その読み出し先のアドレスとして、図10に示したクライアント管理テーブル171の対象MFPに対応するデータ保管先アドレスを使用する。
サブCPU121がRAM113へのアクセス指示がなかったと判断した場合は、HTTPリクエストによって要求された画面データをHDD114から読み出す処理を実行する。
次に、ユーザが図2に示したMFP200のタッチパネル205に表示されたGUI画面上で、他の画面に遷移するボタンを操作した場合を例にとって、図8から図12に示した処理についてより具体的に説明する。
まず、MFP200のCPU201が、タッチパネル205に表示中のGUI画面のデータ中で、操作されたボタンのデータに対応付けられているURLを特定する(図8のステップS11)。
この特定したURLが例えば「http://www.webserver.com/lcdpanel/lcdpanel1.html」だった場合は、図9に示したURLテーブルに登録されているURLであるので、図8のステップS12でYESになる。
それによってCPU201は、上記URLで特定されるリソースへのアクセスを要求するHTTPリクエストを送信するためのパケットを生成し、IPヘッダにフラグを立ててウェブサーバ100へ送信する。(図8のステップS13,S14及びS17)。
なお、HTTPリクエストにおいて、上記URLは、ホスト「www.webserver.com」とパス「/lcdpanel/lcdpanel1.html」に分けて記載される。他の例においても同様である。
一方、図2に示したウェブサーバ100が、このHTTPリクエストを含むイーサネットフレームを受信すると、その処理回路130はIPパケットを解析し、そのIPパケットのフラグエリアにフラグが立っていると判断する。そして、サブCPU121にIPパケットを渡す(図11のステップS22,S23)。
このとき、処理回路130は、図5に示したクライアント管理テーブル171の対象MFPに対応するデータ保管先アドレスを参照する。そして、そこにアドレスが保管されていれば、RAM113に必要な画面データが保持されているので、サブCPU121にRAM113へのアクセス指示を送る(図12のステップS233〜S235)。
サブCPU121にIPパケットが渡され、RAM113へのアクセス指示が送られると、そのサブCPU121は、受け取ったIPパケットを解析する。そして、HTTPリクエストで指定されているパスが示す画面データ(ここではHTML文書)を、RAM113から高速に読み出して取得できる(図11のステップS24,S25)。そして、その取得した画面データを含むHTTPレスポンスをMFP200に送信する(ステップS26)。
それを受信したMFP200のCPU201は、図4に示したウェブブラウザ210の解析表示部213の機能により、受信したHTTPレスポンスに含まれる画面データを解析して、その内容に応じた画面を直ちにタッチパネル205に表示させる。
これにより、ユーザは遷移先の画面をタッチパネル205上で殆ど待ち時間なく確認して、操作できる状態となる。
次に、ユーザがMFP200のタッチパネル205に表示されたGUI画面上で、各種アプリケーション154に含まれる例えばOCR処理アプリケーションの実行を指示するボタンを操作した場合について説明する。
この場合も、まずMFP200のCPU201が、表示中のGUI画面のデータ中で、操作されたボタンのデータに対応付けられているURLを特定する(図8のステップS11)。その特定したURLが、例えば「http://www.webserver.com/program/ocr.cgi」だった場合は、図9に示したURLテーブルに登録されていないURLであるから、図8のステップS12でNOになる。
そこで、MFP200のCPU201は、上記URLで特定されるリソースへのアクセスを要求するHTTPリクエストを送信するためのパケットを生成し、IPヘッダにフラグを立てずにウェブサーバ100へ送信する。(図8のステップS15,S16及びSS17)。
それを受信したウェブサーバ100の処理回路130は、IPパケットの解析においてフラグが立っていないと判断して、メインCPU111にそのIPパケットを渡す(図11のS22,S27)。
IPパケットが渡されたメインCPU111は、受け取ったIPパケットを解析し、HTTPリクエストで指定されているパスの「/program/ocr.cgi」が示すプログラムを実行する。そして、必要な画面データ等をHDD114から取得する(図11のステップS28,29)。その実行結果を含むHTTPレスポンスを、MFP200に送信する(ステップS30)。
それを受信したMFP200のCPU201は、ウェブブラウザ210の解析表示部213の機能により、受信したHTTPレスポンスに含まれる画面データを解析して、その内容に応じた画面をタッチパネル205に表示させる。これにより、MFP200に要求したOCRの処理の実行結果をタッチパネル205上で確認することができる。この場合、OCR処理の実行結果が表示されるまでに多少時間がかかっても、ユーザが故障などの不安を持ったり、待つことによるストレスを生じることは殆どない。
以上、図5と図8乃至図12を参照しながら説明した処理によれば、MFP200は、HTTPリクエストを送信する場合に、そのアクセス対象のアドレスがURLテーブルに登録されているかどうかを判断する。その結果、登録されていればHTTPリクエストを送信するためのパケット(IPパケット)にフラグを立てて送信する。
そして、ウェブサーバ100は、受信したIPパケットにフラグが立っていればサブCPU121に、立っていなければメインCPU111にそのIPパケットを渡して処理させる。
このことは、システムの管理者(又はユーザ)から見れば、ウェブサーバ100に対する要求のうち、URLテーブルに登録しておいたURLに係る要求はサブCPU121で、それ以外の要求はメインCPU111で処理させることができるといえる。
従って、多数の要求がウェブサーバ100に殺到し、メインCPU111の処理リソースがその処理に取られてしまっているような状態であっても、URLテーブルに登録しておいたURLに係る要求は、サブCPU121によって常に迅速に処理することができる。
このため、ユーザが常に速い処理結果の確認を期待するような一部の要求に係るURLを、予めURLテーブルに登録しておけばよい。そうすれば、ウェブサーバ100に他の要求が殺到している場合でも、URLテーブルに登録されている要求については、常に迅速に処理結果を得ることができる。
したがって、URLテーブルに例えば画面データのURLを全て登録しておくことにより、多数の装置からウェブサーバ100に要求が集中しているような場合でも、MFP200において画面表示だけは素早く行うことができる。
これにより、ウェブサーバ100へのアクセスが集中した場合でも、ユーザビリティが低下してしまうのを防ぐことができる。
特に、ウェブサーバ100に対するMFPの接続台数が多くなるほど、ウェブサーバ100の処理負荷が増加するため、この実施形態に係る発明の効果は大きくなる。
なお、この実施形態では、URLテーブルに画面データのURLを登録するようにしたが、別のデータのURLを登録して、サブCPU121に別のデータに関する処理を担当させるようにしてもよいことは勿論である。
また、この実施形態においては、HTTPリクエストを送信するためのIPパケットのIPヘッダにフラグを立てるようにしている。
これによって、ウェブサーバ100の処理回路130は、OSI参照モデルの第3層であるネットワーク層のIPヘッダに設けられたフラグエリアを参照するだけで、フラグが立っているか否かを判断することができる。
従って、フラグの確認に、上位層のプロトコル(例えば第7層のHTTPに係るHTTPリクエスト)に係る処理は不要であり、最低限の処理でフラグの有無を確認できる。
そのため、ウェブサーバ100において、MFP200から受信したパケットを複数のCPUに分配する処理の負荷を低く抑えることができる。
しかし、TCPパケット等の、より上位のプロトコルに係るデータにフラグを設けることも妨げられない。
なお、イーサネットフレームのヘッダにフラグを記載することも考えられる。しかし、イーサネットフレームのヘッダは、複数のネットワークをまたいでIPパケットが伝送される場合、ルータにおいて付け直されてしまう。
従って、HTTPリクエストの送信先までフラグを届けるためには、ルータにフラグ管理機能を設ける必要が生じてしまう。このため、このような対応が不要なIPヘッダにフラグエリアを設けるのがより好ましいといえる。
また、上述した実施形態においては、メインCPU111又はサブCPU121にIPパケットが供給される前に、メインCPU111及びサブCPU121の何れとも異なる処理回路130によって、IPパケットを振り分けるようにしている。
そのため、例えばメインCPU111のリソースが、受信した要求に係る処理の実行に大幅に割かれているような状況でも、それと無関係にIPパケットの振り分けは迅速に行うことができる。
従って、メインCPU111の処理負荷が大きい場合に、IPパケットの振り分けが滞り、結果としてサブCPU121が担当する処理のレスポンスまで遅延してしまうような不都合を避けることができる。
以上でこの実施形態の説明を終了するが、ウェブサーバ100等のサーバ装置及びMFP200等のクライアント装置の具体的な構成や処理の内容等は、上述の実施形態で説明したものに限らず、種々の変更や追加あるいは削除等が可能なことは勿論である。
例えば、図9に示したURLテーブルに代えて図13に示すようなURLテーブルによっても、MFP200のCPU201がIPパケットにフラグを立てるか否か、すなわち識別子の要否を判断することができる。
図9に示したURLテーブルでは、サブCPU121に処理を担当させる要求に係るURLのみを登録するようにした。
しかし、図13に示すURLテーブルでは、MFP200からウェブサーバ100へ要求を送信する際のアクセス先として考えられるURLを全て登録している。
そして、クライアントサーバシステムの管理者等はサブCPU121に処理を担当させたい要求に係るURLについてはフラグを「1」に設定し、メインCPU111に処理を担当させたい要求に係るURLについてはフラグを「0」に設定する。併せて、その各URLと対応する処理内容も記録することができる。
MFP200のCPU201は、図8のステップS12の処理において、図13のURLテーブルを参照して、特定したURLに対応付けられているフラグが「1」か「0」かを判断する。
その判断結果に応じて、生成するIPパケットにおけるIPヘッダのフラグエリアに、フラグを立てるか立てないかを決定することができる。
このようにしても、上述した実施形態の場合と同様な効果を得ることができる。
また、上述した実施形態においては、クライアント装置である各MFP200からのアクセス先のサーバ装置として、1台のウェブサーバ100しか示していない。
しかし、ネットワークに接続された各クライアント装置から、複数のサーバ装置にアクセスすることができるようにしてもよい。
そのうち一部のクライアント装置が、上述したウェブサーバ100と同様なパケットの振り分け機能を有していても、全てのクライアント装置が振り分け機能を有していてもよい。その場合に、振り分け機能のないサーバ装置に対して、フラグを立てたパケットを送信してしまっても、特に問題はない。それは、受信したサーバ装置において、単にそのフラグが読み捨てられるだけだからである。
また、クライアント装置における上述した実施形態の図8と同様な処理において、ステップS12に相当する判断の前に、HTTPリクエストの送信先のサーバ装置を特定する処理を行ってもよい。そして、前述したウェブサーバ100のように、IPパケット振り分け機能を備えたサーバ装置が送信先である場合にのみ、URLテーブルを参照してフラグを立てることの要否を判断するようにしてもよい。
それ以外の場合は、フラグを立てても意味がないため、常にフラグは立てないと判断すればよい。
このようにすれば、URLテーブルが大きい場合には特に、URLテーブルの検索による処理負荷を低減することができる。
また、前述した実施形態においては、アクセス要求に係る通信プロトコルとしてHTTPを用いたが、HTTP以外の他の通信プロトコルを用いてもよい。
さらに、前述した実施形態においては、クライアントサーバシステムを構成するウェブサーバ100と複数台のMFP200とが、ネットワーク300を介して接続され、物理的に別々な構成になっていた。
しかし、ウェブサーバ100を特定のMFP200あるいは他のクライアント装置と物理的に一体に構成してもよい。
また、前述した実施形態においては、クライアント装置としてMFP200を例にとって説明した。
しかし、MFP200のウェブブラウザ210とパケット生成送信部220の機能を備え、かつその機能を発揮するためのハードウェアを備えた他の種類の画像形成装置、あるいはパーソナルコンピュータ(PC)等の情報処理装置を使用してもよい。その他、ウェブクライアント機能を備えた装置であれば、いかなる装置でもクライアント装置として使用可能である。
また、この発明によるクライアントサーバシステムの制御方法は、前述したクライアントサーバシステムの実施形態において、各フローチャートによって説明したような各手順を実行することによって実施できる。
さらに、この発明によるプログラムは、コンピュータを、前述したMFP200のようなクライアント装置から、ネットワークを介してアクセス可能なサーバ装置として機能させるためのプログラムである。
そして、コンピュータに、例えば前述した図7、図11及び図12によって説明した、ウエブサーバ100における処理回路130及びメインCPU111とサブCPU121による各処理手順を実行させるプログラムである。
このようなプログラムは、はじめからコンピュータに備えるROMあるいはHDD等の記憶手段(メモリ)に格納しておいてもよい。
また、可搬の記録媒体であるCD−ROMあるいはフレキシブルディスク、SRAM、EEPROM、メモリカード等の不揮発性記録媒体(メモリ)に記録して提供することもできる。
そのメモリに記録されたプログラムをコンピュータにインストールしてCPUに実行させるか、CPUにそのメモリからこのプログラムを読み出して実行させることにより、ウェブサーバ100又はMFP200の各機能を実行させることができる。
これらの制御方法及びプログラムにおける各処理手順も、前述した実施形態で説明したものに限るものではない。
100:ウェブサーバ(サーバ装置) 110:メイン制御部
111:メインCPU(第1のCPU) 112:ROM
113:RAM(第2の記憶部) 114:HDD(第1の記憶部)
120:サブ制御部 121:サブCPU(第2のCPU) 122:ROM
123:RAM 130:処理回路 131:振り分け部
140:ネットワークI/F 150:ウェブアプリケーション
151:画面データ記憶部 152:表示サービス部 153:ロジック部
154:各種アプリケーション 155:高速記憶部(第2の記憶部)
156:低速記憶部(第1の記憶部) 170:クライアント情報管理部
171:クライアント管理テーブル 172:記憶部管理部
173:アクセス頻度解析部 174:ステータス通知パケット受信部
200:MFP(クライアント装置) 201:MFPのCPU 202:ROM
203:RAM 204:HDD 205:タッチパネル
206:エンジン部I/F 207:エンジン部 208:ネットワークI/F
210:ウェブブラウザ 211:アクセス要求生成部
212:識別子要否判断部 213:解析表示部 220:パケット生成送信部
230:サービスプロバイダ 231:ジョブ生成部 232:ジョブ実行部
240:スキャナ処理部 250:プリント処理部 260:FAX処理部
270:ステータス通知パケット生成送信部 300:ネットワーク
特開2011−65593号公報

Claims (9)

  1. クライアント装置と、該クライアント装置からネットワークを介してアクセス可能なサーバ装置とを備えたクライアントサーバシステムであって、
    前記クライアント装置が、
    前記サーバ装置へのアクセス要求を生成するアクセス要求生成手段と、
    該アクセス要求生成手段が生成するアクセス要求に係るアクセス対象のアドレスに基づき、識別子の要否を判断する識別子要否判断手段と、
    該識別子要否判断手段が識別子要と判断した場合には、前記アクセス要求生成手段が生成したアクセス要求を送信するためのパケットに前記識別子を付加して、識別子否と判断した場合には該パケットに前記識別子を付加せずに、それぞれ前記サーバ装置へ送信するパケット送信手段と、
    自己のステータスに関連する情報を前記サーバ装置へ通知する通知手段とを有し、
    前記サーバ装置が、
    第1のCPUと、
    第2のCPUと、
    前記クライアント装置から前記パケットを受信した場合に、該パケットに前記識別子が付加されているか否かを判断する識別子付加判断手段と、
    前記クライアント装置から受信したパケットを、前記識別子付加判断手段が前記識別子が付加されていると判断した場合には前記第2のCPUに渡し、前記識別子が付加されていないと判断した場合には前記第1のCPUに渡す振り分け手段と、
    当該サーバ装置にアクセス可能な複数の前記クライアント装置からそれぞれ要求されることが予測されるデータを全て格納する不揮発性の第1の記憶部と、
    該第1の記憶部より読み出し速度が速い第2の記憶部と、
    前記クライアント装置の前記通知手段から通知される前記情報に基づいて、ステータスが通信可能な動作状態であると判断したクライアント装置から要求されることが予測されるデータを、前記第1の記憶部から前記第2の記憶部へキャッシュするクライアント情報管理手段とを有することを特徴とするクライアントサーバシステム。
  2. 前記クライアント装置の前記通知手段は、自己のステータスが前記サーバ装置と通信可能な動作状態である場合には、前記サーバ装置に定期的に通知パケットを送信する手段であり、
    前記サーバ装置の前記クライアント情報管理手段は、前記クライアント装置が通信可能な動作状態か否かを、前記クライアント装置から定期的に送信される前記通知パケットに基づいて判断することを特徴とする請求項1に記載のクライアントサーバシステム。
  3. 前記サーバ装置の前記クライアント情報管理手段は、前記第2の記憶部にキャッシュしたデータを前記クライアント装置ごとに管理するためのクライアント管理テーブルと、該クライアント管理テーブルの管理情報を更新する手段とを有することを特徴とする請求項1又は2に記載のクライアントサーバシステム。
  4. 前記サーバ装置の前記クライアント情報管理手段は、アクセス要求があった各クライアント装置ごとに、そのアクセス頻度の情報を前記クライアント管理テーブルに保持させ、前記第2の記憶部の記憶容量が不足した場合には、該第2の記憶部にキャッシュされているデータを、前記管理テーブルを参照してアクセス頻度が最も低いクライアント装置に対するデータから順に削除することを特徴とする請求項3に記載のクライアントサーバシステム。
  5. 前記サーバ装置の前記クライアント情報管理手段は、アクセス要求があった各クライアント装置ごとに、その最終アクセス日時の情報を前記クライアント管理テーブルに保持させ、前記第2の記憶部の記憶容量が不足した場合には、該第2の記憶部にキャッシュされているデータを、前記管理テーブルを参照して最終アクセス日時が最も古いクライアント装置に対するデータから順に削除することを特徴とする請求項3に記載のクライアントサーバシステム。
  6. ネットワークを介してサーバ装置にアクセス可能なクライアント装置であって、
    前記サーバ装置へのアクセス要求を生成するアクセス要求生成手段と、
    該アクセス要求生成手段が生成するアクセス要求に係るアクセス対象のアドレスに基づき、識別子の要否を判断する識別子要否判断手段と、
    該識別子要否判断手段が識別子要と判断した場合には、前記アクセス要求生成手段が生成したアクセス要求を送信するためのパケットに前記識別子を付加して、識別子否と判断した場合には該パケットに前記識別子を付加させずに、それぞれ前記サーバ装置へ送信するパケット送信手段と、
    自己のステータスに関連する情報を前記サーバ装置へ通知する通知手段とを有することを特徴とするクライアント装置。
  7. クライアント装置からネットワークを介してアクセス可能なサーバ装置であって、
    第1のCPUと、
    第2のCPUと、
    前記クライアント装置からパケットを受信した場合に、該パケットに識別子が付加されているか否かを判断する識別子付加判断手段と、
    前記クライアント装置から受信したパケットを、前記識別子付加判断手段が前記識別子が付加されていると判断した場合には前記第2のCPUに渡し、前記識別子が付加されていないと判断した場合には前記第1のCPUに渡す振り分け手段と、
    当該サーバ装置にアクセス可能な複数のクライアント装置からそれぞれ要求されることが予測されるデータを全て格納する不揮発性の第1の記憶部と、
    該第1の記憶部より読み出し速度が速い第2の記憶部と、
    前記クライアント装置から通知されるステータスに関連する情報に基づいて、ステータスが通信可能な動作状態であると判断したクライアント装置から要求されることが予測されるデータを、前記第1の記憶部から前記第2の記憶部へキャッシュするクライアント情報管理手段とを有することを特徴とするサーバ装置。
  8. クライアント装置と、該クライアント装置からネットワークを介してアクセス可能なサーバ装置とを備えたクライアントサーバシステムの制御方法であって、
    前記クライアント装置が、
    前記サーバ装置へのアクセス要求を生成するアクセス要求生成手順と、
    該アクセス要求生成手順で生成するアクセス要求に係るアクセス対象のアドレスに基づき、識別子の要否を判断する識別子要否判断手順と、
    該識別子要否判断手順で識別子要と判断した場合には、前記アクセス要求生成手順で生成したアクセス要求を送信するためのパケットに前記識別子を付加して、識別子否と判断した場合には該パケットに前記識別子を付加させずに、それぞれ前記サーバ装置へ送信するパケット送信手順と、
    自己のステータスに関連する情報を前記サーバ装置へ通知する通知手順とを実行し、
    前記サーバ装置が、
    前記クライアント装置から前記パケットを受信した場合に、該パケットに前記識別子が付加されているか否かを判断する識別子付加判断手順と、
    前記クライアント装置から受信したパケットを、前記識別子付加判断手順で前記識別子が付加されていると判断した場合には第2のCPUに渡し、前記識別子が付加されていないと判断した場合には第1のCPUに渡す振り分け手順と、
    当該サーバ装置にアクセス可能な複数のクライアント装置からそれぞれ要求されることが予測されるデータを全て不揮発性の第1の記憶部に格納しておく手順と、
    前記クライアント装置から通知されるステータスに関連する情報に基づいて、ステータスが通信可能な動作状態であると判断したクライアント装置から要求されることが予測されるデータを、前記第1の記憶部から該第1の記憶部より読み出し速度が速い第2の記憶部へキャッシュする手順とを実行する
    ことを特徴とするクライアントサーバシステムの制御方法。
  9. コンピュータを、クライアント装置からネットワークを介してアクセス可能なサーバ装置として機能させるためのプログラムであって、
    該コンピュータに、
    前記クライアント装置からパケットを受信した場合に該パケットに識別子が付加されているか否かを判断する識別子付加判断手順と、
    前記クライアント装置から受信したパケットを、前記識別子付加判断手順で前記識別子が付加されていると判断した場合には第2のCPUに渡し、前記識別子が付加されていないと判断した場合には第1のCPUに渡す振り分け手順と、
    当該サーバ装置にアクセス可能な複数のクライアント装置からそれぞれ要求されることが予測されるデータを全て不揮発性の第1の記憶部に格納しておく手順と、
    前記クライアント装置から通知されるステータスに関連する情報に基づいて、ステータスが通信可能な動作状態であると判断したクライアント装置から要求されることが予測されるデータを、前記第1の記憶部から該第1の記憶部より読み出し速度が速い第2の記憶部へキャッシュする手順とを実行させるためのプログラム。
JP2012274603A 2012-12-17 2012-12-17 クライアントサーバシステム、クライアント装置、サーバ装置、クライアントサーバシステムの制御方法及びプログラム Pending JP2014119960A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012274603A JP2014119960A (ja) 2012-12-17 2012-12-17 クライアントサーバシステム、クライアント装置、サーバ装置、クライアントサーバシステムの制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012274603A JP2014119960A (ja) 2012-12-17 2012-12-17 クライアントサーバシステム、クライアント装置、サーバ装置、クライアントサーバシステムの制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2014119960A true JP2014119960A (ja) 2014-06-30

Family

ID=51174744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012274603A Pending JP2014119960A (ja) 2012-12-17 2012-12-17 クライアントサーバシステム、クライアント装置、サーバ装置、クライアントサーバシステムの制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2014119960A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021069040A (ja) * 2019-10-25 2021-04-30 株式会社リコー 電子制御装置、電子制御装置のメインプロセッサによる制御方法および電子制御装置のメインプロセッサが実行する制御プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021069040A (ja) * 2019-10-25 2021-04-30 株式会社リコー 電子制御装置、電子制御装置のメインプロセッサによる制御方法および電子制御装置のメインプロセッサが実行する制御プログラム
JP7298442B2 (ja) 2019-10-25 2023-06-27 株式会社リコー 電子制御装置、電子制御装置のメインプロセッサによる制御方法および電子制御装置のメインプロセッサが実行する制御プログラム

Similar Documents

Publication Publication Date Title
JP4596384B2 (ja) クライアントサーバシステム、サーバ、サーバ組み込み機器及びプログラム
US9811294B2 (en) Relay device, image forming apparatus, relay method, and non-transitory computer-readable recording medium encoded with relay program
JP2000112691A (ja) ネットワーク印刷システム、ネットワークプリンタ及びネットワーク印刷方法
US8612562B2 (en) Network system capable of providing proxy web service and proxy response method therefor, network device, information processing device, and control methods therefor, and storage medium
JP2013161122A (ja) データ処理装置、情報処理方法、及びプログラム
KR20090010804A (ko) 사용자별 인쇄 환경 설정에 따른 이메일 인쇄 방법 및 장치
JP5863388B2 (ja) 情報処理システム及びその制御方法、並びにプログラム
JP5537160B2 (ja) イベント代行通知装置及びその制御方法とそのプログラム
JP5817766B2 (ja) 情報処理装置、通信システム及びプログラム
US8718058B2 (en) Device search apparatus and method, and device search server, device search system, and storage medium
JP2011008488A (ja) 画像形成装置、情報処理方法、及びプログラム
JP2014119960A (ja) クライアントサーバシステム、クライアント装置、サーバ装置、クライアントサーバシステムの制御方法及びプログラム
US11240877B2 (en) Non-transitory computer-readable storage medium, terminal management apparatus, and terminal management system
JP2020123798A (ja) 情報処理装置、無線端末及びプログラム
JP4606910B2 (ja) ユーティリティプログラム管理方法及び画像処理システム
JP2014164376A (ja) 画像形成装置、その制御方法、および、プログラム
JP2004341732A (ja) 処理装置、データ処理方法、プログラムおよび記憶媒体
JP2013098589A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP5453150B2 (ja) 画像形成システムおよび画像形成装置
JP2018148419A (ja) 情報処理システムおよびデータ送受信方法
JP5315939B2 (ja) 画像形成装置、情報処理システム、情報処理方法、及びプログラム
JP2013225292A (ja) クライアントサーバシステム、クライアント装置、サーバ装置、制御方法及びプログラム
JP2011209821A (ja) 画像形成システム、認証方法、および画像形成装置
JP6214733B2 (ja) データ処理装置
JP2006065792A (ja) 画像形成仲介機構および画像形成仲介方法