(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024158043
(43)【公開日】2024-11-08
(54)【発明の名称】埋込プログラム、画面表示プログラム及び画面表示方法
(51)【国際特許分類】
H04L 67/02 20220101AFI20241031BHJP
H04L 67/567 20220101ALI20241031BHJP
【FI】
H04L67/02
H04L67/567
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023072879
(22)【出願日】2023-04-27
(11)【特許番号】
(45)【特許公報発行日】2024-06-20
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】395011562
【氏名又は名称】三菱電機ITソリューションズ株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】安川 武史
(72)【発明者】
【氏名】中野 亜美
(72)【発明者】
【氏名】高原 弦斗
(57)【要約】
【課題】既存のウェブアプリケーションプログラムのソースコードに対する改修を減らしつつ、既存のウェブアプリケーションプログラムとの間で、画面の動き等に連動させた情報連携を実現可能にする。
【解決手段】埋込プログラム20は、親画面11をブラウザ30に表示するウェブアプリケーションプログラムである親プログラム10から呼び出される、親プログラム10とは異なるウェブアプリケーションプログラムである。埋込プログラム20は、ブラウザ30に対して発生した指定イベントを検知する。埋込プログラム20は、指定イベントが検知されると、親プログラム10と埋込プログラム20との間で情報を連携させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
親画面をブラウザに表示するウェブアプリケーションプログラムである親プログラムから呼び出される、前記親プログラムとは異なるウェブアプリケーションプログラムである埋込プログラムであり、
前記ブラウザに対して発生した指定イベントを検知するイベント検知処理と、
前記イベント検知処理によって前記指定イベントが検知されると、前記親プログラムと前記埋込プログラムとの間で情報を連携させる情報連携処理と
をコンピュータに実行させる埋込プログラム。
【請求項2】
前記情報連携処理では、前記親プログラムで管理される情報を取得して、取得した情報を用いて前記指定イベントに応じた処理を実行する
請求項1に記載の埋込プログラム。
【請求項3】
前記埋込プログラムは、さらに、
前記親画面の一部として埋込画面を描画する埋込描画処理
をコンピュータに実行させ、
前記情報連携処理では、取得された情報に基づき前記埋込画面を更新する処理を実行する
請求項2に記載の埋込プログラム。
【請求項4】
前記情報連携処理では、前記埋込プログラムで管理される情報を前記親画面に設定する
請求項1に記載の埋込プログラム。
【請求項5】
前記情報連携処理では、前記埋込プログラムが配置されたコンピュータに接続された機器から取得された情報を前記親画面に設定する
請求項4に記載の埋込プログラム。
【請求項6】
前記埋込プログラムは、前記親プログラムとは異なるコンピュータに配置された
請求項1に記載の埋込プログラム。
【請求項7】
ウェブアプリケーションプログラムである親プログラムと、前記親プログラムとは異なるウェブアプリケーションプログラムである埋込プログラムとを有する画面表示プログラムであり、
前記親プログラムは、
親画面をブラウザに表示する親描画処理と、
前記埋込プログラムを呼び出す呼出し処理と
をコンピュータに実行させ、
前記埋込プログラムは、
前記ブラウザに対して発生した指定イベントを検知するイベント検知処理と、
前記イベント検知処理によって前記指定イベントが検知されると、前記親プログラムと前記埋込プログラムとの間で情報を連携させる情報連携処理と
をコンピュータに実行させる画面表示プログラム。
【請求項8】
ウェブアプリケーションプログラムである親プログラムが、親画面をブラウザに表示し、
前記親プログラムが、前記親プログラムとは異なるウェブアプリケーションプログラムである埋込プログラムを呼出し、
前記埋込プログラムが、前記ブラウザに対して発生した指定イベントを検知し、
前記埋込プログラムが、前記指定イベントが検知されると、前記親プログラムと前記埋込プログラムとの間で情報を連携させる画面表示方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ウェブアプリケーションプログラム間の情報を連携する技術に関する。
【背景技術】
【0002】
既存のウェブアプリケーションプログラムに対して機能を追加したい場合がある。この場合には、既存のウェブアプリケーションプログラムのソースコードに対して改修を加えればよい。しかし、既存のウェブアプリケーションプログラムのソースコードの改修が困難な場合がある。例えば、既存のウェブアプリケーションプログラムが他社の製品であるような場合には、既存のウェブアプリケーションプログラムの詳細な仕様が把握できないため改修が困難な場合がある。また、既存のウェブアプリケーションプログラムがクラウドシステムである場合には、自由な改修が認められておらず、改修が困難な場合がある。
既存のウェブアプリケーションプログラムのソースコードの改修が困難な場合には、追加機能を実現したウェブアプリケーションプログラムを別途作成して、既存のウェブアプリケーションプログラムとの間で情報連携させるという方法が考えられる。
【0003】
ウェブアプリケーションプログラム間で情報を連携する方式としては、APIを用いて情報転送する方式と、CSVといった形式のファイルを入出力する方式と、インラインフレームを用いた方式とがある。APIは、Application Programming Interfaceの略である。CSVは、Comma-Separated
Valuesの略である。特許文献1には、インラインフレームを用いた技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
APIを用いて情報転送する方式と、CSVといった形式のファイルを入出力する方式とでは、ウェブアプリケーションプログラムで表示する画面の動きに連動した処理の実現は困難である。そのため、画面の動きに連動させて、ウェブアプリケーションプログラム間での双方向に情報連携させること、又は、リアルタイムに情報連携させることを実現するには不向きであった。
【0006】
インラインフレームを用いた方式では、画面の動きに連動した処理を実現することが可能である。しかし、インラインフレームを用いた方式では、連携先と連携元とのプログラムの構造を互いに考慮し、連携先と連携元とが密に結合した実装が必要になる。
【0007】
本開示は、既存のウェブアプリケーションプログラムのソースコードに対する改修を減らしつつ、既存のウェブアプリケーションプログラムとの間で、画面の動き等に連動させた情報の連携を実現可能にすることを目的とする。
【課題を解決するための手段】
【0008】
本開示に係る埋込プログラムは、
親画面をブラウザに表示するウェブアプリケーションプログラムである親プログラムから呼び出される、前記親プログラムとは異なるウェブアプリケーションプログラムである埋込プログラムであり、
前記ブラウザに対して発生した指定イベントを検知するイベント検知処理と、
前記イベント検知処理によって前記指定イベントが検知されると、前記親プログラムと前記埋込プログラムとの間で情報を連携させる情報連携処理と
をコンピュータに実行させる。
【発明の効果】
【0009】
本開示では、埋込プログラムは親プログラムから呼び出され実行される。これにより、ブラウザから見た場合に埋込プログラムは、親プログラムとともに1つのウェブ画面を構成するプログラムになる。そのため、埋込プログラムが親画面を表示したブラウザにおける指定イベントを検出し、親プログラムと埋込プログラムとの間で情報を連携させることが可能になる。その結果、親プログラムには、埋込プログラムを呼び出す処理だけを記述するだけで情報の連携が可能になる。
【図面の簡単な説明】
【0010】
【
図1】実施の形態1に係る画面表示システム100の構成図。
【
図3】実施の形態1に係る第1サーバ101と第2サーバ102とユーザ端末103とのハードウェア構成の説明図。
【
図4】実施の形態1に係る画面表示システム100の動作概要を示すフローチャート。
【
図5】実施の形態1に係る画面表示システム100の詳細な動作を示すフローチャート。
【
図6】実施の形態1に係る画面表示システム100の詳細な動作を示すフローチャート。
【
図7】実施の形態1に係る埋込プログラム20を用いて親プログラム10に機能追加する方法の説明図。
【
図8】実施の形態1に係る埋込プログラム20を用いて親プログラム10に機能追加する方法の説明図。
【
図9】変形例2に係る画面表示システム100の構成図。
【発明を実施するための形態】
【0011】
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係る画面表示システム100の構成を説明する。
画面表示システム100は、第1サーバ101と、第2サーバ102と、ユーザ端末103とを備える。第1サーバ101と、第2サーバ102と、ユーザ端末103とは、インターネット等のネットワーク109を介して接続されている。
【0012】
第1サーバ101には、ウェブアプリケーションプログラムである親プログラム10が記憶されている。第2サーバ102には、親プログラムとは異なるウェブアプリケーションプログラムである埋込プログラム20が記憶されている。
【0013】
ユーザ端末103は、ウェブ閲覧用のブラウザ30を備える。ユーザ端末103は、ブラウザ30を介して第1サーバ101にアクセスして、親プログラム10を取得して実行する。これにより、
図2に示すように、ユーザ端末103が備えるブラウザ30に、親プログラム10によって親画面11が描画される。また、親プログラム10によって、第2サーバ102に記憶された埋込プログラム20が呼び出され、実行される。これにより、
図2に示すように、親画面11の一部として、埋込画面21が描画される。
【0014】
図3を参照して、実施の形態1に係る第1サーバ101と第2サーバ102とユーザ端末103とのハードウェア構成を説明する。
第1サーバ101と第2サーバ102とユーザ端末103とは、コンピュータである。
第1サーバ101と第2サーバ102とユーザ端末103とは、プロセッサ201と、メモリ202と、ストレージ203と、通信インタフェース204とのハードウェアを備える。プロセッサ201は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0015】
プロセッサ201は、プロセッシングを行うICである。ICはIntegrated
Circuitの略である。プロセッサ201は、具体例としては、CPU、DSP、GPUである。CPUは、Central Processing Unitの略である。DSPは、Digital Signal Processorの略である。GPUは、Graphics Processing Unitの略である。
【0016】
メモリ202は、情報を一時的に記憶する記憶装置である。メモリ202は、具体例としては、SRAM、DRAMである。SRAMは、Static Random Access Memoryの略である。DRAMは、Dynamic Random Access Memoryの略である。
【0017】
ストレージ203は、情報を保管する記憶装置である。ストレージ203は、具体例としては、HDDである。HDDは、Hard Disk Driveの略である。また、ストレージ203は、SD(登録商標)メモリカード、CompactFlash(登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、Blu-ray(登録商標)ディスク、DVDといった可搬記録媒体であってもよい。SDは、Secure Digitalの略である。DVDは、Digital Versatile Diskの略である。
【0018】
通信インタフェース204は、外部の装置と通信するためのインタフェースである。通信インタフェース204は、具体例としては、Ethernet(登録商標)、USB、HDMI(登録商標)のポートである。USBは、Universal Serial Busの略である。HDMIは、High-Definition Multimedia Interfaceの略である。
【0019】
***動作の説明***
図4から
図7を参照して、実施の形態1に係る画面表示システム100の動作を説明する。
実施の形態1に係る画面表示システム100の動作手順は、実施の形態1に係る画面表示方法に相当する。また、実施の形態1に係る画面表示システム100の動作を実現する親プログラム及び埋込プログラムは、実施の形態1に係る画面表示プログラムに相当する。
【0020】
図4を参照して、実施の形態1に係る画面表示システム100の動作概要を説明する。
(ステップS1:親描画処理)
ユーザ端末103は、ブラウザ30を介して第1サーバ101にアクセスして、親プログラム10を取得し実行する。これにより、ブラウザ30において親プログラム10が起動する。親プログラム10は、親画面11をブラウザ30に描画する。また、親プログラム10は、埋込プログラム20を呼び出す呼出し処理を実行する。
【0021】
(ステップS2:埋込描画処理)
ブラウザ30においてステップS1で呼び出された埋込プログラム20が起動する。埋込プログラム20は、親画面11の一部として、埋込画面21を描画する。また、埋込プログラム20は、ブラウザ30の指定イベントをフックする。
指定イベントとは、後述するようにアプリケーション情報又は初期情報に設定されていて、親画面11または埋込画面21における利用者からのキー操作やマウス操作等によるイベントを示す。指定イベントをフックするとは、指定イベントの発生を埋込プログラム20に通知するように指定することであり、詳細は後述する。
【0022】
ステップS1からステップS2の処理が実行されることにより、
図2に示すように、親画面11の一部として、埋込画面21が描画されたウェブ画面が表示される。このウェブ画面に対してユーザにより操作が行われる。例えば、ウェブ画面上をカーソルが動かされる、ブラウザ30のサイズが変更される、親画面11におけるテキストボックスに入力される、埋込画面21におけるボタンが押下されるといった操作がされる。
【0023】
(ステップS3:イベント検知処理)
埋込プログラム20は、ブラウザ30に対して発生した指定イベントを検知する。埋込プログラム20は、指定イベントが検知された場合には、処理をステップS4に進める。一方、埋込プログラム20は、指定イベントが検知されなかった場合には、処理をステップS3に戻す。
【0024】
(ステップS4:情報連携処理)
埋込プログラム20は、親プログラム10と埋込プログラム20との間で情報を連携させる。
具体例として、埋込プログラム20は、親プログラム10で管理される情報を取得して、取得した情報を用いて指定イベントに応じた処理を実行する。埋込プログラム20は、取得した情報に基づき埋込画面21に表示する情報を更新する処理を実行することが考えられる。他の具体例として、埋込プログラム20は、埋込プログラム20で管理される情報を親プログラム10に渡して親画面11に設定する。
ここで親プログラム10と埋込プログラム20との間での情報の連携とは、具体例として示した親プログラム10で管理される情報を埋込プログラム20に渡すことを含み、親画面11あるいは埋込画面21でのユーザの画面操作に応じた入力値又は表示値に関する情報、親プログラム10あるいは埋込プログラム20での処理の実行結果に基づく表示値に関する情報等を親プログラム10と埋込プログラム20との間で受け渡すことを示す。
【0025】
ウェブ画面に対してユーザにより操作が行われ、ステップS3からステップS4の処理が繰り返し実行される。これにより、親プログラム10と埋込プログラム20との間で情報が連携されながら、処理が実行される。
【0026】
図5及び
図6を参照して、実施の形態1に係る画面表示システム100の詳細な動作を説明する。
まずブラウザ30において親プログラム10が動作する。ステップS11からステップS13の処理は、
図4のステップS1の処理に対応する。
【0027】
なお具体例として親プログラム10は、HTMLで構成され、埋込プログラム20は、javascriptで構成されているものとする。HTMLは、HyperText Markup Languageの略である。
第1サーバ101にアクセスすることにより、親プログラム10を構成するHTMLプログラムがブラウザ30に読み込まれる(ステップS11)。これにより、ブラウザ30において親プログラム10が起動する。親プログラム10は、親画面11をブラウザ30に表示する。
親プログラム10は、埋込プログラム20を呼び出す(ステップS12)。具体的には、HTMLプログラムには、埋込プログラム20を構成するエンジンjsファイルを指定したscriptタグが記載されている。このscriptタグが実行されることにより、第2サーバ102から埋込プログラム20のエンジンjsファイルが読み込まれる。
ブラウザ30はエンジンjsを起動する(ステップS13)。ここでは、エンジンjsには、末尾に実行命令が記述されているとする。そのため、ブラウザ30は、読み込まれたエンジンjsを起動する。
【0028】
エンジンjsを実行したことにより、動作の主体が埋込プログラム20に移る。ステップS21からステップS29の処理は、
図4のステップS2の処理に対応する。
【0029】
エンジンjsが実行する処理に関する情報を持っていないため、埋込プログラム20は、実行する処理について第2サーバ102に問合せする(ステップS21)。すると、第2サーバ102は、初期に実行されるstartup.jsonファイルを読み込み、startup.jsonファイルをアプリケーション情報としてブラウザ30に送信する(ステップS22)。startup.jsonファイルには、実行モジュールの情報と、初期化メソッドとが示されている。
埋込プログラム20は、アプリケーション情報であるstartup.jsonファイルに示された実行モジュールの初期化メソッドの実行を第2サーバ102に指示する(ステップS23)。第2サーバ102は、実行モジュールの初期化メソッドを呼び出す(ステップS24)。すると、実行モジュールの初期化メソッドが実行され、デザインファイルと、親画面11の一部として埋込画面21が描画されたウェブ画面を初期に表示する情報とがブラウザ30に返される(ステップS25)。
ここでアプリケーション情報とはアプリケーションの動作に必要な情報を定義した情報を示す。またデザインファイルとは埋込画面21のデザイン情報を定義したファイルを示す。javascriptを用いて描画できる領域をCanvasと言うが、デザインファイルは、Canvasに描画される画面デザインの情報を定義したファイルで、具体的にはボタンの座標、大きさ、表示する文字列といった情報が含まれている。
埋込プログラム20は、デザインファイルに基づき、親プログラム10にCanvasタグを埋め込む(ステップS26)。これにより、親画面11の一部として、Canvasタグで示された埋込画面21が描画される(ステップS27)。埋込プログラム20は、ブラウザ30の指定イベントをフックする(ステップS28)。指定イベントは、アプリケーション情報又は初期情報に設定されている。指定イベントは、親画面11におけるテキストボックスに入力される、埋込画面21におけるボタンが押下されるといったイベントである。
埋込プログラム20は、アプリケーション情報とデザイン情報と初期情報とのいずれかに示された画面部品jsファイル及び個別イベントjsファイルとを第2サーバ102から読み込む(ステップS29)。画面部品jsファイルは、埋込画面21を変化させるためのプログラムである。個別イベントjsファイルは、親プログラム10と埋込プログラム20との間で情報連携を行うためのプログラムである。
【0030】
以上の処理により、
図2に示すように、親画面11の一部として、埋込画面21が描画されたウェブ画面が表示される。表現を変えると、親画面11内のCanvasの領域に、埋込画面21が描画されたウェブ画面が表示される。このウェブ画面に対してユーザにより操作が行われる。例えば、カーソルの移動、キーボードによるキー入力、画面サイズ変更、タイマーの作動等が行われる。そして、ユーザによる操作が行われる際、ステップS31以降の処理が実行される。
ステップS31からステップS32の処理は、
図4のステップS3の処理に対応する。ステップS41からステップS47の処理は、
図4のステップS4の処理に対応する。
【0031】
埋込プログラム20は、ブラウザ30に対して発生したイベントを検知する(ステップS31)。
上述したとおり、javascriptを用いて描画できる領域であるCanvasでは、通常であればCanvas上をマウスが動いたか否か程度の操作しか検知できない。埋込プログラム20が埋込画面21を作りこむことでCanvas上のボタンに対するマウス操作又はキーボード操作もブラウザ30で発生したイベントとして検知が可能となる。
埋込プログラム20は、検知されたイベントが埋込画面21の再描画が必要なイベントである場合には、画面部品jsファイルの描画処理を呼び出して実行する(ステップS32)。これにより、イベントに応じて埋込画面21が再描画される。埋込画面21の再描画が必要なイベントとは、例えば、埋込画面21のボタンにカーソルが合わせられた、ブラウザ30の画面サイズが変更されたといったイベントである。例えば、埋込画面21のボタンにカーソルが合わせられた場合には、埋込プログラム20はボタンの色を変化させる。また、ブラウザ30の画面サイズが変更された場合には、埋込プログラム20は埋込画面21のサイズを変化させる。
埋込プログラム20は、検知されたイベントが指定イベントである場合には、処理をステップS41に進める。
【0032】
埋込プログラム20は、検知された指定イベントに対応するシグナルを発生させる(ステップS41)。シグナルは、埋込プログラム20におけるイベントである。埋込プログラム20は、シグナルに対応するイベントメソッドがあるか否かを判定する(ステップS42)。イベントメソッドがあった場合には、埋込プログラム20は、イベントメソッドの実行を第2サーバ102に指示する(ステップS43)。一方、イベントメソッドがなかった場合には、埋込プログラム20は、処理をステップS31に戻す。
イベントメソッドの実行が指示されると、第2サーバ102は、実行モジュールの該当するイベントメソッドを呼び出す(ステップS44)。すると、実行モジュールの該当するイベントメソッドが実行される(ステップS45)。そして、埋込プログラム20は、イベントメソッドの実行結果に応じて、親画面11に値を設定する、又は、埋込画面21を再描画するといった処理を行う(ステップS46)。なお、イベントメソッドによっては、ステップS46の処理はスキップされる。
そして、処理がステップS31に戻される。
シグナルとは指定イベントが検知されたとき、その指定イベントが検知されたという情報を示す。シグナルに対応するイベントメゾットとは、指定イベントに応じた第2サーバ102での処理内容を定義したものである。シグナルに対応するイベントメゾットがあるか否かの情報は、第2サーバ102および埋込プログラム20で連携されているものとする。
【0033】
図7及び
図8を参照して、実施の形態1に係る埋込プログラム20を用いて親プログラム10に機能追加する方法を説明する。
図7及び
図8では、比較のため、インラインフレームを用いた方式で親プログラム10に機能追加した場合についても示されている。
【0034】
図7では、親画面11のテキストボックスに入力された情報を埋込プログラム20に受け渡す機能を追加する例が示されている。
実施の形態1における方法でこの機能を追加する場合には、親プログラム10側には、埋込プログラム20を呼び出すscriptタグを追加する。埋込プログラム20側には、親画面11のテキストボックスに情報が入力されたことを指定イベントとして設定し、指定イベントが検知された場合に情報を取得する処理を記述する。
これに対して、インラインフレームを用いた方式でこの機能を追加する場合には、親プログラム10側には、親画面11のテキストボックスに情報が入力された場合に、入力された情報をpostMessageするように記述する。postMessageは、ブラウザ内のウインドウ間通信である。埋込プログラム20側には、メッセージ待機イベント(onMessage)を受け取った場合に、メッセージの送信元のURLが親プログラム10であれば、情報を取得するよう記述にする。URLは、Uniform Resource Locatorの略である。
【0035】
図8では、埋込画面21のボタンが押下された場合に埋込プログラム20内の情報を親画面11のテキストボックスに設定する機能を追加する例が示されている。
実施の形態1における方法でこの機能を追加する場合には、親プログラム10側には、埋込プログラム20を呼び出すscriptタグを追加する。埋込プログラム20側には、埋込画面21のボタンが押下されたことを指定イベントとして設定し、指定イベントが検知された場合に埋込プログラム20内の情報を親画面11のテキストボックスに設定する処理を記述する。なお、親画面11と埋込画面21とは同一のウェブ画面であるため、特別な処理はいらず、単に埋込プログラム20内の情報を親画面11のテキストボックスに設定すればよい。
これに対して、インラインフレームを用いた方式でこの機能を追加する場合には、親プログラム10側には、メッセージ待機イベント(onMessage)を受け取った場合に、メッセージの送信元のURLが埋込プログラム20であれば、情報を取得して親画面11のテキストボックスに設定する処理を記述する。埋込プログラム20には、埋込画面21のボタンが押下された場合に、入力された情報をpostMessageするように記述する。
【0036】
***実施の形態1の効果***
以上のように、実施の形態1に係る画面表示システム100では、埋込プログラム20は親プログラム10から呼び出され実行される。これにより、ブラウザ30から見た場合に埋込プログラム20は、親プログラム10とともに1つのウェブ画面を構成するプログラムになる。そのため、埋込プログラム20が親画面11を表示したブラウザ30における指定イベントを検出し、親プログラム10と埋込プログラム20との間で情報を連携させることが可能になる。その結果、親プログラム10には、埋込プログラム20を呼び出す処理だけを記述するだけで情報の連携が可能になる。
【0037】
図7及び
図8を参照して説明したように、親プログラム10側には、原則として埋込プログラム20を呼び出すscriptタグを追加するだけでよい。そのため、親プログラム10が他社の製品であり、親プログラム10の仕様が分からないような場合であっても、親プログラム10に対する作業を容易に行うことができる。また、親プログラム10がクラウドシステムである場合にも、scriptタグの追加だけを許可すれば、親プログラム10に対する作業を容易に行うことができる。
これに対して、インラインフレームを用いた方式では、連携先と連携元とのプログラムの構造を互いに考慮し、連携先と連携元とが密に結合した実装が必要になる。つまり、親プログラム10側についても仕様を把握した上で改修を行う必要がある。そのため、親プログラム10が他社の製品であり、親プログラム10の仕様が分からないような場合には、親プログラム10に対する作業は困難である。また、親プログラム10がクラウドシステムである場合には、作業を許可することが難しく、親プログラム10に対する作業は困難である。
【0038】
このような特徴を利用することで、他社の製品であるウェブアプリケーションプログラムに対して、任意の機能を追加することができる。また、古くなり、サポートが切れてしまっているようなウェブアプリケーションプログラムに対して、任意の機能を追加することができる。また、ベースとなる機能を作り込んだウェブアプリケーションプログラムをクラウドシステムとして実装しておき、提供先毎に埋込プログラム20を作り込んで連携させることで、クラウドシステムをカスタマイズすることができる。
【0039】
実施の形態1に係る画面表示システム100では、上述した通り、親プログラム10にはscriptタグを追加するだけでよい。そのため、埋込プログラム20により機能追加した場合であっても、親プログラム10についてのテストは埋込プログラム20と関連する部分だけで十分である。そのため、機能追加におけるテスト工数を抑えることが可能である。
【0040】
また、インラインフレームを用いた方式では、同一生成元ポリシーの制限があり、第1サーバ101と第2サーバ102とが同一ドメインでない場合には、情報の取得及び情報の操作に制限がかけられる。
しかし、実施の形態1に係る画面表示システム100では、ブラウザ30から見た場合に埋込プログラム20は、親プログラム10とともに1つのウェブ画面を構成するプログラムになる。そのため、情報の取得及び情報の操作に対して、インラインフレームを用いた方式のような制限はない。
【0041】
また、インラインフレームを用いた方式では、連携する情報が他のウェブアプリケーションプログラムによって傍受されるリスクがある。具体的には、
図7の例で、親プログラム10が親画面11のテキストボックスに情報が入力された場合に、入力された情報をpostMessageする。このとき、親画面11に表示されたどのウインドウからでも、postMessageされた情報を取得できる。そのため、悪意のあるウインドウが表示されてしまうと、情報を取得されてしまう恐れがある。
しかし、実施の形態1に係る画面表示システム100では、他のウインドウから情報を取得される恐れはない。
【0042】
***他の構成***
<変形例1>
実施の形態1では、親画面11の一部として埋込画面21が描画された。しかし、埋込画面21は、描画されなくてもよい。この場合には、埋込プログラム20は、親画面11に情報を表示せず、親プログラム10の情報を用いた処理を行うプログラムである。例えば、埋込プログラム20は、親プログラム10に入力された情報を編集等して記録するようなプログラムである。
【0043】
<変形例2>
実施の形態1では、親プログラム10を実行するブラウザ30を備えたユーザ端末103と、埋込プログラム20を記憶する第2サーバ102とが別の装置であった。しかし、
図9に示すように、親プログラム10を実行するブラウザ30を備えたユーザ端末103に埋込プログラム20が記憶されていてもよい。
この場合には、埋込プログラム20は、ユーザ端末103に接続されたデバイス104の情報を取得することが可能である。デバイス104は、具体例としては、ICカードリーダと、カメラといったものである。例えば、埋込プログラム20は、デバイス104の情報を取得し、その情報を親画面11に設定することができる。これにより、親プログラム10と、ローカルデバイスであるデバイス104とで情報を連携させた処理を行うようにすることも可能である。
【0044】
<変形例3>
実施の形態1では、埋込プログラム20は1つだけであった。しかし、親プログラム10は、複数の埋込プログラム20を呼び出してもよい。これにより、親プログラム10に対して複数の機能を追加することが可能である。また、複数の埋込プログラム20のうち、どの埋込プログラム20と親プログラム10を情報連携させるかを親画面11で選択できるようにしてもよい。これにより、ユーザが追加する機能を選択することが可能になる。
【0045】
以下、本開示の諸態様を付記としてまとめて記載する。
(付記1)
親画面をブラウザに表示するウェブアプリケーションプログラムである親プログラムから呼び出される、前記親プログラムとは異なるウェブアプリケーションプログラムである埋込プログラムであり、
前記ブラウザに対して発生した指定イベントを検知するイベント検知処理と、
前記イベント検知処理によって前記指定イベントが検知されると、前記親プログラムと前記埋込プログラムとの間で情報を連携させる情報連携処理と
をコンピュータに実行させる埋込プログラム。
(付記2)
前記情報連携処理では、前記親プログラムで管理される情報を取得して、取得した情報を用いて前記指定イベントに応じた処理を実行する
付記1に記載の埋込プログラム。
(付記3)
前記埋込プログラムは、さらに、
前記親画面の一部として埋込画面を描画する埋込描画処理
をコンピュータに実行させ、
前記情報連携処理では、取得された情報に基づき前記埋込画面を更新する処理を実行する
付記2に記載の埋込プログラム。
(付記4)
前記情報連携処理では、前記埋込プログラムで管理される情報を前記親画面に設定する
付記1から3までのいずれか1項に記載の埋込プログラム。
(付記5)
前記情報連携処理では、前記埋込プログラムが配置されたコンピュータに接続された機器から取得された情報を前記親画面に設定する
付記4に記載の埋込プログラム。
(付記6)
前記埋込プログラムは、前記親プログラムとは異なるコンピュータに配置された
付記1から5までのいずれか1項に記載の埋込プログラム。
(付記7)
ウェブアプリケーションプログラムである親プログラムと、前記親プログラムとは異なるウェブアプリケーションプログラムである埋込プログラムとを有する画面表示プログラムであり、
前記親プログラムは、
親画面をブラウザに表示する親描画処理と、
前記埋込プログラムを呼び出す呼出し処理と
をコンピュータに実行させ、
前記埋込プログラムは、
前記ブラウザに対して発生した指定イベントを検知するイベント検知処理と、
前記イベント検知処理によって前記指定イベントが検知されると、前記親プログラムと前記埋込プログラムとの間で情報を連携させる情報連携処理と
をコンピュータに実行させる画面表示プログラム。
(付記8)
ウェブアプリケーションプログラムである親プログラムが、親画面をブラウザに表示し、
前記親プログラムが、前記親プログラムとは異なるウェブアプリケーションプログラムである埋込プログラムを呼出し、
前記埋込プログラムが、前記ブラウザに対して発生した指定イベントを検知し、
前記埋込プログラムが、前記指定イベントが検知されると、前記親プログラムと前記埋込プログラムとの間で情報を連携させる画面表示方法。
【0046】
以上、本開示の実施の形態及び変形例について説明した。これらの実施の形態及び変形例のうち、いくつかを組み合わせて実施してもよい。また、いずれか1つ又はいくつかを部分的に実施してもよい。なお、本開示は、以上の実施の形態及び変形例に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【0047】
100 画面表示システム、101 第1サーバ、102 第2サーバ、103 ユーザ端末、104 デバイス、10 親プログラム、11 親画面、20 埋込プログラム、21 埋込画面、30 ブラウザ、201 プロセッサ、202 メモリ、203 ストレージ、204 通信インタフェース。
【手続補正書】
【提出日】2024-03-25
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
親画面をブラウザに表示するウェブアプリケーションプログラムである第1サーバに配置された親プログラムから呼び出される、前記親プログラムとは異なるウェブアプリケーションプログラムである埋込プログラムであって、前記第1サーバとは異なる第2サーバに配置された埋込プログラムであり、
前記ブラウザに対して発生した指定イベントを検知するイベント検知処理と、
前記イベント検知処理によって前記指定イベントが検知されると、前記指定イベントに対応するイベントメソッドの実行を前記第2サーバに指示し、前記イベントメソッドが実行されて得られた実行結果に応じて、前記親プログラムと前記埋込プログラムとの間で情報を連携させる情報連携処理と
をコンピュータに実行させる埋込プログラム。
【請求項2】
前記情報連携処理では、前記親プログラムで管理される情報を取得して、取得した情報を用いて前記指定イベントに応じた処理を実行する
請求項1に記載の埋込プログラム。
【請求項3】
前記埋込プログラムは、さらに、
前記親画面の一部として埋込画面を描画する埋込描画処理
をコンピュータに実行させ、
前記情報連携処理では、取得された情報に基づき前記埋込画面を更新する処理を実行する
請求項2に記載の埋込プログラム。
【請求項4】
前記情報連携処理では、前記埋込プログラムで管理される情報を前記親画面に設定する請求項1に記載の埋込プログラム。
【請求項5】
前記情報連携処理では、前記埋込プログラムが配置されたコンピュータに接続された機器から取得された情報を前記親画面に設定する
請求項4に記載の埋込プログラム。
【請求項6】
ウェブアプリケーションプログラムである親プログラムであって、第1サーバに配置された親プログラムと、前記親プログラムとは異なるウェブアプリケーションプログラムである埋込プログラムであって、前記第1サーバとは異なる第2サーバに配置された埋込プログラムとを有する画面表示プログラムであり、
前記親プログラムは、
親画面をブラウザに表示する親描画処理と、
前記埋込プログラムを呼び出す呼出し処理と
をコンピュータに実行させ、
前記埋込プログラムは、
前記ブラウザに対して発生した指定イベントを検知するイベント検知処理と、
前記イベント検知処理によって前記指定イベントが検知されると、前記指定イベントに対応するイベントメソッドの実行を前記第2サーバに指示し、前記イベントメソッドが実行されて得られた実行結果に応じて、前記親プログラムと前記埋込プログラムとの間で情報を連携させる情報連携処理と
をコンピュータに実行させる画面表示プログラム。
【請求項7】
前記呼出し処理では、複数の埋込プログラムを呼び出し、
前記親プログラムは、さらに、
前記情報連携処理において前記複数の埋込プログラムのうちいずれの埋込プログラムとの間で情報を連携させるかの選択を受け付ける選択処理
をコンピュータに実行させる請求項6に記載の画面表示プログラム。
【請求項8】
ウェブアプリケーションプログラムである親プログラムであって、第1サーバに配置された親プログラムが、親画面をブラウザに表示し、
前記親プログラムが、前記親プログラムとは異なるウェブアプリケーションプログラムである埋込プログラムであって、前記第1サーバとは異なる第2サーバに配置された埋込プログラムを呼出し、
前記埋込プログラムが、前記ブラウザに対して発生した指定イベントを検知し、
前記埋込プログラムが、前記指定イベントが検知されると、前記指定イベントに対応するイベントメソッドの実行を前記第2サーバに指示し、前記イベントメソッドが実行されて得られた実行結果に応じて、前記親プログラムと前記埋込プログラムとの間で情報を連携させる画面表示方法。
【請求項9】
前記親プログラムは、複数の埋込プログラムを呼び出し、
前記親プログラムは、前記複数の埋込プログラムのうちいずれの埋込プログラムとの間で情報を連携させるかの選択を受け付け、
前記複数の埋込プログラムのうち選択された埋込プログラムが、前記指定イベントを検知し、
前記複数の埋込プログラムのうち選択された埋込プログラムが、前記指定イベントが検知されると、前記指定イベントに対応するイベントメソッドの実行を前記第2サーバに指示し、前記イベントメソッドが実行されて得られた実行結果に応じて、前記親プログラムと前記埋込プログラムとの間で情報を連携させる
請求項8に記載の画面表示方法。