特許第6017699号(P6017699)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ シマンテック コーポレーションの特許一覧

特許6017699URIスキームの登録及び検出を管理するためのシステム及び方法
<>
  • 特許6017699-URIスキームの登録及び検出を管理するためのシステム及び方法 図000002
  • 特許6017699-URIスキームの登録及び検出を管理するためのシステム及び方法 図000003
  • 特許6017699-URIスキームの登録及び検出を管理するためのシステム及び方法 図000004
  • 特許6017699-URIスキームの登録及び検出を管理するためのシステム及び方法 図000005
  • 特許6017699-URIスキームの登録及び検出を管理するためのシステム及び方法 図000006
  • 特許6017699-URIスキームの登録及び検出を管理するためのシステム及び方法 図000007
  • 特許6017699-URIスキームの登録及び検出を管理するためのシステム及び方法 図000008
  • 特許6017699-URIスキームの登録及び検出を管理するためのシステム及び方法 図000009
  • 特許6017699-URIスキームの登録及び検出を管理するためのシステム及び方法 図000010
  • 特許6017699-URIスキームの登録及び検出を管理するためのシステム及び方法 図000011
  • 特許6017699-URIスキームの登録及び検出を管理するためのシステム及び方法 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6017699
(24)【登録日】2016年10月7日
(45)【発行日】2016年11月2日
(54)【発明の名称】URIスキームの登録及び検出を管理するためのシステム及び方法
(51)【国際特許分類】
   G06F 13/00 20060101AFI20161020BHJP
【FI】
   G06F13/00 510B
