説明

画面制御システム、サーバ、及び画面制御方法

【課題】各装置に対応するUI画面を適切に表示制御する。
【解決手段】情報処理装置と、画像形成装置と、サーバとが接続された画面制御システムであって、サーバは、情報処理装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報と、UI定義情報に含まれるUI部品に表示する表示データを非同期通信で取得するためのプログラムとを含む第1画面情報を生成する第1生成手段と、画像形成装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報に含まれるUI部品に表示する表示データをレンダリング関数を用いて取得し、UI部品及び該UI部品に表示する表示データを含む画面を描画する第2画面情報を生成する第2生成手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画面の表示制御を行う画面制御システム、サーバ、及び画面制御方法に関する。
【背景技術】
【0002】
近年、ドキュメントを業務の中で活用するようなアプリケーションが増えている。そのため、一般的なExplorerのようなファイル管理ではなく、業務アプリケーションのようなUIを利用して、ドキュメントを扱うことが求められている。
【0003】
複合機(MFP:Multifunction Peripheral)も、このような業務連携の利用方法が増え、顧客からの注文書、申込書などの紙ドキュメントを業務アプリケーションに連動する形でシステムに取り込みたいというニーズが顕在化しつつある。様々な業務において、様々なドキュメントが利用されているが、例えば、受注管理に適したUI、図面管理に適したUIなどは異なっていると言える。
【0004】
UIを制御して業務を効率化する技術として、例えば、特許文献1では、複合機において、GUIに配置可能なボタン等の各画面構成要素について、その画面構成要素と対応する1以上のキーワードを記憶させることで、キーワードから画面構成要素を抽出可能にし、編集操作の効率を改善する技術が開示されている。
【0005】
一方、Webアプリにおいて、Webアプリ上でUIのカスタマイズするGoogle(登録商標)のiGoogle(登録商標)などが開発されている。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、前述した従来の業務アプリケーションでは、個々の業務に特化したカタチでDB(データベース)設計がなされ、アプリケーションが開発されていた。例えば、ドキュメント管理のアプリケーションでは、文書タイプごとにメタデータを付与するレベルに留まり、業務にあわせてUIを変更するためには、大規模なSIなどのカスタマイズが必要となる。
【0007】
MFPからスキャンした画像をシステムに取り込む際には、個別のMFP上で動作するアプリケーションを開発するか、MFPの操作パネル上で動作するWebブラウザ(以下、MFPブラウザともいう)などを利用して、MFP向けのWeb画面を開発するといった方法があるが、どちらも容易ではなかった。
【0008】
また、PC用ブラウザでは、Ajax(Asynchronous JavaScript(登録商標)+ XML)などを利用できるが、現在のMFP用ブラウザなどの組み込み用ブラウザでは、シンプルなHTMLのレンダリングしか出来ない場合もある。
【0009】
また、例えば多数の装置が接続され、大量のデータを短時間で扱う基幹システムについては、各装置に対して適切なUI画面を表示させたいが、様々な画面を全て保存することは非効率である。
【0010】
そこで、本発明は、上記問題点に鑑みてなされたものであり、各装置に対応するUI画面を適切に表示制御することができる画面制御システム、情報処理装置、及び画面制御方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明における一態様の画面制御システムは、情報処理装置と、画像形成装置と、サーバとが接続された画面制御システムであって、前記サーバは、画面のUI部品が定義されているUI定義情報を画面毎に記憶する第1記憶手段と、前記UI部品に表示する表示データを記憶する第2記憶手段と、前記情報処理装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報と、該UI定義情報に含まれるUI部品に表示する表示データを非同期通信で取得するためのプログラムとを含む第1画面情報を生成する第1生成手段と、前記画像形成装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報に含まれるUI部品に表示する表示データをレンダリング関数を用いて取得し、該UI部品及び該UI部品に表示する表示データを含む画面を描画する第2画面情報を生成する第2生成手段と、前記第1生成手段により生成された第1画面情報を前記情報処理装置に送信し、又は、前記第2生成手段により生成された第2画面情報を前記画像形成装置に送信する送信手段と、を備える。
【0012】
また、本発明における他の局面のサーバは、情報処理装置と、画像形成装置とに接続されるサーバであって、画面のUI部品が定義されているUI定義情報を画面毎に記憶する第1記憶手段と、前記UI部品に表示する表示データを記憶する第2記憶手段と、前記情報処理装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報と、該UI定義情報に含まれるUI部品に表示するデータを非同期通信で取得するためのプログラムとを含む第1画面情報を生成する第1生成手段と、前記画像形成装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報に含まれるUI部品に表示する表示データをレンダリング関数を用いて取得し、該UI部品及び該UI部品に表示する表示データを含む画面を構成する第2画面情報を生成する第2生成手段と、前記第1生成手段により生成された第1画面情報を情報処理装置に送信し、又は、前記第2生成手段により生成された第2画面情報を画像形成装置に送信する送信手段と、を備える。
【0013】
また、本発明における他の局面の画面制御方法は、情報処理装置と、画像形成装置とに接続され、画面のUI部品が定義されているUI定義情報を画面毎に記憶する第1記憶手段と、前記UI部品に表示する表示データを記憶する第2記憶手段とを備えるサーバにおける画面制御方法であって、前記情報処理装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報と、該UI定義情報に含まれるUI部品に表示するデータを非同期通信で取得するためのプログラムとを含む第1画面情報を生成する第1生成ステップと、前記画像形成装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報に含まれるUI部品に表示するデータをレンダリング関数を用いて取得し、該UI部品及び該UI部品に表示するデータを含む画面を構成する第2画面情報を生成する第2生成ステップと、前記第1生成ステップにより生成された第1画面情報を前記情報処理装置に送信し、又は、前記第2生成ステップにより生成された第2画面情報を前記画像形成装置に送信する送信ステップと、を有する。
【発明の効果】
【0014】
本発明によれば、各装置に対応するUI画面を適切に表示制御することができる画面制御システム、情報処理装置、及び画面制御方法を提供することができる。
【図面の簡単な説明】
【0015】
【図1】実施例における画面制御システムの一例を示す図。
【図2】実施例におけるサーバ110のハードウェアの一例を示すブロック図。
【図3】実施例におけるサーバ110の機能の一例を示すブロック図。
【図4】実施例で用いるデータモデルのクラス関係の一例を示す図。
【図5】UI画面の定義データの一例を示す図。
【図6】表示画面の一部の一例を示す図。
【図7】表示画面の一例を示す図。
【図8】表示画面のパーツの連携を説明する図。
【図9】イベントによる駆動プログラムの一例を示す図。
【図10】イベント発生のプログラムの一例を示す図。
【図11】UI部品を描画するときのURLを生成するプログラムの一例を示す図。
【図12】セレクトボックスの定義データの一例を示す図。
【図13】セレクトボックスの一例を示す図。
【図14】APIで取得されたデータの一例を示す図。
【図15】フォルダリストの定義データの一例を示す図。
【図16】フォルダリストの一例を示す図。
【図17】レンダリングの例を説明する図。
【図18】PC用のタブ設定の一例を示す図。
【図19】MFP用のタブ設定の一例を示す図。
【図20】PC用のHTMLソースの一例を示す図。
【図21】PC用の画面の一例を示す図。
【図22】MFP用のHTMLソースの一例を示す図。
【図23】MFP用の画面の一例を示す図。
【図24】JSONデータの取得とUI部品の描画の一例を示す図。
【図25】ログインの一例を示すシーケンス図。
【図26】画面の表示処理の一例を示すシーケンス図。
【図27】フォルダ階層の概要を説明する図。
【図28】フォルダ階層に関するデータのデータ構造の一例を示す図。
【図29】階層の定義とメタデータの一例を示す図。
【図30】図28に示すデータの画面例を示す図。
【図31】ビューセットデータの一例を示す図。
【図32】ビュー(タブ)データの一例を示す図。
【図33】ビュー形成のためのデータの一例を示す図。
【図34】ビューのURL、ビュー、ビューセットの画面切替例を説明する図。
【図35】タブの違いによる画面の違いを説明する図。
【図36】ビューセットとタブの関係を示す図。
【図37】アカウント情報の一例を示す図。
【図38】組織情報の一例を示す図。
【図39】ユーザ情報の一例を示す図。
【図40】ビューフィルタ情報の一例を示す図。
【図41】APIの例を示す図。
【発明を実施するための形態】
【0016】
以下、添付図面を参照して、本発明に係る画面制御システム、情報処理装置(サーバ)、画面制御方法の実施例を詳細に説明する。
【0017】
また、以下に示す実施例では、画像データを入力する画像入力装置として、情報処理装置、又はプリンタ機能、スキャナ機能、コピー機能、ファクシミリ機能を一つの筐体に搭載した複合機を例にあげて説明する。しかし、これらに限定されるものではなく、画像データを入力可能であれば、表示画面を有するスキャナ装置、ファクシミリ装置、コピー装置などいずれにも適用することができる。
【0018】
[実施例]
<システムとハードウェア>
図1は、実施例における画面制御システム100の一例を示す図である。図1に示すように、画面制御システム100は、MFP101、クライアント装置(PC)103、携帯端末105、MFP107、サーバ110、サーバ131、データベース(以下、DBともいう)133を有する。
【0019】
MFP101は、例えば、MFPブラウザを用いて、表示画面を表示する。PC103は、ブラウザ上でAjaxなどの非同期通信を利用可能とする。PC103は、表示画面の表示データに対しリクエストが発生した場合に、サーバと非同期通信を行って表示データを取得することが可能である。
【0020】
携帯端末105は、PC103同様、ブラウザ上でAjaxを利用可能とする。MFP107は、MFP107専用のアプリケーションからAPIを利用して表示画面の表示データを取得する。
【0021】
サーバ110は、各装置101、103、105、107から表示画面の表示要求を受けると、各装置に適した表示画面を構成する画面情報(HTML形式)を送信する。具体的には、サーバ110は、カスタマイズ部111、画面制御部113、インタフェース部115、テンプレート管理部117、メタデータ管理部119、画面データ管理部121、アクセス管理部123を有する。
【0022】
カスタマイズ部111は、ファイルやフォルダに対するアクセス権限や、ファイルやフォルダに付与されるメタデータや、表示画面のレイアウト、UIパーツなどのカスタマイズを行う。ファイルとは、例えば文書ファイル(画像ファイルも含む)であり、音声ファイルや映像ファイルなどでもよい。
【0023】
画面制御部113は、各装置101、103、105、107から表示画面の描画要求や表示データの取得要求を受ける。画面制御部113は、要求を受けた装置に適した表示画面を定義する画面情報(例えばHTML形式の情報)を作成し、作成した画面情報を装置に送信する。つまり、画面制御部113は、各装置に適した表示画面の表示制御を行う。
【0024】
インタフェース部115は、例えばJSON(JavaScript(登録商標) Object Notation)形式やXML(Extensible Markup Language)形式、WebDAV(Web-based Distributed Authoring and Versioning)に対応している。各装置は、インタフェース部115のAPIを利用して所望のデータを取得する。
【0025】
テンプレート管理部117は、ファイルやフォルダのメタデータのフォーマットや、表示画面のテンプレートを記憶、管理する。
【0026】
メタデータ管理部119は、フォルダ階層の定義を示す「Cabinets」、フォルダの情報を示す「Folders」、ファイルの情報を示す「Entries」、メタデータの定義を示す「Tags」を保持する。メタデータ管理部119で管理される情報については後述する。
【0027】
画面データ管理部121は、各装置101、103、105、107で表示される表示画面に関する情報を管理する。「Smart View」は、Ajaxを利用して表示画面を表示可能な装置に対する表示画面の画面情報である。「View Set」は、1又は複数の表示画面をグループ化する画面の画面情報である。「MFP View」は、Ajaxを利用できない装置(例えばMFP)に対する表示画面の画面情報である。「Mobile View」は、携帯端末用の表示画面の画面情報である。
【0028】
アクセス管理部123は、ファイル階層(「Cabinets」)、フォルダ(「Folders」)、ファイル(「Entries」)、及び/又はビュー(「View」:画面)に対するアクセスを制限するための情報を管理する。
【0029】
サーバ131は、各フォルダに保存されるファイルを簡易的に保持、管理するサーバである。サーバ131は、ファイルの保存先のURLなどを記憶する記憶部(「Storage Cache」)やファイルを取得する取得部(API)を有する。DB132は、各装置の表示画面の定義データやUI部品の定義データなどを記憶するデータベースである。DB133、ファイルを少なくとも記憶するデータベースである。なお、サーバ131、DB133は、サーバ110に含まれていてもよいし、一つのDBであってもよい。その他、ユーザ情報を管理するユーザ情報管理部などがあってもよい。
【0030】
次に、実施例におけるサーバのハードウェア構成について説明する。図2は、実施例におけるサーバ110のハードウェア構成の一例を示すブロック図である。図2に示すように、サーバ107は、制御部201、主記憶部203、補助記憶部205、外部記憶装置I/F部207、ネットワークI/F部211を含む。
【0031】
制御部201は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPUである。また、制御部201は、主記憶部203に記憶されたプログラムを実行する演算装置であり、入力装置や記憶装置からデータを受け取り、演算、加工した上で、出力装置や記憶装置に出力する。
【0032】
主記憶部203は、ROM(Read Only Memory)やRAM(Random Access Memory)などであり、制御部201が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【0033】
補助記憶部205は、HDD(Hard Disk Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部205は、ネットワークを介して所定のプログラムを記憶してもよい。この所定のプログラムは、インストールされることで処理可能になる。
【0034】
外部記憶装置I/F部207は、USB(Universal Serial Bus)などのデータ伝送路を介して接続された記憶媒体209(例えば、フラッシュメモリ、SDカードなど)とサーバ107とのインタフェースである。
【0035】
また、記憶媒体209に、所定のプログラムを格納し、この記憶媒体209に格納されたプログラムは外部記憶装置I/F部207を介してサーバ107にインストールされ、インストールされた所定のプログラムはサーバ107により実行可能となる。
【0036】
ネットワークI/F部211は、有線及び/又は無線回線などのデータ伝送路により構築されたLAN(Local Area Network)、WAN(Wide Area Network)などのネットワークを介して接続された通信機能を有する周辺機器とサーバ107とのインタフェースである。
【0037】
なお、サーバ107は、入力部や表示部を備えてもよい。入力部は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部は、ユーザが制御部201に操作指示を与えたり、データを入力したりするためのユーザインタフェースである。
【0038】
表示部は、CRTやLCD等により構成され、制御部201から入力される表示データに応じた表示が行われる。
【0039】
<機能>
図3は、実施例におけるサーバ110の機能の一例を示すブロック図である。図3に示す例では、サーバ110は、受信手段301、送信手段303、画面生成手段305、ユーザ認証手段311、アクセス制御手段313を含む。受信手段301、送信手段303は、ネットワークI/F部211により実現され、画面生成手段305、ユーザ認証手段311、アクセス制御手段313は、制御部201や主記憶部303により実現されうる。また、画面生成手段305は、画面制御部113に相当し、アクセス制御手段313は、アクセス管理部123に相当する。
【0040】
受信手段301は、各装置から表示画面の表示要求を受けたり、UI部品に表示する表示データの取得要求を受けたりする。送信手段303は、リクエストをしていた装置に対して、画面情報、又は表示データを送信する。表示画面の表示要求は、例えば表示画面の識別情報を指示したり、表示画面の情報が保持されたURLを指示したりして行われる。
【0041】
画面生成手段305は、第1生成手段307、第2生成手段309を有する。第1生成手段307は、非同期通信、例えばAjaxが利用可能なブラウザを有する装置からの画面表示要求を受けた場合、表示画面を描画する第1画面情報を例えばHTML形式で生成する。生成された第1画面情報は、送信手段303により表示要求をした装置に送信される。第1画面情報は、表示要求を受けた表示画面のUI定義データ、このUI定義データに含まれるUI部品に表示する表示データを非同期通信で取得するためのプログラム、例えばJavaScript(登録商標)プログラムを含む。UI定義データとは、表示画面のUIのレイアウトやUI部品などを定義するデータである。
【0042】
第2生成手段309は、シンプルなHTMLを用いてレンダリングを行う画像形成装置からの画面表示要求を受けた場合、表示画面を描画する第2画面情報を例えばHTML形式で生成する。生成された第2画面情報は、送信手段303により表示要求をした装置に送信される。第2生成手段309は、表示要求を受けた表示画面のUI定義データに含まれるUI部品に表示する表示データを、レンダリング関数を用いて取得し、取得したUI部品に含まれる表示データを含む表示画面を描画する第2画面情報を生成する。
【0043】
表示要求をした装置が非同期通信可能か否かの判断について、画面生成手段305は、装置の識別情報(例えばIPアドレス)と非同期通信の可否とを関連付けて記憶しておき、表示要求をした装置の識別情報に応じて非同期通信可か否かを判断すればよい。
【0044】
また、MFPブラウザでAjaxを利用可能な場合でも、レンダリング速度や画面サイズの問題から、第2生成手段309によりMFP用にレンダリングすることが考えられる。このとき、画面生成手段305は、表示要求をした装置のIPアドレスを用いて装置判定を行い、IPアドレスが情報処理装置(PC)103を示せば第1生成手段、MFP101を示せば第2生成手段を用いて画面生成を行う。
【0045】
ユーザ認証手段311は、各装置からユーザIDとパスワードを取得してユーザ認証を行なう。認証されたユーザに関する情報は、アクセス制御手段313に出力される。ユーザに関する情報とは、ユーザID、ユーザ名、ユーザが属する組織情報などを含むユーザ情報、又はユーザ情報に付与されるメタデータの少なくとも1つを含む。
【0046】
アクセス制御手段313は、ログインされたユーザに対して、表示画面(ビュー)に対しアクセス制限を加え、表示可能な表示画面を制限する。アクセス制限の詳細は後述する。
【0047】
(モデルのクラス関係)
次に、実施例で用いるデータモデルについて説明する。図4は、実施例で用いるデータモデルのクラス関係の一例を示す図である。「Organization」クラス401は、組織ID「rs_organization_id(単にorganization_idでもよい)」を有するクラスである。
【0048】
「Cabinets」クラス409、「Folder」クラス411、「Entry」(ファイル)クラス413、「Tag」クラス415、「Doctype」クラス417は、ユーザが実際に利用するファイルやフォルダのクラスである。
【0049】
「ContentFilter」クラス419、「ViewFiler」クラス421は、ファイルやビューに対しアクセス権を設定するためのクラスである。「SmartView」クラス423、「ViewSet」クラス425は、フォルダやファイルを業務内容に近い形式で表示するUIの設定を行うためのクラスである。「User」クラス427は、ユーザ情報を設定するためのクラスである。なお、二重で囲んだクラスは、ユーザ管理者による設定ができるクラスである。
【0050】
(UIの定義)
図5は、UIの定義データの一例を示す図である。図5に示す「Rs Organization」は、組織IDを示す。「Config」501は、UI定義データの一例を示す。UI定義データには、表示画面に表示される各UI部品が定義される。
【0051】
例えば、ライン511は、UI部品の識別情報を示し、「inv_no_search」が定義されている。ライン513は、UI部品のコンポーネントを示し、「search_box」が定義されている。
【0052】
ライン515では、UI部品とUI部品にデータを表示する場合の関連付けが行われ、所定のURLにリクエストを送ると、検索結果に含まれるデータが返ってくることを示す。ライン517は、所定の表示領域を示し、「tab_left」が定義されている。ライン519は、表示データを検索する際の検索キーを示し、「stag_14」の検索キーが定義される。ライン521は、このUI部品が表示される場合の名称が定義される。なお、図5に示すデータは、例えばDB132に保存される。
【0053】
図6は、表示画面の一部の一例を示す図である。図6は、図5に示すUI定義データを表示した場合の例である。図6に示すタイトル601は、図5に示すライン521の「INV番号検索」が表示されたものである。また、サーチボックス603は、ライン513のUI部品が表示されたものである。なお、実施例で用いるUI定義データは、図5に示すライン511〜521のUI部品に関するデータを記述するだけで、図6に示すタイトル601及びサーチボックス603が表示される。これにより、UIのカスタマイズが容易である。なお、図6に示す画面は、例えば、第1生成手段305が図5に示すUI定義データに基づいて第1画面情報を生成することで、PC103で表示可能になる。
【0054】
(画面構成)
次に、実施例で用いる表示画面の構成について説明する。図7は、表示画面の一例を示す図である。図7に示す実線枠はペイン(pane:所定の表示領域)を示し、点線枠はパーツ(parts:UI部品)を示す。ペイン内には、1又は複数のパーツが定義される。ただし、ロゴなどの操作イベントが発生しないパーツ711は、ペイン内に定義しなくてもよい。ペイン701は、「tab_left」ペインであり、ペイン703は、「tab_main_top」ペインであり、ペイン705は、「tab_main_bottom」ペインである。
【0055】
ペイン701には、セレクトボックス713、サーチボックス715などのパーツが定義されている。ペイン703には、ドキュメントリスト717のパーツが定義されている。ペイン705には、ドキュメントリスト719のパーツが定義されている。
【0056】
次に、ペインとパーツを含む画面におけるパーツの連携について説明する。図8は、表示画面のパーツの連携を説明する図である。
(1)「Config」に定義されたbindingsをもとに、どこのペインのパラメータ変更イベントを受けるかを調べ、自ペインに再描画のための関数をbindする。
(2)bindingsの対象になったペイン内のセレクトボックスによりセレクトされた時、自分の属するペインから「pane.event_name」という名前のイベントにtriggerをかける。
(3)かかったtriggerイベントに対応するbindを実行する。
(4)bindから呼ばれた再描画関数が自ペインを再描画する。
【0057】
なお、パラメータ変更などのイベント自体は、各パーツ単位で発生する。しかし、パーツでイベントが発生すると、ペイン名に対応付けてトリガーがかけれらるため、イベント通知を受ける側(bindされる関数)は、あらかじめ、ペインに対してbindされることになる。イベント発生は、ペイン単位で検知される。bindingsは、ペインに対して行われる。bindingするイベントは、UI部品の識別情報(div_id名)ではなく、ペイン名+データ名である。例えば、「tab_left.layer_0(ペイン名.データ名)」である。図8に示す画面例に対し、新たにUI部品を加えたい場合、ペイン内部にパーツを追加できればパーツを追加してもよいし、ペインを追加して追加したペイン内部にパーツを定義してもよい。
【0058】
図8に示すようなパーツ連携を採用することより、他のペイン内で操作イベントが発生した場合、自ペイン内のパーツを再描画する。したがって、画面の設計者は、パーツ毎に対応付けをしなくてもよくなる。また、この対応付けによる設定の数を減らすこともできる。
【0059】
図9は、イベントによる駆動プログラムの一例を示す図である。図9は、図8の(1)、(3)に対応するプログラムの例である。図9に示す関数は、イベントによる駆動を設定する関数である。また、「ペイン名+データ名」のイベントの発生が起きたら他の関数を呼ぶ設定が、JavaScript(登録商標)内で行われる。「target.on_change()」は、bindが実行されたときに呼ばれる関数である。
【0060】
図10は、イベント発生のプログラムの一例を示す図である。図10は、図8の(2)に対応するプログラムである。図10に示す関数は、UI部品内でイベントを発生させる関数である。ライン1001で、「ペイン名+データ名」のイベントを発生させている。関数1003は、DOM(Document Object Model)内の変数ペインに値をセットする関数である。これにより、UI部品に操作イベントが発生したときに、所属するペインからtriggerを発生させることができる。なお、図9及び図10に示すJavaScript(登録商標)のソースは、jqueryというライブラリの利用を前提とするが、この限りではない。
【0061】
図11は、UI部品を描画するときのURLを生成するプログラムの一例を示す図である。図11は、図8の(4)に対応するプログラムである。図11に示す関数は、ブラウザがパーツを描画するときのURLを生成する関数である。ここでは、図9の「set_param」でDOM内の「panes」に設定された値を取得して、URLのパラメータにセットする。図9〜図10に示すデータは、DB132に保存される。
【0062】
(UIパーツの設定)
次に、UIパーツ(UI部品)の設定例について説明する。図12は、セレクトボックスの定義データの一例を示す図である。図12のライン1201に示す「div_id」は、UIパーツのIDであり、IDは、「layer_1_select」の例を示す。ライン1203に示す「component」は、利用するUI部品名である。この例では、UI部品名は「select_box」の例を示す。ライン1205に示す「relative_url」は、データを取得するAPIのURLである。
【0063】
ライン1207に示す「display_fields」は、セレクトボックスに表示するデータの中のフィールド名である。ライン1209に示す「value_fields」は、セレクトボックスが変更されたときに、ペインに設定される値のデータのフィールドである。ライン1210に示す「pane」は、このUIパーツが属するペインである。この例では、属するペインは「tab_left」の例を示す。ライン1211は、ペインの値としてセットするときの名前であり、「layer_1」の例を示す。
【0064】
図13は、セレクトボックスの一例を示す図である。図13では、フォルダ階層を選択するためのセレクトボックスの一例を示す。例えば、「時期」は第1階層であり、「HAWB番号検索」は第2階層である。このフォルダ階層については後述する。
【0065】
図13に示す1301のセレクトボックスは、図12に示すUIパーツがブラウザを用いて表示されたときの例である。例えば、セレクトボックスのプルダウンボタンが押下された場合には、PC103は、例えばAjaxを利用し、ライン1205のAPIのURLにより取得された「layer_1」内のデータを表示する。
【0066】
図14は、APIで取得されたデータの一例を示す図である。例えば、データ1401に示す「2009.11」、「2009.12」、「2010.01」、「2010.02」を取得したとする。このとき、図13に示すブルダウンボタンが押下されると、データ1401内の「2009.11」、「2009.12」、「2010.01」、「2010.02」が画面に表示されることになる。なお、「layer=layer_1」と「level=1」は同じ第1階層のフォルダを示す。
【0067】
次に、他のUIパーツの設定例について説明する。図15は、フォルダリストの定義データの一例を示す図である。図15に示す例では、フォルダリストの表示、また、セレクトボックスの変更を受けて、リストが再描画される設定を含む。変数1501は、「tab_left」のペインで「layer_0」〜「stag_15」のイベントが発生したときにそのイベントによって再描画を行なう関連付けを行う変数である。変数1501の情報をもとに、図9に示す関数によって、イベントに再描画用の関数が紐付けられ、図11に示すURL生成で検索パラメータが生成される。
【0068】
図16は、フォルダリストの一例を示す図である。図16に示すフォルダリスト1601は、図15に示すUIパーツの定義データを表示した例である。例えば、左のセレクトボックス内でデータがセレクトされると、それに応じて図16に示すフォルダリストが再描画される。
【0069】
(レンダリング)
次に、上記のUI定義データ、画面構成などを用いて、PC103でのレンダリングと、MFP101でのレンダリングとについての概略を説明する。図17は、レンダリングの例を説明する図である。図17(A)は、PC103でのレンダリングの概略を示す。
【0070】
まず、PC103は表示画面の表示要求を行う。表示要求には、表示画面を示す識別情報や要求元のIPアドレス、PC103にログインしたユーザの情報などが含まれる。
【0071】
サーバ110の受信手段301は、PC103から表示要求を受けると、画面生成手段305に表示要求を出力する。画面生成手段305は、ユーザの情報及び表示画面の識別情報等により、どのUI定義データを用いればよいかを判断する。また、画面生成手段305は、IPアドレスなどから第1生成手段307、第2生成手段309のどちらを用いるかを決定する。ここで、PC103は、非同期通信に対応しているAjaxを利用することができるとする。
【0072】
第1生成手段307は、表示画面のUI定義データを取得し、取得したUI定義データと、UI定義データに含まれるUI部品の情報と、Ajaxを利用するJavaScript(登録商標)のプログラムとを含む第1画面情報をHTML形式で生成する。第1生成手段307は、生成した第1画面情報を、送信手段303を介してPC103に送信する。
【0073】
PC103は、受信したHTML形式の第1画面情報に含まれるJavaScript(登録商標)のプログラムを実行し、UI部品の情報を利用してUI部品をHTMLのDOM上に追加する。PC103は、ブラウザ上でJavaScript(登録商標)によって各UI部品のレンダリングを行う。例えば、表示データが必要なUI部品の場合、PC103は、初期描画時や他のUI部品の値(表示データ)が変更になったというイベントが発生した時にAjaxを利用してAPIからデータを取得する。
【0074】
サーバ110の第1生成手段307は、PC103からのデータ取得要求に対して、リクエストされたURLやパラメータ(メタデータや階層など)を参照して、PC103が必要とするデータをDB132から検索し、JSON形式で応答データを生成する。
【0075】
PC103は、JSON形式で応答データを取得すると、取得したデータをUI部品に表示するよう描画処理を行う。なお、複数のUI部品で表示データが必要な場合は、各UI部品で非同期にデータを取得できる。PC103は、上記のAPIを利用し、表示データを取得して描画することを繰り返す。
【0076】
図17(B)は、MFP101でのレンダリングの概略を示す。まず、MFP101は、表示画面の表示要求を行う。表示要求には、表示画面を示す識別情報や要求元のIPアドレス、MFP101を利用しているユーザの情報などが含まれる。
【0077】
サーバ110の受信手段301は、MFP110から表示要求を受けると、画面生成手段305に表示要求を出力する。画面生成手段305は、ユーザの情報及び表示画面の識別情報により、どのUI定義データを用いればよいかを判断する。また、画面生成手段305は、非同期通信に対応していないMFP101からの要求であるため、第2生成手段309を用いることを決定する。
【0078】
第2生成手段309は、表示画面のUI定義データに含まれるUI部品の定義情報をもとにレンダリング関数を呼び出して、各UI部品に表示する表示データを取得する。第2生成手段309は、UI定義データとパラメータ(メタデータや階層など)を用いて表示データを検索し、表示データを表示するUIパーツを含む画面の第2画面情報をHTML形式で生成する。このとき、画面生成手段309は、1ページ分のHTML(第2画面情報)をMFP101に送信する。MFP101は、取得したHTMLを用いて表示画面を描画する。
【0079】
また、表示しているUI部品の表示データが変更された場合、他のUI部品の再描画が必要であれば、MFP101は、サーバ110に対し、再度表示要求を行う。サーバ110は、再度表示要求を受けた場合、前述した処理と同様にして1ページ分のHTML形式の第3の画面情報をMFP101に送信する。
【0080】
ここで、ビュー(タブ)設定の例について説明する。実施例では、各装置はタブを用いてビューを切り替えることも可能である。図18は、PC用のタブ設定の一例を示す図である。図18は、「文書リスト」を表示する簡単なビューの例を示す。図18に示すように、枠1801で、このビューに表示するデータを取得するデータのURLを指定する。ここでは、「cabinets/A_project/entries.json」に保存されているデータを取得することを意味する。また、「pane」は、どこのペインに属するかを示す。「per_page」は、1ページに表示するデータ数を示す。この例では、1ページに10個のドキュメントが表示されることを意味する。
【0081】
図19は、MFP用のビュー設定の一例を示す図である。図19に示す枠1901で、取得する表示データの種類を指定する。図19に示す例では、「A_project」というフォルダに保存されているファイル(「entries」)を取得する。枠1903では、取得する表示データの条件を指定する。図19に示す例では、1ページに5つのファイルを表示することを意味する。
【0082】
次に、HTMLソースと表示画面との関係について説明する。図20は、PC用のHTMLソースの一例を示す図である。図20に示す枠2001では、JavaScript(登録商標)のプログラムの読み込みを行う。枠2003では、UI部品の表示データの埋め込みを行う。ライン2005などでは、ログアウトボタンなど共通の部分が定義される。ライン2007などでは、タブの切替を行う部分である。枠2009では、実際にUI部品が設置されるDIV要素が定義される。第1生成手段307は、例えば図20に示す画面情報を生成し、PC103に送信する指示を出す。PC103は、図20に示すような画面情報を受信し、受信した画面情報に基づいて表示画面を描画する。図20に示す画面情報は、第1生成手段307により生成される。PC103は、図20に示すような画面情報を受信し、受信した画面情報に基づいて表示画面を描画する。
【0083】
図21は、PC用の画面の一例を示す図である。図21は、図20に示す画面情報を描画した例を示す。図21に示す画面には、図20に示す枠2003の「title」の「文書リスト」が表示され、「disp_fields」の「文書名」、「Size」、「更新日時」が順に表示される。また、枠2003の「per_page」の通り、最大「10」個のファイルが1ページに表示される。
【0084】
次に、図22は、MFP用のHTMLソースの一例を示す図である。図22に示す枠2201は、印刷ボタン用のMFP特有のJavaScript(登録商標)が記載されている。枠2203は、HTMLに埋め込まれたファイルのリストを表す。つまり、図19に示す枠1901により取得された文書が、枠1903の条件に従って図22に示す枠2203内に埋め込まれている例である。第2生成手段309は、例えば図22に示す画面情報を生成し、MFP101に送信する指示を出す。MFP101は、図22に示すような画面情報を受信し、受信した画面情報に基づいて表示画面を描画する。
【0085】
図23は、MFP用の画面の一例を示す図である。図23は、図22に示す画面情報を描画した例を示す。図23に示す画面には、図22に示す枠2203内の「Title」と「Size」とボタンとが表示される。また、図19の枠1903に示す通り、1ページには最大5つのファイルが表示される。
【0086】
次に、PC103が、APIを利用して表示データを取得する例について説明する。図24は、JSONデータの取得とUI部品の描画の一例を示す図である。PC103は、図24の下部のJSON形式のURLから取得してきた表示データを、ブラウザ上でAjaxを利用して描画する。図24に示す例では、URLが示す位置に格納されているファイルを表示する。このように、実施例におけるPC103は、セレクトボックスでデータが選択されると、Ajaxを利用してJSON形式で表示データを取得し、表示画面を再描画する。
【0087】
<動作>
次に、画面制御システム100の動作について説明する。図25は、ログインの一例を示すシーケンス図である。図25に示すステップS101で、PC103は、ブラウザを用いてサーバ110に対し、ページリクエストを行う。
【0088】
ステップS102で、サーバ110は、ログイン用のチケットがリクエストに含まれていないため、ユーザ管理サーバにリダイレクトする。ステップS103で、ユーザ管理サーバは、ログイン画面をPC103に送信する。
【0089】
ステップS104で、PC103は、ログインするための情報をユーザ管理サーバに送信する。ログインするための情報とは、組織情報、ユーザ情報、パスワードなどである。
【0090】
ステップS105で、ユーザ管理サーバは、認証が成功すると、ログイン用のチケットをPC103に送信するとともに、サーバ110へのリダイレクトを行うようPC103に指示する。
【0091】
ステップS106で、PC103は、ログイン用のチケットとともにページリクエストをサーバ110に対して行う。ステップS107で、サーバ110は、ログイン用のチケットを確認し、リクエストされたページのHTMLソース(図20参照)をPC103に送信する。ブラウザによる描画処理は図26を用いて説明する。なお、ユーザ管理サーバは、サーバ110に含まれる構成であってもよい。
【0092】
図26は、画面の描画処理の一例を示すシーケンス図である。図26に示すステップS201で、PC103は、ログイン用のチケットを含むページリクエストをサーバに110に行う。
【0093】
ステップS202で、サーバ110は、リクエストされたページのHTMLソースをPC103に送信する。HTMLソースには、ペインやUIの定義データを含む。
【0094】
ステップS203で、PC103は、HTMLソースのヘッダ内に記載されているCSS(Cascading Style Sheets)、JavaScript(登録商標)をサーバ110に要求する。
【0095】
ステップS204で、サーバ110は、要求されたCSS、JavaScript(登録商標)をPC103に送信する。ステップS205で、PC103は、取得したHTMLソースやCSS、JavaScript(登録商標)に基づき、画面のレンダリングが行われる。UI部品は初期化され、UI部品が描画されていく。このとき、複数のUI部品がある場合、Ajaxを利用して非同期に描画が実行される。
【0096】
ステップS206で、PC103は、UI部品に表示データがある場合(例えば、URLが記述されている場合)、サーバ110に対し、UI部品用の表示データを要求する。ステップS207で、サーバ110は、要求された表示データをJSON形式のデータで生成し、PC103に送信する。
【0097】
PC103は、サーバ110からJSONデータを取得すると、JavaScript(登録商標)を実行し、画面の再描画を行なう。
【0098】
以上の構成により、サーバ110は、ページリクエストをした装置が非同期通信に対応しているか否かで画面情報の生成方法を変更し、各装置に適した画面情報をHTML形式で生成することができる。
【0099】
<DBの構造>
次に、DB132に保存されるデータのデータ構造の一例を説明する。以下、説明するDB132のデータ構造は、フォルダ階層になっており、階層に意味を持たせる。さらに、各階層のフォルダに付与され、階層の意味に関連するメタデータを付与してもよい。
【0100】
このデータ構造を用いることで、サーバ110は、個々の業務に合わせてUIのカスタマイズをしたり、ビューのアクセス制限をしたりすることが容易になる。
【0101】
図27は、フォルダ階層の概要を説明する図である。図27に示すように、フォルダ階層の定義を「キャビネット(cabinet)」とし、キャビネット毎に階層の定義付けを行う。例えば、第1階層を「顧客」とし、第2階層を「図面番号」とし、第3階層を「案件」とする。また、各階層のフォルダには、階層の定義に関連するメタデータを付与することもできる。例えば、第1階層のフォルダに、「顧客」に関連するメタデータとして「業種」、「地区」を付与し、第2階層のフィルダに、「図面番号」に関連するメタデータとして「製品種別」、「材料」を付与し、第3階層のフォルダに、「案件」に関連するメタデータとして「案件状態」、「納期」、「個数」を付与する。
【0102】
各フォルダには、文書ファイル(ドキュメント)が保存される。また、文書ファイルには、文書タイプが付与され、さらにメタデータを付与することも可能である。例えば、文書タイプ「見積書」の文書ファイルには、「文書状態」、「送付状態」のメタデータを付与する。
【0103】
また、キャビネット毎に異なる階層の定義を行うこともできる。さらに、契約アカウント毎に、異なるキャビネットを有することもできる。また、階層毎にUI部品を定義しておくことで、階層に応じた表示画面を生成しやすくする。
【0104】
次に、フォルダ階層に関するデータについて説明する。図28は、フォルダ階層に関するデータのデータ構造の一例を示す図である。図28(A)は、フォルダ定義情報の一例を示す図である。
【0105】
図28(A)に示す例では、フォルダ定義情報は、フォルダ定義情報の識別子2800、組織ID2801、フォルダ階層のタイトル、フォルダ階層の定義2802、各階層のフォルダに付与され、階層の定義に関連するメタデータの定義2803、ファイルに付与されるメタデータの定義2804、フォルダに付与されるメタデータ2805、ファイルに付与されるメタデータ2806などを含む。
【0106】
フォルダ階層の定義2802は、各階層にフォルダの定義がなされ、各階層に意味を持たせる。例えば、フォルダ定義情報「2」では、階層1(layer_0)に「部署名」、階層2(layer_1)に「営業担当者」、階層3(layer_2)に「顧客名」、階層4(layer_3)に「案件名」が定義されている。
【0107】
フォルダに付与されるメタデータの定義2803は、各階層に付与され、階層の定義に関連するメタデータが定義される。例えば、図28(A)に示す例では、階層4に「stag_0」が付与されている。「stag_0」は、「処理状態」を示す。これは、階層4のフォルダには、処理状態(例えば、未処理、処理済み)を示すメタデータが付与されることを意味する。
【0108】
ファイルに付与されるメタデータの定義2804は、フォルダに保存されるファイルに付与されるメタデータを定義する。例えば、図28(A)に示す例では、「e_stag_0」がファイルに付与されている。「e_stag_0」は、「文書タイプ」を示すメタデータである。これは、ファイルには、文書タイプ(例えば、見積書、注文書など)を示すメタデータが付与されることを意味する。
【0109】
メタデータには、文字列を示すメタデータ「stag(string-tag)」と年月日を示すメタデータ「dtag(data-tag)」などがある。メタデータは、他にも「ntag(number-tag)」や「btag(boolean-tag)」などがあってもよい。また、フォルダに付与されるメタデータと、ファイルに付与されるメタデータとは識別可能である。なお、フォルダに付与されるメタデータは、そのフォルダに保存されるファイルに対応付けられる。
【0110】
図28(B)は、フォルダ情報の一例を示す図である。フォルダ情報は、フォルダ毎に、フォルダID2820、組織ID2801、フォルダ定義情報の識別子2800、親フォルダの識別子28021、どの階層かを示すレベル2822、各階層の定義に対応するデータ2823、フォルダに付与されるメタデータの定義に対応するメタデータ2824などを含む。
【0111】
なお、フォルダ情報の各階層は、自階層以上の階層のフォルダ定義に対応するデータを保持してもよい。例えば、階層(level)が「2」のフォルダ情報として、「layer_0」の「東京本社」、「layer_1」の「若本」、「layer_2」の「BBB工業」が保持されている。これにより、上位階層のフォルダの定義に対応するデータを取得する際、親フォルダを辿らなくても容易に取得可能となる。また、階層の定義に対応するデータが、その階層のフォルダの名称とされてもよい。
【0112】
メタデータ2824は、「stag_0」2805に対応するデータである。「stag_0」2805が「処理状態」を定義しているため、メタデータ2824は、処理状態を示すデータとなる。図28(B)に示す例では、メタデータ2824は、「処理済み」を示す。
【0113】
図28(C)は、ファイル情報の一例を示す図である。ファイル情報は、ファイルID2840、組織ID2801、どのフォルダに保存されているかを示すフォルダID2820、ファイルのタイトル2841、ファイルが格納されている位置を示すURL2842、ファイルサイズ2843、ファイルのメタデータ2844などを含む。
【0114】
なお、ファイルのメタデータ2844は、フォルダのメタデータ2824と識別可能である。例えば、ファイルのメタデータ2844には、「e_stag」というように、ファイルのメタデータを示す「e_」が付与されている。これにより、フォルダのメタデータとファイルのメタデータとを区別して管理、検索などをすることができる。
【0115】
図28に示すデータ構造を有することで、フォルダ階層に意味を持たせ、その階層のフォルダにメタデータを付与してファイルを管理することができる。サーバ110は、階層毎にUI部品を定義することで、階層に沿った形式でのUIのカスタマイズなどが可能になる。ユーザは業務内容に合わせてフォルダ階層を生成する場合が多いので、階層に沿った形でUIがカスタマイズされると、業務に連動したUIが生成されることになる。
【0116】
次に、階層の定義とメタデータの例について説明する。図29は、階層の定義とメタデータの一例を示す図である。図29(A)は、階層の定義を示す図である。図29(A)に示す例では、第1階層は「部署名」、第2階層は「営業担当者」、第3階層は「顧客名」、第4階層「案件名」が階層に定義づけられている。図29(B)は、各階層のフォルダに付与されるメタデータの定義を示す図である。図29(B)に示す例では、第4階層のフォルダには、「状態」がメタデータとして定義付けられている。なお、第1階層のフォルダには、「所在地」、第3階層のフォルダには、「業種」などのメタデータが定義付けられてもよい。
【0117】
図30は、図28に示すデータの画面例を示す図である。表示画面3001は、領域3003と領域3005を含む。領域3003は、フォルダ定義情報及びフォルダ情報から記述されるフォルダ構成が描画される。領域3003のフォルダ構成は、図28(A)に示すフォルダ定義情報の識別情報「2」のフォルダ構成である。
【0118】
例えば、図30の領域3003に示すように、東京本社(第1階層)、若本(第2階層)、BBB工業(第3階層)、計測器部品受注(第4階層)が階層順に描画される。領域3003に示すフォルダ構成は、第3階層までの例である。
【0119】
図30の領域3005は、ファイル情報から記述されるファイル構成が描画される。図28(C)を参照すると、フォルダID「4」の「計測器部品受注」フォルダには、「見積書.pdf」、「注文書.pdf」、「納品書.pdf」が保存されている。これにより、領域3005には、「見積書.pdf」、「注文書.pdf」、「納品書.pdf」が描画される。
【0120】
図30に示す画面の場合、第1生成手段307は、各フォルダに対し、フォルダの格納位置を示すURLを記述しておく。PC103は、フォルダへのダブルクリックなどでイベントを検出し、ダブルクリックされたフォルダに対応するURLから表示データを取得し、取得した表示データを領域3005に再描画する。この場合の表示データは、文書ファイルである。
【0121】
(ビュー及びビューセット)
次に、ビュー及びビューセットについて説明する。ビューセットとは、1又は複数のビューがグループ化され、グループ内のビューが切替可能である画面のことをいう。実施例において、サーバ110は、ビューセットを定義しておくことで、例えば部署毎に表示可能なビューを容易に切り替えることができる。
【0122】
図31は、ビューセットデータの一例を示す図である。図31に示すように、ビューセットには、ビューセットID(id)、組織ID(organization_id)、タブを表示するためのURLのパス名(tiltle)、表示用のタブ名(display_name)、UI部品が定義されている情報(config)、ビューのタイプ(view_type)、スキン(skin)、ビューの順番(view_order)が関連付けられている。
【0123】
例えば、ビューセットID「2」には、URLのパス名「factory」、タブ名「工場向け」、ビュータイプ「PC」、スキン「smoothness」、順番「1、4」が設定されている。「スキン」は、画面の色調などを変更して、ユーザに違いを強調するためのデータである。例えば「smoothness」、「normal」などがある。「smoothness」は、「normal」に比べて明度や彩度を変更し滑らかなイメージを与える色調にする。また、ビューセットの「config」には、ロゴやログアウトボタンなど共通のUI部品が定義されている。「view_order」には、ビューの識別情報が左からの表示順に設定されている。「view_order」の「*」は、「view_type」が同じ全てのビューを示すと解釈される。
【0124】
図32は、ビュー(タブ)データの一例を示す図である。図32に示すように、ビューのデータ構造は、ビューセットと同様である。図32に示す「config」は、一覧を表示するような場合、例えば図15に示すようなドキュメントリストの定義データが設定される。ここで、図31に示す「view_order」の「*」は、「view_type」が同じ「PC」のビューID「1,2,3,4」を示すと解釈される。
【0125】
図33は、ビュー形成のためのデータの一例を示す図である。図33(A)は、図31に示すようなビューセットデータを形成するために定義されたデータを示す。図33(A)に示す例では、種類(string、text、datetime、integerなど)に応じてデータが定義されている。例えば、「view_type」は、文字列形式(string)であり、「config」は、テキスト形式(text)であり、「view_order」は、整数形式(integer)である。
【0126】
図33(B)は、図32に示すようなビューデータを形成するために定義されたデータを示す。例えば、「display_name」は、文字列形式(string)である。図33に示すように、各データには、定義された形式でデータが入力される。
【0127】
図34は、ビューのURL、ビュー、ビューセットの画面切替例を説明する図である。図34に示す例では、図31に示すビューセットのid「2」のビューセットについて説明する。
(1)ビューセットのid「2」のビューセットを表示する場合
PC103は、例えば「https://host_name/APP_name/view/factory」のURLを表示する場合、URL末尾の「factory」が示すビューセットを表示する。また、ビューセット「factory」は、ビューのid「1」が一番上に表示される。なお、ビューのid「1」は、図32に示す例によると、「案件一覧」が表示される。
(2)ビューセットのid「2」の二番目のビューを表示する場合
PC103は、例えば「https://host_name/APP_name/view/factory/drawing」のURLを表示する場合、URL末尾の「drawing」が示すビューを表示する。
(3)ビューセットのid「1」のビューセット(display_name=Default)を表示した場合
PC103は、例えば「https://host_name/APP_name/view/all」のURLを表示した場合、図34の下部に示すような画面が表示される。ビューセットのid「1」のビューセットは、「view_type」が「PC」であるビュー全てを表示可能とする。このとき、ビューのidの番号が一番小さい「1」の「案件一覧」が表示される。また、ユーザが「未回答一覧」のタブを押下すると、ビューのid「2」を表示するため(図32参照)、PC103のブラウザは、URL「・・・/view/all/to_be_respond」により取得した表示画面を表示する。
【0128】
上記のようなビューやビューセットのデータ構造がDB132に保存されることで、例えば、同じ会社であっても、ビュー(タブ)毎に「config」を作成し、保存しておくことで、タブ毎に違った見せ方、使い方をすることができる。
【0129】
画面生成手段305は、ビューセットの表示要求を受けた場合、上記のようなタブのURLを第1画面情報に含めておくことで、PC103のブラウザはAjaxを利用して各タブを非同期通信により取得することができる。
【0130】
図35は、タブの違いによる画面の違いを説明する図である。図35(A)は、案件検索用のタブを表示する画面例である。図35(B)は、見積り依頼対応用のタブを表示する画面例である。このように、同じ会社であっても、タブによって、違う見せ方(例えばスキン)や違う使い方(コンポーネントの数)をすることができる。
【0131】
また、図31を用いて説明したように、実施例におけるサーバ110は、タブの組み合わせをビューのセットとして管理することができる。例えば、営業部向けタブセット、製造部向けタブセット、経理向けタブセットなどである。
【0132】
図36は、ビューセットとタブの関係を示す図である。図36(A)は、「Advanced」セットであるため、「案件」タブ、「見積り依頼対応」タブ、「製造予定日順」タブの全てが表示可能である。図36(B)は、「Simple」セットであるため、「案件」タブしか表示できないし、案件リストについても図36(A)に比べると項目が少ない。これは、UI定義データで設定するコンポーネントを少なくすればよい。上記のように、各タブのUI定義データやビューセット画面の定義データなどをDB132に保存しておく。
【0133】
また、上記例では、PC103用のビューやビューセットの例を示したが、図17に基づいて、MFP101からタブの切替要求を受けたサーバ110は、切替後のタブ1ページ分のHTMLを生成して、MFP101に送信すればよい。よって、MFP101でもDB132に保存されているビューセットの表示は可能である。
【0134】
<ビュー制限>
図37は、アカウント情報の一例を示す図である。図4に示す例では、アカウント情報は、ユーザID3701、ログイン名3703、パスワード3705、ユーザに割り当てられたグループ3707が関連付けられている。例えばユーザID「1」は、ログイン名が「tanabe」である。また、ユーザID「3」は、ログイン名が「iwata」であり、「managers」グループに属する。
【0135】
図38は、組織情報の一例を示す図である。図38に示す例では、組織情報は、組織ID3801、組織名3803、ディスプレイに表示される名称を示す表示名3805、所在地を示すタイムゾーン3807、使用言語を示す言語3809が関連付けられている。例えば組織ID「1」は、組織名「CompanyA」であり、表示部への表示名は「A社」であり、所在地は「Tokyo」であり、使用言語は「Japanese」である。
【0136】
図39は、ユーザ情報の一例を示す図である。図39に示す例では、ユーザID3701は、図37に示す「id」と同じ識別情報であり、組織ID3801は、図38に示す「id」と同じ識別情報である。
【0137】
図39に示す例では、ユーザ情報は、ユーザID3701、組織ID3801、ログイン名3901、タグ(第1メタデータ)3903、タグ(第2メタデータ)3905やグループ3907が関連付けられている。例えば、ユーザID「2」は、組織ID「3」であり、ログイン名が「wakamoto」であり、第1メタデータである「u_stag_0」が「営業部」であり、第2メタデータである「u_stag_1」が「埼玉工場」である。このようにユーザ情報にはメタデータを付与することができるようにする。
【0138】
ユーザ認証手段311は、装置から取得したログイン名及びパスワードと、図37に示すアカウント情報のログイン名及びパスワードとを照合する。照合が一致すれば、ユーザ認証手段311は、ユーザIDを基に、図38に示すユーザ情報を参照して組織IDを取得し、認証チケットにユーザID、組織ID、及びメタデータを含める。実施例では、これらのユーザ情報を用いてビューに対してアクセス制限を加える。
【0139】
図40は、ビューフィルタ情報の一例を示す図である。図40に示すビューフィルタには、フィルタid、組織id(organization_id)、ビューセットid(view_set_id)、タイトル(title)、説明(description)、条件(user_condition)が関連付けられている。
【0140】
例えば、id「1」のフィルタ情報は、組織id「3」であり、ビューセットidが「1」であり、タイトルが「管理部門用」であり、条件が「"u_stag_0":"管理部"」である。このフィルタが示すのは、管理部は全てのPC用のビューが見えるということである。
【0141】
アクセス制御手段313又は画面生成手段305は、ビューのアクセス制限を以下の手順で行う。
a)リクエストURLを解析
b)ログインユーザの情報をDBから取得
c)ビューセットをDBから取得
d)ビューフィルタをDBから取得
e)ログインユーザが閲覧可能なビューセットのリストを生成(ビューセット切替セレクトボックス用)
f)リクエストされているビューセットが表示可か判定(許可されない場合はエラーを返す)
g)ビューセットに含まれるビューをDBから取得(ビューの切替タブ用)
h)リクエストされているビューの「config」情報を元に、JavaScript(登録商標)とUI部品の情報を含むHTML形式の画面情報を生成して装置に返す。
【0142】
a)〜c)の処理は、画面生成手段305が行う。次に、アクセス制御手段313は、d)において、ログインのユーザのメタデータや組織情報などに基づいてビューフィルタを取得すると、ログインユーザが閲覧可能なビューセットのidを画面生成手段305に出力する。
【0143】
画面生成手段305は、e)において、アクセス制御手段313から取得したビューセットのidに基づいてビューセットのリストを生成する。アクセス制御手段313は、f)でリクエストされたURLのビューセットが表示可か判定する。例えば、アクセス制御手段313は、リクエストされたURLのビューセットのURLのパス名が、取得されたビューセットのidに対応するURLのパス名と一致すれば、そのビューセットは表示可と判定する。g)〜h)の処理は、画面生成手段305が行う。
【0144】
また、アクセス制御手段313は、先にd)のビューフィルタを取得し、ビューフィルタの制約のもとでビューセットのDBから表示可能なビューのリストを取得することも可能である。
【0145】
これにより、ビューフィルタ情報を用いることで、ユーザに関連する情報を用いて、ビューセットにアクセス制限を加えることができる。ユーザに関する情報とは、ユーザのメタデータ、ユーザの組織情報、ユーザIDなどである。
【0146】
<API>
図41は、APIの例を示す図である。図41は、サーバ110で用いるAPI(Application Program Interface)の例を示す図である。図41に示すパス4101「cabinets/{id}/folders.json」は、フォルダの一覧を取得するときのAPIである。例4102は、レイヤー「2」(第2階層)かつレイヤー「0」の定義に対応するデータが「JP」であるフォルダ一覧を取得するAPIの例である。このときフォルダ一覧には、レイヤー2以上の階層の定義に対応するデータが表示される。
【0147】
パス4103「cabinets/{id}/layers.json」は、指定した階層のフォルダ名の一覧を取得するときのAPIである。例4104は、レイヤー「1」(第1階層)のフォルダのフォルダ名の一覧を取得するAPIの例である。このときフォルダ名一覧には、例えば、「2007.01」「2007.02」などが表示される。
【0148】
なお、「layers」は、「folders」と違いがあり、ユニークなデータとなっている。例えば、担当者名でフォルダを作成すると、全ての年度に担当者名のフォルダが出来る。このとき、「folders」で階層を指定した場合、同じ担当者のフォルダが何度も表示されるが、「layers」で指定した場合、全て異なる担当者のフォルダが表示される。
【0149】
パス4105「cabinets/{id}/entries.json」は、ファイル一覧を取得するときのAPIである。例4106は、レイヤー「2」(第2階層)のフォルダ名が「00000012344891」であるフォルダに保存されているファイル一覧を取得するAPIの例と、フォルダIDが「2108」であるフォルダに保存されているファイル一覧を取得するAPIの例である。このときファイル一覧には、例えば、ファイルID、位置、サイズ、タイトルなどが表示される。
【0150】
パス4107「cabinets/{id}/tags.json」は、タグ候補の一覧を取得するときのAPIである。例4108は、「stag_2」の候補となるタグの一覧を取得するAPIの例である。このとき、キャビネットID、フォルダID、タグ名、タグタイプなどが表示される。図41に示すAPIを用いて、PC103は、各種データを取得することが可能となる。
【0151】
以上、実施例によれば、各装置に対応するUI画面を適切に表示制御することができる。また、実施例によれば、ペイン単位でイベント発生を検知するため、UI部品毎に対応付けを行わなくてもよい。また、実施例によれば、ビューセットやタブを効率よく用いることで、例えば部署毎に表示可能なビューを容易に切り替えることができる。また、実施例によれば、ビューフィルタ情報を用いることで、ユーザに関連する情報に基づいてビューのアクセスを適切に制限することができる。
【0152】
また、携帯端末でAjaxを利用可能であれば、画面生成手段305は、モバイル用もPC用と同様にして画面情報を生成することができる。このとき、モバイル用は表示画面が小さいので、表示するUI部品を少なくしたり、表示データの項目を減らしたりすればよい。
【0153】
実施例のサーバで実行されるプログラムは、前述した各手段を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体からプログラムを読み出して実行することにより上記各手段が主記憶装置上にロードされ、上記各手段が主記憶装置上に生成されるようになっている。
【0154】
なお、本発明は、上記実施例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施例に示される全構成要素からいくつかの構成要素を削除してもよい。
【符号の説明】
【0155】
101 PC
103 MFP
105 携帯端末
107 MFP
110 サーバ
113 画面制御部
115 インタフェース部
119 メタデータ管理部
121 画面データ管理部
133 DB
301 受信手段
303 送信手段
305 画面生成手段
307 第1生成手段
309 第2生成手段
311 ユーザ認証手段
313 アクセス制御手段
【先行技術文献】
【特許文献】
【0156】
【特許文献1】特開2009−48397号公報

