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

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

▶ ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドの特許一覧

特表2024-500263クラウドコード開発システム、方法、装置、デバイス及び記憶媒体
<>
  • 特表-クラウドコード開発システム、方法、装置、デバイス及び記憶媒体 図1
  • 特表-クラウドコード開発システム、方法、装置、デバイス及び記憶媒体 図2
  • 特表-クラウドコード開発システム、方法、装置、デバイス及び記憶媒体 図3
  • 特表-クラウドコード開発システム、方法、装置、デバイス及び記憶媒体 図4
  • 特表-クラウドコード開発システム、方法、装置、デバイス及び記憶媒体 図5
  • 特表-クラウドコード開発システム、方法、装置、デバイス及び記憶媒体 図6
  • 特表-クラウドコード開発システム、方法、装置、デバイス及び記憶媒体 図7
  • 特表-クラウドコード開発システム、方法、装置、デバイス及び記憶媒体 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-09
(54)【発明の名称】クラウドコード開発システム、方法、装置、デバイス及び記憶媒体
(51)【国際特許分類】
   G06F 8/30 20180101AFI20231226BHJP
   G06F 9/455 20180101ALI20231226BHJP
   G06F 11/30 20060101ALI20231226BHJP
   G06F 11/07 20060101ALI20231226BHJP
   H04L 67/08 20220101ALI20231226BHJP
   H04L 67/2895 20220101ALI20231226BHJP
