(57)【要約】【課題】外部データベースと同期することで自装置のデータベースに格納されたデータが閲覧されないようにすること。【解決手段】第１ＤＢ１５１は、外部データベースと同期されるデータベースである。第２ＤＢ１５２は、外部データベースと同期されないデータベースである。データ判断部１４１は、データベースへの書き込みを要求されたデータが、同期対象データ及び端末生成データのいずれであるかを判断する。データ書込部１４２は、同期対象データと判断されたデータは第１ＤＢ１５１のみに書き込み、端末生成データと判断されたデータは第１ＤＢ１５１及び第２ＤＢ１５２の両方に書き込む。表示制御部１４５は、第２ＤＢ１５２に格納されているデータは表示させ、第１ＤＢ１５１に格納されているデータは表示させない。【選択図】図７
2018049524.tif 000002
【特許請求の範囲】
【請求項１】
外部データベースに格納されていて自装置に同期される同期データを内部データベースに書き込み、ユーザが自装置を利用した際に生成された生成データを前記内部データベースに書き込む書込制御部と、
前記生成データを前記外部データベースに同期させる同期制御部と、
前記生成データは表示させ、前記同期データは表示させない表示制御部と
を備える情報処理装置。
【請求項２】
前記内部データベースには、外部データベースと同期される第１データベースと、前記外部データベースと同期されない第２データベースとが含まれ、
前記書込制御部は、前記同期データを前記第１データベースに書き込み、前記生成データを前記第１及び第２データベースに書き込み、
前記表示制御部は、前記第２データベースに格納されているデータは表示させ、前記第１データベースに格納されているデータは表示させない
請求項１に記載の情報処理装置。
【請求項３】
前記生成データの属性を記憶する記憶部を備え、
前記書込制御部は、前記内部データベースへの書き込みを要求されたデータの属性を前記記憶部に記憶されている属性と照合して一致するものがある場合に、当該データを前記生成データとして前記内部データベースに書き込む
請求項１又は２に記載の情報処理装置。
【請求項４】
前記記憶部は、前記生成データの生成日時を含む前記属性を記憶し、
前記書込制御部は、前記記憶部が記憶する属性のうち、前回データを前記内部データベースに書き込んだ時刻から現在時刻までの期間内の生成日時を含む属性のみ前記照合を行う
請求項３に記載の情報処理装置。
【請求項５】
対応するプログラムが実行されることでそれぞれ実現される複数の機能を有する機能部を備え、
前記複数の機能には、前記同期データ及び前記生成データの前記内部データベースへの書き込みを要求する書込要求機能が含まれ、
前記書込制御部は、前記書込要求機能からデータの書き込みが要求された場合に、当該書込要求機能を実現するプログラムがバックグラウンドで実行されているときには、当該データを前記同期データとして前記内部データベースに書き込む
請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
対応するプログラムが実行されることでそれぞれ実現される複数の機能を有する機能部を備え、
前記複数の機能には、前記同期データ及び前記生成データの前記内部データベースへの書き込みを要求する書込要求機能が含まれ、
前記書込制御部は、前記書込要求機能からデータの書き込みが要求された場合に、当該書込要求機能を実現するプログラムがフォアグラウンドで実行されているときには、当該データを前記生成データとして前記内部データベースに書き込む
請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記生成データに所定の情報を付与する付与部を備え、
前記書込制御部は、前記内部データベースへの書き込みを要求されたデータに前記所定の情報が付与されている場合に、当該データを前記生成データとして前記内部データベースに書き込む
請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
自装置を利用しているユーザを特定する第１特定部と、
前記外部データベースに格納されているデータが生成される際に当該外部データベースを記憶している外部装置を利用していたユーザを特定する第２特定部とを備え、
前記表示制御部は、第１及び第２特定部により同一ユーザが特定された場合、前記生成データと前記同期データとして前記内部データベースに格納されているデータとを表示させる
請求項１から７のいずれか１項に記載の情報処理装置。
【請求項９】
前記外部データベースとのデータ通信を行う第１インターフェースと、
自装置へのユーザの操作を受け付ける第２インターフェースと、
前記第１インターフェースを介して取得されるデータ及び前記第２インターフェースが受け付けた操作により生成されるデータの前記内部データベースへの書き込みを要求する要求部とを備え、
前記書込制御部は、
前記要求部から前記内部データベースへの書き込みを要求されたデータが、前記同期データ及び前記生成データのいずれであるかを判断する判断部と、
前記判断部が判断したデータとして、前記書き込みを要求されたデータを前記内部データベースに書き込む書込部とを備える
請求項１から８のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを同期する技術に関する。
【背景技術】
【０００２】
データを同期する技術が知られている。例えば特許文献１には、特定の拡張プログラムのみが個人設定情報の登録先として組込プログラム用ユーザ情報保持部を設定でき、個人設定情報を外部装置と同期できる技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１５３１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えばタブレット端末を家族で共有して利用する場合に、或るユーザが外部データベースと同期する機能を利用していると、スマートフォン等の他の装置でその機能を利用したときに生成されたデータが同期され、他のユーザに閲覧されるおそれがある。
そこで、本発明は、外部データベースと同期することで自装置のデータベースに格納されたデータが閲覧されないようにすることを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、外部データベースに格納されていて自装置に同期される同期データを内部データベースに書き込み、ユーザが自装置を利用した際に生成された生成データを前記内部データベースに書き込む書込制御部と、前記生成データを前記外部データベースに同期させる同期制御部と、前記生成データは表示させ、前記同期データは表示させない表示制御部とを備える情報処理装置を提供する。
【０００６】
また、前記データベースには、外部データベースと同期される第１データベースと、前記外部データベースと同期されない第２データベースとが含まれ、前記書込制御部は、前記同期データを前記第１データベースに書き込み、前記生成データを前記第１及び第２データベースに書き込み、前記表示制御部は、前記第２データベースに格納されているデータは表示させ、前記第１データベースに格納されているデータは表示させなくてもよい。
さらに、前記生成データの属性を記憶する記憶部を備え、前記書込制御部は、前記内部データベースへの書き込みを要求されたデータの属性を前記記憶部に記憶されている属性と照合して一致するものがある場合に、当該データを前記生成データとして前記内部データベースに書き込んでもよい。
【０００７】
また、前記記憶部は、前記生成データの生成日時を含む前記属性を記憶し、前記書込制御部は、前記記憶部が記憶する属性のうち、前回データを前記内部データベースに書き込んだ時刻から現在時刻までの期間内の生成日時を含む属性のみ前記照合を行ってもよい。
さらに、対応するプログラムが実行されることでそれぞれ実現される複数の機能を有する機能部を備え、前記複数の機能には、前記同期データ及び前記生成データの前記内部データベースへの書き込みを要求する書込要求機能が含まれ、前記書込制御部は、前記書込要求機能からデータの書き込みが要求された場合に、当該書込要求機能を実現するプログラムがバックグラウンドで実行されているときには、当該データを前記同期データとして前記内部データベースに書き込んでもよい。
【０００８】
また、対応するプログラムが実行されることでそれぞれ実現される複数の機能を有する機能部を備え、前記複数の機能には、前記同期データ及び前記生成データの前記内部データベースへの書き込みを要求する書込要求機能が含まれ、前記書込制御部は、前記書込要求機能からデータの書き込みが要求された場合に、当該書込要求機能を実現するプログラムがフォアグラウンドで実行されているときには、当該データを前記生成データとして前記内部データベースに書き込んでもよい。
さらに、前記生成データに所定の情報を付与する付与部を備え、前記書込制御部は、前記内部データベースへの書き込みを要求されたデータに前記所定の情報が付与されている場合に、当該データを前記生成データとして前記内部データベースに書き込んでもよい。
【０００９】
また、自装置を利用しているユーザを特定する第１特定部と、前記外部データベースに格納されているデータが生成される際に当該外部データベースを記憶している外部装置を利用していたユーザを特定する第２特定部とを備え、前記表示制御部は、第１及び第２特定部により同一ユーザが特定された場合、前記生成データと前記同期データとして前記内部データベースに格納されているデータとを表示させてもよい。
さらに、前記外部データベースとのデータ通信を行う第１インターフェースと、自装置へのユーザの操作を受け付ける第２インターフェースと、前記第１インターフェースを介して取得されるデータ及び前記第２インターフェースが受け付けた操作により生成されるデータの前記内部データベースへの書き込みを要求する要求部とを備え、前記書込制御部は、前記要求部から前記内部データベースへの書き込みを要求されたデータが、前記同期データ及び前記生成データのいずれであるかを判断する判断部と、前記判断部が判断したデータとして、前記書き込みを要求されたデータを前記内部データベースに書き込む書込部とを備えていてもよい。
【発明の効果】
【００１０】
本発明によれば、外部データベースと同期することで自装置のデータベースに格納されたデータが閲覧されないようにすることができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施例に係る情報処理システムの全体構成を表す図
【図２】共有ユーザ端末のハードウェア構成を表す図
【図３】個人ユーザ端末のハードウェア構成を表す図
【図４】クラウドシステムのハードウェア構成を表す図
【図５】個人ユーザ端末のソフトウェア構成を表す図
【図６】共有ユーザ端末のソフトウェア構成を表す図
【図７】情報処理システムが実現する機能構成を表す図
【図８】表示されたスケジュールの一例を表す図
【図９】記憶された属性の一例を表す図
【図１０】表示されたスケジュールの一例を表す図
【図１１】書込処理における共有ユーザ端末の動作手順の一例を表す図
【図１２】表示処理における共有ユーザ端末の動作手順の一例を表す図
【図１３】第２実施例の共有ユーザ端末の機能構成を表す図
【図１４】変形例で記憶された属性の一例を表す図
【図１５】要求データと受取日時の一例を表す図
【図１６】変形例の共有ユーザ端末の機能構成の一例を表す図
【図１７】変形例の機能構成の一例を表す図
【図１８】変形例の共有ユーザ端末の機能構成の一例を表す図
【発明を実施するための形態】
【００１２】
［１］第１実施例
図１は第１実施例に係る情報処理システム１の全体構成を表す。情報処理システム１は、クラウドコンピューティングの形態でサービスを提供するシステムであり、本実施例では、ユーザのスケジュールを管理するスケジュール管理サービスを提供する。
【００１３】
このスケジュール管理サービスでは、ユーザが入力したスケジュールを管理するスケジュール管理機能の他に、ユーザが複数のユーザ端末を利用している場合に、或るユーザ端末を操作して入力したスケジュールを他のユーザ端末でも見ることができるように、複数の装置間でデータを同期するスケジュール同期機能が提供される。
【００１４】
情報処理システム１は、ネットワーク２と、共有ユーザ端末１０と、個人ユーザ端末２０と、クラウドシステム３０とを備える。ネットワーク２は、移動体通信網やインターネットなどを含み、装置同士のデータのやり取りを仲介する。ネットワーク２には、共有ユーザ端末１０及び個人ユーザ端末２０が無線で接続され、クラウドシステム３０が有線で接続されている。なお、ネットワーク２との接続は有線及び無線のどちらでもよい。
【００１５】
共有ユーザ端末１０は、複数のユーザが共有して利用する情報処理装置であり、例えばタブレット端末である。個人ユーザ端末２０は、共有ユーザ端末１０を利用する複数のユーザのうちの１人が利用する情報処理装置であり、例えばスマートフォンである。本実施例では、ユーザＡ、ユーザＢ、ユーザＣの３人のユーザが共有ユーザ端末１０を共有して利用し、そのうちのユーザＡが個人ユーザ端末２０を利用するものとする。
【００１６】
両ユーザ端末（共有ユーザ端末１０及び個人ユーザ端末２０）には、スケジュール管理サービスを利用するためのアプリケーションプログラムであるスケジュール管理アプリが導入されている。両ユーザ端末は、それぞれスケジュール管理アプリを実行することで、前述したスケジュール管理機能及びスケジュール同期機能を実現する。
【００１７】
このうちのスケジュール管理機能により、ユーザが一方のユーザ端末（共有ユーザ端末１０及び個人ユーザ端末２０のいずれか）に入力したスケジュールがそのユーザ端末のスケジュールＤＢ（Data Base）に格納される。また、スケジュール同期機能により、一方のユーザ端末のスケジュールＤＢに格納されたスケジュールが他方のユーザ端末のスケジュールＤＢに同期されて格納される。この同期は、クラウドシステム３０上にある同期用のデータベースを介して行われる。
【００１８】
クラウドシステム３０は、クラウドサービスを提供するシステムであり、前述した同期用のデータベースであるクラウドＤＢ３２１を備える。ユーザが一方のユーザ端末にスケジュールを入力すると、そのユーザ端末のスケジュールＤＢとクラウドＤＢ３２１が同期され、入力されたスケジュールがクラウドＤＢ３２１に格納される。その後、クラウドＤＢ３２１と他方のユーザ端末のスケジュールＤＢとが同期することで、両ユーザ端末のスケジュールＤＢが同期される。クラウドＤＢ３２１は本発明の「外部データベース」の一例である。
【００１９】
図２は共有ユーザ端末１０のハードウェア構成を表す。共有ユーザ端末１０は、ＣＰＵ（Central Processing Unit）１１と、ＲＡＭ（Random Access Memory）１２と、ＲＯＭ（Read Only Memory）１３と、無線通信部１４と、ストレージ１５と、タッチスクリーン１６と、スピーカ１７と、マイクロフォン１８とを備えるコンピュータである。
【００２０】
ＣＰＵ１１は、ＲＡＭ１２をワークエリアとして用いてＲＯＭ１３やストレージ１５に記憶されているプログラムを実行することで各部の動作を制御する。無線通信部１４は、移動体通信に準拠した無線通信及び無線ＬＡＮ（Local Area Network）に準拠した無線通信を行う通信回路を有し、ネットワーク２を介して外部装置と通信を行う。ストレージ１５は、フラッシュメモリなどの記憶手段であり、ＣＰＵ１１が制御に用いるデータやプログラムを記憶している。
【００２１】
タッチスクリーン１６は、自装置の表示手段であるディスプレイと、ディスプレイの表面に設けられたタッチパネルとを備え、画像を表示するとともに、ユーザからの操作を受け付ける。スピーカ１７は、デジタル・アナログ変換器及びスピーカユニット等を備え、ＣＰＵ１１から供給された音データを信号に変換し、その音データが示す音をスピーカユニットから放出する。マイクロフォン１８は、周囲の音を収集し、収集した音を表す音データをＣＰＵ１１に供給する。
【００２２】
図３は個人ユーザ端末２０のハードウェア構成を表す。個人ユーザ端末２０は、ＣＰＵ２１と、ＲＡＭ２２と、ＲＯＭ２３と、無線通信部２４と、ストレージ２５と、タッチスクリーン２６と、スピーカ２７と、マイクロフォン２８とを備えるコンピュータである。これらは、図２に表す同名のハードウェアと共通するハードウェアである。
【００２３】
図４はクラウドシステム３０のハードウェア構成を表す。クラウドシステム３０は、ＣＰＵ３１と、ＲＡＭ３２と、ＲＯＭ３３と、ＮＩＣ（Network Interface Card）３４と、ストレージ３５とを備えるコンピュータシステムである。ＣＰＵ３１からＲＯＭ３３では、図２に表す同名のハードウェアと共通するハードウェアである。ＮＩＣ３４は、有線（無線でもよい）でネットワーク２と通信する回路を備え、ネットワーク２を介して共有ユーザ端末１０や個人ユーザ端末２０と通信する。ストレージ３５は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの記憶手段であり、ＣＰＵ３１が制御に用いるデータやプログラムを記憶している。
【００２４】
共有ユーザ端末１０及び個人ユーザ端末２０は、いずれも、スケジュール管理サービスで用いられる内部データベース（各ユーザ端末が自端末の内部に備えるデータベースのこと）を備えている。情報処理システム１においては、個人ユーザ端末２０は、１つのデータベースを含む内部データベースをスケジュール管理サービスで用いるのに対し、共有ユーザ端末１０は、２つのデータベースを含む内部データベースをスケジュール管理サービスで用いる。この違いについて、両ユーザ端末のスケジュール管理サービスに関連するソフトウェア構成を参照して説明する。
【００２５】
図５は個人ユーザ端末２０のソフトウェア構成を表す。個人ユーザ端末２０は、外部Ｉ／Ｆ（Interface）層２０１と、ローカルＩ／Ｆ層２０２と、アプリケーション層２０３と、フレームワーク層２０４と、ライブラリ層２０５と、ファイルシステム２０６、スケジュールＤＢ２５１とを備える。
【００２６】
外部Ｉ／Ｆ層２０１には、外部データベースとのデータ通信を行う通信インターフェース機能を実現するためのプログラムが含まれている。この通信インターフェース機能が例えば図１に表すクラウドＤＢ３２１（外部データベースの一例）とデータ通信を行うことで、スケジュール同期機能により同期される対象となる同期対象データ（同期の際に一方のデータベースから読み出され、他方のデータベースに書き込まれるデータ。本発明の「同期データ」の一例）をクラウドＤＢ３２１から取得する。
【００２７】
ローカルＩ／Ｆ層２０２には、自装置へのユーザの操作を受け付けるユーザインターフェース機能を実現するためのプログラムが含まれている。このユーザインターフェース機能は、例えば、ユーザがキーボードを操作して文字列を入力した場合にその文字列を漢字に変換して日本語の文字列データを生成する。なお、ユーザインターフェース機能は、音声で入力された文字列から文字列データを生成するものであってもよい。
【００２８】
本実施例では、ユーザが自分のスケジュールを表す文字列（スケジュールの内容や日時、場所など）を入力した場合に、ユーザインターフェース機能が、それらの文字列を日本語で表す文字列データを生成する。この文字列データのように、ユーザがユーザ端末（共有ユーザ端末１０及び個人ユーザ端末２０）を利用した際にそのユーザ端末が生成したデータのことを、以下では「端末生成データ」という。端末生成データは本発明の「生成データ」の一例である。
【００２９】
アプリケーション層２０３には、スケジュール管理アプリなどのアプリケーションプログラムが含まれている。アプリケーション層２０３に含まれるプログラムが実行されることで、上記通信インターフェース機能を介して取得された同期対象データや上記ユーザインターフェース機能が受け付けた操作に基づいて生成された端末生成データの内部データベース（スケジュールＤＢ２５１）への書き込みを要求する機能などが実現される。
【００３０】
フレームワーク層２０４及びライブラリ層２０５には、複数の機能で共通して利用できるプログラムが含まれており、例えば指定した内部データベースへのデータの書き込みや指定した内部データベースからのデータの読み出しなどをファイルシステム２０６に指示するためのプログラムが含まれている。
【００３１】
ファイルシステム２０６は、内部データベースへのデータのＩ／Ｏ（Input/Output）を制御するＩＯ制御機能を実現するソフトウェアであり、このＩＯ制御機能が、指定された内部データベースへのデータの書き込みや、指定された内部データベースからのデータの読み出しを行う。ＩＯ制御機能は、例えばスケジュールＤＢ２５１へのスケジュールの書き込みや読み出しを行う。
【００３２】
スケジュールＤＢ２５１は、外部データベースと同期される内部データベースである。スケジュールＤＢ２５１は、本実施例では、スケジュール同期機能によりクラウドＤＢ３２１と同期される。スケジュールＤＢ２５１には、上記通信インターフェース機能を介してクラウドＤＢ３２１から取得された同期対象データが書き込まれる。また、スケジュールＤＢ２５１から読み出された同期対象データは、通信インターフェース機能を介してクラウドシステム３０に送信され、クラウドＤＢ３２１に書き込まれる。また、スケジュールＤＢ２５１には、ユーザインターフェース機能がユーザの操作を受け付けてスケジュール管理機能により生成されたスケジュールを表す端末生成データも書き込まれる。
【００３３】
図６は共有ユーザ端末１０のソフトウェア構成を表す。共有ユーザ端末１０は、外部Ｉ／Ｆ層１０１と、ローカルＩ／Ｆ層１０２と、アプリケーション層１０３と、フレームワーク層１０４と、ライブラリ層１０５と、ファイルシステム１０６と、第１ＤＢ１５１と、第２ＤＢ１５２とを備える。外部Ｉ／Ｆ層１０１からファイルシステム１０６までの各構成は、図５に表す同名の構成に含まれているプログラムと共通のプログラムを少なくとも含んでいる。
【００３４】
共有ユーザ端末１０は、図６に表すように２つのデータベース（第１ＤＢ１５１及び第２ＤＢ１５２）を含む内部データベースを備えているので、１つのデータベースを含む内部データベースを備える個人ユーザ端末２０とは異なるデータベース制御を行う。図６において枠を太線で囲った構成（ローカルＩ／Ｆ層１０２、フレームワーク層１０４、ライブラリ層１０５）には、上記共通のプログラムに加えて、個人ユーザ端末２０とは異なるデータベース制御を行うためのＤＢ制御プログラムも含まれている。反対に、太線で囲まれていない構成（外部Ｉ／Ｆ層１０１、アプリケーション層１０３、ファイルシステム１０６）には、個人ユーザ端末２０と同様のデータベース制御を行うためのプログラムしか含まれていない。
【００３５】
なお、共有ユーザ端末１０に導入されているプログラムは様々な事業者によって提供されたものであるが、前述したＤＢ制御プログラムを提供する事業者と、ＯＳを提供する事業者及びスケジュール管理アプリを提供する事業者とは異なっているものとする。そのため、ＤＢ制御プログラムを提供する事業者は、太線で囲まれていない構成（外部Ｉ／Ｆ層１０１、アプリケーション層１０３、ファイルシステム１０６）に含まれるＯＳやスケジュール管理アプリを改変することができない。そのような理由があるため、この事業者は、太線で囲った構成に含められるＤＢ制御プログラムを２つのデータベースを制御するためのプログラムとして提供している。
【００３６】
第１ＤＢ１５１は、外部データベースと同期されるデータベースであり、本発明の「第１データベース」の一例である。第１ＤＢ１５１は、本実施例では、スケジュール同期機能によりクラウドＤＢ３２１と同期されるスケジュールＤＢである。第１ＤＢ１５１には、外部Ｉ／Ｆ層１０１を介してクラウドＤＢ３２１から取得された同期対象データが書き込まれる。また、第１ＤＢ１５１から読み出された同期対象データは、外部Ｉ／Ｆ層１０１を介してクラウドシステム３０に送信され、クラウドＤＢ３２１に書き込まれる。また、第１ＤＢ１５１には、スケジュール管理機能により生成されたスケジュールを表す端末生成データも書き込まれる。
【００３７】
第２ＤＢ１５２は、外部データベースと同期されないデータベースであり、本発明の「第２データベース」の一例である。従って、第２ＤＢ１５２には、クラウドＤＢ３２１から取得される同期対象データは格納されない。一方で、第２ＤＢ１５２には、上述した端末生成データが格納されるようになっている。つまり、共有ユーザ端末１０においては、同期対象データは第１ＤＢ１５１のみに格納され、端末生成データは第１ＤＢ１５１及び第２ＤＢ１５２の両方に格納されるようになっている。
【００３８】
情報処理システム１が備える各装置のＣＰＵがプログラムを実行して各部を制御することで、以下に述べる機能が実現される。
図７は情報処理システム１が実現する機能構成を表す。共有ユーザ端末１０は、外部Ｉ／Ｆ部１１０と、ローカルＩ／Ｆ部１２０と、アプリケーション部１３０と、データベース制御部１４０と、データベース記憶部１５０とを備える。個人ユーザ端末２０は、外部Ｉ／Ｆ部２１０と、ローカルＩ／Ｆ部２２０と、アプリケーション部２３０と、データベース制御部２４０と、データベース記憶部２５０とを備える。クラウドシステム３０は、同期制御部３１０と、データベース記憶部３２０とを備える。
【００３９】
外部Ｉ／Ｆ部１１０は図６に表す外部Ｉ／Ｆ層１０１に含まれるプログラムによって実現され、外部Ｉ／Ｆ部２１０は図５に表す外部Ｉ／Ｆ層２０１に含まれるプログラムによって実現される。ローカルＩ／Ｆ部１２０は図６に表すローカルＩ／Ｆ層１０２に含まれるプログラムによって実現され、ローカルＩ／Ｆ部２２０は図５に表すローカルＩ／Ｆ層２０２に含まれるプログラム（例えば上述したＤＢ制御プログラム）によって実現される。
【００４０】
アプリケーション部１３０は図６に表すアプリケーション層１０３に含まれるプログラム（例えばスケジュール管理アプリ）によって実現され、アプリケーション部２３０は図５に表すアプリケーション層２０３に含まれるプログラム（例えばスケジュール管理アプリ）によって実現される。データベース制御部１４０は図６に表すフレームワーク層１０４及びライブラリ層１０５に含まれるプログラム（例えば上述したＤＢ制御プログラム）とファイルシステム１０６に含まれるプログラムとによって実現され、データベース制御部２４０は図５に表すフレームワーク層２０４、ライブラリ層２０５及びファイルシステム２０６に含まれるプログラムによって実現される。
【００４１】
共有ユーザ端末１０の外部Ｉ／Ｆ部１１０は、外部データベースとのデータ通信を行う機能（上述した通信インターフェース機能）であり、本発明の「第１インターフェース」の一例である。ローカルＩ／Ｆ部１２０は、自装置へのユーザの操作を受け付ける機能（上述したユーザインターフェース機能）であり、本発明の「第２インターフェース」の一例である。アプリケーション部１３０は、本実施例では、上述したスケジュール管理機能やスケジュール同期機能を提供する。データベース記憶部１５０は、上述した２つのデータベース（第１ＤＢ１５１及び第２ＤＢ１５２）を含む内部データベースを記憶し、データベース制御部１４０は、データベース記憶部１５０が記憶する内部データベースへのデータの書き込み及びその内部データベースからのデータの読み出しを制御する。
【００４２】
個人ユーザ端末２０の外部Ｉ／Ｆ部２１０、ローカルＩ／Ｆ部２２０、アプリケーション部２３０、データベース制御部２４０及びデータベース記憶部２５０は、ここで述べた共有ユーザ端末１０が備える同名の各部と共通する機能である。ただし、前述したように共有ユーザ端末１０は個人ユーザ端末２０とは異なるデータベース制御を行うので、その点で構成に違いがある。
【００４３】
共有ユーザ端末１０のローカルＩ／Ｆ部１２０は、ユーザ操作受付部１２１と、データ生成部１２２と、属性抽出部１２３と、属性記憶部１２４とを備える。アプリケーション部１３０は、同期データ取得部１３１と、データ書込要求部１３２と、同期指示部１３３とを備える。データベース制御部１４０は、データ判断部１４１と、データ書込部１４２と、第１データ読出部１４３と、第２データ読出部１４４と、表示制御部１４５とを備える。
【００４４】
個人ユーザ端末２０のローカルＩ／Ｆ部２２０は、ユーザ操作受付部２２１と、データ生成部２２２とを備える。アプリケーション部２３０は、同期データ取得部２３１と、データ書込要求部２３２と、同期指示部２３３とを備える。データベース制御部２４０は、データ書込部２４１と、第１データ読出部２４２と、第２データ読出部２４３と、表示制御部２４４とを備える。
【００４５】
個人ユーザ端末２０のユーザ操作受付部２２１は、自装置へのユーザの操作を受け付ける。ユーザ操作受付部２２１は、受け付けた操作の内容（操作されたキー）を表す操作情報をデータ生成部２２２に供給する。データ生成部２２２は、供給された操作情報が表す操作の内容に基づいて、例えばその操作が表す文字列をかな漢字変換した日本語の文字列を表す文字列データ（個人ユーザ端末２０における端末生成データ）を生成する。データ生成部２２２は、生成した文字列データをデータ書込要求部２３２に供給する。
【００４６】
データベース記憶部２５０は、図５に表すスケジュールＤＢ２５１を記憶している。データ書込要求部２３２は、データ生成部２２２から供給された文字列データの内部データベースへの書き込みを要求する要求データをデータ書込部２４１に供給する。データ書込部２４１は、供給された要求データが表す文字列データを、内部データベースであるスケジュールＤＢ２５１に書き込む。その際、データ書込部２４１は、書き込みを行った日時を示す日時データを文字列データに対応付けて書き込む。
【００４７】
同期指示部２３３は、スケジュール同期機能によるデータの同期を行うように決められた同期条件（例えばユーザによる同期の操作が行われることや定期的に同期を行う日時になること）が満たされたか否かを判断し、同期条件が満たされた場合、同期のための指示を行う。同期指示部２３３は、例えば、前回同期を行った日時以降に変更があった文字列データの読み出しを第１データ読出部２４２に指示する。
【００４８】
第１データ読出部２４２は、同期指示部２３３から指示された文字列データをスケジュールＤＢ２５１から読み出して、同期指示部２３３に供給する。同期指示部２３３は、供給された文字列データを外部Ｉ／Ｆ部２１０に供給し、同期対象データとしてクラウドシステム３０に送信するよう指示する。外部Ｉ／Ｆ部２１０は、供給された同期対象データをクラウドシステム３０に送信する。
【００４９】
クラウドシステム３０のデータベース記憶部３２０には、図１に表すクラウドＤＢ３２１が記憶されている。同期制御部３１０は、個人ユーザ端末２０から送信されてきた同期対象データを受け取って、データベース記憶部３２０に記憶されているクラウドＤＢ３２１に書き込む。また、同期制御部３１０は、前回同期を行った日時以降に変更があった文字列データをクラウドＤＢ３２１から読み出して、同期対象データとして個人ユーザ端末２０に送信する。
【００５０】
外部Ｉ／Ｆ部２１０は、クラウドシステム３０から送信されてきた文字列データを受け取ると、同期データ取得部２３１に供給する。同期データ取得部２３１は、供給された文字列データを、同期対象データとして取得する。同期データ取得部２３１は、取得した文字列データをデータ書込要求部２３２に供給する。その後は、データ書込要求部２３２及びデータ書込部２４１が前述のとおり動作して文字列データのスケジュールＤＢ２５１への書き込みが行われる。
【００５１】
第２データ読出部２４３は、例えば特定の期間を指定してその期間のスケジュールを表示させる操作がユーザによって行われると、スケジュールＤＢ２５１からその期間のスケジュールを表す文字列データを読み出して、表示制御部２４４に供給する。表示制御部２４４は、供給された文字列データが示すスケジュール、すなわちユーザが指定した期間のスケジュールを自装置の表示手段（タッチスクリーン２６）に表示させる。
【００５２】
図８は表示されたスケジュールの一例を表す。図８の例では、表示制御部２４４が、個人ユーザ端末２０のタッチスクリーン２６に、スケジュールＡＡ１、ＡＡ２、ＡＡ３、ＡＢ１及びＡＢ２を表示させている。スケジュールＡＡ１、ＡＡ２及びＡＡ３は、ユーザが個人ユーザ端末２０を操作して入力した文字列、すなわち端末生成データが示す文字列により表されたスケジュールである。
【００５３】
スケジュールＡＢ１及びＡＢ２は、スケジュール同期機能により同期されたスケジュール、すなわちクラウドシステム３０から取得された同期対象データが示す文字列により表されたスケジュールである。つまり、ユーザが共有ユーザ端末１０を操作して入力した文字列（つまり共有ユーザ端末１０における端末生成データが示す文字列）により表されたスケジュールである。このように、個人ユーザ端末２０においては、同期対象データが表すスケジュールも、端末生成データが表すスケジュールも表示されるようになっている。
【００５４】
共有ユーザ端末１０のユーザ操作受付部１２１は個人ユーザ端末２０のユーザ操作受付部２２１と同じ機能である。データ生成部１２２は、データ生成部２２２と同様に文字列データ（共有ユーザ端末１０における端末生成データ）を生成し、データ書込要求部１３２及び属性抽出部１２３に供給する。
【００５５】
属性抽出部１２３は、端末生成データの属性を抽出する。属性抽出部１２３は、本実施例では、データ生成部１２２から供給された端末生成データが示すスケジュール文字列と、端末生成データが生成されたときにユーザが操作していたアプリケーションプログラムのアプリ名と、端末生成データが生成された生成日時とを端末生成データの属性として抽出する。属性抽出部１２３は、端末生成データが供給された日時を生成日時として抽出し、端末生成データが供給されたときにユーザの操作対象となっていたアプリケーションプログラムの名称（本実施例では「スケジュール管理アプリ」）をアプリ名として抽出する。属性抽出部１２３は、抽出した属性を属性記憶部１２４に供給する。
【００５６】
属性記憶部１２４は、供給された端末生成データの属性、すなわち属性抽出部１２３により抽出された端末生成データの属性を記憶する。属性記憶部１２４は本発明の「記憶部」の一例である。
図９は記憶された属性の一例を表す。図９の例では、属性記憶部１２４が、図８に表すスケジュールＡＢ１を表す文字列データの属性として、例えば「６月」という文字列と、「スケジュール管理アプリ」というアプリ名と、「２０１６／５／１５  １５：３４：３５」という生成日時とを対応付けて記憶している。スケジュールＡＢ１は、前述したように、共有ユーザ端末１０における端末生成データが示す文字列によって表されている。
【００５７】
これ以外にも、図８に表すスケジュールＡＢ１、ＡＢ２を表す端末生成データの属性として、「２日」、「１５時」、「渋谷で飲み会」、「６月」、「４日」、「１０時」、「近所のジム」という文字列と、それらの生成日時とが記憶されている。これらはいずれも共有ユーザ端末１０における端末生成データが表す文字列であり、共有ユーザ端末１０にとっての同期対象データが表す文字列であるスケジュールＡＡ１、ＡＡ２及びＡＡ３を表す文字列は記憶されていない。
【００５８】
外部Ｉ／Ｆ部１１０は、クラウドシステム３０から送信されてきた文字列データを受け取ると、同期データ取得部１３１に供給する。同期データ取得部１３１は、供給された文字列データを、同期対象データとして取得する。同期データ取得部１３１は、取得した文字列データをデータ書込要求部１３２に供給する。
【００５９】
データ書込要求部１３２は、データ生成部１２２から供給された文字列データの内部データベースへの書き込みを要求する要求データ（例えばＳＱＬ（Structured Query Language）クエリ）をデータ判断部１４１に供給する。また、データ書込要求部１３２は、同期データ取得部１３１から供給された文字列データの内部データベースへの書き込みを要求する要求データ（同じくＳＱＬクエリ）をデータ判断部１４１に供給する。このように、データ書込要求部１３２は、外部Ｉ／Ｆ部１１０を介して取得される同期対象データ及びローカルＩ／Ｆ部１２０が受け付けた操作により生成される端末生成データの内部データベースへの書き込みを要求する。データ書込要求部１３２は本発明の「要求部」の一例である。
【００６０】
データ判断部１４１は、データ書込要求部１３２から内部データベースへの書き込みを要求されたデータが、同期対象データ及び端末生成データのいずれであるかを判断する。データ判断部１４１は本発明の「判断部」の一例である。具体的には、データ判断部１４１は、内部データベースへの書き込みを要求されたデータの属性を属性記憶部１２４に記憶されている属性と照合し、そのデータの属性と一致するものがある場合には、そのデータを端末生成データと判断し、一致するものがない場合には、そのデータを同期対象データと判断する。
【００６１】
データ判断部１４１は、例えば、スケジュール管理アプリにより実現されているデータ書込要求部１３２から図８に表すスケジュールＡＡ１を示す文字列データの書き込みが要求された場合には、その文字列データが示す「６月１日１５時：会議（○○会議室）」という文字列が属性記憶部１２４に記憶されている図９に表す属性と一致しないので、その文字列データを同期対象データと判断する。また、データ判断部１４１は、図８に表すスケジュールＡＢ１を示す文字列データの書き込みが要求された場合には、その文字列データが示す「６月２日１８時：渋谷で飲み会」という文字列が属性記憶部１２４に記憶されている図９に表す属性と一致するので、その文字列データを端末生成データと判断する。
【００６２】
データ判断部１４１は、本実施例では、上記のとおり、図９に表すデータの属性のうち「文字列」を照合してデータの判断を行う。なお、データ判断部１４１は、データ書込要求部１３２を実現するアプリケーションプログラムによっては、データ書込要求部１３２から「文字列」以外の属性である「アプリ名」や「生成日時」も供給される場合がある。その場合には、データ判断部１４１はそれらの属性も照合してデータの判断を行ってもよい。データ判断部１４１は、書き込みが要求されたデータと、そのデータが同期対象データ及び端末生成データのいずれであるかを判断した結果を示す判断結果情報とをデータ書込部１４２に供給する。
【００６３】
データベース記憶部１５０は、内部データベースを記憶する機能である。データベース記憶部１５０が記憶する内部データベースには、図６に表す第１ＤＢ１５１及び第２ＤＢ１５２が含まれている。データ書込部１４２は、データ書込要求部１３２から内部データベースへの書き込みを要求されたデータを、データ判断部１４１の判断結果に応じたデータベースに書き込む。データ書込部１４２は本発明の「書込部」の一例である。
【００６４】
詳細には、データ書込部１４２は、同期対象データは第１ＤＢ１５１のみに書き込み、端末生成データは第１ＤＢ１５１及び第２ＤＢ１５２の両方に書き込む。例えば、データ書込部１４２は、データ判断部１４１により同期対象データと判断されたデータは、その判断結果のとおり同期対象データとして内部データベースに書き込む（すなわち第１ＤＢ１５１のみに書き込む）。また、データ書込部１４２は、データ判断部１４１により端末生成データと判断されたデータは、その判断結果のとおり端末生成データとして内部データベースに書き込む（すなわち第１ＤＢ１５１及び第２ＤＢ１５２の両方に書き込む）。
【００６５】
このように、データ判断部１４１及びデータ書込部１４２が協働することで、内部データベースへの書き込みを制御する書込制御部１４６として機能する。書込制御部１４６は、前述のとおり、内部データベースへの書き込みを要求されたデータの属性を属性記憶部１２４に記憶されている属性と照合して一致するものがある場合に、そのデータを端末生成データとして第１ＤＢ１５１及び第２ＤＢ１５２に書き込む。
【００６６】
同期指示部１３３は個人ユーザ端末２０の同期指示部１３３と同じ機能である。第１データ読出部１４３は、個人ユーザ端末２０の第１データ読出部２４２と同じ機能であり、データベース記憶部１５０に記憶されている２つのデータベースのうち、第１ＤＢ１５１から同期対象データである文字列データを読み出す。
【００６７】
第２データ読出部１４４は、個人ユーザ端末２０の第２データ読出部２４３と同じ機能であり、データベース記憶部１５０に記憶されている２つのデータベースのうち、第２ＤＢ１５２から文字列データを読み出して表示制御部１４５に供給する。ただし、第２データ読出部１４４は、第１ＤＢ１５１からは文字列データの読み出しを行わない。
【００６８】
表示制御部１４５は、このような第２データ読出部１４４から供給された文字列データが示すスケジュールを自装置の表示手段（タッチスクリーン１６）に表示させる。つまり、表示制御部１４５は、第２ＤＢ１５２に格納されているデータは表示させ、第１ＤＢ１５１に格納されているデータは表示させない。表示制御部１４５は本発明の「表示制御部」の一例である。
【００６９】
図１０は表示されたスケジュールの一例を表す。図１０の例では、表示制御部１４５が、共有ユーザ端末１０のタッチスクリーン１６に、図８に表すスケジュールＡＢ１及びＡＢ２を表示させている。スケジュールＡＢ１及びＡＢ２は、ユーザが共有ユーザ端末１０を操作して入力した文字列（つまり共有ユーザ端末１０における端末生成データが示す文字列）により表されたスケジュールである。
【００７０】
第２ＤＢ１５２には、共有ユーザ端末１０で生成された端末生成データは書き込まれ、クラウドＤＢ３２１に格納されていた同期対象データは書き込まれていないから、第２データ読出部１４４によって読み出された文字列データには、端末生成データは含まれ、外部データベースに格納されていた同期対象データは含まれていない。そのため、共有ユーザ端末１０においては、図１０に表すように、外部データベースに格納されていた同期対象データが表すスケジュールは表示されず、自装置の端末生成データが表すスケジュールは表示されるようになっている。
【００７１】
共有ユーザ端末１０は、上記の構成に基づいて、内部データベースにデータを書き込む書込処理と、内部データベースからデータを読み出して表示する表示処理とを行う。
図１１は書込処理における共有ユーザ端末１０の動作手順の一例を表す。この動作手順は、ユーザがスケジュールを入力する操作又はスケジュールを同期させる操作を行うことを契機に開始される。
【００７２】
まず、共有ユーザ端末１０（データ書込要求部１３２）は、内部データベースへのデータの書き込みを要求する（ステップＳ１１）。次に、共有ユーザ端末１０（データ判断部１４１）は、書き込みを要求されたデータが同期対象データ及び端末生成データのいずれであるかを判断する（ステップＳ１２）。共有ユーザ端末１０（データ書込部１４２）は、ステップＳ１２で同期対象データと判断された場合には、第１ＤＢ１５１にデータを書き込み（ステップＳ１３）、端末生成データと判断された場合には、第１ＤＢ１５１及び第２ＤＢ１５２にデータを書き込む（ステップＳ１４）。
【００７３】
図１２は表示処理における共有ユーザ端末１０の動作手順の一例を表す。この動作手順は、ユーザがスケジュールを表示させる操作を行うことを契機に開始される。まず、共有ユーザ端末１０は、スケジュールの表示操作を受け付ける（ステップＳ２１）。次に、共有ユーザ端末１０（第２データ読出部１４４）は、第２ＤＢ１５２からスケジュールのデータを読み出す（ステップＳ２２）。そして、共有ユーザ端末１０（表示制御部１４５及びタッチスクリーン１６）は、読み出されたスケジュールを表示する（ステップＳ２３）。
【００７４】
以上のとおり、共有ユーザ端末１０においては、端末生成データ及び同期対象データの両方が内部データベースに格納されるが、端末生成データは表示される一方、同期対象データは表示されないようになっている。これにより、外部データベースと同期することで自装置の内部データベースに格納されたデータ（例えばユーザが個人ユーザ端末２０を操作して入力したスケジュールのデータ）が閲覧されないようにすることができる。また、図６に表すアプリケーション層１０３に含まれるスケジュール管理アプリは、上述したように２つのデータベースを制御するためのプログラムではない。そのため、スケジュール管理アプリが実現するデータ書込要求部１３２は、同期対象データも端末生成データも同じように内部データベースへの書き込みを要求する。
【００７５】
しかし、共有ユーザ端末１０においては、上述したＤＢ制御プログラムによって実現される機能のうち、属性記憶部１２４が端末生成データの属性を記憶しておき、データ判断部１４１が記憶された属性と内部データベースへの書き込みを要求されたデータの属性が一致しているか否かを判断し、データ書込部１４２がその判断結果に応じて上記のとおりデータを書き込んでいる。これにより、１つのデータベースへのデータの書き込みを制御するためのプログラムが実現する機能により内部データベースへの書き込みが要求されたデータの２つのデータベースへの書き込みを本実施例で述べたように行うこと（同期対象データは第１ＤＢ１５１に書き込み、端末生成データは第１ＤＢ１５１及び第２ＤＢ１５２に書き込む）ができる。
【００７６】
［２］第２実施例
本発明の第２実施例について、以下、第１実施例と異なる点を中心に説明する。第１実施例では、同期対象データ及び端末生成データの見分けがデータの属性に基づいて行われたが、第２実施例では、データの書き込みを要求する機能を実現するプログラムがフォアグラウンド及びバックグラウンドのどちらの状態で実行されているかに基づいてこの見分けが行われる。
【００７７】
プログラムがフォアグラウンドで実行されている状態とは、そのプログラムが実行されることで実現されている機能をユーザが操作可能な状態をいい、プログラムがバックグラウンドで実行されている状態とは、そのプログラムが実行されることで実現されている機能をユーザが操作できない状態をいう。バックグラウンドで実行されているプログラムにより実現されている機能をユーザが操作するためには、バックグラウンドで実行されている状態をフォアグラウンドで実行されている状態に切り替える操作（例えば実行されているプログラムの一覧を表示させてその中からバックグラウンドで実行されている状態のプログラムを選択する操作など）が必要である。
【００７８】
図１３は第２実施例の共有ユーザ端末１０ａの機能構成を表す。共有ユーザ端末１０ａは、図７に表す各部のうち、属性抽出部１２３及び属性記憶部１２４を除いた各部と、アプリケーション部１３０−１、１３０−２、１３０−３という複数のアプリケーション部１３０ａ（それぞれを区別しない場合には単に「アプリケーション部１３０」という）とを備える。複数のアプリケーション部１３０ａは、それぞれ対応するプログラムが実行されることで実現される複数の機能を有する。複数のアプリケーション部１３０ａは本発明の「機能部」の一例である。
【００７９】
図１３の例では、アプリケーション部１３０−１が、図７に表す同期データ取得部１３１と、データ書込要求部１３２と、同期指示部１３３とを備える。アプリケーション部１３０−１は、これらの機能を備えることで、同期対象データ及び端末生成データの内部データベースへの書き込みを要求する。アプリケーション部１３０−１は本発明の「書込要求機能」の一例である。一方、アプリケーション部１３０−２、１３０−３は、少なくともデータ書込要求部１３２を備える（同期の機能は備えていても備えていなくてもよい）。
【００８０】
各アプリケーション部１３０は、いずれも、自装置の操作及び外部装置からの要求に基づいて、内部データの内部データベースへの書き込みを要求する要求データをデータ判断部１４１に供給する。データ判断部１４１は、アプリケーション部１３０−１からデータの書き込みが要求された場合に、そのアプリケーション部１３０−１を実現するプログラムがバックグラウンドで実行されているときには、そのデータを同期対象データと判断し、そのプログラムがフォアグラウンドで実行されているときには、そのデータを端末生成データと判断する。
【００８１】
本実施例では、このデータ判断部１４１及びデータ書込部１４２が協働して機能する書込制御部１４６は、アプリケーション部１３０−１からデータの書き込みが要求された場合に、そのアプリケーション部１３０−１を実現するプログラムがバックグラウンドで実行されているときには、そのデータを同期対象データとして第１ＤＢ１５１に書き込み、そのプログラムがフォアグラウンドで実行されているときには、そのデータを端末生成データとして第１ＤＢ１５１及び第２ＤＢ１５２に書き込む。
【００８２】
プログラムがバックグラウンドで実行されている状態では、そのプログラムが実現する機能をユーザが操作することはできないので、その機能をユーザが操作可能なフォアグラウンドでの実行状態よりも、内部データベースへの書き込みを要求されたデータが同期対象データである可能性が高い。反対に、プログラムがフォアグラウンドで実行されている状態では、そのプログラムが実現する機能をユーザが操作可能なので、その機能をユーザが操作できないバックグラウンドでの実行状態よりも、内部データベースへの書き込みを要求されたデータが端末生成データである可能性が高い。
【００８３】
本実施例では、このように、プログラムの実行状態により、同期対象データ及び端末生成データのうち可能性が高い方のデータが判断されて書き込みが行われる。これにより、例えば第１実施例のように端末生成データに対して特別な処理（属性の抽出）を行わなくても、書き込みが要求されたデータの２つのデータベースへの書き込みを上記のとおり行うことができる。
【００８４】
［３］変形例
上述した各実施例はそれぞれが本発明の実施の一例に過ぎず、以下のように変形させてもよい。また、各実施例及び各変形例は、必要に応じて組み合わせて実施してもよい。
【００８５】
［３−１］生成日時の考慮
第１実施例において、同期対象データ及び端末生成データの判断に、端末生成データの属性に含まれる生成日時が考慮されてもよい。本変形例では、データ判断部１４１が、属性記憶部１２４が記憶する属性のうち、前回データが内部データベース（第１ＤＢ１５１、又は、第１ＤＢ１５１及び第２ＤＢ１５２）に書き込まれた時刻から現在時刻までの期間内の生成日時を含む属性のみ、属性記憶部１２４に記憶されている属性と照合する。
【００８６】
図１４は本変形例で記憶された属性の一例を表す。図１４の例では、属性記憶部１２４が、図９に表す属性に加え、「６月」、「１１日」、「１４時」、「子供と映画」という文字列に対応付けて、「２０１６／５／２９  １３：１０：１１」、「２０１６／５／２９  １３：１０：１３」、「２０１６／５／２９  １３：１０：１８」、「２０１６／５／２９  １３：１０：２９」という生成日時をそれぞれ記憶している。
【００８７】
データ判断部１４１は、データ書込要求部１３２から要求データ（例えばＳＱＬクエリ）が供給されると、その要求データを受け取った受取日時を記憶する。
図１５は要求データと受取日時の一例を表す。データ判断部１４１は、例えば「INSERT INTO Evente (dtstart, dtend,title) VALUES(‘2016/6/2 15:00’,‘渋谷で飲み会’)」という要求データに対応付けて「２０１６／５／１５  １５：３５：２０」という受取日時を記憶している。
【００８８】
また、データ判断部１４１は、例えば「INSERT INTO Evente (dtstart, dtend,title) VALUES(‘2016/6/4 10:00’,‘近所のジム’)」という要求データに対応付けて「２０１６／５／２１  １７：０１：５７」という受取日時を記憶し、「IINSERT INTO Evente (dtstart, dtend,title) VALUES(‘2016/6/11 14:00’,’子供と映画’)」という要求データに対応付けて「２０１６／５／２９  １３：１０：４０」という受取日時を記憶している。
【００８９】
この場合、データ判断部１４１は、２番目に新しい受取日時から最新の受取日時までの期間（２０１６／５／２１  １７：０１：５７〜２０１６／５／２９  １３：１０：４０）を、前回データが内部データベースに書き込まれた時刻から現在時刻までの期間（以下「判断期間」という）とし、例えば図１４の例においてその判断期間内に生成日時が含まれる文字列である「６月」、「１１日」、「１４時」、「子供と映画」という属性を、属性記憶部１２４に記憶されている属性と照合する。一方、データ判断部１４１は、生成日時が判断期間よりも前の属性（「近所のジム」や「渋谷で飲み会」）は、属性記憶部１２４に記憶されている属性と照合しない。
【００９０】
この例では、データ判断部１４１が、照合した属性と一致する属性が記憶されていたので、内部データベースへの書き込みを要求されたデータを端末生成データと判断する。本変形例では、このデータ判断部１４１及びデータ書込部１４２が協働して機能する書込制御部１４６が、属性記憶部１２４が記憶する属性のうち判断期間内の生成日時を含む属性のみ、属性記憶部１２４に記憶されている属性と照合し、一致するものがある場合にそのデータを端末生成データとして第１ＤＢ１５１及び第２ＤＢ１５２の両方に書き込む。
【００９１】
例えば共有ユーザ端末１０ａに限らず個人ユーザ端末２０でもよく入力されるスケジュール（図１４の例に表す「近所のジム」）がある場合、両端末で内部データベースへの書き込みが要求された同期対象データの属性が属性記憶部１２４に記憶されている属性と偶然一致するということが起こり得る。そして、この偶然の一致は、照合する属性の数が多いほど起こりやすくなる。
【００９２】
本変形例では、上記の判断期間に生成日時が含まれる属性だけを照合することで、判断期間を設けない場合に比べて、そのような偶然の一致により同期対象データが端末生成データとして判断されて両方のデータベースに書き込まれることが起こりにくくなっている。その結果、本変形例では、判断期間を設けない場合に比べて、例えばユーザＡが個人ユーザ端末２０に入力したスケジュールが共有ユーザ端末１０ａで表示されてユーザＢやＣに見られてしまうことが起こりにくくなっている。
【００９３】
［３−２］データ判断部の判断方法
データ判断部１４１によるデータの判断方法は上記のものに限らない。データ判断部１４１は、例えば端末生成データに付与された何らかの情報に基づいてデータの判断を行ってもよい。
【００９４】
図１６は本変形例の共有ユーザ端末１０ｂの機能構成の一例を表す。共有ユーザ端末１０ｂは、図７に表す各部のうち属性抽出部１２３及び属性記憶部１２４を除いた各部と、情報付与部１２５とを備える。本変形例のデータ生成部１２２は、文字列データを生成すると、生成した文字列データを端末生成データとして情報付与部１２５に供給する。情報付与部１２５は、供給された端末生成データに所定の情報を付与する。情報付与部１２５は本発明の「付与部」の一例である。
【００９５】
情報付与部１２５は、例えば現在時刻を所定のアルゴリズムで変換した値を所定の情報として端末生成データに付与する。情報付与部１２５は、所定の情報を付与した端末生成データをデータ生成部１２２に供給する。また、情報付与部１２５は、端末生成データに付与した所定の情報をデータ判断部１４１に供給する。データ生成部１２２は供給された端末生成データをデータ書込要求部１３２に供給し、データ書込要求部１３２は供給された端末生成データの内部データベースへの書き込みを要求する要求データをデータ判断部１４１に供給する。
【００９６】
データ判断部１４１は、供給された要求データが示すデータに、情報付与部１２５から供給された所定の情報が付与されているか否かを判断する。データ判断部１４１は、所定の情報が付与されている場合には、そのデータを端末生成データと判断し、所定の情報が付与されていない場合には、そのデータを同期対象データと判断する。この判断がされることで、データ判断部１４１及びデータ書込部１４２が協働して機能する書込制御部１４６は、内部データベースへの書き込みを要求されたデータに所定の情報が付与されている場合に、そのデータを生成データとして第１ＤＢ１５１及び第２ＤＢ１５２の両方に書き込む。
【００９７】
なお、情報付与部１２５は、上記の例では毎回異なる情報（現在時刻に応じた情報）を付与することになるが、これに限らない。情報付与部１２５は、例えば、決まった時間間隔で変化する情報を付与してもよいし、常に一定の情報を付与してもよい。情報付与部１２５は、前者の場合、情報が変化したときに所定の情報をデータ判断部１４１に供給すればよいし、後者の場合には、データ判断部１４１への所定の情報の供給を最初に１度だけ行えばよい。
【００９８】
例えば第１実施例のデータの属性を用いた判断方法では、属性が共通するデータが多くなるほど誤った判断が生じやすくなるが、本変形例では、属性が共通するデータが多くなっても、付与される情報には影響しないので、誤った判断が生じやすくなるといことがない。
【００９９】
［３−３］特定ユーザの利用時のデータ表示方法
共有ユーザ端末が第２ＤＢ１５２に格納されているデータだけではなく、第１ＤＢ１５１に格納されているデータを表示させることがあってもよい。
【０１００】
図１７は本変形例の情報処理システム１ｃの機能構成の一例を表す。情報処理システム１ｃは、共有ユーザ端末１０ｃと、個人ユーザ端末２０ｃと、クラウドシステム３０とを備える。共有ユーザ端末１０ｃは、図７に表す各部に加え、第１ユーザ特定部１４７と、第２ユーザ特定部１４８とを備える。個人ユーザ端末２０ｃ（一部の機能の図示を省いている）は、図７に表す各部に加え、第１ユーザ特定部２４７を備える。
【０１０１】
共有ユーザ端末１０ｃの第１ユーザ特定部１４７は、自装置（共有ユーザ端末１０ｃ）を利用しているユーザ（以下「第１ユーザ」という）を特定する。第１ユーザ特定部１４７は本発明の「第１特定部」の一例である。第１ユーザ特定部１４７は、例えば、共有ユーザ端末１０ｃがユーザＩＤ及びパスワード等でユーザを認証する認証機能を備えている場合に、その認証機能から認証したユーザの情報を取得して、その認証されたユーザを第１ユーザとして特定する。
【０１０２】
なお、それ以外にも、第１ユーザ特定部１４７は、共有ユーザ端末１０ｃが例えば音を録音する録音機能や写真を撮影する撮影機能を備えている場合に、ユーザの音声や顔の特徴を表す情報を記憶しておき、録音機能により録音されたユーザの音声や撮影機能により撮影されたユーザの顔の写真を認識して第１ユーザを特定してもよい。第１ユーザ特定部１４７は、特定した第１ユーザを表す情報を表示制御部１４５に供給する。
【０１０３】
個人ユーザ端末２０ｃの第１ユーザ特定部２４７は、データ生成部２２２がデータを生成した際に、第１ユーザ、すなわち自装置（個人ユーザ端末２０ｃ）を利用しているユーザを特定する。第１ユーザ特定部２４７は、第１ユーザ特定部１４７と同様に第１ユーザを特定し、特定した第１ユーザを表す情報を同期指示部２３３に供給する。同期指示部２３３は、同期対象データを送信するよう外部Ｉ／Ｆ部２１０に指示する際に、第１ユーザ特定部２４７から供給された情報を同期対象データに付与する。これにより、この情報が付与された同期対象データが同期されることになる。
【０１０４】
共有ユーザ端末１０ｃの第２ユーザ特定部１４８は、外部データベースに格納されているデータが生成される際にその外部データベースを記憶している外部装置を利用していたユーザ（以下「第２ユーザ」という）を特定する。第２ユーザ特定部１４８は本発明の「第２特定部」の一例である。第２ユーザ特定部１４８は、例えば第１ＤＢ１５１に記憶されている同期対象データを読み出し、同期対象データに付与されている情報が表すユーザを、第２ユーザとして特定する。第２ユーザ特定部１４８は、特定した第２ユーザを表す情報を表示制御部１４５に供給する。
【０１０５】
表示制御部１４５は、上記のとおり両特定部からそれぞれ供給された情報が同じユーザを表している場合、すなわち、第１ユーザ特定部１４７及び第２ユーザ特定部１４８により同一ユーザが特定された場合、端末生成データと第１ＤＢ１５１に格納されているデータとを表示させる。例えば上記の各例では、ユーザＡが共有ユーザ端末を利用している場合でも、ユーザＡは、個人ユーザ端末を用いて入力した自分のスケジュールを共有ユーザ端末で見ることができなかった。
【０１０６】
しかし、本変形例では、ユーザＡが共有ユーザ端末１０ｃを利用している場合には、ユーザＡは自分が個人ユーザ端末２０ｃを用いて入力したスケジュールを見ることができる。ただし、もちろん、ユーザＢやＣが共有ユーザ端末１０ｃを利用している場合には、ユーザＡが個人ユーザ端末２０ｃを用いて入力したスケジュールを見ることはできない。
【０１０７】
［３−４］内部データベース
共有ユーザ端末は、上記の各例では、２つのデータベースを含む内部データベースを備えていたが、１つのデータベースだけを含む内部データベースを備えていてもよい。
図１８は本変形例の共有ユーザ端末１０ｄの機能構成の一例を表す。共有ユーザ端末１０ｄは、図７に表す各部のうちデータベース記憶部１５０に代えてデータベース記憶部１５０ｄを備える。データベース記憶部１５０ｄは、スケジュールＤＢ１５３（本変形例における内部データベース）を備える。
【０１０８】
本変形例の書込制御部１４６は、自装置で生成された端末生成データをスケジュールＤＢ１５３に書き込む際には、端末生成データであることを識別する識別情報を付与して書き込みを行い、外部データベースに格納されていて自装置に同期されるデータである同期対象データをスケジュールＤＢ１５３に書き込む際には、何も情報を付与せずに書き込みを行う。この場合、書込制御部１４６は、データに上記識別情報を付与して内部データベースに書き込むことで、そのデータを端末生成データとして内部データベースに書き込み、データに上記識別情報を付与しないで内部データベースに書き込むことで、そのデータを同期対象データとして内部データベースに書き込んでいる。
【０１０９】
同期指示部１３３は、スケジュールＤＢ１５３に格納された端末生成データを外部データベースに同期させる。同期指示部１３３は本発明の「同期制御部」の一例である。同期指示部１３３は、スケジュールＤＢ１５３に格納されたデータのうち、前述した識別情報が付与されているデータ、すなわち端末生成データを読み出し、読み出したデータを外部Ｉ／Ｆ部１１０を介してクラウドシステム３０に送信することで、端末生成データを外部データベースに同期させる。
【０１１０】
表示制御部１４５は、スケジュールＤＢ１５３に格納された端末生成データは表示手段に表示させる一方、スケジュールＤＢ１５３に格納された同期対象データは表示手段に表示させない。表示制御部１４５は、例えばユーザがスケジュールを表示させる操作を行うと、スケジュールＤＢ１５３に格納されたデータのうち、前述した識別情報が付与されているデータ、すなわち端末生成データを読み出し、自装置の表示手段（タッチスクリーン１６）に表示させる。
【０１１１】
なお、上記の例では端末生成データに識別情報を付与したが、同期対象データに識別情報（同期対象であることを識別する識別情報）を付与してもよい。この場合、書込制御部１４６は、データにその識別情報を付与して内部データベースに書き込むことで、そのデータを同期対象データとして内部データベースに書き込み、データにその識別情報を付与しないで内部データベースに書き込むことで、そのデータを端末生成データとして内部データベースに書き込んでいる。
【０１１２】
いずれの場合も、本変形例によれば、共有ユーザ端末が１つのデータベースを含む内部データベースを備えている場合でも、実施例と同様に、外部データベースと同期することで自装置の内部データベースに格納されたデータ（例えばユーザが個人ユーザ端末２０を操作して入力したスケジュールのデータ）が閲覧されないようにすることができる。
【０１１３】
［３−５］ユーザ端末
共有ユーザ端末は、タブレット端末に限らず、スマートフォンや携帯電話機、ノート型パソコン、デスクトップ型パソコンなどであってもよい。また、個人ユーザ端末は、スマートフォンに限らず、タブレット端末や携帯電話機、ノート型パソコン、デスクトップ型パソコンなどであってもよい。
【０１１４】
［３−６］同期対象データ及び端末生成データ
同期対象データ及び端末生成データは、上述したもの（スケジュールを表すデータ）に限らない。例えば撮影手段により撮影された画像データや電子メールデータ、ＳＮＳ（Social Networking Service）の投稿データ、ゲームのセーブデータ、ＧＰＳ（Global Positioning System）の機能により取得された位置データなどが同期対象データ及び端末生成データとして用いられてもよい。要するに、共有ユーザ端末及び個人ユーザ端末の両方で生成され、且つ、それらの端末間で同期されるデータであれば、どのようなデータが同期対象データ及び端末生成データとして用いられてもよい。
【０１１５】
［３−７］発明のカテゴリ
本発明は、共有ユーザ端末のような情報処理装置の他、共有ユーザ端末、個人ユーザ端末、クラウドシステムを備える情報処理システムとしても捉えられる。また、本発明は、各装置が実施する処理を実現するための情報処理方法としても捉えられるし、各装置を制御するコンピュータを機能させるためのプログラムとしても捉えられる。このプログラムは、それを記憶させた光ディスク等の記録媒体の形態で提供されてもよいし、インターネット等のネットワークを介してコンピュータにダウンロードさせ、それをインストールして利用可能にするなどの形態で提供されてもよい。
【符号の説明】
【０１１６】
１…情報処理システム、２…ネットワーク、１０…共有ユーザ端末、２０…個人ユーザ端末、３０…クラウドシステム、１１０、２１０…外部Ｉ／Ｆ部、１２０、２２０…ローカルＩ／Ｆ部、１２１、２２１…ユーザ操作受付部、１２２、２２２…データ生成部、１２３…属性抽出部、１２４…属性記憶部、１２５…情報付与部、１３０、２３０…アプリケーション部、１３１、２３１…同期データ取得部、１３２、２３２…データ書込要求部、１３３、２３３…同期指示部、１４０、２４０…データベース制御部、１４１…データ判断部、１４２、２４１…データ書込部、１４３、２４２…第１データ読出部、１４４、２４３…第２データ読出部、１４５、２４４…表示制御部、１４７、２４７…第１ユーザ特定部、１４８…第２ユーザ特定部、１５０、２５０…データベース記憶部、１５１…第１ＤＢ、１５２…第２ＤＢ、３１０…同期制御部、３２０…データベース記憶部。
【図１】
2018049524.tif 000003
【図２】
2018049524.tif 000004
【図３】
2018049524.tif 000005
【図４】
2018049524.tif 000006
【図５】
2018049524.tif 000007
【図６】
2018049524.tif 000008
【図７】
2018049524.tif 000009
【図８】
2018049524.tif 000010
【図９】
2018049524.tif 000011
【図１０】
2018049524.tif 000012
【図１１】
2018049524.tif 000013
【図１２】
2018049524.tif 000014
【図１３】
2018049524.tif 000015
【図１４】
2018049524.tif 000016
【図１５】
2018049524.tif 000017
【図１６】
2018049524.tif 000018
【図１７】
2018049524.tif 000019
【図１８】
2018049524.tif 000020