以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
[第一の実施形態]
<システム構成>
まず、第一の実施形態に係るWebシステム1のシステム構成について、図1を参照しながら説明する。図1は、第一の実施形態に係るWebシステム1のシステム構成の一例を示す図である。
図1に示すWebシステム1は、サーバ装置10と、機器20とを有し、インターネット等の広域的なネットワークNを介して通信可能に接続されている。なお、ネットワークNは、例えば、社内LAN(Local Area Network)等であっても良い。また、サーバ装置10及び機器20は、有線接続に限られず、無線接続により通信可能に接続されていても良い。
サーバ装置10は、Webサーバやアプリケーションサーバとして機能する情報処理装置である。サーバ装置10には、Webサーバやアプリケーションサーバとして機能させるためのサーバプログラム30がインストールされている。
サーバ装置10は、サーバプログラム30により、機器20に対してシングルページアプリケーション(SPA:Single Page Application)を提供する。なお、サーバプログラム30は、複数のプログラム又はモジュールにより構成されていても良い。また、サーバ装置10は、一台以上の情報処理装置により実現されていても良い。
機器20は、Webクライアントとして機能するMFP(MultiFunction Peripheral)等の画像形成装置である。機器20には、Webブラウザ40がインストールされている。機器20のユーザは、Webブラウザ40を用いて、サーバ装置10から提供されるシングルページアプリケーションを利用することができる。
なお、以降では、機器20は、画像形成装置であるものとして説明するが、これに限られない。機器20は、例えば、ノート型PC(パーソナルコンピュータ)、デスクトップ型PC、スマートフォン、タブレット端末、プロジェクタ、テレビ会議システム、デジタルカメラ、ゲーム機器等であっても良い。換言すれば、機器20は、Webブラウザ40がインストールされ、電子データの入力又は出力を行うことができる各種の電子機器であれば良い。
ここで、機器20のWebブラウザ40により表示されたシングルページアプリケーションにおける画面遷移について、図2を参照しながら説明する。図2は、第一の実施形態に係る画面遷移の一例を説明する図である。なお、機器20のユーザは、Webブラウザ40を用いて、HTML(HyperText Markup Language)やJavaScript(登録商標)等の各種情報をサーバ装置10から取得することで、シングルページアプリケーションを利用することができる。
図2に示すように、サーバ装置10により提供されるシングルページアプリケーションは、PageID「page1」のページ1と、PageID「page2」のページ2と、PageID「page3」のページ3とを表示するものとする。また、PageID「page1」のページ1には、TabID「page1/tab1」のタブ1と、TabID「page1/tab2」のタブ2とが含まれるものとする。
ここで、ページ1におけるタブ1が表示された画面G110において、ユーザにより、タブ切替ボタンG111が押下されたものとする。この場合、Webブラウザ40は、当該タブ切替ボタンG111に対応付けられたTabID「page1/tab2」に基づいて、ページ1におけるタブ2が表示された画面G120を表示する。
同様に、画面G120において、ユーザにより、タブ切替ボタンG121が押下されたものとする。この場合、Webブラウザ40は、当該タブ切替ボタンG121に対応付けられたTabID「page1/tab1」に基づいて、画面G110を表示する。
このように、本実施形態に係る機器20のWebブラウザ40は、各タブを識別するTabIDに基づいて、ページ内において各タブの表示を切り替えることができる。
また、画面G110において、ユーザにより、遷移ボタンG112が押下されたものとする。この場合、Webブラウザ40は、当該遷移ボタンG112に対応付けられたPageID「page2」に基づいて、ページ2が表示された画面G200を表示する。同様に、画面G120において、ユーザにより、遷移ボタンG122が押下された場合、Webブラウザ40は、当該遷移ボタンG122に対応付けられたPageID「page2」に基づいて、画面G200を表示する。
このように、本実施形態に係る機器20のWebブラウザ40は、各ページを識別するPageIDに基づいて、各ページを表示することができる。このことは、画面G110における遷移ボタンG113が押下された場合や画面G120における遷移ボタンG123が押下された場合、画面G200における遷移ボタンG201が押下された場合等も同様である。
また、画面G200において、ユーザにより、遷移ボタンG202が押下されたものとする。この場合、Webブラウザ40は、当該遷移ボタンG202に対応付けられたPageID「page1」に基づいて、画面G110及び画面G120のうち、最後に表示されていた画面(すなわち、最も直近に表示されていた画面)を表示する。
このように、本実施形態に係る機器20のWebブラウザ40は、遷移先のページにタブが含まれる場合には、各ページを識別するPageIDに基づいて、最も直近に表示されていたタブが表示された画面を表示する。
さらに、画面G300において、ユーザにより、遷移ボタンG301又は遷移ボタンG302が押下されたものとする。この場合、Webブラウザ40は、当該遷移ボタンG301又は遷移ボタンG302に対応付けられた指定(遷移元の画面を表示することを示す指定)に基づいて、当該遷移元の画面(すなわち、画面G300の直前に表示されていた画面)を表示する。
このように、本実施形態に係る機器20のWebブラウザ40は、遷移元の画面を表示することを示す指定に基づいて、直前に表示されていた画面を表示する。
以上のように、本実施形態に係る機器20のWebブラウザ40は、各画面におけるボタン等の表示部品に対応付けられたPageIDやTabID等に基づいて、シングルページアプリケーションにおける各画面を遷移させることができる。したがって、シングルページアプリケーションの開発者等は、各画面における表示部品に対して、遷移させたいページのPageIDやタブのTabID等を定義することで、容易に画面の遷移関係を作成することができるようになる。
<ハードウェア構成>
次に、本実施形態に係るサーバ装置10及び機器20のハードウェア構成について説明する。
まず、本実施形態に係るサーバ装置10のハードウェア構成について、図3を参照しながら説明する。図3は、第一の実施形態に係るサーバ装置10のハードウェア構成の一例を示す図である。
図3に示すサーバ装置10は、入力装置101と、表示装置102と、外部I/F103と、RAM(Random Access Memory)104とを有する。また、サーバ装置10は、ROM(Read Only Memory)105と、CPU(Central Processing Unit)106と、通信I/F107と、HDD(Hard Disk Drive)108とを有する。これらの各ハードウェアは、それぞれがバスBで接続されている。
入力装置101は、キーボードやマウス、タッチパネル等であり、各種の操作を入力するのに用いられる。表示装置102は、ディスプレイ等であり、サーバ装置10による処理結果を表示する。なお、入力装置101及び表示装置102の少なくとも一方は、必要なときにサーバ装置10に接続して利用する形態であっても良い。
通信I/F107は、サーバ装置10をネットワークNに接続するインタフェースである。これにより、サーバ装置10は、通信I/F107を介して通信を行うことができる。
HDD108は、プログラムやデータを格納している不揮発性の記憶装置である。HDD108に格納されるプログラムやデータには、サーバ装置10全体を制御する基本ソフトウェアであるOS(Operating System)、サーバプログラム30、OS上において各種機能を提供する各種のプログラム等がある。
なお、サーバ装置10は、HDD108に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えば、SSD:ソリッドステートドライブ)を利用するものであっても良い。また、HDD108は、格納しているプログラムやデータを所定のファイルシステムやDB(データベース)により管理している。
外部I/F103は、外部装置とのインタフェースである。外部装置には、記録媒体103a等がある。これにより、サーバ装置10は、外部I/F103を介して記録媒体103aの読み取りや書き込みを行うことができる。記録媒体103aには、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
ROM105は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM105には、サーバ装置10の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定等のプログラムやデータが格納されている。RAM104は、プログラムやデータを一時保持する揮発性の半導体メモリである。
CPU106は、ROM105やHDD108等の記憶装置からプログラムやデータをRAM14上に読み出し、処理を実行することで、サーバ装置10全体の制御や機能を実現する演算装置である。
本実施形態に係るサーバ装置10は、図2に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
次に、本実施形態に係る機器20のハードウェア構成について、図4を参照しながら説明する。図4は、第一の実施形態に係る機器20のハードウェア構成の一例を示す図である。
図4に示す機器20は、コントローラ201と、操作パネル202と、外部I/F203と、通信I/F204と、画像処理エンジン205とを有する。また、コントローラ201は、CPU211と、RAM212と、ROM213と、NVRAM214と、HDD215とを有する。
ROM213は、各種のプログラムやデータを格納している不揮発性の半導体メモリである。RAM212は、プログラムやデータを一時保持する揮発性の半導体メモリである。NVRAM214は、例えば設定情報等を格納している不揮発性の半導体メモリである。また、HDD215は、各種のプログラムやデータを格納している不揮発性の記憶装置である。HDD215に格納されるプログラムには、Webブラウザ40等がある。
CPU211は、ROM213やNVRAM214、HDD215等からプログラムやデータ、設定情報等をRAM212上に読み出し、処理を実行することで、機器20全体の制御や機能を実現する演算装置である。
操作パネル202は、ユーザからの入力を受け付ける入力装置と、表示を行う表示装置とを備えている。外部I/F2013は、外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。これにより、機器20は、外部I/F203を介して記録媒体203aの読み取りや書き込みを行うことができる。
なお、記録媒体203aには、例えば、ICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
通信I/F204は、機器20をネットワークNに接続するインタフェースである。これにより、機器20は、通信I/F204を介して通信を行うことができる。
画像処理エンジン205は、例えば、原稿を光学的に読み取って画像データを生成するスキャナ装置、用紙等のシート材への印刷を行うプロッタ装置、及びFAX通信を行うFAX通信装置等が含まれる。また、画像処理エンジン205には、例えば、印刷済みのシート材を仕分けるフィニッシャ、原稿を自動給送するADF(自動原稿給送装置)等が含まれていても良い。
本実施形態に係る機器20は、図4に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
<機能構成>
次に、本実施形態に係るWebシステム1の機能構成について、図5を参照しながら説明する。図5は、第一の実施形態に係るWebシステム1の機能構成の一例を示す図である。
図5に示すサーバ装置10は、画面応答部301を有する。当該機能部は、サーバ装置10にインストールされたサーバプログラム30が、CPU106に実行させる処理により実現される。
また、サーバ装置10は、画面情報記憶部302を有する。当該記憶部は、例えば、HDD108を用いて実現可能である。なお、当該記憶部は、サーバ装置10とネットワークNを介して接続される記憶装置を用いて実現されていても良い。
画面応答部301は、後述する機器20の画面要求部402からの画面取得要求に応じて、画面情報記憶部302から画面情報を取得する。そして、画面応答部301は、取得した画面情報を機器20に返信する。これにより、機器20には、シングルページアプリケーションが提供される。
画面情報記憶部302は、画面情報1000を記憶する。ここで、画面情報1000には、機器20がシングルページアプリケーションを利用するためのHTMLやCSS(Cascading Style Sheets)、JavaScript等の各種情報が含まれる。画面情報1000は、Webコンテンツの一例である。
図5に示す機器20は、入力受付部401と、画面要求部402と、表示処理部403と、画面管理部404とを有する。これら各機能部は、機器20にインストールされたWebブラウザ40が、CPU211に実行させる処理により実現される。
また、機器20は、画面管理情報記憶部405を有する。当該記憶部は、例えば、HDD215を用いて実現可能である。
入力受付部401は、ユーザからの各種操作の入力を受け付ける。例えば、入力受付部401は、ユーザからのシングルページアプリケーションの利用を開始するためのアプリ開始操作、シングルページアプリケーションにおける画面を遷移させるための画面遷移操作等の各種操作を受け付ける。
また、入力受付部401は、アプリ開始操作に応じて、シングルページアプリケーションにおける初期画面に表示されるページのPageIDが含まれる初期画面遷移指示を表示処理部403に送信する。同様に、入力受付部401は、画面遷移操作に応じて、遷移先の画面に表示されるページのPageID(又はTabID)が含まれる画面遷移指示を表示処理部403に送信する。
画面要求部402は、入力受付部401からの指示に応じて、サーバ装置10から画面情報1000を取得するための画面取得要求をサーバ装置10に送信する。
表示処理部403は、各種画面の表示に関する処理(すなわち、画面の遷移に関する処理)を行う。ここで、表示処理部403は、表示判定部411と、表示制御部412とを有する。
表示判定部411は、初期画面遷移指示や画面遷移指示等に含まれるPageIDやTabID等に基づいて、遷移先のページやタブを判定する。
表示制御部412は、表示判定部411により判定されたページやタブを画面に表示させる。これにより、機器20の操作パネル202上に各種画面が表示される(すなわち、機器20の操作パネル202上の画面が遷移する。)。
なお、表示処理部403は、例えば、サーバ装置10から取得したJavaScript等をWebブラウザ40が実行することで実現される。
画面管理部404は、サーバ装置10から取得した画面情報1000に含まれる各種情報に基づき、状態情報2000及び部品情報3000を作成して、画面管理情報記憶部405に記憶させる。
ここで、状態情報2000とは、Webブラウザ40が現在表示しているページのPageIDや前回表示していたページのPageIDを管理する情報である。また、部品情報3000とは、各画面を構成するページ部品やタブ部品等を管理する情報である。
なお、画面管理部404は、例えば、サーバ装置10から取得したJavaScript等をWebブラウザ40が実行することで実現される。
画面管理情報記憶部405は、状態情報2000と、部品情報3000とを記憶する。なお、状態情報2000及び部品情報3000の詳細については後述する。
<処理の詳細>
次に、本実施形態に係るWebシステム1の処理の詳細について説明する。以降では、機器20のユーザが、サーバ装置10により提供されるシングルページアプリケーションを利用する場合における画面遷移について、図6を参照しながら説明する。図6は、第一の実施形態に係る画面遷移の全体処理の一例を示すシーケンス図である。
まず、機器20のユーザは、アプリ開始操作を行う。すると、機器20の入力受付部401は、ユーザからのアプリ開始操作を受け付ける(ステップS601)。なお、アプリ開始操作は、例えば、シングルページアプリケーションの利用を開始するための所定のURL(Uniform Resource Locator)が含まれ、Webブラウザ40を起動させるためのショートカットアイコンを押下することで行うことができる。また、アプリ開始操作は、Webブラウザ40により表示されるアドレスバーに所定のURLを入力することで行っても良い。
機器20の入力受付部401は、画面取得指示を画面要求部402に送信する(ステップS602)。
次に、機器20の画面要求部402は、入力受付部401から画面取得指示を受信すると、画面取得要求をサーバ装置10に送信する(ステップS603)。なお、画面要求部402により送信される画面取得要求は、例えば、ユーザにより押下されたショートカットアイコンに含まれるURLが定義されたHTTP(Hypertext Transfer Protocol)リクエストである。
次に、サーバ装置10の画面応答部301は、機器20から画面取得要求を受信すると、画面情報記憶部302から画面情報1000を取得して、当該画面情報1000を機器20に返信する(ステップS604)。なお、画面応答部301は、例えば、画面情報1000が含まれるHTTPレスポンスを機器20に送信することで、当該画面情報1000を機器20に返信する。
ここで、サーバ装置10から返信される画面情報1000には、例えば、HTML等の画面定義情報1100と、ページやタブの構成を示す構成情報1200とが含まれる。
本実施形態に係る画面定義情報1100について、図7を参照しながら説明する。図7は、第一の実施形態に係る画面定義情報1100の一例を示す図である。
図7に示すように、画面定義情報1100は、各ページ及び各タブが<div>で定義されている。これにより、例えば、CSSにおいて「display」プロパティの値を「none」にして、表示するページやタブ以外のページやタブを非表示にすることができる。また、例えば、<div>要素をDOM(Document Object Model)で削除することでも同様に、表示するページやタブ以外のページやタブを非表示(削除)にすることができる。なお、<div>とは、1つのコンテンツ(例えば、ページやタブ等)を1つのまとまりとして定義するためのタグである。
また、本実施形態に係る構成情報1200について、図8を参照しながら説明する。図8は、第一の実施形態に係る構成情報1200の一例の示す図である。
図8に示すように、構成情報1200は、ページを識別するPageIDと、タブを識別するTabIDとの構成を示す情報である。すなわち、図8に示す構成情報1200では、PageID「page1」、「page2」、及び「page3」が同じ階層として定義されている。一方で、図8に示す構成情報1200では、TabID「page1/tab1」及び「page1/tab2」がPageID「page1」の1つ下の階層として定義されている。
このように、図8に示す構成情報1200では、PageID及びTabIDが階層構造(木構造)となるように定義されている。
なお、TabIDは、タブが含まれるページの「PageID」と、「当該ページ内においてタブを識別する情報」とをスラッシュ「/」で繋ぐことで定義されているが、これに限られない。すなわち、TabIDは、PageIDと階層構造となるように定義されていれば良い。したがって、「page1/tab1」は、例えば、「Page1・tab1」や「page1−1」等と定義されていても良い。
なお、図8に示す構成情報1200は、例えば、JSON(JavaScript Object Notation)等のデータ形式でサーバ装置10から返信される。
次に、機器20は、サーバ装置10から画面情報1000を受信すると、当該画面情報1000に基づいて、シングルページアプリケーションを利用するための初期画面を表示させる初期画面表示処理を行う(ステップS605)。これにより、機器20の操作パネル202上には、例えば、図2に示す画面G110等の予め設定された初期画面が表示される。なお、初期画面表示処理の詳細については後述する。
次に、機器20のユーザは、画面遷移操作を行う。すると、機器20の入力受付部401は、ユーザからの画面遷移操作を受け付ける(ステップS606)。なお、画面遷移操作は、例えば、図2に示す画面G110において、他のページやタブを表示させるための表示部品(タブ切替ボタンG111や遷移ボタンG112等)を押下することで行うことができる。図2に示す画面G120や画面G200、画面300等においても同様である。
機器20の入力受付部401は、画面遷移指示を表示処理部403に送信する(ステップS607)。なお、画面遷移指示には、遷移先の画面に表示されるページのPageID(又はTabID)が含まれる。
次に、機器20の表示処理部403は、画面遷移指示を受信すると、当該画面遷移指示に含まれるPageID(又はTabID)に基づいて、画面を遷移させるための画面遷移処理を行う(ステップS608)。これにより、機器20の操作パネル202上には、例えば、図2に示す画面G110から画面G120への画面遷移や画面G120から画面G200への画面遷移等、現在表示中の画面から他の画面への画面遷移を行うことができる。なお、画面遷移処理の詳細については後述する。
なお、機器20のユーザは、現在表示中の画面から他の画面への画面遷移を所望する都度、上記のステップS606の画面遷移操作を行えば良い。
ここで、図6におけるステップS605の初期画面表示処理の詳細について、図9を参照しながら説明する。図9は、第一の実施形態に係る初期画面の表示処理の一例を示すシーケンス図である。
機器20の入力受付部401は、部品作成指示を表示処理部403に送信する(ステップS901)。なお、部品作成指示には、サーバ装置10から取得した画面情報1000が含まれる。
機器20の表示処理部403は、入力受付部401から部品作成指示を受信すると、状態情報及び部品情報の作成指示を画面管理部404に送信する(ステップS902)。なお、状態情報及び部品情報の作成指示には、画面情報1000に含まれる構成情報1200が含まれる。
次に、機器20の画面管理部404は、状態情報及び部品情報の作成指示を受信すると、当該作成指示に含まれる構成情報1200に基づき、状態情報2000及び部品情報3000を作成する。そして、画面管理部404は、作成した状態情報2000及び部品情報3000を画面管理情報記憶部405に記憶させる(ステップS903)。
ここで、画面管理部404により作成される状態情報2000について、図10を参照しながら説明する。図10は、第一の実施形態に係る状態情報2000の一例を示す図である。
図10に示すように、本実施形態に係る状態情報2000は、データ項目として、「現在のページ」と、「前回のページ」とを有する。データ項目「現在のページ」には、機器20の画面に現在表示されているページのPageIDが格納される。データ項目「前回のページ」には、機器20の画面に前回表示されていたページのPageIDが格納される。
なお、画面管理部404は、例えば、シングルページアプリケーションの初期画面として表示されるページのPageIDを「現在のページ」に設定した状態情報2000を作成する。具体的には、例えば、シングルページアプリケーションの初期画面として表示されるページのPageIDが「page1」である場合、「現在のページ」には「page1」が設定される。
このように、図10に示す状態情報2000は、機器20が現在表示しているページのPageIDと、1つ前に表示していたページのPageIDとを管理する情報である。したがって、例えば、機器20の画面に、PageID「page1」のページが表示されている場合、状態情報2000の「現在のページ」には「page1」が格納される。そして、例えば、機器20の画面がPageID「page1」のページからPageID「page2」のページに遷移した場合、状態情報2000の「現在のページ」には「page2」が格納される一方で、「前回のページ」には「page1」が格納される。
なお、図10に示す状態情報2000には、前回表示されていたページのPageIDが格納されるデータ項目「前回のページ」を有するものとしたが、これに限られない。状態情報2000は、表示されていたページのPageIDの履歴を格納するデータ項目を有していても良い。
また、画面管理部404により作成される部品情報3000について、図11を参照しながら説明する。図11は、第一の実施形態に係る部品情報3000の一例を示す図である。
図11に示すように、本実施形態に係る部品情報3000は、データ項目として、「ページID」と、「ページ部品」と、「タブID」と、「タブ部品」と、「現在のタブ」とを有する。
データ項目「ページID」は、各ページを識別するPageIDが格納される。データ項目「ページ部品」は、各種画面を構成するページ部品を格納する。なお、ページ部品とは、例えば、画面情報1000に含まれるJavaScriptにより生成されるページのオブジェクトである。
データ項目「タブID」は、各タブを識別するTabIDが格納される。データ項目「タブ部品」は、各種画面を構成するタブ部品を格納する。なお、タブ部品とは、例えば、画面情報1000に含まれるJavaScriptにより生成されるタブのオブジェクトである。
データ項目「現在のタブ」は、データ項目「ページID」に格納されているPageIDのページに含まれる各タブのうち、最後に表示されたタブのTabIDが格納される。なお、画面管理部404は、例えば、該当のページにおいてデフォルトとして表示されるタブのTabIDを「現在のタブ」に設定した部品情報3000を作成する。具体的には、データ項目「ページID」が「page1」であるページには、例えば、データ項目「現在のタブ」に「page1/tab1」が設定される。
なお、ページにタブが含まれない場合、データ項目「タブID」、「タブ部品」、及び「現在のタブ」には、例えば、ブランク又は空値が設定される。
このように、図11に示す部品情報3000には、ページ毎に、ページ部品と、当該ページに含まれるタブ部品と、最後に表示されたタブのTabIDとが関連付けて管理されている。
入力受付部401は、状態情報2000及び部品情報3000が作成されると、初期画面遷移指示を表示処理部403に送信する(ステップS904)。なお、初期画面遷移指示には、上記のステップS903で作成された状態情報2000の「現在ページ」に格納されているPageIDが含まれる。
そして、表示処理部403は、初期画面遷移指示を受信すると、当該初期画面遷移指示に含まれるPageIDに基づいて、初期画面に画面を遷移させるための画面遷移処理を行う(ステップS905)。これにより、機器20の操作パネル202上には、シングルページアプリケーションの初期画面として、例えば、図2に示す画面G110が表示される。なお、画面遷移処理の詳細については後述する。
以上により、本実施形態に係る機器20には、サーバ装置10から取得した画面情報1000に基づいて、シングルページアプリケーションの初期画面が表示される。
ここで、図6におけるステップS608及び図9におけるステップS905の画面遷移処理の詳細について、図12を参照しながら説明する。図12は、第一の実施形態に係る画面遷移処理の一例を示すフローチャートである。なお、図6において、初期画面遷移指示と画面遷移指示とを区別せずに、単に「遷移指示」と表す。また、遷移指示に含まれるPageIDやTabID等の遷移先を示す情報を、「遷移先情報」と表す。
まず、表示処理部403は、画面管理部404により、画面管理情報記憶部405から状態情報2000及び部品情報3000を取得する(ステップS1201)。
次に、表示判定部411は、入力受付部401から受信した遷移指示が、遷移元へ画面を遷移させるための遷移指示(以降、「遷移元への遷移指示」と表す。)であるか否かを判定する(ステップS1202)。
ここで、例えば、図2に示す画面G300において、ユーザにより遷移ボタンG301や遷移ボタンG302等が押下された場合、入力受付部401は、遷移元への遷移指示を表示処理部403に送信する。このような、遷移元への遷移指示には、遷移先情報として、例えば、遷移元の画面を表示することを示す指定「prev」等が含まれる。したがって、表示判定部411は、遷移先情報として「prev」が遷移指示に含まれるか否かを判定することにより、当該遷移指示が、遷移元への遷移指示であるか否かを判定すれば良い。
ステップS1202において、入力受付部401から受信した遷移指示が、遷移元への遷移指示であると判定された場合、表示処理部403は、状態情報2000のデータ項目「前回のページ」に格納されているPageIDを取得して、遷移先情報とする(ステップS1203)。
表示判定部411は、遷移先情報がTabIDであるか否かを判定する(ステップS1204)。
ステップS1204において、遷移先情報がTabIDでない(すなわち、PageIDである)と判定された場合、表示判定部411は、部品情報3000において、当該PageIDにTabIDが対応付けられているか否かを判定する(ステップS1205)。すなわち、表示判定部411は、遷移先情報(PageID)のページにタブが含まれるか否かを判定する。
ステップS1205において、遷移先情報にTabIDが対応付けられていない(すなわち、ページにタブが含まれない)と判定された場合、表示判定部411は、画面に現在表示中のページのPageIDと同一であるか否かを判定する(ステップS1206)。
すなわち、表示判定部411は、状態情報2000のデータ項目「現在のページ」に格納されているPageIDを取得して、当該PageIDと、遷移先情報(PageID)とが同一であるか否かを判定する。
ステップS1206において、現在表示中のページのPageIDと遷移先情報(PageID)とが同一でないと判定された場合、表示制御部412は、遷移先情報(PageID)のページを画面に表示させる(ステップS1207)。これにより、機器20において、ページが表示された画面への画面遷移が行われる。
なお、表示制御部412は、上述したように、例えば、CSSにおいて「display」プロパティの値を「none」にすることにより、ページを画面に表示させる。具体的には、例えば、遷移先情報が「page2」である場合、図7に示す画面定義情報1100の<div id="page1">及び<div id="page3">について、CSSにおける「display」プロパティの値を「none」にすれば良い。また、図7に示す画面定義情報1100の<div id="page1">及び<div id="page3">要素のDOMを削除しても良い。
これにより、表示制御部412により、図11に示す部品情報において、PageID「page2」に対応付けられているページ部品が表示されて、ページ2が画面に表示される(すなわち、ページ2が表示された画面に画面遷移する。)。
また、このとき、表示制御部412は、画面管理部404により、状態情報2000のデータ項目「現在のページ」及び「前回のページ」を更新する。すなわち、画面管理部404は、状態情報2000のデータ項目「現在のページ」に格納されているPageIDを「前回のページ」に格納した後、「現在のページ」に遷移先情報(PageID)を格納する。
一方、ステップS1206において、現在表示中のページのPageIDと遷移先情報(PageID)とが同一であると判定された場合、表示処理部403は、処理を終了させる。この場合、機器20において、画面の遷移は行われない。
ここで、ステップS1205において、遷移先情報(PageID)にTabIDが対応付けられていると判定された場合、表示処理部403は、部品情報3000のデータ項目「現在のタブ」に格納されているTabIDのうち、遷移先情報(PageID)に対応付けられているTabIDを取得して、遷移先情報とする(ステップS1208)。
すなわち、例えば、遷移先情報が「page1」である場合、表示処理部403は、図11に示す部品情報3000のデータ項目「現在のタブ」に格納されているTabIDのうち、TabID「page1/tab1」を取得して、遷移先情報とする。
また、ステップS1204において、遷移先情報がTabIDであると判定された場合、表示判定部411は、画面にタブが表示中である否かを判定する(ステップS1209)。すなわち、表示判定部411は、状態情報2000のデータ項目「現在のページ」に格納されているPageIDが、部品情報3000においてTabIDと対応付けられている否かを判定する。
ステップS1209において、タブが表示中であると判定された場合、表示判定部411は、表示中のタブのTabIDと同一であるか否かを判定する(ステップS1210)。すなわち、表示判定部411は、部品情報3000のデータ項目「現在のタブ」に格納されているTabIDのうち、現在表示中のページのPageIDと対応付けられているTabIDを取得して、遷移先情報(TabID)と同一であるか否かを判定する。
ステップS1210において、表示中のタブのTabIDと同一でないと判定された場合、表示制御部412は、遷移先情報(TabID)に基づいて、当該TabIDのタブ及び当該タブを含むページを画面に表示させる(ステップS1211)。これにより、機器20において、タブを含むページが表示された画面への画面遷移が行われる。
なお、表示制御部412は、上述したように、例えば、CSSにおいて「display」プロパティの値を「none」にすることにより、ページ及びタブを画面に表示させる。具体的には、例えば、遷移先情報が「page1/tab2」である場合、図7に示す画面定義情報1100の<div id="page1/tab1">、<div id="page2">、及び<div id="page3">について、CSSにおける「display」プロパティの値を「none」にすれば良い。また、図7に示す画面定義情報1100の<div id="page1/tab1">、<div id="page2">、及び<div id="page3">要素のDOMを削除しても良い。
これにより、表示制御部412により、図11に示す部品情報において、PageID「page1」に対応付けられているページ部品と、TabID「page1/tab2」に対応付けられているタブ部品とが表示され、ページ1のタブ2が画面に表示される。
また、このとき、表示制御部412は、画面管理部404により、状態情報2000のデータ項目「現在のページ」及び「前回のページ」と、部品情報3000のデータ項目「現在のタブ」を更新する。すなわち、画面管理部404は、状態情報2000のデータ項目「現在のページ」に格納されているPageIDを「前回のページ」に格納した後、「現在のページ」に、部品情報3000において遷移先情報(TabID)に対応付けられているPageIDを格納する。また、画面管理部404は、部品情報3000のデータ項目「現在のタブ」のうち、当該PageIDに対応付けられているTabIDを遷移先情報(TabID)に更新する。
一方、ステップS1210において、表示中のタブのTabIDと同一であると判定された場合、表示制御部412は、処理を終了させる。この場合、機器20において、画面の遷移は行われない。
以上のように、本実施形態に係るWebシステム1では、サーバ装置10から提供されたシングルページアプリケーションを利用する機器20において、PageIDやTabID等を指定することで、画面遷移を行うことができる。このため、本実施形態に係るWebシステム1によれば、サーバ装置10が提供するシングルページアプリケーションの開発者等は、各画面におけるボタン等の表示部品にPageIDやTabIDを定義することで、当該アプリケーションにおける画面間の遷移関係を容易に作成することができる。
なお、本実施形態に係るWebシステム1では、シングルページアプリケーションにおける各画面のURLは同一であるものとしたが、これに限られず、各画面のURLにハッシュ(#)を付与して、各画面のURLとしても良い。すなわち、例えば、ページ2が表示された画面のURLを、シングルページアプリケーションのURLにハッシュ「#page2」を付与したURLとしても良い。同様に、例えば、ページ1のタブ2が表示された画面のURLを、シングルページアプリケーションURLにハッシュ「#page1/tab2」を付与したURLとしても良い。
これにより、例えば、機器20のユーザは、Webブラウザ40が提供する「戻る」ボタンやブックマーク等の機能を利用することができるようになる。
[第二の実施形態]
次に、第二の実施形態について説明する。第二の実施形態では、ページ及びタブに加えて、複数のページから構成されるスクリーンと呼ばれる概念も考慮した画面遷移について説明する。すなわち、第二の実施形態に係るサーバ装置10により提供されるシングルページアプリケーションでは、ページ間の遷移やタブ間の遷移に加えて、スクリーン間の遷移も行うものとする。
なお、第二の実施形態の説明では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同様の機能構成を有する箇所及び実質的に同様の処理を実行する箇所は、適宜、その説明を省略する。
まず、機器20のWebブラウザ40により表示されたシングルページアプリケーションにおける画面遷移について、図13を参照しながら説明する。図13は、第二の実施形態に係る画面遷移の一例を説明する図である。
図13に示すように、サーバ装置10により提供されるシングルページアプリケーションは、ScreenID「screen1」の主スクリーンと、ScreenID「screen2」の詳細スクリーンとを有するものとする。
主スクリーンには、PageID「screen1/page1」のページ1と、PageID「screen1/page2」のページ2と、PageID「screen1/page3」のページ3とが含まれるものとする。また、ページ1には、TabID「screen1/page1/tab1」のタブ1と、TabID「screen1/page1/tab2」のタブ2とが含まれるものとする。
同様に、詳細スクリーンには、PageID「screen2/page4」のページ4と、PageID「screen2/page5」のページ4とが含まれるものとする。
ここで、主スクリーン内におけるページ1〜ページ3間の画面遷移は、第一の実施形態と略同様であるため、その説明を省略する。
図13に示すように、ページ1におけるタブ1が表示された画面G110において、ユーザにより、遷移ボタンG114が押下されたものとする。この場合、Webブラウザ40は、当該遷移ボタンG114に対応付けられたスクリーンID「screen2」に基づいて、画面G400及び画面G500のうち、最後に表示されていた画面を表示する。なお、ページ1におけるタブ2が表示された画面G120において、ユーザにより、遷移ボタンG124が押下された場合についても同様である。
また、ページ4が表示された画面G400において、ユーザにより、遷移ボタンG401が押下されたものとする。この場合、Webブラウザ40は、当該遷移ボタンG401に対応付けられたスクリーンID「screen1」に基づいて、画面G110、画面G120、画面G200、及び画面G300のうち、最後に表示されていた画面を表示する。なお、ページ5が表示された画面G500において、ユーザにより、遷移ボタンG501が押下された場合についても同様である。
このように、本実施形態に係る機器20では、シングルページアプリケーションにおける複数の画面が含まれるスクリーンと呼ばれる概念を導入して、スクリーン間での画面遷移を行う。これにより、例えば、主スクリーンでは、シングルアプリケーションを利用するための必須の画面が含まれるようにする一方で、詳細スクリーンでは、設定値の変更画面等の任意的な画面が含まれるようにすることができる。このため、シングルページアプリケーションの開発者等は、共通の目的に利用されるような画面を1つのスクリーンにまとめて、画面間の遷移関係をより容易に作成することができるようになる。
なお、画面G400において、ユーザにより、遷移ボタンG402が押下された場合、Webブラウザ40は、当該遷移ボタンG402に対応付けられたスクリーンID「screen2/page5」に基づいて、画面G500を表示する。一方、画面G500において、ユーザにより、遷移ボタンG502が押下された場合、Webブラウザ40は、当該遷移ボタンG502に対応付けられたスクリーンID「screen2/page4」に基づいて、画面G400を表示する。
<処理の詳細>
次に、本実施形態に係るWebシステム1の処理の詳細について説明する。以降では、機器20のユーザが、サーバ装置10により提供されるシングルページアプリケーションを利用する場合における画面遷移について、図14を参照しながら説明する。図14は、第二の実施形態に係る画面遷移の全体処理の一例を示すシーケンス図である。
サーバ装置10の画面応答部304は、機器20から画面取得要求を受信すると、画面情報記憶部302から画面情報1000を取得して、当該画面情報1000を機器20に返信する(ステップS1401)。
ここで、サーバ装置10から返信される画面情報1000には、例えば、HTML等の画面定義情報1100と、スクリーンやページ、タブの構成を示す構成情報1200とが含まれる。
本実施形態に係る画面定義情報1100について、図15を参照しながら説明する。図15は、第二の実施形態に係る画面定義情報1100の一例を示す図である。
図15に示すように、本実施形態に係る画面定義情報1100は、各スクリーン、各ページ、及び各タブが<div>で定義されている。これにより、例えば、CSSにおいて「display」プロパティの値を「none」にすることにより、表示するスクリーンにおけるページやタブ以外のスクリーンやページ、タブを非表示することができる。なお、例えば、<div>要素をDOM(Document Object Model)で削除することでも同様に、表示するスクリーンにおけるページやタブ以外のスクリーンやページ、タブを非表示(削除)にすることができる。
また、本実施形態に係る構成情報1200について、図16を参照しながら説明する。図16は、第二の実施形態に係る構成情報1200の一例の示す図である。
図16に示すように、本実施形態に係る構成情報1200は、スクリーンを識別するScreenIDと、ページを識別するPageIDと、タブを識別するTabIDとの構成を示す情報である。すなわち、図16に示す構成情報1200では、ScreenID「screen1」及び「screen2」が同じ階層として定義されている。
また、図16に示す構成情報1200では、PageID「screen1/page1」、「screen1/page2」、及び「screen1/page3」が「screen1」の1つ下の階層として定義されている。同様に、図16に示す構成情報1200では、PageID「screen2/page4」及び「screen2/page5」が「screen2」の1つ下の階層として定義されている。
さらに、図16に示す構成情報1200では、TabID「screen1/page1/tab1」及び「screen1/page1/tab2」がPageID「page1」の1つ下の階層として定義されている。
このように、図16に示す構成情報1200では、ScreenID、PageID、及びTabIDが階層構造(木構造)となるように定義されている。
次に、機器20は、サーバ装置10から画面情報1000を受信すると、当該画面情報1000に基づいて、シングルページアプリケーションを利用するための初期画面を表示させる初期画面表示処理を行う(ステップS1402)。これにより、機器20の操作パネル202上には、例えば、図13に示す画面G110等の予め設定された初期画面が表示される。なお、初期画面表示処理の詳細については後述する。
また、機器20の表示処理部403は、ステップS606で送信された画面遷移指示を受信すると、当該画面遷移指示に含まれる、ScreenID、PageID、又はTabIDに基づいて、画面を遷移させるための画面遷移処理を行う(ステップS1403)。これにより、機器20の操作パネル202上には、例えば、図13に示す画面G110から画面G120への画面遷移や画面G120から画面G200への画面遷移、画面G120から画面G400への画面遷移等の画面遷移を行うことができる。なお、画面遷移処理の詳細については後述する。
ここで、図14におけるステップS1402の初期画面表示処理の詳細について、図17を参照しながら説明する。図17は、第二の実施形態に係る初期画面の表示処理の一例を示すシーケンス図である。
機器20の画面管理部404は、状態情報及び部品情報の作成指示を受信すると、当該作成指示に含まれる構成情報1200に基づき、状態情報2000及び部品情報3000を作成する。そして、画面管理部404は、作成した状態情報2000及び部品情報3000を画面管理情報記憶部405に記憶させる(ステップS1701)。
ここで、本実施形態に係る画面管理部404により作成される状態情報2000について、図18を参照しながら説明する。図18は、第二の実施形態に係る状態情報2000の一例を示す図である。
図18に示すように、本実施形態に係る状態情報2000は、データ項目として、さらに、「現在のスクリーン」を有する。データ項目「現在のスクリーン」には、機器20の画面に現在表示されているページが含まれるスクリーンのScreenIDが格納される。
なお、画面管理部404は、例えば、シングルページアプリケーションの初期画面として表示されるページが含まれるスクリーンのScreenIDを「現在のスクリーン」に設定した状態情報を作成する。具体的には、例えば、シングルページアプリケーションの初期画面として表示されるページのPageIDが「page1」である場合、「現在のスクリーン」には「page1」のページが含まれるスクリーン1のScreenID「screen1」が設定される。
このように、図18に示す状態情報2000は、機器20が現在表示しているページのPageIDと、1つ前に表示していたページのPageIDと、現在表示しているページが含まれるスクリーンのScreenIDとを管理する情報である。
また、画面管理部404により作成される部品情報3000について、図19を参照しながら説明する。図19は、第二の実施形態に係る部品情報3000の一例を示す図である。
図19に示すように、本実施形態に係る部品情報3000は、データ項目として、さらに、「スクリーンID」を有する。データ項目「スクリーンID」は、各スクリーンを識別するScreenIDが格納される。
このように、図19に示す部品情報3000には、スクリーン毎に、当該スクリーンに含まれるページのページ部品と、当該ページに含まれるタブ部品と、最後に表示されたタブのタブIDとが関連付けて管理されている。
入力受付部401は、状態情報2000及び部品情報3000が作成されると、初期画面遷移指示を表示処理部403に送信する(ステップS1702)。なお、初期画面遷移指示には、上記のステップS1701で作成された状態情報2000の「現在ページ」に格納されているPageIDが含まれる。
そして、表示処理部403は、初期画面遷移指示を受信すると、当該初期画面遷移指示に含まれるPageIDに基づいて、初期画面に画面を遷移させるための画面遷移処理を行う(ステップS1703)。これにより、機器20の操作パネル202上には、シングルページアプリケーションの初期画面として、例えば、図13に示す画面G110が表示される。なお、画面遷移処理の詳細については後述する。
以上により、本実施形態に係る機器20には、サーバ装置10から取得した画面情報1000に基づいて、シングルページアプリケーションの初期画面が表示される。
ここで、図14におけるステップS1403及び図17におけるステップS1703の画面遷移処理の詳細について、図20を参照しながら説明する。図20は、第二の実施形態に係る画面遷移処理の一例を示すフローチャートである。なお、図20において、第一の実施形態と同様に、初期画面遷移指示と画面遷移指示とを区別せずに、単に「遷移指示」と表す。また、遷移指示に含まれるScreenIDやPageID、TabID等の遷移先を示す情報を、「遷移先情報」と表す。
ステップS1204において、遷移先情報がTabIDでない(すなわち、ScreenID又はPageIDである)と判定された場合、表示判定部411は、遷移先情報がPageIDであるか否かを判定する(ステップS2001)。
ステップS2001において、遷移先情報がPageIDでない(すなわち、ScreenIDである)と判定された場合、表示処理部403は、状態情報2000のデータ項目「現在のページ」に格納されているPageIDを取得して、遷移先情報とする(ステップS2002)。
これにより、図20におけるステップS1207やステップS1211において、機器20は、スクリーン間における画面の遷移も含めて画面遷移を行うことができる。
以上のように、本実施形態に係るWebシステム1では、サーバ装置10から提供されたシングルページアプリケーションを利用する機器20において、ScreenIDやPageID、TabID等を指定することで、画面遷移を行うことができる。
このため、本実施形態に係るWebシステム1によれば、各画面におけるボタン等の表示部品にScreenIDやPageID、TabIDを定義することで、当該アプリケーションにおける画面間の遷移関係を容易に作成することができる。また、シングルページアプリケーションの開発者等は、共通の目的に利用されるような画面を1つのスクリーンにまとめて、画面の遷移関係を作成することができるようになる。
なお、本実施形態に係るWebシステム1では、複数のページが含まれるスクリーンと呼ばれる概念を定義して、スクリーン、ページ、及びタブの3階層で画面が構成される例を示したが、これに限られない。すなわち、本実施形態に係るWebシステム1では、任意の階層で画面が構成されていても良い。
以上、本発明の実施形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。