以下に、本願に係る管理装置、管理方法、及び管理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、以下の実施形態により本願に係る管理装置、管理方法、及び管理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.管理装置の動作〕
最初に、本実施形態の管理装置30を備える管理システム1を例に、管理装置の動作を説明する。
図1は、実施形態に係る管理システム1の動作を示す図である。管理システム1は、サービス間の連携を可能にするためのシステムである。本実施形態でいう「サービス」は、ネットを介して提供されるサービスのことである。例えば、サービスは、ポータルサイト等のサイトで提供される各種サービスである。具体例を挙げると、サービスは、ネットショッピング、広告配信、メール、ゲーム、ニュース、オークション、掲示板、ブログ、天気予報、ファイナンス、路線検索、地図、旅行、求人、不動産、飲食店紹介、データダウンロード等のサービスである。
これらのサービスは、サービス毎にシステムを取り巻く環境が大きく異なっている。例えば、広告配信サービスでは、広告を配信するシステム(例えば、広告配信サーバ)への端末装置からのリクエストは1秒間に10万リクエストを超える。これに対し、ネットショッピングサービスでは、ネットショッピングを実現するシステム(例えば、ショッピングサーバ)へのリクエストは、1秒間にせいぜい数百~数千リクエストである。そのため、サービスの運営者は、サービス毎に当該サービスに適合したシステムを構築する必要がある。例えば、サービスの運営者は、システム毎に独自のデータモデルのデータベースを構築する必要がある。
しかし、サービス毎に独自のシステム(例えば、独自モデルのデータベース)を構築するとなると、サービス間の連携は困難になる。各サービスは、サービスの提供にあたり多種多様なデータを大量に蓄積することになるが、データモデルが異なると、他のサービスが蓄積した大量のデータの中から自身のサービスで必要となるデータを抽出するのは困難となる。例えば、あるユーザがネットショッピングサービスを使って自転車を購入したとする。このユーザに対し自転車に関する広告を配信できれば、広告配信サービスは大きな広告効果を実現できる。しかし、ネットショッピングに関するデータはネットショッピングサービスに特化したデータも含まれる極めて大量のものである。特定のサービスに特化したデータ(例えば、当該サービスの社内での担当者情報等)は、他のサービスにとってみれば無意味である上にそのデータの意味を理解するのも困難である。そのため、広告配信システムは、ネットショッピングサービスに特化したデータも含まれる大量のデータの中から当該ユーザが自転車を購入したという情報を抽出するのは容易なことではない。
そこで、管理システム1は、サービス間の連携を容易にするため、それぞれサービスを提供する複数のシステムと通信する管理装置30を備える。管理装置30は、複数のシステムがサービスの提供にあたり取得したデータのシステム間の流通を可能にするための処理を行う。例えば、管理装置30は、複数のシステム中の1のシステムが取得した大量のデータの中から、データの流通量等を基準として、他のシステムが必要とするデータを判別する。そして、管理装置30は、判別したデータを他のシステムに通知する。以下、本実施形態の管理装置30を備える管理システム1について説明する。
〔1-1.管理システムについて〕
管理システム1は、端末装置101、102、103と、サービス提供サーバ201、202、203と、管理装置30と、を備える。なお、図1の例では、端末装置が3つ示されているが、端末装置は3つより少なくてもよいし、3つより多くてもよい。以下の説明では、端末装置101、102、103等を総称して端末装置10と記載することがある。また、図1の例では、サービス提供サーバが3つ示されているが、サービス提供サーバは3つより少なくてもよいし、3つより多くてもよい。以下の説明では、サービス提供サーバ201、202、203等を総称してサービス提供サーバ20と記載することがある。
端末装置10は、例えば、スマートデバイス(スマートフォン、或いはタブレット)、携帯電話、パーソナルコンピュータ等のユーザ端末である。端末装置101はユーザU1が使用する端末であり、端末装置102はユーザU2が使用する端末であり、端末装置103はユーザU3が使用する端末である。端末装置10は、ネットワークを介してサービス提供サーバ20と通信する。
サービス提供サーバ20は、クライアント端末或いはクライアント端末を操作するユーザに対して各種サービスを提供するサーバ用ホストコンピュータである。例えば、サービス提供サーバ20は、端末装置10を操作するユーザに対し各種サービスを提供するサービス提供システムである。サービス提供システムは、1台の装置から構成されていてもよいし、複数台の装置から構成されていてもよい。サービス提供サーバ201はサービスAを提供するシステムであり、サービス提供サーバ202はサービスBを提供するシステムであり、サービス提供サーバ203はサービスCを提供するシステムである。サービス提供サーバ20が提供するサービスは、例えば、ネットショッピング、広告配信、メール、ゲーム、ニュース、オークション、掲示板、ブログ、天気予報、ファイナンス、路線検索、地図、旅行、求人、不動産、飲食店紹介、データダウンロード等のサービスである。サービス提供サーバ20がネットショッピングサービスを提供するシステムとして機能する場合、サービス提供サーバ20はオンラインモールとしての機能を併せ持っていてもよい。
サービス提供サーバ20は、他のサービス提供サーバ20へデータを送受信する機能を有していてもよい。データの送受信はサービス提供サーバ20を運営する運営者の指示により行われてもよい。この場合、サービス提供サーバ20は、データの流通量(例えば、データの送信量或いは受信量)をデータ毎に或いはデータ分類毎に計測して記録するよう構成されていてもよい。
管理装置30は、サービス提供サーバ20に対して各種サービスを提供するサーバ用ホストコンピュータである。管理装置30は、サービス提供サーバ20それぞれと通信可能である。管理装置30は、サービス提供サーバ20がサービスの提供にあたり蓄積したデータの、サービス提供サーバ20間の流通を可能にするための処理を行う。例えば、管理装置30は、サービス提供サーバ20間のデータのやり取りの中継を行う。
〔1-2.管理システムの動作〕
以下、図1を参照しながら、本実施形態の管理装置30を備える管理システム1の動作を説明する。
まず、サービス提供サーバ20は、ユーザにサービスを提供するため、ユーザが操作する端末装置10とサービスに関する通信を行う(ステップS1a~ステップS1e)。例えば、サービス提供サーバ201は、ユーザU1が操作する端末装置101とサービスA(例えば、ネットショッピング)に関する通信を行う(ステップS1a)。また、サービス提供サーバ202は、ユーザU1が操作する端末装置101とサービスB(例えば、広告配信)に関する通信を行う(ステップS1b)。
そして、サービス提供サーバ20は、サービスの提供にあたり取得したデータ(以下、サービスデータという。)をデータベースに保存する(ステップS2a~ステップS2c)。なお、サービスデータを格納するデータベースは、RDB(Relational Database)に限られない。大量のデータを高速に扱えるようにするため、データベースは、NoSQL(Not Only SQL)等のハイパースケールなデータベース管理システム(スケールアウト型のシステム)を使ったデータベースであってもよい。このとき、NoSQLは、KVS(Key-Value Store)であってもよい。
図2は、サービス提供サーバ201がデータベースに登録する取得情報の一例を示す図である。取得情報には、サービス提供サーバ201がサービスの提供にあたり取得したサービスデータが格納されている。サービスデータD11は、例えば、ショッピングサービスを利用した複数のユーザの情報である。サービスデータD12は、例えば、ショッピングサービスで販売された商品の情報である。サービスデータD12は、例えば、サービス提供サーバ201が提供するオンラインモール機能を利用するストアの情報である。各サービスデータには、データ分類を示すIDが付されている。サービスデータD11にはB11が付されており、サービスデータD12にはB12が付されており、サービスデータD13にはB13が付されている。B11は、例えば、サービスデータのデータ分類が「ユーザ情報」であることを示しており、B12は、例えば、サービスデータのデータ分類が「商品販売情報」であることを示しており、B13は、例えば、サービスデータのデータ分類が「ストア情報」であることを示している。
続いて、管理装置30は、サービス提供サーバ20それぞれからサービスデータに関する情報を取得する(ステップS3a~ステップS3c)。例えば、管理装置30は、サービス提供サーバ20が保持しているサービスデータの種類の情報(例えば、データ分類の情報)やサービスデータのシステム間の流通量に関する情報を取得する。データ分類は、例えば、“ユーザ情報”、商品の“販売情報”等、データの内容(意味)に着目した分類であってもよい。また、流通量は、例えば、サービスデータのシステム間でのやり取りの量(例えば、データの送信量或いは受信量)である。このとき、流通量は、データ毎の流通量であってもよいし、データ分類毎の流通量であってもよい。そして、管理装置30は、サービス提供サーバ20から取得した情報に基づいて管理情報を生成し、データベースに登録する。管理情報は、サービス提供サーバ20が保持しているデータを管理装置30側で管理するための情報である。管理情報を格納するデータベースは、RDBに限られない。大量のデータを高速に扱えるようにするため、データベースは、NoSQL等のハイパースケールなデータベース管理システム(スケールアウト型のシステム)を使ったデータベースであってもよい。このとき、NoSQLは、KVSであってもよい。
図3は、管理情報の一例を示す図である。管理情報は、システムIDとデータ分類の項目を有する。システムIDは、管理装置30が管理するシステムのIDである。図3の例では、システムIDには、201、202、203等の値が格納されている。201は、サービスAを提供するシステム(本実施形態の場合、サービス提供サーバ201)を示すIDであり、202は、サービスBを提供するシステム(本実施形態の場合、サービス提供サーバ202)を示すIDであり、203は、サービスCを提供するシステム(本実施形態の場合、サービス提供サーバ203)を示すIDである。データ分類は、各システムが現在保有しているサービスデータの分類を示す。データ分類の項目には、複数のシステムをまたいで一意のIDが格納される。
図3の例の場合、各データ分類には、流通量が関連付けられている。流通量の項目には、データ分類で示されるサービスデータの流通量の情報が格納される。流通量の情報は、管理装置30が管理する複数のシステムのうちの所定のシステムが該当のデータ分類に分類されるサービスデータを他のシステムに送信した回数であってもよい。このとき、回数は所定期間中の回数であってもよい。例えば、B11が、サービス提供サーバ201が保有するユーザ情報を示すデータ分類であるとする。サービス提供サーバ201がユーザ情報をサービス提供サーバ201或いはサービス提供サーバ201に過去1ヶ月間に876回送信したとすれば、管理情報の流通量の項目には876が格納される。流通量は、管理装置30が各サービス提供サーバ20から取得した情報に基づき判別される。
また、各データ分類には、重要度が関連付けられている。重要度の項目には、データ分類で示されるサービスデータの重要度の情報が格納される。図3の例では、重要度の項目には、1~10の値が格納されている。重要度は、他のシステムに必要とされる可能性が高いほど高い値となる。重要度は、管理装置30が予め設定された基準に基づき判別する。例えば、管理装置30は、データ分類と重要度とを関連付けた情報を予め記憶し、記憶した情報に基づきサービスデータの重要度を判別する。重要度の判別方法はこれに限らず、例えば、管理装置30は、流通量が多いデータ分類に高い重要度を付してもよい。重要度の判別方法は、管理装置30の運営者が任意に定めることが可能である。
次に、管理装置30は、複数のシステムがサービスの提供にあたり取得したデータのうち所定の基準を満たすデータを、システム間の流通に関する処理を行うデータ(以下、流通用データという。)として判別する(ステップS4)。このとき、管理装置30は、システムが取得したデータのうち複数のシステム中の他のシステムが必要とするデータを流通用データとして判別してもよい。
例えば、流通量が多いデータ分類のサービスデータは、過去、他のシステムにより実際に必要とされたことがあるデータである。そのため、流通量の多いデータ分類に属すサービスデータは、これからも他のシステムにより必要とされる可能性が高いデータである。また、このようなサービスデータは、過去、当該サービスデータを実際に受け取ったことがあるシステムのみならず、当該サービスデータを受け取ったことがないシステムからも必要とされる可能性が高いデータである。例えば、ネットショッピングサービスのユーザデータ(特に、ユーザとそのユーザによる購入商品との組み合わせのデータ)は、広告サービスのみならず、多くのサービスで有用なデータである。
そこで、管理装置30は、システムが取得した大量のサービスデータの中から、流通量に基づき定められた基準を満たすデータを流通用データとして判別する。例えば、管理装置30は、サービス提供サーバ20が取得したサービスデータのうち流通量が所定量以上のデータ分類に属するデータを流通用データとして判別する。なお、流通量はデータ量(例えば、バイト数)であってもよいし、データ送信回数であってもよい。以下の説明では、データ量は送信回数であるものとする。図3の例であれば、サービス提供サーバ20は、流通量が800以上(他のサービス提供サーバへの送信回数が800回以上)のデータ分類であるデータ分類B11、B21、B31に属すデータを流通用データとして判別する。
なお、流通用データを判別する基準は流通量に限られない。例えば、管理装置30は、重要度に基づき流通用データを判別してもよい。例えば、管理装置30は、システムが取得したデータのうち重要度が一定以上(例えば、10段階の8以上)のデータを流通用データとして判別する。図3の例であれば、サービス提供サーバ20は、重要度が8以上のデータ分類であるデータ分類B12、B22、B32に属すデータを流通用データとして判別する。
次に、管理装置30は、所定の基準を満たすデータのシステム間の流通に関する処理(以下、流通処理という。)を実行する。例えば、管理装置30は、ステップS4で判別した流通用データに関する情報を他のシステムに通知する(ステップS5a~ステップS5c)。例えば、管理装置30が、ステップS4で、流通量が800以上のデータ分類であるデータ分類B11、B21、B31に属すデータを流通用データとして判別したとする。このとき、管理装置30は、データ分類B11、B21、B31のサービスデータの流通量が多い旨、サービス提供サーバ201、202、203に通知する。また、管理装置30が、ステップS4で、重要度が8以上のデータ分類であるデータ分類B12、B22、B32に属すデータを流通用データとして判別したとする。このとき、管理装置30は、データ分類B12、B22、B32のサービスデータの重要度が高い旨、サービス提供サーバ201、202、203に通知する。
なお、流通処理は、流通用データに関する情報の通知に限られない。管理装置30は、ステップS4で判別した流通用データをサービス提供サーバ20から取得し(ステップS6a~ステップS6c)、管理装置30が管理する記憶装置に記憶してもよい(ステップS7)。
例えば、管理装置30が、ステップS4で、流通量が800以上のデータ分類であるデータ分類B11、B21、B31に属すサービスデータを流通用データとして判別したとする。このとき、管理装置30は、データ分類B11、B21、B31に属するサービスデータをサービス提供サーバ201、202、203から取得し、流通用データとして記憶装置に記憶する。例えば、管理装置30は、データ分類B11に属するサービスデータD11をサービス提供サーバ201から取得し、流通用データとして記憶装置に記憶する。このとき、管理装置30は、各サービス提供サーバ20から取得したサービスデータを、各サービス提供サーバ20がアクセス可能な共有情報としてもよい。例えば、管理装置30は、流通用データを複数の各サービス提供サーバ20がいずれもアクセス可能なデータベースに記憶してもよい。
また、管理装置30が、ステップS4で、重要度が8以上のデータ分類であるデータ分類B12、B22、B32に属すサービスデータを流通用データとして判別したとする。このとき、管理装置30は、データ分類B12、B22、B32に属するサービスデータをサービス提供サーバ201、202、203から取得し、流通用データとして記憶装置に記憶する。例えば、管理装置30は、データ分類B12に属するサービスデータD12をサービス提供サーバ201から取得し、流通用データとして記憶装置に記憶する。
なお、流通用データを記憶する記憶装置は、管理装置30の内部の記憶装置であってもよいし、管理装置30に外付けされた記憶装置であってもよい。記憶装置は、長期記憶のための記憶装置であってもよい。例えば、記憶装置は、ハードディスクやSSD(Solid State Drive)であってもよい。
なお、サービス提供サーバ20から取得したサービスデータが重要度の高いデータ(例えば、重要度が8以上のデータ)の場合、管理装置30は、サービス提供サーバ20から取得したサービスデータを、重要情報として、他の共有情報とは異なる管理をしてもよい。例えば、管理装置30は、流通用データを、長期記憶のための複数の記憶領域のうち最も高速な記憶領域(高速記憶領域)に保存してもよい。高速記憶領域は、複数ある記憶措置のうちの最も高速アクセス可能な記憶装置であってもよい。
サービス提供サーバ20の1つから、サービスデータの送信要求があった場合(ステップS8)、管理装置30は、記憶装置から該当のサービスデータを取得し、サービス提供サーバ20に送信する(ステップS9)。
なお、管理装置30は、サービスデータを送信した場合には、送信したサービスデータを受け取ったシステムを運営する運営者に対する課金のための処理を実行してもよい。例えば、管理装置30は、送信データのデータ量に基づいて運営者への課金額を算出する。そして、管理装置30は、課金額が記載された請求書の発行処理や運営者からの入金の確認処理等を行う。管理装置30は、入金に関する処理を金融機関のサーバと連携して行ってもよい。
本実施形態によれば、管理装置30は、複数のシステムがサービスの提供にあたり取得したデータのうち所定の基準を満たすデータを流通用データとして判別している。そして、管理装置30は、流通用データの流通処理を行っている。これにより、各システムは、他のシステムが保持するサービスデータの認知及び取得が容易となるので、管理装置30は、サービス間の連携を容易にできる。
〔2.管理システムの構成例〕
以上、本実施形態の管理装置30を備える管理システム1を例に、本実施形態の管理装置の動作を述べたが、以下、管理システム1の構成を説明する。上述したように、管理システム1は、端末装置10と、サービス提供サーバ20と、管理装置30と、を備える。端末装置10、サービス提供サーバ20、及び管理装置30は、ネットワークを介して接続される。ネットワークは、LAN(Local Area Network)、WAN(Wide Area Network)、電話網(携帯電話網、固定電話網等)、地域IP(Internet Protocol)網、インターネット等の通信ネットワークである。ネットワークには、有線ネットワークが含まれていてもよいし、無線ネットワークが含まれていてもよい。
〔3.端末装置の構成例〕
図4は、実施形態に係る端末装置10の構成例を示す図である。端末装置10は、ユーザがページの閲覧に使用する情報表示装置(情報処理装置)である。端末装置10は、例えば、スマートフォン、タブレット、携帯電話等の通信端末である。通信機能を備えるのであれば、端末装置10は、パーソナルコンピュータ(ノートPC、デスクトップPC)、PDA(Personal Digital Assistant)等の情報処理端末であってもよい。この場合、情報処理端末も通信端末の一種である。端末装置10は、ネットワークを介して管理装置30と接続する。端末装置10は、図4に示すように、通信部11と、入力部12と、記憶部13と、出力部14と、制御部15と、を備える。なお、図4に示した構成は機能的な構成であり、ハードウェア構成はこれとは異なっていてもよい。
通信部11は、外部の装置と通信する通信インタフェースである。通信部11は、ネットワークインタフェースであってもよいし、機器接続インタフェースであってもよい。例えば、通信部11は、NIC(Network Interface Card)等のLANインタフェースであってもよいし、USB(Universal Serial Bus)ホストコントローラ、USBポート等により構成されるUSBインタフェースであってもよい。また、通信部11は、有線インタフェースであってもよいし、無線インタフェースであってもよい。通信部11は、端末装置10の通信手段として機能する。通信部11は、制御部15の制御に従って管理装置30と通信する。
入力部12は、外部から各種入力を受け付ける入力装置である。例えば、入力部12は、キーボードやマウスや操作キー等、ユーザが各種操作を行うための操作装置である。入力部12は、端末装置10の入力手段として機能する。なお、端末装置10にタッチパネルが採用される場合には、タッチパネルも入力部12に含まれる。この場合、ユーザは、指やスタイラスで画面をタッチすることにより各種操作を行う。
記憶部13は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、フラッシュメモリ、ハードディスク等のデータ読み書き可能な記憶装置である。記憶部13は、端末装置10の記憶手段として機能する。記憶部13は、ウェブブラウザ等のアプリケーションソフトのデータが格納されている。ユーザはアプリケーションソフトを介して管理装置30と通信する。
出力部14は、音、光、振動、画像等、外部に各種出力を行う装置である。出力部14は、端末装置10の出力手段として機能する。出力部14は、各種情報を表示する表示装置を備える。表示装置は、例えば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイである。なお、端末装置10にタッチパネルが採用される場合には、表示装置は入力部12と一体であってもよい。出力部14は、制御部15の制御に従って、画面に画像を表示する。
制御部15は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、端末装置10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部15は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
〔4.サービス提供サーバの構成例〕
次に、サービス提供サーバ20の構成について詳細に説明する。サービス提供サーバ20は、端末装置10等のクライアントコンピュータからの要求を処理するサーバ用ホストコンピュータ(以下、単に「サーバ」という。)である。サービス提供サーバ20は、PCサーバであってもよいし、ミッドレンジサーバであってもよいし、メインフレームサーバであってもよい。また、サービス提供サーバ20は、1つのサーバにより構成されていてもよいし、協働して処理を実行する複数のサーバにより構成されていてもよい。サービス提供サーバ20が複数のサーバで構成される場合、これらサーバの設置場所は離れていてもよい。設置場所が離れていたとしても、協働して処理を実行するのであれば、これらサーバは1つのサービス提供サーバとみなすことができる。
図5は、実施形態に係るサービス提供サーバ20の構成例を示す図である。サービス提供サーバ20は、通信部21と、記憶部22と、制御部23と、を備える。なお、図5に示した構成は機能的な構成であり、ハードウェア構成はこれとは異なっていてもよい。
通信部21は、外部の装置と通信する通信インタフェースである。通信部21は、ネットワークインタフェースであってもよいし、機器接続インタフェースであってもよい。例えば、通信部21は、NIC等のLANインタフェースであってもよいし、USBホストコントローラ、USBポート等により構成されるUSBインタフェースであってもよい。また、通信部21は、有線インタフェースであってもよいし、無線インタフェースであってもよい。通信部21は、サービス提供サーバ20の通信手段として機能する。通信部21は、制御部23の制御に従って端末装置10及び管理装置30と通信する。
記憶部22は、DRAM、SRAM、フラッシュメモリ、ハードディスク等のデータ読み書き可能な記憶装置である。記憶部22は、サービス提供サーバ20の記憶手段として機能する。記憶部22は、取得情報データベース221を記憶する。
取得情報データベース221は、サービス提供サーバ20がユーザにサービスを提供するにあたり取得したデータ(サービスデータ)を記憶するデータベースである。取得情報データベース221は、RDBであってもよいし、NoSQL等のハイパースケールなデータベース管理システムを使ったデータベースであってもよい。ハイパースケールなデータベース管理システムは、KVS等のNoSQLであってもよい。図6は、取得情報データベース221に格納される情報の一例を示す図である。図6に示した例では、取得情報データベース221は、データ分類、サービスデータ等の項目を有している。
「データ分類」は、サービスデータの種類を示す。データ分類は、例えば、“ユーザ情報”、商品の“販売情報”等、サービスデータの内容(意味)に着目した分類である。図6の例では、データ分類の項目には、“B1”、“B2”、“B3”等の値が格納されている。B1は、サービスデータD1の分類IDを示し、B2は、サービスデータD2の分類IDを示し、B3は、サービスデータD3の分類IDを示す。
「サービスデータ」は、サービス提供サーバ20がサービスの提供にあたり取得したデータを示す。図6の例では、サービスの項目には“D1”~“D3”等の概念的な情報が格納されているが、サービスデータの項目には、ユーザ情報や商品の販売情報等が格納されていてもよい。サービスデータは、ユーザ情報や商品の販売情報に限定されない。例えば、サービスデータはオンラインモールに出店しているストアの情報であってもよい。
図7は、ユーザ情報の一例を示す図である。ユーザ情報は、サービスデータの一例であり、ネットショッピングサービスを利用したユーザの情報を示す。ユーザ情報は、ユーザID、ユーザ名、性別、年齢、購入商品等の項目を有している。「ユーザID」は、ユーザの識別情報である。「ユーザ名」は、ユーザIDで示されるユーザの名前である。「性別」は、ユーザIDで示されるユーザの性別である。「年齢」は、ユーザIDで示されるユーザの年齢である。「購入商品」は、ユーザIDで示されるユーザがネットショッピングサービスを使って購入した商品である。
図8は、販売情報の一例を示す図である。販売情報は、サービスデータの一例であり、ネットショッピングサービスで提供される商品の販売状況を示す。販売情報は、商品ID、販売数等の項目を有している。「商品ID」は、ネットショッピングサービスで提供される商品の識別情報である。「販売数」は、商品IDで示される商品の販売数である。
制御部23は、コントローラであり、例えば、CPU、MPU等のプロセッサによって、サービス提供サーバ20内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部23は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現されてもよい。
〔5.管理装置の構成例〕
次に、管理装置30の構成について詳細に説明する。管理装置30は、端末装置10等のクライアントコンピュータからの要求を処理するサーバ用ホストコンピュータ(以下、単に「サーバ」という。)である。管理装置30は、PCサーバであってもよいし、ミッドレンジサーバであってもよいし、メインフレームサーバであってもよい。また、管理装置30は、1つのサーバにより構成されていてもよいし、協働して処理を実行する複数のサーバにより構成されていてもよい。管理装置30が複数のサーバで構成される場合、これらサーバの設置場所は離れていてもよい。設置場所が離れていたとしても、協働して処理を実行するのであれば、これらサーバは1つの管理装置とみなすことができる。
図9は、実施形態に係る管理装置30の構成例を示す図である。管理装置30は、通信部31と、記憶部32と、制御部33と、を備える。なお、図9に示した構成は機能的な構成であり、ハードウェア構成はこれとは異なっていてもよい。
通信部31は、外部の装置と通信する通信インタフェースである。通信部31は、ネットワークインタフェースであってもよいし、機器接続インタフェースであってもよい。例えば、通信部31は、NIC等のLANインタフェースであってもよいし、USBホストコントローラ、USBポート等により構成されるUSBインタフェースであってもよい。また、通信部31は、有線インタフェースであってもよいし、無線インタフェースであってもよい。通信部31は、管理装置30の通信手段として機能する。通信部31は、制御部33の制御に従って端末装置10と通信する。
記憶部32は、DRAM、SRAM、フラッシュメモリ、ハードディスク等のデータ読み書き可能な記憶装置である。記憶部32は、管理装置30の記憶手段として機能する。
記憶部32は、管理情報データベース321、共有情報データベース322、重要情報データベース324を記憶する。なお、記憶部32はデータを長期記憶するための記憶領域を複数有している。記憶領域は、例えば、フラッシュメモリ、ハードディスク等により構成される。複数ある記憶領域のうちの少なくとも1つは、アクセス速度が所定の速度以上の高速記憶領域323となっている。重要情報データベース324は、高速記憶領域323に格納されている。
管理情報データベース321は、サービス提供サーバ20が保持しているサービスデータを管理装置30側で管理するための情報を記録するデータベースである。管理情報データベース321は、RDBであってもよいし、ハイパースケールなデータベース管理システムを使ったデータベースであってもよい。図10は、管理情報データベース321に格納される情報の一例を示す図である。図10に示した例では、管理情報データベース321は、システムID、データ分類、流通量、重要度等の項目を有している。
「システムID」は、管理装置30が管理するシステムの識別情報を示す。図10の例では、システムIDの項目には“201”、“202”、“203”等の値が格納されている。“201”は、サービス提供サーバ201を示し、“202”は、サービス提供サーバ202を示し、“203”は、サービス提供サーバ203を示す。
「データ分類」は、サービスデータの種類を示す。より具体的には、データ分類は、管理装置30が管理する各システムが現在保有しているサービスデータの分類を示す。データ分類は、例えば、“ユーザ情報”、商品の“販売情報”等、サービスデータの内容(意味)に着目した分類である。図10の例では、データ分類の項目には、“B11”、“B12”、“B13”等のIDが格納されている。データ分類の項目に格納されるIDは、複数のシステムをまたいで一意である。
「流通量」は、該当のデータ分類に分類されるサービスデータのシステム間でのやり取りの量を示す。例えば、流通量は、該当のサービスデータの送信量或いは受信量を示す。図10の例では、流通量の項目には“876”、“456”等の値が格納されている。“876”は、サービス提供サーバ201から他のサービス提供サーバ20に、データ分類B11に属すサービスデータが876回送信されたことを示す。“456”は、サービス提供サーバ201から他のサービス提供サーバ20に、データ分類B12に属すサービスデータが456回送信されたことを示す。流通量の項目は、過去所定期間(例えば、過去1ヶ月間)の流通量であってもよい。
「重要度」は、該当のデータ分類に分類されるサービスデータの重要性の度合いを示す。例えば、重要度は、他のシステムに必要とされる可能性の高さを示す。図10の例では、流通量の項目には“3”、“10”等の値が格納されている。1行目の“3”は、データ分類B11に属すサービスデータの重要度が10段階中の3であることを示す。2行目の“10”は、データ分類B12に属すサービスデータの重要度が10段階中の10であることを示す。
共有情報データベース322は、複数のシステムが共有する情報(流通用データ)を記録するデータベースである。共有情報データベース322は、RDBであってもよいし、ハイパースケールなデータベース管理システムを使ったデータベースであってもよい。共有情報データベース322は、各サービス提供サーバ20がアクセス可能である。図11は、共有情報データベース322に格納される情報の一例を示す図である。図11に示した例では、共有情報データベース322は、データ分類、共有データ等の項目を有している。「データ分類」は、管理情報データベース321のデータ分類と同様である。
「共有データ」は、それぞれサービスを提供する複数のシステムで共有されるサービスデータを示す。図11の例では、共有データの項目には“D11”~“D31”等の概念的な情報が格納されているが、共有データの項目には、図7に示すようなユーザ情報や図8に示すような販売情報等が格納されていてもよい。
重要情報データベース324は、重要度の高いサービスデータ(例えば、重要度が所定の値以上の流通用データ)を記録するデータベースである。重要情報データベース324は、RDBであってもよいし、ハイパースケールなデータベース管理システムを使ったデータベースであってもよい。重要情報データベース324は、管理装置30が備える長期記憶のための複数の記憶領域のうち最も高速な記憶領域(高速記憶領域)に保存される。図12は、重要情報データベース324に格納される情報の一例を示す図である。図12に示した例では、重要情報データベース324は、データ分類、重要データ等の項目を有している。「データ分類」は、管理情報データベース321のデータ分類と同様である。
「重要データ」は、重要度が所定の値以上(例えば、10段階で8以上)のサービスデータ(流通用データ)を示す。図12の例では、重要データの項目には“D12”~“D32”等の概念的な情報が格納されているが、重要データの項目には、図7に示すようなユーザ情報や図8に示すような販売情報等が格納されていてもよい。
図9に戻り、制御部33は、コントローラであり、例えば、CPU、MPU等のプロセッサによって、管理装置30内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部33は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現されてもよい。
制御部33は、図9に示すように、取得部331と、判別部332と、管理部333と、課金部334と、を備える。制御部33を構成するブロック(取得部331~課金部334)はそれぞれ制御部33の機能を示す機能ブロックである。これら機能ブロックはソフトウェアブロックであってもよいし、ハードウェアブロックであってもよい。例えば、上述の機能ブロックが、それぞれ、ソフトウェア(マイクロプログラムを含む。)で実現される1つのソフトウェアモジュールであってもよいし、半導体チップ(ダイ)上の1つの回路ブロックであってもよい。勿論、各機能ブロックがそれぞれ1つのプロセッサ或いは1つの集積回路であってもよい。機能ブロックの構成方法は任意である。なお、制御部33は上述の機能ブロックとは異なる機能単位で構成されていてもよい。
取得部331は、複数のサービス提供サーバ20がそれぞれ取得したデータのサービス提供サーバ20間の流通量に関する情報を取得する。
判別部332は、それぞれサービスを提供する複数のサービス提供サーバ20がサービスの提供にあたり取得したデータのうち所定の基準を満たすデータを判別する。このとき、判別部332は、サービス提供サーバ20が取得したデータのうち複数のサービス提供サーバ20中の他のサービス提供サーバ20が必要とするデータを判別する。例えば、判別部332は、サービス提供サーバ20が取得したデータのうち流通量に基づき定められた基準を満たすデータを判別する。より具体的には、判別部332は、サービス提供サーバ20が取得したデータのうち流通量が所定量以上のデータ分類に属するデータを判別する。或いは、判別部332は、サービス提供サーバ20が取得したデータのうち重要度が一定以上のデータを判別する。
管理部333は、所定の基準を満たすデータのサービス提供サーバ20間の流通に関する処理を実行する。このとき、管理部333は、判別部332が判別したデータに関する情報を他のサービス提供サーバ20に通知する。例えば、管理部333は、流通量に基づき定められた基準を満たすデータのサービス提供サーバ20間の流通に関する処理を実行する。より具体的には、管理部333は、流通量が所定量以上のデータ分類に属するデータのサービス提供サーバ20間の流通に関する処理を実行する。また、管理部333は、重要度が一定以上のデータのサービス提供サーバ20間の流通に関する処理を実行してもよい。
また、管理部333は、所定の基準を満たすデータを複数のサービス提供サーバ20がいずれもアクセス可能なデータベースに記憶する、また、管理部333は、所定の基準を満たすデータを、該データを長期記憶するための複数の記憶領域のうち最も高速な記憶領域に保存する。また、管理部333は、所定の基準を満たすデータの保存期間を延長するための処理を実行する。
また、管理部333は、複数のサービス提供サーバ20中の所定のサービス提供サーバ20に対し所定の基準を満たすデータを送信する。
課金部334は、サービス提供サーバ20を運営する運営者に対する課金のための処理を実行する。例えば、課金部334は、管理部333が所定のサービス提供サーバ20に対してデータを送信した場合には、所定のサービス提供サーバ20を運営する運営者に対する課金のための処理を実行する。
〔6.管理装置の処理フロー〕
次に、管理装置30が実行する処理の手順について説明する。管理装置30は登録処理と送信処理と課金処理とを実行する。管理装置30はマルチタスクOSを備え、これらの処理を並行して実行可能である。
〔6-1.登録処理〕
最初に登録処理を説明する。図13は、登録処理の一例を示すフローチャートである。登録処理は、管理情報データベース321に管理情報を登録する処理である。管理装置30は、一定時間間隔(例えば、30分間隔)で登録処理を実行する。
まず、管理装置30は、サービス提供サーバ20それぞれに対しサービスデータに関する情報の送信要求を行う(ステップS11)。例えば、管理装置30は、サービス提供サーバ20が保持しているサービスデータの種類の情報(データ分類の情報)やサービスデータのシステム間の流通量に関する情報を取得する。
続いて、管理装置30は、要求を行った全てのサービス提供サーバ20から情報を受信したか判別する(ステップS12)。情報を受信していないサービス提供サーバ20が1つでもある場合(ステップS12:No)、管理装置30は、全てのサービス提供サーバ20から情報を受信するまでステップS12を繰り返す。
全てのサービス提供サーバ20から情報を受信した場合(ステップS12:Yes)、管理装置30は、サービス提供サーバ20から取得した情報に基づいて、サービスデータの流通量を判別する(ステップS13)。このとき、管理装置30は、データ分類ごとに流通量を判別する。
また、管理装置30は、サービス提供サーバ20から取得した情報に基づいて、サービスデータの重要度を判別する(ステップS14)。このとき、管理装置30は、データ分類ごとに重要度を判別する。
そして、管理装置30は、ステップS13及びステップS14で取得した情報を、サービス提供サーバ20から取得した情報(例えば、データ分類の情報)とともに管理情報データベース321に登録する(ステップS15)。
続いて、管理装置30は、管理情報データベース321に登録された情報に基づいてサービス提供サーバ20にレコメンドを行う(ステップS16)。例えば、管理装置30は、管理情報データベース321に登録された情報に基づいて流通量が800以上のデータ分類を判別する。図10の例であれば、データ分類B11、B21、B31が流通量800以上である。管理装置30は、データ分類B11、B21、B31のサービスデータの流通量が多い旨、サービス提供サーバ201、202、203に通知する。また、管理装置30は、管理情報データベース321に登録された情報に基づいて重要度が8以上のデータ分類を判別する。図10の例であれば、データ分類B12、B22、B32が重要度8以上である。管理装置30は、データ分類B12、B22、B32のサービスデータの重要度が高い旨、サービス提供サーバ201、202、203に通知する。
また、管理装置30は、多くのシステムで必要となりそうなサービスデータを予めサービス提供サーバ20から取得して流通用データとしてデータベースに登録する(ステップS17)。例えば、管理装置30は、管理情報データベース321に登録されているデータ分類のうち流通量が所定量以上(例えば、他のシステムへの送信量が800回以上)のデータ分類に属するサービスデータを流通用データとして判別する。また、管理装置30は、管理情報データベース321に登録されているデータ分類のうち重要度が一定以上(例えば、10段階の8以上)のサービスデータを流通用データとして判別する。そして、管理装置30は、判別したサービスデータを保持するサービス提供サーバ20から該当のサービスデータを取得して共有情報データベース322或いは重要情報データベース324に登録する。
登録が完了したら、管理装置30は、登録処理を終了する。
〔6-2.送信処理〕
最初に送信処理を説明する。図14は、送信処理の一例を示すフローチャートである。送信処理は、サービス提供サーバ20にサービスデータを送信する処理である。管理装置30は、電源が投入されると、送信処理を開始する。
まず、管理装置30は、サービス提供サーバ20からサービスデータのデータ分類の情報を含むサービスデータのリクエスト(送信要求)を受信したか判別する(ステップS21)。リクエストを受信していない場合(ステップS21:No)、管理装置30は、リクエストを受信するまでステップS21を繰り返す。
リクエストを受信した場合(ステップS21:Yes)、管理装置30はサービス提供サーバ20から要求されたサービスデータを取得する(ステップS22)。要求されたサービスデータが共有情報データベース322或いは重要情報データベース324に登録されているのであれば、管理装置30は、共有情報データベース322或いは重要情報データベース324から該当のサービスデータを取得する。要求されたサービスデータが共有情報データベース322或いは重要情報データベース324に登録されていないのであれば、管理装置30は、要求されたサービスデータを保持するサービス提供サーバ20から該当のサービスデータを取得する。
そして、管理装置30は、ステップS23で取得したサービスデータをサービス提供サーバ20に送信する(ステップS23)。送信が完了したら、管理装置30は送信処理を終了する。
〔6-3.課金処理〕
次に、課金処理について説明する。図15は、課金処理の一例を示すフローチャートである。課金処理は、システムの運営者へ課金を行うための処理である。管理装置30は、電源が投入されると、課金処理を開始する。
まず、管理装置30は、課金日が到来したか判別する(ステップS31)。課金日は、複数の運営者で同一の日であってもよい。例えば、課金日は月末であってもよい。課金日が到来していない場合(ステップS31:No)、管理装置30は、課金日が到来するまでステップS31の処理を繰り返す。
課金日が到来している場合(ステップS31:Yes)、管理装置30は、サービスデータの送信履歴等に基づいて課金額を算出する(ステップS32)。管理装置30は、サービスデータの送信回数に基づいて課金額を算出してもよい。
そして、管理装置30は、システム(サービス提供サーバ20)の運営者に対する課金処理を実行する(ステップS33)。例えば、管理装置30は、課金額が記載された請求書の発行処理や通知利用者からの入金の確認処理等を行う。
課金の処理が完了したら、管理装置30はステップS31に戻り、課金日の到来を待機する。
〔7.変形例〕
上述の実施形態は一例を示したものであり、種々の変更及び応用が可能である。
また、上述の実施形態では、管理装置30は、所定の基準を満たすサービスデータ(例えば、流通量或いは重要度が一定以上のデータ)を共有情報データベース322或いは重要情報データベースに登録した。しかし、管理装置30は、所定の基準を満たすサービスデータの保存期間を延長するための処理を実行してもよい。例えば、管理装置30は、該当のサービスデータを保有するサービス提供サーバ20に対し、該当のサービスデータの保存期間を延長(例えば、1年から3年に延長)するよう命令してもよい。単純に、管理装置30が、自身が管理するサービスデータの保存期間を延長してもよい。
例えば、上述の実施形態では、管理装置30は、流通量等に基づいてサービスデータの重要度を判別したが、重要度の判別方法は上記に限定されない。例えば、管理装置30は、サービス提供サーバ20から、一定期間毎(例えば、1ヶ月毎)に、サービスの提供に係る業績の情報(例えば、KPI(Key Performance Indicator))を取得する。そして、所定のサービスデータの提供前後での業績の変化に基づいて所定のサービスデータの重要度を判別してもよい。
また、上述の実施形態では、管理装置30は、サービスデータの送信回数等に基づき運営者への課金額を算出した。しかし、管理装置30は、サービスデータの提供前後での業績の変化に基づいて課金額を算出してもよい。
また、上述の実施形態では、管理情報データベース321は一定時間間隔で更新されるものとした。管理情報データベース321は、特定のサービスデータがサービス提供サーバ20のデータベースに登録されたタイミングで更新されてもよい。例えば、特定のサービスデータが取得情報データベース221に登録された場合に、その登録の通知をサービス提供サーバ20から受けて管理装置30が更新してもよい。共有情報データベース322及び重要情報データベース324も、特定のサービスデータがサービス提供サーバ20のデータベースに登録されたタイミングで更新されてもよい。
本実施形態の管理装置30を制御する制御装置は、専用のコンピュータシステムによって実現してもよいし、通常のコンピュータシステムにより実現してもよい。例えば、上述の動作を実行するためのプログラムを、光ディスク、半導体メモリ、磁気テープ、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に格納して配布し、該プログラムをコンピュータにインストールし、上述の処理を実行することによって制御装置を構成してもよい。制御装置は、管理装置30の外部の装置(例えば、パーソナルコンピュータ)であってもよいし、内部の装置(例えば、制御部33)であってもよい。また、上記プログラムをインターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、OS(Operating System)とアプリケーションソフトとの協働により実現してもよい。この場合には、OS以外の部分を媒体に格納して配布してもよいし、OS以外の部分をサーバ装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。
また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔8.ハードウェア構成〕
実施形態及び変形例に係る管理装置30は、例えば図16に示すような構成のコンピュータ1000によっても実現可能である。図16は、管理装置30の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU(Central Processing Unit)1100、RAM1200、ROM1300、HDD(Hard Disk Drive)1400、通信インタフェース(I/F)1500、入出力インタフェース(I/F)1600、及びメディアインタフェース(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インタフェース1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
CPU1100は、入出力インタフェース1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インタフェース1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インタフェース1600を介して出力装置へ出力する。
メディアインタフェース1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインタフェース1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る管理装置30として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部33を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔9.効果〕
本実施形態によれば、管理装置30は、それぞれサービスを提供する複数のシステムがサービスの提供にあたり取得したデータのうち、所定の基準を満たすデータを判別する。そして、管理装置30は、所定の基準を満たすデータのシステム間の流通に関する処理を実行する。例えば、管理装置30は、システムが取得したデータのうち複数のシステム中の他のシステムが必要とするデータを判別し、判別したデータに関する情報を他のシステムに通知する。これにより、各システムは、他のシステムが保持するサービスデータの認知及び取得が容易となるので、サービス間の連携が容易になる。
また、管理装置30は、複数のシステムがそれぞれ取得したデータのシステム間の流通量に関する情報を取得する。そして、管理装置30は、システムが取得したデータのうち流通量に基づき定められた基準を満たすデータを判別する。管理装置30は、流通量に基づき定められた基準を満たすデータのシステム間の流通に関する処理を実行する。例えば、管理装置30は、システムが取得したデータのうち流通量が所定量以上のデータ分類に属するデータを判別し、流通量が所定量以上のデータ分類に属するデータのシステム間の流通に関する処理を実行する。これにより、各システムは、他のシステムが保持するサービスデータのうち流通量が多いデータの認知が容易となる。
また、管理装置30は、システムが取得したデータのうち重要度が一定以上のデータを判別する。管理装置30は、重要度が一定以上のデータのシステム間の流通に関する処理を実行する。これにより、各システムは、他のシステムが保持するサービスデータのうち重要度が高いデータの認知が容易となる。
管理装置30は、所定の基準を満たすデータを複数のシステムがいずれもアクセス可能なデータベースに記憶する。これにより、各システムは、他のシステムが保持するサービスデータの取得が容易となる。
管理装置30は、所定の基準を満たすデータを、該データを長期記憶するための複数の記憶領域のうち最も高速な記憶領域に保存する。これにより、各システムは、他のシステムが保持するサービスデータを素早く取得できる。
管理装置30は、所定の基準を満たすデータの保存期間を延長するための処理を実行する。これにより、各システムは、他のシステムが保持するサービスデータを長期にわたって取得できる。
管理装置30は、複数のシステム中の所定のシステムに対し所定の基準を満たすデータを送信する。管理装置30は、所定のシステムに対してデータを送信した場合には、所定のシステムを運営する運営者に対する課金のための処理を実行する。これにより、各システムの運営者は、データの提供の対価を得ることができる。多くの運営者がデータを提供するようになるので、システム間のデータの流通が活発になる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、管理部は、管理手段や管理回路に読み替えることができる。