JP2021513133A - アプリケーションプログラミングインターフェース情報を管理するためのシステムおよび方法 - Google Patents

アプリケーションプログラミングインターフェース情報を管理するためのシステムおよび方法 Download PDF

Info

Publication number
JP2021513133A
JP2021513133A JP2020537740A JP2020537740A JP2021513133A JP 2021513133 A JP2021513133 A JP 2021513133A JP 2020537740 A JP2020537740 A JP 2020537740A JP 2020537740 A JP2020537740 A JP 2020537740A JP 2021513133 A JP2021513133 A JP 2021513133A
Authority
JP
Japan
Prior art keywords
api
user
target
computer
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020537740A
Other languages
English (en)
Other versions
JP6971404B2 (ja
Inventor
ジン パク,ヨン
ジン パク,ヨン
ヒョン ユン,ヨン
ヒョン ユン,ヨン
ソク ヤン,ウォン
ソク ヤン,ウォン
Original Assignee
クーパン コーポレイション
クーパン コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クーパン コーポレイション, クーパン コーポレイション filed Critical クーパン コーポレイション
Publication of JP2021513133A publication Critical patent/JP2021513133A/ja
Application granted granted Critical
Publication of JP6971404B2 publication Critical patent/JP6971404B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

API情報を管理するためのコンピュータ化されたシステムおよび方法。例示的な方法は、第1コンピュータシステムに関連付けられたユーザデバイスから、第2コンピュータシステムのアイデンティティーを含まない入力を受け取ることを含む。方法は、前記入力に基づいて、前記第2コンピュータシステムのAPIであるターゲットAPIを決定することを含む。方法は、また、前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有することを判定することを含む。方法は、また、前記ユーザが前記ターゲットAPIへのアクセスを有すると判定された場合、前記APIデータベースから前記ターゲットAPIのドキュメンテーションを取得することを含む。方法は、前記取得した前記ターゲットAPIのドキュメンテーションを前記ユーザデバイスに提供すること、を含む。

Description

本開示は、一般に、アプリケーションプログラミングインターフェース(API)情報を管理するためのコンピュータ化されたシステムおよび方法に関する。特に、本開示の実施形態は、データベースに格納されたコンピュータシステムのAPI情報を管理し、コンピュータシステムのユーザが別のコンピュータシステムのAPIのドキュメンテーション(文書化)を得ることを可能にすることに関する。
APIは、ソフトウェアアプリケーションを構築するためのルーチン、プロトコル、およびツールのセットである。良好なAPIは、すべてのビルディングブロックを提供することによって、プログラムを開発することをより容易にする。次に、プログラマはブロックを一緒に配置(put)する。多くの動作環境では、プログラマが動作環境と一貫性のあるアプリケーションを作成できるようにAPIが提供されている。APIには、通常、APIを使用するための手順を提供する関連ドキュメントがある。
文書は、様々な形式で存在することができる。過去において、文書化のための最も一般的な形式は、限定されたハードコピーマニュアルであった。これらのマニュアルは、典型的には、数百ページの詳細な情報を含む大きくてかさばるマニュアルであった。これらのマニュアルから情報を見つけ出し、検索するために、プログラマは、通常、大量の無関係な情報を検索することを強いられた。多くの異なるビジネス・ユニット、動作環境、コンピュータ・システム、およびAPIを有する大規模な組織では、これらのマニュアルは、プログラマが探している正しいAPIおよびその関連ドキュメントを検索し、決定する際に、プログラマに多くの時間および労力を費やすことになる。
この時代の情報技術では、これらのハードコピーマニュアルの多くが電子版に変換され、データベース化されている。さらに、インターネットやコンピュータシステム用に特別に設計された新しいドキュメントもある。これには、ユーザフレンドリーで、APIに適用可能なプログラミングコードに容易に変換できる文書の電子バージョンを生成できる、または、生成を支援できる文書化ツールおよびインターフェースが含まれる。
しかしながら、APIのドキュメンテーションの電子バージョンは、特定の技術的問題を克服するのに十分ではない場合がある。多くの異なるビジネス・ユニット、動作環境、コンピュータ・システム、およびAPIを有する大規模な組織では、APIおよびこれらのドキュメンテーションの量および複雑さによって、組織のデータベースを管理することが困難になっている。異なるビジネス・ユニットおよび動作環境内のユーザは、他のビジネス・ユニットおよび動作環境のAPIとの対話を試みることができる。各ビジネスユニット、オペレーティング環境、コンピュータシステム、およびAPIのアイデンティティを知ることを開発者に要求することは、非効率的である。異なるコンピュータ・システムに関連付けられたAPIで作業する開発者、または、1つのコンピュータ・システムのサブシステムで作業する開発者でさえ、異なる機能ごとに最適化された選択肢として、異なるコーディング言語を使用する必要があるかもしれない。大規模な組織では、そのコンピュータシステムとAPIが非常に迅速に更新される可能性がある。これにより、すべてのAPIの開発者が変更に対応し、タイムリーに競合を解決することがより難しく、面倒になる。ドキュメンテーションの単純な電子バージョンまたはドキュメンテーションを単に記憶するシステムは、ユーザにあまり負担をかけず、またはタイムリーな調整を提供しない。
したがって、電子API管理のための改善された方法およびシステムが必要とされている。
本開示の一態様はAPI情報を管理するためのシステムに関する。このシステムは、少なくとも1つのプロセッサと、コンピュータシステムのAPIと関連付けられたデータおよびドキュメンテーションを格納するAPIデータベースと、前記少なくとも1つのプロセッサによって実行されるとプロセッサに動作を実行させる命令を含む少なくとも1つのメモリと、を備え得る。動作は、第1コンピュータシステムに関連付けられたユーザデバイスから、第2コンピュータシステムのアイデンティティーを含まない入力を受け取ることを含み得る。動作は、ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザがアクセスできないコンピュータシステムに関連付けられたAPIを除外すること、前記入力に基づいて、前記第2コンピュータシステムのAPIであるターゲットAPIを決定すること、前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有するか否かを判定することを含み得る。前記ユーザが前記ターゲットAPIへのアクセスを有すると判定された場合、システムは、前記APIデータベースから前記ターゲットAPIのドキュメンテーションを取得し、前記取得した前記ターゲットAPIのドキュメンテーションを前記ユーザデバイスに提供してよい。
本開示の別の態様は、APIデータおよびドキュメンテーションw管理する方法に関する。方法は、第1コンピュータシステムに関連付けられたユーザデバイスから、第2コンピュータシステムのアイデンティティーを含まない入力を受け取ることを含み得る。方法は、ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連付けられたAPIを除外すること、前記入力に基づいて、前記第2コンピュータシステムのAPIであるターゲットAPIを決定すること、前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有することを判定することを含み得る。方法は、さらに、前記ユーザが前記ターゲットAPIへのアクセスを有すると判定された場合、前記APIデータベースから前記ターゲットAPIのドキュメンテーションを取得すること、および、前記取得した前記ターゲットAPIのドキュメンテーションを前記ユーザデバイスに提供すること、を含んでよい。
本開示のまた別の態様は、API情報を管理するシステムに関する。システムは、少なくとも1つのプロセッサと、少なくとも1つのコンピュータシステムと関連付けられたAPIと関連付けられたデータを格納するAPIデータベースであって、各コンピュータシステムは、それぞれのAPIを介して、前記コンピューティングシステムにおける他のコンピュータシステムと接続可能である、APIデータベースと、前記少なくとも1つのプロセッサによって実行されるとプロセッサに動作を実行させる命令を含む少なくとも1つのメモリと、を備え得る。動作は、第1コンピュータシステムに関連付けられたユーザデバイスから、第2コンピュータシステムのアイデンティティーを含まない入力を受け取ること、ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連付けられたAPIを除外すること、前記入力に基づいて、前記第2コンピュータシステムのAPIであるターゲットAPIを決定することを含み得る。動作は、前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有するか否かを判定すること、前記ユーザが前記ターゲットAPIへのアクセスを有すると判定された場合、前記APIデータベースから前記ターゲットAPIのドキュメンテーションを取得すること、前記取得した前記ターゲットAPIのドキュメンテーションを前記ユーザデバイスに提供することを含み得る。動作は、さらに、前記コンピュータシステムの1つのAPIを前記APIデータベースに登録するためのリクエストを受信すること、前記APIと関連付けられたデータを前記APIデータベースに格納することと、前記リクエストに基づいて前記APIと関連付けられたドキュメンテーションを生成すること、および、前記データベースに前記ドキュメンテーションを格納すること、前記APIデータベースに格納された前記APIの1つのデータまたはドキュメンテーションを更新するためのリクエストを受信することを含み得る。動作は、さらに、前記リクエストに基づいて、前記APIの前記データまたは前記ドキュメンテーションを更新すること、および、前記リクエストに応答して、前記コンピュータシステムに関連付けられたユーザデバイスに通知を送信すること、を含み得る。
他のシステム、方法、およびコンピュータ可読媒体も、本明細書で説明される。
開示された実施形態と一致する、出荷、輸送、および物流オペレーションを可能にする通信のためのコンピュータ化されたシステムを備えるネットワークの例示的な実施形態を示す概略ブロック図である。 開示された実施形態と矛盾しない、インタラクティブなユーザインターフェース要素と共に、検索要求を満たす1つ以上の検索結果を含む検索結果ページ(Search result page:SRP)サンプル検索結果を示す。 開示された実施形態と一致する、対話型ユーザインターフェース要素と共に製品および製品に関する情報を含む単一ディスプレイページ(Single display page:SDP)のサンプルを示す。 開示された実施形態と一致する、対話型ユーザインターフェース要素と共に仮想ショッピングカート内のアイテムを含むカートページのサンプルを示す。 開示された実施形態に一致する、仮想ショッピングカートからのアイテムを、購入および出荷に関する情報とともに、対話型ユーザインターフェース要素とともに含む注文ページのサンプルを示す。 開示された実施形態と一致する、開示されたコンピュータ化されたシステムを利用するように構成された例示的なフルフィルメントセンタの概略図である。 開示された実施形態と一致する、API情報を管理するための例示的なシステムの概略図を示す。 開示された実施形態と一致する、データベースにAPIを登録するためのプロセスを示す。 開示された実施形態と一致する、データベース内のAPI情報を更新するためのプロセスを示す。 開示された実施形態と一致する、ユーザデバイスにドキュメンテーションを提供する例示的なプロセスを示す。 開示された実施形態と一致する、API情報を管理するためのシステムの例示的なユーザインターフェースを示す。
以下の詳細な説明は、添付の図面を参照する。可能な限り、図面および以下の説明では、同一または類似の部分を参照するために、同一の参照番号が使用される。いくつかの例示的な実施形態が本明細書で説明されるが、修正、適応、および他の実装が可能である。例えば、置換、追加、または修正が、図面に示された構成要素およびステップに行われてもよく、本明細書に記載された例示的な方法は、開示された方法にステップを置換、並べ替え、除去、または追加することによって修正されてもよい。したがって、以下の詳細な説明は、開示された実施形態および実施例に限定されない。むしろ、本発明の適切な範囲は、添付の特許請求の範囲によって定義される。
本開示の実施形態は、API情報を管理するように構成されたシステムおよび方法を対象とする。
図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を含む。
いくつかの実施形態では、SATシステム101は、注文ステータスおよび配信ステータスを監視するコンピュータシステムとして実装されてもよい。例えば、SATシステム101は、注文がその約束納品日(Promised delivery date:PDD)を過ぎているかどうかを判定することができ、新しい注文を開始すること、未納品注文のアイテムを再出荷すること、未納品注文をキャンセルすること、注文顧客とのコンタクトを開始することなどを含む適切なアクションをとることができる。SATシステム101はまた、出力(特定の期間中に出荷されたパッケージの数など)および入力(出荷に使用するために受け取った空のボール紙箱の数など)を含む他のデータを監視することもできる。また、SATシステム101は、システム100内の異なるデバイス間のゲートウェイとして機能し、外部フロントエンドシステム103およびFOシステム113などのデバイス間の通信(例えば、ストアアンドフォワードまたは他の技術を使用する)を可能にしてもよい。
外部フロントエンドシステム103は、いくつかの実施形態では、外部ユーザがシステム100内の1つまたは複数のシステムと対話することを可能にするコンピュータシステムとして実装することができる。例えば、システム100がシステムのプレゼンテーションを可能にして、ユーザがアイテムの注文を行うことを可能にする実施形態では、外部フロントエンドシステム103は、検索要求を受信し、アイテムページを提示し、支払い情報を要請するウェブサーバとして実装されてもよい。例えば、外部フロントエンド・システム103は、Apache HTTPサーバ、Microsoftインターネット・インフォメーション・サービス、NGINXなどのソフトウェアを実行するコンピュータまたはコンピュータとして実現することができる。他の実施形態では、外部フロントエンドシステム103は、外部デバイス(例えば、モバイルデバイス102Aまたはコンピュータ102B)からの要求を受信および処理し、それらの要求に基づいてデータベースおよび他のデータストアから情報を取得し、取得された情報に基づいて受信された要求への応答を提供するように設計されたカスタムウェブサーバソフトウェアを実行することができる。
いくつかの実施形態では、外部フロントエンドシステム103は、ウェブキャッシングシステム、データベース、検索システム、または支払いシステムのうちの1つまたは複数を含むことができる。一態様では、外部フロントエンドシステム103は、これらのシステムのうちの1つまたは複数を備えることができ、別の態様では、外部フロントエンドシステム103は、これらのシステムのうちの1つまたは複数に接続されたインターフェース(たとえば、サーバ間、データベース間、または他のネットワーク接続)を備えることができる。
図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に関して以下でさらに説明される)。
外部フロントエンドシステム103は、情報に基づいてSRP (例えば、図1B)を準備することができる。SRPは、検索要求を満たす情報を含むことができる。例えば、これは、検索要求を満たす製品の写真を含むことができる。SRPはまた、各製品のそれぞれの価格、または各製品の強化された配送オプション、PDD、重量、サイズ、オファー、割引などに関する情報を含むことができる。外部フロントエンドシステム103は、(例えば、ネットワークを介して)要求側ユーザデバイスにSRPを送信することができる。
次いで、ユーザデバイスは、例えば、ユーザインターフェースをクリックまたはタップすることによって、または別の入力デバイスを使用して、SRP上で表される製品を選択することによって、SRPから製品を選択することができる。ユーザ・デバイスは、選択された製品に関する情報の要求を編成(formulate)し、それを外部フロントエンド・システム103に送ることができる。これに応答して、外部フロントエンドシステム103は、選択された製品に関する情報を要求することができる。例えば、情報は、それぞれのSRP上の製品について提示される情報を超える追加の情報を含むことができる。これは、例えば、賞味期限、原産国、重量、サイズ、パッケージ内のアイテムの数、取扱説明書、または製品に関する他の情報を含むことができる。また、情報は、(例えば、この製品および少なくとも1つの他の製品を購入した顧客のビッグデータおよび/または機械学習分析に基づく)類似の製品に対する推奨、頻繁に質問される質問に対する回答、顧客からのレビュー、製造業者情報、写真などを含むことができる。
外部フロントエンドシステム103は、受信した製品情報に基づいてSDP (単一詳細ページ)(例えば、図1C)を準備することができる。SDPは、「今すぐ買う」ボタン、「カードに追加する」ボタン、数量フィールド、アイテムの写真などの他の対話型要素も含むことができる。SDPは、製品を提供する売り手のリストをさらに含むことができる。リストは、各売り手が提供する価格に基づいて順序付けられてもよく、その結果、最低価格で製品を販売することを提案する売り手は、最上位にリストされてもよい。リストは、最高ランクの売り手が最上位にリストされるように、売り手ランキングに基づいて順序付けらてもよい。売り手ランキングは、例えば、約束されたPDDを満たす売り手の過去の実績を含む、複数の要因に基づいて定式化されてもよい。外部フロントエンドシステム103は、(例えば、ネットワークを介して)要求側ユーザデバイスにSDPを配信することができる。
要求ユーザデバイスは、製品情報をリストするSDPを受信してもよい。その後、SDPを受信すると、ユーザデバイスはSDPと対話することができる。例えば、要求ユーザ装置のユーザは、SDP上の「カートに入れる」ボタンをクリックするか、または他の方法で対話することができる。これは、ユーザに関連付けられたショッピングカートに製品を追加する。ユーザ装置は、ショッピングカートに製品を追加するためのこの要求を外部フロントエンドシステム103に送信することができる。
外部フロントエンドシステム103は、カートページ(例えば、図1D)を生成することができる。カートページは、いくつかの実施形態では、ユーザが仮想「ショッピングカート」に追加した製品をリストし、ユーザデバイスは、SRP、SDP、または他のページ上のアイコンをクリックするか、または他の方法で対話することによって、カートページを要求してもよい。いくつかの実施形態では、カートページは、ユーザがショッピングカートに追加したすべての製品、ならびに各製品の数量、各製品毎の価格、関連する数量に基づく各製品の価格、PDDに関する情報、配送方法、配送コスト、ショッピングカート内の製品を修正するためのユーザインターフェース要素(例えば、数量の削除または修正)、他の製品を注文するためのオプション、または製品の定期的な配送を設定するためのオプション、利息支払いを設定するためのオプション、購入に進むためのユーザインターフェース要素などのカート内の製品に関する情報をリストすることができる。ユーザデバイスのユーザは、ショッピングカート内の製品の購入を開始するために、ユーザインターフェース要素(例えば、「今すぐ買う」と読むボタン)をクリックするか、さもなければユーザインターフェース要素と対話することができる。そうすると、ユーザ・デバイスは、購入を開始するためにこの要求を外部フロント・エンド・システム103に送信することができる。
外部フロントエンドシステム103は、購入を開始する要求の受信に応答して、注文ページ(例えば、図1E)を生成することができる。注文ページは、いくつかの実施形態では、ショッピングカートからアイテムを再リストし、支払いおよび出荷情報の入力を要求する。例えば、注文ページは、ショッピングカート内のアイテムの購入者に関する情報(例えば、名前、住所、電子メールアドレス、電話番号)、受取人に関する情報(例えば、名前、住所、電話番号、配達情報)、出荷情報(例えば、配達および/または集荷の速度/方法)、支払い情報(例えば、クレジットカード、銀行振込、小切手、格納クレジット)、現金受領を要求するためのユーザインターフェース要素(例えば、税務目的のための)などを要求するセクションを含むことができる。外部フロントエンドシステム103は、注文ページをユーザデバイスに送信することができる。
ユーザデバイスは、オーダページに情報を入力し、その情報を外部フロントエンドシステム103に送信するユーザインターフェース要素をクリックするか、または他の方法で対話することができる。そこから、外部フロントエンドシステム103は、システム100内の異なるシステムに情報を送信して、ショッピングカート内の製品を用いた新しい注文の作成および処理を可能にすることができる。
いくつかの実施形態では、外部フロントエンドシステム103は、売り手が注文に関する情報を送受信することを可能にするようにさらに構成されてもよい。
内部フロントエンドシステム105は、いくつかの実施形態では、内部ユーザ(例えば、システム100を所有し、操作し、またはリースする組織の従業員)がシステム100内の1つまたは複数のシステムと対話することを可能にするコンピュータシステムとして実装され得る。例えば、ネットワーク101がシステムのプレゼンテーションを可能にして、ユーザがアイテムの注文を行うことを可能にする実施形態では、内部フロントエンドシステム105は、内部ユーザが注文に関する診断および統計情報を見ること、アイテム情報を修正すること、または注文に関する統計をレビューすることを可能にするウェブサーバとして実装されてもよい。例えば、内部フロントエンド・システム105は、Apache HTTPサーバ、Microsoftインターネット・インフォメーション・サービス、NGINXなどのソフトウェアを実行するコンピュータまたはコンピュータとして実現することができる。他の実施形態では、内部フロントエンドシステム105は、システム100に示されているシステムまたは装置(および図示されていない他の装置)からの要求を受信および処理し、それらの要求に基づいてデータベースおよび他のデータストアから情報を取得し、取得された情報に基づいて受信された要求に応答を提供するように設計されたカスタムウェブサーバソフトウェアを実行してもよい。
いくつかの実施形態では、内部フロントエンドシステム105は、ウェブキャッシングシステム、データベース、検索システム、支払いシステム、分析システム、注文監視システムなどのうちの1つまたは複数を含むことができる。一態様では、内部フロントエンドシステム105は、これらのシステムのうちの1つまたは複数を備えることができ、別の態様では、内部フロントエンドシステム105は、これらのシステムのうちの1つまたは複数に接続されたインターフェース(たとえば、サーバ間、データベース間、または他のネットワーク接続)を備えることができる。
輸送システム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は、いくつかの実施形態では、この情報を使用して、特定の荷物の位置を示す追跡データを準備し、他のシステムに送信することができる。
いくつかの実施形態では、あるユーザは、1つの種類のモバイルデバイスを使用することができる(例えば、正社員は、バーコードスキャナ、スタイラス、および他のデバイスなどのカスタムハードウェアを有する専用のPDAを使用することができる)が、他のユーザは、他の種類のモバイルデバイスを使用することができる(例えば、一時的またはシフト労働者は、既製のモバイル電話および/またはスマートフォンを利用することができる)。
いくつかの実施形態では、輸送システム107は、ユーザを各デバイスに関連付けることができる。例えば、輸送システム107は、ユーザ(例えば、ユーザ識別子、従業員識別子、または電話番号によって表される)と移動装置(例えば、国際移動装置識別子(IMEI)、国際移動加入識別子(IMSI)、電話番号、汎用一意識別子(UUID)、またはグローバル一意識別子(GUID)によって表される)との間の関連付けを記憶することができる。輸送システム107は、とりわけ、作業者の位置、作業者の効率、または作業者の速度を決定するために、この関連付けを、配達時に受信されたデータと共に使用して、データベースに格納されたデータを分析することができる。
売り手ポータル109は、いくつかの実施形態では、売り手または他の外部エンティティがシステム100内の1つまたは複数のシステムと電子的に通信することを可能にするコンピュータシステムとして実装され得る。例えば、売り手は、コンピュータシステム(図示せず)を利用して、売り手が売り手ポータル109を使用してシステム100を通して売りたい製品について、製品情報、注文情報、連絡先情報などをアップロードまたは提供することができる。
いくつかの実施形態では、出荷および注文追跡システム111は、(例えば、デバイス102A〜102Bを使用するユーザによって)顧客によって注文された製品を含むパッケージの位置に関する情報を受信し、格納し、転送するコンピュータシステムとして実装され得る。いくつかの実施形態では、出荷および注文追跡システム111は、顧客によって注文された製品を含むパッケージを配送する出荷会社によって運営されるウェブサーバ(図示せず)からの情報を要求または格納することができる。
いくつかの実施形態では、出荷および注文追跡システム111は、システム100に示されるシステムからの情報を要求し、記憶することができる。例えば、出荷及び注文追跡システム111は、輸送システム107から情報を要求することができる。上述のように、輸送システム107は、ユーザ(例えば、配達作業員)または車両(例えば、配達トラック)のうちの1つ以上に関連付けられた1つ以上のモバイルデバイス107A〜107C(例えば、携帯電話、スマートフォン、PDAなど)から情報を受信してもよい。いくつかの実施形態では、出荷および注文追跡システム111はまた、労働力管理システム(WMS)119から情報を要求して、フルフィルメントセンター(例えば、フルフィルメントセンター200)内の個々の製品の位置を決定することができる。出荷および注文追跡システム111は、輸送システム107またはWMS 119のうちの1つまたは複数からデータを要求し、それを処理し、要求に応じてそれをデバイス(たとえば、ユーザデバイス102Aおよび102B)に提示することができる。
いくつかの実施形態では、フルフィルメント最適化(FO)システム113は、他のシステム(例えば、外部フロントエンドシステム103および/または出荷および注文追跡システム111)からの顧客注文に関する情報を記憶するコンピュータシステムとして実装されてもよい。FOシステム113はまた、特定のアイテムがどこに保持または格納されるかを記述する情報を格納してもよい。たとえば、顧客が注文した特定のアイテムは1つのフルフィルメントセンターにのみ保存され、他の特定のアイテムは複数のフルフィルメントセンターに保存される場合がある。さらに他の実施形態では、特定のフルフィルメントセンターは、特定のセットのアイテム(例えば、生鮮食品または冷凍製品)のみを格納するように設計されてもよい。FOシステム113は、この情報ならびに関連する情報(例えば、数量、サイズ、受領日、有効期限など)を格納する。
FOシステム113はまた、各製品について対応するPDD (約束納期)を計算することができる。PDDは、いくつかの実施形態では、1つまたは複数の要因に基づくことができる。例えば、FOシステム113は、製品の過去の需要(例えば、その製品がある期間中に何回注文されたか)、製品の予想需要(例えば、来るべき期間中にその製品を注文するために何人の顧客が予想されるか)、ある期間中にいくつの製品が注文されたかを示すネットワーク全体の過去の需要、来るべき期間中にいくつの製品が注文されることが予想されるかを示すネットワーク全体の予想需要、各フルフィルメントセンタ200に格納された製品の1つまたは複数のカウント、その製品の予想または現在の注文などに基づいて、製品のPDDを計算することができる。
いくつかの実施形態では、FOシステム113は、定期的に(例えば、1時間ごとに)各製品のPDDを決定し、それをデータベースに格納して、検索または他のシステム(例えば、外部フロントエンドシステム103、SATシステム101、出荷および注文追跡システム111)に送信することができる。他の実施形態では、FOシステム113は、1つまたは複数のシステム(例えば、外部フロントエンドシステム103、SATシステム101、出荷および注文追跡システム111)から電子要求を受信し、オンデマンドでPDDを計算することができる。
フルフィルメントメッセージングゲートウェイ115は、いくつかの実施形態では、FOシステム113などのシステム100内の1つ以上のシステムから1つのフォーマットまたはプロトコルで要求または応答を受信し、それを別のフォーマットまたはプロトコルに変換し、変換されたフォーマットまたはプロトコルで、WMS 119または3パーティフルフィルメントシステム121A、121B、または121Cなどの他のシステムに転送するコンピュータシステムとして実装することができる。
サプライチェーン管理(SCM)システム117は、いくつかの実施形態では、予測機能を実行するコンピュータシステムとして実装することができる。例えば、SCMシステム117は、例えば、製品に対する過去の需要、製品に対する予想される需要、ネットワーク全体の過去の需要、ネットワーク全体の予想される需要、各フルフィルメントセンタ200に格納されたカウント製品、各製品に対する予想または現在の注文などに基づいて、特定の製品に対する需要のレベルを予測することができる。この予測されたレベルおよびすべてのフルフィルメントセンターにわたる各製品の量に応答して、SCMシステム117は、特定の製品に対する予測された需要を満たすのに十分な量を購入し、在庫するための1つまたは複数の購入注文を生成することができる。
労働力管理システム(WMS)119は、ある実施形態では、ワークフローを監視するコンピュータシステムとして実装されてもよい。例えば、WMS 119は、個別のイベントを示すイベントデータを個々のデバイス(例えば、デバイス107A〜107Cまたは119A〜119C)から受信することができる。例えば、WMS 119は、パッケージを走査するためにこれらの装置の1つの使用を示すイベントデータを受信してもよい。フルフィルメントセンター200および図2に関して以下で説明するように、フルフィルメントプロセス中に、パッケージ識別子(例えば、バーコードまたはRFIDタグデータ)を、特定の段階で機械によってスキャンまたは読み取ることができる(例えば、自動またはハンドヘルドバーコードスキャナ、RFIDリーダ、高速カメラ、タブレット119A、モバイルデバイス/PDA 119B、コンピュータ119Cなどのデバイス)。WMS 119は、パッケージ識別子、時間、日付、位置、ユーザ識別子、またはその他の情報と共に、パッケージ識別子の走査または読取りを示す各イベントを対応するデータベース(図示せず)に格納し、この情報を他のシステム(例えば、出荷および注文追跡システム111)に提供することができる。
WMS 119は、いくつかの実施形態では、1つまたは複数のデバイス(たとえば、デバイス107A〜107Cまたは119A〜119C)をシステム100に関連する1つまたは複数のユーザに関連付ける情報を記憶することができる。例えば、いくつかの状況では、ユーザ(パートまたはフルタイムの従業員など)は、ユーザがモバイルデバイスを所有するモバイルデバイス(例えば、モバイルデバイスはスマートフォンである)に関連付けられ得る。他の状況では、ユーザは、ユーザがモバイルデバイスを一時的に保管しているという点で、モバイルデバイスに関連付けられてもよい(例えば、ユーザは、日の始めにモバイルデバイスをチェックアウトし、日中にモバイルデバイスを使用し、日の終わりにモバイルデバイスを戻してもよい)。
WMS 119は、いくつかの実施形態では、システム100に関連する各ユーザの作業ログを維持することができる。例えば、WMS 119は、任意の割り当てられたプロセス(例えば、トラックのアンロード、ピックゾーンからのアイテムのピッキング、リビン壁工事(rebin wall work)、アイテムのパッキング)、ユーザ識別子、位置(例えば、フルフィルメントセンタ200内のフロアまたはゾーン)、従業員によってシステムを通って移動されたユニットの数(例えば、ピッキングされたアイテムの数、パッキングされたアイテムの数)、デバイス(例えば、デバイス119A〜119C)に関連付けられた識別子などを含む、各従業員に関連付けられた情報を記憶することができる。いくつかの実施形態では、WMS 119は、デバイス119A〜119C上で動作するタイムキーピングシステムなどのタイムキーピングシステムからチェックインおよびチェックアウト情報を受信することができる。
第三者フルフィルメント(3PL)システム121A〜121Cは、いくつかの実施形態では、ロジスティクスおよび製品のサードパーティプロバイダに関連するコンピュータシステムを表す。例えば、(図2に関して以下に説明するように)いくつかの製品がフルフィルメントセンター200に保管されている間、他の製品はオフサイトで保管されてもよく、オンデマンドで生産されてもよく、またはそうでなければフルフィルメントセンター200に保管するために利用できなくてもよい。3PLシステム121A〜121Cは、FOシステム113から(例えば、FMG 115を介して)注文を受信するように構成されてもよく、製品および/またはサービス(例えば、配送または設置)を顧客に直接提供してもよい。いくつかの実施形態では、3PLシステム121A〜121Cのうちの1つまたは複数は、システム100の一部とすることができ、他の実施形態では、3PLシステム121A〜121Cのうちの1つまたは複数は、システム100の外部(例えば、サードパーティプロバイダによって所有または運営される)とすることができる。
いくつかの実施形態では、フルフィルメントセンターオースシステム(FCオース)123は、様々な機能を有するコンピュータシステムとして実装されてもよい。例えば、いくつかの実施形態では、FC Auth 123は、システム100内の1つまたは複数の他のシステムのためのシングルサインオン(SSO)サービスとして働くことができる。例えば、FC認証123は、ユーザが内部フロントエンドシステム105を介してログインすることを可能にし、ユーザが出荷および注文追跡システム111でリソースにアクセスする同様の特権を有することを決定し、ユーザが2回目のログインプロセスを必要とせずにそれらの特権にアクセスすることを可能にする。FCオース123は、他の実施形態では、ユーザ(例えば、従業員)が特定のタスクに自分自身を関連付けることを可能にすることができる。例えば、従業員の中には、電子デバイス(デバイス119A〜119Cなど)を持たないことがあり、代わりに、1日のコース中に、フルフィルメントセンタ200内でタスクからタスクへ、およびゾーンからゾーンへ移動することがある。FC Auth 123は、それらの従業員が、彼らがどのタスクを実行しているか、および彼らが異なる時刻にどのゾーンにいるかを示すことを可能にするように構成され得る。
労働管理システム(LMS)125は、いくつかの実施形態では、従業員(フルタイムおよびパートタイムの従業員を含む)のための出勤および残業情報を記憶するコンピュータシステムとして実装されてもよい。例えば、LMS 125は、FC Auth 123、WMA 119、デバイス119A〜119C、輸送システム107、および/またはデバイス107A〜107Cから情報を受信することができる。
図1Aに示される特定の構成は、単なる例である。例えば、図1Aは、FOシステム113に接続されたFCオースシステム123を示すが、全ての実施形態がこの特定の構成を必要とするわけではない。実際、いくつかの実施形態では、システム100内のシステムは、インターネット、イントラネット、WAN (ワイドエリアネットワーク)、MAN (メトロポリタンエリアネットワーク)、IEEE 802.11a/b/g/n規格に準拠する無線ネットワーク、専用線などを含む1つまたは複数の公衆またはプライベートネットワークを介して互いに接続され得る。いくつかの実施形態では、システム100内のシステムの1つ以上は、データセンター、サーバファームなどに実装された1つ以上の仮想サーバとして実装されてもよい。
図2は、フルフィルメントセンター200を示す。フルフィルメントセンター200は、注文時に顧客に出荷するためのアイテムを格納する物理的位置の一例である。フルフィルメントセンタ(FC)200は、複数のゾーンに分割することができ、各ゾーンは図2に示されている。いくつかの実施形態では、これらの「ゾーン」は、アイテムを受け取り、アイテムを格納し、アイテムを取り出し、アイテムを出荷するプロセスの異なる段階間の仮想分割と考えることができ、したがって、「ゾーン」は図2に示されているが、ゾーンの他の分割も可能であり、図2のゾーンは、いくつかの実施形態では、省略、複製、または修正することができる。
インバウンドゾーン203は、図1Aのシステム100を使用して製品を販売したい売り手からアイテムが受け取られるFC 200の領域を表す。例えば、売り手は、トラック201を使用してアイテム202A及び202Bを配送することができる。アイテム202Aは、それ自体の出荷パレットを占有するのに十分な大きさの単一のアイテムを表すことができ、アイテム202Bは、スペースを節約するために同じパレット上に一緒に積み重ねられたアイテムのセットを表すことができる。
作業者は、インバウンドゾーン203内のアイテムを受け取ることができ、任意選択で、コンピュータシステム(図示せず)を使用してアイテムの損傷および正しさをチェックすることができる。例えば、作業者は、コンピュータシステムを使用して、アイテム202Aおよび202Bの数量をアイテムの注文数量と比較することができる。数量が一致しない場合、その作業者は、アイテム202Aまたは202Bのうちの1つまたは複数を拒否することができる。量が一致した場合、作業者はそれらのアイテム(例えば、人形、手すり、フォークリフト、または手動で使用)を、ゾーン205を緩衝するように動かすことができる。バッファゾーン205は、例えば、予測される需要を満たすのに十分な量のアイテムがピッキングゾーン内にあるため、ピッキングゾーン内で現在必要とされていないアイテムのための一時保管領域であってもよい。いくつかの実施形態では、フォークリフト206は、物品をバッファゾーン205の周り、およびインバウンドゾーン203とドロップゾーン207との間で移動させるように動作する。ピッキングゾーンにアイテム202Aまたは202Bが必要な場合(例えば、予想される需要のため)、フォークリフトは、アイテム202Aまたは202Bを落下ゾーン207に移動させることができる。
ドロップゾーン207は、アイテムがピッキングゾーン209に移動される前にアイテムを格納するFC 200の領域であってもよい。ピッキングタスクに割り当てられた作業者(「ピッカー」)は、ピッキングゾーン内のアイテム202Aおよび202Bに接近し、ピッキングゾーンのバーコードをスキャンし、モバイルデバイス(例えば、デバイス119B)を使用してアイテム202Aおよび202Bに関連付けられたバーコードをスキャンすることができる。次いで、ピッカーは、アイテムをピッキング・ゾーン209に(例えば、カートの上に置くか、またはそれを運ぶことによって)取り込むことができる。
ピッキングゾーン209は、アイテム208が保管(storage)ユニット210に保管されるFC 200の領域であってもよい。いくつかの実施形態では、保管ユニット210は、物理的な棚、本棚、箱、運搬箱、冷蔵庫、冷凍庫、冷蔵庫などのうちの1つまたは複数を含むことができる。いくつかの実施形態では、ピッキングゾーン209は、複数のフロアに編成されてもよい。いくつかの実施形態では、作業者または機械は、例えば、フォークリフト、エレベータ、コンベヤベルト、カート、ハンドトラック、ドリー、自動ロボットまたは装置、あるいは手動を含む複数の方法で、物品をピッキングゾーン209に移動させることができる。例えば、ピッカーは、アイテム202Aおよび202Bをドロップゾーン207内のハンドトラックまたはカート上に置き、アイテム202Aおよび202Bをピッキングゾーン209まで歩くことができる。
ピッカーは、保管ユニット210上の特定のスペースのような、ピッキングゾーン209内の特定のスポットにアイテムを配置する(または「収納する」)命令を受け取ることができる。例えば、ピッカーは、モバイルデバイス(例えば、デバイス119B)を使用してアイテム202Aをスキャンすることができる。デバイスは、例えば、通路、棚、および位置を示すシステムを使用して、ピッカーがアイテム202Aを収納すべき場所を示すことができる。次に、デバイスは、その位置にアイテム202Aを格納する前に、その位置でバーコードをスキャンするようにピッカーに促すことができる。装置は、図1のWMS 119のようなコンピュータシステムに(例えば、無線ネットワークを介して)データを送信し、装置119Bを使用するユーザによってアイテム202Aがその場所に格納されたことを示すことができる。
ユーザが注文を出すと、ピッカは、保管ユニット210から1つまたは複数のアイテム208を取り出すために、デバイス119B上で命令を受け取ることができる。ピッカーは、アイテム208を取り出し、アイテム208上のバーコードをスキャンし、それを搬送機構214上に置くことができる。搬送機構214はスライドとして表されているが、いくつかの実施形態では、搬送機構は、コンベヤベルト、エレベータ、カート、フォークリフト、ハンドトラック、台車、カートなどのうちの1つまたは複数として実施することができる。次に、アイテム208は、パッキングゾーン211に到着することができる。
パッキングゾーン211は、アイテムがピッキングゾーン209から受け取られ、最終的に顧客に出荷するためにボックスまたはバッグにパッキングされるFC 200の領域であってもよい。パッキングゾーン211では、アイテムを受け取るように割り当てられた作業者(「リビン(rebin)作業者」)は、ピッキングゾーン209からアイテム208を受け取り、それがどの注文に対応するかを決定することができる。例えば、リビン作業者は、アイテム208上のバーコードをスキャンするために、コンピュータ119Cなどのデバイスを使用することができる。コンピュータ119Cは、どの注文アイテム208が関連付けられているかを視覚的に示すことができる。これは、例えば、注文に対応する壁216上のスペースまたは「セル」を含むことができる。注文が完了すると(例えば、セルが注文のためのすべてのアイテムを含むため)、リビン作業者は、注文が完了したことをパッキング作業者(または「パッカー」)に示すことができる。パッカーは、セルからアイテムを取り出し、それらを出荷のために箱または袋に入れることができる。その後、パッカーは、例えば、フォークリフト、カート、ドリー、ハンドトラック、コンベヤーベルトを介して、又は他の方法で、箱又はバッグをハブゾーン213に送ることができる。
ハブゾーン213は、パッキングゾーン211から全てのボックスまたはバッグ(「パッケージ」)を受け取るFC 200の領域であってもよい。ハブゾーン213内の作業者および/または機械は、小包218を取り出し、各小包が配達エリアのどの部分に行こうとするかを決定し、小包を適切なキャンプゾーン215にルーティングすることができる。例えば、配達エリアが2つのより小さいサブエリアを有する場合、パッケージは、2つのキャンプゾーン215のうちの1つに行くことができる。いくつかの実施形態では、作業者または機械は、(例えば、デバイス119A〜119Cのうちの1つを使用して)パッケージをスキャンして、その最終的な宛先を決定することができる。パッケージをキャンプゾーン215にルーティングすることは、例えば、(例えば、郵便番号に基づいて)パッケージが向けられている地理的エリアの一部を決定することと、地理的エリアの一部に関連付けられたキャンプゾーン215を決定することとを含むことができる。
キャンプゾーン215は、いくつかの実施形態では、1つまたは複数の建物、1つまたは複数の物理的空間、または1つまたは複数のエリアを備えることができ、ハブゾーン213から受け取られたパッケージは、ルートおよび/またはサブルートに分類される。いくつかの実施形態では、キャンプゾーン215は、FC 200から物理的に分離されているが、他の実施形態では、キャンプゾーン215は、FC 200の一部を形成することができる。
キャンプゾーン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によって所有され、リースされ、または操作されてもよい。
図3は、開示された実施形態と一致する、API情報を管理するための例示的なシステム(例示的なシステム300)の概略図を示す。システム300は、API管理システム310、API接続システム318、コンピュータ・システム303、API105、データベース330およびネットワーク320を含むことができる。コンピュータ・システムのAPIは、ネットワーク320を介して互いに接続されてもよい。コンピュータ・システム303は、1つ以上のAPIを含むことができる。同じコンピュータシステムのAPIは、ネットワーク320を介して互いに接続されてもよい。1つのコンピュータ・システムに関連するユーザ・デバイス、またはユーザ・デバイスのユーザは、ネットワーク320を介して他のコンピュータ・システムのAPIに接続することもできる。
コンピュータ・システム303は、システム100内の1つ以上のシステムを含むコンピュータ・システムであってもよい。複数のコンピュータ・システム303が存在してもよく、それぞれが互いに接続されていてもよい(例えば、直接的に、またはネットワーク320を介して)。コンピュータ・システム303は、サーバ、ワークステーション、デスクトップ・コンピュータ、モバイル・装置、または特殊目的のコンピューティング・装置などの1つ以上のコンピューティング・装置を含むことができる。コンピュータ・システム303は、システム100内の様々なシステムのサブシステムの一部であってもよい。例えば、コンピュータシステム303は、各製品について対応するPDD (約束納期)を計算するFOシステム113のサブシステムであってもよい。
API305は、コンピュータ・システム303が1つ以上のAPIを有していてもよく、あるいは、それぞれが独自のAPIを有するサブシステムを有していてもよいので、1つ以上のAPIを備えてもよい。API305はまた、1つ以上のコンピュータシステムに関連付けられてもよい。APIは、本明細書で集合的にAPIと呼ばれる複数の機能および層を備えることができる。いくつかの実施形態において、APIは、ユーザインタフェース層、API機能層、コンピュータシステム層、共通言語層、または後にデータベースなどの複数の層を含むことができる。層は、複数の機能を含むことができる。例えば、API機能層は、アプリケーション・プログラマ、顧客、スーパーバイザなど、APIのユーザに異なるリソースまたはサービスを提供する機能のグループを含むことができる。ユーザは、ネットワーク・プラットフォームに関連し、接続されている機能を使用してもよく、このネットワークは、コンピュータ・システム内のプライベート・ネットワーク、オペレーティング環境、もしくは、組織全体であるか、または、外部ユーザに関連するパブリックネットワークである。プログラマ・ユーザは、ネットワーク・リソースやその他のWebサービスを最大限に活用するコンピューティング・システム用のWebアプリケーションを作成できる。これらのネットワーク・リソースが実際にどのように動作するか、または利用可能になるかについての複雑な技術的詳細を理解する必要はない。
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の他の構成要素がそれらの機能を達成することを可能にするために、幅広く多様なアプリケーションを効果的に提供することができる。
API管理システム310は、開示された実施形態と矛盾しない動作を実行するためにAPI管理システム310の1つ以上のプロセッサによって使用されるデータおよび/またはソフトウェア命令を記憶するように構成された1つ以上の記憶装置を含むか、またはそれらにアクセスすることができる。例えば、API管理システム310は、開示された方法に特有の動作を含む、プロセッサによって実行されるときにいくつかの動作を実行する1つ以上のソフトウェアプログラムを記憶するように構成されたメモリを含んでもよい。開示された実施形態は、専用タスクを実行するように構成された別個のプログラムまたはコンピュータに限定されない。例えば、API管理システム310は、単一のプログラムまたは複数のプログラムを記憶するメモリを含んでもよい。さらに、API管理システム310は、API管理システム310から遠隔に配置された1つ以上のプログラムを実行してもよい。例えば、API管理システム310は、リモートコンポーネント(データベース330など)に含まれるメモリに記憶された1つ以上のリモートプログラムにアクセスすることができ、これが実行されると、開示された実施形態と整合する動作を実行する。
データベース330は、1つ以上のコンピュータ・システムまたは実装されるコンピュータ・システムであってよい。データベース330は、APIの情報に関連するオペレーションを生成し、管理し、提供するサーバソフトウェアを含んでもよい。いくつかの実施形態において、API管理システム310は、API管理システム310によって実行される動作のためのAPIの情報に関連付けられたサービスを生成、管理および提供する、データベース330に関連付けられた別個のサーバまたは他のコンピューティング装置と接続してもよい。
データベース330は、開示された実施形態と一致して、API305の情報を記憶するように構成されてもよい。データベース330は、APIの登録・更新時に提供されるAPIの情報、インデックス情報、識別情報、アクセス情報、導入・ルール、開発・デバッグ上の注意、更新毎の情報変更を記憶するように構成されてもよい。データベース330は、データベース330に登録されたすべてのAPIに対して、APIを選択または使用する記録をそれぞれ有するエントリを作成することができる。APIを選択する記録は、APIの各部分の各APIの選択に関するものであってもよい。APIの使用記録は、APIの各部分の各APIの使用に関するものであってもよい。データベース330はまた、ネットワーク320を介してAPIと接続され、検索し、選択したすべてのユーザのためのエントリを作成することができる。データベース330は、ネットワーク320を介した、または、API管理システム310に関連付けられた各ユーザの活動の記録を保持することができる。ユーザのアクティビティは、APIを用いた検索、選択、接続を含むことができ、各APIを用いたそれらのアクティビティに関して記録することができる。
データベース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の一部を使用したレコードにアクティビティを記録することができる。
ネットワーク320は、図3の構成要素間の通信を提供するように構成され得る。例えば、ネットワーク320は、インターネット、ローカルエリアネットワーク、またはAPI管理システム310がAPI管理システム310の構成要素間で情報を送受信することを可能にする他の適切な接続のような、通信を提供し、情報を交換し、および/または情報の交換を容易にする、任意のタイプのネットワーク(インフラストラクチャを含む)とすることができる。いくつかの実施形態では、ネットワーク320は、図1Aの1つまたは複数のネットワークとは別個のネットワークとすることができる。他の実施形態では、ネットワーク320は、図1Aの1つまたは複数のネットワークと統合されるか、または接続されてもよい。
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の一部であってもよい。
コンピュータ・システム303は、1つ以上のAPI305を有することができる。APIを有するコンピュータ・システム303は、ある実施形態では、コンピュータ・システム303に関連するユーザ・デバイスが、コンピュータ・システム303からデータを要求し、データを処理し、またはデータを送信するアプリケーションを動作させることを可能にする機能性およびコードを格納することを意味する。コンピュータ・システム303は、API305のソース・コードを記憶するメモリを含んでもよい。API305のソースコードはまた、コンピュータシステム303から遠隔的に記憶されてもよい。API管理システム310は、図4に関して後述するように、コンピュータシステム303のAPIをAPI管理システム310に登録するように構成することができる。
図3に示されるデバイスおよびシステムのいずれも、1つまたは複数のプロセッサ、1つまたは複数のメモリ、および1つまたは複数の入出力(I/O)デバイスを含むことができる。これらのコンポーネントは、バスまたはワイヤレスで相互に通信できる。構成要素は、単一のデバイスまたは複数のデバイスに存在することができる。いくつかの実施形態では、デバイスおよびシステムは、サーバ、特別にプログラムされたコンピュータ、メインフレームコンピュータ、ラップトップ、スマートフォン、モバイルデバイス、またはこれらの構成要素の任意の組合せの形態をとることができる。いくつかの実施形態では、デバイスおよびシステムは、開示された実施形態と一致する1つまたは複数の動作を実行するソフトウェア命令の記憶、実行、および/または実装に基づいて、特定の装置、システムなどとして構成され得る。デバイスおよびシステムは、スタンドアロンであってもよく、または、より大きなシステムの一部であってもよいサブシステムの一部であってもよい。
プロセッサは、中央処理装置(CPU)、グラフィカル・プロセッシング・ユニット(GPU)、または類似のマイクロプロセッサを含み、例えば、IntelTMによって製造されたPentiumTMまたはXeonTMファミリーからのマイクロプロセッサー、AMDTMによって製造されたTurionTMファミリー、または、例えば、Sun MicrosystemsまたはApple、Inc.によって製造された種々のプロセッサーのいずれかの、1つ以上の公知のプロセッシング・デバイスを含む。プロセッサは、並列処理を同時に実行する単一コアまたは複数コアプロセッサを構成してもよい。例えば、プロセッサは、仮想処理技術で構成された単一コアプロセッサであってもよい。特定の実施形態では、プロセッサは、論理プロセッサを使用して、複数のプロセスを同時に実行および制御することができる。プロセッサは、仮想マシン技術、または複数のソフトウェアプロセス、アプリケーション、プログラムなどを実行、制御、実行、操作、格納などの能力を提供する他の既知の技術を実装してもよい。別の実施形態では、プロセッサは、デバイスとシステムが複数のプロセスを同時に実行できるように並列処理機能を提供するように構成された複数コアプロセッサ構成(例えば、デュアルコア、Quadコア等)を含むことができる。装置およびシステムは、1つ以上のプロセッサを含むことができ、さらに、プロセッサに関して遠隔にある1つ以上の他のプロセッサとともに動作することができる。当業者は、本明細書で開示される能力を提供する他のタイプのプロセッサ構成が実装され得ることを理解するであろう。開示された実施形態は、デバイスおよびシステムにおいて構成されたいかなるタイプのプロセッサにも限定されない。
メモリは、開示された実施形態に関連する機能を実行するためにプロセッサによって実行可能な命令を記憶するように構成された1つ以上の記憶装置を含んでもよい。例えば、メモリは、コンピュータ・ハードディスク、ランダム・アクセス・メモリ、リムーバブル・ストレージ、またはリモート・コンピュータ・ストレージを含むことができる。例えば、メモリは、プロセッサによって実行されるときに特定の機能を実行する1つ以上のソフトウェア命令で構成されてもよい。開示された実施形態は、専用タスクを実行するように構成された別個のプログラムまたはコンピュータに限定されない。さらに、プロセッサは、装置およびシステムから遠隔に配置された1つ以上のプログラムを実行してもよい。例えば、コンピュータシステム303、API305、またはデータベース330は、API管理システム310(またはその変形)を介して、実行されると、ある開示された実施形態に関連する機能を実行する1つまたは複数のリモートプログラムにアクセスすることができる。プロセッサは、データベース330に配置された1つ以上のプログラムをさらに実行してもよい。いくつかの実施形態において、命令は、API管理システム310の外部に配置されたクラウドサーバなどの外部記憶装置に記憶されてもよく、プロセッサは、命令をリモートで実行してもよい。
メモリはまた、例示的なシステム300が開示された実施形態と一致する動作を実行するために使用することができる任意のフォーマットで、任意のタイプの情報を反映するデータを格納することができる。メモリは、プロセッサが、サーバアプリケーション、ネットワーク通信プロセスなどの1つ以上のアプリケーション、およびフロントエンドシステム103のインタラクティブユーザインタフェースなどの任意の他のタイプのアプリケーションまたはソフトウェアを実行できるようにするための命令を記憶することができる。あるいは、命令、アプリケーションプログラム等は、外部記憶装置に格納されてもよい。例えば、API管理システム310の命令は、データベース330に記憶されてもよく、ネットワーク320または任意の他の適切なネットワークを介してAPI管理システム310と通信している。メモリは、揮発性または不揮発性、磁気、半導体(例えば、EEPROM、フラッシュメモリなど)、テープ、光学、取外し可能、取外し不可能、または他のタイプの記憶デバイスまたは有形(すなわち、一時的でない)コンピュータ可読媒体とすることができる。
I/O装置は、システムの装置または装置の装置のユーザから装置およびシステムに情報を通信するためのハードウェアおよび/またはハードウェアとソフトウェアとの組合せを含むことができる。いくつかの実施形態では、ユーザは、システムのデバイスまたはデバイスの直接ユーザであってもよい。いくつかの他の実施形態では、ユーザは、デバイスおよびシステムに接続された別の1つまたは複数のユーザデバイスとすることができる。ハードウェアおよびソフトウェアは、例えば、キーボード、マウス、トラックボール、オーディオ入力デバイス、タッチスクリーン、赤外線入力インターフェース、または同様のデバイスであってもよい。
図4は、開示された実施形態と一致する、データベースにAPIを登録するためのプロセス400を示す。
ステップ402において、API管理システム310は、システムにAPIを登録する要求を受信する。いくつかの実施形態において、要求は、コンピュータ・システム303またはコンピュータ・システム303に関連するユーザ・デバイスからのものであってもよい。いくつかの実施形態では、要求は、API305またはAPI305のユーザからのものであってもよい。他のいくつかの実施形態では、要求は、API管理システム310のインターフェースを介して直接要求を送信するユーザ装置のユーザからのものであってもよい。リクエストには、リクエストの送信時にインターフェイスを介してユーザーが指定したAPIの情報が含まれる場合がある。
ステップ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またはコンピュータシステムと、の間の対話式プロセスを介して受信される。
ステップ406において、API管理システム310は、APIの情報を例示的なシステム300のAPIデータベースに記憶することができる。ある実施形態では、API管理システム310は、自身のAPIデータベースを有してもよく、その情報を自身のAPIデータベースに記憶してもよい。
ステップ408において、API管理システム310は、受け取った情報に基づいてAPIに関連するドキュメンテーション(文書)を生成することができる。API管理システム310はまた、生成されたドキュメンテーションと共に受信されたドキュメンテーションを組み込んでもよい。いくつかの実施形態では、ドキュメンテーションの生成の一部として、API管理システム310は、APIを使用するためのコードを生成する規則のセットを準備することができる。一連のルールにより、API管理システム310は、ユーザがAPIのすべての部分の学習をスキップし、ゼロからプログラムを開発する必要がなく、受信したソースコードを所望の目的のために適応させることができるように、APIに接続されたユーザのためのコードを迅速かつ自動的に生成することができる。
ステップ410において、API管理システム310は、例示的なシステム300のAPIデータベースにAPIの文書を記憶することができる。いくつかの実施形態において、API管理システム310は、それ自身のAPIデータベースを有することができ、文書をそれ自身のAPIデータベースに記憶することができる。
API管理システム310は、図5に関して後述するように、APIの情報を更新するように構成することができる。
図5は、開示された実施形態と一致する、データベース内のAPI情報を更新するための処理500を示す。
ステップ502において、API管理システム310は、システム内のAPIの情報を更新する要求を受信する。いくつかの実施形態において、要求は、コンピュータ・システム303またはコンピュータ・システム303に関連するユーザ・デバイスからのものであってもよい。いくつかの実施形態では、要求は、API305またはAPI305のユーザからのものであってもよい。他のいくつかの実施形態では、要求は、API管理システム310のインターフェースを介して直接要求を送信したユーザ装置のユーザからのものであってもよい。リクエストには、リクエストの送信時にインターフェイスを介してユーザーが指定したAPIの情報が含まれる場合がある。
ステップ504で、API管理システム310は、更新するAPIの情報を受信する。この情報は、インデックス情報、識別情報、アクセス情報、パーミッションレベルに関する許可、導入およびルール、開発およびデバッグノート、ならびにAPIの以前の使用の記録を含むことができ、これらのすべてを集合的にAPIのデータと呼ぶことができる。API管理システム310は、新しい情報と以前の情報とを比較し、APIの情報の一部として記憶されたエントリとして、情報の変化を検出し記録してもよい。APIを登録したコンピュータシステムからの要求でない場合、API管理システム310は、更新の要求についてコンピュータシステムに通知し、次のステップに進む前に確認を要求してもよい。情報は、APIのドキュメンテーションも含むことができる。いくつかの実施形態では、情報は、ステップ502においてAPIの情報を更新する要求に含まれてもよい。いくつかの他の実施形態では、情報は、API管理システム310のインターフェースとユーザ、APIまたはコンピュータシステムとの間の対話式プロセスを介して受信される。
ステップ506において、API管理システム310は、例示的なシステム300のAPIデータベース内のAPIの情報を更新してもよい。ある実施形態では、API管理システム310は、独自のAPIデータベースを有することができ、独自のAPIデータベース内の情報を更新することができる。
ステップ508において、API管理システム310は、受け取った情報に基づいてAPIに関連する新しいドキュメンテーションを生成することができる。API管理システム310はまた、生成されたドキュメンテーションと共に受信されたドキュメンテーションを組み込んでもよい。いくつかの実施形態では、ドキュメンテーションの生成の一部として、API管理システム310は、APIを使用するためのコードを生成する規則のセットを準備することができる。一連のルールにより、API管理システム310は、APIに接続されたユーザ装置のためのソースコードを迅速かつ自動的に生成することができ、それにより、ユーザ装置のユーザは、APIのすべての部分の学習をスキップし、ゼロからプログラムを開発する必要がなくなり、生成されたソースコードに独自のソースコードまたは機能性を直接追加することができる。
ステップ510において、API管理システム310は、例示的なシステム300のAPIデータベース内のAPIの文書を更新してもよい。ある実施形態では、API管理システム310は、それ自身のAPIデータベースを有することができ、それ自身のAPIデータベース内の文書を更新することができる。
ステップ512において、API管理システム310は、更新に関する通知をコンピュータ・システム303に送ることができる。いくつかの実施形態において、API管理システム310は、APIへのアクセスを有するコンピュータシステムにのみ通知を送信してもよい。いくつかの実施形態において、API管理システム310は、APIを使用したコンピュータシステムにのみ通知を送信してもよい。API管理システム310は、電子メール、メッセージ、または他の特定の通信ツールを介して通知を送信することができる。
図6は、開示された実施形態と一致する、ユーザデバイスにドキュメンテーションを提供する例示的なプロセスを示す。ステップ605において、API管理システム310は、ユーザデバイスから入力を受信することができる。いくつかの実施形態では、ユーザデバイスは、コンピュータシステム303に関連付けられてもよい。いくつかの実施形態では、要求は、API305またはAPI305のユーザからのものであってもよい。他のいくつかの実施形態では、入力は、API管理システム310のインターフェースを介して要求を直接送信したユーザからのものであってもよい。いくつかの実施形態において、入力は、所望のAPIに関連するコンピュータシステムのアイデンティティを省略してもよい。これは、ユーザ(例えば、開発者)が、使用すべきコンピュータシステムやAPIを事前に知る必要がないという点で効率を提供する。
いくつかの実施形態では、入力は、特定の機能のアイデンティティを省略することができる。例えば、API管理システム310は、「約束された納入日(PDD)データ」及び「出荷データ」の要求を含む入力を(例えば、FOシステム113と関連付けられたユーザデバイスから)受領することができる(例えば、開発者はPDDデータを使用するFOシステム113のためのアプリケーションを開発中である)。ユーザは、検索の前にコンピュータシステム又はAPIを選択する必要はなく、これは、APIドキュメンテーションレビュー及び検索のための先行技術システムよりも有利である。
いくつかの実施形態では、ステップ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に遠隔的に記憶されることによって、満たすことができる任意の要求であってもよい。
ステップ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情報の不必要な露出を最小限に抑える(したがって、データセキュリティを向上させる)ことができる。
いくつかの実施形態において、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を選択することができる。
いくつかの実施形態において、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のリストと共にユーザに提供する指示を含むことができる。
ステップ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にアクセス権が割り当てられているユーザのリストを要求し、ユーザがリストに載っているかどうかをチェックすることによって、ユーザにアクセス権があるかどうかを決定することを含んでもよい。
ある実施形態では、ステップ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は、アクセス情報をチェックすることなく、入力の要求を満たすように進めてもよい。
ステップ620において、API管理システム310は、インタフェースまたは電子メール、メッセージまたは他の特定の通信ツールを介して、ドキュメンテーションを取得する前に、ユーザがAPIにリクエストを送ることをAPIが必要としていることをユーザに通信することができる。
ステップ625において、ユーザがターゲットAPIに要求を送信する場合、API管理システム310は、ネットワーク320を介して、ターゲットAPIまたはターゲットAPIが関連付けられているコンピュータシステムによる通知を受信することができる。API管理システム310は、ステップ630に進むことができる。API管理システム310が、一定期間後に、ユーザがターゲットAPIに要求を送信していないと判断した場合、API管理システム310は、ステップ645に進み、アクセスを拒否してもよい。いくつかの実施形態では、API管理システム310は、期間の長さを決定するために、ターゲットAPIに関連付けられたデータベース330に格納されたルールのセットを調べることができる。いくつかの他の実施形態では、API管理システム310は、期間の長さを指定して、メモリ内またはデータベース330内に遠隔的に記憶された命令を有することができる。
ステップ630において、API管理システム310は、ターゲットAPIまたはコンピュータシステムから、ターゲットAPIがターゲットAPIに関連付けられていること、またはコンピュータシステムがユーザへのアクセスを承認したことの承認を受け取ることができる。承認を受け取ると、API管理システム310はステップ635に進むことができる。API管理システム310が、一定期間後に承認を受けていない場合、または否認を受けていない場合、API管理システム310は、ステップ645において、アクセス拒否に進むことができる。
ステップ635において、API管理システム310は、ターゲットAPIの文書をユーザデバイスに提供することができる。文書は、どの部分が有用かを見つけるためにユーザの多くの時間と労力を必要とする膨大な量のものである可能性がある。API管理システム310は、ターゲットAPIのほんの一部に関連するドキュメンテーションをユーザデバイスに提供するための命令を自動的に実行することによって、このプロセスの効率を向上させることができ、これにより、ユーザは、ターゲットAPIまたはドキュメンテーションのどの部分が必要かを特定するための多くの時間と労力を節約することができる。したがって、いくつかの実施形態では、API管理システム310は、ターゲットAPIの一部のドキュメンテーションをユーザデバイスに提供することができる。いくつかの実施形態では、API管理システム310は、ユーザが選択するためのターゲットAPIの1つまたは複数の部分をユーザデバイスに提供することができる。API管理システム310は、ユーザが必要な部分を選択するのを支援するために、APIの部分に関連する情報をメモリに記憶するか、データベース330に遠隔的に記憶することができる。
いくつかの実施形態では、ターゲット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の絞り込み部分に関連する情報を検索する。
ステップ635において、ターゲットAPIの部分が決定された後、API管理システム310は、ターゲットAPIのその部分に関連するドキュメンテーションをユーザデバイスに提供することができる。ターゲットAPI全体の文書化が必要であると判断された場合、API管理システム310は、文書全体を提供することができる。
ステップ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のドキュメンテーションおよび補足ソースコードを生成することもできる。
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に関連するユーザ文書、ソースコード、および補足ソースコードを提供することに進むことができる。
本開示は、その特定の実施形態を参照して示され、説明されてきたが、本開示は、修正なしに、他の環境において実施され得ることが理解され得る。前述の説明は、例示の目的で提示されている。これは、網羅的ではなく、開示された正確な形態または実施形態に限定されない。当業者であれば、開示された実施形態の明細書および実施を考慮することにより、修正および適応が明らかであろう。さらに、開示された実施形態の態様は、メモリに格納されるものとして説明されているが、当業者は、これらの態様が、例えば、ハードディスクまたはCD ROM、あるいは他の形態のRAMまたはROM、USB媒体、DVD、ブルーレイ、または他の光学ドライブ媒体などの二次記憶デバイスなどの他のタイプのコンピュータ可読媒体に格納されてもよいことを理解することができる。
記載された説明および開示された方法に基づくコンピュータプログラムは、熟練した開発者の技術の範囲内である。様々なプログラムまたはプログラムモジュールは、当業者に知られている技法のいずれかを使用して作成することができ、または既存のソフトウェアに関連して設計することができる。例えば、プログラム・セクションまたはプログラム・モジュールは、Net Framework、.NetCompact Framework (およびVisual Basic、C などの関連言語)、Java、C++、Objective−C、HTML、HTML/AJAXの組み合わせ、XML、またはJava アプレットを含むHTML内で、または、これらによって設計されてもよい。
さらに、例示的な実施形態が本明細書で説明されてきたが、本開示に基づいて当業者によって理解されるように、同等の要素、修正、省略、組み合わせ(例えば、様々な実施形態にわたる態様の)、適応、および/または変更を有する任意のおよびすべての実施形態の範囲。クレームの限定は、クレームに使用されている文言に広く基づいて解釈されるものとし、本明細書に記載されている例に限定されるものではなく、又は出願手続中に解釈されるものとする。実施例は、非排他的であると解釈されるべきである。さらに、開示された方法のステップは、ステップを並べ替えること、および/またはステップを挿入または削除することを含む、任意の方法で修正されてもよい。したがって、本明細書および実施例は、単に例示的なものとみなされ、真の範囲および精神は、以下の特許請求の範囲およびそれらの均等物の全範囲によって示されることが意図される。

