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

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

▶ 有限会社ポーの特許一覧

特開2024-86180情報処理プログラム、情報処理方法、及び情報処理装置
<>
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図1
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図2
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図3
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図4
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図5
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図6
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図7
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図8
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図9
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図10
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図11
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図12
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図13
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図14
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図15
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図16
  • 特開-情報処理プログラム、情報処理方法、及び情報処理装置 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024086180
(43)【公開日】2024-06-27
(54)【発明の名称】情報処理プログラム、情報処理方法、及び情報処理装置
(51)【国際特許分類】
   G06F 9/445 20180101AFI20240620BHJP
【FI】
G06F9/445 130
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022201182
(22)【出願日】2022-12-16
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.JAVASCRIPT
(71)【出願人】
【識別番号】522396986
【氏名又は名称】有限会社ポー
(74)【代理人】
【識別番号】110002435
【氏名又は名称】弁理士法人井上国際特許商標事務所
(74)【代理人】
【識別番号】100077919
【弁理士】
【氏名又は名称】井上 義雄
(74)【代理人】
【識別番号】100172638
【弁理士】
【氏名又は名称】伊藤 隆治
(74)【代理人】
【識別番号】100153899
【弁理士】
【氏名又は名称】相原 健一
(74)【代理人】
【識別番号】100159363
【弁理士】
【氏名又は名称】井上 淳子
(72)【発明者】
【氏名】和泉澤 拓
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AC03
5B376EA17
5B376FA13
(57)【要約】
【課題】情報処理プログラム、方法、及び装置に関し、汎用的なデータをプログラムと一般ユーザの両者が高度かつ容易に扱うことを可能とする。
【解決手段】記録媒体から読み込んだタスク文書データ内の、利用目的のもとで使用される1つ以上の機能の少なくとも動作内容、動作条件、及び動作環境の態様を定義した機能情報に基づいて、当該機能の一覧が提示される。ユーザが機能の一覧中から所望の機能を選択したときに、選択された機能に対応して機能情報中に定義されている態様に基づいて、選択された機能が実行される。
【選択図】図7
【特許請求の範囲】
【請求項1】
利用目的と結びつけて、前記利用目的のもとで使用される1つ以上の機能の少なくとも動作内容、動作条件、及び動作環境の態様を定義した機能情報を含むタスク文書データを作成し記録媒体に保存する処理と、
前記記録媒体から読み込んだ前記タスク文書データ内の前記機能情報に基づいて、前記利用目的のもとで使用される前記機能の一覧を提示する機能一覧提示処理と、
ユーザが前記機能の一覧中から所望の前記機能を選択したときに、選択された当該機能に対応して前記機能情報中に定義されている前記態様に基づいて、選択された当該機能を実行する機能実行処理と、
をコンピュータに実行させる情報処理プログラム。
【請求項2】
前記タスク文書データは、前記利用目的に対応するタスクを一意に識別する目的識別情報を含み、
前記目的識別情報に基づいて前記利用目的に対応するタスクの一覧を提示するタスク一覧提示処理と、
ユーザが前記タスクの一覧中から所望の前記タスクを選択したときに、前記機能一覧提示処理及び前記機能実行処理を実行する前記タスク文書データを、選択された前記タスクに対応する前記目的識別情報が含まれる前記タスク文書データに切り替えるタスク切替え処理と、
を前記コンピュータに更に実行させる、請求項1に記載の情報処理プログラム。
【請求項3】
前記タスク毎に、仮想デスクトップ又は画面領域を割り当てて前記機能一覧提示処理及び前記機能実行処理を実行する、請求項1に記載の情報処理プログラム。
【請求項4】
前記タスク文書データのファイルを、複数のデバイス間で、通信しながら共有、同期、又は更新する、請求項1に記載の情報処理プログラム。
【請求項5】
前記タスク文書データは、
格納された値を示すフラグメントから構成するファイルデータの物理構造と、
ブロック、セクション、及びノードからなるデータの階層を有する論理構造と、
を備え、
文字列、数値、バイナリデータ、属性を含むファイル、又はノードを、データ要素として含むことができる、請求項1に記載の情報処理プログラム。
【請求項6】
前記機能一覧提示処理において、スタイル情報により提供されるスタイルを適用して前記機能の提示を行う、請求項1に記載の情報処理プログラム。
【請求項7】
前記機能実行処理において、スタイル情報により提供されるスタイルを適用して前記機能を実行する、請求項1に記載の情報処理プログラム。
【請求項8】
前記タスク文書データを編集するタスク編集処理を、前記コンピュータに更に実行させる、請求項1に記載の情報処理プログラム。
【請求項9】
利用目的と結びつけて、前記利用目的のもとで使用される1つ以上の機能の少なくとも動作内容、動作条件、及び動作環境の態様を定義した機能情報を含むタスク文書データを作成し記録媒体に保存する処理と、
前記記録媒体から読み込んだ前記タスク文書データ内の前記機能情報に基づいて、前記利用目的のもとで使用される前記機能の一覧を提示する機能一覧提示処理と、
ユーザが前記機能の一覧中から所望の前記機能を選択したときに、選択された当該機能に対応して前記機能情報中に定義されている前記態様に基づいて、選択された当該機能を実行する機能実行処理と、
をコンピュータに実行させる情報処理方法。
【請求項10】
利用目的と結びつけて、前記利用目的のもとで使用される1つ以上の機能の少なくとも動作内容、動作条件、及び動作環境の態様を定義した機能情報を含むタスク文書データを作成し記録媒体に保存する処理と、
前記記録媒体から読み込んだ前記タスク文書データ内の前記機能情報に基づいて、前記利用目的のもとで使用される前記機能の一覧を提示する機能一覧提示処理と、
ユーザが前記機能の一覧中から所望の前記機能を選択したときに、選択された当該機能に対応して前記機能情報中に定義されている前記態様に基づいて、選択された当該機能を実行する機能実行処理と、
を実行するプロセッサを備えた情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理方法、及び情報処理装置に関する。
【背景技術】
【0002】
GUI(Graphical User Interface)の一種として、ランチャーと呼ばれるアプリケーションが知られている(例えば特許文献1に記載の技術)。このようなソフトウェアでは、よく使うアプリケーションなどのアイコンを表示画面上に並べ、所望のアプリケーションのアイコンをクリックすることで、アプリケーションを素早く起動させることができるようになっている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007-199819号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、利用目的毎に使用する機能(アプリケーション、ウェブアプリケーション、データ、文書等)が多様な場合に、ユーザは、利用目的毎に機能の組合せを変えながら利用目的に合った機能を実行する必要があり、機能の実行条件も利用目的毎に異なる場合もある。このような場合に、起動を単純にショートカットする従来のランチャーソフトでは、条件設定や環境設定、表示形態などは機能毎に個別に行う必要があり、作業効率が悪かった。
【0005】
そこで、本発明は、ユーザが利用目的と機能の組合せを登録し、また利用目的に合わせて機能や環境の設定を行い、利用目的ごとに容易に作業環境を切り替えて使用可能とすることを目的とする。
【課題を解決するための手段】
【0006】
態様の一例の情報処理プログラムは、利用目的と結びつけて、利用目的のもとで使用される1つ以上の機能の少なくとも動作内容、動作条件、及び動作環境の態様を定義した機能情報を含むタスク文書データを作成し記録媒体に保存する処理と、記録媒体から読み込んだタスク文書データ内の機能情報に基づいて、利用目的のもとで使用される機能の一覧を提示する機能一覧提示処理と、ユーザが機能の一覧中から所望の機能を選択したときに、選択された機能に対応して機能情報中に定義されている態様に基づいて、選択された機能を実行する機能実行処理と、をコンピュータに実行させる。
【発明の効果】
【0007】
本発明によれば、ユーザが利用目的と機能の組合せを登録し、また利用目的に合わせて機能や環境の設定を行い、利用目的ごとに容易に作業環境を切り替えて使用することが可能となる。
【図面の簡単な説明】
【0008】
図1】第1の実施形態の説明図である。
図2】第1の実施形態の説明図である。
図3】データ格納構造の例を示す図である。
図4】第3から第8の実施形態が適用される情報処理装置の例を示すブロック図である。
図5】モジュールの構成を例示するブロック図である。
図6】機能構成を例示するブロック図である。
図7】タスク文書の表示画面例を示す図である。
図8】タスク文書の表示処理の例を示すフローチャートである。
図9】機能実行処理の例を示すフローチャート(その1)である。
図10】機能実行処理の例を示すフローチャート(その2)である。
図11】利用目的リスト管理処理の例を示すフローチャートである。
図12】タスク文書の配置の画面例を示す図である。
図13】仮想デスクトップの配置の画面例を示す図である。
図14】使用領域選択の処理例を示すフローチャートである。
図15】ウィンドウの配置の画面例を示す図である。
図16】デバイス連携を説明する図である。
図17】機能連携を説明する図である。
【発明を実施するための形態】
【0009】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
【0010】
まず、本発明の第1の実施形態について、説明する。
【0011】
第1の実施形態は、コンピュータのディスプレイ表示において、図1の(a)又は(b)に示されるように、利用目的と結びつけて各種機能の起動方法や説明の集約データを作成し、ファイルに保存する。より具体的には、機能(アプリ、ウェブアプリ)、ファイル(ドキュメント、実行ファイル等)、説明(文章等)を混在して登録し、起動・終了する。これにより、利用目的で使用する多様な機能を整理して理解しやすく提示し、各機能を開始又は終了することが可能になる。
【0012】
また、第1の実施形態は、図1(c)に示されるように、当該ファイルのリスト(タスク文書リスト)を管理することで、使用する可能性の高い利用目的一覧を提示することにより、使用中の利用目的を管理する。これにより、使用できる利用目的の把握や切替えを容易にすることが可能となる。
【0013】
更に、第1の実施形態は、ファイル又は提示された利用目的の選択に合わせて、図1(d)に例示されるような使用する機能一覧を切り替え、同時に使用する環境を切り替える。これにより、容易に目的の機能が使用できる状態にし、かつ当該利用目的に適した使用環境にすることが可能となる。具体的には、第1の実施形態では、デスクトップ作業領域の切替えとして、利用目的に割り当てるデスクトップの部分や仮想デスクトップを決定し、作成又は表示する。
【0014】
また、第1の実施形態では、利用目的で必ず使用する機能の自動起動を提供する。更に、本実施形態は、各機能又は機能の組合せに適したウィンドウを自動配置する。
【0015】
加えて、第1の実施形態は、図2(a)に示されるように、利用目的の他ユーザとの共有、同期・更新として、利用目的のデータを他のユーザと共有するための利用目的サーバを使う等による共有機能や、そのために必要な署名・暗号化・権限設定機能を提供する。
【0016】
また、第1の実施形態は、図2(b)に示されるように、他デバイスでの利用機能として、他デバイス内で当該ファイルの表示や機能実行を提供する。更に、図2(c)に示されるように、利用目的ファイルの作成機能が提供される。具体的には、図2(c-1)に示されるように、他プログラム又は外部システム等の他デバイスが当該デバイスの機能の一覧を作成して提示する機能が提供される。また、図2(c-2)に示されるように、小さな利用目的を組み合わせて、より大きな利用目的を構成する機能が提供される。更に、図2(c-3)に示されるように、機能項目(ファイルの一覧、コンテンツの一覧、文書の目次等)を外部データ等から自動生成する機能が提供される。加えて、図2(c-4)に示されるように、特定の利用目的自体をコンテンツとして販売したり、ファイルにコンテンツを組み込んだ販売したりするコンテンツの配信・販売機能が提供される。
【0017】
次に、本発明の第2の実施形態について説明する。
一般的なユーザがパーソナルコンピュータ上で直接的に使用するデータには、本質的に文字列、数値、又は画像等が構造化されたデータである場合がある。例えば、ユーザ登録したウェブサイト内のデータ(ユーザ情報や、ショッピングサイトの購入情報等)、使用するアプリケーションの設定データ、オンライン申請で送信するデータ等である。そのような構造化された情報は、専用のアプリケーションやウェブサイト上で入力する必要がある場合が多く、ユーザ自身でこれらを構造化されたデータとして扱うことや、そこに含まれるデータ内容の取扱いが容易でない場合があり、当該アプリケーション等に依存しないデータ保管や編集も困難である場合が多い。
【0018】
これは、アプリケーションシステム等の制作者にとっても問題で、構造化データの格納に使用される汎用的なデータ形式は存在するが、一般的なユーザが専門知識無しに使用でき、かつ要求されるデータ処理の用途を十分に満たすデータ形式の選択肢がない場合があり、ユーザによる使用を意図するデータの授受が必要でも何らかのトレードオフがある形式や方法を使用せざるを得ないことがある。例えば、ブログの記事、SNSの登録、グループウェアの投稿等のため、文章と画像を合わせて使用するとき、使用するデータは文字列と画像ファイルの組合せとして表現できるが、この両者を一体とした「投稿」として構造化した形式にするのはユーザ及びアプリケーションにとって容易ではなく、投稿データを準備したり、或る投稿をダウンロードして保存したり、別のアプリケーションに転送するといったデータ処理が容易に行えない。より複雑な構造を持ったデータでは現実的には取扱いが困難になる場合がある。
【0019】
より具体的には、そのようなデータを例えばXML(Extensible Markup Language:拡張可能なマーク付け言語)、JSON(Java Script Object Notation:Javaスクリプトオブジェクト表記)、又はCSV(Comma-Separated Values:カンマ区切りのテキストデータ)形式にして扱う場合があり、この場合、文字列等は扱えるが、画像ファイルは直接扱えない。画像ファイルの内容をデータとして格納することはできるものの、ファイルの属性(例えばファイル名)が失われてしまい、そのデータが画像ファイルであることを意図していることを他のアプリケーションに伝える方法に乏しく、他の汎用アプリケーションや一般ユーザがこのデータを扱うことは容易ではない。
【0020】
画像ファイルをファイルとして扱えることが重要な場合は、画像ファイルを別途転送したり画像ファイルと共にアーカイブファイルにしたりといった方法も使用されるが、このようなデータの操作には一定の技能や手順が必要で、データの管理上も問題が生ずる。また、それらの形式は、一定レベルの知識を持ったユーザが直接編集可能となることを意図されてはいるが、実際に使用するにはその形式の知識が必要で一般ユーザが扱うには比較的単純なデータであっても容易でない場合がある。例えばCSV形式のファイルを直接編集するにはユーザにとっては直感的に理解しにくいエスケープ処理等が必要になる。これらの編集を行うプログラムを使用するとしても、ファイル等のデータは容易に扱えない。
【0021】
また、エクセル(ファイルの拡張子がxlsx)(「Excel」は米国マイクロソフト社の登録商標)等の形式が使われる場合があるが、汎用のデータ格納・転送を主目的とした形式ではないため、取り扱えるデータの内容や構造の制約があり、プログラムからの取扱いが容易でない。
【0022】
更に、その他のアプリケーション専用の形式や、前述の各フォーマットにアプリケーション独自の問題回避方法を施して使用する場合もあるが、ユーザや他のアプリケーションによる使用方法が限定的となる。
【0023】
他の課題として、データをユーザに提供する時に、ユーザにそのデータを容易に認識しやすい形式で閲覧させたい場合がある。例えば同等のデータを含む紙の文書に近い様式で提示するとユーザにとって理解し易く、そのためにPDF(Portable Document Format、ISO32000で国際標準化された電子文書ファイル形式)やHTML(Hyper Text Markup Language:ハイパーテキスト記述言語)等の形式としてデータを提供する場合がある。この場合にデータ内容へのアクセスが難しいことや、生成処理が複雑になる、様式化しない場合に比べてデータサイズが著しく大きくなるといった問題がある。
【0024】
また、対照ユーザが使用する言語に合わせ、データ自体や書式を言語別に生成する必要がある場合があるという問題がある。
【0025】
そこで、以下に説明する第2の実施形態では、汎用的なデータをプログラムと一般ユーザの両者が高度かつ容易に扱うことを可能とする。
【0026】
第2の実施形態は、次のような特徴を有するデータ構造を採用する。
・第2の実施形態は、ファイルのデータ構造、格納された値を示すフラグメントから構成するデータの物理構造を提供する。
・第2の実施形態は、ブロック、セクション、ノードからなるデータの階層を持つ論理構造を提供する。
・データ要素の種類として、文字列・数値・ファイル・ノード(データ階層を構成する)、等の種類を有する。
・ノード中の各値はキーと型をオプションとして持つことができる。
第2の実施形態は、上述のデータ構造を扱う、次の機能を持つプログラムを使用する。
【0027】
(ユーザ側)
第2の実施形態は、ユーザにこのデータ構造のデータの内容を理解しやすく提示し、データを編集できるプログラムを提供する。
【0028】
(アプリケーション側)
第2の実施形態は、アプリケーションがこのデータ構造のデータを読み出し、また出力するためのプログラムを提供する。アプリケーションの用途やアプリケーション開発に使用されているプログラミング言語によって異なるデータ型の違いに対処するため、データ型の変換を行うと共に、データ入出力時に各種の方針を適用できる。例えば、読込み時に、その処理系が持つ型よりも精度の高い数値について読込み時に丸まめ又はエラー発生を選択、文字列の読込み時に処理系の文字列形式への変換を行う際に処理系で使用できない文字の処理方法を選択、又はファイルデータを即時に読み込むのか必要時に読み込むのか等、用途による方針のオプションを適用できる。
【0029】
以上の構成を有する第2の実施形態では、一般ユーザがデータの具体的なファイル形式に関する知識無しに使用(閲覧、編集等)することが可能となる。
【0030】
また、第2の実施形態では、一般的に使用されるデータの要素として、文字列、数値等に加えて、バイナリデータ(ハッシュ化したパスワード等)、ファイル(画像等。ファイル名や作成日時等の属性も含む)等を格納することが可能となる。
【0031】
また、第2の実施形態では、目的であるデータ自体と区分しつつ一体のファイルとして下記のような情報を格納することが可能となる。
・メタデータ
・スキーマ(データ編集時の整合性の保証)
・様式化データ、スタイルシート(閲覧時の様式化)
・インデックス情報(データの検索性)
【0032】
また、第2の実施形態では、データに含まれる各要素は、その用途の性質により、或る場合は識別子(キーとなる文字列等)に対応して識別でき、他の或る場合は要素の順序又は型等の構造により識別することが可能となる。また、第2の実施形態では、アプリケーションの開発言語にかかわらずアクセスが可能で、異なるデバイスが作成したデータ交換に使用することが可能となる。また、第2の実施形態では、ストリーミング操作が可能となる。また、第2の実施形態では、データに対する注釈を含めることが可能となる。また、第2の実施形態では、多言語で情報(データ)を格納(書式化)することが可能となる。また、第2の実施形態では、暗号化、署名が可能となる。また、第2の実施形態では、格納されているファイル等に、OS(オペレーティングシステム)上のファイルシステムの一部としてアクセスすることが可能となる。また、第2の実施形態では、内部構造としてデータの構造とデータ値を分離したストリームとして格納することが可能となる。更に、第2の実施形態では、XMLやCSV等の形式と相互変換することが可能となる。加えて、第2の実施形態では、データ本体とは分離した別のデータとして、データ本体に対する注釈や差分等のデータを作成し、同一ファイル内又は別ファイルに保存することが可能となる。
【0033】
以上説明したように、第2の実施形態は、一般ユーザによる文字列、数値、画像等が混在したデータの容易な作成、編集、閲覧が可能となる。
【0034】
また、第2の実施形態では、アプリケーションによる当該データの容易なアクセスが可能となる。また、第2の実施形態では、ユーザとアプリケーション間の効果的なデータ授受によりデータの活用を容易にすることが可能となる。また、第2の実施形態では、プログラムによる各特徴を活用した使用方法が可能となる。更に、第2の実施形態では、一般的な汎用形式に比較してデータサイズや処理速度の点で効率的な情報利用が可能となる。加えて、第2の実施形態では、安全性の維持に有利な構造化されたファイル単位での情報管理が可能となる。
【0035】
上述した第1の実施形態及び第2の実施形態を具体的に実施する更に詳細な第3、第4、第5、及び第8の実施形態について以下に説明する。
【0036】
まず、第3から第8の実施形態に共通のデータ格納構造について説明する。
(データの論理構造)
【0037】
以下に説明する各実施形態では、利用目的を達成するためのデータ構造の概略として下記のデータ構造を作成する。このデータ構造は図4で後述する主メモリ104や、ハードディスクやSSD(Solid State Disk:半導体ディスク装置)等の記録媒体106等の記憶手段上に構築され、またシリアライズすることにより、連続した1個のデータに構築し、1個又は複数のデータ、ファイル、データベース等の形式で装置間、機器間のデータ転送をすること、ネットワーク経由で送受信することや上記記憶手段に格納することができる。
【0038】
データ構造の全体像としては、第2の実施形態で説明したブロック、セクション、セットからなる階層的なデータ構造を以下で説明するように構築する。この各階層は主に意味的な差異であって、物理的には差異がなくても構わないが、それぞれの特性に配慮した構造とするためまた識別を容易にするためにそれぞれの階層に特化した構造とすることもできる。
【0039】
また各階層の使用は必須ではなく、必要がなければ一部の階層を省略した階層を構築することもできる。
【0040】
ブロック、セクション、セットは何れも属性と名前を持つ型付きの値からなる要素が0個以上含まれる集合(以下、要素集合)である。ただし属性と名前はなくてもよく、要素ごとに有無が混在できる。属性は概念的には属性の種別と値の組であるが、どのような属性が使用可能とするか、各要素についてどの属性を持たせるかは各データの必要に応じて決めてよい。
(ブロック)
【0041】
ブロックは、データ処理単位として使用する階層で、通常データを生成した時は一つのブロックが生成される。識別上の問題がなければブロック階層を無視してセクションを直接生成してもよい。
【0042】
ブロック階層を使用する目的としては、複数のデータの連結を作成し、なおかつ個々のデータを識別可能とするためである。例えば任意個のブロックをファイルに格納し、それらのファイルを単純に連結したファイルを作成することで複数のデータを含むファイルを作成できる。この連結ファイルを読み込む際にブロックを識別することで、連結ファイルに含まれる個々のブロックに対して処理を行うことも、何れかのブロックを選択して処理を行うこともできる。その際、ブロックの先頭にブロックのサイズを識別できる情報を格納することで、特定のブロックを処理せず次のブロックを読み込むためにブロック単位でスキップすることを容易とすることもできる。特定のブロックを処理するかを判定するためには、予めわかっているブロックのインデックス番号を使用することもできるし、ブロック先頭に含まれているセクション又はセクションの一部を読み取りその内容により判定することもできる。
【0043】
任意のブロックに対する操作を素早く行うために、ブロックの検索に使用できるインデックス情報を作成し、その情報を含む専用のブロック又はセクションを含むブロックをファイルに含むこともできる。インデックス情報にはファイル中の各ブロックについて、ブロックの先頭位置がわかる情報を格納する。この場合インデックス情報を含むブロックをファイル先頭のブロックにすることも、ファイル末尾のブロックにすることもできる。ブロックを後から追加することが想定されるファイルの場合は、ファイル末尾のブロックにインデックス情報が含まれるようにすることで、ブロック追加時に古いインデックス情報を除去してから追加するインデックスを追加する、又は古いインデックス情報を除去せずにブロックを追加し、更新したインデックス情報を追加することでインデックスを最新状態に維持できる。
(セクション)
【0044】
セクションは、ブロック中に含まれる複数のデータ領域として、用途の異なるデータを格納するために使用することを意図している。ブロックには0個以上のセクションが格納される。実装によっては1個以上等と制約を設けることもできる。各セクションは基本的には同じ物理的な構造として作成できる。
【0045】
セクションに格納するデータの種類があり、そのセクションが何れの種類のデータを格納しているかはセクションごとに保持しているデータ種別による判別できる。データの種類としては、主データ、メタデータ等がある。
【0046】
主データセクションはこのデータ構造にデータを格納する目的の主であるデータを含む。通常のデータ処理には主データのみを扱えばよい。
【0047】
メタデータセクションはこのデータに関連するが主データではない属性を格納できる。例えばデータの生成日を管理上の目的で保存しておきたいが、通常のデータ使用の目的としては含まれる必要がない場合にはメタデータに生成日を格納できる。その他にもデータに関連する情報として一般的にメタデータとして取り扱われるような情報を格納できる。
【0048】
通常のデータ処理のために主データを使用する場合は、他の種類のセクションは無視して主データセクションのみを取得すればよい。一方メタデータセクションのデータを使用する場合は、メタデータセクションを取得すればよい。何れのセクションも同じ構造を持っているので同様の方法でアクセスできる。処理の目的によっては複数のセクションを一括して取得することもできる。データ構造がファイル上に格納されている場合は必要なセクションのみをメモリに読み込むことでメモリ使用量を最小限にすることができる。
(セット)
【0049】
セットは要素の順序付きの集合である。要素はキーを持つことができる。キーはユニークであってもよいしユニークでなくてもよい。キーは典型的には文字列であるが、参照時に要素を特定するための参照キーと比較ができる任意の情報が使用できる。キーがユニークである場合はキーによって要素を特定できることになる。キーがユニークでない場合はある一つのキーに対して複数の要素を集合的に特定することができるが、単一の要素を特定する必要がある場合は特定キー内での順序インデックスとの複合キーを使用できる。キーがある場合もない場合も、セット内の順序インデックスにより要素を特定することができる。
【0050】
セットを配列的な意図で使用する場合は各要素をキー無しのセットとすることができる。セットをキー付きの配列、辞書、連想配列のようなデータ構造として使用する場合はキー付きのセットすることができる。キーのないセットとキーのあるセットは、実装上はそれぞれに最適化された実装を行うこともできるが、特に区別せずセット全体として、又は要素ごとにキーの有無を選択できるデータ構造とすることもできる。
【0051】
セクションもセクション特有の情報を持つ以外はセットと同様の構造を持つ。セットに含まれる要素は値を保持するが、値は型を持っており、型がセット型である場合は値がセットになる。親セットの中の要素としてセットが含まれる構造となり、ツリー情報の構造を作ることができる。
(データ型)
【0052】
要素はデータ型を持つ。データ型は、ナル型、プリミティブ型、セット型、ファイル型、メディア型、構造化文書型、ユーザ定義型に大別される。ナル型はデータが存在しないことを示す情報を格納する型で、具体的にどの型の値が存在しないのかという型は特定せず、単にデータが存在しないことを示す。ナル型以外の型については、ナル可型又はナル不可型に分かれる。プリミティブ型であればナル可のプリミティブ型とナル不可のプリミティブ型が存在する。ナル可型の型についてはその型の値又はデータが存在しないことを示すナル値を格納できる。この場合のナル値は特定の型を指定した上でその型のデータがないということを示す。
【0053】
プリミティブ型は、一般的なプロセッサやプログラム言語で使用されることが多い整数、浮動小数点数等の数値型、文字型、文字列型、バイナリデータ型、等を含む。例えば整数型であれば表現できるデータ長ごとに1バイト整数型、2バイト整数型といったサイズごとに異なる型としてもよい。
【0054】
文字列型は単に文字列型としてもよいが、実装によっては格納可能な文字列長ごとに異なる型とすることもできる。また文字列に格納される文字セットやエンコードの種類ごとに異なる型とすることや、文字セットとエンコードの種類の片方又は両方をエンコードされた文字列と共に格納できる型としてもよい。また格納されている文字列の言語(日本語、英語等)の指定を合わせて格納できる型としてもよい。バイナリデータ型は任意の長さのバイト列を格納できる型である。
(特殊なデータ型)
(複合型)
【0055】
プリミティブ型でも文字列型のある実装では文字列データと文字列長を格納したり、文字列と合わせて言語の種類を格納したりする等、内部的に複数の値を内包する場合がある。セット自体も複数の値の要素を含むことができるという意味では近い性質を持つが、セットの場合は任意のデータの組合せを持つのに対して、特定の組合せを前提とする具体的な型は、その特定の値の組合せを前提とした処理を可能にする点で意味がある。以下ではそのような複合値の型を定義する。
(ファイル型)
【0056】
ファイル型は、一般的なファイルシステム上のファイルを格納できる型である。ファイル型に格納される値はファイルに格納されているデータとファイル属性(ファイル名、ファイルサイズ、ファイルの作成日、ファイルの更新日、アクセス権限、ファイルシステム上でファイルに付与される属性等)で、これらの多くは多くのファイルシステム上でファイルに関連して保存される情報に対応するデータである。ただしこれらの全てが必ず格納されるわけではなく、このデータ構造の用途で必要とする範囲によって必要な情報の組合せを使用できるように実装してもよく、またデータの格納時に必要な範囲の情報のみを格納してもよい。
【0057】
このファイル型によって、本データ構造内にファイルシステム上に存在したファイルを格納でき、結果的に格納された状態でも実装が格納可能とした範囲でファイルシステム上に存在していた時と同様のファイル属性を参照できる。また格納されたファイルをファイルシステムに出力することで格納前の属性を維持して復元できる。
(メディア型)
【0058】
メディア型は、基本としてはファイル型であるが、ファイルの中でも画像、音声、動画、文書といったユーザに具体的な表現形式で提示されることを前提とするデータを格納する型である。必要な場合はメディアの種類を示す情報、例えばMIME型を追加の属性として格納できる。ファイル型との違いとして、型の違いをデータの取り扱い又はユーザへの提示の仕方の違いに反映させることができる。例えば実体のファイルとしては全く同じであっても、データの目的が、データが保持しているメディアとしての内容を提示することにある場合はメディア型として扱い、データの目的が内容の提示ではなくデータ自体の取り扱いにあるためメディアの内容を提示することが望ましくない場合はファイル型として格納する事で、データに対して通常期待される処理方法を伝達することができる。
(構造化文書型)
【0059】
複合型の値を構造化文書型としてマークすることで構造化文書として定義できる。
(ユーザ定義型)
【0060】
ユーザ定義型は、データのプレフィックスとしてデータ種別の識別子を記載することで、データ構造の使用者が任意に定義できる型を表現する。この識別子にはデータを使用するアプリケーションが定義するクラス名やその別名、又はその他データの種類を識別できる名前やコードを使用することができる。このデータを処理するプログラムはデータの識別子を元にデータの型を判別してデータを取り込んでもよい。その際、識別子と内部データ型の対応は一対一の対応とすることもできるが、対応関係を作るアルゴリズムや対応表によって結び付けることもできる。識別子が認識できない場合や特定のユーザ定義型として解釈するのが望ましくない場合は、ユーザ定義型としてのデータ種別は無視して複合型としてデータを取得することもできる。ユーザ定義型として処理しない場合でも編集時にデータ種別の識別子を維持することでユーザ定義型としての構造を維持してデータを変更することができる。
【0061】
図3は、データ格納構造の例を示す図である。3101、3102、及び3103は、階層的なデータ格納構造の例を示している。
(属性)
(コンテキスト)
【0062】
要素に対してコンテキストを指定できる。コンテキストにより特定の文書の中で異なる特性を持つ領域の用途を示す識別子で、コンテキスト識別子によりデータの一部が異なる処理、解釈、提示を想定していることを示すことができる。コンテキストはデータのツリー構造の中でツリー構造とは独立してデータの一部分にマーク付けすることでツリー構造とは異なる軸を持つデータの構造を可能とする。例えばデータの中で特定のコンテキストの部分のみを取り出すことで異なる構造のデータを生成できる。
【0063】
コンテキストの使用例としては、例えば計算機用のプログラミング言語によるプログラムにおいて異なる文法や解釈方法を持つデータの混在を容易にする使用法がある。一般にあるプログラミング言語の中に別の言語、例えばHTML、XMLやSQL(Structured Query Language:構造化問合せ言語)といった異なるプログラミング言語やプログラミング言語ではない自然言語、CSVやその他専用のデータ定義書式、バイナリ形式によるデータ定義、その他のデータ形式による記述を行う場合がある。これはプログラミング言語が別の処理段階で使用される異なる言語をデータとして持つために必要となる。この異なる言語による記述をプログラミング言語自体と区別する方法としては、文字列として格納する方法、その目的のためのマークアップを使用する方法、複数言語の形式的な差異の判定により異なる言語の範囲を識別する方法等がある。
【0064】
しかしこれらの方法にはいくつかの問題がある。例えばその格納された言語を明示する方法がないため単純にその言語の種別を識別することができず、言語の差異を使用した処理、例えば自動的なフォーマット処理等、を適用する場合に問題が生ずる場合がある。また親言語の中に文字列やマークアップで格納する場合には文法的な制約として一部の文字をエスケープする等親言語の文法構造上の要請を満たすための記述方法を必要とする場合があり、単純に子言語の要素を記述することができない。また子言語の中に更に他の言語による記述が含まれる場合、孫要素の言語は親言語であったり更に他の言語であったりすることがあるが、その場合は更に状況が複雑になる。このような状況において各プログラミング言語で記述された部分を、コンテキストを指定したデータとして生成できる。個々のコンテキストはプログラミング言語の名称又はプログラミング言語ごとに定めたコードを指定できる。
【0065】
こうすることで、2つ以上の言語を適用した場合でも各部分が何れの言語で記述されているかを明示でき、また当該部分については完全にその言語として完結できるため親言語との文法上の干渉が発生せず単純に子言語のコードを記述できる。用途によってはプログラミング言語が同じであっても異なるコンテキストを構成する場合があるが、その場合はプログラミング言語の識別子にコンテキスト階層のレベルを含む方法で同じ言語であっても異なるコンテキストを構成できる。このようにして設定したコンテキストに基づいてソースコードをユーザに提示することで、異なる言語が入れ子になったソースコードを汎用的な方法で編集等の操作が可能になる。
【0066】
このような編集処理にはソースコードエディタでソースコードについてユーザが指定した部分についてプログラミング言語を示すコンテキストを指定できるインターフェースを設けることで実装できる。このように記述されたソースコードを含むデータを使用する処理系(例えばコンパイラ)は部分ごとに指定されたコンテキストに基づいて記述内容の処理を行うことができる。他の言語による記述を文字列として出力コードに含める場合には単純に文字列データとして格納できる。対象のプログラム処理系がこのコンテキストを適用したデータ形式のソースコード形式に対応していない場合は、このデータ形式から当該処理系が解釈可能なソースコード形式、例えばテキストファイルに変換するプリプロセッサを実装することができる。このプリプロセッサはコンテキストに応じて当該処理系が処理する主プログラミング言語についてはそのままテキストファイルに出力し、異なるプログラミング言語で記述された箇所は主プログラミング言語の文字列リテラル形式に変換して出力することができる。またコンテキストに応じて異なる処理を行った結果を出力することもできる。例えば当該部分を独立したソースコードとみなして実行し、そのプログラムの実行結果を出力することができる。
(暗号化)
【0067】
ブロック、セクション、ノードの前にデータが暗号化されていることを示す暗号化ヘッダを付加して該当データを暗号化することができる。暗号化ヘッダには暗号化方式と方式により必要となる追加データを格納することができる。暗号化方式を記録することで異なる暗号化方式を使い分けることができる。
【0068】
例えばAES(Advanced Encryption Standard:先進的暗号化標準)により暗号化を行い、暗号化ヘッダと暗号化したブロックを格納する。データを読むときは暗号化ヘッダが見つかった場合は復号した後にデコードを行う。暗号化ヘッダがない箇所は暗号化されていないデータとしてデコードする。このようにして暗号化した部分と暗号化されない部分が混在したデータを作成できる。
【0069】
全体又は部分が暗号化されたデータに同じ暗号化処理を繰り返すことができる。このデータを復号する際は、復号したデータ中に暗号化ヘッダが出現したら更に復号を行う。このようにして多重に暗号化を行うことができる。
【0070】
以上の組合せで、データの部分ごとに異なる方式の暗号化を行うこと、異なる鍵を使った暗号化を行うこと、異なる多重度の暗号化を行うことを任意に組み合わせて使用できる。これによりデータの部分ごとに異なるセキュリティレベルを設定することや、ユーザの権限毎に読み取れるデータの範囲を変えることができる。
(署名)
【0071】
データが含まれるセクションに対して署名を生成し、署名を含むセクションを追加することでデータにデジタル署名を行うことができる。データが含まれるセクションのハッシュを生成し、署名者の暗号鍵により暗号化したハッシュを格納したセクションを追加することで行うことができる。セクションには署名データと共に0個以上の署名対象のセクションの識別子を格納してもよい。この際セクション識別子がない場合は署名用のセクション以外の全てのセクションに対する署名とする。この方法により一部のセクション又は複数のセクションに対して署名をすることや、セクションごとに個別の署名を行うことができ、データの用途により必要な範囲のみに対して選択的に署名を行うことができる。署名セクションには複数の署名を格納できる。署名セクションを対象にして別の署名を行うことで、署名に対する署名や、署名を含んだデータに対する署名をすることもできる。
(データアクセス時の型変換)
【0072】
このデータ構造に対して、データ要素を構成する、キー・型・値・属性を符号化して連続して出力することでデータ構造をシリアライズできる。その際データ要素の他にデータ構造や付加データも混合して出力することができる。そのためにデータ型の他にデータ構造や付加データの何れかを表すフラグメントとしてあらわすこととし、データ型やデータ構造の何れの要素を表現しているかを示すタグを付加する。タグは例えば1バイトの値とすることができ、異なるデータ型やデータ構造情報ごとに異なる符号を割り当てる。このタグを先頭に付加することでフラグメントは先頭のタグを読み取ることでフラグメントの種類を判別できる。
【0073】
データ上では、ブロック、セクション、ノードはそれぞれに対応するフラグメントにより開始する。ただしこれらのフラグメントなしでデータを構成するフラグメントが出現することで暗黙にブロック及びセクションを開始することもできる。例えば値要素のフラグメントが先頭に出現した場合は、暗黙に最初のブロック及びセクションが開始していることとなる。
【0074】
ブロック・セクション・ノードは何れも集合要素で0個以上のデータ要素を含むこととなる。これらのフラグメントに後続するデータ要素を表現するフラグメントはその集合要素の子として集合要素に属するデータ要素となる。データ要素はデータ要素を示すフラグメントとして出力される。
(データ格納構造のユーザによる編集)
(編集機能)
【0075】
このデータを使用するものが当該データを使用し、また変更するには、その処理を行うプログラムを作成して行うことができる。その一方でそのようなプログラムを作成せずに汎用的なプログラムを使用して編集できることは利便性が高い。
【0076】
データがツリー情報の構造になっているのでツリービューに類するユーザインターフェイスを用いて容易にデータの内容を提示することができる。つまり、最初にデータの最上位となるルート要素が表示され、その要素に子要素がある場合は、要素を展開して子要素を表示するようにできる。ある要素が値である場合はその値を表示し、ある要素が集合要素である場合はその集合要素を表示する。集合要素である場合その子を展開して表示できる。このようにして全体としてはツリー構造としての提示ができる。ルート要素自体は存在が自明であり情報としての重要性がないデータの場合は、ルート要素を表示しないようにすることもできる。
【0077】
個々のデータ要素はキー・型・属性・その他の付属情報を保持している場合があるが、何れを表示するかはデータの使用方法に基づいてユーザの利便性が高くなるように選択してよい。各項目についてユーザインターフェイス上で表示するかしないかをユーザが選択できるようにしてもよい。表示されていない情報についてはユーザが要素を選択した際、又は選択した後に詳細情報を表示するように指示した場合に表示することができる。使用者はこの提示された情報を編集することでデータに変更を加え保存することができる。
(ファイルやメディア型の提示)
【0078】
データにはファイル・メディアといった種類の型を持ったデータを含むことができる。これらの情報を単純には提示できない場合がある。もっとも汎用的に提示するのであれば、ファイル名や属性を表示しファイル内容自体は直接提示しない方法がある。またファイル型を視覚的に表すアイコンといった図形的な提示方法で提示することもでき、このアイコンをファイル等の種類との関連付けによって表示することもできる。このアイコンとの関連付けの方法は、OSが使用している関連付けの方法を使用するとファイルの提示に一貫性を持たせることができるが、用途によってはそれとは異なる提示方法、例えばユーザ定義の提示方法を使用することもできる。また提示方法をスタイルシートで定義して文書に格納してもよい。
【0079】
また、ファイルの内容を提示することが可能であれば提示してもよい。画像や文書等視覚的に表示できるデータであれば、その表示やその表示に基づいた縮小表示やサムネイルを用いて提示することができる。その際、ファイルの内容を提示するかどうかを型によって決定することができる。ファイル型はアイコンとして提示し、メディア型であれば内容を表示するようにできる。これによりデータ内容としては画像であっても、その内容を提示することが重要であるデータ要素と、その内容を通常は提示せずそのデータの存在やファイル名等の情報を中心に提示したいデータ要素を区別して使用することができる。
【0080】
このような提示の方法の選択肢は使用者が随時選択できるようすることもできる。例えばツールバーにあるボタンをクリックすることで、データ型ごとにアイコン表示するか、可能な限り内容を表示するかというオプションを切り替えることを指示できる。
(ファイルやメディア型の編集)
【0081】
これらの要素とファイルシステム上の場所を表すOS又はアプリケーション上の領域との間で、コピー操作や移動操作を行うことによってデータをコピー又は移動できる。コピー操作には一般的に当該操作に使用できるメニュー選択・ショートカットキー・ドラッグアンドドロップといった操作により指示させることができる。この際、ファイル型やメディア型の要素が持つファイル名等の属性情報を、ファイルシステムとの間でのコピーや移動時に適用できる。例えばファイルシステムにコピーする場合にファイル名・タイムスタンプ・アクセス権限をコピー先のファイルに適用できる。これらの全てを適用するか特定の一部を適用するかをユーザが操作やオプションで指定してもよい。逆にファイルシステムからデータにコピーする場合にはそれらの情報をファイルシステムから取得して格納できる。
【0082】
データ要素がファイル名情報を持っていない場合、データ要素のキーがあればそれをファイル名とすることができる。その際にファイルシステム上でデータを使用するために適切な拡張子等の付加情報が必要であるにも関わらずそれらのデータを保持していない場合、データの内容から推測できるのであればその情報を使用して必要な情報を生成することができる。推測するための方法は一般的に使用されるようなデータに特有のヘッダ等の構造から推測する方法が使用できる。推測ができない場合や使用できるキーがない場合は、デフォルトのファイル名生成方法を適用することができる。例えばファイルのコピー日時に基づいてファイル名を生成できる。同名のファイルがある場合には末尾に連番を付ける等他の方法と組み合わせることもできる。またファイル名を持たない場合に単にユーザにファイル名の入力を求めてもよい。
【0083】
これらのデータは一体として扱うことを想定されてはいるが、内部的には複数の情報の集合として構成されている。そのためそれらの情報を個別に提示し、また個別に編集することができる。
【0084】
図4は、第3から第8の実施形態が適用される情報処理装置の例を示すブロック図である。デバイス101(#1)は、後述する第3から第8の実施形態の技術を実装する機器の一つであり、CPU(Central Processing Unit:中央演算処理装置)102、システムコントローラ103、主メモリ104、GPU(Graphics Processing Unit:画像演算処理装置)、RAM(Random Access Memory)又はROM(Read Only Memory)等の記憶媒体106、外部機器の各種インターフェース類である入出力ポート107、有線LAN(Local Area Network又は無線LAN、その他のデバイスやネットワークと通信するため通信ポート108又は通信モジュール109、電源スイッチ110、及び電源回路111を内蔵する。システムコントローラ103は、CPU102による上記106から111の各ブロックに対する制御を仲介する。
【0085】
外部機器であるディスプレイ121は、デバイス101(#1)に内蔵されるGPU105、外付けのGPU122、又はデバイス101(#1)に内蔵される入出力ポート107等を介してデバイス101(#1)に接続される。#1から#nというように複数のディスプレイ121が接続される場合がある。ディスプレイ121は、タッチ入力機能等複合的に他の機能を併せ持つ場合がある。また、ディスプレイ121は通常1つのスクリーンを持ち画像を出力できる。
【0086】
キーボード123は、デバイス101(#1)に内蔵される入出力ポート107等を介してデバイス101(#1)に接続される。#1から#mというように、複数のキーボート123が接続される場合がある。
【0087】
マウス124も同様に、デバイス101(#1)に内蔵される入出力ポート107等を介してデバイス101(#1)に接続される。#1から#kというように、複数のマウス124が接続される場合がある。
【0088】
その他、スイッチ入力装置125、汎用の入力装置126、SDメモリカード等の外部記憶媒体127、マイク128、カメラ129、及びスピーカ130等が、デバイス101(#1)に内蔵される入出力ポート107等を介してデバイス101(#1)に接続される。
【0089】
デバイス101(#2)は、デバイス101(#1)と同様に、入力出力ポート107等を内蔵し、この入力出力ポート107を介して、外部機器であるディスプレイ121、キーボード123、又はマウス124等が接続される。他の内部/外部機器についてもデバイス101(#1)の場合と同様であるので、その構成は省略する。
【0090】
図5は、図4に例示されるデバイス101上で実行されるソフトウェア機能であるモジュールの構成を例示する図である。
(アプリの構成)
【0091】
図5は、タスク文書に関する管理や操作を行うタスク文書アプリケーション(以下「タスク文書アプリ201」と記載。以下、「アプリケーション」は「アプリ」と記載。)の構成要素となるプログラム群が図4に例示されるデバイス101上で起動している状態を示している。
【0092】
タスク文書アプリ201は、タスク文書を表示又は編集を行うアプリであり、タスク文書ファイル202を読み込み、ユーザに提示し、ユーザの入力等に応じて環境の設定や機能の実行等を行う。
【0093】
タスク文書アプリ201は、他のブラウザアプリ224、メディアアプリ223、ウィジェット225、コントローラ221等と連携することができる。
【0094】
これらのプログラム群はデバイス101の起動時から起動していてもよいし、ユーザ操作によって起動されてもよい。また一部のみが起動してもよく、また当初から全ての機能が起動していて、ユーザ操作や他のトリガによって起動されてもよい。これらのプログラム群は個別のプロセスとすることもできるが、単一のプロセス212にしてもよいし、デバイス101の特性や必要に応じてさまざまな実行形態を取ることができる。例えば各部分を別プロセスで実行することや、異なる実行権限を与えることで、セキュリティを高める効果を得ることができる。
【0095】
又はこれらのプログラム群は必要により一部のみを使用し、他は実装又はインストールせず、又はインストールしても使用しないこともできる。
(ブラウザアプリ)
【0096】
図5に例示されるブラウザアプリ224は、主にHTML等で構成される文書を表示し、いわゆるウェブブラウザと称されるプログラムの機能を持ち、ウェブサイトやHTMLベースのコンテンツを表示する。実際にはこのブラウザアプリ以外にデバイス101が標準装備するウェブブラウザやユーザがインストールしたウェブブラウザ等を選択して使用することができる。
【0097】
或いは、このブラウザアプリ224は、タスク文書アプリ201によってディスプレイ121(図4参照)に表示されるタスク文書ファイル202に対応するタスク文書(以下同様)と連携して動作するための追加的な特徴を有する。例えば、ブラウザアプリ224は、一般的なウェブブラウザに比べてナビゲーション等に使用するUI(User Interface:ユーザインターフェイス)の表示を限定し、また他のウェブブラウジングとは独立して使用できる。
【0098】
ブラウザアプリ224は、機能実行情報により、実行時のオプションが指定でき、対象のドキュメントやウェブアプリケーションによって異なる設定による仕様が可能である。例えば、ウィンドウごとに異なるHTTPセッション情報を保持するように設定することで、ウェブアプリケーションをウィンドウ毎に独立したセッションとして実行することが可能になる。他の例として、ファイルのダウンロード場所等の設定をウェブアプリケーション毎、又は特定のサイト上の場所や機能ごとに設定することができる。また、サイトから遷移できるリンク情報であるURL(Uniform Resource Locator)を制限するように設定する等ができる。
【0099】
また、ブラウザアプリ224において、ブラウザ上でデータ入力を行うフォームが表示されている時に、メニューからの操作又は特定部位のドラッグ操作等により、入力されている情報をファイルとして保存することができる。また逆に、外部で入力情報を作成又は編集したファイルの情報をフォームに入力させることができる。
(メディアアプリ)
【0100】
図5に例示されるメディアアプリ223は、画像・動画・音声・テキスト・文書等様々なメディア情報を表示するためのプログラムである。メディアアプリ223は、ディスプレイ121に表示されるタスク文書と連携して動作するように実装することができる。
(ウィジェット)
【0101】
ウィジェットはタスク文書と共にユーザに提示されることを意図した機能を提供するアプリの総称である。例えば、時刻を表示する時計のウィジェット(図1(a)参照)が考えられる。必要に応じてウィジェットを追加してディスプレイ121に表示されるタスク文書と共に提示できる機能を追加できることが想定されている。
(コントローラ)
【0102】
コントローラ221は、タスク文書が開かれていない場合でも、キーボード123やマウス124(共に図4参照)等からユーザの入力を受け付けて、タスク文書に関する操作を可能にする。また、コントローラ221は、複数のタスク文書を超えて複数のタスク文書を統括して管理し、個々のタスク文書と環境の関係に基づいてユーザの使用環境を管理する。例えば、タスク文書を開く際にタスクと結び付ける後述する仮想デスクトップ又は画面上の領域を判定したり、タスク文書から指定されたプログラムを起動することができる。
【0103】
図6は、図5のモジュール構成に基づいて実現される第3から第8の実施形態の機能構成を例示するブロック図である。図6において、図5の場合と同じ参照番号を付したブロックは、図5の場合と同じものである。
【0104】
タスク文書アプリ201は、前述したタスク文書ファイル202に加えて、後述するタスク文書データベース313及びタスク文書サーバ314を管理する機能を備える。
【0105】
また、タスク文書アプリ201は、タスク文書データ321を管理する機能を備える。タスク文書データ321は、後述する目的識別情報322、機能情報323、及びオプション情報324を含む。
【0106】
コントローラ221は、配置情報302、アプリ情報303、ユーザ設定304、及びチーム(グループ)設定305を管理する機能を備える。配置情報302は、仮想デスクトップ、スクリーン308、及び領域309に関する各情報を含む。コントローラ221が管理するこれらの情報は、他のモジュールからもコントローラとの通信または情報の共有によりアクセスできる。
【0107】
ここで、図4図5、又は図6において、デバイス101はOSの機能として、ディスプレイ121上にユーザが起動したアプリ等のウィンドウを任意の個数表示することができ、このアプリ等を配置する領域をデスクトップと称する。
デスクトップ領域を拡張するためOSが仮想的な複数のデスクトップを切り替えて夫々に異なるウィンドウを配置し独立して操作する仮想デスクトップ機能を持つ場合がある。
また、OSが当該機能を持たない場合でも、OSの外部のデスクトップ管理プログラムが同等の機能を持つことにより同等又は類似の機能を持たせることができる。この場合、デスクトップ管理プログラムは当該アプリケーションが定義した仮想デスクトップと各ウィンドウの対応関係を管理し、デスクトップ管理プログラムが現在表示している仮想デスクトップに属するウィンドウのみをデスクトップ上に表示させることで実現することができる。このデスクトップ管理プログラムはコントローラ221に組み込んでもよい。
各実施形態における仮想デスクトップ機能は、上記の何れかを仮想デスクトップとして使用できる。
【0108】
次に、本発明の第3の実施形態について説明する。第3の実施形態は、タスク文書に関する実施形態である。
(第3の実施形態に関連する課題:機能実行に関する課題)
【0109】
PCやスマートフォンなどの機器では多様な機能が使用できる。ここでいう機能には、機器に実装されているOSが保有する機能、機器にインストールされたアプリケーションやサービスによって実現されている機能があり、それらにより機器自体や機器が保持するデータ、機器に接続されている他の機器などに対して作用を及ぼすことができる。
【0110】
また、機器自体に直接実装されていなくとも、外部の機器例えばサーバが保有するデータや機能を使用することができる。例えばウェブブラウザを通じてネットワーク経由で外部のサーバの情報を取得し閲覧したり、外部のサーバ上で実行できる機能を実行したりすることができる。例えばウェブアプリやウェブAPI(Application Program Interface)がその一例である。
【0111】
他の例として外部の機器が実装する機能をネットワーク経由で実行することもできる。そのための方法としては使用する機能により決定されるプロトコルにより外部機器と通信する方法や、外部機器が公開するAPIに対して要求を送信することにより行う方法などがある。
【0112】
このような機器ではユーザが或る特定の時に使用する機能の候補が多数存在するため、利用者が具体的に使用する機能をメニューなどのGUIにより機能を指定するかコマンド入力により指定して実行する必要がある。
【0113】
機器上で使用する機能を使用する方法を効率的に記録する方法としてショートカットがあるが、使用する機能が多数であると記録や管理がしにくく、また使用した機能の使用者間や機器間での伝達をするのが容易でない。機能を使用する時に使用する場合がある各種の情報と一体として管理する方法があることが望ましい。
(第3の実施形態の着眼点)
【0114】
前述したように、ある機器を使用する目的は複数あり、目的ごとに異なった機能の組合せを使用する場合、目的ごとに機能の組合せを管理できることが望ましく、そのためにはこのような情報を必要な個数管理できることが必要であり、またこれらを使用する目的を識別できることが必要である。そのために、第3の実施形態では、図5のタスク文書ファイル202にタスク文書のデータ構造を作成し、このデータ構造に、各種の機能の使用方法やその他以下で説明する他の情報を格納する。
【0115】
このデータ構造は、前述した記憶手段上に構築することも、その内容を記録媒体106に保存することもできる。更に、タスク文書のデータ構造は、図4の主メモリ104上のオブジェクトとして構築すること、及び図6のタスク文書データベース313上のデータとしても保存することができる。
【0116】
また、タスク文書のデータ構造は、データ構造の全体をシリアライズする、単一のデータベースファイルに保存する等の方法で単一又は少数のファイルとして、記録媒体106上に保存することができる。
(データ構造の概要)
【0117】
タスク文書は、図6に例示したタスク文書データ321として、目的識別情報322、機能情報323、オプション情報324のほか、文書等を集約する。
【0118】
機能情報323には、機能を特定する情報、機能を実行するためにデバイス101(図4参照)や他のプログラム(図5参照)に対して指令する方法を特定する情報、機能を実行する際の設定情報、機能をユーザに提示するための情報、ユーザが機能を開始するための情報等を含む。機能情報323は、これらの情報の一部のみを含むようにすることもできる。
【0119】
機能には、デバイス101(図4参照)が持つ機能、デバイス101が保有するアプリ、デバイス101にインストールされたアプリ、デバイス101にインストール可能なアプリ、ウェブアプリケーション、ドキュメントの使用、ドキュメントの格納場所の使用、他デバイスへの指令(例えばAPIの呼出しやRPC(Remote Procedure Call等)、通信手段(図4の通信ポート108又は通信モジュール109)を経由して実行可能な他のデバイス(図4のデバイス101(#2)参照)の同様な機能等が含まれる。
【0120】
文書には、一般的にファイルの形式で作成・保存できる任意のデータが含まれる。画像や文章その他の任意の形式のファイルが含まれる。
(タスク文書への目的の保存)
【0121】
タスク文書は、ユーザやデバイス101やタスク文書の作成者が意図する1つ以上の利用目的と結び付けることができる。利用目的とタスク文書の結び付けは、タスク文書に利用目的を識別する図6に例示した目的識別情報322を結び付けることで行える。この結び付けは、タスク文書が格納される図6のタスク文書データ321に目的識別情報322を格納することでも行えるし、タスク文書と関連付けのできる他の方法、例えばタスク文書を保存したタスク文書データ321のファイルのファイル名や、タスク文書を参照する他のデータに記録することもできる。
【0122】
目的識別情報322は、ユーザやデバイス101等が目的別に使用するタスク文書を識別したり、特定のタスク文書がどのような目的で使用されるかを識別したり提示するために使用できる。目的識別情報322は、この目的に使用できる任意の情報、例えば目的を示す文字列や文言、アイコン、画像、識別コード、条件式等や、それらの組合せとすることができ、実施するデバイス101の目的に適した方法を選択できる。ひとつの目的に対して複数の目的識別情報322の種類を保持してデバイス101やUIの特性に合わせてユーザに提示することも可能である。
(タスク文書の保存)
【0123】
タスク文書は、タスク文書オブジェクトとして、主メモリ104(図4参照)上に構成することができる。又は、タスク文書は、タスク文書データ321のファイルやタスク文書データベース313の一データ(共に図6参照)等として、図4の記録媒体106や外部記録媒体127等に格納できる。
【0124】
なお、主メモリ104上にタスク文書の全体を置かず、上記タスク文書データ321のファイルやタスク文書データベース313からタスク文書の必要部分のみを主メモリ104等に読み込んで処理してもよい。
【0125】
タスク文書の格納時には、タスク文書のデータ構造を維持し後で参照できる任意の方法が使用できる。ただし、タスク文書を単一のデータ又はファイルに格納することが用途によっては重要な場合がある。例えば、タスク文書を、タスク文書データ321のファイルに、XMLやその他のシリアライズ形式として格納することができる。又は、タスク文書を第2の実施形態で説明したデータ構造、より具体的には「第3から第8の実施形態に共通のデータ格納構造」(段落[0035]を参照)に格納できる。これによって、単一のデータとして保存したタスク文書は取扱いが容易になり、ファイルとして保存されたタスク文書データ321を、ユーザが共有したり管理することが、構成ファイルが複数である場合に比較して容易になる。
【0126】
タスク文書の格納においては、タスク文書にドキュメント等のファイル情報が含まれている場合はそのファイルの情報を含めて格納できることが望ましい。ドキュメントファイルを格納する場合に、ファイルのコンテンツであるバイトデータの他、ファイルに付随する属性情報(ファイル名や作成日時、アクセス権限等)を一緒に格納すると、後で使用する際に望ましい場合がある。
(タスク文書の暗号化)
【0127】
タスク文書又はタスク文書データ321のファイルに対して暗号化又は署名を行うと、一般的に暗号化や署名によって得られるセキュリティ上の効果が得られる。これと同時に、適切に複合又は署名検証のプロセスを実行することにより、タスク文書が正当な作成者により作成されたかどうかを確認することができる。タスク文書はデバイス101に対して実行する処理を定義するため、作成者の検証が重要である場合には有用である。
(機能情報)
【0128】
機能情報323(図6参照)には、使用可能にする対象の機能を識別できる情報を登録する。またその特定の機能の実行に必要な又は利用可能な追加情報を登録できる。
【0129】
機能情報323は、例えば1つの文字列とすることができる。その文字列は特定のアプリの実行ファイルの格納場所、アプリ名、機能名、表示するURL等を含むことができる。複数の機能の指定方法を採用し得るが、文字列の形式により何れの指定方法であるか判別できる場合、また文字列の形式が複数の指定方法に解釈できる場合で補助的な判定、例えばその指定方法として解釈した場合にその指定が実際に有効であるかにより判定できたり、優先順位付けが可能である場合も、1つの文字列で機能を識別可能にできる。
【0130】
使用可能な機能が、1つの文字列によって機能の特定ができない可能性がある場合は、機能種別と機能識別子の組合せで目的機能識別情報322を記録することができる。機能種別は機能種別を表現する文字列としたり事前に定義したコードにより行うこともできる。
(拡張的な機能情報)
【0131】
機能情報323は、外部のアプリとの組合せによって拡張される場合がある。そのため、機能種別には事前に定義されていない種類の機能種別を登録できるようにし、拡張された機能種別では必要に応じて機能情報323内に追加情報を保存できる。機能の使用時には、拡張された機能種別を処理可能な処理手段が登録されていれば、その追加情報を使用して機能を実行可能とする。
(階層的に構成した機能情報の構造化)
【0132】
タスク文書に機能情報323を配列したデータを格納する際に、複数の機能情報323を集約したツリー構造を作成したい場合がある。その場合には、機能情報323の子として機能情報323配列を含ませるか、機能情報323の代わりに機能情報配列を含むようにすることができる。再帰的に子の機能情報323配列を持たせることにより、全体的にはツリー条の構造を構成することができる。
【0133】
このツリー構造により、機能情報323の関係を表現することができる。子の機能情報323の配列が同時に使用される又は同時に開始される機能を集約するために使用できる。また、ツリー構造は、特定の設定を適用する範囲を限定するために使用することができる。
(構造に基づく継承)
【0134】
階層化された機能情報323に含まれる情報項目について項目の継承を指定することができる。場合によっては項目のデフォルトとして継承をするように指定することができる。このような場合には親に含まれる情報の項目を検索し、それをその機能情報323に関する設定として採用する。親が更に継承を指定している場合は、同様に再帰処理する。ただし参照する上位階層が存在しない場合は、項目のデフォルト値を適用することができる。
【0135】
このようにして、全ての機能情報323について都度個別に設定を指定せずとも、上位階層で一律の設定項目を定義することができる。
(グループ化)
【0136】
階層の親としての又は機能情報323自体としてのグループ化状態を含むことで、機能情報323のグループを表現することができる。親として機能情報323がグループ化されている場合は、含まれる子の機能情報323がグループ化されているということを表現し、それ以外の機能情報323がグループ化されている場合は、グループ化状態にある複数の項目をグループ化することができる。
【0137】
グループ化されることによって、機能項目に対する操作を、グループを単位として実行すべきであるという意図を表現できる。
(タグ付け)
【0138】
機能情報323に1個以上のタグ(機能情報323の用途や特徴を示すために付加する文字列や図形等の識別情報)を含める又は付加することもできる。タグにより文書の使用時に機能情報323が多数あっても機能情報323の一部を選択したり検索することができ、機能情報323のうち特定の特徴を持つものの集合を抽出して提示したり、一括操作することが可能となる。タグによる抽出では複数のタグを組み合わせたり、タグ以外の条件と組み合わせた条件を作成できる。
(メタデータの保存)
【0139】
機能的には機能情報323を管理し使用することとは直接関係ないが、管理上有用な情報を一体的に管理したい場合がある。そのような場合に、格納する情報の主題とは峻別できる形式で、情報を、メタデータとして機能情報323に格納することが有用である。例えば情報の作成日時や更新日時、作成者を識別する情報、データに関するコメント等がある。
【0140】
タスク文書には機能情報323とは独立したメタデータを保存することができる。メタデータの保存は例えばデータ構造内のメタデータ格納位置に格納できる。メタデータは例えばツリー構造の各ノードに項目の名前と値を含むことで格納する。これらのメタデータは、機能情報323のツリーに内包する形で格納することもでき、また、これらのメタデータは、機能情報323とは分離したデータとして格納することもできるが、実際に使用するデータ格納形式で使用できる形式の何れかを使用することもできる。
【0141】
データを処理する際に、メタデータに基づく処理をする場合にはメタデータ以外の情報を無視して読み込み、また機能情報323を処理することが目的である場合にはメタデータは読み込まず、機能情報323のみを読み込んで処理を行うことができる。
(機能情報の部分的使用)
【0142】
或る機能情報323の集合は分割した機能情報323の部分集合として識別できるようにすることが有用である場合がある。使用される機能の集合が、複数の状況で使用される機能の集合を複数個含む場合等が該当する。
【0143】
このような場合には、このような階層的な機能情報323のツリーとして構成し、当該ツリーのサブツリーとして上記部分集合を表現することができる。この場合当該サブツリーをツリーと同等に扱えるようにするため、サブツリーのルートノードにもツリーのルートノードと同等の情報を含むようにして、当該の部分集合も識別子により識別できるようにすることができる。
【0144】
全体としての機能情報323の集合として使用することもでき、この部分集合を指定して部分集合として使用することもできる。
(リンク)
【0145】
機能情報323として、別の機能情報323の集合へのリンク(外部の機能情報323集合への参照情報)を含むことで、複数の機能情報323の集合から構成される一つの機能情報323集合を作成することができる。リンクとして使用する参照情報は、別の機能情報323集合へのポインタ、別の機能情報323集合を格納したファイルのファイル自体、当該ファイルを格納した記録媒体上のパス情報、URL等、格納したデータベースのレコードを特定するID等、様々な形式をとることができる。
【0146】
このようなリンクを処理する際に、元の機能情報323上では抽象的な参照情報で、使用時に未解決状態である場合は、解決処理をすることで機能情報323集合の具体的なデータを使用することができる。解決処理は参照情報の種別を判別し、参照情報によって識別されるデータを取得し、そのデータを機能情報323として展開することで取得できる。
【0147】
このようなリンクによって、異なる機能情報323の集合で使用する部分機能情報323の集合を共有することもできる。
(機能の設定)
【0148】
タスク文書に含まれるオプション情報324(図6参照)は、機能の実行時に適用できるオプションを含むことができる。オプションの種類は、機能の種類によっても異なる。例えばアプリを実行する機能では、アプリプログラムに渡すコマンドパラメータが考えられる。
【0149】
他の例として、ウェブアプリケーションであればURLパラメータを介してアプリケーションに渡されるパラメータが考えられる。これらは、機能の種類によって異なる形式や構造を持ち、使用される方法も異なることがある。
【0150】
機能の実行時にオプション情報324によって適用されるオプションとしては、各機能に直接伝達されるパラメータ以外にも、アプリケーションの環境との関係において使用されるオプションもある。例えばその機能が特定のユーザで実行される場合のユーザ情報、場合によってはそのユーザに関する認証情報が使用される場合がある。また、例えば環境変数を設定することで動作が変わるアプリでは環境変数の管理等が必要になる場合がある。
【0151】
他のオプションとして、機能を実行する環境に関するオプションもある。例えば機能を何れの機器で実行するかを指定することにより、指定の機器で実行することがある。例えばウェブアプリケーションの場合であれば、何れの種類のウェブブラウザで実行するか、また起動されているブラウザの何れのインスタンス又はウィンドウで実行するかが指定する場合がある。更に、ブラウザであっても特定のウェブアプリケーションに対して何れの接続セッション又はユーザセッションを使用するかということがオプションとなる場合もある。
【0152】
機能の実行操作に関する制御の方式に関するオプションも存在する。例えば実行時にユーザの確認入力を実行するかどうか、実行時にユーザの認証操作が必要かどうか、機能の実行前、実行後、又は実行終了時に待機時間を設けるか、機能の実行終了時に通知を行うか、機能の実行結果を取得するか、取得した結果をどのように処理するか、取得した結果に対して追加の操作を行うかといったオプションがある。その他のオプションとして他の機能項目で説明している機能に関して、各機能の実行と結びつく情報もある。
(画面領域の設定)
【0153】
機能の実行時に、機能の性質として画面に機能の表示を行う場合又は行わない場合があるが、機能使用者の立場としては或る機能では画面表示が有り、他の或る機能では画面表示が無い状況では、画面表示が有る場合には画面表示が有ると予期したにも関わらず画面表示が無いことで機能の実行の状況を誤認する可能性が問題となる場合がある。また、或る場合には、機能の実行の目的上は画面表示が特段意味を持たないにも関わらず、機能が画面表示を行ってしまうことが、他の作業の障害となる場合がある。
【0154】
そのような状況を改善するため、機能の実行時に画面表示を各機能本来の動作の通りに行うか、本来の動作とは異なり強制的に表示をしない状態とするか、本来の動作と異なり機能の実行状況の表示を行うかを設定できることは有用な場合がある。
(タスク文書アプリによるタスク文書の表示)
【0155】
タスク文書アプリ201は、タスク文書に関する表示・編集・各種操作を行う。例えば、メニューから選択することでタスク文書を新規に作成できる。タスク文書を新規に作成する場合、機能情報323が登録されていない空の状態のタスク文書を作る方法、テンプレートの選択により作成する方法、既存のタスク情報から複製して使用する方法等が考えられ、初期状態をどのようにするかは実装により選択肢がある。
【0156】
ユーザは様々な方法で機能情報323を編集することができる。機能情報323の集合をリスト又はツリーを作成できることが一般的には分かりやすく、機能情報323の編集機能については一般的に同様のデータ構造を編集する操作方法が適用できる。例えばファイル閲覧ソフトでファイルやディレクトリを追加する方法に類似する。
【0157】
一例として、「機能情報323の追加」をドロップダウンメニューから選択することで、新たな機能情報323を作成し、ダイアログで情報を入力して登録する方法がある。
【0158】
他に機能として追加できる機能項目が、他のアプリケーションやOSの管理する要素からドラッグアンドドロップで追加できる場合や、コピー・貼り付け機能で追加できる場合にはそのような方法が利用できる。例えば実行ファイル・ドキュメントファイル・フォルダ・URL等、通常のドラッグ操作で移動等の操作が可能な項目はドラッグして格納できる。その他に実行中のアプリケーションについてOSとの必要な連携が可能な場合は、OSの機能を通じてアプリケーションウィンドウ又はアプリケーションウィンドウの特定部位又はタスクバー内のアプリケーションの表示の特定操作(典型的にはドラッグ・クリック・キーボードショートカット操作等だが、OSが許容する操作により異なる)による追加が行える。
【0159】
タスク情報表示上では、他に登録されたタスク情報をドラッグする等の操作により配置を変更したり、階層構造を変更したりできるし、項目の削除も行える。
【0160】
メニューやショートカットキーによりタスク文書のファイルへの保存やファイルからの読込みが行える。保存する時にファイル名が決まっていなければ、利用目的として登録されている名前を元にファイル名を決定する。保存時には任意のフォルダを選択して保存することもでき、また「名前を付けて保存」機能により他の場所又は他のファイル名で保存することもできる。タスク文書の保存はユーザが指定するファイル名でなく、コントローラが名前を決定してもよい。その場合ユーザが直接操作しないコントローラが管理するファイルシステムの領域に格納することもできる。又は、タスク文書データベース313又はタスク文書サーバ314に格納することもできる。
【0161】
設定により変更を行った場合には自動的に保存を行うようにすることもできる。また変更を禁止することもできる。
(機能情報の表示に対するスタイル情報の適用)
【0162】
機能情報323をユーザに提示する場合に、提示する表示デザイン上のスタイルを設定できることが有用である場合がある。一般には機能の違い毎にユーザインターフェイスの見た目が異なることは使用者の観点では機能の把握に時間がかかるなどかえって障害となる場合があるが、意識的に異なる視覚的提示方法(例えば配色や文字の大きさなど)を使用できるようにすることが使用中の機能の差異を明確にして有用である場合がある。
【0163】
また、使用する機能が独特の配色などの視覚的特徴を持つ場合に、その機能と結びついて使用される機能情報323の表示を利用目的の機能に近づけることで、使用される機能との統一感を高めたり、環境全体としての視覚的調和を高める効果が得られる。逆に使用する機能との差異を明確にすることで、画面レイアウト上で協調する部位を機能情報323に置くか使用される機能に置くかなど、利用目的との関係で効果的な使用方法をとることができる。
【0164】
また、機能の動作状況又は機能情報323の提示状態ごとに異なるスタイルを指定することで、当該状況ごとの表示内容を変更できる。
【0165】
スタイルの設定方法としては、画面の表示要素と表示のスタイルの関係を定義できる方法が使用できる。例えばスタイルシートを使用することができるが、その場合、機能情報323の具体的な提示の構造に基づいて要素の名称を定義することで、その要素名を適用し、スタイルシート言語により記述することで実現できる。例えばCSS(Cascading Style Sheets:段階スタイルシート)形式が使用できる。
【0166】
定義したスタイル情報は、機能情報323の集合又は機能情報323自体にスタイル情報として含むことができる。
【0167】
機能情報323の集合に対してスタイル情報を設定することで、使用する目的ごとに望ましい表示を得て、使用される機能を含む環境全体としても使いやすくしたり、望ましい視覚的効果を提示できるようにできる。
【0168】
また、設定できる視覚効果の種類が広いスタイルシートを使用することで、機能の提示方法の自由度を高くできる。例えば各機能の起動を独立したボタン状に表示し、それらのボタンをユーザが操作しやすいとか効果的なデザインであるといった目的に応じて任意の位置にレイアウトできる。これによって、期待する見た目を持つランチャーを、容易に作ることができる。
【0169】
スタイルシート自体を変更できる機能を設けることで、提示した後の操作や状況に応じて表示内容を大きく変更できる。
(使用対象の機能に対するスタイル情報の適用)
【0170】
機能情報323をユーザに提示する場合だけでなく、使用対象の機能によっては、その実行時にスタイルを設定することができる場合がある。機能の種別によって適用可能なスタイルの範囲、方式は異なり、設定方法も異なる。しかしながら、種別に応じたスタイル設定を機能情報323に含むことで、各機能の提示方法のスタイルを変更できる。これにより、機能の実行に対しても、使用する目的に応じた望ましい表示スタイルを設定するための情報を含むことができる。
【0171】
例えば、機能がウェブアプリケーションであれば、ウェブブラウザの機能を使用してカスタムスタイルシートを適用することで機能の表示内容を変更できる。例えば、特定のスタイル情報に対応したアプリケーションであれば、そのスタイル情報を指定することで設定できる。また、スタイル変更に対応したアプリケーションやブラウザとの組合せで、機能の提示方法を変更できる。そのためには、設定されているスタイルシート情報を機能の実行時に各機能に渡すことで実現する。ただし、各機能のスタイルの設定方法は異なる場合があり、機能のスタイル設定方法に対応した方法を実装する又は提供できるようにする必要がある。また、ランチャーが指定するスタイルの設定方法にアプリケーションの実装を変更することで対応する方法もある。
(タスク文書の表示画面例)
【0172】
図7は、図4のディスプレイ121上でのタスク文書の表示画面例を示す図である。#1~#3の各ウィンドウ1101内に、タスク文書の名前をタスク名として表示するウィンドウのタイトル1102、タスク文書のリストを表示させるプルダウンボタン1103、マウスオーバーしたときに表示される説明文であるツールチップ1104、グループ開閉ボタン1105、機能を選択するためのチェックボックス1106、機能の種類をシンボルで表示するマーク1107、グループ階層表示1108、説明文1109、詳細リンク1110、ウィジェットチップ1111、アイコン表示のチップ1112等が配置される。また、異なるレイアウトを有するウィンドウ1101(#3)内に、自由レイアウトされたチップ1132が配置されている。図7に示されるように、各機能セット配下に、機能をツリー状に構成することができる。
(タスク文書アプリによる機能リスト表示)
【0173】
図8は、図7に例示されるタスク文書の機能リストを図4に例示されるデバイス101に接続されるディスプレイ121に表示するための、タスク文書表示処理の例を示すフローチャートである。この処理は、図4に例示されるデバイス101のCPU102が主メモリ104に読み出したタスク文書アプリ201のタスク文書表示プログラムを実行する処理である。
【0174】
図8において、CPU102はまず、例えば記録媒体106に記憶されているデフォルトのタスク文書データ321を読み込み、そのタスク文書データ321に格納されている機能情報323に対応する機能リストを取得する(図8のステップS801)。
【0175】
次に、CPU102は、各機能情報323に格納されている前述した参照情報を取得する(図8のステップS802)。これにより、CPU102は、デフォルトで表示するタスク名1108(例えば図7の#1の1108)について、機能情報323間の参照関係を取得する。参照情報は、登録されている機能リストに付随した情報であり、機能リストの表示レイアウトの設定、表示用のスタイルシートなどがある。
【0176】
次に、CPU102は、ステップS801で取得した機能情報323にスタイル情報が登録されている場合、そのスタイル情報を読み込んで解釈することにより、そのスタイル情報が示す表示スタイルをこれからディスプレイ121に表示する機能リストの全体、個々の機能、その他の表示要素に適用する(図8のステップS803)。
【0177】
次に、CPU102は、ステップS801及びS802で取得した機能情報323ツリーの各機能の内容と、ステップS803で適用したスタイル設定に従って、各機能の表示の表示サイズと配置を決定する(図8のステップS804)。
【0178】
更に、CPU102は、ステップS803で取得したスタイル情報に基づいて、これからディスプレイ121に表示される機能リストの表示位置、また機能リスト内での機能の配置を決定する(図8のステップS805)。標準的には機能の登録順にリスト内で上から下にレイアウトする。レイアウトの設定によっては、他のレイアウトとすることも可能である。
【0179】
その後、CPU102は、ステップS801で取得した各機能情報323から前述したグループ化に関する情報を取得し、各機能情報323による各機能間のグループ構造を取得し、そのグループ構造に従ってグループ化を行う(図8のステップS806)。グループ化において、グループの親となる機能の子に異なるグループをもつツリー構造を構築することでグループ単位での操作を可能にする。
【0180】
そして、CPU102は、これからディスプレイ121に表示される機能リストのデータに、表示条件が設定されている場合に、その表示条件を適用する(ステップS807)。
各機能情報に含まれる表示条件は、条件式を含むことができ、条件式がない場合は、CPU102は、機能を前提無しで表示する。一方、条件式を含む場合は、CPU102は、条件判定により各機能を表示するかどうかを決定する。この条件式は、OS(オペレーティングシステム)の環境やユーザ設定値をパラメータとして参照することができ、環境に応じて適切な機能を表示できる。
条件の判定結果により機能を非表示とする場合、完全に非表示にすることによりその機能を操作できないようにすることもできるし、また一時的に非表示としてユーザが操作により表示できるようにすることもできる。
また複数の条件式を設定できるようにしてその両者を適用することもできる。
【0181】
その後、CPU102は、機能リストのフレームを作成し、タイトルを表示する(図8のステップS808)。
【0182】
最後に、CPU102は、処理の結果として求められたレイアウト、グループ表示、表示条件に基づいて表示を行う(図8のステップS809)。
(タスク文書アプリ201によるタスクの実行)
【0183】
ユーザは、図4のディスプレイ121に図7のように例示される機能リストにおいて任意の機能項目をマウスクリック等すると、その機能を起動することができる。機能情報323の登録内容により、様々な起動方法に関するオプションがある。例えば実行前にパスワード入力による認証を行ったり、実行前に環境に影響を与える操作を行うこともある。また例えば機能実行情報に対して現在の実行環境情報を加味して実際の機能実行情報を推論して決定する場合がある。
【0184】
クリック等された機能項目がグループ化された親機能項目である場合は、グループ配下の機能群が一括して開始される。一括して実行する方法としてはリスト内を表示順で順次実行する方法や、同時に実行する方法がある。
(履歴)
【0185】
機能情報323の編集等の操作、また機能を実行した事実、またそれらの結果を、履歴(ログ)として記録媒体106(図4参照)等に格納して記録することもできる。
【0186】
この記録動作により、ユーザに操作の履歴を提示すること、また各履歴に復元情報を記録することで取消操作を提供することが可能となる。記録は、ログファイルやタスク文書ファイルに保存することもできる。記録は指定件数や情報量(例えば使用する記憶容量等)に応じて古い情報から削除することができる。
(機能実行)
【0187】
図9及び図10は、ユーザが図4のディスプレイ121に図7のように例示される機能リストにおいて任意の機能項目をマウスクリック等した場合に実行される機能実行処理の例を示すフローチャートである。この処理は、図4に例示されるデバイス101のCPU102が主メモリ104に読み出したタスク文書アプリ201の機能実行プログラムを実行する処理である。
【0188】
図9において、CPU102はまず、ユーザによって指定された実行されるべき機能を特定する処理を実行する(図9のステップS901)。グループ化された機能(例えば図7の「機能セット1108(#2)」等)が実行指定された場合には、そのグループ(機能セット)の配下の全ての機能(例えば図7の機能(#2-1)と機能(#2-2))について、実行されるべき機能として特定される。
【0189】
グループ化はされていない機能(例えば図7の「機能セット1108(#1)」等)が実行指定された場合には、その機能1108(#1)のみについて、実行されるべき機能として特定される。
【0190】
次に、CPU102は、図9のステップS902にて、図9のステップS901で特定された実行機能のうちの1つを順次指定しながら(以下この指定した機能を「処理対象機能」と記載する)、図10のステップS937にて全ての機能について指定が完了したと判定されるまで、その処理対象機能に対して、図9のステップS903から図10のステップS937までの一連の処理を繰り返し実行する。
【0191】
上記一連の繰返し処理において、CPU102はまず、処理対象機能について、その処理対象機能がまだデバイス101(図4参照)にインストールされておらず、かつその処理対象機能がインストールされることが、その処理対象機能が定義されているタスク文書データ321内の前述した機能情報323に記述されているか否かを判定する(図9のステップS903)。
【0192】
ステップS903の判定がYESならば、CPU102は、通信ポート108又は通信モジュール109からインターネット又はローカルエリアネットワークにアクセスして、所定のサーバから処理対象機能のプログラムのインストールを試みる(図9のステップS904)。
【0193】
続いて、CPU102は、ステップS904でのインストールに成功したか否かを判定する(図9のステップS905)。
【0194】
ステップS904でのインストールに成功したことによりステップS905の判定がYESになった場合、CPU102は、その処理対象機能が定義されているタスク文書データ321内の前述した機能情報323に記述されているその処理対象機能に対する設定を適用する(図9のステップS906)。
【0195】
一方、ステップS904でのインストールに失敗したことによりステップS905の判定がNOになった場合、CPU102は、ステップS915の処理に移行して、ディスプレイ121(図4参照)に、処理対象機能のインストールに失敗した旨を示すエラーを表示する。その後、CPU102は、図10のステップS936の処理に移行して失敗ログを例えば記録媒体106(図4参照)上のログファイルに記録し、図10のステップS937を介して図9のステップS902の処理に戻り、次の処理対象機能に対する処理に移行する。
【0196】
処理対象機能がデバイス101に既にインストールされており前述した図9のステップS903の判定がNOの場合、又は前述したステップS906の処理の後に、CPU102は、処理対象機能のプログラムが実行可能であるか否かを判定する(図9のステップS907)。
【0197】
ステップS907の判定がNOならば、CPU102は、ステップS915の処理に移行して、ディスプレイ121(図4参照)に、処理対象機能のプログラムが実行できない旨を示すエラーを表示する。その後、CPU102は、図10のステップS936の処理に移行して失敗ログを例えば記録媒体106(図4参照)上のログファイルに記録し、図10のステップS937を介して図9のステップS902の処理に戻り、次の処理対象機能に対する処理に移行する。
【0198】
ステップS907の判定がYESならば、CPU102は、その処理対象機能のプログラムを実行するにあたって、処理対象機能の設定内容により、ユーザによる実行確認が必要であると設定されているか否かを判定する(図9のステップS908)。
【0199】
ステップS908の判定がYESならば、CPU102は、ディスプレイ121に、その処理対象機能のプログラムを実行してよいか否かの確認入力をユーザに求めるフォームを表示する(図9のステップS909)。
【0200】
その後、CPU102は、ステップS909のフォーム表示に対して、ユーザがキーボード123又はマウス124(共に図4参照)を介して実行可能を入力したか否かを判定する(図9のステップS910)。
【0201】
ユーザが実行可能を入力しないことによりステップS910の判定がNOになったならば、CPU102は、ステップS915の処理に移行して、ディスプレイ121(図4参照)に、処理対象機能に対して実行可能が指示されなかった旨を示すエラーを表示する。その後、CPU102は、図10のステップS936の処理に移行して失敗ログを例えば記録媒体106(図4参照)上のログファイルに記録し、図10のステップS937を介して図9のステップS902の処理に戻り、次の処理対象機能に対する処理に移行する。
【0202】
前述したステップS908の判定がNOの場合、又はユーザが実行可能を入力したことにより前述したステップS910の判定がYESになった場合は、CPU102は続いて、その処理対象機能のプログラムを実行するにあたって、処理対象機能の設定内容により、ユーザ認証が必要であると設定されているか否かを判定する(図9のステップS911)。
【0203】
ステップS911の判定がYESならば、CPU102は、ディスプレイ121に、その処理対象機能に対するログイン又はパスワード入力をユーザに求める認証試行のフォームを表示する(図9のステップS912)。
【0204】
その後、CPU102は、ステップS912のフォーム表示に対して、ユーザがキーボード123又はマウス124(共に図4参照)を介して正しいユーザIDとパスワードを入力したことによりユーザ認証に成功したか否かを判定する(図9のステップS913)。
【0205】
ユーザ認証に失敗したことによりステップS913の判定がNOになったならば、CPU102は、一定又はコントローラが設定した適用されている既定回数だけ認証に失敗したか否かを判定する(図9のステップS914)。
【0206】
ユーザによる認証の失敗の回数がまだ既定回数に達していないことによりステップS914の判定がNOになった場合は、CPU102は、ステップS912の処理に戻り、ユーザに更に認証を促すフォームをディスプレイ121に表示し、認証試行の処理を繰り返す。
【0207】
ユーザが既定回数認証に失敗したことによりステップS914の判定がYESになったならば、CPU102は、ステップS915の処理に移行して、ディスプレイ121(図4参照)に、処理対象機能に対するユーザ認証が既定回数失敗した旨を示すエラーを表示する。その後、CPU102は、図10のステップS936の処理に移行して失敗ログを例えば記録媒体106(図4参照)上のログファイルに記録し、図10のステップS937を介して図9のステップS902の処理に戻り、次の処理対象機能に対する処理に移行する。
【0208】
処理対象機能に対して認証が不要であることにより前述したステップS911の判定がNOの場合、又はユーザが認証に成功したことにより前述したステップS913の判定がYESになった場合は、CPU102は続いて、その処理対象機能のプログラムを実行に対して、処理対象機能の設定内容により指定されている使用データを準備する(図9のステップS916)。
【0209】
そして、CPU102は、ステップS916で準備された使用データを処理対象機能のプログラムに設定適用する(図9のステップS917)。
【0210】
続いて、CPU102は、処理対象機能の設定内容により処理対象機能に対して指定されているウィンドウ配置を決定する(図9のステップS918)。ウィンドウ配置については後述する。
【0211】
その後、CPU102は、処理対象機能の設定内容により、実行方法としてアプリ起動、ウェブアプリ起動、メディア表示、API処理、機能実行、又はタスク切替えの何れの実行方法が指定されているかを判定し(図9のステップS919)、その判定結果に基づく機能処理を実行する(図9のステップS920、S921、S922、S923、S924、又はS925の何れか)。
【0212】
CPU102は、ステップS920、S921、S922、S923、S924、又はS925の何れかの処理を実行した後に、ステップS918で決定したウィンドウ配置を処理対象機能に対して適用する(図9のステップS9226)。このようにして、処理対象機能が実行される。
【0213】
続いて、CPU102は、処理対象機能の設定内容により終了処理を行うことが指定されているか否かを判定する(図10のステップS927)。
【0214】
ステップS927の判定がYESならば、CPU102は、処理対象機能の設定内容により処理対象機能に対して指定されている終了条件が成立するまで待機する(図10のステップS928)。終了条件が成立した後、CPU102は、処理対象機能に対して処理対象機能の設定内容により指定されている終了処理を実行する(図10のステップS929)。終了処理ではアプリが起動後に処理を自動的に終了させるために必要な一連の処理を行うことができる。例えばウィンドウを持つアプリが起動するのを待機した後に指定の処理コマンドを送信することで、自動的に処理を完了することができる。
【0215】
CPU102は、前述のステップS927の判定がNOの場合、又は前述のステップS929の終了処理が完了した後に、処理対象機能の設定内容により処理対象機能の完了を待機するように設定されているか否かを判定する(図10のステップS930)。
【0216】
ステップS930の判定がNOならば、CPU102は、図10のステップS936の処理に移行して処理対象機能が終了したことを示す成功ログを例えば記録媒体106(図4参照)上のログファイルに記録し、図10のステップS937を介して図9のステップS902の処理に戻り、次の処理対象機能に対する処理に移行する。
【0217】
ステップS930の判定がYESならば、CPU102は、処理対象機能の処理完了を待機する(図10のステップS931)。
【0218】
その後、CPU102は、処理対象機能の設定内容により処理完了の結果を使用する設定になっているか否かを判定する(図10のステップS932)。
【0219】
ステップS932の判定がYESならば、CPU102は、処理結果を取得する(ステップS933).
【0220】
ステップS932の判定がNOの場合、又はステップS933の処理の後、CPU102は、処理対象機能の設定内容により処理結果を表示する設定になっているか否かを判定する(図10のステップS934)。
【0221】
ステップS934の判定がYESならば、CPU102は、処理対象機能の処理結果をディスプレイ121(図4参照)に表示する(図10のステップS935)。
【0222】
ステップS934の判定がNOの場合、又はステップS935の処理の後、CPU102は、図10のステップS936の処理に移行して処理対象機能が終了したことを示す成功ログを例えば記録媒体106(図4参照)上のログファイルに記録し、図10のステップS937を介して図9のステップS902の処理に戻り、次の処理対象機能に対する処理に移行する。
【0223】
以上のようにして、全ての処理対象機能に対して上述の図9のステップS902から図10のステップS936の一連の処理が終了することにより、図10のステップS937の判定がYESになると、CPU102は、図9及び図10のフローチャートで示される機能実行処理を終了し、ディスプレイ121の表示を、例えば図7に例示されるタスク文書の機能リストの表示処理に戻す。
(利用目的の切替えの概要)
【0224】
図6を参照して前述したように、第3の実施形態では、タスク文書データ321内に機能情報323と共に、目的識別情報322が格納されている。図4のCPU102が図5又は図6のタスク文書アプリ201のプログラムを実行することによって、ディスプレイ121に図1(c)に例示されるようなタスク文書リストを表示させるとき、CPU102は例えば記録媒体106に記録されている各タスク文書データ321内の目的識別情報322を検索する。この結果、CPU102は、図7に例示される画面において、プルダウンボタン1103又はタスク名1102から表示されるプルダウンメニュー内に、目的識別情報322(図7の例では「タスク名」)が設定されたタスク文書選択用のプルダウン選択肢データを設定する。この結果、ユーザは、タスク文書の表示画面上で、プルダウンボタン1103又はタスク名1102をクリックしてタスク名の一覧を表示させ、そのうちの1つのタスク名をクリックして選択することにより、そのタスク名で示される利用目的のタスク文書内の機能リストに切り替えて表示を行うことができる。
(目的識別情報の一覧の生成方法)
【0225】
目的識別情報322の一覧は、例えば過去に作成、生成した又は開いた機能情報323オブジェクトのリストとして作成でき、それぞれの目的識別情報322を上述したプルダウンメニュー形式等で提示することで、ユーザに選択させることができる。該当する機能情報323オブジェクトの数が多い場合は、表示する数の条件を設けて範囲内の数を表示する方法や、数を超えたものをリストから削除する方法がある。目的識別情報の一覧(リスト)内の表示順は最終使用日時に基づいて最近使用したものを優先して提示したり、ユーザの使用頻度による優先付けに従って表示したり、使用状況を元に優先順位を決定してもよく、目的識別情報322に条件式等が含まれている場合はその条件によって優先順位を決めてもよい。また条件式によって項目の表示の有無を決定してもよい。
【0226】
他の方法として、目的識別情報322の一覧(リスト)を他の情報から作成することもできる。例えばユーザが作成した目的識別情報322の一覧を固定的に表示したり、他のユーザや他のデバイス101がこの一覧を作成することも考えられる。
(利用目的の切替えの詳細)
【0227】
目的識別情報322の選択や、他の要因例えば環境上で発生するイベント(例えばタイマーやユーザ入力、通信手段によるイベントの受信、その他のデバイスで発生した入力やその他の状況によるイベント等)等により利用目的の切り替えを行う。利用目的の切り替えを行う時は、実施方法やユーザの選択により異なる方法をとることができる。ユーザが方法を選択する場合は、デバイス101やタスク文書アプリ201に対する設定として方法を指定しておく方法、タスク文書にタスク文書単位での方法の選択を記録しておく方法、利用目的の切替え時にユーザが方式を選択する方法等がある。
【0228】
図11は、上述の利用目的の切替えを実現するための利用目的管理処理の例を示すフローチャートである。この処理は、図4に例示されるデバイス101のCPU102が主メモリ104に読み出したタスク文書アプリ201の利用目的管理処理プログラムを実行する処理である。
【0229】
前述したように、図8のフローチャートに従って、ディスプレイ121に図1(c)に例示されるようなタスク文書リストが表示されているときに、ユーザが、ここから利用目的を選択する場合には、CPU102は、図11のステップS1101のエントリから実行を開始することにより、続くステップS1102からステップS1106までの一連の処理を実行する。
【0230】
この一連の処理において、まずCPU102は、利用目的のリストである目的リストの作成を実行する(図11のステップS1102)。具体的には、CPU102は例えば記録媒体106に記録されている各タスク文書データ321内の目的識別情報322(図6参照)を検索する。
【0231】
続いて、CPU102は、ステップS1102で作成した目的リストに対して、前述した「目的識別情報の一覧の生成方法」に記載の各種方法によって目的識別情報322の使用条件を適用し(図11のステップS1103)、ステップS1102での検索結果に対して、表示フィルタを適用する(図11のステップS1104)。
【0232】
そして、CPU102は、図7に例示される画面において、プルダウンボタン1103又はタスク名1102から表示されるプルダウンメニュー内に、ステップS1104でフィルタリングされた目的識別情報322(図7の例では「タスク名」)が設定されたタスク文書選択用のプルダウン選択肢データを設定する。
【0233】
この結果、ユーザは、タスク文書の表示画面上で、プルダウンボタン1103又はタスク名1102をクリックしてタスク名の一覧を表示させ、そのうちの1つのタスク名をクリックすることにより、所望の利用目的に対応する目的識別情報322を選択する。
【0234】
一方、ユーザが何らかの操作を行ったことにより、利用目的が自動的に切り替わるようにする場合には、CPU102は、図11のステップS1111から実行を開始する。CPU102は、続くステップS1112において、ユーザ操作に基づいて予め既知の利用目的に対応する目的識別情報322(図6参照)を選択する。
【0235】
更に、デバイス101において何らかのイベントが発生したことにより、利用目的が自動的に切り替わるようにする場合には、CPU102は、図11のステップS1113から実行を開始する。CPU102は、続くステップS1114において、イベントを待機し、該当するイベントが発生したら、そのイベントに対応付けられている利用目的に対応する目的識別情報322(図6参照)を選択する。イベントには例えば、PC(パーソナルコンピュータ)の電源状態が変更された時や、設定されたネットワークに接続された時、特定のデバイス(例えばディスプレイ操作)に接続された時、設定した時刻になった時などのイベントがある。
【0236】
以上のステップS1106、ステップS1112、又はステップS1114の何れかの処理により新たな利用目的の目的識別情報322が選択されると、CPU102は、新しい利用目的に切り替えるにあたって、ユーザによる切替確認が必要であると設定されているか否かを判定する(図11のステップS1107)。
【0237】
ステップS1107の判定がYESならば、CPU102は、ディスプレイ121に、新たな利用目的に切り替えてよいか否かの切替確認入力をユーザに求めるフォームを表示する(図9のステップS1108)。
【0238】
その後、CPU102は、ステップS1108のフォーム表示に対して、ユーザがキーボード123又はマウス124(共に図4参照)を介して切替許可を入力したか否かを判定する(図11のステップS1109)。
【0239】
ユーザが切替許可を入力しないことによりステップS1109の判定がNOになったならば、CPU102は、そのまま利用目的管理処理を終了する。
【0240】
前述のステップS1107の判定がNO、又はユーザが切替許可を入力したことによりステップS1109の判定がYESになったならば、CPU102は、ステップS1106、ステップS1112、又はステップS1114により新たに設定された利用目的の目的識別情報322が含まれている例えば記録媒体106(図4参照)上のタスク文書データ321を検索し、その内容に基づくタスク文書の機能リストをディスプレイ121(図4参照)に例えば図7に例示される形態で表示する。
【0241】
利用目的の切替え方法の一つのオプションとして、新たな利用目的はどの作業領域を使用するかの選択がある。また利用目的の一部に対しても作業領域を使用するかの選択が可能な場合がある。
【0242】
切り替える利用目的が既に使用中である場合、その使用中の作業領域を使用することができる。ただし使用中であっても新たに作業領域を割り当てることも可能である。
【0243】
作業領域の使用に関する選択肢として、決まった作業領域を使用せず任意の作業領域を使用する場合、固定的に決まった作業領域を使用する場合、新たに作業領域を確保して使用する場合等がある。
【0244】
作業領域として使用できる範囲としては、前述した仮想デスクトップ、仮想スクリーン、指定のスクリーン、条件を満たすスクリーン、1つ以上のスクリーン中の一部領域、等が考えられる。
【0245】
任意の作業領域を使用する場合は現在作業中の作業領域を使用して、継続して使用する。固定的に決まった作業領域を使用する場合、その作業領域を指定するが、指定の領域が他の仮想デスクトップである場合のように領域の切替えが発生する場合がある。新たに作業領域を確保する場合、作業領域に関する指定(例えばスクリーンのサイズ)があればそれに従い、新たに作業領域を確保又は使用できる新たな作業領域を選定して、その作業領域を使用する。
【0246】
作業領域を確保する場合の方法としては、例えば条件を満たすスクリーンを確保する場合、その条件を満たすスクリーンを検索し、まだ使用されていないスクリーンがあればそれを選定する。仮想デスクトップを確保する場合はまだ使用されていない仮想デスクトップがあればそれを選定するが、既に全ての仮想デスクトップが使用されている場合は新たな仮想デスクトップを作成することができる。
【0247】
新たな領域を確保する場合に、スクリーンや仮想デスクトップのデバイス101上の順位、又はユーザが指定した順位を元に確保する作業領域を決定することもできる。また現在使用中の作業領域に基づき、隣接するスクリーン上の領域、隣接するスクリーン、隣接する仮想デスクトップのような隣接度の評価をもとに作業領域を決定することもできる。例えば現在使用中の作業領域が使用する仮想デスクトップと各デスクトップの各番号の差が最小の仮想デスクトップを使用することができる。また新たな仮想デスクトップを作成した後に、当該隣接度が最小になるように仮想デスクトップの順序を変更してもよい。
【0248】
デバイス101で仮想デスクトップやスクリーン、スクリーンの領域に目的識別情報322(例えばタスク名称)の付与が可能な場合、作成又は切り替えを行うと共に仮想デスクトップの識別情報に基づき目的識別情報322を付与することができる。これによりその領域を使用している利用目的をユーザ又はデバイス101が識別しやすくすることができる。
【0249】
利用目的を切り替える場合の他のオプションとして、既存の利用目的の後処理がある。複数の利用目的を単純に並列使用するのみである場合は特に既存の利用目的に関して処理しなくてよいが、他の選択肢として、切替え前の利用目的のアプリを終了する、最小化する、非表示にするといった既存の作業領域の開放につながる作業をすることが考えられる。また、切替え前の利用目的で使用しているアプリについて状態チェックを行い例えば利用目的の切替えに適さない状態である場合に警告を行うこと、またアプリで未保存のデータがある場合に保存する等、各種の処理を行うことが考えられる。
【0250】
利用目的を切り替える時に、通常は新たな利用目的に関するタスク文書を表示する。基本的な方法は新たな利用目的が使用する作業領域内に新たなタスク文書を表示する方法であり、この場合作業領域ごとにそれぞれのタスク文書が表示されることになる。ただしタスク文書の使用方法はユーザの設定等によりオプションがあり異なる表示方法を取る場合がある。
【0251】
使用方法を切り替える場合に、切り替え前の利用目的のタスク文書表示を新たなタスク文書の表示に切り替える方法もある。この場合は同時には1つのタスク文書のみが表示されることになる。
(機能のグループ管理に関する課題)
【0252】
デバイス101(図4参照)上で複数の機能が実行されている時、それらの機能は各機能のウィンドウ又は各機能のプロセス(以下、機能実行)によって構成され、それらの何れかによって識別することができる。この場合に利用者が複数の異なる作業を並行して行う場合に、各機能実行が何れの作業と結びついているかを認識できることが有用である。例えば異なる作業のためのウィンドウをデスクトップの異なる領域に配置することで、各作業に関するウィンドウを識別しやすくできる。
【0253】
一方で、これらの結びつきを利用者が暗黙に認識しているとしても、デバイス101がその結びつきを認識していないことによりこれらの機能実行の制御に制限があるという課題がある。
(利用目的と機能等の結び付け)
【0254】
利用者が使用する機能実行(ウィンドウ又はプロセスによって識別される)をタスク文書で指定して起動した場合に、コントローラ221(図5又は図6参照)がそのタスク文書と機能実行の識別子の組を管理することで、タスク文書を利用目的を表すキーとした機能実行のグループ(機能実行グループ)を作成することができ、異なるタスク文書と結びついた別の機能実行グループに属する機能実行と区別できる。
【0255】
そのためには、機能実行の開始時に起動した機能実行の識別情報とタスク文書の目的識別情報322(図6参照)の組を、コントローラ221に通知する、又は、コントローラ221に通知してコントローラ221が機能実行の開始を行う方法により、コントローラ221の持つ機能実行リストに利用目的と機能実行のそれぞれの識別子の対応を登録することができる。
【0256】
或る機能実行が終了したことをコントローラ221が検知した時は、機能実行の識別子により機能実行リストのエントリを特定し該当する機能実行を機能実行リストから削除する。
【0257】
機能実行の識別子は、ウィンドウであればウィンドウハンドル、プロセスであればプロセスIDが使用できるが、環境や目的により機能実行を識別可能な他のものを使用してもよい。機能実行がプロセスとウィンドウの両者で識別される可能性がある場合、ウィンドウがある場合はウィンドウの識別子を使用するようにすることで、同一のプロセスがもつ複数のウィンドウを異なる利用目的で使用する場合にも対応が可能になる。また利用者の指定により、特定の機能についてプロセス又はウィンドウの何れを用いて利用目的の関連を管理するかを選択できてもよい。タスク文書の機能の設定に機能実行の管理方法として何れを使用するかを指定するか、起動時にメニューから何れかの方法を選択させることで管理方法を選択できる。
【0258】
タスク文書の識別子を利用目的の識別子として使用することで、タスク文書と結び付けて利用目的を識別することができる、この際タスク文書に登録された識別子(例えばランダムに生成されたGUIDや利用者が作成した識別子)を使用することもできるし、コントローラ221がタスク文書を開く際に管理用に登録したタスク文書の目的識別情報322を使用してもよい。
【0259】
また、利用者が利用目的に対応するタスク文書の目的識別情報322を明示的に指定するなどにより、タスク文書と利用目的の関係を制御できる。例えば複数のタスク文書で単一の利用目的を共有することができる。この場合、何れかのタスク文書から起動した機能実行も同一の利用目的と結び付けることができる。
【0260】
コントローラ221に通知されずに外部で起動した機能実行はこれらの利用目的によって識別されない機能実行とすることもできるが、利用者の設定により、開いているタスク文書、又は開いていない既存のタスク文書の一部又は全てを検索し、該当する機能を検索することにより、当該機能実行の起動時に、又は起動したより後の時点で、事後的に利用目的と関連付けを行うことができる。この場合は機能実行のプロセスの実行ファイル又はウィンドウ名称などとタスク文書の機能の定義に設定された内容を比較して一致する機能の定義とタスク文書を検索することにより行うことができる。
【0261】
利用目的をタスク文書の単位でなく、タスク文書の一部であるグループを単位として設定してもよい。この場合、タスク文書内の何れの位置に登録された機能を実行するかにより対応する利用目的を変えることができる。
(機能実行グループに対する操作)
【0262】
機能実行グループに属する機能実行に関して、単独の機能実行グループに対して行う操作と同等の操作を一括して行ったり、機能実行グループに対しての操作を行ったりすることができる。ただし、具体的にどの機能を使用するかどうかは利用者や利用目的によって異なる場合があり、コントローラ221に対して全体の設定を登録することや、利用目的によってタスク文書に登録することで何れの操作を有効とするかを選択できてよい。
【0263】
機能実行グループに対して、一括して機能実行をするには、ユーザがタスク文書ウィンドウ上でメニューから一括操作コマンドを選択することで行うことができる。又はコントローラ221の機能実行リストから作成した利用目的の識別子を使用してユーザに現在登録されている利用目的の一覧を提示し、その利用目的に関して提示されるメニューから操作を選択することもできる。
【0264】
機能実行グループに対して一括実行する機能としては、例えば機能実行を終了する、一括してウィンドウの最小化や復元を行う、後述する他の仮想デスクトップに移動するといった、通常単一のウィンドウに対して実行できる機能がある。これらの場合、コントローラ221に対して当該一括実行が通知されたら、機能実行のうち当該操作が可能な機能実行について、指定された操作を順次行う。この場合、例えば或る機能実行がウィンドウを持たない場合にこの機能実行を含む機能実行グループに対してウィンドウに関する操作を指定された場合は、当該操作を実行できない機能実行については無視することでグループ全体に当該処理を行える。
【0265】
機能実行グループに属する機能実行のウィンドウを移動させる操作(例えばタイトルバー位置でマウスによりドラッグ)をするときにシフトキー(又は例えばCTRLキー)を押しながら操作を開始することで、グループ全体に対して操作を行うことができる。コントローラ221はウィンドウの移動操作の開始イベントを識別した際に、シフトキーが有効であれば移動操作が完了するまでの間、当該ウィンドウの移動操作と同様の操作を他の機能実行グループに属するウィンドウに対しても行うことで機能実行グループに属するウィンドウを一括して移動することができる。また、他の一括実行操作として、グループに属するウィンドウ位置を一括してタスク文書に保存させることができる。また、グループに属するウィンドウの配置を自動的に再配列できる。また、グループに属する各ウィンドウの位置関係を保持したまま、指定した領域(例えばデスクトップ)の端又は中央に移動することができる。
【0266】
当該グループに属する全てのウィンドウを含む矩形を求め、その矩形が指定した領域内で指定した位置(例えば中央)になるように移動後の当該矩形の位置を求め、当該矩形の移動を各ウィンドウに適用する。これにより当該グループに含まれるウィンドウの全体を画面全体の中で作業しやすい位置に配置することができる。またこの操作をグループに属するウィンドウの配置が変更された時に自動的に適用することで、自動的に同様の調整を継続的に適用することもできる。新規のウィンドウが起動した場合、ウィンドウが閉じた場合、個々のウィンドウの配置が変更された場合にコントローラ221が当該イベントの通知を受けて処理を適用する。この自動的な適用を行うかどうかを利用目的ごとに設定してタスク文書又はコントローラ221が保持することで、グループ毎に当該調整を行うかどうかを変えることができる。
【0267】
図12は、タスク文書の配置の画面例を示す図である。
タスク文書は、デスクトップ上の任意の位置(#3)又は固定若しくは半固定の位置に表示することができ、ユーザの設定に基づき、使用に適した操作により表示することができる。
また、タスク文書をデスクトップの端(#1、#2)に固定し、ユーザの設定によっては通常時は非表示としマウスでデスクトップの端をポイントした時に表示するようにすることができる。
また、タスク文書を任意の位置(#3、#4、#5)に表示することができ、マウスドラッグなど通常のウィンドウ操作と同様の方法で任意の位置に移動できる。更に、ウィンドウのサイズも変更できる。
また、特定のキー操作をしたときに、デスクトップの端付近といった、表示されたことが把握しやすい固定位置(#6)に表示することができる。
また、特定のアプリのウィンドウに隣接する位置に固定することもできる(#7)。この場合は、当該ウィンドウが移動した場合には、それに合わせてタスク文書の位置が移動させられるようにすることができる。
また、アプリのウィンドウを使用中にキー操作によってそのウィンドウの上に重ねて表示することができ(#8)、最小の視線移動で操作することができる。
また、タスクバー上にタスク文書のアイコンを表示し、クリックした時にその位置に表示することもできる(#9)。
更に、タスクバー上の通知エリアのアイコンをクリックした時にその位置に表示し(#10)、操作が終わると非表示にすることができる。
【0268】
次に、本発明の第4の実施形態について説明する。第4の実施形態は、仮想デスクトップに関する実施形態である。
(仮想デスクトップに関する課題)
【0269】
ディスプレイ121のスクリーンをデスクトップとして使用する場合に、デスクトップを論理的に複数作成し、利用者の操作によって切り替えて使用する仮想デスクトップ機能がある。仮想デスクトップ機能を使用することで実際のスクリーンの広さよりも広い領域を使用できたり、作業によって領域を使い分けることができる。
【0270】
その一方で、仮想デスクトップを使用する場合には、ユーザはそれぞれの仮想デスクトップがどのように使用されているかを把握して切り替える必要がある。仮想デスクトップを使用して作業する利用目的の数が多い場合、仮想デスクトップを同時に多数使用することになる。その際、仮想デスクトップの数が少なければ作業が増えるたびに新たな仮想デスクトップを作成しなければならないし、使用していなくても多数の仮想デスクトップが存在する場合は仮想デスクトップの管理や把握がしにくくなってしまう。
【0271】
新たな機能を起動する場合は現在の仮想デスクトップにウィンドウが開く場合がある。しかし機能の起動は何れの仮想デスクトップからでも行うことができるため、作業の進行上他のデスクトップにいる時に開いてしまうことで、関連した作業を行っている仮想デスクトップで開くことが望ましいにもかかわらず、別の仮想デスクトップで機能を開始してしまい、関連する機能が他の仮想デスクトップに分散してしまうことがある。
【0272】
多数の仮想デスクトップを使用していると、現在どのような仮想デスクトップがあるか、また利用目的の作業の仮想デスクトップがどの仮想デスクトップなのかの把握がしにくい問題がある。他の仮想デスクトップで行っている作業に切り替えを行おうとすると、何れの仮想デスクトップに切り替えればよいのかが瞬時にはわからない場合がある。
【0273】
各仮想デスクトップで起動されている機能の使用状況を縮小した仮想デスクトップのイメージで表示する機能がある場合があるが、使用している機能の表示内容が類似している場合は縮小されているイメージから判別するのが困難な場合がある。
【0274】
仮想デスクトップには名前を付けて区別できる場合があるが、適切に名前を付けたり、作業が終わったときに終わった作業の名前を消すなどの管理は煩雑であり、仮想デスクトップの使用が頻繁であるほど管理がしにくくなる問題がある。
(仮想デスクトップとタスク文書の関連付け)
【0275】
そこで、第4の実施形態は、次のような機能を実現する。まず、異なるタスク文書を異なる仮想デスクトップに開くことができる。或る仮想デスクトップが表示されている時に、使用者がタスク文書を開く操作をするとその仮想デスクトップ上にタスク文書を表示する。ある利用目的の作業を行うための機能を開始するために、ユーザはそのタスク文書が開かれているデスクトップを開き、タスク文書から機能を開始する。利用目的の機能の実行を特定の仮想デスクトップで行うことを確実に行うことができる。
【0276】
或る作業で使用する機能を定義したタスク文書を開いた時、CPU102(図4参照)が実行するタスク文書アプリ201は、そのタスク文書について、特定の仮想デスクトップとの割当て状況を記憶することで、仮想デスクトップとタスク文書を関係づけることができる。複数のタスク文書にそれぞれの仮想デスクトップを割り当てると各仮想デスクトップにタスク文書が割り当てられた状態になる。この時、各仮想デスクトップは、それぞれの利用目的を開いているタスク文書によって識別できる。
【0277】
タスク文書を開くときに現在選択されている仮想デスクトップから順に、まだタスク文書への割当てがない仮想デスクトップを順次検索し、タスク文書を新たに割り当てるデスクトップを決定できる。使用者の目的によっては、タスク文書の割当ての有無に関わらず、まだ他の機能が使用中でない空のデスクトップを選択することもできる。何れにするかは使用者が設定できる。
【0278】
この時、割り当てが可能な仮想デスクトップがない場合、既に割り当てられた仮想デスクトップに重複してタスク文書を割り当てることもできるし、新規に仮想デスクトップを作成することもできる。何れが望ましいかは使用者の設定により決定できる。また、このようにして自動的に作成された仮想デスクトップについて、作業が終了した時には仮想デスクトップを自動的に削除してもよい。作業が終了したことは、タスク文書が閉じられること、タスク文書から開かれた機能が全て終了したこと、又は仮想デスクトップ内の全ての機能が終了したことの何れかで判定できる。何れの判定方法が良いかは使用者が設定できる。このように必要な仮想デスクトップの作成及び不要になった仮想デスクトップの削除を行うことで、使用者は仮想デスクトップの作成や削除の管理を自身で行う必要がなくなる。
(タスク文書を開いた時の割当て)
【0279】
タスク文書を開いた時に既にそのタスク文書が開かれていたら、その既に開かれているタスク文書が存在するデスクトップに切り替える。これによりタスク文書を開く操作によりその作業のために使用している仮想デスクトップに切り替えることができる。利用者はそのタスク文書が開かれているか、又はその作業が何れかの仮想デスクトップで既に行われているかどうかを把握していなくても、既存の作業中の仮想デスクトップ又は新規に作業を開始する仮想デスクトップの何れかを適切に開くことができる。
【0280】
使用者にとって各タスク文書はタスク文書のファイル名又はファイル名の一部によって識別することができる。また、タスク文書に含まれる代表的な使用機能や複数機能の利用目的に基づく名前を生成するか又は利用者が作成した名前をタスク文書内に保存し、その名前に基づきタスク文書を表すことができる。何れかの方法によってタスク文書を識別するための名前を割り当て、それによってタスク文書に結び付けられた仮想デスクトップを識別することができる。
【0281】
タスク文書を識別する名前を仮想デスクトップの名前に設定し、また開いているタスク文書を閉じた場合には設定した名前を削除しデフォルトの又は名前を設定する前の名前に戻す。これにより使用者は各仮想デスクトップの用途を名前により判別できるようになる。またタスク文書の機能によらずOS自体の仮想デスクトップ管理機能からも仮想デスクトップの用途を把握し容易に切り替えを行うことができる。
【0282】
仮想デスクトップの名称に付加的な属性を表示することで、使用者が何れの作業を行うかの判断を助けることができる。付加的な属性としてその作業の進行状況を数字や記号で表示できる。また作業を行う期限になったことを記号で表示し使用者に知らせることができる。これにより次に作業を行う仮想デスクトップが何れであるかを判断するための補助ができる。
【0283】
仮想デスクトップに複数のタスク文書が割り当てられている場合に、仮想デスクトップの名称は、それらのうち最初に開いたタスク文書、又は最後に開いたタスク文書を使用してもよいし、複数のタスク文書のそれぞれの名前を結合してもよい。
【0284】
仮想デスクトップにタスク文書が割り当てられていない場合又は仮想デスクトップに割り当てられたタスク文書が閉じられた場合でも、仮想デスクトップに開いている他のウィンドウがあれば、それらのウィンドウの名称を仮想デスクトップに割り当ててもよい。複数のウィンドウがある場合の名前の決定方法としては、表示順で最上位にあるウィンドウの名前を使用する方法や、複数のウィンドウの名前を結合する方法がある。仮想デスクトップにウィンドウがない場合はその旨を示す文言「なし」を使用してもよい。
(タスク文書のリスト)
【0285】
利用者が開いているタスク文書を把握できるようにするため、開いているタスク文書のリストを表示することができる。このリストはデスクトップの何れかのウィンドウに表示したり、タスク文書内の領域に表示したりすることで常時表示することができる。この場合タスク文書を新たに開いたり閉じたりした場合には、その変更を反映することで現在開かれているタスク文書を使用者が把握できる。
【0286】
タスク文書のリストは、タスク文書内でタイトル領域をクリックする、デスクトップの通知領域をクリックする、任意のウィンドウのタイトル領域を右クリックする、又はクリックして表示したメニューからタスク文書を表示するコマンドを選択することで表示したり、メニューの一部として表示することもできる。
【0287】
複数の開かれたタスク文書を開いたことはコントローラ221(図5又は図6参照)が把握し、タスク文書が開かれた場合や閉じた場合に開かれているタスク文書のリストを更新する。このリストを利用者が使用する場面で提示することで使用者がタスク文書を選択できるようにし、選択により仮想デスクトップの切り替えを行える。
(仮想デスクトップの割当ての設定)
【0288】
或る作業を行う仮想デスクトップをタスク文書に格納される設定によって決定してもよい。タスク文書内で、タスク文書全体に対して、又はその一部に関する設定として、仮想デスクトップの指定を名称、インデックス又は仮想デスクトップ割当て方法の指定によって格納することができる。タスク文書を開く時に、タスク文書に関する仮想デスクトップの指定があれば、現在の選択に関わらず指定された仮想デスクトップを検索し、見つかればその仮想デスクトップに割当てを行い、その仮想デスクトップ上にタスク文書を開くことができる。検索の結果仮想デスクトップが見つからなかった場合には、仮想デスクトップの指定を無視して、通常の仮想デスクトップ割当て方法に基づいて割り当てを行える。また、そのタスク文書を開くときに同時にその仮想デスクトップに切り替えを行ってもよい。タスク文書の一部に対して仮想デスクトップが指定されている場合、その一部の範囲に属する機能を実行する場合に実行を指定の仮想デスクトップで行うことができる。これによって一つの作業のグループに属するが複数の仮想デスクトップに分割したい場合に自動的に複数の仮想デスクトップを使用することができる。
【0289】
或る作業を行う仮想デスクトップとタスク文書の関係をコントローラ221が保持してもよい。この場合、タスク文書を開く時にそのタスク文書に関する仮想デスクトップ割当ての設定をコントローラ221が保持しているかを検索し、見つかった場合にはその仮想デスクトップに割り当てを行い、タスク文書を開くことができる。
(仮想デスクトップの検索方法)
【0290】
仮想デスクトップをどのように使用するかによって望ましい割当て方法が異なる場合がある。仮想デスクトップを指定に基づいて割り当てを行う場合の方法として、仮想デスクトップのインデックスによる方法、仮想デスクトップの名称による方法、検索方法を指定して検索する方法がある。仮想デスクトップの名称による検索を行う場合、実際の仮想デスクトップの名称は割り当てられている名称を使用することもできるし、コントローラ221が別途保持した仮想デスクトップ名称リストによることもできる。実際の仮想デスクトップの名称によって決定する場合の仮想デスクトップの名称は、タスク文書を開いた時や閉じた時にも変更せずに維持するようにすることで割り当てに使用する名称が維持できる。
【0291】
仮想デスクトップの名称が状況に応じて変更される方法で使用する場合には、その仮想デスクトップの名称をそのまま指定に使用することは不適切なため、実際の仮想デスクトップの名称とは別にコントローラ221が仮想デスクトップの名称のリストを管理して指定に使用する仮想デスクトップの名称と仮想デスクトップの対応関係を管理することができる。図13は、ディスプレイ121上での仮想デスクトップの配置の画面表示例である。
【0292】
本発明の第5の実施形態について説明する。第5の実施形態は、デスクトップ領域に関して、利用目的に基づく環境作成時に、その利用目的で使用するスクリーン、領域、仮想デスクトップ(図6の307、308、309に対応)等の表示領域との対応を手動又は自動で決定するプログラムに関する実施形態である。
(デスクトップに関する課題)
【0293】
デスクトップを複数ディスプレイから構成したり、サイズの大きなディスプレイにより構成することで、より大きなデスクトップ領域を使用したりすることが行われている。その一方で、デスクトップ領域が広いことが問題を発生させることがある。例えば、或る機能を起動した時にそのウィンドウが希望する作業領域から大きく離れた場所に開いてしまうことがある。またデスクトップの広さに合わせてウィンドウが作成されることで、不必要に大きなウィンドウが生成されてしまい、領域が無駄に使用される場合や、ウィンドウサイズが適切な大きさからかけ離れた大きさになることにより作業がしにくくなってしまうことがある。
【0294】
これらの場合、ウィンドウが開いた後に手作業でウィンドウ位置やウィンドウサイズを調整することが必要になる場合が増えてしまう。
(デスクトップ領域)
【0295】
そこで、第5の実施形態は、次のような機能を実現する。デスクトップの領域中に論理的なデスクトップ領域を定義することで、ウィンドウを配置する領域としてデスクトップ全体の代わりにデスクトップ領域を使用することでデスクトップへのウィンドウ配置を制御する方法を提供できる。
【0296】
デスクトップ領域を定義するには、仮想デスクトップの一部の領域を定義できれば良いが、その方法としては矩形に基づく範囲指定による方法、1つ以上の矩形の組合せに基づく範囲指定による方法、1つ又は複数のディスプレイ領域の組合せにより定義する方法がある。
【0297】
矩形による定義の場合には、デスクトップの領域の一部である矩形領域を矩形の左上座標と右下座標により指定する。矩形はデスクトップよりも小さな領域でもよいし、デスクトップの外側の領域を含んでいてもよい。複数のディスプレイを組み合わせて使用しているシステムでは複数のディスプレイ領域の結合が1つの矩形にならない場合があるが、その場合でもその結合領域を覆う矩形により複数ディスプレイ領域を含む領域を定義できる。
【0298】
複数の矩形による場合は同様の矩形の組合せによって指定する。複数の矩形領域は任意の矩形の組合せでもよく、具体的には矩形同士が接していない、矩形同士が重なっている組合せでもよい。
【0299】
複数のディスプレイ領域の組合せによって指定する場合は、デスクトップを構成するディスプレイのうち任意のディスプレイ領域を指定する。ディスプレイ番号によって指定することができる。他の方法として、ディスプレイの表示可能なピクセル数又はディスプレイの物理的な大きさの順に基づいて順序付けた番号によって指定することもできる。このような番号に基づき、ディスプレイ#0とディスプレイ#1のように複数のディスプレイの組合せを指定できる。
【0300】
このような定義を行うには、利用者がコントローラ221のデスクトップ領域管理機能により、デスクトップ領域の設定方法、デスクトップ領域矩形の座標又はデスクトップ番号を登録することで行うことができる。個々のデスクトップ領域に名前を付けることができてもよい。
【0301】
デスクトップ領域は複数設定することで、デスクトップの領域を分割して使用することができる。ただし分割はデスクトップの全領域を覆わない場合も、互いの領域が重なっていることもある。
【0302】
使用するデスクトップ領域は、コントローラ221が保持するデスクトップ領域のリストから一部を選択することで行える。何れのデスクトップ領域も選択しないこと、又はデスクトップ全体を表すデスクトップ領域を定義することで、本来のデスクトップ全体と同一の領域を使用することを指定することもできる。
【0303】
デスクトップ領域が定義されている場合、機能を実行した時のウィンドウ配置をデスクトップ領域の中に納まるように制御することでデスクトップの領域の一部のみを使用して作業を行うことができる。ウィンドウが新規に表示された時に、通常の場合と同様にウィンドウ配置の調整を行うが、その際にウィンドウを配置可能な領域をデスクトップ領域に限定することでこの機能が実現できる。
【0304】
デスクトップ領域が設定されている場合、タスク文書を開く際に仮想デスクトップを割り当てる代わりに仮想デスクトップとデスクトップ領域の組合せである仮想デスクトップ領域を割り当てることができる。仮想デスクトップがn個、デスクトップ領域がm個ある場合、仮想デスクトップ領域はn×m個存在する。割当てが可能な仮想デスクトップを検索する場合と異なり、仮想デスクトップ領域から割り当て可能なものを検索する。
【0305】
タスク文書に基づいて機能を実行する場合で、そのタスク文書に関連付けられた仮想デスクトップ領域がある場合は、その仮想デスクトップ領域に限定してウィンドウを配置することでタスク文書に関連付けた作業領域を使用することができる。
【0306】
本発明の第6の実施形態について説明する。第6の実施形態は、設定の切替えに関する実施形態である。
(設定の切替えに関する課題)
【0307】
機器の作業環境には様々な環境設定が存在し、作業の内容や利用目的の特性に適した環境を設定できる。しかしながら、これらの設定は機器単位で行われる場合が多いため、性質の異なる利用目的での使用は簡単にできない場合がある。設定の変更を補助する機能を提供するプログラムを使用する場合があり、手動での切替えや設定したプログラムの使用状態との関係に応じて設定を切り替えることができるものの、切替えに手間がかかったり、特定のプログラムと必要な設定が固定的に結びつくわけではないなど、効果的に異なる設定を使い分けられない場合がある。
(第6の実施形態における設定の切替え、(ウィンドウ配置、環境設定))
【0308】
第6の実施形態は、設定の切替えに関して、以下の機能を実現する。タスク文書が仮想デスクトップと結びついている場合に、それぞれの仮想デスクトップに関する設定をタスク文書に基づいて設定することができる。これにより各仮想デスクトップに異なる特性を付与して、仮想デスクトップの識別を行いやすくしたり、その仮想デスクトップで行う作業に適した設定を適用できる。
【0309】
OS本来の機能としては仮想デスクトップごとに設定ができないような設定に関して、仮想デスクトップの切り替え時に切り替え先の仮想デスクトップ設定に基づいて設定を変更することができる。
【0310】
タスク文書に色又は背景画像の設定からなるデスクトップの背景設定が含まれている場合、タスク文書を開いた時にその仮想デスクトップに指定の背景を割り当てることができる。この背景設定はタスク文書を閉じた時点で解除して、設定する前の状態又はデフォルト状態に復元することができる。
【0311】
仮想デスクトップに割り当てられたタスク文書に記載された設定に基づいて、その仮想デスクトップでのウィンドウ配置の方法を指定できる。この場合、ウィンドウが開かれた時に、配置される仮想デスクトップに対応する設定が存在するかを判定し、設定が存在する場合にはその設定に基づいてウィンドウの配置を行うことができる。
【0312】
仮想デスクトップの切替えが行われたことを検出した時に、切替え先の仮想デスクトップに割り当てられた機能設定がある場合にはそれに応じた設定の変更を行うことで、仮想デスクトップごとに異なる設定を適用することができる。また一度このような設定が行われた後に他の仮想デスクトップに切り替えが行われた場合には行った設定変更を解除又は復元することでその設定が他の仮想デスクトップには影響しないようにすることができる。
【0313】
例えば、設定としてキーボード配列の設定を格納し、仮想デスクトップごとに使用するキーレイアウトを変更することができる。同様に、例えば仮想デスクトップごとの設定によって音量の設定を変更したり、電源の使用モードを変更することができる。このようにして、単一の環境では難しかった異なる設定を混在しての使用が可能になり、またその管理がタスク文書と結びついていることで容易に管理できる。
(設定の保存)
【0314】
タスク文書を開いて作業をしている時に、現在の環境設定をタスク文書に保存することで作業に適した設定を保存することができる。タスク文書を操作してメニューから「環境設定の保存」を選択することで環境設定の保存を行うことができる。保存可能な設定の一部又は全部を選択して何れの設定項目を保存するかを指定して保存できる。これは設定を保存可能な項目と現在の設定内容の一覧を表示し、それらのうち保存したい項目を選択することで実現できる。
【0315】
また、メニューから「ウィンドウ配置の保存」を選択することで、現在のウィンドウ配置の座標とウィンドウサイズをタスク文書に保存する。そのためには表示されているウィンドウのうちタスク文書から開かれた機能について、その機能の設定に配置情報を保存することで、次回に機能を起動するときにその配置を再現できる。望ましい作業環境のウィンドウ配置を保存し、次回に作業を開始する時に容易にその状態を再現できる。
【0316】
また、設定を個々の機能の設定にではなく、タスク文書内に独立した配置情報として別途格納することで、タスク文書に対して複数の配置情報を保持することができる。これは望ましいウィンドウ配置が複数ある場合にそれを切り替えたい場合に有用である。
【0317】
本発明の第7の実施形態について説明する。第7の実施形態は、ウィンドウ管理に関する実施形態である。
(ウィンドウ管理に関する課題)
【0318】
利用者があるウィンドウを表示する機能を起動した時、OSが自動的に決められた位置に配置したり、アプリケーションが前回使用時に表示された位置を記憶して表示したりするが、それらが必ずしも利用者にとって作業がしやすい配置になるとは限らず、或る機能を使用する手順が機能の移動とウィンドウの配置の調整という2段階になることが多い。更にディスプレイが大きかったり複数あったりする場合、可能なウィンドウ配置位置が増加するため偶然に期待する配置が得られる可能性はより低くなるとともに、位置の調整をする場合にも移動距離が長くなる問題点がある。
【0319】
第7の実施形態は、上記の問題を軽減するため、ウィンドウ配置の方針及びウィンドウ配置の指定を保存し、その指定に従って配置し、また仕様目的に応じて配置方法を使い分ける方法を下記のように実装するものである。
(固定配置)
【0320】
ウィンドウの望ましい配置が固定的である場合、ウィンドウの配置(座標および大きさ)を指定できればよい。そのためにはウィンドウの配置の指定を機能の起動方法の設定としてタスク文書に登録すればよい。機能の起動時にウィンドウが作成されるタイミングで、設定の配置を適用することで希望する配置を行うことができる。
【0321】
ただし、プロセスやウィンドウへのアクセス権限やOSの機構上の制約、アプリケーションの初期化処理との関係から期待する配置が行えない場合がある。その場合、ウィンドウが作成された後で、作成を検出したタイミングで、又は一定時間がたった場合やユーザがウィンドウに関する操作を行った場合など、作成後に発生する1つ又はそれ以上のタイミングでウィンドウの座標確認と再配置を試みてもよい。これらのタイミングを検出するためには、OSによる当該イベントの検出を利用する方法や、アプリの起動後にポーリングを行う方法がある。
【0322】
座標と大きさをデスクトップやディスプレイの大きさに対する相対位置と相対サイズで設定してもよい。この方法では領域に対してのウィンドウの割合が重要であるようなレイアウトが望ましい場合に、環境が変わった場合や異なる環境に同じ設定を適用する場合でも望ましい配置を得ることができる。
【0323】
また、他のウィンドウ(機能の識別子や、ウィンドウ名等で識別される)との関係性によって、相対位置を指定することもできる。座標と大きさを設定に登録した式やプログラムで表現される手続きによって決定してもよい。このようにすることでより複雑なレイアウトの要求を実現できる。
【0324】
以上の方法で、ウィンドウの座標と大きさの片方のみを設定できるようにしてもよい。
【0325】
ウィンドウの座標の他に、配置する仮想デスクトップ、スクリーン308を指定できてもよい。
【0326】
またウィンドウを作成する外部のデバイス名を指定できてもよい。
(隣接配置)
【0327】
ウィンドウを他のウィンドウに隣接して又は他のウィンドウと同一の位置に開くと利便性が高くなる場合がある。例えば、表示されたタスク文書から或る機能を起動した時、起動した機能のウィンドウがタスク文書の右隣りなど隣接した位置にレイアウトすることで、起動するための操作時に次の操作を行う場所がどこになるか予期しやすく、また最短の距離で操作ができる利点がある。
【0328】
隣接して配置するためには、機能を起動する際に基準となるウィンドウを識別し、そのウィンドウ位置を基準に新規に作成されたウィンドウの位置を調整する。基準ウィンドウの右側に配置する場合であれば、基準ウィンドウの右上の座標を新規ウィンドウの左上座標とするように配置することで隣接した位置に配置できる。この場合に求めた位置に必ずしも当該ウィンドウが収まるとは限らないが、その場合ウィンドウが配置する対象の領域から外にはみ出してもそのまま配置することができる。ただしその場合に他の配置方法をとることもでき、利用者がそれらの何れかを指定しておくこともできる。
【0329】
選択できる配置方法としては、他の方向、つまり右側に配置できないのであれば左側に配置する方法、領域に収まるようにウィンドウサイズを縮小する方法、隣接させるのをあきらめて他の配置方法の何れか、例えばOS標準の配置方法によって配置することができる。又は基準ウィンドウと同一の位置に配置することが選択できてもよい。
(連鎖配置)
【0330】
複数の機能を起動するが何れも隣接して配置するのか望ましい場合に、基準となるウィンドウを順次変えながら連鎖的に隣接配置をすることで、起動する全てのウィンドウを配置することができる。そのためにはタスク文書から機能を起動したことにより、またそれらの機能が別途ウィンドウを作成したことにより、新規のウィンドウが作成された時に、それらのウィンドウをタスク文書により識別される利用目的に関連付けて開いた順序と共に記録する。そのためにこれらの情報をリンクリストにしてもよいし、テーブルに格納した情報を順序に基づいて検索できるようにしてもよい。新規にウィンドウが作成されたことを検出したら、このウィンドウ以前に作成され現在も表示されているウィンドウの中で、最後に作成されたウィンドウを検索し、この最後のウィンドウを基準として隣接配置を適用する。
【0331】
この場合、連続して開かれたウィンドウがある場合に、順序立てて配置を実行する必要があるため、新規にウィンドウが開かれた場合に以前のウィンドウの配置作業が完了していない場合は、後のウィンドウ配置のタイミングを後に遅らせることですべてのウィンドウの配置を意図通りに行うことができる。なお、リストに登録されたウィンドウが閉じられた場合はリストから削除し、有効なウィンドウのリストを維持することで、機能の起動や終了を繰り返した場合でも、それらの中で最後に作成されたウィンドウを元に配置を行うことができる。
(領域内自動配置)
【0332】
機能の利用目的によってはウィンドウが重ならないように配置することを優先して配置したい場合がある。その目的のために使用されているウィンドウが複数あったとして、必ずしもそれらが整然と並んでいるとは限らないが、その状態で新しいウィンドウが作成される場合に、デスクトップにそのウィンドウが収まる空き領域があればその領域を検索して配置できる。該当する領域が見つからない場合はその他の配置方法をとる。このような場合に、重ならないように制御する対象ウィンドウを利用目的と関連付けられたウィンドウのリストを使用して考慮するウィンドウを決定することで、異なる利用目的で使用しているウィンドウの影響を受けることなくウィンドウ配置を行うことができる。
【0333】
ウィンドウを配置する領域309の設定が利用目的に対応して設定されている場合は、その範囲に従ってウィンドウ配置可能な範囲を制限することで自動的に配置される領域309を制限でき、利用目的ごとに使用する領域309を制御することができる。
(自動終了)
【0334】
或る機能を実行してウィンドウが表示された時に、そのウィンドウの利用目的が直ちに終了する場合がある。その場合に、通常であれば、利用者が次の作業を行う前に終了する操作を行うことになるが、これを自動的に終了するようにできれば利便性が向上する。ただし同一の機能であっても利用する目的によって直ちに終了するかどうかが異なる場合があり、また利用する状況によって異なる場合がある。
【0335】
機能の実行時に自動終了する設定になっていた場合、機能を起動したあとにそのプロセス又はウィンドウの識別子と自動終了の設定を保存し、終了すべきタイミングになったら終了操作を行う。終了操作はウィンドウを閉じることによって行う。利用者の設定によりウィンドウを最小化する、ウィンドウを非表示状態にする方法を採用することもできる。これらの場合、後で再度機能を実行しようとしたときに当該ウィンドウを再表示する。
【0336】
機能を自動終了するタイミングは、他のウィンドウ又はデスクトップに操作を行ったことにより自動終了するウィンドウが非アクティブ状態になったことを検出した時とすることができる。また利用者による設定により他の方法をとることもでき、起動後に一定時間経過した時、ウィンドウに対する操作がない状態が一定時間経過した時、非アクティブ状態が一定時間経過した時、といったタイミングから選択できてもよい。
【0337】
自動終了するように設定した機能について自動終了を抑制したい場合がある。そのような場合、機能の起動時にシフトキーを押しながら起動する、又はメニューから自動終了せずに起動する項目を選択して起動すると、その時に限り自動終了機能を有効にしないで起動する。また、起動した後に機能をクリックして表示したメニューから自動終了を無効にするコマンドを実行することで、自動終了の設定をクリアすることができる。また同様の方法で起動した後に自動終了を有効にしてもよい。
(配置ガイド)
【0338】
利用者がマウス等の操作によりウィンドウを移動する際、通常は任意の位置にウィンドウを移動できるが、移動できる位置に制約を設けることで効果的な配置を行いやすくすることができる。そのためにはデスクトップ上に仮想的なガイド線を想定し、移動したウィンドウを移動中又は移動完了時に最も近いガイド線に接するように移動する。この処理はウィンドウ移動イベントを取得し、必要に応じてガイド位置を考慮したウィンドウ移動を行うことで実現できる。ガイド位置に応じた移動は、ウィンドウの4辺をそれぞれが移動可能な座標軸上で最も近いガイド位置に移動させる。又はウィンドウの左と上の2辺の位置を移動させ、サイズは維持することでウィンドウのサイズに影響を与えず位置のみをガイドに合わせてもよい。これらの場合にガイド線とウィンドウの距離が遠い場合、例えばグリッド幅の4分の1よりも離れている場合には移動を行わないこととしてもよい。
【0339】
ガイド線としては、デスクトップ領域を格子状に区切ったグリッドを使用できる。グリッドのサイズは例えば64ピクセルといった固定値でもよいし、デバイス101全体や利用目的に対して設定できてもよい。ガイド線として他のウィンドウの境界線が位置する座標を使用することもでき、この場合は他のウィンドウの位置を基準にして接するようにウィンドウを配置できる。
(ウィンドウ配置方法の設定)
【0340】
以上のような異なる配置方法が考えられるため、機能の起動方法には何れの配置方法を使用するかと、指定した配置方法で必要なパラメータを設定する。この配置方法の設定に従って何れかの配置方法を適用することで、機能ごとに希望する配置方法を適用できる。
【0341】
なお、配置方法としては「OS標準」を指定できてもよい。場合によっては明示的に個別の方法ではなくOSが標準的に実装する方法を使用するのが望ましい場合があり、その場合にこの配置方法を指定できる。OS標準の配置方法を使用する場合はウィンドウ作成時の配置処理を行う際に何も行わないことでOS又はアプリケーションが通常行うレイアウトに任せることができる。
【0342】
配置方法として「自動」を指定するか、指定をしない場合は、タスク文書全体に対する配置方法の設定、又はコントローラ221にデバイス101内で共用する配置方法の設定がある場合はそれを使用できる。何れの設定もない場合はOS標準の配置方法が使用されてよい。
(異なる配置方法の設定)
【0343】
或る機能が最後に使用されたウィンドウの配置を記憶して次回の起動時にその配置を再現することは良く行われている。しかしこの方法ではそのアプリケーションを複数の異なる配置で使用する使用方法がある場合には必ずしも望ましい配置にならない。
【0344】
タスク文書の中の複数の起動方法設定や別のタスク文書に、同じ機能であっても異なる配置の設定を保存できるので、これにより同一の機能であるがその使い方によって適切な配置が異なる場合に、異なる設定を保存してそれぞれを容易に実現できる。
(全体的な配置方法の設定と継承)
【0345】
これらのウィンドウ配置方法は個別の機能単位で設定してもよいが、一括して設定できることが望ましいことも多い。何れの配置方法を取るかをデバイス101全体に対して、又はタスク文書又はタスク文書内のグループ、又は利用目的に関連して設定できるようにしてもよい。これらのうち1つ以上の箇所に設定がある場合、それらの設定を全体的な範囲から小さな設定範囲に向かって、順次適用し、最後に個別の機能における設定があればそれを適用することで、実際に適用する設定を決定できる。このような継承関係により、全体的にも部分的にも機能設定の単位でも設定が行える。
(ウィンドウの除外)
【0346】
これらのウィンドウの自動配置を行う場合に自動配置が適さないウィンドウが存在する場合がある。例えば個々の機能がその機能に関する別のウィンドウを開くが、機能の中での位置関係が機能上又は利便性の上で重要な場合があり、そのような場合に全てのウィンドウに対して自動的な配置が行われてしまうとかえって利便性を損なう場合がある。そのため条件に基づいて自動配置の対象外とするウィンドウを識別したり、利用者の指定に基づいて自動配置から除外する必要がある場合がある。
【0347】
自動配置に適さないウィンドウのうちメニューウィンドウ、ダイアログウィンドウなどがOSのウィンドウが提供する属性などの情報により判別できる場合はそれにより判別し除外する。例えばウィンドウのスタイル、ウィンドウクラス、ウィンドウプロシージャといった情報により判別できる場合はそれにより判別する。
【0348】
或る機能が追加で作成したウィンドウについては自動配置を行わないようにしてもよい。機能が主要な機能の目的には複数のウィンドウをしない場合であればこれによりサブウィンドウを自動配置することを防ぐことができる。また或る機能が作成した主ウィンドウに対して、同じ機能が追加で作成したサイズが主ウィンドウよりも小さい、又は一定の比率以下のサイズであるウィンドウを主要な機能のウィンドウではないものとみなして除外してもよい。ただし、機能によって望ましい結果となるかどうかが異なるので、利用者の設定によって適用の有無を設定できるようにしてもよい。
【0349】
以上のようなアルゴリズム的な判定で判定できない場合には、個々の機能ごとにコントローラ221の組込みで又は利用者ウィンドウの名前で自動配置の有無を設定してもよい。また個々の機能ごとの当該設定の情報を外部のデバイスから取得することで更新できるようにしてもよい。
(隣接配置の間隔)
【0350】
隣接配置やガイドによる配置の場合に一定のウィンドウ間の距離を取ることで、ウィンドウの配列に一定の間隔を設けることができる。間隔を空けて配置する場合は、間隔の半分の隙間領域がウィンドウの4辺の周囲にあるように配置する。すなわち、ウィンドウの領域の周囲に隙間領域を加えた領域を実質ウィンドウ配置領域とみなして配置を計算する。そしてウィンドウを移動する時は、実質ウィンドウ領域から隙間領域を減じた実ウィンドウ領域を算出し、その実ウィンドウ領域にウィンドウを移動する。
【0351】
図14は、第7の実施形態に関する、使用領域選択の処理例を示すフローチャートである。この処理例は、新たに使用を開始する使用目的のために使用するスクリーン上の領域を割り当てる方法の例である。使用目的が専用の領域を使用すると設定されている場合は領域割当てを行う。専用の領域を使用する設定でない場合は領域の割当てはせず現在使用中のスクリーンを使用する。この処理例は、図4に例示されるデバイス101のCPU102が主メモリ104に読み出したタスク文書アプリ201の使用領域選択処理プログラムを実行する処理である。
【0352】
図14において、CPU102はまず、使用目的について、既に使用領域を割当て済みか否かを判定する(ステップS1401)。
【0353】
ある仮想デスクトップまたは仮想デスクトップとスクリーンの組み合わせが当該使用目的に専用に割り当てられている場合、または以前に割り当てられていて現在でも使用可能な場合は、CPU102は、その領域を割当ての候補として、ステップS1401の判定がYESとなる。ステップS1401の判定がYESの場合に、CPU102は、その領域に表示が可能か否かを判定する(ステップS1402)。この判定により、割当て済みの領域に既に他のウィンドウが使用している場合は重複して使用されることを避けることができる。
【0354】
ステップS1402の判定もYESの場合に、CPU102は、ステップS1409の処理に移行する。
【0355】
ステップS1401又はステップS1402の判定がNOの場合に、CPU102は、デスクトップ上で使用する目的が割当て可能な空き領域を検索し(ステップS1403)、空き領域があるか否かを判定する(ステップS1404)。このときCPU102は、目的の設定により、使用する領域の広さや位置、スクリーン番号の指定の条件が設定されている場合はその条件を満たす領域を検索することで、目的に適した領域を割り当てる。
【0356】
空き領域があってステップS1404の判定がYESならば、CPU102は、ステップS1409の処理に移行し、その領域を使用目的のために使用する事を登録し、その領域を使用する。
【0357】
ステップS1404の判定がNOの場合、CPU102は、デスクトップ上で空き領域を作成することを試みて(ステップS1405)、作成に成功したか否かを判定する(ステップS1406)。
使用中である目的が領域を解放可能であると設定されているか、解放可能な状態と判定可能である場合は、その領域を解放することで空き領域を作成できる。
仮想デスクトップの追加が可能な場合は、新規の仮想デスクトップを作成することで新たな空き領域を作成することができる。
使用可能な未使用のスクリーンがある場合はそれを有効にすることで空き領域を使用することができる。当該未使用のスクリーンとしては、既に接続されているが使用可能になっていないスクリーン、ネットワークにより接続しているまたは接続可能な外部のスクリーンまたは外部の機器に接続されたスクリーンで空き領域として使用可能なものから選択できる。
【0358】
ステップS1406の判定がYESならば、CPU102は、ステップS1409の処理に移行して、その領域を使用する。
【0359】
空き領域を割り当てることができずに、ステップS1406の判定がNOならば、CPU102は、既に使用中の領域に割当てが可能か否かを判定する(ステップS1407)。このとき、CPU102は、領域の使用中の目的により領域の重複仕様ができないように設定されている場合は、重複した利用を避けるために割当てから除外し、割当て可能な領域を探す。
【0360】
ステップS1407の判定がYESならば、CPU102は、ステップS1409の処理に移行する。
【0361】
ステップS1407の判定がNOならば、割当てが不可能であるので、CPU102は、ディスプレイ121に割当て不能エラーを表示する(図8のステップS1408)。この場合は、ユーザは、現在の使用目的での使用ができないことになる。その後、CPU102は、図14のフローチャートで示される使用領域選択の処理を終了する。
【0362】
CPU102は、ステップS1409において、表示可能な領域が表示中であるか否かを判定する。
【0363】
当該領域が現在使用中でない仮想デスクトップにある場合は当該領域が表示されていないことになるのでステップS1409の判定はNOとなる。また、当該領域が属するスクリーンの表示が電源制御または表示制御により表示が停止されている場合も当該領域が使用されていないことになるのでステップS1409の判定はNOとなる。このようにステップS1409の判定がNOならば、CPU102は、当該領域を表示させ、当該領域を使用可能な状態にする(ステップS1410)。このときCPU102は、仮想デスクトップ切替え又は当該スクリーンの電源制御若しくは表示状態制御を行い、当該領域が表示されている状態にする。
【0364】
これで当該領域が使用可能であることが確認され、当該領域が使用可能となる。そして、CPU102は、当該領域を選択する(ステップS1411)。CPU102は、当該領域が当該使用目的によって使用されているという情報を、領域管理情報として記録する。これにより当該目的のための機能が適切な領域を使用できるようになる。その後、CPU102は、図14のフローチャートで示される使用領域選択処理を終了する。
【0365】
図15は、複数のスクリーンで構成させるデスクトップ上でのウィンドウの配置の画面例を示す図である。
アプリのウィンドウは最後に表示されたウィンドウの位置を避けて隣接して表示できる(#1、#2、#3)。この例では、当該スクリーンのみを使用領域として割り当てることで、当該スクリーン内にウィンドウを配置しており、他のスクリーンは他のアプリのウィンドウが使用できる。
図15に例示されるウィンドウ(#7、#8、#9)は、横長に表示したタスク文書により位置が固定されている。タスク文書により表示するウィンドウを選択でき、それ以外のウィンドウは非表示となるか背面に表示されるようにすることができる。タスク文書を移動してこれらの複数のウィンドウを同時に関係性を保ったまま移動することができる。
また、図15の下の図の例では、アプリウィンドウ(#1、#2)は、複数のスクリーンにまたがって配置されている。この場合は、デスクトップ全体を使用領域として割り当てることで、アプリを複数のデスクトップの全体に配置している。
【0366】
本発明の第8の実施形態について説明する。第8の実施形態は、共有、同期、通信に関する実施形態であり、利用目的の候補を、名称や説明などを予め用意されたデータから、又はサーバから取得して、選択すると当該データを取得して使用することができる。また、第8の実施形態では、タスク文書をサーバに送信し名前や作成者や内容説明などの属性と共に登録し、任意の使用者がサーバからタスク文書を検索して一覧を提示し、その中から必要なタスク文書を取得して使用することができる。具体的には、第8の実施形態は、下記の機能を実現する。
(文書に署名を行う、又は暗号化ができる)
【0367】
タスク文書に署名を行うことで作成者を確認することができ、外部から取得したタスク文書を使用する場合の安全性を高めることができる。作成したタスク文書を共有することでプログラムの起動方法などを他のユーザと共有できると利便性が高い一方で、意図しない動作やデバイス101を破壊するようなプログラムの実行の設定を含むタスク文書を外部から取得してそのような問題に気が付かずに実行してしまう危険性があり、セキュリティ上の問題となる。このようなリスクを軽減する方法の一つとして文書に署名をすることができる。
【0368】
タスク文書に署名がされている場合はそれを検証することで誰が作成したのか、又は特定の者によって作成されたのかどうかを確認することができる。確認した結果、署名が不正であればその旨をユーザに通知することができる。署名に基づいてあるタスク文書又は作成者に関する信頼度を設定することができる。各作成者について常に信頼しない、常に信頼する、毎回確認するように指定することができる。また、タスク文書ごとに信頼するかどうかを指定することもできる。信頼されている作成者によって作成されたタスク文書又は、信頼しているタスク文書については個別にユーザに確認することなく開くことができるようになる。この効果を高めるためには、タスク文書に署名がされていない場合に誤って使用することを防ぐ必要がある。そのため、タスク文書のダウンロード時に署名を検証して確認を行うことができる。また、署名がないまたは署名が誤っており検証できない場合に、警告して確認してから開く、エラーとして一切開けないようにする、のいずれにするかをセキュリティレベルとしてユーザが設定できるようにしてもよい。
【0369】
タスク文書の信頼性の確認は、タスク文書を開いて内容を表示することでできるが、プログラムの起動など危険性の高い動作を行う特に初めて確認を行うこともできる。この方法ではユーザは確認なしで文書を開いて危険性の低い方法での使用ができ、また設定内容を表示させて危険性の高い動作が設定されているかを確認することもできる。
(文書のセキュリティチェック)
【0370】
タスク文書内にアプリケーションの起動方法やスクリプトが格納されている場合、ユーザによる安全性の確認を確実に行うのは難しい場合がある。そのためこれらの内容についてタスク文書を取得した際や開くとき、実行する際に確認を行えると安全性を高めることができる。そのためタスク文書を開く際や実行する前に組込みのセキュリティ判定機能又はデバイス101上にインストールされている外部ツール又はネットワークで接続された外部サービス(ウィルス対策ソフト等)にファイル内容のチェックを実行させる。その結果として問題があった場合には問題のあったファイルを使用しないようにできる。
(外部のデバイスとの間で取込・送信・更新・同期可能なデータ)
【0371】
図16に例示されるように、ウェブアプリケーション1601、タスク文書サーバ1602、ファイルサーバ1603等の内容を他のデバイス101との間で共有できるようにすると、タスク文書に設定した内容を他のデバイス101でも使用でき利便性が高まる。タスク文書は通常のファイルを送信するような任意の方法で他デバイスに送信して使用することができるので、他デバイスとの接続方法や関係性により適した共有方法をユーザが選択できる。例えばネットワーク上の共有フォルダにタスク文書を置くことで、他のデバイス101からそのファイルを開くことができる。またメールによりファイルを転送して他のデバイス101で開くことができる。
【0372】
このような場合に、他のデバイス101(例えば図16のデバイス101(#2))でファイルを編集した場合にどのように処理するかが課題となる場合があるが、共有した後に他のデバイス101で共有したファイルに対して編集が行われた場合にどのように扱うのが望ましいかはタスク文書の利用目的によって異なる場合がある。
【0373】
そのような場合の処理方法の一つとして、ファイルの同期処理を行う方法がある。同期の手法としては様々なものがありうる。両者に存在する項目間の対応付けを行い、同一項目に対して内容又は更新日時の比較を行い、片方の更新内容が新しいと判定できれば他方の内容を上書きすることで更新できる。
(データを他のデバイスに送信し使用できるようにするデバイス)
【0374】
機能の実行を他のデバイス101上で行いたい場合がある。その場合に他のデバイス101上で中継プログラムが待機し、ネットワーク経由で機能実行を通信により依頼して実行することができる。実行するデバイス101の指定はネットワーク上でデバイス101を識別する方法により、例えばDNS(Domain Name System)名やIP(Internet Protocol)アドレスを使用できる。この実行時には、実行を依頼するユーザ又はデバイス101の認証が必要であり、更に通信内容の改ざんが行わないようにする又は改ざんが行われたことを検出できる必要がある。例えば通信文の内容を公開鍵暗号により暗号化することで改ざんの防止と依頼者の認証を行うことができる。実行するデバイス101上の設定でリモートからの実行を許可している場合には実行する。接続元のデバイス101の認証を行ってもよい。
【0375】
或るデバイスについて実行するデバイスが指定されている場合、又は実行時に特定のデバイスを指定した場合には、指定されたデバイスに実行内容の指定を送信する。受信したデバイスでは指定された内容を実行するが、実行する方法は自分のデバイスで実行する場合と同様である。実行が出力を行う場合にはその結果を返すことができる。
(差分情報)
【0376】
機能情報集合と別の機能情報集合との間の差分情報を生成することができる。生成方法としては、2つの機能情報集合を比較して差異を抽出する方法や、機能情報集合への変更操作が行われたことを記録して差分を生成する方法がある。2つの機能情報集合を比較する場合には、両者で同一である項目の対応関係を抽出し、同一でない項目に関しては同一性の類似度、配列の類似度を算出して同一でない項目の対応関係を抽出し、その結果から同一又は類似する対応項目がない項目は追加又は削除が行われた項目として抽出することができる。
【0377】
同一又は類似の比較のために機能情報323(図6参照)について個々の識別符号を付加し、識別符号の一致を利用して対応関係を作ることもできる。識別符号としては任意に採番した連番、デバイス101内又はデバイス101外の識別符号管理システムにより生成した識別符号、GUID、URIなどがある。識別符号により対応関係の識別可能性などの特性は異なるが用途に応じて何れかを使用しても、複数から選択して使用してもよい。識別符号を使用する場合でも、データの複製時や外部での編集などの結果により識別符号のユニーク性は確保できない場合がある。その場合には識別符号以外の機能情報323の類似性や位置関係の類似性を使用して算出した優先度に基づいて対応関係を定めることができる。
【0378】
差分情報は機能情報323集合の変更内容を確認するために使用できる。また機能情報集合に対して変更があるたび、又は保存する度、また定期的に差分情報の履歴を保存することで機能情報323集合の変更履歴を作成することができる。機能情報323集合の複製が存在する場合に、差分情報は変更が行われた内容を他の複製に適用するために使用することもできる。例えば他人が作成した機能情報323の複製を受け取って使用している場合、その内容に変更加えた後に差分情報を複製元に送信することで変更した内容を複製元にも適用できる。
【0379】
図17は、タスク文書を介して実現される機能連携の例を示す図である。ランチャー1701、1702、1703を介して、各種アプリを連携させることができる。
【符号の説明】
【0380】
101 デバイス
102 CPU
103 システムコントローラ
104 主メモリ
105、122 GPU
106 記録媒体
107 入出力ポート
108 通信ポート
109 通信モジュール
110 電源スイッチ
111 電源回路
121 ディスプレイ
123 キーボード
124 マウス
125 スイッチ入力装置
126 入力装置
127 外部記録媒体
128 マイク
129 カメラ
130 スピーカ
201 タスク文書アプリ
202 タスク文書ファイル
211 アプリ
212 プロセス
221 コントローラ
222 OS
223 メディアアプリ
224 ブラウザアプリ
225 ウィジェット
226 プラグイン
302 配置情報
303 アプリ情報
304 ユーザ設定
305 チーム設定
307 仮想デスクトップ
308 スクリーン
309 領域
313 タスク文書データベース
314 タスク文書サーバ
321 タスク文書データ
322 目的識別情報
323 機能情報
324 オプション情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17