説明

情報利用システム

【課題】多数の一般ユーザーが保有しているデータやプログラムの有効利用を飛躍的に高められることを可能とする。
【解決手段】多数の一般ユーザーが自身で保有しているデータをサーバー内にマスタデータとして登録するだけで、その登録された一般ユーザーのデータを自動API生成手段12,32によりデータベース化するとともに適宜の入出力が可能な状態となるようにAPI化し、そのAPI化したデータベースを第三者が容易に閲覧又は利用可能となるようにネットワーク上に公開し、元々一般ユーザーの手元に秘蔵されようとしていたデータを開発ユーザーやサイト運営者により広範囲に利用可能として情報の拡散を図るように構成したものである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザーが保有しているデータを第三者が容易に閲覧又は利用可能とするようにした情報利用システムに関する。
【背景技術】
【0002】
近年、インターネット経由で情報を利用することが多くの分野において広がりつつあるが、企業や個人で保有しているデータやプログラムをウェブサイトで広く利用可能とするためには、それらのデータやプログラムをAPI(Application Program Interface)化して公開されていることが望ましい。データやプログラムをAPI化したウェブAIPが公開されていれば、有用で高機能なコンテンツがインターネット経由で容易に取得されることとなる。
【0003】
例えば、グルメサイトでレストラン情報、地図サイトで地図情報、交通情報サイトで時刻情報、というように複数のサイトに分散されていた関連情報が、それぞれのサイトにおいてウェブAPIを使用して公開されていれば、別のサイト運営者側からの提供要求に対して容易に対応することが可能となるため、マッシュアップ・サイト等の統合ウェブページでは、各サイトの情報を一つのウェブページで利用可能とし、ウェブページの利便性を高めるようにしている。
【0004】
しかしながら、元のデータであるマスタデータを集めるには、ユーザーを集めるためのサイトを立ち上げてデータを投稿してもらうという膨大な作業が必要となる。また、ウェブAPIを公開するためには、例えばサーバー内にデータベースを構築して自分のマスタデータに合うテーブルを特定の操作言語で作成したり、自作のプログラムを設置してプログラムを実行させるためのファイルを設定したり、マスタデータの検索機能を設定するなどの作業を行わねばならないし、プログラムに対する入出力などの技術的知識も必要となる。このようにデータやプログラムのAPI化には、高度な技術知識と手間がかかることから利用の範囲が限定されており、特に、一般多数のユーザーが保有しているデータやプログラムを有効利用することができなくなっているのが現状である。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002−55819号公報
【特許文献2】特開2002−223186号公報
【特許文献3】特開2001−306417号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
以上の問題点に鑑みて本発明は、多数の一般ユーザーが保有しているデータやプログラムを有効的に利用して活用することができるようにした情報利用システムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため本発明は、ユーザーによりサーバー内に入力されたマスタデータを第三者に閲覧又は利用可能な状態でアクセス可能とするAPIを設計・公開する自動API生成手段を備えたものであって、前記自動API生成手段は、入力と出力との間における処理内容を前記ユーザーに提示してAPI仕様を決定するAPI仕様決定機能と、その決定されたAPI仕様に基づいてデータベースを自動で作成するデータベース作成機能と、データの全部又は一部をネットワーク上に公開するAPI発信機能と、を備えた構成になされている。
【0008】
このような構成を有する本発明によれば、多数の一般ユーザーが自身で保有しているデータが、自動API生成手段のAPI仕様決定機能とデータベース作成機能とを利用して容易にAPI化されるとともに、第三者による閲覧又は利用が容易なデータ又はプログラムとしてネットワーク上に公開される。従って、元々は一般ユーザーの手元に秘蔵されようとしていたデータが、開発ユーザーやサイト運営者によって容易かつ広範囲に利用されることとなり、情報の拡散が飛躍的に図られるようになっている。
【0009】
また本発明においては、前記自動API生成手段によりAPI化して作成されたデータを閲覧又は利用したユーザーに対して、そのユーザーが閲覧又は利用したデータの内容に対応した内容の広告を配信する広告配信手段を備えることが可能である。
【0010】
このような構成を有する本発明によれば、特定の情報を必要としているユーザーに対して、当該ユーザーが必要としている情報に対応した内容の広告が配信されることとなり、広告配信者にとっては無駄な広告配信が低減され、ユーザーにとっても必要な情報がさらに得られることとなる。
【0011】
また本発明においては、前記自動API生成手段により作成されたAPI仕様やデータベースの閲覧又は利用の頻度に対応して、そのAPI仕様やデータベースの設計者又当該データベースのデータ提供者への対価を決定する利用者還元手段を備えることが可能である。
【0012】
このような構成を有する本発明によれば、閲覧又は利用の頻度が高いデータを提供したユーザー又はAPI仕様やデータベースの設計者に対して、提供したAPI仕様やデータベース設計やデータの閲覧又は利用の頻度に対応した対価が支払われることとなり、一般ユーザーから、より利用度の高い価値あるデータがより多く提供されることとなる。
【0013】
また本発明においては、利用者還元手段を利用するものであって、個々のユーザーが所有する個別のマスタデータを適宜に集合させるようにAPI設計・公開し、そのAPI化した各データ集合体をネットワーク上で公開して流通可能とする一方、それらの各データ集合体に対する対価を前記利用者還元手段を用いて決定する構成を備えることが可能である。そして、このときのデータ集合体は、メタデータ、テンプレート、又はマッシュアップソフトウェアとすることが可能である。
【0014】
このような構成を有する本発明によれば、テンプレート等を一単位としたデータ集合体の売買が可能となるため、各データ集合体を受け渡す種々の段階において多様な収益性が設定可能となる。
【発明の効果】
【0015】
以上のように本発明は、多数の一般ユーザーが自身で保有しているデータをサーバー内にマスタデータとして登録するだけで、その登録された一般ユーザーのデータが適宜の出力状態となるように自動API生成手段により設計・生成・公開されるAPIによって、データを第三者が容易に閲覧又は利用可能となるようにネットワーク上に公開し、元々一般ユーザーの手元に秘蔵されようとしていたデータを開発ユーザーやサイト運営者により広範囲に利用可能として情報の拡散を図るように構成したものであるから、多数の一般ユーザーが保有しているデータやプログラムの有効利用が飛躍的に高められることとなり、ウェブページの利便性等が大幅に向上されることから、従来のような複数サイトに対するユーザーの投稿などの社会的無駄をなくすことができる。さらに、ネット接続可能な家電製品等による利用が容易になることから、将来の例えばユビキタス社会に対する貢献も可能となるとともに、例えば決済機能を有するシステムを構築しておけば、API化されたデータや、それを利用して作成されたツール及びプログラム等を、売買サイトなどを介在した電子商取引を実現することもでき、API利用の拡大をさらに図ることができる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態における情報利用システムを利用したネットワーク構成を表したブロック図である。
【図2】図1に表された情報利用システムに用いられているAPI作成サーバーのハード構成の概略を表したブロック図である。
【図3】図1に表された情報利用システムに用いられているAPI作成サーバーによるデータ集合体の動きを表したブロック図である。
【図4】図1及び図3に表された情報利用システムの具体的構成を表したブロック図である。
【図5】図1及び図3に表された情報利用システムを用いたデータ集合体のAPI化及び公開の全体手順を表したフロー図である。
【図6】API基本事項に関する入力画面の一例を表した模式図である。
【図7】API入出力パラメータに関する入力画面の一例を表した模式図である。
【図8】API処理内容に関する入力画面の一例を表した模式図である。
【図9】既存テーブルへのデータ保存を指定する処理仕様入力画面の一例を表した模式図である。
【図10】既存テーブルからデータ抽出を指定する処理仕様入力画面の一例を表した模式図である。
【図11】APICによる自動デーブル作成によるデータ保存を指定する処理仕様入力画面の一例を表した模式図である。
【図12】自動デーブル作成によるデータ抽出を指定する処理仕様入力画面の一例を表した模式図である。
【図13】構造体を定義する機能画面の一例を表した模式図である。
【図14】条件分岐を指定する機能画面の一例を表した模式図である。
【図15】図1〜図5に表された情報利用システムの具体的な使用例としての第1の実施例を表したブロック図である。
【図16】図1〜図5に表された情報利用システムの具体的な使用例としての第2の実施例を表したブロック図である。
【図17】図1〜図5に表された情報利用システムのさらに具体的な使用例としての第3の実施例を表したブロック図である。
【図18】図17に表された広告配信手段の具体的構成を説明した情報利用システムのブロック図である。
【図19】図17に表された利用者還元手段の具体的構成を説明した情報利用システムのブロック図である。
【図20】データ集合体の構成及びその利用還元の流れを説明した情報利用システムのブロック図である。
【図21】データ集合体の構成及びその利用還元の流れを概念的に表したブロック図である。
【図22】データ集合体が移動する各段階において広告が合成される場合における利用還元の流れを概念的に表したブロック図である。
【図23】利用者還元システム/課金システムにより行われる課金及び支払の流れを概念的に表したブロック図である。
【図24】API作成サーバーを使用した情報利用システムに、テンプレートに関する課金システムを備えた実施形態を機能的に表したブロック図である。
【図25】データ集合体の構成及びその利用還元の流れにおける情報利用システムの位置付けを表したブロック図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態を図面に基づいて詳細に説明するが、まず本発明にかかる自動API生成手段を備えた情報利用システムの全体構成を説明する。
【0018】
図1に示された実施形態にかかる情報利用システムは、本実施形態の特徴である自動API生成手段を備えたAPI作成サーバー1と、当該API作成サーバー1に対して適宜のネットワーク(公衆回線)NWを介して接続される多数の一般ユーザー、すなわち後述するデータ提供者やマスタユーザー等を含む一般利用者2の端末2a,2b,・・・,2nと、から構成されている。端末2a,2b,・・・,2nは、パソコンや携帯電話等の通信可能な情報処理機器から構成されるものであるが、API作成サーバー1は次のような構成になされている。
【0019】
すなわち、図2に示されているように、上述したAPI作成サーバー1において採用されたハードウェアは、当該API作成サーバー1のシステム全体を統括的に制御するようにプログラムされた主制御手段(以下、CPUと略称する)1aに記憶装置1bが接続されたものである。上記CPU1aには、また入出力制御部1cを介してキーボードやマウス等のポインティングデバイスからなる入力装置1d、入力データのモニタに用いる入力装置1e、及び各種演算結果その他の検索データを出力する表示装置1fが接続されている。
【0020】
前記CPU1aの内部メモリ内には、OS(Operating System)等の制御プログラムが格納されているとともに、マスタデータをAPI(Application Program Interface)化する本実施形態にかかる自動API生成プログラム、及び所要データが格納されている。また、記憶装置1bは、ハードディスクや光ディスク、或いはフレキシブルディスク等のストレージ手段であり、個人や企業からなる一般ユーザー(マスタユーザー)2に関するデータ群がマスタデータとして登録されている。
【0021】
すなわち、図3に示されているように、上述したAPI作成サーバー1内に設けられた記憶手段(後述)に格納されたデータ群11には、個人や企業からなる一般ユーザー(マスタユーザー)2のマスタデータが、後述するようにして生成されるAPI(Application Program Interface)がアクセス可能な状態のデータベースとして登録されている。また、API作成サーバー1内には、ユーザーが指定する仕様やマスタデータ構造を基にAPIを作成する自動API生成手段としての自動API生成プログラム(自動API生成ツール;以下においてAPIC(Application Program Interface Creator)と略称する。)12が設けられている。
【0022】
この自動API生成ツール(APIC)が設けられたAPI作成サーバー1を使用する情報利用システムを、以下においてAPICシステムと呼ぶこととする。自動API生成ツール12は、個人や企業からなる一般ユーザー(マスタユーザー)2が保有しているマスタデータを、後述するようにして第三者に閲覧又は利用可能な適宜の仕様のマスタデータにAPI化して登録し、或いは公開する機能を有するものであって、少なくともマスタデータのAPI化に関するアシスト機能、及びデータベースの作成・入出力設計を自動又は対話形式で行う構成を有している。
【0023】
また、そのAPI作成サーバー1内に設けられた自動API生成ツール12は、そのまま他のユーザーサーバー3内に移植可能となるように構成されている。このように他のユーザーサーバー3に移植された自動API生成ツール32によって、当該他のユーザーサーバー3内のデータ群31に登録されたマスタデータが、第三者に閲覧又は利用可能な適宜の設計仕様のデータベースにAPI化されて登録・公開されるようになっている。
【0024】
上述したように、API作成サーバー1及び他のユーザーサーバー3に設けられた自動API生成ツール12,32からは、第三者によって容易に利用される形式で、例えば関数、プロシージャ、変数、データ構造、又はインタプリタなどに関してAPI化されたプログラムからデータが出力される構成になされており、これによって、例えばマッシュアップ・サイト等の統合ウェブページからの要求に対応してユーザーのデータベースを容易に提供することが可能となる。なお、これらの自動API生成ツール12,32は、データベースの作成及び提供機能のみならず、登録されたマスタデータに関する種々のプログラム機能を作成及び提供するように構成することも可能である。
【0025】
次に、上述した自動API生成ツール12,32、及びその自動API生成ツール12,32を利用したAPICシステム(情報利用システム)の機能を、システム全体の処理動作動の流れに基づいて説明する。例えば、図4に示されたAPICサイト(Application Program Interface Creator Site)は、本発明の一実施形態にかかる自動API生成ツール12,32を備えたAPICシステムにより形成されたサイトであるが、そのAPICサイトを利用したデータの流れに従って、前記自動API生成ツール12,32と、その自動API生成ツール12,32を利用した情報利用システムの機能を説明する。
【0026】
図4及び図5に示されているように、まず最初のステップ1(ST1)として、マスタユーザーMUによるAPICサイトへのアクセス(ユーザークセス)が行われる。マスタユーザーMUは、メタデータ等からなるデータを保有しているユーザーであるが、そのマスタユーザーMUがAPICサイトにアクセスすることにより、次に説明するような自動API生成ツールのアシスト機能を利用してAPICサイトのサーバー(API作成サーバー)内に自己が所有するマスタデータ記憶手段にデータベースとして登録され公開されるようになっている。
【0027】
なお、このときのマスタユーザーMUによるデータ入力は、例えば次のa.〜c.のような一般的になじみのある形式で行われる。
【0028】
a.直接入力(データベース・テーブルを作成して直接入力)
これは、ウェブサイト画面やローカル端末アプリケーションなどのように、APICシステムに接続可能な様々なソフトウェア(以下、APIC接続端末ソフトウェアと呼び、マッシュアップソフトウェアを含むものとする。)上に、データベース・テーブル作成画面を表示させて行うもので、ユーザーは、任意のテーブル数を持つデータベース、任意のフィールド(カラム)数を持つテーブルを作成し、データベース名称、テーブルの名称、フィールドの名称、データ幅、属性等を必要に応じて定義する。そして、そのユーザーが定義した内容に従って、データベースおよびテーブルを作成するためのデータベース操作言語のコードを動的に生成して実行させ、APICサーバー内にユーザー定義のデータベースを構築する。このような操作は、必要なテーブル又はデータベース数分にわたって繰り返されるか又は同時に行われる。
【0029】
b.CSV、SQL、JSON、XML、又は一般的な表計算ソフト用ファイルやデータベースソフト用ファイル等からのインポート
これは、APIC接続端末ソフトウェア上に、ファイルのアップロード画面を表示させて、ユーザーが任意の1つまたは複数のファイルをアップロードするものであり、その際にデータベースやテーブルの名称等を設定する。すなわち、アップロードされたファイルの種類を判別し、データ構造を解析した後に、その解析したデータ構造に基づいて、データベースおよびテーブルを作成するためのデータベース操作言語のコードを動的に生成・実行してAPICサーバー内にユーザー定義のデータベースを構築する。このような操作は、必要なファイル数分にわたって繰り返されるか又は複数ファイルが同時に処理される。
【0030】
c.既存のAPIC用テンプレートを利用しての入力
ここで、既存APIC用テンプレートとは、既に作成済みでテンプレートとして公開されているデータベース仕様やAPI仕様を指すものであり、APIC接続端末ソフトウェア上に、テンプレート選択画面が表示されると、ユーザーは任意のテンプレートを選択し、データベースやテーブルの名称等を設定する。そして、そのテンプレートに基づいて、データベースおよびテーブルを作成するためのデータベース操作言語のコードを動的に生成・実行してAPICサーバー内にユーザー定義のデータベースを構築する。これを必要なテンプレート数分繰り返すか又は複数テンプレートを同時に処理する。
【0031】
また、このときのマスタユーザーMUによるデータ入力は、本発明にかかる自動API生成ツール(APIC)を使用した、次のような形式d.で行うことができる。
【0032】
d.APIの入出力から作成
この場合には、まずAPIC接続端末ソフトウェア上に、APIに対する入出力を作成する画面が後述するようにして表示され、ユーザーは、画面上でAPIの入出力に必要な要素(エレメント、カラム、フィールド)を設定する。APICシステムは、設定された要素の数や属性(データ幅、データ型など)をプログラムで動的に解析し、データベース操作言語のコードを動的に生成・実行してAPICサーバー内にユーザー定義のデータベースを構築する。なお、データベース設計後には、データ登録や閲覧可能なユーザーや、ユーザーグループのアクセス権設定等が行われ、特定のユーザー又は全ユーザーに対するアクセス制御を設定することとする。
【0033】
そして、このようなデータベースに対するデータ登録は、例えば次のようにして行われる。
【0034】
a.アクセス権のあるユーザーに対して、APIC接続端末ソフトウェア上に対象となるデータベース仕様に基づいてデータ登録用画面をプログラムで動的に作成・表示し、ユーザーがデータ入力画面上から必要なフィールドを埋めて登録決定する。
b.アクセス権のあるユーザーに対して、APIC接続端末ソフトウェア上にCSV、SQL、JSON、XML、一般的な表計算ソフト用ファイルやデータベースソフト用ファイル等からインポートするためのデータ登録用画面をプログラムで動的に作成・表示して、ユーザーがファイルを指定してデータを登録する
c.アクセス権のあるユーザーに対して、データ登録用メールアドレスを公開し、ユーザーが自ら予め登録したメールアドレスから電子メールにデータを記述して送信し、APICがメールデータを受け付けてデータベースに登録する。このとき、データのフィールド分析はカンマや空白文字または改行など予め設定した区切りコードによる識別などの方法によって、送信されたメール本文をプログラムで動的に解析し、データベース仕様に応じてデータ登録する。
【0035】
ここで、上述したようなデータベースに対するデータの登録にあたっては、ステップ2(ST2)のように自動API生成ツール(自動API生成手段)12,32のアシスト機能を利用してマスタデータを元にした自動API生成が行われる。より具体的には、前記自動API生成ツール12,32は、「API仕様決定機能」及び「データベース作成機能」を有しており、そのうちの「API仕様決定機能」としては、例えば図6に示されているようなAPIの名称や概要等からなる「API基本情報」についての入力画面を表示してユーザーに提示することにより登録する機能と、例えば図7に示されているような入出力の名称・識別子やデータタイプ等の「入出力パラメータ」についての入力画面を表示してユーザーに提示することにより登録する機能と、例えば図8に示されているような入力パラメータと出力パラメータとの間における演算や条件などの「処理内容」について入力画面を表示してユーザーに提示することにより登録する機能と、を備えている。
【0036】
これらのうちの「パラメータの名称」としては、例えば現在位置緯度情報(latitude)、現在位置経度情報(longitude)、緯度経度指定場所からの距離(distance)、時刻(time)、住所上の現在位置(address)、最寄り駅(station)などが使用される。「入出力パラメータ」のデータタイプとしては、例えば、整数型、浮動小数点型、文字列、ファイルなどがあり、入出力の識別子としては、例えば、パラメータが入力か出力かを示す識別子がある。また、データ型に対する付随情報として、進数や浮動小数点の精度などの属性や、定義長のサイズ等を付加することも可能である。
【0037】
APICシステムは、ユーザーが入力した内容を、各々のデータ型等に対応する内部記号を示す予め決められた文字列に置き換えて保存する。こうすることによって、後で読み出した時に機械的にプログラム言語の変数宣言として使用することができたり、或いは関数のプロトタイプ宣言なども機械的に行うことができる。ユーザーがパラメータとして定義した変数名称や属性を基にXML形式で保存を行う場合には、例えば以下のようにして、作成者<Author>、API名称<APIName>、バージョン<Version>、概要<Comment>、作成日時<Created>、最終変更日時<LastEdited>等の保存が行われる。
【0038】
前省略
<APIProperties>
<Author>sample author</Author>
<APIName>SampleAPI</APIName>
<Version>1.00</Version>
<Comment>this is a sample</Comment>
<Created>2008-11-29</Created>
<LastEdited>2009-09-29</LastEdited >
</APIProperties >
後省略
【0039】
なお、その他の形式で保存する場合や、データベースに保存する場合も、同等のフィールドを設けてそこへ正しく保存すればよい。また、作成日時や最終変更日はAPICシステムに保存された日時を保存するのでユーザーが自分で入力しなくても良い。
【0040】
そして、APIプログラムの内部で使用する変数として図7に示されているような arg_A 、或いは図8のような arg_B、Ret_C を定義することが行われる。そのパラメータ変数が、整数型/浮動小数点型/文字列/配列/ファイル/構造体等の何れであるかを示す予め定めた内部表記や、あるいはそれが入力か出力かを示す内部表記を同様に定めておくことによって、この内容を後で読み出した時に機械的にプログラムの変数宣言に置き換えられる。
【0041】
また、処理内容の決定は、例えばAPICシステムが提供する擬似コードの部品をユーザーが選択・組合せる事で自動的にプログラムを生成することで行われるが、その場合のユーザーは、APICシステムが提供する規定のオペレーションを選択することによって、入力パラメータと出力パラメータの間に存在するべき処理を作成することが出来る。これは、プログラムを書くという専門的なレベルではなく、各パラメータに対して、加減乗除のような単純な「四則演算」を指定したり、「データベースに保存する」「データベースから取得する」といった文言を選択したり、[A=○○の場合は]や[それ以外の場合は]というような条件を文言で指定するような形式で行われる。プログラムの知識が無いユーザーや、ある程度知識があっても煩わしい様々な工程を簡素化したいユーザーを対象とした場合には、上記手法が主な処理内容決定の工程になる。
【0042】
上述したようにAPICシステムは、ユーザーによる演算式の各要素を、各々の演算処理に対応する内部記号を示す予め決められたデータや文字列に置き換えて保存する。例えば、ユーザーによる入力を、内部的に原始的な各ステップに分解して、後で読み出した時に行うべき処理が認識できる方法で保存する。例えば、掛け算が選択された場合は、Operand_Left(左辺を示す)にOperand_Right(右辺を示す)を代入するという内部処理1ステップ目を”MOVE”という“代入処理”を示す文字列を予め決めておいて、その記法に則って、ユーザーが入力した内容を保存する。例えば、上記MOVEを利用してRet_Cという変数にarg_Aという変数を代入するという意味を表す内部表記を保存しておけば、後で読み出したときに、機械的にプログラムを記述することが出来る。例えばC言語でAPIを記述する場合は、この内部処理は Ret_C = argA; という一文に置き換えることが出来る。
【0043】
そして、次の内部ステップで Ret_C×arg_Bの計算結果をRet_Cに代入するという処理を行いたい場合、“MUL”という文字列を予め“掛け算をする”という処理を示す記号として決めておくことによって、後から読み出した時にこのステップが 左辺(Ret_C)×右辺(arg_B)を行い、結果を左辺(Ret_C)に入れる、という処理を行うという事が分かるので、機械的にプログラム言語に置き換えることが出来る。この例の場合、C言語では Ret_C *= arg_B; という一文に置き換えることが出来る。以上の2ステップの内部処理によって、Ret_C = arg_A * arg_Bという計算処理を行うプログラムを機械的に作成する事ができる。もっとも、ここで示した例通りではなく、Operand_Left,Operand_Right以外に代入先を示す属性を定義して、そこへ計算結果を代入するという記法を定義しておくことによって、内部処理の定義を簡素化することは可能であり、また同様に“MOVE”や“MUL”という文字列を使用せずにそのままプログラム言語で使用できる“*”や“=”でもかまわない。ただ、処理内容が原始的・低レベルであればあるほど、対応出来るプログラミング言語が多くなると期待できる。また、各STEPにidを付加して保存することによって、処理する順番も後で読み出した時に判別可能であるし、処理をジャンプさせる事が可能となるので分岐やループなどを実現できる為、プログラムを構造化することが可能である。
【0044】
一方、データベースを使用するには、既に作成されているデータベースを使用する場合と、処理仕様の内容から自動API生成ツール(APIC)が自動的に新規テーブルを作成する「データベース作成機能」を使用する場合とがあるが、後者については、前述したように「d.APIの入出力から作成」として既に説明したものであるが、これらについて、より詳細に説明しておく。
【0045】
一例として、「入力されたパラメータarg_Numberの番号に対応した挨拶文を出力する」というAPIを、データベースに挨拶文リストを保存しておいて、そこから抽出するという方法で実現する場合を説明する。この場合、挨拶文リストをテーブルに保存する作業はAPICサイトのデータベース登録画面から、前述したようなa.〜c.などの既存の方法で入力しても良いし、データ登録用APIを作成してそのAPI経由で保存してもよい。ここでは、保存も抽出もAPI経由で行う場合として説明するので、「入力されたパラメータstr_Greetingの値をデータベースに保存する」というデータ登録用APIも合わせて説明する。また、ここでは、テーブル構造は、整数型idというフィールドと文字列型Greetingというフィールドの2つのみとする。
【0046】
(1)既存テーブルを使用する場合
前述したようなa.〜c.などの既存の方法で既に作成しているデータベーステーブル”Sample_Table_1”のGreetingというフィールドに保存する場合、データ登録APIの仕様は「パラメータstr_Greetingで指定した文字列をデータベースに保存する」となり、例えば図9に示されているような、既存テーブルへのデータ保存を指定する処理仕様入力画面が用いられる。ここでは、説明を簡単にするために、Greetingの番号はオートインクリメントで保存されるものとしており、まず、このデータ登録用APIのパラメータ仕様で文字列型str_Greetingを定義し、次にプログラム仕様のステップでstr_Greetingをデータベースに保存するという選択を行う。
【0047】
この場合、「データベーステーブルへの保存を行う」旨を示す“DB_SAVE”という内部記号とその記法を予め決めておくことによって、後で読み出した時に一意にプログラムに変換する事ができる。また、プログラム内の工程として、データベースへの接続、SQL等のデータベース操作言語実行、実行結果の返却という処理が必要であるが、これらの工程は一意に機械的に作成できるので、ここで重要なのはSQL等のデータベース操作言語の記述内容そのものである。上記のように必要な情報を後で読み出して解析できるような方法で保存しておくことによって、データベース操作言語の記述内容も自動生成が可能である。例ではSample_Table_1というテーブルのGreetingというフィールドに変数str_Greetingが保持している値を保存するという内容であると解釈できるので、即ちINSERT 文(SQLの場合)などを生成することが可能である。同様にSELECT文やUPDATE文なども生成可能である。
【0048】
データベースへの接続にはパスワードが必要であるように構成した場合には、APIを作成する言語によってデータベースへの接続を行うプログラムの記述方法は異なるが、どの言語であってもデータベースに接続できるものであれば、適宜に定めたパスワードを利用して、データベースへのアクセスを行うプログラムを機械的に自動生成することが出来る。その他の接続先サーバー情報(データベースサーバのホスト名/データベースユーザー名/データベース名など)はAPICシステムのインストール時にサイト管理者が設定したものを使用してもよいし、あるいは、ユーザー毎にこれらを作成するような仕組みにしてもよい。
【0049】
抽出APIの仕様は「arg_Numberに応じた挨拶文を取得する」という内容であるので、処理ステップの入力で、例えば図10に示されているような、既存テーブルからデータ抽出を指定する処理仕様入力画面において、「データベースから抽出する」を選択し、テーブルは「Sample_Table_1」、フィールドは「Greeting」を選択する。そして「id=arg_Number」という抽出条件が加えられて、このステップの仕様決定が完了する。
【0050】
この保存と同様に、例えば文字列型変数Ret_CにテーブルSample_Table_1の文字列型フィールドGreetingの値を保存するという処理仕様が書かれる事となる。入力画面でユーザーが設定した内容に従って、予め決めた例えば “DB_SELECT”、”Table”、 ”Field” 、“Where”などの周知の記法に則って上記のように後でどういう処理内容かを識別できるように保存する。そして、予め定めた適宜の条件を元にプログラムでデータベースに仕様どおりの検索をかけて、得られた結果を変数Ret_Cに代入するというAPIプログラムを機械的に生成する事が可能となる。また、後述する構造体定義や配列を定義可能とすることで、複数のフィールドを任意の構造体型変数や配列に入れる事も可能となるし、また内部変数は全て配列として扱う事にしてもよい。
【0051】
(2)APICによる自動テーブル作成の場合
この場合には、例えば図11に示されているような、自動テーブル作成によるデータ保存を指定する処理仕様入力画面になされる。この例をXML形式で保存する場合、例えば”Field”タグの”Variable”属性で変数str_Greetingを指定するパラメータや変数(後述)として定義(説明省略)されているものであるため、変数の型やデータサイズなどは判別可能であるので、それと同じ属性のフィールドを有するテーブルを自動で作成し、そのテーブルから対象のフィールドを抽出するというプログラムを生成する事が可能である。この場合、APIの基本情報に作成したデータベース名を紐付けておく。これには、既述のAPI基本情報の保存項目に下記のように挿入するなどして、紐付けを行う方法が考えられるが、これによって、仕様テンプレートにデータベースが含まれて再利用が可能となる。この場合のテーブル名称は、ユーザーID、日時情報、不可逆関数、連番などを利用してユニークに識別できるようにしておく。なお、この段階ではidに相当するフィールドが必要だという判断は出来ないが、これに関しては後述の抽出APIのパラメータからの判断となり、このフィールドの挿入タイミングは、その時点かあるいはそれ以降の適宜の時点となる。
【0052】
そして、自動テーブル作成によるデータ抽出を指定するにあたっては、図12に示されているような処理仕様入力画面とされる。この例の場合、検索をかけるテーブル名とフィールド名が自動生成であるので、データ保存の場合と同様に、テーブル名を生成し、変数str_Greetingの属性からフィールドを生成する。そしてこの場合は、データ保存時には無かったフィールド”id”の存在が、抽出条件として予め定めた内部表記である”Where”タグの左辺(Operand_Left)に指定する”arg_Number”から分かるので、同様に“arg_Number”の属性からフィールドを生成する。抽出方法は既存テーブルからの抽出方法と同等であるのでここでは省略する。
【0053】
以上のようにして、データベーステーブルに対するデータ登録およびデータ抽出のAPI自動生成が実現可能となるが、この際に作成したテーブル構造やAPI仕様は、同様の構造で実現できる他の目的のAPIにもそのまま流用できる。つまりこの例の場合、“id”と“文字列”からなるテーブルに対するデータ登録とデータ抽出を行うことで実現できるあらゆるAPI仕様は、そのままこの例の「挨拶文取得API」を流用できる。例えば、挨拶ではなく、「格言」や「占い」等の文言の登録や取得を行うAPIが、何の変更もなく実現できる事は自明である。ゆえに、次に同様のAPIを作りたいユーザーは、この仕様を保存したファイルをそのままコピーし別名で保存するだけで所望のAPIが公開できる。これを、API仕様および紐付けられたデータベース仕様に関してテンプレート化できるのである。このように、APICが提供するこのテンプレート機能によって、1人のユーザーが作成した仕様を基にして、同等構造の様々な用途のAPIが実現できるのである。
【0054】
さらに、より高度な複雑な処理をしたい場合のプログラム生成を行う場合、APICはより高度なユーザー向けに一般的なスクリプト言語を直接記述できる環境も提供する。この場合、ユーザーはAPICが対応している言語を選択し、表示するプログラム記述画面に直接プログラムを記述する。プログラムには馴れているので自分で書きたいが、自分でサーバーを借りたりセキュリティの設定やデータベース、プログラム言語の実行環境などを整えるのが煩わしいと思うようなユーザーを対象とした場合、こちらの方法でプログラムが生成されても良い。
【0055】
上述した何れの方法でAPIプログラムが作成されても、ユーザーが作成したプログラムがサーバー内に保存され、外部から実行できるようにする事が重要である。APICは何れの方法で生成したAPIプログラムも実行可能ファイルとして、例えば.phpや.rbなどのファイルに保存して、仕様情報に追加する。また、APICは、API仕様ファイルのアドレスをAPI基本情報と共にAPIリストデータベースに保存するが、そのときのAPIリストデータベースの構造は、既述のAPI基本情報および仕様を保存したAPI仕様ファイルのアドレス等から成る。
【0056】
次に、出力フォーマットの決定について説明する。出力フォーマットの決定工程は、出力パラメータで指定した変数をどのような形式で出力するかを決定する工程で、一般的にWebサービスで利用されるフォーマット(例えば、XML,JSONなど)をサポートすることが望ましい。この工程は、ユーザーが出力フォーマット設定画面で指定してもよいが、例えばXML、JSONなど全ての出力フォーマットをサポートするようにしておいて、呼び出し側の都合に応じてパラメータで指定させ、適宜出力フォーマットを切り替えるような仕組みでもかまわない。例えば図8に示されているように整数型変数Ret_Cが出力パラメタであり、出力フォーマットをXMLで指定した場合は、APIプログラム内で、xmlヘッダ等必要なタグを付加した後、変数名のタグにてRet_Cを返却すればよいし、JSONであっても同様にデータ構造やデータ型が分かれば、整形する事が可能であることは自明である。
【0057】
プログラム仕様を後で読み出して、どのように機械的にプログラムに変換し、生成したプログラムを保存するかについては既に説明したが、この段階で、APICは、APIリストデータベースを参照して、APICサイトに訪れたユーザーに対してAPIリストおよびその概要を表示し、現在APICサイトにどのようなAPIが登録されているかを知らせることが出来る。APICは、APIリストの中からユーザーが選択したAPIの仕様ファイルアドレスが分かっているので、当該ファイルを読み出し、プログラムのアドレスや、入出力仕様をユーザーに知らせる事が出来る。このようにして、API作成ユーザーが作成したAPIプログラムが、一般のAPI利用ユーザーが訪れた際に認識されることとなる。
【0058】
次に、その他、高度なプログラム仕様を設計する為に必要な機能の例を挙げておく。まず、構造体を定義できる機能としては、例えば図13に示されているような画面を利用するが、名前や属性を指定することによって、後で読み出した時に、機械的に構造体を宣言するプログラムに変換することが出来る。また構造体がサポートされていないプログラミング言語の場合は、この機能は無効となるか、別の機能でなどで代用できる場合はしてもかまわない。
【0059】
また、変数を宣言できる機能、すなわちパラメータ変数以外にも処理内部で使用するための変数を宣言できる機能が、属性指定などパラメータの設定方法と同様の手順で実現可能である。さらに、関数を作成できる機能を持たせて、よく行われる処理を関数として再利用可能な形式にしておくことによって、プログラム内容を簡素化することが出来る。また、この関数も別のAPI仕様作成時にインクルード可能なので、同様の関数を複数のユーザーが作成するという社会的な無駄を無くする事が可能となる。この機能を実現するには、仕様入力画面上に、関数として保存する旨を示すボタンやチェックボックス等を用意しておき、ユーザーがそれらを設定した場合に、APIではなく、関数として保存すればよい。
【0060】
つまり、APIプログラムもひとつの関数であるので、関数仕様作成に関しても、入出力パラメータの設定を含めて記述方法はAPI仕様作成と全く同じでかまわないのである。違いは、それが関数であるという事が後で読み出した時に認識できなければならないことから、前述したようにXML形式を採用した場合には、基本情報を例えば<APIProperties>タグではなく<FunctionProperties>タグ等にして、公開用APIと内部関数との差異を識別できるようにしておく。こうすることで、外部から実行可能なWebAPIではなく、APIプログラム内部で使用する関数であると区別できる。また、関数は他のAPIからも呼び出し可能とした方がよいので、API作成ユーザーには、一般ユーザーには見せない関数リストも見せる仕組みにしておく必要がある。そして、API仕様の中で関数をコールする記述を、後で読み出して識別できる予め定めた種々の表記法則に則って適宜に設定しておくことで、機械的に当該関数をコールするプログラムに翻訳することが可能となる。
【0061】
さらに、図14に示されているような画面を利用して、例えば処理A又は処理Bのいずれかを選択する等の分岐の設定が可能となっている。これは実行するプログラムのステップを場合によって選択する必要がある場合に使用する。この「分岐設定」の処理は、比較処理と各ステップに付加されているidを利用して該当するステップへのジャンプ処理により実現することが出来る。例えば、比較を示す文字列を内部的に予め定めておき(この例では“COMP”)、左辺(Operand_Left)と右辺(Operand_Right)を比較するという書式を上記のように規定し、その比較結果に応じて指定されたステップIDにジャンプすることによって分岐(Branch)を実現できる。この例では、“EQ”は“=”(equal、つまり比較対象が等しい)という事を示し、その場合にはステップ3へジャンプするという事を意味し、それ以外の場合(ELSE)にステップ4へジャンプするという事を意味する。このように記法を定める事によって、APICが“COMP”ステップを読み出した時に機械的にプログラムに翻訳する事ができる。その際に、行った比較の結果を保持する内部変数(以下、コンディションコード変数と呼ぶ)を予め用意しておいて、そこに逐次各実行ステップの結果が正か負かを保持することによってCOMPを行わずともBranchさせることも可能である。
【0062】
また、同様に“NE”(not equal)、“BT”(Bigger Than)、“LT”(Less Than) などを規定しておけば、ユーザーがそれらの条件分岐を使用できる環境を提供可能となる。あるいはMINMAX(Minimum Maximum)などを定義して指定する最大値最小値の間に入っている場合のみ特定の処理を行うという事も可能となる。つまり if( arg_A > arg_B ) や if( arg_A < arg_B )、あるいはif( ( 0 < arg_A ) && ( arg_A < 10 ) ) といった条件分岐が使用可能となる。また、その分岐を利用してループが実現可能である。ループ回数を保持するカウンタ変数を内部的に利用し、ユーザーが設定したループ回数またはループ処理に入る時の変数が保持している値との比較により、ループの先頭に戻るか、ループを終了するか、という条件判断ができる。また、内部カウンタ変数などを使用せずとも、条件分岐と任意ステップへのジャンプの組み合わせのみでループは実現可能であることは自明であるので、ここでは省略する。
【0063】
なお、処理仕様の内容からAPICが自動的に新規テーブルを作成する場合には、マスタデータの統計又は解析を予め定めた適宜の条件下、例えばデータベースの使い易さに関して、どのような種類のデータを採用するか、或いは各データの並び順をどのようにするか等の条件を自動設定又はユーザーへ提案することが可能である。
【0064】
さらに当該自動API生成ツール12,32は、決定されたAPI仕様に基づいて作成されたデータベースの全部又は一部をネットワーク上に公開するAPI発信機能を同じくプログラムとして備えており、第三者によって容易に利用される形式となるように例えば関数、プロシージャ、変数、データ構造、又はインタプリタなどに関してAPI化されたデータベース又はプログラムを公開する機能を有している。
【0065】
このとき、例えば下記の事項について、マスタユーザーMUによる指定が適宜に可能となっており、APICサイト内のテスト画面で確認しながら満足がいくまでマスタデータの入出力設計の変更ができる構成になされている。
a.入出力の仕様
b.データ整形(順序の変更、見せるデータの選択など)
c.コーディング(プログラムコードの生成・確認)
d.テスト
【0066】
具体的には、APIの仕様設計としてAPICシステムでは、上述したようにして作成したデータベースに対して、データ入出力を行うための手段として少なくとも下記のようなAPI設計手段を備えている。すなわち、まず上述したデータ登録以外の手段でデータ登録用のAPIを設計・公開することによって、アクセス権のあるユーザーがAPI経由でデータ登録を行えるようにする点である。この場合には、APIC接続端末ソフトウェア上にデータ登録用APIの設計画面を表示し、ユーザーがAPIへの入力時に必要な引数(パラメータ)を設定する。これは、直接データベースのフィールドに対応する場合もあるが、後述する演算処理後にフィールドに保存される場合もある。APICシステムは、上記設定された内容に基づいて、プログラムで動的にユニークなIDによって後からAPIを識別できる状態にし、また設定された仕様を読み出して実行できる状態にして、API仕様保存用データベースへ保存する。
【0067】
また、本実施形態にかかるAPI設計手段は、上述したようにして登録されたデータに対して、API経由で取得可能とするフィールドをユーザーが自由に設定できる機能を備えている。この場合には、アクセス権のあるユーザーに対して、APIC接続端末ソフトウェア上にフィールド選択画面や使用するデータベース、テーブルを選択する画面を表示し、ユーザーは、データ整形(順序の変更、見せるデータの選択・結合・省略など)方法を画面上のGUI操作等で設定する。また、ユーザーは、データ抽出時の条件指定、集計方法、並べ替え方法、計算方法等を画面上のGUI操作等で設定する。そして、APICシステムは、上記設定された内容に基づいて、プログラムで動的にユニークなIDによって後からAPIを識別できる状態にし、また設定された関数や演算仕様を読み出して実行できる状態にして、API仕様保存用データベースへ保存する。
【0068】
さらに、APICシステムにおいて、入力データまたは引数に基づいて特定の集計・計算・演算処理等を行いたい場合は、一般的なスクリプト言語等を直接記述するか、専用の言語を提供して計算式や関数をユーザーが独自に設定できる。これによって、単純な“データ登録及びデータ抽出”という仕様だけでなく、データを元に集計結果や独自の演算結果などをAPI経由で出力させることや、データ保存無しで引数に対する演算結果のみをAPI経由で出力させること、或いは独自のアクセス権認証等を行うことが可能となる。また、スクリプト単位での共有や公開も可能とする。そして、アクセス権のあるユーザーに対して、APIC接続端末ソフトウェア上にスクリプト言語記述用の画面を表示し、ユーザーがスクリプト言語のルールに基づいて、自由にスクリプトを記述する。APICシステムは、ユーザーが記述したスクリプトの文法チェック等を行い、間違いがある場合はユーザーにそれを通知し、修正を促す。これに対してユーザーは、チェックを通るようにしたスクリプト言語を保存し、APICシステムが、プログラムで動的にユーザー作成のスクリプトをデータベース保存に適した形式に整形(特殊文字などのエンコード等)すると同時に、後で読み出して実行できるような形式にして、データベースへ保存する。
【0069】
次に、関数等を有するAPIをテストするにあたってAPICシステムは、ユーザーが自分で設計したAPIをテストし、入出力が期待通りか確認することを可能としている。この場合には、まずアクセス権のあるユーザーに対してAPIC接続端末ソフトウェア上に、APIテスト画面を表示し、ユーザーは自ら設計した任意のAPIを任意の引数で呼び出し、実行結果を画面上で確認する。結果が期待通りでなければ、設計手順に戻りAPI仕様を修正し、再度テストすることとなるが、ユーザーは、上記手順を自作APIが期待通りの動作をするまで繰り返す事ができる。
【0070】
さらに、ステップ3(図5中のST3)として、関数化等によりAPI化されたマスタデータ、又はそれを用いたデータベースやプログラム(以下において、データ集合体と呼ぶ。)の公開が行われる。上述したようにして関数化等によりAPI化されたデータ集合体は、マスタユーザーMU自身の期待通りの出力がテストで確認された後に公開され、これによって前記マスタデータに基づくデータ集合体の一次利用が行われることとなる。このようなデータ集合体の公開を、予め定められた入出力仕様を有するテンプレートとして公開したり、又はそのようなテンプレートに基づいて公開を行うようにしておけば、後述する開発ユーザーDU等による利用が容易なAPI群が作成されることとなり、また同じものを別々に設計するという社会的な無駄を無くすことが可能となる。
【0071】
また、このマスタデータに基づくデータ集合体の一次利用の際、マスタユーザーMUは、利用料や、1日のアクセス上限数などの利用条件や制限条件を設定することが可能となっている。さらに、テーブル内に会員アカウントのフィールドを作成しておくことなどにより自サイトへの会員登録をAPI利用条件とすることも可能である。
【0072】
すなわち、関数化等によりAPI化されたデータ集合体を公開するにあたってユーザーは、自分が設計・公開するAPIの利用条件などを設定できる。設定できる条件は、利用料金、1日のアクセス上限数、広告表示回数、特定ユーザーのみのAPIアクセス権、別途自ら運営するサイトへの会員登録が必須かどうか、など多岐に渡る。具体的には、アクセス権のあるユーザーに対してAPIC接続端末ソフトウェア上に、利用条件設定画面を表示し、ユーザーが画面上のGUI操作等でAPIの利用条件などを設定する。その設定された条件に基づいてAPICシステムは、プログラムで動的にAPI公開条件を特定のデータベースに後で読み出して実行できるような形式にして保存する。実行可能な形式で保存されたAPIは、設計ユーザーによる最終的な承諾の上、APIのアドレスと仕様を、一般ユーザーが閲覧可能なAPICシステム上のAPI閲覧画面に表示し、また実際のAPIのアドレスを公開する。その公開されるAPIのアドレスは、APIの呼び出し形式(REST、SOAP、RPC等)や出力フォーマット(XML,JSON,CSV,テキスト等)によって異なる場合がある。
【0073】
そして、次のステップ4(図5中のST4)では、API化されたデータ集合体を利用する開発ユーザーDUによるマスタユーザーMUのAPIを検索・発見・利用決定が行われ、データ集合体の一次利用が行われる。API化されたデータ集合体を検索・発見・利用するにあたっては、例えば、まず利用条件を考慮してAPI利用が決定され、そのAPI利用決定がマスタユーザーMUに通知される。そのときのAPI利用状況(人気APIランキングなど)やAPIを利用しているサイトのサーチエンジン等は、APICサイトにて閲覧可能となっている。
【0074】
すなわち、関数化等によりAPI化されたデータ集合体のアクセスや実行にあたってAPICシステムでは、上述したようにして設計・データ登録・利用条件設定し、公開したAPIを、外部からコールされた時に、API仕様・利用条件設定に基づいてデータを入出力する事が出来るようにしている。ユーザーが設計した仕様によって様々なタイプのAPIが出来るが、その例としてデータ登録系、データ抽出系、演算系を記載しておく。データ登録系APIの場合には、引数で指定された入力データを設計仕様に基づいてプログラムで動的に整形(演算や文字列操作等)を行い、API呼び出し側へ実行結果応答し、必要なデータをデータベースへ保存する。また、データ抽出系APIの場合には、引数で指定された抽出条件などから、設計仕様書に基づいてプログラムで動的にデータベース検索、並べ替え等を行い、実行結果をAPI呼び出し側へ返す。さらに演算系APIの場合には、引数で指定されたデータ(数値、文字、画像/音声/ビデオや、その他データファイル等)に対して設計仕様に基づいた特定の計算、文字列処理、画像処理などを行い、実行結果をAPI呼び出し側へ返す。
【0075】
この後のステップ5(図5中のST5)においては、まず関数化等によりAPI化されたデータ集合体の開発ユーザーDUによる2次利用が行われる。開発ユーザーDUは、マスタユーザーMUのAPIを利用してデータ取得することによって、独自のマッシュアップ・サイトや、マッシュアップソフトウェアMSWを開発し、それらをブログパーツやガジェットなどとして公開する。このときのマッシュアップ・サイトやマッシュアップソフトウェアMSWには他のAPI化されたデータ集合体が含まれている場合もある。また、開発ユーザーDUが、マスタユーザーMUのAPI化されたデータ集合体APIを利用して独自に別のマッシュアップAPIを開発し公開する場合もある。
【0076】
また、ステップ6(図5中のST6)では、サイト運営者SAによる関数化等によりAPI化されたデータ集合体の3次利用が行われる。すなわち、一般的なサイト運営者SAによって、上述した開発ユーザーDU又はサイト運営者SAに自身により開発されたマッシュアップソフトウェアMSW又はマッシュアップAPI(MAPI)を利用して自サイトが作成され、それが一般に公開されることによってAPI化されたデータ集合体の3次利用が行われる。
【0077】
なお、上述したマッシュアップAPI(MAPI)にさらに別のマッシュアップAPI(MAPI)が組み込まれて4次利用されたり、それらが何重にも組み込まれて5次利用されるなど、次のステップ7(図5中のST7)のように最終のエンドユーザーに届くまでデータの利用次元は増えていくこととなる。
【0078】
そして、ステップ7(図5中のST7)では、最終的なエンドユーザーによって、マッシュアップソフトウェアMSWを有するマッシュアップ・サイトや、サイト運営者SAのサイト等を通じてマスタデータの閲覧又は利用が行われ、それによってマスタデータの末端利用が行われる。
【0079】
このような実施形態によれば、多数の一般ユーザーMUが自身で保有しているデータをAPICサーバー内にマスタデータとして登録するだけで、その登録された一般ユーザーのデータが、自動API生成手段12,32によりデータベース化されるとともに、生成されるAPIを通じて適宜の出力状態として、第三者による閲覧又は利用が容易なデータ又はプログラムとしてネットワーク上に公開されるために、元々は一般ユーザーの手元に秘蔵されようとしていたデータが、開発ユーザーDUやサイト運営者SAによって容易かつ広範囲に利用されることとなり、情報の拡散が飛躍的に図られるようになっている。
【0080】
次に、本発明にかかるAPICシステム(情報利用システム)を使用したAPICサイト(Application Program Interface Creator Site)を実際に適用した実施例について説明する。
【0081】
まず、図15に示されている第1の実施例は、マスタデータユーザーMUとして“A町の魚屋”を想定したものであって、その場合のデータの流れと広がりを以下に説明する。なお、このマスタデータユーザーMUとしての“A町の魚屋”は、前述したAPICシステムの自動API生成ツール12,32を通して、関数、プロシージャ、変数、データ構造、又はインタプリタなどに関するAPIを既に公開しているものとし、ある程度の数の開発ユーザーDUや、サイト運営者SAによってデータの利用が行われている事を前提とする。
【0082】
まず、最初のステップ11で魚のデータが登録される。すなわち、マスタユーザーとしてのA町の魚屋MUは、APICサイトにアクセスして仕入れた魚のデータをAPI作成サーバーに登録する。このときの登録は、例えば下記の表1のように仕入れ/売値を決定して行われることとなるが、そのようなマスタデータの登録又は更新によって、APIからの出力データが自動的に更新される。
【0083】
【表1】