【請求項の数】15
【全頁数】18
(21)【出願番号】特願2015-539741(P2015-539741)
(86)(22)【出願日】2013年10月23日
(65)【公表番号】特表2016-504645(P2016-504645A)
(43)【公表日】2016年2月12日
(86)【国際出願番号】US2013066306
(87)【国際公開番号】WO2014070543
(87)【国際公開日】20140508
【審査請求日】2015年4月26日
(31)【優先権主張番号】13/663,269
(32)【優先日】2012年10月29日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】501113353
【氏名又は名称】シマンテック コーポレーション
【氏名又は名称原語表記】Symantec Corporation
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】100134119
【弁理士】
【氏名又は名称】奥町 哲行
(72)【発明者】
【氏名】ソーベル・ウィリアム・イー
【審査官】 新田 亮
(56)【参考文献】
【文献】 国際公開第2008/064187(WO,A2)
【文献】 宮川 寧夫 Yasuo Miyakawa,米国アイデンティティ管理エコシステム政策(NSTIC)のゆくえ A Commentary on US NSTIC,CSS2011コンピュータセキュリティシンポジウム2011論文集 併催 マルウェア対策研究人材育成ワークショップ2011 情報処理学会シンポジウムシリーズ Vol.2011 No.3 [CD−ROM],日本,一般社団法人情報処理学会 コンピュータセキュリティ研究会,2011年10月12日,第2011巻,第241-246頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
デバイスに登録された一連のURIスキームを識別するためのコンピュータ実施方法であって、
URI名前空間名で始まり、URI名前空間の第1文字位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙する工程と、
反復して、前記URI名前空間の次の文字位置を前記列挙された各URIスキームのURIスキーム名に追加し、前記URI名前空間の前記次の文字位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙する工程と、
前記デバイスに登録された一連のURIスキームを識別する工程であって、前記URIスキームが前記URI名前空間内のURIスキーム名分岐の最後部にある工程と、を含む、方法。
【請求項2】
各URIスキーム名に対応するアプリケーションの各エコシステムに関する情報にアクセスするために、前記一連のURIスキーム内の各URIスキームのURIスキーム名を使用する工程を更に含む、請求項1に記載の方法。
【請求項3】
有記憶位置に記憶される情報にアクセスすることにより前記アプリケーションの各エコシステムに関する情報にアクセスする工程を更に含む、請求項2に記載の方法。
【請求項4】
前記アプリケーションの各エコシステムに関する情報がアプリケーションの各エコシステムの識別子を含み、
前記アプリケーションの各エコシステムの識別子を前記デバイスのユーザに表示する工程を更に含む、請求項2に記載の方法。
【請求項5】
アプリケーションのエコシステムのうちの1つのユーザ選択を受信する工程と、
前記ユーザ選択のアプリケーションのエコシステムに参加するためにプロセスを開始する工程と、を更に含む、請求項4に記載の方法。
【請求項6】
前記アプリケーションの各エコシステムの識別子が名前を含む、請求項4に記載の方法。
【請求項7】
前記アプリケーションの各エコシステムの識別子がアイコンを含む、請求項4に記載の方法。
【請求項8】
前記URIスキームがURLスキームである、請求項1に記載の方法。
【請求項9】
前記URI名前空間が32の文字位置を含む、請求項1に記載の方法。
【請求項10】
前記URI名前空間が16の文字位置を含む、請求項1に記載の方法。
【請求項11】
前記一連のURIスキームが、アプリケーションの異なるエコシステムによって登録された、少なくとも2つのURIスキームを含む、請求項1に記載の方法。
【請求項12】
一連のURIスキームを識別するように構成されているコンピューティングデバイスであって、
プロセッサと、
該プロセッサと電子的に通信しているメモリと、
該メモリに記憶される命令であって、該命令が、
URI名前空間名で始まり、URI名前空間の第1文字位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙する、
反復して、前記URI名前空間の次の文字位置を前記列挙された各URIスキームのURIスキーム名に追加し、前記URI名前空間の前記次の文字位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙する、及び、
前記URI名前空間内のURIスキーム名分岐の最後部にあるURIスキームである、前記デバイスに登録された前記一連のURIスキームを識別するためにプロセッサによって実行可能である命令と、を含む、コンピューティングデバイス。
【請求項13】
前記命令が、
各URIスキーム名に対応するアプリケーションの各エコシステムに関する情報にアクセスするために、前記一連のURIスキーム内の各URIスキームのURIスキーム名を使用するために前記プロセッサによって更に実行可能である、請求項12に記載のコンピューティングデバイス。
【請求項14】
前記命令が、
有記憶位置に記憶される情報にアクセスすることにより前記アプリケーションの各エコシステムに関する情報にアクセスするために前記プロセッサによって更に実行可能である、請求項13に記載のコンピューティングデバイス。
【請求項15】
デバイス上で一連のURIスキームを識別するためのプログラムが記憶されたコンピュータ可読媒体であって、該プログラムは命令を含み、前記命令が、
URI名前空間名で始まり、URI名前空間の第1文字位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙する、
反復して、前記URI名前空間の次の文字位置を前記列挙された各URIスキームのURIスキーム名に追加し、前記URI名前空間の前記次の文字位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙する、及び、
前記URI名前空間内のURIスキーム名分岐の最後部にあるURIスキームである、前記デバイスに登録された前記一連のURIスキームを識別するためにプロセッサによって実行可能である、コンピュータ可読媒体
【発明の詳細な説明】
【背景技術】
【0001】
コンピューティングデバイス及びコンピュータ関連技術の使用は、急速に増加し続けている。このコンピュータデバイスの使用の増加は、コンピュータ関連技術に対する進化に影響を与えている。実際、コンピューティングデバイスは、ますますビジネス界及び個人消費者の活動の不可欠な部分となっている。コンピューティングデバイスは、複数のビジネス、産業、及び学術界の試みを実行するために使用され得る。これらのデバイスの広範囲における使用は、通信ネットワーク及びインターネット等コンピュータネットワークの使用によって加速している。
【0002】
多くの企業及び個人は1つ以上の通信及び/又はコンピュータネットワークを使用して、ネットワークに接続された様々なデバイス間でデータの通信及び共有を行う。従業員の生産性及び効率は、多くの場合、人間とコンピュータとの相互作用を必要とする。コンピュータ技術のユーザは、これらの技術の効率向上を要求し続ける。これらの技術の効率を向上させることは、コンピュータデバイスを使用し、これに依存する全ての人にとっても望ましいことである。
【0003】
コンピューティングデバイスは、ユーザの旅行時、買い物時、作業時等にこれらのシステムを携帯できるように、モバイルであり得る。これらのデバイスは、他のデバイスとの通信にも使用され得る。例えば、コンピューティングデバイスは携帯電話であってよい。モバイルコンピューティングシステムは、起動時に、ユーザ入力から特定のコマンドを受信した後等所定の時間が経過すると「ロック状態」になる。このロック状態により、不正ユーザが、このシステムに記憶され得るデータにアクセスできないようにしてよい。加えて、ロック状態により、不正ユーザがシステムの様々な特徴及び機能にアクセスできないようにしてよい。システムのロックを解除するために、ユーザは、デバイス上でのユーザ入力を介してパスワード又は他の資格情報の入力を求められることがある。
【0004】
モバイルコンピューティングシステムはまた、場合によって、作業環境等特定の環境に関与するアプリケーション及びデータを含み得る。モバイルコンピューティングシステムはまた、異なる、更には完全に異なる環境に関与するアプリケーション及びデータを含み得る。
【発明の概要】
【課題を解決するための手段】
【0005】
少なくとも1つの実施形態に従って、デバイスに登録されている一連の固有URIスキームを識別するためのコンピュータ実施方法が説明される。URI名前空間名で始まり、URI名前空間の第1文字位置にある文字で終わるURIスキーム名を有する各URIスキームが列挙される。反復して、URI名前空間の次の文字位置が列挙された各URIスキームのURIスキーム名に追加され、URI名前空間の次の文字位置にある文字で終わるURIスキーム名を有する各URIスキームが列挙される。デバイスに登録された一連のURIスキームは、URI名前空間内のURIスキーム名分岐の最後部にあるURIスキームとして識別される。
【0006】
この識別方法のいくつかの実施形態では、一連のURIスキームの各URIスキームのURIスキーム名は、各URIスキーム名に対応するアプリケーションの各エコシステムに関する情報へのアクセスに使用される。
【0007】
この方法のいくつかの構成では、アプリケーションの各エコシステムに関する情報は、iPhone Operating System(iOS)ペーストボード等共有記憶位置に記憶される情報にアクセスすることによりアクセスされる。
【0008】
いくつかの実施例では、アプリケーションの各エコシステムに関する情報としては、アプリケーションの各エコシステムの識別子が挙げられ、検出方法は、デバイスのユーザに対してアプリケーションの各エコシステムの識別子を表示する工程を更に含む。各エコシステムの識別子としては、エコシステム名又はアイコンが挙げられてよい。いくつかの実施形態では、ユーザ選択のエコシステムが受信されてよく、ユーザ選択のエコシステムに参加するためのプロセスが開始されてよい。
【0009】
この方法のいくつかの構成では、検出された一連の固有URIスキームは、アプリケーションの異なるエコシステムによって登録された、少なくとも2つのURIスキームを含む。
【0010】
この方法のいくつかの実施形態では、URIスキームはURLスキームであってよい。
【0011】
この方法のいくつかの構成では、URI名前空間は16又は32の文字位置を有してよい。
【0012】
一連のURIスキームを識別するように構成されているコンピューティングデバイスも説明される。このデバイスは、プロセッサと、プロセッサと電子的に通信しているメモリと、を含む。命令は、メモリに記憶されてよい。命令は、URI名前空間名で始まり、URI名前空間の第1文字位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙するために、プロセッサによって実行可能であってよい。命令は、反復して、列挙された各URIスキームのURIスキーム名にURI名前空間の次の文字位置を追加し、URI名前空間の次の位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙するために、プロセッサによって更に実行可能であってよい。更に、命令は、URI名前空間内のURIスキーム名分岐の最後部にあるURIスキームである、デバイスに登録された一連のURIスキームを識別するために、プロセッサによって実行可能であってよい。
【0013】
デバイス上の一連のURIスキームを識別するためのコンピュータプログラム製品も説明される。コンピュータプログラム製品は、命令を有する、非一時的コンピュータ可読媒体を含んでよい。命令は、URI名前空間名で始まり、URI名前空間の第1文字位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙するために、プロセッサによって実行可能であってよい。命令は、反復して、列挙された各URIスキームのURIスキーム名にURI名前空間の次の文字位置を付加し、URI名前空間の次の位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙するために、プロセッサによって実行可能であってよい。更に、命令は、URI名前空間内のURIスキーム名分岐の最後部にあるURIスキームである、デバイスに登録された一連のURIスキームを識別するために、プロセッサによって実行可能であってよい。
【0014】
少なくとも1つの実施形態に従って、デバイスにURIスキームを登録するためのコンピュータ実施方法が説明される。URIスキームの識別子が生成される。一連のURIスキーム名は、識別子の先頭のN文字をURI名前空間名の末尾に追加することにより生成される。Nは、1〜固有識別子の文字位置数の範囲の整数である。URIスキーム名のそれぞれに対応するURIスキームは、デバイスに登録される。
【0015】
上述の実施形態のいずれかの特徴は、本明細書に記載される一般原理に従って、互いと組み合わせて使用されてもよい。これら及び他の実施形態、特徴、並びに利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことにより、更に十分に理解されるであろう。
【図面の簡単な説明】
【0016】
以下の図面は、いくつかの例示的な実施形態を示し、本明細書の一部である。以下の説明と共に、これらの図面は、本開示の様々な原理を例証及び説明する。
図1】本システム及び方法が実施され得る環境の一実施形態を図示するブロック図である。
図2】登録されたURIスキームの一実施形態の一覧である。
図3】URIスキーム管理モジュールの一実施形態を図示するブロック図である。
図4】登録モジュールの一実施形態を図示するブロック図である。
図5】検出モジュールの一実施形態を図示するブロック図である。
図6】固有URIスキームをデバイスに登録するための方法の一実施形態を図示するフロー図である。
図7】デバイスに登録された、一連の固有URIスキームを検出するための方法の一実施形態を図示するフロー図である。
図8】デバイスに登録された、一連の固有URIスキームを検出するための方法の別の実施形態を図示するフロー図である。
図9】本システム及び方法を実施し得るデバイスを図示するブロック図である。
図10】本システム及び方法を実施するために好適なコンピュータシステムのブロック図を図示する。
図11】クライアントシステム並びに記憶装置サーバ(いずれもコンピュータシステムを使用して実装可能である)が接続されているネットワークアーキテクチャを図示するブロック図である。
【0017】
本明細書に記載の実施形態は、様々な修正及び代替形態が可能である一方で、具体的な実施形態が、図面において例として示されており、本明細書に詳細に説明されるであろう。しかしながら、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲の範囲に入る全ての修正、等価物、及び代替物を網羅する。
【発明を実施するための形態】
【0018】
参照により本明細書に組み込まれる、米国特許出願第13/598,248号、表題「Secure App Ecosystem with Key and Data Exchange According to Enterprise Information Control Policy」に記載されるように、コンピューティングデバイス上の一群のアプリケーション(又は「アプリ」)は、アプリケーションの「エコシステム」として設定されてよい。エコシステムのアプリケーションは、情報管理ポリシーに従って暗号化メッセージ及び暗号化データオブジェクトを安全に交換できる。その一方で、エコシステム外のアプリ及び他の構成要素は、エコシステム又はそのコンテンツへのアクセスを許可されない。
【0019】
場合によっては、エコシステムは、エコシステムエージェントによって確立されてよい。エコシステムエージェントはまた、エコシステムに対するアプリケーションの許可を処理してよい。更に、エコシステムエージェントは、暗号化エコシステムディレクトリの作成を処理してよい。ディレクトリは、それ自体がアプリケーションであるエコシステムエージェントを含む、アクティブな各エコシステムアプリケーションのレコード(エントリ)を含む。ディレクトリの記憶場所は、プラットフォーム固有である。例えば、iOS下では、ディレクトリは、ペーストボードオブジェクトとして記憶され得る。アプリケーションがディレクトリの名前を把握している場合、(例えば、iOSペーストボード内の)ディレクトリを検索し得る。エコシステムへのアクセス権限を与えられたアプリケーションは、暗号化エコシステムディレクトリの名前を把握済みであり得る。しかしながら、エコシステムへのアクセスがまだ許可されていないアプリケーションは、ディレクトリの名前を把握していないことがある。
【0020】
場合によっては、デバイスによってホストされる暗号化エコシステムディレクトリの名前の検索方法をアプリケーションに提供することが有用であり得る。このように、例えば、新たにインストールされたアプリケーションは、ディレクトリの名前を検出し、参加可能であり得る1つ以上のエコシステムの有無を決定し、アプリケーションが参加を試みるべき1つ以上のエコシステムを選択するようにユーザを促してよい。アプリケーションが参加するエコシステムをユーザが選択すると、エコシステムに参加するためにプロセス(例えば、「参加プロトコル」)が開始されてよい。参加プロトコルの一環として、アプリケーション又はユーザは、エコシステムに参加するアプリケーションの権限を確立する資格情報の提供を求められるであろう。
【0021】
これもまた米国特許出願第13/598,248号に記載されるように、複数のエコシステムが単一コンピューティングデバイスに共在し、共在するエコシステムがそれぞれ他のデータにアクセスしたり、別の方法で他のエコシステムの保護されたエコシステムレベルのデータ共有に参加したりすることが許可されないように設定されてよい。
【0022】
場合によっては、各URIスキームをデバイスに登録するエコシステムのおかげで、エコシステムの名前を記憶したり、これらにアクセスしたりできる。URIスキームは、エコシステムの名前を提供するか、これらへのアクセスを提供し、したがって、エコシステムに関する情報を検出する方法を提供してよい。しかしながら、今日まで、URIスキームに関する事前知識を有さないアプリケーションが時間的に効率よくURIスキームを検出するための既知の方法は存在しない。
【0023】
ここで図を参照すると、図1は、本システム及び方法が実施され得る環境100の一実施形態を図示するブロック図である。一実施例では、多数のデバイス105−a、105−b、105−cが、ネットワーク130を通じて互いに通信してよい。デバイス105−a、105−b、105−cは、モバイル又は固定式デバイスであってよい。デバイス105−a、105−b、105−cは、同一又は異なる形態を取ってよく、携帯電話、スマートフォン、携帯情報端末(PDA)、サーバ、ラップトップコンピュータ、タブレット、又は任意の他の種類のモバイル若しくは固定式コンピューティングデバイスであってよい。ネットワーク130は、ワイヤレス広域ネットワークネットワーク(WAN)、ローカルエリアネットワーク(LAN)、携帯ネットワーク、又は任意の他の種類の通信ネットワークであってよい。
【0024】
デバイス105−aは、多数の登録されたURIスキーム110を有するものとして示されている。登録されたURIスキーム110に関連する情報は、デバイス105−aのシステムメモリ又は他の記憶デバイスに記憶されてよい。URIスキーム管理モジュール115は、登録されたURIスキーム110のURIスキームを登録する又は検出するための機構を提供する。
【0025】
様々なアプリケーション及びプロセスは、URIスキーム管理モジュール115を起動させてよい。例えば、いくつかの実施形態では、デバイス105−aは、1つ以上のアプリケーションのエコシステム120−a−iをホストしてよく、iは1よりも大きい整数である。各エコシステム120−a−iのエージェント又は他のプロセスは、URIスキーム管理モジュール115を起動させて、複数のURIスキームをデバイス105−a(及び、典型的にはデバイス105−aのオペレーティングシステム)に登録し、登録されたURIスキーム110を記録する。デバイス105−aはまた、デバイスユーザにエコシステム125−a−iのうちの1つへの参加を促し得る、1つ以上のアプリケーション125−a−iをホストする。これらのアプリケーション125−a−iのそれぞれは、URIスキーム管理モジュール115を起動させて、登録されたURIスキーム110の全て又は一部を検出し、それによってエコシステム120−a−iに関する情報を検出し、エコシステム120−a−iのうちの1つ以上への参加を試みてよい。
【0026】
図2は、登録されたURIスキーム110−aの一実施形態の一覧200である。一構成では、登録されたURIスキーム110−aは、図1に図示された、登録されたURIスキーム110の実施例であってよい。図示されるように、登録された各URIスキーム205−a、205−b、205−c、205−d、205−eは、URI名前空間名(例えば、Symcappcenter)で始まり、固有識別子の先頭のN文字(例えば、URIスキーム205−aでは、{3}、URIスキーム205−bでは{3A}、URIスキーム205−cでは{3A8}、URIスキーム205−dでは{3A8A1CB0D4D911E1A18804046288709B}、URIスキーム205−eでは{87B42FD00987E556CD43043782379833})で終わる、URIスキーム名を有する。各固有識別子(例えば、{3A8A1CB0D4D911E1A18804046288709B}及び{87B42FD00987E556CD43043782379833})は固有URIスキームを識別する。固有識別子{3A8A1CB0D4D911E1A18804046288709B}では、URIスキーム205−aは、固有識別子の先頭の文字(すなわち、N=1)で終わるURIスキーム名を有し、URIスキーム205−bは、個別識別子の先頭の2文字(すなわち、N=2)で終わるURIスキーム名を有し、URIスキーム205−dは、固有識別子(すなわち、N=固有識別子内の文字位置数)で終わるURIスキーム名を有する。
【0027】
図3は、URIスキーム管理モジュール115−aの一実施形態を図示するブロック図300である。一構成では、URIスキーム管理モジュール115−aは、図1に図示されるURIスキーム管理モジュール115の一実施例であってよい。一実施形態では、URIスキーム管理モジュール115−aは、登録モジュール305と、検出モジュール310と、を含んでよい。登録モジュール305は、1つ以上のURIスキームをデバイス105−aに登録し、1つ以上のURIスキームを登録されたURIスキーム110(図1)又は110−a(図2)に記録するために起動されてよい。検出モジュール310は、デバイスに登録された一連の(すなわち、1つ以上の)固有URIスキームを検出するために起動されてよい。
【0028】
いくつかの実施形態では、URIスキーム管理モジュール115(図1)又は115−a(図2)は、スタンドアローンアプリケーション又はユーティリティとして提供されてよい。他の実施形態では、URIスキーム管理モジュール115又は115−aの一部又は全ては、デバイスのオペレーティングシステムの一部として提供されてよい。他の実施形態では、URIスキーム管理モジュール115又は115−aの一部又は全ては、アプリケーション120−a−iのエコシステムのエコシステムエージェントの一部として、又はアプリケーション125−a−iの一部として提供されてよい。具体的には、登録モジュール305をエコシステムエージェントの一部として提供し、検出モジュール310をアプリケーション125−a−iの一部として提供することが有用であり得る。
【0029】
図4は、登録モジュール305−aの一実施形態を図示するブロック図400である。一構成では、登録モジュール305−aは、図3に図示される登録モジュール305の一実施例であってよい。一実施形態では、登録モジュール305−aは、固有識別子生成モジュール405と、URIスキーム名生成モジュール410と、URIスキーム登録モジュール415と、を含んでよい。
【0030】
固有URIスキームをデバイス(例えば、図1のデバイス105−a)に登録するために登録モジュール305−aが起動されると、固有識別子生成モジュール405は、固有URIスキームの固有識別子を生成する。いくつかの実施形態では、固有識別子は128ビット、つまり1つ以上の16進数0〜9及びA〜Fを含む32文字の識別子である。他の実施形態では、固有識別子は64ビット、つまり1つ以上の16進数0〜9及びA〜Fを含む16文字の識別子である。更なる実施形態では、固有識別子は他のビット数、つまり他の数又は種類の文字であり得る。固有識別子の長さ(つまり、名前空間の深さ)は、2つのアプリケーション又はエントリが同一の識別子にマッピングされ、したがって識別子が固有ではなくなる可能性を軽減するように構成されるべきである。場合によっては、ハッシュ法又は疑似乱数法を使用して固有識別子を生成し、これにより2つのアプリケーション又はエントリが同一識別子にマッピングされる可能性を更に軽減し得る。
【0031】
URIスキーム名生成モジュール410は、固有識別子の先頭のN文字を末尾に追加することによって一連のURIスキーム名を生成する(Nは、1〜固有識別子内の文字位置数の範囲の整数である)。図2は、URIスキーム名生成モジュール410によって生成されたURIスキーム名の一覧の例を提供する。例えば、32文字を有する固有識別子{3A8A1CB0D4D911E1A18804046288709B}では、URIスキーム名生成モジュール410は、N=1に対してURIスキーム名「Symcappcenter{3}」を生成し、N=2に対してURIスキーム名「Symcappcenter{3A}」を生成し、N=32に対してURIスキーム名「Symcappcenter{3A8A1CB0D4D911E1A18804046288709B}」等同様に生成する。
【0032】
URIスキーム登録モジュール415は、URIスキーム名生成モジュール410によって生成された各URIスキーム名に対応するURIスキーム205−a、205−b、205−c、205−d(図2)をデバイス105−aに登録する。
【0033】
一連のURIスキームをデバイスに登録することにより、登録モジュール405は、URI名前空間内のURIスキーム名の検出可能な分岐(例えば、「Symcappcenter」名前空間内のURIスキーム名の検出可能な分岐)を作成する。これにより、URI名前空間内のURIスキームの検索及び検出に必要な時間が大幅に削減される。
【0034】
場合によっては、1つ以上のURIスキームが同一名前空間内に登録されてよい。これは、デバイス105−a(図1)でホストされるエコシステム120−a−iのそれぞれを識別するURIスキーム等特定種類の既存のURIスキームを検出することが望ましい場合、特に有用であり得る。複数アプリケーションが同一名を有するURIスキームを登録しようとする場合、名前空間名の末尾に固有識別子を付加することにより形成されたURIスキーム名を有するURIスキームを登録することも有用である。過去には、例として、2つのアプリケーションがiOSに同一URLスキーム(URIスキームの形式)を登録した場合、登録されたこのURLスキームを有するアプリケーションを列挙することは困難であり、このURLスキームを使用するURLが開かれたとき、どのアプリケーションを起動するべきかは未定義であった。共有URLスキームを使用してアプリケーション間の競合を解消することは困難であり、URLスキームを共有するアプリケーションを列挙することには課題があった。下記に詳述するように、登録モジュール405で提供されるURI登録スキームによって、2つのアプリケーションが同一URIスキームの変異体を使用できるようになる(URIスキームの名前が、固有URIスキームの名前空間になる)。
【0035】
図5は、検出モジュール310−aの一実施形態を図示するブロック図500である。一構成では、検出モジュール310−aは、図3に図示される検出モジュール310の一実施例であってよい。一実施形態では、検出モジュール310−aは、反復列挙モジュール505と、URIスキーム識別モジュール510と、を含んでよい。
【0036】
デバイス(例えば、図1のデバイス105−a)に登録された一連の固有URIスキームを検出するために検出モジュール310−aが起動されると、反復列挙モジュール505は、URI名前空間名で始まり、URI名前空間の第1文字位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙してよい。図2に示される登録されたURIスキーム110−aの一覧200では、「symcappcenter{_}」の形式を有するURIスキームが列挙され、URIスキーム「symcappcenter{3}」及び「symcappcenter{8}」をもたらす。次いで、反復列挙モジュール505は、反復して、1)列挙された各URIスキームのURIスキーム名にURI名前空間の次の文字位置を追加すること、及び2)URI名前空間の次の位置にある文字で終わるURIスキーム名を有する各URIスキームを列挙することを続行する。したがって、登録されたURIスキーム110−aの一覧200では、反復列挙モジュール505は、「symcappcenter{3_}」及び「symcappcenter{8_}」の形式を有するURIスキームを次に列挙し、URIスキーム「symcappcenter{3A}」及び「symcappcenter{87}」をもたらすであろう。次いで、反復列挙は「symcappcenter」内の2つのURIスキーム名分岐が完全に解決されるまで続行され、URIスキーム「Symcappcenter{3A8A1CB0D4D911E1A18804046288709B}」及び「Symcappcenter{87B42FD00987E556CD43043782379833}」をもたらす。
【0037】
URIスキーム識別モジュール510は、検出された、デバイスに登録された一連の固有URIスキームとして、名前空間内のURIスキーム名分岐の最後部にあるURIスキームを識別する。したがって、登録されたURIスキーム110−aの一覧200では、URIスキーム識別モジュール510は、一連の固有URIスキーム「Symcappcenter{3A8A1CB0D4D911E1A18804046288709B}」及び「Symcappcenter{87B42FD00987E556CD43043782379833}」を識別するであろう。
【0038】
図6は、固有URIスキームをデバイスに登録するための方法600の一実施形態を図示するフロー図である。一構成では、方法600は、図1のデバイス105−aによって実施されてよい。具体的には、方法600は、URIスキーム管理モジュール115又は115−aの登録モジュール305(図3)によって実施されてよい。
【0039】
ブロック605において、固有URIスキームの固有識別子が生成される。いくつかの実施形態では、固有識別子は128ビットであり、32文字を含んでよい。他の実施形態では、固有識別子は64ビットであり、16文字を含んでよい。
【0040】
ブロック610、615、620、及び625では、一連のURIスキーム名が生成される。ブロック610では、変数Nが1に設定される。ブロック615において、URI名前空間名の末尾に固有識別子の先頭のN文字(最初は1文字)を付加することにより、URIスキーム名が生成される。ブロック620において、Nが固有識別子の文字位置数に等しいかどうかを判定するチェックが行われる。等しくなければ、ブロック625においてNが増やされ(すなわち、N=N+1)、方法600のブロック615及び620における動作がもう1回反復される。ただし、ブロック620において、Nが固有識別子の文字位置数に等しいと判定された場合、方法600はブロック630に進む。
【0041】
ブロック630において、ブロック615において生成された各URIスキーム名に対応するURIスキームは、URIスキームが適用されるデバイスに登録される。方法600は、デバイスに登録される多数の固有URIスキームごとに反復されてよい。
【0042】
図7は、デバイスに登録された、一連の固有URIスキームを検出するための方法700の一実施形態を図示するフロー図である。一構成では、方法700は、図1のデバイス105−aによって実施されてよい。具体的には、方法700は、URIスキーム管理モジュール115又は115−aの検出モジュール310(図3)によって実施されてよい。
【0043】
ブロック705、710、715、及び720において、一連のURIスキームが反復列挙される。まず、ブロック705において、URI名前空間名で始まり、URI名前空間の第1文字位置にある文字で終わるURIスキーム名を有する各URIスキームが列挙される。次いで、ブロック710において、列挙された各URIスキームのURIスキーム名に、URI名前空間の次の文字位置が追加される。ブロック715において、URI名前空間の次の文字位置にある文字で終わるURIスキーム名を有する各URIスキームが列挙される。ブロック720において、直近に追加された文字位置がURI名前空間の最後の文字位置かどうかを判定するチェックが行われる。最後の文字位置ではない場合、ブロック710、715、及び720における動作がもう1回反復される。それ以外の場合、方法700はブロック725に進む。
【0044】
ブロック725において、検出された一連の固有URIスキームが識別される。一連の固有URIスキームは、URI名前空間内のURIスキーム名分岐の最後部にあるURIスキームである。
【0045】
図8は、デバイスに登録された、一連の固有URIスキームを検出するための方法800の別の実施形態を図示するフロー図である。一構成では、方法800は、図1のデバイス105−aによって実施されてよい。具体的には、方法800は、URIスキーム管理モジュール115又は115−aの検出モジュール310(図3)によって実施されてよい。例として、方法800は、一連の固有URLスキームの検出に関して説明される。他の実施形態では、方法800は、より一般にURIスキームの検出に適用されてよい。
【0046】
ブロック705−a、710−a、715−a、及び720−aにおいて、一連のURLスキームが反復列挙される。まず、ブロック705−aにおいて、URL名前空間名で始まり、URL名前空間の第1文字位置にある文字で終わるURLスキーム名を有する各URLスキームが列挙される。次いで、ブロック710−aにおいて、列挙された各URLスキームのURLスキーム名に、URL名前空間の次の文字位置が追加される。ブロック715−aにおいて、URL名前空間の次の文字位置にある文字で終わるURLスキーム名を有する各URLスキームが列挙される。ブロック720−aにおいて、直近に追加された文字位置がURL名前空間の最後の文字位置かどうかを判定するチェックが行われる。最後の文字位置ではない場合、ブロック710−a、715−a、及び720−aにおける動作がもう1回反復される。それ以外の場合、方法800はブロック725−aに進む。
【0047】
ブロック725−aにおいて、検出された一連の固有URLスキームが識別される。一連の固有URLスキームは、URL名前空間内のURLスキーム名分岐の最後部にあるURLスキームである。
【0048】
ブロック805において、検出された一連の固有URLスキーム内の各URLスキームのURLスキーム名が使用されて、各URIスキーム名に対応するアプリケーションの各エコシステムに関する情報にアクセスする。この情報は、アプリケーションの各エコシステム識別子を含んでよい。いくつかの実施形態では、各識別子は、エコシステムの名前又はエコシステムのアイコンであってよいか、これらを含んでよい。
【0049】
ブロック810において、エコシステムがホストされている組織のユーザに各エコシステムの識別子が表示され、ブロック815において、ユーザ選択の1つ以上のエコシステムが受信される。ブロック820において、ユーザ選択のアプリケーションのエコシステムに参加するためにプロセスが開始されてよい。いくつかの実施形態では、ブロック805、810、815、及び820において実行される動作は、デバイスで初めて起動されているアプリケーション又は参加し得る、使用可能なエコシステムをユーザが検出させているアプリケーション(例えば、図1のアプリケーション125−a−i)によって実行されてよい。
【0050】
図9は、コンピューティングデバイス105−dを図示するブロック図900である。デバイス105−dは、本システム及び方法を実施するために使用され得る様々な構成要素を含んでよい。デバイス105−dは、図1のデバイス105−a、105−b、又は105−cの実施例であってよい。デバイス105−dは、携帯電話、スマートフォン、又はPDA等が挙げられるが、これらに限定されない、無線通信デバイスであってよい。
【0051】
デバイス105−dは、デバイス105−dの動作を制御するプロセッサ905を含んでよい。プロセッサ905は、中央演算処理装置(CPU)と呼ばれることもある。リードオンリーメモリ(ROM)及びランダムアクセスメモリ(RAM)の両方を含んでよいメモリ910は、プロセッサ905に対して命令及びデータを提供する。メモリ910の一部は、不揮発性ランダムアクセスメモリ(NVRAM)も含んでよい。プロセッサ905は、通常、メモリ910内に記憶されたプログラム命令に基づいて論理演算及び算術演算を実行する。メモリ910内の命令は、本明細書に記載の方法を実施するために実行可能であってよい。例えば、URIスキーム管理モジュール115−bは、メモリ910に記憶されてよい。モジュール115−bは、図1のURIスキーム管理モジュール115の実施例であってよい。
【0052】
デバイス105−dは、送信機920及び受信機925を含んでよいハウジング945を含んで、デバイス105−dとリモート位置との間でのデータの送受信を可能にしてよい。送信機920及び受信機925は、合体させてトランシーバ940にしてよい。アンテナ935は、ハウジング945に取り付けられて(内側及び/又は外側を通って)、トランシーバ940に電気的に結合される。デバイス105−dはまた、多数の送信機、多数の受信機、多数のトランシーバ及び/又は多数のアンテナ(図示なし)を含んでよい。
【0053】
デバイス105−dはまた、トランシーバ940によって受信された信号のレベルを検出し、これを定量化するために使用され得る、信号検出器915を含んでよい。信号検出器915は、総エネルギー、疑似雑音(PN)チップあたりのパイロットエネルギー、パワースペクトル密度、及び他の信号等の信号を検出してよい。デバイス105−dはまた、信号処理用デジタル信号プロセッサ(DSP)930を含んでよい。
【0054】
デバイス105−dの様々な構成要素は、データバスに加えて、電源バス、制御信号バス、及びステータス信号バスを含んでよい、バスシステム950によって連結されてよい。しかしながら、明確にするために、図9では、様々なバスがバスシステム950として図示されている。
【0055】
図10は、本システム及び方法を実施するために好適なコンピュータシステム1000のブロック図を図示する。コンピュータシステム1000は、コンピュータシステム1000の主要サブシステムを相互接続するバス1002を含み、主要サブシステムには、中央処理装置1004、システムメモリ1006(典型的には、RAMだが、ROM、フラッシュRAM等も含み得る)、入力/出力コントローラ1008、オーディオ出力インタフェース1012を介するスピーカシステム1010等の外部オーディオデバイス、ディスプレイアダプタ1016を介するディスプレイ画面1014等の外部デバイス、シリアルポート1018及び1020、キーボード1022(キーボードコントローラ1024でインタフェース接続される)、多数のUSBデバイス1026(USBコントローラ1028でインタフェース接続される)、記憶装置インタフェース1030、フロッピーディスク1034(「フロッピー」は登録商標、以下同じ。)を受容するように動作可能であるフロッピーディスクユニット1032、ファイバチャネルネットワーク1038と接続するように動作可能であるホストバスアダプタ(HBA)インタフェースカード1036A、SCSIバス1040に接続するように動作可能であるホストバスアダプタ(HBA)インタフェースカード1036B、及び光ディスク1044を受容するように動作可能である光ディスクドライブ1042等が含まれる。同様に、マウス1046(又はシリアルポート1018を介してバス1002に連結された他のポイントアンドクリックデバイス)、モデム1048(シリアルポート1020を介してバス1002に連結される)、及びネットワークインタフェース1050(バス1002に直接連結される)が含まれる。
【0056】
バス1002は、上述のように、中央処理装置1004とシステムメモリ1006との間のデータ通信を可能にし、システムメモリ1006は、リードオンリーメモリ(ROM)又はフラッシュメモリ(いずれも図示せず)と、ランダムアクセスメモリ(RAM)(図示せず)と、を含んでよい。RAMは概して、オペレーティングシステム及びアプリケーションプログラムがロードされるメインメモリである。ROM又はフラッシュメモリは、他のコードと共に、周辺構成要素又はデバイスとの相互作用等の基本的なハードウェアの動作を制御する、ベーシックインプット/アウトプットシステム(BIOS)を含むことができる。例えば、本システム及び方法を実施するためのURIスキーム管理モジュール115−cは、システムメモリ1006内に記憶されてよい。コンピュータシステム1000に常駐するアプリケーションは概して、ハードディスクドライブ(例えば、固定ディスク1052)、光ディスク1044、フロッピーディスクユニット1034、又は他の記憶媒体等の非一時的コンピュータ可読媒体に記憶され、それを介してアクセスされる。加えて、アプリケーションは、モデム1048又はネットワークインタフェース1050を介してアクセスされるときにアプリケーション及びデータ通信技術に従って変調される電子信号の形態であってもよい。
【0057】
記憶装置インタフェース1030は、コンピュータシステム1000の他の記憶装置インタフェースと同様に、固定ディスク1052等の、情報の記憶及び/又は検索のための標準的なコンピュータ可読媒体に接続することができる。固定ディスク1052は、コンピュータシステム1000の一部であってもよく、独立していて、他のインタフェースシステムを介してアクセスされてもよい。モデム1048は、電話回線を介してリモートサーバへの直接接続を提供してもよく、インターネットサービスプロバイダ(ISP)経由でインターネットに接続してもよい。ネットワークインタフェース1050は、POP(ポイントオブプレゼンス)を介したインターネットへのダイレクトネットワークリンクを介してリモートサーバへの直接接続を提供してもよい。ネットワークインタフェース1050は、デジタル携帯電話接続、セルラーデジタルパケットデータ(CDPD)接続、又はデジタル衛星データ接続等を含む無線技術を使用して、かかる接続を提供してもよい。
【0058】
他の多くのデバイスまたはサブシステム(図示せず)も同様の方法で接続することができる(例えば、文書スキャナ、デジタルカメラ等)。逆に、図10に図示される全てのデバイスが、本システム及び方法を実践するために存在する必要はない。デバイス及びサブシステムは、図10に示されるものとは異なる方法で相互接続することができる。図10に示されるもの等のコンピュータシステムの動作は、当該技術分野において容易に知られており、本願では詳細に考察しない。本開示を実施するためのコードは、システムメモリ1006、固定ディスク1052、光ディスク1044、又はフロッピーディスク1034のうちの1つ以上等、非一時的コンピュータ可読媒体に記憶することができる。コンピュータシステム1000上で提供されるオペレーティングシステムは、MS−DOS(登録商標)、MS−WINDOWS(登録商標)、OS/2(登録商標)、UNIX(登録商標)、Linux(登録商標)、又は別の既知のオペレーティングシステムであってよい。
【0059】
更に、本明細書に記載される信号に関して、当業者であれば、信号が第1のブロックから第2のブロックに直接伝送されてもよく、又は信号がブロック間で変更(例えば、増幅、減衰、遅延、ラッチ、バッファ、反転、フィルタリング、又は別の方法で変更)されてもよいことを認識するであろう。上述される実施形態の信号は、あるブロックから次のブロックに伝送されると特徴付けられるが、本システム及び方法の他の実施形態は、信号の情報及び/又は機能面がブロック間で伝送される限り、かかる直接伝送された信号の代わりに変更された信号を含むことができる。ある程度、第2のブロックにおける信号入力は、関係する回路の物理的制約(例えば、いくらかの減衰及び遅延が必然的に存在する)により、第1のブロックからの第1の信号出力から得られた第2の信号として概念化されてもよい。したがって、本明細書で使用されるとき、第1の信号から得られた第2の信号は、回路制約によるか、又は第1の信号の情報及び/又は最終機能面を変更しない他の回路素子の通過によるものであろうとなかろうと、第1の信号又は第1の信号に対する何らかの変更を含む。
【0060】
図11は、ネットワークアーキテクチャ1100を図示するブロック図であり、クライアントシステム1105、1110、及び1115、並びに記憶装置サーバ1120−a及び1120−b(いずれもコンピュータシステム1000を使用して実装可能である)は、ネットワーク1130に連結されている。一実施形態では、URIスキーム管理モジュール115−dは、本システム及び方法を実施するために、記憶装置サーバ1120−a、1120−bのうちの1つに位置してよい。記憶装置サーバ1120−aは、直接接続された記憶デバイス1125−a−1〜1125−a−jを有するものとして更に図示されており、記憶装置サーバ1120−bは、直接接続された記憶デバイス1125−b−1〜1125−b−kを有するものとして図示される。SANファブリック1140は、記憶装置サーバ1120−a及び1120−bによる、したがって、ネットワーク1130を介したクライアントシステム1105、1110、及び115による、記憶デバイス1135−1〜1135−mへのアクセスをサポートする。SANファブリック1140からアクセス可能な記憶デバイスの具体例として、インテリジェント記憶アレイ1145も示されている。
【0061】
コンピュータシステム1000を参照すると、モデム1048、ネットワークインタフェース1050、又はその他の方法を使用して、クライアントシステム1105、1110、及び1115のそれぞれからネットワーク1130への接続を提供することができる。クライアントシステム1105、1110、及び1115は、例えば、ウェブブラウザ又は他のクライアントソフトウェア(図示せず)を使用して、記憶装置サーバ1120−a又は1120−bに関する情報にアクセスできる。かかるクライアントにより、クライアントシステム1105、1110、及び1115は、記憶装置サーバ1120−a若しくは1120−b、又は記憶デバイス1125−a−1〜1125−a−j、1125−b−1〜1125−b−k、1135−1〜1135−m、若しくはインテリジェント記憶アレイ1145のうちの1つによってホストされるデータにアクセスできる。図11は、データを交換するためのネットワーク(インターネット等)の使用を描写するが、本システム及び方法は、インターネット又は任意の特定のネットワークに基づく環境に限定されない。
【0062】
先述の開示は、特定のブロック図、フロー図、及び実施例を使用して様々な実施形態を説明するが、本明細書に記載される及び/又は図示される各ブロック図の構成要素、フロー図の工程、動作、及び/又は構成要素は、個別に及び/又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア(又はそれらの任意の組み合わせ)構成を使用して、実装され得る。加えて、他の構成要素内に含まれた構成要素のあらゆる開示は、多くの他のアーキテクチャが同じ機能を達成するために実装され得ることにより、本質的に例示的であると考慮されるべきである。
【0063】
本明細書に記載される及び/又は図示されるプロセスパラメータ及び工程の順序は、単なる例として提供され、所望に応じて変更することができる。例えば、本明細書に図示される及び/又は記載される工程が特定の順序で示される又は考察されるが、これらの工程は、必ずしも図示される又は考察される順序で実施される必要はない。本明細書に記載及び/又は図示される様々な例示的な方法はまた、本明細書に記載及び/又は図示される工程のうちの1つ以上を省略するか、又は開示されるものに加えて追加の工程を含むことができる。
【0064】
更に、様々な実施形態は、完全に機能的なコンピューティングシステムとの関連で本明細書に記載及び/又は図示されているが、これらの例示的実施形態のうちの1つ以上は、実際に配布を実行するために使用される特定種類のコンピュータ可読媒体にかかわらず、様々な形態でプログラム製品として配布されてもよい。本明細書に開示の実施形態はまた、一定のタスクを実施するソフトウェアモジュールを使用して実装され得る。これらのソフトウェアモジュールは、スクリプト、バッチ、又はコンピュータで読み取り可能な記憶媒体上若しくはコンピューティングシステムに記憶され得る、他の実行可能なファイルを含んでもよい。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの1つ以上を実行するようにコンピューティングシステムを構成することができる。
【0065】
説明目的のための上記の記述は、特定の実施形態を参照して記述されている。しかしながら、上記の例示的議論は網羅的であることを意図したものではなく、開示されている正確な形態に本発明を限定することを意図したものでもない。上述の教示を考慮して、多くの修正及び変更が可能である。本システム及び方法の原則並びにこれらの実用を最も良く説明し、その結果、他の当業者が、意図される特定の使用法に適し得るように様々な変更を加えて本システム及び方法並びに様々な実施形態を最大限に活用できるようにするために実施形態を選択し、説明した。
【0066】
特に記載されない限り、用語「1つ(a)」又は「1つ(an)」は本明細書及び特許請求の範囲に使用される際、「少なくとも1つの(at least one of)」を意味すると解釈されるべきである。加えて、使いやすさのために、語「含む(including)」及び「有する(having)」は、本明細書及び特許請求の範囲に使用される際、語「含む・備える(comprising)」と同義的であり、それと同じ意味を有する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11