異なるコンピューティングデバイス間でグラフィカルユーザインターフェース(GUI)ビュー、コンポーネント、使用法、及び制御を統一する(unifying)ための、システム、装置、デバイス、方法、及び/又はコンピュータプログラムプロダクトの実施形態、及び/又はこれらの組み合わせ及びサブコンビネーションが本明細書において提供される。
GUIビューの統一は、モバイルコンピューティングデバイス上に現れるGUIをデスクトップコンピューティングデバイス上に現れるGUIに対応するように構成することを参照し得る。以下の説明は、このタイプのコンピューティング環境を説明し得るが、説明される実施形態は、任意の構成のコンピューティングデバイスに拡張してもよい。
一実施形態において、統一システムは、GUIビューの統一をサポートすることができる。この統一は、デスクトップデバイス上のGUIに対応するモバイルデバイス上のGUIを生成することを参照し得る。しかしながら、統一は、他のコンピューティングデバイス構成に拡張してもよい。ユーザが、デスクトップデバイスに表示されたGUIを作成及び/又は操作したとき、中央システムが、モバイルデバイス上のGUI表示を制御して、該操作を同様に反映することができる。中央システムは、以下に説明されるように、統一システムであってもよい。
統一システムは、コンピューティングデバイスにより操作されるアプリケーションのコンテンツを制御するだけでなく、GUIオブジェクトを改変してデスクトップGUIに対応するモバイルGUIを生成することもできる。一実施形態において、統一システムは、順次的コンポーネントタグ付け処理を使用して、異なるGUIデータ部分にタグ付けすることができる。順次的タグ付け処理は、デスクトップGUI上に水平に配置され、及び/又は垂直及び水平位置の組み合わせで配置されたGUIコンポーネントが、モバイルGUIのために垂直順序へ再配置されることを可能にできる。この構成は、モバイルデバイスを使用するユーザが、対応するデスクトップビューを有する基礎をなすアプリケーションのコンテンツを見るために、より快適な閲覧体験を結果としてもたらし得る。デスクトップビューは、コンピュータ画面の使用に起因してより水平に構成されたレイアウトを含むことがあるが、モバイルビューは、同じコンポーネントを垂直に構成されたレイアウトで編成することができる。ユーザは、GUIコンポーネントをスクロールし、モバイルレイアウトを介してより直感的に同じアプリケーションと対話することができ得る。
このように、ユーザは、デスクトップGUI又はモバイルGUIのいずれかを使用して、同じアプリケーションにアクセスすることができる。統一システムは、アプリケーションにアクセスするデバイスに基づいて、特定のGUIをインスタンス化することができる。さらに、一方のデバイスにおけるGUIの操作は、他方のデバイスにおいて複製され得る。基礎をなすアプリケーションコンテンツ(データ及び/又はレコードなど)の変更のほかに、ユーザは、デスクトップGUI上の特定のGUIビューのGUIオブジェクトを編集することができる。例えば、ユーザは、デスクトップGUI上のタブのリストにタブを移動又は追加することができる。統一システムは、モバイルGUIにおいてこの修正(modification)を生成することができる。このように、ユーザがモバイルGUIを見るとき、統一システムは、修正を含むモバイルバージョンをインスタンス化することができる。この構成に基づいて、ユーザは、デスクトップGUIをパーソナライズすることができ、統一システムは、モバイルGUIを調整してパーソナライゼーション(personalization)を含めることができる。
統一システムは、管理者がアプリケーションへのアクセスを管理し、かつ/あるいはGUIビューを構成するための制御を含むこともできる。例えば、統一システムは、管理者(又は許可を有するユーザ)がGUIオブジェクトを操作するために使用できるアプリケーションビルダGUIを提供することができる。アプリケーションビルダは、互換性のあるデスクトップ及びモバイルビューを含むことができ、管理者がGUIコンポーネントを追加及び/又は削除することを可能にできる。例えば、管理者は、ドラッグアンドドロップジェスチャでコンポーネントのギャラリーを使用して、デスクトップ又はモバイルGUIにGUIコンポーネントを追加することができる。次いで、統一システムは、他方の対応するGUIのためにGUIコンポーネントを配置することができる。このように、管理者は、統一システムを使用して、異なるデバイスに適用され得る複数のGUIを迅速に生成することができる。
アプリケーションビルダは、管理者が各GUIコンポーネントの様々な態様を制御することも可能にできる。例えば、管理者は、GUIコンポーネント内のGUIオブジェクトを修正することができる。さらに、管理者は、デスクトップGUIとモバイルGUIとの間でGUIコンポーネントビューを区別することができる。例えば、管理者は、可視性フィルタを使用して、特定のGUIコンポーネントをデスクトップGUI上で可視だがモバイルアプリケーション上で不可視として識別することができる。このカスタマイズは、視覚化における所望の独立性を依然として維持しながら、デスクトップ及びモバイルGUIを依然として統一することができる。デスクトップ又はモバイルいずれかのGUIを使用することで、GUIにより見られている同じ基礎をなすアプリケーションの操作を依然として可能にできる。
デスクトップGUIをモバイルGUIに翻訳することに加えて、統一システムは、デスクトップGUIのモバイルバージョンのアクセシビリティを支援し得るモバイルGUI制御を提供することもできる。例えば、統一システムは、アプリケーション、ナビゲーションメニュー、及び/又はカーソル制御の間で切り替えるためのフレームワークを提供することができる。
モバイルアプリケーションでは、デスクトップアプリケーションと同様に、ユーザは、GUIと対話して異なるアプリケーション間で切り替えることができる。統一システムが、このコマンドを検出したとき、統一システムは、現在表示されているアプリケーションのGUIコンポーネントを、選択されたアプリケーションのGUIコンポーネントで置換することができる。一実施形態において、統一システムは、同じフレームワークが使用されることを維持でき、それにより、ユーザは、GUIオブジェクトの位置への馴染みやすさを維持できる。特定のコンテンツ、コマンド、及び/又はナビゲーションオプションが、選択されたアプリケーションに従って変わる可能性があるが、統一システムは、選択されたアプリケーション間で共通のフレームワークを維持することができる。このように、統一システムは、複数のアプリケーションへのユーザアクセスと、アプリケーション内の、及び異なるデバイスにわたるGUIビューのカスタマイズとをサポートすることができる。
アプリケーション内をナビゲートする(navigating)とき、アプリケーションは、異なるオブジェクト又はカテゴリを含むことがある。これらのオブジェクトは、デスクトップビュー内のタブであってもよく、かつ/あるいはGUIボタンにより表現されてもよい。これらのオブジェクトと対話することで、ユーザがアプリケーションの異なる要素にナビゲートすることを可能にできる。デスクトップを使用してこれらのオブジェクト内をナビゲートするとき、デスクトップGUIは、モバイルGUIに対して大量の利用可能なGUIスペースに起因してオブジェクトを表示することがある。しかしながら、この同じビューは、モバイルバージョンでは画面サイズ制限に起因して利用できない可能性がある。
画面サイズの差に応じて、統一システムは、対応するナビゲーションボタンを有するナビゲーションメニューを生成することができる。ナビゲーションメニューは、デスクトップGUIビュー内に見えるアプリケーションのオブジェクトに対応することができる。一実施形態において、これらのオブジェクトは、モバイルビュー上のスペースを節約するために隠されたままであってもよい。ナビゲーションボタンを使用し、ユーザは、対応するGUIオブジェクトにナビゲートすることができる。ナビゲーションボタンに対してメニュージェスチャ(例えば、長押し)を使用することで、ナビゲーションメニューを表示することができる。次いで、ユーザは、ナビゲーションメニューからオブジェクトを選択して、特定のオブジェクトにナビゲートすることができる。この選択は、ナビゲーションボタンを更新して、選択されたオブジェクトを反映してもよい。このように、ナビゲーションボタンは、最も最近選択されたオブジェクトを反映してもよく、それにより、ユーザは、選択されたオブジェクトに迅速に戻ることができる。
ナビゲーションボタン及びナビゲーションメニューを使用することで、ユーザがデスクトップGUIにおけるナビゲーションと同様の方法でモバイルGUIを使用してアプリケーション内をナビゲートすることを可能にできる。デスクトップGUIと同じオブジェクトを含むようにモバイルGUIをインスタンス化することにより、統一システムは、これらのビューを統一し、ユーザがいずれかのGUIで同じアクションを実行することを可能にできる。さらに、ユーザがデスクトップGUI上のオブジェクトをカスタマイズすることを可能にし、該カスタマイズをモバイルGUI上で再現することにより、ユーザは、所望の構成を保ち、アプリケーションを統一的にナビゲートすることができる。ユーザがオブジェクトをデスクトップGUIの第1の位置から第2の位置に移動する場合、統一システムは、ナビゲーションメニューを調整してオブジェクト位置の変更を反映することもできる。
デスクトップオブジェクトの変更に加えて、統一システムは、モバイルGUIのコンポーネント内をナビゲートするためのモバイルGUI上の制御を提供することもできる。例えば、モバイルGUIは、ジェスチャ制御のためのインターフェースを含んでもよい。ジェスチャ制御は、分割ナビゲーションを可能にできる。ユーザは、GUIの一部分を特定の方法で使用して、GUIの異なる部分を選択することができる。例えば、ユーザは、モバイルGUIの下半分に対してジェスチャ(例えば、長押し)を実行することができる。この下半分は、ユーザが片手でモバイルデバイスを保持している場合により快適な可能性があり、アクセシビリティを支援することもできる。ジェスチャを行った後、GUIは、GUIの別の部分(例えば、上半分)にカーソルを表示することができる。次いで、ユーザは、モバイルGUIの下半分に対してジェスチャを使用してカーソルを移動することができる。このように、ユーザは、GUIの第1の部分を使用してGUIの第2の部分を制御することができる。
これらの実施形態の実現を通じて、統一システムは、1つ以上のアプリケーションにアクセスするための様々なGUIを生成することができる。これらのアプリケーションは、例えば、クラウドコンピューティングプラットフォーム上に存在してもよい。一実施形態において、クラウドコンピューティングプラットフォームは、マルチテナントシステムであってもよい。次いで、ユーザは、異なるコンピューティングデバイスからこれらのGUIにアクセスし、カスタマイズし、かつ/あるいは操作することができ、一方、統一システムは、命令をコンピューティングデバイスに送信して、統一された外観を維持することができる。これらの命令は、コンピューティングデバイスに、GUIを特定の方法でレンダリングするように指示することができる。本開示が以下に説明するように、統一システムは、アプリケーションの集中管理とGUI生成とを提供して、デスクトップなどのコンピューティングデバイスとモバイルデバイスとの間の連続性を保つことができる。一方のデバイスで変更を行ったユーザは、統一システムの管理に基づいて、他方のデバイスで該変更を見ることを期待できる。このように、ユーザは、異なるプラットフォームにわたるアプリケーション及び異なるプラットフォームGUIにわたり保たれたパーソナライゼーションと、より効率的に対話することができる。
次に、例示的な実施形態のこれらの特徴が、対応する図面に関してより詳細に論じられる。
図1は、いくつかの実施形態による、コンピューティング環境100のブロック図を示す。コンピューティング環境100は、ユーザデバイスがプログラム及び/又はアプリケーションと通信及び対話することを可能にするコンピューティングネットワークを表すことができる。一実施形態において、コンピューティング環境100は、ユーザデバイスに対するクラウドコンピューティング動作を容易にすることができる。ユーザデバイスは、インターネットブラウザ及び/又はインストールされたプログラムを使用して、クラウドによりホストされたアプリケーション及び/又はデータにアクセスすることができる。
コンピューティング環境100は、統一システム110を含むことができる。統一システム110は、1つ以上のプロセッサ、メモリ、データベース、サーバ、ルータ、モデム、アンテナ、及び/又は、1つ以上のGUIを生成し、及び/又はモバイルデバイス140及び/又はデスクトップデバイス150からGUI対話(interaction)情報を受信するように構成され得るハードウェア若しくはソフトウェアを使用して実現されてもよい。統一システム110は、図18を参照して説明されるコンピュータシステム1800を使用して実現されてもよい。統一システム110は、例えば、クラウドコンピューティングプラットフォーム及び/又はソフトウェア・アズ・ア・サービスプラットフォームなどのコンピューティングネットワーク内に実現されてもよい。一実施形態において、統一システム110は、インターネットアプリケーション及び/又はレコードをホストするクラウドコンピューティングプラットフォームにGUIインスタンス化要素を提供することができる。いくつかの実施形態において、統一システム110はまた、インターネットアプリケーション及び/又はレコードの要素をホストすることもできる。いずれの構成においても、統一システム110は、複数のユーザ及び/又は複数のユーザの各々に対応する複数のユーザデバイスをサポートすることができる。
統一システム110は、モバイルデバイス140、デスクトップデバイス150、及び/又は管理者デバイス120と通信することができる。集合的に、これらのデバイスは、ユーザデバイスと呼ばれてもよい。ユーザデバイスは、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、電話、スマートフォン、及び/又は他のコンピューティングデバイスであってもよい。モバイルデバイス140は、タブレット、電話、及び/又はスマートフォンを参照してもよく、一方、デスクトップデバイス150は、デスクトップコンピュータ又はラップトップコンピュータを参照してもよい。しかしながら、これらのユーザデバイス構成は、これらの特定の実施形態に限定されない。
ユーザデバイスは、ローカルにインストールされたプログラム及び/又はインターネットブラウザを使用して、インターネットを介してアプリケーションにアクセスすることができる。ユーザデバイスがアプリケーションにアクセスすると、統一システム110は、媒介として動作し、GUIビューをインスタンス化して、ユーザがユーザデバイス上にGUIを表示し、GUIオブジェクトを操作することを可能にできる。次いで、ユーザデバイスは、処理のためにコマンドを統一システム110に送出して、ホストされたアプリケーションを制御することができる。一実施形態において、モバイルデバイス140、デスクトップデバイス150、及び/又は管理者デバイス120は、ネットワーク130を使用して統一システム110と通信することができる。
ネットワーク130は、有線又は無線の方法のいずれかで情報を送信することができるネットワークであってもよく、例えば、インターネット、ローカルエリアネットワーク、又はワイドエリアネットワークであってもよい。ネットワーク130は、例えば、ハイパーテキスト転送プロトコル(HTTP)、TCP/IPプロトコル、イーサネット(登録商標)、又は非同期転送モードなどのネットワークプロトコルを利用することができる。一実施形態において、ネットワーク130は、ユーザデバイスと統一システム110との間の通信を容易にする。統一システム110は、ユーザデバイス上に表示され得るGUIをインスタンス化することができる。インスタンス化は、GUIコマンドをユーザデバイスに送信及び/又は送出して、統一システム110により指定されたGUIをユーザデバイスに生成させることを含んでもよい。インスタンス化の処理は、コマンドを送信及び/又は送出して、ユーザデバイス上にローカルに記憶されたプログラムコード及び/又はデータを操作することを含んでもよい。GUIコマンドは、GUIコマンドで提供される命令に従って、ユーザデバイスにGUIを生成及び/又は表示させることができる。インスタンス化を通して、ユーザは、生成されたGUIを見て、ネットワーク130を介してコマンドを統一システム110に送出することができる。
統一システム110はまた、管理者デバイス120と通信することもできる。管理者デバイス120は、モバイルデバイス140及び/又はデスクトップデバイス150を使用するユーザによりアクセス可能なコンテンツ、アプリケーション、及び/又はGUI機能に対する管理者制御を与えるように構成されたユーザデバイスであってもよい。管理者デバイス120を使用し、管理者は、ユーザがアクセス可能なアプリケーション及び/又はレコードを構成することができる。管理者はまた、統一システム110に送出されるコマンドを介して複数のユーザを管理することもできる。管理者デバイス120は、統一システム110を実行しているクラウドコンピューティングプラットフォーム内に実現されてもよい。一実施形態において、管理者デバイス120は、ネットワーク130を介して統一システム110と通信することができる。
これらの対話に基づいて、統一システム110は、GUIをインスタンス化し、及び/又はGUI情報を維持して、ユーザデバイスにおけるGUIの生成を支援することができる。GUIをインスタンス化するために、統一システム110は、レイアウトシステム112、ユーザデータベース114、及び/又はコンテンツデータベース116を含むことができる。レイアウトシステム112は、1つ以上のプロセッサ、サーバ、ルータ、モデム、アンテナ、及び/又は、1つ以上のGUIを生成し、及び/又はモバイルデバイス140及び/又はデスクトップデバイス150からGUI対話情報を受信するように構成され得るハードウェア若しくはソフトウェアであってもよい。レイアウトシステム112は、ユーザデバイスから要求を受信することができ、プログラムされたルールに基づいてコマンドを形成して、要求されたGUIを生成することができる。
レイアウトシステム112は、モバイルデバイス140及び/又はデスクトップデバイス150から受信した要求データと関連して、ユーザデータベース114及び/又はコンテンツデータベース116に記憶された情報を利用して、GUIをインスタンス化することができる。ユーザデータベース114は、ユーザプリファレンスに関連する情報を含むメモリであってもよい。ユーザデータベース114はまた、管理者により割り当てられた特定のアプリケーション及び/又は許可についての管理者構成を含んでもよい。コンテンツデータベース116は、アプリケーションに関連するページ及び/又はレコードデータを含むことができる。一実施形態において、コンテンツデータベース116は、統一システム110内、及び/又はクラウドアプリケーションを実行するクラウドコンピューティングプラットフォーム内に配置されてもよい。コンテンツデータベース116は、ユーザがインスタンス化されたGUIを使用して操作し得る基礎をなすアプリケーションに関連づけられたレコード及び/又はデータを含んでもよい。
一実施形態において、統一システム110は、単一のメタデータ定義を使用して、アプリケーションのデータページを定義することができる。統一システム110は、モバイルデバイス140及びデスクトップデバイス150における実行のためにアプリケーションの2つの別個のデータバージョンを有するのでなく、アプリケーションページを表す単一のレコード又はページ定義をコンテンツデータベース116に記憶することができる。一実施形態において、この単一のページ定義は、特定のユーザのためのアプリケーション構成を表してもよく、ユーザがアプリケーションにモバイルデバイス140上でアクセスしているか又はデスクトップデバイス150上でアクセスしているかにかかわらず使用されてもよい。統一システム110が、ユーザデバイスからアクセス要求を受信したとき、レイアウトシステム112は、アクセスされているデバイスタイプを決定することができる。統一システム110は、アクセスがネイティブにインストールされたアプリケーションから来るのか又はインターネットブラウザから来るのかとは独立して、この決定を行うことができる。
例えば、レイアウトシステム112は、特定のアプリケーションに対するモバイルデバイス140からのアクセス要求を受信することができる。デバイスタイプに基づいて、レイアウトシステム112は、コンテンツデータベース116から単一のアプリケーションページ定義を取り出すことができる。単一のアプリケーションページ定義は、ユーザにより設定された特定のユーザGUIカスタマイズ又はパーソナライゼーションパラメータを含むことができる。このカスタマイズ及び/又はパーソナライゼーションメタデータは、ページ定義内に記憶されてもよい。要求に応答して、レイアウトシステム112は次いで、メタデータを利用してGUIをインスタンス化することができる。一実施形態において、レイアウトシステム112は、要求しているデバイスタイプに対応するメタデータの部分を使用することができる。一実施形態において、レイアウトシステム112は、記憶されたメタデータに基づいて変換コマンドを供給して、GUIをインスタンス化することができる。このように、モバイルデバイス140及び/又はデスクトップデバイス150のためのGUI生成は、アクセス要求のデバイスタイプに依存して、単一の記憶されたデータ定義をデータ定義の変換と共に使用して完了することができる。
GUIの実施形態を表す図を参照して以下にさらに説明されるように、統一システム110は、共通のページ定義を共有し得る、異なるデスクトップ及びモバイルGUIを生成することができる。この共通のページ定義にアクセスすることにより、統一システム110は、異なるデバイス上でGUIを生成し、GUIに対してなされた修正をあるデバイスから別のデバイスへ再現することができる。
一実施形態において、記憶されたデータ定義は、コンポーネント順番づけ(sequencing)を含むメタデータを含むことができる。コンポーネント順番づけは、デスクトップGUIとモバイルGUIの間で共有され得るGUIコンポーネントの位置配置を示すことができる。この処理を使用することで、GUIコンポーネントの配置を可能にできる。アプリケーションページを作成又は設計するとき、統一システム110は、順番づけ情報を自動的に生成し、順番づけ情報をページ定義に記憶することができる。このように、統一システム110が特定のデバイスから要求を受信したとき、統一システム110はページ定義にアクセスし、順番づけメタデータを使用して対応するGUIをインスタンス化することができる。この順番づけの一実施形態が、図4を参照してさらに説明される。
この順番づけの非限定的な例を簡単に例示するために、開発者又は管理者は、まず、いくつかのGUIコンポーネントを有するページを設計することができる。例えば、開発者は、デスクトップを使用して、図2Dに示された実施形態と同様のコンポーネントを有するページを設計することができる。次いで、統一システム110は、GUIのコンポーネントに順次的番号づけを割り当てることができる。GUIが水平位置を含む場合、統一システム110は、例えば、左から右の方法で番号を割り当ててもよい。この順次的番号づけを使用し、統一システム110は、デスクトップGUIからの要素を含むモバイルGUIを生成することができる。統一システム110は、順番番号づけに対応するGUIコンポーネントを垂直に順序づけることができる。このように、統一システム110は、特定のレコードを記憶して、デスクトップGUIに対応し、かつ同様のルックアンドフィールを維持するモバイルGUIをインスタンス化するための要素を効率的に呼び出すことができる。統一システム110は、水平に配置されたGUIコンポーネントを、モバイルデバイス140上でより快適な閲覧体験を生じ得る垂直様式に変換することができる。
同様に、ユーザがモバイルデバイス140を使用してコンポーネントを再順序づけする場合、統一システム110は、モバイルデバイス140から再順序づけコマンドを受信することができる。次いで、統一システム110は、記憶された定義を、更新された順次的順序づけで更新することができる。統一システム110は、割り当て値のセットを再割り当てすることができる。統一システム110がデスクトップデバイス150から要求を受信したとき、統一システム110は、デスクトップGUIをインスタンス化する際に、更新又は再割り当てされた順序づけを使用することができる。このように、統一システム110は、異なるデバイス及び異なるデバイスタイプ間でGUIビューを統一することができる。一実施形態において、統一システム110はまた、ビュー間の差を保つこともできる。例えば、統一システム110は、デスクトップビューのための異なる順序づけを記憶しながら、モバイルビューのための特定の順序づけを記憶してもよい。管理者又はユーザは、統一システム110に送出されるコマンドを使用して、この差を指定することができる。
統一システム110は、異なるデバイスにわたるユーザ使用のためにGUIをインスタンス化することに加えて、管理者制御を提供することもできる。管理者デバイス120は、ユーザに対するアプリケーション許可及び/又は対応するGUI許可を指定することができる。統一システム110は、この情報をコンテンツデータベース116に、及びページに対応する定義に記憶して、許可に依存してユーザアクセスをブロックし、かつ/あるいは許可することができる。
図5〜図8に関して以下にさらに説明されるように、統一システム110はまた、アプリケーションビルダをインスタンス化することもできる。アプリケーションビルダは、ユーザ及び/又は管理者がアプリケーションの特定のGUI及び/又はページビューを開発することを可能にできる。これらのGUI及び/又はページビューは、ユーザにも編集可能であり得るデフォルトビューであってもよい。アプリケーションビルダは、互換性のあるデスクトップ及びモバイルビューを含むことができ、管理者がGUIコンポーネントを追加及び/又は削除することを可能にできる。例えば、管理者は、ドラッグアンドドロップジェスチャでコンポーネントのギャラリーを使用して、デスクトップ又はモバイルGUIにGUIコンポーネントを追加することができる。次いで、統一システム110は、他方の対応するGUIのためにGUIコンポーネントを配置することができる。このように、管理者は、統一システム110を使用して、異なるデバイスに適用され得る複数のGUIを迅速に生成することができる。
図9〜図13に関して以下にさらに説明されるように、統一システム110はまた、ナビゲーションボタン及び/又はナビゲーションメニューを含むモバイルGUIをインスタンス化することもできる。ナビゲーションメニューは、デスクトップオブジェクトに対応するオブジェクトを含むことができる。モバイルデバイス140は、ナビゲーションボタン及び/又はナビゲーションメニューを表示することができ、ユーザがGUIオブジェクトを使用してアプリケーションの異なる部分に迅速にナビゲートすることを可能にできる。また、ユーザは、GUIオブジェクトの配置を修正することもできる。統一システム110は、デスクトップGUIオブジェクトの配置の変更に応答してモバイルGUIオブジェクトの配置を修正することができる。
図14A〜図15に関して以下にさらに説明されるように、統一システム110はまた、GUI表示上にカーソルを生成することもできる。このカーソルは、ユーザがGUIの一部分を、該部分と直接対話することなく操作することを可能にできる。例えば、GUIがモバイルデバイス140上に表示される場合、ユーザは、GUIの下半分を押して、上部分にカーソルを出現させることができる。このように、統一システム110は、アクセシビリティ要素を含み、ユーザがGUIの下部分を制御しながらGUIの上部分にアクセスすることを可能にするモバイルGUIをインスタンス化することができる。
図16A〜図17に関して以下にさらに説明されるように、統一システム110はまた、異なるアプリケーション間の切り替えと、選択されたアプリケーションに依存した更新GUIの提供とを容易にすることができる。このように、統一システム110は、モバイルデバイス140及びデスクトップデバイス150上でインスタンス化されたGUIの統一を維持しながら、異なるアプリケーション及びアプリケーションタイプを実現するためのフレームワークを提供することができる。統一システムはまた、異なる関係者により開発された異なるアプリケーションをロードし、各アプリケーションに対して一貫したレイアウトを維持することもできる。
次に、統一システム110によりインスタンス化されたGUI表示と、対応する処理を示す対応するフローチャートとに関して、統一システム110の動作を説明する。
[デスクトップGUI及びモバイルGUIの順次的配置]
図2Aは、いくつかの実施形態による、アプリケーション選択ページを表示するグラフィカルユーザインターフェース(GUI)200Aのブロック図を示す。GUI200Aは、統一システム110によりインスタンス化されてもよい。一実施形態において、統一システム110は、デスクトップデバイス150上に表示されるGUI200Aをインスタンス化することができる。統一システム110は、デスクトップデバイス150からの要求の受信に応答して、GUI200Aをインスタンス化することができる。要求は、例えば、ログインクレデンシャル又はセッショントークンなどのユーザ情報を含んでもよい。要求はまた、要求を開始したデバイスタイプ、及び/又は要求がローカルにインストールされたアプリケーションからなされたか又はインターネットブラウザからなされたかを示すデータを含んでもよい。要求を使用し、統一システム110は、GUI200Aをインスタンス化し、かつ/あるいはコマンドをデスクトップデバイス150に送出してGUI200Aを表示することができる。要求及び/又はコマンドは、統一システム110及びデスクトップデバイス150により使用されるAPIを介して交換されてもよい。
一実施形態において、統一システム110は、ログオン又はパワーオン要求に応答して表示されるGUI200Aをインスタンス化することができる。GUI200Aは、ユーザがアプリケーションを選択することを可能にするクラウドコンピューティングプラットフォームのホームページであってもよい。クラウドコンピューティングプラットフォームにより、異なるアプリケーションがサポートされてもよい。これらのアプリケーションは、クラウドコンピューティングプラットフォームに予めプログラムされてもよく、クラウドコンピューティングプラットフォームを使用して管理者により作成されてもよく、かつ/あるいはアプリケーション取引所又はマーケットプレイスから取り出されてもよい。これらのアプリケーションは、図16A〜図17を参照してさらに説明される。
GUI200Aは、ユーザがアプリケーションを選択することを可能にするアプリケーションボタン215を表示することができる。表示のアプリケーションボタン215は、ユーザアカウント情報に従って許可されるアプリケーションに対応してもよい。例えば、管理者は、ユーザがアクセス可能な特定のアプリケーションを選定することができる。このユーザ許可情報は、ユーザデータベース114に記憶されてもよい。統一システム110がユーザデバイスから要求を受信したとき、レイアウトシステム112は、この許可情報を調べて、ユーザに利用可能なアプリケーションと、どのアプリケーションボタン215をGUI200Aに表示するかとを決定することができる。また、許可情報は、ユーザに利用可能な特定のGUIコンポーネントを示してもよい。統一システム110は、管理者及び/又はユーザにより選択されたアプリケーションを表示することができる。
ユーザは、アプリケーションボタン215を選択するジェスチャを行うことができる。例えば、GUI200Aがデスクトップモニタ又は表示画面に表示される場合、ユーザは、カーソルをハードウェア入力周辺装置と共に使用して、選択を行うことができる。表示画面がタッチスクリーン機能を含む場合、ユーザは、画面にタッチすることにより特定のアプリケーションボタン215を選択することができる。デスクトップデバイス150は、選択をローカルに処理して続きのアクション又はGUI画面を決定し、かつ/あるいはこの選択を統一システム110に送出することができる。
GUI200Aはまた、検索バー210を含んでもよい。検索バー210は、ユーザが特定のアプリケーションを検索することを可能にできる。一実施形態において、検索バー210はまた、ユーザが特定のアプリケーション内のアイテムを検索することを可能にしてもよい。アプリケーションボタン215及び/又は検索バー210を使用し、ユーザは、アプリケーションを選択し、選択されたアプリケーションの要素を探索することができる。
図2Bは、いくつかの実施形態による、アプリケーションホームページを表示するGUI200Bのブロック図を示す。デスクトップデバイス150は、アプリケーションボタン215の選択に応答してGUI200Bを表示することができる。デスクトップデバイス150は、ローカルに記憶されたルール又はコマンドに基づいてGUI200Bを生成することができる。一実施形態において、統一システム110は、デスクトップデバイス150から選択データを受信した後、GUI200Bをインスタンス化してもよい。
GUI200Bは、アプリケーションホームページを表示することができる。アプリケーションホームページは、ユーザが選択されたアプリケーションと対話することを可能にできる。アプリケーションホームページは、異なるコマンド及び/又はデータを含み得る1つ以上のGUIコンポーネントを含むことができる。例えば、GUI200Bは、検索バー210、オブジェクト220、及び/又はアプリケーションコンポーネント230を含んでもよい。
GUI200Bからの検索バー210は、GUI200A上に表示される検索バー210と同様及び/又は同じであってもよい。ユーザは、検索バー210を使用して、アプリケーション間をナビゲートし、かつ/あるいは選択されたアプリケーション内のアイテムを取り出すことができる。ユーザがアプリケーションの異なるページビュー及び/又はコンポーネント内をナビゲートするとき、検索バー210は表示画面上に存続してもよく、それにより、ユーザはアプリケーション全体を通してナビゲートできる。
検索バー210に加えて、GUI200Bは、オブジェクト220を含むことができる。オブジェクト220は、アプリケーションの異なるページビューを表すことができる。オブジェクト220はまた、ユーザがオブジェクト220と対話し、かつ/あるいはアプリケーション内をナビゲートするとき、表示画面上で存続することもできる。一実施形態において、オブジェクト220は、GUI200B上のタブとして表されてもよいが、他のGUIボタンにより表されてもよい。オブジェクト220はまた、折りたたまれ又はグループ化されたオプションを含んでもよい。グループ化されたオブジェクト220は、隠されたボタンを見るために拡張されてもよい。図12A〜図12Fを参照して以下にさらに説明されるように、オブジェクト220は、ユーザにより編集及び/又はカスタマイズされてもよい。
オブジェクト220と対話することで、アプリケーションの異なるページビューにアクセスすることができる。オブジェクト220は、アプリケーションにより提供される機能性に依存してもよい。アプリケーションは、異なるデータレコード部分及び/又は実行可能プログラムコードを含むことができる。オブジェクト220を選択することで、これらのデータレコード及び/又は実行可能プログラムコードをユーザ対話及び/又は操作のために表示することができる。また、GUI200Bは、これらのデータレコード及び/又は実行可能プログラムコードをアプリケーションコンポーネント230として含んでもよい。
アプリケーションコンポーネント230は、データレコード及び/又は実行可能プログラムコードを表示するGUI200Bの異なる部分を含むことができる。GUI200Bは、これらのアプリケーションコンポーネントを表示することができ、かつ/あるいは、ユーザがアプリケーションコンポーネント230と対話して、基礎をなすアプリケーションと対話することを可能にできる。一実施形態において、アプリケーションはデータ管理アプリケーションであってもよく、投稿コンポーネント230Aを含んでもよい。投稿コンポーネント230Aは、ユーザがテキスト及び/又はファイルをアプリケーションにサブミットすることを可能にできる。GUI200Bはまた、ユーザがレコードを見る、レコードを更新又は修正する、文書、スプレッドシート、又はプレゼンテーションなどのファイルを生成する、承認コマンドを送出する、かつ/あるいはクラウドコンピューティングプラットフォームにより管理される外部プログラム又は他のプログラムに接続することを可能にする他のコンポーネントを含んでもよい。GUI200Bを見ているとき、ユーザは、利用可能なアプリケーションコンポーネント230と対話し、かつ/あるいはオブジェクト220を使用してアプリケーションの他の要素にナビゲートすることができる。例えば、ユーザは、カーソルコマンド又はジェスチャを使用することにより、オブジェクト220Cを選択することができる。このコマンドの受信に応答して、デスクトップデバイス150及び/又は統一システム110は、図2Cに示すように、GUI200Cをインスタンス化することができる。
図2Cは、いくつかの実施形態による、オブジェクトホームページを表示するGUI200Cのブロック図を示す。GUI200Cは、オブジェクト220及び/又は検索バー210を含んでもよく、これらは、オブジェクト220の選択の後にも存続してもよい。オブジェクトホームページは、選択されたオブジェクト220に対応することができる。一実施形態において、オブジェクトホームページは、グループ化され及び/又は折りたたまれたオブジェクト240を表示することができる。オブジェクトホームページは、例えば、ユーザがグループ化され及び/又は折りたたまれたオブジェクト240間をナビゲートすることを可能にする媒介アプリケーションページであってもよい。ユーザが、GUI200Cに示されるようにグループ化され及び/又は折りたたまれたオブジェクト240のうちの1つを選択した場合、ユーザは、GUI200D及び図2Dに示されるように、レコードページにアクセスすることができる。
一実施形態において、ユーザは、GUI200B及び/又はGUI200Cからレコードページにアクセスすることができる。例えば、ユーザが、グループ化されていないオブジェクト220をGUI200Bから選択した場合、統一システム110は、GUI200Dをインスタンス化して、選択されたオブジェクトに対応するレコードページを表示することができる。対照的に、ユーザが、オブジェクト220Cなどの複数のオブジェクト選択肢を有するオブジェクト220を選択した場合、統一システム110は、GUI200Cに示されるオブジェクトホームページを生成することができる。オブジェクトホームページは、グループ化され及び/又は折りたたまれたオブジェクト240を含むことができる。ユーザは、グループ化され及び/又は折りたたまれたオブジェクト240を選択して、対応するレコードページにアクセスすることができる。
さらに、グループ化され及び/又は折りたたまれたオブジェクト240は、GUI200Bからアクセスされてもよい。例えば、GUI200Bからオブジェクト220Cにアクセスするとき、GUI200Bは、グループ化され及び/又は折りたたまれたオブジェクト240を含むメニューを表示することができる。次いで、ユーザは、このメニューからグループ化され及び/又は折りたたまれたオブジェクト240を選択して、レコードページにアクセスすることができる。
図2Dは、いくつかの実施形態による、レコードページを表示するGUI200Dのブロック図を示す。レコードページは、アプリケーションコンポーネント230と同様のコンポーネントを有する特定のアプリケーションページであってもよい。例えば、レコードページは、「アカウント(Accounts)」オブジェクト下の「アカウント(Account)」のインスタンスを指定する「食料雑貨会社(The Grocery Company)」などの特定のアカウントであってもよい。GUI200D内のコンポーネントは、データレコード及び/又は実行可能プログラムコードを含んでもよい。例えば、ヘッダコンポーネント250は、データレコード情報、及び/又はユーザがヘッダコンポーネント250と対話することを可能にするGUIボタンを含むことができる。同様に、情報コンポーネント260は、レコードデータを含んでもよく、かつ/あるいはユーザがデータレコードを見る、及び/又は該データレコード内をナビゲートすることを可能にできる。情報コンポーネント260は、タブコンポーネント262などのコンポーネントを含んでもよい。タブコンポーネント262は、ユーザが異なるタブコンポーネント262によりグループ化された異なるデータレコード内をナビゲートすることを可能にできる。
レコードページはまた、メッセージングコンポーネント270を含んでもよい。メッセージングコンポーネント270は、通信にリンクされたデータレコードを取り出すことができる。例えば、管理者デバイス120は、特定のレコードページ、ユーザ、及び/又は組織に関連するニュース及び/又は他の通信を供給することができる。
レコードページはまた、プログラムコンポーネント280を含んでもよい。プログラムコンポーネント270は、1つ以上のプログラムタブ282を含むことができる。プログラムタブ282は、実行可能プログラムコードの異なる部分の選択を可能にできる。例えば、プログラムタブ282Aは、アクティビティモニタを含んでもよい。アクティビティモニタは、ユーザのタスク及び/又は特定のレコードページに関連するタスクを追跡することができる。
プログラムコンポーネント280はまた、ユーザが情報を投稿することを可能にするプログラムタブ282Bを含んでもよい。例えば、ユーザは、レコードページに関連する情報を投稿することができる。統一システム110は、デスクトップデバイス150から受信したデータを受け入れることができ、投稿データをレコードページと相関させることができる。一実施形態において、統一システム110は、この情報を、アプリケーションを実行してアプリケーションデータを処理するクラウドコンピューティングプログラムに渡すことができる。
プログラムコンポーネント280はまた、ユーザがファイルを作成することを可能にするプログラムタブ282Cを含んでもよい。ファイルは、クラウドコンピューティングプラットフォームに記憶されてもよく、かつ/あるいはファイルを作成するためのプログラムコードを実行してもよい。ファイルは、例えば、ワード処理ファイル、スプレッドシートファイル、プレゼンテーション、画像、オーディオファイル、ビデオファイル、及び/又は他のデータファイルであってもよい。GUI200Dを使用してファイルを作成することで、ユーザがファイルを表示されたレコードページに相関させることを可能にできる。統一システム110は、基礎をなすアプリケーションとのこの相関を容易にすることができる。このように、ユーザは、プログラムコンポーネント280及び/又はGUI200Dを利用して、アプリケーションのレコードページと対話することができる。
一実施形態において、図2A〜図2Dは、デスクトップデバイス150上に表示されるGUI例に対応し得る。統一システム110は、これらのGUI例をインスタンス化することができ、ユーザがアプリケーションにアクセスすることを可能にできる。統一システム110はまた、モバイルデバイス140上の対応するGUIをインスタンス化することもできる。これらのモバイルGUIは、図3A〜図3Dに関して以下に論じられる実施形態で説明される。
図3Aは、いくつかの実施形態による、モバイルアプリケーションメニューページを表示するGUI300Aのブロック図を示す。GUI300Aは、統一システム110によりインスタンス化することができる。一実施形態において、統一システム110は、モバイルデバイス140上に表示されるべきGUI300Aをインスタンス化することができる。統一システム110は、モバイルデバイス140からの要求の受信に応答して、GUI300Aをインスタンス化することができる。要求は、例えば、ログインクレデンシャル又はセッショントークンなどのユーザ情報を含むことができる。要求はまた、要求を開始したデバイスタイプ、及び/又は要求がローカルにインストールされたアプリケーションからなされたか又はインターネットブラウザからなされたかを示すデータを含むこともできる。要求を使用し、統一システム110は、GUI300Aをインスタンス化し、かつ/あるいはモバイルデバイス140にコマンドを送出してGUI300Aを表示することができる。要求及び/又はコマンドは、統一システム110及びモバイルデバイス140により使用されるAPIを介して交換されてもよい。
GUI300Aは、モバイルアプリケーションメニューページを示すことができる。モバイルアプリケーションメニューページは、図2Bに示されるGUI200Bに対応し得る。GUI300Aは、モバイルデバイス140上に表示される選択されたアプリケーションを表すことができる。GUI300Aは、別のアプリケーションを選択するためのアプリケーションメニューボタン315を含むことができる。アプリケーションメニューボタン315を選択することで、図16Bに示すように、モバイルデバイス140にGUI1600B及びモバイルアプリケーション選択ページ1605を表示させることができる。
GUI300Aはまた、オブジェクト320を含むこともできる。オブジェクト320は、デスクトップGUIからのオブジェクト220に対応し得る。オブジェクト320を選択することで、ユーザがアプリケーションの異なるページ内をナビゲートすることを可能にできる。これらのオブジェクトにアクセスすることで、統一システム110及び/又はクラウドコンピューティングプラットフォームにより管理されるページの単一の定義にアクセスすることができる。オブジェクト220へのアクセスと同様に、ユーザがオブジェクト320を選択したとき、モバイルデバイス140は、選択されたオブジェクト320がグループ化されたオブジェクトを含むかどうかに依存して、GUI300B又はGUI300Cを表示することができる。
例えば、選択されたオブジェクト320がグループ化されたオブジェクトを含む場合、統一システム110は、GUI300Bをインスタンス化することができる。図3Bは、いくつかの実施形態による、モバイルオブジェクトホームページを表示するGUI300Bのブロック図を示す。GUI300Bから、ユーザは、グループ化され及び/又は折りたたまれたオブジェクト340を選択して、レコードページにアクセスすることができる。このように、GUI300Bは、デスクトップ閲覧のためのGUI200Cと同様であってもよい。
モバイルデバイス140がGUI300Aを表示しており、ユーザがグループ化され又は折りたたまれたオブジェクトを含まないオブジェクト320を選択した場合、統一システム110は、GUI300Cを直接インスタンス化して、オブジェクト320に対応するレコードページを表示することができる。このように、オブジェクト320及び/又はグループ化され及び/又は折りたたまれたオブジェクト340との対話は、ユーザがGUI300Cに表示されるレコードページに到達することを可能にできる。
オブジェクトナビゲーションに加えて、GUI300Aは、モバイルデバイス140上に表示されるGUIを通したナビゲーションを可能にする様々なモバイルボタン310〜318を含むことができる。モバイルボタン310〜318は、ユーザがモバイルデバイス140に表示されるアプリケーションの異なるページにナビゲートするとき、存続することができ、現れることができる。モバイルボタン310〜318は、ナビゲーションボタン310、お気に入り(favorites)ボタン312、検索(search)ボタン314、通知(notifications)ボタン316、及び/又はメニュー(menu)ボタン318を含んでもよい。ナビゲーションボタン310は、アプリケーションの異なるオブジェクトへの迅速なナビゲーションを可能にでき、1つ以上のオブジェクト320を含むナビゲーションメニューを見せることができる。ナビゲーションボタン310は、図9〜図13を参照してさらに詳細に説明される。
お気に入りボタン312は、お気に入りとしてマークづけされたレコードページ及び/又はオブジェクト320を示すことができる。お気に入りボタン312を選択することで、マークづけされたお気に入りを表示するGUIを生成することができる。
検索ボタン314は、基礎をなすアプリケーションに関連するオブジェクト及び/又はレコードの検索を可能にできる。検索ボタン314を選択することで、ユーザが検索語を入力することを可能にできるインターフェースを含む検索GUIを見せることができる。検索ボタン314はまた、図14A〜図15を参照してさらに説明されるように、カーソル制御を生成するために使用されてもよい。
通知ボタン316は、ユーザがユーザに関連する更新を見ることを可能にできる。例えば、ユーザが投稿で言及されている場合、又はユーザに結び付けられたレコードに対して警告が生成された場合、ユーザは、通知ボタン316を使用して更新を見ることができる。
メニューボタン318は、ユーザがGUI300Aを表示することを可能にできる。例えば、ユーザが、異なるオブジェクト及び/又はデータレコードをナビゲートし、及び/又はこれらと対話するとき、ユーザは、GUI300Aに戻ることを望む可能性がある。例えば、ユーザは、アプリケーションメニューボタン315を使用して、異なるオブジェクト320及び/又は異なるアプリケーションを選択することを望む可能性がある。メニューボタン318を選択することで、GUI300Aを見せることができ、ユーザが所望の動作を遂行することを可能にできる。
ユーザが、オブジェクト320及び/又はグループ化され及び/又は折りたたまれたオブジェクト340を選択した後、統一システム110は、モバイルレコードページをインスタンス化することができる。図3Cは、いくつかの実施形態による、モバイルレコードページを表示するGUI300Cのブロック図を示す。図3Dは、いくつかの実施形態による、スクロールされたモバイルレコードページを表示するGUI300Dのブロック図を示す。モバイルレコードページは、GUI200D及び図2Dに説明されるレコードページに対応し得る。統一システム110は、このレコードページのための定義を記憶することができ、レコードページにアクセスするデバイスタイプに依存してGUI200D又はGUI300C〜300Dをインスタンス化することができる。
また、GUI300C〜300Dが、デスクトップデバイス150に示されるGUI200Dと同じレコードページを示すこともできるため、GUI300C〜300Dは、同じコンポーネントを示すこともできる。例えば、GUI300C〜300Dは、ヘッダコンポーネント250に対応するヘッダコンポーネント350と、情報コンポーネント260に対応する情報コンポーネント360と、メッセージングコンポーネント270に対応するメッセージングコンポーネント370と、プログラムコンポーネント280に対応するプログラムコンポーネント380とを含むことができる。
これらのモバイルコンポーネントは、デスクトップコンポーネントと同様の機能を含むことができる。例えば、情報コンポーネント360は、タブコンポーネント262と同様のタブコンポーネント362を含んでもよい。タブコンポーネント364を選択することで、ユーザが関連情報を見る、及び/又は異なるデータレコードへ「ドリルダウンする」ことを可能にできる。このGUI構成は、馴染みやすいタブを有するGUIのデスクトップバージョンと同様のルックアンドフィールを可能にできるが、より多くの情報が表示及び/又はアクセス可能であるようにモバイルバージョンにおける表示画面スペースを保つこともできる。
同様に、GUI300Dに表示されるように、プログラムコンポーネント380は、プログラムタブ282と同様であり得るプログラムタブ382を含むことができる。ユーザは、スクロールジェスチャを使用して、モバイルレコードページを移動させ、プログラムコンポーネント380を見ることができる。プログラムタブ282と同様に、ユーザは、プログラムタブ382と対話して、アプリケーションに対応する特定のプログラムコードを実行することができる。
ページのデスクトップGUIバージョンとモバイルGUIバージョンとの間のコンポーネントは同様であってもよく、かつ/あるいは同様のコンポーネントを含んでもよいが、コンポーネントの順番づけ及び/又は配置は異なってもよい。統一システム110は、この順番づけを制御することができ、それにより、モバイルGUIバージョンは、デスクトップバージョンと同様のルックアンドフィールを維持するが、より小さい画面サイズに基づいて効率的なアクセシビリティを依然として維持することができる。
これらのコンポーネントを管理するために、統一システム110は、順次的割り当て処理を使用してコンポーネントを特徴づけることができる。この順次的割り当て処理の一実施形態は、図4を参照してさらに説明される。
順次的割り当て処理は、デスクトップGUIを解析してレコードページの特定のGUIコンポーネントを識別することを含むことができる。次いで、統一システム110は、GUIコンポーネントがGUI上の異なる位置にある場合でも、各GUIコンポーネントに値を順次的に(sequentially)割り当てることができる。例えば、GUIコンポーネントは、異なる行及び/又は列に位置してもよく、かつ/あるいは相対的な水平配置を含んでもよい。しかしながら、これらの水平位置は、レコードページがモバイルデバイス140上に表示されるとき、垂直の画面構造に起因して望ましくない場合がある。この場合、統一システム110は、モバイルデバイス140上でレコードページを見る要求の受信に応答して、順次的に割り当てられた値を利用して、モバイルデバイス140のための垂直編成をインスタンス化することができる。垂直画面構造は、ユーザが水平にスクロールする必要なく、レコードページを垂直にスクロールすることを可能にできる。この構造は、ユーザアクセシビリティを支援し、ユーザがレコードの異なる部分へより迅速にナビゲートすることを可能にできる。ユーザが、1次元の垂直スクロール移動に焦点を合わせることができるため、ユーザは、所望のGUIオブジェクトの位置を特定しようとして第2の次元においてスクロールすることを回避できる。
さらに、GUI300C〜300Dは、アクションボタン390を含むことができる。ユーザがレコードページをスクロールし、かつ/あるいはナビゲートする間、アクションボタン390は存続することができ、ユーザが表示されたレコードページに関連するアクションを実行することを可能にできる。例えば、編集(edit)ボタン390Aは、ユーザがレコードページ内のデータを編集することを可能にできる。投稿(Post)ボタン390Bは、ユーザがレコードページにコメントを投稿することを可能にできる。コメントは、ユーザメッセージ又はメモであってもよく、レコードページに対応するデータと異なってもよい。例えば、データは組織名であってもよく、一方、コメントはレコードページにアクセスすることができる別のユーザへのユーザメッセージであってもよい。同様に、ログ(log)ボタン390Cは、電話呼び出しなどの情報をロギングすることに向けられた特別なタイプの投稿を含むことができる。一実施形態において、ログボタン390Cは、情報を追跡するための特別なデータレコードを作成することができる。
アクションボタン390はまた、レコードページ及び/又はアプリケーションに依存して他のアクションを含むこともできる。表示されるアクションボタン390はまた、図3Cに表示されるアクションボタン390の数より多い及び/又は少ない数を含んでもよい。拡張ボタン390Dは、他の可能なアクションをさらに見せることができる。例えば、他の可能なアクションは、ファイルを生成又は付加すること、リンクを生成すること、新しいユーザグループを生成すること、新しいメモを追加すること、投票を生成すること、質問を投稿すること、感謝のメモを追加すること、ビデオを付加すること、電子メールを送出すること、及び/又は他のアクションを含んでもよい。
アクションを選択するために、ユーザは、アクションをクリックし、かつ/あるいは押すことができる。一実施形態において、ユーザは、検索ボタン314と共にスクラブジェスチャを使用することができる。また、検索ボタン314は、図14A〜図15を参照してさらに説明されるように、カーソル制御を生成するために使用されてもよい。ユーザは、長押しを使用してカーソルでスクロールすることができる。カーソルがアクションボタン390を選択したとき、長押しを解放することで、カーソルにより選択された特定のアクションボタン390の選択を指定することができる。
GUI300C〜300Dを使用し、ユーザは、モバイルデバイス140を使用してレコードページをナビゲートすることができる。以下にさらに説明されるように、デスクトップデバイス150上のユーザにより作成されたパーソナライゼーション構成が、モバイルGUIバージョンにさらに現れることができる。統一システム110は、これらの構成を記憶し、要求に応答してこれらを取り出すことができる。統一システム110は、モバイルGUIを生成するときにパーソナライゼーション選択を適用することができる。これらの選択に加えて、統一システム110は、順次的コンポーネント割り当て処理を利用してモバイルを生成することができる。
図4は、いくつかの実施形態による、第1のGUIに対応する第2のGUIを順次的に生成する方法400を示すフローチャートを示す。方法400は、図1を参照して説明される。しかしながら、方法400は、その例示的な実施形態に限定されない。
一実施形態において、統一システム110は、方法400を利用して、第1のGUIに対応する第2のGUIを生成することができる。前述の説明は、GUI200D及びGUI300C〜300Dに関して方法400の実行の一実施形態を説明するが、任意のマッピングGUIに適用可能でもよい。方法400は、統一システム110を参照して説明されるが、方法400は、例えば、図18を参照して説明されるコンピュータシステム、及び/又はハードウェア(例えば、回路、専用論理、プログラマブル論理、マイクロコード等)、ソフトウェア(例えば、処理デバイス上で実行する命令)、又はこれらの組み合わせを含み得る処理論理などの、任意のコンピューティングデバイス上で実行されてもよい。
本明細書に提供される開示を実行するために全てのステップが必要とされ得るわけではないことを十分理解されたい。さらに、当業者により理解されるように、ステップのいくつかが同時に、又は図4に示されているものと異なる順序で実行されてもよい。
一実施形態において、410において、統一システム110が、第1のデバイスに対応する第1のグラフィカルユーザインターフェース(GUI)をインスタンス化することができ、第1のGUIは、アプリケーションの複数のGUIコンポーネントを含む。統一システム110は、デスクトップデバイス150上の第1のGUIをインスタンス化することができる。例えば、ユーザ、管理者が、アプリケーションに対応する第1のGUIを構築することができる。アプリケーションは、クラウドコンピューティングプログラム及び/又はネットワーク化されたコンピューティングシステムによりホストされてもよい。管理者及び/又はユーザは、アプリケーションに対応する1つ以上のGUIビューを開発することができる。第1のGUIは、例えば、レコードページに対応してもよい。一実施形態において、管理者及び/又はユーザは、アプリケーションビルダを使用してレコードページを生成することができる。アプリケーションビルダの一実施形態が、図5〜図8を参照して説明される。
レコードページは、第1のGUIを使用して表示されてもよい。第1のGUIは、デスクトップデバイス150上に表示されるレコードページを表すことができる。第1のGUIは、アプリケーションに対する異なるアクセス部分を表す複数のGUIコンポーネントを含んでもよい。GUIコンポーネントの一例示的な実施形態は、図2D及びGUI200Dを参照して説明されている。管理者及び/又はユーザは、コンポーネントを第1のGUIの所望の位置に置くことができる。これらの位置は、行及び/又は列内であってもよく、かつ/あるいは任意であってもよい。410において、ユーザ又は管理者は、コンポーネントの位置を修正することができ、統一システム110は、修正された位置を追跡することができる。統一システム110は、第1のGUIの作成及び/又は修正が完了したことを、例えば、経過時間を使用して、及び/又は第1のGUIを保存するコマンドの受信から気づくことができる。一実施形態において、統一システム110は、ユーザからの直接的なコマンドなしに、第1のGUIの構成を連続的及び/又は監視の方法で保存することができる。410において、インスタンス化は、第1のGUIを表示するようデスクトップデバイス150に指示することを含んでもよく、かつ/あるいは第1のGUIの構成を保存することを含んでもよい。
420において、統一システム110が、第1のGUIの複数のGUIコンポーネントの各GUIコンポーネントに値を順次的に割り当てて、割り当て値のセットを生成することができる。図2D及びGUI200Dを参照し、第1のGUIは、コンポーネント250〜280を含み得る。これらのコンポーネント250〜280は、任意様式で、及び/又は行及び列へ配置されてもよい。例えば、ヘッダコンポーネント250は、情報コンポーネント260、メッセージングコンポーネント270、及びプログラムコンポーネント280の上に配置されてもよい。情報コンポーネント260は、メッセージングコンポーネント270及びプログラムコンポーネント280の左に位置してもよい。メッセージングコンポーネント270は、プログラムコンポーネント280の上に位置してもよい。
統一システム110は、これらの位置に関連するメタデータを記憶することができる。メタデータは、レコードページの共有定義に対応することができる。この共有定義は、第1のGUI及び/又は第2のGUIをインスタンス化するために使用されてもよい。このメタデータを記憶するとき、統一システム110は、第1のGUIの各コンポーネントに値を順次的に割り当てることができる。例えば、統一システム110は、第1のGUI上の配置に基づいて、コンポーネントに対応する数値又は2進コードを割り当てることができる。統一システム110は、値を割り当てる左から右へ、及び上から下への処理を利用することができる。例えば、ヘッダコンポーネント250が最初であり、情報コンポーネント260、メッセージングコンポーネント270、及びプログラムコンポーネント280が続いてもよい。各GUIコンポーネントは、順次的な値を割り当てられてもよい。この順次的な値は、第1のGUIを異なるデバイスに表示される第2のGUIとして再作成することを支援できる。第2のデバイスは、例えば垂直表示画面を利用することができ、コンポーネントを再順序づけすることで、図2Dに表示される水平GUI200Dに対してよりアクセス可能なGUIを支援できる。
430において、統一システム110が、割り当て値のセットをメモリに記憶することができる。前に論じられたように、割り当て値は、メタデータとしてメモリに記憶されてもよい。統一システム110は、このメタデータをコンテンツデータベース116に記憶することができ、かつ/あるいはメタデータを外部に記憶することができる。例えば、クラウドコンピューティングシステムが、統一システム110を使用してアプリケーションビューのGUI構築を管理している場合、割り当て値のセットは、記憶のためにクラウドコンピューティングシステムに渡されてもよい。
一実施形態において、割り当て値のセットは、第1のGUIにより表示されるレコードページに対応して記憶されてもよい。レコードページは、割り当て値のセットを含むように修正され得る単一の定義を使用してもよい。この単一の定義は、アプリケーションにより容易にされるデータ構造又はレコードであってもよい。統一システム110は、この単一の定義を使用して、レコードページの異なるGUIビューを再作成することができる。例えば、統一システム110は、この単一の定義を使用して、第1のGUI及び/又は第2のGUIを生成してもよい。
440において、統一システム110が、アプリケーションを第2のデバイスで見る要求を受信することができる。第2のデバイスは、第1のデバイスと異なってもよく、かつ/あるいは異なるデバイスタイプであってもよい。例えば、第1のデバイスはデスクトップデバイス150であってもよく、一方、第2のデバイスはモバイルデバイス140であってもよい。第2のデバイスからの要求は、ログインクレデンシャル、セッショントークン、デバイス情報、及び/又は第2のデバイスを識別する他の情報を含むメッセージであってもよい。統一システム110が要求を受信したとき、統一システム110は、このデータを解析してデバイスタイプを決定することができる。例えば、440において、統一システム110は、第2のデバイスがモバイルデバイス140であると決定することができる。一実施形態において、統一システム110は、ルール及び/又は論理を利用して、モバイルデバイス140のGUIインスタンス化がデスクトップデバイス150のGUIインスタンス化と異なると決定することができる。
450において、要求の受信に応答して、統一システム110が、メモリから割り当て値のセットを取り出すことができる。要求のデータ又はメタデータをチェックすることによりデバイスタイプを決定した後、統一システム110は、割り当て値のセットを取り出してGUIコンポーネントの配置を決定することができる。要求がデスクトップデバイス150から受信された場合、統一システム110は、GUI200Dと同様の方法でGUIコンポーネントを配置してもよい。しかしながら、要求が第2のデバイスから受信されるため、統一システムは、割り当て値のセットを利用して異なるGUIを作成し得る。
460において、統一システム110が、割り当て値のセットに従って複数のGUIコンポーネントを配置することにより、第2のGUIをインスタンス化することができる。例えば、第2のデバイスがモバイルデバイス140であると決定した後、統一システム110は、プログラムによるルール又は論理を使用して、モバイルデバイスに対応する方法で第2のGUIをインスタンス化することができる。例えば、統一システム110は、GUIコンポーネントがモバイルデバイス及びモバイルデバイス140に対して、表示画面の垂直な性質のため垂直に配置されるべきであると認識することができる。
このように、統一システム110は、モバイルデバイス140上に表示されるべきGUI300C〜300Dをインスタンス化することができる。コンポーネントの特定の順番は、割り当て値のセットに対応し得る。この順番は、統一システム110がモバイルデバイス140及びデスクトップデバイス150に対して同様のルックアンドフィールを作り出すことを可能にできる。
このように、方法400を使用することで、統一システム110が異なるデバイスに対して異なるGUIコンポーネント配置を再作成することを可能にできる。統一システム110は、特定のデバイスから要求を受信すると取り出され得る単一のページ定義を記憶することができる。次いで、統一システム110は、デバイスタイプを決定し、デバイスタイプに基づいて対応するGUIをインスタンス化することができる。このように、デバイスは、統一システム110により管理される単一のページ定義を共有することができる。単一のページ定義は修正されてもよい。例えば、ユーザは、第1のデバイスを使用して特定のコンポーネントの位置を修正することができる。以下にさらに説明されるように、ユーザはまた、オブジェクト位置を修正することもできる。統一システム110は、これらの修正を含むように単一のページ定義を更新することができる。次いで、統一システム110は、レコードページの新しいGUIビューをインスタンス化するとき、単一のページ定義を調べることができる。このように、統一システム110は、GUIコンポーネントのユーザパーソナライゼーションを可能にでき、修正又はパーソナライゼーション選択を異なるデバイスにわたり再現することができる。統一システム110はまた、修正されたアプリケーションコンテンツを管理することもできるが、GUIコンポーネントの修正を可能にし、追跡することで、ユーザが異なるデバイスにわたりさらなる柔軟性及びナビゲーションアクセスを有することを可能にする。
[アプリケーションビルダ]
統一システム110は、デバイスタイプに依存してアプリケーション又はレコードページの様々なGUIビューをインスタンス化し得るが、統一システム110は、アプリケーションビルダをさらに提供することもできる。統一システム110は、ユーザ及び/又は管理者がアプリケーションのレコードページを構成及び/又は作成することを可能にするアプリケーションビルダの様々なGUIビューをインスタンス化することができる。以下の説明は、アプリケーションビルダGUIにアクセスする管理者デバイス120を参照し得るが、ユーザもまた、デスクトップデバイス150を使用してアプリケーションビルダGUIにアクセスし、かつ/あるいは操作してもよい。この機能性は、ユーザが管理者によりアクセスを付与されているかどうかに依存してもよい。
図5は、いくつかの実施形態による、アプリケーションビルダを表示するGUI500のブロック図を示す。アプリケーションビルダは、統一システム110により管理されてもよく、管理者がアプリケーションのレコードページを修正することを可能にできる。これらの修正は、レコードページにアクセスするときユーザに利用可能な特定のコンポーネントを含むGUI修正を含むことができる。一実施形態において、統一システム110は、管理者デバイス120上でGUI500をインスタンス化することができる。管理者デバイス120は、コマンド及び/又はGUI500との対話を受け入れることができる。次いで、管理者デバイス120は、これらのコマンド及び/又は対話を統一システム110に送信することができる。次いで、統一システム110は、これらのコマンドを保存することができ、かつ/あるいはコマンドに従ってレコードページを更新することができる。一実施形態において、統一システム110は、レコードページに対応する単一の定義データ構造を更新することができる。統一システム110は、モバイルデバイス140及び/又はデスクトップデバイス150のためのアプリケーション及び/又はレコードページのGUIビューをインスタンス化するときに、この単一の定義データ構造を使用することができる。
GUI500は、管理者又はユーザがレコードページのGUIビューを見る、作成する、及び/又は修正することを可能にする異なる要素を含むことができる。例えば、GUI500は、デバイスボタン510、保存ボタン520、GUIビューア530、コンポーネントパネル540、ページパネル550、可視性アイコン560、及び/又はページボタン570を含んでもよい
デバイスボタン510は、管理者がレコードのGUIビューをトグルすることを可能にできる。デバイスボタン510は、特定のデバイスを選択するためのドロップダウンメニュー及び/又はアイコンであってもよい。デバイスボタン510は、例えば、「デスクトップ」又は「モバイル」などのデバイスタイプを示してもよい。デバイスボタン510は、「デスクトップ」、「ラップトップ」、「タブレット」、又は「電話」などのデバイスタイプに基づいて異なるカテゴリ化を可能にしてもよい。一実施形態において、デバイスボタン510は、ユーザが「ユーザのタブレットID #123」などの特定のデバイスを指定することを可能にできる。デバイスボタン510の選択に基づいて、統一システム110は、GUIビューア530の内容を修正することができる。
GUIビューア530は、アプリケーションビルダにより作成及び/又は修正されているGUIのプレビューを含むことができる。GUIビューア530は、例えば、デスクトップデバイス150上に表示されるべきGUI又はレコードページを表示することができる。例えば、GUIビューア530は、GUI200Dからのコンポーネントを表示することができる。管理者は、GUIビューア530と対話してGUIのコンポーネントを修正することができる。
管理者は、管理者デバイス120を使用して統一システム110にコマンドを供給することができる。コマンドに応答して、統一システム110は、GUIビューア530に表示されるGUIを修正することができる。例えば、統一システム110は、特定のコンポーネントの位置を修正することができる。管理者は、GUI500と対話するとき、ドラッグアンドドロップコマンド又はジェスチャを供給することができる。このコマンドに応答して、統一システム110は、コンポーネントを示された位置に移動させることができる。さらに、統一システム110は、行若しくは列又はコンポーネント配置の観点で異なるレイアウトを提供することができる。このように、管理者は、レコードページのGUIコンポーネントをカスタマイズすることができる。図7を参照して以下に説明されるように、管理者は、GUIビューア530を使用してGUIコンポーネント内の要素をさらに構成することもできる。
コンポーネントの位置を修正することに加えて、管理者は、GUIからGUIコンポーネントを追加及び/又は削除することもできる。GUIコンポーネントを削除するために、管理者は、管理者デバイス120から統一システム110に消去コマンドを供給することができる。この消去コマンドは、GUIコンポーネントを削除することを参照し得るが、基礎をなすレコードデータを削除しなくてもよく、かつ/あるいはアプリケーションデータ又は実行可能プログラムを修正しなくてもよい。GUIコンポーネントを削除することは、設計判断を反映してもよく、特定のコンポーネントがロードされないことを統一システム110に示してもよい。ユーザは、他の操作を使用してコンポーネント又は基礎をなすアプリケーション要素に依然としてアクセスしてもよく、あるいはそうでなくてもよい。
一実施形態において、管理者は、特定のユーザに対する特定のGUIビューを指定することができる。管理者は、ユーザが特定のアプリケーション要素及び/又はGUIコンポーネントを使用することをブロックするよう決定することができる。このように、統一システム110は、特定のGUIコンポーネントがブロックであることを示すコマンドを受信するように構成されてもよく、ユーザがアプリケーション要素にアクセスすることを防止するために、ユーザに対して特定のGUIコンポーネントをロードしなくてもよい。
GUIからGUIコンポーネントを削除及び/又はブロックすることに加えて、管理者は、コンポーネントを追加することができる。管理者は、コンポーネントパネル540を使用してコンポーネントにアクセスすることができる。統一システム110は、クラウドコンピューティングプラットフォーム内のインストールされたコンポーネントに依存して、これらのコンポーネントを取り出すことができる。コンポーネントパネル540を使用し、ドラッグアンドドロップジェスチャでコンポーネントをGUIビューア530に移動させ、列挙されたコンポーネントをGUIに追加する。次いで、ユーザは、追加されたGUIコンポーネントを所望の位置に移動することができる。GUIビューア530は、図5において4つのコンポーネントを表示しているが、より多くの又はより少ないコンポーネントが追加されてもよい。また、コンポーネントは、管理者により提供されたコマンドに基づいて、統一によりサイズ変更されてもよい。さらに、追加されたコンポーネントは、「画面外で」オーバーフローする可能性がある。この場合、統一システム110は、GUIビューア530内にスクロール要素を提供して、ユーザがコンポーネントをスクロールし、見ることを可能にできる。
コンポーネントパネル540は、クラウドコンピューティングプラットフォームから予めロードされたコンポーネントを含み得るが、コンポーネントパネル540はまた、さらなるコンポーネントを取り出すためのボタンを含んでもよい。このボタンは、さらなるコンポーネントをインストールするためのアプリケーションマーケットプレイス又は取引所を見せることができる。また、ユーザは、コンポーネントパネル540内の検索バーを使用して、特定のコンポーネントをフィルタリングし、かつ/あるいは取り出すことができる。
ここで論じられるコンポーネントは、アプリケーションで利用され得るGUIビュー及び/又はコマンドに対応し得る。例えば、レコードは、ヘッダコンポーネント内に列挙され得るアカウント情報を含むことができる。情報コンポーネントは、レコードデータをタブ様式で編成して、ユーザが記憶された情報をブラウズすることを可能にできる。アクションコンポーネントは、ユーザがレコードデータを編集し、かつ/あるいは基礎をなすアプリケーションにより提供される機能性に基づいてレコードデータと対話することを可能にできる。このように、管理者は、GUIを構成するためのコンポーネントを定義することができ、ユーザは、これらのコンポーネントを使用して、基礎をなすアプリケーション及びアプリケーションレコードデータと対話することができる。
GUIコンポーネントを編集することに加えて、管理者は、ページパネル550を使用して、レコードに関連づけられたメタデータを編集することもできる。ページパネル550は、管理者メタデータを含んでもよく、該管理者メタデータは、ユーザが閲覧に利用できなくてもよい。例えば、ページパネル550は、管理者が、GUIビューのラベル、開発者名、ページタイプ、オブジェクト記述を追加し、テンプレートを選択し、かつ/あるいは記述を追加することを可能にできる。このメタデータ編集は、レコードをカテゴリ化するのに有用であり得る。例えば、メタデータは、特定のレコードページが「アカウント」オブジェクトであることを指定できる。次いで、ページパネル550は、オブジェクト情報を表示することができる。
ページパネル550はまた、ユーザがコンポーネントの特定のテンプレートを選択して、GUIビューを迅速に構築することを可能にできる。このテンプレートは、予め選択されたコンポーネント及び/又はコンポーネント位置を含んでもよい。また、テンプレートを変更することで、統一システム110に、GUIをテンプレートに適合するように修正させることができる。
図7に関してさらに論じられるように、GUI500はまた、可視性アイコン560を含んでもよい。可視性アイコン560は、デバイスタイプに依存して異なるプロパティを有するGUIコンポーネントを表すことができる。例えば、一実施形態において、統一システム110がデスクトップデバイス150上のGUIをインスタンス化するとき、デスクトップデバイス150は、可視性アイコン560を有するコンポーネントを表示することができる。しかしながら、統一システム110がモバイルデバイス140上のGUIをインスタンス化するとき、モバイルデバイス140は、この実施形態においてコンポーネントを表示しなくてもよい。統一システム110は、この可視性情報をレコードページのための単一の定義に記憶することができる。統一システム110は、これらの可視性要素を維持することができ、管理者がデバイスタイプに依存して特定のコンポーネントを隠し及び/又は見せることを可能にできる。管理者は、例えば、より大きな画面サイズのためにデスクトップデバイス150上でコンポーネントを提供するが、モバイルデバイス140上でコンポーネントを隠すことを望む可能性がある。このように、モバイルデバイス140のためのレコードページのGUI表示は、管理者の選択に依存して、より審美的に魅力的であり得る。
GUI500はまた、ページボタン570を含んでもよい。ページボタン570は、レコードページ間の迅速なアクセスを可能にして、GUIコンポーネントの編集を可能にできる。管理者は、ページボタン570を使用してドロップダウンメニューを見せ、特定のページを選択することができる。次いで、統一システム110は、GUIビューア530においてそのページをインスタンス化し、管理者が該ページを操作することを可能にできる。
GUI500はまた、保存ボタン520を含んでもよい。保存ボタン520上での対話の受信に応答して、統一システム110は、ページに対応する単一のページ定義にGUIコンポーネント構成を保存することができる。この単一のページ定義は、管理者により提供される構成情報に依存して、単一のユーザ及び/又は2以上のユーザに適用されてもよい。例えば、管理者は、あるコンポーネントを含むユーザAに対するGUIを構成することができ、該コンポーネントを含まないユーザBに対するGUIを構成することができる。統一システム110は、この構成情報を維持することができる。しかしながら、一実施形態において、コンポーネントがユーザAに利用可能である場合、統一システム110は、ユーザAのための単一のページ定義を管理し、ユーザAがデスクトップデバイス150及び/又はモバイルデバイス140を使用して該コンポーネントにアクセスすることを可能にできる。GUIコンポーネント及び/又はアプリケーションコンテンツに対する修正が、ユーザAについて単一のページ定義内に保存されてもよく、それにより、これらは、ユーザAに対応する各ユーザデバイスに対して再現できる。
図6は、いくつかの実施形態による、モバイルアプリケーションビルダを表示するGUI600のブロック図を示す。GUI600は、図5を参照して説明されたようにGUIビューア530で編集されたGUIのモバイルビューを示し得る。統一システム110は、デバイスボタン510との対話の受信に応答して、GUI600をインスタンス化することができる。対話は、例えば、ビューをモバイルビューに切り替えるクリック又はタップであってもよい。
GUI600は、GUI500と同様の要素を含んでもよく、同様の方法で動作してもよい。例えば、GUI600は、デバイスボタン610、保存ボタン620、GUIビューア630、コンポーネントパネル640、ページパネル650、可視性アイコン660、及び/又はページボタン670を含んでもよい。デバイスボタン610を使用することで、ユーザがGUIビューア630に示されるようなモバイルビューとGUIビューア530に示されるようなデスクトップビューとの間でトグルすることを可能にできる。
統一システム110は、単一のページ定義を利用して、GUIビューア630内のGUIコンポーネントをインスタンス化することができる。このように、GUIビューア630内のGUIコンポーネントは、GUIビューア530内のGUIコンポーネントに対応し得る。統一システム110は、これらのコンポーネントを、図4を参照して説明されたように順次的な方法で配置することができる。一実施形態において、管理者は、GUIコンポーネントを特定のデスクトップレイアウトで配置することができる。次いで、統一システムは、GUIコンポーネントの対応する配置を有するデフォルトのモバイルレイアウトを自動的に生成することができる。一実施形態において、管理者又はユーザは、デスクトップレイアウトとモバイルレイアウトとの間の順序づけを区別することができる。例えば、管理者又はユーザは、デスクトップラベルと別個に修正レイアウトを修正することができる。次いで、統一システム110は、異なる配置を記憶し、デスクトップデバイス150及び/又はモバイルデバイス140それぞれにおいてGUIをインスタンス化するときに指定された配置を使用することができる。
GUIビューア630を使用し、管理者は、レコードページのモバイルGUIビューを修正することができる。GUI500と同様に、管理者は、コンポーネントパネル640及びGUIビューア630を使用して、GUIビューア630に表示されるモバイルGUIのコンポーネントを追加し、削除し、修正し、かつ/あるいは改変することができる。管理者はまた、ページパネル650を使用してメタデータを修正することもできる。モバイルGUIビュー上のこれらの修正は、保存されてもよく、GUIビューア530に示されるデスクトップビュー上に自動的に複製されてもよい。このように、アプリケーションビルダは、ユーザがレコードページのデスクトップビューとモバイルビューとの双方を編集することを可能にできる。次いで、統一システム110は、変更を保存し、GUIビューを自動的に更新することができ、それにより、編集が双方のGUIで見える。アプリケーションビルダを使用し、管理者は、ユーザがアプリケーション及び/又はデータレコードにアクセスすることを可能にするデスクトップGUI及び/又は対応するモバイルGUIを迅速に生成することができる。同様に、管理者は、モバイルGUIを生成することができ、統一システム110は、モバイルGUIのデスクトップバージョンを自動的に生成することができる。
統一システム110は、デスクトップ及びモバイルビューのためのGUIコンポーネントを自動的に編成し、かつ/あるいは複製することができるが、統一システム110はまた、管理者が特定のコンポーネントを特定のビュー上でのみ見えるように区別することも可能にできる。例えば、ユーザは、デスクトップビュー上で見えるがモバイルビュー上で見えないコンポーネントを選定することができる。このコンポーネントは、可視性アイコン660でマークづけされてもよい。コンポーネントは、作成されたGUIのエンドユーザに見えない可能性があるが、管理者は依然として、GUIビューア630内のコンポーネントを見て、コンポーネントを修正し、かつ/あるいはコンポーネントの隠された態様を受け入れることができる。
このように、アプリケーションビルダは、管理者がGUIコンポーネントビューをカスタマイズすることを可能にできる。管理者がユーザに許可を付与した場合、ユーザもまたGUIコンポーネントビューをカスタマイズすることができてもよい。統一システム110は、異なるデバイス及びデバイスタイプにわたりこれらの構成を保ち、作成されたGUIビューをインスタンス化することができる。統一システム110は、要求を送出しているデバイスタイプにかかわらずアクセスされる単一の定義ファイルを使用して、これらの構成を管理することができる。
図7は、いくつかの実施形態による、エディタプロンプト770を表示するGUI700のブロック図を示す。モバイルビューを通じて表示されている間、エディタプロンプト770は、デスクトップビューを通じてさらに現れてもよい。エディタプロンプト770は、管理者が特定のコンポーネントの構成を編集することを可能にできる。例えば、エディタプロンプト770は、コンポーネントの特定フィールドの編集を可能にできる。コンポーネントは、いくつかのタブを含んでもよい。エディタプロンプト770を使用することで、管理者が見えるタブを修正することを可能にできる。
同様に、エディタプロンプト770は、管理者がコンポーネントの可視性パラメータを選定することを可能にできる。上述のように、管理者は、あるコンポーネントを(例えば、デスクトップデバイス150のための)第1のGUI内で見せることを望む場合があるが、該コンポーネントを(例えば、モバイルデバイス140のための)第2のGUI内で隠すことを望む場合がある。エディタプロンプト770を使用し、管理者は、この選定を行うことができる。調整された可視性パラメータを有するコンポーネントは、可視性アイコン760を含んでもよい。
エディタプロンプト770を使用し、管理者は、いくつかの可視性ルールを定義することができる。例えば、管理者は、デスクトップ、タブレット、及び電話などの複数のデバイスカテゴリを作成することができる。次いで、管理者は、カテゴリの各々について可視性パラメータを定義することができる。例えば、コンポーネントが、電話で見えるがデスクトップ又はタブレットで見えなくてもよい。エディタプロンプト770を使用し、管理者は、これらの可視性パラメータを指定し、かつ/あるいはカスタマイズすることができる。次いで、統一システム110は、特定のGUIがインスタンス化されるとき、アプリケーションのためのこれらのパラメータを記憶することができる。
一実施形態において、エディタプロンプト770は、管理者が特定のGUIコンポーネントを示すデバイスのタイプを指定することを可能にするドロップダウンメニューを含むことができる。例えば、ドロップダウンメニューは、「小(small)」オプション、「大(large)」オプション、及び/又は空白オプションを含んでもよい。一実施形態において、「小」オプションを選択することで、GUIコンポーネントがモバイルデバイス140上にのみ示されるべきであることを示してもよい。同様に、「大」オプションが、GUIコンポーネントがデスクトップデバイス150上にのみ示されるべきであることを示してもよい。空白オプションが、GUIコンポーネントがすべてのデバイスに表示されることを示してもよい。ドロップダウンメニューは「中」オプションをさらに含んでもよく、該オプションはタブレットデバイスに対応してもよい。一実施形態において、エディタプロンプト770はまた、管理者が否定条件を指定し、かつ/あるいはGUIコンポーネントを隠すデバイスを選択することを可能にできる。これらの可視性オプションを使用し、管理者は、異なるユーザデバイスにわたり異なるGUIビューをカスタマイズすることができる。
図8は、いくつかの実施形態による、統一されたアプリケーションを構築する方法800を示すフローチャートを示す。方法800は、図1を参照して説明される。しかしながら、方法800は、その例示的な実施形態に限定されない。
一実施形態において、統一システム110は、アプリケーションビルダの異なるGUIビューを管理する方法800を利用することができる。前述の説明は、GUI500及びGUI600に関して方法800の実行の一実施形態を説明するが、任意のアプリケーションビルダGUIに適用可能でもよい。方法800は統一システム110を参照して説明されるが、方法800は、例えば、図18を参照して説明されるコンピュータシステム、及び/又はハードウェア(例えば、回路、専用論理、プログラマブル論理、マイクロコード等)、ソフトウェア(例えば、処理デバイス上で実行する命令)、又はこれらの組み合わせを含み得る処理論理などの、任意のコンピューティングデバイス上で実行されてもよい。
本明細書に提供される開示を実施するために全てのステップが必要とされ得るわけではないことを十分理解されたい。さらに、当業者により理解されるように、ステップのいくつかが同時に、又は図8に示されているものと異なる順序で実行されてもよい。
一実施形態において、810において、統一システム110が、第1のデバイスに対応する第1のGUIを表示する第1のビューと、第2のデバイスに対応する第2のGUIを表示する第2のビューとを含むエディタGUIをインスタンス化することができる。第1のビューは、GUI500であってもよく、かつ/あるいはGUIビューア530を含んでもよい。対応するデバイスは、デスクトップデバイス150であってもよい。統一システム110は、編集されている特定デバイスのGUIを識別し、特定デバイスのためのメモリにGUIコンポーネントに対する修正を記憶することができる。
第2のビューは、GUI600であってもよく、かつ/あるいはGUIビューア630を含んでもよい。対応するデバイスは、モバイルデバイス140であってもよい。統一システム110は、ユーザ又は管理者がこれら2つのビューをトグルして、GUIがユーザデバイス上でインスタンス化されたとき現れるのと同様のGUIを見ることを可能にできる。さらに、統一システム110は、アプリケーション又はレコードの単一のページ定義を使用して、第1のビュー及び第2のビューをインスタンス化することができる。
820において、統一システム110が、第1のGUIのGUIコンポーネントを修正する第1のビューとの編集対話を受信することができる。編集対話は、第1のGUIにコンポーネントを追加すること、第1のGUIからコンポーネントを削除すること、第1のGUI上のコンポーネントの位置を変更すること、コンポーネントパラメータを調整すること、コンポーネントの可視性パラメータを調整すること、及び/又は他の編集を含むことができる。管理者デバイス120は、編集対話を統一システム110に供給することができる。統一システム110は、アプリケーション又はレコードのための単一のページ定義に構成を保存することができ、かつ/あるいは第1のビューを更新して修正されたGUIコンポーネントを含めることができる。
830において、統一システム110が、受信に応答して、第1のGUIのGUIコンポーネントに対応する第2のGUIのGUIコンポーネントを修正することができる。一実施形態において、統一システム110は、単一のページ定義を使用してこの修正を実行することができる。例えば、管理者が、第2のGUIを見るようトグルしたとき、第2のGUIは、第1のGUIで実行された修正に基づいて更新されてもよい。統一システム110は、共有された単一のページ定義を使用して、この修正を自動的に再現することができる。管理者は、第2のGUI上の要素を引き続き修正することができ、統一システム110は、第1のGUI上でこれらのさらなる修正を再現することができる。このように、統一システム110は、異なるGUIビューにわたるコンポーネント修正を可能にでき、管理者が(例えば、デスクトップデバイス150上に表示される)第1のGUI上の潜在的な修正が(例えば、モバイルデバイス140上に表示される)第2のGUIにどのように影響し得るかを迅速に見ることを可能にできる。
[ナビゲーションボタン及びナビゲーションメニュー]
統一システム110は、ナビゲーションボタン及び/又はナビゲーションメニューをインスタンス化することができる。これらのナビゲーションGUI要素は、ユーザがアプリケーションの異なるページビュー内をナビゲートすることを支援できる。これらのGUI要素はまた、モバイルデバイス140上でその位置及びアクセシビリティに起因してより高速なナビゲーションを提供することができる。ユーザは、ナビゲーションボタン及び/又はナビゲーションメニューを使用して、異なるアプリケーションオブジェクトを選択することができる。また、統一システム110は、ナビゲーションボタン及び/又はナビゲーションメニュー内のオブジェクトを修正することができる。一実施形態において、統一システム110は、デスクトップGUIビュー上のオブジェクトの追加、消去、及び/又は移動を識別することができる。統一システム110は、デスクトップデバイス150からこれらのコマンドを受信することができる。次いで、統一システム110は、ナビゲーションボタン及び/又はナビゲーションメニューを改変して、同じパーソナライゼーションを維持することができる。図9〜図13は、ナビゲーションボタン及びナビゲーションメニューを説明する。
図9は、いくつかの実施形態による、ナビゲーションボタン910を表示するGUI900のブロック図を示す。ナビゲーションボタン910は、図3Aに関して説明されたナビゲーションボタン310と同様の方法で動作することができる。統一システム110は、モバイルデバイス140上のGUI900をインスタンス化することができる。GUI900を見るユーザは、モバイルデバイス140の表示画面及び/又は他のタッチスクリーンインターフェースと対話して、ナビゲーションボタン910とのユーザ対話をサブミットすることができる。ユーザ対話は、例えば、ナビゲーションボタン910上のクリック又はタップであってもよい。モバイルデバイス140は、この対話を統一システム110に送信することができ、かつ/あるいは該対話をローカルで処理することができる。
ナビゲーションボタン910との対話の受け取りに応答して、モバイルデバイス140は、ナビゲーション画面920を表示することができる。ナビゲーション画面920は、統一システム110によりインスタンス化されてもよく、かつ/あるいはモバイルデバイス140の内部で決定されてもよい。ナビゲーション画面920は、ナビゲーションボタン910に表示されるオブジェクトに対応することができる。例えば、ナビゲーションボタン910が、基礎をなすアプリケーション内の「アカウント(Accounts)」オブジェクトを表す場合、ナビゲーションボタン910を選択することで、ナビゲーション画面920上に「アカウント」ホームページを表示してもよい。このように、ナビゲーションボタン910が異なるオブジェクトを表すよう変化する場合、ユーザがナビゲーションボタン910を選択したとき、ナビゲーション画面920は、そのオブジェクトのページを表すよう変化する。この変化するナビゲーションボタン910は、図11を参照してさらに説明される。
図10は、いくつかの実施形態による、ナビゲーションメニュー1030を表示するGUI1000のブロック図を示す。ナビゲーションメニュー1030を表示するために、ユーザは、ナビゲーションボタン1010と対話することができる。図9に関して説明された対話と対照的に、ナビゲーションボタン1010との対話は、ナビゲーションメニュー1030を見せるように、異なってもよい。例えば、ユーザは、ナビゲーションボタン1010に長押しを使用して、ナビゲーションメニュー1030を見せることができる。長押しは、所定量の時間より長い間のナビゲーションボタン1010との接触を示し、あるいは所定の時間閾値を超える、ジェスチャ又は選択であってもよい。モバイルデバイス140は、ユーザ接触に対応する経過時間を測定して、長押し対話が検出されたかどうかを決定することができる。一実施形態において、モバイルデバイス140上で動作するオペレーティングシステムは、長押し、短押し、及び/又は他のジェスチャを検出することができる。この場合、モバイルデバイス140上で実行し、統一システム110と通信するソフトウェアプログラムが、特定ジェスチャの検出に応答してオペレーティングシステムにより呼び出されたとき、機能を実行することができる。
短押しは、所定量の時間を下回るナビゲーションボタン1010との対話であってもよい。短押しがナビゲーションボタン1010上で検出された場合、図9で説明された処理と同様に、モバイルデバイス140は、ナビゲーション画面1020を改変して、ナビゲーションボタン1010に現在表示されるオブジェクトに対応するホームページを表示することができる。このように、2つの異なるジェスチャがナビゲーションボタン1010に適用されて、ナビゲーションメニュー1030を見せ、かつ/あるいはハイライトされたオブジェクトにナビゲートすることができる。
ナビゲーションメニュー1030は、アプリケーションに対応するオブジェクト1035のリストを含むことができる。これらのオブジェクト1035は、図2Bを参照して説明されたオブジェクト220と同様であってもよい。ナビゲーションメニュー1030が見せられると、ユーザは、オブジェクト1035を選択して、選択されたオブジェクトページにナビゲートすることができる。非限定的な例において、ユーザは、オブジェクト1035Fを選択して、「機会(Opportunities)」オブジェクトにナビゲートすることができる。図11は、この選択の結果の一実施形態を示す。
図11は、いくつかの実施形態による、選択されたオブジェクトに対応する更新されたナビゲーションボタン1110を表示するGUI1100のブロック図を示す。ユーザが、ナビゲーションメニュー1030から特定のオブジェクト1035を選択した場合、統一システム110及び/又はモバイルデバイス140は、ナビゲーションボタン1010をナビゲーションボタン1110になるように更新することができ、かつ/あるいはナビゲーション画面1020をナビゲーション画面1120になるように更新することができる。
例えば、ユーザが、オブジェクト1035Fを選択して「機会」オブジェクトにナビゲートする場合、ナビゲーションボタン1110は、「機会」アイコンを表示するように更新されてもよい。同様に、ナビゲーション画面1120は、「機会」ホームページ又はオブジェクトホームページを表示することができる。このように、ユーザは、ナビゲーションメニュー1030を使用して、アプリケーションの異なるオブジェクトにナビゲートすることができてもよい。
更新されたナビゲーションボタン1110では、ユーザは、短押しジェスチャを使用してナビゲーション画面1120に戻ることができる。ユーザが異なるアプリケーションページにナビゲートする場合、ナビゲーションボタン1110を選択することで、ナビゲーション画面を見せることができる。このように、ナビゲーションボタン1110は、ナビゲーションメニュー1030からの「最も最近の」選択を反映するように更新されてもよい。統一システム110及び/又はモバイルデバイス140は、この選択をメモリに記憶することができ、それにより、ユーザは、前に選択されたオブジェクトに迅速にナビゲートして戻ることができる。さらに、ユーザは、ナビゲーションメニュー1030を呼び出し、異なるオブジェクトを選択することにより、ナビゲーションボタン1110を更新することができる。
図12A〜図12Fを参照してさらに説明されるように、ナビゲーションメニュー1030に列挙されたモバイルオブジェクト1035は、アプリケーションGUIのデスクトップバージョンで見られるタブオブジェクト1245に対応することができる。このように、デスクトップデバイス150上のタブオブジェクト1245の操作は、ナビゲーションメニュー1030のオブジェクトの変更を結果としてもたらしてもよく、その逆もまた同様である。統一システム110は、モバイルデバイス140上に表示されるGUI及びデスクトップデバイス150上に表示されるGUIの双方に使用される単一の定義に基づいて、これらの変更を容易にすることができる。
図12Aは、いくつかの実施形態による、タブオブジェクト1245を含むページを表示するGUI1200Aのブロック図を示す。タブオブジェクト1245は、図2Bを参照して説明されたオブジェクト220と同様であってもよい。統一システム110は、デスクトップデバイス150上に表示されるGUI1200Aをインスタンス化することができる。
図12Bは、いくつかの実施形態による、タブオブジェクト1245の移動を表示するGUI1200Bのブロック図を示す。統一システム110は、タブオブジェクト1245の移動対話の検出に応答して、GUI1200Bをインスタンス化することができる。例えば、GUI1200Aから、ユーザは、タブオブジェクト1245Dをタブオブジェクト1245Cと1245Eとの間からタブオブジェクト1245Aと1245Bとの間に移動させることができる。ユーザは、デスクトップデバイス150でこのジェスチャを供給していてもよい。デスクトップデバイス150は、この修正を統一システム110に送信していてもよい。統一システム110は、この修正を記憶し、タブオブジェクト1245の順序づけを更新することができる。統一システム110は、この修正を、ページを表す単一のページ定義への更新として記憶することができる。さらに、統一システム110が、単一のページ定義を利用してタブオブジェクトを相関させることができるため、統一システム110は、ページがモバイルデバイス140上でアクセスされたとき、この修正を適用することができる。
図12Cは、いくつかの実施形態による、モバイルオブジェクト1235の移動を表示するGUI1200Cのブロック図を示す。図10と対照的に、ナビゲーションメニュー1230は、ナビゲーションメニュー1030に対してオブジェクトの異なる順序づけを含む。例えば、「機会(Opportunities)」オブジェクト1235Dは、「ホーム(Home)」オブジェクト1235Aの次であってもよい。この変更は、図12Bに示されるタブオブジェクト1245の配置に対応することができる。ナビゲーションメニュー1230は、ナビゲーションボタン1210を使用してジェスチャで呼び出されてもよい。
図12Aから図12Cへのフローは、デスクトップデバイス150環境におけるオブジェクト移動を追跡し、この移動をナビゲーションメニュー1230に翻訳する統一システム110の能力を示すことができる。この移動は、ユーザによる特定の所望の順序づけを保つことができ、ユーザにより使用されるユーザデバイスに反映されることができる。このように、統一システム110は、GUIオブジェクト修正を双方向的に保存し、デスクトップデバイス150環境及びモバイルデバイス140環境の双方においてより高速なユーザナビゲーションを可能にできる。アプリケーションコンテンツの修正のほかに、統一システム110は、GUIコンポーネントの特定の修正をカスタマイズ可能な方法で可能にする。
図12Aから図12Cを参照して説明されたフローと同様に、図12D〜図12Fは、オブジェクトのリストにオブジェクトを追加するフローを表すことができる。
図12Dは、いくつかの実施形態による、拡張タブオブジェクト1250を含むページを表示するGUI1200Dのブロック図を示す。図2Cを参照して説明されたグループ化され及び/又は折りたたまれたオブジェクト240と同様に、GUI1200Dは、タブオブジェクト1245の間に拡張タブオブジェクト1250を含むことができる。拡張タブオブジェクト1250は、特定のタブオブジェクト1245の拡張に起因して現在見えるグループ化されたオブジェクトを表すことができる。一実施形態において、ユーザは、拡張タブオブジェクト1250をグループから削除し、拡張タブオブジェクト1250をタブオブジェクト1245と同様のスタンドアロンオブジェクトとして使用することを望む場合がある。このように、ユーザは、拡張タブオブジェクト1250をタブオブジェクト1245のリストにドラッグアンドドロップすることができる。
図12Eは、いくつかの実施形態による、追加されたタブオブジェクト1250を含むページを表示するGUI1200Eのブロック図を示す。ドラッグアンドドロップ対話に応答して、統一システム110は、追加されたタブオブジェクト1250がタブオブジェクト1245のリストに現在追加されていると識別することができる。統一システム110は、オブジェクトを表すGUI部分を調整及び/又はサイズ変更して、GUI1200E上の間隔を提供することができる。新しい位置において、ユーザは、追加されたタブオブジェクト1250と対話して、対応するオブジェクトホームページに到達することができる。同様に、統一システム110は、この構成を単一のページ定義に保存して、モバイルGUI上でこの順序づけを再現することができる。
図12Fは、いくつかの実施形態による、追加されたモバイルオブジェクト1255を表示するGUI1200Fのブロック図を示す。GUI1200Fに見られるように、追加されたモバイルオブジェクト1255は、ナビゲーションメニュー1230に現れることができる。ナビゲーションメニュー1230の順序づけもまた、デスクトップGUI上に追加されたタブオブジェクト1250を有するタブオブジェクト1245の順序づけに対応することができる。このように、統一システム110は、オブジェクトに対する修正がデスクトップデバイス150から検出された場合に、修正されたGUIビューを再現することができる。統一システム110は、これらのGUI修正を含むように、モバイルデバイス140上に表示されるGUIを修正することができる。
これらの説明は、デスクトップデバイス150上の最初の修正を説明したが、一実施形態において、修正は、モバイルデバイス140上で実行されてもよい。統一システム110は、この修正をデスクトップデバイス150のGUIへ翻訳することができる。
さらに、統一システム110は、オブジェクトがリストから削除されるとき、同様の手法を適用することもできる。オブジェクトの削除は、基礎をなすアプリケーションデータを消去しなくてもよいが、特定のGUIビューからオブジェクトを削除することができる。例えば、オブジェクトが、デスクトップデバイス150上のリストから削除された場合、統一システム110は、該オブジェクトをモバイルデバイス140上のリストから削除することができ、その逆もまた同様である。
このGUI修正のさらなる態様は、管理者及びユーザのカスタマイズ対パーソナライゼーションの組み合わせを含む。管理者デバイス120を使用する管理者は、ユーザがアクセス可能な特定のアプリケーションを識別することができる。一実施形態において、管理者はまた、例えばアプリケーションビルダを使用して、ユーザがアクセス可能なGUIコンポーネントを指定することもできる。管理者のカスタマイズ制御の範囲内で層化され(Layered)、ユーザは、その独自のデスクトップGUI又はモバイルGUIのビューをパーソナライズすることができる。前に論じられたように、ユーザ制御は、オブジェクトの移動、追加、及び/又は削除を含むことができる。さらに、ユーザは、GUIコンポーネント内の異なる要素をパーソナライズすることができる。このように、統一システム110は、管理者及びユーザ双方のカスタマイズを同時にサポートすることができる。単一のページ定義を使用し、これらの構成は、記憶され、かつ/あるいは取り出されて、アプリケーションがモバイルデバイス140及び/又はデスクトップデバイス150上でアクセスされたときにユーザに対する1つ以上のGUIをインスタンス化することができる。
図13は、いくつかの実施形態による、ナビゲーションメニューを修正する方法1300を示すフローチャートを示す。方法1300は、図1を参照して説明される。しかしながら、方法1300は、その例示的な実施形態に限定されない。
一実施形態において、統一システム110は、方法1300を利用して、ナビゲーションメニュー1230などのナビゲーションメニューを修正することができる。前述の説明は、GUI1200A〜1200Fに関して方法1300の実行の一実施形態を説明するが、ナビゲーションメニューを含む任意のGUIに適用可能でもよい。方法1300は統一システム110を参照して説明されるが、方法1300は、例えば、図18を参照して説明されるコンピュータシステム、及び/又はハードウェア(例えば、回路、専用論理、プログラマブル論理、マイクロコード等)、ソフトウェア(例えば、処理デバイス上で実行する命令)、又はこれらの組み合わせを含み得る処理論理などの、任意のコンピューティングデバイス上で実行されてもよい。
本明細書に提供される開示を実施するために全てのステップが必要とされ得るわけではないことを十分理解されたい。さらに、当業者により理解されるように、ステップのいくつかが同時に、又は図13に示されているものと異なる順序で実行されてもよい。
一実施形態において、1310において、統一システム110が、第1のデバイス上に表示するように構成された第1のGUIメニューのインスタンスを生成することができ、第1のGUIメニューは、オブジェクトのリストを含む。第1のGUIメニューは、例えば、ナビゲーションメニュー1230であってもよい。ナビゲーションメニュー1230は、モバイルデバイス140などの第1のデバイス上に表示されてもよい。オブジェクトのリストは、オブジェクト1235であってもよい。オブジェクトを使用し、ユーザは、異なるオブジェクトホームページにナビゲートすることができる。
1320において、統一システム110が、第2のデバイス上に表示するように構成された第2のGUIメニューのインスタンスを生成することができ、第2のGUIメニューは、オブジェクトのリストを含む。第2のGUIメニューは、例えば、タブオブジェクト1245のリストであってもよい。タブオブジェクト1245のリストは、デスクトップデバイス150などの第2のデバイスに表示されてもよい。モバイルシナリオと同様に、ユーザは、タブオブジェクト1245を使用して異なるオブジェクトホームにナビゲートすることができる。
1330において、統一システム110が、第2のGUIメニュー上のオブジェクトのリストのうちのオブジェクトを修正する、第2のGUIにおける修正対話を受信することができる。例えば、デスクトップデバイス150におけるユーザが、タブオブジェクト145のリストを修正することができる。ユーザは、順序づけを変更し、オブジェクトを追加し、かつ/あるいはオブジェクトを削除することができる。この場合、統一システム110は、デスクトップデバイス150から修正対話を受信することができる。統一システム110は、この修正を、ページを表す単一のレコードへの更新として記憶することができる。
1340において、受信に応答して、統一システム110が、修正対話に従って、第1のGUIメニュー上のオブジェクトのリストを修正することができる。統一システム110は、レコードにアクセスし、コマンドをモバイルデバイス140に送信して、デスクトップデバイス150から検出された変更に従ってナビゲーションメニュー1230を修正することができる。例えば、統一システム110は、オブジェクト1235の順序づけを変更し、オブジェクト1235を削除し、かつ/あるいはオブジェクト1235を追加することができる。この場合、統一システム110は、オブジェクトのリストを修正することができ、それにより、カスタマイズ選択が異なるGUI間で保たれる。統一システム110は、モバイルデバイス140及び/又はデスクトップデバイス150における修正の検出に応答して、方法1300を自動的に実行することができる。
第1のデバイスがモバイルデバイス140として説明され、第2のデバイスがデスクトップデバイス150として説明されたが、これらは逆にすることもできる。一実施形態において、デバイスはさらに、タブレット又はインターネットブラウザなどの他のデバイス及び/又はソフトウェアアプリケーションであってもよい。例えば、ユーザは、コンピュータ上で2つのウィンドウを使用してアプリケーションにアクセスすることができる。第1のウィンドウにおいてオブジェクトのリストを修正することで、第2のウィンドウにおけるオブジェクトのリストの修正を結果としてもたらすことができる。
[カーソルジェスチャ制御]
図14A〜図15に関して以下にさらに説明されるように、統一システム110は、GUI表示上にカーソルをさらに生成することができる。このカーソルは、ユーザがGUIの一部分と直接対話することなく、該部分を操作することを可能にできる。例えば、GUIがモバイルデバイス140上に表示される場合、ユーザは、GUIの下半分を押して、カーソルを上部分に出現させることができる。このように、統一システム110は、アクセシビリティ要素を含み、かつユーザがGUIの下部分を制御しながらGUIの上部分にアクセスすることを可能にする、モバイルGUIをインスタンス化することができる。GUIコンテンツ及び/又はプログラム要素は、統一システム110から供給されてもよい。次いで、モバイルデバイス140は、これらのプログラム要素を実行して、対応するGUI及び/又はカーソル制御を表示することができる。このように、本明細書で説明されるカーソル制御は、コンピューティングデバイス上で実行しGUIを表示する任意のプログラムに適用されてもよい。
図14Aは、いくつかの実施形態による、カーソルボタン1410を含むモバイルページを表示するGUI1400Aのブロック図を示す。カーソルボタン1410は、GUI1400A上のスペースを占有し、ユーザがGUI1400Aの別個の部分にカーソルを生成することを可能にする。一実施形態において、カーソルボタン1410は、別のボタンと同じスペースを占有してもよい。例えば、カーソルボタン1410は、検索ボタン314と同じスペースを占有し得る。カーソルボタン1410が、検索ボタン314と同じスペースを占有し得るが、カーソルボタン1410にアクセスすることは、検索ボタン314にアクセスすることに対し異なるジェスチャを使用することを含む。
一実施形態において、検索ボタン314を使用することが短押しを含んでもよく、一方、カーソルボタン1410を使用することが長押しを含んでもよい。GUI1400Aがモバイルデバイス140上に表示される場合、モバイルデバイス140は、押しのタイミングに基づいて、検出された対話のタイプを決定することができる。さらに、カーソルボタン1410は、検索ボタン314のスペースを占有するものとして示され得るが、カーソルボタン1410は、GUI1400A上の他のスペースを占有してもよく、特定の対話をもたらすこと(例えば、長押し)が、カーソルボタン1410コマンドを初期化してもよい。
カーソルボタン1410に加えて、GUI1400Aは、アクションボタン1420を含むことができる。アクションボタン1420は、図3Cを参照して説明されたアクションボタン390と同様であってもよい。以下に説明されるように、カーソルボタン1410を使用することで、ユーザが表示画面からアクションボタン1420を選択することを可能にできる。カーソルボタン1410と対話するユーザは、画面にわたりスクラブされ(scrubbed)得るカーソルを生成して、所望のアクションボタン1420を選択することができる。
図14Bは、いくつかの実施形態による、可視カーソル1440を含むモバイルページを表示するGUI1400Bのブロック図を示す。カーソル1440を見せるために、ユーザは、対話1430を使用してカーソルボタン1410を呼び出すことができる。例えば、対話1430は、カーソルボタン1410の長押し、ダブルタップ、形状の描画、及び/又は他の対話であってもよい。長押しの検出に応答して、モバイルデバイス140は、カーソル1440を表示することができる。統一システム110は、モバイルGUIを生成することができるが、モバイルデバイス140がカーソルボタン対話のための処理を管理することを可能にできる。
カーソル1440を表示した後、ユーザは、画面の下部に沿ってスクラブしてカーソル1440を移動させることができる。例えば、この動きは、図14Cで見ることができる。図14Cは、いくつかの実施形態による、カーソル1440の移動を含むモバイルページを表示するGUI1400Cのブロック図を示す。GUI1400BからGUI1400Cに移動するとき見られるように、ユーザが対話1430を右に移動したとき、カーソル1440もまた右に移動することができる。カーソル1440は、アクションボタン1420Aの選択からアクションボタン1420Bの選択に移動することができる。また、ユーザは、対話1430を左に移動させてカーソル1440を左に移動させることもできる。
一実施形態において、この移動は長押しに対応することができる。すなわち、ユーザは、表示画面上で連続的にタップ又は保持して対話1430を生成することができる。ユーザが対話1430を移動させるとき、ユーザは表示画面を押し続けることができる。ユーザは、対話1430を左又は右に移動させて、カーソル1440を左又は右にそれぞれ移動させることができる。さらに、この対話は、アクションボタン1420Dの下に隠されたアクションボタンなどの、他のアクションボタン1420を見せることができる。カーソル1440のためのこのスクロール移動は、アクセシビリティの増加を可能にできる。モバイルデバイス140を保持するユーザは、画面の上部でアクションを制御しながら画面の下部分と対話することができる。GUI操作のこの分割態様は、ユーザが例えば一方の手を使用してGUIをナビゲートすることを可能にできる。このナビゲーションは、ナビゲーションの快適性を高めることができる。
カーソル1440を生成した後、アプリケーションボタンを選択するために、ユーザは、対話1430を解放し、かつ/あるいは対話1430を停止することができる。例えば、対話1430が長押しである場合、押しを解放することで、カーソル1440により現在ハイライトされているアクションボタン1420の選択を示すことができる。次いで、モバイルデバイス140は、選択に対して対応するGUIを生成し、かつ/あるいは要求されたGUIをインスタンス化するために要求を統一システム110送出することができる。この選択は、カーソル1440に対応するアクション又はアクションボタン1420を実行することができる。
前に論じられたように、対話1430は、GUI1400Bの異なる部分に現れることができる。例えば、検索ボタン314を押すのでなく、カーソルボタン1410は、画面又はGUIの部分により表されてもよい。例えば、カーソルボタン1410は、画面の下半分又は下3分の1として定義されてもよい。モバイルデバイス140が、カーソルボタン1410を呼び出す対話1430を検出したとき、モバイルデバイス140は、カーソル1440を表示することができる。
同様に、カーソル1440は、対話1430の移動に応答して移動するオブジェクトであってもよい。一実施形態において、この移動は、1方向であってもよい。例えば、対話1430が左又は右に移動すると、カーソル1440もまた左又は右に移動することができる。カーソル1440は、指定されたトラックに沿って移動してもよく、かつ/あるいはGUI1400B又はGUI1400C上に表示されるアイコンに貼りついてもよい。一実施形態において、カーソル1440は、指定されたトラックに従わなくてもよく、任意の位置に移動可能であってもよい。
いくつかの実施形態において、カーソル1440は、2次元の位置に移動されてもよい。この移動は、マウスカーソル移動に似ていてもよい。対話1430は、カーソル1440に対して、GUIの異なる部分に移動し、及び/又は異なるGUI要素と対話するように指示することができる。また、この移動は、ユーザがGUI上でナビゲートするための有益なアクセシビリティオプションを提供することができる。
図15は、いくつかの実施形態による、カーソル1440を生成する方法1500を示すフローチャートを示す。方法1500は、図1を参照して説明される。しかしながら、方法1500は、その例示的な実施形態に限定されない。
一実施形態において、統一システム110及び/又はモバイルデバイス140は、方法1500を利用してGUIカーソル1440を生成することができる。前述の説明は、GUI1400A〜1400Cに関して方法1500の実行の一実施形態を説明するが、カーソルを含む任意のGUIに適用可能でもよい。方法1500は統一システム110及び/又はモバイルデバイス140を参照して説明されるが、方法1500は、例えば、図18を参照して説明されるコンピュータシステム、及び/又はハードウェア(例えば、回路、専用論理、プログラマブル論理、マイクロコード等)、ソフトウェア(例えば、処理デバイス上で実行する命令)、又はこれらの組み合わせを含み得る処理論理などの、任意のコンピューティングデバイス上で実行されてもよい。
本明細書に提供される開示を実施するために全てのステップが必要とされ得るわけではないことを十分理解されたい。さらに、当業者により理解されるように、ステップのいくつかが同時に、又は図15に示されているものと異なる順序で実行されてもよい。
一実施形態において、1510において、統一システム110及び/又はモバイルデバイス140が、第1のGUI部分及び第2のGUI部分を有するGUIのインスタンスを生成することができる。統一システム110は、コマンドをモバイルデバイス140に供給して特定のGUIをインスタンス化することができる。次いで、モバイルデバイス140は、インスタンス化されたGUIを表示画面上に表示することができる。モバイルデバイス140は、例えば、GUI1400Aを表示してもよい。GUI1400Aは、アクションボタン1420を表す第1のGUI部分及び/又はカーソルボタン1410を表す第2のGUI部分を含んでもよい。
1520において、モバイルデバイス140が、第1のGUI部分において選択対話1430を受け取ることができる。1530において、モバイルデバイス140が、第1のGUI部分における選択対話をカーソル1440ジェスチャとして識別することができる。選択対話1430は、カーソルボタン1410を呼び出す特定の対話であってもよい。例えば、対話1430は、長押し、又はダブルタップ、又は描画された特定の形状であってもよい。統一システム110により提供され、かつ/あるいはモバイルデバイス140にローカルに記憶されたプログラムされた論理に基づいて、モバイルデバイス140は選択対話を決定することができる。
1540において、選択対話1430の識別に応答して、モバイルデバイス140が、第2のGUI部分上にGUIカーソル1440を生成することができる。上述のように、このGUIカーソル1440は、ユーザが第1のGUI部分と対話して第2のGUI部分に制御を提供することを可能にできる。ユーザは、スクラブ又はスクロールモーションを使用してカーソルを移動させて、例えばアクションボタン1420などの異なるGUIボタンを選択することができる。対話1430を解放することで、アクションボタン1420又は第2のGUI部分の要素のユーザ選択を示してもよい。選択に基づいて、モバイルデバイス140は、選択を処理のために統一システム110に送信することができ、かつ/あるいは処理をローカルで扱うことができる。
[アプリケーションフレームワーク及びアプリケーション選択]
図16A〜図17に関して以下にさらに説明されるように、統一システム110は、異なるアプリケーション間の切り替えと、選択されたアプリケーションに依存して更新されたGUIの提供とをさらに容易にすることもできる。このように、統一システム110は、モバイルデバイス140及びデスクトップデバイス150上でインスタンス化されたGUIの統一を維持しながら、異なるアプリケーション及びアプリケーションタイプを実現するフレームワークを提供することができる。また、統一システムは、異なる関係者により開発された異なるアプリケーションをロードし、各アプリケーションについて一貫したレイアウトを維持することができる。
図16Aは、いくつかの実施形態による、モバイルアプリケーションメニューページを表示するGUI1600Aのブロック図を示す。GUI1600Aは、図3Aに示されるGUI300Aと同様であってもよい。GUI1600Aは、統一システム110によりインスタンス化されてもよく、かつ/あるいはモバイルデバイス140上に表示されてもよい。
GUI1600Aは、特定のアプリケーションのオブジェクト1620を表示するメニューページを示すことができる。ユーザは、例えば、図3Aを参照して説明されたようにメニューボタン318を選択することにより、メニューページにアクセスすることができる。GUI1600Aはアプリケーションメニューボタン1610を含んでもよく、アプリケーションメニューボタン1610はアプリケーションメニューボタン315と同様でもよい。アプリケーションメニューボタン1610と対話することで、ユーザが異なるアプリケーションを選択することを可能にできる。オブジェクト1620との対話は、ユーザがオブジェクト1620に対応するページを見ることを可能にできる。GUI1600Aは、ナビゲーションの容易さのためにオブジェクト1620をリスト1630として提示することができる。図10に関して前述したように、GUIは、列挙されたオブジェクト1620に対応するナビゲーションメニュー1030を見せることができるナビゲーションボタンを含んでもよい。一実施形態において、ナビゲーションメニュー1030は、メニューページ上で見られるリスト1630の短縮バージョンであってもよい。
リスト1630及びオブジェクト1620は、現在選択されているアプリケーションに対応することができる。図16Bに関して説明されるように、及び図2Aに関して前述されたように、ユーザは、異なるアプリケーションを選択することができる。この選択は、リスト1630、オブジェクト1620、及び/又はナビゲーションメニュー1030を改変することができる。
図16Bは、いくつかの実施形態による、モバイルアプリケーション選択ページ1605を表示するGUI1600Bのブロック図を示す。統一システム110は、アプリケーションメニューボタン1610における選択の受信に応答して、モバイルデバイス140上に表示されるべきGUI1600Bをインスタンス化することができる。アプリケーション選択ページ1605に列挙されるのは、アプリケーションボタン1615であってもよい。アプリケーションボタン1615は、図2Aを参照して説明されたアプリケーションボタン215と同様であってもよい。特定のアプリケーションボタン1615を選択することで、ユーザが異なる利用可能なアプリケーションの間で選択することを可能にできる。一実施形態において、GUI1600Aは、アプリケーションボタン1615Aに対応していてもよい。しかしながら、アプリケーションボタン1615Bなどの異なるアプリケーションボタンを選択することで、異なるメニューページ及び/又は異なる対応するオブジェクトを結果としてもたらすことができる。
これらの選択オブジェクトから分かるように、統一システム110は、ユーザが選択及び/又は利用するための複数のアプリケーションをサポートすることができる。統一システム110は、クラウドコンピューティングプラットフォーム及び/又は使用を可能にされたアプリケーションのためのGUIビューをサポートするフレームワークを提供することができる。一実施形態において、クラウドコンピューティングプラットフォームは、予めプログラムされ得る標準供給アプリケーションを利用することができる。クラウドコンピューティングプラットフォームはまた、ユーザ又は管理者がその独自のアプリケーションを作成することも可能にできる。一実施形態において、ユーザは、サードパーティからアプリケーションをダウンロードすることができてもよく、かつ/あるいはアプリケーションマーケットプレイス又はアプリケーション取引所を使用してもよい。ユーザは、これらのアプリケーションをクラウドコンピューティングプラットフォームと共に使用されるようインストールすることができる。
このように、統一システム110は、異なるタイプのアプリケーションをサポートし、デスクトップデバイス150環境及びモバイルデバイス140環境にわたり、結合力のある(cohesive)GUI体験を作り出すことができる。異なるアプリケーション、アプリケーションタイプ、及び/又は異なるアプリケーションソースにわたる、この結合力のあるルックアンドフィールの生成は、管理者及び/又はユーザのためのより良いスケーラビリティ及びカスタマイズを可能にできる。このように、統一システム110は、異なるアプリケーションを管理するためのフレームワーク又はコンテナとして機能し、あるいはその中に含まれることができる。
GUI1600Bに戻り、ユーザは、アプリケーションボタン1615Bを選択するよう決定することができる。アプリケーションボタン1615Bに対応するアプリケーションは、タイプ及び/又はソースにおいて、アプリケーションボタン1615Aに対応する前に見られていたアプリケーションと異なってもよい。選択に応答して、モバイルデバイス140は、選択の指示を統一システム110に送信することができる。次いで、統一システム110は、GUI1600Cなどの対応するGUIをインスタンス化することができる。
図16Cは、いくつかの実施形態による、更新されたモバイルアプリケーションメニューページを表示するGUI1600Cのブロック図を示す。この選択は、アプリケーションとの対応に基づいて、利用可能なオブジェクト及びナビゲーションメニューを変更することができる。
GUI1600Cは、GUI1600Aと同様のアプリケーションメニューボタン1610を含むことができる。アプリケーションメニューボタン1610と対話することで、GUI1600Bをインスタンス化し、ユーザが別のアプリケーションボタン1615を選択することを可能にできる。
ユーザが別のアプリケーションを選択したため、統一システム110は、該別のアプリケーションをインスタンス化し、更新されたオブジェクト1640、更新されたリスト1650、更新されたナビゲーションメニュー1680、更新されたナビゲーションボタン1660、及び/又は更新されたナビゲーションオブジェクト1670を提供することができる。これらの更新されたコンポーネントは、機能において、過去のオブジェクト及びナビゲーション要素と同様であってもよい。しかしながら、更新されたバージョンは、新たに選択されたアプリケーション及びアプリケーションボタン1615に対応することができる。
例えば、リスト1650及びオブジェクト1640は、新たに選択されたアプリケーションのオブジェクトを表すことができる。選択に応答して、モバイルデバイス140は、新たに選択されたアプリケーションを今やサポートし、ユーザが対応するオブジェクト1640と対話することを可能にできる。
同様に、ナビゲーションメニュー1680は、オブジェクト1640に対応するナビゲーションオブジェクト1670を含むように更新されている。ナビゲーションメニュー1680は、それが折りたたみ可能であっても更新され得る。このように、ユーザがナビゲーションボタン1660と対話してナビゲーションメニュー1680を見せるとき、ユーザは、ナビゲーションオブジェクト1670から選択して、新たに選択されたアプリケーションの異なる部分にナビゲートすることができる。アプリケーションボタン1615Bに対応する新たに選択されたアプリケーションは、アプリケーションボタン1615Aに対応するアプリケーションと異なり得るその独自のデータレコード及び/又は実行可能プログラムセットを含んでもよい。しかしながら、統一システム110は、ユーザがモバイルデバイス140上及び/又はデスクトップデバイス150上のこれらのアプリケーションの間で切り替えることを可能にできてもよい。このように、統一システム110は、フレームワーク又はコンテナとして動作することができ、異なるアプリケーションにわたり同様であり得るルックアンドフィールを維持しながら、異なるアプリケーションをサポートすることができる。
図17は、いくつかの実施形態による、アプリケーションに対応するオブジェクトのリストを置換する方法1700を示すフローチャートを示す。方法1700は、図1を参照して説明される。しかしながら、方法1700は、その例示的な実施形態に限定されない。
一実施形態において、統一システム110は、方法1700を利用して、選択されたアプリケーションに基づいてオブジェクトのリストを更新し、かつ/あるいは置換することができる。前述の説明は、GUI1600A〜1600Cに関して方法1700の実行の一実施形態を説明するが、複数のアプリケーションをサポートする任意のGUIに適用可能でもよい。方法1700は統一システム110を参照して説明されるが、方法1700は、例えば、図18を参照して説明されるコンピュータシステム、及び/又はハードウェア(例えば、回路、専用論理、プログラマブル論理、マイクロコード等)、ソフトウェア(例えば、処理デバイス上で実行する命令)、又はこれらの組み合わせを含み得る処理論理などの、任意のコンピューティングデバイス上で実行されてもよい。
本明細書に提供される開示を実施するために全てのステップが必要とされ得るわけではないことを十分理解されたい。さらに、当業者により理解されるように、ステップのいくつかが同時に、又は図17に示されているものと異なる順序で実行されてもよい。
一実施形態において、1710において、統一システム110が、第1のアプリケーションに対応するGUIのインスタンスを生成することができ、GUIは、第1のアプリケーションに対応するオブジェクトの第1のリストを含む。例えば、統一システム110は、オブジェクト1620のリスト1630を有するGUI1600Aを生成することができる。オブジェクト1620は、特定のアプリケーションに対応することができる。アプリケーションが選択されている間、ユーザは、様々なオブジェクト及び/又はGUIコンポーネントを通してアプリケーションと対話することができる。これらの対話は、アプリケーションに対応するレコード、プログラム、及び/又はコマンドを操作することができる。
1720において、統一システム110が、第2のアプリケーションを選択する、GUIにおける選択対話を受信することができる。例えば、モバイルデバイス140は、GUI1600A及び/又はアプリケーションメニューボタン1610を表示することができる。ユーザは、アプリケーションメニューボタン1610を選択することができる。モバイルデバイス140は、この選択を統一システム110に送信することができる。応答して、統一システム110は、利用可能なアプリケーションのリストを送信し、かつ/あるいはGUI1600Bに表示されるように利用可能なアプリケーションボタン1615をインスタンス化することができる。次いで、ユーザは、選択ページ1605からアプリケーションボタン1615を選択することができる。モバイルデバイス140は、この選択を処理してもよく、この選択の指示を統一システム110に送信してもよい。
1730において、選択対話の受信に応答して、統一システム110が、オブジェクトの第1のリストを、第2のアプリケーションに対応するオブジェクトの第2のリストで置換することができる。統一システム110は、例えば、GUI1600Cをインスタンス化することができる。統一システム110は、リスト1630をリスト1650で置換することができる。同様に、統一システム110は、オブジェクト1620をオブジェクト1640で置換することができる。統一システム110はまた、ナビゲーションメニュー1680を修正して、更新されたナビゲーションオブジェクト1670を有する更新されたナビゲーションメニュー1680とナビゲーションボタン1660とを含めることもできる。このGUIを使用し、ユーザは、統一システム110により管理されるフレームワークで供給されるように、異なるアプリケーションをナビゲートし、かつ/あるいは対話することができる。
図16A〜図17は、モバイルデバイス140のための異なるアプリケーションオプションを説明したが、統一システム110は、これらの異なるアプリケーションをデスクトップデバイス150のために維持することもできる。上記で論じられたように、デスクトップデバイス150上で実行される修正は、統一システム110によりモバイルデバイス140上で再現され得る。このように、統一システム110は、異なる管理者カスタマイズパラメータ、異なるアプリケーションカスタマイズパラメータ、及び/又は異なるユーザパーソナライゼーションパラメータを管理することができ、それにより、特定のルックアンドフィールが、異なるユーザデバイスにわたり再現され得る。このように、統一システム110は、異なるユーザデバイスについてユーザに対する特定のGUIレイアウトを編成することを支援できる。ユーザは、複数のタイプのユーザデバイスにわたり、フレームワーク及び統一システム110によりインスタンス化されたGUIを使用して、異なるアプリケーションオブジェクト及びレコードページ内をより迅速にナビゲートすることができ得る。
[例示的なコンピュータシステム]
様々な実施形態が、例えば、図18に示されるコンピュータシステム1800などの1つ以上の良く知られたコンピュータシステムを使用して実現できる。1つ以上のコンピュータシステム1800は、例えば、本明細書で論じられた実施形態のうち任意のもの、並びにこれらの組み合わせ及びサブコンビネーションを実現するために使用できる。
コンピュータシステム1800は、1つ以上のプロセッサ(中央処理ユニット又はCPUとも呼ばれる)、例えばプロセッサ1804などを含むことができる。プロセッサ1804は、通信インフラストラクチャ又はバス1806に接続されてもよい。
コンピュータシステム1800は、ユーザ入力/出力インターフェース1802を通して通信インフラストラクチャ1806と通信できるユーザ入力/出力デバイス1803、例えば、モニタ、キーボード、ポインティングデバイスなどをさらに含むことができる。
プロセッサ1804の1つ以上が、グラフィックス処理ユニット(GPU)であってもよい。一実施形態において、GPUは、数学的に集中的なアプリケーションを処理するように設計された、特化された電子回路であるプロセッサでもよい。GPUは、コンピュータグラフィクスアプリケーション、画像、ビデオ等に共通の数学的に集中的なデータなどの、データの大きいブロックの並列処理に対して効率的な並列構造を有し得る。
コンピュータシステム1800は、メイン又はプライマリメモリ1808、例えば、ランダムアクセスメモリ(RAM)などをさらに含むことができる。メインメモリ1808は、1つ以上のレベルのキャッシュを含んでもよい。メインメモリ1808は、その中に制御論理(すなわち、コンピュータソフトウェア)及び/又はデータを記憶していてもよい。
コンピュータシステム1800は、1つ以上のセカンダリストレージデバイス又はメモリ1810をさらに含むことができる。セカンダリメモリ1810は、例えば、ハードディスクドライブ1812及び/又は取外し可能ストレージデバイス若しくはドライブ1814を含んでもよい。取外し可能ストレージドライブ1814は、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスクドライブ、光学ストレージデバイス、テープバックアップデバイス、及び/又は任意の他のストレージデバイス/ドライブでもよい。
取外し可能ストレージドライブ1814は、取外し可能ストレージユニット1818と対話することができる。取外し可能ストレージユニット1818は、コンピュータソフトウェア(制御論理)及び/又はデータを記憶させたコンピュータ使用可能又は読取可能ストレージデバイスを含んでもよい。取外し可能ストレージユニット1818は、フロッピーディスク、磁気テープ、コンパクトディスク、DVD、光学ストレージディスク、及び/任意の他のコンピュータデータストレージデバイスでもよい。取外し可能ストレージドライブ1814は、取外し可能ストレージユニット1818から読み出し、かつ/あるいは取外し可能ストレージユニット1818に書き込むことができる。
セカンダリメモリ1810は、コンピュータプログラム及び/又は他の命令及び/又はデータがコンピュータシステム1800によりアクセスされることを可能にする他の手段、デバイス、コンポーネント、媒介、又は他のアプローチを含んでもよい。こうした手段、デバイス、コンポーネント、媒介、又は他のアプローチは、例えば、取外し可能ストレージユニット1822及びインターフェース1820を含むことができる。取外し可能ストレージユニット1822及びインターフェース1820の例は、プログラムカートリッジ及びカートリッジインターフェース(例えば、ビデオゲームデバイスで見られるものなど)、取外し可能メモリチップ(例えば、EPROM又はPROMなど)及び関連づけられたソケット、メモリスティック及びUSBポート、メモリカード及び関連づけられたメモリカードスロット、及び/又は任意の他の取外し可能ストレージユニット及び関連づけられたインターフェースを含んでもよい。
コンピュータシステム1800は、通信又はネットワークインターフェース1824をさらに含むことができる。通信インターフェース1824は、コンピュータシステム1800が(参照番号1828により個々に及び集合的に参照される)外部デバイス、外部ネットワーク、外部エンティティ等の任意の組み合わせと通信及び対話することを可能にし得る。例えば、通信インターフェース1824は、コンピュータシステム1800が通信経路1826を通じて外部又はリモートデバイス1828と通信することを可能にでき、通信経路1826は、有線及び/又は無線(又はこれらの組み合わせ)でもよく、通信経路1826は、LAN、WAN、インターネット等の任意の組み合わせを含んでもよい。制御論理及び/又はデータが、通信経路1826を介してコンピュータシステム1800に、及びコンピュータシステム1800から送信されてもよい。
コンピュータシステム1800はまた、いくつかの非限定的な例を挙げると、パーソナルデジタルアシスタント(PDA)、デスクトップワークステーション、ラップトップ若しくはノートブックコンピュータ、ネットブック、タブレット、スマートフォン、スマートウォッチ若しくは他のウェアラブル、電化製品、モノのインターネットの一部、及び/又は埋め込みシステム、又はこれらの任意の組み合わせであってもよい。
コンピュータシステム1800は、これらに限定されないがリモート若しくは分散クラウドコンピューティングソリューション、ローカル若しくはオンプレミスソフトウェア(「オンプレミス」クラウドベースソリューション)、「アズ・ア・サービス(as a service)」モデル(例えば、コンテンツ・アズ・ア・サービス(content as a service、CaaS)、デジタルコンテンツ・アズ・ア・サービス(digital content as a service、DCaaS)、ソフトウェア・アズ・ア・サービス(software as a service、SaaS)、管理ソフトウェア・アズ・ア・サービス(managed software as a service、MSaaS)、プラットフォーム・アズ・ア・サービス(platform as a service、PaaS)、デスクトップ・アズ・ア・サービス(desktop as a service、DaaS)、フレームワーク・アズ・ア・サービス(framework as a service、FaaS)、バックエンド・アズ・ア・サービス(backend as a service、BaaS)、モバイルバックエンド・アズ・ア・サービス(mobile backend as a service、MBaaS)、インフラストラクチャ・アズ・ア・サービス(infrastructure as a service、IaaS)等)、及び/又は前述の例又は他のサービス若しくは配信パラダイムの任意の組み合わせを含むハイブリッドモデルを含む、任意の配信パラダイムを通して任意のアプリケーション及び/又はデータについてアクセス又はホストするクライアント又はサーバであってもよい。
コンピュータシステム1800における任意の適用可能なデータ構造、ファイルフォーマット、及びスキーマは、これらに限られないがJavaScript(登録商標) Object Notation(JSON)、拡張可能マークアップ言語(Extensible Markup Language、XML)、イェット・アナザー・マークアップ言語(Yet Another Markup Language、YAML)、拡張可能ハイパーテキストマークアップ言語(Extensible Hypertext Markup Language、XHTML)、ワイヤレスマークアップ言語(Wireless Markup Language、WML)、MessagePack、XMLユーザインターフェース言語(XML User Interface Language、XUL)、又は任意の他の機能的に同様の表現を単独又は組み合わせで含む、標準から導出されてもよい。代替的に、専有のデータ構造、フォーマット、又はスキーマが、排他的に、又は既知若しくはオープンの標準との組み合わせで使用されてもよい。
いくつか実施形態において、制御論理(ソフトウェア)を記憶させた有形の非一時的コンピュータ使用可能又は読取可能媒体を含む有形の非一時的装置又は製造品が、本明細書でコンピュータプログラムプロダクト又はプログラム記憶装置としてさらに参照され得る。これは、これらに限られないがコンピュータシステム1800、メインメモリ1808、セカンダリメモリ1810、及び取外し可能ストレージユニット1818及び1822、並びに前述の任意の組み合わせを具現化した有形製造品を含む。こうした制御論理は、1つ以上のデータ処理デバイス(例えば、コンピュータシステム1800など)により実行されたとき、上記データ処理デバイスに本明細書で説明されたように動作させることができる。
本開示に含まれる教示に基づき、図18に示されるもの以外のデータ処理デバイス、コンピュータシステム、及び/又はコンピュータアーキテクチャを使用して本開示の実施形態を作成及び使用する方法が当業者に明らかになるであろう。詳細には、実施形態は、本明細書に説明されるもの以外のソフトウェア、ハードウェア、及び/又はオペレーティングシステム実装で動作することができる。
他のセクションでなく詳細な説明セクションが、特許請求の範囲を解釈するために使用されるよう意図されることを十分理解されたい。他のセクションは、発明者により企図されるすべてではないが1つ以上の例示的な実施形態を説明することができ、ゆえに、いかなる方法でも本開示又は別記の特許請求の範囲を限定するようには意図されない。
本開示は、例示的な分野及び適用に対して例示的な実施形態を説明するが、開示はそれに限定されないことを理解されたい。他の実施形態及びこれに対する変更が可能であり、本開示の範囲及び主旨の範囲内である。例えば、この段落の一般性を限定することなく、実施形態は、図面に例示され、及び/又は本明細書に説明されるソフトウェア、ハードウェア、ファームウェア、及び/又はエンティティに限定されない。さらに、実施形態は(本明細書で明示的に説明されるか否かにかかわらず)、本明細書に説明される例を越えた分野及び適用に対して有意な有用性を有する。
実施形態が、指定された機能及びその関係の実現を例示する機能構築ブロックを用いて本明細書で説明された。これら機能構築ブロックの境界は、説明の簡便さのために本明細書で任意的に定義されている。指定された機能及び関係(又は、その同等物)が適切に実行される限り、代替的な境界が定義されてもよい。さらに、代替的な実施形態が、本明細書に説明されるものと異なる順序づけを使用して機能ブロック、ステップ、動作、方法等を実行することができる。
本明細書において、「1つの実施形態」、「一実施形態」、「一例示的な実施形態」、又は同様のフレーズに対する参照は、説明される実施形態が特定の特徴、構造、又は特性を含み得るが、あらゆる実施形態が必ずしも上記特定の特徴、構造、又は特性を含み得るわけではないことを示す。さらに、こうしたフレーズは、必ずしも同じ実施形態を参照するわけではない。さらに、特定の特徴、構造、又は特性が一実施形態に関連して説明されたとき、こうした特徴、構造、又は特性を本明細書で明示的に言及又は説明されているか否かにかかわらず他の実施形態に組み込むことは、当業者の知識の範囲内である。さらに、いくつかの実施形態は、表現「結合された」及び「接続された」をその派生形と共に使用して説明されることがある。これら用語は、必ずしも互いの同義語として意図されない。例えば、いくつかの実施形態は、2つ以上の要素が互いに直接物理的又は電気的に接触することを示すために、用語「接続された」及び/又は「結合された」を使用して説明されることがある。しかしながら、用語「結合された」は、2つ以上の要素が互いに直接接触しないが、しかし依然として互いに協働又は対話することをさらに意味することがある。
本開示の幅及び範囲は、上記で説明された例示的な実施形態のいずれによっても限定されるべきでなく、別記の特許請求の範囲及びその均等物に従ってのみ定義されるべきである。