【FI】
G06F8/30
G06F9/455 150
G06F11/30 155
G06F11/07 140A
H04L67/08
H04L67/2895
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023508557
(86)(22)【出願日】2022-06-20
(85)【翻訳文提出日】2023-02-07
(86)【国際出願番号】 CN2022099898
(87)【国際公開番号】W WO2023093016
(87)【国際公開日】2023-06-01
(31)【優先権主張番号】202111422652.0
(32)【優先日】2021-11-26
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
(71)【出願人】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100163511
【弁理士】
【氏名又は名称】辻 啓太
(72)【発明者】
【氏名】李 楊
(72)【発明者】
【氏名】彭 雲鵬
(72)【発明者】
【氏名】郭 志越
(72)【発明者】
【氏名】陳 暁有
(72)【発明者】
【氏名】張 楠▲シ▼
(72)【発明者】
【氏名】高 宇健
【テーマコード(参考)】
5B042
5B376
【Fターム(参考)】
5B042JJ15
5B376BA18
5B376BC31
(57)【要約】
本開示は、クラウドコード開発システム、方法、装置、デバイス及び記憶媒体を提供し、コンピューター技術分野に関し、特にクラウドコード開発、オンラインコーディング技術分野に関する。具体的な技術案は、以下の通りである。クライアントは、プロキシモジュールとリモートサーバーモジュールとを含み、リモートサーバーモジュールは、ユーザーによって入力されたコードを取得し、ストリーム同期方式でユーザーによって入力されたコードをクラウドサーバーに同期させ、クラウドサーバーは、リモートサーバーモジュールに対応するコーディング仮想マシンを作成し、ストリーム同期方式でリモートサーバーモジュールによって同期されたコードを仮想マシンに書き込み、コーディング仮想マシンによりコードを実行し、対応するタスクを生成し、プロキシモジュールは、クラウドサーバーからタスクをプルし、タスクをリモートサーバーモジュールに送信し、リモートサーバーモジュールは、さらに、タスクを実行するように構成される。本開示によれば、クラウドコード開発を実現し、ストリーム同期方式によりクライアントとクラウドサーバーのコードの一貫性を高め、クラウドコード開発の応答速度を高めることができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
クライアントと、クラウドサーバーとを含むクラウドコード開発システムであって、前記クライアントは、プロキシモジュールとリモートサーバーモジュールとを含み、
前記リモートサーバーモジュールは、ユーザーによって入力されたコードを取得し、ストリーム同期方式で前記ユーザーによって入力されたコードを前記クラウドサーバーに同期させるように構成され、
前記クラウドサーバーは、前記リモートサーバーモジュールに対応するコーディング仮想マシンを作成し、ストリーム同期方式で前記リモートサーバーモジュールによって同期されたコードを前記仮想マシンに書き込み、前記コーディング仮想マシンにより前記コードを実行し、対応するタスクを生成するように構成され、
前記プロキシモジュールは、前記クラウドサーバーから前記タスクをプルし、前記タスクを前記リモートサーバーモジュールに送信するように構成され、
前記リモートサーバーモジュールは、さらに、前記タスクを実行するように構成される、クラウドコード開発システム。
【請求項2】
前記リモートサーバーモジュールは、具体的に、端末エミュレータを作成し、前記端末エミュレータによりユーザーが入力したコードを取得し、リアルタイムな同期型全二重通信方式で前記コードを前記クラウドサーバーのコーディング仮想マシンに送信するように構成され、
前記クラウドサーバーは、具体的に、受信された前記コードを前記コーディング仮想マシンのマスタ擬似端末に入力し、前記マスタ擬似端末のファイル記述子をブロックし、前記マスタ擬似端末により前記コードをスレーブ擬似端末にマッピングし、前記スレーブ擬似端末により前記コードを前記コーディング仮想マシンのコマンドプロセッサに入力するように構成される、
請求項1に記載のクラウドコード開発システム。
【請求項3】
前記プロキシモジュールは、さらに、前記リモートサーバーモジュールと前記リモートサーバーモジュールに対応するコーディング仮想マシンを管理するように構成され、管理は、アップグレード、バックトラッキング、再起動、削除、新規追加、および状態検出の少なくとも一つを含む、
請求項1に記載のクラウドコード開発システム。
【請求項4】
前記プロキシモジュールは、具体的に、周期的に前記コーディング仮想マシンにハートビート要求を送信し、前記コーディング仮想マシンの応答情報を受信した後、前記コーディング仮想マシンが利用可能であると判断し、連続的なプリセット数の周期内に前記コーディング仮想マシンの応答情報を受信しない場合、前記コーディング仮想マシンが利用不可であると判断し、前記クラウドサーバーに前記コーディング仮想マシンに対する回復情報を送信するように構成され、
前記クラウドサーバーは、さらに、前記コーディング仮想マシンにより前記ハートビート要求に応答して前記クライアントに応答情報を送信し、前記回復情報に応答して前記コーディング仮想マシンを回復するように構成される、
請求項1に記載のクラウドコード開発システム。
【請求項5】
前記クラウドサーバーは、さらに、前記コーディング仮想マシンにより前記タスクのタスク通知を通知キューに追加するように構成され、
前記プロキシモジュールは、具体的に、前記コーディング仮想マシンの通知キューからタスク通知をプルし、前記タスク通知に基づいて前記コーディング仮想マシンから前記タスクをプルし、前記タスクを前記リモートサーバーモジュールに送信し、前記リモートサーバーモジュールのタスク実行状況を取得し、前記タスク実行状況をコーディング仮想マシンに送信するように構成され、
前記クラウドサーバーは、さらに、前記コーディング仮想マシンにより、前記タスク実行状況に従って、前記コーディング仮想マシンにおけるタスクを更新するように構成される、
請求項1に記載のクラウドコード開発システム。
【請求項6】
前記クラウドコード開発システムは、さらに、前記クライアントと前記クラウドサーバーとの間にデータメッセージを転送するためのリバースプロキシサーバーを含む、
請求項1に記載のクラウドコード開発システム。
【請求項7】
クライアントに適用されるクラウドコード開発方法であって、
前記クラウドコード開発方法は、
ユーザーによって入力されたコードを取得し、ストリーム同期方式で前記コードをクラウドサーバーに同期させることと、
前記クラウドサーバーからタスクをプルし、前記タスクは前記クラウドサーバーにおけるコーディング仮想マシンによって前記コードに基づいて生成されたものであることと、
前記タスクを実行することと、
を含む、クラウドコード開発方法。
【請求項8】
前記ユーザーによって入力されたコードを取得し、ストリーム同期方式で前記コードをクラウドサーバーに同期させることは、
端末エミュレータを作成し、前記端末エミュレータによりユーザーが入力したコードを取得することと、
リアルタイムな同期型全二重通信方式で前記コードを前記クラウドサーバーのコーディング仮想マシンに送信することと、
を含む、請求項7に記載のクラウドコード開発方法。
【請求項9】
前記クラウドコード開発方法は、さらに、
周期的に前記コーディング仮想マシンにハートビート要求を送信することと、
前記コーディング仮想マシンの応答情報を受信した後、コーディング仮想マシンが利用可能であると判断することと、
連続的なプリセット数の周期内に前記コーディング仮想マシンの応答情報を受信しない場合、前記コーディング仮想マシンが利用不可であると判断し、前記クラウドサーバーに前記コーディング仮想マシンに対する回復情報を送信することと、
を含む、請求項7に記載のクラウドコード開発方法。
【請求項10】
前記クラウドサーバーからタスクをプルすることは、
前記コーディング仮想マシンの通知キューからタスクのタスク通知をプルすることと、
前記タスク通知に基づいて、前記コーディング仮想マシンから前記タスクをプルすることと、
を含み、
前記クラウドコード開発方法は、さらに、
前記タスクのタスク実行状況を取得し、前記タスク実行状況を前記コーディング仮想マシンに送信することを含む、
請求項7に記載のクラウドコード開発方法。
【請求項11】
クラウドサーバーに適用されるクラウドコード開発方法であって、
前記クラウドコード開発方法は、
コーディング仮想マシンを作成することと、
ストリーム同期方式で同期されたコードを前記仮想マシンに書き込むことと、
前記コーディング仮想マシンにより前記コードを実行し、対応するタスクを生成することと、
を含む、クラウドコード開発方法。
【請求項12】
前記ストリーム同期方式で同期されたコードを前記仮想マシンに書き込むことは、
受信された前記コードを前記コーディング仮想マシンのマスタ擬似端末に入力し、前記マスタ擬似端末のファイル記述子をブロックし、前記マスタ擬似端末により前記コードをスレーブ擬似端末にマッピングし、前記スレーブ擬似端末により前記コードを前記コーディング仮想マシンのコマンドプロセッサに入力することを含む、
請求項11に記載のクラウドコード開発方法。
【請求項13】
前記クラウドコード開発方法は、さらに、
前記コーディング仮想マシンによりクライアントに送信されたハートビート要求に応答して、前記クライアントに応答情報を送信することと、
前記コーディング仮想マシンを回復することを表す回復情報に応答して、前記コーディング仮想マシンを回復することと、
を含む、請求項11に記載のクラウドコード開発方法。
【請求項14】
前記クラウドコード開発方法は、さらに、
前記コーディング仮想マシンにより前記タスクのタスク通知を通知キューに追加することと、
前記コーディング仮想マシンにより、クライアントによって送信されたタスク実行状況に従って、前記コーディング仮想マシンにおけるタスクを更新することと、
を含む、請求項11に記載のクラウドコード開発方法。
【請求項15】
クライアントに適用されるクラウドコード開発装置であって、
前記クラウドコード開発装置は、
ユーザーによって入力されたコードを取得し、ストリーム同期方式でコードをクラウドサーバーに同期させるためのリモートサーバーモジュールと、
前記クラウドサーバーからタスクをプルし、前記タスクを前記リモートサーバーモジュールに送信するためのプロキシモジュールであって、前記タスクは、前記クラウドサーバーにおけるコーディング仮想マシンによって前記コードに基づいて生成されたものであるプロキシモジュールと、
を含み、
前記リモートサーバーモジュールは、さらに、前記タスクを実行するように構成される、
クラウドコード開発装置。
【請求項16】
クラウドサーバーに適用されるクラウドコード開発装置であって、
前記クラウドコード開発装置は、
コーディング仮想マシンを作成するための仮想マシン作成モジュールと、
ストリーム同期方式で同期されたコードを前記仮想マシンに書き込むためのコード同期モジュールと、
前記コーディング仮想マシンにより前記コードを実行し、対応するタスクを生成するためのタスク生成モジュールと、を含む、
クラウドコード開発装置。
【請求項17】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信接続されるメモリと、
を含む電子デバイスであって、
前記メモリに、前記少なくとも1つのプロセッサによって実行可能な命令を記憶しており、前記少なくとも1つのプロセッサが請求項7~14のいずれか1項に記載のクラウドコード開発方法を実行できるように、前記命令は、前記少なくとも1つのプロセッサによって実行される、
電子デバイス。
【請求項18】
コンピューターに請求項7~14のいずれか1項に記載のクラウドコード開発方法を実行させるためのコンピューター命令を記憶している非一時的なコンピューター可読記憶媒体。
【請求項19】
コンピュータープログラムを含むコンピュータープログラム製品であって、
前記コンピュータープログラムがプロセッサによって実行されると、請求項7~14のいずれか1項に記載のクラウドコード開発方法を実現する、
コンピュータープログラム製品。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2021年11月26日に中国国家知的財産権局に出願された、出願番号が202111422652.0であり、発明の名称が「クラウドコード開発システム、方法、装置、デバイス及び記憶媒体」である中国特許出願に基づき優先権を主張する。ここで、その全ての内容は、援用により本出願に組み込まれる。
【技術分野】
【0002】
本開示はコンピューター技術分野に関し、特にクラウドコード開発、オンラインコーディング技術に関する。
【背景技術】
【0003】
クラウドコード開発は、クラウド統合を実行するバックエンドクラウドサービスを提供する。従来のフロントエンド開発手法と比べて、クラウドコード開発は、データベース、記憶、関数、静的ホスティング等の基礎的能力を含む、完全なバックエンドクラウドサービスを提供することができるため、フロントエンドのハードウェアリソースを大幅に節約できる。ユーザーは、スマートフォンによって高い演算性能のコードの開発を実現することもできる。そして、コンピューター技術の発展に伴い、コード開発は、元のモノリシックアーキテクチャーから、疎結合で独立して配置可能な多数の小さなコンポーネントまたはサービスで構成される複数のサービスアプリケーションに徐々に分割される。クラウドコード開発は共同開発のシナリオによく適応できる。
【発明の概要】
【0004】
本開示はクラウドコード開発システム、方法、装置、デバイス及び記憶媒体を提供する。
【0005】
本開示の一形態によれば、クラウドコード開発システムを提供し、
前記クラウドコード開発システムは、クライアントと、クラウドサーバーとを含み、前記クライアントは、プロキシモジュールとリモートサーバーモジュールとを含み、
前記リモートサーバーモジュールは、ユーザーによって入力されたコードを取得し、ストリーム同期方式で前記ユーザーによって入力されたコードを前記クラウドサーバーに同期させるように構成され、
前記クラウドサーバーは、前記リモートサーバーモジュールに対応するコーディング仮想マシンを作成し、ストリーム同期方式で前記リモートサーバーモジュールによって同期されたコードを前記仮想マシンに書き込み、前記コーディング仮想マシンにより前記コードを実行し、対応するタスクを生成するように構成され、
前記プロキシモジュールは、前記クラウドサーバーから前記タスクをプルし、前記タスクを前記リモートサーバーモジュールに送信するように構成され、
前記リモートサーバーモジュールは、さらに、前記タスクを実行するように構成される。
【0006】
本開示の他の形態によれば、クライアントに適用されるクラウドコード開発方法を提供し、前記クラウドコード開発方法は、
ユーザーによって入力されたコードを取得し、ストリーム同期方式で前記コードをクラウドサーバーに同期させることと、
前記クラウドサーバーからタスクをプルし、前記タスクは前記クラウドサーバーにおけるコーディング仮想マシンによって前記コードに基づいて生成されたものであることと、
前記タスクを実行することと、
を含む。
【0007】
本開示の他の形態によれば、クラウドサーバーに適用されるクラウドコード開発方法を提供し、前記クラウドコード開発方法は、
コーディング仮想マシンを作成することと、
ストリーム同期方式で同期されたコードを前記仮想マシンに書き込むことと、
前記コーディング仮想マシンにより前記コードを実行し、対応するタスクを生成することと、
を含む。
【0008】
本開示の他の形態によれば、クライアントに適用されるクラウドコード開発装置を提供し、前記クラウドコード開発装置は、
ユーザーによって入力されたコードを取得し、ストリーム同期方式でコードをクラウドサーバーに同期させるためのリモートサーバーモジュールと、
前記クラウドサーバーからタスクをプルし、前記タスクを前記リモートサーバーモジュールに送信するためのプロキシモジュールであって、前記タスクは、前記クラウドサーバーにおけるコーディング仮想マシンによって前記コードに基づいて生成されたものであるプロキシモジュールと、
を含み、
前記リモートサーバーモジュールは、さらに、前記タスクを実行するように構成される。
【0009】
本開示の他の形態によれば、クラウドサーバーに適用されるクラウドコード開発装置を提供し、前記クラウドコード開発装置は、
コーディング仮想マシンを作成するための仮想マシン作成モジュールと、
ストリーム同期方式で同期されたコードを前記仮想マシンに書き込むためのコード同期モジュールと、
前記コーディング仮想マシンにより前記コードを実行し、対応するタスクを生成するためのタスク生成モジュールと、を含む。
【0010】
本開示の他の形態によれば、電子デバイスを提供し、
前記電子デバイスは、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信接続されるメモリと、を含み、
前記メモリに、前記少なくとも1つのプロセッサによって実行可能な命令を記憶しており、前記少なくとも1つのプロセッサが本開示のいずれか1項に記載のクラウドコード開発方法を実行できるように、前記命令が前記少なくとも1つのプロセッサによって実行される。
【0011】
本開示の他の形態によれば、コンピューターに本開示のいずれか1項に記載のクラウドコード開発方法を実行させるためのコンピューター命令を記憶している非一時的なコンピューター可読記憶媒体を提供する。
【0012】
本開示の他の形態によれば、コンピュータープログラムを含むコンピュータープログラム製品を提供し、前記コンピュータープログラムがプロセッサによって実行されると、本開示のいずれか1項に記載のクラウドコード開発方法を実現する。
【0013】
本開示の実施例において、クラウドコード開発を実現し、コードファイルの同期方式と比べて、ストリーム同期方式によりクライアントとクラウドサーバーのコードの一貫性を高め、クラウドコード開発の応答速度を高めることができる。
【0014】
この部分で説明された内容は、本開示の実施例の大切なまたは重要な特徴を表すことを意図するものではなく、本開示の範囲を制限するためのものでもないことが理解される。本開示の他の特徴は、以下の明細書によって容易に理解される。
【図面の簡単な説明】
【0015】
本出願の実施例及び従来技術の技術案をより明確に説明するために、以下に、実施例及び従来技術に必要な図面を簡単に説明する。明らかに、以下に説明される図面は単に本出願の実施例の一部であり、当業者であれば、創造的な働きをせずに、これらの図面に基づいて他の実施例が得られる。
図1図1は本開示に係る第1実施例の模式図である。
図2図2は本開示に係る第2実施例の模式図である。
図3図3は本開示に係るAgentのインストール方法の模式図である。
図4図4は本開示に係る第3実施例の模式図である。
図5図5は本開示に係る第4実施例の模式図である。
図6図6は本開示に係るクライアントに適用されるクラウドコード開発方法の模式図である。
図7図7は本開示に係るクラウドサーバーに適用されるクラウドコード開発方法の模式図である。
図8図8は本開示の実施例に係るクラウドコード開発方法を実現するための電子デバイスのブロック図である。
【発明を実施するための形態】
【0016】
以下、本開示の例示的な実施例について、図面を参照しながら説明する。ここで、理解しやすいように、本開示の実施例の様々な詳細を含むが、それらは、単なる例示と見なされるべきである。このため、当業者は、本開示の範囲及び精神から逸脱しない範囲で、本明細書に記載された実施例に対する変更又は修正を行うことができることを理解できる。同様に、明確且つ簡潔にするために、以下の説明では、周知の機能及び構成の説明を省略する。
【0017】
関連するクラウドコード開発技術において、クライアントのローカルでIDE(Integrated Development Environment、統合開発環境)を使用して、ユーザーによって入力されたコードを取得し、ユーザーによって作成されたコードファイルが完成した後、Samba(情報サービスブロック)またはFTP(File Transfer Protocol、ファイル転送プロトコル)方式によりコードファイルをクラウドサーバーに同期させ、クラウドサーバーは、クライアントによって送信されたコードファイルに従ってクラウドサーバーのローカルのコードファイルを更新することにより、クラウドコード開発を実現する。しかし、上記方法を採用する場合、コードファイルへのアクセス速度が遅く、インデックスの作成が遅く、検索速度が遅く、安全性が悪いなどの問題があり、且つ例えばIntellisense(インテリセンス)機能などのIDEの高度な機能は使用できない。
【0018】
そこで、本開示の実施例は、クラウドコード開発システムを提供し、図1を参照して、該クラウドコード開発システムは、クライアント11と、クラウドサーバー12とを含み、前記クライアント11は、プロキシモジュール111とリモートサーバーモジュール112とを含み、
前記リモートサーバーモジュール112は、ユーザーによって入力されたコードを取得し、ストリーム同期方式で前記ユーザーによって入力されたコードを前記クラウドサーバーに同期させるように構成され、
前記クラウドサーバー12は、前記リモートサーバーモジュールに対応するコーディング仮想マシンを作成し、ストリーム同期方式で前記リモートサーバーモジュールによって同期されたコードを前記仮想マシンに書き込み、前記コーディング仮想マシンにより前記コードを実行し、対応するタスクを生成するように構成され、
前記プロキシモジュール111は、前記クラウドサーバーから前記タスクをプル(pull)し、前記タスクを前記リモートサーバーモジュール112に送信するように構成され、
前記リモートサーバーモジュール112は、さらに、前記タスクを実行するように構成される。
【0019】
クライアントにプロキシモジュール(Agent)と、リモートサーバーモジュール(Remote-Server)がインストールされ、クラウドサーバーにRemote-Serverに対応するコーディング仮想マシンが作成される。Remote-Serverは、ユーザーによってクライアントに入力されたコードを取得し、ストリーム同期方式でコードをクラウドサーバーにおける対応するコーディング仮想マシンに同期させる。コーディング仮想マシンは、受信されたコードを実行して、対応するタスクを生成する。Agentは、クラウドサーバーのコーディング仮想マシンからタスクをプルし、リモートサーバーモジュールに送信し、リモートサーバーモジュールによりタスクを実行する。上述タスクは、例えばコードジャンプ、コード自動補完、コードツールチップ等のIDEの高度な機能タスクであってよい。
【0020】
関連技術におけるコードファイルの同期とは異なり、本開示の実施例におけるRemote-Serverは、ストリーム同期方式を使用してクラウドサーバーとのコード同期を実現できるRemote-Serverは、ユーザーによって入力されたコード(コードの削除、上書き等の場合を含む)を、データストリーム方式でクラウドサーバーのコーディング仮想マシンに直接に同期させるが、コードファイルの作成が完成した後、コードファイルの形式でクラウドサーバーに同期される必要がない。クラウドサーバーとクライアントのローカルとのコードは強一貫性を有し、コードへのアクセス速度が速く、インデックスの作成が速く、検索速度が速い。また、Agentがクラウドサーバーからタスクをプルして、Remote- Serverに該タスクを実行させることで、IDEの高度な機能の利用を実現でき、コードジャンプ、コード自動補完、コードツールチップ等の機能は、スムーズに実現される。
【0021】
一例において、クラウドサーバーは、リモート操作を必要とするホストであってよく、本開示の実施例に係るクラウドコード開発システムを適用すると、クラウドコード開発の体験をローカルの体験と一致させることができ、操作が必要な任意のホストに対してリモート操作を実現し、クラウドプログラムのデバッグと作成等の操作をサポートすることができ、複数のホストに対する統合管理を実現できる。
【0022】
クラウドサーバーは、擬似端末の方式によりコードの実行を実現してよい。
一可能な実施形態において、前記リモートサーバーモジュールは、具体的に、端末エミュレータを作成し、前記端末エミュレータによってユーザーが入力したコードを取得し、リアルタイムな同期型全二重通信方式で前記コードを前記クラウドサーバーのコーディング仮想マシンに送信するように構成され、
前記クラウドサーバーは、具体的に、受信された前記コードを前記コーディング仮想マシンのマスタ擬似端末に入力し、前記マスタ擬似端末のファイル記述子をブロックし、前記マスタ擬似端末により前記コードをスレーブ擬似端末にマッピングし、前記スレーブ擬似端末により前記コードを前記コーディング仮想マシンのコマンドプロセッサに入力するように構成される。
【0023】
一例において、Remote-Serverは、VS code(Visual Studio Code、ソースコードエディタ)に基づいて開発されたIDEであってよい。Remote-Serverは、リモートのfork-pty関数を呼び出すことにより、仮想マシンに擬似端末を作成できる。fork-pty関数は、まず、openpty関数を呼び出して、利用可能なマスタ擬似端末を取得し、マスタ擬似端末を取得した場合、新たにプロセスを作成し、このプロセスがマスタ擬似端末のファイル記述子を閉じて、その後、login_tty関数を呼び出してコーディング仮想マシンにスレーブ擬似端末を起動し、マスタ擬似端末によりユーザーによって入力されたコードをスレーブ擬似端末にマッピングし、スレーブ擬似端末がコードをコーディング仮想マシンのコマンドプロセッサに入力し、これによりコードの実行を実現する。例えば図2に示すように、ここで、TCP/IPはネットワーク接続プロトコルであり、Bashはコーディング仮想マシンのコマンドプロセッサを表し、Websocketは全二重通信のプロトコルである。
【0024】
本開示の実施例において、端末エミュレータによりユーザーが入力したコードを取得し、リアルタイムな同期型全二重通信方式で端末エミュレータによって収集されたコードをマスタ擬似端末に送信し、マスタ擬似端末のファイル記述子をブロックする。マスタ擬似端末は、コードの実行を担うことなく、マスタ擬似端末に入力されたコードをスレーブ擬似端末にマッピングし、スレーブ擬似端末は、コードをコーディング仮想マシンのコマンドプロセッサに入力し、これによりコードの実行を実現する。本開示において、データストリーム方式でコード同期を行い、クラウドサーバーとクライアントのローカルのコードは強一貫性を有し、コードへのアクセス速度が速く、インデックスの作成が速く、検索速度が速い。
【0025】
クライアントを初めて使用してクラウドコード開発を行うと、クライアントにAgentとRemote-Serverをインストールする必要がある。一例において、まず、クライアントにAgentをインストールし、Agentがインストールされた後、AgentによりクライアントのローカルでRemote-Serverをインストールする。クライアントのローカルにRemote-Serverをインストールする過程において、Agentは、さらに、クラウドサーバーに要求を送信することにより、クラウドサーバーにRemote-Serverに対応するコーディング仮想マシンを作成する。
【0026】
一例において、Agentをインストールする手順は、図3に示すように、インストールを開始すると、まず、プラットフォーム(Platform)インタフェース、Agentインタフェース、Registe Agent(登録クライアント)インタフェースに請求し、初期化操作を行う。現在デバイスにAgentがインストールされているかどうかを判断し、インストールされている場合はインストールを停止し、インストールされていない場合はインストール環境の検出を行う。まず、クライアントのローカルのJDK(Java Development Kit、ソフトウェア開発キット)のバージョンが要求されるバージョン(図において、バージョン1.6を例とする)よりも高いかどうかを判断し、高くない場合は、クラウドサーバーがPatchelf(動的ライブラリと実行可能なプログラムを修正するツール)を必要とするかどうかを判定し、必要であれば、第1バージョンに対応するJDK(図において、JDK1.8_Patchを例とする)をインストールし、必要でなければ、第2バージョンに対応するJDK(図において、JDK1.8_noPatchを例とする)をインストールする。クライアントのローカルのJDKのバージョンが要求されるバージョンよりも高い場合、Agentのソフトウェアパッケージ(クライアントインストールパッケージ)を起動し、クライアントにcodeserver(コードサーバー)がインストールされているかどうかを判断し、インストールされている場合、codeserverプラグイン及びそのユーザー構成をvscode-serverにコピーし、codeserverがインストールされていない場合、Patchelfを必要とするかどうかを判断し、必要であれば、vscode-server-Patchelfをダウンロードし、必要でなければ、vscode-server-noPatchelfをダウンロードする。vscode-serverを起動してHost(ホスト)情報及びIP情報等の情報を報告することにより、インストールを完了する。
【0027】
Agentがインストールされた後、ユーザーは、AgentによりクライアントのローカルのRemote-Serverとクラウドサーバーにおけるコーディング仮想マシンを管理する。一可能な実施形態において、前記プロキシモジュールは、さらに、前記リモートサーバーモジュールと前記リモートサーバーモジュールに対応するコーディング仮想マシンを管理するように構成され、ここで、管理は、アップグレード、バックトラッキング、再起動、削除、新規追加、および状態検出の少なくとも一つを含む。
【0028】
Remote-Serverとコーディング仮想マシンに対するAgentの管理は、アップグレード、バックトラッキング、再起動、削除、新規追加および状態検出の少なくとも一つを含む。一例において、Remote-Serverとコーディング仮想マシンの新規追加を例として、ユーザーは、AgentによりクライアントのローカルでRemote-Serverを作成するとともに、Agentは、このRemote-Serverをクラウドサーバーに登録し、クラウドサーバーは、Remote-Serverに対する登録情報を受信すると、それに応じて、このRemote-Serverに対応するコーディング仮想マシンを作成する。一例において、Remote-Serverとコーディング仮想マシンのバックトラッキングを例として、ユーザーは、コードをある時点にバックトラッキングしようとする時に、Agentによりクラウドサーバーにコーディング仮想マシンに対するバックトラッキングコマンドを送信し、クラウドサーバーにコーディング仮想マシンのバックトラッキングに必要なデータ(例えばコーディング仮想マシンのミラーイメージ等)が保存され、クラウドサーバーはこのデータを使用してコーディング仮想マシンに対してバックトラッキングを行い、コーディング仮想マシンは、バックトラッキング後に、対応するバックトラッキングタスクを生成し、Agentは、このバックトラッキングタスクをプルし、Remote- Serverに送信し、Remote- Serverにより実行することにより、Remote-Serverのバックトラッキングを実現する。
【0029】
本開示の実施例において、AgentによりクライアントのローカルのRemote-Serverとクラウドサーバーにおけるコーディング仮想マシンとを管理し、Remote-Serverとクラウドサーバーの管理を便利にし、AgentによりRemote-Serverとクラウドサーバーのアップグレード、バックトラッキング、再起動、削除、新規追加および状態検出等を実現し、クラウドコード開発の利用可能性を高めることができる。
【0030】
一可能な実施形態において、前記プロキシモジュールは、具体的に、周期的に前記コーディング仮想マシンにハートビート要求を送信し、前記コーディング仮想マシンの応答情報を受信すると、前記コーディング仮想マシンが利用可能であると判断し、連続的なプリセット数の周期内に前記コーディング仮想マシンの応答情報を受信しない場合、前記コーディング仮想マシンが利用不可であると判断し、前記クラウドサーバーに前記コーディング仮想マシンに対する回復情報を送信するように構成され、
前記クラウドサーバーは、さらに、前記コーディング仮想マシンにより前記ハートビート要求に応答して前記クライアントに応答情報を送信し、前記回復情報に応答して前記コーディング仮想マシンを回復するように構成される。
【0031】
一例において、Agentは、Client-serverアーキテクチャ設計を採用してよい。例えば、図4に示すように、クライアントにAgentがインストールされた後、Agentは、まずクラウドサーバーに登録して、正当なアクセス権限と制御権限を取得する。Remote-Serverとコーディング仮想マシンをインストールされた後、Agentは、周期的にコーディング仮想マシンにハートビート要求を送信し、ハートビート要求に対するコーディング仮想マシンの応答情報を受信した後、このコーディング仮想マシンが利用可能であると判定する。連続的なプリセット数の周期内(このプリセット数は、実際の状況に応じてカスタマイズされてよく、例えば3回、4回、5回等に設定される。)に、コーディング仮想マシンの応答情報を受信しない場合、Agentは、コーディング仮想マシンが異常であると判断する。Agentは、クラウドサーバーに異常なコーディング仮想マシンを回復することを表す回復情報を送信してよく、クラウドサーバーは、回復情報を受信した後、対応するコーディング仮想マシンを回復する。一例において、クラウドサーバーは、再起動または移行等の方法により利用不可のコーディング仮想マシンを回復することにより、クラウドコード開発の手順で行うことを保証する。クラウドサーバーは、まずこのコーディング仮想マシンの再起動を試み、コーディング仮想マシンのホストマシン等の理由で、このコーディング仮想マシンの再起動に失敗した場合、このコーディング仮想マシンのミラーイメージファイルを使用して、利用可能なホストマシン上でこのコーディング仮想マシンを再作成し、この再作成されたコーディング仮想マシンとRemote-Serverとの対応関係を再マッピングして、コーディング仮想マシンの移行を実現する。
【0032】
本開示の実施例において、Agentはハートビート要求によりクラウドサーバーにおけるコーディング仮想マシンの状態を取得し、そして回復情報により利用不可のコーディング仮想マシンを回復することにより、クラウドコード開発の手順で行うことを保証し、クラウドコード開発の利用可能性を高める。
【0033】
一可能な実施形態において、前記クラウドサーバーは、さらに、前記コーディング仮想マシンにより前記タスクのタスク通知を通知キューに追加するように構成され、
前記プロキシモジュールは、具体的に、前記コーディング仮想マシンの通知キューからタスク通知をプルし、前記タスク通知に基づいて、前記コーディング仮想マシンから前記タスクをプルし、前記タスクを前記リモートサーバーモジュールに送信し、前記リモートサーバーモジュールのタスク実行状況を取得し、前記タスク実行状況を前記クラウドサーバーにおけるコーディング仮想マシンに送信するように構成され、
前記クラウドサーバーは、さらに、前記コーディング仮想マシンにより、前記タスク実行状況に従って、前記コーディング仮想マシンにおけるタスクを更新するように構成される。
【0034】
一例において、例えば図4に示すように、コーディング仮想マシンは、コードを実行する過程に、対応するタスクを生成し、例えば、このタスクは、コードジャンプ、コード自動補完、コードツールチップ等でもよい。コーディング仮想マシンは、タスクのタスク通知を通知キューに追加し、Agentは、通知キューからタスク通知を取得し、タスク通知に基づいて、コーディング仮想マシンからタスクをプルし、クライアントのローカルのRemote-Serverに送信し、Remote-Serverにより実行される。Remote-Serverがタスクを実行した後、Agentは、Remote-Serverのタスク実行状況に従って、コーディング仮想マシンにおけるタスクを更新してよい。
【0035】
本開示の実施例において、コーディング仮想マシンは、タスクのタスク通知を通知キューに追加し、Agentは、通知キューからタスク通知をプルし、Agentがタスク通知を取得することを便利にする。Agentがタスク通知に基づいてタスクをプルすることは、Agentが直接的にタスクキューからタスクをプルすることに比べて、Agentによるタスクへの管理がより便利になり、最中的に、タスクの実行効率を向上させる。また、Agentがコーディング仮想マシンにタスク実行状況を返信することにより、コーディング仮想マシンが、タスク実行状況に従って、自体のタスクをリアルタイムで更新し、タスクの管理及び実行を便利にし、最終的にタスクの実行効率を向上させる。
【0036】
クラウドコード開発の安全性能を向上するために、一可能な実施形態において、図5を参照して、前記システムは、前記クライアントと前記クラウドサーバーとの間にデータメッセージを転送するためのリバースプロキシサーバー13をさらに含む。
【0037】
リバースプロキシサーバーは、クラウドサーバーのプロキシサービスを提供する。一例において、リバースプロキシサーバーは、Nginx(Enginexとも称され、高性能なリバースプロキシwebサーバー)であってよい。クラウドサーバーによって提供される全てのサービスは、リバースプロキシサーバーにマウントされ、外部に露出されるのは、リバースプロキシサーバーのアドレスであるが、クラウドサーバーのアドレスは、直接にインターネットに露出されることはないため、クラウドサーバーの安全性を向上できる。また、リバースプロキシサーバーは、さらに負荷分散とデータ転送の役割を果たすことにより、クラウドサーバー間の負荷分散を向上させ、データの正確な転送を保証することができる。
【0038】
本開示の実施例は、さらに、クライアントに適用されるクラウドコード開発方法を提供し、図6を参照して、前記クラウドコード開発方法は、
S601において、ユーザーによって入力されたコードを取得し、ストリーム同期方式で前記コードをクラウドサーバーに同期させることと、
S602において、前記クラウドサーバーからタスクをプルし、前記タスクは、前記クラウドサーバーにおけるコーディング仮想マシンによって前記コードに基づいて生成されたものであることと、
S603において、前記タスクを実行することと、
を含む。
【0039】
一可能な実施形態において、前記ユーザーによって入力されたコードを取得し、ストリーム同期方式で前記コードをクラウドサーバーに同期させることは、
端末エミュレータを作成し、前記端末エミュレータによりユーザーが入力したコードを取得することと、
リアルタイムな同期型全二重通信方式で前記コードを前記クラウドサーバーのコーディング仮想マシンに送信することと、
を含む。
【0040】
一可能な実施形態において、前記方法は、さらに、
周期的に前記コーディング仮想マシンにハートビート要求を送信することと、
前記コーディング仮想マシンの応答情報を受信した後、コーディング仮想マシンが利用可能であると判断することと、
連続的なプリセット数の周期内に前記コーディング仮想マシンの応答情報を受信しない場合、前記コーディング仮想マシンが利用不可であると判断し、前記クラウドサーバーに前記コーディング仮想マシンに対する回復情報を送信することと、
を含む。
【0041】
一可能な実施形態において、前記クラウドサーバーからタスクをプルすることは、
前記コーディング仮想マシンの通知キューからタスクのタスク通知をプルすることと、
前記タスク通知に基づいて、前記コーディング仮想マシンから前記タスクをプルすることと、
を含み、
前記クラウドコード開発方法は、前記タスクのタスク実行状況を取得し、前記タスク実行状況を前記コーディング仮想マシンに送信することをさらに含む。
【0042】
本開示の実施例は、さらに、クラウドサーバーに適用されるクラウドコード開発方法を提供し、図7を参照して、前記クラウドコード開発方法は、
S701において、コーディング仮想マシンを作成することと、
S702において、ストリーム同期方式で同期されたコードを前記仮想マシンに書き込むことと、
S703において、前記コーディング仮想マシンにより前記コードを実行し、対応するタスクを生成することと、
を含む。
【0043】
一可能な実施形態において、前記ストリーム同期方式で同期されたコードを前記仮想マシンに書き込むことは、
受信された前記コードを前記コーディング仮想マシンのマスタ擬似端末に入力し、前記マスタ擬似端末のファイル記述子をブロックし、前記マスタ擬似端末により前記コードをスレーブ擬似端末にマッピングし、前記スレーブ擬似端末により前記コードを前記コーディング仮想マシンのコマンドプロセッサに入力することを含む。
【0044】
一可能な実施形態において、前記クラウドコード開発方法は、さらに、
前記コーディング仮想マシンによりクライアントによって送信されたハートビート要求に応答して、前記クライアントに応答情報を送信することと、
前記コーディング仮想マシンを回復することを表す回復情報に応答して、前記コーディング仮想マシンを回復することと、
を含む。
【0045】
一可能な実施形態において、前記クラウドコード開発方法は、さらに、
前記コーディング仮想マシンにより前記タスクのタスク通知を通知キューに追加することと、
前記コーディング仮想マシンにより、クライアントによって送信されたタスク実行状況に従って、前記コーディング仮想マシンにおけるタスクを更新することと、
を含む。
【0046】
本開示の実施例は、さらに、クライアントに適用されるクラウドコード開発装置を提供し、前記クラウドコード開発装置は、
ユーザーによって入力されたコードを取得し、ストリーム同期方式で前記コードをクラウドサーバーに同期させるためのリモートサーバーモジュールと、
前記クラウドサーバーからタスクをプルし、前記タスクを前記リモートサーバーモジュールに送信するためのプロキシモジュールと、
を含み、
ここで、前記タスクは、前記クラウドサーバーにおけるコーディング仮想マシンによって前記コードに基づいて生成されたものであり、
前記リモートサーバーモジュールは、さらに、前記タスクを実行するように構成される。
【0047】
一可能な実施形態において、前記リモートサーバーモジュールは、具体的に、端末エミュレータを作成し、前記端末エミュレータによりユーザーが入力したコードを取得し、リアルタイムな同期型全二重通信方式で前記コードを前記クラウドサーバーのコーディング仮想マシンに送信するように構成される。
【0048】
一可能な実施形態において、前記プロキシモジュールは、さらに、前記リモートサーバーモジュールと前記リモートサーバーモジュールに対応するコーディング仮想マシンとを管理するように構成され、ここで、管理は、アップグレード、バックトラッキング、再起動、削除、新規追加、および状態検出の少なくとも一つを含む。
【0049】
一可能な実施形態において、前記プロキシモジュールは、具体的に、周期的に前記コーディング仮想マシンにハートビート要求を送信し、前記コーディング仮想マシンの応答情報を受信した後、コーディング仮想マシンが利用可能であると判断し、連続的なプリセット数の周期内に前記コーディング仮想マシンの応答情報を受信しない場合、前記コーディング仮想マシンが利用不可であると判断し、前記クラウドサーバーに前記コーディング仮想マシンに対する回復情報を送信するように構成される。
【0050】
一可能な実施形態において、前記プロキシモジュールは、具体的に、前記コーディング仮想マシンの通知キューからタスク通知をプルし、前記タスク通知に基づいて、前記コーディング仮想マシンから前記タスクをプルし、前記タスクを前記リモートサーバーモジュールに送信し、前記リモートサーバーモジュールのタスク実行状況を取得し、前記タスク実行状況を前記クラウドサーバーにおけるコーディング仮想マシンに送信するように構成される。
【0051】
本開示の実施例は、さらに、クラウドサーバーに適用されるクラウドコード開発装置を提供し、前記クラウドコード開発装置は、
コーディング仮想マシンを作成するための仮想マシン作成モジュールと、
ストリーム同期方式で同期されたコードを前記仮想マシンに書き込むためのコード同期モジュールと、
前記コーディング仮想マシンにより前記コードを実行し、対応するタスクを生成するためのタスク生成モジュールと、を含む。
【0052】
一可能な実施形態において、前記コード同期モジュールは、具体的に、受信された前記コードを前記コーディング仮想マシンのマスタ擬似端末に入力し、前記マスタ擬似端末のファイル記述子をブロックし、前記マスタ擬似端末により前記コードをスレーブ擬似端末にマッピングし、前記スレーブ擬似端末により前記コードを前記コーディング仮想マシンのコマンドプロセッサに入力するように構成される。
【0053】
一可能な実施形態において、前記クラウドコード開発装置は、さらに、
前記コーディング仮想マシンによりクライアントによって送信されたハートビート要求に応答して、前記クライアントに応答情報を送信するためのハートビート応答モジュールと、
前記コーディング仮想マシンを回復することを表す回復情報に応答して、前記コーディング仮想マシンを回復するための仮想マシン回復モジュールと、
を含む。
【0054】
一可能な実施形態において、前記クラウドコード開発装置は、さらに、
前記コーディング仮想マシンにより前記タスクのタスク通知を通知キューに追加するためのタスク通知追加モジュールと、
前記コーディング仮想マシンにより、クライアントによって送信されたタスク実行状況に従って、前記コーディング仮想マシンにおけるタスクを更新するためのタスク更新モジュールと、
を含む。
【0055】
本開示の技術案において、ユーザーの個人情報に対する収集、保存、使用、加工、伝送、提供及び開示等に関する処理は、いずれも関連する法律や規則に合って、公序良俗に違反しない。
【0056】
本開示の実施例によれば、本開示は、デバイス、可読記憶媒体、及びコンピュータープログラム製品をさらに提供する。
【0057】
ここで、電子デバイスは、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信接続されるメモリとを含み、
前記メモリに、前記少なくとも1つのプロセッサによって実行可能な命令を記億しており、前記少なくとも1つのプロセッサが本開示のいずれか1項に記載のクラウドコード開発方法を実行できるように、前記コマンドは前記少なくとも1つのプロセッサによって実行される。
【0058】
コンピュータープログラム製品は、コンピュータープログラムを含み、前記コンピュータープログラムがプロセッサによって実行されると、本開示のいずれか1項に記載のクラウドコード開発方法を実現する。
【0059】
図8は、本開示の実施例を実施するための例示の電子デバイス800の模式的なブロック図を示す。電子デバイスとしては、例えば、ラップトップパソコン、デスクトップパソコン、ワークステーション、パーソナルデジタルアシスタント、サーバー、ブレードサーバー、メインフレームコンピューター、及び他の適当なコンピューターなど、様々な形態のデジタルコンピューターである。電子デバイスとしては、さらに、例えば、パーソナルデジタルアシスタント、セルフォン、スマートフォン、ウェアラブル機器、及び他の類似の計算装置など、様々な形態のモバイル装置である。本明細書に記載のコンポーネント、その接続関係、及びその機能は例示的なものに過ぎず、本明細書に記載及び/又は請求された本開示の実施に限定するものではない。
【0060】
図8に示すように、デバイス800は、リードオンリーメモリ(ROM)802に記憶されているコンピュータープログラム、又は記憶手段808からランダムアクセスメモリ(RAM)803にロードされたコンピュータープログラムによって、各種の適当な動作や処理を実行するための計算手段801を含む。RAM 803には、さらに、デバイス800を操作するための各種のプログラムやデータが記憶されていることもできる。計算手段801、ROM 802及びRAM 803は、バス804によって互いに接続される。入力/出力(I/O)インタフェース805も、バス804に接続される。
【0061】
デバイス800における複数のコンポーネントは、I/Oインタフェース805に接続されている。前記複数のコンポーネントは、例えばキーボード、マウス等の入力手段806と、例えば各種のディスプレイ、スピーカー等の出力手段807と、例えば磁気ディスク、光ディスク等の記憶手段808と、例えばネットワークカード、モデム、無線通信トランシーバ等の通信手段809と、を含む。通信手段809によって、デバイス800は、例えばインターネット等のコンピューターネットワーク、及び/又は各種の通信ネットワークを介して、他のデバイスと情報/データを交換することが可能である。
【0062】
計算手段801は、処理及び計算能力を有する各種の汎用な及び/又は専用な処理コンポーネントであってよい。計算手段801のいくつかの例示は、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、各種の専用な人工知能(AI)演算チップ、機械学習モデルアルゴリズムを実行する各種の演算ユニット、デジタルシグナルプロセッサ(DSP)、及び任意の適当なプロセッサ、コントローラ、マイクロコントローラ等を含むが、これに限定されない。計算手段801は、例えばクラウドコード開発方法ような以上記載された方法及び処理を実行する。例えば、いくつかの実施例において、クラウドコード開発方法は、例えば記憶手段808ような機械可読媒体に有形的に含まれるコンピューターソフトウェアプログラムによって実現される。いくつかの実施例では、コンピュータープログラムの部分又は全部は、ROM 802及び/または通信手段809を介してデバイス800にロード及び/またはインストールされる。コンピュータープログラムがRAM 803にロードされて、計算手段801によって実行されると、以上記載されるクラウドコード開発方法の1つまたは複数のステップを実行できる。選択的に、他の実施例において、計算手段801は、他の任意の適当な方式(例えば、ファームウェアを利用する)によって、クラウドコード開発方法を実行するように配置されてよい。
【0063】
本明細書において、上述したシステムや技術の各種実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、複雑なプログラマブルロジックデバイス(CPLD)、コンピューターハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせによって実現できる。これらの各種実施形態は、1つまたは複数のコンピュータープログラムにおいて実施されることを含んでもよく、当該1つ又は複数のコンピュータープログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステムにおいて実行及び/又は解釈されてよく、当該プログラマブルプロセッサは、専用又は汎用のプログラマブルプロセッサであってよく、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令を当該記憶システム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送してよい。
【0064】
本開示の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせを用いて記述してよい。これらのプログラムコードは、汎用コンピューター、専用コンピューター又は他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供されることで、プログラムコードがプロセッサ又はコントローラによって実行されると、フローチャート図及び/又はブロック図で指定された機能/動作が実施される。プログラムコードは、完全的に機器上で実行されてもよく、部分的に機器上で実行されてもよく、独立なパッケージソフトウェアとして、部分的に機器上で実行され且つ部分的にリモート機器上で実行されてもよく、又は完全的にリモート機器やサーバーで実行されてもよい。
【0065】
本開示の文脈では、機械可読媒体は、命令実行システム、装置又はデバイスによって使用され、又は、命令実行システム、装置又はデバイスと組み合わせて使用されるためのプログラムを含み又は記憶する有形の媒体であってよい。機械可読媒体は、機械可読シグナル媒体、又は機械可読記憶媒体であってよい。機械可読媒体は、電子、磁気、光学、電磁、赤外線、又は半導体システム、装置又はデバイス、又はこれらの任意の適当な組み合わせを含んでよいが、これに限定されない。機械可読記憶媒体のより具体的な例示としては、1本又は複数本のワイヤに基づく電気接続、携帯型コンピューターディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバー、携帯型コンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶デバイス、磁気記憶デバイス、又はこれらの任意の適当な組み合わせを含んでよい。
【0066】
ユーザーとのインタラクションを提供するために、上述したシステム及び技術は、コンピューター上で実施される。当該コンピューターは、ユーザーに情報を表示するための表示装置(例えば、CRT(ブラウン管)又はLCD(液晶ディスプレイ)モニター)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有する。ユーザーは、当該キーボード及び当該ポインティングデバイスによって、コンピューターに入力情報を提供することができる。ユーザーとのインタラクションを提供するために、他の種類の装置も使える。例えば、ユーザーに提供されるフィードバックは、任意の形式の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってよい。また、任意の形式(音入力、音声入力、触覚入力を含む)によって、ユーザーからの入力を受信してよい。
【0067】
ここで記述したシステム及び技術は、バックグラウンドコンポーネントを含む計算システム(例えば、データサーバーとして)、又は中間コンポーネントを含む計算システム(例えば、アプリケーションサーバー)、又はフロントエンドコンポーネントを含む計算システム(例えば、グラフィカルユーザーインタフェース又はウェブブラウザーを備えるユーザーコンピューターであって、ユーザーは、当該グラフィカルユーザーインタフェース又は当該ウェブブラウザーによってここで記述したシステム及び技術の実施形態とインタラクションを行うことができる)、又はこのようなバックグラウンドコンポーネント、中間コンポーネント、又はフロントエンドコンポーネントの任意の組み合わせを含む計算システムにおいて実施することができる。任意の形式又は媒体によるデジタルデータ通信(例えば、通信ネットワーク)を介して、システムのコンポーネントを互いに接続することができる。通信ネットワークの例示としては、ローカル領域ネットワーク(LAN)と、ワイド領域ネットワーク(WAN)と、インターネットとを含む。
【0068】
コンピューターシステムは、クライアントとサーバーとを含んでよい。クライアントとサーバーとは、通常、互いに離れており、且つ通常、通信ネットワークを介してインタラクションを行う。対応するコンピューターにおいて互いにクライアント-サーバー関係を有するコンピュータープログラムを実行することで、クライアントとサーバーとの関係を確立する。サーバーは、クラウドサーバー、分散システムのサーバー、又はブロックチェーンを結合したサーバーであってよい。
【0069】
なお、上記の様々なプロセスを踏まえて、ステップを並べ替え、追加、又は削除することができることが理解される。例えば、本開示に記載の各ステップは同時に実行されてもよいし、順に実行されてもよいし、他の順番で実行されてもよい。本開示の技術案の所望の結果を実現できるものであれば、本明細書では特に限定されない。
【0070】
上記具体的な実施形態は、本開示の保護範囲を限定するものと見なされない。当業者は、設計上の要件や他の要素に基づいて、様々な修正、組み合わせ、サブコンビネーション、置き換えを行うことができることを理解できる。本開示の精神と原則の範囲内で行われたいかなる修正、同等置換や改善等は、いずれも本開示の保護範囲に含まれる。
図1
図2
図3
図4
図5
図6
図7
図8
【国際調査報告】