【特許請求の範囲】
【請求項1】
情報処理装置と、画像形成装置と、サーバとが接続された画面制御システムであって、
前記サーバは、
画面のUI部品が定義されているUI定義情報を画面毎に記憶する第1記憶手段と、
前記UI部品に表示する表示データを記憶する第2記憶手段と、
前記情報処理装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報と、該UI定義情報に含まれるUI部品に表示する表示データを非同期通信で取得するためのプログラムとを含む第1画面情報を生成する第1生成手段と、
前記画像形成装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報に含まれるUI部品に表示する表示データをレンダリング関数を用いて取得し、該UI部品及び該UI部品に表示する表示データを含む画面を描画するための第2画面情報を生成する第2生成手段と、
前記第1生成手段により生成された第1画面情報を前記情報処理装置に送信し、又は、前記第2生成手段により生成された第2画面情報を前記画像形成装置に送信する送信手段と、
を備える画面制御システム。
【請求項2】
前記第1記憶手段は、
1又は複数の画面を切替可能にグループ化した画面を示すセット画面の定義情報をさらに記憶し、
前記第1又は第2生成手段は、
前記セット画面の表示要求を受けた場合、前記セット画面に含まれる画面を選択可能にして前記第1又は第2画面情報をそれぞれ生成する請求項1記載の画面制御システム。
【請求項3】
前記第1生成手段は、
前記情報処理装置からAPIを利用してUI部品に表示する表示データの取得要求を受けた場合、要求された表示データを検索し、検索された表示データを、前記APIを利用して取得可能なデータ形式で生成する請求項1又は2記載の画面制御システム。
【請求項4】
前記第2生成手段は、
前記画像形成装置からUI部品に表示される表示データの変更による再描画要求を受けた場合、要求された表示データを検索し、検索された表示データが表示されるUI部品を含む画面を描画するための第3画面情報を生成する請求項1乃至3いずれか一項に記載の画面制御システム。
【請求項5】
前記画面は、前記UI部品を表示する所定の表示領域が1又は複数設定されており、前記表示領域は、他の表示領域内でのUI部品の表示データの変更に基づいて自表示領域のUI部品に表示される表示データの再描画を行なうよう定義されている請求項1乃至4いずれか一項に記載の画面制御システム。
【請求項6】
前記第2記憶手段は、
ユーザの認証情報及びユーザの所属や所在地を含むメタデータと、前記メタデータと前記セット画面の識別情報とを関連付けたフィルタ情報をさらに記憶し、
ログインされたユーザのメタデータに対応するセット画面の識別情報を、前記フィルタ情報を参照して取得し、取得したセット画面の識別情報に基づくセット画面を前記ユーザがアクセス可能とするアクセス制御手段をさらに備える請求項2記載の画面制御システム。
【請求項7】
前記第2記憶手段は、
フォルダ階層の階層毎の定義を示す階層定義、及び付与されるメタデータの定義を示すメタデータ定義を含むフォルダ定義データと、
前記フォルダ階層内のフォルダ毎に、該フォルダの階層以上のフォルダ定義に対応するデータ、及び該フォルダに付与されるメタデータ定義に対応するメタデータを含むフォルダデータと、
前記フォルダ階層内のフォルダの階層及び該フォルダに付与されたメタデータに関連付けられるファイルと、を記憶し、
前記表示データは、前記フォルダ定義データ、前記フォルダデータ、又は前記ファイルのいずれかのデータである請求項1乃至4いずれか一項に記載の画面制御システム。
【請求項8】
情報処理装置と、画像形成装置とに接続されるサーバであって、
画面のUI部品が定義されているUI定義情報を画面毎に記憶する第1記憶手段と、
前記UI部品に表示する表示データを記憶する第2記憶手段と、
前記情報処理装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報と、該UI定義情報に含まれるUI部品に表示するデータを非同期通信で取得するためのプログラムとを含む第1画面情報を生成する第1生成手段と、
前記画像形成装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報に含まれるUI部品に表示する表示データをレンダリング関数を用いて取得し、該UI部品及び該UI部品に表示する表示データを含む画面を構成する第2画面情報を生成する第2生成手段と、
前記第1生成手段により生成された第1画面情報を前記情報処理装置に送信し、又は、前記第2生成手段により生成された第2画面情報を前記画像形成装置に送信する送信手段と、
を備えるサーバ。
【請求項9】
情報処理装置と、画像形成装置とに接続され、画面のUI部品が定義されているUI定義情報を画面毎に記憶する第1記憶手段と、前記UI部品に表示する表示データを記憶する第2記憶手段とを備えるサーバにおける画面制御方法であって、
前記情報処理装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報と、該UI定義情報に含まれるUI部品に表示するデータを非同期通信で取得するためのプログラムとを含む第1画面情報を生成する第1生成ステップと、
前記画像形成装置から画面の表示要求を受けた場合、表示要求を受けた画面に対応するUI定義情報に含まれるUI部品に表示するデータをレンダリング関数を用いて取得し、該UI部品及び該UI部品に表示するデータを含む画面を構成する第2画面情報を生成する第2生成ステップと、
前記第1生成ステップにより生成された第1画面情報を前記情報処理装置に送信し、又は、前記第2生成ステップにより生成された第2画面情報を前記画像形成装置に送信する送信ステップと、
を有する画面制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate


【公開番号】特開2011−197834(P2011−197834A)
【公開日】平成23年10月6日(2011.10.6)
【国際特許分類】
【出願番号】特願2010−61684(P2010−61684)
【出願日】平成22年3月17日(2010.3.17)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】