(57)【特許請求の範囲】
【請求項１】
携帯機器上でエンタープライズアプリケーションの隔離されたワークスペース環境を保持する方法において、
前記携帯機器上にインストールするためのエンタープライズアプリケーションを受け取ることであって、前記エンタープライズアプリケーションのバイナリ実行可能ファイルには、前記エンタープライズアプリケーションに対して、前記携帯機器にインストールされたアプリケーション管理エージェントと通信し、ユーザが前記エンタープライズアプリケーションにアクセスできる能力を統制するセキュリティポリシを受け取るように強制する機能が導入されており、前記セキュリティポリシが、前記隔離されたワークスペースを有効のままにすることに関する有効期間の値を含む、前記受け取ること、
前記アプリケーション管理エージェントによって、前記エンタープライズアプリケーションに、前記携帯機器に保存された前記隔離されたワークスペースに関する暗号化メッセージを共有するための複数の暗号キーを提供すること、
前記エンタープライズアプリケーションのうちの１つの起動時に、起動されたエンタープライズアプリケーションによって、前記アプリケーション管理エージェントにより提供された複数の暗号キーのうちの一つを用いてワークスペースの失効期限の値を暗号化し、起動されたエンタープライズアプリケーションによって、暗号化されたワークスペースの失効期限の値を前記携帯機器上に暗号化メッセージとして保存することであって、前記ワークスペースの失効期限の値は有効期間の値の関数であり、前記隔離されたワークスペースが有効のままである期間を示す、前記保存すること、
前記ワークスペースの失効期限の値を、前記ユーザが前記起動されたエンタープライズアプリケーションを引き続き使っている場合は前記起動されたエンタープライズアプリケーションによって、または失効期限の値が満了する前に前記ユーザが少なくとも１つの他のエンタープライズアプリケーションを起動した場合は前記他のエンタープライズアプリケーションによって延長すること、
前記ユーザによる前記エンタープライズアプリケーションのいずれの作動もなかったことによって前記ワークスペースの失効期限の値が満了した場合に、前記隔離されたワークスペース内での前記エンタープライズアプリケーションの使用を継続するために、前記アプリケーション管理エージェントによって前記ユーザに認証証明情報を要求すること、
を備える方法。
【請求項２】
前記アプリケーション管理エージェントが、企業により管理されるリモートサーバからセキュリティポリシを取得する、請求項１に記載の方法。
【請求項３】
前記隔離されたワークスペースに関係する前記共有の暗号化メッセージが、前記エンタープライズアプリケーションと前記アプリケーション管理エージェントにしか知られない前記携帯機器のペーストボードに保存される、請求項１に記載の方法。
【請求項４】
前記ユーザに前記認証証明情報を要求することが、
前記携帯機器上にＰＩＮまたはパスワードロックスクリーンを表示することを含む、請求項１に記載の方法。
【請求項５】
挿入された機能がさらに、前記エンタープライズアプリケーションに対し、前記セキュリティポリシに従って安全なデータチャネルを通じて通信するように強制する、請求項１に記載の方法。
【請求項６】
前記安全なデータチャネルが、ある企業のＶＰＮゲートウェイへのＶＰＮトンネルである、請求項５に記載の方法。
【請求項７】
前記エンタープライズアプリケーションと前記アプリケーション管理エージェントが、同時には動作せず、前記携帯機器のＵＲＬハンドラを使って、実行フローを他方に移行させるように要求する、請求項１に記載の方法。
【請求項８】
プロセッサによって実行された時に前記プロセッサに対し、携帯機器上でエンタープライズアプリケーションの隔離されたワークスペース環境を保持する方法を実行させるような命令を保存した非一時的記憶媒体において、前記方法が、
前記携帯機器上にインストールするためのエンタープライズアプリケーションを受け取ることであって、前記エンタープライズアプリケーションのバイナリ実行可能ファイルには、前記エンタープライズアプリケーションに対して、前記携帯機器にインストールされたアプリケーション管理エージェントと通信し、ユーザが前記エンタープライズアプリケーションにアクセスできる能力を統制するセキュリティポリシを受け取るように強制する機能が挿入されており、前記セキュリティポリシが、前記隔離されたワークスペースを有効のままにすることに関する有効期間の値を含む、前記受け取ること、
前記アプリケーション管理エージェントによって、前記エンタープライズアプリケーションに、前記携帯機器に保存された前記隔離されたワークスペースに関する暗号化メッセージを共有するための複数の暗号キーを提供すること、
前記エンタープライズアプリケーションのうちの１つの起動時に、起動されたエンタープライズアプリケーションによって、前記アプリケーション管理エージェントにより提供された複数の暗号キーのうちの一つを用いてワークスペースの失効期限の値を暗号化し、起動されたエンタープライズアプリケーションによって、暗号化されたワークスペースの失効期限の値を前記携帯機器上に暗号化メッセージとして保存することであって、前記ワークスペースの失効期限の値は有効期間の値の関数であり、前記隔離されたワークスペースが有効のままである期間を示す、前記保存すること、
前記ワークスペースの失効期限の値を、前記ユーザが前記起動されたエンタープライズアプリケーションを引き続き使っている場合は前記起動されたエンタープライズアプリケーションによって、または失効期限の値が満了する前に前記ユーザが少なくとも１つの他のエンタープライズアプリケーションを起動した場合は前記他のエンタープライズアプリケーションによって延長すること、
前記ユーザによる前記エンタープライズアプリケーションのいずれの作動もなかったことによって前記ワークスペースの失効期限の値が満了した場合に、前記隔離されたワークスペース内での前記エンタープライズアプリケーションの使用を継続するために、前記アプリケーション管理エージェントによって前記ユーザに認証証明情報を要求すること、
を備える、非一時的記憶媒体。
【請求項９】
前記アプリケーション管理エージェントが、企業により管理されるリモートサーバからセキュリティポリシを取得する、請求項８に記載の非一時的記憶媒体。
【請求項１０】
前記隔離されたワークスペースに関係する前記共有の暗号化メッセージが、前記エンタープライズアプリケーションと前記アプリケーション管理エージェントにしか知られない前記携帯機器のペーストボードに保存される、請求項８に記載の非一時的記憶媒体。
【請求項１１】
前記ユーザに前記認証証明情報を要求することが、
前記携帯機器上にＰＩＮまたはパスワードロックスクリーンを表示することを含む、請求項８に記載の非一時的記憶媒体。
【請求項１２】
前記挿入された機能がさらに、前記エンタープライズアプリケーションに対し、前記セキュリティポリシに従って安全なデータチャネルを通じて通信するように強制する、請求項８に記載の非一時的記憶媒体。
【請求項１３】
前記安全なデータチャネルが、ある企業のＶＰＮゲートウェイへのＶＰＮトンネルである、請求項１２に記載の非一時的記憶媒体。
【請求項１４】
前記エンタープライズアプリケーションと前記アプリケーション管理エージェントが、同時には動作せず、前記携帯機器のＵＲＬハンドラを使って、実行フローを他方に移行させるように要求する、請求項８に記載の非一時的記憶媒体。
【請求項１５】
コンピュータシステムにおいて、
プロセッサと、
前記プロセッサによって実行された時に前記プロセッサに対し、携帯機器上でエンタープライズアプリケーションの隔離されたワークスペース環境を保持する方法を実行させるような命令を保存した非一時的記憶媒体と、
を含み、前記方法が、
前記携帯機器上にインストールするためのエンタープライズアプリケーションを受け取ることであって、前記エンタープライズアプリケーションのバイナリ実行可能ファイルには、前記エンタープライズアプリケーションに対して、前記携帯機器にインストールされたアプリケーション管理エージェントと通信し、ユーザが前記エンタープライズアプリケーションにアクセスできる能力を統制するセキュリティポリシを受け取るように強制する機能が挿入されており、前記セキュリティポリシが、前記隔離されたワークスペースを有効のままにすることに関する有効期間の値を含む、前記受け取ること、
前記アプリケーション管理エージェントによって、前記エンタープライズアプリケーションに、前記携帯機器に保存された前記隔離されたワークスペースに関する暗号化メッセージを共有するための複数の暗号キーを提供すること、
前記エンタープライズアプリケーションのうちの１つの起動時に、起動されたエンタープライズアプリケーションによって、前記アプリケーション管理エージェントにより提供された複数の暗号キーのうちの一つを用いてワークスペースの失効期限の値を暗号化し、起動されたエンタープライズアプリケーションによって、暗号化されたワークスペースの失効期限の値を前記携帯機器上に暗号化メッセージとして保存することであって、前記ワークスペースの失効期限の値は有効期間の値の関数であり、前記隔離されたワークスペースが有効のままである期間を示す、前記保存すること、
前記ワークスペースの失効期限の値を、前記ユーザが前記起動されたエンタープライズアプリケーションを引き続き使っている場合は前記起動されたエンタープライズアプリケーションによって、または失効期限の値が満了する前に前記ユーザが少なくとも１つの他のエンタープライズアプリケーションを起動した場合は前記他のエンタープライズアプリケーションによって延長すること、
前記ユーザによる前記エンタープライズアプリケーションのいずれの作動もなかったことによって前記ワークスペースの失効期限の値が満了した場合に、前記隔離されたワークスペース内での前記エンタープライズアプリケーションの使用を継続するために、前記アプリケーション管理エージェントによって前記ユーザに認証証明情報を要求すること、
を備える、コンピュータシステム。
【請求項１６】
前記アプリケーション管理エージェントが、企業により管理されるリモートサーバからセキュリティポリシを取得する、請求項１５に記載のコンピュータシステム。
【請求項１７】
前記隔離されたワークスペースに関係する前記共有の暗号化メッセージが、前記エンタープライズアプリケーションと前記アプリケーション管理エージェントにしか知られない前記携帯機器のペーストボードに保存される、請求項１５に記載のコンピュータシステム。
【請求項１８】
前記ユーザに前記認証証明情報を要求することが、
前記携帯機器上にＰＩＮまたはパスワードロックスクリーンを表示することを含む、請求項１５に記載のコンピュータシステム。
【請求項１９】
前記挿入された機能がさらに、前記エンタープライズアプリケーションに対し、前記セキュリティポリシに従って安全なデータチャネルを通じて通信するように強制する、請求項１５に記載のコンピュータシステム。
【請求項２０】
前記エンタープライズアプリケーションと前記アプリケーション管理エージェントが、同時には動作せず、前記携帯機器のＵＲＬハンドラを使って、実行フローを他方に移行させるように要求する、請求項１５に記載のコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
この１０年に、携帯機器は音声通信優先機器から携帯型パーソナルコンピュータへと進化を遂げた。携帯機器はもはや単なる音声通信用の機器ではなく、電子メールやウェブブラウジング等の作業に有益なマルチタスキングツールとなっている。携帯機器の現在の傾向は、デスクトップ機能の再現へと向かっている。その結果、携帯機器は豊富なアプリケーションとコアとなるエンタープライズコネクティビティ（core enterprise connectivity）を備える企業内のエンドポイントとなりつつある。企業は、携帯機器をアクセス制限されたデータにアクセスするために特にセットアップする必要がありうるため、社員は私物の機器を仕事専用として犠牲にするか、プライベート用と仕事用を１台ずつ、計２台の機器を持ち運ばなければならないかもしれない。
【０００２】
エンドユーザから見た場合、私物の携帯機器を仕事用の機器と統合することが望ましい。仮想化は、環境を隔離された状態に保ち、２台目の物理的な仕事用機器を不要とすることにより、好都合なソリューションを提供する機会を提供する。１台の私物の携帯機器で仮想化を通じてプライベート環境と仕事環境をサポートすることは、複数の物理的携帯機器が関わる既存のソリューションの魅力的な代替案である。ここ数年の携帯機器におけるハードウェアの急速な革新は、仮想化を通じて複数の環境（例えば、１つまたは複数のバーチャルホン（virtual phone））をサポートできるリソースを有する、ある分類の携帯機器を生み出すに至った。
【０００３】
しかしながら、技術、インフラストラクチャ、ビジネスの観点から見て、モバイル環境が現在、特に複雑であることを考えると、携帯機器に十分な仮想化機能を設けるのは依然として難題である。例えば、モバイルサービス事業者は一般に、企業またはエンドユーザに対し、セキュリティまたは商業的な理由から、そのハードウェアリソースへの完全なアクセスを認めていない。これに加えて、携帯機器のオペレーティングシステムがすべて、仮想化に向いているとはかぎらない。これらは、システムリソースへの十分な特権アクセスを提供しないかもれず、アプリケーションに厳しい制限を設けるかもしれない。例えば、特定のオペレーティングシステムでは、一度に複数のプロセスを実行できない（または、そのための能力が限定的にすぎない）かもしれず、またプロセス間コールメカニズムを一切提供しないかもしれない。したがって、ユーザの仕事関係の会社用機能とその個人用機能を同一の携帯機器に統合することは依然として難しい。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明の１つの実施形態は、１台の携帯機器上でエンタープライズアプリケーション用として隔離されたワークスペース環境を保持するシステムを提供する。このシステムは、その携帯機器にインストールするためのエンタープライズアプリケーションを受け取り、このエンタープライズアプリケーションのバイナリ実行可能ファイルには、エンタープライズアプリケーションに対して、携帯機器にインストールされたアプリケーション管理エージェントと通信し、ユーザがそのエンタープライズアプリケーションにアクセスできる能力を統制するセキュリティポリシ（security policy）を受け取るように強制する機能が導入されている。セキュリティポリシには、隔離されたワークスペースを有効のままにすることに関する有効期間の値が含まれる。さらに、アプリケーション管理エージェントはエンタープライズアプリケーションに、その携帯機器に保存された隔離ワークスペースに関する暗号化メッセージを共有するための暗号キーを提供する。起動時に、エンタープライズアプリケーションの１つがワークスペース失効期限の値を暗号化メッセージとして携帯機器に保存するが、このワークスペース失効期限の値は有効期間の値の関数であり、隔離ワークスペースが有効のままである期間を示す。ワークスペース失効期限の値は、ユーザが起動されたエンタープライズアプリケーションを引き続き使っている場合は起動されたエンタープライズアプリケーションによって、または失効期限の値が満了する前にユーザが少なくとも１つの他のエンタープライズアプリケーションを起動した場合はその他のエンタープライズアプリケーションによって延長される。これに加えて、アプリケーション管理エージェントは、ユーザによるいずれのエンタープライズアプリケーションの作動もなかったことによって、ワークスペース失効期限の値が満了した場合に、隔離されたワークスペース内でのエンタープライズアプリケーションの使用を継続するために、ユーザに認証証明情報を要求する。
【０００５】
この実施形態の変形版において、アプリケーション管理エージェントは、企業により管理されるリモートサーバからセキュリティポリシを取得する。
この実施形態の変形版において、隔離ワークスペースに関係する共有の暗号化メッセージが携帯機器のペーストボード（pasteboard）に保存され、これは、エンタープライズアプリケーションとアプリケーション管理エージェントにしか知られない。
【０００６】
この実施形態の変形版において、ユーザに認証証明情報を要求することは、携帯機器上にＰＩＮまたはパスワードロックスクリーンを表示することを含む。
この実施形態の変形版において、挿入された機能はさらに、エンタープライズアプリケーションに対し、セキュリティポリシに従って安全なデータチャネルを通じて通信するように強制する。
【０００７】
他の変形版において、安全なデータチャネルは、ある企業のＶＰＮゲートウェイへのＶＰＮトンネルである。
この実施形態の変形版において、エンタープライズアプリケーションとアプリケーション管理エージェントは、同時には動作せず、携帯機器のＵＲＬハンドラを使って、実行フローを他方に移行させるように要求する。
【図面の簡単な説明】
【０００８】
【図１】ある実施形態による、携帯電話上の例示的な隔離ワークスペースを示す。
【図２】ある実施形態による、ワークスペースの隔離を容易にする携帯電話の例示的なアーキテクチャを示す。
【図３】ある実施形態による、ワークスペースの隔離を容易にする例示的なアプリケーション管理エージェントを示す。
【図４】ある実施形態による、ワークスペースの隔離を容易にする例示的なアプリケーション管理サーバを示す。
【図５】ある実施形態による、隔離ワークスペース内でアプリケーションを開始するプロセスを示すフローチャートを示す。
【図６】ある実施形態による、隔離ワークスペースをサポートする携帯機器の例示的なアーキテクチャを示す。
【発明を実施するための形態】
【０００９】
図面において、同様の参照番号は同じ図中要素を示す。
以下の説明は、当業者であれば誰でも本発明を製作、使用できるようにするために提示され、具体的な用途とその要求事項に関して提供される。開示されている実施形態に対する各種の変更は、当業者にとって容易に明らかであり、本明細書で定義される一般的原理は他の実施形態や用途にも適用でき、これも本発明の主旨と範囲から逸脱しない。それゆえ、本発明は示されている実施形態に限定されず、特許請求の範囲と矛盾しない最も広い範囲が付与されることとする。
【００１０】
概要
本明細書でさらに説明する実施形態において、１台の携帯機器の上で、１つまたは複数のエンタープライズアプリケーション（enterprise application）のための安全な専用の環境を提供しながら、依然としてユーザの個人用アプリケーションを使用できるようにするという問題は、エンタープライズアプリケーションのためのワークスペース（workspace）の隔離を容易にすることによって解決される。この隔離ワークスペースの中で、エンタープライズアプリケーションは企業ポリシを強制し、データを共有し、会社のリソースにアクセスし、同一機器上のユーザの個人用アプリケーションがエンタープライズアプリケーションにより共有されるデータとリソースにアクセスするのを阻止することができる。
【００１１】
エンタープライズアプリケーションは厳格なセキュリティ要件を有することが多く、許可のないアプリケーションがそのデータにアクセスすることを許可せず、これらは例えば携帯機器上にローカルに保存されていてもよい。従来のコンピュータでは、この問題は、エンタープライズアプリケーションをホストのオペレーティングシステムから隔離された仮想マシンに置くことによって解決できる。しかしながら、前述のように、このような仮想マシンを携帯機器上で実現することは、システムリソースへのアクセスが不十分であり、またモバイルサービス事業者やメーカがセキュリティまたは商業的目的のためにしばしば制限を設けることから、困難である。これに加えて、特定のオペレーティングシステム（ＡｐｐｌｅのｉＯＳ等）は同時プロセスを容易に推進せず、これが仮想化にとって大きな問題となっている。
【００１２】
本明細書で説明する実施形態によれば、エンタープライズアプリケーションを、従来の仮想マシンを実行することなく、同一の携帯機器上で個人用アプリケーションと共に実行できる。これらのエンタープライズアプリケーションは、他の通常のアプリケーションから隔離された安全な専用の「仮想ワークスペース」内に存在できる。１つの具体的な実施形態において、ワークスペースはひとつに、企業ポリシ（enterprise policie）を強制するように修正されたアプリケーションを通じて、またひとつに、最新の企業ポリシを保持する携帯機器上のアプリケーション管理エージェントを通じて実現される。具体的には、修正ユーティリティ（modification utility）が汎用アプリケーションを修正し、その結果、置換されたシステムライブラリコール（system library call）で「ラップされた（wrapped）」アプリケーションが得られる。これらの置換されたシステムコールは「ラッパー（wrapper）」と呼ばれ、アプリケーションの一部となり、ポリシ強制メカニズムとして機能する。例えば、ラッパーにより、特定のエンタープライズアプリケーションはバーチャルプライベートネットワーク（virtual private network : ＶＰＮ）トンネルを介して企業内イントラネットと通信してもよく、携帯機器の通常の、暗号化されていないデータコネクティビティを利用できなくなりうる。そのワークスペース内で実行される各エンタープライズアプリケーションのポリシ強制コンポーネント、すなわちラッパーはまた、エンタープライズアプリケーションに関係するすべてのファイルが暗号化されるように要求することもできる。これに加えて、そのワークスペース内のエンタープライズアプリケーションは、ワークスペースごとのペーストボードまたはクリップボードバッファ等の特定のリソースを共有できるが、その電話機にある他の通常のアプリケーションはこれらのリソースへのアクセスが禁じられる。
【００１３】
以下の開示では、エンタープライズアプリケーションを例にとる。しかしながら、本願の実施形態は、アプリケーションの集合（エンタープライズアプリケーションでもそうでなくてもよい）が、安全な隔離された実行環境の利益を享受できるどのような環境にも適用可能である。さらに、「携帯機器」という用語は、携帯電話、携帯情報端末（ＰＤＡ）機器、タブレットコンピュータ、ポータブルコンピュータを指すことができるが、これらに限定されない。
【００１４】
隔離されたワークスペース
前述のように、本明細書で説明する実施形態は「仮想ワークスペース」の概念を利用して、携帯機器内の個人用環境と会社用環境とを隔離する。このようなワークスペースは、エンタープライズアプリケーションの集合が実行される安全な専用の環境を提供する。例えば、ある企業のＩＴ部門は、社員がその企業の機密または制限対象情報に、その社員の私物の携帯機器を利用して、（例えば、その企業が管理するリモートサーバにアクセスすることによって、またはその携帯機器に安全な方法でそのような情報をローカルに保存することによって）アクセスできるようにする特定のエンタープライズアプリケーションを提供するかもしれない。このようなアプリケーションの例には、電子メールアプリケーション、電話帳、文書管理プログラム、カレンダ、特殊化されたウェブブラウザ、チャット／会議アプリケーション等がある。ワークスペースは、これらのエンタープライズアプリケーションを実行するための隔離された環境を提供し、同一の携帯機器上の許可のないアプリケーションがエンタープライズアプリケーションによって使用されるデータにアクセスするのを防止する。
【００１５】
このようなワークスペースの隔離を容易にするために、エンタープライズアプリケーションの特定の実施形態は、（１）これらが専用の安全なネットワーク接続（例えば、ＶＰＮ等）を使って企業のリソース（例えば、データ、アプリケーションサーバ等）にアクセスし、それが同一の携帯機器上の他のアプリケーションからはアクセスできず、（２）これらがそれら自身の間で特定のローカルリソース（例えば、ファイルストレージとメモリ）を共有できるが、これらのリソースは他のアプリケーションからはアクセスできない、という２つの条件を満たす。後述のように、これらの条件を満たすために、企業は、携帯機器にインストールするためのエンタープライズアプリケーションを準備するが、これは、それらに対して特定のシステムライブラリコール（一般に、Ｉ／Ｏに関連付けられる）をカスタム化されたコールに置き換え、またはそこに割り込ませるオフラインラッピングプロセス（offline wrapping process）を実行することによって行われ、そのためには、エンタープライズアプリケーションに、例えばこれらのカスタム化されたコールを含むダイナミックリンクライブラリ（すなわち、これらのライブラリは当初のエンタープライズアプリケーションを取り囲む「ラッパー」と呼ばれる）を「導入（injecting）」するか、これらのカスタム化されたコールを含むスタティックライブラリとプレリンクする。例えば、１つの実施形態において、企業はオフラインユーティティツールを使ってエンタープライズアプリケーションのバイナリ実行可能命令（例えば、Ａｐｐｌｅ  ｉＯＳの実施形態のＭａｃｈ−Ｏファイル等）を修正して、そのエンタープライズアプリケーションに、そのエンタープライズアプリケーションが携帯機器上で起動された時に１つまたは複数の指定されたダイナミックリンクライブラリ（例えば、Ａｐｐｌｅ  ｉＯＳの実施形態の．ｄｙｌｉｂファイル）をロードさせる。このようなダイナミックリンクライブラリはすると、エンタープライズアプリケーションのアーカイブファイル（例えば、Ａｐｐｌｅ  ｉＯＳの実施形態の．ｉｐａファイル）の一部として含められる。ダイナミックリンクライブラリに含められた、カスタム化されたコールは、確実にそのアプリケーションのＩ／Ｏ機能（例えば、ネットワーク通信とファイルアクセス）が企業ポリシと一致するようにできる。これに加えて、ユーザの携帯機器にインストールされ、ここでは「アプリケーション管理エージェント」と呼ばれる特別なローカルアプリケーションが企業ポリシをその携帯機器上でローカルに（例えばその企業にあるリモート管理サーバと通信することによって）保持、更新し、特定の実施形態ではまた、エンタープライズアプリケーションカタログを提供して、エンドユーザがエンタープライズアプリケーションを選択し、ダウンロードし、携帯機器のワークスペースにインストールできるようにする。
【００１６】
本願は「ワークスペース」をエンタープライズアプリケーションのためのこのような管理された安全な実行環境に代わる省略表現として使用しているが、「ワークスペース」はエンタープライズアプリケーションの集合を指す論理的抽象にすぎない点に留意されたい。実際においては、グラフィカルユーザインタフェース上に実際に表示されるワークスペース（例えばフォルダ）があるかもしれないし、ないかもしれない。これに加えて、本願は「ワークスペースへのアクセス」という語句を一般的な意味で使用しており、必ずしもユーザがフォルダにアクセスする必要はない。ユーザはワークスペースに、単にそのワークスペースに属するエンタープライズアプリケーションの１つにアクセスすることによってアクセスできる。
【００１７】
図１は、ある実施形態による、携帯機器上の例示的な隔離ワークスペースを示す。この例では、携帯機器１００はタッチスクリーン上のアイコンとしてそのアプリケーションを表示している。通常の（例えば個人用）アプリケーション１０２の集合は、例えば電子メールプログラム、テキストメッセージングプログラム、カレンダプログラム、またはオンラインビデオ閲覧プログラム等を含むことができる。携帯機器１００はまた、エンタープライズアプリケーション（各アイコンの左下角にある小さい鍵の記号により示される）の集合を表示し、これらはワークスペース１０４の中で動作する。
【００１８】
理解すべき点として、図１の表示は例にすぎず、代替的な実施形態では、携帯機器１００のスクリーン上のワークスペース１０４の可視化方法は異なっていてもよい。例えば、１つの代替的な実施形態において、ワークスペース１０４の中で動作するエンタープライズアプリケーションを示すアイコンは、通常の、または個人用アプリケーション１０２のアイコンと混在していてもよい。他の代替的な実施形態では、ワークスペース１０４の中で動作するエンタープライズアプリケーションを示すアイコンは、通常の、または個人用アプケーションのためのアイコンから、例えば指なぞり動作の使用を通じて分離されてもよく、この動作によりユーザは個人用または通常のアプリケーション１０２だけを表示するスクリーンから、ワークスペース１０４内のエンタープライズアプリケーションだけを表示する別のスクリーンに移行できる。ワークスペース１０４の中のエンタープライズアプリケーションの例としては、例えば企業向け電子メールプログラム、企業向けカレンダプログラム、企業向けディレクトリ、または企業向けブラウザ等がある。また、ワークスペース１０４にはアプケーション管理エージェント１０６も含まれ（前述のとおり）、これはすべてのエンタープライズアプリケーションのための安全な、アクセス制限されたポリシのローカルレポジトリ（local repository）として機能する。例えば、アプリケーション管理エージェント１０６は、定期的に（例えば、実行中のエンタープライズアプリケーションの代わりに、またはその要求に応じて）企業にあるリモートアプリケーション管理サーバ１１４と通信して、最新のセキュリティおよびアクセス管理ポリシを取得してもよい。理解すべき点として、図１の実施形態は携帯機器１００のスクリーン上のアプリケーション管理エージェント１０６のアイコンを、エンタープライズアプリケーションの実行中には実行する必要のないアプリケーションとして示しているが、他の実施形態では、アプリケーション管理エージェント１０６を、ユーザが携帯機器１００のスクリーン上のアイコンを選択することによって（またはモバイルオペレーティングシステムのＵＲＬハンドラ機能を使って他のエンタープライズアプリケーションにより）起動されるアイコンベースのアプリケーションではなく、携帯機器１００上で実行されるサービスとして実装してもよい。
【００１９】
図１の実施形態に示されているような音声サービスに加えて、携帯機器１００は、インターネット１２０等の公共ネットワークへの、ある種のデータ接続手段１０８を保持する。データ接続手段１０８は、セルラデータ通信チャネルまたはワイヤレスネットワーク接続（ＷｉＦｉ）とすることができる。ワークスペース１０４内で動作するエンタープライズアプリケーションと企業内イントラネット１３０の間の安全な通信を容易にするために、エンタープライズアプリケーションはエンタープライズゲートウェイルータ１１２へのＶＰＮトンネル１１０を保持してもよい。ＶＰＮトンネル１１０は、エンタープライズアプリケーションと企業内イントラネット１３０の間の安全な通信チャネルを提供する。１つの実施形態において、以下に詳しく説明するように、エンタープライズアプリケーションと共に（例えばラッパー内に）含められた、カスタム化されたシステムコールは、ＶＰＮトンネル（例えば、ＶＰＮトンネル１１０）を保持して、確実にすべてのネットワーク通信がＶＰＮトンネルを通るようにすることに関与する。
【００２０】
さらに、ＶＰＮトンネル１１０は特定のエンタープライズアプリケーションに固有のものであるため、ＶＰＮトンネル１１０はワークスペース１０４の外にある他のアプリケーションには利用できない。このようにＶＰＮトンネル１１０を特定のエンタープライズアプリケーションが専用に使用できるようにすることによって、ワークスペース１０４内で動作するエンタープライズアプリケーションからの、およびそこへのすべてのデータ通信が確実に安全となり、暗号化される。これに加えて、ＶＰＮトンネルがエンタープライズアプリケーションに固有のものであるため、ゲートウェイルータ１１２はアプリケーションごとのアクセス履歴を取得でき、このことがトンネル１３０のセキュリティの改善につながる。ＶＰＮトンネル１１０は、携帯機器１００上のすべてのアプリケーションが利用可能なデータ接続手段１０８の中で確立されるが、ＶＰＮトンネル１１０で伝えられるコンテンツは機密のまま保持され、そのＶＰＮトンネル１１０に関与するエンタープライズアプリケーションだけがこれにアクセス可能である。
【００２１】
特定の実施形態において、アプリケーション管理エージェント１０６は、必要に応じて実行できる。すなわち、アプリケーション管理エージェント１０６は、エンタープライズアプリケーションがそれをコールした時（例えば、認証証明情報、暗号キー、およびセキュリティ保護されたワークスペースでの作業に関するその他のデータ等を交換するため）、またはユーザがそれを起動した時だけ実行される。他の実施形態において、アプリケーション管理エージェント１０６は、少なくとも１つのエンタープライズアプリケーションが実行しているかぎり実行したままとすることができる（しかしながら、このオプションは、プロセスの同時実行が可能でない、または限定的にしか可能でないオペレーティングシステムでは利用できないかもしれない）。任意選択により、アプリケーション管理エージェント１０６は携帯機器１００のブートアップシーケンスの一環のサービスとして自動的に始動することもできる。アプリケーション管理エージェント１０６は、セキュリティ要件とアクセス管理等の企業ポリシを保持し、更新することに関与する。これに加えて、アプリケーション管理エージェント１０６は、適時、または必要に応じて、アプリケーション管理サーバ１１４と通信することができ、これは１つの実施形態において、企業内イントラネット１３０の中に存在できる。アプリケーション管理サーバ１１４は、アプリケーション管理エージェント１０６を介して、企業ポリシのアップデートを配信し、エンタープライズアプリケーションを遠隔的に管理できる。
【００２２】
ワークスペース内のアプリケーションの管理
特定の実施形態において、ワークスペース１０４内のエンタープライズアプリケーションは、アプリケーション管理エージェント１０６によって保持されるセキュリティと隔離要件および企業ポリシに適合し、（１）企業ポリシを強制するように（例えば提供されたＳＤＫとＡＰＩを使って）特に開発されたアプリケーション（「コンテナ化アプリケーション（containerized applications）」と呼ばれることもある）と、（２）企業ポリシを強制するように（特別に設計されたものに対して）「ラップ」された従来の汎用アプリケーション（「ラッパーアプリケーション」と呼ばれることがある）のいずれかである。コンテナ化アプリケーションは、その企業によって、特にワークスペース内で使用するために社内で開発されたアプリケーション、例えばその企業の営業部門のための費用報告書生成アプリケーションまたはその企業の財務チームのための財務予測アプリケーションを含んでいてもよい。ラップアプリケーションは、企業または第三者ベンダのいずれかによって開発された汎用アプケーション、例えば一般的使用のために開発された電子メールプログラム、ウェブブラウザ、ドキュメントビューワ等である。前述のように、ラッパーアプリケーションを作るためには、企業またはエンタープライズアプリケーションの開発者は、ラッピングユーティリティプログラムまたはツールを利用して、ポリシ強制メカニズムとともにラップ汎用アプリケーションを導入する（inject wrap generic applications with a policy-enforcement mechanism）ことができ、これは１つの実施形態において、ダイナミックリンクライブラリへのリファレンスを従来のシステムコールと置換されるアプリケーションのバイナリコードの中に導入することが関わる。これらのダイナミックリンクライブラリは、エンタープライズアプリケーションシステムコールのいずれかに割り込み、またはその他の方法でこれを妨害し、エンタープライズアプリケーションを強制的に企業ポリシに適合させる。例えば、通信の目的のために、ラッパーは、ＴＣＰ／ＩＰソケットを生成させるための従来のシステムコールを、ＶＰＮトンネルのためのソケットを生成して、戻すためのカスタム化されたコールに置換することができる。このように、エンタープライズアプリケーションによって開始されるすべてのデータ通信がＶＰＮトンネルを通る。さらに、エンタープライズアプリケーションのラッパーはまた、アプリケーション管理エージェント１０６と通信して、その企業のポリシの最新版を取得してもよい。特定の実施形態において、このようなポリシは失効期限を有していてもよく、これによってエンタープライズアプリケーションに対し、企業ポリシの自己のコピーを、自己のコピーが失効した時に定期的に更新させる。
【００２３】
特定の実施形態において、企業ポリシを保持することに加え、アプリケーション管理エージェント１０６はまた、「アプリケーションストア」を提供してもよく、これを通じて携帯機器１００のユーザはワークスペース１０４に適合するエンタープライズアプリケーションをよく調べ、ダウンロードし、インストールすることができる。このようなアプリケーションストア機能を有するアプリケーション管理エージェント１０６は、アプリケーションアップデートの通知を受け取り、ユーザに対し、インストールされたアプリケーションを更新することに注意を喚起するか、あるいはインストールされたエンタープライズアプリケーションを無効化またはディスエーブルするための通知を受け取る。理解すべき点として、代替的な実施形態は単に、携帯機器１００上にインストール可能な別のモバイルアプリケーションを提供してもよく、これは、別々の企業ごとのアプリケーションストアである（アプリケーションストア機能をアプリケーション管理エージェント１０６に組み込むことと対比）。
【００２４】
図２は、ある実施形態による、ワークスペース１０４の隔離を容易にする携帯機器１００の例示的アーキテクチャを示す。図２の実施形態において、携帯機器１００のオペレーティングシステム２１６は、従来のアプリケーション２１４の集合とエンタープライズアプリケーション２０２の集合をサポートする。ラップアプリケーション２０４は、ポリシ強制メカニズム２０８（これは１つの実施形態において、前述のように、汎用アプリケーション２０６の従来のシステムコールを妨害し、これと置換される、注入されたダイナミックライブラリの集合を含むラッパーとして表される）でラップされた汎用アプリケーション２０６を含む。ポリシ強制メカニズム２０８は、例えばプロセス間通信（inter-process communication : ＩＰＣ）メカニズムを使って企業ポリシをラップアプリケーション２０４に伝え、このようなポリシをアプリケーション管理エージェント１０６から取得する。従来のＩＰＣを利用できるようにプロセスの同時実行をサポートしていないか、または限定的にしかサポートしていないモバイルオペレーティングシステムでは、ラップアプリケーション２０４がアプリケーション管理エージェント１０６（およびその他のラップエンタープライズアプリケーション）と通信するためのメカニズムは、安全な、暗号化されたペーストボードとして実装されてもよく（例えば、ＡｐｐｌｅのｉＯＳの中のＵＩＰａｓｔｅｂｏａｒｄ等、基本となるモバイルオペレーティングシステムによって提供されるペーストボード機能を利用する）、これはワークスペース１０４の中の２つまたはそれ以上の通信アプリケーションのためのメッセージドロップボックスとして機能する。
【００２５】
動作中、ラップエンタープライズアプリケーション２０４は、ゲートウェイルータ１１２に終端を置くＶＰＮトンネル１１０を介して企業ネットワークと通信することができる。１つの実施形態において、ポリシ強制メカニズム２０８によって、汎用アプリケーション２０６のためのネットワーク通信が確実に、ＶＰＮトンネル１１０に対応するソケットを通過することになる。その結果、例えばワークスペース１０４内のウェブブラウザアプリケーションは、ＶＰＮトンネルを介して企業内イントラネットのコンテンツをブラウズすることができ、ワークスペース１０４内のドキュメントビューワによってユーザはその企業のイントラネットサーバ上に保存されたドキュメントを見ることができる。さらに、アプリケーション管理エージェント１０６は、例えば企業にあるアプリケーション管理サーバ１１４と通信して、その企業のポリシのそのローカルコピーを企業ポリシの最新版と同期させることができる。１つの実施形態において、アプリケーション管理サーバ１１４は、アプリケーションまたはポリシ関連の更新情報を、プッシュ通知サーバ２１８、例えばＡｐｐｌｅ  Ｐｕｓｈ  Ｎｏｔｉｆｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ（ＡＰＮＳ）を介してアプリケーション管理エージェント１０６にプッシュしてもよい。
【００２６】
アプリケーション管理エージェント１０６の実施形態は、ブートストラッピング機能２１２を含み、これはアプリケーション管理エージェント１０６（例えばこれは、特定の実施形態において、Ａｐｐｌｅ  Ａｐｐ  Ｓｔｏｒｅ等の公共のアプリケーションストアから携帯機器のユーザによってダウンロードされてもよい）が最初にインストールされ、起動された時に一連の動作を実行することにより、エンタープライズアプリケーションがワークスペース１０４内で動作できるようにする。ブートストラッピングモジュール２１２によって実行されるこのような動作としては例えば、ユーザを企業のリモートアプリケーション管理サーバ１１４に対して認証すること（例えばユーザの会社ベースのユーザ名とパスワード等を要求することによる）、ユーザに対し、ワークスペース１０４にアクセスするための認証証明情報（例えば、パスワード、ＰＩＮ等）を作るように要求すること、アプリケーション管理エージェント１０６に対してエンタープライズアプリケーションを認証し、エンタープライズアプリケーションとアプリケーションエージェント１０６の間の通信のセキュリティを確保するために、エンタープライズアプリケーションが使用し、共有できる暗号要素（例えば、キー、無作為による名前等）を生成すること（例えば、ペーストボードへの通信を暗号化する等による）、その企業のポリシの初期バージョンをアプリケーション管理サーバ１１４から取得すること等、がある。
【００２７】
アプリケーション管理エージェント１０６の実施形態はさらに、図３に示されるように、追加の機能をさらに含んでいてもよく、そのいくつかはすでに説明した。図３の実施形態に示されているように、アプリケーション管理エージェント１０６はＰＩＮロック機能３０２と、ポリシ管理機能３０４と、アプリケーションディスエーブル機能３０６と、リーシングエージェント３０８と、ポリシ同期機能３１０と、アプリケーション管理機能３１２と、アプリケーション構成プロファイル管理機能３１４と、ウェブクリップ管理機能３１６と、被参照アプリケーション管理機能３１８と、アプリケーションカタログ２１０と、ログインおよびエンドユーザライセンス契約（end user license agreement : ＥＵＬＡ）機能３２２と、初期ユーザインタフェースモジュール３２４と、デバイス認定モジュール３２６と、を含む。
【００２８】
ＰＩＮロック機能３０２は、ユーザがワークスペース１０４内のエンタープライズアプリケーションを初めて使用する時に、ユーザを認証する。例えば、最初のエンタープライズアプリケーションを起動すると、そのエンタープライズアプリケーションのラッパーがアプリケーション管理エージェント１０６に対し、（例えば、１つの実施形態においては、モバイルオペレーティングシステムのＵＲＬハンドラを通じてアプリケーション管理エージェント１０６を呼び出すことによって）ワークスペース１０４を起動するように要求してもよい。次に、アプリケーション管理エージェント１０６は、ＰＩＮロック機能３０２を通じて認証メカニズムをユーザに提示して、ユーザを認証してからワークスペースを起動してもよい。認証メカニズムはＰＩＮロック、またはより高度なメカニズム、例えばデジタル認証、パスワードにローリングセキュリティトークンを組み合わせたもの、生体認証、またはユーザから認証証明情報を取得するためのその他のあらゆる手段とすることができる。ワークスペース１０４の（例えばある期間にわたりどのエンタープライズアプリケーションも動作していないことによる）失効期限またはその企業のポリシの失効期限を実装する特定の実施形態において、ＰＩＮロック機能３０２はまた、例えば起動されたエンタープライズアプリケーションのラッパーがワークスペース１０４の失効を判断した時（例えば、前のどのエンタープライズアプリケーションもある期間にわたり動作しなかった）、またはその企業のポリシのそのローカルコピーが失効した時にも起動されてよく、それによってアプリケーション管理エージェント１０６が動作するよう要求される。
【００２９】
ポリシ管理機能３０４は、ワークスペース１０４内で受け取ったエンタープライズアプリケーションを実行することに関与する。企業ポリシの例としては、例えば、認証証明情報の強度要件、ワークスペースが失効し、例えば、ユーザにＰＩＮまたはその他の証明情報の再挿入を要求するまでの時間の長さ、エンタープライズアプリケーション間の特定の種類の通信（例えば、ペーストボードアクセス等）のイネーブル、ＰＩＮロック要件、アクセス特権レベル、ファイヤウォール要件、暗号化要件等がありうる。
【００３０】
アプリケーションディスエーブル機能３０６は、アプリケーション管理サーバ１１４からの通知に基づいて、インストール済みのアプリケーションを無効化、またはディスエーブルできる。この機能は、ユーザがその企業のメンバーではなくなった時、およびその企業のＩＴ部門がそのユーザのアクセス特権を取り消して、そのユーザの私物の携帯機器１００にインストール済みのエンタープライズアプリケーションをディスエーブルする必要が生じた時に有益である。
【００３１】
リーシングエージェント３０８は、ワークスペース１０４または企業ポリシに関するリースまたは失効期限を管理する。例えば、企業は、エンタープライズアプリケーションのある不作動期間が経過した後にワークスペースを「失効」させたいと望むかもしれない。１つの実施形態において、ワークスペースの有効期間の値を、ワークスペース１０４内のエンタープライズアプリケーションだけがアクセス可能な、安全なペーストボードに書き込んでもよい。（エンタプライズポリシによる）時間の値は指定された期間が経過した時に失効してもよいが、ユーザがいずれかのエンタープライズアプリケーションをその時点で使用している限り、このようなエンタープライズアプリケーションのラッパーはその有効性を引き続き延長する。エンタープライズアプリケーションが起動され、ワークスペースの有効期間の値が失効したと判断すると、エンタープライズアプリケーションはアプリケーション管理エージェント１０６を（例えば、１つの実施形態ではＵＲＬハンドラを使って）コールし、アプリケーション管理エージェント１０６がリーシングエージェント３０８を呼び出し、また、１つの実施形態においては、ＰＩＮロック機能３０２を起動して、ユーザから認証証明情報を取得してから、ワークスペース１０４を再び有効化してもよい。
【００３２】
ポリシ同期機能３１０は、アプリケーション管理サーバ１１４と通信して更新された企業ポリシを更新することのほか、このような企業ポリシを携帯機器１００のエンタープライズアプリケーションに提供することに関与する。
【００３３】
アプリケーション管理機能３１２は、エンタープライズアプリケーションとアプリケーション管理エージェント１０６の間の通信を管理する。特定の実施形態において、具体的に名前を付けられたペーストボードを通じたメッセージ交換を通じて行われるこのような通信は、ワークスペース１０４内のエンタープライズアプリケーションだけにアクセスする。このようなメッセージは、アプリケーション管理エージェント１０６によって、アプリケーション管理機能を通じて認証され、復号される必要があるかもしれない。
【００３４】
コンフィギュレーションプロファイル管理機能３１４は、ワークスペース１０４内で動作するエンタープライズアプリケーションのためのコンフィギュレーション情報を保持する。例えば、ユーザはエンタープライズアプリケーションによって消費される記憶空間を制限し、またはエンタープライズアプリケーションが利用できる帯域幅の量を制限したいと希望してもよい。
【００３５】
ウェブクリップ管理機能３１６は、ユーザがワークスペース１０４に設置するウェブクリップを追跡する。ウェブクリップは、特定のウェブペースへのショートカットであり、ユーザインタフェース上で別のアイコンとして表示できる。
【００３６】
被参照アプリケーション管理機能３１８は、ワークスペース内の他のアプリケーションによって参照されたアプリケーションに関する情報を保持する。例えば、ある企業の電子メールプログラムが、添付ファイル付の電子メールを受け取り、ユーザが添付ファイルをクリックした場合、添付のファイルの種類に基づいて、被参照アプリケーション管理機能３１８が他のエンタープライズアプリケーション（例えば、ドキュメントビューワ）をコールして、添付ファイルを開き、表示する。
【００３７】
アプリケーションカタログ２１０は、利用可能なエンタープライズアプリケーションの一覧を保持し、表示する。アプリケーション管理エージェント１０６を（例えばユーザが携帯機器１００のスクリーン上のアイコンを選択することによって）起動させると、ユーザはアプリケーションカタログ２１０の中からあるアプリケーションを選択し、インストールすることができる。１つの実施形態において、アプリケーションカタログ２１０からあるアプリケーションを選択すると、アプリケーション管理エージェント１０６がリモートアプリケーション管理サーバ１１４（またはその企業が管理する他のアプリケーションサーバ）と通信し、これが選択されたアプリケーションへのラッピングプロセスを開始し、その後、このアプリケーションをアプリケーション管理エージェント１０６に提供して、携帯機器１００にインストールする。
【００３８】
ログインおよびエンドユーザライセンス契約（ＥＵＬＡ）管理機能３２２は、ユーザに対して、ユーザのログイン時にライセンス契約と適当な法的通知を提示することに関与する。いくつかの実施形態において、ログインおよびＥＵＬＡ管理モジュール３２２は、アプリケーション管理サーバ１１４から受け取ったアップデートに基づいてＥＵＬＡ情報を更新してもよい。特定の実施形態において、ログインおよびＥＵＬＡ管理機能３２２は前述のブートストラッピングプロセスの一部であり、ワークスペース１０４に関するユーザのログイン証明情報のセキュリティを保護するほか、ユーザに対してＥＵＬＡまたはその他のサービス条件に同意するように要求する。
【００３９】
初期ユーザインタフェース（ＵＩ）機能３２４は、ユーザがアプリケーション管理エージェント１０６を起動し、ログインした時に、ユーザに「初期画面」を提示してもよい。初期ＵＩモジュール３２４はまた、アプリケーション管理サーバ１１４から受け取った情報に基づいて初期画面を更新することもできる。
【００４０】
デバイス認定モジュール３２６は、スマートフォンデバイスを認定して、基本となるハードウェアが確実にそのワークスペースを実行できるようにする。この機能は、企業のＩＴ部門がワークスペースを実行できるハードウェアの種類を制限したい時に望ましい可能性があり、これによって、ハードウェアレベルでの悪意のある攻撃のリスクを低減させ、ワークスペースのセキュリティを改善することができる。
【００４１】
アプリケーション管理エージェント１０６は、上記の機能の多くを、アプリケーション管理サーバ１１４から受け取った情報に基づいて実行する。図４は、ある実施形態による、ワークスペース１０４の管理を容易にする例示的なアプリケーション管理サーバを示している。図４の実施形態において、アプリケーション管理サーバ１１４は、アプリケーションラッピングサーバ４０２と、エンドユーザポータル４０４と、コンフィギュレーションポータル４０６と、管理者ポータル４０８と、を含む。
【００４２】
アプリケーションラッピングサーバ４０２により、企業のＩＴ部門はあらゆる第三者のアプリケーションをラップして、第三者のアプリケーションを企業固有のアプリケーションに変えることができ、これを今度は、ユーザがインストールできるようにアプリケーションカタログ２１０に掲載できる。エンドユーザポータル４０４により、エンドユーザは、自分のスマートフォンを使用せずに、あらゆるネットワーク接続を使ってアプリケーション管理サーバ１１４にログインし、エンタープライズアプリケーションを管理することができる。コンフィギュレーションポータル４０６によって、企業のＩＴ担当者は、特定のユーザのエンタープライズアプリケーションを構成することができ、例えばアクセス管理レベルを設定し、ユーザポリシをカスタム化する。管理者ポータル４０８は、システム管理者がアプリケーション管理サーバ１１４を構成できるようにするインタフェースを提供する。
【００４３】
動作中、アプリケーション管理サーバ１１４は、ＶＰＮゲートウェイルータ１１２を介してエンタープライズアプリケーション２０２と通信できる。任意選択により、アプリケーション管理エージェント１０６は、一般的なデータ接続を介して（すなわち、ＶＰＮトンネルを介さない）アプリケーション管理サーバ１１４と通信してもよい。アプリケーション管理エージェント１０６もまた、このデータ接続を使って初期のＶＰＮトンネルをセットアップできる。アプリケーション管理サーバ１１４はまた、各種の通知をプッシュ通知サーバ２１８に提供することもでき、これが今度は、これらの通知をアプリケーション管理エージェント１０６にプッシュする。
【００４４】
図５は、ある実施形態による、隔離されたワークスペース１０４内であるアプリケーションを起動するプロセスを説明するフローチャートを示す。動作中、携帯機器１００のオペレーティングシステム２１６は、あるエンタープライズアプリケーションを開始するためのユーザ命令を受け取る（動作５０２）。これに応答して、そのアプリケーションを実行する前に、そのアプリケーションのポリシ強制メカニズム２０８が、選択されたエンタープライズアプリケーションはワークスペース１０４内で開始される最初のアプリケーションであるか否かを、例えば実行中のエンタープライズアプリケーションのすべてに関する情報を保持する特別なファイルまたは値をチェックすることによって、確認する（動作５０４）。そのアプリケーションがワークスペース１０４内で開始される最初のものであれば、ポリシ強制メカニズム２０８がオペレーティングステム２１６に対し、実行フローを（例えば１つの実施形態ではＵＲＬハンドラを起動して）アプリケーション管理エージェント１０６に切り替えるように要求する（動作５０６）。続いて、アプリケーション管理エージェント１０６は、チャレンジ（例えば、ＰＩＮロックモジュール３０２を介したＰＩＮロック）をユーザに提示して、ユーザを認証する（動作５０８）。そのアプリケーションがワークスペース１０４で開始される最初のものでなければ（動作５０４）、ポリシ強制メカニズム２０８は、最後に呼び出されたエンタープライズアプリケーションがタイムアウトしたか否か（すなわち、動作していなかった期間が所定の期間より長いか）を判断する（動作５１６）。そうであれば、実行スレッドがアプリケーション管理エージェント１０６に切り替わり、これが続いて、チャレンジ（例えばＰＩＮロック等）をユーザに提示する（動作５０６および５０８）。そうでなければ、ポリシ強制メカニズム２０８は、要求されたエンタープライズアプリケーションにその実行を継続させる（５１４）。
【００４５】
動作５０８の後、ポリシ強制メカニズム２０８は、ユーザが認証に成功したか否かを判断する（動作５１０）。ユーザが認証されていれば、ポリシ強制メカニズム２０８は任意選択によって、企業ゲートウェアとのＶＰＮトンネルを確立してもよい（動作５１２）。続いて、ポリシ強制メカニズム２０８によって、エンタープライズアプリケーションは実行を再開できる（動作５１４）。ユーザが認証されないと（動作５１０）、ポリシ強制メカニズム２０８は要求されたエンタープライズアプリケーションの実行を終了する。
【００４６】
システムアーキテクチャ
図６は、ある実施形態による、隔離されたワークスペースをサポートする携帯機器の例示的なアーキテクチャを示す。携帯電話１００は、システムオンチップ（ＳｏＣ）６１０を含み、システムオンチップ（ＳｏＣ）６１０が基本的な機能をスクリーンに提供する。ＳｏＣ６１０は、システム１００の動作を実行するプロセッサ６１１を含む。デジタル信号プロセッサ６１２は、システム１００のためのアナログ−デジタル変換等の信号処理を実行する。パワーマネージャ６１３はバッテリ６３８を管理する。ディスプレイマネージャ６１４はディスプレイモジュール６３２を管理して、ディスプレイをユーザに提供する。いくつかの実施形態において、ディスプレイモジュールは液晶ディスプレイ（ＬＣＤ）を含む。メモリコントローラ６１５は、プロセット６１１がランダムアクセスメモリ（ＲＡＭ）６２２にアクセスできるようにする。ストレージコントローラ６１６は、システム１００の内蔵および外付けストレージへのアクセスを提供する。
【００４７】
マイクロフォン／スピーカモジュール６２４により、ユーザは通常の音声動作を実行できる。通信モジュール６３４は、アンテナ６２６とモデム６３６を使って電話ネットワークに接続する。ＮＡＮＤフラッシュ６４２は内蔵ストレージであり、ＳＤカード６４４はシステム１００の外付けストレージである。整合性モジュール６５２は、ＮＡＮＤフラッシュ６４２とＳＤカード６４４について整合性チェックを実行する。アプリケーション管理エージェント１０６は、エンタープライズアプリケーション２０２を管理し、隔離されたワークスペース１０４を保持する。ＳｏＣ６１０には、従来のアプリケーション２１４の集合も含まれる。
【００４８】
上記のモジュールは、ハードウェアのほかソフトウェアでも実装できることに留意されたい。いくつかの実施形態において、これらのモジュールの１つまたは複数は、システム１００の中の１つまたは複数のプロセッサに連結されたメモリ内に保存されたコンピュータ実行可能命令として実施できる。実行されると、これらの命令はプロセッサに上記の機能を行わせる。
【００４９】
要するに、本発明の実施形態は、ユーザの私物の携帯電話でエンタープライズアプリケーションのためのワークスペースの安全な隔離を容易にするためのシステムと方法を提供する。ワークスペース内のエンタープライズアプリケーションは、企業内ネットワークへの専用のＶＰＮ接続を利用し、ファイルやクリップボードバッファ等のシステムリソースは、エンタープライズアプリケーション間でのみ共有でき、電話機上の他の通常のアプリケーションとは共有できない。隔離されたワークスペースによって、ユーザは同じ携帯機器上で、データのセキュリティについて心配することなく、個人用アプリケーションと仕事関係のエンタープライズアプリケーションの両方を持つことができる。
【００５０】
本明細書で説明した方法とプロセスは、コードおよび／またはデータとして実施することができ、これらはコンピュータ可読非一時的記憶媒体に保存できる。コンピュータシステムがコンピュータ可読非一時的記憶媒体に保存されたコードおよび／またはデータを読み取り、実行すると、コンピュータシステムはデータ構造とコードとして実施され、媒体内に保存された方法とプロセスを実行する。
【００５１】
本明細書で説明した方法とプロセスは、ハードウェアモジュールまたは装置によって実行でき、および／またはその中に含めることができる。これらのモジュールまたは装置は、特定用途集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定のソフトウェアモジュールまたは１つのコードを特定の時間に実行する専用または共有プロセッサ、および／または現在知られている、または今後開発される他のプログラマブルロジックデバイスを含んでいてもよいが、これらに限定されない。ハードウェアモジュールまたは装置が作動されると、これらはその中に含められた方法とプロセスを実行する。
【００５２】
本発明の実施形態の上記の説明は、例示と説明のためにのみ提示された。これらは、網羅的である、または本願を限定することを視としたものではない。したがって、当業者にとっては多くの改変と変更が明らかであろう。本発明の範囲は付属の特許請求の範囲によって定義される。
【図１】
0005784864.tif 000002
【図２】
0005784864.tif 000003
【図３】
0005784864.tif 000004
【図４】
0005784864.tif 000005
【図５】
0005784864.tif 000006
【図６】
0005784864.tif 000007