(58)【調査した分野】(Int.Cl.,DB名)
前記ターゲットAPIを決定することは、前記APIデータベースにおけるどのAPIが前記入力の前記少なくとも1つの条件を満たすかを判定することを含む、請求項3に記載のコンピュータ実装システム。
前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有するか否かを判定することは、前記APIデータベースに格納された前記ターゲットAPIと関連付けられたデータから、前記ターゲットAPIが全ユーザに対してオープンであること、または、前記ユーザに対してオープンであることを判定することを含む、請求項1に記載のコンピュータ実装システム。
前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有するか否かを判定することは、前記ターゲットAPIと通信してユーザパーミッションを判定することを含む、請求項1に記載のコンピュータ実装システム。
前記動作は、さらに、入力に基づいて、前記APIデータベースにおけるAPIのリストを前記ユーザデバイスに提供することを含む、請求項1に記載のコンピュータ実装システム。
それぞれが少なくとも1つのコンピュータシステムと関連付けられたアプリケーションプログラミングインターフェース(API)と関連付けられ、APIデータベースに格納されるAPIデータを管理するためのコンピュータ実装方法であって、
第1コンピュータシステムに関連付けられたユーザデバイスから、第2コンピュータシステムのアイデンティティーを含まない入力を受け取ること、
ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連付けられたAPIを、前記入力を満たさないとして、除外すること、
前記入力に基づいて、前記第2コンピュータシステムのAPIであるターゲットAPIを決定すること、
前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有することを判定すること、
前記ユーザが前記ターゲットAPIへのアクセスを有すると判定された場合、前記APIデータベースから前記ターゲットAPIのドキュメンテーションを取得すること、および、
前記取得した前記ターゲットAPIのドキュメンテーションを前記ユーザデバイスに提供すること、を含む、方法。
さらに、前記ユーザが前記ターゲットAPIへのアクセスを有しないと判定された場合、前記ターゲットAPIまたは前記第2コンピュータシステムの少なくとも1つにリクエストを送信するよう前記ユーザに指示することを含む、請求項15に記載のコンピュータ実装方法。
【発明を実施するための形態】
【0010】
以下の詳細な説明は、添付の図面を参照する。可能な限り、図面および以下の説明では、同一または類似の部分を参照するために、同一の参照番号が使用される。いくつかの例示的な実施形態が本明細書で説明されるが、修正、適応、および他の実装が可能である。例えば、置換、追加、または修正が、図面に示された構成要素およびステップに行われてもよく、本明細書に記載された例示的な方法は、開示された方法にステップを置換、並べ替え、除去、または追加することによって修正されてもよい。したがって、以下の詳細な説明は、開示された実施形態および実施例に限定されない。むしろ、本発明の適切な範囲は、添付の特許請求の範囲によって定義される。
【0011】
本開示の実施形態は、API情報を管理するように構成されたシステムおよび方法を対象とする。
【0012】
図1Aを参照すると、出荷、輸送、および物流動作を可能にする通信のためのコンピュータ化されたシステムを含むシステムの例示的な実施形態を示す概略ブロック
図100が示されている。
図1Aに示すように、システム100は、様々なシステムを含むことができ、その各々は、1つまたは複数のネットワークを介して互いに接続することができる。システムはまた、例えばケーブルを使用して、直接接続を介して互いに接続されてもよい。図示のシステムは、出荷権限技術(Shipment authority technology:SAT)システム101、外部フロントエンドシステム103、内部フロントエンドシステム105、輸送システム107、モバイルデバイス107A、107B、および107C、売り手ポータル109、出荷および注文追跡(SOT)システム111、フルフィルメント(履行)最適化(Fulfillment optimization:FO)システム113、フルフィルメントメッセージングゲートウェイ(Fulfillment messaging gateway:FMG)115、サプライチェーン管理(Supply chain management:SCM)システム117、労働力システム119、モバイルデバイス119A、119B、および119C(フルフィルメントセンタ(Fulfilment center:FC)200の内部にあるものとして図示)、第三者フルフィルメントシステム121A、121B、および121C、フルフィルメントセンタ許可システム(FC Auth)123、ならびに労務管理システム(Labor management system:LMS)125を含む。
【0013】
いくつかの実施形態では、SATシステム101は、注文ステータスおよび配信ステータスを監視するコンピュータシステムとして実装されてもよい。例えば、SATシステム101は、注文がその約束納品日(Promised delivery date:PDD)を過ぎているかどうかを判定することができ、新しい注文を開始すること、未納品注文のアイテムを再出荷すること、未納品注文をキャンセルすること、注文顧客とのコンタクトを開始することなどを含む適切なアクションをとることができる。SATシステム101はまた、出力(特定の期間中に出荷されたパッケージの数など)および入力(出荷に使用するために受け取った空のボール紙箱の数など)を含む他のデータを監視することもできる。また、SATシステム101は、システム100内の異なるデバイス間のゲートウェイとして機能し、外部フロントエンドシステム103およびFOシステム113などのデバイス間の通信(例えば、ストアアンドフォワードまたは他の技術を使用する)を可能にしてもよい。
【0014】
外部フロントエンドシステム103は、いくつかの実施形態では、外部ユーザがシステム100内の1つまたは複数のシステムと対話することを可能にするコンピュータシステムとして実装することができる。例えば、システム100がシステムのプレゼンテーションを可能にして、ユーザがアイテムの注文を行うことを可能にする実施形態では、外部フロントエンドシステム103は、検索要求を受信し、アイテムページを提示し、支払い情報を要請するウェブサーバとして実装されてもよい。例えば、外部フロントエンド・システム103は、Apache HTTPサーバ、Microsoftインターネット・インフォメーション・サービス、NGINXなどのソフトウェアを実行するコンピュータまたはコンピュータとして実現することができる。他の実施形態では、外部フロントエンドシステム103は、外部デバイス(例えば、モバイルデバイス102Aまたはコンピュータ102B)からの要求を受信および処理し、それらの要求に基づいてデータベースおよび他のデータストアから情報を取得し、取得された情報に基づいて受信された要求への応答を提供するように設計されたカスタムウェブサーバソフトウェアを実行することができる。
【0015】
いくつかの実施形態では、外部フロントエンドシステム103は、ウェブキャッシングシステム、データベース、検索システム、または支払いシステムのうちの1つまたは複数を含むことができる。一態様では、外部フロントエンドシステム103は、これらのシステムのうちの1つまたは複数を備えることができ、別の態様では、外部フロントエンドシステム103は、これらのシステムのうちの1つまたは複数に接続されたインターフェース(たとえば、サーバ間、データベース間、または他のネットワーク接続)を備えることができる。
【0016】
図1B、
図1C、
図1D、および
図1Eによって示されるステップの例示的なセットは、外部フロントエンドシステム103のいくつかの動作を説明するのに役立つであろう。外部フロントエンドシステム103は、提示および/または表示のために、システム100内のシステムまたはデバイスから情報を受信することができる。例えば、外部フロントエンドシステム103は、検索結果ページ(Search result page:SRP)(例えば、
図1B)、単一詳細ページ(Single display page:SDP)(例えば、
図1C)、カードページ(例えば、
図1D)、または注文ページ(例えば、
図1E)を含む1つ以上のウェブページをホストまたは提供することができる。ユーザデバイス(例えば、モバイルデバイス102Aまたはコンピュータ102Bを使用する)は、外部フロントエンドシステム103にナビゲートし、サーチボックスに情報を入力することによってサーチを要求することができる。外部フロントエンド・システム103は、システム100内の1つまたは複数のシステムから情報を要求することができる。例えば、外部フロントエンドシステム103は、検索要求を満たす情報をFOシステム113に要求することができる。外部フロントエンドシステム103はまた、検索結果に含まれる各製品について、約束納品日または「PDD」を要求し、(FOシステム113から)受信することができる。PDDは、いくつかの実施形態では、製品を含むパッケージがいつユーザの所望の場所に到着するであろうかか、または製品が特定の期間内に、例えば、1日の終わり(午後11時59分)までに注文された場合、ユーザの所望の場所に配達されることを約束される日付の推定値を表すことができる(PDDは、FOシステム113に関して以下でさらに説明される)。
【0017】
外部フロントエンドシステム103は、情報に基づいてSRP (例えば、
図1B)を準備することができる。SRPは、検索要求を満たす情報を含むことができる。例えば、これは、検索要求を満たす製品の写真を含むことができる。SRPはまた、各製品のそれぞれの価格、または各製品の強化された配送オプション、PDD、重量、サイズ、オファー、割引などに関する情報を含むことができる。外部フロントエンドシステム103は、(例えば、ネットワークを介して)要求側ユーザデバイスにSRPを送信することができる。
【0018】
次いで、ユーザデバイスは、例えば、ユーザインターフェースをクリックまたはタップすることによって、または別の入力デバイスを使用して、SRP上で表される製品を選択することによって、SRPから製品を選択することができる。ユーザ・デバイスは、選択された製品に関する情報の要求を編成(formulate)し、それを外部フロントエンド・システム103に送ることができる。これに応答して、外部フロントエンドシステム103は、選択された製品に関する情報を要求することができる。例えば、情報は、それぞれのSRP上の製品について提示される情報を超える追加の情報を含むことができる。これは、例えば、賞味期限、原産国、重量、サイズ、パッケージ内のアイテムの数、取扱説明書、または製品に関する他の情報を含むことができる。また、情報は、(例えば、この製品および少なくとも1つの他の製品を購入した顧客のビッグデータおよび/または機械学習分析に基づく)類似の製品に対する推奨、頻繁に質問される質問に対する回答、顧客からのレビュー、製造業者情報、写真などを含むことができる。
【0019】
外部フロントエンドシステム103は、受信した製品情報に基づいてSDP (単一詳細ページ)(例えば、
図1C)を準備することができる。SDPは、「今すぐ買う」ボタン、「カードに追加する」ボタン、数量フィールド、アイテムの写真などの他の対話型要素も含むことができる。SDPは、製品を提供する売り手のリストをさらに含むことができる。リストは、各売り手が提供する価格に基づいて順序付けられてもよく、その結果、最低価格で製品を販売することを提案する売り手は、最上位にリストされてもよい。リストは、最高ランクの売り手が最上位にリストされるように、売り手ランキングに基づいて順序付けらてもよい。売り手ランキングは、例えば、約束されたPDDを満たす売り手の過去の実績を含む、複数の要因に基づいて定式化されてもよい。外部フロントエンドシステム103は、(例えば、ネットワークを介して)要求側ユーザデバイスにSDPを配信することができる。
【0020】
要求ユーザデバイスは、製品情報をリストするSDPを受信してもよい。その後、SDPを受信すると、ユーザデバイスはSDPと対話することができる。例えば、要求ユーザ装置のユーザは、SDP上の「カートに入れる」ボタンをクリックするか、または他の方法で対話することができる。これは、ユーザに関連付けられたショッピングカートに製品を追加する。ユーザ装置は、ショッピングカートに製品を追加するためのこの要求を外部フロントエンドシステム103に送信することができる。
【0021】
外部フロントエンドシステム103は、カートページ(例えば、
図1D)を生成することができる。カートページは、いくつかの実施形態では、ユーザが仮想「ショッピングカート」に追加した製品をリストし、ユーザデバイスは、SRP、SDP、または他のページ上のアイコンをクリックするか、または他の方法で対話することによって、カートページを要求してもよい。いくつかの実施形態では、カートページは、ユーザがショッピングカートに追加したすべての製品、ならびに各製品の数量、各製品毎の価格、関連する数量に基づく各製品の価格、PDDに関する情報、配送方法、配送コスト、ショッピングカート内の製品を修正するためのユーザインターフェース要素(例えば、数量の削除または修正)、他の製品を注文するためのオプション、または製品の定期的な配送を設定するためのオプション、利息支払いを設定するためのオプション、購入に進むためのユーザインターフェース要素などのカート内の製品に関する情報をリストすることができる。ユーザデバイスのユーザは、ショッピングカート内の製品の購入を開始するために、ユーザインターフェース要素(例えば、「今すぐ買う」と読むボタン)をクリックするか、さもなければユーザインターフェース要素と対話することができる。そうすると、ユーザ・デバイスは、購入を開始するためにこの要求を外部フロント・エンド・システム103に送信することができる。
【0022】
外部フロントエンドシステム103は、購入を開始する要求の受信に応答して、注文ページ(例えば、
図1E)を生成することができる。注文ページは、いくつかの実施形態では、ショッピングカートからアイテムを再リストし、支払いおよび出荷情報の入力を要求する。例えば、注文ページは、ショッピングカート内のアイテムの購入者に関する情報(例えば、名前、住所、電子メールアドレス、電話番号)、受取人に関する情報(例えば、名前、住所、電話番号、配達情報)、出荷情報(例えば、配達および/または集荷の速度/方法)、支払い情報(例えば、クレジットカード、銀行振込、小切手、格納クレジット)、現金受領を要求するためのユーザインターフェース要素(例えば、税務目的のための)などを要求するセクションを含むことができる。外部フロントエンドシステム103は、注文ページをユーザデバイスに送信することができる。
【0023】
ユーザデバイスは、オーダページに情報を入力し、その情報を外部フロントエンドシステム103に送信するユーザインターフェース要素をクリックするか、または他の方法で対話することができる。そこから、外部フロントエンドシステム103は、システム100内の異なるシステムに情報を送信して、ショッピングカート内の製品を用いた新しい注文の作成および処理を可能にすることができる。
【0024】
いくつかの実施形態では、外部フロントエンドシステム103は、売り手が注文に関する情報を送受信することを可能にするようにさらに構成されてもよい。
【0025】
内部フロントエンドシステム105は、いくつかの実施形態では、内部ユーザ(例えば、システム100を所有し、操作し、またはリースする組織の従業員)がシステム100内の1つまたは複数のシステムと対話することを可能にするコンピュータシステムとして実装され得る。例えば、ネットワーク101がシステムのプレゼンテーションを可能にして、ユーザがアイテムの注文を行うことを可能にする実施形態では、内部フロントエンドシステム105は、内部ユーザが注文に関する診断および統計情報を見ること、アイテム情報を修正すること、または注文に関する統計をレビューすることを可能にするウェブサーバとして実装されてもよい。例えば、内部フロントエンド・システム105は、Apache HTTPサーバ、Microsoftインターネット・インフォメーション・サービス、NGINXなどのソフトウェアを実行するコンピュータまたはコンピュータとして実現することができる。他の実施形態では、内部フロントエンドシステム105は、システム100に示されているシステムまたは装置(および図示されていない他の装置)からの要求を受信および処理し、それらの要求に基づいてデータベースおよび他のデータストアから情報を取得し、取得された情報に基づいて受信された要求に応答を提供するように設計されたカスタムウェブサーバソフトウェアを実行してもよい。
【0026】
いくつかの実施形態では、内部フロントエンドシステム105は、ウェブキャッシングシステム、データベース、検索システム、支払いシステム、分析システム、注文監視システムなどのうちの1つまたは複数を含むことができる。一態様では、内部フロントエンドシステム105は、これらのシステムのうちの1つまたは複数を備えることができ、別の態様では、内部フロントエンドシステム105は、これらのシステムのうちの1つまたは複数に接続されたインターフェース(たとえば、サーバ間、データベース間、または他のネットワーク接続)を備えることができる。
【0027】
輸送システム107は、いくつかの実施形態では、システム100内のシステムまたはデバイスとモバイルデバイス107A〜107Cとの間の通信を可能にするコンピュータシステムとして実装され得る。輸送システム107は、いくつかの実施形態では、1つまたは複数のモバイルデバイス107A〜107C(例えば、携帯電話、スマートフォン、PDAなど)から情報を受信することができる。例えば、いくつかの実施形態では、モバイルデバイス107A〜107Cは、配達員によって操作されるデバイスを備えてもよい。配達作業員は、正社員、一時社員、またはシフト社員であってもよく、モバイルデバイス107A〜107Cを利用して、ユーザによって注文された製品を含む荷物の配達を行うことができる。例えば、荷物を配達するために、配達作業者は、どの荷物を配達すべきか、およびどこに配達すべきかを示す通知をモバイルデバイス上で受信することができる。配達作業者は、配達場所に到着すると、荷物を(例えば、トラックの後ろに、または荷物のクレートに)配置し、モバイルデバイスを使用して荷物上の識別子(例えば、バーコード、画像、テキストストリング、RFIDタグなど)に関連するデータをスキャンまたは他の方法で取り込み、荷物を(例えば、前面ドアに置いたままにし、セキュリティガードを付けたままにし、受取人に渡すなどによって)配達することができる。さらに、モバイル機器107A−Cは、モバイル機器107A−Cが輸送システム107と通信することを可能にするアプリケーション及び/又は通信ソフトウェアを実行し、モバイル機器107A−Cに含まれる表示装置を介してインターフェース上にコンテンツを生成し表示することができる。例えば、モバイルデバイス107A〜Cは、配達関連情報を輸送システム107に送信するためにモバイルアプリケーションを実行することができる。いくつかの実施形態では、配達作業者は、荷物の写真(複数可)をキャプチャすることができ、および/またはモバイルデバイスを使用して署名を取得することができる。モバイルデバイスは、例えば、時間、日付、GPS位置、写真、配達作業者に関連付けられた識別子、モバイルデバイスに関連付けられた識別子などを含む、配達に関する情報を含む通信を輸送システム107に送信することができる。輸送システム107は、システム100内の他のシステムによるアクセスのために、この情報をデータベース(図示せず)に記憶することができる。輸送システム107は、いくつかの実施形態では、この情報を使用して、特定の荷物の位置を示す追跡データを準備し、他のシステムに送信することができる。
【0028】
いくつかの実施形態では、あるユーザは、1つの種類のモバイルデバイスを使用することができる(例えば、正社員は、バーコードスキャナ、スタイラス、および他のデバイスなどのカスタムハードウェアを有する専用のPDAを使用することができる)が、他のユーザは、他の種類のモバイルデバイスを使用することができる(例えば、一時的またはシフト労働者は、既製のモバイル電話および/またはスマートフォンを利用することができる)。
【0029】
いくつかの実施形態では、輸送システム107は、ユーザを各デバイスに関連付けることができる。例えば、輸送システム107は、ユーザ(例えば、ユーザ識別子、従業員識別子、または電話番号によって表される)と移動装置(例えば、国際移動装置識別子(IMEI)、国際移動加入識別子(IMSI)、電話番号、汎用一意識別子(UUID)、またはグローバル一意識別子(GUID)によって表される)との間の関連付けを記憶することができる。輸送システム107は、とりわけ、作業者の位置、作業者の効率、または作業者の速度を決定するために、この関連付けを、配達時に受信されたデータと共に使用して、データベースに格納されたデータを分析することができる。
【0030】
売り手ポータル109は、いくつかの実施形態では、売り手または他の外部エンティティがシステム100内の1つまたは複数のシステムと電子的に通信することを可能にするコンピュータシステムとして実装され得る。例えば、売り手は、コンピュータシステム(図示せず)を利用して、売り手が売り手ポータル109を使用してシステム100を通して売りたい製品について、製品情報、注文情報、連絡先情報などをアップロードまたは提供することができる。
【0031】
いくつかの実施形態では、出荷および注文追跡システム111は、(例えば、デバイス102A〜102Bを使用するユーザによって)顧客によって注文された製品を含むパッケージの位置に関する情報を受信し、格納し、転送するコンピュータシステムとして実装され得る。いくつかの実施形態では、出荷および注文追跡システム111は、顧客によって注文された製品を含むパッケージを配送する出荷会社によって運営されるウェブサーバ(図示せず)からの情報を要求または格納することができる。
【0032】
いくつかの実施形態では、出荷および注文追跡システム111は、システム100に示されるシステムからの情報を要求し、記憶することができる。例えば、出荷及び注文追跡システム111は、輸送システム107から情報を要求することができる。上述のように、輸送システム107は、ユーザ(例えば、配達作業員)または車両(例えば、配達トラック)のうちの1つ以上に関連付けられた1つ以上のモバイルデバイス107A〜107C(例えば、携帯電話、スマートフォン、PDAなど)から情報を受信してもよい。いくつかの実施形態では、出荷および注文追跡システム111はまた、労働力管理システム(WMS)119から情報を要求して、フルフィルメントセンター(例えば、フルフィルメントセンター200)内の個々の製品の位置を決定することができる。出荷および注文追跡システム111は、輸送システム107またはWMS 119のうちの1つまたは複数からデータを要求し、それを処理し、要求に応じてそれをデバイス(たとえば、ユーザデバイス102Aおよび102B)に提示することができる。
【0033】
いくつかの実施形態では、フルフィルメント最適化(FO)システム113は、他のシステム(例えば、外部フロントエンドシステム103および/または出荷および注文追跡システム111)からの顧客注文に関する情報を記憶するコンピュータシステムとして実装されてもよい。FOシステム113はまた、特定のアイテムがどこに保持または格納されるかを記述する情報を格納してもよい。たとえば、顧客が注文した特定のアイテムは1つのフルフィルメントセンターにのみ保存され、他の特定のアイテムは複数のフルフィルメントセンターに保存される場合がある。さらに他の実施形態では、特定のフルフィルメントセンターは、特定のセットのアイテム(例えば、生鮮食品または冷凍製品)のみを格納するように設計されてもよい。FOシステム113は、この情報ならびに関連する情報(例えば、数量、サイズ、受領日、有効期限など)を格納する。
【0034】
FOシステム113はまた、各製品について対応するPDD (約束納期)を計算することができる。PDDは、いくつかの実施形態では、1つまたは複数の要因に基づくことができる。例えば、FOシステム113は、製品の過去の需要(例えば、その製品がある期間中に何回注文されたか)、製品の予想需要(例えば、来るべき期間中にその製品を注文するために何人の顧客が予想されるか)、ある期間中にいくつの製品が注文されたかを示すネットワーク全体の過去の需要、来るべき期間中にいくつの製品が注文されることが予想されるかを示すネットワーク全体の予想需要、各フルフィルメントセンタ200に格納された製品の1つまたは複数のカウント、その製品の予想または現在の注文などに基づいて、製品のPDDを計算することができる。
【0035】
いくつかの実施形態では、FOシステム113は、定期的に(例えば、1時間ごとに)各製品のPDDを決定し、それをデータベースに格納して、検索または他のシステム(例えば、外部フロントエンドシステム103、SATシステム101、出荷および注文追跡システム111)に送信することができる。他の実施形態では、FOシステム113は、1つまたは複数のシステム(例えば、外部フロントエンドシステム103、SATシステム101、出荷および注文追跡システム111)から電子要求を受信し、オンデマンドでPDDを計算することができる。
【0036】
フルフィルメントメッセージングゲートウェイ115は、いくつかの実施形態では、FOシステム113などのシステム100内の1つ以上のシステムから1つのフォーマットまたはプロトコルで要求または応答を受信し、それを別のフォーマットまたはプロトコルに変換し、変換されたフォーマットまたはプロトコルで、WMS 119または3パーティフルフィルメントシステム121A、121B、または121Cなどの他のシステムに転送するコンピュータシステムとして実装することができる。
【0037】
サプライチェーン管理(SCM)システム117は、いくつかの実施形態では、予測機能を実行するコンピュータシステムとして実装することができる。例えば、SCMシステム117は、例えば、製品に対する過去の需要、製品に対する予想される需要、ネットワーク全体の過去の需要、ネットワーク全体の予想される需要、各フルフィルメントセンタ200に格納されたカウント製品、各製品に対する予想または現在の注文などに基づいて、特定の製品に対する需要のレベルを予測することができる。この予測されたレベルおよびすべてのフルフィルメントセンターにわたる各製品の量に応答して、SCMシステム117は、特定の製品に対する予測された需要を満たすのに十分な量を購入し、在庫するための1つまたは複数の購入注文を生成することができる。
【0038】
労働力管理システム(WMS)119は、ある実施形態では、ワークフローを監視するコンピュータシステムとして実装されてもよい。例えば、WMS 119は、個別のイベントを示すイベントデータを個々のデバイス(例えば、デバイス107A〜107Cまたは119A〜119C)から受信することができる。例えば、WMS 119は、パッケージを走査するためにこれらの装置の1つの使用を示すイベントデータを受信してもよい。フルフィルメントセンター200および
図2に関して以下で説明するように、フルフィルメントプロセス中に、パッケージ識別子(例えば、バーコードまたはRFIDタグデータ)を、特定の段階で機械によってスキャンまたは読み取ることができる(例えば、自動またはハンドヘルドバーコードスキャナ、RFIDリーダ、高速カメラ、タブレット119A、モバイルデバイス/PDA 119B、コンピュータ119Cなどのデバイス)。WMS 119は、パッケージ識別子、時間、日付、位置、ユーザ識別子、またはその他の情報と共に、パッケージ識別子の走査または読取りを示す各イベントを対応するデータベース(図示せず)に格納し、この情報を他のシステム(例えば、出荷および注文追跡システム111)に提供することができる。
【0039】
WMS 119は、いくつかの実施形態では、1つまたは複数のデバイス(たとえば、デバイス107A〜107Cまたは119A〜119C)をシステム100に関連する1つまたは複数のユーザに関連付ける情報を記憶することができる。例えば、いくつかの状況では、ユーザ(パートまたはフルタイムの従業員など)は、ユーザがモバイルデバイスを所有するモバイルデバイス(例えば、モバイルデバイスはスマートフォンである)に関連付けられ得る。他の状況では、ユーザは、ユーザがモバイルデバイスを一時的に保管しているという点で、モバイルデバイスに関連付けられてもよい(例えば、ユーザは、日の始めにモバイルデバイスをチェックアウトし、日中にモバイルデバイスを使用し、日の終わりにモバイルデバイスを戻してもよい)。
【0040】
WMS 119は、いくつかの実施形態では、システム100に関連する各ユーザの作業ログを維持することができる。例えば、WMS 119は、任意の割り当てられたプロセス(例えば、トラックのアンロード、ピックゾーンからのアイテムのピッキング、リビン壁工事(rebin wall work)、アイテムのパッキング)、ユーザ識別子、位置(例えば、フルフィルメントセンタ200内のフロアまたはゾーン)、従業員によってシステムを通って移動されたユニットの数(例えば、ピッキングされたアイテムの数、パッキングされたアイテムの数)、デバイス(例えば、デバイス119A〜119C)に関連付けられた識別子などを含む、各従業員に関連付けられた情報を記憶することができる。いくつかの実施形態では、WMS 119は、デバイス119A〜119C上で動作するタイムキーピングシステムなどのタイムキーピングシステムからチェックインおよびチェックアウト情報を受信することができる。
【0041】
第三者フルフィルメント(3PL)システム121A〜121Cは、いくつかの実施形態では、ロジスティクスおよび製品のサードパーティプロバイダに関連するコンピュータシステムを表す。例えば、(
図2に関して以下に説明するように)いくつかの製品がフルフィルメントセンター200に保管されている間、他の製品はオフサイトで保管されてもよく、オンデマンドで生産されてもよく、またはそうでなければフルフィルメントセンター200に保管するために利用できなくてもよい。3PLシステム121A〜121Cは、FOシステム113から(例えば、FMG 115を介して)注文を受信するように構成されてもよく、製品および/またはサービス(例えば、配送または設置)を顧客に直接提供してもよい。いくつかの実施形態では、3PLシステム121A〜121Cのうちの1つまたは複数は、システム100の一部とすることができ、他の実施形態では、3PLシステム121A〜121Cのうちの1つまたは複数は、システム100の外部(例えば、サードパーティプロバイダによって所有または運営される)とすることができる。
【0042】
いくつかの実施形態では、フルフィルメントセンターオースシステム(FCオース)123は、様々な機能を有するコンピュータシステムとして実装されてもよい。例えば、いくつかの実施形態では、FC Auth 123は、システム100内の1つまたは複数の他のシステムのためのシングルサインオン(SSO)サービスとして働くことができる。例えば、FC認証123は、ユーザが内部フロントエンドシステム105を介してログインすることを可能にし、ユーザが出荷および注文追跡システム111でリソースにアクセスする同様の特権を有することを決定し、ユーザが2回目のログインプロセスを必要とせずにそれらの特権にアクセスすることを可能にする。FCオース123は、他の実施形態では、ユーザ(例えば、従業員)が特定のタスクに自分自身を関連付けることを可能にすることができる。例えば、従業員の中には、電子デバイス(デバイス119A〜119Cなど)を持たないことがあり、代わりに、1日のコース中に、フルフィルメントセンタ200内でタスクからタスクへ、およびゾーンからゾーンへ移動することがある。FC Auth 123は、それらの従業員が、彼らがどのタスクを実行しているか、および彼らが異なる時刻にどのゾーンにいるかを示すことを可能にするように構成され得る。
【0043】
労働管理システム(LMS)125は、いくつかの実施形態では、従業員(フルタイムおよびパートタイムの従業員を含む)のための出勤および残業情報を記憶するコンピュータシステムとして実装されてもよい。例えば、LMS 125は、FC Auth 123、WMA 119、デバイス119A〜119C、輸送システム107、および/またはデバイス107A〜107Cから情報を受信することができる。
【0044】
図1Aに示される特定の構成は、単なる例である。例えば、
図1Aは、FOシステム113に接続されたFCオースシステム123を示すが、全ての実施形態がこの特定の構成を必要とするわけではない。実際、いくつかの実施形態では、システム100内のシステムは、インターネット、イントラネット、WAN (ワイドエリアネットワーク)、MAN (メトロポリタンエリアネットワーク)、IEEE 802.11a/b/g/n規格に準拠する無線ネットワーク、専用線などを含む1つまたは複数の公衆またはプライベートネットワークを介して互いに接続され得る。いくつかの実施形態では、システム100内のシステムの1つ以上は、データセンター、サーバファームなどに実装された1つ以上の仮想サーバとして実装されてもよい。
【0045】
図2は、フルフィルメントセンター200を示す。フルフィルメントセンター200は、注文時に顧客に出荷するためのアイテムを格納する物理的位置の一例である。フルフィルメントセンタ(FC)200は、複数のゾーンに分割することができ、各ゾーンは
図2に示されている。いくつかの実施形態では、これらの「ゾーン」は、アイテムを受け取り、アイテムを格納し、アイテムを取り出し、アイテムを出荷するプロセスの異なる段階間の仮想分割と考えることができ、したがって、「ゾーン」は
図2に示されているが、ゾーンの他の分割も可能であり、
図2のゾーンは、いくつかの実施形態では、省略、複製、または修正することができる。
【0046】
インバウンドゾーン203は、
図1Aのシステム100を使用して製品を販売したい売り手からアイテムが受け取られるFC 200の領域を表す。例えば、売り手は、トラック201を使用してアイテム202A及び202Bを配送することができる。アイテム202Aは、それ自体の出荷パレットを占有するのに十分な大きさの単一のアイテムを表すことができ、アイテム202Bは、スペースを節約するために同じパレット上に一緒に積み重ねられたアイテムのセットを表すことができる。
【0047】
作業者は、インバウンドゾーン203内のアイテムを受け取ることができ、任意選択で、コンピュータシステム(図示せず)を使用してアイテムの損傷および正しさをチェックすることができる。例えば、作業者は、コンピュータシステムを使用して、アイテム202Aおよび202Bの数量をアイテムの注文数量と比較することができる。数量が一致しない場合、その作業者は、アイテム202Aまたは202Bのうちの1つまたは複数を拒否することができる。量が一致した場合、作業者はそれらのアイテム(例えば、人形、手すり、フォークリフト、または手動で使用)を、ゾーン205を緩衝するように動かすことができる。バッファゾーン205は、例えば、予測される需要を満たすのに十分な量のアイテムがピッキングゾーン内にあるため、ピッキングゾーン内で現在必要とされていないアイテムのための一時保管領域であってもよい。いくつかの実施形態では、フォークリフト206は、物品をバッファゾーン205の周り、およびインバウンドゾーン203とドロップゾーン207との間で移動させるように動作する。ピッキングゾーンにアイテム202Aまたは202Bが必要な場合(例えば、予想される需要のため)、フォークリフトは、アイテム202Aまたは202Bを落下ゾーン207に移動させることができる。
【0048】
ドロップゾーン207は、アイテムがピッキングゾーン209に移動される前にアイテムを格納するFC 200の領域であってもよい。ピッキングタスクに割り当てられた作業者(「ピッカー」)は、ピッキングゾーン内のアイテム202Aおよび202Bに接近し、ピッキングゾーンのバーコードをスキャンし、モバイルデバイス(例えば、デバイス119B)を使用してアイテム202Aおよび202Bに関連付けられたバーコードをスキャンすることができる。次いで、ピッカーは、アイテムをピッキング・ゾーン209に(例えば、カートの上に置くか、またはそれを運ぶことによって)取り込むことができる。
【0049】
ピッキングゾーン209は、アイテム208が保管(storage)ユニット210に保管されるFC 200の領域であってもよい。いくつかの実施形態では、保管ユニット210は、物理的な棚、本棚、箱、運搬箱、冷蔵庫、冷凍庫、冷蔵庫などのうちの1つまたは複数を含むことができる。いくつかの実施形態では、ピッキングゾーン209は、複数のフロアに編成されてもよい。いくつかの実施形態では、作業者または機械は、例えば、フォークリフト、エレベータ、コンベヤベルト、カート、ハンドトラック、ドリー、自動ロボットまたは装置、あるいは手動を含む複数の方法で、物品をピッキングゾーン209に移動させることができる。例えば、ピッカーは、アイテム202Aおよび202Bをドロップゾーン207内のハンドトラックまたはカート上に置き、アイテム202Aおよび202Bをピッキングゾーン209まで歩くことができる。
【0050】
ピッカーは、保管ユニット210上の特定のスペースのような、ピッキングゾーン209内の特定のスポットにアイテムを配置する(または「収納する」)命令を受け取ることができる。例えば、ピッカーは、モバイルデバイス(例えば、デバイス119B)を使用してアイテム202Aをスキャンすることができる。デバイスは、例えば、通路、棚、および位置を示すシステムを使用して、ピッカーがアイテム202Aを収納すべき場所を示すことができる。次に、デバイスは、その位置にアイテム202Aを格納する前に、その位置でバーコードをスキャンするようにピッカーに促すことができる。装置は、
図1のWMS 119のようなコンピュータシステムに(例えば、無線ネットワークを介して)データを送信し、装置119Bを使用するユーザによってアイテム202Aがその場所に格納されたことを示すことができる。
【0051】
ユーザが注文を出すと、ピッカは、保管ユニット210から1つまたは複数のアイテム208を取り出すために、デバイス119B上で命令を受け取ることができる。ピッカーは、アイテム208を取り出し、アイテム208上のバーコードをスキャンし、それを搬送機構214上に置くことができる。搬送機構214はスライドとして表されているが、いくつかの実施形態では、搬送機構は、コンベヤベルト、エレベータ、カート、フォークリフト、ハンドトラック、台車、カートなどのうちの1つまたは複数として実施することができる。次に、アイテム208は、パッキングゾーン211に到着することができる。
【0052】
パッキングゾーン211は、アイテムがピッキングゾーン209から受け取られ、最終的に顧客に出荷するためにボックスまたはバッグにパッキングされるFC 200の領域であってもよい。パッキングゾーン211では、アイテムを受け取るように割り当てられた作業者(「リビン(rebin)作業者」)は、ピッキングゾーン209からアイテム208を受け取り、それがどの注文に対応するかを決定することができる。例えば、リビン作業者は、アイテム208上のバーコードをスキャンするために、コンピュータ119Cなどのデバイスを使用することができる。コンピュータ119Cは、どの注文アイテム208が関連付けられているかを視覚的に示すことができる。これは、例えば、注文に対応する壁216上のスペースまたは「セル」を含むことができる。注文が完了すると(例えば、セルが注文のためのすべてのアイテムを含むため)、リビン作業者は、注文が完了したことをパッキング作業者(または「パッカー」)に示すことができる。パッカーは、セルからアイテムを取り出し、それらを出荷のために箱または袋に入れることができる。その後、パッカーは、例えば、フォークリフト、カート、ドリー、ハンドトラック、コンベヤーベルトを介して、又は他の方法で、箱又はバッグをハブゾーン213に送ることができる。
【0053】
ハブゾーン213は、パッキングゾーン211から全てのボックスまたはバッグ(「パッケージ」)を受け取るFC 200の領域であってもよい。ハブゾーン213内の作業者および/または機械は、小包218を取り出し、各小包が配達エリアのどの部分に行こうとするかを決定し、小包を適切なキャンプゾーン215にルーティングすることができる。例えば、配達エリアが2つのより小さいサブエリアを有する場合、パッケージは、2つのキャンプゾーン215のうちの1つに行くことができる。いくつかの実施形態では、作業者または機械は、(例えば、デバイス119A〜119Cのうちの1つを使用して)パッケージをスキャンして、その最終的な宛先を決定することができる。パッケージをキャンプゾーン215にルーティングすることは、例えば、(例えば、郵便番号に基づいて)パッケージが向けられている地理的エリアの一部を決定することと、地理的エリアの一部に関連付けられたキャンプゾーン215を決定することとを含むことができる。
【0054】
キャンプゾーン215は、いくつかの実施形態では、1つまたは複数の建物、1つまたは複数の物理的空間、または1つまたは複数のエリアを備えることができ、ハブゾーン213から受け取られたパッケージは、ルートおよび/またはサブルートに分類される。いくつかの実施形態では、キャンプゾーン215は、FC 200から物理的に分離されているが、他の実施形態では、キャンプゾーン215は、FC 200の一部を形成することができる。
【0055】
キャンプゾーン215内の作業者および/または機械は、例えば、既存のルートおよび/またはサブルートに対する目的地の比較、各ルートおよび/またはサブルートに対する作業負荷の計算、時刻、出荷方法、パッケージ220を出荷するためのコスト、パッケージ220内のアイテムに関連付けられたPDDなどに基づいて、パッケージ220がどのルートおよび/またはサブルートに関連付けられるべきかを決定することができる。いくつかの実施形態では、作業者または機械は、(例えば、デバイス119A〜119Cのうちの1つを使用して)パッケージをスキャンして、その最終的な宛先を決定することができる。パッケージ220が特定のルートおよび/またはサブルートに割り当てられると、作業者および/または機械は、出荷されるパッケージ220を移動させることができる。例示的な
図2において、キャンプゾーン215は、トラック222、自動車226、および配達作業員224Aおよび224Bを含む。いくつかの実施形態では、トラック222は、配達作業員224Aによって駆動されてもよく、配達作業員224Aは、FC 200のパッケージを配達する常勤の従業員であり、トラック222は、FC 200を所有、リース、または運営する同じ会社によって所有、リース、または運営される。いくつかの実施形態では、自動車226は、配達作業者224Bによって駆動されてもよく、配達作業者224Bは、必要に応じて(例えば、季節的に)配達している「屈曲」または時折の作業者である。自動車226は、配達員224Bによって所有され、リースされ、または操作されてもよい。
【0056】
図3は、開示された実施形態と一致する、API情報を管理するための例示的なシステム(例示的なシステム300)の概略図を示す。システム300は、API管理システム310、API接続システム318、コンピュータ・システム303、API105、データベース330およびネットワーク320を含むことができる。コンピュータ・システムのAPIは、ネットワーク320を介して互いに接続されてもよい。コンピュータ・システム303は、1つ以上のAPIを含むことができる。同じコンピュータシステムのAPIは、ネットワーク320を介して互いに接続されてもよい。1つのコンピュータ・システムに関連するユーザ・デバイス、またはユーザ・デバイスのユーザは、ネットワーク320を介して他のコンピュータ・システムのAPIに接続することもできる。
【0057】
コンピュータ・システム303は、システム100内の1つ以上のシステムを含むコンピュータ・システムであってもよい。複数のコンピュータ・システム303が存在してもよく、それぞれが互いに接続されていてもよい(例えば、直接的に、またはネットワーク320を介して)。コンピュータ・システム303は、サーバ、ワークステーション、デスクトップ・コンピュータ、モバイル・装置、または特殊目的のコンピューティング・装置などの1つ以上のコンピューティング・装置を含むことができる。コンピュータ・システム303は、システム100内の様々なシステムのサブシステムの一部であってもよい。例えば、コンピュータシステム303は、各製品について対応するPDD (約束納期)を計算するFOシステム113のサブシステムであってもよい。
【0058】
API305は、コンピュータ・システム303が1つ以上のAPIを有していてもよく、あるいは、それぞれが独自のAPIを有するサブシステムを有していてもよいので、1つ以上のAPIを備えてもよい。API305はまた、1つ以上のコンピュータシステムに関連付けられてもよい。APIは、本明細書で集合的にAPIと呼ばれる複数の機能および層を備えることができる。いくつかの実施形態において、APIは、ユーザインタフェース層、API機能層、コンピュータシステム層、共通言語層、または後にデータベースなどの複数の層を含むことができる。層は、複数の機能を含むことができる。例えば、API機能層は、アプリケーション・プログラマ、顧客、スーパーバイザなど、APIのユーザに異なるリソースまたはサービスを提供する機能のグループを含むことができる。ユーザは、ネットワーク・プラットフォームに関連し、接続されている機能を使用してもよく、このネットワークは、コンピュータ・システム内のプライベート・ネットワーク、オペレーティング環境、もしくは、組織全体であるか、または、外部ユーザに関連するパブリックネットワークである。プログラマ・ユーザは、ネットワーク・リソースやその他のWebサービスを最大限に活用するコンピューティング・システム用のWebアプリケーションを作成できる。これらのネットワーク・リソースが実際にどのように動作するか、または利用可能になるかについての複雑な技術的詳細を理解する必要はない。
【0059】
API305を使用するアプリケーションは、複数のプログラミング言語で書かれてもよい。例えば、アプリケーションは、.Net Framework、.Net Compact Framework (およびVisual Basic、Cなどの関連言語)、Java、C++、Objective−C、HTML、HTML/AJAXの組み合わせ、XML、または、Javaアプレットを含むHTMLで記述されてよい。いくつかの実施形態において、API305は、コンピュータシステムまたはサブシステムの機能性のために最適化された限定された数の好ましい選択言語をサポートしてもよい。他の実施形態では、API305は、プログラミング言語を共通言語層によってサポートされる中間言語に翻訳し、ネットワーク320を介してコンピュータシステム303に接続するAPIの共通言語出力の一部として含まれる共通言語層を備えてもよい。このようにして、API305は、様々な種類のコンピュータ・システム、サブシステム、および実用的なニーズに対応するために、ならびにAPI管理システム310などのネットワーク320を介して例示的なシステム300の他の構成要素がそれらの機能を達成することを可能にするために、幅広く多様なアプリケーションを効果的に提供することができる。
【0060】
API管理システム310は、開示された実施形態と矛盾しない動作を実行するためにAPI管理システム310の1つ以上のプロセッサによって使用されるデータおよび/またはソフトウェア命令を記憶するように構成された1つ以上の記憶装置を含むか、またはそれらにアクセスすることができる。例えば、API管理システム310は、開示された方法に特有の動作を含む、プロセッサによって実行されるときにいくつかの動作を実行する1つ以上のソフトウェアプログラムを記憶するように構成されたメモリを含んでもよい。開示された実施形態は、専用タスクを実行するように構成された別個のプログラムまたはコンピュータに限定されない。例えば、API管理システム310は、単一のプログラムまたは複数のプログラムを記憶するメモリを含んでもよい。さらに、API管理システム310は、API管理システム310から遠隔に配置された1つ以上のプログラムを実行してもよい。例えば、API管理システム310は、リモートコンポーネント(データベース330など)に含まれるメモリに記憶された1つ以上のリモートプログラムにアクセスすることができ、これが実行されると、開示された実施形態と整合する動作を実行する。
【0061】
データベース330は、1つ以上のコンピュータ・システムまたは実装されるコンピュータ・システムであってよい。データベース330は、APIの情報に関連するオペレーションを生成し、管理し、提供するサーバソフトウェアを含んでもよい。いくつかの実施形態において、API管理システム310は、API管理システム310によって実行される動作のためのAPIの情報に関連付けられたサービスを生成、管理および提供する、データベース330に関連付けられた別個のサーバまたは他のコンピューティング装置と接続してもよい。
【0062】
データベース330は、開示された実施形態と一致して、API305の情報を記憶するように構成されてもよい。データベース330は、APIの登録・更新時に提供されるAPIの情報、インデックス情報、識別情報、アクセス情報、導入・ルール、開発・デバッグ上の注意、更新毎の情報変更を記憶するように構成されてもよい。データベース330は、データベース330に登録されたすべてのAPIに対して、APIを選択または使用する記録をそれぞれ有するエントリを作成することができる。APIを選択する記録は、APIの各部分の各APIの選択に関するものであってもよい。APIの使用記録は、APIの各部分の各APIの使用に関するものであってもよい。データベース330はまた、ネットワーク320を介してAPIと接続され、検索し、選択したすべてのユーザのためのエントリを作成することができる。データベース330は、ネットワーク320を介した、または、API管理システム310に関連付けられた各ユーザの活動の記録を保持することができる。ユーザのアクティビティは、APIを用いた検索、選択、接続を含むことができ、各APIを用いたそれらのアクティビティに関して記録することができる。
【0063】
データベース330は、API管理システム310に関連付けられてもよく、ネットワーク320にアクセス可能にされてもよい。いくつかの実施形態では、データベース330は、API管理システム310の一部として提供されてもよい。API管理システム310は、1つまたは複数の記憶メモリを有することができ、記憶メモリは、実行されると、開示された実施形態と一致する動作を実行する1つまたは複数のプログラムを格納している。API管理システム310は、APIの情報に関連するオペレーションを生成、管理、および提供するサーバソフトウェアを含むデータベースを有することができる。API管理システム310はまた、データベース330の開示された実施形態と一致して、そのデータベース部分または1以上の記憶メモリにエントリを作成し、APIの使用の記録およびすべてのユーザの記録を有することができる。例えば、API管理システム310がAPIを検索するためにユーザから入力を受け取ると、API管理システム310および/またはデータベース330は、APIを検索するユーザのレコードに検索を記録してもよい。ユーザが、ユーザが使用する予定のAPIの一部を選択すると、API管理システム310および/またはデータベース330は、APIを選択したユーザのレコード、APIを選択したレコード、およびAPIの一部を選択したレコードに、その選択を記録することができる。そして、ユーザがAPIの一部に接続すると、API管理システム310および/またはデータベース330は、APIを使用してユーザのレコード、APIを使用したレコード、およびAPIの一部を使用したレコードにアクティビティを記録することができる。
【0064】
ネットワーク320は、
図3の構成要素間の通信を提供するように構成され得る。例えば、ネットワーク320は、インターネット、ローカルエリアネットワーク、またはAPI管理システム310がAPI管理システム310の構成要素間で情報を送受信することを可能にする他の適切な接続のような、通信を提供し、情報を交換し、および/または情報の交換を容易にする、任意のタイプのネットワーク(インフラストラクチャを含む)とすることができる。いくつかの実施形態では、ネットワーク320は、
図1Aの1つまたは複数のネットワークとは別個のネットワークとすることができる。他の実施形態では、ネットワーク320は、
図1Aの1つまたは複数のネットワークと統合されるか、または接続されてもよい。
【0065】
API接続システム318は、ユーザをターゲットAPIに接続するように構成されてもよい。ある実施形態では、API接続システム318は、
図6(後述)のステップ640に続いて、ユーザをターゲットAPIに接続するか、またはAPI管理システム310からの要求を受信した後に開始してもよい。API接続システム318は、API管理システム310に登録されたすべてのAPIを記憶するメモリを有することができ、それにより、ユーザは、ターゲットAPI上で作業する際に、ターゲットAPIのコンピュータシステムなどの他の装置またはシステムと通信することなく、または接続されることなく、API接続システム318のサーバ上で作業することができる。API接続システム318は、APIを記憶するメモリを有してもよく、あるいはデータベース330に遠隔的に記憶してもよい。いくつかの実施形態では、API接続システム318は、API管理システム310の一部であってもよい。
【0066】
コンピュータ・システム303は、1つ以上のAPI305を有することができる。APIを有するコンピュータ・システム303は、ある実施形態では、コンピュータ・システム303に関連するユーザ・デバイスが、コンピュータ・システム303からデータを要求し、データを処理し、またはデータを送信するアプリケーションを動作させることを可能にする機能性およびコードを格納することを意味する。コンピュータ・システム303は、API305のソース・コードを記憶するメモリを含んでもよい。API305のソースコードはまた、コンピュータシステム303から遠隔的に記憶されてもよい。API管理システム310は、
図4に関して後述するように、コンピュータシステム303のAPIをAPI管理システム310に登録するように構成することができる。
【0067】
図3に示されるデバイスおよびシステムのいずれも、1つまたは複数のプロセッサ、1つまたは複数のメモリ、および1つまたは複数の入出力(I/O)デバイスを含むことができる。これらのコンポーネントは、バスまたはワイヤレスで相互に通信できる。構成要素は、単一のデバイスまたは複数のデバイスに存在することができる。いくつかの実施形態では、デバイスおよびシステムは、サーバ、特別にプログラムされたコンピュータ、メインフレームコンピュータ、ラップトップ、スマートフォン、モバイルデバイス、またはこれらの構成要素の任意の組合せの形態をとることができる。いくつかの実施形態では、デバイスおよびシステムは、開示された実施形態と一致する1つまたは複数の動作を実行するソフトウェア命令の記憶、実行、および/または実装に基づいて、特定の装置、システムなどとして構成され得る。デバイスおよびシステムは、スタンドアロンであってもよく、または、より大きなシステムの一部であってもよいサブシステムの一部であってもよい。
【0068】
プロセッサは、中央処理装置(CPU)、グラフィカル・プロセッシング・ユニット(GPU)、または類似のマイクロプロセッサを含み、例えば、Intel
TMによって製造されたPentium
TMまたはXeon
TMファミリーからのマイクロプロセッサー、AMD
TMによって製造されたTurion
TMファミリー、または、例えば、Sun MicrosystemsまたはApple、Inc.によって製造された種々のプロセッサーのいずれかの、1つ以上の公知のプロセッシング・デバイスを含む。プロセッサは、並列処理を同時に実行する単一コアまたは複数コアプロセッサを構成してもよい。例えば、プロセッサは、仮想処理技術で構成された単一コアプロセッサであってもよい。特定の実施形態では、プロセッサは、論理プロセッサを使用して、複数のプロセスを同時に実行および制御することができる。プロセッサは、仮想マシン技術、または複数のソフトウェアプロセス、アプリケーション、プログラムなどを実行、制御、実行、操作、格納などの能力を提供する他の既知の技術を実装してもよい。別の実施形態では、プロセッサは、デバイスとシステムが複数のプロセスを同時に実行できるように並列処理機能を提供するように構成された複数コアプロセッサ構成(例えば、デュアルコア、Quadコア等)を含むことができる。装置およびシステムは、1つ以上のプロセッサを含むことができ、さらに、プロセッサに関して遠隔にある1つ以上の他のプロセッサとともに動作することができる。当業者は、本明細書で開示される能力を提供する他のタイプのプロセッサ構成が実装され得ることを理解するであろう。開示された実施形態は、デバイスおよびシステムにおいて構成されたいかなるタイプのプロセッサにも限定されない。
【0069】
メモリは、開示された実施形態に関連する機能を実行するためにプロセッサによって実行可能な命令を記憶するように構成された1つ以上の記憶装置を含んでもよい。例えば、メモリは、コンピュータ・ハードディスク、ランダム・アクセス・メモリ、リムーバブル・ストレージ、またはリモート・コンピュータ・ストレージを含むことができる。例えば、メモリは、プロセッサによって実行されるときに特定の機能を実行する1つ以上のソフトウェア命令で構成されてもよい。開示された実施形態は、専用タスクを実行するように構成された別個のプログラムまたはコンピュータに限定されない。さらに、プロセッサは、装置およびシステムから遠隔に配置された1つ以上のプログラムを実行してもよい。例えば、コンピュータシステム303、API305、またはデータベース330は、API管理システム310(またはその変形)を介して、実行されると、ある開示された実施形態に関連する機能を実行する1つまたは複数のリモートプログラムにアクセスすることができる。プロセッサは、データベース330に配置された1つ以上のプログラムをさらに実行してもよい。いくつかの実施形態において、命令は、API管理システム310の外部に配置されたクラウドサーバなどの外部記憶装置に記憶されてもよく、プロセッサは、命令をリモートで実行してもよい。
【0070】
メモリはまた、例示的なシステム300が開示された実施形態と一致する動作を実行するために使用することができる任意のフォーマットで、任意のタイプの情報を反映するデータを格納することができる。メモリは、プロセッサが、サーバアプリケーション、ネットワーク通信プロセスなどの1つ以上のアプリケーション、およびフロントエンドシステム103のインタラクティブユーザインタフェースなどの任意の他のタイプのアプリケーションまたはソフトウェアを実行できるようにするための命令を記憶することができる。あるいは、命令、アプリケーションプログラム等は、外部記憶装置に格納されてもよい。例えば、API管理システム310の命令は、データベース330に記憶されてもよく、ネットワーク320または任意の他の適切なネットワークを介してAPI管理システム310と通信している。メモリは、揮発性または不揮発性、磁気、半導体(例えば、EEPROM、フラッシュメモリなど)、テープ、光学、取外し可能、取外し不可能、または他のタイプの記憶デバイスまたは有形(すなわち、一時的でない)コンピュータ可読媒体とすることができる。
【0071】
I/O装置は、システムの装置または装置の装置のユーザから装置およびシステムに情報を通信するためのハードウェアおよび/またはハードウェアとソフトウェアとの組合せを含むことができる。いくつかの実施形態では、ユーザは、システムのデバイスまたはデバイスの直接ユーザであってもよい。いくつかの他の実施形態では、ユーザは、デバイスおよびシステムに接続された別の1つまたは複数のユーザデバイスとすることができる。ハードウェアおよびソフトウェアは、例えば、キーボード、マウス、トラックボール、オーディオ入力デバイス、タッチスクリーン、赤外線入力インターフェース、または同様のデバイスであってもよい。
【0072】
図4は、開示された実施形態と一致する、データベースにAPIを登録するためのプロセス400を示す。
【0073】
ステップ402において、API管理システム310は、システムにAPIを登録する要求を受信する。いくつかの実施形態において、要求は、コンピュータ・システム303またはコンピュータ・システム303に関連するユーザ・デバイスからのものであってもよい。いくつかの実施形態では、要求は、API305またはAPI305のユーザからのものであってもよい。他のいくつかの実施形態では、要求は、API管理システム310のインターフェースを介して直接要求を送信するユーザ装置のユーザからのものであってもよい。リクエストには、リクエストの送信時にインターフェイスを介してユーザーが指定したAPIの情報が含まれる場合がある。
【0074】
ステップ404で、API管理システム310は、登録されるAPIの情報を受信する。この情報は、インデックス情報、識別情報、アクセス情報、パーミッションレベルに関する許可、導入およびルール、開発およびデバッグノート、ならびにAPIの以前の使用の記録を含むことができ、これらのすべてを集合的にAPIのデータと呼ぶことができる。アクセス情報は、APIがすべてのユーザー、API、およびコンピューター・システムに対してオープンであることを示している場合がある。また、アクセス情報は、APIが、それを使用または接続することを意図したユーザ、APIまたはコンピュータシステムからの要求を常に要求することを示す可能性がある。また、アクセス情報は、APIが次の(1)〜(3)の少なくとも1つであり得ることも示してもよく、(1)いくつかのユーザ、APIもしくはコンピュータシステムにオープンである、(2)いくつかの他のユーザ、APIもしくはコンピュータシステムにアクセス不能である、(3)APIを使用もしくは接続するつもりであるとき、いくつかの他のユーザ、APIもしくはコンピュータシステムからのリクエストを必要とする。情報は、APIのドキュメンテーションも含むことができる。いくつかの実施形態では、APIを登録する要求に情報を含めることができる。いくつかの他の実施形態では、情報は、API管理システム310のインターフェースと、ユーザ、APIまたはコンピュータシステムと、の間の対話式プロセスを介して受信される。
【0075】
ステップ406において、API管理システム310は、APIの情報を例示的なシステム300のAPIデータベースに記憶することができる。ある実施形態では、API管理システム310は、自身のAPIデータベースを有してもよく、その情報を自身のAPIデータベースに記憶してもよい。
【0076】
ステップ408において、API管理システム310は、受け取った情報に基づいてAPIに関連するドキュメンテーション(文書)を生成することができる。API管理システム310はまた、生成されたドキュメンテーションと共に受信されたドキュメンテーションを組み込んでもよい。いくつかの実施形態では、ドキュメンテーションの生成の一部として、API管理システム310は、APIを使用するためのコードを生成する規則のセットを準備することができる。一連のルールにより、API管理システム310は、ユーザがAPIのすべての部分の学習をスキップし、ゼロからプログラムを開発する必要がなく、受信したソースコードを所望の目的のために適応させることができるように、APIに接続されたユーザのためのコードを迅速かつ自動的に生成することができる。
【0077】
ステップ410において、API管理システム310は、例示的なシステム300のAPIデータベースにAPIの文書を記憶することができる。いくつかの実施形態において、API管理システム310は、それ自身のAPIデータベースを有することができ、文書をそれ自身のAPIデータベースに記憶することができる。
【0078】
API管理システム310は、
図5に関して後述するように、APIの情報を更新するように構成することができる。
【0079】
図5は、開示された実施形態と一致する、データベース内のAPI情報を更新するための処理500を示す。
【0080】
ステップ502において、API管理システム310は、システム内のAPIの情報を更新する要求を受信する。いくつかの実施形態において、要求は、コンピュータ・システム303またはコンピュータ・システム303に関連するユーザ・デバイスからのものであってもよい。いくつかの実施形態では、要求は、API305またはAPI305のユーザからのものであってもよい。他のいくつかの実施形態では、要求は、API管理システム310のインターフェースを介して直接要求を送信したユーザ装置のユーザからのものであってもよい。リクエストには、リクエストの送信時にインターフェイスを介してユーザーが指定したAPIの情報が含まれる場合がある。
【0081】
ステップ504で、API管理システム310は、更新するAPIの情報を受信する。この情報は、インデックス情報、識別情報、アクセス情報、パーミッションレベルに関する許可、導入およびルール、開発およびデバッグノート、ならびにAPIの以前の使用の記録を含むことができ、これらのすべてを集合的にAPIのデータと呼ぶことができる。API管理システム310は、新しい情報と以前の情報とを比較し、APIの情報の一部として記憶されたエントリとして、情報の変化を検出し記録してもよい。APIを登録したコンピュータシステムからの要求でない場合、API管理システム310は、更新の要求についてコンピュータシステムに通知し、次のステップに進む前に確認を要求してもよい。情報は、APIのドキュメンテーションも含むことができる。いくつかの実施形態では、情報は、ステップ502においてAPIの情報を更新する要求に含まれてもよい。いくつかの他の実施形態では、情報は、API管理システム310のインターフェースとユーザ、APIまたはコンピュータシステムとの間の対話式プロセスを介して受信される。
【0082】
ステップ506において、API管理システム310は、例示的なシステム300のAPIデータベース内のAPIの情報を更新してもよい。ある実施形態では、API管理システム310は、独自のAPIデータベースを有することができ、独自のAPIデータベース内の情報を更新することができる。
【0083】
ステップ508において、API管理システム310は、受け取った情報に基づいてAPIに関連する新しいドキュメンテーションを生成することができる。API管理システム310はまた、生成されたドキュメンテーションと共に受信されたドキュメンテーションを組み込んでもよい。いくつかの実施形態では、ドキュメンテーションの生成の一部として、API管理システム310は、APIを使用するためのコードを生成する規則のセットを準備することができる。一連のルールにより、API管理システム310は、APIに接続されたユーザ装置のためのソースコードを迅速かつ自動的に生成することができ、それにより、ユーザ装置のユーザは、APIのすべての部分の学習をスキップし、ゼロからプログラムを開発する必要がなくなり、生成されたソースコードに独自のソースコードまたは機能性を直接追加することができる。
【0084】
ステップ510において、API管理システム310は、例示的なシステム300のAPIデータベース内のAPIの文書を更新してもよい。ある実施形態では、API管理システム310は、それ自身のAPIデータベースを有することができ、それ自身のAPIデータベース内の文書を更新することができる。
【0085】
ステップ512において、API管理システム310は、更新に関する通知をコンピュータ・システム303に送ることができる。いくつかの実施形態において、API管理システム310は、APIへのアクセスを有するコンピュータシステムにのみ通知を送信してもよい。いくつかの実施形態において、API管理システム310は、APIを使用したコンピュータシステムにのみ通知を送信してもよい。API管理システム310は、電子メール、メッセージ、または他の特定の通信ツールを介して通知を送信することができる。
【0086】
図6は、開示された実施形態と一致する、ユーザデバイスにドキュメンテーションを提供する例示的なプロセスを示す。ステップ605において、API管理システム310は、ユーザデバイスから入力を受信することができる。いくつかの実施形態では、ユーザデバイスは、コンピュータシステム303に関連付けられてもよい。いくつかの実施形態では、要求は、API305またはAPI305のユーザからのものであってもよい。他のいくつかの実施形態では、入力は、API管理システム310のインターフェースを介して要求を直接送信したユーザからのものであってもよい。いくつかの実施形態において、入力は、所望のAPIに関連するコンピュータシステムのアイデンティティを省略してもよい。これは、ユーザ(例えば、開発者)が、使用すべきコンピュータシステムやAPIを事前に知る必要がないという点で効率を提供する。
【0087】
いくつかの実施形態では、入力は、特定の機能のアイデンティティを省略することができる。例えば、API管理システム310は、「約束された納入日(PDD)データ」及び「出荷データ」の要求を含む入力を(例えば、FOシステム113と関連付けられたユーザデバイスから)受領することができる(例えば、開発者はPDDデータを使用するFOシステム113のためのアプリケーションを開発中である)。ユーザは、検索の前にコンピュータシステム又はAPIを選択する必要はなく、これは、APIドキュメンテーションレビュー及び検索のための先行技術システムよりも有利である。
【0088】
いくつかの実施形態では、ステップ605における入力は、1つまたは複数の条件を含むことができる。条件は、データベース330がAPIをソートするために使用する条件であってもよい。例えば、条件は、(1)APIが関連するシステムの機能、例えば、輸送、配送またはフロントエンドを記述するキーワード、(2)APIがシステムまたはサブシステムに関連するか否か、APIがコンピュータシステムの唯一のAPIであるかどうか、といったAPIのヒエラルキーを記述するキーワードまたはカテゴリーターム、(3)バージョンを参照する数字、日付、または日付範囲、または(4)ユーザが別のAPIからどのような種類の機能またはデータを探しているか、といったサーチの目的であってもよい。条件は、APIの情報に対応するAPI管理システム310のインターフェースによって提供されるカテゴリー用語であってもよく、これにより、ユーザは、キーワードを精細化するために時間を費やすのではなく、情報を選択することが可能になる。いくつかの実施形態において、入力は、特定の条件を満たすデータベース330に記憶されたAPIのリストを検索する要求であってもよい。このような要求を受信すると、API管理システム310は、ステップ610またはそれ以降の任意のステップに進まず、単にAPIのリストを生成し、それをユーザに提供するだけでよい。他のいくつかの実施形態において、入力は、API管理システム310に記憶された命令を実行することによって、またはデータベース330に遠隔的に記憶されることによって、満たすことができる任意の要求であってもよい。
【0089】
ステップ610において、API管理システム310は、ターゲットAPIを決定することができる。ターゲットAPIは、入力を満たすAPIであり、1つ以上の追加ステップに基づいて決定される場合がある。ステップ605で、1つまたは複数の条件を伴う入力を受信する際に、API管理システム310は、条件を満たす1つまたは複数のAPIを決定することができる。いくつかの実施形態において、API管理システム310は、まず、パーミッションレベルに関するユーザのパーミッションレベルおよび/またはAPIの許可(authorization)に基づいて、ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連するAPIを除外することによって、ターゲットAPIを決定し始めてもよい。例えば、シニア開発者は、ジュニア開発者または契約開発者よりも高いパーミッションレベルを有することができ、したがって、同じ入力で、API管理システム310は、ジュニア開発者または契約開発者よりもシニア開発者のためのより大きなAPIプールからターゲットAPIを決定することができる。このプロセスは、ターゲットAPIを決定する際のAPI管理システム310の効率および精度を向上させ、API情報の不必要な露出を最小限に抑える(したがって、データセキュリティを向上させる)ことができる。
【0090】
いくつかの実施形態において、API管理システム310は、APIの使用記録に基づいて、条件を満たす1つ以上のAPIからターゲットAPIを決定してもよい。例えば、FOシステム113に関連付けられたユーザ装置のユーザが、約束納期(PDD)データを使用するアプリケーションを開発しているとき、ユーザは、API管理システム310内の検索「出荷」および「データ」を検索することができ、出荷および注文追跡システム111およびSATシステム101は、両方とも条件を満たすことができる。しかしながら、FOシステム113によって出荷及び注文追跡システム111のAPIを使用する記録よりも、FOシステム113によってSATシステム101のAPIを使用する記録の方が多い場合があり、したがって、API管理システム310は、SATシステム111内のAPI(FOシステム113に関連する最も関連する記録を有する)がターゲットAPIであるべきであると判定することができる。ターゲットAPIに関連するSATシステム101内のデータは、他のAPIまたはシステムに関連するデータよりも、FOシステム113内のユーザに適しており、よく編成されている可能性が非常に高い。まれに、ユーザが別のシステムのAPIに接続したい場合でも、ユーザは、いくつかの他の実施形態と整合して、リストの中からAPIを選択することができる。
【0091】
いくつかの実施形態において、API管理システム310は、検索履歴、選択履歴、またはユーザの履歴に基づいて、条件を満たす1つ以上のAPIからターゲットAPIを決定してもよい。いくつかの他の実施形態では、API管理システム310は、ユーザに条件を満たすAPIを提供してもよく、ユーザは、ターゲットAPIを選択してもよい。いくつかの実施形態において、入力は、1つ以上の条件を含まず、APIの選択を目的とする要求であり、API管理システム310に記憶された命令を実行することによって満たすことができるか、またはデータベース330に遠隔的に記憶されることができる。API管理システム310は、記憶された命令に基づいて、APIの選択を指定するためのインターフェースを介して、ユーザにさらなる命令を提供することができる。例えば、FOシステム113に関連するユーザは、PDDに関連するデータを取得することを望むが、他のシステムについてあまり知らない場合がある。API管理システムは、データベース330に記憶されたAPIのデータの中から自動的に検索し、PDDに関連するデータを有するAPIのリストを得るための命令を含むことができる。API管理システムはさらに、検索前に利用可能なAPIの知識を必要とせずに、ユーザがターゲットAPIを正確かつ効率的に選択できるようにする、データの抜粋またはPDDに関連するデータの説明をAPIのリストと共にユーザに提供する指示を含むことができる。
【0092】
ステップ615において、API管理システム310は、ユーザがターゲットAPIへのアクセス権を有するか否かを決定することができる。ユーザがAPIへのアクセス権を有するか否かを決定する際に、API管理システム310は、APIに関連するAPIデータベースに記憶されたデータを検索してもよい。より具体的には、API管理システム310は、データの一部であってもよいAPIに関連するアクセス情報を考慮してもよい。アクセス情報は、(A)APIがすべてのユーザ、APIおよびコンピュータシステムに対してオープンである、(B)APIが、APIを使用または接続しようとするユーザ、APIまたはコンピュータシステムからのリクエストが常に必要である、または(C)APIが、APIをお使用または接続しようとするときに、一部のユーザ、APIおよびコンピュータシステムに対してオープンであることを示してもよい。アクセス情報は、APIが1人以上のユーザーからアクセスできないことも示している場合がある。他のいくつかの実施形態では、ユーザがターゲットAPIへのアクセス権を有するかどうかを決定することは、関連するユーザ許可を決定するためにターゲットAPIまたはターゲットAPIのコンピュータシステムと通信することを含んでもよい。ユーザパーミッションは、ユーザがターゲットAPIへのアクセスを許可されているかどうかの情報を含んでよい。また、ユーザ許可を決定するために通信することは、ターゲットAPIにアクセス権が割り当てられているユーザのリストを要求し、ユーザがリストに載っているかどうかをチェックすることによって、ユーザにアクセス権があるかどうかを決定することを含んでもよい。
【0093】
ある実施形態では、ステップ615において、アクセス情報が、APIがすべてのユーザ、API、およびコンピュータ・システムに対してオープンであることを示す場合、API管理システム310は、ステップ635に進み、ユーザ・デバイスにターゲットAPIの文書を提供してもよい。ある実施形態では、ステップ615において、アクセス情報が、APIが常にユーザ装置からの要求を必要とすることを示している場合、API管理システム310は、ステップ620に進み、ユーザ装置のユーザにターゲットAPIへの要求の送信を要求してもよい。ステップ615において、APIが一部のユーザ、APIおよびコンピュータシステムに対してオープンであり、APIを使用または接続しようとするときに、一部の他のユーザ、APIおよびコンピュータシステムからの要求を必要とすることをアクセス情報が示す場合、API管理システム310は、本明細書に開示する実施形態と整合して、それに応じて応答してもよい。例えば、ユーザがFOシステム113に関連するユーザ装置からのものであり、SATシステム101のAPIと接続しようとする場合、APIに関連するアクセス情報は、APIがFOシステム113に対してオープンであることを示し、マネージャである任意のユーザは、API管理システム310がユーザをAPIに接続してもよい。しかし、ユーザがマネージャではなく、労働管理システム125のユーザデバイスを使用している場合、API管理システム310は、SATシステム101に要求を送信するようにユーザデバイスに通知してもよい。他のいくつかの実施形態では、アクセス情報が、APIが1人以上のユーザにアクセス可能でないことを示してもよい場合、API管理システム310は、ステップ645に進み、それに応じて、ユーザのアクセスを拒否してもよい。いくつかの他の実施形態では、API管理システム310は、APIに要求を送信するためにインターフェースを介してユーザと対話することができる。入力が、APIに関連付けられたドキュメンテーションを取得するのではなく、1つ以上の条件を満たすAPIのリストを単に提供するなど、アクセス情報をチェックする必要なしに実行される命令に関する場合、API管理システム310は、アクセス情報をチェックすることなく、入力の要求を満たすように進めてもよい。
【0094】
ステップ620において、API管理システム310は、インタフェースまたは電子メール、メッセージまたは他の特定の通信ツールを介して、ドキュメンテーションを取得する前に、ユーザがAPIにリクエストを送ることをAPIが必要としていることをユーザに通信することができる。
【0095】
ステップ625において、ユーザがターゲットAPIに要求を送信する場合、API管理システム310は、ネットワーク320を介して、ターゲットAPIまたはターゲットAPIが関連付けられているコンピュータシステムによる通知を受信することができる。API管理システム310は、ステップ630に進むことができる。API管理システム310が、一定期間後に、ユーザがターゲットAPIに要求を送信していないと判断した場合、API管理システム310は、ステップ645に進み、アクセスを拒否してもよい。いくつかの実施形態では、API管理システム310は、期間の長さを決定するために、ターゲットAPIに関連付けられたデータベース330に格納されたルールのセットを調べることができる。いくつかの他の実施形態では、API管理システム310は、期間の長さを指定して、メモリ内またはデータベース330内に遠隔的に記憶された命令を有することができる。
【0096】
ステップ630において、API管理システム310は、ターゲットAPIまたはコンピュータシステムから、ターゲットAPIがターゲットAPIに関連付けられていること、またはコンピュータシステムがユーザへのアクセスを承認したことの承認を受け取ることができる。承認を受け取ると、API管理システム310はステップ635に進むことができる。API管理システム310が、一定期間後に承認を受けていない場合、または否認を受けていない場合、API管理システム310は、ステップ645において、アクセス拒否に進むことができる。
【0097】
ステップ635において、API管理システム310は、ターゲットAPIの文書をユーザデバイスに提供することができる。文書は、どの部分が有用かを見つけるためにユーザの多くの時間と労力を必要とする膨大な量のものである可能性がある。API管理システム310は、ターゲットAPIのほんの一部に関連するドキュメンテーションをユーザデバイスに提供するための命令を自動的に実行することによって、このプロセスの効率を向上させることができ、これにより、ユーザは、ターゲットAPIまたはドキュメンテーションのどの部分が必要かを特定するための多くの時間と労力を節約することができる。したがって、いくつかの実施形態では、API管理システム310は、ターゲットAPIの一部のドキュメンテーションをユーザデバイスに提供することができる。いくつかの実施形態では、API管理システム310は、ユーザが選択するためのターゲットAPIの1つまたは複数の部分をユーザデバイスに提供することができる。API管理システム310は、ユーザが必要な部分を選択するのを支援するために、APIの部分に関連する情報をメモリに記憶するか、データベース330に遠隔的に記憶することができる。
【0098】
いくつかの実施形態では、ターゲットAPIの部分を決定するプロセスにおける自動化の程度をさらに向上させるために、API管理システム310は、ターゲットAPIの部分の選択を自動的に絞り込むことができる。API管理システム310は、ターゲットAPIを使用するレコードを調べることができ、ターゲットAPIの部分を決定するために、それらを入力と共に考慮に入れることができる。API管理システム310は、ターゲットAPIを使用するレコードを調べることもでき、ターゲットAPIの部分を決定するために、それらを入力と共に考慮に入れることができる。API管理システム310はまた、決定を支援するためにAPIに関連する情報を見ることができる。いくつかの他の実施形態では、API管理システム310は、本明細書で開示される実施形態の組み合わせを使用することができ、ターゲットAPIの部分を決定する際に異なる実施形態に重み係数を割り当てることができる。API管理システム310は、ターゲットAPIを使用するレコード、ターゲットAPIを使用するレコード、または入力を使用するターゲットAPIの部分の選択を絞り込み、絞り込み後の部分の選択を選択のためにユーザデバイスに提供することができる。例えば、API管理システム310は、ステップ605において、ユーザデバイスからの入力を受信して、特定の機能を実行するAPIを検索し、ユーザデバイスのユーザのためのターゲットAPIを決定し、ユーザがターゲットAPIへのアクセス権を有することが可能である。しかし、ターゲットAPIは、20個のパーツを有し、それぞれが多くのドキュメントを有し、20個のパーツのうちの1つまたは少数のみが機能に関連する。API管理システム310は、機能を実行するAPIの部分をユーザに手動で検索させる代わりに、選択を最初に狭めることができる。ステップ635において、API管理システム310は、ターゲットAPIを使用したレコードを調べ、ターゲットAPIのすべての部分の人気の評価を得るために使用したレコードに、より高い重み係数を割り当てることができる。そして、API管理システム310は、入力の条件を満たさず、人気の高い部品を除外する。API管理システム310は、左の部分を、選択のために、部分の狭められたリストとしてユーザ装置に提供する。API管理システム310はまた、ユーザが選択することを支援するために、記述、ルールのセットおよびJSONコードの抜粋などのターゲットAPIの絞り込み部分に関連する情報を検索する。
【0099】
ステップ635において、ターゲットAPIの部分が決定された後、API管理システム310は、ターゲットAPIのその部分に関連するドキュメンテーションをユーザデバイスに提供することができる。ターゲットAPI全体の文書化が必要であると判断された場合、API管理システム310は、文書全体を提供することができる。
【0100】
ステップ635の一部の実施形態では、API管理システム310は、ターゲットAPIに関連するソースコードまたはユーザーのターゲットAPIの一部をユーザーデバイスに提供してもよい。ソースコードは.NET Framework、.Net Compact Framework (およびVisual Basic、C などの関連言語)、Java、C++、Objective−C、HTML、HTML/AJAXの組み合わせ、XML、または、Javaアプレットを含むHTMLなど、一般にAPIで使用される言語であってよい。ソースコードはまた、JSONまたはYAMLなど、APIドキュメンテーションおよびドキュメンテーションインターフェースにより特有のプログラミング言語であってもよい。ソースコードは、ターゲットAPIに直接適用可能な場合がある。例えば、ユーザがC++言語を使用するAPIを使用しており、ターゲットAPIがJAVAを使用している場合、API管理システム310は、ユーザがターゲットAPIと接続し、機能またはユーザが意図する部分と連携するために直接適用可能なソースコードをJAVAで自動的に生成し、ユーザに提供することができる。この自動化は、異なるAPIおよびコンピュータシステムを横断するアプリケーションをプログラミングし、使用するユーザの効率を大幅に向上させることができる。さらに、ユーザがターゲットAPIを操作する場合、ユーザは他のAPIにもアクセスする必要がある場合がある。例えば、内部フロントエンドシステム105のAPIのユーザが、輸送システム107に接続するアプリケーション上で作業している場合、ユーザは、モバイルデバイス107A〜107CのAPIに別々にアクセスして、デバイスのタイプごとに最適化された別々のアプリケーション機能を生成する必要がある場合もある。ユーザがこのような状況で効率的に作業することを可能にするために、ステップ635において、ターゲットAPIである輸送システム107のAPIの一部に関連するドキュメンテーションおよびソースコードを生成することに加えて、API管理システム310は、モバイルデバイス107A〜107Cの対応するAPIのドキュメンテーションおよび補足ソースコードを生成することもできる。
【0101】
API管理システム310は、選択されたターゲットAPIの部分に関連するAPIの部分を決定することによって、補足ソースコードを生成することができる。決定は、以下のうちの1つ以上を含み得る:(A)API管理システム310によって提供されるリスト内のAPIの部分をユーザが選択することによって決定すること、(B)API管理システム310が、ターゲットAPIの部分の使用の記録を調べ、どのAPIおよびどの部分が使用時にターゲットAPIの選択された部分に関連付けられているかを探すこと、(C)API管理システム310が、ターゲットAPIに適用可能なソースコードを生成することに関する命令について、ターゲットAPIの部分の情報を見ること、(D)API管理システム310が、関連する記録を見てAPIの最もよく使用される部分を決定すること、これは、ターゲットAPIの部分と一緒に使用されてもされなくてもよい、(E)API管理システム310が、他のレコードを見てターゲットAPIに関連付けられたAPIを決定するとともに、APIに関連付けられた情報を見て補足ソースコードを生成すること、(F)(A)および他の自動方法を除く、ここに開示された方法の組み合わせを使用して、ユーザーが選択するための絞り込みリストを提供すること、または、(G)ここに開示された方法と他の自動方法の組み合わせを使用して補足ソースコードを生成すること。したがって、API管理システム310は、ユーザを支援する際に高度の自動化を達成することができる。いくつかの実施形態において、API管理システム310は、ステップ635のプロセス全体を最適化する、メモリ内またはデータベース330内に遠隔的に記憶された命令を有することができる。様々な要因に応じて、API管理システム310は、ステップ635の一部として本明細書で開示される実施形態のいくつかを選択することができる。例えば、内部フロントエンドシステム105のユーザが、輸送システム107のAPI上で作業し、デバイス107A〜107Cから送られたデータを使用するアプリケーションを開発または試験したい場合、ユーザは、各タイプのモバイルデバイス107A〜107Cについて別個のプログラムを作成し、その結果、プログラムが、デバイスからの異なるタイプのデータを用いてより良好に機能することができるようにしたい場合がある。さらに、ユーザは、アプリケーションを改善するために、SATシステム101に関連する特定の機能を組み込むことを望む場合がある。そのような状況では、API管理システム310は、(A)輸送システムのターゲットAPIに関連する情報およびターゲットAPIの使用の記録から、ユーザがアクセスする必要があるかもしれない107A〜107CおよびSATシステム101のAPIの部分を決定してもよく、(B)ターゲットAPIおよび関連するAPIのアクセス情報から、ユーザーがアクセスを有することを決定してもよく、(C)メモリに格納された指示に基づいて、生成されたドキュメンテーション、ソースコード、および補足のソースコードが、ユーザにとって多すぎるため、特定のしきい値を超えないこと、および、APIの記録に基づいて人気があると決定してよい。次いで、API管理システム310は、ユーザにルックアップまたは選択をさらに要求することなく、システム107のターゲットAPI、ならびに装置107A〜107CおよびSATシステム101のAPIに関連するユーザ文書、ソースコード、および補足ソースコードを提供することに進むことができる。
【0102】
本開示は、その特定の実施形態を参照して示され、説明されてきたが、本開示は、修正なしに、他の環境において実施され得ることが理解され得る。前述の説明は、例示の目的で提示されている。これは、網羅的ではなく、開示された正確な形態または実施形態に限定されない。当業者であれば、開示された実施形態の明細書および実施を考慮することにより、修正および適応が明らかであろう。さらに、開示された実施形態の態様は、メモリに格納されるものとして説明されているが、当業者は、これらの態様が、例えば、ハードディスクまたはCD ROM、あるいは他の形態のRAMまたはROM、USB媒体、DVD、ブルーレイ、または他の光学ドライブ媒体などの二次記憶デバイスなどの他のタイプのコンピュータ可読媒体に格納されてもよいことを理解することができる。
【0103】
記載された説明および開示された方法に基づくコンピュータプログラムは、熟練した開発者の技術の範囲内である。様々なプログラムまたはプログラムモジュールは、当業者に知られている技法のいずれかを使用して作成することができ、または既存のソフトウェアに関連して設計することができる。例えば、プログラム・セクションまたはプログラム・モジュールは、Net Framework、.NetCompact Framework (およびVisual Basic、C などの関連言語)、Java、C++、Objective−C、HTML、HTML/AJAXの組み合わせ、XML、またはJava アプレットを含むHTML内で、または、これらによって設計されてもよい。
【0104】
さらに、例示的な実施形態が本明細書で説明されてきたが、本開示に基づいて当業者によって理解されるように、同等の要素、修正、省略、組み合わせ(例えば、様々な実施形態にわたる態様の)、適応、および/または変更を有する任意のおよびすべての実施形態の範囲。クレームの限定は、クレームに使用されている文言に広く基づいて解釈されるものとし、本明細書に記載されている例に限定されるものではなく、又は出願手続中に解釈されるものとする。実施例は、非排他的であると解釈されるべきである。さらに、開示された方法のステップは、ステップを並べ替えること、および/またはステップを挿入または削除することを含む、任意の方法で修正されてもよい。したがって、本明細書および実施例は、単に例示的なものとみなされ、真の範囲および精神は、以下の特許請求の範囲およびそれらの均等物の全範囲によって示されることが意図される。