以下、図面を参照しながら、発明を実施するための形態を説明する。なお、図面の説明において同一要素には同一符号を付し、重複する説明は省略する。
●第1の実施形態●
●システム構成
図1は、第1の実施形態に係る情報処理システムのシステム構成の一例を示す図である。図1に示す情報処理システムは、所定のアプリケーションと、アプリケーションの動作に関連するモジュールとを備える情報処理装置10を有する。情報処理システムは、情報処理装置10において、所定のアプリケーションが更新された場合、更新されたアプリケーションの動作に関連するモジュールを追随して更新することができるシステムである。
情報処理システムは、情報処理装置10、アプリサーバ50、アプリ作成装置70(70a、70b、以下、区別する必要のないときは、アプリ作成装置70とする。)、および用語モジュール作成装置90(90a、90b、以下、区別する必要のないときは、用語モジュール作成装置90とする。)によって構成されている。情報処理システムを構成する各装置は、通信ネットワーク5を介してそれぞれ接続されている。通信ネットワーク5は、例えば、LAN(Local Area Network)、専用線およびインターネット等によって構築される。通信ネットワーク5は、有線だけでなく、Wi-Fi(Wireless Fidelity)や、Bluetooth(登録商標)等の無線による通信が行われる箇所があってもよい。
情報処理装置10は、例えば、MFP(Multifunction Peripheral/Printer/Product:複合機)、ファクシミリ、スキャナ、またはプリンタ等の画像処理機能並びに通信機能を備える画像形成装置である。情報処理装置10は、アプリサーバ50またはアプリ作成装置70から提供されるアプリケーション(以下、アプリ)をインストールしている。情報処理装置10にインストールされるアプリは、所定の言語で記述された用語ファイルを有する。情報処理装置10は、インストールされたアプリに関連づけられた(紐づけられた)用語ファイルにアクセスすることができる。情報処理装置10は、アプリが実行された場合、用語ファイルに含まれる用語を用いて、操作パネル上に表示画面を表示させる。
また、情報処理装置10は、アプリの動作に関連するモジュールとして、用語モジュールを備える。用語モジュールは、アプリの表示画面に表示させる用語の追加・差し替えを行う場合に使用される。情報処理装置10は、アプリに関連づけられた用語ファイルに記述された言語とは異なる言語でアプリの表示画面を表示させたい場合、所望の言語に対応する用語モジュールを用いて、表示される用語を差し替える。
アプリが使用言語の異なる国や地域に広く配信されている場合、アプリの表示言語をユーザの使用言語のすべてに対応させるのは、アプリ開発および管理上の負担が大きい。そこで、アプリの配信地域の担当者が用語モジュールを作成し、ユーザが望む言語に対応する用語モジュールを個別に情報処理装置10に組み込むことで、アプリの生成時には取り込まれていない言語についても情報処理装置10に表示させることができる。
アプリサーバ50は、情報処理装置10にインストールされるアプリおよび用語モジュールを管理するサーバ装置である。アプリサーバ50は、アプリの更新を行うとともに、情報処理装置10へ更新されたアプリを提供する。アプリ作成装置70a、70bは、情報処理装置10に提供するアプリを作成する装置である。アプリ作成装置70a、70bは、異なるアプリを作成する。なお、アプリサーバ50が、アプリ作成装置70としての機能を備える構成にしてもよい。
用語モジュール作成装置90は、アプリの動作に関連するモジュールを作成する外部装置である。用語モジュール作成装置90は、アプリの表示画面に表示される用語を補完するための用語モジュールを作成する。用語モジュール作成装置90は、例えば、作成する用語モジュールの言語を使用する地域または国ごとに配置される。用語モジュールは、用語モジュール作成装置90を用いて、有志や一部のベンダ等のサードパーティによって作成される。用語モジュール作成装置90は、作成した用語モジュールを、通信ネットワーク5を経由して情報処理装置10へ提供する。
また、情報処理装置10にインストールされたアプリが更新された場合、用語モジュール作成装置90は、更新されたアプリと用語モジュールに含まれる用語の差異をアプリサーバ50から取得する。そして、用語モジュール作成装置90は、取得して差異の情報を用いて、用語ファイルを更新・作成する。これによって、用語モジュール作成装置90は、情報処理装置10にインストールされたアプリの内容に対応した用語モジュールを作成することができる。
なお、情報処理装置10は、通信機能を備えた装置であれば、画像形成装置に限られない。情報処理装置10は、例えば、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCまたはデスクトップPC等であってもよい。
●ハードウエア構成
図2は、第1の実施形態に係る情報処理装置のハードウエア構成の一例を示す図である。なお、図2に示すハードウエア構成は、各実施形態において同様の構成を備えていてもよく、必要に応じて構成要素が追加または削除されてもよい。また、図2は、情報処理装置10のハードウエア構成を示したが、アプリサーバ50、アプリ作成装置70および用語モジュール作成装置90も同様の構成を有していてもよい。
情報処理装置10は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103と、ストレージ104、キーボード105、ディスプレイインターフェース(I/F(Interface))、メディアインターフェース(I/F)107、ネットワークインターフェース(I/F)108およびバス109を備える。
CPU101は、RAM103をワークエリア(作業領域)として、ROM102またはストレージ104等に格納されたプログラムを実行することで、情報処理装置10の各機能を実現する演算装置である。情報処理装置10は、例えば、本発明に係るプログラムをCPU101が実行することによって、本発明に係る更新方法を実現する。
ROM102は、電源を切ってもプログラムまたはデータを保持することができる不揮発性のメモリである。ROM102は、例えば、フラッシュROM等により構成される。ROM102は、SDK(Software Development Kit)およびAPI(Application Programming Interface)等のアプリケーションをインストールしており、インストールされたアプリケーションを用いて、情報処理装置10の機能またはネットワーク接続等を実現することが可能である。
RAM103は、CPU101のワークエリア等として用いられる揮発性のメモリである。ストレージ104は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のストレージデバイスである。ストレージ104は、例えば、OS(Operation System)、アプリケーションプログラムおよび各種データ等を記憶する。
キーボード105は、文字、数値、各種指示等の入力のための複数のキーを備えた入力手段の一種である。ディスプレイインターフェース(I/F)106は、LCD(Liquid Crystal Display)等のディスプレイ106aに対するカーソル、メニュー、ウィンドウ、文字または画像等の各種情報の表示を制御する。ディスプレイ106aは、入力手段を備えたタッチパネルディスプレイであってもよい。メディアインターフェース(I/F)107は、USB(Universal Serial Bus)メモリ、メモリカード、光学ディスクまたはフラッシュメモリ等の記録メディア107aに対するデータの読み出しまたは書き込み(記憶)を制御する。
ネットワークインターフェース(I/F)108は、通信ネットワーク5を介して、データ通信をするためのインターフェースである。ネットワークインターフェース(I/F)108は、例えば、無線LANの通信インターフェースである。また、ネットワークインターフェース(I/F)108は、有線LAN、3G(3rd Generation)、LTE(Long Term Evolution)、4G(4rd Generation)、5G(5rd Generation)、ミリ波無線通信の通信インターフェースを備えてもよい。
バス109は、上記の各構成要素に共通に接続され、アドレス信号、データ信号、および各種制御信号等を伝送する。CPU101、ROM102、RAM103、ストレージ104、キーボード105、ディスプレイインターフェース(I/F)106、メディアインターフェース(I/F)107およびネットワークインターフェース(I/F)108は、バス109を介して相互に接続されている。
●ソフトウエア構成
続いて、図3を用いて、情報処理装置10のソフトウエア構成の概要について説明する。図3は、第1の実施形態に係る情報処理装置のソフトウエア構成の一例を示す図である。図3に示すように、OS20、アプリ30a、アプリ30b、用語モジュール40a、用語モジュール40bおよび用語モジュール40cは、RAM103の作業領域15上で動作する。OS20は、情報処理装置10の基本的な機能を提供し、情報処理装置10全体を管理する基本ソフトウエアである。OS20は、例えば、Android(登録商標)F/W(firmware)である。
アプリ30aおよびアプリ30bは、情報処理装置10の機能を実現するためのアプリケーションである。アプリ30aおよびアプリ30bは、アプリ作成装置70によって作成され、アプリ作成装置70またはアプリサーバ50から情報処理装置10へ送信される。図3において、アプリ30は、OS20の外部に設けられているが、OS20の内部にアプリ30の機能を組み込んでもよい。
用語モジュール40a、用語モジュール40bおよび用語モジュール40cは、アプリ30の動作に関連するモジュールである。用語モジュール40a、用語モジュール40bおよび用語モジュール40cは、用語モジュール作成装置90によって作成され、用語モジュール作成装置90またはアプリサーバ50から情報処理装置10へ送信される。用語モジュール40は、アプリ30と同様の形式で記述される。
なお、図3は、アプリ30aおよびアプリ30bの二つアプリが情報処理装置10にインストールされている例を示すが、アプリの数は、これに限られない。また、図3は、用語モジュール40a、用語モジュール40bおよび用語モジュール40cの三つの用語モジュールが情報処理装置10にインストールされている例を示すが、用語モジュールの数は、これに限られない。
●機能構成
続いて、第1の実施形態に係る情報処理システムの機能構成について説明する。図4は、第1の実施形態に係る情報処理システムの機能構成の一例を示す図である。なお、図4は、アプリ30a、用語モジュール40aおよび用語モジュール40bが、情報処理装置10にインストールされている場合について説明する。
情報処理装置10によって実現される機能は、送受信部11、受付部12、表示制御部13、アプリ制御部14、インストール部15、検出部16、生成部17、管理部18、記憶・読出部19および記憶部21を含む。
送受信部11は、通信ネットワーク5を介して、外部装置と各種データの送受信を行う機能である。送受信部11は、アプリサーバ50またはアプリ作成装置70から送信されたアプリ30を受信する。また、送受信部11は、アプリサーバ50または用語モジュール作成装置90から送信された用語モジュール40を受信する。さらに、送受信部11は、アプリ30に関連づけられた用語ファイル300に含まれる用語と、用語モジュール40に関連づけられた用語ファイル400に含まれる、用語ファイル300に含まれる用語に対応する用語との差異を示すデータを含む通知情報100を、アプリサーバ50へ送信する。送受信部11は、図2に示したネットワークインターフェース(I/F)108およびCPU101で実行されるプログラム等によって実現される。
受付部12は、図2に示したキーボード105等の入力手段へのユーザによる入力操作を受け付ける機能である。ここで、ユーザによる入力操作を受け付けるとは、ユーザの操作に応じて入力される情報(画面の座標値を示す信号等を含む)を受け付けることを含む概念である。受付部12は、ディスプレイ106aに表示させる表示画面の言語設定の入力を受け付ける。受付部12は、図2に示したCPU101で実行されるプログラム等により実現される。
表示制御部13は、図2に示したディスプレイ106aに、ユーザによる入力操作を受け付ける操作画面等を表示させる機能である。表示制御部13は、実行されたアプリ30の表示画面を、ディスプレイ106aに表示させる。表示制御部13は、図2に示したCPU101で実行されるプログラム等により実現される。
アプリ制御部14は、情報処理装置10にインストールされたアプリ30および用語モジュール40の動作を制御する機能である。送受信部11によってアプリ30または用語モジュール40が更新されたことを示す更新通知が受信された場合、アプリ制御部14は、該当するアプリ30または用語モジュール40を更新する。アプリ制御部14は、図2に示したCPU101で実行されるプログラム等により実現される。
インストール部15は、アプリ30および用語モジュール40を、情報処理装置10にインストールする機能(インストーラ)である。インストール部15は、送受信部11によって受信されたアプリ30または用語モジュール40を、情報処理装置10にインストールする。インストール部15は、図2に示したCPU101で実行されるプログラム等により実現される。
アプリ30aは、図3で示したように、インストール部15によって情報処理装置10にインストールされたアプリケーションである。アプリ30aは、記憶部31aに用語ファイル300aを記憶している。用語ファイル300aは、アプリ30aを実行することによって表示される表示画面に含まれる用語を、文字列として記述されたデータである。なお、情報処理装置10は、アプリ30aのみでなく、複数のアプリ30をインストールすることができる。アプリ30は、それぞれの言語形式に対応する用語ファイル400を記憶している。
用語モジュール40aおよび用語モジュール40bは、図3で示したように、インストール部15によって情報処理装置10にインストールされたモジュールである。用語モジュール40aは、使用言語に対応する用語ファイル400aを記憶部41aに記憶している。同様に、用語モジュール40bは、使用言語に対応する用語ファイル400bを記憶部41bに記憶している。
○用語ファイル
ここで、アプリ30および用語モジュール40に記憶された用語ファイルについて説明する。図5は、第1の実施形態に係る用語ファイルの一例を示す図である。用語ファイルは、xml(Extensible Markup Language)形式でデータを記述する。
図5(a)は、アプリ30aに記憶された用語ファイル300aである。用語ファイル300aは、言語ごとにファイルが分かれている。用語ファイル300aは、同一の用語IDを有する用語を、それぞれのファイルに記述している。用語IDは、アプリ30aの表示画面に表示される用語が識別するための文字列である。
情報処理装置10は、アプリ30aの表示画面上で文字列を表示したい箇所に用語IDを指定することで、用語IDに対応する用語の文字列を表示する。情報処理装置10は、使用言語が日本語に設定されている場合、用語ID“app_name”が指定された表示画面上の箇所に、“アプリ”の文字列を表示させる。一方で、情報処理装置10は、使用言語が英語に設定されている場合、用語ID“app_name”が指定された表示画面上の箇所に、“app”の文字列を表示させる。用語ファイル300は、第1のファイルの一例である。
図5(b)は、用語モジュール40aに記憶された用語ファイル400aである。用語ファイル400aは、用語モジュール40aを用いて、アプリ30aの表示画面に含まれる用語を書き換える場合に適用される。用語ファイル400aは、用語ファイル300aに含まれる用語IDと同一の用語IDを有する用語を記述している。用語ファイル400aは、用語ID“app_name”に対して、ドイツ語の翻訳語“anwendung”を記述している。この場合、情報処理装置10は、使用言語がドイツ語に設定されている場合、用語ID“app_name”が指定された表示画面上の箇所に、“anwendung”の文字列を表示させる。
図5(c)は、用語モジュール40bに記憶された用語ファイル400bである。用語ファイル400bは、用語モジュール40bを用いて、アプリ30aの表示画面に含まれる用語を書き換える場合に適用される。用語ファイル400bは、用語ファイル400aと同様に、用語ファイル300aに含まれる用語IDと同一の用語IDを有する用語を記述している。用語ファイル400bは、用語ID“app_name”に対して、フランス語の翻訳語“app”およびイタリア語の翻訳語“applicazione”を記述している。この場合、情報処理装置10は、使用言語がフランス語に設定されている場合、用語ID“app_name”が指定された表示画面上の箇所に、“app”の文字列を表示させる。一方で、情報処理装置10は、使用言語がイタリア語に設定されている場合、用語ID“app_name”が指定された表示画面上の箇所に、“applicazione”の文字列を表示させる。用語ファイル400は、第2のファイルの一例である。
図4に戻り、情報処理装置10の機能構成の説明を続ける。検出部16は、アプリ30が記憶する用語ファイル300と、用語モジュール40が記憶する用語ファイル400との差異を検出する機能である。検出部16は、用語ファイル300に記述された用語IDと用語ファイル400に記述された用語IDとの差異を検出する。検出部16は、図2に示したCPU101で実行されるプログラム等により実現される。
アプリ30が更新され、用語ファイル300に新たな用語IDが追加された場合、アプリ30の用語ファイル300に含まれる用語IDと用語モジュール40の用語ファイル400に含まれる用語IDとの間で差異が生じる。情報処理装置10は、用語ファイル300に新たに追加された用語IDに対応する用語を、用語モジュール40を用いて書き換えができないため、差異を補完する処理が必要になる。そのため、情報処理装置10は、差異を補完するため、用語モジュール40の更新を行う。
生成部17は、検出部16によって検出された差異を示すデータに基づいて、用語モジュール作成装置90への通知情報100を生成する機能である。通知情報100の詳細は、後述する。生成部17は、図2に示したCPU101で実行されるプログラム等により実現される。
管理部18は、記憶部21に記憶された用語ID管理テーブル210および優先度管理テーブル220を管理する機能である。管理部18は、用語ID管理テーブル210および優先度管理テーブル220に含まれるデータの登録または変更を行う。管理部18は、図2に示したCPU101で実行されるプログラム等により実現される。
記憶・読出部19は、記憶部21に各種データを記憶し、記憶部21から各種データを読み出す機能である。記憶・読出部19および記憶部21は、図2に示したROM102、ストレージ104およびCPU101で実行されるプログラム等により実現される。また、記憶部21は、用語ID管理テーブル210および優先度管理テーブル220を記憶している。
○用語ID管理テーブル
続いて、記憶部21に記憶されたデータの詳細について説明する。図6は、第1の実施形態に係る用語ID管理テーブルの一例を示す図である。図6に示す用語ID管理テーブル210は、アプリ30に関連づけられた用語ファイル300および用語モジュール40に関連づけられた用語ファイル400に記述された文字列と用語IDとの対応関係を管理するテーブルである。
用語ID管理テーブル210は、用語IDに、アプリ30の種別(アプリ名)およびアプリ30の用語識別情報、並びに用語モジュール40の種別(用語モジュール名)および用語モジュール40の用語識別情報を関連づけて記憶して管理している。
用語IDは、アプリ30の表示画面に表示される用語が識別するための文字列である。アプリの用語識別情報は、関連づけられた用語IDに対応する用語の、アプリ30における識別情報である。用語モジュール40の用語識別情報は、関連づけられた用語IDに対応する用語の、用語モジュール40における識別情報である。用語ID管理テーブル210は、用度ID“app_name”等の文字列ではなく、一意の数値を、アプリ30および用語モジュール40の用語識別情報として管理する。
用語識別情報は、同一の用語IDにおいて、アプリ30と用語モジュール40とで異なる番号が割り振られる。そのため、用語ID管理テーブル210は、同一の用語IDに対するアプリ30の用語識別情報と用語モジュール40の用語識別情報との対応関係を保持する。
なお、用語IDおよび用語識別情報は、アプリ30または用語モジュール40が更新された場合、作成または変更される。また、用語ID管理テーブル210は、アプリ30に関連する用語モジュール40ごとに設けられてもよい。この場合、例えば、アプリ30aに関連する用語モジュール40a、40bが存在する場合は、アプリ30aと用語モジュール40aとの対応関係を保存するテーブルと、アプリ30aと用語モジュール40bとの対応関係を保存するテーブルが別々に設けられる。
○優先度管理テーブル
図7は、第1の実施形態に係る優先度管理テーブルの一例を示す図である。図7に示す優先度管理テーブル220は、アプリ30の表示画面に、どの用語モジュールの用語を優先的に表示するかを示している。優先度管理テーブル220は、アプリ30の種別(アプリ名)ごとに、用語モジュール40の優先度を示す情報を管理している。
優先度管理テーブル220において、アプリ30aは、例えば、用語モジュール40a、用語モジュール40b、アプリ30aの順に、それぞれに記憶された用語ファイルに含まれる用語を表示画面に適用する。例えば、表示画面に含まれる用語に対応する用語IDが、最も優先度の高い用語モジュール40a内に存在しない場合、アプリ30aは、次に優先度の高い用語モジュール40bの用語を使用する。また、アプリ30bは、例えば、用語モジュール40c、アプリ30bの順に、それぞれに記憶された用語ファイルに含まれる用語を表示画面に適用する。
優先度管理テーブル220は、例えば、情報処理装置10を起動した際に、情報処理装置10にインストールされた全ての用語モジュールに定義されている“android:priority”の値を取得・比較して、管理部18によって作成される。
続いて、図4に示すアプリサーバ50の機能構成を説明する。アプリサーバ50によって実現される機能は、送受信部51、管理部52、判断部53、記憶・読出部54および記憶部55を含む。
送受信部51は、通信ネットワーク5を介して、外部装置と各種データの送受信を行う機能である。送受信部51は、アプリ作成装置70またはアプリサーバ50が作成もしくは更新したアプリ30を、情報処理装置10へ送信する。また、送受信部51は、用語モジュール作成装置90が作成または更新した用語モジュール40を、情報処理装置10へ送信する。さらに、送受信部51は、アプリ30に関連づけられた用語ファイル300と用語モジュール40に関連づけられた用語ファイル400との差異を示すデータを含む通知情報100を、情報処理装置10から受信する。送受信部51は、図2に示したネットワークインターフェース(I/F)108およびCPU101で実行されるプログラム等によって実現される。
管理部52は、記憶部55に記憶された通知履歴管理テーブル510および通知先管理テーブル520を管理する機能である。管理部52は、通知履歴管理テーブル510および通知先管理テーブル520に含まれるデータの登録または更新を行う。管理部52は、図2に示したCPU101で実行されるプログラム等により実現される。
判断部53は、通知履歴管理テーブル510に基づいて、情報処理装置10から受信した通知情報100を、用語モジュール40を作成した用語モジュール作成装置90へ送信するか否かを判断する機能である。判断部53は、図2に示したCPU101で実行されるプログラム等により実現される。
記憶・読出部54は、記憶部55に各種データを記憶し、記憶部55から各種データを読み出す機能である。記憶・読出部54および記憶部55は、図2に示したROM102、ストレージ104およびCPU101で実行されるプログラム等により実現される。また、記憶部55は、通知履歴管理テーブル510および通知先管理テーブル520を記憶している。
○通知履歴管理テーブル
続いて、記憶部55に記憶されたデータの詳細について説明する。図8は、第1の実施形態に係る通知履歴管理テーブルの一例を示す図である。図8に示す通知履歴管理テーブル510は、アプリサーバ50から用語モジュール作成装置90への通知情報100の送信履歴を管理する。通知履歴管理テーブル510は、用語モジュール40の種別(用語モジュール名)および用語モジュール40のバージョン、並びにアプリ30の種別(アプリ名)およびアプリ30のバージョンごとに、通知情報100の通知履歴情報を関連づけて記憶している。
通知履歴管理テーブル510は、特定の用語モジュール作成装置90への通知情報100の送信履歴である通知履歴情報を、用語モジュール40のバージョンとアプリ30のバージョンの組み合わせごとに管理する。図8において、通知履歴情報は、通知情報100の最終通知日時と、通知情報100を用語モジュール作成装置90へ送信した回数(作成元に通知した回数)とを含む。
アプリサーバ50は、通知履歴管理テーブル510に含まれる通知履歴情報を用いて、既に通知情報100を送信した用語モジュール作成装置90に対して、再度通知情報100を送信しないようにする。なお、アプリサーバ50は、通知履歴管理テーブル510に含まれる最終通知日時を用いて、通知情報100を最後に通知してから所定の期間、用語モジュール作成装置90への通知情報100の通知しないようにしてもよい。また、アプリサーバ50は、通知情報100の通知回数を用いて、同じ通知が所定の回数以上、用語モジュール作成装置90へ通知されることを防ぐこともできる。
○通知先管理テーブル
図9は、第1の実施形態に係る通知先管理テーブルの一例を示す図である。図9に示す通知先管理テーブル520は、通知情報100の通知先である用語モジュール作成装置90の宛先を管理するテーブルである。
通知先管理テーブル520は、用語モジュール40の種別(用語モジュール名)および用語モジュール40のバージョンに、用語モジュール40を作成した用語モジュール作成装置90の宛先情報を関連づけて記憶している。宛先情報は、関連づけられた用語モジュール40を作成した用語モジュール作成装置90を特定するための宛先を示す情報である。
図9に示す宛先情報は、例えば、用語モジュール作成装置90のメールアドレスである。この場合、アプリサーバ50は、SMTP(Simple Mail Transfer Protocol)等を用いた電子メール形式を用いて、該当するメールアドレスへ通知情報100を送信する。なお、宛先情報は、IPアドレス等の用語モジュール作成装置90のネットワーク上の宛先を示す情報であってもよい。この場合、アプリサーバ50は、例えば、HTTP(HyperText Transfer Protocol)通信によって、該当するIPアドレスへ通知情報100を送信する。また、用語モジュール作成装置90がアプリサーバ50へポーリングを行って、通知情報100を取得する構成にしてもよい。
なお、通知先管理テーブル520は、用語モジュール40のバージョンごとに宛先情報を記憶しているが、用語モジュール40を作成した用語モジュール作成装置90が同じ場合、一つの宛先情報のみを記憶してもよい。また、情報処理装置10は、通知先管理テーブル520に変えて、通知先ごとに異なる通知アプリをインストールする構成にしてもよい。この場合、情報処理装置10は、通知アプリを随時インストールしていくことで、通知先を追加することができる。
●表示画面情報の生成処理
次に、情報処理装置10に表示される表示画面情報の生成処理について説明する。図10は、第1の実施形態に係る情報処理装置における表示画面情報の生成処理の一例を示すフローチャートである。図10は、情報処理装置10がアプリ30aを起動する場合の例を示す。
ステップS101において、アプリ制御部14は、アプリ30aを起動させた場合、処理をステップS102へ移行させる。一方で、アプリ制御部14は、アプリ30aを起動させない場合、ステップS101の処理を繰り返す。
ステップS102において、アプリ制御部14は、記憶部21に記憶された用語ID管理テーブル210および優先度管理テーブル220を読み出す。具体的には、アプリ制御部14は、記憶・読出部19へ、用語ID管理テーブル210および優先度管理テーブル220の読出要求を出力する。記憶・読出部19は、出力された読出要求を検知した場合、記憶部21に記憶された用語ID管理テーブル210および優先度管理テーブル220を読み出す。そして、記憶・読出部19は、読み出した用語ID管理テーブル210および優先度管理テーブル220を、アプリ制御部14へ出力する。
ステップS103において、アプリ制御部14は、読み出した優先度管理テーブル220のうち、アプリ30aに関連づけられた最も優先度の高い用語モジュールを特定する。アプリ制御部14は、例えば、図7に示した優先度管理テーブル220において、最も優先度の高い用語モジュールとして用語モジュール40aを特定する。
ステップS104において、アプリ制御部14は、読み出した用語ID管理テーブル210のうち、アプリ30aの表示画面に含まれる用語の用語IDに関連づけられた、特定した用語モジュール40の用語識別情報を抽出する。アプリ30aの表示画面に用語ID“app_name”に対応する用語が含まれる場合、アプリ制御部14は、例えば、図6に示した用語ID管理テーブル210において、用語モジュール40aに関連づけられた用語識別情報として“0x1002”を抽出する。
ステップS105において、アプリ制御部14は、抽出された用語識別情報に対応する用語を取得する。アプリ制御部14は、例えば、図5(b)に示した用語ファイル400aにおいて、抽出した用語識別情報“0x1002”に対応する用語として“anwendung”を取得する。
ステップS106において、アプリ制御部14は、アプリ30aの表示画面に含まれる全ての用語を取得した場合、処理をステップS107へ移行させる。一方で、アプリ制御部14は、アプリ30aの表示画面に含まれる用語のうち、取得していない用語が残っている場合、ステップS103からの処理を繰り返す。
ステップS107において、表示制御部13は、アプリ制御部14によって取得された用語を用いて、表示画面情報を生成する。図10の例において、用語モジュール40aの用語ファイル400aから用語が取得したため、生成される表示画面情報は、ドイツ語表記となる。そして、表示制御部13は、生成した表示画面情報を、ディスプレイ106aに表示させる。
●用語モジュールの更新処理
図11は、第1の実施形態に係る情報処理システムにおける用語モジュールの更新処理の一例を示すシーケンス図である。図11は、アプリ30aに関連づけられた用語ファイル300aに新たな用語を追加する場合の例を示す。
ステップS201において、アプリサーバ50の管理部52は、アプリ30aの用語ファイル300aを更新する。管理部52は、例えば、用語ファイル300aに、新しい用語と当該用語に対応する用語IDとを含むデータを追加する。なお、用語ファイル300aが更新された場合、アプリ30aのバージョンは、例えば、“1.0”から“1.1”に変更される。
ステップS202において、アプリサーバ50の送受信部51は、用語ファイル300aの更新通知を、情報処理装置10へ送信する。更新通知は、更新後のアプリ30aのバージョン情報、および更新後の用語ファイル300aのデータを含む。そして、情報処理装置10のアプリ制御部14は、送受信部11によって用語ファイル300aの更新通知が受信された場合、アプリ30aの用語ファイル300aを更新する。そして、管理部18は、記憶部21に記憶された用語ID管理テーブル210に、追加された用語IDおよび用語IDに対応するアプリ30aの用語識別情報を追加する。
図12は、第1の実施形態に係るアプリが有する更新前後の用語ファイルの内容の一例を示す図である。図12(a)は、更新前の用語ファイル300aであり、図12(b)は、更新後の用語ファイル300aaを示す。図12(b)に示す用語ファイル300aaは、用語ファイル300aから用語IDが“app_scan”、“app_copy”、“app_fax”である用語が新たに追加されている。
ステップS203において、情報処理装置10の検出部16は、更新された用語ファイル300aと、用語モジュール40の用語ファイル400との差異を検出する。具体的には、検出部16は、アプリ30aに関連づけられた用語ファイル300aaに含まれる用語と、用語モジュール40に関連づけられた用語ファイル400に含まれる用語との差異を検出する(検出ステップの一例)。検出部16は、用語ID管理テーブル210に含まれる用語IDごとに差異を確認し、差異があった場合、差異を示すデータとして検出する。図12の例において、検出部16は、差異を示すデータとして、用語ID“app_scan”、“app_copy”、“app_fax”を検出する。
ステップS204において、情報処理装置10の生成部17は、検出部16によって検出された差異を示すデータに基づいて、通知情報100を生成する。ステップS205において、情報処理装置10の送受信部11は、生成部17によって生成された通知情報100を、アプリサーバ50へ送信する(送信ステップの一例)。
ここで、通知情報100の内容について説明する。図13は、第1の実施形態に係る通知情報の一例を示す図である。図13(a)は、通知情報100の内容を示す。通知情報100は、用語モジュール名、用語モジュールのバージョン、アプリ名、アプリのバージョン、および検出部16によって検出された差異を示すデータを含む差異ファイルの情報を含む。差異ファイルは、差異を示すデータとして検出された言語ごとに保持される。
図13(b)は、日本語差異ファイル110、図13(c)は、英語差異ファイル120を示す。日本語差異ファイル110および英語差異ファイル120は、差異を示すデータとして検出された用語IDに対応する用語の文字列をリストとして、それぞれ保持している。日本語差異ファイル110および英語差異ファイル120は、差異が検出されなかった用語IDに対応する文字列を含まない。用語ID管理テーブル210に用語IDが存在するが、更新されたアプリ30の用語ファイルに該当する用語IDの文字列が存在しない場合、日本語差異ファイル110および英語差異ファイル120の文字列は、空白となる。通知情報100は、アプリ30に関連づけられた用語ファイル300に含まれる用語と、用語モジュール40に関連づけられた用語ファイル400に含まれる、用語ファイル300に含まれる用語に対応する用語との差異を示す差異情報の一例である。
図11に戻り、用語モジュール40の更新処理の説明を続ける。ステップS206において、アプリサーバ50の判断部53は、記憶部55に記憶された通知履歴管理テーブル510および通知先管理テーブル520を読み出す。具体的には、判断部53は、記憶・読出部54へ、通知履歴管理テーブル510および通知先管理テーブル520の読出要求を出力する。記憶・読出部54は、出力された読出要求を検知した場合、記憶部55に記憶された通知履歴管理テーブル510および通知先管理テーブル520を読み出す。そして、記憶・読出部54は、読み出した通知履歴管理テーブル510および通知先管理テーブル520を、判断部53へ出力する。
ステップS207において、アプリサーバ50の判断部53は、読み出した通知履歴管理テーブル510および通知先管理テーブル520と、送受信部51によって受信された通知情報100の内容とに基づいて、通知情報100の通知先を決定する。
ここで、アプリサーバ50における通知情報100の通知先を決定する処理について説明する。図14は、第1の実施形態に係るアプリサーバの通知先決定処理の一例を示すフローチャートである。
ステップS301において、判断部53は、送受信部51によって通知情報100を受信された場合、処理をステップS302へ移行させる。一方で、判断部53は、送受信部51によって通知情報100が受信されていない場合、ステップS301の処理を繰り返す。
ステップS302において、判断部53は、記憶部55から通知履歴管理テーブル510および通知先管理テーブル520を読み出す。具体的には、判断部53は、記憶・読出部54へ、通知履歴管理テーブル510および通知先管理テーブル520の読出要求を出力する。記憶・読出部54は、出力された読出要求を検知した場合、記憶部55に記憶された通知履歴管理テーブル510および通知先管理テーブル520を読み出す。そして、記憶・読出部54は、読み出した通知履歴管理テーブル510および通知先管理テーブル520を、判断部53へ出力する。
ステップS303において、判断部53は、読み出した通知先管理テーブル520を用いて、通知情報100の通知先を決定する。具体的には、判断部53は、通知先管理テーブル520のうち、通知情報100に含まれる用語モジュール40の情報が関連づけられた宛先情報を、通知先として決定する。判断部53は、例えば、図13に示した通知情報100が受信された場合、図9に示した通知先管理テーブル520のうち、バージョン“1.0”の“用語モジュール40a”に関連づけられた宛先情報“xxx@aaa.co.jp”を通知先として決定する。
ステップS304において、判断部53は、読み出した通知履歴管理テーブル510に含まれる通知履歴情報が所定の条件を満たす場合、処理をステップS305へ移行させる。一方で、判断部53は、当該通知履歴情報が所定の条件を満たさない場合、処理を終了する。ここで、所定の条件は、アプリサーバ50の管理者によって適宜設定することができる。判断部53は、例えば、通知情報100を最後に通知した日時から所定の期間を経過した場合、条件を満たすと判断してもよい。また、判断部53は、決定された通知先へ通知情報100を一度も通知していない場合、条件を満たすと判断してもよい。さらに、判断部53は、通知情報100を通知した回数が所定の回数以下の場合、条件を満たすと判断してもよい。このように、アプリサーバ50の判断部53は、通知履歴管理テーブル510に含まれる通知履歴情報に基づいて、決定した通知先である用語モジュール作成装置90へ通知情報100を送信するか否かを判断する。
ステップS305において、送受信部51は、判断部53によって決定された通知先である宛先情報を用いて、用語モジュール作成装置90へ通知情報100を送信する。
図11に戻り、用語モジュール40の更新処理の説明を続ける。ステップS208において、アプリサーバ50の送受信部51は、判断部53によって特定された通知先である用語モジュール作成装置90へ、通知情報100を送信する。また、アプリサーバ50の管理部52は、通知履歴管理テーブル510に、通知情報100の内容に対応する通知履歴情報を更新・修正する。
ステップS209において、用語モジュール作成装置90は、受信した通知情報100の内容に基づいて、用語モジュール40を更新する。用語モジュール作成装置90は、通知情報100に含まれる用語ファイル300aと用語ファイル400との差異を示すデータを用いて、用語モジュール40に関連づけられた用語ファイル400を更新する。用語モジュール作成装置90は、例えば、図13に示した通知情報100の場合、用語ファイル400に、用語ID“app_scan”、“app_copy”、“app_fax”に対応する用語を追加する。追加された用語の使用言語は、それぞれの用語ファイル40の使用言語に基づく。なお、用語ファイル400が更新された場合、用語モジュールのバージョンは、例えば、“1.0”から“1.1”に変更される。これによって、用語モジュール作成装置90は、情報処理装置10にインストールされたアプリ30が更新された場合、更新されたアプリ30の内容に対応した用語モジュール40を作成することができる。
ステップS210において、用語モジュール作成装置90は、用語モジュール40を更新した場合、用語モジュール40の更新通知をアプリサーバ50へ送信する。用語モジュール40の更新通知は、更新後の用語モジュール40のバージョン情報、および更新後の用語ファイル400のデータを含む。
ステップS211において、アプリサーバ50の送受信部51は、用語モジュール作成装置90から受信した用語モジュール40の更新通知を、情報処理装置10へ送信する。ステップS212において、情報処理装置10のアプリ制御部14は、送受信部11によって受信された更新通知に含まれるデータを用いて、用語モジュール40の記憶部41に記憶された用語ファイル400を更新する(更新ステップの一例)。そして、管理部18は、記憶部21に記憶された用語ID管理テーブル210に、更新通知に含まれる用語モジュール40のバージョン情報および更新された用語IDに対応する用語モジュール40の用語識別情報を追加する。
●第1の実施形態の効果
以上説明したように、第1の実施形態に係る情報処理システムは、アプリ30と、アプリ30の動作に関連する用語モジュール40とを有する情報処理装置10と、アプリサーバ50とを備える。情報処理装置10は、アプリ30に関連づけられた用語ファイル300に含まれる用語と、用語モジュール40に関連づけられた用語ファイル400に含まれる、用語ファイル300に含まれる用語に対応する用語との差異を検出し、検出された差異を示す通知情報100を、アプリサーバ50へ送信する。アプリサーバ50は、用語ファイル400の作成元である用語モジュール作成装置90へ通知情報100を送信し、用語モジュール作成装置90は、通知情報100に基づいて、用語ファイル400を更新する。そして、情報処理装置10は、アプリサーバ50を介して、用語モジュール作成装置90から送信された更新通知に応じて、用語ファイル400を更新する。
そのため、情報処理装置10は、所定のアプリケーションが更新された場合、更新されたアプリケーションの動作に関連する用語モジュールを追随して更新することができる。また、用語モジュール作成装置90は、更新されたアプリ30との差異を示すデータを含む通知情報100に基づいて、用語モジュール40の修正箇所を特定することができるので、用語モジュール40の更新にかかる時間を短縮することができる。さらに、情報処理システムは、各地に設置された情報処理装置10から用語モジュール作成装置90へ通知情報100を直接送信するのではなくアプリサーバ50を経由して送信するので、用語モジュール40の更新にかかる通信量を削減することができる。
●第2の実施形態●
次に、第2の実施形態に係る情報処理システムついて説明する。なお、第1の実施形態と同一構成および同一機能は、同一の符号を付して、その説明を省略する。第2の実施形態に係る情報処理システムにおいて、情報処理装置10Aは、通知情報100の送信履歴に基づいて、通知情報100をアプリサーバ50へ送信するか否かを判断する。
図15は、第2の実施形態に係る情報処理システムの機能構成の一例を示す図である。図15に示す情報処理装置10Aは、第1の実施形態で説明した情報処理装置10の機能に加え、判断部22を備える。判断部22は、生成部17によって生成された通知情報100をアプリサーバ50へ送信するか否かを判断する機能である。判断部22は、図2に示したCPU101で実行されるプログラム等により実現される。
また、情報処理装置10Aは、記憶部21Aに送信履歴管理テーブル230を記憶している。図16は、第2の実施形態に係る送信履歴管理テーブルの一例を示す図である。図16に示す送信履歴管理テーブル230は、情報処理装置10からアプリサーバ50への通知情報100の送信履歴を管理する。送信履歴管理テーブル230は、用語モジュール40の種別(用語モジュール名)および用語モジュール40のバージョン、並びにアプリ30の種別(アプリ名)およびアプリ30のバージョンごとに、アプリサーバ50への通知情報100の送信履歴である送信履歴情報を関連づけて記憶している。
送信履歴管理テーブル230は、アプリサーバ50への通知情報100の送信履歴である送信履歴情報を、用語モジュール40のバージョンとアプリ30のバージョンの組み合わせごとに管理する。図16において、送信履歴情報は、通知情報100の最終送信日時と、通知情報100をアプリサーバ50へ送信した回数とを含む。情報処理装置10は、送信履歴管理テーブル230に含まれる最終送信日時に基づいて、通知情報100を最後に送信してから所定の期間、アプリサーバ50への通知情報100の送信を抑制することができる。また、情報処理装置10は、通知情報100の送信回数に基づいて、同じ通知情報100が所定の回数以上、アプリサーバ50へ送信されることを防ぐこともできる。
図17は、第2の実施形態に係る情報処理装置における通知情報の生成処理の一例を示すフローチャートである。ステップS401において、アプリ制御部14は、送受信部11によって用語ファイル300aの更新通知を受信した場合、処理をステップS401へ移行させる。一方で、アプリ制御部14は、送受信部11によって用語ファイル300aの更新通知を受信してない場合、ステップS401の処理を繰り返す。
ステップS402において、アプリ制御部14は、アプリ30aに、更新された用語ファイル300aを適用する。ステップS403において、検出部16は、更新された用語ファイル300aと、用語モジュール40の用語ファイル400との差異を検出した場合、処理をステップS404へ移行させる。一方で、検出部16は、当該差異を検出していない場合、処理を終了する。なお、ステップS403における検出部16による処理は、図11で示したステップS203の処理と同様である。
ステップS404において、判断部22は、記憶部21Aに記憶された送信履歴管理テーブル230を読み出す。具体的には、判断部22は、記憶・読出部19へ、送信履歴管理テーブル230の読出要求を出力する。記憶・読出部19は、出力された読出要求を検知した場合、記憶部21Aに記憶された送信履歴管理テーブル230を読み出す。そして、記憶・読出部19は、読み出した送信履歴管理テーブル230を、判断部22へ出力する。
ステップS405において、判断部22は、読み出した送信履歴管理テーブル230に含まれる送信履歴情報が所定の条件を満たす場合、処理をステップS406へ移行させる。一方で、判断部22は、送信履歴管理テーブル230に含まれる送信履歴情報を所定の条件を満たさない場合、処理を終了する。ここで、所定の条件は、情報処理装置10のユーザによって適宜設定することができる。判断部22は、例えば、同じ内容の通知情報100をアプリサーバ50へ最後に送信した日時から所定の期間を経過した場合、条件を満たすと判断してもよい。また、判断部22は、同じ内容の通知情報100をアプリサーバ50へ一度も送信していない場合、条件を満たすと判断してもよい。さらに、判断部22は、同じ内容の通知情報100をアプリサーバ50へ送信した回数が所定の回数以下の場合、条件を満たすと判断してもよい。
ステップS406において、生成部17は、検出部16により検出された差異を示すデータに基づいて、通知情報100を生成する。ステップS407において、送受信部11は、生成部17により生成された通知情報100を、アプリサーバ50へ送信する。なお、情報処理装置10は、上記で説明した判断部22による処理のほか、受付部12によって受け付けられたユーザ入力に基づいて、通知情報100をアプリサーバ50へ送信するか否かを設定してもよい。
●第2の実施形態の効果
このように、第2の実施形態に係る情報処理システムは、送信履歴管理テーブル230を用いて、情報処理装置10Aからアプリサーバ50へ通知情報100を送信するか否かを判断する。そのため、第2の実施形態に係る情報処理システムは、通知情報100を用語モジュール作成装置90へ通知したくない場合、情報処理装置10の通知機能をOFFすることができるので、ユーザの使い勝手を向上させることができる。
●第3の実施形態●
次に、第3の実施形態に係る情報処理システムついて説明する。なお、第1の実施形態または第2の実施形態と同一構成および同一機能は、同一の符号を付して、その説明を省略する。第3の実施形態に係る情報処理システムにおいて、情報処理装置10Bは、第2の実施形態と同様に、記憶部21Bにアプリサーバ50への通知情報100の送信履歴を示す送信履歴管理テーブル230を記憶している。情報処理装置10Bは、用語モジュール40の更新が所定の期間行われない場合、外部の翻訳サーバ60を用いて、該当する用語の翻訳を行う。
図18は、第3の実施形態に係る情報処理システムのシステム構成の一例を示す図である。図18に示す情報処理システムは、第1の実施形態で説明した情報処理システムの構成に加えて、翻訳サーバ60を含む。翻訳サーバ60は、通信ネットワーク5を介して、情報処理装置10に接続されている。翻訳サーバ60は、情報処理装置10Bから用語の翻訳依頼を受信し、翻訳結果を情報処理装置10Bへ送信するサーバ装置である。
情報処理装置10は、通知情報100を送信したとしても、用語モジュール作成装置90によって用語モジュール40が更新されなければ、情報処理装置10に取り込まれた用語モジュール40を更新することができない。このような状況に対処するため、情報処理装置10Bは、通知情報100を送信してから所定の期間、用語モジュール40の更新が行われていない場合、翻訳サーバ60を利用して、用語モジュール40を更新する。
図19は、第3の実施形態に係る情報処理装置における用語モジュールの更新処理の一例を示すフローチャートである。図19は、情報処理装置10が既にアプリサーバ50へ通知情報100を送信しているものとして説明する。
ステップS501において、判断部22は、記憶部21Bに記憶された送信履歴管理テーブル230を読み出す。具体的には、判断部22は、記憶・読出部19へ、送信履歴管理テーブル230の読出要求を出力する。記憶・読出部19は、出力された読出要求を検知した場合、記憶部21Bに記憶された送信履歴管理テーブル230を読み出す。そして、記憶・読出部19は、読み出した送信履歴管理テーブル230を、判断部22へ出力する。
ステップS502において、判断部22は、送信履歴管理テーブル230に含まれる最終送信日時から、所定の期間更新されていない用語モジュール40が存在する場合、処理をステップS503へ移行させる。一方で、判断部22は、所定期間更新されていない用語モジュール40が存在しない場合、処理を終了する。
ステップS503において、情報処理装置10は、通知情報100に含まれる文字列を、翻訳サーバ60を用いて翻訳する。具体的には、送受信部11は、通知情報100に含まれる差異ファイルに記述された文字列を、翻訳サーバ60へ送信する。翻訳サーバ60は、受信した文字列の翻訳を行う。そして、送受信部11は、翻訳された文字列を、翻訳サーバ60から受信する。
ステップS504において、アプリ制御部14は、該当する用語モジュール40の用語ファイル400に、翻訳された文字列を適用することで、用語モジュール40の用語ファイル400を更新する。そして、管理部18は、記憶部21Bに記憶された用語ID管理テーブル210に、翻訳された用語の用語IDに対応する用語モジュール40の用語識別情報を追加する。
●第3の実施形態の効果
このように、第3の実施形態に係る情報処理システムは、情報処理装置10Bにおいて、用語モジュール40の更新が所定の期間行われない場合、翻訳サーバ60を用いて用語モジュール40を翻訳する。そのため、第3の実施形態に係る情報処理システムは、用語モジュール40の更新がされない場合においても、翻訳サーバ60を用いることで、用語モジュール40をアプリ30の更新に追随して更新させることができる。
●第4の実施形態●
次に、第4の実施形態に係る情報処理システムついて説明する。なお、第1の実施形態乃至第3の実施形態と同一構成および同一機能は、同一の符号を付して、その説明を省略する。第4の実施形態に係る情報処理システムにおいて、アプリサーバ50Aは、情報処理装置10によってアプリ30に関連づけられた用語ファイルに含まれる用語との差異が検出された用語モジュール40の作成元である用語モジュール作成装置90へ通知情報100を送信するとともに、他の用語モジュール作成装置90にも通知情報100を送信する。
図20は、第4の実施形態に係る情報処理システムの機能構成の一例を示す図である。図20に示すアプリサーバ50Aは、第1の実施形態で説明したアプリサーバ50の機能に加えて、記憶部55Aに用語モジュール管理テーブル530を記憶している。
図21は、第4の実施形態に係る用語モジュール管理テーブルの一例を示す図である。図21に示す用語モジュール管理テーブル530は、用語モジュールの種別(用語モジュール名)および用語モジュールのバージョンに、当該用語モジュールに関連するモジュールの種別(関連モジュール名)を関連づけて記憶している。
図21の用語モジュール管理テーブル530において、例えば、バージョン1.0の用語モジュール40aは、用語モジュール40bと関連する。また、バージョン1.1の用語モジュール40aは、用語モジュール40bおよび用語モジュール40cと関連する。さらに、バージョン1.0の用語モジュール40bは、用語モジュール40cと関連する。
なお、用語モジュール管理テーブル530に含まれる関連モジュール名は、アプリサーバ50の管理者によって設定され、適宜修正・変更可能である。
図22は、第4の実施形態に係るアプリサーバの通知先決定処理の一例を示すフローチャートである。ステップS601において、送受信部51は、情報処理装置10から送信された通知情報100を受信した場合、処理をステップS602へ移行させる。一方で、送受信部51は、通知情報100を受信していない場合、ステップS601の処理を繰り返す。
ステップS602において、判断部53は、記憶部55Aから通知履歴管理テーブル510、通知先管理テーブル520および用語モジュール管理テーブル530を読み出す。具体的には、判断部53は、記憶・読出部54へ、通知履歴管理テーブル510、通知先管理テーブル520および用語モジュール管理テーブル530の読出要求を出力する。記憶・読出部54は、出力された読出要求を検知した場合、記憶部55Aに記憶された通知履歴管理テーブル510、通知先管理テーブル520および用語モジュール管理テーブル530を読み出す。そして、記憶・読出部54は、読み出した通知履歴管理テーブル510、通知先管理テーブル520および用語モジュール管理テーブル530を、判断部53へ出力する。
ステップS603において、判断部53は、読み出した通知先管理テーブル520を用いて、通知情報100の通知先を決定する。具体的には、判断部53は、通知先管理テーブル520のうち、送受信部51によって受信された通知情報100に含まれる用語モジュール40の情報が関連づけられた宛先情報を、通知先として特定する。判断部53は、例えば、図13に示した通知情報100が受信された場合、図9に示した通知先管理テーブル520の中で、“用語モジュール40a”およびバージョン“1.0”に関連づけられた宛先情報“xxx@aaa.co.jp”を通知先として決定する。
ステップS604において、判断部53は、読み出した通知履歴管理テーブル510に含まれる通知履歴情報が所定の条件を満たす場合、処理をステップS605へ移行させる。一方で、判断部53は、当該通知履歴情報が所定の条件を満たさない場合、処理を終了する。ここで、所定の条件は、アプリサーバ50の管理者によって適宜設定することができる。判断部53は、例えば、通知情報100を最後に通知した日時から所定の期間を経過した場合、条件を満たすと判断してもよい。また、判断部53は、決定された通知先へ通知情報100を一度も通知していない場合、条件を満たすと判断してもよい。さらに、判断部53は、通知情報100を通知した回数が所定の回数以下の場合、条件を満たすと判断してもよい。このように、アプリサーバ50の判断部53は、通知履歴管理テーブル510に含まれる通知履歴情報に基づいて、決定した通知先である用語モジュール作成装置90へ通知情報100を送信するか否かを判断する。
ステップS605において、判断部53は、読み出した用語モジュール管理テーブル530に、通知情報100に含まれる用語モジュール40に関連するモジュールが存在する場合、処理をステップS606へ移行させる。ステップS606において、送受信部11は、決定した通知先である用語モジュール作成装置90、および関連するモジュールを作成した用語モジュール作成装置90へ、通知情報100を送信する。関連するモジュールを作成した用語モジュール作成装置90の宛先は、読み出した通知先管理テーブル520を用いて決定する。
一方で、ステップS605において、判断部53は、読み出した用語モジュール管理テーブル530に、通知情報100に含まれる用語モジュールに関連するモジュールが存在しない場合、処理をステップS607へ移行させる。ステップS607において、送受信部51は、決定した通知先である用語モジュール作成装置90へ、通知情報100を送信する。なお、アプリサーバ50は、用語モジュール管理テーブル530に含まれる関連モジュールだけでなく、例えば、通知先管理テーブル520に宛先情報が登録されているすべてのモジュールへ通知情報100を送信してもよい。
●第4の実施形態の効果
このように、第4の実施形態に係る情報処理システムは、情報処理装置10によってアプリ30に関連づけられた用語ファイルに含まれる用語との差異が検出された用語モジュール40の作成元である用語モジュール作成装置90へ通知情報100を送信するとともに、他の用語モジュール作成装置90にも通知情報100を送信する。これにより、第4の実施形態に係る情報処理システムは、用語モジュール作成装置90が他の用語モジュール作成装置90の更新内容に基づいて、用語モジュール40を作成することができる。
●まとめ●
以上説明したように、本発明の一実施形態に係る情報処理装置は、アプリ30(所定のアプリケーションの一例)と、アプリ30の動作に関連する用語モジュール40(モジュールの一例)とを備える情報処理装置10であって、アプリ30に関連づけられた用語ファイル300(第1のファイルの一例)に含まれる用語(第1の文字列の一例)と、用語モジュール40に関連づけられた用語ファイル400(第2のファイルの一例)に含まれる、用語ファイル300に含まれる用語に対応する用語(第2の文字列の一例)との差異を検出し、検出された差異を示す通知情報100(差異情報の一例)を、アプリサーバ50(外部装置の一例)へ送信する。そして、情報処理装置10は、アプリサーバ50から送信された更新通知に応じて、用語ファイル400を更新する。そのため、情報処理装置10は、アプリ30が更新された場合、更新されたアプリ30の動作に関連するモジュールを追随して更新することができる。
また、本発明の一実施形態に係る情報処理装置は、アプリ30を更新するアプリ制御部14(アプリ更新手段の一例)と、を備え、更新された用語ファイル300(第1のファイルの一例)と、用語ファイル400(第2のファイルの一例)との差異を検出する。そのため、情報処理装置10は、アプリ30が更新された場合、更新されたアプリ30の動作に関連するモジュールを追随して更新することができる。
さらに、本発明の一実施形態に係る情報処理システムは、情報処理装置10と、通信ネットワーク5を介して情報処理装置10と通信を行うアプリサーバ50(外部装置の一例)と、を備える情報処理システムである。そして、アプリサーバ50は、通知情報100(差異情報の一例)の送信履歴を示す履歴情報に基づいて、情報処理装置10から受信した通知情報100を、用語モジュール40(モジュールの一例)を作成した用語モジュール作成装置90(作成装置の一例)へ送信するか否かを決定する判断部53(決定手段の一例)と、通知情報100を送信すると決定された場合、通知情報100を用語モジュール作成装置90へ送信する送受信部51(第2の送信手段の一例)と、を備える。そのため、本発明の一実施形態に係る情報処理システムは、更新されたアプリ30との差異を示すデータを含む通知情報100に基づいて、用語モジュール40の修正箇所を特定することができるので、用語モジュール40の更新にかかる時間を短縮することができる。
また、本発明の一実施形態に係る情報処理システムは、履歴情報は、通知情報100(差異情報の一例)を用語モジュール作成装置90(作成装置の一例)へ最後に送信した時刻を示す時刻情報を含み、現在時刻が時刻情報から所定の期間を経過している場合、通知情報100を送信すると判定する。そのため、本発明の一実施形態に係る情報処理システムは、通知情報100を用語モジュール作成装置90へ送信する頻度を制限することができる。
さらに、本発明の一実施形態に係るファイル更新方法は、アプリ30(所定のアプリケーションの一例)と、アプリ30の動作に関連する用語モジュール40(モジュールの一例)とを備える情報処理装置10が実行するファイル更新方法であって、アプリ30に関連づけられた用語ファイル300(第1のファイルの一例)に含まれる用語(第1の文字列の一例)と、用語モジュール40に関連づけられた用語ファイル400(第2のファイルの一例)に含まれる、用語ファイル300に含まれる用語に対応する用語(第2の文字列の一例)との差異を検出し、検出された差異を示す通知情報100(差異情報の一例)を、アプリサーバ50(外部装置の一例)へ送信する。そして、情報処理装置10は、アプリサーバ50から送信された更新通知に応じて、用語ファイル400を更新する。そのため、ファイル更新方法は、アプリ30が更新された場合、更新されたアプリ30の動作に関連するモジュールを追随して更新することができる。
●補足●
なお、各実施形態の機能は、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語またはオブジェクト指向プログラミング言語等で記述されたコンピュータ実行可能なプログラムにより実現でき、各実施形態の機能を実行するためのプログラムは、電気通信回線を通じて頒布することができる。
また、各実施形態の機能を実行するためのプログラムは、ROM、EEPROM(Electrically Erasable Programmable Read-Only Memory)、EPROM(Erasable Programmable Read-Only Memory)、フラッシュメモリ、フレキシブルディスク、CD(Compact Disc)-ROM、CD-RW(Re-Writable)、DVD-ROM、DVD-RAM、DVD-RW、ブルーレイディスク、SDカード、MO(Magneto-Optical disc)等の装置可読な記録媒体に格納して頒布することもできる。
さらに、各実施形態の機能の一部または全部は、例えばFPGA(Field Programmable Gate Array)等のプログラマブル・デバイス(PD)上に実装することができ、またはASICとして実装することができ、各実施形態の機能をPD上に実現するためにPDにダウンロードする回路構成データ(ビットストリームデータ)、回路構成データを生成するためのHDL(Hardware Description Language)、VHDL(Very High Speed Integrated Circuits Hardware Description Language)、Verilog-HDL等により記述されたデータとして記録媒体により配布することができる。
これまで本発明の一実施形態に係る情報処理装置、情報処理システム、ファイル更新方法およびプログラムについて説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態の追加、変更または削除等、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。