(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-06
(45)【発行日】2024-12-16
(54)【発明の名称】ウェブデータベースシステム、処理実行方法、及びプログラム
(51)【国際特許分類】
G06F 16/176 20190101AFI20241209BHJP
G06Q 50/18 20120101ALI20241209BHJP
G06F 16/178 20190101ALI20241209BHJP
【FI】
G06F16/176
G06Q50/18 310
G06F16/178
(21)【出願番号】P 2022184258
(22)【出願日】2022-11-17
【審査請求日】2022-11-17
(73)【特許権者】
【識別番号】500022557
【氏名又は名称】サイボウズ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】齋藤 祐太
【審査官】原 秀人
(56)【参考文献】
【文献】米国特許出願公開第2022/0350677(US,A1)
【文献】米国特許出願公開第2022/0012226(US,A1)
【文献】特開平07-064843(JP,A)
【文献】土井 毅,はじめてのASP.NET Webフォームアプリ開発 C#対応版,第1版,日本,株式会社秀和システム,2015年11月20日,pp. 286-305
【文献】お父さんのためのパソコン超活用術 ファイル共有 編 大事なデータをスマートに渡す「共有・転送」ワザ!,Mr.PC ,日本,株式会社晋遊舎,2020年01月24日,第11巻第3号通巻109号,pp. 64-67
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06Q 50/18
(57)【特許請求の範囲】
【請求項1】
複数のインタフェースで同時にウェブデータベースの編集操作が可能なウェブデータベースシステムであって、
前記複数のインタフェースのうちの第1インタフェースから、前記ウェブデータベースの保存要求又は編集要求を受信したか否かを判定することによって、前記第1インタフェースが編集された又は編集中であるか否かを判定し、前記複数のインタフェースのうちの第2インタフェースから前記編集要求を受信したか否かを判定することによって、前記第2インタフェースが編集中であるか否かを判定する判定部と、
前記第1インタフェースで前記ウェブデータベースが編集された又は編集中であると判定され、かつ、前記第2インタフェースで前記ウェブデータベースが編集中であると判定された場合に、前記第1インタフェースにおける編集内容と、前記第2インタフェースにおける編集内容と、に基づいて、前記第2インタフェースにおける前記ウェブデータベースに関する所定の処理を実行する処理実行部と、
を含むウェブデータベースシステム。
【請求項2】
複数のインタフェースで同時にウェブデータベースの編集操作が可能なウェブデータベースシステムであって、
前記複数のインタフェースのうちの第1インタフェースで前記ウェブデータベースが編集された又は編集中であるか否かを判定する判定部と、
前記第1インタフェースで前記ウェブデータベースが編集された又は編集中であると判定された場合に、前記第1インタフェースにおける第1ユーザに関する第1ユーザ属性と、前記複数のインタフェースのうちの第2インタフェースにおける第2ユーザに関する第2ユーザ属性と、に基づいて、前記第2インタフェースにおける前記ウェブデータベースに関する所定の処理を実行する処理実行部と、
を含むウェブデータベースシステム。
【請求項3】
前記処理実行部は、前記第1インタフェースにおける編集箇所を前記第2インタフェースで識別可能に表示させる編集箇所表示処理を、前記所定の処理として実行する、
請求項1
又は2に記載のウェブデータベースシステム。
【請求項4】
前記判定部は、前記ウェブデータベースのうち、前記第2インタフェースで表示中又は編集中のレコードと同じレコードが前記第1インタフェースで編集された又は編集中であるか否かを判定し、
前記処理実行部は、前記第1インタフェースで前記同じレコードが編集された又は編集中であると判定された場合に、前記所定の処理を実行する、
請求項1
又は2に記載のウェブデータベースシステム。
【請求項5】
前記判定部は、前記第1インタフェースで前記ウェブデータベースが編集中又は編集されたか否かを判定し、
前記処理実行部は、前記第1インタフェースで前記ウェブデータベースが編集中又は編集されたと判定された場合に、前記第1インタフェースで前記ウェブデータベースが編集中である又は編集されたことを識別可能な情報を前記第2インタフェースで表示させる編集表示処理を、前記所定の処理として実行する、
請求項1
又は2に記載のウェブデータベースシステム。
【請求項6】
前記処理実行部は、前記第2インタフェースにおける前記ウェブデータベースに関する状況に基づいて、前記編集表示処理を実行する、
請求項
5に記載のウェブデータベースシステム。
【請求項7】
複数のインタフェースで同時に編集操作が可能なウェブデータベースであって、前記複数のインタフェースのうちの第1インタフェースから、前記ウェブデータベースの保存要求又は編集要求を受信したか否かを判定することによって、前記第1インタフェースが編集された又は編集中であるか否かを判定し、前記複数のインタフェースのうちの第2インタフェースから前記編集要求を受信したか否かを判定することによって、前記第2インタフェースが編集中であるか否かを判定する判定ステップと、
前記第1インタフェースで前記ウェブデータベースが編集された又は編集中であると判定され、かつ、前記第2インタフェースで前記ウェブデータベースが編集中であると判定された場合に、前記第1インタフェースにおける編集内容と、前記第2インタフェースにおける編集内容と、に基づいて、前記第2インタフェースにおける前記ウェブデータベースに関する所定の処理を実行する処理実行ステップと、
を含む処理実行方法。
【請求項8】
複数のインタフェースで同時に編集操作が可能なウェブデータベースであって、前記複数のインタフェースのうちの第1インタフェースから、前記ウェブデータベースの保存要求又は編集要求を受信したか否かを判定することによって、前記第1インタフェースが編集された又は編集中であるか否かを判定し、前記複数のインタフェースのうちの第2インタフェースから前記編集要求を受信したか否かを判定することによって、前記第2インタフェースが編集中であるか否かを判定する判定部、
前記第1インタフェースで前記ウェブデータベースが編集された又は編集中であると判定され、かつ、前記第2インタフェースで前記ウェブデータベースが編集中であると判定された場合に、前記第1インタフェースにおける編集内容と、前記第2インタフェースにおける編集内容と、に基づいて、前記第2インタフェースにおける前記ウェブデータベースに関する所定の処理を実行する処理実行部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ウェブデータベースシステム、処理実行方法、及びプログラムに関する。
【背景技術】
【0002】
従来、複数のインタフェースで同時に編集操作が可能なウェブデータベースが知られている。例えば、非特許文献1には、ユーザAが編集中のウェブデータベースのレコードをユーザBが編集して保存し、その後にユーザAが、このレコードを保存しようとすると、再読み込みを促すエラーメッセージを、ユーザAの画面に表示させる技術が記載されている。例えば、非特許文献2には、ユーザXがウェブドキュメントを編集している間に、ユーザYが同じウェブドキュメントを編集すると、ユーザYが編集した部分を識別可能な情報を、ユーザXの画面に表示させる技術が記載されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】「複数のユーザが同時に同一レコードを編集できますか?」,インターネット,2022年11月7日検索,online,https://jp.cybozu.help/k/ja/trouble_shooting/app_qa/edit_record_multiple_people.html
【文献】「同時編集と変更の統合」,インターネット,2022年11月7日検索,online,https://ja.confluence.atlassian.com/doc/concurrent-editing-and-merging-changes-144719.html
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1の技術では、ユーザAは、エラーメッセージが表示されるまで、ユーザBによる編集に気付くことができない。ユーザAがエラーメッセージに従ってリロードをすると、それまでユーザAが入力した編集内容が消えてしまうので、ユーザAは、レコードの編集内容を再び入力する必要がある。非特許文献2の技術は、そもそもウェブデータベースの編集に関するものではないので、ウェブデータベースの利便性を高めることはできない。このため、従来の技術では、ウェブデータベースの利便性を十分に高めることはできなかった。
【0005】
本開示の目的の1つは、ウェブデータベースの利便性を高めることである。
【課題を解決するための手段】
【0006】
本開示の一側面に係るウェブデータベースシステムは、複数のインタフェースで同時にウェブデータベースの編集操作が可能なウェブデータベースシステムであって、前記複数のインタフェースのうちの第1インタフェースで前記ウェブデータベースが編集された又は編集中であるか否かを判定する判定部と、前記第1インタフェースで前記ウェブデータベースが編集された又は編集中であると判定された場合に、前記複数のインタフェースのうちの第2インタフェースにおける前記ウェブデータベースに関する所定の処理を実行する処理実行部と、を含む。
【発明の効果】
【0007】
本開示によれば、ウェブデータベースの利便性が高まる。
【図面の簡単な説明】
【0008】
【
図1】ウェブデータベースシステムの全体構成の一例を示す図である。
【
図5】第1ユーザ及び第2ユーザの各々により行われた行動の一例を時系列的に示す図である。
【
図6】行動パターン1における第2ユーザ側のレコード詳細画面の一例である。
【
図7】行動パターン2における第2ユーザ側のレコード詳細画面の一例である。
【
図8】ウェブデータベースシステムで実現される機能の一例を示す図である。
【
図10】ウェブデータベースシステムで実行される処理の一例を示す図である。
【
図11】ウェブデータベースシステムで実行される処理の一例を示す図である。
【発明を実施するための形態】
【0009】
[1.ウェブデータベースシステムの全体構成]
本開示に係るウェブデータベースシステムの実施形態の一例を説明する。
図1は、ウェブデータベースシステムの全体構成の一例を示す図である。例えば、ウェブデータベースシステム1は、サーバ10、第1ユーザ端末20A、及び第2ユーザ端末20Bを含む。サーバ10、第1ユーザ端末20A、及び第2ユーザ端末20Bの各々は、インターネット又はLAN等のネットワークNに接続される。
【0010】
サーバ10は、サーバコンピュータである。例えば、サーバ10は、制御部11、記憶部12、及び通信部13を含む。制御部11は、少なくとも1つのプロセッサを含む。記憶部12は、RAM等の揮発性メモリと、フラッシュメモリ等の不揮発性メモリと、を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。
【0011】
第1ユーザ端末20Aは、第1ユーザのコンピュータである。第2ユーザ端末20Bは、第1ユーザとは異なる第2ユーザのコンピュータである。以降、第1ユーザ及び第2ユーザを区別しない時は、単にユーザという。第1ユーザ端末20A及び第2ユーザ端末20Bを区別しない時は、ユーザ端末20という。制御部21A,21B、記憶部22A,22B、通信部23A,23B、操作部24A,24B、及び表示部25A,25Bを区別しない時は、それぞれ制御部21、記憶部22、通信部23、操作部24、及び表示部25という。
【0012】
例えば、ユーザ端末20は、パーソナルコンピュータ、タブレット端末、又はスマートフォンである。例えば、ユーザ端末20は、制御部21、記憶部22、通信部23、操作部24、及び表示部25を含む。制御部21、記憶部22、及び通信部23の各々のハードウェア構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。操作部24は、マウス、タッチパネル、又はキーボード等の入力デバイスである。表示部25は、液晶ディスプレイ又は有機ELディスプレイである。
【0013】
なお、記憶部12,22に記憶されるプログラムは、ネットワークNを介して供給されてもよい。サーバ10及びユーザ端末20の各々のハードウェア構成は、
図1の例に限られない。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)、又は、外部機器と直接的に接続するための入出力部(例えば、USB端子)が含まれてもよい。この場合、情報記憶媒体に記憶されたプログラムが読取部又は入出力部を介して供給されてもよい。
【0014】
また、ユーザ端末20は、任意の数であってよく、2つに限られない。例えば、ウェブデータベースシステム1は、1つのユーザ端末20だけを含んでもよいし、3つ以上のユーザ端末20を含んでもよい。ウェブデータベースシステム1を利用するユーザの数も、任意の数であってよい。例えば、ウェブデータベースシステム1を利用するユーザの数は、1人だけであってもよいし、3人以上であってもよい。ユーザの数と、ユーザ端末20の数と、は同じであってもよいし、異なってもよい。1人のユーザが複数のユーザ端末20を利用してもよいし、1つのユーザ端末20が複数のユーザで共有されてもよい。
【0015】
また、ウェブデータベースシステム1は、少なくとも1つのコンピュータを含めばよい。ウェブデータベースシステム1に含まれるコンピュータは、
図1の例に限られない。例えば、ウェブデータベースシステム1は、ユーザ端末20を含まなくてもよい。この場合、ユーザ端末20は、ウェブデータベースシステム1の外部に存在し、ウェブデータベースシステム1は、サーバ10だけを含む。ウェブデータベースシステム1は、サーバ10と、他のサーバコンピュータと、を含んでもよい。ウェブデータベースシステム1は、サーバコンピュータ以外の他のコンピュータだけを含んでもよい。
【0016】
[2.ウェブデータベースシステムの概要]
ウェブデータベースシステム1は、複数のインタフェースで同時にウェブデータベースの編集操作が可能である。インタフェースとは、編集操作を受け付けるための手段である。ここでのインタフェースは、物理的なハードウェアに限られず、ソフトウェア的なユーザインタフェースも含む意味である。本実施形態でインタフェースと記載した箇所は、ウェブデータベースを編集するための任意のインタフェースと読み替えることができる。
【0017】
本実施形態では、ユーザ端末20がインタフェースに相当する場合を説明するが、ユーザ端末20ではなく、表示部25がインタフェースに相当してもよい。インタフェースが、ユーザ端末20又は表示部25といった物理的なハードウェアではなく、ソフトウェア的なユーザインタフェースを意味する場合には、例えば、ブラウザのウィンドウ、ウィンドウ内のタブ、又はブラウザ以外の他のアプリケーションの画面がインタフェースに相当する。本実施形態では、2つのインタフェースを例に挙げるが、同時に編集操作が可能なインタフェースは、3つ以上であってもよい。
【0018】
ウェブデータベースとは、ネットワークNを介して利用可能なデータベースである。ウェブデータベースを記憶するコンピュータと、ウェブデータベースにアクセスするコンピュータと、は異なる。ウェブデータベースは、オンラインデータベースと呼ばれることもある。本実施形態では、クラウド型のウェブデータベースを例に挙げるが、ウェブデータベース自体は、種々のタイプを利用可能である。例えば、ウェブデータベースは、オンプレミス型であってもよい。
【0019】
ウェブデータベースの編集とは、ウェブデータベースの全部又は一部を更新することである。例えば、ウェブデータベースが少なくとも1つのレコードを含む場合、レコードを変更、削除、又は追加することは、ウェブデータベースの編集に相当する。レコードの概念がないウェブデータベースであれば、ウェブデータベースを構成する少なくとも一部のデータを変更、削除、又は追加することは、ウェブデータベースの編集に相当する。編集操作は、ウェブデータベースを編集するために行われるユーザの操作である。
【0020】
本実施形態では、業務支援サービスにウェブデータベースシステム1を適用した場合を例に挙げる。他のサービスへの適用例は、後述の変形例で説明する。業務支援サービスは、組織又は個人の業務を支援するサービスである。以降、第1ユーザ端末20Aの表示部25Aにおける画面遷移を例に挙げて、業務支援サービスのウェブデータベースを説明する。例えば、第1ユーザが業務支援サービスにログインすると、ウェブデータベースをテーブル形式で表示するためのテーブル形式画面が表示部25Aに表示される。
【0021】
図2は、テーブル形式画面の一例を示す図である。
図2の例では、アプリと呼ばれるウェブデータベースを例に挙げる。アプリは、データの登録、閲覧、又は検索をするためのデータベース機能と、業務を円滑に進めるためのコミュニケーション機能と、を有するウェブデータベースの一例である。
図2の例では、特許庁に対する出願を管理するためのアプリを、ウェブデータベースとして説明する。例えば、テーブル形式画面SC1には、ウェブデータベースのレコードの一覧を示すテーブルT10が表示される。
【0022】
レコードは、ウェブデータベースを構成する個々のデータの単位である。ウェブデータベースのフィールドに入力されたデータは、レコードとして1つにまとめられる。
図2の例では、テーブルT10の行がレコードに相当する。フィールドは、レコードを構成する1つ1つの項目である。
図2の例では、テーブルT10の列がフィールドに相当する。例えば、「管理番号」、「発明の名称」、「国」、「出願種別」、「依頼日」、「出願日」といった項目がフィールドに相当する。
【0023】
本実施形態では、レコードは、テーブルT10には表示されない他のデータも含む。第1ユーザは、テーブルT10から、詳細な内容を確認したいレコードを選択できる。
図2の例では、レコードを選択するためのアイコンI100が、テーブルT10に表示される。例えば、第1ユーザが、管理番号「1002」のレコードのアイコンI100を選択すると、このレコードの詳細を示すレコード詳細画面が表示部25Aに表示される。
【0024】
図3は、レコード詳細画面の一例を示す図である。例えば、レコード詳細画面SC2の入力フォームF20には、第1ユーザが選択した管理番号「1002」のレコードのフィールドの値が表示される。レコード詳細画面SC2には、
図2のテーブルT10には表示されない他のデータも表示される。
図3の例では、他のデータとして、レコードに登録されたファイルの一覧と、レコードに登録されたコメントと、が表示される。
【0025】
本実施形態では、第1ユーザが編集ボタンB21を選択しない限りは、原則としてレコードを編集できないものとする。ただし、第1ユーザが編集ボタンB21を選択しなくても、コメントの入力は可能であるものとする。以降、編集ボタンB21が選択される前の状態を、閲覧モードという。編集ボタンB21が選択された後の状態を、編集モードという。例えば、第1ユーザが編集ボタンB21を選択すると、レコード詳細画面SC2が編集モードになる。
【0026】
図4は、編集モードの一例を示す図である。例えば、編集モードでは、編集ボタンB21等の一部の画像が消去されて、キャンセルボタンB22及び保存ボタンB23が表示される。編集モードになると、第1ユーザは、入力フォームF20の値を変更したり、共有したいファイルをアップロードしたりすることができる。
図4の例では、第1ユーザは、フィールド「発明の名称」の入力フォームF20に対し、新たな値として「クラウドシステム及びプログラム」を入力する。
【0027】
例えば、第1ユーザは、複数のフィールドに対し、編集内容を入力することもできる。第1ユーザがキャンセルボタンB22を選択すると、編集モードがキャンセルされる。編集モードがキャンセルされると、それまでに入力された編集内容は、破棄される。第1ユーザが保存ボタンB23を選択すると、第1ユーザが入力した編集内容に基づいて、レコードが編集される。
図4の例であれば、フィールド「発明の名称」の値が「クラウドシステム及びプログラム」になる。編集が完了すると、編集モードから閲覧モードに戻る。
【0028】
図2~
図4では、表示部25Aにおける画面遷移を例に挙げたが、表示部25Bも、同様の画面遷移が可能である。即ち、第2ユーザも、
図2~
図4と同様の流れで、テーブル形式画面SC1及びレコード詳細画面SC2を表示部25Bに表示させてレコードを編集できる。本実施形態では、第1ユーザ端末20A及び第2ユーザ端末20Bで同時に同じレコードの編集操作が可能なので、第2ユーザが、第1ユーザが編集した又は編集中のレコードと同じレコードに対する編集操作をすることもできる。
【0029】
図5は、第1ユーザ及び第2ユーザの各々により行われた行動の一例を時系列的に示す図である。
図5の例では、第2ユーザがレコードを編集するよりも前に、第1ユーザがレコードを編集する場合の行動パターンが示されている。第1ユーザがレコードを編集するよりも前に、第2ユーザがレコードを編集する場合の行動パターンは、
図5の第1ユーザと第2ユーザを入れ替えて考えればよい。
【0030】
行動パターン1は、第1ユーザが保存ボタンB23を選択した後に、第2ユーザが編集ボタンB21を選択して編集モードに移行した場合の行動パターンの一例である。行動パターン2は、第1ユーザが保存ボタンB23を選択する前に、第2ユーザが編集ボタンB21を選択して編集モードに移行した場合の行動パターンの一例である。本実施形態では、第2ユーザ側のレコード詳細画面SC2の表示が、行動パターン1と、行動パターン2と、で異なるようになっている。
【0031】
図6は、行動パターン1における第2ユーザ側のレコード詳細画面SC2の一例である。
図6のように、行動パターン1の場合、第2ユーザが編集ボタンB21を選択して編集モードにしようとすると、再読み込みを促すメッセージM24が第2ユーザ端末20に表示される。例えば、メッセージM24は、第2ユーザに対して警告を与える内容を含んでもよい。メッセージM24は、編集モードへの移行をキャンセルするためのキャンセルボタンB240と、再読み込みを実行するための再読み込みボタンB241と、を含む。
【0032】
例えば、第2ユーザがキャンセルボタンB240を選択すると、メッセージM24が消去されて編集モードへの移行がキャンセルされる。この場合、第2ユーザは、ブラウザのメニュー又は操作部24Bの所定のキーから、再読み込みを実行することもできる。再読み込みが実行されると、第1ユーザによる編集内容がレコード詳細画面SC2に反映される。その後に第2ユーザが編集ボタンB21を選択すると、メッセージM24が表示されることなく、レコード詳細画面SC2が編集モードに移行する。
【0033】
例えば、第2ユーザが再読み込みボタンB241を選択すると、レコード詳細画面SC2が再読み込みされたうえで、編集モードのレコード詳細画面SC2が表示部25Bに表示される。この場合、第1ユーザによる編集内容が、編集モードのレコード詳細画面SC2に反映される。第2ユーザは、第1ユーザによる編集内容が反映された状態で、編集モードのレコード詳細画面SC2から編集操作をすることができる。
【0034】
なお、第2ユーザが編集ボタンB21を選択する前に、メッセージM24が表示部25Bに表示されてもよい。例えば、サーバ10と第2ユーザ端末20Bの間で、定期的にポーリングが行われて、第1ユーザによるレコードの編集が検知される。第2ユーザが編集ボタンB21を選択する前に、第1ユーザによるレコードの編集が検知された場合には、第2ユーザが編集ボタンB21を選択しなくても、メッセージM24が表示部25Bに表示される。この場合、第2ユーザが、編集ボタンB21を選択する前に、再読み込みの必要性に気付ける。
【0035】
図7は、行動パターン2における第2ユーザ側のレコード詳細画面SC2の一例である。
図7のように、行動パターン2の場合、レコード詳細画面SC2が編集モードになった時点では、第1ユーザによる編集が完了していない。第2ユーザが保存ボタンB23を選択した時点では、第1ユーザによる編集が完了しているので、再読み込みを促すメッセージM25が第2ユーザ端末20Bに表示される。例えば、メッセージM25は、警告ではなく、第2ユーザに対する通知を含んでもよい。
【0036】
図7の例では、メッセージM25は、キャンセルボタンB250及び再読み込みボタンB251を含む点では、メッセージM24と同様であるが、具体的な文言がメッセージM24とは異なる。例えば、メッセージM25では、第1ユーザの名前が表示されるが、メッセージM24では表示されない。例えば、メッセージM24では、レコードの変更履歴について触れられているが、メッセージM25では、レコードの変更履歴について触れられていない。他の文言も、メッセージM24,M25で互いに異なる。
【0037】
例えば、第2ユーザがキャンセルボタンB250を選択すると、メッセージM25が消去されて、保存ボタンB23を選択する直前のレコード詳細画面SC2に戻る。この場合、第2ユーザは、ブラウザのメニュー又は操作部24Bの所定のキーから、再読み込みを実行することもできる。再読み込みが実行されると、第1ユーザによる編集内容がレコード詳細画面SC2に反映される。
【0038】
なお、再読み込み前に入力された第2ユーザの編集内容は、再読み込み後のレコード詳細画面SC2に引き継がれてもよいし、特に引き継がれずに、第2ユーザがテキストエディタ等に編集内容を退避して再読み込み後にコピーアンドペーストしてもよい。その後に第2ユーザが保存ボタンB23を選択すると、メッセージM25が表示されることなく、第2ユーザの編集内容に基づいて、レコードが編集される。第2ユーザが第1ユーザと同じフィールドを編集した場合には、第2ユーザの編集内容によって、第1ユーザの編集内容が上書きされることになる。
【0039】
例えば、第2ユーザが再読み込みボタンB251を選択すると、レコード詳細画面SC2が再読み込みされる。この場合も、再読み込み前に入力された第2ユーザの編集内容は、サーバ10又は第2ユーザ端末20Bに保持されて、再読み込み後のレコード詳細画面SC2に引き継がれてもよいし、特に引き継がれずに、第2ユーザがテキストエディタ等に編集内容を退避して再読み込み後にコピーアンドペーストしてもよい。その後に第2ユーザが保存ボタンB23を選択すると、メッセージM25が表示されることなく、第2ユーザの編集内容に基づいて、レコードが編集される。
【0040】
なお、メッセージM24と同様、第2ユーザが保存ボタンB23を選択する前に、メッセージM25が表示部25Bに表示されてもよい。この場合も、サーバ10と第2ユーザ端末20Bの間で、定期的にポーリングが行われるようにすればよい。第2ユーザが保存ボタンB23を選択する前に、第1ユーザによるレコードの編集が検知された場合には、第2ユーザが保存ボタンB23を選択しなくても、メッセージM25が表示部25Bに表示される。この場合、第2ユーザが、保存ボタンB23を選択する前に、再読み込みの必要性に気付ける。
【0041】
以上のように、ウェブデータベースシステム1は、第2ユーザがレコードを閲覧又は編集している間に、第1ユーザが同じレコードを編集すると、第2ユーザ側のレコード詳細画面SC2にメッセージM24,M25を表示させる。これにより、第2ユーザは、再読み込みの必要性に早い段階で気付けるので、ウェブデータベースの利便性が高まる。以降、ウェブデータベースシステム1の詳細について説明する。
【0042】
[3.ウェブデータベースシステムで実現される機能]
図8は、ウェブデータベースシステム1で実現される機能の一例を示す図である。
【0043】
[3-1.サーバで実現される機能]
サーバ10は、データ記憶部100、表示制御部101、編集部102、判定部103、及び処理実行部104を含む。データ記憶部100は、記憶部12により実現される。表示制御部101、編集部102、判定部103、及び処理実行部104は、制御部11により実現される。
【0044】
[データ記憶部]
データ記憶部100は、少なくとも1つのウェブデータベースDBを記憶する。本実施形態では、説明の簡略化のために、1つのウェブデータベースDBだけを説明するが、データ記憶部100は、複数のウェブデータベースDBを記憶してもよい。
【0045】
図9は、ウェブデータベースDBの一例を示す図である。例えば、ウェブデータベースDBには、データベース名と、レコードに関するレコードデータと、が格納される。データベース名は、ウェブデータベースDBを識別可能な情報である。データベース名ではなく、リンク等の他の情報によって、ウェブデータベースDBが識別されてもよい。ウェブデータベースDBには、任意のデータが格納されてよく、ウェブデータベースDBに格納されるデータは、
図9の例に限られない。例えば、ウェブデータベースDBには、レコードの変更履歴に関するデータ、又は、アクセス権限に関するデータが格納されてもよい。
【0046】
レコードデータは、レコードに関するデータである。例えば、レコードデータは、レコードを一意に識別可能なレコードID、テーブルT10に表示されるデータ、及びテーブルT10には表示されないデータを含む。例えば、テーブルT10に表示されるデータは、複数のフィールドの各々の名前と、当該フィールドの値と、を含む。例えば、テーブルT10には表示されないデータは、レコードに登録されたファイルと、レコードに登録されたコメントと、を含む。本実施形態では、レコードデータは、レコードのバージョン情報を含む。例えば、バージョン情報は、レコードの最新の編集日時を示す。
【0047】
バージョン情報は、レコードが最新であるか否かを識別可能な情報であればよく、最新の編集日時に限られない。例えば、バージョン情報は、編集のたびにインクリメント又はデクリメントされる値であってもよい。レコード詳細画面SC2がユーザ端末20に表示される場合に、バージョン情報もユーザ端末20に送信される。サーバ10側で保持するバージョン情報と、ユーザ端末20側で保持するバージョン情報と、が一致していることは、レコード詳細画面SC2で表示されているレコードが最新であることを意味する。これらが一致しないことは、レコード詳細画面SC2で表示されているレコードが最新ではないことを意味する。
【0048】
なお、レコードを構成する個々の部分ごとに、バージョン情報が存在してもよい。例えば、レコードのフィールドごとに、バージョン情報が存在してもよい。このようにすれば、レコードのどの部分が更新されたかを具体的に特定できる。バージョン情報だけではなく、レコードを編集したユーザを識別可能な編集者情報がレコードデータに含まれてもよい。編集者情報についても、レコードを構成する個々の部分ごとに存在してもよい。このようにすれば、レコードのどの部分を誰が更新したかを具体的に特定できる。
【0049】
また、データ記憶部100は、任意のデータを記憶できる。データ記憶部100に記憶されるデータは、ウェブデータベースDBに限られない。例えば、データ記憶部100は、業務支援サービスを利用するユーザに関する情報を格納したユーザデータベースを記憶する。例えば、ユーザデータベースには、ユーザを識別可能なユーザID、ユーザの名前、パスワード、ユーザの組織、ユーザの役職、及びユーザの所属等のデータが格納される。例えば、データ記憶部100は、テーブル形式画面SC1及びレコード詳細画面SC2といった各種画面の表示に必要なデータを記憶する。
【0050】
[表示制御部]
表示制御部101は、ウェブデータベースDBの全部又は一部の内容を示す画面を、ユーザ端末20に表示させる。本実施形態では、この画面の一例として、レコード詳細画面SC2を説明するが、テーブル形式画面SC1又は他の画面にウェブデータベースDBの全部又は一部が表示されてもよい。例えば、他の画面は、ウェブデータベースDBの全部又は一部の内容をテーブル形式以外の他の形式で表示させる画面、又は、複数のレコードの詳細をまとめて表示する画面であってもよい。他の画面から、ウェブデータベースDBの編集が可能であってもよい。
【0051】
例えば、表示制御部101は、レコード詳細画面SC2の表示データを生成してユーザ端末20に送信する。表示データは、何らかの画面を表示させるために必要なデータであればよく、任意の形式であってよい。本実施形態では、ブラウザが利用されるので、表示データの一例として、HTMLデータを説明する。表示データは、XMLデータ、JPG等の画像データ、又は他の形式のデータであってもよい。ブラウザではなく業務支援サービス専用のアプリケーションが利用される場合には、当該アプリケーションで何らかの画面を表示させるためのデータが表示データに相当すればよい。
【0052】
例えば、ユーザがテーブル形式画面SC1のアイコンI100を選択すると、ユーザ端末20は、サーバ10に対し、レコード詳細画面SC2の表示要求を送信する。表示要求は、レコード詳細画面SC2を表示させるための所定の形式のデータであればよく、例えば、レコード詳細画面SC2に対応するURLを含む。表示要求には、ユーザが選択したレコードを識別可能なレコード識別情報も含まれる。レコード識別情報は、テーブル形式画面SC1の表示データに含まれているものとする。例えば、レコードに割り振られたレコードIDがレコード識別情報に相当してもよいし、
図2の管理番号等のフィールドの値がレコード識別情報に相当してもよい。
【0053】
例えば、サーバ10がレコード詳細画面SC2の表示要求を受信すると、表示制御部101は、ウェブデータベースDBのうち、表示要求に含まれるレコード識別情報に対応するレコードデータを取得する。表示制御部101は、当該取得されたレコードデータに基づいて、レコード詳細画面SC2の表示データを生成する。表示データには、レコードのバージョン情報も含まれるものとする。例えば、表示制御部101は、レコードデータに含まれる各フィールドの値を、入力フォームF20にセットする。
【0054】
本実施形態では、レコード詳細画面SC2を表示させたばかりの時点では、編集モードではなく閲覧モードなので、入力フォームF20は、値を入力できないようにdisabled属性となる。表示制御部101は、コメントを除く他の部分もdisabled属性に設定した表示データをユーザ端末20に送信することによって、閲覧モードのレコード詳細画面SC2をユーザ端末20に表示させる。閲覧モードと編集モードを使い分けないようにする場合には、disabled属性の設定は行われないようにしてもよい。
【0055】
例えば、ユーザがレコード詳細画面SC2の編集ボタンB21を選択すると、ユーザ端末20は、サーバ10に対し、編集モードへの移行要求を送信する。移行要求は、閲覧モードから編集モードへの移行を指示するための所定の形式のデータであればよく、例えば、編集モードへの移行が指示されたことを示す情報と、レコード詳細画面SC2に表示されているレコードのバージョン情報と、が引数として示されたURLを含む。なお、編集ボタンB21が選択された場合に、ユーザ端末20からサーバ10に移行要求が送信されずに、ユーザ端末20側の制御だけで編集モードに移行してもよい。この場合、後述するdisabled属性からenabled属性への変更も、ユーザ端末20側の制御だけで実行される。
【0056】
例えば、サーバ10が編集モードへの移行要求を受信すると、後述の判定部103による判定が実行される。後述の処理実行部104によりメッセージM24を表示させる必要がなければ、表示制御部101は、編集モードのレコード詳細画面SC2の表示データを生成してユーザ端末20に表示させる。編集モードのレコード詳細画面SC2は、閲覧モードではdisabled属性だった入力フォームF20等は、enabled属性になる。ユーザが保存ボタンB23を選択した場合も同様に、後述の判定部103による判定が実行され、後述の処理実行部104によりメッセージM24を表示させる必要がなければ、表示制御部101は、編集が反映された閲覧モードのレコード詳細画面SC2の表示データを生成してユーザ端末20に表示させる。
【0057】
[編集部]
編集部102は、ユーザによる操作に基づいて、ウェブデータベースDBを編集する。本実施形態では、レコード単位での編集が可能なので、編集部102は、ウェブデータベースDBのうち、ユーザが指定したレコードを、ユーザの操作に基づいて編集する。例えば、編集部102は、ユーザが編集ボタンB21を選択してレコード詳細画面SC2を編集モードにした場合に、編集モードのレコード詳細画面SC2からユーザが入力した編集内容に基づいて、レコードを編集する。レコードの編集方法自体は、公知の方法を利用可能である。レコード単位で編集しない場合の編集方法自体も、公知の方法を利用可能である。編集部102は、ユーザ端末20からの要求に応じて、ウェブデータベースDBを編集すればよい。編集部102は、ウェブデータベースDBを編集すると、バージョン情報を更新する。
【0058】
[判定部]
判定部103は、複数のインタフェースのうちの第1インタフェースでウェブデータベースDBが編集された又は編集中であるか否かを判定する。編集されたとは、編集操作が行われて編集内容の保存が完了したことを意味する。編集中とは、編集操作が行われている最中であり、編集内容の保存までは完了していないことを意味する。本実施形態では、レコード単位で編集が行われるので、判定部103は、ウェブデータベースDBのうち、第2インタフェースで表示中又は編集中のレコードと同じレコードが第1インタフェースで編集された又は編集中であるか否かを判定する。本実施形態では、編集中であるか否かの判定は実行されず、判定部103が、第1インタフェースでウェブデータベースDBが編集されたか否かを判定する場合を説明する。編集中であるか否かの判定については、後述の変形例で説明する。
【0059】
本実施形態では、第1インタフェース及び第2インタフェースの一例として、それぞれ第1ユーザ端末20A及び第2ユーザ端末20Bを説明する。例えば、第1ユーザが保存ボタンB23を選択した場合に、第1ユーザ端末20Aは、サーバ10に対し、レコードの編集内容を保存するための保存要求を送信する。保存要求は、所定の形式のデータであればよく、例えば、レコードの編集内容を含む。判定部103は、第1ユーザ端末20Aから保存要求を受信したか否かを判定することによって、第1ユーザ端末20AでウェブデータベースDBが編集されたか否かを判定する。
【0060】
図4の例であれば、保存要求は、第1ユーザが入力したフィールド「発明の名称」の値である「クラウドシステム及びプログラム」のテキストを含む。保存要求は、レコードのうち、第1ユーザが編集していない箇所のデータを含んでもよい。先述した編集部102は、保存要求に基づいて、ウェブデータベースDBのレコードを編集する。その後、判定部103は、第2ユーザ端末20Bとの間で、ポーリングを実行してもよい。本実施形態のポーリングは、データの整合性を取るというよりは、バージョン情報をチェックするという意味である。
【0061】
なお、判定部103は、ウェブデータベースDBに格納されたレコードのバージョン情報と、第2ユーザ端末20Bに記憶されたレコードのバージョン情報と、が一致するか否かを判定してもよい。判定部103は、バージョン情報ではなく、ウェブデータベースDBに格納されたレコードの各フィールドの値と、レコード詳細画面SC2に表示中のレコードの各フィールドの値と、が一致するか否かを判定してもよい。判定部103は、第2ユーザ側のレコード詳細画面SC2に表示されたレコードが最新であるか否かを判定することになる。このレコードが最新でないことは、第1ユーザによる編集が行われたことを意味する。
【0062】
[処理実行部]
処理実行部104は、第1インタフェースでウェブデータベースDBが編集された又は編集中であると判定された場合に、複数のインタフェースのうちの第2インタフェースにおけるウェブデータベースDBに関する所定の処理を実行する。本実施形態では、レコード単位で編集が行われるので、処理実行部104は、第1インタフェースで同じレコードが編集された又は編集中であると判定された場合に、所定の処理を実行する。
【0063】
本実施形態では、処理実行部104は、第2インタフェースでウェブデータベースDBが表示中である場合に、第1インタフェースにおける編集内容に基づいて、所定の処理を実行する場合を説明するが、所定の処理は、第2インタフェースでウェブデータベースDBが表示中ではない場合に実行されてもよい。例えば、第2インタフェースに相当する画面が最小化されて表示中ではない場合、画面の電源がオフの場合、又は画面がロック中の場合に、所定の処理が実行されてもよい。また、所定の処理は、第1インタフェースにおける編集内容には特に関係なく実行されてもよい。
【0064】
図2~
図7の例であれば、第1ユーザ端末20Aが第1インタフェースに相当し、第2ユーザ端末20Bが第2インタフェースに相当するので、処理実行部104は、第1ユーザ端末20AでウェブデータベースDBが編集された又は編集中であると判定された場合に、第2ユーザ端末20BにおけるウェブデータベースDBに関する所定の処理を実行する。
【0065】
所定の処理は、第1インタフェースでウェブデータベースDBが編集された又は編集中であると判定された場合に実行される処理である。本実施形態では、処理実行部104は、第1インタフェースでウェブデータベースDBが編集中又は編集されたと判定された場合に、第1インタフェースでウェブデータベースDBが編集中である又は編集されたことを識別可能な情報を第2インタフェースで表示させる編集表示処理を、所定の処理として実行する。このため、編集表示処理について説明している箇所は、所定の処理と読み替えることができる。
【0066】
本実施形態では、編集表示処理は、第1インタフェースでウェブデータベースDBが編集されたことを識別可能な情報を第2インタフェースで表示させる処理である場合を説明する。例えば、編集表示処理は、メッセージM24,M25を表示させるための処理である。編集表示処理は、メッセージM24,M25以外の他の画像を表示させるための処理であってもよい。例えば、業務支援サービス内の通知、ユーザ端末20のプッシュ通知、ポップアップ、電子メール、又はその他のメッセージツールを利用して編集表示処理が実行されてもよい。編集表示処理では、再読み込みのボタンB241,B251のように、再読み込みのための画像を表示させなくてもよく、単に、ウェブデータベースDBが何らかの形で編集されたことを示す画像だけを表示させる処理であってもよい。
【0067】
本実施形態では、処理実行部104は、第2インタフェースにおけるウェブデータベースDBに関する状況に基づいて、編集表示処理を実行する。ここでの状況とは、ウェブデータベースDBが編集前であるか編集中であるかを意味する。第2ユーザによってどの程度の編集が行われているかが、状況に相当してもよい。処理実行部104は、ある状況の場合には編集表示処理を実行せず、特定の状況の場合に編集表示処理を実行してもよい。本実施形態では、処理実行部104は、状況に応じて異なる画像が表示されるように、編集表示処理を実行する。
【0068】
例えば、処理実行部104は、第2ユーザが編集ボタンB21を選択する前であれば(即ち、編集モードに移行する前)、メッセージM24を表示させるための編集表示処理を実行する。処理実行部104は、第2ユーザが編集ボタンB21を選択した後であれば(即ち、編集モードに移行した後であれば)、メッセージM25を表示させるための編集表示処理を実行する。処理実行部104は、第2ユーザが編集ボタンB21を選択する前と、第2ユーザが編集ボタンB21を選択した後と、で画像を異ならせればよく、メッセージM24,M25の使い分け以外にも通知の方法自体を変えてもよい。
【0069】
[3-2.ユーザ端末で実現される機能]
第1ユーザ端末20A及び第2ユーザ端末20Bは、互いに同様の機能を有する。このため、第1ユーザ端末20A及び第2ユーザ端末20Bを区別せずに、ユーザ端末20の機能として説明する。ユーザ端末20は、データ記憶部200、表示制御部201、及び操作受付部202を含む。データ記憶部200は、記憶部22により実現される。表示制御部201及び操作受付部202は、制御部21により実現される。
【0070】
[データ記憶部]
データ記憶部200は、ウェブデータベースDBを編集するために必要なデータを記憶する。例えば、データ記憶部200は、業務支援サービスに関する種々の画面を表示するためのブラウザを記憶する。例えば、データ記憶部200は、業務支援サービスのアプリケーションを記憶する。
【0071】
[表示制御部]
表示制御部201は、業務支援サービスにおける各種画面を、表示部25に表示させる。例えば、表示制御部201は、サーバ10から受信した表示データに基づいて、テーブル形式画面SC1又はレコード詳細画面G2を、表示部25に表示させる。
【0072】
[操作受付部]
操作受付部202は、業務支援サービスにおける各種操作を受け付ける。操作内容は、サーバ10に適宜送信される。
【0073】
[4.ウェブデータベースシステムで実行される処理]
図10及び
図11は、ウェブデータベースシステム1で実行される処理の一例を示す図である。
図10及び
図11では、第1ユーザ端末20A及び第2ユーザ端末20Bを区別せずに、ユーザ端末20の処理として説明する。
【0074】
図10に示すように、ユーザ端末20は、サーバ10との間で、業務支援サービスにログインするためのログイン処理を実行する(S1)。ユーザ端末20は、ログインが成功してユーザがウェブデータベースDBの表示を要求すると、テーブル形式画面SC1を表示部25に表示させる(S2)。ユーザ端末20は、ユーザがアイコンI100を選択すると、サーバ10に対し、レコード詳細画面SC2の表示要求を送信する(S3)。
【0075】
サーバ10は、レコード詳細画面SC2の表示要求を受信すると、ウェブデータベースDBに基づいて、閲覧モードのレコード詳細画面SC2の表示データを生成して、ユーザ端末20に送信する(S4)。この表示データには、表示要求の対象となったレコードのバージョン情報が含まれる。ユーザ端末20は、レコード詳細画面SC2の表示データを受信すると、閲覧モードのレコード詳細画面SC2を表示部25に表示させる(S5)。
【0076】
サーバ10は、ユーザ端末20からバージョン情報を取得し、レコード詳細画面SC2に表示されたレコードが最新であるか否かを判定する(S6)。S6では、サーバ10は、一定の時間間隔(例えば、0.5秒~数秒程度又は10秒~30秒程度)で、ユーザ端末20からバージョン情報を取得する。S6では、サーバ10は、レコード詳細画面SC2に表示されたレコードが最新であると判定された場合(S6:最新)、後述のS10の処理に移行し、S7~S9の処理は実行されない。
【0077】
S6において、レコード詳細画面SC2に表示されたレコードが最新ではないと判定された場合(S6:古い)、サーバ10は、ユーザ端末20との間で、メッセージM24を表示するための編集表示処理を実行する(S7)。ユーザ端末20は、ユーザの操作を特定する(S8)。ユーザが再読み込みボタンB241を選択した場合(S8:再読み込み)、サーバ10との間で、再読み込みを実行する(S9)。ユーザがキャンセルボタンB240を選択した場合(S8:キャンセル)、メッセージM24が消去されて、本処理は終了する。この場合、ユーザが他の方法で再読み込みを行えば、S10以降の処理が実行されてもよい。
【0078】
ユーザが編集ボタンB21を選択すると、ユーザ端末20は、サーバ10に対し、編集モードへの移行要求を送信する(S10)。サーバ10は、編集モードへの移行要求を受信すると、ウェブデータベースDBに基づいて、レコード詳細画面SC2に表示されたレコードが最新であるか否かを判定する(S11)。S11における処理は、S6における処理と同様である。レコード詳細画面SC2に表示されたレコードが最新であると判定された場合(S11:最新)、後述のS15の処理に移行し、S12~S14の処理は実行されない。
【0079】
S11において、レコード詳細画面SC2に表示されたレコードが最新ではないと判定された場合(S11:古い)、S7~S9と同様のS12~S14の処理が実行される。S14の再読み込みが実行されると、S15に移行する。
図11に移り、ユーザ端末20は、サーバ10との間で、レコード詳細画面SC2を編集モードにする(S15)。S15で編集モードになると、ユーザによる編集操作が受け付けられる。ユーザは、入力フォームF20に対する入力等を行う。
【0080】
サーバ10は、S6の処理と同様のS16の処理を実行する。レコード詳細画面SC2に表示されたレコードが最新であると判定された場合(S16:最新)、後述のS20の処理に移行し、S17~S19の処理は実行されない。S16において、レコード詳細画面SC2に表示されたレコードが最新ではないと判定された場合(S16:古い)、サーバ10は、ユーザ端末20との間で、メッセージM25を表示するための編集表示処理を実行する(S17)。
【0081】
ユーザ端末20は、ユーザの操作を特定する(S18)。ユーザ端末20は、ユーザが再読み込みボタンB251を選択した場合(S18:再読み込み)、サーバ10との間で、再読み込みを実行する(S19)。ユーザがキャンセルボタンB250を選択した場合(S18:キャンセル)、S19の処理は実行されず、本処理は終了する。この場合、ユーザが他の方法で再読み込みを行えば、S20以降の処理が実行されてもよい。
【0082】
ユーザ端末20は、ユーザが保存ボタンB23を選択すると、サーバ10に対し、保存要求を送信する(S20)。サーバ10は、保存要求を受信すると、ウェブデータベースDBに基づいて、レコード詳細画面SC2に表示されたレコードが最新であるか否かを判定する(S21)。S21の処理は、S16の処理と同様である。レコード詳細画面SC2に表示されたレコードが最新であると判定された場合(S21:最新)、サーバ10は、保存要求に従って、レコードを編集し(S22)、本処理は終了する。S21において、レコード詳細画面SC2に表示されたレコードが最新ではないと判定された場合(S21:古い)、S17~S19の処理が実行される。
【0083】
本実施形態のウェブデータベースシステム1は、第1インタフェースでウェブデータベースDBが編集された又は編集中であると判定された場合に、第2インタフェースにおけるウェブデータベースDBに関する所定の処理を実行する。これにより、ウェブデータベースDBの利便性が高まる。例えば、第1ユーザ端末20AでウェブデータベースDBが編集された場合に、第2ユーザ端末20BでメッセージM24,M25を表示させることによって、第2ユーザが早い段階で再読み込みの必要性に気付ける。その結果、第2ユーザが保存ボタンB23を選択した時にエラーメッセージが表示されて編集内容が無駄になるといったことを防止し、ウェブデータベースDBの利便性が高まる。例えば、第1ユーザ端末20AでウェブデータベースDBが編集中である場合に、第2ユーザ端末20Bで同様のメッセージを表示させる場合にも、第2ユーザが早い段階で再読み込みの必要性に気付けるので、第2ユーザが入力した編集内容が無駄になるといったことを防止し、ウェブデータベースDBの利便性が高まる。
【0084】
また、ウェブデータベースシステム1は、第2インタフェースでウェブデータベースDBが表示中である場合に、第1インタフェースにおける編集内容に基づいて、所定の処理を実行する。これにより、ウェブデータベースDBの利便性が高まる。例えば、第2ユーザ端末20Bでレコード詳細画面SC2が表示中である場合に、メッセージM24,M25を表示させることによって、第2ユーザがレコード詳細画面SC2を確認している最中に、再読み込みの必要性に気付けるので、利便性が高まる。
【0085】
また、ウェブデータベースシステム1は、第2インタフェースで表示中又は編集中のレコードと同じレコードが第1インタフェースで又は編集中であると判定された場合に、所定の処理を実行する。判定部103による判定対象となるデータをレコード単位にすることによって、ウェブデータベースDBの利便性が高まる。例えば、第1ユーザが第1レコードを編集し、第2ユーザが第2レコードを編集する場合には、再読み込みの必要性がないので、メッセージM24,M25を表示させないようにして、再読み込みの必要性がある場合にのみメッセージM24,M25を表示させることによって、無駄な表示が行われることを防止できる。
【0086】
また、ウェブデータベースシステム1は、第1インタフェースでウェブデータベースDBが編集されたと判定された場合に、第1インタフェースでウェブデータベースDBが編集されたことを識別可能な情報を第2インタフェースで表示させる編集表示処理を、所定の処理として実行する。これにより、第1インタフェースでウェブデータベースDBが編集されたことを第2インタフェースで気付かせやすくなるので、ウェブデータベースDBの利便性が高まる。例えば、この情報として、メッセージM24,M25を表示させることによって、第2ユーザが、早い段階で再読み込みの必要性に気付けるので、ウェブデータベースDBの利便性が高まる。
【0087】
また、ウェブデータベースシステム1は、第2インタフェースにおけるウェブデータベースDBに関する状況に基づいて、編集表示処理を実行する。これにより、状況に応じた柔軟な表示が可能になるので、ウェブデータベースDBの利便性が高まる。例えば、第2ユーザがレコードの編集を開始する前であれば、メッセージM24を表示させ、第2ユーザがレコードを編集中であれば、メッセージM25を表示させるといったように、表示を使い分けて、状況に応じた気付きを第2ユーザに与えることができる。
【0088】
[5.変形例]
なお、本開示は、以上説明した実施形態の例に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0089】
[5-1.変形例1]
例えば、実施形態で説明した例において、第1ユーザ及び第2ユーザが互いに同じレコードを編集したとしても、第1ユーザ及び第2ユーザが互いに異なる部分を編集することがある。この場合、第2ユーザが、再読み込みをせずに、第1ユーザによる編集に気付かずにレコードを編集しても、第1ユーザの編集内容が上書きされるといったことがないので、メッセージM25を表示させないようにしてもよい。
【0090】
変形例1の処理実行部104は、第2インタフェースでもウェブデータベースDBが編集された又は編集中である場合に、第1インタフェースにおける編集内容と、第2インタフェースにおける編集内容と、に基づいて、所定の処理を実行する。変形例1では、実施形態と同様に、第1インタフェース、第2インタフェース、及び所定の処理の一例として、それぞれ第1ユーザ端末20A、第2ユーザ端末20B、及び編集表示処理を説明する。第1インタフェース、第2インタフェース、及び所定の処理がこれらの例に限られない点は、実施形態で説明した通りである。
【0091】
例えば、処理実行部104は、第1ユーザによるレコードの編集箇所と、第2ユーザによるレコードの編集箇所と、が一致するか否かを判定する。編集箇所は、レコードのフィールド、又は、フィールド以外の他の部分(例えば、コメント又はファイル共有の部分)である。処理実行部104は、第1ユーザによるレコードの編集箇所と、第2ユーザによるレコードの編集箇所と、が一致しないと判定された場合には、編集表示処理を実行せず、第1ユーザによるレコードの編集箇所と、第2ユーザによるレコードの編集箇所と、が一致すると判定された場合に、編集表示処理を実行する。処理実行部104は、編集表示処理を実行するか否かではなく、上記の判定結果に基づいて、メッセージM24等の内容を変化させてもよい。
【0092】
なお、処理実行部104により実行される処理は、上記の例に限られない。例えば、第1ユーザ及び第2ユーザが、互いに同じレコードの同じ箇所を編集したとしても、互いの編集内容が同じことがある。この場合、第2ユーザが再読み込みを実行しなくても、第1ユーザの編集内容が、実質的に上書きされないことになるので、第2ユーザ端末20BにメッセージM25を表示させなくてもよい可能性がある。
【0093】
このため、処理実行部104は、第1ユーザによるレコードの編集箇所と、第2ユーザによるレコードの編集箇所と、が一致すると判定された場合に、第1ユーザが入力した値と、第2ユーザが入力した値と、が同じであるか否かを、更に判定してもよい。処理実行部104は、第1ユーザが入力した値と、第2ユーザが入力した値と、が同じであると判定された場合には、編集表示処理を実行せず、第1ユーザが入力した値と、第2ユーザが入力した値と、が同じではないと判定された場合に、編集表示処理を実行してもよい。
【0094】
変形例1のウェブデータベースシステム1は、第2インタフェースでもウェブデータベースDBが編集された又は編集中である場合に、第1インタフェースにおける編集内容と、第2インタフェースにおける編集内容と、に基づいて、所定の処理を実行する。これにより、所定の処理を柔軟に実行できるので、ウェブデータベースDBの利便性が高まる。例えば、第2ユーザが再読み込みをする必要がなくなるので、第2ユーザの負担が軽減する。
【0095】
[5-2.変形例2]
例えば、実施形態では、処理実行部104が実行する所定の処理の一例として、編集表示処理を説明した。所定の処理は、判定部103の判定結果に基づいて実行される処理であればよく、編集表示処理に限られない。変形例2では、所定の処理の他の例について説明する。
【0096】
変形例2の処理実行部104は、第1インタフェースにおける編集内容を、第2インタフェースに自動的に反映させる自動反映処理を、所定の処理として実行する。自動反映処理は、第2インタフェースにおける操作を要することなく、第1インタフェースにおける編集内容を第2インタフェースに表示させる処理である。サーバ10とユーザ端末20の間で、レコードの整合性を取るポーリングが実行されることによって、自動反映処理が実行される。ポーリングは、ブラウザ上のスクリプト等のプログラムを利用して実行されるようにすればよい。変形例2では、実施形態と同様に、第1インタフェース及び第2インタフェースの一例として、それぞれ第1ユーザ端末20A及び第2ユーザ端末20Bを説明する。第1インタフェース及び第2インタフェースがこれらの例に限られない点は、実施形態で説明した通りである。
【0097】
図12は、自動反映処理の一例を示す図である。
図12の例では、閲覧モードのレコード詳細画面SC2が第2ユーザ端末20に表示されている。この場合に、第1ユーザがレコードを編集すると、処理実行部104は、閲覧モードのレコード詳細画面SC2のうち、第1ユーザが編集したレコードの値を、第1ユーザが入力した値に自動的に変更することによって、自動反映処理を実行する。この場合、自動反映処理が実行されたことを示すメッセージがレコード詳細画面SC2に表示されてもよい。
【0098】
なお、編集モードのレコード詳細画面SC2が第2ユーザ端末20に表示されている場合にも、処理実行部104は、
図12と同様の自動反映処理を実行してもよい。例えば、第1ユーザがレコードを編集すると、処理実行部104は、編集モードのレコード詳細画面SC2のうち、第1ユーザが編集したフィールドの値を、第1ユーザが入力した値に自動的に変更することによって、自動反映処理を実行してもよい。
【0099】
また、変形例1,2を組み合わせて、処理実行部104は、第1ユーザの編集内容と、第2ユーザの編集内容と、に基づいて、自動反映処理を実行してもよい。例えば、処理実行部104は、第1ユーザによるレコードの編集箇所と、第2ユーザによるレコードの編集箇所と、が一致すると判定された場合には、自動反映処理を実行せず、第1ユーザによるレコードの編集箇所と、第2ユーザによるレコードの編集箇所と、が一致しないと判定された場合に、自動反映処理を実行してもよい。
【0100】
例えば、変形例1,2を組み合わせて、処理実行部104は、第1ユーザが入力した値と、第2ユーザが入力した値と、が同じではないと判定された場合には、自動反映処理を実行せず、第1ユーザが入力した値と、第2ユーザが入力した値と、が同じであると判定された場合に、自動反映処理を実行してもよい。処理実行部104は、自動反映処理とともに、編集表示処理を実行してもよいし、自動反映処理を実行する場合には編集表示処理を実行しないようにしてもよい。処理実行部104は、自動反映処理を実行するか否かに関係なく、編集表示処理を実行しないようにしてもよい。
【0101】
変形例2のウェブデータベースシステム1は、自動反映処理を、所定の処理として実行する。これにより、再読み込みを実行しなくても編集内容が自動的に反映されるので、ウェブデータベースDBの利便性が高まる。
【0102】
[5-3.変形例3]
例えば、処理実行部104は、編集表示処理及び自動反映処理以外の他の処理を、所定の処理として実行してもよい。変形例3の処理実行部104は、第1インタフェースにおける編集箇所を第2インタフェースで識別可能に表示させる編集箇所表示処理を、所定の処理として実行する。変形例3では、実施形態と同様に、第1インタフェース及び第2インタフェースの一例として、それぞれ第1ユーザ端末20A及び第2ユーザ端末20Bを説明する。第1インタフェース及び第2インタフェースがこれらの例に限られない点は、実施形態で説明した通りである。
【0103】
図13は、編集箇所表示処理の一例を示す図である。
図13の例では、閲覧モードのレコード詳細画面SC2が第2ユーザ端末20Bに表示されている。この場合に、第1ユーザがレコードを編集すると、処理実行部104は、閲覧モードのレコード詳細画面SC2のうち、第1ユーザが編集したフィールドの入力フォームF20の背景色を変えることによって、編集箇所表示処理を実行する。
図13では、変形例2の自動反映処理が実行され、かつ、編集箇所表示処理も実行される場合を示しているが、変形例2の自動反映処理が実行されずに、編集箇所表示処理だけが実行されてもよい。
【0104】
なお、編集箇所表示処理は、編集箇所を視覚的に認識するための処理であればよく、
図13の例に限られない。例えば、入力フォームF20の背景ではなく枠の色を変えること、入力フォームF20のサイズを大きくすること、入力フォームF20付近に吹き出し等の画像を表示すること、又は入力フォームF20内の値の色を変えることが編集箇所表示処理に相当してもよい。処理実行部104は、これら例示した複数の処理を組み合わせて実行することによって、編集箇所表示処理を実行してもよい。
【0105】
また、編集モードのレコード詳細画面SC2が第2ユーザ端末20Bに表示されている場合にも、処理実行部104は、
図13と同様の編集箇所表示処理を実行してもよい。例えば、第1ユーザがレコードを編集すると、処理実行部104は、編集モードのレコード詳細画面SC2のうち、第1ユーザが編集したフィールドの入力フォームF20の背景色を変えることによって、編集箇所表示処理を実行してもよい。
【0106】
また、変形例1,3を組み合わせて、処理実行部104は、第1ユーザの編集内容と、第2ユーザの編集内容と、に基づいて、編集箇所表示処理を実行してもよい。変形例2,3を組み合わせて、処理実行部104は、編集箇所表示処理とともに、自動反映処理を実行してもよい。変形例1~3を組み合わせて、処理実行部104は、編集箇所表示処理とともに、編集表示処理及び自動反映処理を実行してもよい。
【0107】
変形例3のウェブデータベースシステム1は、第1インタフェースにおける編集箇所を第2インタフェースで識別可能に表示させる編集箇所表示処理を、所定の処理として実行する。これにより、編集箇所に気付きやすくなるので、ウェブデータベースDBの利便性が高まる。
【0108】
[5-4.変形例4]
例えば、実施形態及び変形例1~3では、処理実行部104が、第1ユーザによりレコードが編集された場合に、所定の処理が実行される場合を説明した。処理実行部104は、第1ユーザによりレコードが編集中であることを条件として、所定の処理を実行してもよい。即ち、処理実行部104は、第1ユーザによるレコードの編集が完了する前に、所定の処理を実行してもよい。
【0109】
変形例4の判定部103は、第1インタフェースでウェブデータベースDBが編集中であるか否かを判定する。処理実行部104は、第1インタフェースでウェブデータベースDBが編集中であると判定された場合に、第1インタフェースでウェブデータベースDBが編集中であることを識別可能な情報を第2インタフェースで表示させる編集表示処理を、所定の処理として実行する。変形例3では、実施形態と同様に、第1インタフェース及び第2インタフェースの一例として、それぞれ第1ユーザ端末20A及び第2ユーザ端末20Bを説明する。
【0110】
例えば、判定部103は、第1ユーザ端末20Aから編集要求を受信していない場合には、ウェブデータベースDBが編集中であると判定せず、判定部103は、第1ユーザ端末20Aから編集要求を受信した場合に、ウェブデータベースDBが編集中であると判定する。変形例4では、編集中の第1ユーザを特定する処理も判定部103が実行する場合を説明するが、判定部103は、誰が編集中であるかまでは特定しなくてもよい。
【0111】
図14は、編集表示処理の一例を示す図である。
図14の例では、閲覧モードのレコード詳細画面SC2が第2ユーザ端末20に表示されている。この場合に、第1ユーザがレコードの編集を開始すると、処理実行部104は、閲覧モードのレコード詳細画面SC2に、第1ユーザが編集中であることを示すメッセージM26を表示させることによって、編集表示処理を実行する。メッセージM26には、第1ユーザの名前を含めずに、誰かしらが編集中であることだけを含んでもよい。2人以上のユーザが編集中であれば、その人数に応じたメッセージM26が表示されてもよい。メッセージM26には、第2ユーザの名前が含まれてもよい。
【0112】
なお、編集表示処理は、編集中であることを視覚的に認識するための処理であればよく、
図14の例に限られない。例えば、メッセージM26ではなく、アイコン等の他の画像を表示させたり、プッシュ通知を表示させたりすることが編集表示処理に相当してもよい。処理実行部104は、これら例示した複数の処理を組み合わせて実行することによって、編集表示処理を実行してもよい。
【0113】
また、編集モードのレコード詳細画面SC2が第2ユーザ端末20に表示されている場合にも、処理実行部104は、
図14と同様の編集表示処理を実行してもよい。例えば、第1ユーザがレコードの編集を開始すると、処理実行部104は、編集モードのレコード詳細画面SC2に、メッセージM26又は他の画像を表示させることによって、編集箇所表示処理を実行してもよい。
【0114】
また、変形例1,4を組み合わせて、処理実行部104は、第1ユーザの編集内容と、第2ユーザの編集内容と、に基づいて、編集表示処理を実行してもよい。変形例2,4を組み合わせて、処理実行部104は、自動反映処理とともに、編集表示処理を実行してもよい。変形例3,4を組み合わせて、処理実行部104は、編集箇所表示処理とともに、編集表示処理を実行してもよい。変形例1~4を組み合わせて、処理実行部104は、第1ユーザの編集内容と、第2ユーザの編集内容と、に基づいて、自動反映処理、編集箇所表示処理、及び編集表示処理を実行してもよい。
【0115】
変形例4のウェブデータベースシステム1は、第1インタフェースでウェブデータベースDBが編集中であると判定された場合に、第1インタフェースでウェブデータベースDBが編集中であることを識別可能な情報を第2インタフェースで表示させる編集表示処理を、所定の処理として実行する。これにより、他のインタフェースで編集中であることを認識できるので、ウェブデータベースDBの利便性が高まる。
【0116】
[5-5.変形例5]
例えば、第2ユーザの方が第1ユーザよりも役職が高い場合には、第2ユーザの編集内容を、第1ユーザの編集内容よりも優先した方がよいことがある。逆に、第1ユーザの方が第2ユーザよりも役職が高い場合には、第1ユーザの編集内容を、第2ユーザの編集内容よりも優先した方がよいことがある。このため、第1ユーザ及び第2ユーザの各々に関する何らかのユーザ属性の相対的な関係(例えば、上下又は強弱の関係)を考慮して、所定の処理が実行されるようにしてもよい。
【0117】
変形例5の処理実行部104は、第1インタフェースにおける第1ユーザに関する第1ユーザ属性と、第2インタフェースにおける第2ユーザに関する第2ユーザ属性と、に基づいて、所定の処理を実行する。以降、第1ユーザ属性及び第2ユーザ属性を区別しない時は、単にユーザ属性という。ユーザ属性は、ユーザを分類可能な情報である。例えば、組織、役職、部署、入社年度、又はウェブデータベースDBの管理権限(ロール)は、ユーザ属性に相当する。ユーザ属性は、データ記憶部100に予め記録されているものとする。
【0118】
例えば、処理実行部104は、第1ユーザ属性と、第2ユーザ属性と、に基づいて、所定の処理を実行するか否かを決定する。役職を例に挙げると、処理実行部104は、第1ユーザ属性が示す役職が、第2ユーザ属性が示す役職よりも高い場合には、所定の処理を実行せず、第1ユーザ属性が示す役職が、第2ユーザ属性が示す役職よりも低い場合に、所定の処理を実行してもよい。逆に、処理実行部104は、第1ユーザ属性が示す役職が、第2ユーザ属性が示す役職よりも低い場合には、所定の処理を実行せず、第1ユーザ属性が示す役職が、第2ユーザ属性が示す役職よりも高い場合に、所定の処理を実行してもよい。
【0119】
変形例5のウェブデータベースシステム1は、第1ユーザ属性と、第2ユーザ属性と、に基づいて、所定の処理を実行する。これにより、第1ユーザ属性及び第2ユーザ属性の関係性を考慮して所定の処理が実行されるので、ウェブデータベースDBの利便性が高まる。
【0120】
[5-6.その他の変形例]
例えば、変形例1~5を組み合わせてもよい。
【0121】
例えば、実施形態及び変形例1~5では、第2ユーザがレコードを閲覧中又は編集中に、第1ユーザがレコードを編集した又は編集中である場合を例に挙げたが、ユーザが複数のウィンドウ又はタブを開いている時に、同様の処理が実行されてもよい。例えば、あるユーザが第2ウィンドウでレコードを閲覧中又は編集中に、このユーザが他の作業をして第2ウィンドウの存在を忘れてしまい、第1ウィンドウで同じレコードを編集した又は編集中である場合に、第2ウィンドウにおいて、メッセージM24,M25が表示されたり、自動反映処理が実行されたりしてもよい。タブについても同様である。この場合、同じユーザが開いた複数のウィンドウ又はタブの各々がインタフェースに相当する。
【0122】
例えば、所定の処理は、ウェブデータベースDBを編集させないようにする排他処理であってもよい。第1ユーザがレコードを編集中に、第2ユーザが編集ボタンB21又は保存ボタンB23を選択できないようにすることによって、排他処理が実行されてもよい。例えば、ウェブデータベースシステム1は、業務支援サービス以外の他のサービスにも適用可能である。例えば、業務とは関係のないデータが格納されたウェブデータベースDBが提供されるサービスに、ウェブデータベースシステム1を適用してもよい。例えば、娯楽のための動画等のコンテンツが格納されたウェブデータベースDBが提供されるサービスに、ウェブデータベースシステム1を適用してもよい。
【0123】
例えば、上記説明した各機能は、ウェブデータベースシステム1における任意の装置で実現されるようにすればよい。例えば、サーバ10で実現されるものとして説明した機能がユーザ端末20によって実現されてもよい。この場合、サーバ10と同様の機能が、ブラウザのスクリプトによって実行されたり、ユーザ端末20にインストールされたアプリケーションによって実行されたりすることによって実現されるようにすればよい。例えば、ユーザ端末20で実現されるものとして説明した機能がサーバ10によって実現されてもよい。例えば、各機能が複数のコンピュータによって分担されるのではなく、1つのコンピュータによって実現されてもよい。
【符号の説明】
【0124】
1 ウェブデータベースシステム、10 サーバ、11,21,21A,21B 制御部、12,22,22A,22B 記憶部、13,23,23A,23B 通信部、20 ユーザ端末、20A 第1ユーザ端末、20B 第2ユーザ端末、24,24A,24B 操作部、25,25A,25B 表示部、N ネットワーク、DB ウェブデータベース、100 データ記憶部、101 表示制御部、102 編集部、103 判定部、104 処理実行部、200 データ記憶部、201 表示制御部、202 操作受付部、F20 入力フォーム、B21 編集ボタン、B22 キャンセルボタン、B23 保存ボタン、M24,M25,M26 メッセージ、SC1 テーブル形式画面、SC2 レコード詳細画面、T10 テーブル、B240,B250 キャンセルボタン、B241,B251 再読み込みボタン、I100 アイコン。