特許第6558928号(P6558928)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社エヌ・ティ・ティ・データの特許一覧

特許6558928管理システム、管理装置、管理方法、及びプログラム
<>
  • 特許6558928-管理システム、管理装置、管理方法、及びプログラム 図000002
  • 特許6558928-管理システム、管理装置、管理方法、及びプログラム 図000003
  • 特許6558928-管理システム、管理装置、管理方法、及びプログラム 図000004
  • 特許6558928-管理システム、管理装置、管理方法、及びプログラム 図000005
  • 特許6558928-管理システム、管理装置、管理方法、及びプログラム 図000006
  • 特許6558928-管理システム、管理装置、管理方法、及びプログラム 図000007
  • 特許6558928-管理システム、管理装置、管理方法、及びプログラム 図000008
  • 特許6558928-管理システム、管理装置、管理方法、及びプログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6558928
(24)【登録日】2019年7月26日
(45)【発行日】2019年8月14日
(54)【発明の名称】管理システム、管理装置、管理方法、及びプログラム
(51)【国際特許分類】
   G06F 16/31 20190101AFI20190805BHJP
   G06F 16/957 20190101ALI20190805BHJP
【FI】
   G06F16/31
   G06F16/957
【請求項の数】7
【全頁数】16
(21)【出願番号】特願2015-70166(P2015-70166)
(22)【出願日】2015年3月30日
(65)【公開番号】特開2016-191980(P2016-191980A)
(43)【公開日】2016年11月10日
【審査請求日】2018年1月26日
(73)【特許権者】
【識別番号】000102728
【氏名又は名称】株式会社エヌ・ティ・ティ・データ
(74)【代理人】
【識別番号】110001634
【氏名又は名称】特許業務法人 志賀国際特許事務所
(72)【発明者】
【氏名】萩原 悠二
(72)【発明者】
【氏名】山田 大輔
(72)【発明者】
【氏名】渡辺 康博
(72)【発明者】
【氏名】長谷川 明
(72)【発明者】
【氏名】山本 高志
【審査官】 鹿野 博嗣
(56)【参考文献】
【文献】 特開平09−325906(JP,A)
【文献】 特開2001−036568(JP,A)
【文献】 特開2000−207403(JP,A)
【文献】 国際公開第2009/119811(WO,A1)
【文献】 特開2006−309761(JP,A)
【文献】 米国特許出願公開第2014/0379631(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/31
G06F 16/957
(57)【特許請求の範囲】
【請求項1】
複数の属性情報の各々に対応する検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理システムであって、
前記複数の属性情報の各々に対応する前記検索用データが記憶された第1記憶部と、
前記条件合致データを検索する際に、前記第1記憶部に記憶された前記検索用データが展開される第2記憶部と、
特定の属性情報に対応する前記検索対象データから前記条件合致データを検索する可能性が発生した場合に、前記特定の属性情報に対応する前記検索用データを前記第1記憶部から前記第2記憶部に展開させる展開要求を前記第2記憶部に通知するとともに、前記条件合致データを検索する可能性が消滅した場合に、前記第2記憶部に展開された前記検索用データを前記第1記憶部に退避させる退避要求を前記第2記憶部に通知する管理部と
を有することを特徴とする管理システム。
【請求項2】
前記検索用データが前記第2記憶部に展開されていない場合に、新たなデータを記憶する第3記憶部をさらに有し、
前記第2記憶部は、前記検索対象データに前記新たなデータを追加する場合に、前記第2記憶部に展開された前記検索用データを、前記新たなデータを反映させた検索用データに更新する更新部を有し
前記第3記憶部は、前記検索用データが前記第2記憶部に展開される場合に、一時的に記憶していた前記新たなデータを前記更新部に出力し、
前記更新部は、前記第2記憶部に展開された前記検索用データを、前記第3記憶部から出力された前記新たなデータを反映させた前記検索用データに更新することを特徴とする請求項1記載の管理システム。
【請求項3】
前記属性情報は、ユーザを一意的に識別する識別情報であり、前記検索対象データは、前記識別情報に示されるユーザ宛の電子メールであり、前記新たなデータは、前記識別情報に示されるユーザ宛の新着電子メールであり、前記検索用データは、前記検索条件に合致する電子メールを検索するためのインデックスデータであり、
前記条件合致データを検索する可能性は、前記ユーザが前記電子メールを検索可能な状態となった際に発生するとともに、当該検索可能な状態から前記ユーザが前記電子メールを検索不可能な状態になった際に消滅することを特徴とする請求項2に記載の管理システム。
【請求項4】
前記管理部は、前記属性情報と当該属性情報に対応する前記検索用データが前記第2記憶部に展開されているか否かを示す情報とを用いて、前記検索用データを管理することを特徴とする請求項1から請求項3のいずれか1項に記載の管理システム。
【請求項5】
検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置であって、
複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定部と、
前記検索発生判定部により前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第1記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知部と、
前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定部と、
前記検索消滅判定部により前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第1記憶装置に退避させる退避要求を前記検索装置に通知する退避通知部と
を有することを特徴とする管理装置。
【請求項6】
検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置における管理方法であって、
前記管理装置の検索発生判定部が、複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定ステップと、
前記管理装置の展開通知部が、前記検索発生判定ステップにより前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第1記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知ステップと、
前記管理装置の検索消滅判定部が、前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定ステップと、
前記管理装置の退避通知部が、前記検索消滅判定ステップにより前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第1記憶装置に退避させる退避要求を前記検索装置に通知する退避通知ステップと
を有することを特徴とする管理方法。
【請求項7】
検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置のコンピュータに、
前記管理装置の検索発生判定部が、複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定ステップと、
前記管理装置の展開通知部が、前記検索発生判定ステップにより前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第1記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知ステップと、
前記管理装置の検索消滅判定部が、前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定ステップと、
前記管理装置の退避通知部が、前記検索消滅判定ステップにより前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第1記憶装置に退避させる退避要求を前記検索装置に通知する退避通知ステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、管理システム、管理装置、管理方法、及びプログラムに関する。
【背景技術】
【0002】
ネットワークを介してユーザ端末と通信し、ユーザ端末のWebブラウザで電子メールをやり取り可能なメールサービスが提供されている。このメールサービスにおいて、電子メールは例えば大容量のHDD(Hard Disk Drive)で構成されたオブジェクトストレージに記憶される。
こうしたメールサービスにおいて、ユーザ宛の電子メールから、宛先、送信元、及び文字列などの各種検索条件に合致する電子メールを検索する場合に、高速に検索するための検索用データとしてのインデックスを作成する技術がある。
【0003】
この技術に関連して、大容量のテキストデータから、任意の文字列である検索条件に対応するデータを素早く検索するためのインデックスを作成しておき、インデックスに基づいてデータ検索を行う方法が存在する(例えば、特許文献1参照)。
インデックスを用いて検索を行う場合には、インデックスをRAM(Random Access Memory)に展開する。そのため、メールサービスを提供する全ユーザのインデックスを記憶可能なようにRAMの容量を設計する必要がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2011−523152号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、RAMはHDDと比較して高価であるため、ユーザの増加に伴ってRAMの容量を増加させなければならないため、コストが増加するという問題点があった。
【0006】
本発明は、このような事情に鑑みてなされたもので、その目的は、検索用データを展開するために必要なメモリの容量を抑制した管理システム、管理装置、管理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0007】
上述した課題を解決するために、本発明の一態様は、複数の属性情報の各々に対応する検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理システムであって、前記複数の属性情報の各々に対応する前記検索用データが記憶された第1記憶部と、前記条件合致データを検索する際に、前記第1記憶部に記憶された前記検索用データが展開される第2記憶部と、特定の属性情報に対応する前記検索対象データから前記条件合致データを検索する可能性が発生した場合に、前記特定の属性情報に対応する前記検索用データを前記第1記憶部から前記第2記憶部に展開させる展開要求を前記第2記憶部に通知するとともに、前記条件合致データを検索する可能性が消滅した場合に、前記第2記憶部に展開された前記検索用データを前記第1記憶部に退避させる退避要求を前記第2記憶部に通知する管理部とを有することを特徴とする。
【0008】
また、本発明の一態様は、上記の管理システムにおいて、前記検索用データが前記第2記憶部に展開されていない場合に、新たなデータを記憶する第3記憶部をさらに有し、前記第2記憶部は、前記検索対象データに前記新たなデータを追加する場合に、前記第2記憶部に展開された前記検索用データを、前記新たなデータを反映させた検索用データに更新する更新部を有し、前記第3記憶部は、前記検索用データが前記第2記憶部に展開される場合に、一時的に記憶していた前記新たなデータを前記更新部に出力し、前記更新部は、前記第2記憶部に展開された前記検索用データを、前記第3記憶部から出力された前記新たなデータを反映させた前記検索用データに更新する。
【0009】
また、本発明の一態様は、上記の管理システムにおいて、前記属性情報は、ユーザを一意的に識別する識別情報であり、前記検索対象データは、前記識別情報に示されるユーザ宛の電子メールであり、前記新たなデータは、前記識別情報に示されるユーザ宛の新着電子メールであり、前記検索用データは、前記検索条件に合致する電子メールを検索するためのインデックスデータであり、前記条件合致データを検索する可能性は、前記ユーザが前記電子メールを検索可能な状態となった際に発生するとともに、当該検索可能な状態から前記ユーザが前記電子メールを検索不可能な状態になった際に消滅することを特徴とする。
【0010】
また、本発明の一態様は、上記の管理システムにおいて、前記管理部は、前記属性情報と当該属性情報に対応する前記検索用データが前記第2記憶部に展開されているか否かを示す情報とを用いて、前記検索用データを管理することを特徴とする。
【0011】
上述した課題を解決するために、本発明の一態様は、検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置であって、複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定部と、前記検索発生判定部により前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第1記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知部と、前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定部と、前記検索消滅判定部により前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第1記憶装置に退避させる退避要求を前記検索装置に通知する退避通知部とを有することを特徴とする。
【0012】
上述した課題を解決するために、本発明の一態様は、検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置における管理方法であって、前記管理装置の検索発生判定部が、複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定ステップと、前記管理装置の展開通知部が、前記検索発生判定ステップにより前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第1記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知ステップと、前記管理装置の検索消滅判定部が、前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定ステップと、前記管理装置の退避通知部が、前記検索消滅判定ステップにより前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第1記憶装置に退避させる退避要求を前記検索装置に通知する退避通知ステップとを有することを特徴とする。
【0013】
上述した課題を解決するために、本発明の一態様は、検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理装置のコンピュータに、前記管理装置の検索発生判定部が、複数の属性情報の各々に対応して設けられた検索対象データのうち、特定の属性情報に対応する検索対象データから、前記条件合致データを検索する可能性が発生したか否かを判定する検索発生判定ステップと、前記管理装置の展開通知部が、前記検索発生判定ステップにより前記条件合致データを検索する可能性が発生したと判定された場合に、前記複数の属性情報の各々に対応した前記検索用データが記憶された第1記憶装置から、前記特定の属性情報に対応する検索用データを検索装置に展開させる展開要求を前記検索装置に通知する展開通知ステップと、前記管理装置の検索消滅判定部が、前記条件合致データを検索する可能性が消滅したか否かを判定する検索消滅判定ステップと、前記管理装置の退避通知部が、前記検索消滅判定ステップにより前記条件合致データを検索する可能性が消滅したと判定された場合に、前記検索装置に展開された前記検索用データを前記第1記憶装置に退避させる退避要求を前記検索装置に通知する退避通知ステップとを実行させるためのプログラム。
【発明の効果】
【0014】
以上説明したように、この発明によれば、検索用データを展開するために必要なメモリの容量を抑制した管理システム、管理装置、管理方法、及びプログラムを提供できる。
【図面の簡単な説明】
【0015】
図1】本発明の実施形態に係る管理システムを含む概略構成を示す図である。
図2】管理DBとインデックスのデータ構造、及び更新部における更新方法を示す図である。
図3】更新部における更新方法を示す図である。
図4】ユーザ端末、管理装置、一時記憶装置、検索装置、及びインデックス記憶装置での処理を示すシーケンス図である。
図5】管理装置における処理手順を示したフローチャートである。
図6】一時記憶装置における処理手順を示したフローチャートである。
図7】検索装置における処理手順を示したフローチャートである。
図8】インデックス記憶装置における処理手順を示したフローチャートである。
【発明を実施するための形態】
【0016】
図1は、本発明の実施形態に係る管理システム100を含む概略構成を示す図である。
この管理システム100は、ネットワークを介してユーザ端末と通信し、ユーザ端末のWebブラウザで電子メール(以下、「メール」という)をやり取り可能なメールサービスを提供するシステムに適用される管理システムである。
具体的に管理システム100は、検索対象データから検索条件に合致する条件合致データの検索で用いられる検索用データを管理する管理システムである。本実施形態において、検索対象データは、ユーザ宛の受信済みのメールであり、検索条件は、メールの宛先、送信元に一致する、という条件や、ある文字列などを含む、などの条件である。また、検索用データは、後述するインデックスである。
【0017】
次に管理システム100の各構成について説明する。管理システム100は、管理装置10、一時記憶装置20(第3記憶部)、検索装置30(第2記憶部)、インデックス記憶装置40(第1記憶部)を含んで構成される。また、ユーザ端末50と、管理装置10及び検索装置30は、LANやインターネットなどのネットワークで接続される。
管理装置10は、ユーザ認証部11、通知部12、及び管理DB(データベース)13を含んで構成される。ユーザ認証部11は、メールサービスを利用するユーザを認証する。通知部12は、一時記憶装置20、及び検索装置30に後述する各種通知などを送信する。
【0018】
このように構成される管理装置10は、特定の属性情報(後述)に対応する電子メールから検索条件に合致する条件合致データを検索する可能性が発生した場合に、特定の属性情報に対応するインデックスをインデックス記憶装置40から検索装置30に展開(記憶)させる。
また、管理装置10は、条件合致データを検索する可能性が消滅した場合に、検索装置30に展開されたインデックスをインデックス記憶装置40に退避させる。なお、「退避」とは、検索装置30に展開されたインデックスをインデックス記憶装置40に記憶するとともに、検索装置30に展開されたインデックスを消去することをいう。一般的には、インデックスの消去とともに、インデックスが記憶されていた記憶領域を解放する処理も行われる。
【0019】
本実施形態において、属性情報はユーザを一意的に識別する識別情報であり、具体的にはユーザIDである。従って、特定の属性情報とは、特定のユーザのユーザIDであり、本実施形態では、管理装置10にログインしたユーザのユーザIDである。従って、検索対象データは、ログインしたユーザ宛のメールである。
さらに、本実施形態において、メールから検索条件に合致する条件合致データを検索する可能性は、ユーザがログインした際に発生し、ユーザがログアウトした際に消滅する。
【0020】
次に、インデックス記憶装置40について説明する。インデックス記憶装置40は、大容量のHDD(Hard Disk Drive)42を含んで構成され、当該HDD42には、ユーザ宛のメールごとにインデックス41−1、41−2、…41−mが記憶されている。このように、インデックス記憶装置40は、検索対象データの各々に対応するインデックスが記憶されている。
なお、以下の説明において、インデックス41−1、41−2、…41−mに共通の説明をする場合には、単にインデックス41と表現する。また、図1では、インデックス記憶装置40を1つのみ示しているが、一般的には複数のインデックス記憶装置40が設けられる。
また、上述したように、インデックス41は、ユーザがログインするとログインしたユーザに対応するインデックス41のみ検索装置30に展開される。そして、ユーザがログアウトすると、検索装置30に展開されていたインデックス41は、インデックス記憶装置40に退避される。
【0021】
次に、検索装置30について説明する。検索装置30は、条件合致データを検索する際に、インデックス記憶装置40に記憶されたインデックス41が展開される。この検索装置30は、更新部31、検索部32、展開退避部35、及びRAM(Random Access Memory)33を含んで構成される。
RAM33は、インデックス記憶装置40に記憶されたインデックス41が、図に示されるようにアクティブインデックス34−1、…、34−nとして展開される。名称が「インデックス」から「アクティブインデックス」に変化するが、区別するための便宜的なものであり、展開されるデータ内容は同じである。なお、以下の説明において、アクティブインデックス34−1、…、34−nに共通の説明をする場合には、単にアクティブインデックス34と表現する。また、図1では、検索装置30を1つのみ示しているが、一般的には複数の検索装置30が設けられる。
図1の場合、ユーザAがログインしているため、ユーザAのアクティブインデックス34−1がRAM33に展開されている。このように、ログインしているユーザに対応するインデックス41のみがアクティブインデックス34としてRAM33に展開される。
【0022】
次に、展開退避部35について説明する。展開退避部35は、管理装置10からの通知に従って、インデックス記憶装置40に記憶されたインデックス41を、アクティブインデックス34としてRAM33に展開したり、RAM33に展開されたアクティブインデックス34をインデックス記憶装置40に退避させる。
また、展開退避部35は、アクティブインデックス34をインデックス記憶装置40に退避させると、アクティブインデックス34が記憶されていたRAM33の領域を解放する。従って、RAM33には、ログインしているユーザのアクティブインデックス34のみが展開されていることとなる。
【0023】
次に、検索部32について説明する。検索部32は、ログインしているユーザのユーザ端末50から、受信済みのメールを検索するための検索条件が示された検索要求を受信した場合に、アクティブインデックス34を用いて検索を実行し、その検索結果を示す検索結果通知をユーザ端末50に送信する。
次の更新部31の説明に先立ち、まず一時記憶装置20について説明する。一時記憶装置20は、アクティブインデックス34が検索装置30に展開されていない場合に、新着メールを一時的に記憶するもので、メール受信部21、メール出力部22、及びキュー23を含んで構成される。
【0024】
メール受信部21は、メールサービスのユーザ宛の新着メールを受信する。そして、メール受信部21は、新着メールの宛先のユーザがログインしている場合には、メール出力部22に新着メールを出力する。一方、新着メールの宛先のユーザがログインしていない場合には、メール受信部21は、新着メールをキュー23に記憶する。
キュー23は、ログインしていないユーザIDごとに動的に用意され、新着メールを記憶するためのキューである。
【0025】
メール出力部22は、メール受信部21が出力した新着メールや、キュー23に記憶された新着メールを更新部31に出力する。メール出力部22は、メール受信部21が出力した新着メールは、そのまま更新部31に出力する。一方、キュー23に記憶された新着メールは、管理装置10の通知部12によりユーザがログインしたことを示すログイン通知を受信した場合に、ログイン通知に示されるユーザIDに対応するキュー23が記憶している新着メールを更新部31に出力する。上述したように、ユーザがログインすると、そのユーザIDに対応するアクティブインデックス34が展開される。従って、メール出力部22は、アクティブインデックス34が検索装置30に展開される場合に、一時的に記憶していた新着メールを更新部31に出力するようになっている。
次に、更新部31について説明する。更新部31は、一時記憶装置20から出力された新着メールを取得する。そして、更新部31は、受信済みのメールに新たなデータとして新着メールを追加する場合に、RAM33に展開されたアクティブインデックス34を、新着メールを反映させたアクティブインデックス34に更新する。更新部31により更新されたアクティブインデックス34がインデックス記憶装置40に退避されると、更新されたインデックス41に上書きされる。
【0026】
このように、更新部31は、RAM33に展開されたアクティブインデックス34を更新するが、上述したようにRAM33に展開されるアクティブインデックス34はログインしているユーザに対応するアクティブインデックス34である。
従って、ユーザがログインしていない場合には、アクティブインデックス34が更新されることはない。これは、ログインしていないユーザは検索を行わないため、ログインしていないユーザに対応するアクティブインデックス34が更新されなくても、運用上は問題ないためである。また、更新部31は、検索装置30内に構成されているが、検索装置30とは別の装置として構成するようにしてもよい。
【0027】
図2は、管理DB13とインデックスのデータ構造を示す図である。図2(A)は、管理DB13のデータ構造を示す図である。管理DB13は、「ユーザID」、「展開/退避」、及び「割当先」で構成される。
このうち、「ユーザID」は上述したようにユーザを一意的に識別する識別情報である。管理DB13は、この「ユーザID」に対応して「展開/退避」、及び「割当先」が設けられたデータベースである。
【0028】
「展開/退避」は、「ユーザID」に対応するインデックス41がアクティブインデックス34として検索装置30に展開されている場合には、「展開」を示し、「ユーザID」に対応するインデックス41がアクティブインデックス34として検索装置30に展開されていない場合には、「退避」を示す。
「割当先」は、「ユーザID」に対応するインデックス41を展開したり、検索する検索装置30を示す。本実施形態では、「サーバA」などのように固定的に検索装置30が割り当てられているが、検索装置30のリソースや稼働状況などを鑑みて動的に割り当てるようにしてもよい。
【0029】
この管理DB13を参照して、管理装置10は各種通知先などを認識することができる。具体的には、「ユーザID」が「ユーザB」のユーザがログインした場合には、「サーバB」の展開退避部35にインデックス41の展開を要求する展開要求を送信したり、メール出力部22に、新着メールの出力先が「サーバB」であることを示すログイン通知を送信できる。
【0030】
図2(B)(C)は、インデックス41(アクティブインデックス34)のデータ構造を示す図である。インデックス41は、図2(B)に示されるメールデータ50及び転置インデックス51で構成される。
このうち、メールデータ50は、「メールID」、「送信元」、「日時」、及び「文面」で構成される。「メールID」は、受信済みのメールを一意的に識別する識別情報である。図2(B)の場合、「0001」と「0002」の2つのメールIDが示されている。
「送信元」はメールの送信元を示す情報であり、例えばメールアドレスである。図2(B)の場合、「X」と「Y」の2つのメールアドレスが示されている。「日時」は、メールの送信日時を示しyyyymmddhhmm形式で記憶される。図2(B)の場合、「メールID」が「0001」のメールは、「2015年1月1日0時0分」に送信され、「メールID」が「0002」のメールは、「2015年1月2日14時3分」に送信されたことが示されている。
【0031】
「文面」は、メール本文である。図2(B)の場合、「メールID」が「0001」の文面が、「東京において電信の特許を…」であることを示している。「メールID」が「0002」の文面が、「豊洲から有楽町に電話して…」であることを示している。
また、図2(C)に示される転置インデックス51は、「単語」及び「メールID」で構成される。「単語」はメールの「文面」から取得されるもので、新たな単語が取得されるたびに追加される。「メールID」は、対応する「単語」を含む「文面」をもつメールの「メールID」である。
例えば、「メールID」が「0001」の「文面」には、「電信」、「東京」、「特許」が含まれるため、単語「電信」、「東京」、「特許」の各々に対応して「0001」が記憶されている。同様に、「メールID」が「0002」の「文面」には、「豊洲」、「有楽町」、「電話」が含まれるため、単語「豊洲」、「有楽町」、「電話」の各々に対応して「0002」が記憶されている。
この転置インデックス51により、例えば「「電信」を含む」、という検索条件の場合には、検索部32は、転置インデックス51により条件に合致する条件合致データの「メールID」として「0001」を検索でき、この「0001」からメールを検索することができる。検索されたメールは、ユーザに検索結果として通知される。なお、上述したインデックス41は、検索用データの一例であり、検索に用いられるデータであれば、他のデータ構造をもつインデックスであってもよい。
【0032】
図3は、更新部31における更新方法を示す図である。まず、図2(B)(C)に示したインデックス41が、アクティブインデックス34として検索装置30に展開されているものとする。
この状態で、更新部31が新着メール52を取得すると、「文面」から「単語」を抽出する。この新着メール52の「メールID」は「0876」であり、送信元は「z」であり、「日時」は「2015年11月5日21時13分」であり、「文面」が「豊洲から有楽町に電報を…」である。
この例の場合、「文面」から「豊洲」、「有楽町」、「電報」が「単語」として抽出されたとする。抽出された「単語」のうち、「豊洲」、「有楽町」は転置インデックス51の「単語」に既にあり、「電報」は新規の「単語」である。
従って、更新部31は、転置インデックス53に示されるように、「豊洲」、「有楽町」に新着メールの「メールID」である「0876」を追加し、新たに「単語」として「電報」を追加し、その「電報」に対応して、「0876」を追加することで、転置インデックス53を更新する。
【0033】
図4は、ユーザ端末50、管理装置10、一時記憶装置20、検索装置30、及びインデックス記憶装置40での処理を示すシーケンス図である。
まず、ユーザ端末50は、管理装置10にログイン要求を送信する(ステップS1)。管理装置10は、ユーザ認証部11によりユーザ認証を行う(ステップS2)。ここでは認証に成功したものとする。管理装置10は、認証が成功すると、一時記憶装置20にログイン通知を送信する(ステップS3)とともに、検索装置30に展開要求を送信する(ステップS4)。
ログイン通知には、ログインしたユーザのユーザIDと、新着メールの出力先を示す情報が含まれる。また、展開要求には、ログインしたユーザのユーザIDが含まれる。
【0034】
展開要求を受信した検索装置30は、インデックス要求をインデックス装置40に送信する(ステップS5)。インデックス要求を受信したインデックス記憶装置40は、検索装置30にインデックス通知を送信する(ステップS6)。このインデックス通知により、インデックス41が検索装置30に送信される。インデックス通知を受信した検索装置30は、受信したインデックス41をアクティブインデックス34としてRAM33に展開する(ステップS7)。
一方、管理装置10からログイン通知を受信した一時記憶装置20は、検索装置30にメールを出力する(ステップS8)。メールを取得した検索装置30は、アクティブインデックス34を更新する更新処理を行う(ステップS9)。
【0035】
次に、検索装置30は、ユーザ端末50からメールを検索するための検索条件が示された検索要求を受信すると(ステップS10)、検索処理を行い(ステップS11)、検索結果を示す検索結果通知をユーザ端末50に送信する(ステップS12)。
そして、ユーザ端末50は、管理装置10にログアウト要求を送信する(ステップS13)。ログアウト要求を受信した管理装置10は、一時記憶装置20にログアウト通知を送信する(ステップS14)。ログアウト通知には、ログアウトしたユーザのユーザIDが含まれる。
ログアウト通知を受信した一時記憶装置20は、ログアウトしたユーザのユーザIDに対応するキュー23を用意する(ステップS15)。以後、ユーザがログインするまで、このユーザ宛の新着メールが記憶されることとなる。
【0036】
また、管理装置10は、検索装置30に退避要求を送信する(ステップS16)。退避要求には、ログアウトしたユーザのユーザIDが含まれる。退避要求を受信した検索装置30は、インデックス通知をインデックス記憶装置40に送信する(ステップS17)。このインデックス通知により、ユーザIDに対応するインデックス41がインデックス記憶装置40に送信される。インデックス通知を受信したインデックス記憶装置40は、受信したインデックス41を記憶する(ステップS18)。
また、検索装置30は、インデックス通知を送信すると、送信したインデックス41がアクティブインデックス34として記憶されていたRAM33の記憶領域を解放する(ステップS19)。
【0037】
次に、各装置での処理について説明する。図5は、管理装置10における処理手順を示したフローチャートである。
管理装置10は、ログイン要求を受信すると(ステップS101)、ユーザ認証部11によりユーザ認証を行う(ステップS102)。次いで管理装置10は、ユーザ認証の結果、認証に成功したか否か判定する(ステップS103)。すわなち、ステップS103では、検索する可能性が発生したか否かを判定する。
【0038】
認証に失敗した場合には(ステップS103;NO)、ステップS101に戻る。認証に成功した場合には(ステップS103;YES)、一時記憶装置20にログイン通知を送信する(ステップS104)とともに、検索装置30に展開要求を送信する(ステップS105)。すなわち、ステップS105では、検索する可能性が発生したと判定された場合に、ユーザIDの各々に対応したインデックス41が記憶されたインデックス記憶装置40から、ログインしたユーザのユーザIDに対応するインデックス41を検索装置30に展開させる。
次いで管理装置10は、ユーザ端末50からログアウト要求を受信すると(ステップS106;YES)、一時記憶装置20にログアウト通知を送信する(ステップS107)。そして、管理装置10は、検索装置30に退避要求を送信して(ステップS108)、本処理を終了する。すなわち、ステップS106では、検索する可能性が消滅したか否かを判定し、ステップS108では、検索装置30に展開されたアクティブインデックス34をインデックス記憶装置40に退避させる。
【0039】
図6は、一時記憶装置20における処理手順を示したフローチャートである。一時記憶装置20は、管理装置10からログイン通知を受信したか否か判定する(ステップS201)。ログイン通知を受信した場合には(ステップS201;YES)、メール出力部22は、ログイン通知に示されるユーザIDに対応するキュー23に記憶されている新着メールを検索装置30に出力し、ユーザIDに対応するキュー23を削除する(ステップS205)。そして、一時記憶装置20は、ログインしたユーザのユーザIDに対応する展開フラグをオンにして(ステップS206)、ステップS201に戻る。
この展開フラグとは、ユーザIDに対応するインデックス41がアクティブインデックス34として、検索装置30に展開されているか否かを示すもので、展開されている場合にはオンとなり、展開されていない場合にはオフとなる。
【0040】
ステップS201に戻り、ログイン通知を受信していない場合には(ステップS201;NO)、メール受信部21が新着メールを受信したか否か判定する(ステップS202)。
メール受信部21が新着メールを受信した場合には(ステップS202;YES)、一時記憶装置20は、新着メールの宛先のユーザのユーザIDに対応する展開フラグがオンか否か判定する(ステップS203)。
展開フラグがオフの場合には(ステップS203;NO)、ユーザIDに対応するアクティブインデックス34が検索装置30に展開されていないので、メール受信部21は新着メールをキュー23に記憶して(ステップS207)、ステップS201に戻る。
【0041】
ステップS203に戻り、展開フラグがオンの場合には(ステップS203;YES)、ユーザIDに対応するアクティブインデックス34が検索装置30に展開されているので、メール受信部21はメール出力部22に新着メールを出力することで、メール出力部22が新着メールを検索装置30に出力する(ステップS204)。
ステップS202に戻り、メール受信部21が新着メールを受信していない場合には(ステップS202;NO)、管理装置10からログアウト通知を受信したか否か判定する(ステップS208)。ログアウト通知を受信していない場合には(ステップS208;NO)、ステップS201に戻る。
ログアウト通知を受信した場合には(ステップS208;YES)、一時記憶装置20は、ログアウトしたユーザのユーザIDに対応する展開フラグをオフにして(ステップS209)、ユーザIDに対応するキュー23を用意して(ステップS210)、ステップS201に戻る。
【0042】
図7は、検索装置30における処理手順を示したフローチャートである。検索装置30は、管理装置10から展開要求を受信したか否か判定する(ステップS301)。展開要求を受信した場合には(ステップS301;YES)、検索装置30は、ユーザIDを含むインデックス要求をインデックス装置40に送信して(ステップS306)、ステップS301に戻る。
展開要求を受信していない場合には(ステップS301;NO)、検索装置30は、インデックス記憶装置40からインデックス通知を受信したか否か判定する(ステップS302)。インデックス通知を受信した場合には(ステップS302;YES)、展開退避部35は、受信したインデックス41をアクティブインデックス34としてRAM33に展開する(ステップS303)。
【0043】
次いで、更新部31は、一時記憶装置20からキュー23に記憶されていた新着メールを取得済みか否か判定する(ステップS304)。新着メールを取得済みでない場合には(ステップS304;NO)、ステップS301に戻る。新着メールを取得済みの場合には(ステップS304;YES)、更新部31は、図3で説明した更新処理を行い(ステップS305)、ステップS301に戻る。
ステップS302に戻り、インデックス通知を受信していない場合には(ステップS302;NO)、更新部31は、新着メールを取得したか否か判定する(ステップS307)。新着メールは、RAM33にアクティブインデックス34が展開されているときに一時記憶装置20から出力されるので、新着メールを取得した場合には(ステップS307;YES)、更新部31は、上述した更新処理を行い(ステップS305)、ステップS301に戻る。
【0044】
新着メールを受信していない場合には(ステップS307;NO)、検索部32は、ユーザ端末50から検索要求を受信したか否か判定する(ステップS308)。検索要求を受信した場合には(ステップS308;YES)、検索部32は、検索処理を行い(ステップS309)、検索結果通知をユーザ端末50に送信して(ステップS310)、ステップS301に戻る。
ステップS308に戻り、検索要求を受信していない場合には(ステップS308;NO)、展開退避部35は、管理装置10から退避要求を受信したか否か判定する(ステップS311)。退避要求を受信していない場合には(ステップS311;NO)、ステップS301に戻る。
【0045】
退避要求を受信した場合には(ステップS308;YES)、展開退避部35は、ユーザIDとインデックス41を含むインデックス通知をインデックス記憶装置40に送信する(ステップS313)。次いで、展開退避部35は、送信したインデックス41がアクティブインデックス34として記憶されていたRAM33の領域を解放して(ステップS313)、ステップS301に戻る。
【0046】
図8は、インデックス記憶装置40における処理手順を示したフローチャートである。インデックス記憶装置40は、検索装置30からインデックス要求を受信したか否か判定する(ステップS401)。インデックス要求を受信した場合には(ステップS401;YES)、インデックス記憶装置40は、インデックス要求に含まれるユーザIDに対応するインデックス41を取得し(ステップS404)、検索装置30にインデックス通知を送信し(ステップS405)、ステップS401に戻る。このインデックス通知により、インデックス41が検索装置30に送信される。
ステップS401に戻り、インデックス要求を受信していない場合には(ステップS401;NO)、インデックス記憶装置40は、検索装置30からインデックス通知を受信したか否か判定する(ステップS402)。
インデックス通知を受信していない場合には(ステップS402;NO)、ステップS401に戻る。インデックス通知を受信した場合には(ステップS402;YES)、インデックス記憶装置40は、受信したインデックス41をHDD42に記憶して(ステップS403)、ステップS401に戻る。
【0047】
以上説明した実施形態では、メールサービスの全ユーザ数と比較して少ない人数であるログインしたユーザに対応するインデックスのみをRAM33に展開することにより、RAM33の容量を削減できるようになっている。従って、全ユーザ数ではなく、ログインするユーザ数を想定してRAM33の容量を設計できるので、本実施形態ではインデックスを展開するために必要なメモリの容量を抑制できる。これは、RAM33に要するコストを抑制することも意味する。
従って、従来のようにメールサービスの全ユーザ数で設計されたメールサービスに本実施形態を適用することにより、そのまま同じRAM33の容量で全ユーザ数を大幅に増加させたメールサービスを提供できることとなる。逆に表現すると、全ユーザ数がそのままの場合には、本実施形態を適用することにより、RAMの容量を大幅に削減できる。
【0048】
さらに、キュー23を設けることにより、インデックスの更新により生じるレイテンシを大幅に改善できる。具体的に説明すると、新着メールの受信は、ユーザがログインしている時間に限らず常時発生する可能性があるため、キュー23を設けない構成の場合には、新着メールを受信するたびにインデックスをRAM33に展開し、上述した更新処理を行い、再び退避させる処理を実行することから、これら展開・更新・退避処理により生じるレイテンシは無視できるものではない。
そこで、キュー23を設け、ログインしていないユーザ宛の新着メールをキュー23に記憶することにより、ユーザがログインしていない場合に発生する展開・更新・退避処理の実行が不要となることから、上記レイテンシを大幅に改善できる。
【0049】
以上説明した実施形態では、Webブラウザで電子メールをやり取り可能なメールサービスを例に説明したが、Webブラウザによる動作はWebブラウザ以外のアプリケーションでも実行可能であるため、Webブラウザに代えて、ユーザ端末上で動作するアプリケーションや、クラウド上で動作するアプリケーションによるメールサービスにも適用可能である。
さらに、メールサービスに限らず、SNS(Social Networking Service)において、他のユーザが投稿した内容を新着メールに対応させ、投稿済みの内容を受信済みのメールに対応されることで、本実施形態に係る処理を適用できる。この場合の属性情報は、一般的にはユーザIDやメールアドレスなどとなる。また、SMS(Short Message Service)においても、他のユーザが送信したショートメールを新着メールに対応させ、受信済みのショートメールに対応されることで、本実施形態に係る処理を適用できる。この場合の属性情報も、一般的にはユーザIDやメールアドレスなどとなる。
さらに、全ユーザ数と比較して、ログインするユーザが少ない一般的なシステムについても、本実施形態を適用可能である。
【0050】
なお、本実施形態では、ユーザのログインにより、条件合致データを検索する可能性が発生したと判定し、ユーザのログアウトにより、条件合致データを検索する可能性が消滅したと判定するが、条件合致データを検索する可能性があるという意思を示すデータの入力により、条件合致データを検索する可能性が発生したと判定し、条件合致データを検索する可能性がないという意思を示すデータの入力により、条件合致データを検索する可能性が消滅したと判定してもよい。
【0051】
上述した実施形態における管理装置10の処理をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【0052】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0053】
10 管理装置、11 ユーザ認証部、12 通知部、13 管理DB
20 一時記憶装置、21 メール受信部、22 メール出力部、23 キュー
30 検索装置、31 更新部、32 検索部、33 RAM
34 アクティブインデックス、35 展開退避部、40 インデックス記憶装置
41 インデックス、42 HDD
図1
図2
図3
図4
図5
図6
図7
図8