【0084】
次のステップ12で、API作成サーバーによりAPI設計が行われてマスタデータを抽出及び出力するプログラム、すなわち魚屋APIの公開が行われる。この第1の実施例においては、例えば、下記のような項目を内容とするマスタデータのデータベースの公開が行われるようにAPIの設計がなされている。
a.名称: A-machi_Fish_Search
b.説明: 今日仕入れた新鮮な魚介類情報を配信する!
c.入力: 名前、販売価格上限、キーワード、ソート順(名前または価格)
d.出力: 名前、販売価格、コメント、写真
e.利用条件: 無料
このようなマスタデータのデータベースに関する入出力設計が、API作成サーバー内の自動API生成ツール12,32により自動で行われる。
【0085】
そして、ステップ13(ST13)において、上述したようにAPI化されて公開されたマスタデータのデータベースからデータを抽出するAPI(魚屋API)への要求が、個人プログラマ等の開発ユーザーDUにより行われ、その開発ユーザーDUによってマッシュアップソフトウェアMSWの構築・公開が行われる。より具体的には、上述したようにしてAPICサイトからマスタデータを出力する魚屋API(A-machi_Fish_Search)や、その他のAPIを利用して、例えばA町商店街全体に関するホームページパーツやデスクトップガジェット等のマッシュアップソフトウェアMSWが構築され公開される。
【0086】
さらに、次のステップ14(ST14)においては、サイト運営者SAによるマッシュアップソフトウェアMSWの構築・公開が行われる。例えば、上述した個人プログラマDUのマッシュアップソフトウェアMSWや、その他のAPIを利用したマッシュアップソフトウェアMSW等を組み込んで、例えば、”A町グルメサイト”が構築され公開される。
【0087】
一方、ステップ15(ST15)では、開発ユーザーDU又はサイト運営者SAによるマッシュアップ・サイトの構築・公開が行われる。このマッシュアップ・サイトでは、上述した魚屋API(A-machi_Fish_Search)や、その他のAPIを利用して、例えば”全国魚屋さん情報サイト”が構築され公開される。
【0088】
このような”A町グルメサイト”や”全国魚屋さん情報サイト”が公開されると、例えばステップ16(ST16)において、個人消費者(一般ユーザー)による利用が行われる。すなわち、個人消費者(一般ユーザー)は、上述した開発ユーザーDUのデスクトップガジェットを利用してA町商店街のデータをチェックして日々のお買い物に役立て、例えば、「今日は魚屋さんの”鯛切り身”がお買い得」という情報を得ることによって購入を決定する。
【0089】
また、ステップ17(ST17)では、B町のイタリアンレストラン(一般ユーザー)による利用が行われる。例えば、B町のイタリアンレストランでは、日常的にA町グルメサイトのチェックが行われており、ある日、A町の魚屋さんのデータに注目して、その仕入先としての提携を決定する。
【0090】
さらに、ステップ18(ST18)では、C町の寿司屋(一般ユーザー)による利用が行われる。例えば、C町の寿司屋では、日常的に全国魚屋さんサイトでより良い仕入先を探しており、ある日、A町の魚屋のデータに注目して、その仕入先としての提携を決定する。
【0091】
一方、図16に示されている第2の実施例は、“タクシー運転者の現在位置”を想定したものである。ここでも、既にタクシー運転者の現在位置データを登録する為のAPIが設計されて公開されていることを前提とする。
【0092】
まず、最初のステップ21において、各タクシー運転者の現在位置のデータが登録される。すなわち、マスタユーザーとしてのタクシーA,B,Cは、APICサイトにアクセスして現在位置のデータをAPICシステムのAPI作成サーバーにマスタデータとして登録する。
【0093】
次のステップ22(ST22)では、API作成サーバーにより既に設計・公開されているAPI、すなわちタクシー運転者APIを通じてマスタデータのデータベースの公開が行われる。そして、ステップ23(ST23)において、上述したようにAPI化されて公開されたマスタデータのデータベースを参照する為のAPI(タクシー運転者API)への要求が、個人プログラマ等の開発ユーザーDUにより行われ、その開発ユーザーDUによってマッシュアップソフトウェアMSWの構築・公開が行われる。より具体的には、上述したようにしてAPICサイトからマスタデータを出力するタクシー運転者APIや、その他のAPIを利用して、例えばタクシー運行に関するホームページパーツやデスクトップガジェット等のマッシュアップソフトウェアMSWが構築され公開される。
【0094】
さらに、次のステップ24(ST24)においては、サイト運営者SAによるマッシュアップソフトウェアMSWの構築・公開が行われる。例えば、上述した個人プログラマDUのマッシュアップ・サイトMSWや、その他のAPIを利用したマッシュアップソフトウェアMSW等を組み込んで、例えば、”全国タクシー運行状況ガイド”が構築され公開される。
【0095】
このような”全国タクシー運行状況ガイド”が公開されると、例えばステップ25(ST25)において、個人消費者(一般ユーザー)による利用が行われる。すなわち、個人消費者やホテル等の一般ユーザーは、タクシー運行状況をチェックして日々の利用に役立てる。
【0096】
一方、前述した図3に表されたAPI作成サーバー1に、利用したユーザーに適宜の広告を配信する広告配信手段を設けてAPICシステムとすることが可能である。そして、その場合の広告配信手段としては、例えば、自動API生成ツール12,32により作成されたデータベースを閲覧又は利用したユーザーに対して、そのユーザーが閲覧又は利用したデータベースの内容に対応した内容の広告を配信する構成とすることができる。例えば、図17に示されている実施形態にかかるAPICシステムでは、API作成サーバー1からAPIデータを取得したデータ利用サイト(ユーザー)4に対して、そのデータ利用サイト4が取得したAPIデータの内容に関連する広告が、前記API作成サーバー1に設けられた広告配信手段13から同時に配信されるようになっている。
【0097】
本実施形態にかかるAPICシステムは、最小単位としてメタデータのレベルからデータそのものに広告を配信する広告配信システム(広告配信手段)を有しており、そのAPICシステムの広告配信システム13を使用したデータへの広告配信は、例えば図18のようにして行われる。すなわち、広告主が、広告データの内容をキーワードとともに登録しておくと、広告配信手段としての広告配信システム内で、広告データ内容や登録されたキーワードを基に、必要な相関関係などのデータ解析が行われて最適な広告が選択され、一般利用者またはマッシュアップ層からのAPIコール(図示省略)の応答結果として出力されるデータに合成してAPICシステムから出力される。また、そのときの出力段にパス切り替えの仕組みを入れることによって、API仕様や利用ユーザーのアクセス権あるいは属性等に応じて広告の有無を切り替え、データのみ又は広告合成済みデータのどちらでも出力することが可能となる。
【0098】
このような構成を採用すれば、特定の情報を必要としているユーザーに対して、当該ユーザーが必要としている情報に対応した内容の広告が配信されることとなり、広告配信者にとっては無駄な広告配信が低減され、ユーザーにとっても必要な情報がさらに得られることとなる。
【0099】
再び図17に戻って、上述したような広告配信手段13に加えて、APICシステムのAPI作成サーバー1には、データ提供者への対価を決定する利用者還元手段14を設けることも可能である。すなわち、この場合の利用者還元手段14は、前記自動API生成ツール12,32により作成されたデータベースの閲覧又は利用の頻度に対応して、そのデータベースのデータ提供者2(MU)への対価を決定する機能を有している。図17に示されている実施形態の場合には、上述したデータ利用サイト4で発生した広告収入や収益の一部が、API作成サーバー1に設けられた利用者還元手段14からデータ提供者2(MU)に還元されるようになっている。
【0100】
より具体的には、前述したように広告主は、広告データの登録とともに広告料の支払いを利用者還元手段14に対して行うが、一般利用者は、図19に示されているように、直接的又はマッシュアップソフトウェアMSWを有するマッシュアップ・サイトを通して間接的にAPICシステムにアクセスし、そこでユーザー認証が行われる。なお、マッシュアップ・サイトが代理でユーザー認証を行う場合は、一般ユーザーによる認証手順は省かれてもよい場合がある。APICシステムでは、前述したように個々のユーザーが所有する個別のマスタデータを適宜に集合させてAPI化し、そのAPI化した各データ集合体であるAPI(API_1,API_2,・・・,API_n)をネットワーク上で公開している。そして、上記認証したユーザー情報を元に、一般ユーザーによるアクセス要求対象のAPIに関する利用条件をAPI利用条件DBから取得し、該当一般ユーザーがアクセス要求しているAPI(API_1,API_2,・・・,API_n)へのアクセス権限を有しているか、または利用回数制限に達していないか等をチェックする。
【0101】
このときに、前記利用者還元手段としての利用者還元システム層は、API利用状況やAPI利用条件を元にして一般利用者やマッシュアップユーザーへの利用料金額を算出し、それと同時にデータ提供者、API使用作成者、マッシュアップユーザー等へ配分金額を決定し、各々に対する還元を実行する。
【0102】
なお、利用条件が設定されていないAPIの場合は、上述した手順は省かれてもよい場合がある。例えば、API仕様作成者の判断で、利用条件は利用ユーザー毎に設定可能とされてマッシュアップユーザーに対する割引等が設定されていれば、マッシュアップユーザーはデータの取得価格と自作マッシュアップの利用料をコントロールすることにより利益を得る事が可能となる。このときのAPI利用条件によっては、発生する収入源が広告料のみや利用料のみとなる場合がある。
【0103】
このような構成を採用すれば、閲覧又は利用の頻度が高いデータを提供したデータ提供者2(MU)に対して、提供データの閲覧又は利用の頻度に対応した対価が支払われることとなり、一般ユーザーから、より利用度の高い価値あるデータがより多く提供されることとなる。
【0104】
次に、前述した自動API生成ツール(APIクリエイター;APIC)を備えたAPICシステムを利用してAPI(関数、プロシージャ、変数、データ構造又はインタプリタなど)を公開することによって、テンプレート等からなるデータ集合体に対する対価を決定し、データ集合体の売買を可能とする情報利用システムの実施形態について説明する。
【0105】
前述したようにAPICシステムは、テンプレート機能を有していて、マスタユーザーが作成したデータベース構造やAPI仕様をテンプレートとして公開し、他のユーザーがそれに参加する事によって、同様のAPIの乱立という社会的無駄を無くし、同一構造仕様のデータ量が増え、マッシュアップもし易くなる為、データ流動性が高くなるという効果が得られると期待されるものであるが、テンプレート機能を提供するAPICシステムによるデータ集合体の売買を可能とする情報利用システムの一例が、図20に示されている。
【0106】
すなわち、図20に示されている情報利用システムは、データ集合体のうちのテンプレートを媒介としてデータを流通させ、又はテンプレートを売買するように構成されており、当該テンプレート流通システムにおいて、ユーザーは、API仕様を考案してテンプレートとして公開するユーザーと、他ユーザーのテンプレートに参加してデータ登録者として貢献するユーザーの2種類のユーザーに分類される。ここでは、末端の一般利用者はユーザーの範疇から外すこととしているが、API仕様作成マスタユーザーがデータの末端一般利用者である場合もある。
【0107】
また、本実施形態では、広告主(イ)及び広告主(ロ)が、テンプレートAとして公開されたAPI群のデータ(API_A1,API_A2,・・・,API_An)に対して広告を配信する対価として広告料を支払い、それが前述した利用者還元システムによって、データ提供者(1)、データ提供者(2)及びデータ提供者(3)又はAPI仕様作成マスタユーザー(A),(B)に対して、データ量・データ提供頻度・APIによるデータ被抽出回数またはその有用性等に応じて広告料からの還元額が分配される構成になされている。
【0108】
テンプレートBとして公開されたAPI群のデータの場合は、テンプレート作成者と末端の一般利用者が同一となっている。この場合には、利用者の立場として利用料を支払うとともに、テンプレート作成者の立場として利用者還元システムによって還元を受けるという流れになる。また、当然、データ提供者(4)、データ提供者(5)に対する対価も利用者還元システムによって分配される。
【0109】
本実施形態におけるAPIクリエイターを有するAPICシステムを用いたテンプレート売買システム又はテンプレートによるデータ流通システムでは、特定のテンプレートを作成・公開する環境を提供することによって、データやテンプレートの売買や広告表示、又は参加者への還元などが可能となり、それに伴って、様々なテンプレートで様々なお金の流れが誕生する。そして、データベース構造とAPI仕様、つまりテンプレートが異なれば、データ利用料金や参加者の業種、性別、趣味、職業、団体/個人などの属性や、広告主の属性も異なることとなるため、企業から個人、個人から個人、個人から企業、男性から女性、流通業界から製造業界等のように当然お金の流れも変わってくる。APICシステムが提供するこのようなテンプレートや、テンプレートに関するデータの売買システム、又はデータ流通システムによって、全ての参加者(広告主、マスタユーザー、利用者など)の間で発生するお金の流れや分配方法を参加者自らが自由に設定することができることとなる。そして、テンプレート自体を受け渡したり、それらの各テンプレートに関するデータを受け渡す種々の段階においてマージンを取得することによって多様な収益性が設定可能となる。
【0110】
そのときの課金は、例えば図21に示されているようして多様に行われる。まず、1)複数のデータ登録ユーザーの場合には、マスタユーザーのうちのAPI化されたテンプレートを所有するテンプレートオーナーが求めるデータを提供する際に、末端ユーザーやマッシュアップユーザーによる利用に対する課金が行われて上述した利用者還元システムにより支払いを受ける。さらに、2)複数のテンプレートオーナーが所有する複数のテンプレートA,B,C,・・・が、それらを利用したいユーザー(マッシュアップソフトウェアオーナー)に提供される際に課金が行われることによってテンプレートオーナーは支払いを受ける。さらに、3)マッシュアップソフトウェアオーナーによりテンプレートが組み合わされることなどにより作成されたアプリケーションやテンプレート等は、それらのテンプレート等を利用したいユーザー(一般利用者)に提供され、個別にまたは組み合わされてサイトなどに利用されるが、その提供の際の課金によってマッシュアップソフトウェアオーナーに対する支払いが行われる。
【0111】
また、図22に示されているように、データ集合体が移動する各段階において広告が合成されるように構成することも可能であり、その場合の課金は、例えば図23に示されているようにして利用者還元システム/課金システムにより行われる。なお、広告主が配信する広告は、最終的には端末一般利用者へ到達するという観点から、本実施形態においては、広告主からの広告配信を端末一般利用者として表しているが、実際に広告が合成される場所は、最小単位データ毎やAPI呼出しに対する応答出力毎など多岐に渡る。
【0112】
このようなテンプレートに関する課金システムを備えたAPICシステムを機能的に表したものが図24である。図24には、ある販売サイトの商品に対するカスタマーレビューを用いた実施形態における課金と還元の流れが示されているが、テンプレート、データ、お金の流れを説明するために、広告に関する記述や、データベース等については省略している。本実施形態におけるユーザーは、API仕様を考案してテンプレートとして公開する「API仕様作成マスタユーザー」と、当該「API仕様作成マスタユーザー」が公開した「カスタマーレビュー」テンプレートに参加してデータを提供・登録する「データ提供ユーザー」(つまり、カスタマーレビューを書く人)と、登録されたデータを自サイトで利用する「商品販売サイト」と、「商品販売サイト」の「顧客」と、からなり、次のa)〜f)の各ステップからなる流れでのデータとお金の循環が行われる。
【0113】
a)API仕様作成マスタユーザーがAPICサイトにてカスタマーレビューテンプレートを作成および公開する。
b)上記テンプレートに対して、データ提供ユーザーが各自のカスタマーレビューデータを登録する。
c)商品販売サイトがAPICサイト経由でカスタマーレビューデータを取得し、例えば「メーカー名」、「型番」、「商品名」、「発売日」、「定価」、「レビュー内容」等を自サイトにて掲載する。
d)商品販売サイトの顧客がカスタマーレビューデータを閲覧して、商品を購入する。
e)商品販売サイトがAPICサイトの課金システムにてカスタマーレビューデータの利用料金を支払う。
f)課金された料金から、データの利用頻度等に応じて利用者還元システムによって、データ提供者とマスタユーザーへ還元が行われる。
【0114】
上述したように、本実施形態にかかるテンプレート売買システムは、テンプレート以外のデータ集合体の提供にも同様に適用されるものであり、テンプレート以外のメタデータやマッシュアップソフトウェア等のデータ集合体を売買対象とすることも可能である。つまり、前述した1)〜3)にて登録及び公開されたデータ(Data)、テンプレート、アプリケーションなどに対する課金は、各々の所有者によりAPIシステムを介在した、いわゆるAPIマーケットでの売買で行われることとなる。
【0115】
すなわち、このデータ集合体の提供の各段階においてAPI売買を可能とするAPIマーケットは、例えば図25に示されているように、APICシステムに対して登録されたデータ群、テンプレート群、マッシュアップソフトウェア群などからなるデータ集合体を第三者が無料若しくは有料にてそれらを利用可能とする機能を有している。そして、そのようなAPIマーケットは、第1の特徴点として、データ(Data)及びマッシュアップソフトウェア(Mashup Softwear)の登録・作成者の販売流通を可能とする機能を有している。従来では、ネットワーク上に誰がどのようなデータなどを所有しているのかを探し出し、それを利用する際にはデータのオーナーにその都度、了承をもらう必要があったが、本実施形態にかかるAPIマーケットでは、データ及びマッシュアップソフトウェアのオーナーと、それらのデータ及びマッシュアップソフトウェアを利用したいユーザーとを簡易的に結びつけることが可能となり、かつデータ及びマッシュアップソフトウェアの権利はオーナーであるとことが明確化され、ダウンロード毎に課金を可能にすること等によって、権利保持したまま、或いは権利を開放して、二次利用を可能にする。
【0116】
本実施形態にかかるAPIマーケットの第2の特徴点としては、テンプレート群(データの無いフィールド情報だけのデータベース)などに対してデータ提供ユーザーがそのテンプレートに参加しデータを登録する機能がある。データが多く収集されれば、そのテンプレートは価値を持つようになることから、テンプレート作成者は、その価値の付いたテンプレートを必要な企業や個人に値段をつけて販売可能となる。例えば、ある自動車会社が[所有する車]に関するテンプレートを作成し、データ提供ユーザーが、そのテンプレートのフィールドに適したデータ、例えば、[車種]:軽自動車 、[色]:黒、[購入日]:2002/2/4などを登録していく場合、データ提供者に対して、テンプレート作成者から登録代などとして、対価を支払うことも可能である。そのようにしてデータが次第に増えてくると、テンプレートが価値を持つようになり、テンプレート作成者は、値段をつけて第三者(企業など)へデータを含むテンプレートごと販売する。すなわち、一つのテンプレートから生まれるお金の流れごと第三者へ販売することが可能となり、従来のダウンロード毎に課金するシステムとは異なる特徴を有する。
【0117】
さらに、第3の特徴点として、テンプレートがダウンロード毎に課金を行う場合には、データの無いフィールド情報だけの複雑なデータベース構造とAPIを汎用的に作ったユーザーが、その構造を別の用途で使用したいユーザーに販売可能とする点がある。それを利用するユーザー毎に登録されるデータは異なるので、同じテンプレートでもまったく異なる内容のデータベースの構築が可能となる。
【0118】
このような構成を有する本実施形態によれば、テンプレート等を一単位としたデータ集合体の売買が可能となるため、各データ集合体を受け渡す種々の段階において多様な収益性が設定可能となる。
【0119】
以上、本発明者によりなされた発明の実施形態を具体的に説明したが、本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変形可能であることはいうまでもない。
【産業上の利用可能性】
【0120】
以上述べたように本発明にかかる情報利用システム(APICシステム)は、多種多様なシステムに対して広く採用することが可能である。
【符号の説明】
【0121】
1 API作成サーバー
2 一般ユーザー(一般利用者)
3 他のユーザーサーバー
4 データ利用サイト(ユーザー)
11 データ群
12 自動API生成ツール
13 広告配信手段
14 利用者還元手段
31 データ群
32 自動API生成ツール
MU マスタユーザー(データ提供者)
DU 開発ユーザー
SA サイト運営者
MSW マッシュアップソフトウェア
MAPI マッシュアップAPI

