(57)【要約】      （修正有）【課題】処理されるタスクの処理効率を向上することができるスマート装置のタスク処理方法および装置を提供する。【解決手段】所定のデータフォーマットのタスク記述情報を含むサービス情報をサーバから受信するステップと、所定のデータフォーマットに基づいて、サービス情報を解析して処理待ちタスクを決定するステップと、処理待ちタスクを処理待ちタスクキューに配分するステップと、処理待ちタスクキューにおける処理待ちタスクを処理するステップと、を含む。【選択図】図２
2019102064.tif 000002
【特許請求の範囲】
【請求項１】
スマート装置のタスク処理方法であって、
所定のデータフォーマットのタスク記述情報を含むサービス情報をサーバから受信するステップと、
前記所定のデータフォーマットに基づいて、前記サービス情報を解析して処理待ちタスクを決定するステップと、
前記処理待ちタスクを処理待ちタスクキューに配分するステップと、
前記処理待ちタスクキューにおける処理待ちタスクを処理するステップと、
を含むことを特徴とする方法。
【請求項２】
前記処理待ちタスクキューは並行タスクキューであり、
前記処理待ちタスクキューにおける処理待ちタスクを処理するステップは、
前記処理待ちタスクキューが空白でないとともに、第１のスレッドプールにアイドルスレッドが存在することに応じて、前記処理待ちタスクキューの少なくとも一部の処理待ちタスクを前記第１のスレッドプールに追加するステップであって、前記少なくとも一部の処理待ちタスクにおける処理待ちタスクの数が、前記第１のスレッドプールにおけるアイドルスレッドの数以下であるステップと、
前記少なくとも一部の処理待ちタスクが実行終了した後に、前記少なくとも一部の処理待ちタスクを前記処理待ちタスクキューから除去するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記処理待ちタスクキューはシリアルタスクキューであり、
前記処理待ちタスクキューにおける処理待ちタスクを処理するステップは、
処理中の処理待ちタスクが存在しないとともに、前記シリアルタスクキューが空白でないことに応じて、前記シリアルタスクキューの先頭に位置する処理待ちタスクを第１のタスクとして、シリアル処理ステップを実行するステップであって、前記シリアル処理ステップは、前記第１のタスクを実行した後に、前記第１のタスクを前記シリアルタスクキューから除去するステップである、ステップと、
前記シリアルタスクキューが空白でないことに応じて、前記シリアルタスクキューの先頭に位置する処理待ちタスクを前記第１のタスクとして、前記シリアル処理ステップを継続する、ステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記サービス情報は、前記スマート装置から受信されたイベント情報に基づいて前記サーバによって生成され、前記イベント情報は、前記スマート装置の音声入力情報と、処理待ちタスクを実行する期間の前記スマート装置の状態変化情報とのうち少なくとも１つを含む、
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記イベント情報は、
前記イベント情報に基づいてアップロード待ちイベントを生成するステップと、
前記アップロード待ちイベントをアップロード待ちイベントキューに配分するステップと、
前記アップロード待ちイベントキューにおけるアップロード待ちイベントを所定のデータフォーマットで前記サーバに送信するステップと、
によって、前記サーバに送信される、
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記アップロード待ちイベントキューにおけるアップロード待ちイベントを所定のデータフォーマットで前記サーバに送信するステップは、
前記アップロード待ちイベントキューが空白でないとともに、第２のスレッドプールにアイドルスレッドが存在することに応じて、前記アップロード待ちイベントキューにおける少なくとも一部のアップロード待ちイベントを前記第２のスレッドプールに追加するステップであって、前記少なくとも一部のアップロード待ちイベントにおけるアップロード待ちイベントの数が、前記第２のスレッドプールにおけるアイドルスレッドの数以下である、ステップと、
前記少なくとも一部のアップロード待ちイベントが実行完了した後に、前記少なくとも一部のアップロード待ちイベントを、アップロード待ちイベントキューから除去するステップと、
を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記スマート装置と前記サーバとの間に、再使用可能な通信リンクが存在する、
ことを特徴とする請求項１乃至請求項６のいずれか一項に記載の方法。
【請求項８】
スマート装置のタスク処理装置であって、
所定のデータフォーマットのタスク記述情報を含むサービス情報をサーバから受信する受信ユニットと、
前記所定のデータフォーマットに基づいて、前記サービス情報を解析して処理待ちタスクを決定する解析ユニットと、
前記処理待ちタスクを処理待ちタスクキューに配分する配分ユニットと、
前記処理待ちタスクキューにおける処理待ちタスクを処理する処理ユニットと、
を含むことを特徴とする装置。
【請求項９】
一つ又は複数のプロセッサと、
一つ又は複数のプログラムが記憶されている記憶装置と、を備え、
前記一つ又は複数のプログラムが前記一つ又は複数のプロセッサにより実行されると、前記一つ又は複数のプロセッサに請求項１乃至請求項７のいずれか一項に記載の方法を実現させることを特徴とする機器。
【請求項１０】
コンピュータプログラムが記憶されており、当該プログラムがプロセッサにより実行されると、請求項１乃至請求項７のいずれか一項に記載の方法を実現させることを特徴とするコンピュータ読取可能な記憶媒体。
【請求項１１】
プロセッサにより実行されると、請求項１乃至請求項７のいずれか一項に記載の方法を実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの技術分野に関し、具体的にインターネットの技術分野に関し、より詳細に、スマート装置のタスク処理方法および装置に関する。
【背景技術】
【０００２】
人工知能の発展により、スマート装置は、ユーザの音声入力を取得してサーバにアップロードし、サーバから返されたコマンドを受信して、例えば装置制御、情報クエリ、スケジュール管理などのコマンドに対応する操作を実行することができる。これにより、自然言語対話によるユーザとモバイル機器との対話を実現することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、スマート装置のタスク処理方法および装置を提案する。
【０００４】
第一の局面として、本発明は、スマート装置のタスク処理方法を提供する。上記スマート装置のタスク処理方法は、所定のデータフォーマットのタスク記述情報を含むサービス情報をサーバから受信するステップと、上記所定のデータフォーマットに基づいて、上記サービス情報を解析して処理待ちタスクを決定するステップと、上記処理待ちタスクを処理待ちタスクキューに配分するステップと、上記処理待ちタスクキューにおける処理待ちタスクを処理するステップと、を含む。
【０００５】
本発明の一部の実施形態において、上記処理待ちタスクキューは並行タスクキューであり、上記処理待ちタスクキューにおける処理待ちタスクを処理するステップは、上記処理待ちタスクキューが空白でないとともに、第１のスレッドプールにアイドルスレッドが存在することに応じて、上記処理待ちタスクキューの少なくとも一部の処理待ちタスクを上記第１のスレッドプールに追加するステップであって、上記少なくとも一部の処理待ちタスクにおける処理待ちタスクの数が、上記第１のスレッドプールにおけるアイドルスレッドの数以下であるステップと、上記少なくとも一部の処理待ちタスクが実行終了した後に、上記少なくとも一部の処理待ちタスクを上記処理待ちタスクキューから除去するステップと、を含む。
【０００６】
本発明の一部の実施形態において、上記処理待ちタスクキューはシリアルタスクキューであり、上記処理待ちタスクキューにおける処理待ちタスクを処理するステップは、処理中の処理待ちタスクが存在しないとともに、上記シリアルタスクキューが空白でないことに応じて、上記シリアルタスクキューの先頭に位置する処理待ちタスクを第１のタスクとして、シリアル処理ステップを実行するステップであって、上記シリアル処理ステップは、上記第１のタスクを実行した後に、上記第１のタスクを上記シリアルタスクキューから除去するステップである、ステップと、上記シリアルタスクキューが空白でないことに応じて、上記シリアルタスクキューの先頭に位置する上記処理待ちタスクを上記第１のタスクとし、上記シリアル処理ステップを継続する、ステップと、を含む。
【０００７】
本発明の一部の実施形態において、上記サービス情報は、上記スマート装置から受信されたイベント情報に基づいて上記サーバによって生成され、上記イベント情報は、上記スマート装置の音声入力情報と、処理待ちタスクを実行する期間の上記スマート装置の状態変化情報とのうち少なくとも１つを含む。
【０００８】
本発明の一部の実施形態において、上記イベント情報は、上記イベント情報に基づいてアップロード待ちイベントを生成するステップと、上記アップロード待ちイベントをアップロード待ちイベントキューに配分するステップと、上記アップロード待ちイベントキューにおけるアップロード待ちイベントを所定のデータフォーマットで上記サーバに送信するステップと、によって上記サーバに送信される。
【０００９】
本発明の一部の実施形態において、上記アップロード待ちイベントキューにおけるアップロード待ちイベントを所定のデータフォーマットで上記サーバに送信するステップは、上記アップロード待ちイベントキューが空白でないとともに、第２のスレッドプールにアイドルスレッドが存在することに応じて、上記アップロード待ちイベントキューにおける少なくとも一部のアップロード待ちイベントを上記第２のスレッドプールに追加するステップであって、上記少なくとも一部のアップロード待ちイベントにおけるアップロード待ちイベントの数が、上記第２のスレッドプールにおけるアイドルスレッドの数以下である、ステップと、上記少なくとも一部のアップロード待ちイベントが実行完了した後に、上記少なくとも一部のアップロード待ちイベントを、アップロード待ちイベントキューから除去するステップとを含む。
【００１０】
本発明の一部の実施形態において、上記スマート装置と上記サーバとの間に、再使用可能な通信リンクが存在する。
【００１１】
第二の局面として、本発明は、スマート装置のタスク処理装置を提供する。上記スマート装置のタスク処理装置は、所定のデータフォーマットのタスク記述情報を含むサービス情報をサーバから受信する受信ユニットと、上記所定のデータフォーマットに基づいて、上記サービス情報を解析して処理待ちタスクを決定する解析ユニットと、上記処理待ちタスクを処理待ちタスクキューに配分する配分ユニットと、上記処理待ちタスクキューにおける処理待ちタスクを処理する処理ユニットと、を含む。
【００１２】
本発明の一部の実施形態において、上記処理待ちタスクキューは並行タスクキューであり、処理ユニットは、上記処理待ちタスクキューが空白でないとともに、第１のスレッドプールにアイドルスレッドが存在することに応じて、上記処理待ちタスクキューの少なくとも一部の処理待ちタスクを上記第１のスレッドプールに追加するユニットであって、上記少なくとも一部の処理待ちタスクにおける処理待ちタスクの数が、上記第１のスレッドプールにおけるアイドルスレッドの数以下である並行実行ユニットと、上記少なくとも一部の処理待ちタスクが実行終了した後に、上記少なくとも一部の処理待ちタスクを上記処理待ちタスクキューから除去する並行除去ユニットと、を含む。
【００１３】
本発明の一部の実施形態において、上記処理待ちタスクキューはシリアルタスクキューであり、処理ユニットは、処理中の処理待ちタスクが存在しないとともに、上記シリアルタスクキューが空白でないことに応じて、上記シリアルタスクキューの先頭に位置する処理待ちタスクを第１のタスクとして、シリアル処理ステップを実行するユニットであって、上記シリアル処理ステップは、上記第１のタスクを実行した後に、上記第１のタスクを上記シリアルタスクキューから除去する、第１のシリアル実行ユニットと、上記シリアルタスクキューが空白でないことに応じて、上記シリアルタスクキューの先頭に位置する上記処理待ちタスクを上記第１のタスクとして、上記シリアル処理ステップを継続する、第２のシリアル実行ユニットと、を含む。
【００１４】
本発明の一部の実施形態において、上記サービス情報は、上記スマート装置から受信されたイベント情報に基づいて上記サーバによって生成され、上記イベント情報は、上記スマート装置の音声入力情報と、処理待ちタスクを実行する期間の上記スマート装置の状態変化情報とのうち少なくとも１つを含む。
【００１５】
本発明の一部の実施形態において、上記装置は、イベント情報をサーバに送信するように構成されているイベントユニットをさらに含む。
【００１６】
本発明の一部の実施形態において、イベントユニットは、上記イベント情報に基づいてアップロード待ちイベントを生成するイベント生成ユニットと、上記アップロード待ちイベントをアップロード待ちイベントキューに配分するイベント配分ユニットと、上記アップロード待ちイベントキューにおけるアップロード待ちイベントを所定のデータフォーマットで上記サーバに送信するアップロードユニットとを含む。
【００１７】
本発明の一部の実施形態において、アップロードユニットは、上記アップロード待ちイベントキューが空白でないとともに、第２のスレッドプールにアイドルスレッドが存在することに応じて、上記アップロード待ちイベントキューにおける少なくとも一部のアップロード待ちイベントを上記第２のスレッドプールに追加するユニットであって、上記少なくとも一部のアップロード待ちイベントにおけるアップロード待ちイベントの数が、上記第２のスレッドプールにおけるアイドルスレッドの数以下である、実行サブユニットと、上記少なくとも一部のアップロード待ちイベントが実行完了した後に、上記少なくとも一部のアップロード待ちイベントを、アップロード待ちイベントキューから除去する除去サブユニットとを含む。
【００１８】
本発明の一部の実施形態において、上記スマート装置と上記サーバとの間に、再使用可能な通信リンクが存在する。
【００１９】
本発明によって提供されるスマート装置のタスク処理方法及び装置は、タスク記述情報を含むサービス情報を受信した後、処理待ちタスクキューに配分し、その後に、処理待ちタスクキューにおける処理待ちタスクを処理することにより、処理待ちタスクの処理効率を向上させることができる。
【図面の簡単な説明】
【００２０】
以下の図面を参照してなされた制限的でない実施形態に対する詳細的な説明により、本発明の他の特徴、目的及び利点はより明らかになる。
【図１】図１は、本発明が適用され得る例示的なシステムの構造図である。
【図２】図２は、本発明に係るスマート装置のタスク処理方法の一実施形態のプロセス図である。
【図３】図３は、本発明に係るスマート装置のタスク処理方法の適用シーンの概略図である。
【図４】図４は、本発明に係るスマート装置のタスク処理方法の別の実施形態のプロセス図である。
【図５】図５は、本発明に係るスマート装置のタスク処理装置の一実施形態の構造概略図である。
【図６】図６は、本発明の実施形態を実現するための装置に適用されるコンピュータシステムの構成模式図である。
【発明を実施するための最良の形態】
【００２１】
以下、図面及び実施形態を参照しながら本発明をより詳細に説明する。理解すべきことは、ここで説明する具体的な実施形態は、当該発明を説明するものに過ぎず、当該発明を限定するものではない。ただし、説明の便宜上、図面には発明に関連する部分のみが示されている。
【００２２】
なお、衝突しない場合、本発明の実施形態及び実施形態における特徴を相互に組み合せてもよい。以下、図面及び実施形態を参照しながら本発明を詳細に説明する。
【００２３】
図１は、本発明が適用できるタスク処理方法またはタスク処理装置の実施形態の例示的なシステムアーキテクチャ１００を示す。
【００２４】
図１に示されたように、システムアーキテクチャ１００は、端末装置１０１、１０２、１０３と、ネットワーク１０４と、サーバ１０５とを備えても良い。ネットワーク１０４は、端末装置１０１、１０２、１０３とサーバ１０５の間に通信リンクの媒体を提供する。ネットワーク１０４は、各種の接続タイプ、例えば有線、無線通信リンク又は光ファイバ、ケーブルなどを含んでも良い。
【００２５】
ユーザは、端末装置１０１、１０２、１０３を使用してネットワーク１０４を介してサーバ１０５とインタラクションすることにより、メッセージなどを送受信することができる。端末装置１０１、１０２、１０３には、各種の通信クライアントアプリ、例えば音声補助型のアプリ、買物型のアプリ、検索型のアプリ、即時通信ツール、メールボックスクライアント、交際型のプラットフォームソフトウェアなどがインストールされても良い。
【００２６】
端末装置１０１、１０２、１０３は、音声受信機能を有する各種の電子装置であっても良く、スマートフォーン、タブレット、電子書籍閲覧機、ＭＰ３プレーヤ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ａｕｄｉｏ  Ｌａｙｅｒ  ＩＩＩ、ムービングピクチャエクスパーシグループオーディオレイヤー３）、ＭＰ４（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ａｕｄｉｏ  Ｌａｙｅｒ  ＩＶ、ムービングピクチャエクスパーシグループオーディオレイヤー４）プレーヤ、ノードパソコン及びディスクトップコンピュータなどを含むが、それらに限定されない。
【００２７】
サーバ１０５は、端末装置１０１、１０２、１０３との会話型インタラクションをサポートすることなどの、様々なサービスを提供するサーバである。 サーバ１０５は、受信した音声入力等のデータに対して解析処理を行い、解析処理結果に基づいて端末装置１０１、１０２、１０３にコマンドを送信することができる。
【００２８】
説明すべきなのは、本発明の実施形態により提供される情報を抽出する方法は、一般的にサーバ１０５により実行される。それに応じて、情報を抽出する装置は一般的にサーバ１０５に設置される。説明すべきなのは、本発明の実施形態により提供される情報を抽出する方法は、ある場合に端末装置１０１、１０２、１０３により実行されても良い。
【００２９】
理解すべきなのは、図１における端末装置、ネットワーク及びサーバの数は例示的なものに過ぎない。実現の必要に応じて、任意の数の端末装置、ネットワーク及びサーバを備えても良い。
【００３０】
本発明に係るスマート装置のタスク処理方法の一実施形態のプロセス２００を示す図２をさらに参照する。スマート装置におけるタスクの処理方法は、以下のステップを含む。
【００３１】
ステップ２０１において、サーバによって送信された、所定のデータフォーマットのタスク記述情報を含むサービス情報を受信する。
本実施形態において、タスク処理方法が実行されるスマート装置（例えば、図１の端末装置）は、有線接続または無線接続によってサーバからサービス情報を受信することができ、サービス情報は、タスク記述情報を所定のフォーマットで含む。
【００３２】
通常、スマート装置は、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）２．０に基づいてサービス情報を受信する。タスク記述情報は、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ、軽量データ交換フォーマット）フォーマットのテキスト情報であってもよい。
【００３３】
サービス情報は、タスク記述情報を含むだけでなく、追加情報を含むこともできることを理解されたい。例えば、後述する処理待ちタスクが音楽再生などの音声を含む操作である場合、サービス（業務）情報は、バイナリ音声ストリーム情報をさらに含むことができる。
【００３４】
ステップ２０２において、処理すべきタスクを決定するために、所定のデータフォーマットに基づいてサービス情報を解析する。
【００３５】
本実施形態において、携帯機器（例えば、図１のサーバ）は、ステップ２０１で取得したサービス情報を所定のデータフォーマット（例えば、ＪＳＯＮフォーマット）に基づいて解析して、解析した装置記述情報を取得し、解析されたタスク記述情報に基づいて処理待ちタスクを生成する。
【００３６】
タスク記述情報を含むサービス情報をＪＳＯＮフォーマットで例を挙げて説明すると、まず、タスク記述情報中のタスク属性及び属性値（キー値対のフォーマットによりＪＳＯＮテキスト内に存在する）を取得し、取得したタスク属性および属性値をパッケージ化して処理待ちタスクを取得することができる（例えば、オブジェクト指向プログラミングでは、処理待ちタスクはタスク類の具体的例であってもよい）。
【００３７】
ステップ２０３において、処理待ちタスクを処理待ちタスクキューに配分する。
【００３８】
本実施形態において、スマート装置のタスク処理方法が実行されるスマート装置は、少なくとも１つの処理待ちタスクキューを予め設定しておき、ステップ２０２で決定された処理待ちタスクを処理待ちタスクキューに配分する。例えば、処理待ちタスクは、処理待ちタスクの生成時刻に基づいて処理待ちタスクキューに配分され、例えば、最新に生成された処理待ちタスクを処理待ちタスクキューの後方（尾部）に配分し、または、処理待ちタスクの優先度に基づいて、処理待ちタスクを処理待ちタスクキューに配分することができる。例えば、優先度の低い処理待ちタスクを、処理待ちタスクキューの尾部に配分する。ここで、処理待ちタスクキューは、スマート装置のローカルメモリやリムーバブル記憶媒体などに記憶されてもよい。
【００３９】
ステップ２０４において、処理待ちタスクキューにおける処理待ちタスクを処理する。
【００４０】
本実施形態では、モバイル装置は、被処理装置の種類（例えば、並行タスクキューまたはシリアルタスクキュー）及び処理待ちタスクキューにおける処理待ちタスクの属性（例えば、生成時間や優先度）に基づいて、処理待ちタスクキューにおける処理待ちタスクを処理してもよく。
【００４１】
本実施形態の一部の選択可能な実装形態では、処理待ちタスクキューは並行タスクキューであり、処理待ちタスクキューにおける処理待ちタスクを処理することは、上記処理待ちタスクキューが空白でないとともに、第１のスレッドプールにアイドルスレッドが存在することに応じて、上記処理待ちタスクキューの少なくとも一部の処理待ちタスクを上記第１のスレッドプールに追加するステップであって、上記少なくとも一部の処理待ちタスクにおける処理待ちタスクの数が、上記第１のスレッドプールにおけるアイドルスレッドの数以下であるステップと、上記少なくとも一部の処理待ちタスクが実行終了した後に、上記少なくとも一部の処理待ちタスクを上記処理待ちタスクキューから除去するステップと、を含む。
【００４２】
具体的には、スマート装置には、所定の数（例えば、４つ）のスレッドを有する第１のスレッドプールを備えることができる。スマート装置は、処理されるタスクキューおよび第１のスレッドプールの状態を定期的にチェックする。処理待ちタスクキューが空白でない（つまり、少なくとも１つの処理待ちタスクが存在する）とともに第１のスレッドプールにアイドルスレッド（全スレッドまたは一部のスレッドが待機状態である）が存在する場合には、処理待ちタスクキューから少なくとも一部の処理待ちタスクを抽出して第１のスレッドプールに追加し、第１のスレッドプールマネージャによって処理待ちタスクの実行を制御する。ここで、当該少なくとも一部処理待ちタスクの数は、第１のスレッドプールにおけるアイドルスレッドの数以下である。例えば、４つのアイドルスレッドが存在する場合、１〜４の処理待ちタスクを第１のスレッドプールに追加することができる。２つのアイドルスレッドが存在する場合には、１−２の処理待ちタスクを第１のスレッドプールに追加することができる。
【００４３】
第１スレッドプールに追加された処理待ちタスク毎に対して、当該処理待ちタスクの実行が完了した後、処理待ちタスクを処理待ちタスクキューから除去する。
【００４４】
第１スレッドプールが処理待ちタスクを同時（並行）に処理するように設定するこれにより、処理待ちタスクの処理効率を向上させる一方、多すぎる処理待ちタスクを同時に処理することによるスマート装置の実行圧力を軽減することができる。
【００４５】
なお、第１スレッドプールにおけるスレッドは一定量のシステム資源を占有するので、第１スレッドプールにおけるスレッド数は、第１スレッドプールにおける処理待ちタスクの数及びスレッドの待機（閑）時間に基づいて動的に調整されてもよい。例えば、処理待ちタスクキューにおける処理待ちタスクの数がタスク数閾値より大きい場合には、第１スレッドプールにおけるスレッド数を増加させて処理効率を向上させることができ、スレッドの待機時間が時間閾値よりも長い場合、時間閾値よりも長い待機時間を有するスレッドは、システムオーバーヘッドを節約するために削除してもよい。
【００４６】
本発明の実施形態の一部の選択可能な実装形態では、処理待ちタスクキューは、シリアルタスクキューであり、上記処理待ちタスクキューにおける上記処理待ちタスクを処理するステップは、処理中の処理待ちタスクが存在しないとともに、上記シリアルタスクキューが空白でないことに応じて、上記シリアルタスクキューの先頭に位置する処理待ちタスクを第１のタスクとし、シリアル処理ステップを実行するステップであって、上記シリアル処理ステップは、上記第１のタスクを実行した後に、上記第１のタスクを上記シリアルタスクキューから除去するステップである、ステップと、上記シリアルタスクキューが空白でないことに応じて、上記シリアルタスクキューの先頭に位置する上記処理待ちタスクを上記第１のタスクとし、上記シリアル処理ステップを継続する、ステップと、を含む。
【００４７】
具体的には、処理待ちタスクキューがシリアルタスクキュー（つまり、シリアルモードで処理待ちタスクを実行する）である場合に、処理中の処理待ちタスクが存在しないとともに、処理待ちタスクキューが空白でないと、処理待ちタスクキューにおける処理待ちタスクの順番にしたがって、シリアルタスクキューの先頭に位置する処理待ちタスクを第１のタスクとして処理を行い、第１のタスクの実行が完了した後、第１のタスクをシリアルタスクキューから除去する。第１のタスクを除去した後でもシリアルタスクキューが空白でない場合は、続いてタスクキューの先頭の処理待ちタスクを実行し、当該過程を繰り返す。
【００４８】
図３をさらに参照すると、図３は、本実施形態に係るスマート装置のタスク処理方法の応用シーン３００の概略図である。図３の適用シーン３００において、スマート装置３０２は、まず、サーバ３０１からサービス情報を受信し、その後、スマート装置３０２は、サービス情報における所定のフォーマットのタスク記述情報を解析して、処理待ちタスクを決定する。次に、処理待ちタスクキューに決定された処理待ちタスクを配分３０３（例えば、処理待ちタスクキュー３０３の尾部）、最後に、処理待ちタスクキュー３０３における処理待ちタスクを処理する。
【００４９】
本発明の実施形態によるスマート装置のタスク処理方法は、処理待ちタスクキューに処理待ちタスクを配分して処理することにより、処理待ちタスクの処理効率を向上させることができる。
【００５０】
さらに、図４を参照すると、スマート装置のタスク処理方法の他の実施形態のプロセス４００が示されている。スマート装置のタスク処理方法のプロセス４００は、以下のステップを含む。
【００５１】
ステップ４０１において、サーバにから送信された、所定のデータフォーマットのタスク記述情報を含むサービス情報を受信する。
【００５２】
本実施形態において、タスク処理方法が実行されるスマート装置（例えば、図１の端末装置）は、有線接続または無線接続によってサーバからサービス情報を受信することができ、サービス情報は、所定のフォーマットのタスク記述情報を含む。
【００５３】
ステップ４０２において、処理待ちタスクを決定するために、所定のデータフォーマットに基づいてサービス情報を解析する。
【００５４】
本実施形態では、モバイル機器（例えば、図１のサーバ）は、ステップ４０１で取得したサービス情報を所定のデータフォーマット（例えば、ＪＳＯＮフォーマット）に基づいて解析して、解析されたタスク記述情報を取得し、解析されたタスク記述情報に基づいて処理待ちタスクを生成する。
【００５５】
ステップ４０３において、処理待ちタスクキューに処理待ちタスクキューを配分する。
【００５６】
本実施形態では、タスク処理方法が実行されるスマート装置は、少なくとも１つの処理待ちタスクキューを予め構築し、ステップ４０２から決定された処理待ちタスクを処理待ちタスクキューに配分する。
【００５７】
ステップ４０４において、処理待ちタスクキューにおける処理待ちタスクを処理する。
【００５８】
本実施形態では、モバイル機器は、処理待ちタスクキューの種類（例えば、処理対象の並行タスクキューやシリアルｔｏ−タスクキュー）及び処理待ちタスクキューの属性（例えば、生成時刻や優先度）に基づいて、処理待ちタスクキューにおける処理待ちタスクを処理する。
【００５９】
本実施形態では、図２の実施形態と比較すると、サービス情報は、スマート装置から受信されたイベント情報に基づいてサーバによって生成され、イベント情報は、スマート装置の音声入力情報または処理待ちタスクを実行する期間のスマート装置の状態変化情報のうちの少なくとも１つを含む。
【００６０】
したがって、スマート装置のタスク処理方法のプロセス４００は、以下のステップをさらに含む。
【００６１】
ステップ４０５において、イベント情報に基づいてアップロード待ちイベントを生成する。
【００６２】
本実施形態では、スマート装置は、ユーザの音声入力を受けて適切なイベント情報を生成することができ、または、処理待ちタスクを実行する際（例えば、処理待ちタスクが音楽再生であれば、音楽を再生し始めたとき）にもイベント情報を生成することができる。この場合、後続の処理のために、生成されたアップロード待ちイベントをパッケージ化してアップロード待ちイベントを生成することができる（例えば、オブジェクト指向プログラミングでは、アップロード待ちイベントは事件類の具体的実例である）。
【００６３】
ステップ４０６において、アップロード待ちイベントをアップロード待ちイベントキューに配分する。
【００６４】
本実施形態において、タスク処理方法が実行されるスマート装置は、少なくとも１つのアップロード待ちイベントキューを事前に構築して、ステップ４０５で生成されたアップロード待ちイベントをアップロード待ちイベントキューに配分することができる。例えば、アップロード待ちイベントを、アップロード待ちイベントの生成時刻に基づいてアップロード待ちイベントキューに配分することができ、例えば、最新に生成されたアップロード待ちイベントをアップロード待ちイベントキューの後方（アップロード待ちイベントキュー尾部）に配分することができる。または、アップロード待ちイベントを、アップロード待ちイベントの優先度に基づいてアップロード待ちイベントキューに配分することができ、例えば、優先度の低いアップロード待ちイベントをアップロード待ちイベントキューの尾部に配分することができる。ここで、アップロード待ちイベントキューは、スマート装置のローカルメモリまたはリムーバブル記憶媒体に記憶されてもよい。
【００６５】
ステップ４０７において、アップロード待ちイベントキューにおけるアップロード待ちイベントを所定のデータフォーマットでサーバに送信する。
【００６６】
本実施形態では、モバイル装置は、アップロード待ちイベントを、アップロード待ちイベントキューの種類（並行イベントキューまたはシリアルイベントキュー）及びアップロード待ちイベントキューの属性（例えば、生成時刻または優先度）に基づいて、所定のデータフォーマット（例えば、ＪＳＯＮフォーマット）でサーバにアップロードすることができる。
【００６７】
実施形態の一部の選択可能な実装形態では、上記アップロード待ちイベントキューにおける上記アップロード待ちイベントを上記所定のデータフォーマットで上記サーバに送信するステップは、上記アップロード待ちイベントキューが空白でないとともに、第２のスレッドプールにアイドルスレッドが存在することに応じて、上記アップロード待ちイベントキューにおける少なくとも一部のアップロード待ちイベントを上記第２のスレッドプールに追加するステップであって、上記少なくとも一部のアップロード待ちイベントにおけるアップロード待ちイベントの数が、上記第２のスレッドプールにおけるアイドルスレッドの数以下である、ステップと、上記少なくとも一部のアップロード待ちイベントが実行完了した後に、上記少なくとも一部のアップロード待ちイベントを、アップロード待ちイベントキューから除去するステップとを含む。
【００６８】
具体的には、スマート装置には、所定の数（例えば、２つ）のスレッドを有する第２のスレッドプールを備えることができる。スマート装置は、アップロード待ちイベントキューおよび第２のスレッドプールの状態を定期的にチェックする。アップロード待ちイベントキューが空白でない（つまり、少なくとも１つのアップロード待ちイベントが存在する）とともに第２のスレッドプールにアイドルスレッド（全スレッドまたは一部のスレッドが待機状態である）が存在する場合には、アップロード待ちイベントキューから少なくとも一部のアップロード待ちイベントを抽出して第２のスレッドプールに追加し、第２のスレッドプールマネージャによって処理待ちタスクの実行を制御する。ここで、当該少なくとも一部アップロード待ちイベントの数は、第２のスレッドプールにおけるアイドルスレッドの数以下である。例えば、２つのアイドルスレッドが存在する場合、１〜２のアップロード待ちイベントを第２のスレッドプールに追加することができる。１つのアイドルスレッドが存在する場合には、１つのアップロード待ちイベントを第２のスレッドプールに追加することができる。
【００６９】
理解すべきことは、第２のスレッドプールにおけるスレッドの数は１でもよく、第２のスレッドプールが１つのスレッドプールのみを含む場合、アップロード待ちイベントは実質的にシリアルモードでアップロードされる。アップロード待ちイベントがアップロードされた後で、次のアップロード待ちイベントが続いてアップロードされる。
【００７０】
第２のスレッドプールに追加されたアップロード待ちイベント毎について、アップロード待ちイベントのアップロードが完了すると、アップロード待ちイベントをアップロード待ちイベントから除去する。
【００７１】
第２のスレッドプールがアップロード待ちイベントを同時（並行）にアップロードするように設定するこれにより、アップロード効率を向上させる一方、多すぎるアップロード待ちイベントを同時にアップロードすることによるスマート装置の実行圧力を軽減することができる。
【００７２】
なお、第２スレッドプールにおけるスレッドは一定量のシステム資源を占有するので、第２スレッドプールにおけるスレッド数は、第２スレッドプールにおけるアップロード待ちイベントの数及びスレッドの待機（閑）時間に基づいて動的に調整されてもよい。例えば、アップロード待ちイベントキューにおけるアップロード待ちイベントの数がイベント数閾値より大きい場合には、第２スレッドプールにおけるスレッド数を増加させて処理効率を向上させることができ、スレッドの待機時間が時間閾値よりも長い場合、時間閾値よりも長い待機時間を有するスレッドは、システムオーバーヘッドを節約するために削除してもよい。
【００７３】
一部の選択可能な実施形態では、スマート装置とサーバとの間に再使用可能な通信リンクが存在する。たとえば、通信リンクはＨＴＴＰ２．０を使用して構築することができる。スマート装置とサーバとの間に再利用可能な通信リンクを構築することにより、データ送信毎に通信リンクを構築することを回避し、これによりデータ送信効率を改善する。例えば、より速く、より効率的にサービス情報を受信したり、アップロード待ちイベントをアップロードすることができる。
【００７４】
図４からわかるように、本実施形態によるスマート装置のタスク処理方法のプロセス４００は、図２に対応する実施形態と比較して、アップロード待ちイベントのアップロードを強調した。その結果、本実施形態に係る技術案は、アップロード待ちイベントキューを介してアップロード待ちイベントをアップロードすることにより、アップロード待ちイベントのアップロード効率を向上させることができる。
【００７５】
上記の各図に示された方法の実施態様として、本発明は、スマート装置のタスク処理装置の実施形態を提供する。装置の実施形態は、図２に示される方法の実施形態に対応し、装置は、様々なスマート装置に具体的に適用され得る。
【００７６】
図５に示すように、本実施形態に係るスマート装置のタスク処理装置５００は、受信ユニット５０１、解析ユニット５０２、配分ユニット５０３及び処理ユニット５０４を含む。受信ユニット５０１は、所定のデータフォーマットのタスク記述情報を含む、サーバから送信されたサービス情報を受信するように構成されている。解析ユニット５０２は、処理待ちタスクを決定するために、所定のデータフォーマットに基づいてサービス情報を解析するように構成されている。配分ユニット５０３は、処理待ちタスクを処理待ちタスクキューに配分するように構成されており、処理ユニット５０４は、処理待ちタスクキューの処理待ちタスクを処理するように構成されている。
【００７７】
本実施形態において、スマート装置のタスク処理装置５００の受信ユニット５０１は、有線接続または無線接続によってサーバから所定のフォーマットのタスク記述情報を含むサービス情報を受信することができる。
【００７８】
本実施形態において、解析ユニット５０２は、受信ユニット５０１で受信されたサービス情報を所定のデータフォーマット（例えば、ＪＳＯＮフォーマット）に基づいて解析して、解析されたタスク記述情報を取得し、解析されたタスク記述情報にもとづいて処理待ちタスクを生成する。
【００７９】
本実施形態において、配分ユニット５０３は、少なくとも１つの処理待ちタスクキューを予め設定しておき、解析ユニット５０２によって決定された処理待ちタスクを処理待ちタスクキューに配分することができる。
【００８０】
本実施形態では、処理ユニット５０４は、処理待ちタスクの種類（例えば、並行タスクキュー又はシリアルタスクキュー）及び処理待ちタスクの属性（例えば、生成時間や優先度）に基づいて、処理待ちタスクキューにおける処理待ちタスクを処理する。
【００８１】
本実施形態の一部の選択可能な実装形態では、処理待ちタスクキューは並行タスクキューであり、処理待ちタスクキューにおける処理待ちタスクを処理することは、上記処理待ちタスクキューが空白でないとともに、第１のスレッドプールにアイドルスレッドが存在することに応じて、上記処理待ちタスクキューの少なくとも一部の処理待ちタスクを上記第１のスレッドプールに追加するステップであって、上記少なくとも一部の処理待ちタスクにおける処理待ちタスクの数が、上記第１のスレッドプールにおけるアイドルスレッドの数以下であるステップと、上記少なくとも一部の処理待ちタスクが実行終了した後に、上記少なくとも一部の処理待ちタスクを上記処理待ちタスクキューから除去するステップと、を含む。
【００８２】
本発明の実施形態の一部の選択可能な実装形態では、処理待ちタスクキューは、シリアルタスクキューであり、上記処理待ちタスクキューにおける上記処理待ちタスクを処理するステップは、処理中の処理待ちタスクが存在しないとともに、上記シリアルタスクキューが空白でないことに応じて、上記シリアルタスクキューの先頭に位置する処理待ちタスクを第１のタスクとし、シリアル処理ステップを実行するステップであって、上記シリアル処理ステップは、上記第１のタスクを実行した後に、上記第１のタスクを上記シリアルタスクキューから除去するステップである、ステップと、上記シリアルタスクキューが空白でないことに応じて、上記シリアルタスクキューの先頭に位置する上記処理待ちタスクを上記第１のタスクとし、上記シリアル処理ステップを継続する、ステップと、を含む。
【００８３】
本発明の実施形態の一部の選択可能な実装形態では、サービス情報は、スマート装置から受信されたイベント情報に基づいてサーバによって生成され、イベント情報は、スマート装置の音声入力情報または処理待ちタスクを実行する期間のスマート装置の状態変化情報のうちの少なくとも１つを含む。
【００８４】
本発明の実施形態の一部の選択可能な実装形態では、装置５００は、イベント情報をサーバに送信するように構成されたイベントユニットをさらに含む。
【００８５】
本実施形態の一部の選択可能な実装形態では、イベントユニットは、イベント生成モジュール、イベント配分モジュール、およびアップロードモジュールを含む。イベント生成モジュールは、イベント情報に基づいてアップロード待ちイベントを生成するように構成されている。上記イベント配分モジュールは、上記アップロード待ちイベントをアップロード待ちイベントキューに配分するように構成され、上記アップロードモジュールは、上記アップロード待ちイベントキューの上記アップロード待ちイベントを所定のデータフォーマットで上記サーバに送信するように構成されている。
【００８６】
本発明の実施形態の一部の選択可能な実施形態では、アップロードモジュールは、上記アップロード待ちイベントキューが空白でないとともに、第２のスレッドプールにアイドルスレッドが存在することに応じて、上記アップロード待ちイベントキューにおける少なくとも一部のアップロード待ちイベントを上記第２のスレッドプールに追加する実行サブモジュールであって、上記少なくとも一部のアップロード待ちイベントにおけるアップロード待ちイベントの数が、上記第２のスレッドプールにおけるアイドルスレッドの数以下である、実行サブモジュールと、上記少なくとも一部のアップロード待ちイベントが実行完了した後に、上記少なくとも一部のアップロード待ちイベントを、アップロード待ちイベントキューから除去する除去サブモジュールとを含む。
【００８７】
本発明の実施形態の一部の選択可能な実施形態では、スマート装置とサーバとの間に再使用可能な通信リンクが存在する。
【００８８】
本発明の実施形態によるスマート装置のタスク処理装置は、処理待ちタスクキューに処理待ちタスクを配分することにより、処理待ちタスクの処理効率を向上させることができる。
【００８９】
続いて図６を参照する。図６は、本発明の実施形態を実現するための電子装置に適用されるコンピュータシステム６００の構成模式図を示した。図６に示された電子装置は一つの例示に過ぎず、本発明の実施形態の機能及び使用範囲に制限しない。
【００９０】
図６に示されたように、コンピュータシステム６００は、読み出し専用メモリ（ＲＯＭ）６０２に記憶されているプログラム又は記憶部６０６からランダムアクセスメモリ（ＲＡＭ）６０３にロードされたプログラムに基づいて様々な適当な動作および処理を実行することができる中央処理装置（ＣＰＵ）６０１を備える。ＲＡＭ６０３には、システム６００の操作に必要な様々なプログラムおよびデータがさらに記憶されている。ＣＰＵ６０１、ＲＯＭ６０２およびＲＡＭ  ６０３は、バス６０４を介して互いに接続されている。入力／出力（Ｉ／Ｏ）インターフェース６０６もバス６０４に接続されている。
【００９１】
キーボード、マウスなどを含む入力部６０６、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）など、およびスピーカなどを含む出力部６０７、ハードディスクなどを含む記憶部６０８、およびＬＡＮカード、モデムなどを含むネットワークインターフェースカードの通信部６０９は、Ｉ／Ｏインターフェース６０６に接続されている。通信部６０９は、例えばインターネットのようなネットワークを介して通信処理を実行する。ドライバ６１０は、必要に応じてＩ／Ｏインターフェース６０６に接続される。リムーバブルメディア６１１は、例えば、マグネチックディスク、光ディスク、光磁気ディスク、半導体メモリなどのようなものであり、必要に応じてドライバ６１０に取り付けられ、したがって、ドライバ６１０から読み出されたコンピュータプログラムが必要に応じて記憶部６０８にインストールされる。
【００９２】
特に，本発明の実施形態によれば、上記のフローチャートに参照して説明された過程はコンピュータソフトウェアプログラムに実現されても良い。例えば、本発明の実施形態はコンピュータ読取可能な媒体にロードされるコンピュータプログラムを含むコンピュータプログラム製品を備える。当該コンピュータプログラムは、フローチャートに示される方法を実行するためのプログラムコードを含む。このような実施形態において、当該コンピュータプログラムは、通信部６０９を介してネットワークからダウンロードしてインストールされ、及び／又はリムーバブルメディア６１１からインストールされても良い。当該コンピュータプログラムは、中央処理ユニット（ＣＰＵ）６０１により実行される場合に、本発明の方法に限定される上記機能を実行する。
【００９３】
説明すべきなのは、本発明のコンピュータ読取可能な媒体は、コンピュータ読取可能な信号媒体、コンピュータ読取可能な記憶媒体、或いは上記両者の任意の組合わせであっても良い。コンピュータ読取可能な記憶媒体は、例えば電気、磁気、光、電磁気、赤外線、半導体のシステム、サーバ又は部品、或いはこれらの任意の組み合わせであっても良いが、それらに限定されない。コンピュータ読取可能な記憶媒体についてのより具体的な例は、一つ又は複数の導線を含む電気的な接続、携帯可能なコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去可能なプログラミング読取専用メモリ（ＥＰＲＯＭ又はフラッシュ）、光ファイバ、携帯可能なコンパクト磁気ディスク読取専用メモリ（ＣＤ−ＲＯＭ）、光学記憶素子、磁気記憶素子、或いは上記の任意の適当の組み合わせを含むが、それらに限定されない。本発明において、コンピュータ読取可能な記憶媒体は、プログラムを含むか記憶する任意の有形の媒体であっても良い。当該プログラムは、コマンドによりシステム、サーバ又は部品の使用を実行し、或いはそれらに組合わせて使用されても良い。本発明において、コンピュータ読取可能な信号媒体は、ベースバンドに伝送され或いはキャリアの一部として伝送され、コンピュータ読取可能なプログラムコードがロードされるデータ信号を含んでも良い。このような伝送されるデータ信号は、各種のフォーマットを採用しても良く、電磁気信号、光信号又は上記の任意の適当の組合わせを含むが、それらに限定されない。コンピュータ読取可能な信号媒体は、コンピュータ読取可能な記憶媒体以外の任意のコンピュータ読取可能な媒体であっても良い。当該コンピュータ読取可能な媒体は、コマンドによりシステム、サーバ又は部品の使用を実行し又はそれらと組合わせて使用されるプログラムを送信し、伝播し又は伝送することができる。コンピュータ読取可能な媒体に含まれるプログラムコードは、任意の適当の媒体で伝送されても良く、無線、電線、光ケーブル、ＲＦなど、或いは上記の任意の適当の組み合わせを含むが、それらに限定されない。
【００９４】
図面におけるフローチャート及びブロック図は、本発明の各実施形態によるシステム、方法及びコンピュータプログラム製品により実現可能なシステム構造、機能及び操作を示した。この点において、フローチャート又はブロック図における各ブロックは、一つのモジュール、プログラムセグメント、又はコードの一部を表すことができる。当該モジュール、プログラムセグメント、コードの一部には、一つ又は複数の所定のロジック機能を実現するための実行可能なコマンドが含まれる。注意すべきなのは、幾つかの置換としての実現において、ブロックに示される機能は図面に示される順序と異なって発生されても良い。例えば、二つの接続的に表示されるブロックは実際に基本的に併行に実行されても良く、場合によっては逆な順序で実行されても良く、関連の機能に従って決定される。
【００９５】
注意すべきなのは、ブロック図及び／又はフローチャートにおける各ブロック、及びブロック図及び／又はフローチャートにおけるブロックの組合わせは、所定の機能又は操作を実行する専用のハードウェアによるシステムで実現されても良く、或いは専用のハードウェアとコンピュータコードの組合わせで実現されても良い。
【００９６】
本発明の実施形態に説明されたユニットは、ソフトウェアの手段で実現されても良く、ハードウェアの手段で実現されても良い。説明されたユニットは、プロセッサに設置されても良い。例えば、受信ユニットと、解析ユニットと、配分ユニットと、処理ユニットとを備えるプロセッサとして記載されても良い。なお、これらのユニットの名称は場合によってユニットの自身に対する限定とされない。例えば、受信ユニットは、「所定のデータフォーマットのタスク記述情報を含むサービス情報をサーバから受信するユニット」と記載されても良い。
【００９７】
他の局面として、本発明は更にコンピュータ読取可能な媒体を提供した。当該コンピュータ読取可能な媒体は、上記実施形態に説明された装置に含まれたものであっても良く、当該装置に実装されずに別途に存在するものであっても良い。上記コンピュータ読取可能な媒体には、一つ又は複数のプログラムがロードされる。上記一つ又は複数のプログラムが当該装置により実行されると、当該装置に、タスク記述情報を含むサービス情報を受信した後、処理待ちタスクキューに配分し、その後に、処理待ちタスクキューにおける処理待ちタスクを処理するように実行させる。
【００９８】
以上の記載は、ただ本発明の好適な実施形態及び運用される技術原理に対する説明である。当業者であればわかるように、本発明にかかる発明範囲は、上記技術特徴の特定の組み合わせからなる技術案に限定されず、上記の発明構想から逸脱されない場合に上記技術特徴又は均等の特徴による任意の組み合わせで形成される他の技術案も同時に含まれべきである。例えば上記特徴と本発明に開示された（それらに限定されない）類似の機能を具備する技術特徴が互いに置換されて得られる技術案は該当する。
【図１】
2019102064.tif 000003
【図２】
2019102064.tif 000004
【図３】
2019102064.tif 000005
【図４】
2019102064.tif 000006
【図５】
2019102064.tif 000007
【図６】
2019102064.tif 000008
【外国語明細書】
2019102064000001.pdf