IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キナクシス インコーポレイテッドの特許一覧

特表2024-512667計算ノートブックを組み込むためのシステム及び方法
<>
  • 特表-計算ノートブックを組み込むためのシステム及び方法 図1
  • 特表-計算ノートブックを組み込むためのシステム及び方法 図2
  • 特表-計算ノートブックを組み込むためのシステム及び方法 図3
  • 特表-計算ノートブックを組み込むためのシステム及び方法 図4
  • 特表-計算ノートブックを組み込むためのシステム及び方法 図5
  • 特表-計算ノートブックを組み込むためのシステム及び方法 図6
  • 特表-計算ノートブックを組み込むためのシステム及び方法 図7
  • 特表-計算ノートブックを組み込むためのシステム及び方法 図8A
  • 特表-計算ノートブックを組み込むためのシステム及び方法 図8B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】計算ノートブックを組み込むためのシステム及び方法
(51)【国際特許分類】
   G06F 9/448 20180101AFI20240312BHJP
【FI】
G06F9/448
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023560335
(86)(22)【出願日】2021-11-16
(85)【翻訳文提出日】2023-09-29
(86)【国際出願番号】 CA2021051619
(87)【国際公開番号】W WO2022109720
(87)【国際公開日】2022-06-02
(31)【優先権主張番号】17/103,320
(32)【優先日】2020-11-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
(71)【出願人】
【識別番号】521084851
【氏名又は名称】キナクシス インコーポレイテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】オリヴェイラ アルメイダ、マルシオ
(72)【発明者】
【氏名】リン、ジェン
(72)【発明者】
【氏名】ビッソン - クロール、シャンタール
(57)【要約】
エンタープライズ・アプリケーション・ソフトウェア内に計算ノートブックを組み込むためのシステム及び方法。組み込まれた計算ノートブック・エディタは、ソフトウェア・クライアント・インターフェースと通信するソフトウェア・クライアント・インターフェース内に組み込まれる。アプリケーション・サーバは、アプリケーション・サーバ内に組み込まれるリバース・プロキシ・サーバを備える。コンテナ管理システムは、アプリケーション・サーバと通信し、マルチ・ユーザ・サーバ、ノートブック対話型開発環境、及びノートブック実行ツールを備える。
【特許請求の範囲】
【請求項1】
ソフトウェア・クライアント・インターフェース内に組み込まれた計算ノートブック・エディタと、
前記ソフトウェア・クライアント・インターフェースと通信するアプリケーション・サーバであって、前記アプリケーション・サーバが前記アプリケーション・サーバ内に組み込まれたリバース・プロキシ・サーバを備える、アプリケーション・サーバと、
前記アプリケーション・サーバと通信するコンテナ管理システムであって、前記コンテナ管理システムがマルチ・ユーザ・サーバ、ノートブック対話型開発環境、及びノートブック実行ツールを備える、コンテナ管理システムと
を備えるシステム。
【請求項2】
前記計算ノートブック・エディタが、前記リバース・プロキシを介して前記ノートブック対話型開発環境モードにアクセスする、請求項1に記載のシステム。
【請求項3】
前記計算ノートブック・エディタが、1つ又は複数のノートブック・テンプレートを作成するために使用される、請求項2に記載のシステム。
【請求項4】
前記ノートブック実行ツールが、前記計算ノートブック・エディタにより作成された1つ又は複数のノートブック・テンプレートのスケジュール型実行のために使用される、請求項1に記載のシステム。
【請求項5】
前記ノートブック実行ツールが、前記1つ又は複数のノートブック・テンプレートをパラメータ化する、請求項4に記載のシステム。
【請求項6】
前記ノートブック実行ツールが、1つ又は複数の計算ノートブックの実行のためのワークフローを作成する、請求項4に記載のシステム。
【請求項7】
ソフトウェア・クライアント・インターフェース内に計算ノートブック・エディタを組み込むステップと、
アプリケーション・サーバを用いてリバース・プロキシを組み込むステップであって、前記アプリケーション・サーバが前記ソフトウェア・クライアント・インターフェースと通信する、ステップと、
コンテナ管理システムによって、マルチ・ユーザ・サーバ、ノートブック対話型開発環境、及びノートブック実行ツールをホストするステップであって、前記コンテナ管理システムが前記アプリケーション・サーバと通信する、ステップと
を含む、コンピュータ実装型の方法。
【請求項8】
前記計算ノートブック・エディタによって、前記リバース・プロキシを介して前記ノートブック対話型開発環境にアクセスするステップ
をさらに含む、請求項7に記載のコンピュータ実装型の方法。
【請求項9】
前記計算ノートブック・エディタによって、1つ又は複数のノートブック・テンプレートを作成するステップ
をさらに含む、請求項8に記載のコンピュータ実装型の方法。
【請求項10】
前記ノートブック実行ツールによって、前記計算ノートブック・エディタにより作成された1つ又は複数のノートブック・テンプレートのスケジュール型実行をスケジュールするステップ
をさらに含む、請求項7に記載のコンピュータ実装型の方法。
【請求項11】
前記ノートブック実行ツールによって、前記1つ又は複数のノートブック・テンプレートのパラメータ化のステップ
をさらに含む、請求項10に記載のコンピュータ実装型の方法。
【請求項12】
前記ノートブック実行ツールによって、1つ又は複数の計算ノートブックの実行のためのワークフローを作成するステップ
をさらに含む、請求項10に記載のコンピュータ実装型の方法。
【請求項13】
非一過性コンピュータ可読ストレージ媒体であって、前記コンピュータ可読ストレージ媒体がコンピュータにより実行されたときに、前記コンピュータに、
ソフトウェア・クライアント・インターフェース内に計算ノートブック・エディタを組み込ませ、
アプリケーション・サーバを用いてリバース・プロキシを組み込ませることであり、前記アプリケーション・サーバが前記ソフトウェア・クライアント・インターフェースと通信する、リバース・プロキシを組み込ませ、
前記アプリケーション・サーバと通信するコンテナ管理システムによって、マルチ・ユーザ・サーバ、ノートブック対話型開発環境、及びノートブック実行ツールをホストさせる
命令を含む、非一過性コンピュータ可読ストレージ媒体。
【請求項14】
前記命令が、
前記計算ノートブック・エディタによって、前記リバース・プロキシを介して前記ノートブック対話型開発環境にアクセスする
ように前記コンピュータをさらに構成する、請求項13に記載の非一過性コンピュータ可読ストレージ媒体。
【請求項15】
前記命令が、
前記計算ノートブック・エディタによって、1つ又は複数のノートブック・テンプレートを作成する
ように前記コンピュータをさらに構成する、請求項14に記載の非一過性コンピュータ可読ストレージ媒体。
【請求項16】
前記命令が、
前記ノートブック実行ツールによって、前記計算ノートブック・エディタにより作成された1つ又は複数のノートブック・テンプレートのスケジュール型実行をスケジュールする
ように前記コンピュータをさらに構成する、請求項13に記載の非一過性コンピュータ可読ストレージ媒体。
【請求項17】
前記命令が、
前記ノートブック実行ツールによって、前記1つ又は複数のノートブック・テンプレートをパラメータ化する
ように前記コンピュータをさらに構成する、請求項16に記載の非一過性コンピュータ可読ストレージ媒体。
【請求項18】
前記命令が、
前記ノートブック実行ツールによって、1つ又は複数の計算ノートブックの実行のためのワークフローを作成する
ように前記コンピュータをさらに構成する、請求項16に記載の非一過性コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ソフトウェア開発環境に関する。特に、本開示は、計算ノートブック環境に関する。
【背景技術】
【0002】
仮想ノートブック環境を提供する計算ノートブックは、広く普及してきており、ユーザがデータ及び今日の知見を解析することを可能にする。計算ノートブックは、科学、教育、及びビジネス・インテリジェンスなどの多岐にわたる分野において使用されることが可能である。多数のプロプライエタリ・ノートブックが送り出されてきている一方で、フリー/オープン・ソース・ノートブックが、さらにもっと普及することが検認されている。後者の実例は、Apache Spark(商標)、SagaMath(商標)及びJupyter(商標)を含む。
【0003】
加えて、エンタープライズ・アプリケーション・ソフトウェア(EAS)は、組織体の様々なニーズを取り扱い、しばしばビジネス指向型ツールを提供する。エンタープライズ・コンピューティングは、業務を効率的に管理しサポートする組織体ツールを提供する。エンタープライズ・アプリケーションは、大量の複雑なデータに伴うビジネス・プロセスの自動化とともに、大量の複雑なデータの表示、操作、及び記憶を可能にする。
【0004】
オープン・ソース・ノートブックをEASと組み合わせることは有益であるはずであり、それにより、EASユーザがデータ処理の簡易さ及びプレゼンテーションの容易さなどの計算ノートブックにより提供される利点のすべてにアクセスすることを可能にする。
【0005】
計算ノートブックをEASと組み合わせる1つの方法は、EASの外部にノートブックを有することである。EASに関係するデータにアクセスするために、ユーザは、ノートブックによる使用のために、EASから関連データを検索するAPIにアクセスすることを要求される。しかしながら、この手法は多数の欠点を有する。ユーザが異なるアプリケーション同士の間を切り替える必要があるので、ユーザの体感はシームレスではない。加えて、セキュリティ・リスクがあり、ノートブックがAPIにアクセスするために、ノートブックは、ユーザの本人証明書を必要とし、上記本人証明書がノートブックにおいて公開されるだろう。加えて、ノートブックは、EAS安全環境に、記憶されないし維持もされない。さらにその上、ノートブックがEASによりアクセス可能ではないので、ノートブックをオフラインで走らせることは、実行可能ではないだろう。EAS内のあるイベントによりトリガされるノートブックの実行をスケジュールすることも可能ではないだろう。最後に、ノートブックを共有すること及び再使用することは、認可及び認証プロセスがEASによっては制御されないので扱いにくくなる。
【0006】
これゆえに、EAS内に計算ノートブックを組み込む必要性がある。そうすることによって、1つだけのユーザ・インターフェースにアクセスすることによりシームレスなユーザの体感がある。さらにその上、認証及び認可のすべてが、EASにより取り扱われる。加えて、計算ノートブックは、EASの安全な環境に記憶されそしてアクセスされる。EASのユーザによりノートブックを共有すること及び再使用することは、EASが許諾のすべてを取り扱うのでより容易である。しかしながら、EASのインフラストラクチャ内に計算ノートブックを組み込むことは、技術的に簡単ではない。
【発明の概要】
【課題を解決するための手段】
【0007】
EAS内に計算ノートブックを組み込むために、EASにノートブック・インフラストラクチャへのアクセスを結びつけるコンポーネントが作成されることがある。このコンポーネントは、ノートブックをEASの一部のように見えるようにする。さらにその上、上記コンポーネントは、すべての通信がそこから流れる仲介者として作用する。
【0008】
このような配置は、プラットフォームの一部としてウェブ・アプリケーションを走らせる能力をEASに提供し、その結果、ウェブ・アプリケーションがノートブック計算システム環境(すなわち、計算ノートブック)で作業することを可能にする。このような配置は、2つのモード:対話型及びスケジュール型で実行されることが可能である。
【0009】
対話型モードでは、ユーザは、スクリプトを走らせ、そしてビジュアライゼーションを生成することによって計算ノートブックとリアル・タイムで対話できる。スケジュール型モードでは、計算ノートブックの実行のスケジューリングは、ユーザが特定のノートブックを定期的に走らせることを可能にする。加えて、スケジューリングをパラメータ化した計算ノートブックと組み合わせることは、ユーザがデータのカスタム解析をトリガするために計算ノートブックを再使用できる強力なワークフローを使用可能にする。
【0010】
1つの態様では、システムは:ソフトウェア・クライアント・インターフェース内に組み込まれた計算ノートブック・エディタと;上記ソフトウェア・クライアント・インターフェースと通信するアプリケーション・サーバであって、上記アプリケーション・サーバが上記アプリケーション・サーバ内に組み込まれるリバース・プロキシ・サーバを備える、アプリケーション・サーバと;上記アプリケーション・サーバと通信するコンテナ管理システムであって、上記コンテナ管理システムがマルチ・ユーザ・サーバ、ノートブック対話型開発環境、及びノートブック実行ツールを備える、コンテナ管理システムとを備える。いくつかの実施例では、上記ソフトウェア・クライアント・インターフェースが、エンタープライズ・ソフトウェア・クライアント・インターフェースである。
【0011】
システムのいくつかの実施例では、上記計算ノートブック・エディタが、上記リバース・プロキシを介して上記ノートブック対話型開発環境モードにアクセスする。いくつかの実施例では、上記計算ノートブック・エディタが、1つ又は複数のノートブック・テンプレートを作成するために使用される。いくつかの実施例では、上記ノートブック実行ツールが、上記計算ノートブック・エディタにより作成された1つ又は複数のノートブック・テンプレートのスケジュール型実行のために使用される。いくつかの実施例では、上記ノートブック実行ツールが、上記1つ又は複数のノートブック・テンプレートをパラメータ化する。いくつかの実施例では、上記ノートブック実行ツールが、1つ又は複数の計算ノートブックの実行のためのワークフローを作成する。
【0012】
もう1つの態様では、コンピュータ実装型の方法は:ソフトウェア・クライアント・インターフェース内に計算ノートブック・エディタを組み込むステップと;アプリケーション・サーバを用いてリバース・プロキシを組み込むステップであって、上記アプリケーション・サーバが上記ソフトウェア・クライアント・インターフェースと通信する、リバース・プロキシを組み込むステップと;コンテナ管理システムによって、マルチ・ユーザ・サーバ、ノートブック対話型開発環境、及びノートブック実行ツールをホストするステップであって、上記コンテナ管理システムが上記アプリケーション・サーバと通信する、ホストするステップとを含む。
【0013】
いくつかの実施例では、上記方法は、上記計算ノートブック・エディタによって、上記リバース・プロキシを介して上記ノートブック対話型開発環境にアクセスするステップをさらに含む。いくつかの実施例では、上記方法は、上記計算ノートブック・エディタによって、1つ又は複数のノートブック・テンプレートを作成するステップをさらに含む。いくつかの実施例では、上記方法は、上記ノートブック実行ツールによって、上記計算ノートブック・エディタにより作成された1つ又は複数のノートブック・テンプレートのスケジュール型実行をスケジュールするステップをさらに含む。いくつかの実施例では、上記方法は、上記ノートブック実行ツールによって、上記1つ又は複数のノートブック・テンプレートのパラメータ化のステップをさらに含む。いくつかの実施例では、上記方法は、上記ノートブック実行ツールによって、1つ又は複数の計算ノートブックの実行のためのワークフローを作成するステップをさらに含む。いくつかの実施例では、上記ソフトウェア・クライアント・インターフェースが、エンタープライズ・ソフトウェア・クライアント・インターフェースである。
【0014】
さらにもう1つの態様では、非一過性コンピュータ可読ストレージ媒体であって、上記コンピュータ可読ストレージ媒体がコンピュータにより実行されたときに、上記コンピュータに:ソフトウェア・クライアント・インターフェース内に計算ノートブック・エディタを組み込ませ;アプリケーション・サーバを用いてリバース・プロキシを組み込ませることであり、上記アプリケーション・サーバが上記ソフトウェア・クライアント・インターフェースと通信する、リバース・プロキシを組み込ませ;コンテナ管理システムによって、マルチ・ユーザ・サーバ、ノートブック対話型開発環境、及びノートブック実行ツールをホストさせることであり、上記コンテナ管理システムが上記アプリケーション・サーバと通信する、ホストさせる命令を含む、非一過性コンピュータ可読ストレージ媒体。
【0015】
上記コンピュータ可読ストレージ媒体のいくつかの実施例では、上記命令が、上記計算ノートブック・エディタによって、上記リバース・プロキシを介して上記ノートブック対話型開発環境にアクセスするように上記コンピュータをさらに構成する。いくつかの実施例では、上記命令が、上記計算ノートブック・エディタによって、1つ又は複数のノートブック・テンプレートを作成するように上記コンピュータをさらに構成する。いくつかの実施例では、上記命令が、上記ノートブック実行ツールによって、上記計算ノートブック・エディタにより作成された1つ又は複数のノートブック・テンプレートのスケジュール型実行をスケジュールするように上記コンピュータをさらに構成する。いくつかの実施例では、上記命令が、上記ノートブック実行ツールによって、上記1つ又は複数のノートブック・テンプレートをパラメータ化するように上記コンピュータをさらに構成する。いくつかの実施例では、上記命令が、上記ノートブック実行ツールによって、1つ又は複数の計算ノートブックの実行のためのワークフローを作成するように上記コンピュータをさらに構成する。いくつかの実施例では、上記ソフトウェア・クライアント・インターフェースが、エンタープライズ・ソフトウェア・クライアント・インターフェースである。
【0016】
いくつかの実施例では、ノートブック計算システム環境は、ライブ・コンピュータ・コードがビジュアライゼーション及び説明文を組み込むことを可能にする。いくつかの実施例では、ノートブック計算システム環境が、Jupyter(商標)Notebooksである。いくつかの実施例では、ノートブック計算システム環境が:データについてData Science及びMachine Learningタスクを走らせるため、ビジュアライゼーションを提供するため、及び適正に安全にされた通信及び認証を用いてソフトウェア・データベース内の結果を公開するために使用される。
【0017】
この明細書の主題の1つ又は複数の実施例の詳細が、添付の図面及び下記の説明に述べられる。主題の他の特徴、態様、及び利点は、説明、図面、及び特許請求の範囲から明らかになるだろう。
【0018】
任意の特定の要素又は行為の議論を容易に見分けるために、参照番号内の最上位の桁又は複数の桁は、その要素が最初に導入される図番を参照する。
【図面の簡単な説明】
【0019】
図1】1つの実施例によるシステム・アーキテクチャ100の図である。
図2】1つの実施例によるワークフローの図である。
図3】1つの実施例によるノートブック・スケジューリング及び実行フロー300の図である。
図4】1つの実施例による実例において使用されるデータ・テーブルの図である。
図5図4に示したデータに基づいて予測するために作成された2つの計算ノートブックの図である。
図6図5の計算ノートブックを使用する月次予測及び四半期予測の図である。
図7】1つの実施例による実例において使用されるデータ・テーブルの図である。
図8A図7に関連する計算ノートブックの実行のスクリーンショットの図である。
図8B図8Aに関連する予測の図である。
【発明を実施するための形態】
【0020】
コンピュータ・プログラム(これはまた、ソフトウェア・アプリケーション、コード、プログラム、スクリプト、ソフトウェア、モジュール、又はソフトウェア・モジュールとも呼ばれることがある又は記載されることがある)は、任意の形式のプログラミング言語で書かれることが可能である。これは、コンパイルされた若しくはインタープリットされた言語、又は宣言型若しくは手続き型言語を含む。コンピュータ・プログラムは、モジュール、サブルーチン、スタンドアロン・プログラム、コンポーネント、又は計算環境における使用のために適した他のユニットとしてを含め、多くの形態で展開されることが可能である。コンピュータ・プログラムは、1つのコンピュータ上で実行されるように展開されることが可能であり、又は1つのサイトに設置された若しくは多数のサイトのいたる所に分散されそして通信ネットワークにより相互接続された多数のコンピュータ上に展開されることが可能である。
【0021】
本明細書において説明するプロセス及び論理の流れは、入力データ上で動作しそして出力を生成することにより機能を行うための1つ又は複数のコンピュータ・プログラムを実行する1つ又は複数のプログラマブル・コンピュータにより行われることが可能である。プロセス及び論理の流れはまた、専用論理回路、例えば、FPGA(field programmable gate array:フィールド・プログラマブル・ゲート・アレイ)又はASIC(application specific integrated circuit:特定用途向け集積回路)によって行われることも可能であり、装置もまた、上記専用論理回路として実装されることも可能である。例えば、プロセス及び論理の流れは、グラフィックス処理ユニット(GPU:graphics processing unit)により行われてもよく、装置もまた、GPUとして実装されてもよい。
【0022】
コンピュータ・プログラムの実行のために適したコンピュータは、実例として、汎用マイクロプロセッサ若しくは専用マイクロプロセッサ若しくは両者、又はいずれかの他の種類の中央処理ユニットを含む。一般に、中央処理ユニットは、読出し専用メモリ又はランダム・アクセス・メモリ又は両者から命令及びデータを受け取る。コンピュータはまた、データを記憶するための1つ又は複数の大量ストレージ・デバイス、例えば、光ディスク、磁気ディスク、又は光磁気ディスクからデータを受け取るため、上記大量ストレージ・デバイスへデータを転送するため、又は両方のために含むことが可能である、又は動作上でつなげられることが可能である。コンピュータがこれらのデバイスを必ずしも必要としないことに留意されたい。さらにその上、コンピュータは、別のデバイスに組み込まれることが可能である。後者の非限定的な実例は、ゲーム・コンソール、携帯電話機、モバイル・オーディオ・プレーヤ、パーソナル・ディジタル・アシスタント(PDA:personal digital assistant)、ビデオ・プレーヤ、グローバル・ポジショニング・システム(GPS:Global Positioning System)受信機、又は携帯型ストレージ・デバイスを含む。ストレージ・デバイスの非限定的な実例は、ユニバーサル・シリアル・バス(USB:universal serial bus)フラッシュ・ドライブを含む。
【0023】
コンピュータ・プログラム命令及びデータを記憶するために適したコンピュータ可読媒体は、不揮発性メモリ、媒体及びメモリ・デバイスのすべての形態を含み、非限定的な実例は、光磁気ディスク、半導体メモリ・デバイス(例えば、EPROM、EEPROM、及びフラッシュ・メモリ・デバイス)、CD ROMディスク、磁気ディスク(例えば、内部ハード・ディスク又はリムーバブル・ディスク)、及びDVD-ROMディスクを含む。プロセッサ及びメモリは、専用論理回路により補われる、又は取り込まれることが可能である。
【0024】
ユーザとの対話を提供するために、本明細書において説明する主題の実施例は、ユーザへ情報を表示するためのディスプレイ・デバイス及びユーザがコンピュータへ入力を提供できる入力デバイス(例えば、キーボード、マウス又はトラックボールなどのポインティング・デバイス、等)を有するコンピュータ上に実装されることが可能である。他の種類のデバイスが、ユーザとの対話を提供するために使用されることが可能である。ユーザに提供されるフィードバックは、感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)を含むことができる。ユーザからの入力は、音響入力、会話入力、又は触覚入力を含め、任意の形態で受け取られることが可能である。さらにその上、コンピュータとユーザにより使用されるデバイスとの間での文書の交換によりユーザとコンピュータとの間の対話があり得る。実例として、コンピュータは、ウェブ・ブラウザから受信される要請に応じてユーザのクライアント・デバイス上でウェブ・ブラウザへウェブ・ページを送ることが可能である。
【0025】
この明細書において説明される主題の実施例は、フロント・エンド・コンポーネント(例えば、グラフィカル・ユーザ・インターフェース若しくはユーザが当該Webブラウザを通して本明細書において説明する主題の実装形態と対話できるWebブラウザを有するクライアント・コンピュータ)、又はミドルウェア・コンポーネント(例えば、アプリケーション・サーバ)、又はバック・エンド・コンポーネント(例えば、データ・サーバ)、又は1つ若しくは複数のこのようなバック・エンド・コンポーネント、ミドルウェア・コンポーネント、若しくはフロント・エンド・コンポーネントのいずれかの組み合わせを含むコンピューティング・システムに実装されることが可能である。システムのコンポーネントは、ディジタル・データ通信の任意の形態又は媒体、例えば、通信ネットワークにより相互接続されることが可能である。通信ネットワークの非限定的な実例は、ローカル・エリア・ネットワーク(“LAN:local area network”)及びワイド・エリア・ネットワーク(“WAN:wide area network”)を含む。
【0026】
コンピュータ・システムは、クライアント及びサーバを含むことが可能である。クライアント及びサーバは、一般に互いに遠く離れており、典型的には通信ネットワークを通して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で走り、互いに対するクライアント-サーバ関係を有するコンピュータ・プログラムによって生じる。
【0027】
図1は、1つの実施例によるシステム・アーキテクチャ100を図示する。
【0028】
組み込み型ノートブック・エディタ104が、エンタープライズ・ソフトウェア・クライアント・インターフェース102内に組み込まれ、アプリケーション・サーバ106内に組み込まれるリバース・プロキシ108を介してEASをノートブック対話型開発環境114に接続する。リバース・プロキシ108は、別のサービスとしての代わりに、エンタープライズ・アプリケーション内のコンポーネントとして組み込まれる。このことは、リバース・プロキシ108が同じコードであるので、リバース・プロキシ108がエンタープライズ・アプリケーションのすべてのリソースにシームレスにアクセスすることを可能にする。アプリケーション・サーバ106は、マルチ・ユーザ・サーバ112、ノートブック対話型開発環境114及びノートブック実行ツール118を含むコンテナ管理システム110と通信する。マルチ・ユーザ・サーバ112は、ノートブック対話型開発環境114のインスタンスを管理する。ノートブック実行ツール118は、計算ノートブックのスケジュール型実行のために使用される。
【0029】
実行の結果は、API120を介してデータ・サーバ116に記憶されることが可能である。組み込み型ノートブック・エディタ104もまた、スケジュール型ノートブックを走らせるための環境も提供し、図3で下記に論じられる。
【0030】
組み込み型ノートブック・エディタ104は、計算ノートブック環境により提供されるData Science及びMachine学習能力を用いてEASを拡張できる。
【0031】
1つの実施例では、組み込み型ノートブック・エディタ104は、Jupyter(商標)Notebookエディタであり、マルチ・ユーザ・サーバ112は、JupyterHub(商標)であり、そしてノートブック対話型開発環境114は、JupyterLab(商標)Instanceである。コンテナ管理システム110は、例えば、Kubernetes(商標)であってもよい。
【0032】
システム・アーキテクチャ100により具体化されるシステムは、EASの組み込み型ノートブック・エディタ104への接続を可能にし、上記組み込み型ノートブック・エディタ104は、スケジュール型モードで使用されてもよい、ノートブック・テンプレートを含む1つ又は複数の計算ノートブックの実行及びオーサリングのための環境を提供する。
【0033】
ノートブック・テンプレートは、下記のように記述されることが可能である。計算ノートブックは、実行の直線的な流れを記述し、ノートブック内に全体のワークフローを構築できる。ノートブック・テンプレートは、パラメータ化した計算ノートブックの概念を導入し、上記パラメータ化した計算ノートブックは、ユーザがコード内のパラメータを特定すること及びランタイムにおいて入力値を受諾することを可能にする計算ノートブックである。これが、再使用可能なテンプレートとしての計算ノートブックを規定するメカニズムを提供する。
【0034】
図2は、1つの実施例によるスケジュール実行のためのワークフロー200を図示する。組み込み型ノートブック・エディタ104は、ステップ202において1つ又は複数のノートブック・テンプレートを作成し、ノートブック・テンプレートはステップ204における実行のためにスケジュールされる。ノートブック実行ツール118は、ステップ206において1つ又は複数のノートブック・テンプレートをパラメータ化し、そしてさらにステップ208においてその後のノートブック実行のワークフローも設定できる。計算ノートブックは、次いで、ステップ210において出力される。
【0035】
上に論じたように、実行の2つのモード:対話型及びスケジュール型がある。スケジュール型モードでは、計算ノートブックの実行のスケジューリングは、ユーザが特定の計算ノートブックを定期的に走らせることを可能にする。例えば、ユーザは、週の最初の日若しくは最後の日、又は月の最初の日若しくは最後の日、又は一年の初め若しくは終わりに異なる値を用いて実行される報告を持ちたいと思うはずである。このような実行は、計算ノートブックをパラメータ化することによって容易にされる。
【0036】
加えて、スケジューリングをパラメータ化した計算ノートブックと組み合わせることは、ユーザがデータのカスタム解析をトリガするために計算ノートブックを再使用できる強力なワークフローを利用可能にする。例えば、ユーザは、計算ノートブックを走らせること及びその結果に依存して、次を走らせるために特定の計算ノートブックを選択することを望むことがある。ワークフローは、計算ノートブックから計算的にノートブックへ手動でコピー・アンド・ペーストする必要なしに実行されることが可能である。
【0037】
図3は、1つの実施例によるノートブック・スケジューリング及び実行フロー300を図示する。1つ又は複数のノートブック・テンプレート302が、スケジュール型実行のための準備の際に、組み込み型ノートブック・エディタ104により作成される。ノートブック実行ツール118は、ノートブック・テンプレート302をパラメータ化型ノートブック304へと変換し、計算ノートブックのコードに明示されている場合に、ノートブックのワークフロー310を作成し、上記ワークフローもまた実行される。結果は、ストレージ308に次いで記憶されることが可能である出力計算ノートブック306である。
【0038】
ノートブック実行ツール118の実例は、Papermill(商標)であり、これがJupyter(商標)Notebooksをパラメータ化しそして実行するために使用されることが可能である。
【0039】
対話型モードで(図1からの)組み込み型ノートブック・エディタ104を使用する実例が、図4のサプライ・チェーン・データに関して下記のように説明される。履歴データは、例えば、特定の部品のどれだけのユニット数が月次ベースで2011年5月と2014年3月との期間の間に特定のサイトで販売されたかを含む。図4に示したデータ・テーブル400は、全履歴データから初めの15個の記入だけを列挙する。ユーザは、月次及び四半期の2つの方法で、このデータを予測するためにこの履歴の時系列データを使用したがるはずである。
【0040】
計算ノートブックがEAS内に組み込まれるので、計算ノートブックは、EASに対してアクセス可能であるデータをアクセスできる。
【0041】
ユーザは、組み込み型ノートブック・エディタ104を使用して、2つのノートブック-図5に示したように各々の予測について1つ-を作ることができる。図5に示した実施例では、Jupyter(商標)Notebooksが、計算ノートブック:月次予測502について1つ、そして四半期予測504について1つ、を生成するために使用される。各々のケースで、同じ機械学習モデルが、履歴データ上でトレーニングするために使用される、このケースではFB Prophetである。しかしながら、他のMLモデルが使用されることがある。あるカーネルがコードを実行するために選択される。異なるカーネルが使用されてもよい一方で、図5に示した実例では、Python3が、ある種のライブラリを含みながらカーネルとして使用される。実行のためのカーネルの他の実例は、R及びMATLAB(登録商標)を含む。
【0042】
図6は、月次予測602及び四半期予測604を用いて、図5の計算ノートブックを使用する月次予測及び四半期予測を図示する。点は、履歴データを指し、一方で実線は、機械学習モデルにより与えられる予測を表す。グレーのシェーディングは、予測の確信間隔を指す。驚くことではなく、月次予測602が2013年4月から2014年3月の予測期間中には四半期予測604よりももっと粗い。
【0043】
スケジュール型モードにおいて(図1からの)組み込み型ノートブック・エディタ104を使用する実例が、図7のサプライ・チェーン・データに関して、下記のように記載される。履歴データは、例えば、特定の部品のどれだけのユニット数が、月次ベースで2014年6月と2017年5月との期間の間に特定のサイトで販売されたかを含む。図6に示したデータ・テーブル400は、全履歴データから初めの15個の記入だけを列挙する。ユーザは、スケジュール型モードで、このデータを予測するためにこの履歴の時系列データを使用したがるはずである。図7に示した実施例では-図7、Jupyter(商標)ノートブックが、結果を生成するためにPaperMill(商標)を用いて使用される。
【0044】
計算ノートブックがEAS内に組み込まれるので、計算ノートブックは、EASにアクセス可能であるデータにアクセスできる。
【0045】
図8Aは、図7に関連して、計算ノートブックの実行のスクリーンショットを図示する。スケジュール型タスク802は、スクリプト804(Trigger Notebook806と呼ばれる)を呼び出す。計算ノートブックがEAS内に組み込まれるので、計算ノートブックはスクリプトになることが可能である。この計算ノートブックがパラメータ化され、そのパラメータ808は「Scenario」及び「Part」である。「Senario」は、ユーザにより要求された予測のタイプを指す。図8Aでは、四半期予測が選択されている。「Part」は部品番号を指し、これもまたユーザにより選択される。
【0046】
図8Bは、図8Aに示した計算ノートブックのスケジュール型実行により得られた四半期予測810を図示する。結果が、3017年6月30日と2018年3月31日との間の期間にわたって表形式812で示される。
【0047】
図8A及び図8Bの両方で、結果は、パラメータ化型Jupyter(商標)ノートブックを実行したPaperMill(商標)を使用して得られている。
【0048】
この明細書が多くの具体的な実装形態の詳細を包含する一方で、これらは、何が特許請求され得るかの範囲についての限定として解釈されるべきではなく、むしろ特定の実施例に特有であり得る特徴の説明として解釈されるべきである。別の実施例の文脈でこの明細書で説明されるある種の特徴もまた、単一の実施例に組み合わせて実施されることもある。逆に、単一の実施例の文脈において説明される様々な特徴もまた、多数の実施例において別々に又は任意の適切な部分的組み合わせで実施されてもよい。その上、特徴がある種の実施例で作用するように上記に記載され、そしてそれどころかそれ自体初めに権利を主張しているけれども、権利を主張する組み合わせからの1つ又は複数の特徴が、いくつかのケースでは組み合わせから削除され、権利を主張する組み合わせが、部分的組み合わせ又は部分的組み合わせの変形例に向けられてもよい。
【0049】
同様に、オペレーションが特定の順番で図面に描かれている一方で、そのようなオペレーションが、望ましい結果を達成するために、示された特定の順番で若しくは連続的な順番で行われること、又はすべての図説されたオペレーションが行われることが要求されると理解されるべきではない。ある種の状況では、マルチタスキング及び並列処理が有利なことがある。その上、上に記載した実施例の様々なシステム・モジュール及びコンポーネントの分離が、すべての実施例においてそのような分離が要求されると理解されるべきではなく、そして、記載したプログラム・コンポーネント及びシステムが、一般に、単一のソフトウェア製品に一緒に統合される又は多数のソフトウェア製品にパッケージ化されてもよいことが理解されるべきである。
【0050】
主題の特定の実施例が、説明されてきている。他の実施例は、別記の特許請求の範囲の範囲内である。例えば、特許請求の範囲において詳述した行為が、異なる順番で行われてもよく、そして依然として望ましい結果を達成できる。1つの実例として、添付の図に描かれたプロセスは、望ましい結果を達成するために、示した特定の順番、又は連続的な順番を必ずしも必要としない。ある種の実装形態では、マルチタスキング及び並列処理が、有利なことがある。
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
【国際調査報告】