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

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

▶ ユーアイパス,インコーポレイテッドの特許一覧

特表2023-531332アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービス
<>
  • 特表-アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービス 図1A
  • 特表-アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービス 図1B
  • 特表-アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービス 図1C
  • 特表-アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービス 図2
  • 特表-アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービス 図3
  • 特表-アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービス 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-24
(54)【発明の名称】アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービス
(51)【国際特許分類】
   G06F 8/30 20180101AFI20230714BHJP
   G06F 8/20 20180101ALI20230714BHJP
【FI】
G06F8/30
G06F8/20
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021565071
(86)(22)【出願日】2021-06-24
(85)【翻訳文提出日】2021-12-23
(86)【国際出願番号】 US2021038931
(87)【国際公開番号】W WO2021263004
(87)【国際公開日】2021-12-30
(31)【優先権主張番号】16/910,305
(32)【優先日】2020-06-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Flash
2.Silverlight
3.JAVA
4.JAVASCRIPT
5.ZIGBEE
6.BLUETOOTH
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【弁理士】
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【弁理士】
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】グラハム,ブリジット
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC07
5B376BC51
5B376FA13
(57)【要約】
本明細書では、コンピューティングデバイスが開示される。コンピューティングデバイスは、アプリケーション開発プラットフォームのためのプロセッサ遂行可能命令と、アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービスを格納するメモリとを含む。コンピューティングデバイスは、プロセッサ遂行可能命令を遂行して、コンピューティングデバイスに、画面上の環境変数に関する元に戻す動作の第1の呼び出しを受信するプロセッサを含む。コンピューティングデバイスはさらに、アクティブコンテキストに従って、画面の設定画面に案内して、第1の呼び出しに応じて設定画面を可視化する。設定画面は、環境変数の一部を表示する。また、コンピューティングデバイスは、元に戻す動作の第2の呼び出しを受信し、第2の呼び出しに応じて元に戻す動作を遂行して、設定画面が表示されている間に、設定画面によって示される環境変数の一部に変更を戻す。

【特許請求の範囲】
【請求項1】
コンピューティングデバイスであって、
アプリケーション開発プラットフォームのためのプロセッサ遂行可能命令と、前記アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービスを格納するように構成されたメモリと、
前記メモリに結合されたプロセッサと、を含み、
前記プロセッサは、前記プロセッサ遂行可能命令を遂行して、前記コンピューティングデバイスに以下を行わせるように構成される、コンピューティングデバイス。
1または複数の画面上の1または複数の環境変数に関する元に戻す操作の第1呼び出しを受信すること、
アクティブコンテキストに応じて、前記1または複数の画面の設定画面に案内し、前記第1の呼び出しに応じて前記設定画面を表示することであって、前記設定画面は、前記1または複数の環境変数の少なくとも一部を表示すること、
前記元に戻す操作の第2の呼び出しを受信すること、および
前記第2の呼び出しに応じて前記元に戻す操作を遂行し、前記設定画面が表示されている間に、前記設定画面によって示された前記1または複数の環境変数の前記少なくとも一部に変更を戻すこと。
【請求項2】
前記コンテキストアウェア元に戻す-やり直すサービスは、前記元に戻す操作、やり直す操作を制御および実装し、前記アクティブコンテキストを記録および利用するように適応されたプロセッサ遂行可能命令を含む、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記やり直す操作は、前記設定画面から離れた場所への案内を引き起こす、請求項2に記載のコンピューティングデバイス。
【請求項4】
前記やり直す操作は、前記元に戻す操作によって行われた、前記設定画面によって示される前記1または複数の環境変数の前記少なくとも一部に変更を復元する、請求項2に記載のコンピューティングデバイス。
【請求項5】
前記アクティブコンテキストは、前記アプリケーション開発プラットフォームのユーザーインターフェース状況のセットと、それに加えられた変更を含む、請求項1に記載のコンピューティングデバイス。
【請求項6】
前記設定画面によって示される前記1または複数の環境変数の前記少なくとも一部は、設定パネルの1または複数のフォーム内に常駐し、英数字の値または範囲を含む、請求項1に記載のコンピューティングデバイス。
【請求項7】
前記1または複数のフォームは、前記1または複数の環境変数を入力として受け取り、保存し得るオブジェクトの形状、視覚的外観、またはフィールドの構成を含む、請求項6に記載のコンピューティングデバイス。
【請求項8】
メモリに接続された少なくとも1つのプロセッサによって、1または複数の画面上の1または複数の環境変数に関する元に戻す操作の第1の呼び出しを受信することであって、前記メモリは、アプリケーション開発プラットフォームのためのプロセッサ遂行可能命令と、前記アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービスとを格納しており、前記少なくとも1つのプロセッサは、前記プロセッサ遂行可能命令を遂行するように構成されることと、
アクティブコンテキストに応じて前記少なくとも1つのプロセッサによって、前記1または複数の画面の設定画面に案内し、前記第1の呼び出しに応じて前記設定画面を表示することであって、前記設定画面は、前記1または複数の環境変数の少なくとも一部を表示することと、
前記少なくとも1つのプロセッサによって、前記元に戻す操作の第2の呼び出しを受信することと、
前記少なくとも1つのプロセッサによって、前記第2の呼び出しに応じて前記元に戻す操作を遂行し、前記設定画面が表示されている間に、前記設定画面によって示された前記1または複数の環境変数の少なくとも前記一部に変更を戻すことと、を含む、方法。
【請求項9】
前記コンテキストアウェア元に戻す-やり直すサービスは、前記元に戻す操作、やり直す操作を制御および実装し、前記アクティブコンテキストを記録および利用するように適応されたプロセッサ遂行可能命令を含む、請求項8に記載の方法。
【請求項10】
前記やり直す操作は、前記設定画面から離れた場所への案内を引き起こす、請求項9に記載の方法。
【請求項11】
前記やり直す操作は、前記元に戻す操作によって行われた、前記設定画面によって示される前記1または複数の環境変数の前記少なくとも一部に変更を復元する、請求項9に記載の方法。
【請求項12】
前記アクティブコンテキストは、前記アプリケーション開発プラットフォームのユーザーインターフェース状況のセットと、それに加えられた変更を含む、請求項8に記載の方法。
【請求項13】
前記設定画面によって示される前記1または複数の環境変数の前記少なくとも一部は、設定パネルの1または複数のフォーム内に常駐し、英数字の値または範囲を含む、請求項8に記載の方法。
【請求項14】
前記1または複数のフォームは、前記1または複数の環境変数を入力として受け取り、保存し得るオブジェクトの形状、視覚的外観、またはフィールドの構成を含む、請求項13に記載の方法。
【請求項15】
アプリケーション開発プラットフォームのためのプロセッサ遂行可能命令および前記アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービスとして、非一時的なコンピュータ可読媒体に格納されたコンピューティングプログラム製品であって、前記プロセッサ遂行可能命令は、少なくとも1つのプロセッサによって遂行可能であり、前記少なくとも1つのプロセッサに以下を行わせるように結合される、コンピューティングプログラム製品。
1または複数の画面上の1または複数の環境変数に関する元に戻す操作の第1呼び出しを受信すること、
アクティブコンテキストに応じて、前記1または複数の画面の設定画面に案内し、前記第1の呼び出しに応じて前記設定画面を表示することであって、前記設定画面は、前記1または複数の環境変数の少なくとも一部を表示すること、
前記元に戻す操作の第2の呼び出しを受信すること、および
前記第2の呼び出しに応じて前記元に戻す操作を遂行し、前記設定画面が表示されている間に、前記設定画面によって示された前記1または複数の環境変数の前記少なくとも一部に変更を戻すこと。
【請求項16】
前記コンテキストアウェア元に戻す-やり直すサービスは、前記元に戻す操作、やり直す操作を制御および実装し、前記アクティブコンテキストを記録および利用するように適応されたプロセッサ遂行可能命令を含む、請求項15に記載のコンピューティングプログラム製品。
【請求項17】
前記やり直す操作は、前記設定画面から離れた場所への案内を引き起こす、請求項16に記載のコンピューティングプログラム製品。
【請求項18】
前記やり直す操作は、前記元に戻す操作によって行われた、前記設定画面によって示される前記1または複数の環境変数の前記少なくとも一部に変更を復元する、請求項16に記載のコンピューティングプログラム製品。
【請求項19】
前記アクティブコンテキストは、前記アプリケーション開発プラットフォームのユーザーインターフェース状況のセットと、それに加えられた変更を含む、請求項15に記載のコンピューティングプログラム製品。
【請求項20】
前記設定画面によって示される前記1または複数の環境変数の前記少なくとも一部は、設定パネルの1または複数のフォーム内に常駐し、英数字の値または範囲を含む、請求項15に記載のコンピューティングプログラム製品。

