(57)【要約】  ＡＰＩ情報を管理するためのコンピュータ化されたシステムおよび方法。例示的な方法は、第１コンピュータシステムに関連付けられたユーザデバイスから、第２コンピュータシステムのアイデンティティーを含まない入力を受け取ることを含む。方法は、前記入力に基づいて、前記第２コンピュータシステムのＡＰＩであるターゲットＡＰＩを決定することを含む。方法は、また、前記ユーザデバイスのユーザが前記ターゲットＡＰＩへのアクセスを有することを判定することを含む。方法は、また、前記ユーザが前記ターゲットＡＰＩへのアクセスを有すると判定された場合、前記ＡＰＩデータベースから前記ターゲットＡＰＩのドキュメンテーションを取得することを含む。方法は、前記取得した前記ターゲットＡＰＩのドキュメンテーションを前記ユーザデバイスに提供すること、を含む。
2021513133.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラミングインターフェース（ＡＰＩ）情報を管理するためのコンピュータ実装システムであって、
少なくとも１つのプロセッサと、
ＡＰＩと関連付けられたデータを格納するＡＰＩデータベースであって、
各ＡＰＩは、少なくとも１つのコンピュータシステムと関連付けられ、
各コンピュータシステムは、それぞれのＡＰＩを介して、前記コンピューティングシステムの他のコンピュータシステムと接続可能である、ＡＰＩデータベースと、
命令を含む少なくとも１つのメモリと、を備え、
前記命令が前記少なくとも１つのプロセッサによって実行されると、前記命令は前記プロセッサに動作を実行させ、この動作は、
第１コンピュータシステムに関連付けられたユーザデバイスから、第２コンピュータシステムのアイデンティティーを含まない入力を受け取ること、
ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連付けられたＡＰＩを除外すること、
前記入力に基づいて、前記第２コンピュータシステムのＡＰＩであるターゲットＡＰＩを決定すること、
前記ユーザデバイスのユーザが前記ターゲットＡＰＩへのアクセスを有するか否かを判定すること、
前記ユーザが前記ターゲットＡＰＩへのアクセスを有すると判定された場合、前記ＡＰＩデータベースから前記ターゲットＡＰＩのドキュメンテーションを取得すること、および、
前記取得した前記ターゲットＡＰＩのドキュメンテーションを前記ユーザデバイスに提供すること、を含む、システム。
【請求項２】
前記入力は、前記ＡＰＩをソートするために用いられる少なくとも１つの条件を含む、請求項１に記載のコンピュータ実装システム。
【請求項３】
前記ＡＰＩデータベースは、検索履歴を記憶し、
前記動作は、さらに、前記ユーザの入力を前記検索履歴に記録することを含む、請求項１に記載のコンピュータ実装システム。
【請求項４】
前記ターゲットＡＰＩを決定することは、前記ＡＰＩデータベースにおけるどのＡＰＩが前記入力の前記少なくとも１つの条件を満たすかを判定することを含む、請求項３に記載のコンピュータ実装システム。
【請求項５】
前記どのＡＰＩが前記少なくとも１つの条件を満たすかを判定することは、
前記入力を満たすＡＰＩから前記ターゲットＡＰＩを選択したユーザに基づいて判定すること、
前記入力を満たすＡＰＩの使用の記録に基づいて判定すること、または
前記検索履歴に基づいて判定すること、
の少なくとも１つを含む、請求項４に記載のコンピュータ実装システム。
【請求項６】
前記ユーザデバイスのユーザが前記ターゲットＡＰＩへのアクセスを有するか否かを判定することは、前記ＡＰＩデータベースに格納された前記ターゲットＡＰＩと関連付けられたデータから、前記ターゲットＡＰＩが全ユーザに対してオープンであること、または、前記ユーザに対してオープンであることを判定することを含む、請求項１に記載のコンピュータ実装システム。
【請求項７】
前記ユーザデバイスのユーザが前記ターゲットＡＰＩへのアクセスを有するか否かを判定することは、前記ターゲットＡＰＩと通信してユーザパーミッションを判定することを含む、請求項１に記載のコンピュータ実装システム。
【請求項８】
前記動作は、さらに、
前記ユーザのために前記ターゲットＡＰＩと関連付けられた第１ソースコードを生成することと、
前記第１ソースコードを前記ユーザデバイスに提供することと、を含む、請求項１に記載のコンピュータ実装システム。
【請求項９】
前記第１ソースコードを生成することは、さらに、
前記ユーザ入力に基づいて、前記ターゲットＡＰＩの一部を決定することと、
前記ターゲットＡＰＩの一部と関連付けられた前記第１ソースコードを生成することと、を含む、請求項８に記載のコンピュータ実装システム。
【請求項１０】
前記ターゲットＡＰＩの一部を決定することは、さらに、前記ターゲットＡＰＩの一部をユーザが選択することに基づく、請求項９に記載のコンピュータ実装システム。
【請求項１１】
前記ターゲットＡＰＩの一部を決定することは、さらに、
前記ターゲットＡＰＩの一部の選択（ここで、この選択は前記ターゲットＡＰＩの使用の記録に追加され、この記録は前記ＡＰＩデータベースに格納される）、
前記ユーザによる前記ターゲットＡＰＩの使用の記録、または、
複数のユーザによる前記ターゲットＡＩの使用の記録、の少なくとも１つに基づく、請求項９に記載のコンピュータ実装システム。
【請求項１２】
前記出力コードを生成することは、さらに、前記ターゲットＡＰＩとは異なる少なくとも１つのＡＰＩと関連付けられた補足のソースコードを生成することを含み、
前記補足のソースコードは、前記第１ソースコードに追加される、請求項９に記載のコンピュータ実装システム。
【請求項１３】
前記ターゲットＡＰＩとは異なる少なくとも１つのＡＰＩは、
前記ターゲットＡＰＩと関連付けられた前記データ、
前記ターゲットＡＰＩと関連付けられた前記ドキュメンテーション、または、
前記ユーザによる前記ターゲットＡＰＩの使用の記録、
の少なくとも１つによって決定される、請求項１２に記載のコンピュータ実装システム。
【請求項１４】
前記動作は、さらに、入力に基づいて、前記ＡＰＩデータベースにおけるＡＰＩのリストを前記ユーザデバイスに提供することを含む、請求項１に記載のコンピュータ実装システム。
【請求項１５】
それぞれが少なくとも１つのコンピュータシステムと関連付けられたアプリケーションプログラミングインターフェース（ＡＰＩ）と関連付けられ、ＡＰＩデータベースに格納されるＡＰＩデータを管理するためのコンピュータ実装方法であって、
第１コンピュータシステムに関連付けられたユーザデバイスから、第２コンピュータシステムのアイデンティティーを含まない入力を受け取ること、
ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連付けられたＡＰＩを除外すること、
前記入力に基づいて、前記第２コンピュータシステムのＡＰＩであるターゲットＡＰＩを決定すること、
前記ユーザデバイスのユーザが前記ターゲットＡＰＩへのアクセスを有することを判定すること、
前記ユーザが前記ターゲットＡＰＩへのアクセスを有すると判定された場合、前記ＡＰＩデータベースから前記ターゲットＡＰＩのドキュメンテーションを取得すること、および、
前記取得した前記ターゲットＡＰＩのドキュメンテーションを前記ユーザデバイスに提供すること、を含む、方法。
【請求項１６】
さらに、
前記ユーザのために前記ターゲットＡＰＩと関連付けられた第１ソースコードを生成することと、および、
前記第１ソースコードを前記ユーザデバイスに提供することと、を含む、請求項１５に記載のコンピュータ実装方法。
【請求項１７】
さらに、
前記コンピュータシステムの１つのＡＰＩを前記ＡＰＩデータベースに登録するためのリクエストを受信すること、
前記リクエストにおける前記ＡＰＩと関連付けられたデータを受信すること、および、前記受信したデータを前記ＡＰＩデータベースに格納することと、ならびに、
前記リクエストに基づいて前記ＡＰＩと関連付けられたドキュメンテーションを生成すること、および、前記ＡＰＩデータベースに前記ドキュメンテーションを格納すること、を含む、請求項１５に記載のコンピュータ実装方法。
【請求項１８】
さらに、
前記ＡＰＩデータベースに格納された前記ＡＰＩの１つのデータまたはドキュメンテーションを更新するリクエストを受信すること、
前記リクエストに基づいて、前記ＡＰＩの前記データまたは前記ドキュメンテーションを更新すること、および、
前記コンピュータシステムに関連付けられたユーザデバイスに通知を送信すること、を含む、請求項１５に記載のコンピュータ実装方法。
【請求項１９】
さらに、前記ユーザが前記ターゲットＡＰＩへのアクセスを有しないと判定された場合、前記ターゲットＡＰＩまたは前記第２コンピュータシステムの少なくとも１つにリクエストを送信するよう前記ユーザに指示することを含む、請求項１５に記載のコンピュータ実装方法。
【請求項２０】
アプリケーションプログラミングインターフェース（ＡＰＩ）情報を管理するためのコンピュータ実装システムであって、
少なくとも１つのプロセッサと、
ＡＰＩと関連付けられたデータを格納するＡＰＩデータベースであって、
各ＡＰＩは、少なくとも１つのコンピュータシステムと関連付けられ、
各コンピュータシステムは、それぞれのＡＰＩを介して、前記コンピューティングシステムにおける他のコンピュータシステムと接続可能である、ＡＰＩデータベースと、
命令を含む少なくとも１つのメモリと、を備え、
前記命令が前記少なくとも１つのプロセッサによって実行されると、前記命令は前記プロセッサに動作を実行させ、この動作は、
第１コンピュータシステムに関連付けられたユーザデバイスから、第２コンピュータシステムのアイデンティティーを含まない入力を受け取ること、
ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連付けられたＡＰＩを除外すること、
前記入力に基づいて、前記第２コンピュータシステムのＡＰＩであるターゲットＡＰＩを決定すること、
前記ユーザデバイスのユーザが前記ターゲットＡＰＩへのアクセスを有するか否かを判定すること、
前記ユーザが前記ターゲットＡＰＩへのアクセスを有すると判定された場合、前記ＡＰＩデータベースから前記ターゲットＡＰＩのドキュメンテーションを取得すること、
前記取得した前記ターゲットＡＰＩのドキュメンテーションを前記ユーザデバイスに提供すること、
前記コンピュータシステムの１つのＡＰＩを前記ＡＰＩデータベースに登録するためのリクエストを受信すること、
前記ＡＰＩと関連付けられたデータを前記ＡＰＩデータベースに格納することと、
前記リクエストに基づいて前記ＡＰＩと関連付けられたドキュメンテーションを生成すること、および、前記データベースに前記ドキュメンテーションを格納すること、
前記ＡＰＩデータベースに格納された前記ＡＰＩの１つのデータまたはドキュメンテーションを更新するためのリクエストを受信すること、
前記リクエストに基づいて、前記ＡＰＩの前記データまたは前記ドキュメンテーションを更新すること、および、
前記リクエストに応答して、前記コンピュータシステムに関連付けられたユーザデバイスに通知を送信すること、を含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、アプリケーションプログラミングインターフェース（ＡＰＩ）情報を管理するためのコンピュータ化されたシステムおよび方法に関する。特に、本開示の実施形態は、データベースに格納されたコンピュータシステムのＡＰＩ情報を管理し、コンピュータシステムのユーザが別のコンピュータシステムのＡＰＩのドキュメンテーション（文書化）を得ることを可能にすることに関する。
【背景技術】
【０００２】
ＡＰＩは、ソフトウェアアプリケーションを構築するためのルーチン、プロトコル、およびツールのセットである。良好なＡＰＩは、すべてのビルディングブロックを提供することによって、プログラムを開発することをより容易にする。次に、プログラマはブロックを一緒に配置（put）する。多くの動作環境では、プログラマが動作環境と一貫性のあるアプリケーションを作成できるようにＡＰＩが提供されている。ＡＰＩには、通常、ＡＰＩを使用するための手順を提供する関連ドキュメントがある。
【０００３】
文書は、様々な形式で存在することができる。過去において、文書化のための最も一般的な形式は、限定されたハードコピーマニュアルであった。これらのマニュアルは、典型的には、数百ページの詳細な情報を含む大きくてかさばるマニュアルであった。これらのマニュアルから情報を見つけ出し、検索するために、プログラマは、通常、大量の無関係な情報を検索することを強いられた。多くの異なるビジネス・ユニット、動作環境、コンピュータ・システム、およびＡＰＩを有する大規模な組織では、これらのマニュアルは、プログラマが探している正しいＡＰＩおよびその関連ドキュメントを検索し、決定する際に、プログラマに多くの時間および労力を費やすことになる。
【０００４】
この時代の情報技術では、これらのハードコピーマニュアルの多くが電子版に変換され、データベース化されている。さらに、インターネットやコンピュータシステム用に特別に設計された新しいドキュメントもある。これには、ユーザフレンドリーで、ＡＰＩに適用可能なプログラミングコードに容易に変換できる文書の電子バージョンを生成できる、または、生成を支援できる文書化ツールおよびインターフェースが含まれる。
【０００５】
しかしながら、ＡＰＩのドキュメンテーションの電子バージョンは、特定の技術的問題を克服するのに十分ではない場合がある。多くの異なるビジネス・ユニット、動作環境、コンピュータ・システム、およびＡＰＩを有する大規模な組織では、ＡＰＩおよびこれらのドキュメンテーションの量および複雑さによって、組織のデータベースを管理することが困難になっている。異なるビジネス・ユニットおよび動作環境内のユーザは、他のビジネス・ユニットおよび動作環境のＡＰＩとの対話を試みることができる。各ビジネスユニット、オペレーティング環境、コンピュータシステム、およびＡＰＩのアイデンティティを知ることを開発者に要求することは、非効率的である。異なるコンピュータ・システムに関連付けられたＡＰＩで作業する開発者、または、１つのコンピュータ・システムのサブシステムで作業する開発者でさえ、異なる機能ごとに最適化された選択肢として、異なるコーディング言語を使用する必要があるかもしれない。大規模な組織では、そのコンピュータシステムとＡＰＩが非常に迅速に更新される可能性がある。これにより、すべてのＡＰＩの開発者が変更に対応し、タイムリーに競合を解決することがより難しく、面倒になる。ドキュメンテーションの単純な電子バージョンまたはドキュメンテーションを単に記憶するシステムは、ユーザにあまり負担をかけず、またはタイムリーな調整を提供しない。
したがって、電子ＡＰＩ管理のための改善された方法およびシステムが必要とされている。
【発明の概要】
【０００６】
本開示の一態様はＡＰＩ情報を管理するためのシステムに関する。このシステムは、少なくとも１つのプロセッサと、コンピュータシステムのＡＰＩと関連付けられたデータおよびドキュメンテーションを格納するＡＰＩデータベースと、前記少なくとも１つのプロセッサによって実行されるとプロセッサに動作を実行させる命令を含む少なくとも１つのメモリと、を備え得る。動作は、第１コンピュータシステムに関連付けられたユーザデバイスから、第２コンピュータシステムのアイデンティティーを含まない入力を受け取ることを含み得る。動作は、ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザがアクセスできないコンピュータシステムに関連付けられたＡＰＩを除外すること、前記入力に基づいて、前記第２コンピュータシステムのＡＰＩであるターゲットＡＰＩを決定すること、前記ユーザデバイスのユーザが前記ターゲットＡＰＩへのアクセスを有するか否かを判定することを含み得る。前記ユーザが前記ターゲットＡＰＩへのアクセスを有すると判定された場合、システムは、前記ＡＰＩデータベースから前記ターゲットＡＰＩのドキュメンテーションを取得し、前記取得した前記ターゲットＡＰＩのドキュメンテーションを前記ユーザデバイスに提供してよい。
【０００７】
本開示の別の態様は、ＡＰＩデータおよびドキュメンテーションｗ管理する方法に関する。方法は、第１コンピュータシステムに関連付けられたユーザデバイスから、第２コンピュータシステムのアイデンティティーを含まない入力を受け取ることを含み得る。方法は、ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連付けられたＡＰＩを除外すること、前記入力に基づいて、前記第２コンピュータシステムのＡＰＩであるターゲットＡＰＩを決定すること、前記ユーザデバイスのユーザが前記ターゲットＡＰＩへのアクセスを有することを判定することを含み得る。方法は、さらに、前記ユーザが前記ターゲットＡＰＩへのアクセスを有すると判定された場合、前記ＡＰＩデータベースから前記ターゲットＡＰＩのドキュメンテーションを取得すること、および、前記取得した前記ターゲットＡＰＩのドキュメンテーションを前記ユーザデバイスに提供すること、を含んでよい。
【０００８】
本開示のまた別の態様は、ＡＰＩ情報を管理するシステムに関する。システムは、少なくとも１つのプロセッサと、少なくとも１つのコンピュータシステムと関連付けられたＡＰＩと関連付けられたデータを格納するＡＰＩデータベースであって、各コンピュータシステムは、それぞれのＡＰＩを介して、前記コンピューティングシステムにおける他のコンピュータシステムと接続可能である、ＡＰＩデータベースと、前記少なくとも１つのプロセッサによって実行されるとプロセッサに動作を実行させる命令を含む少なくとも１つのメモリと、を備え得る。動作は、第１コンピュータシステムに関連付けられたユーザデバイスから、第２コンピュータシステムのアイデンティティーを含まない入力を受け取ること、ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連付けられたＡＰＩを除外すること、前記入力に基づいて、前記第２コンピュータシステムのＡＰＩであるターゲットＡＰＩを決定することを含み得る。動作は、前記ユーザデバイスのユーザが前記ターゲットＡＰＩへのアクセスを有するか否かを判定すること、前記ユーザが前記ターゲットＡＰＩへのアクセスを有すると判定された場合、前記ＡＰＩデータベースから前記ターゲットＡＰＩのドキュメンテーションを取得すること、前記取得した前記ターゲットＡＰＩのドキュメンテーションを前記ユーザデバイスに提供することを含み得る。動作は、さらに、前記コンピュータシステムの１つのＡＰＩを前記ＡＰＩデータベースに登録するためのリクエストを受信すること、前記ＡＰＩと関連付けられたデータを前記ＡＰＩデータベースに格納することと、前記リクエストに基づいて前記ＡＰＩと関連付けられたドキュメンテーションを生成すること、および、前記データベースに前記ドキュメンテーションを格納すること、前記ＡＰＩデータベースに格納された前記ＡＰＩの１つのデータまたはドキュメンテーションを更新するためのリクエストを受信することを含み得る。動作は、さらに、前記リクエストに基づいて、前記ＡＰＩの前記データまたは前記ドキュメンテーションを更新すること、および、前記リクエストに応答して、前記コンピュータシステムに関連付けられたユーザデバイスに通知を送信すること、を含み得る。
他のシステム、方法、およびコンピュータ可読媒体も、本明細書で説明される。
【図面の簡単な説明】
【０００９】
【図１Ａ】開示された実施形態と一致する、出荷、輸送、および物流オペレーションを可能にする通信のためのコンピュータ化されたシステムを備えるネットワークの例示的な実施形態を示す概略ブロック図である。
【図１Ｂ】開示された実施形態と矛盾しない、インタラクティブなユーザインターフェース要素と共に、検索要求を満たす１つ以上の検索結果を含む検索結果ページ（Search result page：ＳＲＰ）サンプル検索結果を示す。
【図１Ｃ】開示された実施形態と一致する、対話型ユーザインターフェース要素と共に製品および製品に関する情報を含む単一ディスプレイページ（Single display page：ＳＤＰ）のサンプルを示す。
【図１Ｄ】開示された実施形態と一致する、対話型ユーザインターフェース要素と共に仮想ショッピングカート内のアイテムを含むカートページのサンプルを示す。
【図１Ｅ】開示された実施形態に一致する、仮想ショッピングカートからのアイテムを、購入および出荷に関する情報とともに、対話型ユーザインターフェース要素とともに含む注文ページのサンプルを示す。
【図２】開示された実施形態と一致する、開示されたコンピュータ化されたシステムを利用するように構成された例示的なフルフィルメントセンタの概略図である。
【図３】開示された実施形態と一致する、ＡＰＩ情報を管理するための例示的なシステムの概略図を示す。
【図４】開示された実施形態と一致する、データベースにＡＰＩを登録するためのプロセスを示す。
【図５】開示された実施形態と一致する、データベース内のＡＰＩ情報を更新するためのプロセスを示す。
【図６】開示された実施形態と一致する、ユーザデバイスにドキュメンテーションを提供する例示的なプロセスを示す。
【図７】開示された実施形態と一致する、ＡＰＩ情報を管理するためのシステムの例示的なユーザインターフェースを示す。
【発明を実施するための形態】
【００１０】
以下の詳細な説明は、添付の図面を参照する。可能な限り、図面および以下の説明では、同一または類似の部分を参照するために、同一の参照番号が使用される。いくつかの例示的な実施形態が本明細書で説明されるが、修正、適応、および他の実装が可能である。例えば、置換、追加、または修正が、図面に示された構成要素およびステップに行われてもよく、本明細書に記載された例示的な方法は、開示された方法にステップを置換、並べ替え、除去、または追加することによって修正されてもよい。したがって、以下の詳細な説明は、開示された実施形態および実施例に限定されない。むしろ、本発明の適切な範囲は、添付の特許請求の範囲によって定義される。
【００１１】
本開示の実施形態は、ＡＰＩ情報を管理するように構成されたシステムおよび方法を対象とする。
【００１２】
図１Ａを参照すると、出荷、輸送、および物流動作を可能にする通信のためのコンピュータ化されたシステムを含むシステムの例示的な実施形態を示す概略ブロック図１００が示されている。図１Ａに示すように、システム１００は、様々なシステムを含むことができ、その各々は、１つまたは複数のネットワークを介して互いに接続することができる。システムはまた、例えばケーブルを使用して、直接接続を介して互いに接続されてもよい。図示のシステムは、出荷権限技術（Shipment authority technology：ＳＡＴ）システム１０１、外部フロントエンドシステム１０３、内部フロントエンドシステム１０５、輸送システム１０７、モバイルデバイス１０７Ａ、１０７Ｂ、および１０７Ｃ、売り手ポータル１０９、出荷および注文追跡（ＳＯＴ）システム１１１、フルフィルメント（履行）最適化（Fulfillment optimization：ＦＯ）システム１１３、フルフィルメントメッセージングゲートウェイ（Fulfillment messaging gateway：ＦＭＧ）１１５、サプライチェーン管理（Supply chain management：ＳＣＭ）システム１１７、労働力システム１１９、モバイルデバイス１１９Ａ、１１９Ｂ、および１１９Ｃ（フルフィルメントセンタ（Fulfilment center：ＦＣ）２００の内部にあるものとして図示）、第三者フルフィルメントシステム１２１Ａ、１２１Ｂ、および１２１Ｃ、フルフィルメントセンタ許可システム（ＦＣ  Ａｕｔｈ）１２３、ならびに労務管理システム（Labor management system：ＬＭＳ）１２５を含む。
【００１３】
いくつかの実施形態では、ＳＡＴシステム１０１は、注文ステータスおよび配信ステータスを監視するコンピュータシステムとして実装されてもよい。例えば、ＳＡＴシステム１０１は、注文がその約束納品日（Promised delivery date：ＰＤＤ）を過ぎているかどうかを判定することができ、新しい注文を開始すること、未納品注文のアイテムを再出荷すること、未納品注文をキャンセルすること、注文顧客とのコンタクトを開始することなどを含む適切なアクションをとることができる。ＳＡＴシステム１０１はまた、出力（特定の期間中に出荷されたパッケージの数など）および入力（出荷に使用するために受け取った空のボール紙箱の数など）を含む他のデータを監視することもできる。また、ＳＡＴシステム１０１は、システム１００内の異なるデバイス間のゲートウェイとして機能し、外部フロントエンドシステム１０３およびＦＯシステム１１３などのデバイス間の通信（例えば、ストアアンドフォワードまたは他の技術を使用する）を可能にしてもよい。
【００１４】
外部フロントエンドシステム１０３は、いくつかの実施形態では、外部ユーザがシステム１００内の１つまたは複数のシステムと対話することを可能にするコンピュータシステムとして実装することができる。例えば、システム１００がシステムのプレゼンテーションを可能にして、ユーザがアイテムの注文を行うことを可能にする実施形態では、外部フロントエンドシステム１０３は、検索要求を受信し、アイテムページを提示し、支払い情報を要請するウェブサーバとして実装されてもよい。例えば、外部フロントエンド・システム１０３は、Ａｐａｃｈｅ  ＨＴＴＰサーバ、Ｍｉｃｒｏｓｏｆｔインターネット・インフォメーション・サービス、ＮＧＩＮＸなどのソフトウェアを実行するコンピュータまたはコンピュータとして実現することができる。他の実施形態では、外部フロントエンドシステム１０３は、外部デバイス（例えば、モバイルデバイス１０２Ａまたはコンピュータ１０２Ｂ）からの要求を受信および処理し、それらの要求に基づいてデータベースおよび他のデータストアから情報を取得し、取得された情報に基づいて受信された要求への応答を提供するように設計されたカスタムウェブサーバソフトウェアを実行することができる。
【００１５】
いくつかの実施形態では、外部フロントエンドシステム１０３は、ウェブキャッシングシステム、データベース、検索システム、または支払いシステムのうちの１つまたは複数を含むことができる。一態様では、外部フロントエンドシステム１０３は、これらのシステムのうちの１つまたは複数を備えることができ、別の態様では、外部フロントエンドシステム１０３は、これらのシステムのうちの１つまたは複数に接続されたインターフェース（たとえば、サーバ間、データベース間、または他のネットワーク接続）を備えることができる。
【００１６】
図１Ｂ、図１Ｃ、図１Ｄ、および図１Ｅによって示されるステップの例示的なセットは、外部フロントエンドシステム１０３のいくつかの動作を説明するのに役立つであろう。外部フロントエンドシステム１０３は、提示および／または表示のために、システム１００内のシステムまたはデバイスから情報を受信することができる。例えば、外部フロントエンドシステム１０３は、検索結果ページ（Search result page：ＳＲＰ）（例えば、図１Ｂ）、単一詳細ページ（Single display page：ＳＤＰ）（例えば、図１Ｃ）、カードページ（例えば、図１Ｄ）、または注文ページ（例えば、図１Ｅ）を含む１つ以上のウェブページをホストまたは提供することができる。ユーザデバイス（例えば、モバイルデバイス１０２Ａまたはコンピュータ１０２Ｂを使用する）は、外部フロントエンドシステム１０３にナビゲートし、サーチボックスに情報を入力することによってサーチを要求することができる。外部フロントエンド・システム１０３は、システム１００内の１つまたは複数のシステムから情報を要求することができる。例えば、外部フロントエンドシステム１０３は、検索要求を満たす情報をＦＯシステム１１３に要求することができる。外部フロントエンドシステム１０３はまた、検索結果に含まれる各製品について、約束納品日または「ＰＤＤ」を要求し、（ＦＯシステム１１３から）受信することができる。ＰＤＤは、いくつかの実施形態では、製品を含むパッケージがいつユーザの所望の場所に到着するであろうかか、または製品が特定の期間内に、例えば、１日の終わり（午後１１時５９分）までに注文された場合、ユーザの所望の場所に配達されることを約束される日付の推定値を表すことができる（ＰＤＤは、ＦＯシステム１１３に関して以下でさらに説明される）。
【００１７】
外部フロントエンドシステム１０３は、情報に基づいてＳＲＰ  （例えば、図１Ｂ）を準備することができる。ＳＲＰは、検索要求を満たす情報を含むことができる。例えば、これは、検索要求を満たす製品の写真を含むことができる。ＳＲＰはまた、各製品のそれぞれの価格、または各製品の強化された配送オプション、ＰＤＤ、重量、サイズ、オファー、割引などに関する情報を含むことができる。外部フロントエンドシステム１０３は、（例えば、ネットワークを介して）要求側ユーザデバイスにＳＲＰを送信することができる。
【００１８】
次いで、ユーザデバイスは、例えば、ユーザインターフェースをクリックまたはタップすることによって、または別の入力デバイスを使用して、ＳＲＰ上で表される製品を選択することによって、ＳＲＰから製品を選択することができる。ユーザ・デバイスは、選択された製品に関する情報の要求を編成（formulate）し、それを外部フロントエンド・システム１０３に送ることができる。これに応答して、外部フロントエンドシステム１０３は、選択された製品に関する情報を要求することができる。例えば、情報は、それぞれのＳＲＰ上の製品について提示される情報を超える追加の情報を含むことができる。これは、例えば、賞味期限、原産国、重量、サイズ、パッケージ内のアイテムの数、取扱説明書、または製品に関する他の情報を含むことができる。また、情報は、（例えば、この製品および少なくとも１つの他の製品を購入した顧客のビッグデータおよび／または機械学習分析に基づく）類似の製品に対する推奨、頻繁に質問される質問に対する回答、顧客からのレビュー、製造業者情報、写真などを含むことができる。
【００１９】
外部フロントエンドシステム１０３は、受信した製品情報に基づいてＳＤＰ  （単一詳細ページ）（例えば、図１Ｃ）を準備することができる。ＳＤＰは、「今すぐ買う」ボタン、「カードに追加する」ボタン、数量フィールド、アイテムの写真などの他の対話型要素も含むことができる。ＳＤＰは、製品を提供する売り手のリストをさらに含むことができる。リストは、各売り手が提供する価格に基づいて順序付けられてもよく、その結果、最低価格で製品を販売することを提案する売り手は、最上位にリストされてもよい。リストは、最高ランクの売り手が最上位にリストされるように、売り手ランキングに基づいて順序付けらてもよい。売り手ランキングは、例えば、約束されたＰＤＤを満たす売り手の過去の実績を含む、複数の要因に基づいて定式化されてもよい。外部フロントエンドシステム１０３は、（例えば、ネットワークを介して）要求側ユーザデバイスにＳＤＰを配信することができる。
【００２０】
要求ユーザデバイスは、製品情報をリストするＳＤＰを受信してもよい。その後、ＳＤＰを受信すると、ユーザデバイスはＳＤＰと対話することができる。例えば、要求ユーザ装置のユーザは、ＳＤＰ上の「カートに入れる」ボタンをクリックするか、または他の方法で対話することができる。これは、ユーザに関連付けられたショッピングカートに製品を追加する。ユーザ装置は、ショッピングカートに製品を追加するためのこの要求を外部フロントエンドシステム１０３に送信することができる。
【００２１】
外部フロントエンドシステム１０３は、カートページ（例えば、図１Ｄ）を生成することができる。カートページは、いくつかの実施形態では、ユーザが仮想「ショッピングカート」に追加した製品をリストし、ユーザデバイスは、ＳＲＰ、ＳＤＰ、または他のページ上のアイコンをクリックするか、または他の方法で対話することによって、カートページを要求してもよい。いくつかの実施形態では、カートページは、ユーザがショッピングカートに追加したすべての製品、ならびに各製品の数量、各製品毎の価格、関連する数量に基づく各製品の価格、ＰＤＤに関する情報、配送方法、配送コスト、ショッピングカート内の製品を修正するためのユーザインターフェース要素（例えば、数量の削除または修正）、他の製品を注文するためのオプション、または製品の定期的な配送を設定するためのオプション、利息支払いを設定するためのオプション、購入に進むためのユーザインターフェース要素などのカート内の製品に関する情報をリストすることができる。ユーザデバイスのユーザは、ショッピングカート内の製品の購入を開始するために、ユーザインターフェース要素（例えば、「今すぐ買う」と読むボタン）をクリックするか、さもなければユーザインターフェース要素と対話することができる。そうすると、ユーザ・デバイスは、購入を開始するためにこの要求を外部フロント・エンド・システム１０３に送信することができる。
【００２２】
外部フロントエンドシステム１０３は、購入を開始する要求の受信に応答して、注文ページ（例えば、図１Ｅ）を生成することができる。注文ページは、いくつかの実施形態では、ショッピングカートからアイテムを再リストし、支払いおよび出荷情報の入力を要求する。例えば、注文ページは、ショッピングカート内のアイテムの購入者に関する情報（例えば、名前、住所、電子メールアドレス、電話番号）、受取人に関する情報（例えば、名前、住所、電話番号、配達情報）、出荷情報（例えば、配達および／または集荷の速度／方法）、支払い情報（例えば、クレジットカード、銀行振込、小切手、格納クレジット）、現金受領を要求するためのユーザインターフェース要素（例えば、税務目的のための）などを要求するセクションを含むことができる。外部フロントエンドシステム１０３は、注文ページをユーザデバイスに送信することができる。
【００２３】
ユーザデバイスは、オーダページに情報を入力し、その情報を外部フロントエンドシステム１０３に送信するユーザインターフェース要素をクリックするか、または他の方法で対話することができる。そこから、外部フロントエンドシステム１０３は、システム１００内の異なるシステムに情報を送信して、ショッピングカート内の製品を用いた新しい注文の作成および処理を可能にすることができる。
【００２４】
いくつかの実施形態では、外部フロントエンドシステム１０３は、売り手が注文に関する情報を送受信することを可能にするようにさらに構成されてもよい。
【００２５】
内部フロントエンドシステム１０５は、いくつかの実施形態では、内部ユーザ（例えば、システム１００を所有し、操作し、またはリースする組織の従業員）がシステム１００内の１つまたは複数のシステムと対話することを可能にするコンピュータシステムとして実装され得る。例えば、ネットワーク１０１がシステムのプレゼンテーションを可能にして、ユーザがアイテムの注文を行うことを可能にする実施形態では、内部フロントエンドシステム１０５は、内部ユーザが注文に関する診断および統計情報を見ること、アイテム情報を修正すること、または注文に関する統計をレビューすることを可能にするウェブサーバとして実装されてもよい。例えば、内部フロントエンド・システム１０５は、Ａｐａｃｈｅ  ＨＴＴＰサーバ、Ｍｉｃｒｏｓｏｆｔインターネット・インフォメーション・サービス、ＮＧＩＮＸなどのソフトウェアを実行するコンピュータまたはコンピュータとして実現することができる。他の実施形態では、内部フロントエンドシステム１０５は、システム１００に示されているシステムまたは装置（および図示されていない他の装置）からの要求を受信および処理し、それらの要求に基づいてデータベースおよび他のデータストアから情報を取得し、取得された情報に基づいて受信された要求に応答を提供するように設計されたカスタムウェブサーバソフトウェアを実行してもよい。
【００２６】
いくつかの実施形態では、内部フロントエンドシステム１０５は、ウェブキャッシングシステム、データベース、検索システム、支払いシステム、分析システム、注文監視システムなどのうちの１つまたは複数を含むことができる。一態様では、内部フロントエンドシステム１０５は、これらのシステムのうちの１つまたは複数を備えることができ、別の態様では、内部フロントエンドシステム１０５は、これらのシステムのうちの１つまたは複数に接続されたインターフェース（たとえば、サーバ間、データベース間、または他のネットワーク接続）を備えることができる。
【００２７】
輸送システム１０７は、いくつかの実施形態では、システム１００内のシステムまたはデバイスとモバイルデバイス１０７Ａ〜１０７Ｃとの間の通信を可能にするコンピュータシステムとして実装され得る。輸送システム１０７は、いくつかの実施形態では、１つまたは複数のモバイルデバイス１０７Ａ〜１０７Ｃ（例えば、携帯電話、スマートフォン、ＰＤＡなど）から情報を受信することができる。例えば、いくつかの実施形態では、モバイルデバイス１０７Ａ〜１０７Ｃは、配達員によって操作されるデバイスを備えてもよい。配達作業員は、正社員、一時社員、またはシフト社員であってもよく、モバイルデバイス１０７Ａ〜１０７Ｃを利用して、ユーザによって注文された製品を含む荷物の配達を行うことができる。例えば、荷物を配達するために、配達作業者は、どの荷物を配達すべきか、およびどこに配達すべきかを示す通知をモバイルデバイス上で受信することができる。配達作業者は、配達場所に到着すると、荷物を（例えば、トラックの後ろに、または荷物のクレートに）配置し、モバイルデバイスを使用して荷物上の識別子（例えば、バーコード、画像、テキストストリング、ＲＦＩＤタグなど）に関連するデータをスキャンまたは他の方法で取り込み、荷物を（例えば、前面ドアに置いたままにし、セキュリティガードを付けたままにし、受取人に渡すなどによって）配達することができる。さらに、モバイル機器１０７Ａ−Ｃは、モバイル機器１０７Ａ−Ｃが輸送システム１０７と通信することを可能にするアプリケーション及び／又は通信ソフトウェアを実行し、モバイル機器１０７Ａ−Ｃに含まれる表示装置を介してインターフェース上にコンテンツを生成し表示することができる。例えば、モバイルデバイス１０７Ａ〜Ｃは、配達関連情報を輸送システム１０７に送信するためにモバイルアプリケーションを実行することができる。いくつかの実施形態では、配達作業者は、荷物の写真（複数可）をキャプチャすることができ、および／またはモバイルデバイスを使用して署名を取得することができる。モバイルデバイスは、例えば、時間、日付、ＧＰＳ位置、写真、配達作業者に関連付けられた識別子、モバイルデバイスに関連付けられた識別子などを含む、配達に関する情報を含む通信を輸送システム１０７に送信することができる。輸送システム１０７は、システム１００内の他のシステムによるアクセスのために、この情報をデータベース（図示せず）に記憶することができる。輸送システム１０７は、いくつかの実施形態では、この情報を使用して、特定の荷物の位置を示す追跡データを準備し、他のシステムに送信することができる。
【００２８】
いくつかの実施形態では、あるユーザは、１つの種類のモバイルデバイスを使用することができる（例えば、正社員は、バーコードスキャナ、スタイラス、および他のデバイスなどのカスタムハードウェアを有する専用のＰＤＡを使用することができる）が、他のユーザは、他の種類のモバイルデバイスを使用することができる（例えば、一時的またはシフト労働者は、既製のモバイル電話および／またはスマートフォンを利用することができる）。
【００２９】
いくつかの実施形態では、輸送システム１０７は、ユーザを各デバイスに関連付けることができる。例えば、輸送システム１０７は、ユーザ（例えば、ユーザ識別子、従業員識別子、または電話番号によって表される）と移動装置（例えば、国際移動装置識別子（ＩＭＥＩ）、国際移動加入識別子（ＩＭＳＩ）、電話番号、汎用一意識別子（ＵＵＩＤ）、またはグローバル一意識別子（ＧＵＩＤ）によって表される）との間の関連付けを記憶することができる。輸送システム１０７は、とりわけ、作業者の位置、作業者の効率、または作業者の速度を決定するために、この関連付けを、配達時に受信されたデータと共に使用して、データベースに格納されたデータを分析することができる。
【００３０】
売り手ポータル１０９は、いくつかの実施形態では、売り手または他の外部エンティティがシステム１００内の１つまたは複数のシステムと電子的に通信することを可能にするコンピュータシステムとして実装され得る。例えば、売り手は、コンピュータシステム（図示せず）を利用して、売り手が売り手ポータル１０９を使用してシステム１００を通して売りたい製品について、製品情報、注文情報、連絡先情報などをアップロードまたは提供することができる。
【００３１】
いくつかの実施形態では、出荷および注文追跡システム１１１は、（例えば、デバイス１０２Ａ〜１０２Ｂを使用するユーザによって）顧客によって注文された製品を含むパッケージの位置に関する情報を受信し、格納し、転送するコンピュータシステムとして実装され得る。いくつかの実施形態では、出荷および注文追跡システム１１１は、顧客によって注文された製品を含むパッケージを配送する出荷会社によって運営されるウェブサーバ（図示せず）からの情報を要求または格納することができる。
【００３２】
いくつかの実施形態では、出荷および注文追跡システム１１１は、システム１００に示されるシステムからの情報を要求し、記憶することができる。例えば、出荷及び注文追跡システム１１１は、輸送システム１０７から情報を要求することができる。上述のように、輸送システム１０７は、ユーザ（例えば、配達作業員）または車両（例えば、配達トラック）のうちの１つ以上に関連付けられた１つ以上のモバイルデバイス１０７Ａ〜１０７Ｃ（例えば、携帯電話、スマートフォン、ＰＤＡなど）から情報を受信してもよい。いくつかの実施形態では、出荷および注文追跡システム１１１はまた、労働力管理システム（ＷＭＳ）１１９から情報を要求して、フルフィルメントセンター（例えば、フルフィルメントセンター２００）内の個々の製品の位置を決定することができる。出荷および注文追跡システム１１１は、輸送システム１０７またはＷＭＳ  １１９のうちの１つまたは複数からデータを要求し、それを処理し、要求に応じてそれをデバイス（たとえば、ユーザデバイス１０２Ａおよび１０２Ｂ）に提示することができる。
【００３３】
いくつかの実施形態では、フルフィルメント最適化（ＦＯ）システム１１３は、他のシステム（例えば、外部フロントエンドシステム１０３および／または出荷および注文追跡システム１１１）からの顧客注文に関する情報を記憶するコンピュータシステムとして実装されてもよい。ＦＯシステム１１３はまた、特定のアイテムがどこに保持または格納されるかを記述する情報を格納してもよい。たとえば、顧客が注文した特定のアイテムは１つのフルフィルメントセンターにのみ保存され、他の特定のアイテムは複数のフルフィルメントセンターに保存される場合がある。さらに他の実施形態では、特定のフルフィルメントセンターは、特定のセットのアイテム（例えば、生鮮食品または冷凍製品）のみを格納するように設計されてもよい。ＦＯシステム１１３は、この情報ならびに関連する情報（例えば、数量、サイズ、受領日、有効期限など）を格納する。
【００３４】
ＦＯシステム１１３はまた、各製品について対応するＰＤＤ  （約束納期）を計算することができる。ＰＤＤは、いくつかの実施形態では、１つまたは複数の要因に基づくことができる。例えば、ＦＯシステム１１３は、製品の過去の需要（例えば、その製品がある期間中に何回注文されたか）、製品の予想需要（例えば、来るべき期間中にその製品を注文するために何人の顧客が予想されるか）、ある期間中にいくつの製品が注文されたかを示すネットワーク全体の過去の需要、来るべき期間中にいくつの製品が注文されることが予想されるかを示すネットワーク全体の予想需要、各フルフィルメントセンタ２００に格納された製品の１つまたは複数のカウント、その製品の予想または現在の注文などに基づいて、製品のＰＤＤを計算することができる。
【００３５】
いくつかの実施形態では、ＦＯシステム１１３は、定期的に（例えば、１時間ごとに）各製品のＰＤＤを決定し、それをデータベースに格納して、検索または他のシステム（例えば、外部フロントエンドシステム１０３、ＳＡＴシステム１０１、出荷および注文追跡システム１１１）に送信することができる。他の実施形態では、ＦＯシステム１１３は、１つまたは複数のシステム（例えば、外部フロントエンドシステム１０３、ＳＡＴシステム１０１、出荷および注文追跡システム１１１）から電子要求を受信し、オンデマンドでＰＤＤを計算することができる。
【００３６】
フルフィルメントメッセージングゲートウェイ１１５は、いくつかの実施形態では、ＦＯシステム１１３などのシステム１００内の１つ以上のシステムから１つのフォーマットまたはプロトコルで要求または応答を受信し、それを別のフォーマットまたはプロトコルに変換し、変換されたフォーマットまたはプロトコルで、ＷＭＳ  １１９または３パーティフルフィルメントシステム１２１Ａ、１２１Ｂ、または１２１Ｃなどの他のシステムに転送するコンピュータシステムとして実装することができる。
【００３７】
サプライチェーン管理（ＳＣＭ）システム１１７は、いくつかの実施形態では、予測機能を実行するコンピュータシステムとして実装することができる。例えば、ＳＣＭシステム１１７は、例えば、製品に対する過去の需要、製品に対する予想される需要、ネットワーク全体の過去の需要、ネットワーク全体の予想される需要、各フルフィルメントセンタ２００に格納されたカウント製品、各製品に対する予想または現在の注文などに基づいて、特定の製品に対する需要のレベルを予測することができる。この予測されたレベルおよびすべてのフルフィルメントセンターにわたる各製品の量に応答して、ＳＣＭシステム１１７は、特定の製品に対する予測された需要を満たすのに十分な量を購入し、在庫するための１つまたは複数の購入注文を生成することができる。
【００３８】
労働力管理システム（ＷＭＳ）１１９は、ある実施形態では、ワークフローを監視するコンピュータシステムとして実装されてもよい。例えば、ＷＭＳ  １１９は、個別のイベントを示すイベントデータを個々のデバイス（例えば、デバイス１０７Ａ〜１０７Ｃまたは１１９Ａ〜１１９Ｃ）から受信することができる。例えば、ＷＭＳ  １１９は、パッケージを走査するためにこれらの装置の１つの使用を示すイベントデータを受信してもよい。フルフィルメントセンター２００および図２に関して以下で説明するように、フルフィルメントプロセス中に、パッケージ識別子（例えば、バーコードまたはＲＦＩＤタグデータ）を、特定の段階で機械によってスキャンまたは読み取ることができる（例えば、自動またはハンドヘルドバーコードスキャナ、ＲＦＩＤリーダ、高速カメラ、タブレット１１９Ａ、モバイルデバイス／ＰＤＡ  １１９Ｂ、コンピュータ１１９Ｃなどのデバイス）。ＷＭＳ  １１９は、パッケージ識別子、時間、日付、位置、ユーザ識別子、またはその他の情報と共に、パッケージ識別子の走査または読取りを示す各イベントを対応するデータベース（図示せず）に格納し、この情報を他のシステム（例えば、出荷および注文追跡システム１１１）に提供することができる。
【００３９】
ＷＭＳ  １１９は、いくつかの実施形態では、１つまたは複数のデバイス（たとえば、デバイス１０７Ａ〜１０７Ｃまたは１１９Ａ〜１１９Ｃ）をシステム１００に関連する１つまたは複数のユーザに関連付ける情報を記憶することができる。例えば、いくつかの状況では、ユーザ（パートまたはフルタイムの従業員など）は、ユーザがモバイルデバイスを所有するモバイルデバイス（例えば、モバイルデバイスはスマートフォンである）に関連付けられ得る。他の状況では、ユーザは、ユーザがモバイルデバイスを一時的に保管しているという点で、モバイルデバイスに関連付けられてもよい（例えば、ユーザは、日の始めにモバイルデバイスをチェックアウトし、日中にモバイルデバイスを使用し、日の終わりにモバイルデバイスを戻してもよい）。
【００４０】
ＷＭＳ  １１９は、いくつかの実施形態では、システム１００に関連する各ユーザの作業ログを維持することができる。例えば、ＷＭＳ  １１９は、任意の割り当てられたプロセス（例えば、トラックのアンロード、ピックゾーンからのアイテムのピッキング、リビン壁工事（rebin wall work）、アイテムのパッキング）、ユーザ識別子、位置（例えば、フルフィルメントセンタ２００内のフロアまたはゾーン）、従業員によってシステムを通って移動されたユニットの数（例えば、ピッキングされたアイテムの数、パッキングされたアイテムの数）、デバイス（例えば、デバイス１１９Ａ〜１１９Ｃ）に関連付けられた識別子などを含む、各従業員に関連付けられた情報を記憶することができる。いくつかの実施形態では、ＷＭＳ  １１９は、デバイス１１９Ａ〜１１９Ｃ上で動作するタイムキーピングシステムなどのタイムキーピングシステムからチェックインおよびチェックアウト情報を受信することができる。
【００４１】
第三者フルフィルメント（３ＰＬ）システム１２１Ａ〜１２１Ｃは、いくつかの実施形態では、ロジスティクスおよび製品のサードパーティプロバイダに関連するコンピュータシステムを表す。例えば、（図２に関して以下に説明するように）いくつかの製品がフルフィルメントセンター２００に保管されている間、他の製品はオフサイトで保管されてもよく、オンデマンドで生産されてもよく、またはそうでなければフルフィルメントセンター２００に保管するために利用できなくてもよい。３ＰＬシステム１２１Ａ〜１２１Ｃは、ＦＯシステム１１３から（例えば、ＦＭＧ  １１５を介して）注文を受信するように構成されてもよく、製品および／またはサービス（例えば、配送または設置）を顧客に直接提供してもよい。いくつかの実施形態では、３ＰＬシステム１２１Ａ〜１２１Ｃのうちの１つまたは複数は、システム１００の一部とすることができ、他の実施形態では、３ＰＬシステム１２１Ａ〜１２１Ｃのうちの１つまたは複数は、システム１００の外部（例えば、サードパーティプロバイダによって所有または運営される）とすることができる。
【００４２】
いくつかの実施形態では、フルフィルメントセンターオースシステム（ＦＣオース）１２３は、様々な機能を有するコンピュータシステムとして実装されてもよい。例えば、いくつかの実施形態では、ＦＣ  Ａｕｔｈ  １２３は、システム１００内の１つまたは複数の他のシステムのためのシングルサインオン（ＳＳＯ）サービスとして働くことができる。例えば、ＦＣ認証１２３は、ユーザが内部フロントエンドシステム１０５を介してログインすることを可能にし、ユーザが出荷および注文追跡システム１１１でリソースにアクセスする同様の特権を有することを決定し、ユーザが２回目のログインプロセスを必要とせずにそれらの特権にアクセスすることを可能にする。ＦＣオース１２３は、他の実施形態では、ユーザ（例えば、従業員）が特定のタスクに自分自身を関連付けることを可能にすることができる。例えば、従業員の中には、電子デバイス（デバイス１１９Ａ〜１１９Ｃなど）を持たないことがあり、代わりに、１日のコース中に、フルフィルメントセンタ２００内でタスクからタスクへ、およびゾーンからゾーンへ移動することがある。ＦＣ  Ａｕｔｈ  １２３は、それらの従業員が、彼らがどのタスクを実行しているか、および彼らが異なる時刻にどのゾーンにいるかを示すことを可能にするように構成され得る。
【００４３】
労働管理システム（ＬＭＳ）１２５は、いくつかの実施形態では、従業員（フルタイムおよびパートタイムの従業員を含む）のための出勤および残業情報を記憶するコンピュータシステムとして実装されてもよい。例えば、ＬＭＳ  １２５は、ＦＣ  Ａｕｔｈ  １２３、ＷＭＡ  １１９、デバイス１１９Ａ〜１１９Ｃ、輸送システム１０７、および／またはデバイス１０７Ａ〜１０７Ｃから情報を受信することができる。
【００４４】
図１Ａに示される特定の構成は、単なる例である。例えば、図１Ａは、ＦＯシステム１１３に接続されたＦＣオースシステム１２３を示すが、全ての実施形態がこの特定の構成を必要とするわけではない。実際、いくつかの実施形態では、システム１００内のシステムは、インターネット、イントラネット、ＷＡＮ  （ワイドエリアネットワーク）、ＭＡＮ  （メトロポリタンエリアネットワーク）、ＩＥＥＥ  ８０２．１１ａ／ｂ／ｇ／ｎ規格に準拠する無線ネットワーク、専用線などを含む１つまたは複数の公衆またはプライベートネットワークを介して互いに接続され得る。いくつかの実施形態では、システム１００内のシステムの１つ以上は、データセンター、サーバファームなどに実装された１つ以上の仮想サーバとして実装されてもよい。
【００４５】
図２は、フルフィルメントセンター２００を示す。フルフィルメントセンター２００は、注文時に顧客に出荷するためのアイテムを格納する物理的位置の一例である。フルフィルメントセンタ（ＦＣ）２００は、複数のゾーンに分割することができ、各ゾーンは図２に示されている。いくつかの実施形態では、これらの「ゾーン」は、アイテムを受け取り、アイテムを格納し、アイテムを取り出し、アイテムを出荷するプロセスの異なる段階間の仮想分割と考えることができ、したがって、「ゾーン」は図２に示されているが、ゾーンの他の分割も可能であり、図２のゾーンは、いくつかの実施形態では、省略、複製、または修正することができる。
【００４６】
インバウンドゾーン２０３は、図１Ａのシステム１００を使用して製品を販売したい売り手からアイテムが受け取られるＦＣ  ２００の領域を表す。例えば、売り手は、トラック２０１を使用してアイテム２０２Ａ及び２０２Ｂを配送することができる。アイテム２０２Ａは、それ自体の出荷パレットを占有するのに十分な大きさの単一のアイテムを表すことができ、アイテム２０２Ｂは、スペースを節約するために同じパレット上に一緒に積み重ねられたアイテムのセットを表すことができる。
【００４７】
作業者は、インバウンドゾーン２０３内のアイテムを受け取ることができ、任意選択で、コンピュータシステム（図示せず）を使用してアイテムの損傷および正しさをチェックすることができる。例えば、作業者は、コンピュータシステムを使用して、アイテム２０２Ａおよび２０２Ｂの数量をアイテムの注文数量と比較することができる。数量が一致しない場合、その作業者は、アイテム２０２Ａまたは２０２Ｂのうちの１つまたは複数を拒否することができる。量が一致した場合、作業者はそれらのアイテム（例えば、人形、手すり、フォークリフト、または手動で使用）を、ゾーン２０５を緩衝するように動かすことができる。バッファゾーン２０５は、例えば、予測される需要を満たすのに十分な量のアイテムがピッキングゾーン内にあるため、ピッキングゾーン内で現在必要とされていないアイテムのための一時保管領域であってもよい。いくつかの実施形態では、フォークリフト２０６は、物品をバッファゾーン２０５の周り、およびインバウンドゾーン２０３とドロップゾーン２０７との間で移動させるように動作する。ピッキングゾーンにアイテム２０２Ａまたは２０２Ｂが必要な場合（例えば、予想される需要のため）、フォークリフトは、アイテム２０２Ａまたは２０２Ｂを落下ゾーン２０７に移動させることができる。
【００４８】
ドロップゾーン２０７は、アイテムがピッキングゾーン２０９に移動される前にアイテムを格納するＦＣ  ２００の領域であってもよい。ピッキングタスクに割り当てられた作業者（「ピッカー」）は、ピッキングゾーン内のアイテム２０２Ａおよび２０２Ｂに接近し、ピッキングゾーンのバーコードをスキャンし、モバイルデバイス（例えば、デバイス１１９Ｂ）を使用してアイテム２０２Ａおよび２０２Ｂに関連付けられたバーコードをスキャンすることができる。次いで、ピッカーは、アイテムをピッキング・ゾーン２０９に（例えば、カートの上に置くか、またはそれを運ぶことによって）取り込むことができる。
【００４９】
ピッキングゾーン２０９は、アイテム２０８が保管（storage）ユニット２１０に保管されるＦＣ  ２００の領域であってもよい。いくつかの実施形態では、保管ユニット２１０は、物理的な棚、本棚、箱、運搬箱、冷蔵庫、冷凍庫、冷蔵庫などのうちの１つまたは複数を含むことができる。いくつかの実施形態では、ピッキングゾーン２０９は、複数のフロアに編成されてもよい。いくつかの実施形態では、作業者または機械は、例えば、フォークリフト、エレベータ、コンベヤベルト、カート、ハンドトラック、ドリー、自動ロボットまたは装置、あるいは手動を含む複数の方法で、物品をピッキングゾーン２０９に移動させることができる。例えば、ピッカーは、アイテム２０２Ａおよび２０２Ｂをドロップゾーン２０７内のハンドトラックまたはカート上に置き、アイテム２０２Ａおよび２０２Ｂをピッキングゾーン２０９まで歩くことができる。
【００５０】
ピッカーは、保管ユニット２１０上の特定のスペースのような、ピッキングゾーン２０９内の特定のスポットにアイテムを配置する（または「収納する」）命令を受け取ることができる。例えば、ピッカーは、モバイルデバイス（例えば、デバイス１１９Ｂ）を使用してアイテム２０２Ａをスキャンすることができる。デバイスは、例えば、通路、棚、および位置を示すシステムを使用して、ピッカーがアイテム２０２Ａを収納すべき場所を示すことができる。次に、デバイスは、その位置にアイテム２０２Ａを格納する前に、その位置でバーコードをスキャンするようにピッカーに促すことができる。装置は、図１のＷＭＳ  １１９のようなコンピュータシステムに（例えば、無線ネットワークを介して）データを送信し、装置１１９Ｂを使用するユーザによってアイテム２０２Ａがその場所に格納されたことを示すことができる。
【００５１】
ユーザが注文を出すと、ピッカは、保管ユニット２１０から１つまたは複数のアイテム２０８を取り出すために、デバイス１１９Ｂ上で命令を受け取ることができる。ピッカーは、アイテム２０８を取り出し、アイテム２０８上のバーコードをスキャンし、それを搬送機構２１４上に置くことができる。搬送機構２１４はスライドとして表されているが、いくつかの実施形態では、搬送機構は、コンベヤベルト、エレベータ、カート、フォークリフト、ハンドトラック、台車、カートなどのうちの１つまたは複数として実施することができる。次に、アイテム２０８は、パッキングゾーン２１１に到着することができる。
【００５２】
パッキングゾーン２１１は、アイテムがピッキングゾーン２０９から受け取られ、最終的に顧客に出荷するためにボックスまたはバッグにパッキングされるＦＣ  ２００の領域であってもよい。パッキングゾーン２１１では、アイテムを受け取るように割り当てられた作業者（「リビン（rebin）作業者」）は、ピッキングゾーン２０９からアイテム２０８を受け取り、それがどの注文に対応するかを決定することができる。例えば、リビン作業者は、アイテム２０８上のバーコードをスキャンするために、コンピュータ１１９Ｃなどのデバイスを使用することができる。コンピュータ１１９Ｃは、どの注文アイテム２０８が関連付けられているかを視覚的に示すことができる。これは、例えば、注文に対応する壁２１６上のスペースまたは「セル」を含むことができる。注文が完了すると（例えば、セルが注文のためのすべてのアイテムを含むため）、リビン作業者は、注文が完了したことをパッキング作業者（または「パッカー」）に示すことができる。パッカーは、セルからアイテムを取り出し、それらを出荷のために箱または袋に入れることができる。その後、パッカーは、例えば、フォークリフト、カート、ドリー、ハンドトラック、コンベヤーベルトを介して、又は他の方法で、箱又はバッグをハブゾーン２１３に送ることができる。
【００５３】
ハブゾーン２１３は、パッキングゾーン２１１から全てのボックスまたはバッグ（「パッケージ」）を受け取るＦＣ  ２００の領域であってもよい。ハブゾーン２１３内の作業者および／または機械は、小包２１８を取り出し、各小包が配達エリアのどの部分に行こうとするかを決定し、小包を適切なキャンプゾーン２１５にルーティングすることができる。例えば、配達エリアが２つのより小さいサブエリアを有する場合、パッケージは、２つのキャンプゾーン２１５のうちの１つに行くことができる。いくつかの実施形態では、作業者または機械は、（例えば、デバイス１１９Ａ〜１１９Ｃのうちの１つを使用して）パッケージをスキャンして、その最終的な宛先を決定することができる。パッケージをキャンプゾーン２１５にルーティングすることは、例えば、（例えば、郵便番号に基づいて）パッケージが向けられている地理的エリアの一部を決定することと、地理的エリアの一部に関連付けられたキャンプゾーン２１５を決定することとを含むことができる。
【００５４】
キャンプゾーン２１５は、いくつかの実施形態では、１つまたは複数の建物、１つまたは複数の物理的空間、または１つまたは複数のエリアを備えることができ、ハブゾーン２１３から受け取られたパッケージは、ルートおよび／またはサブルートに分類される。いくつかの実施形態では、キャンプゾーン２１５は、ＦＣ  ２００から物理的に分離されているが、他の実施形態では、キャンプゾーン２１５は、ＦＣ  ２００の一部を形成することができる。
【００５５】
キャンプゾーン２１５内の作業者および／または機械は、例えば、既存のルートおよび／またはサブルートに対する目的地の比較、各ルートおよび／またはサブルートに対する作業負荷の計算、時刻、出荷方法、パッケージ２２０を出荷するためのコスト、パッケージ２２０内のアイテムに関連付けられたＰＤＤなどに基づいて、パッケージ２２０がどのルートおよび／またはサブルートに関連付けられるべきかを決定することができる。いくつかの実施形態では、作業者または機械は、（例えば、デバイス１１９Ａ〜１１９Ｃのうちの１つを使用して）パッケージをスキャンして、その最終的な宛先を決定することができる。パッケージ２２０が特定のルートおよび／またはサブルートに割り当てられると、作業者および／または機械は、出荷されるパッケージ２２０を移動させることができる。例示的な図２において、キャンプゾーン２１５は、トラック２２２、自動車２２６、および配達作業員２２４Ａおよび２２４Ｂを含む。いくつかの実施形態では、トラック２２２は、配達作業員２２４Ａによって駆動されてもよく、配達作業員２２４Ａは、ＦＣ  ２００のパッケージを配達する常勤の従業員であり、トラック２２２は、ＦＣ  ２００を所有、リース、または運営する同じ会社によって所有、リース、または運営される。いくつかの実施形態では、自動車２２６は、配達作業者２２４Ｂによって駆動されてもよく、配達作業者２２４Ｂは、必要に応じて（例えば、季節的に）配達している「屈曲」または時折の作業者である。自動車２２６は、配達員２２４Ｂによって所有され、リースされ、または操作されてもよい。
【００５６】
図３は、開示された実施形態と一致する、ＡＰＩ情報を管理するための例示的なシステム（例示的なシステム３００）の概略図を示す。システム３００は、ＡＰＩ管理システム３１０、ＡＰＩ接続システム３１８、コンピュータ・システム３０３、ＡＰＩ１０５、データベース３３０およびネットワーク３２０を含むことができる。コンピュータ・システムのＡＰＩは、ネットワーク３２０を介して互いに接続されてもよい。コンピュータ・システム３０３は、１つ以上のＡＰＩを含むことができる。同じコンピュータシステムのＡＰＩは、ネットワーク３２０を介して互いに接続されてもよい。１つのコンピュータ・システムに関連するユーザ・デバイス、またはユーザ・デバイスのユーザは、ネットワーク３２０を介して他のコンピュータ・システムのＡＰＩに接続することもできる。
【００５７】
コンピュータ・システム３０３は、システム１００内の１つ以上のシステムを含むコンピュータ・システムであってもよい。複数のコンピュータ・システム３０３が存在してもよく、それぞれが互いに接続されていてもよい（例えば、直接的に、またはネットワーク３２０を介して）。コンピュータ・システム３０３は、サーバ、ワークステーション、デスクトップ・コンピュータ、モバイル・装置、または特殊目的のコンピューティング・装置などの１つ以上のコンピューティング・装置を含むことができる。コンピュータ・システム３０３は、システム１００内の様々なシステムのサブシステムの一部であってもよい。例えば、コンピュータシステム３０３は、各製品について対応するＰＤＤ  （約束納期）を計算するＦＯシステム１１３のサブシステムであってもよい。
【００５８】
ＡＰＩ３０５は、コンピュータ・システム３０３が１つ以上のＡＰＩを有していてもよく、あるいは、それぞれが独自のＡＰＩを有するサブシステムを有していてもよいので、１つ以上のＡＰＩを備えてもよい。ＡＰＩ３０５はまた、１つ以上のコンピュータシステムに関連付けられてもよい。ＡＰＩは、本明細書で集合的にＡＰＩと呼ばれる複数の機能および層を備えることができる。いくつかの実施形態において、ＡＰＩは、ユーザインタフェース層、ＡＰＩ機能層、コンピュータシステム層、共通言語層、または後にデータベースなどの複数の層を含むことができる。層は、複数の機能を含むことができる。例えば、ＡＰＩ機能層は、アプリケーション・プログラマ、顧客、スーパーバイザなど、ＡＰＩのユーザに異なるリソースまたはサービスを提供する機能のグループを含むことができる。ユーザは、ネットワーク・プラットフォームに関連し、接続されている機能を使用してもよく、このネットワークは、コンピュータ・システム内のプライベート・ネットワーク、オペレーティング環境、もしくは、組織全体であるか、または、外部ユーザに関連するパブリックネットワークである。プログラマ・ユーザは、ネットワーク・リソースやその他のＷｅｂサービスを最大限に活用するコンピューティング・システム用のＷｅｂアプリケーションを作成できる。これらのネットワーク・リソースが実際にどのように動作するか、または利用可能になるかについての複雑な技術的詳細を理解する必要はない。
【００５９】
ＡＰＩ３０５を使用するアプリケーションは、複数のプログラミング言語で書かれてもよい。例えば、アプリケーションは、．Ｎｅｔ  Ｆｒａｍｅｗｏｒｋ、．Ｎｅｔ  Ｃｏｍｐａｃｔ  Ｆｒａｍｅｗｏｒｋ  （およびＶｉｓｕａｌ  Ｂａｓｉｃ、Ｃなどの関連言語）、Ｊａｖａ、Ｃ＋＋、Ｏｂｊｅｃｔｉｖｅ−Ｃ、ＨＴＭＬ、ＨＴＭＬ／ＡＪＡＸの組み合わせ、ＸＭＬ、または、Ｊａｖａアプレットを含むＨＴＭＬで記述されてよい。いくつかの実施形態において、ＡＰＩ３０５は、コンピュータシステムまたはサブシステムの機能性のために最適化された限定された数の好ましい選択言語をサポートしてもよい。他の実施形態では、ＡＰＩ３０５は、プログラミング言語を共通言語層によってサポートされる中間言語に翻訳し、ネットワーク３２０を介してコンピュータシステム３０３に接続するＡＰＩの共通言語出力の一部として含まれる共通言語層を備えてもよい。このようにして、ＡＰＩ３０５は、様々な種類のコンピュータ・システム、サブシステム、および実用的なニーズに対応するために、ならびにＡＰＩ管理システム３１０などのネットワーク３２０を介して例示的なシステム３００の他の構成要素がそれらの機能を達成することを可能にするために、幅広く多様なアプリケーションを効果的に提供することができる。
【００６０】
ＡＰＩ管理システム３１０は、開示された実施形態と矛盾しない動作を実行するためにＡＰＩ管理システム３１０の１つ以上のプロセッサによって使用されるデータおよび／またはソフトウェア命令を記憶するように構成された１つ以上の記憶装置を含むか、またはそれらにアクセスすることができる。例えば、ＡＰＩ管理システム３１０は、開示された方法に特有の動作を含む、プロセッサによって実行されるときにいくつかの動作を実行する１つ以上のソフトウェアプログラムを記憶するように構成されたメモリを含んでもよい。開示された実施形態は、専用タスクを実行するように構成された別個のプログラムまたはコンピュータに限定されない。例えば、ＡＰＩ管理システム３１０は、単一のプログラムまたは複数のプログラムを記憶するメモリを含んでもよい。さらに、ＡＰＩ管理システム３１０は、ＡＰＩ管理システム３１０から遠隔に配置された１つ以上のプログラムを実行してもよい。例えば、ＡＰＩ管理システム３１０は、リモートコンポーネント（データベース３３０など）に含まれるメモリに記憶された１つ以上のリモートプログラムにアクセスすることができ、これが実行されると、開示された実施形態と整合する動作を実行する。
【００６１】
データベース３３０は、１つ以上のコンピュータ・システムまたは実装されるコンピュータ・システムであってよい。データベース３３０は、ＡＰＩの情報に関連するオペレーションを生成し、管理し、提供するサーバソフトウェアを含んでもよい。いくつかの実施形態において、ＡＰＩ管理システム３１０は、ＡＰＩ管理システム３１０によって実行される動作のためのＡＰＩの情報に関連付けられたサービスを生成、管理および提供する、データベース３３０に関連付けられた別個のサーバまたは他のコンピューティング装置と接続してもよい。
【００６２】
データベース３３０は、開示された実施形態と一致して、ＡＰＩ３０５の情報を記憶するように構成されてもよい。データベース３３０は、ＡＰＩの登録・更新時に提供されるＡＰＩの情報、インデックス情報、識別情報、アクセス情報、導入・ルール、開発・デバッグ上の注意、更新毎の情報変更を記憶するように構成されてもよい。データベース３３０は、データベース３３０に登録されたすべてのＡＰＩに対して、ＡＰＩを選択または使用する記録をそれぞれ有するエントリを作成することができる。ＡＰＩを選択する記録は、ＡＰＩの各部分の各ＡＰＩの選択に関するものであってもよい。ＡＰＩの使用記録は、ＡＰＩの各部分の各ＡＰＩの使用に関するものであってもよい。データベース３３０はまた、ネットワーク３２０を介してＡＰＩと接続され、検索し、選択したすべてのユーザのためのエントリを作成することができる。データベース３３０は、ネットワーク３２０を介した、または、ＡＰＩ管理システム３１０に関連付けられた各ユーザの活動の記録を保持することができる。ユーザのアクティビティは、ＡＰＩを用いた検索、選択、接続を含むことができ、各ＡＰＩを用いたそれらのアクティビティに関して記録することができる。
【００６３】
データベース３３０は、ＡＰＩ管理システム３１０に関連付けられてもよく、ネットワーク３２０にアクセス可能にされてもよい。いくつかの実施形態では、データベース３３０は、ＡＰＩ管理システム３１０の一部として提供されてもよい。ＡＰＩ管理システム３１０は、１つまたは複数の記憶メモリを有することができ、記憶メモリは、実行されると、開示された実施形態と一致する動作を実行する１つまたは複数のプログラムを格納している。ＡＰＩ管理システム３１０は、ＡＰＩの情報に関連するオペレーションを生成、管理、および提供するサーバソフトウェアを含むデータベースを有することができる。ＡＰＩ管理システム３１０はまた、データベース３３０の開示された実施形態と一致して、そのデータベース部分または１以上の記憶メモリにエントリを作成し、ＡＰＩの使用の記録およびすべてのユーザの記録を有することができる。例えば、ＡＰＩ管理システム３１０がＡＰＩを検索するためにユーザから入力を受け取ると、ＡＰＩ管理システム３１０および／またはデータベース３３０は、ＡＰＩを検索するユーザのレコードに検索を記録してもよい。ユーザが、ユーザが使用する予定のＡＰＩの一部を選択すると、ＡＰＩ管理システム３１０および／またはデータベース３３０は、ＡＰＩを選択したユーザのレコード、ＡＰＩを選択したレコード、およびＡＰＩの一部を選択したレコードに、その選択を記録することができる。そして、ユーザがＡＰＩの一部に接続すると、ＡＰＩ管理システム３１０および／またはデータベース３３０は、ＡＰＩを使用してユーザのレコード、ＡＰＩを使用したレコード、およびＡＰＩの一部を使用したレコードにアクティビティを記録することができる。
【００６４】
ネットワーク３２０は、図３の構成要素間の通信を提供するように構成され得る。例えば、ネットワーク３２０は、インターネット、ローカルエリアネットワーク、またはＡＰＩ管理システム３１０がＡＰＩ管理システム３１０の構成要素間で情報を送受信することを可能にする他の適切な接続のような、通信を提供し、情報を交換し、および／または情報の交換を容易にする、任意のタイプのネットワーク（インフラストラクチャを含む）とすることができる。いくつかの実施形態では、ネットワーク３２０は、図１Ａの１つまたは複数のネットワークとは別個のネットワークとすることができる。他の実施形態では、ネットワーク３２０は、図１Ａの１つまたは複数のネットワークと統合されるか、または接続されてもよい。
【００６５】
ＡＰＩ接続システム３１８は、ユーザをターゲットＡＰＩに接続するように構成されてもよい。ある実施形態では、ＡＰＩ接続システム３１８は、図６（後述）のステップ６４０に続いて、ユーザをターゲットＡＰＩに接続するか、またはＡＰＩ管理システム３１０からの要求を受信した後に開始してもよい。ＡＰＩ接続システム３１８は、ＡＰＩ管理システム３１０に登録されたすべてのＡＰＩを記憶するメモリを有することができ、それにより、ユーザは、ターゲットＡＰＩ上で作業する際に、ターゲットＡＰＩのコンピュータシステムなどの他の装置またはシステムと通信することなく、または接続されることなく、ＡＰＩ接続システム３１８のサーバ上で作業することができる。ＡＰＩ接続システム３１８は、ＡＰＩを記憶するメモリを有してもよく、あるいはデータベース３３０に遠隔的に記憶してもよい。いくつかの実施形態では、ＡＰＩ接続システム３１８は、ＡＰＩ管理システム３１０の一部であってもよい。
【００６６】
コンピュータ・システム３０３は、１つ以上のＡＰＩ３０５を有することができる。ＡＰＩを有するコンピュータ・システム３０３は、ある実施形態では、コンピュータ・システム３０３に関連するユーザ・デバイスが、コンピュータ・システム３０３からデータを要求し、データを処理し、またはデータを送信するアプリケーションを動作させることを可能にする機能性およびコードを格納することを意味する。コンピュータ・システム３０３は、ＡＰＩ３０５のソース・コードを記憶するメモリを含んでもよい。ＡＰＩ３０５のソースコードはまた、コンピュータシステム３０３から遠隔的に記憶されてもよい。ＡＰＩ管理システム３１０は、図４に関して後述するように、コンピュータシステム３０３のＡＰＩをＡＰＩ管理システム３１０に登録するように構成することができる。
【００６７】
図３に示されるデバイスおよびシステムのいずれも、１つまたは複数のプロセッサ、１つまたは複数のメモリ、および１つまたは複数の入出力（Ｉ／Ｏ）デバイスを含むことができる。これらのコンポーネントは、バスまたはワイヤレスで相互に通信できる。構成要素は、単一のデバイスまたは複数のデバイスに存在することができる。いくつかの実施形態では、デバイスおよびシステムは、サーバ、特別にプログラムされたコンピュータ、メインフレームコンピュータ、ラップトップ、スマートフォン、モバイルデバイス、またはこれらの構成要素の任意の組合せの形態をとることができる。いくつかの実施形態では、デバイスおよびシステムは、開示された実施形態と一致する１つまたは複数の動作を実行するソフトウェア命令の記憶、実行、および／または実装に基づいて、特定の装置、システムなどとして構成され得る。デバイスおよびシステムは、スタンドアロンであってもよく、または、より大きなシステムの一部であってもよいサブシステムの一部であってもよい。
【００６８】
プロセッサは、中央処理装置（ＣＰＵ）、グラフィカル・プロセッシング・ユニット（ＧＰＵ）、または類似のマイクロプロセッサを含み、例えば、ＩｎｔｅｌTMによって製造されたＰｅｎｔｉｕｍTMまたはＸｅｏｎTMファミリーからのマイクロプロセッサー、ＡＭＤTMによって製造されたＴｕｒｉｏｎTMファミリー、または、例えば、Ｓｕｎ  ＭｉｃｒｏｓｙｓｔｅｍｓまたはＡｐｐｌｅ、Ｉｎｃ．によって製造された種々のプロセッサーのいずれかの、１つ以上の公知のプロセッシング・デバイスを含む。プロセッサは、並列処理を同時に実行する単一コアまたは複数コアプロセッサを構成してもよい。例えば、プロセッサは、仮想処理技術で構成された単一コアプロセッサであってもよい。特定の実施形態では、プロセッサは、論理プロセッサを使用して、複数のプロセスを同時に実行および制御することができる。プロセッサは、仮想マシン技術、または複数のソフトウェアプロセス、アプリケーション、プログラムなどを実行、制御、実行、操作、格納などの能力を提供する他の既知の技術を実装してもよい。別の実施形態では、プロセッサは、デバイスとシステムが複数のプロセスを同時に実行できるように並列処理機能を提供するように構成された複数コアプロセッサ構成（例えば、デュアルコア、Ｑｕａｄコア等）を含むことができる。装置およびシステムは、１つ以上のプロセッサを含むことができ、さらに、プロセッサに関して遠隔にある１つ以上の他のプロセッサとともに動作することができる。当業者は、本明細書で開示される能力を提供する他のタイプのプロセッサ構成が実装され得ることを理解するであろう。開示された実施形態は、デバイスおよびシステムにおいて構成されたいかなるタイプのプロセッサにも限定されない。
【００６９】
メモリは、開示された実施形態に関連する機能を実行するためにプロセッサによって実行可能な命令を記憶するように構成された１つ以上の記憶装置を含んでもよい。例えば、メモリは、コンピュータ・ハードディスク、ランダム・アクセス・メモリ、リムーバブル・ストレージ、またはリモート・コンピュータ・ストレージを含むことができる。例えば、メモリは、プロセッサによって実行されるときに特定の機能を実行する１つ以上のソフトウェア命令で構成されてもよい。開示された実施形態は、専用タスクを実行するように構成された別個のプログラムまたはコンピュータに限定されない。さらに、プロセッサは、装置およびシステムから遠隔に配置された１つ以上のプログラムを実行してもよい。例えば、コンピュータシステム３０３、ＡＰＩ３０５、またはデータベース３３０は、ＡＰＩ管理システム３１０（またはその変形）を介して、実行されると、ある開示された実施形態に関連する機能を実行する１つまたは複数のリモートプログラムにアクセスすることができる。プロセッサは、データベース３３０に配置された１つ以上のプログラムをさらに実行してもよい。いくつかの実施形態において、命令は、ＡＰＩ管理システム３１０の外部に配置されたクラウドサーバなどの外部記憶装置に記憶されてもよく、プロセッサは、命令をリモートで実行してもよい。
【００７０】
メモリはまた、例示的なシステム３００が開示された実施形態と一致する動作を実行するために使用することができる任意のフォーマットで、任意のタイプの情報を反映するデータを格納することができる。メモリは、プロセッサが、サーバアプリケーション、ネットワーク通信プロセスなどの１つ以上のアプリケーション、およびフロントエンドシステム１０３のインタラクティブユーザインタフェースなどの任意の他のタイプのアプリケーションまたはソフトウェアを実行できるようにするための命令を記憶することができる。あるいは、命令、アプリケーションプログラム等は、外部記憶装置に格納されてもよい。例えば、ＡＰＩ管理システム３１０の命令は、データベース３３０に記憶されてもよく、ネットワーク３２０または任意の他の適切なネットワークを介してＡＰＩ管理システム３１０と通信している。メモリは、揮発性または不揮発性、磁気、半導体（例えば、ＥＥＰＲＯＭ、フラッシュメモリなど）、テープ、光学、取外し可能、取外し不可能、または他のタイプの記憶デバイスまたは有形（すなわち、一時的でない）コンピュータ可読媒体とすることができる。
【００７１】
Ｉ／Ｏ装置は、システムの装置または装置の装置のユーザから装置およびシステムに情報を通信するためのハードウェアおよび／またはハードウェアとソフトウェアとの組合せを含むことができる。いくつかの実施形態では、ユーザは、システムのデバイスまたはデバイスの直接ユーザであってもよい。いくつかの他の実施形態では、ユーザは、デバイスおよびシステムに接続された別の１つまたは複数のユーザデバイスとすることができる。ハードウェアおよびソフトウェアは、例えば、キーボード、マウス、トラックボール、オーディオ入力デバイス、タッチスクリーン、赤外線入力インターフェース、または同様のデバイスであってもよい。
【００７２】
図４は、開示された実施形態と一致する、データベースにＡＰＩを登録するためのプロセス４００を示す。
【００７３】
ステップ４０２において、ＡＰＩ管理システム３１０は、システムにＡＰＩを登録する要求を受信する。いくつかの実施形態において、要求は、コンピュータ・システム３０３またはコンピュータ・システム３０３に関連するユーザ・デバイスからのものであってもよい。いくつかの実施形態では、要求は、ＡＰＩ３０５またはＡＰＩ３０５のユーザからのものであってもよい。他のいくつかの実施形態では、要求は、ＡＰＩ管理システム３１０のインターフェースを介して直接要求を送信するユーザ装置のユーザからのものであってもよい。リクエストには、リクエストの送信時にインターフェイスを介してユーザーが指定したＡＰＩの情報が含まれる場合がある。
【００７４】
ステップ４０４で、ＡＰＩ管理システム３１０は、登録されるＡＰＩの情報を受信する。この情報は、インデックス情報、識別情報、アクセス情報、パーミッションレベルに関する許可、導入およびルール、開発およびデバッグノート、ならびにＡＰＩの以前の使用の記録を含むことができ、これらのすべてを集合的にＡＰＩのデータと呼ぶことができる。アクセス情報は、ＡＰＩがすべてのユーザー、ＡＰＩ、およびコンピューター・システムに対してオープンであることを示している場合がある。また、アクセス情報は、ＡＰＩが、それを使用または接続することを意図したユーザ、ＡＰＩまたはコンピュータシステムからの要求を常に要求することを示す可能性がある。また、アクセス情報は、ＡＰＩが次の（１）〜（３）の少なくとも１つであり得ることも示してもよく、（１）いくつかのユーザ、ＡＰＩもしくはコンピュータシステムにオープンである、（２）いくつかの他のユーザ、ＡＰＩもしくはコンピュータシステムにアクセス不能である、（３）ＡＰＩを使用もしくは接続するつもりであるとき、いくつかの他のユーザ、ＡＰＩもしくはコンピュータシステムからのリクエストを必要とする。情報は、ＡＰＩのドキュメンテーションも含むことができる。いくつかの実施形態では、ＡＰＩを登録する要求に情報を含めることができる。いくつかの他の実施形態では、情報は、ＡＰＩ管理システム３１０のインターフェースと、ユーザ、ＡＰＩまたはコンピュータシステムと、の間の対話式プロセスを介して受信される。
【００７５】
ステップ４０６において、ＡＰＩ管理システム３１０は、ＡＰＩの情報を例示的なシステム３００のＡＰＩデータベースに記憶することができる。ある実施形態では、ＡＰＩ管理システム３１０は、自身のＡＰＩデータベースを有してもよく、その情報を自身のＡＰＩデータベースに記憶してもよい。
【００７６】
ステップ４０８において、ＡＰＩ管理システム３１０は、受け取った情報に基づいてＡＰＩに関連するドキュメンテーション（文書）を生成することができる。ＡＰＩ管理システム３１０はまた、生成されたドキュメンテーションと共に受信されたドキュメンテーションを組み込んでもよい。いくつかの実施形態では、ドキュメンテーションの生成の一部として、ＡＰＩ管理システム３１０は、ＡＰＩを使用するためのコードを生成する規則のセットを準備することができる。一連のルールにより、ＡＰＩ管理システム３１０は、ユーザがＡＰＩのすべての部分の学習をスキップし、ゼロからプログラムを開発する必要がなく、受信したソースコードを所望の目的のために適応させることができるように、ＡＰＩに接続されたユーザのためのコードを迅速かつ自動的に生成することができる。
【００７７】
ステップ４１０において、ＡＰＩ管理システム３１０は、例示的なシステム３００のＡＰＩデータベースにＡＰＩの文書を記憶することができる。いくつかの実施形態において、ＡＰＩ管理システム３１０は、それ自身のＡＰＩデータベースを有することができ、文書をそれ自身のＡＰＩデータベースに記憶することができる。
【００７８】
ＡＰＩ管理システム３１０は、図５に関して後述するように、ＡＰＩの情報を更新するように構成することができる。
【００７９】
図５は、開示された実施形態と一致する、データベース内のＡＰＩ情報を更新するための処理５００を示す。
【００８０】
ステップ５０２において、ＡＰＩ管理システム３１０は、システム内のＡＰＩの情報を更新する要求を受信する。いくつかの実施形態において、要求は、コンピュータ・システム３０３またはコンピュータ・システム３０３に関連するユーザ・デバイスからのものであってもよい。いくつかの実施形態では、要求は、ＡＰＩ３０５またはＡＰＩ３０５のユーザからのものであってもよい。他のいくつかの実施形態では、要求は、ＡＰＩ管理システム３１０のインターフェースを介して直接要求を送信したユーザ装置のユーザからのものであってもよい。リクエストには、リクエストの送信時にインターフェイスを介してユーザーが指定したＡＰＩの情報が含まれる場合がある。
【００８１】
ステップ５０４で、ＡＰＩ管理システム３１０は、更新するＡＰＩの情報を受信する。この情報は、インデックス情報、識別情報、アクセス情報、パーミッションレベルに関する許可、導入およびルール、開発およびデバッグノート、ならびにＡＰＩの以前の使用の記録を含むことができ、これらのすべてを集合的にＡＰＩのデータと呼ぶことができる。ＡＰＩ管理システム３１０は、新しい情報と以前の情報とを比較し、ＡＰＩの情報の一部として記憶されたエントリとして、情報の変化を検出し記録してもよい。ＡＰＩを登録したコンピュータシステムからの要求でない場合、ＡＰＩ管理システム３１０は、更新の要求についてコンピュータシステムに通知し、次のステップに進む前に確認を要求してもよい。情報は、ＡＰＩのドキュメンテーションも含むことができる。いくつかの実施形態では、情報は、ステップ５０２においてＡＰＩの情報を更新する要求に含まれてもよい。いくつかの他の実施形態では、情報は、ＡＰＩ管理システム３１０のインターフェースとユーザ、ＡＰＩまたはコンピュータシステムとの間の対話式プロセスを介して受信される。
【００８２】
ステップ５０６において、ＡＰＩ管理システム３１０は、例示的なシステム３００のＡＰＩデータベース内のＡＰＩの情報を更新してもよい。ある実施形態では、ＡＰＩ管理システム３１０は、独自のＡＰＩデータベースを有することができ、独自のＡＰＩデータベース内の情報を更新することができる。
【００８３】
ステップ５０８において、ＡＰＩ管理システム３１０は、受け取った情報に基づいてＡＰＩに関連する新しいドキュメンテーションを生成することができる。ＡＰＩ管理システム３１０はまた、生成されたドキュメンテーションと共に受信されたドキュメンテーションを組み込んでもよい。いくつかの実施形態では、ドキュメンテーションの生成の一部として、ＡＰＩ管理システム３１０は、ＡＰＩを使用するためのコードを生成する規則のセットを準備することができる。一連のルールにより、ＡＰＩ管理システム３１０は、ＡＰＩに接続されたユーザ装置のためのソースコードを迅速かつ自動的に生成することができ、それにより、ユーザ装置のユーザは、ＡＰＩのすべての部分の学習をスキップし、ゼロからプログラムを開発する必要がなくなり、生成されたソースコードに独自のソースコードまたは機能性を直接追加することができる。
【００８４】
ステップ５１０において、ＡＰＩ管理システム３１０は、例示的なシステム３００のＡＰＩデータベース内のＡＰＩの文書を更新してもよい。ある実施形態では、ＡＰＩ管理システム３１０は、それ自身のＡＰＩデータベースを有することができ、それ自身のＡＰＩデータベース内の文書を更新することができる。
【００８５】
ステップ５１２において、ＡＰＩ管理システム３１０は、更新に関する通知をコンピュータ・システム３０３に送ることができる。いくつかの実施形態において、ＡＰＩ管理システム３１０は、ＡＰＩへのアクセスを有するコンピュータシステムにのみ通知を送信してもよい。いくつかの実施形態において、ＡＰＩ管理システム３１０は、ＡＰＩを使用したコンピュータシステムにのみ通知を送信してもよい。ＡＰＩ管理システム３１０は、電子メール、メッセージ、または他の特定の通信ツールを介して通知を送信することができる。
【００８６】
図６は、開示された実施形態と一致する、ユーザデバイスにドキュメンテーションを提供する例示的なプロセスを示す。ステップ６０５において、ＡＰＩ管理システム３１０は、ユーザデバイスから入力を受信することができる。いくつかの実施形態では、ユーザデバイスは、コンピュータシステム３０３に関連付けられてもよい。いくつかの実施形態では、要求は、ＡＰＩ３０５またはＡＰＩ３０５のユーザからのものであってもよい。他のいくつかの実施形態では、入力は、ＡＰＩ管理システム３１０のインターフェースを介して要求を直接送信したユーザからのものであってもよい。いくつかの実施形態において、入力は、所望のＡＰＩに関連するコンピュータシステムのアイデンティティを省略してもよい。これは、ユーザ（例えば、開発者）が、使用すべきコンピュータシステムやＡＰＩを事前に知る必要がないという点で効率を提供する。
【００８７】
いくつかの実施形態では、入力は、特定の機能のアイデンティティを省略することができる。例えば、ＡＰＩ管理システム３１０は、「約束された納入日（ＰＤＤ）データ」及び「出荷データ」の要求を含む入力を（例えば、ＦＯシステム１１３と関連付けられたユーザデバイスから）受領することができる（例えば、開発者はＰＤＤデータを使用するＦＯシステム１１３のためのアプリケーションを開発中である）。ユーザは、検索の前にコンピュータシステム又はＡＰＩを選択する必要はなく、これは、ＡＰＩドキュメンテーションレビュー及び検索のための先行技術システムよりも有利である。
【００８８】
いくつかの実施形態では、ステップ６０５における入力は、１つまたは複数の条件を含むことができる。条件は、データベース３３０がＡＰＩをソートするために使用する条件であってもよい。例えば、条件は、（１）ＡＰＩが関連するシステムの機能、例えば、輸送、配送またはフロントエンドを記述するキーワード、（２）ＡＰＩがシステムまたはサブシステムに関連するか否か、ＡＰＩがコンピュータシステムの唯一のＡＰＩであるかどうか、といったＡＰＩのヒエラルキーを記述するキーワードまたはカテゴリーターム、（３）バージョンを参照する数字、日付、または日付範囲、または（４）ユーザが別のＡＰＩからどのような種類の機能またはデータを探しているか、といったサーチの目的であってもよい。条件は、ＡＰＩの情報に対応するＡＰＩ管理システム３１０のインターフェースによって提供されるカテゴリー用語であってもよく、これにより、ユーザは、キーワードを精細化するために時間を費やすのではなく、情報を選択することが可能になる。いくつかの実施形態において、入力は、特定の条件を満たすデータベース３３０に記憶されたＡＰＩのリストを検索する要求であってもよい。このような要求を受信すると、ＡＰＩ管理システム３１０は、ステップ６１０またはそれ以降の任意のステップに進まず、単にＡＰＩのリストを生成し、それをユーザに提供するだけでよい。他のいくつかの実施形態において、入力は、ＡＰＩ管理システム３１０に記憶された命令を実行することによって、またはデータベース３３０に遠隔的に記憶されることによって、満たすことができる任意の要求であってもよい。
【００８９】
ステップ６１０において、ＡＰＩ管理システム３１０は、ターゲットＡＰＩを決定することができる。ターゲットＡＰＩは、入力を満たすＡＰＩであり、１つ以上の追加ステップに基づいて決定される場合がある。ステップ６０５で、１つまたは複数の条件を伴う入力を受信する際に、ＡＰＩ管理システム３１０は、条件を満たす１つまたは複数のＡＰＩを決定することができる。いくつかの実施形態において、ＡＰＩ管理システム３１０は、まず、パーミッションレベルに関するユーザのパーミッションレベルおよび／またはＡＰＩの許可（authorization）に基づいて、ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連するＡＰＩを除外することによって、ターゲットＡＰＩを決定し始めてもよい。例えば、シニア開発者は、ジュニア開発者または契約開発者よりも高いパーミッションレベルを有することができ、したがって、同じ入力で、ＡＰＩ管理システム３１０は、ジュニア開発者または契約開発者よりもシニア開発者のためのより大きなＡＰＩプールからターゲットＡＰＩを決定することができる。このプロセスは、ターゲットＡＰＩを決定する際のＡＰＩ管理システム３１０の効率および精度を向上させ、ＡＰＩ情報の不必要な露出を最小限に抑える（したがって、データセキュリティを向上させる）ことができる。
【００９０】
いくつかの実施形態において、ＡＰＩ管理システム３１０は、ＡＰＩの使用記録に基づいて、条件を満たす１つ以上のＡＰＩからターゲットＡＰＩを決定してもよい。例えば、ＦＯシステム１１３に関連付けられたユーザ装置のユーザが、約束納期（ＰＤＤ）データを使用するアプリケーションを開発しているとき、ユーザは、ＡＰＩ管理システム３１０内の検索「出荷」および「データ」を検索することができ、出荷および注文追跡システム１１１およびＳＡＴシステム１０１は、両方とも条件を満たすことができる。しかしながら、ＦＯシステム１１３によって出荷及び注文追跡システム１１１のＡＰＩを使用する記録よりも、ＦＯシステム１１３によってＳＡＴシステム１０１のＡＰＩを使用する記録の方が多い場合があり、したがって、ＡＰＩ管理システム３１０は、ＳＡＴシステム１１１内のＡＰＩ（ＦＯシステム１１３に関連する最も関連する記録を有する）がターゲットＡＰＩであるべきであると判定することができる。ターゲットＡＰＩに関連するＳＡＴシステム１０１内のデータは、他のＡＰＩまたはシステムに関連するデータよりも、ＦＯシステム１１３内のユーザに適しており、よく編成されている可能性が非常に高い。まれに、ユーザが別のシステムのＡＰＩに接続したい場合でも、ユーザは、いくつかの他の実施形態と整合して、リストの中からＡＰＩを選択することができる。
【００９１】
いくつかの実施形態において、ＡＰＩ管理システム３１０は、検索履歴、選択履歴、またはユーザの履歴に基づいて、条件を満たす１つ以上のＡＰＩからターゲットＡＰＩを決定してもよい。いくつかの他の実施形態では、ＡＰＩ管理システム３１０は、ユーザに条件を満たすＡＰＩを提供してもよく、ユーザは、ターゲットＡＰＩを選択してもよい。いくつかの実施形態において、入力は、１つ以上の条件を含まず、ＡＰＩの選択を目的とする要求であり、ＡＰＩ管理システム３１０に記憶された命令を実行することによって満たすことができるか、またはデータベース３３０に遠隔的に記憶されることができる。ＡＰＩ管理システム３１０は、記憶された命令に基づいて、ＡＰＩの選択を指定するためのインターフェースを介して、ユーザにさらなる命令を提供することができる。例えば、ＦＯシステム１１３に関連するユーザは、ＰＤＤに関連するデータを取得することを望むが、他のシステムについてあまり知らない場合がある。ＡＰＩ管理システムは、データベース３３０に記憶されたＡＰＩのデータの中から自動的に検索し、ＰＤＤに関連するデータを有するＡＰＩのリストを得るための命令を含むことができる。ＡＰＩ管理システムはさらに、検索前に利用可能なＡＰＩの知識を必要とせずに、ユーザがターゲットＡＰＩを正確かつ効率的に選択できるようにする、データの抜粋またはＰＤＤに関連するデータの説明をＡＰＩのリストと共にユーザに提供する指示を含むことができる。
【００９２】
ステップ６１５において、ＡＰＩ管理システム３１０は、ユーザがターゲットＡＰＩへのアクセス権を有するか否かを決定することができる。ユーザがＡＰＩへのアクセス権を有するか否かを決定する際に、ＡＰＩ管理システム３１０は、ＡＰＩに関連するＡＰＩデータベースに記憶されたデータを検索してもよい。より具体的には、ＡＰＩ管理システム３１０は、データの一部であってもよいＡＰＩに関連するアクセス情報を考慮してもよい。アクセス情報は、（Ａ）ＡＰＩがすべてのユーザ、ＡＰＩおよびコンピュータシステムに対してオープンである、（Ｂ）ＡＰＩが、ＡＰＩを使用または接続しようとするユーザ、ＡＰＩまたはコンピュータシステムからのリクエストが常に必要である、または（Ｃ）ＡＰＩが、ＡＰＩをお使用または接続しようとするときに、一部のユーザ、ＡＰＩおよびコンピュータシステムに対してオープンであることを示してもよい。アクセス情報は、ＡＰＩが１人以上のユーザーからアクセスできないことも示している場合がある。他のいくつかの実施形態では、ユーザがターゲットＡＰＩへのアクセス権を有するかどうかを決定することは、関連するユーザ許可を決定するためにターゲットＡＰＩまたはターゲットＡＰＩのコンピュータシステムと通信することを含んでもよい。ユーザパーミッションは、ユーザがターゲットＡＰＩへのアクセスを許可されているかどうかの情報を含んでよい。また、ユーザ許可を決定するために通信することは、ターゲットＡＰＩにアクセス権が割り当てられているユーザのリストを要求し、ユーザがリストに載っているかどうかをチェックすることによって、ユーザにアクセス権があるかどうかを決定することを含んでもよい。
【００９３】
ある実施形態では、ステップ６１５において、アクセス情報が、ＡＰＩがすべてのユーザ、ＡＰＩ、およびコンピュータ・システムに対してオープンであることを示す場合、ＡＰＩ管理システム３１０は、ステップ６３５に進み、ユーザ・デバイスにターゲットＡＰＩの文書を提供してもよい。ある実施形態では、ステップ６１５において、アクセス情報が、ＡＰＩが常にユーザ装置からの要求を必要とすることを示している場合、ＡＰＩ管理システム３１０は、ステップ６２０に進み、ユーザ装置のユーザにターゲットＡＰＩへの要求の送信を要求してもよい。ステップ６１５において、ＡＰＩが一部のユーザ、ＡＰＩおよびコンピュータシステムに対してオープンであり、ＡＰＩを使用または接続しようとするときに、一部の他のユーザ、ＡＰＩおよびコンピュータシステムからの要求を必要とすることをアクセス情報が示す場合、ＡＰＩ管理システム３１０は、本明細書に開示する実施形態と整合して、それに応じて応答してもよい。例えば、ユーザがＦＯシステム１１３に関連するユーザ装置からのものであり、ＳＡＴシステム１０１のＡＰＩと接続しようとする場合、ＡＰＩに関連するアクセス情報は、ＡＰＩがＦＯシステム１１３に対してオープンであることを示し、マネージャである任意のユーザは、ＡＰＩ管理システム３１０がユーザをＡＰＩに接続してもよい。しかし、ユーザがマネージャではなく、労働管理システム１２５のユーザデバイスを使用している場合、ＡＰＩ管理システム３１０は、ＳＡＴシステム１０１に要求を送信するようにユーザデバイスに通知してもよい。他のいくつかの実施形態では、アクセス情報が、ＡＰＩが１人以上のユーザにアクセス可能でないことを示してもよい場合、ＡＰＩ管理システム３１０は、ステップ６４５に進み、それに応じて、ユーザのアクセスを拒否してもよい。いくつかの他の実施形態では、ＡＰＩ管理システム３１０は、ＡＰＩに要求を送信するためにインターフェースを介してユーザと対話することができる。入力が、ＡＰＩに関連付けられたドキュメンテーションを取得するのではなく、１つ以上の条件を満たすＡＰＩのリストを単に提供するなど、アクセス情報をチェックする必要なしに実行される命令に関する場合、ＡＰＩ管理システム３１０は、アクセス情報をチェックすることなく、入力の要求を満たすように進めてもよい。
【００９４】
ステップ６２０において、ＡＰＩ管理システム３１０は、インタフェースまたは電子メール、メッセージまたは他の特定の通信ツールを介して、ドキュメンテーションを取得する前に、ユーザがＡＰＩにリクエストを送ることをＡＰＩが必要としていることをユーザに通信することができる。
【００９５】
ステップ６２５において、ユーザがターゲットＡＰＩに要求を送信する場合、ＡＰＩ管理システム３１０は、ネットワーク３２０を介して、ターゲットＡＰＩまたはターゲットＡＰＩが関連付けられているコンピュータシステムによる通知を受信することができる。ＡＰＩ管理システム３１０は、ステップ６３０に進むことができる。ＡＰＩ管理システム３１０が、一定期間後に、ユーザがターゲットＡＰＩに要求を送信していないと判断した場合、ＡＰＩ管理システム３１０は、ステップ６４５に進み、アクセスを拒否してもよい。いくつかの実施形態では、ＡＰＩ管理システム３１０は、期間の長さを決定するために、ターゲットＡＰＩに関連付けられたデータベース３３０に格納されたルールのセットを調べることができる。いくつかの他の実施形態では、ＡＰＩ管理システム３１０は、期間の長さを指定して、メモリ内またはデータベース３３０内に遠隔的に記憶された命令を有することができる。
【００９６】
ステップ６３０において、ＡＰＩ管理システム３１０は、ターゲットＡＰＩまたはコンピュータシステムから、ターゲットＡＰＩがターゲットＡＰＩに関連付けられていること、またはコンピュータシステムがユーザへのアクセスを承認したことの承認を受け取ることができる。承認を受け取ると、ＡＰＩ管理システム３１０はステップ６３５に進むことができる。ＡＰＩ管理システム３１０が、一定期間後に承認を受けていない場合、または否認を受けていない場合、ＡＰＩ管理システム３１０は、ステップ６４５において、アクセス拒否に進むことができる。
【００９７】
ステップ６３５において、ＡＰＩ管理システム３１０は、ターゲットＡＰＩの文書をユーザデバイスに提供することができる。文書は、どの部分が有用かを見つけるためにユーザの多くの時間と労力を必要とする膨大な量のものである可能性がある。ＡＰＩ管理システム３１０は、ターゲットＡＰＩのほんの一部に関連するドキュメンテーションをユーザデバイスに提供するための命令を自動的に実行することによって、このプロセスの効率を向上させることができ、これにより、ユーザは、ターゲットＡＰＩまたはドキュメンテーションのどの部分が必要かを特定するための多くの時間と労力を節約することができる。したがって、いくつかの実施形態では、ＡＰＩ管理システム３１０は、ターゲットＡＰＩの一部のドキュメンテーションをユーザデバイスに提供することができる。いくつかの実施形態では、ＡＰＩ管理システム３１０は、ユーザが選択するためのターゲットＡＰＩの１つまたは複数の部分をユーザデバイスに提供することができる。ＡＰＩ管理システム３１０は、ユーザが必要な部分を選択するのを支援するために、ＡＰＩの部分に関連する情報をメモリに記憶するか、データベース３３０に遠隔的に記憶することができる。
【００９８】
いくつかの実施形態では、ターゲットＡＰＩの部分を決定するプロセスにおける自動化の程度をさらに向上させるために、ＡＰＩ管理システム３１０は、ターゲットＡＰＩの部分の選択を自動的に絞り込むことができる。ＡＰＩ管理システム３１０は、ターゲットＡＰＩを使用するレコードを調べることができ、ターゲットＡＰＩの部分を決定するために、それらを入力と共に考慮に入れることができる。ＡＰＩ管理システム３１０は、ターゲットＡＰＩを使用するレコードを調べることもでき、ターゲットＡＰＩの部分を決定するために、それらを入力と共に考慮に入れることができる。ＡＰＩ管理システム３１０はまた、決定を支援するためにＡＰＩに関連する情報を見ることができる。いくつかの他の実施形態では、ＡＰＩ管理システム３１０は、本明細書で開示される実施形態の組み合わせを使用することができ、ターゲットＡＰＩの部分を決定する際に異なる実施形態に重み係数を割り当てることができる。ＡＰＩ管理システム３１０は、ターゲットＡＰＩを使用するレコード、ターゲットＡＰＩを使用するレコード、または入力を使用するターゲットＡＰＩの部分の選択を絞り込み、絞り込み後の部分の選択を選択のためにユーザデバイスに提供することができる。例えば、ＡＰＩ管理システム３１０は、ステップ６０５において、ユーザデバイスからの入力を受信して、特定の機能を実行するＡＰＩを検索し、ユーザデバイスのユーザのためのターゲットＡＰＩを決定し、ユーザがターゲットＡＰＩへのアクセス権を有することが可能である。しかし、ターゲットＡＰＩは、２０個のパーツを有し、それぞれが多くのドキュメントを有し、２０個のパーツのうちの１つまたは少数のみが機能に関連する。ＡＰＩ管理システム３１０は、機能を実行するＡＰＩの部分をユーザに手動で検索させる代わりに、選択を最初に狭めることができる。ステップ６３５において、ＡＰＩ管理システム３１０は、ターゲットＡＰＩを使用したレコードを調べ、ターゲットＡＰＩのすべての部分の人気の評価を得るために使用したレコードに、より高い重み係数を割り当てることができる。そして、ＡＰＩ管理システム３１０は、入力の条件を満たさず、人気の高い部品を除外する。ＡＰＩ管理システム３１０は、左の部分を、選択のために、部分の狭められたリストとしてユーザ装置に提供する。ＡＰＩ管理システム３１０はまた、ユーザが選択することを支援するために、記述、ルールのセットおよびＪＳＯＮコードの抜粋などのターゲットＡＰＩの絞り込み部分に関連する情報を検索する。
【００９９】
ステップ６３５において、ターゲットＡＰＩの部分が決定された後、ＡＰＩ管理システム３１０は、ターゲットＡＰＩのその部分に関連するドキュメンテーションをユーザデバイスに提供することができる。ターゲットＡＰＩ全体の文書化が必要であると判断された場合、ＡＰＩ管理システム３１０は、文書全体を提供することができる。
【０１００】
ステップ６３５の一部の実施形態では、ＡＰＩ管理システム３１０は、ターゲットＡＰＩに関連するソースコードまたはユーザーのターゲットＡＰＩの一部をユーザーデバイスに提供してもよい。ソースコードは．ＮＥＴ  Ｆｒａｍｅｗｏｒｋ、．Ｎｅｔ  Ｃｏｍｐａｃｔ  Ｆｒａｍｅｗｏｒｋ  （およびＶｉｓｕａｌ  Ｂａｓｉｃ、Ｃ  などの関連言語）、Ｊａｖａ、Ｃ＋＋、Ｏｂｊｅｃｔｉｖｅ−Ｃ、ＨＴＭＬ、ＨＴＭＬ／ＡＪＡＸの組み合わせ、ＸＭＬ、または、Ｊａｖａアプレットを含むＨＴＭＬなど、一般にＡＰＩで使用される言語であってよい。ソースコードはまた、ＪＳＯＮまたはＹＡＭＬなど、ＡＰＩドキュメンテーションおよびドキュメンテーションインターフェースにより特有のプログラミング言語であってもよい。ソースコードは、ターゲットＡＰＩに直接適用可能な場合がある。例えば、ユーザがＣ＋＋言語を使用するＡＰＩを使用しており、ターゲットＡＰＩがＪＡＶＡを使用している場合、ＡＰＩ管理システム３１０は、ユーザがターゲットＡＰＩと接続し、機能またはユーザが意図する部分と連携するために直接適用可能なソースコードをＪＡＶＡで自動的に生成し、ユーザに提供することができる。この自動化は、異なるＡＰＩおよびコンピュータシステムを横断するアプリケーションをプログラミングし、使用するユーザの効率を大幅に向上させることができる。さらに、ユーザがターゲットＡＰＩを操作する場合、ユーザは他のＡＰＩにもアクセスする必要がある場合がある。例えば、内部フロントエンドシステム１０５のＡＰＩのユーザが、輸送システム１０７に接続するアプリケーション上で作業している場合、ユーザは、モバイルデバイス１０７Ａ〜１０７ＣのＡＰＩに別々にアクセスして、デバイスのタイプごとに最適化された別々のアプリケーション機能を生成する必要がある場合もある。ユーザがこのような状況で効率的に作業することを可能にするために、ステップ６３５において、ターゲットＡＰＩである輸送システム１０７のＡＰＩの一部に関連するドキュメンテーションおよびソースコードを生成することに加えて、ＡＰＩ管理システム３１０は、モバイルデバイス１０７Ａ〜１０７Ｃの対応するＡＰＩのドキュメンテーションおよび補足ソースコードを生成することもできる。
【０１０１】
ＡＰＩ管理システム３１０は、選択されたターゲットＡＰＩの部分に関連するＡＰＩの部分を決定することによって、補足ソースコードを生成することができる。決定は、以下のうちの１つ以上を含み得る：（Ａ）ＡＰＩ管理システム３１０によって提供されるリスト内のＡＰＩの部分をユーザが選択することによって決定すること、（Ｂ）ＡＰＩ管理システム３１０が、ターゲットＡＰＩの部分の使用の記録を調べ、どのＡＰＩおよびどの部分が使用時にターゲットＡＰＩの選択された部分に関連付けられているかを探すこと、（Ｃ）ＡＰＩ管理システム３１０が、ターゲットＡＰＩに適用可能なソースコードを生成することに関する命令について、ターゲットＡＰＩの部分の情報を見ること、（Ｄ）ＡＰＩ管理システム３１０が、関連する記録を見てＡＰＩの最もよく使用される部分を決定すること、これは、ターゲットＡＰＩの部分と一緒に使用されてもされなくてもよい、（Ｅ）ＡＰＩ管理システム３１０が、他のレコードを見てターゲットＡＰＩに関連付けられたＡＰＩを決定するとともに、ＡＰＩに関連付けられた情報を見て補足ソースコードを生成すること、（Ｆ）（Ａ）および他の自動方法を除く、ここに開示された方法の組み合わせを使用して、ユーザーが選択するための絞り込みリストを提供すること、または、（Ｇ）ここに開示された方法と他の自動方法の組み合わせを使用して補足ソースコードを生成すること。したがって、ＡＰＩ管理システム３１０は、ユーザを支援する際に高度の自動化を達成することができる。いくつかの実施形態において、ＡＰＩ管理システム３１０は、ステップ６３５のプロセス全体を最適化する、メモリ内またはデータベース３３０内に遠隔的に記憶された命令を有することができる。様々な要因に応じて、ＡＰＩ管理システム３１０は、ステップ６３５の一部として本明細書で開示される実施形態のいくつかを選択することができる。例えば、内部フロントエンドシステム１０５のユーザが、輸送システム１０７のＡＰＩ上で作業し、デバイス１０７Ａ〜１０７Ｃから送られたデータを使用するアプリケーションを開発または試験したい場合、ユーザは、各タイプのモバイルデバイス１０７Ａ〜１０７Ｃについて別個のプログラムを作成し、その結果、プログラムが、デバイスからの異なるタイプのデータを用いてより良好に機能することができるようにしたい場合がある。さらに、ユーザは、アプリケーションを改善するために、ＳＡＴシステム１０１に関連する特定の機能を組み込むことを望む場合がある。そのような状況では、ＡＰＩ管理システム３１０は、（Ａ）輸送システムのターゲットＡＰＩに関連する情報およびターゲットＡＰＩの使用の記録から、ユーザがアクセスする必要があるかもしれない１０７Ａ〜１０７ＣおよびＳＡＴシステム１０１のＡＰＩの部分を決定してもよく、（Ｂ）ターゲットＡＰＩおよび関連するＡＰＩのアクセス情報から、ユーザーがアクセスを有することを決定してもよく、（Ｃ）メモリに格納された指示に基づいて、生成されたドキュメンテーション、ソースコード、および補足のソースコードが、ユーザにとって多すぎるため、特定のしきい値を超えないこと、および、ＡＰＩの記録に基づいて人気があると決定してよい。次いで、ＡＰＩ管理システム３１０は、ユーザにルックアップまたは選択をさらに要求することなく、システム１０７のターゲットＡＰＩ、ならびに装置１０７Ａ〜１０７ＣおよびＳＡＴシステム１０１のＡＰＩに関連するユーザ文書、ソースコード、および補足ソースコードを提供することに進むことができる。
【０１０２】
本開示は、その特定の実施形態を参照して示され、説明されてきたが、本開示は、修正なしに、他の環境において実施され得ることが理解され得る。前述の説明は、例示の目的で提示されている。これは、網羅的ではなく、開示された正確な形態または実施形態に限定されない。当業者であれば、開示された実施形態の明細書および実施を考慮することにより、修正および適応が明らかであろう。さらに、開示された実施形態の態様は、メモリに格納されるものとして説明されているが、当業者は、これらの態様が、例えば、ハードディスクまたはＣＤ  ＲＯＭ、あるいは他の形態のＲＡＭまたはＲＯＭ、ＵＳＢ媒体、ＤＶＤ、ブルーレイ、または他の光学ドライブ媒体などの二次記憶デバイスなどの他のタイプのコンピュータ可読媒体に格納されてもよいことを理解することができる。
【０１０３】
記載された説明および開示された方法に基づくコンピュータプログラムは、熟練した開発者の技術の範囲内である。様々なプログラムまたはプログラムモジュールは、当業者に知られている技法のいずれかを使用して作成することができ、または既存のソフトウェアに関連して設計することができる。例えば、プログラム・セクションまたはプログラム・モジュールは、Ｎｅｔ  Ｆｒａｍｅｗｏｒｋ、．ＮｅｔＣｏｍｐａｃｔ  Ｆｒａｍｅｗｏｒｋ  （およびＶｉｓｕａｌ  Ｂａｓｉｃ、Ｃ  などの関連言語）、Ｊａｖａ、Ｃ＋＋、Ｏｂｊｅｃｔｉｖｅ−Ｃ、ＨＴＭＬ、ＨＴＭＬ／ＡＪＡＸの組み合わせ、ＸＭＬ、またはＪａｖａ  アプレットを含むＨＴＭＬ内で、または、これらによって設計されてもよい。
【０１０４】
さらに、例示的な実施形態が本明細書で説明されてきたが、本開示に基づいて当業者によって理解されるように、同等の要素、修正、省略、組み合わせ（例えば、様々な実施形態にわたる態様の）、適応、および／または変更を有する任意のおよびすべての実施形態の範囲。クレームの限定は、クレームに使用されている文言に広く基づいて解釈されるものとし、本明細書に記載されている例に限定されるものではなく、又は出願手続中に解釈されるものとする。実施例は、非排他的であると解釈されるべきである。さらに、開示された方法のステップは、ステップを並べ替えること、および／またはステップを挿入または削除することを含む、任意の方法で修正されてもよい。したがって、本明細書および実施例は、単に例示的なものとみなされ、真の範囲および精神は、以下の特許請求の範囲およびそれらの均等物の全範囲によって示されることが意図される。
【図１Ａ】
2021513133.tif 000003
【図１Ｂ】
2021513133.tif 000004
【図１Ｃ】
2021513133.tif 000005
【図１Ｄ】
2021513133.tif 000006
【図１Ｅ】
2021513133.tif 000007
【図２】
2021513133.tif 000008
【図３】
2021513133.tif 000009
【図４】
2021513133.tif 000010
【図５】
2021513133.tif 000011
【図６】
2021513133.tif 000012
【国際調査報告】
2021513133.tif 000013
2021513133.tif 000014