JP2022027493A - タスク実行のための方法及びシステム - Google Patents

タスク実行のための方法及びシステム Download PDF

Info

Publication number
JP2022027493A
JP2022027493A JP2021106629A JP2021106629A JP2022027493A JP 2022027493 A JP2022027493 A JP 2022027493A JP 2021106629 A JP2021106629 A JP 2021106629A JP 2021106629 A JP2021106629 A JP 2021106629A JP 2022027493 A JP2022027493 A JP 2022027493A
Authority
JP
Japan
Prior art keywords
task
api
task object
api call
placeholder
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.)
Pending
Application number
JP2021106629A
Other languages
English (en)
Inventor
バーラミ・メフディ
Mehdi Bahrami
チェン・ウェイ-ペン
Wei-Peng Chen
チャフィキ・ウサマ
Chafiqui Oussama
クチャディ・ニティヤ
Kuchadi Nithya
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2022027493A publication Critical patent/JP2022027493A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/445Program loading or initiating
    • 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
    • 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
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】APIに関係があるタスクのためのタスク実行の方法等を提供する。【解決手段】方法は、実行のための、APIに関係があるタスクオブジェクトの選択を受け取り、タスクオブジェクトがタスクオブジェクト内のプレースホルダー値を含むかどうかを決定し、タスクオブジェクトがプレースホルダー値を含むことに基づいて、タスクオブジェクトで記述されているプレースホルダー値に関するユーザ入力をユーザがサブミットするためのインターフェースを生成することを含む。方法はまた、プレースホルダー値を、インターフェースを介して受け取られたユーザ入力に基づく新しい値で置換することと、新しい値を含む、APIへのAPIコールを、対象のプログラミング言語で生成することとを含む。方法はまた、実行のために、生成されたAPIコールをターゲットプラットフォーム上でデプロイし、APIコールの結果を取得することを含む。【選択図】図8

Description