【発明の詳細な説明】
【背景技術】
【0001】
(関連出願への相互参照)
本出願は、2020年6月24日に出願された米国特許出願第16/910,305号の利益を主張するものであり、その内容は参照により完全に記載されているかのように組み込まれる。
【0002】
アプリケーション設計ソフトウェアは、元に戻す機能またはやり直し機能などの設定機能を含む。一般的に、アプリケーション設計ソフトウェア内でアプリケーションプロジェクトに取り組む際、元に戻す機能は、構成の現在の設定を削除し、構成の以前の設定に戻すことによって、アプリケーションプロジェクトの構成に任意の最近の変更を戻す。元に戻す機能の後に使用されるやり直す機能は、元に戻す機能で削除された現在の設定が再び実装されるように、アプリケーションプロジェクトの構成に最近の変更を戻す。
【0003】
従来のアプリケーション設計ソフトウェアでは、アプリケーションプロジェクトの構成設定を複数の画面および/またはソフトウェアウィンドウにまたがって行う場合に、元に戻すおよびやり直す機能が適用される。例えば、これらの設定変更に関連するプロパティが隠されていたり、または別の画面(例えば、現在のアクティブな画面ではない画面)の一部であるため、ユーザーが気づかないうちにアプリケーションプロジェクトが変更されてしまう状況がある。また、元に戻すおよびやり直す機能は、アプリケーションプロジェクトのどこで変更が行われているのかがユーザーに明確でない場合、ユーザーに混乱をもたらし、そしてアプリケーションプロジェクトの意図しない修正および構成上の問題を引き起こし得る。このような混乱および意図しない修正は、従来のアプリケーション設計ソフトウェアでは、複数の画面ならびに元に戻すおよびやり直す機能を使ってユーザーを整然と案内することができないため、ユーザーエクスペリエンスの低下につながる。
【発明の概要】
【0004】
実施形態によれば、コンピューティングデバイスが提供される。コンピューティングデバイスは、アプリケーション開発プラットフォームのためのプロセッサ遂行可能命令と、アプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直す(undo-redo)サービスを格納するメモリとを含む。コンピューティングデバイスは、プロセッサ遂行可能命令を遂行して、コンピューティングデバイスに、画面上の環境変数に関する元に戻す動作の第1の呼び出しを受信するプロセッサを含む。コンピューティングデバイスはさらに、アクティブコンテキストに従って、画面の設定画面に案内して、第1の呼び出しに応じて設定画面を可視化する。設定画面は、環境変数の一部を表示する。また、コンピューティングデバイスは、元に戻す動作の第2の呼び出しを受信し、第2の呼び出しに応じて元に戻す動作を遂行して、設定画面が表示されている間に、設定画面によって示される環境変数の一部に変更を戻す。
【0005】
1または複数の実施形態によれば、上記のコンピューティングデバイスの実施形態は、方法、装置、システム、および/またはコンピュータプログラム製品として実装され得る。
【図面の簡単な説明】
【0006】
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
【0007】
図1A】1または複数の実施形態によるロボティックプロセスオートメーション(RPA)の開発、設計、運用、または遂行の説明図である。
【0008】
図1B】1または複数の実施形態によるRPAの開発、設計、運用、または遂行の別の説明図である。
【0009】
図1C】1または複数の実施形態によるコンピューティングシステムまたは環境の説明図である。
【0010】
図2】1または複数の実施形態によるコンピューティングシステムまたは環境によって遂行されるプロセスフローを示すブロック図である。
【0011】
図3】1または複数の実施形態によるコンピューティングシステムまたは環境によって遂行されるプロセスフローを示すブロック図である。
【0012】
図4】1または複数の実施形態によるコンピューティングシステムまたは環境によって遂行されるプロセスフローを示すブロック図である。
【発明を実施するための形態】
【0013】
(詳細な説明)
本明細書に開示されるのは、1または複数の実施形態によるアプリケーション開発プラットフォームのコンテキストアウェア元に戻す-やり直すサービスである。コンテキストアウェア元に戻す-やり直すサービスおよびアプリケーション開発プラットフォームは、コンピューティングシステムまたは環境(例えば、図1Cのコンピューティングシステムまたは環境140)によるプロセス操作、およびコンピューティングシステムまたは環境の処理するハードウェアに必然的に根付いているプロセッサ遂行可能コードまたはソフトウェアであり、元に戻すおよび/またはやり直すコマンドにそれぞれアクティブコンテキストを決定して適用する。このように、1または複数の実施形態によれば、コンテキストアウェア元に戻す-やり直すサービスは、コンピューティングシステムまたは環境のアプリケーション開発プラットフォームのための特定の構成およびツーリングロボティックプロセスオートメーション方法を提供する。この特定の構成およびツーリングロボティックプロセスオートメーション方法は、元に戻すおよび/またはやり直すコマンドおよびアクティブコンテキスト(例えば、本明細書に記載されているようなユーザーインターフェースの状況)に関連して、アプリケーションプロジェクトの構成設定および画面(および/またはソフトウェアウィンドウ)の多段階のデータ操作を含む。
【0014】
この点において、コンテキストアウェア元に戻す-やり直すサービスは、ユーザーがアプリケーションプロジェクトを操作する際に、ユーザーインターフェースのアクティブコンテキストをリアルタイムで追跡し、元に戻すおよび/またはやり直すコマンドによるアプリケーションプロジェクトの変更をユーザーが完全に認識できるようにする。例えば、モデルまたはフォームは、任意のアプリケーション開発プラットフォームを使用して構成され、これは、アプリケーションのプロパティ/変数、オーケストレータのプロセス統合、データソースなどを含む。モデルまたはフォーム上でプロパティ/変数が変更されると、ユーザーインターフェースの状態(例えば、どのパネルが開いているか、どのパネルが閉じているか、どのプロパティセクションが公開されているか、どのオブジェクトが現在選択されているか、など)のスナップショットが取られる。次いで、このスナップショットは、そのプロパティ/変数の変化に関連付けられ、コンテキストアウェア元に戻す-やり直すサービスによって記録される。この変更は、変更された単一のプロパティ/変数の場合もあれば、または一緒に変更されているプロパティ/変数のセット全体の場合もあることに留意されたい。このように、元に戻すおよび/またはやり直す操作が要求された場合、基礎となるアプリケーション開発プラットフォームは、元に戻すおよび/またはやり直す操作が記録された時点でのユーザーインターフェースの戻しまたは復元を可能にする(例えば、開いていたが閉じられたパネルが再び開かれるようになり、選択されていたモデルが再び選択されるようになるなど)。
【0015】
コンテキストアウェア元に戻す-やり直すサービスの技術的効果および利点は、従来の元に戻すおよびやり直す機能に比べて、アプリケーションプロジェクトの意図しない修正を排除することを含む。また、コンテキストアウェア元に戻す-やり直すサービスの技術的な効果および利点は、任意の変更の可視性の向上と、ユーザーガイダンスの改善(それにより、混乱の少ない、より良いユーザーエクスペリエンスの実現)を含む。例えば、ユーザーは、プロパティ/変数に変更が加えられる前に、ユーザーインターフェースがどのように見えていたかを見ることができ、これは、どこで変更が加えられ、それらの変更が何であったかというコンテキストをユーザーが理解するのに役立つ。
【0016】
本明細書に記載されている方法およびプロセスでは、記載されているステップは任意の順序で順不同で実行され得、明示的に記載または表示されていないサブステップが実行され得る。また、「結合されている」または「操作的に結合されている」とは、オブジェクトが連結されていることを意味してもよいが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用されてもよい。「AまたはB」を参照して使用する場合は、A、B、またはAおよびBを含む場合があり、より長いリストと同様に拡張され得る。表記X/Yを使用する場合、それはXまたはYを含み得る。あるいは、表記X/Yを使用する場合、それはXおよびYを含み得る。X/Y表記は、同一の説明されたロジックを有するより長いリストと同様に拡張され得る。
【0017】
図1Aは、ロボティックプロセスオートメーション(RPA)の開発、設計、運用、または遂行100の説明図である。デザイナ102は、スタジオ、1または複数のエンジン(例えば、元に戻すエンジン)を含む開発プラットフォーム、開発環境などとして時々参照され、ロボットが1または複数のワークフローを実行または自動化するためのコード、命令、コマンドなどを生成するように構成され得る。コンピューティングシステムがロボットに提供し得る選択(複数可)から、ロボットは、ユーザーまたはオペレータによって選択されたビジュアルディスプレイの領域(複数可)の代表的なデータを決定し得る。RPAの一環として、コンピュータビジョン(CV)操作または機械学習(ML)モデルに関連して、四角、長方形、円、多角形、自由形などの多次元の形状をUIロボットの開発およびランタイムに利用され得る。
【0018】
ワークフローによって達成され得る操作の非限定的な例としては、ログインの実行、フォームへの入力、情報技術(IT)管理などのうちの1または複数であり得る。UIオートメーションのためのワークフローを実行するために、ロボットは、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に識別する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語(HTML)、HTML5、拡張可能なマークアップ言語(XML)、JavaScript、C#、C++、Silverlightなどであり得る。
【0019】
ワークフローには、タスクシーケンス、フローチャート、有限状態マシン(FSM)、グローバル例外ハンドラなどが含まれ得るが、これらに限定されない。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態をそれらの遂行中に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスなどのために、遂行エラーが発生したときのワークフローの動作を判断するように構成され得る。
【0020】
ロボットは、アプリケーション、アプレット、スクリプトなどであり得、基盤となるオペレーティングシステム(OS)またはハードウェアに対し透過的なUIを自動化し得る。展開時には、1または複数のロボットは、コンダクタ104(オーケストレータと呼ばれることもある)によって管理、制御などされ得る。コンダクタ104は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、デスクトップアプリ(複数可)、ブラウザ、またはそのようなクライアント、アプリケーション、もしくはプログラムにおいてワークフローを遂行または監視するようにロボット(複数可)または自動化エグゼキュータ106に指示または命令し得る。コンダクタ104は、コンピューティングプラットフォームを自動化するために複数のロボットを指示または命令するための中央または半中央点として機能し得る。
【0021】
特定の構成では、コンダクタ104は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性を提供するように構成され得る。プロビジョニングは、ロボット(複数可)または自動化エグゼキュータ106とコンダクタ104との間の接続または通信の作製および維持を含み得る。展開は、遂行のために割り当てられたロボットへのパッケージバージョンの配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボットの識別データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ104は、サードパーティのソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0022】
ロボット(複数可)または自動化エグゼキュータ106は、アンアテンディッド108またはアテンディッド110として構成され得る。アンアテンディッド108操作の場合、自動化は、サードパーティの入力または制御なしで実行され得る。アテンディッド110操作については、サードパーティのコンポーネントからの入力、コマンド、指示、指導などを受信して自動化が行われ得る。アンアテンディッド108またはアテンディッド110ロボットは、モバイルコンピューティングまたはモバイルデバイスの環境で実行するまたは遂行することがきる。
【0023】
ロボット(複数可)または自動化エグゼキュータ106は、デザイナ102内に構築されたワークフローを実行する遂行エージェントであり得る。UIまたはソフトウェアの自動化のためのロボット(複数可)の商業的な例としては、UiPath Robots(商標)がある。いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、Microsoft Windows(登録商標) Service Control Manager(SCM)管理サービスをデフォルトでインストールし得る。その結果、そのようなロボットは、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を持ち得る。
【0024】
いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、ユーザーモードでインストールされ得る。これらのロボットは、所定のロボットが設置されているユーザーと同じ権利を持ち得る。この特徴は、高密度(HD)環境などで最大のパフォーマンスで各マシンを完全に利用できるようにする高密度(HD)ロボットでも使用可能であり得る。
【0025】
特定の実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、それぞれが特定の自動化タスクまたはアクティビティに特化したいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し、コンダクタ104と遂行ホスト(すなわち、ロボット(複数可)または自動化エグゼキュータ106が遂行されるコンピューティングシステム)との間のプロキシとして機能し得る。これらのサービスは、ロボット(複数可)または自動化エグゼキュータ106のための資格情報を任されて管理し得る。
【0026】
ユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ104と遂行ホストとの間のプロキシとして機能し得る。ユーザーモードロボットサービスは、ロボットの資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0027】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを遂行し得る(つまり、ワークフローを遂行し得る)。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を意識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントはサービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を依頼し得る。コマンドラインはサービスのクライアントとなり得る。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0028】
上で説明したように、ロボット(複数可)または自動化エグゼキュータ106のコンポーネントが分割される構成では、開発者、サポートユーザー、およびコンピューティングシステムが、各コンポーネントによる実行、識別、および追跡をより容易に遂行するのに役立つ。この方法では、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な動作を構成し得る。エグゼキュータは、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、いずれかのDPIで遂行し得る。また、デザイナ102からのプロジェクトは、ブラウザのズームレベルに依存しないようにし得る。DPIを認識していないまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0029】
図1Bは、RPAの開発、設計、運用、または遂行120の別の説明図である。スタジオコンポーネントまたはモジュール122は、ロボットが1または複数のアクティビティ124を実行するためのコード、命令、コマンドなどを生成するように構成され得る。ユーザーインターフェース(UI)オートメーション126は、1または複数のドライバ(複数可)コンポーネント128を使用して、クライアント上のロボットによって実行され得る。ロボットは、コンピュータビジョン(CV)アクティビティモジュールまたはエンジン130を使用してアクティビティを行い得る。他のドライバ132は、UIの要素を得るためにロボットによるUIオートメーションのために利用され得る。それらには、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどが含まれ得る。特定の構成では、CVアクティビティモジュールまたはエンジン130は、UIオートメーションのために使用されるドライバであり得る。
【0030】
図1Cは、情報またはデータを通信するためのバス142または他の通信機構と、処理のためにバス142に結合された1または複数のプロセッサ(複数可)144とを含むことができるコンピューティングシステムまたは環境140の説明図である。1または複数のプロセッサ(複数可)144は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイス、またはそれらの任意の組み合わせを含む、任意のタイプの一般的または特定用途プロセッサであり得る。1または複数のプロセッサ(複数可)144はまた、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。また、マルチパラレル処理が構成され得る。さらに、少なくとも1または複数のプロセッサ(複数可)144は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。
【0031】
メモリ146は、プロセッサ(複数可)144によって遂行または処理される情報、命令、コマンド、またはデータを格納するように構成され得る。メモリ146は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ソリッドステートメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的な読み取り可能な媒体、あるいはそれらの組み合わせの任意の組み合わせで構成され得る。非一時的な読み取り可能な媒体は、プロセッサ(複数可)144によってアクセス可能な任意の媒体であってもよく、揮発性媒体、不揮発性媒体などを含み得る。また、媒体は、取り外し可能なものであってもよいし、取り外し不可能なものなどであってもよい。
【0032】
通信装置148は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM:Global System for Mobile)通信、汎用パケット無線サービス(GPRS:General Packet Radio Service)、ユニバーサル移動体通信システム(UMTS:Universal Mobile Telecommunications System)、cdma2000、広帯域CDMA(W-CDMA:Wideband CDMA)、高速ダウンリンクパケットアクセス(HSDPA:High-Speed Downlink Packet Access)、高速アップリンクパケットアクセス(HSUPA:High-Speed Uplink Packet Access)、高速パケットアクセス(HSPA:High-Speed Packet Access)、ロングタームエボリューション(LTE:Long Term Evolution)、LTEアドバンスト(LTE-A:LTE Advanced)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB:Ultra-WideBand)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID:Radio Frequency Identification)、IrDA(Infrared Data Association)、近距離無線通信(NFC:Near-Field Communications)、第5世代(5G)、New Radio(NR)、または、1もしくは複数のアンテナを介して通信するためのいずれかの他の無線もしくは有線のデバイス/トランシーバとして構成され得る。アンテナは、単数型、アレイ型、フェーズド型、スイッチ型、ビームフォーミング型、ビームステア型などであり得る。
【0033】
1または複数のプロセッサ(複数可)144は、バス142を介して、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、フィールドエミッションディスプレイ(FED)、有機発光ダイオード(OLED)、フレキシブルOLED、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)またはそのようなベースのディスプレイなどのディスプレイデバイス150にさらに結合され得る。ディスプレイデバイス150は、入力/出力(I/O)のために、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ、3次元(3D)タッチ、マルチ入力タッチ、またはマルチタッチディスプレイとして構成され得る。
【0034】
キーボード152およびコンピュータマウス、タッチパッドなどの制御装置154は、コンピューティングシステムまたは環境140への入力のためにバス142にさらに結合され得る。さらに、入力は、それと通信している別のコンピューティングシステムを介してリモートでコンピューティングシステムまたは環境140に提供されてもよいし、コンピューティングシステムまたは環境140が自律的に操作してもよい。
【0035】
メモリ146は、1または複数のプロセッサ(複数可)144によって遂行または処理されたときに機能を提供するソフトウェアコンポーネント、モジュール、エンジンなどを格納してもよい。これは、コンピューティングシステムまたは環境140のためのOS156を含み得る。モジュールは、アプリケーション固有のプロセスまたはその派生物を実行するためのカスタムモジュール158をさらに含み得る。コンピューティングシステムまたは環境140は、付加的な機能を含む1または複数の付加的な機能モジュール160を含み得る。例えば、コンテキスト対応の元に戻す-やり直すサービスは、モジュール158および160のうちの1または複数に実装されて、特定の構成およびツーリングロボティックプロセスオートメーション方法をコンピューティングシステムまたは環境140に提供し得る。
【0036】
コンピューティングシステムまたは環境140は、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、スマートフォン、固定型モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成され得る。
【0037】
本明細書に記載された例では、モジュールは、カスタムの非常に大規模な集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
【0038】
モジュールは、様々なタイプのプロセッサによって遂行されるためのソフトウェアに少なくとも部分的に実装され得る。識別された遂行可能コードのユニットは、例えば、オブジェクト、プロシージャ、ルーチン、サブルーチン、または関数として編成されていてもよいコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。識別されたモジュールの遂行可能は、論理的に結合されるとモジュールを構成するように、異なる位置に共に配置されたり、格納されたりする。
【0039】
遂行可能なコードのモジュールは、単一の命令、1または複数のデータ構造、1または複数のデータセット、複数の命令などであり、複数の異なるコードセグメント、異なるプログラム間、複数のメモリデバイス間などに分散され得る。操作データまたは機能データは、モジュール内で識別され、ここで示されてもよく、任意の適切なタイプのデータ構造内で適切な形態で具現化され、組織化され得る。
【0040】
本明細書で説明された例では、コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で構成され得る。コンピュータプログラムは、互いに操作可能な通信を行い、情報または指示を渡すためのモジュールで構成され得る。
【0041】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって遂行されるために、コンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。コンピュータ読み取り可能な媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ読み取り可能なストレージ媒体が挙げられる。コンピュータ読み取り可能なストレージ媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体記憶デバイス、内部ハードディスクおよびリムーバブルディスクなどの磁気媒体、磁気光学媒体、ならびにCD-ROMディスクおよびデジタル多目的ディスク(DVD)などの光学媒体が挙げられるが、これらに限定されない。
【0042】
次に図2に目を向けると、1または複数の実施形態によるコンピューティングシステムまたは環境(例えば、図1Cのコンピューティングシステムまたは環境140)によって遂行されるプロセスフロー200を示すブロック図である。プロセスフロー200は、アプリケーション開発プラットフォーム(例えば、図1Aのデザイナ104および/またはコンダクタ106)で遂行するコンテキストアウェア元に戻す-やり直すサービスによるコンテキストアウェア元に戻す操作のための方法の一例の実装である。プロセスフロー200は、コンテキストアウェア元に戻す操作に限定されず、コンテキストアウェアやり直す操作にも適用可能であることに留意されたい。
【0043】
1または複数の実施形態によれば、コンテキストアウェア元に戻す操作およびコンテキストアウェア元に戻す-やり直すサービスは、Java Scriptおよび/またはTypescriptなどのコンピュータコードおよび/またはプログラミング言語によって実装される。さらに、コンテキストアウェア元に戻す操作およびコンテキストアウェア元に戻す-やり直すサービスは、モデルオブジェクトフレームワークの一部とし得る。例えば、モデルオブジェクトフレームワークは、コードベースに組み込まれたイベントモデルであり、そこでは、変更、コンテキスト変更、および元に戻す/やり直す操作が開始される(例えば、コアモデルオブジェクトフレームワークは、「Apps Builders」エクスペリエンスの基本的な部分であり、すべての機能がコンテキストアウェア元に戻す-やり直すサービスを利用できる)。例えば、コンテキストアウェア元に戻す-やり直すサービスは、ユーザーが設計しているアプリケーションプロジェクトに関する真実のソース(すなわち、アプリケーション開発プラットフォームのユーザーインターフェースのスナップショットまたはアクティブコンテキスト)を収容するものである。
【0044】
一般に、1または複数の実施形態によれば、コンテキストアウェア元に戻す-やり直すサービスは、ユーザーに、アーティファクトのそれらの設定に何が起こっているか、どのプロパティが更新されるかについてを知らせ続ける。ユーザーが変更の一部を元に戻すことを選択した場合、コンテキストアウェア元に戻す-やり直すサービスは、元に戻そうとしている変更に関連する正しいコンテキスト(例えば、設定パネル)を表示するので、ユーザーは、ユーザーインターフェース内でこれらの変更を見て、元に戻す(またはやり直す)操作の影響を即座に視覚的に理解することができる。一方、従来のアプリケーション設計ソフトウェア(例えば、ほとんどのオンラインエディター)では、ユーザーが変更の元に戻すを開始すると、従来のアプリケーション設計ソフトウェアは、任意の基礎となるオブジェクトモデルを変更するだけで、値を以前の値に戻す。従来のアプリケーション設計ソフトウェアの一部の場合では、これらの変更は、その変更が目に見えるユーザーインターフェースの特定の領域と結びつく。ユーザーが従来のアプリケーション設計ソフトウェア内の元に戻す/やり直す機能を継続すると、ユーザーインターフェースは変更が行われた異なる場所を示すことができず、ユーザーが構築および構成している異なるアーティファクトのコンテキストが見えなくなる。
【0045】
したがって、プロセスフロー200は、ユーザーが特定の画面(例えば、以前の設定パネル)から離れて案内された後の元に戻す/やり直す操作に関連した、ユーザーに見える場合も見えない場合もある設定変更の問題を考慮する。これらの問題を解決するために、プロセスフロー200は、修正が必要な特定の画面への案内を可能にし、それに応じて設定の変更を実装する。
【0046】
プロセスフロー200は、ブロック220で始まり、1または複数のフォームに関連する1または複数の環境変数が作成される。1または複数のフォームは、1または複数の環境変数を入力として受信して保存することができるオブジェクトの形状、視覚的外観、および/またはフィールドの構成を含み得る。1または複数のフォームは、アプリケーション開発プラットフォームの1または複数の画面(および/またはユーザーインターフェースのソフトウェアウィンドウ)内に表示され得る。1または複数の環境変数は、1または複数のフォームのそれぞれに常駐し、任意の英数字の値および/または範囲とし得る。操作において、1または複数の変数に設定変更が行われると(例えば、英数字の値および/または範囲が変更されると)、アプリケーション開発プラットフォームの元に戻すエンジンは、設定変更を含むアクティブコンテキストを記録する(例えば、スナップショットを取る)。元に戻すエンジンは、アクティブコンテキストの記録および利用とともに、元に戻すおよびやり直す操作を制御および実装するように適合されたソフトウェアを含むことに留意されたい。
【0047】
1または複数の実施形態によれば、アクティブコンテキストは、ユーザーインターフェースの状況のセットである。より詳細には、アクティブコンテキストは、アプリケーション開発プラットフォーム、そのユーザーインターフェース、およびそれに加えられた設定変更の状況の積み重ねである。アクティブコンテキストは、メモリ(例えば、図1Cのメモリ146)に格納された任意の適切なタイプのデータ構造内に適切な形式で記録されおよび/または編成され得る。本明細書で述べたように、いくつかのケースでは、アクティブコンタクトは、ユーザーインターフェースのスナップショットと呼ばれ得る。
【0048】
状況の積み重ねの例は、限定されないが、画面の数、どの画面が表示されているかまたは見えているかの表示、およびどの画面が表示されていないかまたは見えていないかの表示を含む。状況の積み重ねの例はまた、限定されないが、どの画面が開かれているかおよび/または最小化されているかの表示、画面によって表示されている1または複数のフォームの表示、ならびに画面ごとのフォームの数を含む。状況の積み重ねの例はまた、限定されないが、画面またはフォームの1または複数のフィールド、画面またはフォームのための1または複数の環境変数、およびフィールド内の1または複数の環境変数を含む。状況の積み重ねの例はまた、限定されないが、設定パネル(例えば、スクリーンの一タイプ)、アーティファクト、および仕様フィールド/変数/設定を含む。
【0049】
理解を容易にするために、アーティファクトは、本明細書の状況の積み重ねの1または複数の態様のために代表的に使用され得る。アーティファクトは、データベース要求、文法規則、および/またはユーザー生成コンテンツなど、自動化された動作または制御シーケンスを記述する複雑なデータオブジェクトまたはアプリケーションであり得ることに留意されたい。さらに、元に戻すおよびやり直す機能性は、アーティファクト(すなわち、状況の積み重ねの1または複数の態様)に関して利用可能であることに留意されたい。
【0050】
設定変更は、ユーザーの入力に基づくユーザーのアクティビティ、および/または第三者の入力もしくは制御なしに実行される自動化アクティビティによる、状況の積み重ねへの変更であり得る。1または複数の実施形態によれば、設定変更および状況の積み重ねは、設定変更が行われたときに、アプリケーション開発プラットフォームのアクティブコンテキストを追跡する範囲内で記録される。例えば、アプリケーション開発プラットフォームでは、ユーザーが1または複数の設定パネルを有するアプリケーションプロジェクトのためにアーティファクトを作成、構築、および構成する際に、設定パネル内でそれらのアーティファクトに行われた変更が、アクティブコンテキストデータ構造に記録/追跡される。
【0051】
ブロック240において、アプリケーション開発プラットフォームの元に戻すエンジンは、画面上の1または複数のフォーム上の1または複数の環境変数の元に戻す操作(例えば、その第1の呼び出し)を開始する。元に戻す操作は、ユーザー入力および/または自動化アクティビティによってトリガされ得る。
【0052】
1または複数の実施形態によれば、画面が現在の設定パネル(例えば、現在可視)であり、元に戻す操作に対応する修正が現在の設定パネルで実行される必要がある場合、対応する設定変更が即座に(例えば、元に戻す操作の第1の呼び出しに応じて且つそれと同時に)遂行され、表示される。順に、プロセスフロー200は終了してもよい。
【0053】
1または複数の実施形態によれば、画面が現在の設定パネルではない場合(アプリケーション開発プラットフォームが、ユーザーまたは自動アクションによって、修正が行われた前の設定パネルから離れた後続の案内を経験したように)、プロセスフロー200は、ブロック260に進んでもよい。
【0054】
ブロック260において、画面から離れた案内に続いて、アプリケーション開発プラットフォームは、元に戻す操作に対応する修正を示す設定画面(例えば、以前の設定パネル)に案内する。元に戻す操作に対応する修正は、1または複数の環境変数に対して行うことができる。1または複数の実施形態によれば、元に戻す操作が初めて呼び出されたとき、アプリケーション開発プラットフォームは、1または複数の変数に対する最後のアクション、設定変更、または修正が実行された前の設定パネルに戻って案内する。
【0055】
例えば、ユーザーが特定の画面から離れた場所に移動した後に設定を元に戻す場合、元に戻すエンジンは、元に戻そうとしている正しい設定画面およびプロパティに戻ってユーザーを案内する。このようにして、ユーザーは、コンテキストアウェア元に戻す-やり直すサービスによって開かれた画面上で、適用された変更を確認することができる。元に戻す操作が遂行される前に、正しい画面が開かれ、ユーザーが現在の設定を確認できるようにし得、そして「元に戻す」操作の第2呼び出し時に、変更が加えられることに留意されたい。ユーザーは、元に戻す/やり直す操作によって、ユーザーが作業しているアーティファクトのどの部分を修正しているかを常に正確に見ることができる。
【0056】
ブロック280で、アプリケーション開発プラットフォームは、設定画面の情報に基づいて、1または複数の環境変数の元に戻す操作を遂行する。1または複数の実施形態によれば、元に戻す操作の第2呼び出し時に、設定変更は以前の設定パネルで実装される。このように、元に戻す操作の1または複数の呼び出しにより、任意の最近の変更は目に見えて元に戻される。
【0057】
プロセスフロー200および本明細書の開示を考慮すると、ユーザーがアプリケーションプロジェクトを構築する際に、ユーザーが仕様書のセットに従ってアプリケーションプロジェクトを設計する間に、アーティファクトがモデルに追加および更新される。これに関連して、ユーザーは、フォームボタンのサイズを修正することができる「サイズ」と呼ばれるセクションを開くかもしれない。次に、ユーザーは、「位置」と呼ばれる別のセクションを開いて、ユーザーは制御の位置を変更することができる。ユーザーが元に戻す操作を呼び出すと、ユーザーは「位置」画面に促され、ユーザーが操作を適用する前の現在の値を確認することができる。その後、ユーザーが別の元に戻す操作を続けると、「サイズ」画面が開かれて、ユーザーは制御のサイズが次に修正される部分であることを確認できる。このように、操作の「積み重ね」は何段階にもわたって行われ得、各アイテムについて、ユーザーは常に、変更が適用される正しいユーザーインターフェースコンテキスト(すなわち、アクティブコンテキストに基づく正しい画面)に誘導される。
【0058】
次に図3に目を向けると、1または複数の実施形態によるコンピューティングシステムまたは環境(例えば、図1Cのコンピューティングシステムまたは環境140)によって遂行されるプロセスフロー300を示すブロック図である。プロセスフロー300は、アプリケーション開発プラットフォーム(例えば、図1Aのデザイナ104および/またはコンダクタ106)で遂行するコンテキストアウェア元に戻す-やり直すサービスによるコンテキストアウェア元に戻す操作のための方法の一例の実装である。プロセスフロー300は、本明細書に記載されているような設定変更およびユーザーエクスペリエンスに関する問題を考慮する。これらの問題を解決するために、プロセスフロー300は、修正が必要な画面間への案内を可能にし、それに応じて設定の変更を実装する。
【0059】
プロセスフロー300は、ブロック311および313から始まり、ここで、アプリケーション開発プラットフォームが(アプリケーション開発プラットフォーム内の)アクティビティを監視し、アクティビティのアクティブコンテキストを記録する。ブロック311および313の操作は、同時かつ連続的に行われ得る。例えば、アテンディッドまたはアンアテンディッドアクティビティがアプリケーションプロジェクトを構築、変更、および/または構成すると、コンテキストアウェア元に戻す-やり直すサービス(元に戻すエンジンを含む)は、アテンディッドまたはアンアテンディッドアクティビティを監視し、アクティブコンテキスト(例えば、本明細書に記載されているような、アプリケーションプロジェクトの状況の積み重ね)を記録する。
【0060】
順に、ブロック320で示されるように、元に戻す操作は第1の呼び出しを経験する。第1の呼び出しは、ユーザー入力および/または自動化アクティビティであり得る。ブロック325において、元に戻す操作の第1の呼び出しに応じて、元に戻すエンジンは、アクティブコンテキストを識別する。
【0061】
すなわち、元に戻すエンジンは、アプリケーションプロジェクトへの最近の設定変更および最近の設定変更に関連する状況の積み重ねを、アクティブコンテキストとして識別する。状況の積み重ねはさらに、最新の設定変更を含む1または複数の画面の識別を含む。例えば、アプリケーションプロジェクトに新しい制御を追加する場合、様々な設定パネルが新しい制御の様々なプロパティを表示する。最新の設定変更は、これらのプロパティに対する変更を含み得る。
【0062】
次に決定サークル330で、元に戻すエンジンは、現在の画面(例えば、ユーザーインターフェースによって現在表示されている画面)が、最新の設定変更を含むかどうかを決定する。すなわち、アプリケーション開発プラットフォームが設定パネル間を案内/スイッチングする間に、アクティブコンテキストは、表示中の設定パネルに最新の設定変更が表され/反映/表示されているかどうかを決定することができる。
【0063】
現在の画面に最新の設定変更が含まれている場合、プロセスフローはブロック340に進む。ブロック340では、最新の設定変更が元に戻される。例えば、アプリケーション開発プラットフォームの1または複数の画面(例えば、設定パネル)内に1または複数のフォームが表示され得、その中に常駐する1または複数の環境変数が元に戻される。
【0064】
現在の画面に最新の設定変更が含まれていない場合、プロセスフローはブロック345に進む。ブロック345では、元に戻すエンジンは、最新の設定変更を含む別の画面に案内する(例えば、1または複数の環境変数の変更を示す画面に案内する)。例えば、最近変更された1または複数の環境変数を含む1または複数のフォームは、1または複数の他の画面(例えば、現在は示されていない設定パネル)内に表示されてもよく、元に戻すエンジンは、それらの1または複数の他の画面に案内する。
【0065】
ブロック350では、元に戻す操作が第2の呼び出しを経験する。第2の呼び出しは、ユーザー入力および/または自動化アクティビティであり得る。
【0066】
次に、プロセスフローはブロック340に進み、元に戻す操作の第2の呼び出しに応じて、最新の設定変更が元に戻される。この場合、ユーザーは、最新の設定変更が元に戻されるのを直接目撃し、検証し得る。元に戻す操作の各呼び出しの間、および実装された各変更に関して、アプリケーション開発プラットフォームは、(ブロック311および313によって示されるように)アプリケーション開発プラットフォーム内のアクティビティを監視し、アクティビティのアクティブコンテキストを記録することに留意されたい。
【0067】
プロセスフロー300は、複数のレベルの変更を介して第1の方向に移動するようにループされ得る。さらに、プロセスフロー300の間の任意の時点で、図4に関して説明したようなやり直し操作が実装されて、複数のレベルの変更を介して第1の方向とは反対の方向に移動し得る。
【0068】
次に図4に目を向けると、1または複数の実施形態によるコンピューティングシステムまたは環境(例えば、図1Cのコンピューティングシステムまたは環境140)によって遂行されるプロセスフロー400を示すブロック図である。プロセスフロー400は、アプリケーション開発プラットフォーム(例えば、図1Aのデザイナ104および/またはコンダクタ106)で遂行するコンテキストアウェア元に戻す-やり直すサービスによるコンテキストアウェアやり直す操作のための方法の一例の実装である。プロセスフロー400は、本明細書に記載されているような設定変更に関する問題を考慮する。これらの問題を解決するために、プロセスフロー400は、修正が必要な画面間への案内を可能にし、それに応じて設定の変更を実装する。
【0069】
プロセスフロー400は、ブロック411および413から始まり、ここで、アプリケーション開発プラットフォームが(アプリケーション開発プラットフォーム内の)アクティビティを監視し、アクティビティのアクティブコンテキストを記録する。ブロック411および413の操作は、同時かつ連続的に行われ得る。ブロック411および413の操作は、図3のプロセスフローに従って、1または複数のやり直し操作と、それらの操作に関するアクティブコンテキストの記録とを含む。
【0070】
順に、ブロック420が示すように、やり直し操作は、第1の呼び出し(例えば、やり直し操作をアクティブにするユーザー入力)を経験する。第1の呼び出しは、ユーザー入力および/または自動化アクティビティであり得る。
【0071】
ブロック425において、やり直す操作の第1の呼び出しに応じて、元に戻すエンジンは、アクティブコンテキストを識別する。すなわち、元に戻すエンジンは、アクティブコンテキストとして、元に戻す操作によって特定の画面に実装された任意の変更を識別する。
【0072】
次に決定サークル430で、元に戻すエンジンは、現在の画面が特定の画面である(例えば、元に戻す操作によって実装された最新の設定変更を含む)かどうかを決定する。真であれば、プロセスフローはブロック440に進む。ブロック440では、元に戻す操作による変更が復元される。さもなくば、次いで、プロセスフローはブロック445に進む。
【0073】
ブロック445で、元に戻すエンジンは、元に戻す操作による変更を含む別の画面に案内する。この場合、最後の元に戻す操作の呼び出しと第1のやり直す操作の呼び出しの間にアクティビティがあり、特定の画面が見えなくなっている。
【0074】
ブロック450では、やり直す操作が第2の呼び出しを経験する。第2の呼び出しは、ユーザー入力および/または自動化アクティビティであり得る。
【0075】
次に、プロセスフローはブロック440に進み、やり直す操作の第2の呼び出しに応じて、最新の設定変更が復元される。この場合、ユーザーは、最新の設定変更が復元されるのを直接目撃し、検証し得る。
【0076】
本明細書の開示内容を考慮すると、コンテキストアウェア元に戻す-やり直すサービスの技術的な効果および利点は、アプリケーション設計のための元に戻す/やり直し機能に対するより良いユーザーエクスペリエンス、変更のより大きな可視性、および期待を満たす一方で、元に戻す/やり直し機能全体を通してユーザーを導くために様々な異なる「コンテキスト」にユーザーを誘導することを含む。
【0077】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能性、および操作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定された論理機能(複数可)を実装するための1または複数の遂行可能な命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替実装では、ブロックに記載されている機能は、図に記載されている順序とは異なる場合がある。例えば、連続して表示されている2つのブロックは、関係する機能に応じて、実際には実質的に同時に遂行され得、またはブロックが逆の順序で遂行され得る。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能もしくは行動を実行するか、または特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特別な目的のハードウェアに基づくシステムによって実装され得ることに留意されたい。
【0078】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって遂行されるために、コンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。本明細書で使用されるコンピュータ可読媒体は、それ自体が一時的な信号であると解釈されるものではなく、例えば、電波またはその他の自由に伝播する電磁波、導波管またはその他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を介して伝送される電気信号である。
【0079】
コンピュータ読み取り可能な媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ読み取り可能なストレージ媒体が挙げられる。コンピュータ読み取り可能なストレージ媒体の例は、限定されないが、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、光磁気媒体、コンパクトディスク(CD)およびデジタルバーサタイルディスク(DVD)などの光媒体、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ならびにメモリースティックを含む。プロセッサは、ソフトウェアと関連して、WTRU、UE、端末、基地局、RNC、または任意のホストコンピュータで使用するための無線周波数トランシーバを実装するために使用され得る。
【0080】
本明細書で使用される用語は、特定の実施形態を説明するためだけのものであり、限定することを意図しない。本明細書では、単数形の「a」、「an」、および「the」は、文脈が明確に示す場合を除き、複数形も含むことを意図する。本明細書で使用される「含む(comprises)」および/または「含む(comprising,)」という用語は、記載された特徴、整数、ステップ、操作、要素、および/またはコンポーネントの存在を特定するが、1または複数の他の特徴、整数、ステップ、操作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除するものではないことがさらに理解されるであろう。
【0081】
本明細書の様々な実施形態の説明は、説明のために提示されたものであるが、開示された実施形態を網羅的に、またはそれに限定することを意図したものではない。当業者であれば、記載された実施形態の範囲および精神から逸脱することなく、多くの修正および変形が明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実用化もしくは技術的改善を最もよく説明するため、または当業者が本明細書で開示されている実施形態を理解できるように選択されたものである。

図1A
図1B
図1C
図2
図3
図4
【国際調査報告】