Claims (20)

  1. アプリケーションプログラミングインターフェース(API)情報を管理するためのコンピュータ実装システムであって、
    少なくとも1つのプロセッサと、
    APIと関連付けられたデータを格納するAPIデータベースであって、
    各APIは、少なくとも1つのコンピュータシステムと関連付けられ、
    各コンピュータシステムは、それぞれのAPIを介して、前記コンピューティングシステムの他のコンピュータシステムと接続可能である、APIデータベースと、
    命令を含む少なくとも1つのメモリと、を備え、
    前記命令が前記少なくとも1つのプロセッサによって実行されると、前記命令は前記プロセッサに動作を実行させ、この動作は、
    第1コンピュータシステムに関連付けられたユーザデバイスから、第2コンピュータシステムのアイデンティティーを含まない入力を受け取ること、
    ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連付けられたAPIを除外すること、
    前記入力に基づいて、前記第2コンピュータシステムのAPIであるターゲットAPIを決定すること、
    前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有するか否かを判定すること、
    前記ユーザが前記ターゲットAPIへのアクセスを有すると判定された場合、前記APIデータベースから前記ターゲットAPIのドキュメンテーションを取得すること、および、
    前記取得した前記ターゲットAPIのドキュメンテーションを前記ユーザデバイスに提供すること、を含む、システム。
  2. 前記入力は、前記APIをソートするために用いられる少なくとも1つの条件を含む、請求項1に記載のコンピュータ実装システム。
  3. 前記APIデータベースは、検索履歴を記憶し、
    前記動作は、さらに、前記ユーザの入力を前記検索履歴に記録することを含む、請求項1に記載のコンピュータ実装システム。
  4. 前記ターゲットAPIを決定することは、前記APIデータベースにおけるどのAPIが前記入力の前記少なくとも1つの条件を満たすかを判定することを含む、請求項3に記載のコンピュータ実装システム。
  5. 前記どのAPIが前記少なくとも1つの条件を満たすかを判定することは、
    前記入力を満たすAPIから前記ターゲットAPIを選択したユーザに基づいて判定すること、
    前記入力を満たすAPIの使用の記録に基づいて判定すること、または
    前記検索履歴に基づいて判定すること、
    の少なくとも1つを含む、請求項4に記載のコンピュータ実装システム。
  6. 前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有するか否かを判定することは、前記APIデータベースに格納された前記ターゲットAPIと関連付けられたデータから、前記ターゲットAPIが全ユーザに対してオープンであること、または、前記ユーザに対してオープンであることを判定することを含む、請求項1に記載のコンピュータ実装システム。
  7. 前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有するか否かを判定することは、前記ターゲットAPIと通信してユーザパーミッションを判定することを含む、請求項1に記載のコンピュータ実装システム。
  8. 前記動作は、さらに、
    前記ユーザのために前記ターゲットAPIと関連付けられた第1ソースコードを生成することと、
    前記第1ソースコードを前記ユーザデバイスに提供することと、を含む、請求項1に記載のコンピュータ実装システム。
  9. 前記第1ソースコードを生成することは、さらに、
    前記ユーザ入力に基づいて、前記ターゲットAPIの一部を決定することと、
    前記ターゲットAPIの一部と関連付けられた前記第1ソースコードを生成することと、を含む、請求項8に記載のコンピュータ実装システム。
  10. 前記ターゲットAPIの一部を決定することは、さらに、前記ターゲットAPIの一部をユーザが選択することに基づく、請求項9に記載のコンピュータ実装システム。
  11. 前記ターゲットAPIの一部を決定することは、さらに、
    前記ターゲットAPIの一部の選択(ここで、この選択は前記ターゲットAPIの使用の記録に追加され、この記録は前記APIデータベースに格納される)、
    前記ユーザによる前記ターゲットAPIの使用の記録、または、
    複数のユーザによる前記ターゲットAIの使用の記録、の少なくとも1つに基づく、請求項9に記載のコンピュータ実装システム。
  12. 前記出力コードを生成することは、さらに、前記ターゲットAPIとは異なる少なくとも1つのAPIと関連付けられた補足のソースコードを生成することを含み、
    前記補足のソースコードは、前記第1ソースコードに追加される、請求項9に記載のコンピュータ実装システム。
  13. 前記ターゲットAPIとは異なる少なくとも1つのAPIは、
    前記ターゲットAPIと関連付けられた前記データ、
    前記ターゲットAPIと関連付けられた前記ドキュメンテーション、または、
    前記ユーザによる前記ターゲットAPIの使用の記録、
    の少なくとも1つによって決定される、請求項12に記載のコンピュータ実装システム。
  14. 前記動作は、さらに、入力に基づいて、前記APIデータベースにおけるAPIのリストを前記ユーザデバイスに提供することを含む、請求項1に記載のコンピュータ実装システム。
  15. それぞれが少なくとも1つのコンピュータシステムと関連付けられたアプリケーションプログラミングインターフェース(API)と関連付けられ、APIデータベースに格納されるAPIデータを管理するためのコンピュータ実装方法であって、
    第1コンピュータシステムに関連付けられたユーザデバイスから、第2コンピュータシステムのアイデンティティーを含まない入力を受け取ること、
    ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連付けられたAPIを除外すること、
    前記入力に基づいて、前記第2コンピュータシステムのAPIであるターゲットAPIを決定すること、
    前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有することを判定すること、
    前記ユーザが前記ターゲットAPIへのアクセスを有すると判定された場合、前記APIデータベースから前記ターゲットAPIのドキュメンテーションを取得すること、および、
    前記取得した前記ターゲットAPIのドキュメンテーションを前記ユーザデバイスに提供すること、を含む、方法。
  16. さらに、
    前記ユーザのために前記ターゲットAPIと関連付けられた第1ソースコードを生成することと、および、
    前記第1ソースコードを前記ユーザデバイスに提供することと、を含む、請求項15に記載のコンピュータ実装方法。
  17. さらに、
    前記コンピュータシステムの1つのAPIを前記APIデータベースに登録するためのリクエストを受信すること、
    前記リクエストにおける前記APIと関連付けられたデータを受信すること、および、前記受信したデータを前記APIデータベースに格納することと、ならびに、
    前記リクエストに基づいて前記APIと関連付けられたドキュメンテーションを生成すること、および、前記APIデータベースに前記ドキュメンテーションを格納すること、を含む、請求項15に記載のコンピュータ実装方法。
  18. さらに、
    前記APIデータベースに格納された前記APIの1つのデータまたはドキュメンテーションを更新するリクエストを受信すること、
    前記リクエストに基づいて、前記APIの前記データまたは前記ドキュメンテーションを更新すること、および、
    前記コンピュータシステムに関連付けられたユーザデバイスに通知を送信すること、を含む、請求項15に記載のコンピュータ実装方法。
  19. さらに、前記ユーザが前記ターゲットAPIへのアクセスを有しないと判定された場合、前記ターゲットAPIまたは前記第2コンピュータシステムの少なくとも1つにリクエストを送信するよう前記ユーザに指示することを含む、請求項15に記載のコンピュータ実装方法。
  20. アプリケーションプログラミングインターフェース(API)情報を管理するためのコンピュータ実装システムであって、
    少なくとも1つのプロセッサと、
    APIと関連付けられたデータを格納するAPIデータベースであって、
    各APIは、少なくとも1つのコンピュータシステムと関連付けられ、
    各コンピュータシステムは、それぞれのAPIを介して、前記コンピューティングシステムにおける他のコンピュータシステムと接続可能である、APIデータベースと、
    命令を含む少なくとも1つのメモリと、を備え、
    前記命令が前記少なくとも1つのプロセッサによって実行されると、前記命令は前記プロセッサに動作を実行させ、この動作は、
    第1コンピュータシステムに関連付けられたユーザデバイスから、第2コンピュータシステムのアイデンティティーを含まない入力を受け取ること、
    ユーザのパーミッションレベルに応じて、前記ユーザデバイスのユーザにアクセスできないコンピュータシステムに関連付けられたAPIを除外すること、
    前記入力に基づいて、前記第2コンピュータシステムのAPIであるターゲットAPIを決定すること、
    前記ユーザデバイスのユーザが前記ターゲットAPIへのアクセスを有するか否かを判定すること、
    前記ユーザが前記ターゲットAPIへのアクセスを有すると判定された場合、前記APIデータベースから前記ターゲットAPIのドキュメンテーションを取得すること、
    前記取得した前記ターゲットAPIのドキュメンテーションを前記ユーザデバイスに提供すること、
    前記コンピュータシステムの1つのAPIを前記APIデータベースに登録するためのリクエストを受信すること、
    前記APIと関連付けられたデータを前記APIデータベースに格納することと、
    前記リクエストに基づいて前記APIと関連付けられたドキュメンテーションを生成すること、および、前記データベースに前記ドキュメンテーションを格納すること、
    前記APIデータベースに格納された前記APIの1つのデータまたはドキュメンテーションを更新するためのリクエストを受信すること、
    前記リクエストに基づいて、前記APIの前記データまたは前記ドキュメンテーションを更新すること、および、
    前記リクエストに応答して、前記コンピュータシステムに関連付けられたユーザデバイスに通知を送信すること、を含む、システム。