【特許請求の範囲】
【請求項1】
ユーザーによりサーバー内に入力されたマスタデータを第三者に閲覧又は利用可能な状態でアクセス可能とするAPIを設計・公開する自動API生成手段を備えたものであって、
前記自動API生成手段は、入力と出力との間における処理内容を前記ユーザーに提示してAPI仕様を決定するAPI仕様決定機能と、その決定されたAPI仕様に基づいてデータベースを自動で作成するデータベース作成機能と、データの全部又は一部をネットワーク上に公開するAPI発信機能と、を備えていることを特徴とする情報利用システム。
【請求項2】
前記自動API生成手段は、前記API仕様に基づいてデータベースの作成を自動で行うように構成されていることを特徴とする請求項1記載の情報利用システム。
【請求項3】
前記自動API生成手段によりAPI化して作成されたデータベースを閲覧又は利用したユーザーに対して、そのユーザーが閲覧又は利用したデータベースの内容に対応した内容の広告を配信する広告配信手段を備えていることを特徴とする請求項1記載の情報利用システム。
【請求項4】
前記自動API生成手段によりAPI化して作成されたデータベースの閲覧又は利用の頻度に対応して、当該データベースのデータ提供者又は当該データベースの設計者への対価を決定する利用者還元手段を備えていることを特徴とする請求項1記載の情報利用システム。
【請求項5】
請求項4記載の利用者還元手段を利用するものであって、個々のユーザーが所有する個別のマスタデータを適宜に集合させてAPI化し、そのAPI化した各データ集合体をネットワーク上で公開して流通可能とする一方、それらの各データ集合体に対する対価を前記利用者還元手段を用いて決定する構成を備えていることを特徴とする情報利用システム。
【請求項6】
前記データ集合体が、メタデータ、テンプレート、又はマッシュアップソフトウェアであることを特徴とする請求項5記載の情報利用システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2011−258101(P2011−258101A)
【公開日】平成23年12月22日(2011.12.22)
【国際特許分類】
【出願番号】特願2010−133730(P2010−133730)
【出願日】平成22年6月11日(2010.6.11)
【出願人】(508122024)
【出願人】(508122035)
【Fターム(参考)】