本開示の実施形態は、アプリケーションプログラミングインターフェース(Application Programming Interface,API)に関係があるタスクのためのタスク生成、タスク実行、及びタスク結合に関する。
APIは、別のコンピュータシステムの機能がアクセス及び/又は呼び出しされることを可能にする便利なメカニズムである。例えば、そのような機能は、データベースによってアクセスされたり、インターネット・オブ・シングス(Internet of Things,IoT)デバイスによってアクセスされたり、などするソフトウェアプロジェクトに組み込まれ得る。しかし、そのようなAPIは、所望の機能を実行するために常に最初にセットアップされるわけではない。
本開示の1つ以上の実施形態は、タスクオブジェクトが生成されるべきであるアプリケーションプログラミングインターフェース(API)の選択を受け取ることと、タスクオブジェクトで使用されるパラメータのアレイを取得することとを含み、パラメータのアレイ内の各要素が、定数値、プレースホルダー値、又はそれらの組み合わせのうちの1つ以上を含み、プレースホルダー値が、タスクオブジェクトの実行中にプレースホルダー値を置換するユーザ入力を引き出すプログラミングを含む、方法を含んでよい。方法はまた、パラメータのアレイを、タスクオブジェクトを実行するAPIのための他の情報と組み合わせて、タスクオブジェクトにすることと、タスクオブジェクトをタスクオブジェクトデータベースに格納することとを含んでもよい。
本開示の1つ以上の実施形態は、実行のための、APIに関連したタスクオブジェクトの選択を受け取ることと、タスクオブジェクトがタスクオブジェクト内のプレースホルダー値を含むかどうかを決定することと、タスクオブジェクトがプレースホルダー値を含むことに基づいて、タスクオブジェクトで記述されているプレースホルダー値に関するユーザ入力をユーザがサブミットするためのインターフェースを生成することとを含む方法を含んでよい。方法はまた、プレースホルダー値を、インターフェースを介して受け取られたユーザ入力に基づく新しい値で置き換えることと、対象のプログラミング言語でAPIへのAPIコールを生成することとを含んでもよく、APIコールは新しい値を含む。方法はまた、生成されたAPIコールを実行のためにターゲットプラットフォーム上でデプロイすることと、APIコールの結果を取得することとを含んでもよい。
本開示の1つ以上の実施形態は、1つ以上のタスクから成功した応答の組を取得することを含み、1つ以上のタスクがAPIコールの特定の実施を含む、方法を含んでよい。方法はまた、1つ以上のタスクのうちの第1のタスクに応答する第1応答から情報を取り出すことによって、成功した応答の組のうちの第1応答の第1スキーマを生成することを含んでもよい。方法は更に、第1スキーマを、成功した応答の組のうちの第2応答の第2スキーマとともに、第1スキーマ及び第2スキーマに学習モデルを適用することによってクラスタ化することであり、クラスタ化は、少なくとも第1タスクへの入力及び第1応答に基づく、ことと、第1タスクと、第2応答が応答する第2タスクとを含む統合タスクを、第1スキーマ及び第2スキーマのクラスタ化に基づき生成することを含んでもよい。
実施形態の目的及び利点は、少なくとも、特許請求の範囲で特に指し示されている要素、特徴、及び組み合わせによって、実現及び達成される。
上記の概要及び下記の詳細な説明は両方とも、単に例示及び説明であって、限定ではないことが理解されるべきである。
添付の図面を使用して、更なる特定及び詳細をもって、例となる実施形態について記載及び説明する。
タスクの生成、実行、及び/又は結合を含み得る、APIに関連したタスクとともに使用されるシステムの例を表す図である。 タスクのコンピュータ読み取り可能な表現の例を表す。 タスクのカテゴリを選択するためのユーザインターフェースの例を表す。 タスク生成で使用されるユーザインターフェースの例を表す。 タスク生成で使用されるユーザインターフェースの例を表す。 タスク実行で使用されるユーザインターフェースの例を表す。 タスク実行で使用されるユーザインターフェースの例を表す。 タスクの結合の例の視覚表現の例を表す。 タスクの結合の例の視覚表現の例を表す。 タスクの結合の例の視覚表現の例を表す。 タスク生成の方法の例のフローチャートの例を表す。 タスク実行の方法の例のフローチャートの例を表す。 タスク実行の方法の他の例のフローチャートの例を表す。 タスク実行の方法の更なる例のフローチャートの例を表す。 タスク結合の方法の例のフローチャートの例を表す。 成功したタスク実行の応答に基づきスキーマを生成する方法の例のフローチャートの例を表す。 例となるコンピュータシステムを表す。
本開示は、単にタスクとも呼ばれ得るタスクオブジェクトの生成、実行、及び/又は結合に関係がある。タスクは、コンピュータシステムに、特定の目的を達成すべく特定の機能を実行するようAPIの特定の実施を実装させるコンピュータ読み出し可能な命令の組によって表されてよく、プロセスへのユーザ入力を含んでも又は含まなくてもよい。例えば、ユーザは、電子メールアカウントにアクセスする際にAPIサービスを許可する電子メールサービスから、25個の最近の未読メールにアクセスしたいと望むことがある。例を続けると、タスクは、取得すべき最近の未読メールのうちの何通を取得すべきかを識別し、電子メールサービスにアクセスするためにAPIコールを呼び出し、APIコールの結果を提供するプログラミングコードを含んでよい。他の例として、ユーザは、姓が「スミス」である連絡先を抜き取りたいと望むことがあり、電子メールサービスは、ユーザの関連するアドレス帳にアクセスするためにAPIコールを提供してよい。例を続けると、タスクは、APIコールを呼び出し且つ/あるいは関連する電子メールアカウントにアクセスするためにクレデンシャルを確かめるプログラミングコードを含んでよい。タスクは、追加的に、又は代替的に、姓に関するユーザ入力を受け取り、連絡先を取得するためにアドレス帳にアクセスするプログラミングコードを含んでもよい。このようなタスクの実施によって、既存のAPIの上に機能が構築されてよく、それにより、ユーザが特定のAPIの動作のコンピュータプログラミング知識を有していようとなかろうと、そのような機能へのアクセスがユーザに提供され得る。
タスク生成中に、アドミニストレータは、ユーザにより識別された数の最近の電子メールを取り出すことといったタスクの目的を達成すべく実行されるべきAPIコールの特定の実施を識別することを可能にされる。いくつかの実施形態で、タスクは、タスクの任意のユーザ入力要素(例えば、電子メールの数又は連絡先の姓、など)のためのプレースホルダー値を含んでよい。例えば、タスク生成中に、アドミニストレータ又は他のユーザは、ユーザ入力値によって置換されるべきプレースホルダー値を提供してよい。そのようなアプローチを使用することによって、各タスクは、生成された後に、たとえデータの組の例(例えば、プレースホルダー値を使用する、など)に対してであったとしても、APIコールが所望のタスクを達成すべく呼び出され得るコードの組を表し得る。タスクは、プレースホルダー値を置換することを容易にするようユーザ入力を取得するためにユーザインターフェースが生成されるようにするコードを含んでよい。追加的に、又は代替的に、アドミニストレータは、範囲、権限タイプ、及び/又はクレデンシャル、任意の定数値などのような、タスクに関連した様々な他の情報を含んでもよい。
タスク実行中に、ユーザは、実行のためのタスクを識別してよい。そのような実行は、ローカルで、又は対象となる環境で(例えば、特定のプログラミング言語で、クラウドベースのサービスで、などで)実行されてよい。タスクは、タスクの任意のプレースホルダー値をユーザ入力値で置換することを容易にするために、ユーザが入力を供給し得るインターフェースを実行し、ユーザに提供してよい。タスク実行の応答(例えば、APIコールの特定の実施の結果)は、ユーザへ返されてよい。いくつかの実施形態で、応答は、他の使用のために記憶されてよい。
タスク結合中に、所与のタスクの応答のスキーマ(例えば、階層/関係データ表現)が生成されてよい。例えば、応答の様々な要素(例えば、キー値対、ディクショナリ、リスト、など)は、実行されたタスクの応答のコンピュータ読み取り可能な表現を生成するよう処理されてよい。いくつかの実施形態で、タスク及び/又はスキーマは、応答、タイトル、入力、などのような因子に基づき機械学習モデルによりクラスタ化されてよい。タスクのクラスタを用いて、複数のタスクは単一の統合されたタスクに結合され得る。例えば、統合されたタスクは、2つのタスクが統合されたタスク全体を実行するよう協働するように、一方のタスクからの応答(又は応答の部分)を、他方のタスクのプレースホルダー値のための置換として利用してよい。いくつかの実施形態で、ユーザ入力は、第1タスク内のプレースホルダーを置換するために利用されてよく、第1タスクの結果及び追加のユーザ入力の両方は、第2タスク内のプレースホルダー値を置換するために使用されてよい。
いくつかの状況で、本開示の実施形態は、本開示の教示を適用することによってコンピュータの性能の改善を助けることができる。例えば、タスクの生成、使用、及び/又は結合を提供することによって、APIは、コンピュータデバイスが従前実行することができなかった方法で利用され得る。例えば、従前利用不可能であった機能が、既存のAPIの上に加えられて達成され得る。更には、改善されたユーザ経験が取得され得、これによって、APIの機能は、さもなければ特定の目的に近づくために使用される可能性があるコンピュータプログラミング訓練なしで、個人がアクセス可能な方法で、タスクを介して特定の目的を達成するようデプロイされ得る。例えば、アクセス可能である特定のユーザインターフェースは、プログラミング経験がなくても、提供され得る。更なる例として、特定のAPIコールを介してしか従前アクセスできなかった特定のデータ、デバイス、及び/又は他のリソースは、異なった、より便利且つアクセス可能な方法でアクセスされ得る。例えば、コンピュータプログラミング訓練を有さないエンドユーザは、API仕様又はAPIに関する他の人間が読むことができる文書若しくはウェブサイトなどの、APIに関連するドキュメンテーションを読むことが可能であり得るが、エンドユーザは、所望の目的を達成すべくAPIを実装するために必要とされる訓練を有さなくてもよい。本開示の1つ以上の実施形態に従うタスクは、APIにアクセスするそのようなエンドユーザがタスクを介して所望の目的を達成することを助け得る。更なる例として、ユーザは、APIのためのコード及び入力が実行のために既に集められ結合され得るということで、実行速度の向上を観測し得る。
添付の図面を参照して、1つ以上の例となる実施形態について説明する。
図1は、本開示の1つ以上の実施形態に従って、タスク生成、タスク実行、及び/又はタスク結合を容易にするための、例となるシステム100を表す図である。システム100は、タスクを生成、実行、及び/又は結合するために使用されるタスクシステム110を含んでよい。アドミニストレータ120は、タスクを生成するために及び/又はタスクの結合を促すためにタスクシステム110と相互作用してよい。エンドユーザ130は、実行のためのタスクを選択するようタスクシステム110と相互作用してよい。1つ以上のAPI仕様140は、タスクシステム110によって、様々なAPIに関する情報を取得するためにアクセスされてよい。APIホスト150は、関連するAPIの機能を呼び出すようタスクを実行するときにアクセスされてよい。クラウドシステム160(例えば、クラウドシステム160a/160b)は、タスクによって所与のタスクを実行するよう呼び出され得るリモートシステムに相当してよい。
[タスク生成]
タスクシステム110は、API仕様140の1つ以上を取得し、API仕様140から情報をパースし、解析し、又は別なふうに取得してよい。例えば、タスクシステム110は、所与のAPIについてのOpenAPI仕様(OpenAPI Specification,OAS)にアクセスしてよく、APIがアクセスされ得るエンドポイントと、APIコールを実行するときに使用されるハイパーテキスト転送プロトコル(HTTP)動詞と、APIを呼び出すときに使用されるクエリ入力、ヘッダ入力、パス入力、及び/又は本文入力などの、APIで使用される1つ以上の入力とを識別してよい。このような及び他の実施形態で、API名、ユニフォーム・リソース・ロケータ(Uniform Resource Locator,URL)、又はAPIを識別する他の情報などの、APIの夫々の識別子は、API仕様140から取得されてよい。OASがAPI仕様140のフォーマットの一例として与えられている一方で、明らかなように、ウェブサービス定義言語(Web Service Definition Language,WSDL)などの、如何なるフォーマット又はスタイルも、API仕様140のために使用されてよい。
いくつかの実施形態で、タスクシステム110は、タスクのテンプレートを生成するために、API仕様140から取得された情報を利用してよい。例えば、APIコールのヘッダ、本文、入力割り当て、認証プロトコル、などの側面は、APIコールが実行されるたびに同じであってよく、そのような入力及び/又は他のコンポーネントはタスクテンプレートに含まれてよい。
いくつかの実施形態で、1つ以上のAPIは、新しいタスクが生成されることと関連付けられるAPIの選択のためにアドミニストレータ120に提示されてよい。そのような提示を説明するインターフェースの例は、図3に表されている。いくつかの実施形態で、アドミニストレータ120は、テンプレート(又はテンプレートとしての既存のタスク)を選択したり、タスクのために使用されるAPIとしてAPIを選択したり、などしてよい。使用されるAPIを選択した後、アドミニストレータ120は、タスクの目的を達成すべくAPIを実装する際に使用される様々なパラメータを選択及び/又は指定するようタスクシステム110と相互作用してよい。例えば、タスクシステム110は、可能性があるパラメータ及びパラメータを実装するためのオプションをアドミニストレータ120に提示するためにフォームビルダーを利用してよい。そのようなパラメータは、定数値、及び/又はユーザ入力が求められる可能性がある値を含んでよい。定数値については、アドミニストレータ120は、タスクが実行されるたびに使用される値を指定してよい。そのような値は、APIが所望の目的を達成するのを助ける入力又は指示、APIが呼び出されるパス(又はその部分)、などを含んでよい。ユーザ入力が求められる値、又はタスクを実行するときにAPIコールを生成する種々のインスタンスで変化し得る値については、アドミニストレータ120は、タスクを実行するときに置換され得るプレースホルダー値を供給してよい。プレースホルダー値を使用することによって、タスクは、たとえこれらの値がタスクの実行時に置換されるよう構成されているとしても、プレースホルダー値内のサンプルデータでさえ、APIを呼び出すための必要な全てのデータを含んでよい。このような及び他の実施形態で、パラメータは、タスクの望ましい特定の機能の達成を助けるようカスタマイズされた値を含んでよい。例えば、タスクは、呼び出されるべきAPIに基づき構築された特定の機能を達成するよう設計されてよく、パラメータは、APIコールへの入力の1つ以上としてパラメータを使用してAPIコールが生成されるときにタスクを達成する値を含んでよい。
いくつかの実施形態で、プレースホルダー値は、セキュリティトークン又は他の認証コンポーネントを含んでよい。例えば、プレースホルダー値は、タスクの実行時に更新/置換され得るユーザ名、パスワード、OAuthトークンなどを含んでよい。いくつかの実施形態で、タスクシステム110は、直接のユーザ入力なしで、タスクの実行時に自動的にトークンを更新してよい。
いくつかの実施形態で、タスクは、タスクを実行するときにエンドユーザ130へのユーザインターフェースを生成し又は別なふうに提示する要素を含んでよい。例えば、ユーザインターフェース要素は、パラメータのプレースホルダー値を置換する値を取得するためにユーザ入力を受け取ることを助けるよう生成されてよい。いくつかの実施形態で、ユーザ入力自体が、プレースホルダー値を置換するために使用される値であってもよい(エンドユーザ130は、彼らの最近の電子メールのうち何通を彼らが取り出したいかを入力することや、彼らのパスワードを入力すること、などを行ってよい。)。追加的に、又は代替的に、ユーザ入力は、置換値を取得するためのユーザ入力の何らかの処理又は使用によって置換値を生成するために、使用されてもよい(エンドユーザ130は、置換値として使用されるトークンを取得するために使用されるクレデンシャルを入力することや、スプレッドシートファイルからシートを選択すること、などを行ってよい。)。いくつかの実施形態で、パラメータの所与の値は、定数値及びパラメータ値の両方の組み合わせであってもよい。例えば(from/emailAddress/address)eq‘<?>’の、定数値及びプレースホルダーの混合が考えられ、ユーザ入力によって置換可能である<?>のプレースホルダー値が、APIコールによって入力として使用される単一パラメータとしてタスクの実行中に結合されてよい。
タスクシステム110は、タスクを生成するときに種々のタイプのパラメータを利用してよい。例えば、タスクシステム110は、タスクに関連したAPIのためのAPIコールのヘッダ内に埋め込まれ得るヘッダパラメータを利用してよい。他の例として、タスクシステム110は、APIコールの位置を識別するためにアドレス若しくはパスの全て又は一部、あるいは、APIコールを実行するときにAPIによって使用されるリソースのパスとして使用され得るパスパラメータを利用してもよい(例えば、パス/api/v2/{user_id}/post?message=‘xyz’内のフィールドuser_id)。他の例として、タスクシステム110は、APIコールを実行するときにAPIによって使用され得るクエリ文字列パラメータを利用してもよい(例えば、パス/api/v2/{user_id}post?message=‘MSG’内のフィールドMSG)。いくつかの実施形態で、クエリ文字列パラメータは、エンドユーザ入力によって置換されるプレースホルダー値を含んでよい。更なる例として、タスクシステム110は、APIコールの本文にパラメータを加えるよう構成され得る要求本文パラメータを利用してもよい。
いくつかの実施形態で、プレースホルダー値については、各プレースホルダーは、プレースホルダーの識別子、プレースホルダーのラベル(例えば、ユーザ入力を取得するためのウェブフォーム又は他のユーザインターフェースで現れるラベル)、ユーザ入力を取得するときにエンドユーザ130に提示される命令の組(例えば、期待される入力のタイプ、入力の例、など)、エンドユーザ130が選択を行う可能性がある選択肢の組(例えば、汎用的な入力についてはゼロであってよく、あるいは、ユーザが入力を供給するときに“A”と、“B”と、“C”との間で選択することができるように、“A”、“B”及び“C”を含んでよい。)、及び/又はタイプ(例えば、現在のプレースホルダーがプレースホルダー値の様々な可能性があるカテゴリのうちのどれに対応しているかを識別する。)を含んでよい。いくつかの実施形態で、プレースホルダーのタイプは、トークン(例えば、OAuth2トークン、ユーザ名、などであり、placeholder.token.oauthと指定されてよい。)、文字列(例えば、文字列がユーザからの期待される入力であることを示し、placeholder.stringと指定されてよい。)、整数(例えば、整数がユーザからの期待される入力であることを示し、placeholder.intと指定されてよい。)、デシマル(デシマルがユーザからの期待される入力であることを示し、placeholder.decimalと指定されてよい。)、数(例えば、数がユーザからの期待される入力であることを示し、placeholder.numberと指定されてよい。)、電子メール(例えば、電子メールがユーザからの期待される入力であることを示し、placeholder.emailと指定されてよい。)、URL(URLがユーザからの期待される入力であることを示し、placeholder.urlと指定されてよい。)、リスト(例えば、ユーザが1つの項目を選択する可能性があるリストが示されることを示し、placeholder.listと指定されてよい。)(リストの要素は、選択肢の組から取得されてよい。)、マルチリスト(例えば、ユーザが複数の項目を選択する可能性があるリストが示されることを示し、placeholder.multilistと指定されてよい。)(リストの要素は、選択肢の組から取得されてよい。)、及び/又はブール値(パラメータが真又は偽を入力として取得し得ることを示し、placeholder.token.booleanと指定されてよい。)を含んでよい。いくつかの実施形態で、複数の値は、APIコールのための単一の入力に結合されてよく(例えば、ブール値及び他の定数値又はプレースホルダー値)、リスト又は文字列プレースホルダーとして表されてよい。
いくつかの実施形態で、タスクシステム110は、タスクが一貫して実施され得るように、タスクを生成するときに一定のスタイル及び/又は命名規則を利用してよい。タスクオブジェクトのコンピュータ読み出し可能な実施の一例は、図2に表されている。所与のタスクは、タスクに関連したAPI仕様140の識別子、所与のエンドポイント及び/又はHTTP動詞について一意であり得るタスクタイトル(例えば、同じタスクタイトルが、異なるAPIベンダー/HTTP動詞に関連した異なるタスクに使用されてよい。)、タスクの記述的要約を与えるタスク記述、タスクによって使用されるパラメータのアレイ(例えば、タスクによって使用されるパラメータと、プレースホルダー値を含むそれらの対応する値とのリストを表すディクショナリ)、APIコールの本文内容、APIを使用するための及び/又はAPIに関連したユーザアカウントにアクセスするための認証において使用される1つ以上のトークン、タスクを実行するために使用される任意の範囲(例えば、APIにアクセスするために所与のクレデンシャルに認められた許可)、現在のタスクが生成された時のタイムスタンプ、タスクを生成したアドミニストレータ120の識別子、などのような様々な情報フィールドのうちのいずれかを含んでよい。
いくつかの実施形態で、タスクが生成された後、それは、タスクシステム110のタスクデータベース112に格納されてよい。タスクデータベース112は、実行のためのタスクを選択するためにエンドユーザ130によってアクセスされ得る生成されたタスクのリポジトリに相当し得る。追加的に、又は代替的に、アドミニストレータ120は、新しいタスクを生成するときにテンプレート又はサンプルとしてタスクデータベース112のタスクを使用してもよい。
[タスク実行]
いくつかの実施形態で、タスクシステム110は、エンドユーザ130によるタスクの実行を助けてよい。例えば、エンドユーザ130は、タスクシステム110と相互作用してよく、タスクシステム110は、タスクデータベース112のタスク(例えば、完了されているタスク)をエンドユーザ130に提示してよい。いくつかの実施形態で、エンドユーザ130は、タスクデータベース112からタスクを探す際にテキスト検索又は他のクエリを実行してよい。例えば、検索は、タスクタイトル、記述、API仕様140、APIタイトル、などの中から探し得る自然言語クエリ(Natural Language Query,NLQ)であってよい。いくつかの実施形態で、タスクシステム110は、タスクシステム110の能力、エンドユーザ130の他の検索、検証されたタスク、などに基づきタスクを提案してもよい。追加的に、又は代替的に、エンドユーザ130は、APIホスト、タスクの目的、タスクの寿命、タスクの作成者、などのようなカテゴリによってタスクの間をナビゲートしてもよい。エンドユーザ130は、実行のためのタスクを選択してよい。いくつかの実施形態で、そのような選択は、タスクデータベース112からタスクを取り出すために、タスクに関連したAPI仕様140及び/又はタスク識別子を識別してよい。
エンドユーザ130が実行のためのタスクを選択した後、タスクシステム110は、タスクを実行するようコードを生成するのに必要な全ての情報を取得するための動作を実行してよい。例えば、タスクにプレースホルダー値がある場合には、タスクシステム110は、プレースホルダー値を置換するための値を生成するために、エンドユーザ130がユーザ入力を供給し得るウェブフォーム又は他のユーザインターフェースを生成してよい。他の例として、タスクシステム110は、トークンの寿命を確認してよく、寿命が経過している場合にはトークンをリフレッシュしてよい。如何なる収集された入力及び/又はトークンも用いて、タスクシステム110は、エンドユーザ130からのユーザ入力に基づいたあらゆるものを含む、タスクからのパラメータを用いて、タスクに関連したAPIへのAPIコールを実装するためのコードを生成してよい。ユーザ入力を求めるプレースホルダー値によらないタスク実行のためのユーザインターフェースの例は、図5Aに表されており、ユーザ入力が求められるプレースホルダー値を含むタスク実行のためのユーザインターフェースの例は、図5Bに表されている。
いくつかの実施形態で、エンドユーザ130は、エンドユーザ130がAPIコールの実施を望む特定のプログラミング言語を指定してよい。例えば、エンドユーザ130は、PYTHON(登録商標)、JAVA(登録商標)、JAVASCRIPT(登録商標)、などのような言語を選択してよく、タスクシステム110は、対象のプログラミング言語に従ってAPIコールを実装するために、対応するプログラミング言語でコードを生成してよい。いくつかの実施形態で、プログラミング言語は、対象のプログラミング言語が、APIホスト150及び/又はAPIコールが向けられようとしているエンドポイントとの準拠性のために使用され得るように、APIホスト150によって選択されてよい。プログラミング言語を識別する一例は、図9で更に詳細に説明され得る。
いくつかの実施形態で、エンドユーザ130は、エンドユーザ130がタスクを実行したい及び/又はタスクのAPIコールが実行されるべきである特定のクラウドシステム160を識別してよい。例えば、エンドユーザ130は、RUNMYPROCESS(登録商標)クラウドシステム、AMAZON WEB SERVICES(登録商標)(AWS)クラウドシステム、MICROSOFT(登録商標)クラウドシステム、GOOGLE(登録商標)クラウドシステム、などの中で完全に実行されるようタスクを指定してよい。いくつかの実施形態で、ユーザ入力を取得するためのユーザインターフェースの提示を含むタスク実行の全体は、クラウドシステム160を介して実装されてよい。例えば、タスクシステム110は、クラウドシステム160aに、ユーザ入力を取得するようエンドユーザ130への提示のためのユーザインターフェースを生成させるために、クラウドシステム160aのAPIを呼び出してよい。タスクシステム110は、次いで、クラウドシステム160aを介して取得されたユーザ入力を用いて完全なAPIコールを生成してよく、完全なAPIコールは、タスクシステム110を介して実行されるのではなく、クラウドシステム160aを介したAPIコールの実行のためにクラウドシステム160aへ供給されてよい。クラウドベースのシステムでタスクを実行する一例は、図10で更に詳細に説明され得る。クラウドシステム160が一例として与えられているが、エンドユーザ130は、ローカルサーバ(例えば、タスクシステム110)、リモートサーバ(例えば、APIホスト150)、ローカルコンピュータ(例えば、タスクシステム110にアクセスするためにエンドユーザ130によって使用されるコンピュータデバイス)、などを識別してもよい。
いくつかの実施形態で、タスクの実行に基づくAPIコールの成功した実行を示す結果に基づいて、タスクは、エンドユーザ130が、実行すべきタスクを捜し出すときに、あるいは、アドミニストレータ120が、テンプレートとしてタスクを追求するときに、どのタスクが実行に成功したかを認識し得るように、タスクデータベース112内で、成功と確認されたと注釈を付けられてよい。例えば、チェックマークなどの視覚的なインジケータが、確認済みのタスクを示してもよい。いくつかの実施形態で、結果の一部又は全てがタスクデータベース112に格納されてよい。
いくつかの実施形態で、タスクを実行するときに、タスクは、タスクを実行する1つ以上の段階で使用され得るクレデンシャルを含んでよい。例えば、プレースホルダーパラメータのためのユーザ入力を取得するときに、パラメータは、APIホスト150及び/又はサードパーティコンピュータシステムにより本物であることを証明するためのユーザ名及び/又はパスワードを含んでよい。いくつかの実施形態で、プレースホルダーの1つは、OAuth及び/又はOAuth2トークンなどのAPIトークン、あるいは、任意の他のフォーマットを含んでよい。いくつかの実施形態で、ユーザインターフェースは、エンドユーザ130が、タスクシステム110へ直接にクレデンシャルを供給するのではなく、APIホスト150へ直接にクレデンシャルを供給し得るように、APIホスト150へのアクセスを供給するよう構成されてよい。例えば、サインイン又はユーザ認証のための代替のAPIコールは、タスクのためのAPIコールコードを生成することより前に、ユーザ入力の取得の部分として呼び出され又は使用されてよい。タスクを実行する一例は、図8で更に詳細に説明され得る。
いくつかの実施形態で、タスクシステム110は、REST APIを用いて実装されてよく、且つ/あるいは、REST APIは、サードパーティなどの他の外部及び/又は内部システムのためにタスクシステム110へのアクセスを供給する連絡係として動作してもよい。例えば、タスクにアクセスすること、タスクを要求すること、及びタスクを選択することは、全ての/統合されたタスクのリスト及び実行のためのタスクを取り出すGETコールなどのAPIコールとして実装されてよい。REST APIは、API及び/又はそのリストを取り出すためにタスクデータベース112と相互作用してよい。例えば、タスクが実行のために要求される場合に、タスクシステム110は、プレースホルダー値を抽出してよく、プレースホルダー情報のバージョンを、入力を供給するためにエンドユーザ130が見ることができるフォーマット(例えば、HTMLページ)でレンダリングされ得る第1フォーマット(例えば、JSON)で供給してよい。
トークン認証のためにREST APIを使用する場合に、実行のためのAPIを要求した後、トークンが失効しているか又はエンドユーザのために未だ取得されていない場合には、認証URLがユーザに伝えられてよい。ユーザは、認証URLによってアクセスされるサイトを介して認証システム(例えば、APIホスト150)と相互作用してよく、インターフェースシステムは、コールバック認証コードを取得してよく、それを用いてAPIを実行し且つ/あるいは認証システムによりトークンをリフレッシュしてよい。認証コード(例えば、OAuth2トークン)を用いて、且つ/あるいは、認証コードをリフレッシュした後、タスクシステム110は、認証コードを用いてコードを生成し且つ/あるいはAPIコールを実行し、応答をエンドユーザ130へ供給してよい。
[タスク結合]
いくつかの実施形態で、タスクシステム110は、タスクが統合されたタスクに結合され得るようにタスクを解析するために、実行されたタスクからのAPIコールの応答のうちの1つ以上を利用してよい。例えば、実行されたタスクからの応答の夫々は、タスクシステム110によってタスクデータベース112に格納されてよい。タスクシステム110は、応答を解析し、応答データを使用して所与の応答についてスキーマを生成してよい。スキーマは、一貫したフォーマットでその所与の応答のデータ表現を含んでよい。例えば、異なる応答は、異なるエンドポイントを使用する同じAPIコールについてさえ、異なる形態又はフォーマットをとってよい。タスクの実行に対して所与の応答をとる例は、図12で説明され得る。
いくつかの実施形態で、スキーマを生成するためにタスクの実行からの応答を解析する場合に、タスクシステム110は、応答のサブセットを考えてよい。例えば、タスクシステム110は、成功した応答(例えば、APIコールが成功したことを示すコードを有する応答)を考えてよい。いくつかの実施形態で、タスクの実行に対する複数又は全ての成功した応答が、関連したスキーマを生成されてよい。このような及び他の実施形態では、情報応答(例えば、プロトコルレベルの情報を供給するもの)、リダイレクション応答(例えば、認証URLがAPIコールのクライアントへ送られる場合など、APIコールのクライアントが要求を完了するためのいくつかの動作を行うべきであることを示すもの)、クライアントエラー応答(例えば、APIコールのクライアントが関与するエラーが起きたことを示すもの)、及び/又はサーバエラー応答(APIホスト150が関与するエラーが起きたことを示すもの)などのような特定の応答は、スキーマを生成するための解析から除かれてもよい。特定のAPIホスト150については、タスクの実行に対するAPI応答は、成功したAPIコールを示す2XXの形式を有するコードを含んでよい。
いくつかの実施形態で、タスクシステム110は、機械学習モデルを用いてタスク実行の応答を表すスキーマをクラスタ化してよい。例えば、機械学習モデルは、応答(例えば、値の列、電子メールアドレスの組、スプレッドシート、URL又はパス、などを含む応答)のタイプ、APIのプロバイダ、タスクの識別子、APIの識別子などのような様々な因子のいずれかに基づき応答スキーマをクラスタ化することを学んでよい。いくつかの実施形態で、応答スキーマは、応答スキーマが応答したタスクのプレースホルダー値(例えば、タスク入力)、などに基づいて機械学習モデルによってクラスタ化されてよい。このような及び他の実施形態では、クラスタ化は、いくつか又は全ての因子にわたる単一のプロセスであってよい。追加的に、又は代替的に、タスクの出力(例えば、応答スキーマ)及びタスクへの入力(例えば、プレースホルダー値)に基づいて別個のクラスタ及び/又はクラスタ化が存在してもよい。
クラスタを用いて、タスクシステム110は、複数のタスクが単一の目的を実行すべく組み合わされている統合タスクを生成してよい。例えば、一連のタスクは、統合タスクの単一の目的を達成するために独立して又は協同して動作してよい。いくつかの実施形態で、1つのタスクの入力(例えば、プレースホルダー値)は、他のタスクの出力(例えば、応答)によって、両方のタスクを含む統合タスクに書き込まれてよい。そのようなタスクの結合の様々な例は、図6A~6Cを参照して例示及び記載される。
そのような統合タスクの一例は、クラウドベースのスプレッドシートプログラムでワークシートを作成するための統合タスクを含む。ワークシートを作成するAPIエンドポイントは、スプレッドシートに対してクラウドドライブ識別子のクラウドベースのシステム内で識別子を利用してよい。別のタスクは、クラウドドライブ識別子を得るために実行可能であってよい。タスクは、統合タスク内の第1タスクがクラウドドライブ識別子を取得することができ、第2タスクが、取得されたクラウドドライブ識別子を、クラウドベースのスプレッドシートプログラムのためのワークシートをどこで作成すべきかの入力として使用することができるように、統合されてよい。
他の例として、エンドユーザ130が、クラウドベースのスプレッドシートプログラムに関連したAPIにアクセスするときに、特定のセッションを使用したいと望む場合には、第1タスクは、セッション識別子を構築し及び/又は別なふうに取得するために使用されてよく、セッション識別子は、クラウドベースのスプレッドシートプログラムによる機能を実行する第2タスクに入力として供給されてよい。
いくつかの実施形態で、タスクシステム110は、応答スキーマのクラスタに基づいて特定のタスク統合を予測又は示唆してよい。追加的に、又は代替的に、アドミニストレータ120は、統合タスクを生成するよう、第1タスクの特定のプレースホルダー値を1つ以上の他のタスクの実行からの応答の1つ以上に手動でマッピングしてよい。いくつかの実施形態で、アドミニストレータ120は、統合タスクを生成するようタスクを引き込み又は別なふうに一続きにするためにタスクシステム110のGUIを利用してもよい。
本開示の範囲から逸脱せずに、システム100に対して、変更、追加、又は削除が行われてよい。例えば、いくつかの実施形態で、システム110は、明示的に例示又は記載されていない場合がある他のコンポーネントをいくつでも含んでよい。
図2は、本開示の1つ以上の実施形態に従って、タスク200のコンピュータ読み出し可能な表現の例を表す。タスク200は、タスク200の表現の一例を表し、如何なるそのような表現も使用されてよい。例えば、タスク200は、タスクが一貫して構造化され得るスキーマ又はフレームワークを表してもよい。スキーマを使用するタスクの具体的な実施は、タスク仕様と呼ばれ得る。
図2に表されているように、タスク200は、APIコールを実行するときに使用されるエンドポイントの識別(<endpoint>)、使用されるHTTP動詞(<hettp_verb>)、及びAPIコールを実行するために使用される入力(“parameters”:[...])(例えば、APIパラメータ)を含んでよい。タスク200の定義部分内で、タスク200は、APIコールで使用され且つタスク200によって使用されるタスクタイトル(<task title>)、タスク記述(“task_desc”:<task_description>)、及びタスクのパラメータ(“params”:{・・・)を含んでよい。図2に表されているように、タスク200は、文字列値を入力として期待する(“type”:“placeholder.string)プレースホルダー210を含む。変数名(“name”)はcount_varであり、ユーザが入力を入力するために提示されるラベル(“label”)は、“enter total number of retrieving records”(取り出す記録の総数を入力されたい)と記載する命令を含む“Number of records”(記録の数)である。置換されるべきプレースホルダー値(“value”)は、最初は1である。APIコールが実装される場合に、APIコールで使用されるAPIパラメータの1つ以上は、タスク“search”:“bill”、“count”:“{%・・・で置換される。このとき、カウント(count)値は、ユーザ入力で置換され得る。
図2に表されているように、タスク200は、期待される応答タイプ(“response_type”:<response_type>)、APIコールの本文内容(“body”:<body_content>)、APIコールを生成するときに使用されるトークン(“token”:<token>)、APIコールを生成するときに使用される範囲(“scope”:<scopes>)、タスクが生成された時のタイムスタンプ(“timestamp”:<date_time>)、及び/又はタスクを生成したアドミニストレータ(“user_id”:<user_id>)を更に含んでもよい。
本開示の範囲から逸脱せずに、タスク200に対して、変更、追加、又は削除が行われてよい。例えば、いくつかの実施形態で、タスク200は、明示的に例示又は記載されていないことがある他のコンポーネントをいくつでも含んでよい。例えば、ユーザ入力を求める単一のパラメータが表されているが、パラメータはいくつでも識別されてよく、定数値、プレースホルダー値、又はそれらの組み合わせを含んでよい。
図3は、本開示の1つ以上の実施形態に従って、タスクのカテゴリを選択するためのユーザインターフェース300の例を表す。例えば、アドミニストレータは、タスクを生成するときにテンプレートとして使用するAPI又はサンプルタスクの選択を助けるようユーザインターフェース300を提示されてよい。
ユーザインターフェース300は、所与のAPIを表す1つ以上のウィンドウ310(例えば、ウィンドウ310a、310b、310c及び310d)を含んでよい。いくつかの実施形態で、ウィンドウ310に対応するAPIの情報は、API仕様(例えば、APIのOAS)を介して取得されてよい。一例としてウィンドウ310cを使用すると、ウィンドウ310cは、タイトル312c、バージョン314c、記述316c、及びボタン318cを含んでよい。ボタン318cを呼び出すことによって、アドミニストレータは、ウィンドウ310cに関連した所与のAPIを用いて実行され得るタスクのリストに導かれ得る。例えば、タスクは、既に生成されたタスク、APIに関連したタスクのテンプレート、などを含んでよい。
本開示の範囲から逸脱せずに、ユーザインターフェース300に対して、変更、追加、又は削除が行われてよい。例えば、いくつかの実施形態で、ユーザインターフェース300は、明示的に例示又は記載されていないことがある他のコンポーネントをいくつでも含んでよい。例えば、代表的なAPIのためのウィンドウ310は、その代表的なAPIの供給元、製造元などを識別するロゴ又は他のインジケータを含んでもよい。
図4A及び4Bは、本開示の1つ以上の実施形態に従って、タスク生成で使用されるユーザインターフェース400a及び400bの例を夫々表す。
図4Aに表されているように、生成のためにタスクを選択すると、アドミニストレータは、そのタスクの生成を助ける一連のユーザインターフェース要素を提示されてよい。例えば、アドミニストレータは、(例えば、ドロップダウンメニューから)APIにアクセスするエンドポイント及びAPIコールを実行するHTTP動詞を選択することをプロンプトされてよい。アドミニストレータは更に、タスクのタイトル及び/又は記述、認証のタイプ、適用範囲、などについてプロンプトされてもよい。いくつかの実施形態で、認証のタイプ及び適用範囲などの特定の側面は、選択されたAPI及び/又はエンドポイントに基づいて予め入力されるか又は強制されてよい。
インターフェース400bにより図4Bで表されているように、アドミニストレータは、ウィンドウ410を提示されてよく、それを介して、アドミニストレータは、定数値パラメータ及び/又はプレースホルダーパラメータに関するデータを入力してよい。例えば、アドミニストレータは、見出し「動的な値」の下にプレースホルダーパラメータを供給してよく、プレースホルダー値の名称、ラベル、記述、値、及び/又はタイプを入力してよい。
明らかなように、図4A及び4Bは、インターフェース400a及び400bの例を表すが、インターフェースの変形はいくつでも、タスクの生成を助けるために使用されてよい。
本開示の範囲から逸脱せずに、ユーザインターフェース400a及び400bに対して、変更、追加、又は削除が行われてよい。例えば、いくつかの実施形態で、インターフェース400a及び400bは、明示的に例示又は記載されていないことがある他のコンポーネントをいくつでも含んでよい。
図5A及び5Bは、本開示の1つ以上の実施形態に従って、タスク実行で使用されるユーザインターフェース500a及び500bの例を表す。図5Aは、認証トークンが現下であり、他の入力がユーザから不要であるタスクが実行される例を表す。図5Bは、認証トークンが現下であり、入力がユーザから必要とされるタスクが実行される例を表す。
図5Aに表されているように、実行されるべきタスクは、「マイクロソフトOutlook電子メールから最新メッセージを取得する」との記述とともに、タイトル「最新のOutlook電子メールの取得」を有してよい。タスクは、HTTP動詞GETとともにエンドポイント/me/messagesを使用してよい。APIは、OAuth2トークンを使用して、APIホスト(例えば、MICROSOFT)によりユーザ及び/又は彼らのアカウントを確かめてよい。しかし、認証トークンは、ユーザがAPIホストにより既に本物であることを確認されていると指示され得るように、ユーザと関連付けられたものとして格納されてもよい。表されているように、更なるパラメータは、タスクが更なる入力なしでいつでも実行可能であるように、求められない。
図5Bに表されているように、実行されるべきタスクは、「Outlookから最新のN通の電子メールメッセージを取得する」との記述とともに、タイトル「最新の電子メールの取得」を有してよい。図5Aで表されたタスクと同じエンドポイント、動詞、及び認証トークンが使用される。インターフェース500bはフィールド510を含み、フィールド510を介して、ユーザは、Nの値を入力することをプロンプトされる。例えば、ユーザは、タスクを実行するときに、何通の電子メールを取り出すべきかを識別する整数をフィールド510に入力することが可能であってよい。いくつかの実施形態で、値を入力した後、ユーザは、入力が成功した、適切に形成された、などの確認メッセージを、ユーザインターフェース500bを介して提示されてよい。
本開示の範囲から逸脱せずに、ユーザインターフェース500a及び500bに対して、変更、追加、又は削除が行われてよい。例えば、いくつかの実施形態で、インターフェース500a及び500bは、明示的に例示又は記載されていないことがある他のコンポーネントをいくつでも含んでよい。
図6A、6B及び6Cは、本開示の1つ以上の実施形態に従って、統合タスク600a、600b、及び600cへのタスクの結合の例の視覚表現の例を夫々表す。図6A、6B及び6Cに表されているように、ユーザ入力610は、1つ以上のタスク630を実行するときにエンドユーザによって供給されてよい。タスクは、実行中のタスク630のプレースホルダー値632及び出力634を含んでよい。統合タスク600の完了後、出力620が実現され得る。統合タスク600a、600b及び600cの例は、実例にすぎない。タスク結合の如何なる組み合わせ及び/又は順序も、本開示に従って統合タスクを導出するために利用されてよい。
図6Aに表されているように、タスク630aを実行するときに、ユーザ入力611aは、プレースホルダー632aのための置換値を生成するために取得されてよく、ユーザ入力611bは、プレースホルダー632bのための置換値を生成するために取得されてよい。置換値を使用して、タスク630aは、関連するAPIコールを生成し応答634aを取得するために、使用されてよい。応答634aは、次いで、追加のユーザ入力を求めるのではなく、タスク630bのプレースホルダー632cのための置換値として使用されてよい。タスク630bを実行するときに、タスク630bは、入力611cに基づく置換値によるプレースホルダー632dの置換を促すようユーザ入力611cを取得してよい。タスク630bの実行は、応答643a及びユーザ入力611cに基づく置換値を使用する対応するAPIコールの生成をもたらし得る。対応するAPIコールは、統合タスク600へ出力620として供給され得る出力634bをもたらし得る。
図6Aから明らかなように、2つのタスクを一続きにすることによって、ユーザ入力611cと他のタスクの応答634aとのハイブリッドは、タスク630bを実行することによってAPIコールを生成するために使用され得る。
図6Bに表されているように、統合タスク内の第2タスク(タスク630d)が、第2タスク630bのプレースホルダー632e及び632fのための置換値を生成するために、ユーザ入力と先のタスク(タスク630c)の出力との両方を使用するのではなく、第2タスク630dは、タスク630cの出力634c及び634dなどの、1つ以上の先のタスクの出力634を使用してよい。両方ともタスク603cから来るものとして表されているが、明らかなように、先のタスクはいくつでも、タスク実行のための置換値を生成するときに後のタスクへの先のタスクの出力の1つ以上に寄与してよい。
タスク630cの出力634c及び634dを使用して、タスク630dは、出力620を促し得る出力634e及び634fを生成してよい。
図6Cに表されているように、いくつかの実施形態で、タスク630d、630c、及び630fのストリングが、統合タスク600cを生成するときに使用されてよい。例えば、第1タスク630dは、タスク630dのAPIコールに基づき出力634gを生成してよい。出力634gは、プレースホルダー632gのための置換値を生成するために使用されてよく、一方、タスク630eの他のプレースホルダーは、ユーザ入力に基づき生成された置換アスク(ask)有してよい。APIコールは、出力634hをもたらす置換値に基づきタスク630eについて生成されてよい。出力634hは、タスク630fのプレースホルダー632fのための置換値を生成するために使用されてよい。タスク630fは、タスク630fに対応するAPIコールを生成するときに置換値を生成するためにユーザ入力及びタスク630eの出力を用いて実行されてよい。そのようなタスク(ユーザ入力と、1つ以上の先のタスクの出力とを使用してもしなくてもよい。)はいくつでも、統合タスク600cの最終的な出力620をもたらし得る。
本開示の範囲から逸脱せずに、統合タスク600a、600b及び600cに対して、変更、追加、又は削除が行われてよい。例えば、いくつかの実施形態で、統合タスク600a、600b及び/又は600cは、明示的に例示又は記載されていないことがある他のコンポーネントをいくつでも含んでよい。例えば、任意の構成でマッピングされた任意の数のプレースホルダー及び/又は出力を有している任意の数のタスクが、本開示内で考えられている。
図7~12は、本開示に従う様々な例となる方法の様々なフローチャートを表す。図7~12に表されている様々な方法の1つ以上の動作は、図1のタスクシステム110、及び/又は図13のコンピュータシステム1300などの、システム若しくはデバイス、又はそれらの組み合わせによって実行されてよい。別個のブロックとして表されているが、図7~12に表されている方法の様々なブロックは、所望の実施に応じて、更なるブロックに分割されても、より少ないブロックにまとめられても、あるいは削除されてもよい。
図7は、本開示の1つ以上の実施形態に従って、タスク生成の例となる方法700の例となるフローチャートを表す。
ブロック710で、APIの1つ以上の仕様が取得されてよい。例えば、タスクシステム(例えば、図1のタスクシステム110)が1つ以上のAPI仕様(例えば、図1のAPI仕様140)にアクセスしてよい。いくつかの実施形態で、API仕様は、OASフォーマットであってよく、且つ/あるいは、APIホスト(例えば、図1のAPIホスト150)によってホストされてよい。
ブロック720で、APIの夫々についての識別子が仕様から取り出されてよい。例えば、タイトル、URL、記述、バージョン、などがAPIから取り出されてよい。このような及び他の実施形態では、APIを呼び出すことに関連したエンドポイント、認証タイプ、ヘッダ及び/又は本文などのような追加情報も、仕様から取り出されてよい。
ブロック730で、API識別子が提示されてよい。例えば、アドミニストレータ(例えば、図1のアドミニストレータ)は、タスクシステム(図1のタスクシステム110)と相互作用するときに、生成されるべきタスクの基礎を形成するために利用可能であるAPIのリストを提示されてよい。そのような提示の一例は、図3に表されている。
ブロック740で、タスクオブジェクトが生成されるべきであるAPIの選択が受け取られてよい。例えば、アドミニストレータは、特定のAPI、タスクのテンプレート、前から存在するタスク、などを選択してよい。このような及び他の実施形態では、アドミニストレータは、タスクを生成するためのAPIを選択するときに、既存のタスクを編集、コピー、などすることを選択してもよい。
ブロック750で、グラフィカルユーザインターフェース(GUI)が提示されてよく、それを介して、ユーザはタスクオブジェクトの側面を選択する。例えば、アドミニストレータは、タスクに関連したタイトル、記述、及び1つ以上のパラメータ又は値などの、タスクに関する情報をアドミニストレータが入力し得るGUIの1つ以上の要素を提示されてよい。
ブロック760で、タスクオブジェクトで使用されるパラメータのアレイが取得されてよい。例えば、アドミニストレータは、1つ以上のプレースホルダー値及び/又は1つ以上の定数値をタスクでのパラメータとして識別するためにブロック750のGUIを利用してよい。
ブロック770で、パラメータのアレイは、タスクオブジェクトを実行するために、他の情報及び/又はAPIのための入力とともにタスクオブジェクトにまとめられてよい。そのような情報は、例えば、ブロック720で取り出された情報のいずれかを含んでもよい。いくつかの実施形態で、ブロック770の完了時、タスクオブジェクトは、APIコールがタスクの所望の目的を達成すべく実行され得るように、全てのプログラミングコード及び/又は情報を含んでよい。
図8は、本開示の1つ以上の実施形態に従って、タスク実行の例となる方法800の例となるフローチャートを表す。
ブロック805で、タスクオブジェクトの選択が供給されてよい。例えば、エンドユーザ(図1のエンドユーザ130)が、タスクシステム(図1のタスクシステム110)と相互作用して、実行されるべきタスクを選択してよい。タスクオブジェクトは、API仕様(例えば、図1のAPI仕様140)で記述されているように特定のAPIと関係づけられ得る。このような及び他の実施形態では、タスク選択は、API仕様及びタスクを識別してよく、この識別は、異なるAPIにわたって同じタスク名を認め得る(例えば、タスクタイトル「最新の電子メールの取得」は、複数の電子メールプロバイダAPIにわたって使用されてよい。)。
ブロック810で、タスクオブジェクトがプレースホルダー値を含むかどうかが決定されてよい。例えば、タスクシステムは、タスクがプレースホルダー値を含むかどうかを決定するためにタスクオブジェクトパラメータを見るよう、コンピュータ読み取り可能なタスクオブジェクトのシンタックスをパースしてよい。タスクオブジェクトがプレースホルダー値を含む場合には、方法800はブロック815へ進んでよい。タスクオブジェクトがプレースホルダー値を含まない場合には、方法800は、ブロック840へ直接進んでよい。
ブロック815で、プレースホルダー値が期限付きトークンであるかどうかが決定されてよい。例えば、タスクシステムは、プレースホルダー値のいずれかがOAuth2トークン又は何らかの他の期限付き認証クレデンシャル/トークンであるかどうかを確認してよい。プレースホルダートークンのいずれかが期限付きトークンを含む場合には、方法800はブロック820へ進んでよい。どのプレースホルダートークンも期限付きトークンを含まない場合には、方法800はブロック830へ進んでよい。いくつかの実施形態で、セキュリティトークン又は他の認証クレデンシャルはパラメータとして含まれ得るが、更新されるパラメータでなくてもよい。
ブロック820で、トークンが失効しているかどうかが決定されてよい。例えば、タスクシステムは、トークンのメタデータを観察してよく、それをセキュリティポリシーと比較してよい。他の例として、トークンは、トークンを照合するために認証システムへ供給されてもよい。トークンが失効している場合には、方法800はブロック825へ進んでよい。トークンが失効していない場合には、方法はブロック830へ進んでよい。
ブロック825で、トークンは、ユーザ入力に基づきリフレッシュされてよい。例えば、トークンを認証するとき、サインインのためのURLが認証システムによって返されてよく、関連するページが、トークンをリフレッシュするようエンドユーザを認証するために彼らに提示されてよい。他の例として、エンドユーザは、ユーザ名/パスワード、PIN、ローカルで記憶されたセキュリティ証明書、又は何らかの他のセキュリティクレデンシャルについてプロンプトされてもよい。いくつかの実施形態で、トークンは、ユーザ入力なしでタスクシステムによって自動的にリフレッシュされてもよい。
ブロック830で、プレースホルダー値に関するユーザ入力を受け取るためのインターフェースが生成されてよい。例えば、ウェブフォームが、エンドユーザに入力についてプロンプトするためにタスクシステムによって生成されてよい。他の例として、クラウドベースのシステムのAPIが、クラウドベースのシステムに、エンドユーザに入力についてプロンプトするようインターフェースを生成させるために、呼び出されてもよい。更なる例として、別のページがフレーム(例えば、iFrame)内で開かれてもよく、これを介して、エンドユーザは、クレデンシャルを供給することをプロンプトされる。
ブロック835で、プレースホルダー値が、ユーザ入力に基づく新しい値で置換されてよい。例えば、タスクシステムは、タスクオブジェクトのパラメータのアレイにおいてプレースホルダー値を直接にユーザ入力で置換してもよい。他の例として、タスクシステムは、プレースホルダー値を置換するための値に至るためにユーザ入力に基づき何らかの処理又は他の操作若しくはフォーマット化を実行してもよい。例えば、ユーザ入力が、リスト内の1つ以上の項目を選択するクリックである場合には、選択は、APIコールによって使用可能なシンタックスにフォーマット化されてよい。
ブロック840で、最終のタスクコンテンツが、タスクオブジェクトのパラメータのアレイに基づいて生成されてよい。例えば、タスクシステムは、プレースホルダー値を置換する何らかの新たに生成された値、APIコールのヘッダ、APIコールの本文、コールのエンドポイント、APIコールのHTTP動詞、URLクエリ、URLパス、などを含むパラメータのアレイをコンパイルしてよい。
ブロック845で、APIへのAPIコールが、対象のプログラミング言語で生成されてよい。例えば、エンドユーザは、彼らがAPIコールに実装したい特定のプログラミング言語を識別してよい。他の例として、エンドユーザによって(又はタスクを生成する場合にアドミニストレータによって)選択された所与のエンドポイントは、特定のプログラミング言語を利用してよく、対象のプログラミング言語は、その特定のプログラミング言語に対応してよい。いくつかの実施形態で、APIコールのためのHTTP要求のタイプは、タスクによって識別及び/又は指定されてよい。このような及び他の実施形態では、対象のプログラミング言語及び/又はHTTP要求のタイプに基づいて、タスクオブジェクトのパラメータを利用してAPIコールを実装するプログラミングコードが、生成され得る。例えば、HTTP動詞が“GET”である場合に、GET要求のAPIコールは、タスクのパラメータに従う対象のプログラミング言語で生成され得る。いくつかの実施形態で、プログラミングコードは、API本文、ヘッダ、URLクエリ、などのような、最終のタスクコンテンツの各セグメントの対象に基づいて、セグメントにおいて実装されてよい。
ブロック850で、APIコールは、ターゲットプラットフォーム上でデプロイされてよい。例えば、タスクシステムは、APIコールをローカルで及び/又はクラウドベースのシステム上でデプロイしてよい。いくつかの実施形態で、ローカルシステムは、ANDROID(登録商標)又はiOS(登録商標)オペレーティングシステムを使用するモバイル機器、WINDOWS(登録商標)又はMacOS(登録商標)オペレーティングシステムを使用するコンピュータデバイス、ウェブブラウザ、などのように、如何なるオペレーティングシステム又は構造も使用してよい。
ローカルでAPIコールをデプロイする場合に、タスクシステムは、上述されたようにプログラミングコードを生成し、ローカルでコードを実行してよい。
クラウドベースのシステム上でAPIコールをデプロイする場合に、タスクシステムは、ウェブジェネレータAPIコールを利用してよく、これを介して、タスクシステムは、特定の機能を実行するようクラウドベースのシステムを呼び出してよい。コンテンツをHTMLコードで置換し、且つ/あるいは、HTMLコードを別なふうに生成するために、スクリプトが使用されてもよい。HTMLコードは、タスクに基づいてAPIコールを用意するようタスクを実行するときに入力を生成及び/又は選択する際にユーザ及び/又はアドミニストレータとインターフェース接続するために、クラウドベースのシステムによって実行されてよい。いくつかの実施形態で、クラウドベースのシステムは、APIコールを実行するために他の安全なクラウドベースのシステムとインターフェース接続してもよい。
いくつかの実施形態で、クラウドベースのシステムは、ユーザのトークンを取得及び/又は記憶してよく、それにより、トークンは、タスクを実行するときに使用及び/又は再利用され得る。例えば、クラウドベースのシステムがユーザを認証しようと試みる場合に、それが新しいユーザであるか、あるいは、そのユーザのトークンが失効しているならば、認証URLが認証システムによって返されてよい。クラウドベースのシステムは、認証URLのページをエンドユーザへ伝えてよく、ユーザが本物であることを証明するためにクレデンシャルをサブミットした後にコールバック情報をリッスンしてよい。クラウドベースのシステムは、追加的に、又は代替的に、結果を記憶するために及び/又はエンドユーザの更新されたトークンを記憶するためにAPIコール及び/又は認証プロセスからの応答をモニタしてもよい。
いくつかの実施形態で、クラウドベースのシステムは、エンドユーザが、タスクシステムと相互作用するのではなく、タスクを要求、識別及び/又は実行するためにクラウドベースのシステムとインターフェース接続し得るよう、タスクのデータベースを供給及び/又は保持してよい。
ブロック855で、APIコールの結果が受け取られてよい。例えば、フレーム又はブラウザウィンドウが開かれてよく、その中に結果が表示され得る。他の例として、タスクシステムとのユーザインターフェースが直接に結果を表示してもよい。いくつかの実施形態で、結果は表示されなくてもよい(タスクが電子メールを送信する場合には、表示される応答はなくてもよい。)。このような及び他の実施形態では、タスクの実行に成功したという確認が表示されてもよい。いくつかの実施形態で、APIコールの結果は記憶されるか、又は別なふうに処理されてもよい。
図9は、本開示の1つ以上の実施形態に従って、タスク実行の他の例となる方法900の例となるフローチャートを表す。方法900は、図8のブロック845及び/又は850の例となる実施であってよい。
ブロック910で、対象のプログラミング言語が選択されてよい。例えば、エンドユーザ(例えば、図1のエンドユーザ130)が、APIコールが実行されるべきである特定のプログラミング言語を識別してよい。他の例として、アドミニストレータ(例えば、図1のアドミニストレータ120)が、タスクを生成するときにプログラミング言語を選択してよく、その下で、タスクは実行され得る。いくつかの実施形態で、プログラミング言語は、APIコールが向けられ得るエンドポイントの能力に基づいて選択されてもよい。
ブロック920で、HTTP要求のタイプ(例えば、HTTP動詞)が識別されてよい。例えば、APIコールはGET要求、PUT要求、PATCH要求、などを用いてよい。いくつかの実施形態で、HTTP要求のタイプは、アドミニストレータによってセットされてよく、且つ/あるいは、エンドポイントの設定に基づいてもよい。他の例として、HTTP要求のタイプは、タスクの目的に基づいて決定されてもよい。
ブロック930で、対象のプログラミング言語におけるソースコードが、HTTP要求を呼び出すために取得されてよい。例えば、対象のプログラミング言語がPYTHONであり、HTTP要求のタイプがGETである場合に、PYTHONを用いてGET要求を実装するための対応するコードが取得されてよい。追加的に、又は代替的に、タスクに基づいてAPIに関連した残りの入力(例えば、APIパラメータ)、本文、ヘッダ、などは、ブロック930の完了後に、タスクの目的を達成するよう構成されている完全APIコールが生成され得るように、対象のプログラミング言語でコードとともに符号化されてよい。
ブロック940で、HTTP要求は、取得されたソースコードを用いてポストされてよい。例えば、完全なAPIコールは、対象のプログラミング言語を用いてHTTP要求を実装するようポストされてよい。
図10は、本開示の1つ以上の実施形態に従って、タスク実行の更なる例となる方法1000の例となるフローチャートを表す。方法1000は、図8のブロック845及び/又は950の例となる実施であってよい。
ブロック1010で、別のAPIコールが、ユーザ入力を受け取るためのウェブフォームを生成するために、クラウドベースのコンピュータシステムと相互作用するよう呼び出されてよい。例えば、全体のタスク実行がクラウドベースのコンピュータシステム(例えば、図1のクラウドベースのシステム160)により実行されるべきである場合には、タスクシステム(例えば、図1のタスクシステム110)は、クラウドベースのコンピュータシステムに、エンドユーザ(図1のエンドユーザ130)がユーザ入力(例えば、タスクのプレースホルダー値のための置換値、クレデンシャル、など)を供給し得るインターフェースを生成させるよう、クラウドベースのコンピュータシステムへのAPIコールを呼び出してよい。
ブロック1020で、クラウドコンピュータシステムは、クラウドベースのコンピュータシステムの環境内に、タスクに関連したAPIコールを実装させられてよい。例えば、タスクのプレースホルダー値のためのユーザ入力を収集し、ユーザ入力に基づいてプレースホルダー値を置換し、完成したAPIコールを生成するためのあらゆる他の情報を収集した後、タスクシステムは、クラウドベースのコンピュータシステムの環境内にAPIコールを実装するための命令によりクラウドベースのコンピュータシステムへのAPIコールを実装するようコンピュータプログラミングコードを供給してよい。
図11は、本開示の1つ以上の実施形態に従って、タスク結合の例となる方法1100の例となるフローチャートを表す。
ブロック1110で、タスクの1つ以上の成功応答が取得されてよい。例えば、タスクを実行するときに、タスクは、1つ以上の定数値及び/又はプレースホルダー値を用いてAPIコールを生成してよい。APIコールへの応答は、解析又は他の検討のためにタスクデータベースに格納されてよい。
ブロック1120で、第1タスクへの第1応答のスキーマが生成されてよい。例えば、第1タスクに対応するAPIコールへの第1応答のデータは、一貫したフォーマットでAPI応答のデータ表現を表し得る第1応答のスキーマを生成するよう解析、パース、などされてよい。スキーマを生成する一例は、図1で更に詳細に説明され得る。
ブロック1130で、スキーマは、他のスキーマとともに、学習モデルをそれらのスキーマに適用することによってクラスタ化されてよい。例えば、学習モデルは、応答タイプ、APIの名称、などに基づいてスキーマをクラスタ化してよい。追加的に、又は代替的に、学習モデルは、プレースホルダー値に基づいてスキーマをクラスタ化してもよい。このようにしてスキーマをクラスタ化することによって、タスクシステムは、1つのタスクの実行からの応答が、他のタスクでプレースホルダーのための置換値を生成するために使用され得るように、1つ以上のタスクの間の特定の接続を予測又は示唆してよい。例えば、タスクシステムは、後のタスクによって置換値を生成するために使用される入力のタイプ又は値を識別してよく、そして、タスクの実行に対する応答がその入力のタイプ又は値であるところのタスクを示唆してよい。
ブロック1140で、第1タスクと第2タスクとの間の1つ以上の接続を識別するユーザ入力が受け取られてよい。例えば、アドミニストレータは、2つのタスク間の示唆された接続を確認してよい。他の例として、アドミニストレータは、タスク間の接続を手動でマッピングしてもよい。
ブロック1150で、第1タスク及び第2タスクを含む統合タスクが生成されてよい。例えば、ブロック1140で受け取られたユーザ入力に基づいて、タスクシステムは、第1タスクと第2タスクとの間の接続を実装し得る対応するプログラミングコードを生成してよく、それにより、統合タスクが実行される場合に、接続は実装される。例えば、接続が、第2タスクの実行の応答が、第1タスクのプレースホルダー値の1つのための置換を生成するために使用されること、である場合には、統合タスクは、置換値のためのユーザ入力を求めるのではなく、第2タスクの実行の応答が置換値を生成するために使用され得るようなプログラミングを含んでよい。
図12は、本開示の1つ以上の実施形態に従って、成功したタスク実行の応答に基づいてスキーマを生成する例となる方法1200の例となるフローチャートを表す。
ブロック1210で、応答が取得されてよく、変数iが初期化されてよい。例えば、所与のタスクは、APIコールを生成し送信するよう実行されてよい。APIコールからの応答は記憶されてよい。追加的に、又は代替的に、そのような応答は、データベースから呼び戻されてよい。このような及び他の実施形態で、応答は1つ以上のデータオブジェクトを含んでよい。いくつかの実施形態で、応答のエンプティ(empty)スキーマは初期化されてよく、それに対して、応答のデータオブジェクトは加えられてよい。
ブロック1220で、応答内のi番目のオブジェクトがディクショナリであるかどうかに関して決定が行われてよい。i番目のオブジェクトがディクショナリである場合には、方法1200はブロック1230へ進んでよい。i番目のオブジェクトがディクショナリでない場合には、方法1200はブロック1240へ進んでよい。
ブロック1230で、ディクショナリは、スキーマの現在のノードに加えられてよく、ディクショナリ内のキーは、スキーマ内の子ノードとして加えられてよい。例えば、ディクショナリが一連のキー値対(又はキー複数値オブジェクト)を含む場合に、キーの夫々は取り出され、ディクショナリノードの真下にスキーマ内の子ノードとして加えられてよい。
ブロック1240で、応答内のi番目のオブジェクトがキーであるかどうかに関して決定が行われてよい。i番目のオブジェクトがキーである場合には、方法1200はブロック1250へ進んでよい。i番目のオブジェクトがキーでない場合には、方法1200はブロック1260へ進んでよい。
ブロック1250で、キーに関連した値が、全ての値が取り出されるまで再帰的に取り出されてよく、そして、現在のノードに加えられてよい。例えば、解析されている応答のデータオブジェクトがキーである場合に、そのキーは、それに関連した複数の値を含む可能性がある。それらの値の夫々は取り出され、キーと関連付けられている現在のノード(ディクショナリノードの真下の子ノードであってもなくてもよい。)と関連付けられてよい。
ブロック1260で、応答内のi番目のオブジェクトがリストであるかどうかに関して決定が行われてよい。i番目のオブジェクトがリストである場合には、方法1200はブロック1270へ進んでよい。i番目のオブジェクトがリストでない場合には、方法はブロック1280へ進んでよい。
ブロック1270で、リストは、現在のノードへ加えられ、リストの各要素は、繰り返し処理されてよい。例えば、リストの各要素は、iがインクリメントされると、リストのオブジェクトが、スキーマに含まれるために解析されるデータオブジェクトであり得るように、応答内のデータの他のオブジェクトとして扱われてよい。
ブロック1280で、変数iはインクリメントされてよく、それにより、スキーマ内の次のデータオブジェクトは、スキーマに含まれるために解析され得る。いくつかの実施形態で、ブロック1280で、データオブジェクトが文字列である場合には、データ構造に対する変更はない可能性があり、それは文字列としてスキーマに加えられてよい。追加的に、又は代替的に、文字列については、文字列がスキップされるよう、又は適切な方法でスキーマに文字列を含めるようアドミニストレータに提示されるようにし得るフォーマットエラーが、返されてよい。ブロック1280で、応答の全てのオブジェクトが解析され且つ/あるいはスキーマに加えられた場合には、方法1200は、iをインクリメントせずに終了してよい。
図13は、本開示で記載される少なくとも1つの実施形態に従って、タスクの生成、実行、及び/又は結合を容易にするための例となるコンピュータシステム1300を表す。コンピュータシステム1300は、プロセッサ1310、メモリ1320、データストレージ1330、及び/又は通信ユニット1340を含んでよく、それらは全て通信可能に結合されてよい。図7~12の方法700~1200の動作のいずれかは、コンピュータシステム1300に従うコンピュータシステムによって実行されてよい。例えば、コンピュータシステム1300は、タスクを生成及び記憶し、選択されたタスクを実行し、且つ/あるいは、複数のタスクを統合タスクに結合してよい。
一般に、プロセッサ1310は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む如何なる適切な専用又は汎用のコンピュータ、コンピュータエンティティ、又はプロセッシングデバイスも含んでよく、如何なる適切なコンピュータ可読記憶媒体で記憶されている命令も実行するよう構成されてよい。例えば、プロセッサ1310は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は、プログラム命令を解釈及び/又は実行するよう且つ/あるいはデータを処理するよう構成されたあらゆる他のデジタル若しくはアナログ回路を含んでもよい。
図13には単一のプロセッサとして表されているが、プロセッサ1310は、本開示で記載される任意の数の動作を個別的に又は集合的に実行するよう構成される任意数のネットワーク又は物理的位置にわたって分布する任意の数のプロセッサを含んでよい。いくつかの実施形態で、プロセッサ1310は、メモリ1320、データストレージ1330、又はメモリ1330及びデータストレージ1330に記憶されているプログラム命令を解釈及び/又は実行し且つ/あるいは記憶されているデータを処理してよい。いくつかの実施形態で、プロセッサ1310は、データストレージ1320からプログラム命令をフェッチし、プログラム命令をメモリ1320にロードしてもよい。
プログラム命令がメモリ1320にロードされた後、プロセッサ1310は、図7~12の方法700~1200のいずれかを夫々実行するための命令などのプログラム命令を実行してよい。例えば、プロセッサ1310は、タスクを生成及び/又は記憶すること、選択されタスクを実行すること、及び/又は複数のタスクを統合されたタスクに結合することに関する命令を取得してよい。
メモリ1320及びデータストレージ1330は、コンピュータ実行可能命令又はデータ構造を搬送するか又は記憶しているコンピュータ可読記憶媒体又は1つ以上のコンピュータ可読記憶媒体を含んでよい。そのようなコンピュータ可読記憶媒体は、プロセッサ1310などの汎用又は専用のコンピュータによってアクセスされ得る如何なる利用可能な媒体であってもよい。いくつかの実施形態で、コンピュータシステム1300は、メモリ1320及びデータストレージ1330のどちらも含んでも含まなくてもよい。
例として、限定としてではなく、そのようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能なプログラム可能リードオンリーメモリ(EEPROM)、コンパクトディスク型リードオンリーメモリ(CD-ROM)若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、固体状態メモリデバイス)、又はコンピュータ実行可能命令若しくはデータ構造の形で所望のプログラムコードを搬送若しくは記憶するために使用されてよくかつ汎用若しくは専用のコンピュータによってアクセスされてよいあらゆる他の記憶媒体を含む非一時的なコンピュータ可読記憶媒体を含んでよい。上記のものの組み合わせも、コンピュータ可読記憶媒体の範囲に含まれてよい。コンピュータ実行可能命令は、例えば、プロセッサ1310に特定の動作又は動作のグループを実行させるよう構成された命令及びデータを含んでよい。
通信ユニット1340は、ネットワーク上で情報を送信又は受信するよう構成される如何なるコンポーネント、デバイス、システム、又はそれらの組み合わせも含んでよい。いくつかの実施形態で、通信ユニット1340は、他の位置、同じ位置、又は同じシステム内の他のコンポーネントにある他のデバイスと通信してよい。例えば、通信ユニット1340は、モデム、ネットワークカード(無線若しくは有線)、光通信デバイス、赤外線通信デバイス、無線通信デバイス(例えば、アンテナ)、及び/又はチップセット(例えば、Bluetooth(登録商標)デバイス、802.6デバイス(例えば、メトロポリタンエリアネットワーク(MAN))、WiFiデバイス、WiMaxデバイス、セルラー通信設備、若しくは他)、及び/又は同様のものを含んでよい。通信ユニット1340は、データが、本開示で記載されるネットワーク及び/又は任意の他のデバイス若しくはシステムと交換されることを可能にしてよい。例えば、通信ユニット1340は、システム1300がコンピューティングデバイス及び/又は他のネットワークなどの他のシステムと通信することを可能にしてよい。
当業者は、本開示を検討した後、本開示の範囲から逸脱せずにシステム1300に対して変更、追加、又は削除が行われてよい、と認識し得る。例えば、システム1300は、明示的に例示又は記載されているよりも多い又は少ないコンポーネントを含んでよい。
上記の開示は、本開示を、開示されている正確な使用形態又は特定の使用分野に限定するよう意図されない。そのようなものとして、本開示に対する様々な代替の実施形態及び/又は変更は、本明細書で明示又は暗示されていようとなかろうと、本開示に照らして可能であることが企図される。このように本開示の実施形態を記載してきたが、本開示の範囲から逸脱せずに変更が形態及び詳細において行われ得る、と認識され得る。よって、本開示は、特許請求の範囲によってのみ限定される。
いくつかの実施形態で、本明細書で記載される種々のコンポーネント、モジュール、エンジン、及びサービスは、コンピュータシステムで(例えば、別々のスレッドとして)実行されるオブジェクト又はプロセスとして実装されてよい。本明細書で記載されるシステム及びプロセスのいくつかは、(汎用ハードウェアで記憶及び/又は実行される)ソフトウェアで実装されるものとして一般的に記載されているが、特定のハードウェア実施又はソフトウェアと特定のハードウェア実施との組み合わせも可能であり企図される。
本明細書で、特に添付の特許請求の範囲(例えば、添付の特許請求の本文)で使用される用語は、一般的に、“非限定的な(open)”用語として意図されている(例えば、語「含んでいる(including)」は、“~を含んでいるが、~に限定されない”との意に解釈されるべきであり、語「備えている(having)」は、「少なくとも~を備えている」との意に解釈されるべきであり、語「含む(includes)」は、“~を含むが、~に限定されない”との意に解釈されるべきである、など。)。
更に、導入されたクレーム記載(introduced claim recitation)において特定の数が意図される場合、そのような意図は当該クレーム中に明確に記載され、そのような記載がない場合は、そのような意図も存在しない。例えば、理解を促すために、後続の添付された特許請求の範囲では、「少なくとも1つの(at least one)」及び「1つ以上の(one or more)」といった導入句を使用し、クレーム記載を導入することがある。しかし、このような句を使用するからといって、「a」又は「an」といった不定冠詞によりクレーム記載を導入した場合に、たとえ同一のクレーム内に、「1つ以上の」又は「少なくとも1つの」といった導入句と「a」又は「an」といった不定冠詞との両方が含まれるとしても、当該導入されたクレーム記載を含む特定のクレームが、当該記載事項を1しか含まない例に限定されるということが示唆されると解釈されるべきではない(例えば、「a」及び/又は「an」は、「少なくとも1つの」又は「1つ以上の」を意味すると解釈されるべきである。)。定冠詞を使用してクレーム記載を導入する場合にも同様のことが当てはまる。
更には、導入されたクレーム記載において特定の数が明示されている場合であっても、そのような記載は、通常、少なくとも記載された数を意味するように解釈されるべきであることは、当業者には理解されるであろう(例えば、他に修飾語のない、単なる「2つの記載事項」という記載がある場合、この記載は、少なくとも2つの記載事項、又は2つ以上の記載事項を意味する。)。更に、「A、B及びCなどのうち少なくとも1つ」又は「A、B及びCなどのうちの1つ以上」に類する表記が使用される場合、一般的に、そのような構造は、Aのみ、Bのみ、Cのみ、AとBの両方、AとCの両方、BとCの両方、及び/又はAとBとCの全て、などを含むよう意図される。例えば、「及び/又は」との用語の使用は、このようにして解釈されるよう意図される。
更に、2つ以上の選択可能な用語を表す如何なる離接語及び/又は離接句も、明細書、特許請求の範囲、又は図面のいずれであろうと、それら用語のうちの1つ、それらの用語のうちのいずれか、あるいは、それらの用語の両方を含む可能性を意図すると理解されるべきである。例えば、「A又はB」という句は、「A又はB」、あるいは、「A及びB」の可能性を含むことが理解されるべきである。
しかし、このような句を使用するからといって、「a」又は「an」といった不定冠詞によりクレーム記載を導入した場合に、たとえ同一のクレーム内に、「1つ以上の」又は「少なくとも1つの」といった導入句と「a」又は「an」といった不定冠詞との両方が含まれるとしても、当該導入されたクレーム記載を含む特定のクレームが、当該記載事項を1しか含まない例に限定されるということが示唆されると解釈されるべきではない(例えば、「a」及び/又は「an」は、「少なくとも1つの」又は「1つ以上の」を意味すると解釈されるべきである。)。定冠詞を使用してクレーム記載を導入する場合にも同様のことが当てはまる。
更には、「第1」、「第2」、「第3」などの用語の使用は、特定の順序を暗示するために本明細書で必ずしも使用されていない。一般に、「第1」、「第2」、「第3」などの用語は、異なる要素を区別するために使用される。「第1」、「第2」、「第3」などの用語が特定の順序を暗示するという明示がなければ、これらの用語は、特定の順序を暗示すると理解されるべきではない。
本開示で挙げられている全ての例及び条件付き言語は、当該技術の促進に本発明者によって寄与される概念及び本発明を読者が理解するのを助ける教育上の目的を意図され、そのような具体的に挙げられている例及び条件に制限されないと解釈されるべきである。本開示の実施形態が詳細に記載されてきたが、様々な変更、置換、及び代替が、本開示の主旨及び適用範囲から逸脱することなしに行われてよい。
開示されている実施形態の上記の説明は、当業者が本開示を形成又は使用することを可能にするために提供されている。これらの実施形態に対する様々な変更は、当業者に容易に明らかであり、本明細書で定義されている一般原理は、本開示の精神又は範囲から逸脱せずに他の実施形態に適用されてよい。よって、本開示は、本明細書で示されている実施形態に限定されるよう意図されず、本明細書で開示されている原理及び新規の特徴に一致した最も広い範囲に従うべきである。
上記の実施形態に加えて、以下の付記を開示する。
(付記1)
実行のための、アプリケーションプログラミングインターフェース(API)に関係があるタスクオブジェクトの選択を受け取ることと、
前記タスクオブジェクトが前記タスクオブジェクト内のプレースホルダー値を含むかどうかを決定することと、
前記タスクオブジェクトがプレースホルダー値を含むことに基づいて、前記タスクオブジェクトで記述されている前記プレースホルダー値に関するユーザ入力をユーザがサブミットするためのインターフェースを生成することと、
前記プレースホルダー値を、前記インターフェースを介して受け取られた前記ユーザ入力に基づく新しい値で置換することと、
前記新しい値を含む、前記APIへのAPIコールを、対象のプログラミング言語で生成することと、
実行のために前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることと、
前記APIコールの結果を取得することと
を有する方法。
(付記2)
前記インターフェースを生成することは、サードパーティにより前記ユーザを認証するためのクレデンシャルを前記ユーザが入力するための前記サードパーティの承認ウェブインターフェースをユーザに提示することを含む、
付記1に記載の方法。
(付記3)
実行のための第2タスクオブジェクトの第2選択を受け取ることと、
前記第2タスクオブジェクトが何らかのプレースホルダー値を含むかどうかを決定することと、
前記第2タスクオブジェクトが如何なるプレースホルダー値も含まないことに基づいて、ユーザ入力なしで前記第2タスクオブジェクトに関連した第2APIコールを生成することと
を更に有する、付記1に記載の方法。
(付記4)
前記APIコールを生成し、前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることは、ローカルシステムで前記生成されたAPIコールを実行することを含み、
当該方法は、
前記タスクオブジェクトのパラメータのアレイに基づき最終的なタスクコンテンツを生成することであり、パラメータのアレイの第1要素は、前記ユーザ入力に関係がある前記プレースホルダー値を含む、ことと、
前記APIコールを実行すべき前記対象のプログラミング言語を選択することと、
ハイパーテキスト転送プロトコル(HTTP)要求のタイプを識別することと、
前記HTTP要求を呼び出すための前記対象のプログラミング言語でのソースコードを取得することと、
前記取得されたソースコードと、前記パラメータのアレイの1つ以上の要素とを用いて、前記HTTP要求をポストすることと
を有する、
付記1に記載の方法。
(付記5)
前記APIコールを生成し、前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることは、前記生成されたAPIコールがクラウドベースのコンピュータシステムで実行されるようにすることを含み、
当該方法は、
前記クラウドベースのコンピュータシステムと相互作用するよう第2APIコールを呼び出すことであり、前記APIコールは、前記インターフェースを実装するようウェブフォームを生成する、ことと、
前記クラウドベースのコンピュータシステムに、ローカルコンピュータデバイスではなく、前記クラウドベースのコンピュータシステムの環境内で前記APIコールを実行させることと
を有する、
付記1に記載の方法。
(付記6)
前記プレースホルダー値は、前記APIにアクセスすることに関係があるトークンプレースホルダーである、
付記1に記載の方法。
(付記7)
前記トークンプレースホルダーは、APIトークンを含み、前記タスクオブジェクトは、前記タスクオブジェクトを実行するときに、前記APIにアクセスするために前記APIトークンを利用するプログラミングを含む、
付記6に記載の方法。
(付記8)
前記APIトークンが失効しているかどうかを決定することと、
前記APIトークンが失効していることに基づいて、前記ユーザ入力に基づき前記APIトークンをリフレッシュすることと
を更に有する、付記7に記載の方法。
(付記9)
前記タスクオブジェクトで使用される前記APIトークンを利用して第2APIを呼び出すよう第2タスクオブジェクトを実行することを更に有し、前記APIトークンは前記ユーザに固有である、
付記8に記載の方法。
(付記10)
前記タスクオブジェクトの成功した実行に基づきAPI応答を受け取ることに基づいて、タスクのデータベース内で確認済みとして前記タスクオブジェクトに注釈を付けることと、
前記タスクオブジェクトが確かめられていることを示す前記タスクオブジェクトの視覚インジケータを供給することと
を更に有する、付記1に記載の方法。
(付記11)
タスクオブジェクトが検索可能である検索インターフェースを供給することと、
ユーザからクエリを受け取り、前記クエリの結果を返すことと
を更に有し、
前記タスクオブジェクトは、前記クエリの結果に含まれる、
付記1に記載の方法。
(付記12)
1つ以上のプロセッサと、命令を含む1つ以上の非一時的なコンピュータ可読媒体とを有するシステムであって、
前記命令は、前記1つ以上のプロセッサによって実行される場合に、当該システムに、
実行のための、アプリケーションプログラミングインターフェース(API)に関係があるタスクオブジェクトの選択を受け取ることと、
前記タスクオブジェクトが前記タスクオブジェクト内のプレースホルダー値を含むかどうかを決定することと、
前記タスクオブジェクトがプレースホルダー値を含むことに基づいて、前記タスクオブジェクトで記述されている前記プレースホルダー値に関するユーザ入力をユーザがサブミットするためのインターフェースを生成することと、
前記プレースホルダー値を、前記インターフェースを介して受け取られた前記ユーザ入力に基づく新しい値で置換することと、
前記新しい値を含む、前記APIへのAPIコールを、対象のプログラミング言語で生成することと、
実行のために前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることと、
前記APIコールの結果を取得することと
を有する動作を実行させる、
システム。
(付記13)
前記インターフェースを生成することは、サードパーティにより前記ユーザを認証するためのクレデンシャルを前記ユーザが入力するための前記サードパーティの承認ウェブインターフェースをユーザに提示することを含む、
付記12に記載のシステム。
(付記14)
前記動作は、
実行のための第2タスクオブジェクトの第2選択を受け取ることと、
前記第2タスクオブジェクトが何らかのプレースホルダー値を含むかどうかを決定することと、
前記第2タスクオブジェクトが如何なるプレースホルダー値も含まないことに基づいて、ユーザ入力なしで前記第2タスクオブジェクトに関連した第2APIコールを生成することと
を更に有する、
付記12に記載のシステム。
(付記15)
前記APIコールを生成し、前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることは、ローカルシステムで前記生成されたAPIコールを実行することを含み、
前記動作は、
前記タスクオブジェクトのパラメータのアレイに基づき最終的なタスクコンテンツを生成することであり、パラメータのアレイの第1要素は、前記ユーザ入力に関係がある前記プレースホルダー値を含む、ことと、
前記APIコールを実行すべき前記対象のプログラミング言語を選択することと、
ハイパーテキスト転送プロトコル(HTTP)要求のタイプを識別することと、
前記HTTP要求を呼び出すための前記対象のプログラミング言語でのソースコードを取得することと、
前記取得されたソースコードと、前記パラメータのアレイの1つ以上の要素とを用いて、前記HTTP要求をポストすることと
を有する、
付記12に記載のシステム。
(付記16)
前記APIコールを生成し、前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることは、前記生成されたAPIコールがクラウドベースのコンピュータシステムで実行されるようにすることを含み、
前記動作は、
前記クラウドベースのコンピュータシステムと相互作用するよう第2APIコールを呼び出すことであり、前記APIコールは、前記インターフェースを実装するようウェブフォームを生成する、ことと、
前記クラウドベースのコンピュータシステムに、ローカルコンピュータデバイスではなく、前記クラウドベースのコンピュータシステムの環境内で前記APIコールを実行させることと
を有する、
付記12に記載のシステム。
(付記17)
前記プレースホルダー値は、APIトークンを含み、前記タスクオブジェクトは、前記タスクオブジェクトを実行するときに、前記APIにアクセスするために前記APIトークンを利用するプログラミングを含む、
付記12に記載のシステム。
(付記18)
前記動作は、
前記APIトークンが失効しているかどうかを決定することと、
前記APIトークンが失効していることに基づいて、前記ユーザ入力に基づき前記APIトークンをリフレッシュすることと
を更に有する、
付記17に記載のシステム。
(付記19)
前記動作は、前記タスクオブジェクトで使用される前記APIトークンを利用して第2APIを呼び出すよう第2タスクオブジェクトを実行することを更に有し、前記APIトークンは前記ユーザに固有である、
付記18に記載のシステム。
(付記20)
前記動作は、
前記タスクオブジェクトの成功した実行に基づきAPI応答を受け取ることに基づいて、タスクのデータベース内で確認済みとして前記タスクオブジェクトに注釈を付けることと、
前記タスクオブジェクトが確かめられていることを示す前記タスクオブジェクトの視覚インジケータを供給することと
を更に有する、
付記12に記載のシステム。
[関連出願の相互参照]
本特許出願は、2020年7月30日付けで「TASK GENERATION」と題されて出願された米国特許出願第16/943628号と、2020年7月30日付けで「TASK INTEGRATION」と題されて出願された米国特許出願第16/943658号とに関係がある。これらの米国特許出願の夫々は、それらの全文を参照により本願に援用される。
100 システム
110 タスクシステム
112 タスクデータベース
120 アドミニストレータ
130 エンドユーザ
140 API仕様
150 APIホスト
160a,160b クラウドシステム
200,630 タスク
210 プレースホルダー
610 ユーザ入力
620 出力
1300 コンピュータシステム
1310 プロセッサ
1320 メモリ
1330 データストレージ
1340 通信ユニット

Claims (20)

  1. 実行のための、アプリケーションプログラミングインターフェース(API)に関係があるタスクオブジェクトの選択を受け取ることと、
    前記タスクオブジェクトが前記タスクオブジェクト内のプレースホルダー値を含むかどうかを決定することと、
    前記タスクオブジェクトがプレースホルダー値を含むことに基づいて、前記タスクオブジェクトで記述されている前記プレースホルダー値に関するユーザ入力をユーザがサブミットするためのインターフェースを生成することと、
    前記プレースホルダー値を、前記インターフェースを介して受け取られた前記ユーザ入力に基づく新しい値で置換することと、
    前記新しい値を含む、前記APIへのAPIコールを、対象のプログラミング言語で生成することと、
    実行のために前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることと、
    前記APIコールの結果を取得することと
    を有する方法。
  2. 前記インターフェースを生成することは、サードパーティにより前記ユーザを認証するためのクレデンシャルを前記ユーザが入力するための前記サードパーティの承認ウェブインターフェースをユーザに提示することを含む、
    請求項1に記載の方法。
  3. 実行のための第2タスクオブジェクトの第2選択を受け取ることと、
    前記第2タスクオブジェクトが何らかのプレースホルダー値を含むかどうかを決定することと、
    前記第2タスクオブジェクトが如何なるプレースホルダー値も含まないことに基づいて、ユーザ入力なしで前記第2タスクオブジェクトに関連した第2APIコールを生成することと
    を更に有する、請求項1に記載の方法。
  4. 前記APIコールを生成し、前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることは、ローカルシステムで前記生成されたAPIコールを実行することを含み、
    当該方法は、
    前記タスクオブジェクトのパラメータのアレイに基づき最終的なタスクコンテンツを生成することであり、パラメータのアレイの第1要素は、前記ユーザ入力に関係がある前記プレースホルダー値を含む、ことと、
    前記APIコールを実行すべき前記対象のプログラミング言語を選択することと、
    ハイパーテキスト転送プロトコル(HTTP)要求のタイプを識別することと、
    前記HTTP要求を呼び出すための前記対象のプログラミング言語でのソースコードを取得することと、
    前記取得されたソースコードと、前記パラメータのアレイの1つ以上の要素とを用いて、前記HTTP要求をポストすることと
    を有する、
    請求項1に記載の方法。
  5. 前記APIコールを生成し、前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることは、前記生成されたAPIコールがクラウドベースのコンピュータシステムで実行されるようにすることを含み、
    当該方法は、
    前記クラウドベースのコンピュータシステムと相互作用するよう第2APIコールを呼び出すことであり、前記APIコールは、前記インターフェースを実装するようウェブフォームを生成する、ことと、
    前記クラウドベースのコンピュータシステムに、ローカルコンピュータデバイスではなく、前記クラウドベースのコンピュータシステムの環境内で前記APIコールを実行させることと
    を有する、
    請求項1に記載の方法。
  6. 前記プレースホルダー値は、前記APIにアクセスすることに関係があるトークンプレースホルダーである、
    請求項1に記載の方法。
  7. 前記トークンプレースホルダーは、APIトークンを含み、前記タスクオブジェクトは、前記タスクオブジェクトを実行するときに、前記APIにアクセスするために前記APIトークンを利用するプログラミングを含む、
    請求項6に記載の方法。
  8. 前記APIトークンが失効しているかどうかを決定することと、
    前記APIトークンが失効していることに基づいて、前記ユーザ入力に基づき前記APIトークンをリフレッシュすることと
    を更に有する、請求項7に記載の方法。
  9. 前記タスクオブジェクトで使用される前記APIトークンを利用して第2APIを呼び出すよう第2タスクオブジェクトを実行することを更に有し、前記APIトークンは前記ユーザに固有である、
    請求項8に記載の方法。
  10. 前記タスクオブジェクトの成功した実行に基づきAPI応答を受け取ることに基づいて、タスクのデータベース内で確認済みとして前記タスクオブジェクトに注釈を付けることと、
    前記タスクオブジェクトが確かめられていることを示す前記タスクオブジェクトの視覚インジケータを供給することと
    を更に有する、請求項1に記載の方法。
  11. タスクオブジェクトが検索可能である検索インターフェースを供給することと、
    ユーザからクエリを受け取り、前記クエリの結果を返すことと
    を更に有し、
    前記タスクオブジェクトは、前記クエリの結果に含まれる、
    請求項1に記載の方法。
  12. 1つ以上のプロセッサと、命令を含む1つ以上の非一時的なコンピュータ可読媒体とを有するシステムであって、
    前記命令は、前記1つ以上のプロセッサによって実行される場合に、当該システムに、
    実行のための、アプリケーションプログラミングインターフェース(API)に関係があるタスクオブジェクトの選択を受け取ることと、
    前記タスクオブジェクトが前記タスクオブジェクト内のプレースホルダー値を含むかどうかを決定することと、
    前記タスクオブジェクトがプレースホルダー値を含むことに基づいて、前記タスクオブジェクトで記述されている前記プレースホルダー値に関するユーザ入力をユーザがサブミットするためのインターフェースを生成することと、
    前記プレースホルダー値を、前記インターフェースを介して受け取られた前記ユーザ入力に基づく新しい値で置換することと、
    前記新しい値を含む、前記APIへのAPIコールを、対象のプログラミング言語で生成することと、
    実行のために前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることと、
    前記APIコールの結果を取得することと
    を有する動作を実行させる、
    システム。
  13. 前記インターフェースを生成することは、サードパーティにより前記ユーザを認証するためのクレデンシャルを前記ユーザが入力するための前記サードパーティの承認ウェブインターフェースをユーザに提示することを含む、
    請求項12に記載のシステム。
  14. 前記動作は、
    実行のための第2タスクオブジェクトの第2選択を受け取ることと、
    前記第2タスクオブジェクトが何らかのプレースホルダー値を含むかどうかを決定することと、
    前記第2タスクオブジェクトが如何なるプレースホルダー値も含まないことに基づいて、ユーザ入力なしで前記第2タスクオブジェクトに関連した第2APIコールを生成することと
    を更に有する、
    請求項12に記載のシステム。
  15. 前記APIコールを生成し、前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることは、ローカルシステムで前記生成されたAPIコールを実行することを含み、
    前記動作は、
    前記タスクオブジェクトのパラメータのアレイに基づき最終的なタスクコンテンツを生成することであり、パラメータのアレイの第1要素は、前記ユーザ入力に関係がある前記プレースホルダー値を含む、ことと、
    前記APIコールを実行すべき前記対象のプログラミング言語を選択することと、
    ハイパーテキスト転送プロトコル(HTTP)要求のタイプを識別することと、
    前記HTTP要求を呼び出すための前記対象のプログラミング言語でのソースコードを取得することと、
    前記取得されたソースコードと、前記パラメータのアレイの1つ以上の要素とを用いて、前記HTTP要求をポストすることと
    を有する、
    請求項12に記載のシステム。
  16. 前記APIコールを生成し、前記生成されたAPIコールをターゲットプラットフォーム上でデプロイすることは、前記生成されたAPIコールがクラウドベースのコンピュータシステムで実行されるようにすることを含み、
    前記動作は、
    前記クラウドベースのコンピュータシステムと相互作用するよう第2APIコールを呼び出すことであり、前記APIコールは、前記インターフェースを実装するようウェブフォームを生成する、ことと、
    前記クラウドベースのコンピュータシステムに、ローカルコンピュータデバイスではなく、前記クラウドベースのコンピュータシステムの環境内で前記APIコールを実行させることと
    を有する、
    請求項12に記載のシステム。
  17. 前記プレースホルダー値は、APIトークンを含み、前記タスクオブジェクトは、前記タスクオブジェクトを実行するときに、前記APIにアクセスするために前記APIトークンを利用するプログラミングを含む、
    請求項12に記載のシステム。
  18. 前記動作は、
    前記APIトークンが失効しているかどうかを決定することと、
    前記APIトークンが失効していることに基づいて、前記ユーザ入力に基づき前記APIトークンをリフレッシュすることと
    を更に有する、
    請求項17に記載のシステム。
  19. 前記動作は、前記タスクオブジェクトで使用される前記APIトークンを利用して第2APIを呼び出すよう第2タスクオブジェクトを実行することを更に有し、前記APIトークンは前記ユーザに固有である、
    請求項18に記載のシステム。
  20. 前記動作は、
    前記タスクオブジェクトの成功した実行に基づきAPI応答を受け取ることに基づいて、タスクのデータベース内で確認済みとして前記タスクオブジェクトに注釈を付けることと、
    前記タスクオブジェクトが確かめられていることを示す前記タスクオブジェクトの視覚インジケータを供給することと
    を更に有する、
    請求項12に記載のシステム。
JP2021106629A 2020-07-30 2021-06-28 タスク実行のための方法及びシステム Pending JP2022027493A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/943641 2020-07-30
US16/943,641 US20220035638A1 (en) 2020-07-30 2020-07-30 Task execution

Publications (1)

Publication Number Publication Date
JP2022027493A true JP2022027493A (ja) 2022-02-10

Family

ID=80004314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021106629A Pending JP2022027493A (ja) 2020-07-30 2021-06-28 タスク実行のための方法及びシステム

Country Status (2)

Country Link
US (1) US20220035638A1 (ja)
JP (1) JP2022027493A (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504543B1 (en) * 2007-03-09 2013-08-06 Glam Media, Inc. Automatic API generation for a web application
US9811353B1 (en) * 2010-07-29 2017-11-07 Crimson Corporation Remotely invoking dynamic classes on a computing device
US10394844B2 (en) * 2015-11-09 2019-08-27 Sap Se Integrating co-deployed databases for data analytics
US10097663B1 (en) * 2017-05-22 2018-10-09 American Express Travel Related Services Company, Inc. Using integrated code to extract device characteristics for online security
US10671412B1 (en) * 2019-03-21 2020-06-02 Adobe Inc. Fast cloning for background processes in scripting environments

Also Published As

Publication number Publication date
US20220035638A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
US11922094B2 (en) Database systems and methods for conversation-driven dynamic updates
US11669503B2 (en) Building and managing data-processing attributes for modeled data sources
JP2022027490A (ja) タスク生成のための方法、システム、及び非一時的なコンピュータ可読媒体
KR102220127B1 (ko) 커스터마이징된 소프트웨어 개발 키트(sdk) 생성을 위한 방법 및 장치
JP7383747B2 (ja) グループベースコミュニケーションシステムを介して外部アクションを開始するシステム及び方法
US9690822B2 (en) System and method for metadata level validation of custom setup objects
US8838679B2 (en) Providing state service for online application users
US10678682B2 (en) Intelligent batch job testing
US8504543B1 (en) Automatic API generation for a web application
CN111767095A (zh) 微服务生成方法、装置、终端设备及存储介质
KR102295593B1 (ko) 인증 문서를 자동으로 생성하는 기법
US11269938B2 (en) Database systems and methods for conversational database interaction
Chan et al. Python API Development Fundamentals: Develop a full-stack web application with Python and Flask
Wenhui et al. Study on REST API test model supporting web service integration
US10977745B1 (en) Computer-implemented methods systems and articles of manufacture for generating user interface with personalized response to user query
US10482070B2 (en) Form field creation systems and methods
JP2022027493A (ja) タスク実行のための方法及びシステム
JP2022027491A (ja) タスク統合のための方法、システム、及び非一時的なコンピュータ可読媒体
US20160063119A1 (en) Test data reservation system
US8880586B2 (en) Metadata subscription registry
US11706164B2 (en) Graph-based natural language generation for conversational systems
CN113886216A (zh) 接口测试和工具配置方法、装置、电子设备和存储介质
CN115657901B (zh) 一种基于统一参数的业务变更方法及装置
CN113760949B (zh) 数据查询的方法和装置
US11930026B1 (en) Automating interactions with web services