JP2020537740A 2019-03-11 2020-03-10 アプリケーションプログラミングインターフェース情報を管理するためのシステムおよび方法 Active JP6971404B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/298,617 US10467062B1 (en) 2019-03-11 2019-03-11 Systems and methods for managing application programming interface information
US16/298,617 2019-03-11
PCT/IB2020/052070 WO2020183371A1 (en) 2019-03-11 2020-03-10 Systems and methods for managing application programming interface information

Publications (2)

Publication Number Publication Date
JP2021513133A true JP2021513133A (ja) 2021-05-20
JP6971404B2 JP6971404B2 (ja) 2021-11-24

Family

ID=68392034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020537740A Active JP6971404B2 (ja) 2019-03-11 2020-03-10 アプリケーションプログラミングインターフェース情報を管理するためのシステムおよび方法

Country Status (9)

Country Link
US (3) US10467062B1 (ja)
JP (1) JP6971404B2 (ja)
KR (3) KR102236318B1 (ja)
CN (1) CN110968626B (ja)
AU (1) AU2020238942B2 (ja)
PH (1) PH12020551788A1 (ja)
SG (1) SG11202011424QA (ja)
TW (1) TWI743699B (ja)
WO (1) WO2020183371A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230072258A (ko) * 2021-11-17 2023-05-24 주식회사 토브데이터 데이터베이스에 대한 api 기반의 접근 제어 시스템 및 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467062B1 (en) * 2019-03-11 2019-11-05 Coupang, Corp. Systems and methods for managing application programming interface information
US20210182770A1 (en) * 2019-12-13 2021-06-17 Coupang, Corp. Systems and methods for automated delivery worker scheduling
US10783174B1 (en) 2020-03-20 2020-09-22 Coupang Corp. Systems and methods for collection, management, and distribution of data using a crowdsourced knowledge database
CN113497735A (zh) * 2020-04-08 2021-10-12 中兴通讯股份有限公司 开放接口的管理方法、电子设备以及存储介质
US11687640B2 (en) * 2020-07-17 2023-06-27 Jpmorgan Chase Bank, N.A. Method and apparatus for automating process of receiving verification documentation
CN112506587B (zh) * 2020-11-26 2023-03-24 深圳软通动力信息技术有限公司 Api部署监控的方法、系统、电子装置和存储介质
US11531525B2 (en) * 2021-04-23 2022-12-20 Jpmorgan Chase Bank, N.A. System and method for packaging standalone application modules into re-usable application and infrastructure resources
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
CN113791780A (zh) * 2021-08-31 2021-12-14 东风柳州汽车有限公司 物料配送信息展示方法、装置、设备及存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5915106A (en) * 1997-03-20 1999-06-22 Ricoh Company, Ltd. Method and system for operating a scanner which emulates a disk drive
US6405216B1 (en) 1999-09-17 2002-06-11 International Business Machines Corporation Internet-based application program interface (API) documentation interface
US7444314B2 (en) * 2003-12-01 2008-10-28 International Business Machines Corporation Methods and apparatus for business rules authoring and operation employing a customizable vocabulary
EP2333657A1 (en) * 2004-01-15 2011-06-15 Topcoder, Inc. System and methods for software development
US7788640B2 (en) * 2004-12-28 2010-08-31 Microsoft Corporation Using code analysis to generate documentation
US7801880B2 (en) 2005-03-29 2010-09-21 Microsoft Corporation Crawling databases for information
US8332817B2 (en) * 2005-11-08 2012-12-11 Red Hat, Inc. Certifying a software application based on identifying interface usage
US7596540B2 (en) * 2005-12-01 2009-09-29 Exent Technologies, Ltd. System, method and computer program product for dynamically enhancing an application executing on a computing device
US7895579B2 (en) * 2006-06-16 2011-02-22 Microsoft Corporation Automated method and system for collecting and reporting API performance profiles
US8458802B2 (en) * 2011-04-02 2013-06-04 Intel Corporation Method and device for managing digital usage rights of documents
US8510762B1 (en) * 2011-10-12 2013-08-13 Google Inc. Generate custom client library samples based on a machine readable API description
US9077773B2 (en) * 2011-11-17 2015-07-07 Mashape, Inc. Cloud-based hub for facilitating distribution and consumption of application programming interfaces
US8990839B2 (en) * 2013-04-22 2015-03-24 Microsoft Technology Licensing, Llc Controlling runtime access to application programming interfaces
US9442700B2 (en) * 2013-09-30 2016-09-13 MuleSoft, Inc. API notebook tool
US9292363B2 (en) * 2014-03-05 2016-03-22 International Business Machines Corporation Predicting application programming interface consumption using social networks
US20170102925A1 (en) * 2014-03-26 2017-04-13 Syed Adeel Ali Automatch process and system for software development kit for application programming interface
CN104156468B (zh) * 2014-08-22 2018-09-04 北京智谷睿拓技术服务有限公司 Api推荐方法及api推荐装置
US9396091B2 (en) * 2014-09-29 2016-07-19 Sap Se End-to end, lifecycle aware, API management
US10284620B2 (en) * 2015-03-27 2019-05-07 Ca, Inc. Graphical mapping of application programming interface parameters
US9741078B2 (en) * 2015-12-03 2017-08-22 Aon Singapore Centre For Innovation, Strategy And Management Pte., Ltd. Dashboard interface, platform, and environment for automated negotiation, benchmarking, compliance, and auditing
JP2019521449A (ja) * 2016-03-31 2019-07-25 ジボ インコーポレイテッド 永続的コンパニオンデバイス構成及び配備プラットフォーム
CN109564558A (zh) 2016-06-10 2019-04-02 利奇得公司 数据存储系统中的多端口插入器架构
US11074067B2 (en) * 2017-07-27 2021-07-27 Tibco Software Inc. Auto-generation of application programming interface (API) documentation via implementation-neutral analysis of API traffic
US10545730B2 (en) * 2018-05-07 2020-01-28 Red Hat, Inc. Automatically generating code for application programming interfaces
CN108959076A (zh) 2018-06-25 2018-12-07 浙江网新恒天软件有限公司 一种api在线调试方法
US10761838B2 (en) * 2018-07-31 2020-09-01 Dell Products L.P. Generating unified and dynamically updatable application programming interface documentation from different sources
US11042427B2 (en) * 2018-10-31 2021-06-22 Fujitsu Limited Automated consolidation of API specifications
US10467062B1 (en) * 2019-03-11 2019-11-05 Coupang, Corp. Systems and methods for managing application programming interface information

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230072258A (ko) * 2021-11-17 2023-05-24 주식회사 토브데이터 데이터베이스에 대한 api 기반의 접근 제어 시스템 및 방법
KR102584597B1 (ko) * 2021-11-17 2023-10-05 주식회사 토브데이터 데이터베이스에 대한 api 기반의 접근 제어 시스템 및 방법

