以下、本発明の実施の形態を図面に基づいて説明する。
本発明の一実施例に係る情報処理装置は、プリンタ、FAX、コピー等の複数の異なる画像形成機能の少なくとも1つを有すると共に、複数のWebアプリケーションによって画像形成に関する情報を提供する。本実施例において、説明の便宜上、主に、印刷処理又は印刷を行うプロッタに関する情報が提供される場合について説明する。
図1は、本発明の一実施例に係る情報処理装置のハードウェア構成を示すブロック図である。図1において、情報処理装置1100は、コンピュータによって制御される装置であって、CPU(中央処理装置)11と、ROM(Read-Only Memory)12と、RAM(Random Access Memory)13と、不揮発性RAM(non-volatile Random Access Memory)14と、リアルタイムクロック15、イーサネット(登録商標)I/F(Ethernet(登録商標) Interface)21と、USB(Universal Serial Bus)22と、IEEE(Institute of Electrical and Electronics Engineers)1284 23と、ハードディスクI/F24と、エンジンI/F25と、RS−232C I/F26とで構成され、システムバスBに接続される。
CPU11は、ROM12に格納されたプログラムに従って情報処理装置1100を制御する。RAM13には、例えば、各インターフェース21から26に接続される資源に領域が割り当てられる。不揮発性RAM14には、情報処理装置1100を制御するためにCPU11による処理で必要な情報が格納される。リアルタイムクロック15は、現時刻を計ると共に、処理を同期させる場合にCPU11によって使用される。
イーサネット(登録商標)I/F21には、10BASE−T又は100BASE−TX等のイーサネット(登録商標)用インターフェースケーブルが接続される。USB22には、USB用インターフェースケーブルが接続される。IEEE1284 23には、IEEE1284用インターフェースケーブルが接続される。
ハードディスクI/F24には、ハードディスク34が接続され、ネットワークを介して送信された印刷すべき文書の文書データ、又は、印刷処理後の画像データがハードディスクI/F24を介してハードディスク34に格納される。エンジンI/F25には、文書データに基づいて所定媒体に印刷を行うプロッタ35−1及び画像データを取り込むスキャナ35−2等が接続される。RS−232C I/F26には、オペレーションパネル36が接続され、ユーザへの情報の表示及びユーザから入力情報又は設定情報の取得が行われる。
次に、図1に示すようなハードウェア構成を有し、複数の異なる画像形成処理を可能とし、かつ、複数のWebアプリケーションを有する情報処理装置1100の機能構成について説明する。
図2は、情報処理装置の機能構成を示すブロック図である。図2において、情報処理装置1100は、インターネット1016を介して表示画面の利用形態の異なるクライアントPC1041、1042及び1043等の複数の端末1040と接続可能であって、各端末1040からの要求に応じて、その要求に対する応答として情報を提供するコンピュータである。クライアントPC1041、1042及び1043は、夫々、英語、日本語、中国語によって情報が表示されているものとする。
情報処理装置1100は、主に、ネットワーク制御部1101と、シーケンス制御ライブラリ1110と、Webアプリ振分共通ライブラリ1120と、Webページハンドラ1200と、SOAP(Simple Object Access Protocol)ライブラリ1201と、XML(eXtensible Markup Language)ライブラリ1203と、XSLT(XSL Transformations)プロセッサ1205と、Webページ機能(WPF)1300と、プリンタ制御部1103と、スキャナ制御部1105と、言語リソースDB1121と、提供可能言語リスト1122と、スタイルシート1430とを有する。
ネットワーク制御部1101は、少なくともHTTP(Hyper Text Transfer Protocol)による通信制御を行うHTTPデーモン1002を有し、HTTPに従って端末1040から要求を受信し、その要求に対する応答としてその要求に応じた情報提供を行う。
HTTPデーモン1002は、端末1040から要求を受信すると、複数のWebアプリケーション1301において、ページ遷移した際にも端末1040の表示画面での利用形態に関する属性を示す属性情報が継承されるようにする所定の処理を実行するために、要求で指定されるURL(Uniform Resource Locator)に仮の共通パス情報と、上記所定の処理を実行するためのWebアプリケーションIDとCGI(Common Gateway Interface)とを付加する。ページ遷移とは、表示されているWebページから、そのWebページにリンクされる他のWebページを表示させることを言う。
HTTPデーモン1002は、必要な情報を付加して、図3に示すようなURLを作成する。図3は、URL構成を示す図である。図3において、URLは、大きく共通パス情報60aと相対パス情報60bとで構成される。HTTPデーモン1002が端末40から最初のページ要求を受信した際には、例えば、「http://AAA」のみがURLとして指定されており、このURLに対して、HTTPデーモン1002は、所定の「/TERMINAL/PROFILE/LANG/webDefaultApl/defaul.cgi」を付加する。
このようにして構成されたURLは、例えば、「http」等のアクセス手段を特定するプロトコル種別61と、「AAA」で示されるIPアドレス62と、「TERMINAL」で示される端末種別情報63aと、「PROFILE」で示されるプロファイル情報63bと、「LANG」で示される言語情報63cと、「webDefaultApl」で示されるWebアプリケーションID64と、「default.cgi」で示されるページ情報65とを有する。
そして、プロトコル種別61と、IPアドレス62と、端末種別情報63aと、プロファイル情報63bと、言語情報63cとが共通パス情報60aとして、以後のページ遷移において継承され、ページ遷移によって跨るWebアプリケーション1301との間で参照される。また、WebアプリケーションID64と、ページ情報65とが相対パス情報60bを構成する。
図2に戻り、処理部の説明を続ける。
シーケンス制御ライブラリ1110は、インターネット1016を介して行われるデータの送受信の処理シーケンスと各Webアプリケーション1301とのデータの受け渡しの処理シーケンスとの違いを所定のシーケンス制御処理によって吸収する、複数のWebアプリケーション1301に対して共通の処理部である。
Webアプリ振分共通ライブラリ1120は、端末1040からの要求の解析及び端末1040への応答を生成し、複数のWebアプリケーション1301に対して共通の処理部である。Webアプリ振分共通ライブラリ1120は、Webページハンドラ1200にてXMLで記述された応答を、XSLTプロセッサ1205によって各端末1040での国言語に応じたHTML(HyperText Markup Language)による表示形式に変換する。
Webページハンドラ1200は、Webアプリケーション1301が解釈可能な処理言語と、端末1040との間で行われる要求及び応答による通信制御で解釈される処理言語との変換を行う処理部である。Webページハンドラ1200は、要求に対応するWebアプリケーション1301をCGIを介して関数コールする。また、Webページハンドラ1200は、Webページ機能1300から通知された処理結果データをXMLで記述するために処理結果データのシリアライズ要求をSOAPライブラリ1201に対して行う。
SOAPライブラリ1201は、C言語の変数で与えられた処理結果データをXMLによって記述することによってデータ変換をしてシリアライズする。本実施例において、シリアライズするとは、XMLによってWebページ機能1300から通知された処理結果を記述することである。
XMLライブラリ1203は、SOAPライブラリ1201に利用されることによってXMLで処理結果をシリアライズする。また、XMLライブラリ1203は、XSLTプロセッサ1205に利用されることによって、処理結果を示すHTMLを生成する。
XSLTプロセッサ1205は、端末1040の要求で指定されるWebアプリケーション1301に対応するXSL(eXtensible Stylesheet Language)で記述されたスタイルシート1430に基づいて、XMLライブラリ1203を利用することによってXMLで記述された処理結果をHTMLの記述に変換する。
言語リソースDB121は、各Webアプリケーション1301と情報処理装置1100にて提供可能な各国言語での記述との対応を示す言語リソースを格納し、管理する。つまり、言語リソースDB1121を用いることによって、一つの処理結果に対して、複数の言語で記述することができる。そして、提供可能言語リスト1122は、情報処理装置1100が情報提供できる言語のリストを示す。
Webページ機能1300は、Webページハンドラ1200から関数コールされると、例えば、情報処理装置1100に備えられた画像形成を制御するプリンタ制御部1103又はスキャナ制御部1105にAPI(Application Program Interface)1017を介して問い合わせて、プロッタ35−1の状態又はスキャナ35−2の状態等を示す情報を取得し、その情報をWebページハンドラ1200へ返す。また、Webページ機能1300は、同様にして、API1017を介してネットワーク制御部1101へ問い合わせることによって取得した情報をWebページハンドラ1200へ返す。
次に、Webアプリケーションをするための詳細な構成を図4及び図5で説明する。図4は、Webアプリケーションの実行を説明するためのブロック図である。図5は、ハッシュリストを示す図である。図4において、Webページハンドラ1200は、例えば、図3に示すようなURLの構成に基づいた情報提供が行えるように、端末1040からの最初の要求時に実行されるデフォルトハンドラ1210と、端末1040からの指示によるページ遷移によって実行されるネットワーク設定ハンドラ1220と、同様にページ遷移によって実行されるシステム構成情報提供ハンドラ1230等を有する。
Webページ機能1300は、Webページハンドラ1200の各ハンドラに対応して、Webデフォルトアプリ1310と、Webシステムステータス応答アプリ1320と、Webシステム構成情報提供アプリ1330等の複数のWebアプリケーション1301を有する。
端末1040に初期画面が表示されるまでに、デフォルトハンドラ1210は、図3に示されるURLの形式に従って指定されるページ情報65に基づいて、「default.cgi」と「netsetting.cgi」を介してWebデフォルトアプリ1310を関数コールする。その結果、例えば、情報処理装置1100に実装されたプロッタ35−1又はスキャナ35−2等の設定情報が端末1040に表示される。
システムステータス応答ハンドラ1220は、情報処理装置1100に実装されたプロッタ35−1又はスキャナ35−2等の機器の状態を取得するために、Webシステムステータス応答アプリ1320を関数コールする。また、システム構成情報提供ハンドラ1230は、Webシステム構成情報提供アプリ1330を関数コールすることによって、端末1040からの要求に応じて情報処理装置1100によって成されるシステムの構成情報を取得する。
Webアプリ振分共通ライブラリ1120は、URLからWebアプリケーションID64を取得し、図5(A)に示されるハッシュリスト1050aを参照して、そのWebアプリケーションID64が「webDefaultApl」を示す場合、「default_handler」を実行する。WebアプリケーションID64が他のWebアプリケーションIDを示す場合についても同様に、ハッシュリスト1050aを参照して、実行すべきWebアプリケーションに対応するハンドラを実行する。
また、Webページハンドラ1200の各ハンドラ1210、1220及び1230は、指定されたURLからページ情報65を取得し、図5(B)に示されるハッシュリスト1050bを参照して、対応する関数をコールする。例えば、ページ情報65が「netsetting.cgi」を示す場合、ハッシュリスト1050bから「netsetting()」をコールすべき関数として取得する。ページ情報65が他のCGIを示す場合についても同様に、ハッシュリスト1050bを参照して、コールすべき関数を取得する。
更に、Webアプリ振分共通ライブラリ1120は、XSLTプロセッサ1205に対してXMLで記述された処理結果をHTMLに変換するXSL変換要求を行うために、Webページ機能IDとして指定されたURLからページ情報65を取得し、図5(B)に示されるハッシュリスト1050bを参照して、対応するスタイルシートを取得する。例えば、ページ情報65が「netsetting.cgi」を示す場合、Webアプリ振分共通ライブラリ1120は、ハッシュリスト50bから「netsetting.xsl」をXSL変換に必要なスタイルシートとして取得する。ページ情報65が他のCGIを示す場合についても同様に、ハッシュリスト1050bを参照して、XSL変換に必要なスタイルシートを取得する。
図4及び図5(B)において、Webページ機能IDとしてのURLのページ情報65が「default.cgi」である場合、default()関数が実行され、端末1040の国言語が決定され、HTTPデーモン1002によって仮に作成されたURLの言語情報にその決定した国言語が設定された初期画面が作成される。
ページ情報65が「netsetting.cgi」である場合、netsetting()関数が実行され、例えば、プロッタ35−1のネットワーク設定がプリンタのネットワーク設定として表示するネットワーク設定ページを作成するための情報が生成される。ページ情報65が「sysstatus.cgi」である場合、sysstatus()関数が実行され、例えば、プロッタ35−1の状態がプリンタの状態として表示するシステムステータスページを作成するための情報が生成される。ページ情報65が「sysconfig.cgi」である場合、sysconfig()関数が実行され、システム構成を示す情報が生成される。
説明の便宜上、WebアプリケーションIDの名称とWebページハンドラの名称とを統一させているが、このような名称に限定されるものではなく、図5(A)のようなハッシュリスト1050aによって対応付けがなされれば良い。同様に、Webページ機能IDと、関数と、スタイルシートの名称を統一させているが、このような名称に限定されるものではなく、図5(B)のようなハッシュリスト1050bによって対応付けがなされれば良い。
次に、端末1040からの最初の要求に対して情報提供が行われるまでの処理フローについて説明する。図6及び図7は、default.cgiによる処理フローを示す図である。図6及び図7によって示される処理フローは、default.cgiによる一連の処理を示す。
図6において、端末1040は、HTTPのGETメソッドを使用して、accept-Language情報を付加した要求を行う(ステップS111)。端末1040は、例えば、URL「http://AAA」を指定することによってその要求を行う。
この要求を受信した情報処理装置1100のHTTPデーモン1002は、URL「http://AAA」に端末種別情報63aと、プロファイル情報63bと、言語情報63cと、WebアプリケーションID64と、ページ情報65とを付加してシーケンス制御ライブラリ1110へこの要求を通知する(ステップS112)。例えば、HTTPデーモン1002によって、端末種別情報63aとして「TERMINAL」、プロファイル情報63bとして「PROFILE」、言語情報63cとして「LANG」、WebアプリケーションID64として「webDefaultApl」、ページ情報65として「default.cgi」がURL「http://AAA」に付加され、「http://AAA/TERMINAL/PROFILE/LANG/webDefaultApl/default.cgi」がURLとして構成される。
シーケンス制御ライブラリ1110は、Webアプリ振分共通ライブラリ1120を呼び出す(ステップS113)。その際、シーケンス制御ライブラリ1110は、端末1040との接続に関する情報を示すHTTP接続情報と、ハッシュリスト1050a及び1050b(以下、ハッシュリスト1050a及び1050bを総称してハッシュリストと言う)とを引数として設定する。このHTTP接続情報は、接続が切断されるまで端末1040との接続を一意に特定する。
Webアプリ振分共通ライブラリ1120は、HTTPデーモン1002によって生成されたURLに基づいて、「webDefaultApl」を示すWebアプリケーションID64に対応するWebページハンドラ1200として、ハッシュリスト1050aからデフォルトハンドラ1210(「default_handler」)を特定して呼び出す(ステップS114)。
Webページハンドラ1200では、デフォルトハンドラ1210が、URLから「default.cgi」を示すページ情報65を取得し、その「default.cgi」に対応するWebページ機能1300として、ハッシュリスト1050bからdefault()関数を特定して呼び出す(ステップS115)。この際、HTTP接続情報が引数として設定される。例えば、Webページ機能1300がC言語で開発されている場合、Webページハンドラ1200は、C言語の処理型に変換してdefault()関数をコールする。
default()関数の実行によって、HTTP接続情報に基づいて、言語情報が解析され、決定した共通パス情報60aによって初期画面を呼び出すURLが作成される(ステップS116)。そのURLを含む処理結果データとしてWebページハンドラ1200におけるデフォルトハンドラ210へ通知される(ステップS117)。default.cgiによる処理では、共通パス情報60aを決定し、決定した共通パス情報60aと初期表示画面の相対パス情報60bとによってURLが設定される。例えば、共通パス情報60aとして「/pc/admin/ja」が決定され、相対パス情報60bとして、初期画面としてのネットワークの設定情報を表示するための「/webDefaultApl/netsetting.cgi」を設定する。
デフォルトハンドラ1210は、処理結果データをXMLで記述するために、シリアライズ要求をSOAPライブラリ1201に対して行う(ステップS118)。SOAPライブラリ1201は、例えば、C言語の構造体で示される処理結果データに基づいて、DOM(Document Object Model)を作成し、必要な要素及び属性を追加して(ステップS119)、XMLライブラリ1203によって処理結果データをXMLで記述する(ステップS120)。XMLで記述された処理結果データは、SOAPライブラリ1203によってシリアライズ結果としてデフォルトハンドラ1210に通知される(ステップS121)。Webページハンドラ1200において、デフォルトハンドラ1210は、通知されたシリアライズ結果を端末1040に表示すべき表示データ「Response DOM」として、Webアプリ振分共通ライブラリ1120へ通知する(ステップS122)。
Webアプリ振分共通ライブラリ1120は、XMLで記述される表示データを端末1040の種別に応じたHTMLの記述に変換するために、ハッシュリスト1050bを参照して、「default.cgi」を示すページ情報56に対応するスタイルシート「default.xsl」を取得して、XSLTプロセッサ1205に対してXSL変換要求を行う(ステップS123)。この際、表示データ「Response DOM」と、スタイルシート「default.xsl」とが引数として設定される。
XSL変換要求を受信したXSLTプロセッサ1205は、引数で指定されたスタイルシート「default.xsl」を実行することによって、XMLで記述された表示データ「Response DOM」の構文を解析し(XMLパース)、DOMを作成し、要素及び属性を追加して(ステップS124)、XMLライブラリ1203によってHTMLの記述に変換する(ステップS125)。XSLTプロセッサ1205は、変換したHTMLの記述をXSL変換結果としてWebアプリ振分共通ライブラリ1120へ通知する(ステップS126)。
このように、ページ情報65が「default.cgi」の場合のWebページ機能1300による処理結果が、Webアプリ振分共通ライブラリ1120にデフォルトHTMLとして出力される。デフォルトHTMLでは、HTMLで「netsetting.cgi」が呼び出されるように記述され、デフォルトHTML応答として出力される。
このデフォルトHTML応答は、順に、Webアプリ振分共通ライブラリ1120からシーケンス制御ライブラリ1110へ通知され(ステップS127)、シーケンス制御ライブラリ1110からHTTPデーモン1002へ通知される(ステップS128)。そして、HTTPデーモン1002によって、HTTPに従ってデフォルトHTML応答がステップS111における端末1040の要求に対する応答として送信され(ステップS129)、default.cgiによってWebデフォルトアプリ1310を実行する処理フローを終了する。
ステップS117では、共通パス情報60aを決定し、決定した共通パス情報60aを相対パス情報60bに付加するのみであるので、Webデフォルトアプリ1310にて処理結果をHTMLで記述し、そのHTMLで記述された処理結果を出力するようにし、ステップS118からS126を省略しても良い。
次に、図6のステップS116にてdefault()関数のコールによって実行される言語情報の解析処理について図8から図11で詳述する。図8は、言語情報の解析処理について説明するためのフローチャート図である。図9は、HTTP接続情報のデータ構造を示す図である。図10は、HTTP要求情報のデータ構造を示す図である。図11は、ヘッダ情報リストを示す図である。図9から図11に示されるデータ構造は、図8に示される言語情報の解析処理にて参照されるデータ構造である。
図8での解析処理を説明する前に、図9から図11に示される各データ構造について説明する。図9において、HTTP接続情報340は、接続毎に生成される情報であって、「HTTP_REQUEST_INFO *request」にて示される記述346は端末1040からの要求の内容へのポインタを示し、「HTTP_RESPONSE_INFO *response」にて示される記述347は端末1040への応答の内容へのポインタを示す。この記述346によって指定されるポインタの先には、HTTP要求情報が図10に示すように格納されている。
図10において、HTTP要求情報350は、リクエストをした側の端末1040のアドレスを示すリモートアドレス351と、そのリクエストを受信した側のホストアドレスを示すローカルアドレス352と、POST、GET等のリクエストメソッド353と、リクエストのURLを示すリクエストURL354と、リクエストのHTTPバージョン355と、ヘッダ情報のリスト360と、エンコードされた情報のリスト357とを有する。
リクエストのURL354には、図3に示されるような共通パス情報60aと相対パス情報60bとで構成されるURLがシーケンス制御ライブラリ1110によって設定される。HTTP要求情報350は、HTTP接続情報340がWebページハンドラ1200とWebページ機能1300とへ通知されることによって、同時に通知される。従って、各Webページハンドラ1200と各Webアプリケーション1301は、共通パス情報60aを参照できる。
そして、ヘッダ情報リスト1360は、例えば、図11に示すような情報によって構成される。図11において、ヘッダ情報リスト1360は、「accept-Language:en-us;ja;q=0.9;ge;q=0.7;it;q=0.6;sp;q=0.4;pt;q=0.3」にて示されるaccept-Language情報1365を有する。このaccept-Language情報1365は、端末1040で表示されるの国言語の候補を示し、この記述を解析することによって、端末1040にて表示される国言語で情報提供をすることができる。
図8において、default()関数のコールによって、Webデフォルトアプ1310は、HTTP接続情報340からHTTP要求情報350を取得する(ステップS101)。更に、Webデフォルトアプリ1310は、HTTP要求情報350からaccept-Language情報1365を取得する(ステップS102)。
そして、Webデフォルトアプリ1310は、取得したaccept-Language情報1365から端末1040のWebブラウザでの言語(以下、Webブラウザ言語と言う)を確認する(S103)。Accept-Language情報1365に基づいて、言語のリストが図12(A)に示すように要求順に示される。つまり、Webブラウザ言語として、英語が端末1040において一番目に要求される言語で、日本語が二番目に要求される言語で、ドイツ語が三番目に要求される言語で、イタリア語が四番目に要求される言語で、スペイン語が五番目に要求される言語で、ポルトガル語が六番目に要求される言語である。
次に、Webデフォルトアプリ1310は、情報処理装置1100が端末1040のWebブラウザに提供可能な言語を取得する(ステップS104)。例えば、提供可能な言語が、図12(B)の提供可能言語一覧1122に提供可能順に示される。つまり、情報処理装置1100は、第一の提供可能順位で日本語で、第二の提供可能順位で英語で、第三の提供可能順位でドイツ語で、...情報を提供する。
そして、Webデフォルトアプリ1310は、ステップS103で確認した端末1040のWebブラウザでの言語と、ステップS104で取得した提供可能な言語とを比較することによって、端末1040のWebブラウザでの言語は提供可能か否かを判断する(ステップS105)。
提供できない場合、Webデフォルトアプリ1310は、図12(C)に示すように所定領域1123に格納され、図1のオペレーションパネル36において情報を表示するために使用されるオペレーションパネル36での表示言語を取得する(ステップS106)。Webデフォルトアプリ1310は、そのオペレーションパネル36での表示言語をURLパスに設定する(ステップS107)。つまり、URLの言語情報63cにその表示言語を設定する。そして、Webデフォルトアプリ1310は、言語情報の解析処理を終了する。
一方、ステップS105において、提供できると判断した場合、Webデフォルトアプリ1310は、URLパスにWebブラウザでの言語を設定する(ステップS108)。つまり、URLの言語情報63cに、accept-Language情報1365と提供可能言語一覧1122とに含まれる言語のうち要求順位の高い言語が設定される。そして、Webデフォルトアプリ1310は、言語情報の解析処理を終了する。
default.cgiによるデフォルトHTML出力について図13で説明する。図13は、デフォルトHTML出力の例を示す図である。図13において、デフォルトHTML1400は、端末1040では表示されることなく、Java(登録商標)script(登録商標)である記述1401がネットワーク設定ページを呼び出す。
"self.document.cookie="cookieOnOffchecker=on; path=/""を示す記述1402によって、端末1040のWebブラウザに関する情報が取得される。"self.location.pathname="/pc/user/en/webDefaultApl/netsetting.cgi""を示す記述1403によって、言語情報「en」が継承され、Webページ機能1300のWebデフォルトアプリ1310が実行される。つまり、ネットワーク設定を表示するHTMLが要求される。以後、ユーザによる一連のページ遷移の間、絶対パスが、<a href>タグによって指定される相対パスの参照として記述1403によって指定される。
図14及び図15は、netsetting.cgiによる処理フローを示す図である。図14及び図15によって示される処理フローは、netsetting.cgiによる一連の処理を示す。図14において、端末1040では、図13のデフォルトHTML1400での記述1403によって、自動的に、情報処理装置1100に実装されたプロッタ35−1又はスキャナ35−2のネットワーク設定を表示するためのHTMLを要求する(ネットワーク設定HTML要求)(ステップS151)。ネットワーク設定HTML要求は、「netsetting.cgi」が指定され、FORMデータが添付されているGETメソッドによって行なわれる。
情報処理装置1100のHTTPデーモン1002は、HTTP接続情報1340とハッシュリストとをシーケンス制御ライブラリ1110へ通知する(ステップS152)。この場合、HTTPデーモン1002は、HTTP接続情報1340と関連付けられるHTTP要求情報1350のリクエストメソッドに「GET」を設定し、要求のURLに「netsetting.cgi」を指定する。また、HTTPデーモン1002は、端末1040から受信したFROMデータをハッシュリストに設定する。
シーケンス制御ライブラリ1110は、Webアプリ振分共有ライブラリ1120を呼び出す(ステップS153)。この場合、シーケンス制御ライブラリ1110は、HTTP接続情報とハッシュリストとを引数として設定する。
Webアプリ振分共有ライブラリ1120は、URLに基づいて、「webDefaultApl」を示すWebアプリケーションID64に対応するWebページハンドラ1200として、デフォルトハンドラ1210(「default_handler」)を特定して呼び出す(ステップS154)。
Webページハンドラ1200において、デフォルトハンドラ1210は、「netsetting.cgi」を示すページ情報65を取得し、「netsetting.cgi」に対応するWebページ機能1300として、ハッシュリスト1050bから関数netsetting()を特定して呼び出す(ステップS155)。この場合、HTTP接続情報1340は引数として設定される。
例えば、Webページ機能1300がC言語で開発された場合、Webページハンドラ1200は、C言語の処理形式に変換され、関数netsetting()を呼び出す。
関数netsetting()を実行することによって、Webデフォルトアプリ1310は、初期表示画面(netsetting.cgi)でデバイス(例えば、プリンタとしてのプロッタ35−1)のネットワーク設定の情報を表示するために、デバイス名、コメント等を含む情報をネットワーク制御部1101にAPI1017を介して要求する(ステップS156−2)。ネットワーク制御部1101は、要求に応じて、デバイス名、コメント等を含む情報を提供する(ステップS156−4)。
例えば、Webページ機能1300のWebデフォルトアプリ1310は、API1017を介してプリンタ制御部1103にネットワーク設定を要求する(ネットワーク設定要求)(ステップS156−6)。プリンタ制御部1103は、ネットワーク設定として、プロッタ35−1のネットワーク設定をWebデフォルトアプリ1310に提供する(ステップS156−8)。
そして、Webデフォルトアプリ1310は、Webページハンドラ1200のデフォルトハンドラ1210に、処理結果データとして、ネットワーク設定、端末種別情報63a、プロファイル情報63b、そして言語情報63cを提供する(ステップS157)。
以下、ステップS158、S159、S160、S161及びS162によるXMLで記述するシリアライズの処理は、上記ステップS118、S119、S120、S121及びS122での処理と同様であるのでその説明を省略する。
Webアプリ振分共通ライブラリ1120は、XMLで記述される表示データを端末1040の国言語に応じたHTMLの記述に変換するために、ハッシュリスト1050bを参照して、「netsetting.cgi」を示すページ情報56に対応するスタイルシート「netsetting.xsl」を取得して、XSLTプロセッサ1205に対してXSL変換要求を行う(ステップS163)。この際、表示データ「Response DOM」と、スタイルシート「netsetting.xsl」とが引数として設定される。
XSL変換要求を受信したXSLTプロセッサ1205は、引数で指定されたスタイルシート「netsetting.xsl」を実行することによって、国言語に応じたテンプレートをスタイルシートの記述から選択し、XMLで記述された表示データ「Response DOM」の構文を解析し(XMLパース)、DOMを作成し、要素及び属性を追加して(ステップS164)、XMLライブラリによってHTMLの記述に変換する(ステップS165)。
XSLTプロセッサ1205は、変換したHTMLの記述をXSL変換結果としてWebアプリ振分共通ライブラリ1120へ通知する(ステップS166)。
ページ情報65が「netsetting.cgi」の場合のWebページ機能1300によってHTMLで記述された処理結果が、Webアプリ振分共通ライブラリ1120にネットワーク設定HTMLとして出力される。ネットワーク設定HTMLでは、プロッタ35−1の状態に関する情報がHTMLで記述される。
このネットワーク設定HTML応答は、Webアプリ振分共通ライブラリ1120からシーケンス制御ライブラリ1110へ通知され(ステップS167)、シーケンス制御ライブラリ1110からHTTPデーモン1002へ通知される(ステップS168)。そして、HTTPデーモン1002によって、HTTPに従ってネットワーク設定HTML応答がステップS51における端末1040の要求に対する応答として送信され(ステップS169)、netsetting.cgiによって実行される処理フローを終了する。
上記より、端末1040が英語を国言語とするクライアントPC1041である場合、ネットワーク設定HTMLは、クライアントPC1041のWebブラウザにて英語で表示される。端末1040が日本語を国言語とするクライアントPC1042である場合、ネットワーク設定HTMLは、クライアントPC1042のWebブラウザにて日本語で表示される。端末1040が中国語を国言語とするクライアントPC1043である場合、中国語は、提供可能言語一覧1122に示されていないため、図8のステップS106及びS107によって、オペレーションパネル36の表示言語(英語)が、クライアントPC1043のための共通パス60aの言語情報63cとして設定される。従って、ネットワーク設定HTMLは、クライアントPC1043のWebブラウザでは英語で表示される。
XMLで記述される処理結果について説明する。図16は、XMLで記述されたWebデフォルトアプリによる処理結果の例を示す図である。
図16に示されるXML1500において、Webデフォルトアプリ1310の関数netsetting()による処理結果は、<networkResponse>から</networkResponse>で示される記述1501によって示される。<terminal>pc</terminal>を示す記述1502は、端末1040がパーソナルコンピュータであることを示し、<language>en</language>を示す記述1503は、端末1040のWebブラウザで表示される言語が英語であることを示し、<profile>user</profile>を示す記述1504は、端末1040のユーザが通常ユーザであることを示している。1502から1504の記述は、URLの共通パス情報60aの端末種別情報63a、プロファイル情報63b、言語情報63cに基づく情報を示している。
<returnVaule>SUCCESS</deviceName>を示す記述1505は、ネットワーク設定が成功したことを示す。<ipAddress>999.999.999.999</ipAddress>を示す記述1506は、デバイス(例えば、プロッタ35−1)のIPアドレスが「999.999.999.999」であることを示す。<subnetMask>255.255.255.0</subnetMask>を示す記述1507は、サブネットマスクが「255.255.255.0」であることを示す。<hostName>Printer 1</hostname>を示す記述1508は、デバイス名が「Printer 1」であることを示す。
上記実施例において、Webページハンドラ1200は、XMLで記述することによってWebページ機能1300から提供される処理結果データをシリアライズする機能を有する。従って、Webページ機能1300の各Webアプリケーション1301は、各言語で処理結果を記述するための処理部を有する必要がない。
言語リソースDB1121によって管理され、XMLで記述された処理結果を英語での処理結果の表示を可能とするHTMLによる記述に変換するために資料される言語リソースについて図17で説明する。図17は、言語リソースの例を示す図である。
<110n xml:lang='en'>を示す記述1591は、「en」を示すパラメタ「lang」によって英語で記述するための言語リソースであることを示す。つまり、言語リソース1590は、英語用として使用される。記述1592から1595は、処理結果を英語の記述に対応させるために参照される。記述1592において、パラメタ「key」によって指定される「NETSETTING」は、パラメタ「text」によって指定される「Network Settings」に対応する。記述1593において、パラメタ「key」によって指定される「IP_HOSTNAME」はパラメタ「text」によって指定される「Host Name」に対応する。記述1594において、パラメタ「key」によって指定される「IP_ADDRESS」は、パラメタ「text」によって指定される「IP Address」に対応する。記述1595において、パラメタ「key」によって指定される「IP_SUBNET」は、パラメタ「text」によって指定される「Subnet Mask」に対応する。
言語リソース1590に基づいてXMLで記述されるnetsetting.cgiからの処理結果をHTMLの記述に変換するスタイルシート1430について図18から図20で説明する。図18から図20は、HTMLに変換するためのスタイルシートの例を示す図である。
図18に示すスタイルシート1430において、例えば、記述1433は、言語リソース1590を選択し、言語リソース1590はXMLからHTMLに変換するために参照される。この場合、言語リソース1590は、関数document()の引数$langTableとして指定される。
<xsl:output method="html" encoding="UTF-8"/>を示す記述1435は、処理結果をHTMLで記述することを指定する。また、HTMLの構造は、記述1417及び記述1418によって定義される。この場合、記述1437は、属性として言語を指定し、記述1438は、HTMLのボディを記述するためにテンプレートを適応している。
更に、スタイルシート1430は、HTMLのボディの生成を図19及び図20に示している。<xsl:template match="networkResponse">を示す記述1441は、パラメタ「match」で「networkResponse」を指定している。そして、図17の言語リソース1590が参照され、「NETSETTING」が、記述1443によってWebページのタイトルとして、「Network Settings」に対応する。記述1443と同様に、「IP_HOSTNAME」が「Host Name」に対応し、「IP_ADDRESS」が「IP Address」に対応する。
テンプレート「staticValue」は、記述1451から1460で記述され、図19の記述1445で使用される。テンプレート「sf:StringHndler」は、記述1471から1480で記述され、図19の記述1443で使用される。
このように、XSLTプロセッサ1205は、スタイルシート1430と言語リソース1590とに基づいて、XMLで記述された処理結果をHTMLの記述に変換する。従って、各言語用のネットワーク設定HTMLの生成がXSLTプロセッサ1205にて一元的に行われる。よって、Webページ機能1300の各Webプリケーション1301は、各言語毎にHTMLの記述を作成するための機能を持つ必要がない。
予め各Webアプリケーション1301用のスタイルシート1430を用意しておくことで、端末1040のWebブラウザに対して適した言語で、処理結果を適切に記述することができる。Webアプリケーション1301毎及び国言語毎にスタイルシート1430があるようにしても良い。
netsetting.cgiによる処理結果を示すネットワーク設定HTMLは、図21に示されるように記述される。図21は、netsetting.cgiの処理結果を英語で表示するためのHTMLの記述例を示す図である。
図21に示されるネットワーク設定HTML1570において、<meta http-equiv="Content-Language" content="en">を示す記述1571は、処理結果が英語で提供されることを示す。記述1573及び1575は、端末1040のWebブラウザにて英語で表示するためのスタイルシート1430に基づいて作成される。記述1575は、他のWebページの一つにリンクするための記述である。
記述1575によって、ネットワーク設定HTMLは、「Browse System Status」ページ及び「Browse System Configurations」ページのにリンクすることができる。<href="../webSysstatusApl/sysstatus.cgi">を示す記述1576によって、Webアプリケーション情報64として「webSysstatusApl」及びページ情報65として「sysstatus.cgi」が相対パスとして設定される。「Browse System Status」ページが端末1040のユーザによって選択された場合、現在の言語情報63cが「../」によって継承されつつ、「Browse System Status」ページが端末1040に表示される。同様に、記述1577<a href="../webSysconfigApl/sysconfig.cgi">を示す記述1577によって、Webアプリケーション情報64として「webSysconfigApl」及びページ情報65として「sysconfig.cgi」が相対パスとして設定される。「Browse System Configurations」ページが端末1040のユーザによって選択されると、現在の言語情報63cが「../」によって継承されつつ、「Browse System Configurations」ページが端末1040に表示される。
ネットワーク設定ページは、図21のネットワーク設定HTMLによって、図22に示すように英語で表示される。図22は、ネットワーク設定ページを英語で表示する表示画面例を示す図である。図22に示すネットワーク設定ページ1580において、端末1040が英語を国言語とするクライアントPC1041である場合、英語で表示される英語表示域1583及び選択可能な英語で表示される英語選択表示域1585が、端末1040に表示される。英語表示域1583は、図21の記述1573に基づいて表示される。英語選択表示域1585は、図21の記述1575に基づいて記述される。
クライアントPC1041のユーザが、英語選択表示域1585から「Browse system status」をクリックすると、図23に示すような英語を国言語とするクライアントPC1041のWebブラウザに、他のWebページが英語で表示される。
図23は、図21のネットワーク設定ページからリンクされたシステムステータスページの表示画面例を示す図である。図23において、図22の英語選択表示域1585の「Browse system status」に対応するシステムステータスページ1790が、クライアントPC1041にて英語で表示される。クライアントPC1041のユーザが言語リスト1795から「Japanese」を選択し「GO」ボタン1796をクリックすると、sysstatus.cgiからの処理結果を示すシステムステータスHTMLが図24に示されるように情報処理装置1100にて作成される。
図24は、図22のシステムステータスページを日本語で表示するためのHTMLの記述例を示す図である。図24に示すシステムステータスHTML1670において、<meta http-equiv="Content-Language" content="ja">を示す記述1671は、処理結果が日本語で提供されることを示す。英語を国言語とするクライアントPC1041のWebブラウザにて日本語で処理結果に関する情報を表示するために、記述1673は、図18から図20で示されるスタイルシート1430以外のスタイルシートに基づいて作成される。言語を選択するための選択可能なリストを日本語で表示するために、記述1674は、記述1673と同じスタイルシートに基づいて作成される。記述1675は、他のWebページの一つにリンクするための記述である。
システムステータスHTML1670に基づいて、英語によるシステムステータス1790は、図25に示すように日本語による表示に変更される。図25は、システムステータスページを日本語で表示する表示画面例を示す図である。
図25において、ユーザが図23のシステムステータスページ1790にて「日本語」を選択した後、システムステータスページ1690は日本語にて表示され、そして、sysstatus.cgiの処理結果は、日本語で表示される。ユーザが選択可能な表示域1697からWebページを1つ選択した場合、「日本語」が、共通パス情報60の言語情報63cとして継承される。
従って、HTTPデーモン1002が、端末1040から最初の要求を受信すると、default.cgiを呼び出すためにURLを形成するため、情報処理装置1100は、自動的にdefault.cgiによって共通パス情報60aを含むURLを設定することができる。従って、端末1040のユーザは、端末1040のWebブラウザに表示される言語に関する情報を入力する必要がない。
共通パス情報60aは、URLの相対パス情報60bの前に設定される。よって、1つのWebページから他のWebページへのミンクが相対パス情報60bによってのみ指定される。
そして、情報処理装置1100は、所定のスタイルシートを用いて、共通パス情報60aの言語情報63cに基づいて、XMLによる記述からHTMLによる記述へ変換する。従って、情報処理装置1100において、開発者は、言語毎に各Webアプリケーション1301を開発する必要がない。よって、開発者の作業負荷を軽減することができる。つまり、Webアプリケーション1301が一元的に処理結果を出力することが可能となる。例えば、各Webアプリケーション1301の開発が複数の言語によって影響されることがない。
上述したように、本発明によれば、言語情報63cは、端末1040から要求を受信すると、共通パス情報60aに設定されるため、たとえページ遷移が複数のWebアプリケーション1301の間で行われても、同一言語に対応する情報を常に端末1040のWebブラウザに提供することができる。
また、XMLで処理結果を記述する処理部及びXMLからHTMLへ変換する処理部が、Webページ機能1300の複数のWebアプリケーション1301から分離して構成されるため、各Webアプリケーション1301の開発者の開発負荷を軽減することができる。