JP5638761B2 - 画面生成方法、画面表示方法、画面生成装置、及びプログラム - Google Patents

画面生成方法、画面表示方法、画面生成装置、及びプログラム Download PDF

Info

Publication number
JP5638761B2
JP5638761B2 JP2009029021A JP2009029021A JP5638761B2 JP 5638761 B2 JP5638761 B2 JP 5638761B2 JP 2009029021 A JP2009029021 A JP 2009029021A JP 2009029021 A JP2009029021 A JP 2009029021A JP 5638761 B2 JP5638761 B2 JP 5638761B2
Authority
JP
Japan
Prior art keywords
screen
definition information
tenant
terminal device
shared
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.)
Active
Application number
JP2009029021A
Other languages
English (en)
Other versions
JP2010186264A (ja
Inventor
登 車井
登 車井
武男 安川
武男 安川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009029021A priority Critical patent/JP5638761B2/ja
Priority to US12/618,160 priority patent/US9223896B2/en
Priority to EP09176681A priority patent/EP2216723A3/en
Publication of JP2010186264A publication Critical patent/JP2010186264A/ja
Application granted granted Critical
Publication of JP5638761B2 publication Critical patent/JP5638761B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Description

本発明は、画面生成方法、画面表示方法、画面生成装置、及びプログラムに関する。
従来、ASP(Application Service Provider)等において提供されるWebアプリケーションについては、利用者に応じたニーズに対応するため、Webサーバ側において、一つのアプリケーションを利用者ごとにカスタマイズし、それぞれを別個に管理及び動作させる必要があった。なお、ここでいう利用者とは、企業、団体、官公庁等、ASPの提供者とサービスの利用契約を結んでいる組織をいう。
一方、昨今注目されているSaaS(Software as a Service)と呼ばれるシステム形態では、同一のWebアプリケーションを同一のサーバ上で動かし、複数の利用者に同一のWebアプリケーションを利用させることで、運用コストの削減を図っている。
特開2002−163382号公報
しかしながら、利用者によっては、Webアプリケーションの標準仕様として提供されている画面ではなく、利用者ごとに固有にカスタマイズされた画面を利用したいという要望がある。
但し、一般的に、Webアプリケーションは画面遷移を伴うため、一つのサービスにおいて複数の画面が利用されうる。複数の画面を構築するためのデータを単純に利用者ごとに管理したのでは管理するデータ量が増加し、SaaSによるメリットが減殺されてしまうという問題がある。
本発明は、上記の点に鑑みてなされたものであって、利用者に応じてカスタマイズされた画面の提供を効率的に行うことのできる画面生成方法、画面表示方法、画面生成装置、及びプログラムの提供を目的とする。
そこで上記課題を解決するため、本実施の形態の画面生成方法は、複数の端末装置に対して提供する画面の画面データを生成するコンピュータが、前記複数の端末装置に含まれるある端末装置からの操作入力に基づく複数の画面遷移それぞれにおいて、遷移先となる遷移先画面を定義する定義情報が前記ある端末装置の属するテナントに対応付けて記憶手段に記憶されているか否かを判定し、前記ある端末装置の属するテナントに個別に対応付けて記憶された定義情報が記憶されていないときは、前記記憶手段に記憶された、前記ある端末装置の属するテナントに対応付けて記憶された定義情報と異なる定義情報であって、前記記憶手段に遷移先画面の定義情報が対応付けて記憶されていない前記複数の端末装置で共用される定義情報に基づいて遷移先画面の画面データを生成し、前記記憶手段に前記ある端末装置の属するテナントに対応付けて記憶された定義情報が記憶されているときは、前記ある端末装置の属するテナントに対応付けて記憶された定義情報に基づいて遷移先画面の画面データを生成する
このような画面生成方法では、利用者に応じてカスタマイズされた画面の提供を効率的に行うことができる。
利用者に応じてカスタマイズされた画面の提供を効率的に行うことができる。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるシステム構成例を示す図である。同図において、クライアント装置30a、30b、及び30cとWebサーバ10とはインターネット等のネットワークを介して接続されている。
Webサーバ10は、画面生成方法を実行するコンピュータ(画面生成装置)の具体例である。Webサーバ10は、画面遷移を伴うサービスをネットワークを介して提供する。具体的には、Webサーバ10は、インターネットを介してアプリケーションソフトウェア(以下、説明の便宜上単に「アプリケーション」という。)の機能によるサービスをテナント(後述する)に提供する。Webサーバ10によるサービスの提供形態としては、SaaS(Software as a Service)が一例として挙げられる。なお、Webサーバ10は、サービスの提供者によって管理されている。
クライアント装置30a、30b、及び30c等(以下、総称する場合「クライアント装置30」という。)は、サービス利用者側に属するコンピュータである。クライアント装置30a、クライアント装置30b、クライアント装置30cは、それぞれテナントA、テナントB、テナントCに属する。本実施の形態においてテナントとは、サービス提供者との間でサービスの利用契約を結んだ企業又は団体等の組織をいう。したがって、テナントは一人以上のユーザの集合であるといえる。
Webサーバ10は、HTTP(HyperText Transfer Protocol)サーバ11、アプリケーションサーバ12、拡張タグ処理部13、業務アプリケーション14、テナント判定部15、及び画面定義データ17等のソフトウェアを有する。
HTTPサーバ11は、クライアント装置30との通信を制御する。例えば、HTTPサーバ11は、クライアント装置30からの要求(HTTPリクエスト)を受信し、当該要求に対する応答(HTTPレスポンス)を返信する。
アプリケーションサーバ12は、クライアント装置30からの要求に応じた(URL(Uniform Resource Locator)に対応した)業務アプリケーション14を起動させる(呼び出す)。アプリケーションサーバ12は、また、業務アプリケーション14による処理結果に応じ、クライアント装置30へ返信するための画面データ(HTMLデータ)を生成する。画面データは、画面定義データ17を利用して生成される。本実施の形態では、画面定義データ17としてJSP(Java(登録商標) Server Pages)データを適用した例を説明する。したがって、アプリケーションサーバ12は、JSPの実行環境であるJSPコンテナを含む。
拡張タグ処理部13は、画面定義データ17に記述されている拡張タグに対応した処理を実行する。すなわち、画面定義データ17は、本実施の形態において独自に定義された拡張タグを含む。
業務アプリケーション14は、いわゆるWebアプリケーションであり、機能に応じて複数存在する。本実施の形態において、各業務アプリケーション14は、複数のテナントより共通的に利用される。
テナント判定部15は、HTTPサーバ11によって受信されるHTTPリクエストに含まれている情報に基づいて当該HTTPリクエストの送信元のクライアント装置30(ユーザ)が属するテナントを判定する。テナント判定部15は、判定結果のテナントの識別情報(以下、「テナントID」という。)をセッションスコープ18に記録(登録)する。「セッションスコープ」とは、クライアント装置30とWebサーバ10とのセッション(又はセッション情報)を管理するためにメモリ装置103内に生成されるデータをいい、例えば、一般的にセッションオブジェクトと呼ばれる。テナントIDは、テナントごとに一意となるように割り当てられている。セッションスコープ18に記録されたテナントIDは、アプリケーションサーバ12が拡張タグ処理部13を利用してテナントごとにカスタマイズされた画面データを生成する際に参照される。なお、本実施の形態では、クライアント装置30とテナントIDとを関連付けて保持するための識別子記憶手段としてセッションスコープ18を用いる。但し、クライアント装置30との関連付けをセッションが接続されている間維持することが可能であれば、他のデータ(記憶領域)を識別子記憶手段として用いてもよい。また、セッションIDと同様にテナントIDをクッキー情報とし、HTTPリクエストのたびにクライアント装置30より送信されるようにしてもよい。
図2は、本発明の実施の形態におけるWebサーバのハードウェア構成例を示す図である。図2のWebサーバ10は、それぞれバスBで相互に接続されているドライブ装置100と、補助記憶装置102と、メモリ装置103と、CPU104と、インタフェース装置105とを有する。
Webサーバ10での処理を実現するプログラムは、CD−ROM等のコンピュータ読み取り可能な記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ(例えば、画面定義データ17)等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102から読み出されたプログラムが格納される。CPU104は、メモリ装置103に格納されたプログラムに従ってWebサーバ10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
以下、Webサーバ10の処理手順について説明する。図3は、Webサーバによる処理手順を説明するためのフローチャートである。
HTTPサーバ11によるクライアント装置30aからのHTTPリクエストの受信に応じ(S101)、テナント判定部15は、クライアント装置30aとのセッションに対応するセッションスコープ18にテナントIDが登録されているか否かを判定する(S102)。
なお、各セッションはセッションIDによって識別される。セッションIDは、セッションの開設時にアプリケーションサーバ12によって割り当てられ、クライアント装置30aに送信される。クライアント装置30aは、セッションIDをCookie(クッキー)等に保持しておき、HTTPリクエストの度にWebサーバ10に対して送信する。また、セッションスコープ18は、セッションの開設時にセッションIDと共にアプリケーションサーバ12によって生成され、セッションIDに関連付けられて管理されている。したがって、テナント判定部15は、セッションIDに基づいて現在のセッションに対応するセッションスコープ18を取得することができる。
ところで、本実施の形態においてセッションスコープ18にテナントIDが登録されていないという状態は、受信されたHTTPリクエストがログイン要求である場合に相当する。ログイン要求には、クライアント装置10のWebブラウザに表示されているログイン画面に対して入力されたユーザID(各ユーザを識別するID)及びパスワードが含まれている。そこで、この場合(S102でNo)、テナント判定部15は、テナントID管理テーブルに基づいて、HTTPリクエスト(ログイン要求)に含まれているユーザIDに対応するテナントIDを判定する(S103)。
図4は、テナントID管理テーブルの構成例を示す図である。同図に示されるように、テナントID管理テーブル16には、ユーザIDとテナントIDとの対応情報が登録されている。例えば、ログイン要求に含まれているユーザIDが「user01」であった場合、テナント判定部15は、対応するテナントIDは「AAA」であると判定する。
続いて、テナント判定部15は、判定結果としてのテナントIDをセッションスコープ18に登録する(S104)。
なお、テナントにおける各ユーザがテナントIDを知っているという前提であれば、ログイン時等にテナントIDをユーザに入力させるようにしてもよい。この場合、クライアント装置30からのHTTPリクエストにはテナントIDが含まれている。したがって、HTTPリクエストに含まれているテナントIDをそのままセッションスコープ18に登録すればよい。
但し、本実施の形態のように、Webサーバ10においてユーザIDに基づいてテナントIDを自動的に判定することにより、テナントの各ユーザにテナントIDを周知させる必要をなくすことができる。また、各ユーザは、テナントIDを記憶したり、ログイン時にテナントIDを入力したりする必要はない。したがって、ユーザの作業負担を軽減することができる。
一方、セッションスコープにテナントIDが既に登録されている場合(すなわち、HTTPリクエストがログイン要求以外の業務ロジックの実行要求の場合)(S102でYes)、ステップS103及びS104の処理は行われない。
続いて、アプリケーションサーバ12は、HTTPリクエストの内容(例えば、HTTPリクエストに含まれるURL等)に応じた業務アプリケーション14を判定し、当該業務アプリケーション14を呼び出す(又は起動する)(S105)。HTTPリクエストの内容に応じた業務アプリケーション14の判定は、例えば、補助記憶装置102に記録されている、URLと業務アプリケーション14との対応情報等に基づいて行えばよい。
続いて、呼び出された業務アプリケーション14は、自らに実装されている業務ロジックを実行する(S106)。業務ロジックの実行が完了すると、業務アプリケーション14は、実行結果に応じた画面データの生成をアプリケーションサーバ12に要求する。画面データの生成の要求の際、業務アプリケーション14は、画面データの生成に利用するJSPファイルのファイル名をアプリケーションサーバ12に指定する。
続いて、アプリケーションサーバ12は、業務アプリケーション14に指定されたJSPファイルに基づいて画面データ(HTMLデータ)を生成する(S107)。アプリケーションサーバ12は、生成された画面データをHTTPサーバ11に出力する。続いて、HTTPサーバ11は、業務アプリケーション14によって生成された画面データをHTTPレスポンスに含めてクライアント装置30aに送信する(S108)。
図3の処理が繰り返し実行することにより、Webサーバ10がクライアント装置30aに提供する画面(すなわち、クライアント装置30aにおいて表示される画面)は、例えば、図5に示されるように遷移する。
図5は、本実施の形態における画面遷移の例を示す図である。同図には、画面A、画面B、及び画面Cの順で画面が遷移することが示されている。すなわち、図3の処理が一回行われることにより、クライアント装置30aには画面Aが表示される。画面Aにおいて操作指示が入力されると、当該操作指示に応じて再度図3の処理が実行される。その結果、クライアント装置30aには画面Bが表示される。画面Bにおいて操作指示が入力されると、当該操作指示に応じて再度図3の処理が実行される。その結果、クライアント装置30aには画面Cが表示される。
なお、図3及び図5においては、クライアント装置30aを例として説明したが、クライアント装置30b及び30cにおいても同様の処理手順及び画面遷移が実行される。但し、本実施の形態では、画面A、画面B、及び画面Cのうちの少なくとも一部の画面をテナントごとにカスタマイズしたものを表示させることができる。テナントごとに固有の画面の表示を可能とするため、本実施の形態における画面定義データ17は、図6に示されるような構成を有する。
図6は、本実施の形態における画面定義データの構成例を示す図である。本実施の形態において、画面定義データ17は、JSPファイルの集合である。各JSPファイルは、その機能、役割、又は位置付けに応じたフォルダに分類されて保存されている。同図では、ルートフォルダ171、標準フォルダ172、テナントA用フォルダ173、テナントB用フォルダ174がJSPファイルの格納用のフォルダとして示されている。
ルートフォルダ171は、画面定義データ17の格納用のフォルダのルート(最上位)のフォルダである。ルートフォルダ171は、インクルードファイルとして機能するJSPファイルを格納する。本実施の形態においてインクルードファイルとは、拡張タグ処理部13を呼び出すための定義(拡張タグ)が記述されたJSPファイルをいう。拡張タグ処理部13は、セッションスコープ18に記録されているテナントIDに応じ、画面データの生成に用いる画面定義ファイルを標準フォルダ172又は各テナント用のフォルダ(テナントA用フォルダ173若しくはテナントB用フォルダ174)のいずれかより選択する。したがって、インクルードファイルは、テナントIDに応じて使用する画面定義ファイルを選択するための定義がなされたJSPファイルであると解釈することもできる。図中において、各インクルードファイルから各画面定義ファイルへの矢印は、斯かる選択関係を表現したものである。
インクルードファイルは、画面遷移における一連の画面ごとに生成される。したがって、同図では、画面Aに対応するインクルードファイル171a、画面Bに対応するインクルードファイル171b、画面Cに対応するインクルードファイル171cが示されている。なお、同図において、ルートフォルダのパス名は、「WEB−INF/jsp」とされている。また、各インクルードファイルのファイル名は、a.jsp、b.jsp、c.jspとされている。
図7は、インクルードファイルの定義例を示す図である。同図では、インクルードファイル171aの定義例が示されているが、インクルードファイル171b及び171cの定義内容も同様でよい。
同図において、saas:includeタグ1712は、本実施の形態における拡張タグの具体例である。すなわち、saas:includeタグ1712は、拡張タグ処理部13を呼び出すための定義に相当する。
記述1711は、JSP標準の定義であり、saas:includeタグ1712の処理を可能とするための定義がされている箇所を示す。すなわち、記述1711に含まれているURL「http://fx-saas.net/r3/tags-html」によって識別されるファイル内に、saas:includeタグと拡張タグ処理部13との対応情報が含まれている。本実施の形態において、拡張タグ処理部13は、Java(登録商標)のクラスとして実装されている。したがって、当該対応情報のより具体的な内容は、saas:includeタグと拡張タグ処理部13のクラス名との対応付けの定義である。
図6に戻る。標準フォルダ172は、Webサーバ10が標準で(デフォルトで)提供する画面を生成するための定義情報(画面定義データ)を格納したJSPファイル(画面定義ファイル)を格納するフォルダである。標準フォルダ172には、画面遷移に係る一連の画面ごとに標準の画面定義ファイルが保存されている。同図では、画面Aに対応する画面定義ファイル172a、画面Bに対応する画面定義ファイル172b、画面Cに対応する画面定義ファイル172cが示されている。なお、本実施の形態において、標準フォルダ172は、ルートフォルダ171の直下に「common」というフォルダ名で作成されている。したがって、標準フォルダのパス名は、「WEB−INF/jsp/common」となる。また、標準フォルダ172における各画面定義ファイルのファイル名は、a.jsp、b.jsp、c.jspとされている。すなわち、本実施の形態では、各画面定義ファイルのファイル名は、対応するインクルードファイルのファイル名と一致する。具体的には、画面定義ファイル172aのファイル名は「a.jsp」である。画面定義ファイル172bのファイル名は「b.jsp」である。画面定義ファイル172cのファイル名は「c.jsp」である。
テナントA用フォルダ173及びテナントB用フォルダ174は、それぞれ、テナントA用又はテナントB用に固有にカスタマイズされた画面定義ファイルを格納するフォルダである。但し、各テナント用フォルダには、必ずしも全ての画面に対する画面定義ファイルは格納されておらず、カスタマイズが必要な画面に対する画面定義ファイルのみが格納されている。例えば、テナントA用フォルダ173には、画面A用の画面定義ファイル173aと画面C用の画面定義ファイル173cとが格納されている。また、テナントB用フォルダ174には、画面B用の画面定義ファイル174bのみが格納されている。
なお、本実施の形態においてテナントA用フォルダ173、テナントB用フォルダ174は、それぞれルートフォルダの直下に各テナントのテナントIDをフォルダ名として作成されている。したがって、テナントA用フォルダ173のパス名は、「WEB−INF/jsp/AAA」となる。また、テナントB用フォルダ174のパス名は、「WEB−INF/jsp/BBB」となる。また、各テナント用フォルダに格納されている画面定義ファイルのファイル名は、対応するインクルードファイルのファイル名と一致する。具体的には、画面定義ファイル173aのファイル名は「a.jsp」である。画面定義ファイル173cのファイル名は「c.jsp」である。画面定義ファイル174bのファイル名は「b.jsp」である。
図8は、画面定義ファイルの定義例を示す図である。同図において、左側は標準の画面定義ファイル171aの定義例である。右側はテナントA用の画面定義ファイル172aである。具体的な定義内容については、標準のJSPの仕様に基づくためここでの説明は省略する。ここでは、二つの画面定義ファイルの相違点(図中破線で囲まれた記述1715と記述1725)に注目する。記述1715では、「計測項目検索・一覧画面」という文字列が<h2>タグによって囲まれている。一方、記述1725では、同一の文字列が<h1>タグによって囲まれている。すなわち、テナントA用の画面Aでは、「計測項目検索・一覧画面」という文字列のサイズが変更されている。
ところで、上記では、標準フォルダのフォルダ名は「common」であり、各画面定義ファイルのファイル名は、対応するインクルードファイルのファイル名と一致するといったように、それぞれ固定的に定められている。標準フォルダのフォルダ名や画面定義ファイルのファイル名に柔軟性を持たせるため、インクルードファイルを図9のように定義してもよい。
図9は、インクルードファイルの第二の定義例を示す図である。図9中、図7と対応する部分には同一符号を付し、その説明は適宜省略する。
同図において、saas:includeタグは、defaultJsp属性1713及びjsp属性1714を含む。defaultJsp属性1713の値は、標準フォルダ172のフォルダ名(すなわち、標準フォルダ172の識別情報)を示す。jsp属性1714の値は、当該インクルードファイルに対応する画面定義ファイルのファイル名(すなわち、画面定義ファイルの識別情報)を示す。したがって、図9の定義例によれば、画面Aの標準の画面定義ファイルのパス名は、「WEB−INF/jsp/default/aaaaaa.jsp」とされる。また、画面AのテナントA用の画面定義ファイルのパス名は、「WEB−INF/jsp/AAA/aaaaaa.jsp」とされる。
標準フォルダ172のフォルダ名や画面定義ファイルのファイル名を変更可能とすることで、標準フォルダ172のフォルダ構成や画面定義ファイルのファイル構成に柔軟性を持たせることが可能となる。なお、defaultJsp属性及びjsp属性は、インクルードファイルごと、すなわち、画面ごとに定義されうる。したがって、画面ごとに標準フォルダ171のパス名を変更したり、画面定義ファイルのファイル名を変更したりすることができる。
画面定義データ17に関して、図5〜図9において説明したことを前提とし、図3のステップS107の詳細について説明する。図10は、画面データ生成処理の処理手順を説明するためのフローチャートである。
ステップS201において、アプリケーションサーバ12は、業務アプリケーション14より指定されたJSPファイルを取得し、当該JSPファイルを実行する。ここで、実行対象とされるJSPファイルはインクルードファイルに相当する。例えば、遷移先の画面が画面Aである場合、業務アプリケーション14からは画面Aのファイル名(a.jsp)が指定される。アプリケーションサーバ12は、ルートフォルダ171内より当該ファイル名に係るJSPファイル(すなわち、インクルードファイル)を取得し、実行する。
アプリケーションサーバ12は、インクルードファイルを1行ずつ実行していく過程において、saas:includeタグを検出すると(S202でYes)、拡張タグ処理部13を呼び出す。saas:includeタグの検出に応じて拡張タグ処理部13を呼び出すことは、例えば図7の記述1711に基づいて判定される。
拡張タグ処理部13は、呼び出しに応じ、自らに実装された処理を実行する(S203)。拡張タグ処理部13による処理が完了すると、画面データ生成処理は完了する。
続いて、図10のステップS203の詳細について説明する。図11は、拡張タグ処理部による処理手順を説明するためのフローチャートである。
ステップS301において、拡張タグ処理部13は、処理対象となっているセッションのセッションスコープ18よりテナントIDを取得する。ここで、アプリケーションサーバ12、テナント判定部15、及び拡張タグ処理部13は同一スレッド内において動作する。したがって、拡張タグ処理部13は、アプリケーションサーバ12において当該スレッド空間内に生成され、テナント判定部15によってテナントIDが記録されたセッションスコープ18を参照すればよい。
続いて、拡張タグ処理部13は、取得されたテナントIDを使用して、テナント用フォルダのパス名を生成する(S302)。本実施の形態において、テナント用フォルダのパス名は、ルートフォルダ171のパス名に対してテナントIDを付加したものである。したがって、例えば、テナントIDが「AAA」であれば、テナントA用フォルダ173のパス名は、「WEB−INF/jsp/AAA」として生成される。
続いて、拡張タグ処理部13は、saas:includeタグにjsp属性が指定されているか否かを確認する(S303)。jsp属性が指定されている場合(S303でYes)、拡張タグ処理部13は、テナント用フォルダのパス名にjsp属性の値を付加したものを処理対象の画面定義ファイルのパス名とする(S304)。具体的には、jsp属性の値が「aaaaaa.jsp」であれば、当該画面定義ファイルのパス名は、「WEB−INF/jsp/AAA/aaaaaa.jsp」とされる。
一方、jsp属性が指定されていない場合(S303でNo)、拡張タグ処理部13は、テナント用フォルダのパス名に、現在処理対象のインクルードファイルのファイル名を付加したものを処理対象の画面定義ファイルのパス名とする(S305)。具体的には、現在処理対象のインクルードファイルのファイル名が「a.jsp」であれば、当該画面定義ファイルのパス名は、「WEB−INF/jsp/AAA/a.jsp」とされる。
ステップS304又はS305に続いて、拡張タグ処理部13は、生成されたパス名に係る画面定義ファイルの存否を判定する(S306)。当該画面定義ファイルが存在する場合(すなわち、テナントIDに係るテナント用にカスタマイズされた画面定義ファイルが存在する場合)(S306でYes)、拡張タグ処理部13は、当該画面定義ファイルをアプリケーションサーバ12に実行させる(S307)。その結果、例えば、テナントA用フォルダ173内の画面定義ファイルが実行された場合、テナントA用にカスタマイズされた画面データが生成される。
一方、生成されたパス名に係る画面定義ファイルが存在しない場合(S306でNo)、拡張タグ処理部13は、saas:includeタグにdefaultJsp属性が指定されているか否かを確認する(S308)。defaultJsp属性が指定されている場合(S308でYes)、拡張タグ処理部13は、ルートフォルダのパス名にdefaultJsp属性の値を付加したものを遷移先の画面の標準フォルダ171のパス名とする(S309)。具体的には、defaultJsp属性の値が「default」であれば標準フォルダ171のパス名は、「WEB−INF/jsp/default」とされる。
また、defaultJsp属性が指定されていない場合(S308でNo)、拡張タグ処理部13は、ルートフォルダのパス名に予め定められているフォルダ名(common)を付加したものを遷移先の画面の標準フォルダ171のパス名とする(S310)。したがって、標準フォルダ171のパス名は「WEB−INF/jsp/common」とされる。
ステップS308又はS309に続いて、拡張タグ処理部13は、標準フォルダ171のパス名に画面定義ファイルのファイル名を付加し、標準の画面定義ファイルのパス名を生成する(S311)。ここで付加される画面定義ファイルのファイル名は、ステップS303〜S305において判定されたものに従う。すなわち、インクルードファイルにjsp属性が指定されていればjsp属性の値が採用される。jsp属性が指定されていなければ、インクルードファイルのファイル名が採用される。
続いて、拡張タグ処理部13は、生成されたパス名に係る画面定義ファイルをアプリケーションサーバ12に実行させる(S312)。その結果、標準の画面定義ファイルに基づいて標準の画面データが生成される。
上述したように、本実施の形態によれば、画面遷移に係る一連の画面を生成する際に、テナント固有にカスタマイズされた画面定義ファイルが存在する場合は当該固有の画面定義ファイルが利用される。また、テナント固有にカスタマイズ画面定義ファイルが存在しない場合は、標準の(全てのテナントに対して共通の)画面定義ファイルが利用される。
例えば、図6のように画面定義ファイルが作成されている場合、テナントAについては、画面Bは標準の画面が表示される。テナントBについては、画面A及びCは標準の画面が表示される。また、テナントCについては、固有の画面定義ファイルを作成されていないため、全ての画面について標準の画面が表示される。
したがって、画面遷移に係る全ての画面について画面定義ファイルを作成する必要はない。換言すれば、カスタマイズが必要な一部の画面について画面定義ファイルを作成すればよい。その結果、全ての画面について画面定義ファイルを作成する場合に比べ、画面定義ファイルのファイル数を削減することができる。よって、画面定義ファイルを作成するための工数や、画面定義ファイルを保存するための記憶容量等を削減することができる。
なお、カスタマイズの単位をテナントごとではなく、ユーザ(ここで、ユーザは一個人を意味する。)ごとにする必要がある場合、テナントIDをユーザIDに置き換えて本実施の形態を実施すればよい。具体的には、セッションスコープ18にはユーザIDを記録すればよい。また、ユーザIDに応じて画面定義ファイルを作成しておけばよい。この場合、クライアント識別子の具体例は、テナントIDではなく、ユーザIDとなる。
また、画面定義データとして、JSP以外のデータを用いてもよい。例えば、XML(eXtensible Markup Language)データやXSL(eXtensible Stylesheet Language)データを用いてもよい。また、ASP(Active Server Pages)を用いてもよい。その他のデータ形式や、独自に定義したデータを用いてもよい。
また、本実施の形態では、標準の画面定義ファイルとテナントごとに固有の画面定義ファイルとを保存先のフォルダを変えることによって区別していたが、例えば、ファイル名によって区別するようにしてもよい。例えば、テナントごとに固有の画面定義ファイルには、テナントIDがファイル名に含まれるようにしてもよい。この場合、標準の画面定義ファイル及び各テナント用の画面定義ファイルは、同じフォルダ内に保存されていてもよい。
ところで、本実施の形態によれば、テナントごとに画面のカスタマイズが不可能であった(すなわち、全てのテナントに標準の画面が提供される)既存のシステムからの移行コストを低減できるというメリットもある。全てのテナントに標準の画面が提供されるシステムにおける画面定義データは、一般的に図12のように構成される。
図12は、全てのテナントに標準の画面が提供されるシステムにおける画面定義データの構成例を示す図である。図12中、図6と対応する部分には同一符号を付している。
図12に示されるように、全てのテナントに標準の画面が提供されるシステムでは、ルートフォルダ171内に、標準の画面定義データ171a、171b、及び171cが保存されている。この状態から、図6の状態へ移行するためには、インクルードファイルの生成、標準の画面定義データの保存場所の移動、カスタマイズが必要なテナントに対する画面定義データの作成、及び拡張タグ処理部13の実装を行えばよい。したがって、既存のプログラムのコーディングを変更したりする必要はない。よって、比較的簡便な作業によって、テナントごとにカスタマイズされた画面を提供可能なシステムに移行することができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
本発明の実施の形態におけるシステム構成例を示す図である。 本発明の実施の形態におけるWebサーバのハードウェア構成例を示す図である。 Webサーバによる処理手順を説明するためのフローチャートである。 テナントID管理テーブルの構成例を示す図である。 本実施の形態における画面遷移の例を示す図である。 本実施の形態における画面定義データの構成例を示す図である。 インクルードファイルの定義例を示す図である。 画面定義ファイルの定義例を示す図である。 インクルードファイルの第二の定義例を示す図である。 画面データ生成処理の処理手順を説明するためのフローチャートである。 拡張タグ処理部による処理手順を説明するためのフローチャートである。 全てのテナントに標準の画面が提供されるシステムにおける画面定義データの構成例を示す図である。
10 HTTPサーバ
11 HTTPサーバ
12 アプリケーションサーバ
13 拡張タグ処理部
14 業務アプリケーション
15 テナント判定部
17 画面定義データ
18 セッションスコープ
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス

Claims (4)

  1. 画面データを生成するコンピュータが、
    端末装置からの操作入力に基づく複数の画面遷移それぞれにおいて、遷移先画面が端末装置が属するテナントについて前記複数のテナントで共用される定義情報に基づく画面であ、前記共用される定義情報に基づいて前記遷移先画面の画面データを生成した後に該端末装置についての次の遷移先画面が前記ある端末装置の属するテナントに対応付けられた、前記共用される定義情報と異なる定義情報に基づく画面であるときは、前記異なる定義情報に基づいて前記次の遷移先画面の画面データを生成する、
    ことを特徴とする画面生成方法。
  2. 複数のテナントで共有される定義情報と、前記定義情報とは異なる定義情報との双方が対応づけられたテナントに属する端末装置からの操作入力に基づく複数の画面遷移それぞれにおいて、遷移先画面が前記端末装置が属するテナントについて前記複数のテナントで共用される定義情報に基づく画面であるときは、前記共用される定義情報に基づいて遷移先画面の画面データを生成し、遷移先画面が前記端末装置の属するテナントに対応付けられた、前記共用される定義情報と異なる定義情報に基づく画面であるときは、前記異なる定義情報に基づいて遷移先画面の画面データを生成する画面生成装置に対して、いずれのテナントに属するか識別可能なユーザ識別情報を送信し、
    送信した該ユーザ識別情報に基づいて前記画面生成装置によって判定されたテナントについて、前記端末装置についての遷移先画面が前記複数のテナントで共用される定義情報に基づく画面であるときは、前記共用される定義情報に基づいて生成された画面データを遷移先画面データとして受信し、送信した該ユーザ識別情報に基づいて前記画面生成装置によって判定されたテナントについて、前記端末装置についての遷移先画面が当該テナントに対応付けられた、前記共用される定義情報と異なる定義情報に基づく画面であるときは、前記異なる定義情報に基づいて生成された画面データを遷移先画面データとして受信し、
    受信した画面データを遷移先の画面データとして前記端末装置の表示部にそれぞれ表示する、
    ことを特徴とする画面表示を行う画面表示方法。
  3. 端末装置からの操作入力に基づく複数の画面遷移それぞれにおいて、遷移先画面が端末装置が属するテナントについて前記複数のテナントで共用される定義情報に基づく画面であ、前記共用される定義情報に基づいて前記遷移先画面の画面データを生成した後に該端末装置についての次の遷移先画面が前記ある端末装置の属するテナントに対応付けられた、前記共用される定義情報と異なる定義情報に基づく画面であるときは、前記異なる定義情報に基づいて前記次の遷移先画面の画面データを生成する、
    ことを特徴とする画面生成装置。
  4. 画面データを生成するコンピュータに、
    端末装置からの操作入力に基づく複数の画面遷移それぞれにおいて、遷移先画面が端末装置が属するテナントについて前記複数のテナントで共用される定義情報に基づく画面であ、前記共用される定義情報に基づいて前記遷移先画面の画面データを生成した後に該端末装置についての次の遷移先画面が前記ある端末装置の属するテナントに対応付けられた、前記共用される定義情報と異なる定義情報に基づく画面であるときは、前記異なる定義情報に基づいて前記次の遷移先画面の画面データを生成する、
    処理を実行させることを特徴とするプログラム。
JP2009029021A 2009-02-10 2009-02-10 画面生成方法、画面表示方法、画面生成装置、及びプログラム Active JP5638761B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009029021A JP5638761B2 (ja) 2009-02-10 2009-02-10 画面生成方法、画面表示方法、画面生成装置、及びプログラム
US12/618,160 US9223896B2 (en) 2009-02-10 2009-11-13 Screen generation method, and screen generation apparatus
EP09176681A EP2216723A3 (en) 2009-02-10 2009-11-20 Screen generation method, and screen generation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009029021A JP5638761B2 (ja) 2009-02-10 2009-02-10 画面生成方法、画面表示方法、画面生成装置、及びプログラム

Publications (2)

Publication Number Publication Date
JP2010186264A JP2010186264A (ja) 2010-08-26
JP5638761B2 true JP5638761B2 (ja) 2014-12-10

Family

ID=42235472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009029021A Active JP5638761B2 (ja) 2009-02-10 2009-02-10 画面生成方法、画面表示方法、画面生成装置、及びプログラム

Country Status (3)

Country Link
US (1) US9223896B2 (ja)
EP (1) EP2216723A3 (ja)
JP (1) JP5638761B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100174992A1 (en) * 2009-01-04 2010-07-08 Leon Portman System and method for screen recording
US9715555B2 (en) * 2010-02-26 2017-07-25 Salesforce.Com, Inc. System, method and computer program product for user registration with a multi-tenant on-demand database system
US8566923B2 (en) * 2011-02-01 2013-10-22 Rockwell Automation Technologies, Inc. Enhanced organization and automatic navigation of display screens facilitating automation control
JP5882623B2 (ja) * 2011-08-03 2016-03-09 キヤノン株式会社 情報処理装置、制御方法、プログラム
US9826027B2 (en) * 2014-08-19 2017-11-21 Bank Of America Corporation User interfaces generated by a workflow engine
JP6375877B2 (ja) 2014-10-31 2018-08-22 株式会社リコー 情報処理システム、情報処理方法、サービス利用装置、及びプログラム
JP6492642B2 (ja) * 2014-12-25 2019-04-03 ブラザー工業株式会社 画像形成装置、画像形成システム、及びプログラム
US10645173B2 (en) * 2017-10-30 2020-05-05 International Business Machines Corporation Session handling for multi-user multi-tenant web applications

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3535267B2 (ja) * 1995-07-03 2004-06-07 富士通株式会社 監視システムの監視状態表示装置
US5999179A (en) * 1997-11-17 1999-12-07 Fujitsu Limited Platform independent computer network management client
US6697088B1 (en) * 1998-04-27 2004-02-24 Jacada, Inc. Graphical presentation system
US6263346B1 (en) * 1998-07-17 2001-07-17 International Business Machines Corporation Network with storage of all client computer programs in server computer having customized client graphical user interfaces with maximum sharing of stored portions of interfaces common to a plurality of clients
US6505246B1 (en) * 1998-12-30 2003-01-07 Candle Distributed Solutions, Inc. User interface for system management applications
TW494319B (en) * 1999-11-29 2002-07-11 Citicorp Developmemt Ct Inc A method and system for generating display screen templates
US6954751B2 (en) * 2000-09-06 2005-10-11 Oracle International Corporation Accessing data stored at an intermediary from a service
EP1205843A3 (en) * 2000-11-13 2004-10-20 Canon Kabushiki Kaisha User interfaces
JP2002163382A (ja) 2000-11-29 2002-06-07 Fujitsu Ltd Aspサービスにおけるカストマイズ方法
EP1220507A1 (en) * 2000-12-22 2002-07-03 Sun Microsystems, Inc. Creating web content in a client and server system
GB0108354D0 (en) * 2001-04-03 2001-05-23 Thirdspace Living Ltd System and method for providing a user with access to a plurality of sevices and content from a broadband television service
US7038588B2 (en) * 2001-05-04 2006-05-02 Draeger Medical Infant Care, Inc. Apparatus and method for patient point-of-care data management
JP2003044417A (ja) * 2001-07-30 2003-02-14 Kernel:Kk 管理機能および対話機能を備えたクライアント・サーバシステム構築方法
US8112493B2 (en) 2004-01-16 2012-02-07 International Business Machines Corporation Programmatic role-based security for a dynamically generated user interface
JP2005266946A (ja) * 2004-03-16 2005-09-29 Ricoh Co Ltd 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
EP1739543A4 (en) * 2004-04-05 2009-09-30 Panasonic Corp SCREEN ÜEBRGANGS CONTROLLER
JP2006031666A (ja) * 2004-06-17 2006-02-02 Epson Avasys Corp 電子文書閲覧システム
JP2007282199A (ja) * 2006-03-15 2007-10-25 Ricoh Co Ltd フロー実装システム、フロー実装方法、フロー実装プログラム及び画像処理装置
JP2007279974A (ja) * 2006-04-05 2007-10-25 Ricoh Co Ltd 表示画面制御装置、電子機器、表示画面制御システム、表示画面制御方法、画面表示方法、表示画面制御プログラム及び画面表示プログラム
CN101410839B (zh) * 2006-04-12 2012-10-10 国际商业机器公司 调节客户端设备的功能的环境设置的方法和系统
JP2007316904A (ja) * 2006-05-25 2007-12-06 Ricoh Co Ltd Webアプリケーションシステム、Webアプリケーション画面提供方法、及びそのプログラム
US20100077359A1 (en) * 2006-12-19 2010-03-25 Yoshihiro Shinawaki Map display device
CN101334865A (zh) * 2007-06-28 2008-12-31 国际商业机器公司 工作流用户界面生成方法及生成器
US20110010394A1 (en) * 2009-07-08 2011-01-13 International Business Machines Corporation Client-specific data customization for shared databases

Also Published As

Publication number Publication date
EP2216723A3 (en) 2011-01-12
US20110083083A1 (en) 2011-04-07
US9223896B2 (en) 2015-12-29
JP2010186264A (ja) 2010-08-26
EP2216723A2 (en) 2010-08-11

Similar Documents

Publication Publication Date Title
JP5638761B2 (ja) 画面生成方法、画面表示方法、画面生成装置、及びプログラム
JP4902671B2 (ja) ターゲットデバイスにコンテンツを送信するための方策
US8332520B2 (en) Web server for managing session and method thereof
KR101505234B1 (ko) 원격 리소스들의 웹 액세스를 위한 xml-기반 웹 피드
JP2004318842A (ja) Webページ生成装置、組み込み装置、Webページ生成の制御方法、Webページ生成プログラム及び記録媒体
RU2628210C2 (ru) Активирование сервисных функций в рабочих приложениях
JP2015125620A (ja) 情報処理装置、その制御方法、プログラム、及び情報処理システム
JP2004303218A (ja) 情報提供装置及び情報表示装置
CN102004729A (zh) 一种网站网页的展现方法、系统及网站服务器
US9769246B2 (en) Information processing terminal and control method
JP2006244430A (ja) 情報配信管理装置
JP2015518612A (ja) リモートメソッド呼出しによる複数かつ異種のウェブページのスタイリング及び装飾を可能にするコンピュータシステム、非一時的コンピュータ可読記憶媒体及び方法
JP2010204834A (ja) アプリケーション実行方法、アプリケーション変更装置、及びアプリケーション変更プログラム
JP2007087221A (ja) ショッピングモールシステム
WO2015097729A1 (ja) 情報処理装置、ウェブサーバ及びコンピュータプログラム
JP2004326740A (ja) Webページ生成装置、組み込み装置、Webページ生成システム、Webページ生成の制御方法、Webページ生成プログラム及び記録媒体
JP6128503B1 (ja) 電子マニュアルに関連するサービスを提供するためのプログラム、サーバおよびシステム
JP2007272444A (ja) コンテンツ管理装置、コンテンツ管理方法およびコンテンツ管理プログラム
JP4710408B2 (ja) コンテンツを提供する方法、情報提供システム及び情報提供プログラム
JP4204493B2 (ja) データ中継プログラム
JP4881485B1 (ja) 情報通知システム、情報提示システム、情報通知方法、情報提示方法、情報通知プログラムおよび情報提示プログラム
JP4208185B2 (ja) 既存WebアプリケーションのWebサービスへの変換方法及び装置
JP2017175414A (ja) 画像処理サーバ、データ送信プログラム及び振分装置
JP2017049966A (ja) 情報処理装置、その制御方法、及びプログラム
JP2011070393A (ja) 情報処理システム及び通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130624

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131023

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20131030

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20131220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141023

R150 Certificate of patent or registration of utility model

Ref document number: 5638761

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150