Also Published As

Publication number Publication date
AU2020238942B2 (en) 2021-06-17
SG11202011424QA (en) 2020-12-30
TWI743699B (zh) 2021-10-21
CN110968626B (zh) 2023-10-24
JP6971404B2 (ja) 2021-11-24
US11755386B2 (en) 2023-09-12
KR20200108753A (ko) 2020-09-21
US20200293384A1 (en) 2020-09-17
PH12020551788A1 (en) 2021-06-21
US20210240549A1 (en) 2021-08-05
KR20220018537A (ko) 2022-02-15
US10467062B1 (en) 2019-11-05
WO2020183371A1 (en) 2020-09-17
TW202046092A (zh) 2020-12-16
KR102236318B1 (ko) 2021-04-06
CN110968626A (zh) 2020-04-07
AU2020238942A1 (en) 2020-11-19
KR102359069B1 (ko) 2022-02-08
US10956233B2 (en) 2021-03-23
KR20210038524A (ko) 2021-04-07

Similar Documents

Publication Publication Date Title
JP6971404B2 (ja) アプリケーションプログラミングインターフェース情報を管理するためのシステムおよび方法
KR20200116834A (ko) 전자적 재고 추적 시스템 및 연관된 사용자 인터페이스
KR102430347B1 (ko) 제품 특성에 기초한 제품 가격 결정으로 재고를 관리하기 위한 컴퓨터화된 시스템 및 방법
TW202209241A (zh) 用於將包裹再度遞送至顧客的系統及方法
KR102523469B1 (ko) 반송된 제품의 등급을 매김으로써 재고를 관리하기 위한 컴퓨터 시스템 및 방법
TW202238417A (zh) 用於管理與監控服務及模組的電腦實行系統以及方法
WO2022029506A1 (en) Computerized systems and methods for generating and modifying data for module implementation
TW202121277A (zh) 用於將包裹遞送至顧客的電腦實行的系統以及方法
KR20210071912A (ko) 자동화된 모바일-디바이스 기반의 작업 주기 트레이딩을 위한 시스템들 및 방법들
KR102422808B1 (ko) 반환 사기 감지 및 예방을 위한 시스템 및 방법
KR102335147B1 (ko) 크라우드 소싱된 지식 데이터베이스를 이용한 데이터의 수집, 관리, 및 분배를 위한 시스템 및 방법
KR20220103612A (ko) 제품 추천을 생성하기 위해 인공 지능을 사용하는 컴퓨터 시스템 및 방법
TWI760043B (zh) 詐欺偵測與使用者帳號去除重複之電腦化系統以及方法
KR102402074B1 (ko) 이벤트 저장 관리를 위한 시스템 및 방법
TW202143131A (zh) 用於線上顧客協助的電腦實行系統及電腦實行方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200925

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210312

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210922

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211101

R150 Certificate of patent or registration of utility model

Ref document number: 6971404

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150