(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-09
(45)【発行日】2024-02-20
(54)【発明の名称】情報処理端末、制御方法、およびオペレーティングシステム
(51)【国際特許分類】
H04L 67/02 20220101AFI20240213BHJP
H04L 67/50 20220101ALI20240213BHJP
【FI】
H04L67/02
H04L67/50
(21)【出願番号】P 2022163657
(22)【出願日】2022-10-12
(62)【分割の表示】P 2020173016の分割
【原出願日】2014-01-30
【審査請求日】2022-11-11
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002767
【氏名又は名称】弁理士法人ひのき国際特許事務所
(72)【発明者】
【氏名】川名 克昌
【審査官】前田 健人
(56)【参考文献】
【文献】特開2012-048633(JP,A)
【文献】特表2013-544396(JP,A)
【文献】米国特許出願公開第2012/0159334(US,A1)
【文献】iOS 7「Safari」の使い方(前編)- タブの共有やブックマークの活用法まで,2013年10月19日,[検索日 2023.08.07], インターネット:<URL:https://news.mynavi.jp/article/20131019-ios7_howto/2>
【文献】ボタンを押したら画像を表示,2011年10月15日,[検索日 2023.08.07], インターネット:<URL:https//dwm.me/archives/630>
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/02
H04L 67/50
(57)【特許請求の範囲】
【請求項1】
ウェブサイトにネットワークを介してアクセス可能なウェブブラウザとオペレーティングシステムとがインストールされ、表示部を備える情報処理端末であって、
前記ウェブサイトから提供された共有されるべきデータと前記ウェブブラウザにより表示されるべき共有オブジェクトとに関する記述が含まれるページデータに基づき前記ウェブブラウザを用いて表示されたページ上において前記共有オブジェクトに対するユーザ操作が行われたことに応じて、
複数のサービスの中から共有先となるサービスを選択するための
操作を受け付ける選択画面の表示制御を行う手段と、
前記選択画面でのユーザによる選択
のための操作に対応する一つのサービスに、前記共有されるべきデータを共有する手段と、を有し、
前記選択画面では、前記オペレーティングシステムに共有先の候補として登録された
サービスを含む前記複数のサービスの情報が表示されており、
前記表示制御では、前記選択画面が、
前記表示部において前記ウェブブラウザが表示した前記ページであって前記共有オブジェクトが配置された該ページよりも前面に表示されることを特徴とする情報処理端末。
【請求項2】
前記サービスは、前記情報処理端末にインストールされたアプリケーションに対応することを特徴とする請求項1に記載の情報処理端末。
【請求項3】
前記選択画面では、前記共有されるべきデータの共有をキャンセルするための指示部が含まれることを特徴とする請求項1または2に記載の情報処理端末。
【請求項4】
前記サービスの情報は、サービスの名称を含むことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理端末。
【請求項5】
前記サービスの情報は、サービスのアイコンを含むことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理端末。
【請求項6】
前記ページデータの前記記述として、前記共有オブジェクトに対するユーザ指示に応じた前記選択画面のために、前記ウェブブラウザによって呼び出される所定の関数が含まれることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理端末。
【請求項7】
前記情報処理端末は、スマートフォンであることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理端末。
【請求項8】
前記ページデータに含まれる前記記述に対応する前記共有されるべきデータは、画像データであることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理端末。
【請求項9】
前記表示制御では
、前記ウェブブラウザの表示領域内の位置に前記選択画面が表示されることを特徴とする請求項1乃至8のいずれか1項に記載の情報処理端末。
【請求項10】
前記表示制御では
、前記ウェブサイトのURLの表示領域に重ならない位置に前記選択画面が表示されることを特徴とする請求項1乃至9のいずれか1項に記載の情報処理端末。
【請求項11】
ウェブサイトにネットワークを介してアクセス可能なウェブブラウザとオペレーティングシステムとがインストールされ、表示部を備える情報処理端末における制御方法であって、
前記ウェブサイトから提供された共有されるべきデータと前記ウェブブラウザにより表示されるべき共有オブジェクトとに関する記述が含まれるページデータに基づき前記ウェブブラウザを用いて表示されたページ上において前記共有オブジェクトに対するユーザ操作が行われたことに応じて、
複数のサービスの中から共有先となるサービスを選択するための
操作を受け付ける選択画面の表示制御を行う工程と、
前記選択画面でのユーザによる選択
のための操作に対応する一つのサービスに、前記共有されるべきデータを共有する工程と、を有し、
前記選択画面では、前記オペレーティングシステムに共有先の候補として登録された
サービスを含む前記複数のサービスの情報が表示されており、
前記表示制御では、前記選択画面が、
前記表示部において前記ウェブブラウザが表示した前記ページであって前記共有オブジェクトが配置された該ページよりも前面に表示されることを特徴とする制御方法。
【請求項12】
前記サービスは、前記情報処理端末にインストールされたアプリケーションに対応することを特徴とする請求項11に記載の制御方法。
【請求項13】
前記選択画面では、前記共有されるべきデータの共有をキャンセルするための指示部が含まれることを特徴とする請求項11または12に記載の制御方法。
【請求項14】
前記サービスの情報は、サービスの名称を含むことを特徴とする請求項11乃至13のいずれか1項に記載の制御方法。
【請求項15】
前記サービスの情報は、サービスのアイコンを含むことを特徴とする請求項11乃至14のいずれか1項に記載の制御方法。
【請求項16】
前記ページデータの前記記述として、前記共有オブジェクトに対するユーザ指示に応じた前記選択画面のために、前記ウェブブラウザによって呼び出される所定の関数が含まれることを特徴とする請求項11乃至15のいずれか1項に記載の制御方法。
【請求項17】
前記情報処理端末は、スマートフォンであることを特徴とする請求項11乃至16のいずれか1項に記載の制御方法。
【請求項18】
前記ページデータに含まれる前記記述に対応する前記共有されるべきデータは、画像データであることを特徴とする請求項11乃至17のいずれか1項に記載の制御方法。
【請求項19】
前記表示制御では
、前記ウェブブラウザの表示領域内の位置に前記選択画面が表示されることを特徴とする請求項11乃至18のいずれか1項に記載の制御方法。
【請求項20】
前記表示制御では
、前記ウェブサイトのURLの表示領域に重ならない位置に前記選択画面が表示されることを特徴とする請求項11乃至19のいずれか1項に記載の制御方法。
【請求項21】
ウェブサイトにネットワークを介してアクセス可能なウェブブラウザとオペレーティングシステムとがインストールされ、表示部を備える情報処理端末のオペレーティングシステムであって、
該情報処理端末を、
前記ウェブサイトから提供された共有されるべきデータと前記ウェブブラウザにより表示されるべき共有オブジェクトとに関する記述が含まれるページデータに基づき前記ウェブブラウザを用いて表示されたページ上において前記共有オブジェクトに対するユーザ操作が行われたことに応じて、
複数のサービスの中から共有先となるサービスを選択するための
操作を受け付ける選択画面の表示制御を行う手段と、
前記選択画面でのユーザによる選択
のための操作に対応する一つのサービスに、前記共有されるべきデータを共有する手段として機能させ、
前記選択画面では、前記オペレーティングシステムに共有先の候補として登録された
サービスを含む前記複数のサービスの情報が表示されており、
前記表示制御では、前記選択画面が、
前記表示部において前記ウェブブラウザが表示した前記ページであって前記共有オブジェクトが配置された該ページよりも前面に表示されることを特徴とするオペレーティングシステム。
【請求項22】
前記サービスは、前記情報処理端末にインストールされたアプリケーションに対応することを特徴とする請求項21に記載のオペレーティングシステム。
【請求項23】
前記選択画面では、前記共有されるべきデータの共有をキャンセルするための指示部が含まれることを特徴とする請求項21または22に記載のオペレーティングシステム。
【請求項24】
前記サービスの情報は、サービスの名称を含むことを特徴とする請求項21乃至23のいずれか1項に記載のオペレーティングシステム。
【請求項25】
前記サービスの情報は、サービスのアイコンを含むことを特徴とする請求項21乃至24のいずれか1項に記載のオペレーティングシステム。
【請求項26】
前記ページデータの前記記述として、前記共有オブジェクトに対するユーザ指示に応じた前記選択画面のために、前記ウェブブラウザによって呼び出される所定の関数が含まれ ることを特徴とする請求項21乃至25のいずれか1項に記載のオペレーティングシステ ム。
【請求項27】
前記情報処理端末は、スマートフォンであることを特徴とする請求項21乃至26のいずれか1項に記載のオペレーティングシステム。
【請求項28】
前記ページデータに含まれる前記記述に対応する前記共有されるべきデータは、画像データであることを特徴とする請求項21乃至27のいずれか1項に記載のオペレーティン グシステム。
【請求項29】
前記表示制御では
、前記ウェブブラウザの表示領域内の位置に前記選択画面が表示されることを特徴とする請求項21乃至28のいずれか1項に記載のオペレーティングシステム。
【請求項30】
前記表示制御では
、前記ウェブサイトのURLの表示領域に重ならない位置に前記選択画面が表示されることを特徴とする請求項21乃至29のいずれか1項に記載のオペレーティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Web Intents(ウェブインテンツ)などの仕組みを用いたサービスを提供する際の技術に関する。
【背景技術】
【0002】
従来、WEB(ウェブ)サイト間で処理を委譲する場合、機能を呼び出す側は、機能を提供する側のAPI(アプリケーション・プログラミング・インタフェース)やRESTインタフェース等の機能の呼び出し方を、知っている必要があった。従って、異なるウェブサイトとの連携を実現するためには、機能の呼び出し側は、それぞれの呼び出し規約に従って呼び出し側の処理が必要になった。また、機能を呼び出す側が機能を利用するためには、機能を提供する側への認証が必要になることが多い。このために、機能を利用する側は、機能を提供する側の認証情報を保持したり、SAML等の認証基盤を利用したりする必要があった。但し、認証情報を持つと、それら認証情報を正しく安全に管理する必要があり、SAML等の認証基盤を利用するためには、機能の提供者と利用者間で事前に合意が必要となり、機能の利用者の負担になっていた。特許文献1には、従来からWebで提供されるサービスを利用する技術が開示されている。
【0003】
専用のAPIを用いずに任意のウェブサービス(または、ウェブアプリケーション)と連携する仕組みも存在する。一例として、実行時遅延バインディングによりサービス受け側と提供側とを疎結合とし、それらの連携を実現するWeb Intents(ウェブインテンツ)という仕組みが提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したWebIntentsなどの新しい連携の仕組みでは、該仕組みのサービスにより提供される提供機能を利用するために、ユーザエージェント(UA)は、提供機能の機能情報の登録用マークアップを含むHTML文書を処理し、機能情報をWeb Intentとして登録する。UAは、自身に登録された機能情報を用いてサービスに接続して提供機能の実行を要求することが可能となる。しかし、情報処理端末に中継機能が複数存在する場合、中継機能ごとに個別に機能情報の登録処理が行われ個別に管理される。このため、ある中継機能で、ある機能情報を登録したとしても、その機能情報を他の中継機能から利用することができない。このため、ユーザは、同一の機能情報であっても、中継機能毎に登録処理をくり返し行う必要があり、必ずしも使い勝手の良いものではなかった。よって、このWeb Intentを用いたサービスへの要求やWebIntentの登録に関しては、ユーザビリティを向上させるための様々な改良が、今後、求められると言える。
【0006】
そこで、本発明は、現在、提案されているWeb Intentsなどの新しい連携の仕組みについて、ユーザビリティを向上させるための柔軟な改良を加えることを目的とする。
【課題を解決するための手段】
【0007】
本発明は、ウェブサイトにネットワークを介してアクセス可能なウェブブラウザとオペレーティングシステムとがインストールされ、表示部を備える情報処理端末であって、前記ウェブサイトから提供された共有されるべきデータと前記ウェブブラウザにより表示されるべき共有オブジェクトとに関する記述が含まれるページデータに基づき前記ウェブブラウザを用いて表示されたページ上において前記共有オブジェクトに対するユーザ操作が行われたことに応じて、複数のサービスの中から共有先となるサービスを選択するための操作を受け付ける選択画面の表示制御を行う手段と、前記選択画面でのユーザによる選択のための操作に対応する一つのサービスに、前記共有されるべきデータを共有する手段と、を有し、前記選択画面では、前記オペレーティングシステムに共有先の候補として登録されたサービスを含む前記複数のサービスの情報が表示されており、前記表示制御では、前記選択画面が、前記表示部において前記ウェブブラウザが表示した前記ページであって前記共有オブジェクトが配置された該ページよりも前面に表示されることを特徴とする。
【発明の効果】
【0008】
本発明によれば、Web Intentsなどの新しい連携の仕組みについて、ユーザビリティを向上させるための改良が提供される。より具体的には、ページデータを提供するウェブサイト側の意図に沿ったページ内のテキストや画像などの特定コンテンツを、ウェブブラウザでそのページデータに基づき表示されたページ内の共有オブジェクトへのユーザ操作に応じて、情報処理端末のユーザが良く利用するOSで管理されているサービスを共有先として選択し、容易に共有することが可能になる。
【図面の簡単な説明】
【0009】
【
図1】Web Intentsの基本的なシステム構成を例示する図。
【
図2】Web Intentsの基本的な動作の概要を例示するシーケンス図。
【
図3】Web Intentsの登録用マークアップ及び処理要求を例示する図。
【
図4】ブラウザを複数インストールしている情報処理端末のUI例。
【
図5】クライアント及びサービス103のハードウェア構成を例示する図。
【
図6】UAを含む情報処理端末のハードウェア構成を例示する図。
【
図7】UAを含む情報処理端末のソフトウェア構成を例示する図。
【
図8】Webブラウザにて管理される機能情報を例示する図。
【
図9】実施例1において機能情報を相互利用する動作のシーケンス図。
【
図10】Webブラウザに表示される画面を例示する図。
【
図11】
図9のシーケンスの一部の詳細シーケンス図。
【
図12】
図9のシーケンスの一部の詳細シーケンス図。
【
図14】実施例1において機能情報を相互利用する処理のフローチャート。
【
図15】インテントを利用して機能情報を取得する処理の詳細フローチャート。
【
図16】実施例2において機能情報を相互利用する動作のシーケンス図。
【
図18】実施例2において機能情報を相互利用する処理のフローチャート。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例1】
【0011】
<Web Intentsの基本的な仕組み>
まず、専用のAPIを用いずに任意のWebサービス(または、Webアプリケーション)と連携するための仕組みの一例であるWeb Intentsに関する基本的な仕組みについて
図1乃至
図3を用いて説明する。本発明では、具体例として、Web Intentsを挙げるが、任意のウェブサービス(または、Webアプリケーション)と連携する技術として、他の同様の仕組みを適用することも可能である。
【0012】
図1は、Web Intentsの全体構成を示す図である。
図1において、103は、Web Intents技術を利用してサービスや機能を提供するWeb Intentsサービス(以下、サービス)である。101は、サービス103を利用するWeb Intentsクライアント(以下、クライアント)である。106は、クライアント101からの要求をサービス103に渡し、サービス103からの結果をクライアントに渡す役割をするUserAgent(ユーザエージェント;以下、UA)である。UA106は、クライアント101及びサービス103の間で要求を実行したり、データを受け渡したりするための中継機能といえる。また、UA106には、サービス103の提供機能を呼び出すための機能情報であるWeb Intentが登録される。
【0013】
本仕組みにおいては、例えば、クライアント101はデータを管理し、サービスを呼び出すボタンなどを配置しているウェブサイトであり、UA106は該ウェブサイトを表示するWebブラウザ(ウェブブラウザ)である。また、サービス103は、UA106を介してクライアント101が管理するデータを受け付けて、処理するクライアント101の連携先のウェブサイトである。
【0014】
例えば、本仕組みをSNS(ソーシャル・ネットワーキング・サービス)に適用した場合には、サービス103はクライアントで管理する写真やコメントの投稿を受け付けて閲覧サイトを構成する投稿先サービスとなる。SNSサイトの「いいね」「チェック」「シェア」といったソーシャルボタンをWeb Intentsの仕組みで例えると、クライアント101はボタンを配置しているサイトになり、UA106はWebブラウザになり、サービス103は「いいね」などの投稿先サービスになる。なお、サービス103が機能を提供するにあたって、ユーザ認証やユーザによる操作が必要な場合、UA106上でユーザが操作を行う。
【0015】
なお、UA106は、後述するサービスと連携するための機能を持つのであれば、Webブラウザ以外にも、情報処理端末で動作するオペレーティングシステム(OS)やアプリケーションなどで実現することも可能である。ここで、情報処理端末の例としては、パーソナルコンピュータ、スマートフォン、タブレット型コンピュータ、カーナビゲーション装置などが挙げられる。
【0016】
また、サービス103については、上述した投稿先サービスのような、インターネット上のサービス提供者以外にも、例えば情報処理端末が内蔵するカメラ、プリンタ、スキャナなどといったデバイスもサービス提供者になり得る。また、サービス103については、ネットワークで接続されるプリンタ、スキャナ、ネットワークカメラなどの周辺機器や、冷蔵庫やテレビといった家電製品などもサービス提供者になり得る。また、クライアント101についても同様に、情報処理端末が内蔵するさまざまなデバイスやアプリケーション、その他にネットワーク上の周辺機器や家電製品、その上で動くプログラムなどもサービスを呼び出す利用者となり得る。クライアント101とUA106とサービス103は、これらの任意の組み合わせが、同一システム内で稼働することもある。具体的には、ウェブブラウザの同等の機能を有する文書編集アプリケーションなどが、クライアント101とUA106とを含む構成として動作するといったことが考えられる。また、クライアント101、UA106、サービス103のいずれかが、同じ装置上で動作する機能であってもよい。
【0017】
<Web Intentsシーケンス図、および、データの例>
図2は、Web Intentsを利用したサービス提供に関する基本動作を説明するためのシーケンス図である。
【0018】
S201にて、UA106は、ユーザの操作によりサービス103にアクセスする。S202にて、サービス103は、自身が提供する機能をUA106に登録してもらうための登録用マークアップを含むHTML(HyperText Markup Language)応答をUA106に返信する。
【0019】
図3(a)は、S202にてサービス103からUA106に返信されるHTML文書を例示する図である。以下、
図3(a)の例を用いて、サービス103からUA106に返信されるHTML文書の中身について説明する。
【0020】
<intent>タグには、サービス103が提供する機能を特定し、サービス103が提供する機能を呼び出すための機能情報が記載されている。actionは、提供機能の分類情報(カテゴリ)を示す。すなわち、actionは、提供機能がどのような機能、サービスを提供するものであるかの分類情報を示す。なお、提供機能の分類情報には、例えば、データを共有する機能に対応する分類情報「Share」、データを編集する機能に対応する分類情報「Edit」、データを閲覧する機能に対応する分類情報「View」、データを取得する機能に対応する分類情報「Pick」、データを保存する機能に対応する分類情報「Save」等が含まれる。即ち、上記機能情報には、分類情報として、例えばShare、Edit、View、Pick、Saveのいずれかの分類情報が記載されている。
【0021】
typeは、提供機能が扱えるデータなどの種類を示す。すなわち、typeは、actionに対して扱えるデータ型などを示す。hrefは、提供機能の接続先(URL)を示す。titleは、提供機能のタイトルを示す。また、dispositionは、呼び出された提供機能がどのように表示されるかを示す。
【0022】
図3(a)の例では、提供機能のカテゴリが"share(共有)"であり、扱えるデータ等の種類が"あらゆるフォーマット(*)の画像データ"であり、接続先は"share.html"である。また、タイトルは" Share image using e-mail"である。さらに、この機能がUA106を介して別ウィンドウで表示されることを示している。
【0023】
UA106は、上記S202のHTML応答を受信すると、ユーザに対してサービス103の提供機能をUA106に登録するか否か確認する。例えば、UA106がWebブラウザであれば、ポップアップウィンドウを表示させユーザに登録の可否の選択を促す。ユーザがこの提供機能をWeb Intentとして登録することを選択すると、UA106は、上記S202で受信した情報を内部に記憶する登録処理を実行する。具体的には、上記S202で受信した情報はUA106が動作する情報処理端末の記憶領域に記憶され、UA106にWeb Intentsとして登録される。
【0024】
S203で、UA106は、ユーザの操作によりクライアント101にアクセスする。S204で、クライアント101は、サービス103の提供機能(Web Intent)を利用することが記載されたHTML文書を、UA106へ返信する。例えば、クライアント101としてのWebサイトで、画像と「共有」ボタンが表示される場合に、該Webサイトは、Web Intentの処理要求である
図3(b)で示すようなECMAScriptを含むHTML文書をUA106へ返す。
【0025】
図3(b)は、S204にてクライアント101からUA106に返信されるHTML文書を例示する図である。以下、
図3(b)の例を用いて、クライアント101からUA106に返信されるHTML文書の中身について説明する。
【0026】
ECMAScriptは、HTML内のID「share―photo」を持つボタンがクリックされると指定された無名関数を実行することを示している。無名関数は、まず、新規のIntentオブジェクトを作成し、これを引数にしてstartActivety()関数を呼び出す。この関数を実行すると、UA106は自身に登録されているWeb Intentsの中から、指定されたWeb Intentオブジェクトのactionとtypeが一致するものを抽出し、一覧表示させることでユーザに選択を要求する。また、UA106は、無名関数内で呼び出しているgetImageFrom()関数を実行することにより、クライアント101が持つ画像データを取得する。
【0027】
上記S204にて、UA106は、クライアント101から送信されるHTML文書を受け取り、該HTML文書に基づく画面を表示する。S205にて、UA106は、ユーザによる画面上の「共有」ボタンの押下を検出すると、上述したようにWeb Intents起動用のECMAScriptを実行し、S206にて、クライアント101が持つ画像データを取得する。また、上記S205で「共有」ボタン押下を検出した際に、UA106は、自身に登録されているWeb Intentsの一覧を表示する。UA106は、この一覧からユーザがサービス103の提供機能を示すWeb Intentを選択したことを検出すると、S207にて、該選択された提供機能を提供するサービス103へHTTP要求(Web Intent処理要求)を送信する。その際、UA106は、送信データに、
図3(b)のECMAScriptが作成したWeb Intentオブジェクトの内容を含める。
【0028】
サービス103は、上記S207でUA106から送信されたHTTP要求を受信すると、S208にて、該HTTP要求からWeb Intentオブジェクトを取り出し、UA106を介してユーザと相互作用しながら、選択された提供機能(ここではクライアント101の画像データの「共有」)の利用を実現する。
【0029】
例えば、ユーザがWebブラウザ(UA106)で、写真データを管理するウェブストレージ(クライアント101)のWeb Intentsの呼び出しボタンが用意されたサイトに訪れ、当該ボタンを押下する。すると、Webブラウザ(UA106)が登録サービス一覧を含むポップアップウィンドウを表示する。そのポップアップウィンドウで、ユーザがサービスとしてWebメール機能を選択したとすると、該機能を提供するサイトが別ウィンドウで表示され、処理結果として、そのウィンドウ上では写真データを添付した新規メールが作成される。これにより、ユーザは電子メールを送信することが出来る。
【0030】
サービス103は、提供機能に関する処理が終了すると、S209にて、処理結果をクライアント101に伝えるECMAScriptを含む応答をUA106に返す。UA106は、上記S209の応答を受信すると、S210にて、該応答中に含まれるECMAScriptを実行し、上記S205のstartActivety()関数の引数で指定されたコールバック関数onSuccess()を呼び出す。S211にて、UA106は、該コールバック関数onSuccess()によってクライアント101へ処理結果を返す。
【0031】
以上の処理により、クライアント101は、UA106を介して、サービス103が提供するWeb Intentsの機能(この例では画像の「共有」)を呼び出すことが可能となる。
【0032】
<本実例における情報処理端末のUI例>
図4は、本発明の一実施例を示す情報処理端末のUI例を示す図である。
図4において、501は、通常のモバイル端末やスマートフォンのような情報処理端末を示している。情報処理端末501には、携帯情報端末をターゲットとして開発されたプラットフォームであるandroid(登録商標)などのOS(オペレーティングシステム)がインストールされる。
【0033】
図4の例では、情報処理端末501には、アプリケーションプログラムとして複数のWebブラウザ(browserA,browserB,browserC)がインストールされている。これらのWebブラウザは、それぞれが
図1におけるUA106に相当するものであり、それぞれWeb Intentsを利用可能である。即ち、情報処理端末501は、Web Intentsの中継機能を複数備えるものである。
【0034】
ユーザは、Webブラウザ使用時に
図1の103に相当するサービスを発見すると、必要に応じてサービスをWebブラウザに登録する。Webブラウザが管理している複数のサービスのリストは、Webブラウザ毎のものである。よって、Webブラウザに登録されているWeb Intentsは、Webブラウザ毎で異なっているのが通常である。
【0035】
また、本実施例では、
図4に示すようなスマートフォン型の情報処理端末を利用して説明するが、プラットフォームとして情報処理端末の形態には制限がなく、一般的なコンピュータ(例えばパーソナルコンピュータ)にも本発明は適用可能である。
【0036】
<クライアント101及びサービス103のハードウェア構成例>
図5は、
図1におけるクライアント101及びサービス103のハードウェア構成例を示すブロック図である。
クライアント101やサービス103は、汎用のコンピュータ等で構成可能である。クライアント101やサービス103は、CPU602、ROM603と、RAM604を含む。CPU602は、ROM603や後述する記憶装置608に格納されているプログラムを読み出して実行することにより、装置全体を統括制御する。ROM603は、システム起動に必要なブートプログラムを記憶するための読み出し専用メモリである。RAM604は、CPU602でプログラムを実行する際に必要とされる作業メモリである。
【0037】
ネットワークインタフェース(Network I/F)605は、ネットワーク(Network)を介して通信を行う。表示制御部606は、表示デバイス609の表示を制御する。例えば、表示制御部606は、Webサーバを管理するため等の画面表示を制御する。表示デバイス609は、表示制御部606にて制御された出力信号をWebサーバ管理者であるオペレータに表示する。入力制御部607は、入力デバイス610や611から受信した入力信号を制御する。入力デバイス610は例えばマウス等のポインティングデバイスで、入力デバイス611はキーボード等であり、オペレータからの入力を受け付ける。
【0038】
記憶装置608は、CPU602で実行するプログラムや各種情報を格納する例えば磁気ディスクやフラッシュメモリ等の不揮発性の記憶装置である。クライアント101の場合、記憶装置608に、クライアント101にて提供するコンテンツ情報なども格納する。また、サービス103の場合、記憶装置608に、サービス103が機能を提供するために必要なデータとプログラムなども格納する。
【0039】
なお、本実施例で示すクライアント101、サービス103の処理は、それぞれ、クライアント101、サービス103のCPU602が記憶装置608に格納されるプログラムを読み出して実行することにより実現されるものである。
【0040】
<情報処理端末501のハードウェア構成例>
図6は、情報処理端末501のハードウェア構成を示すブロック図であり、
図1におけるUA106は、このハードウェア上で実行される。
図6に記載の情報処理端末501は、通常のモバイル端末やスマートフォンであり、小型端末用のオペレーティングシステムや、通話、データ通信を制御するプログラムが動いている。
【0041】
情報処理端末501のハードウェアの各構成要素は、システムバス801に接続されている。ROM803には、情報処理端末501におけるオペレーティングシステム及び、通話、データ通信を制御するアプリケーション等が格納されており、CPU802により読み出されて実行される。なお、データ通信を制御するアプリケーションには、例えば、MailソフトやWebブラウザなどがある。
【0042】
RAM804は、プログラムを実行するためのワークメモリエリアである。また、RAM804は、WebブラウザがWebサーバから取得してきたWebページデータやWebサービスにアクセスするための認証情報などを一時記憶するためのメモリでもある。記憶装置809は不揮発性の記憶装置であり、情報処理端末501の再起動後も保持しておく必要のある各種動作モード設定や、稼働ログなどが記憶される。
【0043】
ネットワークコントローラ(Network Controller)805は、無線LANに参加するための無線LAN通信部811と、携帯キャリアの提供するネットワークに参加するための携帯電話データ通信部812の通信制御を行う。一般的に無線LANのネットワークに参加できるとき、ネットワークコントローラ805は、無線LAN通信部811を介した無線LANの接続を優先する。なお、情報処理端末501が無線LANのネットワークエリアから外れた場合には、携帯電話データ通信部812を介したネットワークコントローラ805は、携帯キャリアが提供する無線通信ネットワークへ参加する。
【0044】
音声制御部806は、主に通話アプリケーションが起動しユーザが電話をしているときに利用する。マイク・スピーカ813にて音声データの入出力を行い、音声制御部806は、その制御プログラムとの仲介を行っている。表示制御部807は、情報処理端末501のディスプレイ814にて出力する情報の制御を行っている。入力制御部808は、情報処理端末501のボタンやタッチパネル815を介してユーザが指示した情報の制御を行っている。これらの音声制御部806、表示制御部807、入力制御部808を利用して、情報処理端末501上でのアプリケーションは、ネットワーク通信情報や情報処理端末501のさまざまな情報をユーザに提供する。位置検出制御部810は、GPSセンサー816から情報処理端末501の位置情報を取得しオペレーティングシステムに提供する。これらの制御は、CPU802で動くオペレーティングシステムにて制御される。
【0045】
なお、本実施例で示すUA106は、情報処理端末501のCPU802がROM803に格納されるプログラムを読み出して実行することにより実現されるものである。
【0046】
<情報処理端末501のソフトウェア構成例>
図7は、
図4における情報処理端末501のソフトウェア構成を示すブロック図である。
図7では、主に、本発明に関係のあるアプリケーションのWeb Intentsリクエスト発行に係る技術と、インテントを利用した機能情報の相互利用に係る機能を説明する。なお、インテントとは、任意のアプリケーション間でデータを送受信する技術である。これは、携帯情報端末をターゲットとして開発されたプラットフォームであるandroid(登録商標)上で、利用可能な技術である。また、類似の技術が、他のプラットフォームでも実装されているが、本実施例では、情報処理端末内のアプリケーション間でデータの送受信を行う技術をインテントと呼ぶ。
【0047】
図7において、501は、
図4に示した情報処理端末である。ここでは、情報処理端末501をモバイル端末やスマートフォンとして説明する。情報処理端末には、一般的に機器を制御するためのオペレーティングシステム(以下、OS)が動いており、
図7ではOS部901として表している。また、情報処理端末501には、複数のアプリケーションをインストールすることができる。このアプリケーションを
図7ではアプリケーション部902として表している。
図7では、アプリケーション部を1つしか記載していないが、実際には、情報処理端末501には複数のアプリケーションがインストールされている。
【0048】
本発明では、情報処理端末501のオペレーティングシステム上で
図1のUA106として動作するアプリケーションが、情報処理端末501内で複数動作する環境を想定している。なお、本実施例では、UA106として動作するアプリケーションの一例としてWebブラウザを用いて説明するが、UA106として動作するアプリケーションであればどのようなアプリケーションであってもよい。例えば、表計算ソフトのようなアプリケーションがUA106の機能を提供するものであってもよい。また、OSがUA106として動作する場合も本発明に含まれるものとする。
【0049】
本実施例で想定しているアプリケーションは、WebブラウザのようなWeb IntentsをUA106として制御できるアプリケーションであり、また同時に、アプリケーション間でデータの送受信を行うことができるアプリケーションである。アプリケーション間でデータを送受信する技術としては、インテントの他に、Web Intentsなどがある。実施例1では、インテントを利用してアプリケーション間でデータを送受信する実施例を示す。また、後述する実施例2では、Web Intentsを利用してアプリケーション間でデータを送受信する実施例を示す。しかし、ここで想定するアプリケーションは、任意のアプリケーション間で、データの送受信を行うことができればよく、特にインテントやWeb Intentsに限定しない。
【0050】
なお、
図7に示すOS部901やアプリケーション部902は、情報処理端末501のCPU802がROM803に格納されるOSやアプリーションプログラムを読み出して実行することにより実現されるものである。
【0051】
まず、OS部901について説明する。
OS部901において、906はネットワーク制御部である。ネットワーク制御部906は、
図6のネットワークコントローラ805を制御する。情報処理端末501は、小型携帯端末であるため移動して利用することが想定されており、ネットワーク制御部906は、その場所に応じてアクセス可能なネットワークへ自動的に接続を行う。また、アプリケーション部902からの通信リクエストに応じて外部へ通信を行う。また、ネットワーク制御部906は、外部からのネットワーク接続要求に対応し、適切なアプリケーション部902へと接続要求を振り分ける。
【0052】
904はインテント情報入出力部、905はアプリケーション情報格納部である。OS部901は、アプリケーション部902からアクションやタイプ(以下、データ型)の情報とともにインテント要求を受けると、そのアクションとデータ型に対応したアプリケーションをインテント情報入出力部904に要求する。インテント情報入出力部904は、インテント要求を受けると、受信したアクションとデータ型に対応するアプリケーションのリストをアプリケーション情報格納部905から取得する。そして、インテント情報入出力部904は、取得したアプリケーションのリストをアプリケーション部902へ送信する。
【0053】
また、903はユーザ入出力部で、
図6の音声制御部806、表示制御部807、入力制御部808を統括して管理する。ユーザ入出力部903は、アプリケーション部902からユーザへの表示指示があると表示制御部807を介してディスプレイ814へ表示を行う。また、ユーザがタッチパネル815を介して入力を行うと、ユーザ入出力部903は、入力制御部808にて制御された入力信号をアプリケーション部902へと伝える。
【0054】
次に、アプリケーション部902について説明する。
アプリケーション部902は、サービス情報管理部908、中央処理部907、サービス情報検出部909、サービス情報入出力部910、サービス情報格納部911を有する。
【0055】
907は中央処理部で、Webブラウザとして中心的な働きをする。この中央処理部907の基本的な役割は、Web IntentsにおけるUA106である。そのほかにも中央処理部907は、基本的なブラウジング処理や、サービス103の検知、また、インテントを通じたデータの送受信なども行う。また、中央処理部907は、OS部901のインテントを利用しない場合には、サービス情報管理部908を用いて、Web Intentsのサービス情報(機能情報)を他のアプリケーションから取得、または、提供することも可能である。なお、サービス情報管理部908については、後述する実施例2で説明する。
【0056】
サービス情報検出部909は、アクセス時にサービス103から受信したWebページに含まれる<intent>タグを検出し、サービス103が提供する機能を登録するための機能情報を認識する。サービス情報入出力部910は、サービス情報格納部911への機能情報の入出力を制御する。サービス情報格納部911には、
図8に示すような情報が格納される。
【0057】
図8は、UAとしてのWebブラウザにて管理される機能情報を例示する図である。
例えば、
図8に示す例では、サービスが提供する提供機能の名称1401、サービスにて提供機能を受け付けるURI1402、Web Intentsリクエストを受け付ける際のアクション(action)1403、データ型(type)1404などを含む情報がサービス情報格納部911に格納されている。
【0058】
以下、アプリケーション部902の各モジュールの動きを簡単に説明する。
ユーザが情報処理端末501のアプリケーションであるWebブラウザ(UA106に対応)を利用して、Web Intentsの仕組みを利用した或るサービス(Webサイト)へアクセスする。すると、アプリケーション部902のサービス情報検出部909は、アクセス時にサービスから受信したWebページに含まれる<intent>タグを検出し、サービスが提供する機能を登録するための機能情報(Web Intentsサービス情報)を認識する。該アクセスしたサービスの機能情報を認識すると、中央処理部907は、ユーザ入出力部903を介してユーザに対して、この機能情報をWeb Intentとして登録するか否かの選択を仰ぐ。ここで、ユーザから登録が指示された場合、中央処理部907は、サービス情報入出力部910へ上記<intent>タグで特定される機能情報を保管する指示を発行する。サービス情報入出力部910は、上記機能情報の保管指示を受けると、サービス情報格納部911へ上記機能情報を格納する。
【0059】
また、ユーザがサービスに処理を依頼する場合、中央処理部907は、サービス情報入出力部910を介して、サービス情報格納部911から機能情報を取得する。そして、中央処理部907は、該取得した機能情報の一覧を表示し、該一覧から選択された機能情報に対応するサービスに対してWeb Intents処理要求とコンテンツ情報を送信する。
【0060】
なお、サービス情報格納部911から取得した機能情報の一覧の中に、ユーザの利用したい機能に対応する機能情報がない場合、当該Webブラウザは、インテントを利用して他のWebブラウザから機能情報を取得することができる。この場合、Webブラウザの中央処理部907は、OS部901のインテント情報入出力部904に、機能情報を提供可能なアプリケーションのリストを取得するためのリクエストを発行する。そして、中央処理部907は、該リクエストの結果、機能情報の提供を行うアプリケーションのリストを受信する。このアプリケーションのリストの中からユーザが任意のアプリケーションを選択すると、中央処理部907が、該選択されたアプリケーションに対してインテントを利用して機能情報の取得要求を行い、機能情報を取得する。
【0061】
また、中央処理部907は、外部アプリケーションからインテントにより、機能情報の提供依頼(取得要求)を受け付けると、サービス情報入出力910を介してサービス情報格納部911から機能情報を取得する。そして、中央処理部907は、該取得した機能情報を、上記外部アプリケーションに対して提供する。
【0062】
<機能情報の相互利用に関するシーケンス図の例>
図9は、ユーザがあるWebブラウザを用いてWeb Intentsを利用する際に他のWebブラウザが管理する機能情報のリストを参照して利用する動作を例示するシーケンス図である。なお、
図9では、
図2で説明したWeb Intentsの基本シーケンスに拡張を行っている。
図9中、902は情報処理端末501内のWebブラウザを表しており、Web Intentsの役割としてはUAとなる。
図9では、UAが複数存在し、機能情報を要求する側のWebブラウザをUserAgent.1(以下、UA.1)とし、機能情報を提供する側のWebブラウザをUserAgent.2(以下、UA.2)する。
なお、
図10は、UA.1のWebブラウザ画面に表示される画面を例示する図である。
また、
図11、
図12は、
図9のシーケンスの一部の詳細シーケンス図である。
【0063】
図9のS1001では、ユーザ指示に応じてUA.1がクライアント101にアクセスをする。すると、UA.1は、S1002にて、クライアント101から「Share」ボタンによって処理が開始されるECMAScriptを含んだHTML情報を受信する。そして、UA.1のWebブラウザ画面では、
図10(a)に示すような画面が表示される。この画面では、写真コンテンツ情報の提供と「Share」ボタン1101によって、任意のサービスに写真コンテンツ情報を共有する依頼を発行することができる。
【0064】
S1003にて、ユーザが「Share」ボタン1101を押下してサービスを利用することを指示すると、UA.1は「Share」ボタン1101が押下されたことを検知する。UA.1は、「Share」ボタン1101の押下を検知し、ユーザからサービスの利用を指示されたと判断すると、S1004に処理を移す。S1004にて、UA.1は、写真コンテンツに対する共有を示すアクションとファイルのデータ型に基づいて、サービス情報格納部911(
図7)に登録されている機能情報のリストを取得して、該取得した機能情報のリスト(一覧)を含む
図10(b)のような選択画面を表示してユーザに提示する。
【0065】
S1004で表示する画面には、
図10(b)に示すように、機能情報のリスト1102と、他のUAに登録済みの機能情報を参照できる「サービス・インポート」と記載しているリンクボタン1103が表示される。また、この画面には、選択した機能情報を決定するためのOKボタン1104、機能情報の選択をキャンセルするCancelボタン1105も表示されている。
【0066】
ユーザは、上記S1004で表示された
図10(b)のような画面上の機能情報のリスト1102に、利用したい機能情報がない場合、他のブラウザにて登録されている機能情報を利用することができる。この場合、ユーザは、S1005にて、
図10(b)の画面の「サービス・インポート」リンクボタン1103を押下する。
【0067】
UA.1は、「サービス・インポート」リンクボタン1103の押下を検知すると、情報処理端末501の中で機能情報を提供可能な他のアプリケーションを探す(S1006~S1007)。実施例1では、例としてandroid(登録商標)のインテントを利用して機能情報を取得する処理シーケンスを記載する。インテントも、Web Intentsと同様に転送したいデータ型とそのデータに対して何をしたいかというアクションをOSが仲介することで適切なアプリケーション間でのデータ転送を可能にするものである。
【0068】
以下、S1006~S1007について
図11(a)を用いて詳細に説明する。
図11(a)に示すように、S1006にて、UA.1は、データの型を「application/Web Intents Service」とし、データ提供を依頼できるアプリケーションを探すためアクションを「pick」として、OS部901にインテント依頼を発行する。OS部901は、S1007にて、インテントによって、サービスの機能情報を提供できるアプリケーションのリストを、アプリケーション情報格納部905から取得する。そして、インテント情報入出力部904を介して、UA.1にUAのリストとして返す。
【0069】
上記S1007でUAリストを取得したUA.1は、S1008にて、UAリストを含む画面を表示してユーザに提示する。ユーザは、この画面にて、あるUA(ここでは、UA.2とする)に登録されている機能情報を利用したい場合、UA.2を選択する。UA.1は、S1009にて、UA.2が選択されたこと検知すると、S1010にて、UA.2に登録されている機能情報のリストの取得要求を発行する。
【0070】
以下、S1010~S1013について
図11(b)を用いて詳細に説明する。
図11(b)に示すように、S1010にて、UA.1は、UA.2に対してインテント呼び出しを行い、データ型を「appilication/Web IntentsService」としアクションを「pick」として処理を要求する。この要求に応じて、UA.2は、中間応答として提供可能な機能情報のリストをUA.1に提供する。なお、このデータの送受信は実際にはOS901を介して行われるが、ここでは簡略化して説明する。
【0071】
UA.1は、S1011にて、UA.2から機能情報リストを受信すると、S1013にて、UA.2の機能情報リスト(一覧)を表示する。上記S1013にて情報処理端末501に表示される画面の例を
図10(c)として示す。
図10(c)では、UAのリストとそのUAが管理する機能情報のリストの親子関係がわかるように表示されている。例えば、
図10(c)では、UAとしての「browserB」が管理する機能情報として「PhotoServiceD」,「PhotoServiceE」が表示されている(1106)。しかし、親子関係を表示せず、UA.1に登録されていない機能情報のリストのみをそのまま表示してもよい。ユーザは、いずれか1又は複数の機能情報を選択した状態でOKボンタン1107を押下することにより、機能情報の選択を確定する。この際、UA.1は、機能情報が選択されたことを検出する。
【0072】
なお、上記S1009~S1013に示したUAの選択を検知し該選択されたUAに登録されている機能情報リストを取得して表示する処理は、ユーザがUAを選択した回数分繰り返される(S1012)。
【0073】
UA.1は、S1014にて、上記機能情報リストから、UA.2に登録されている機能情報が選択されたことを検出すると、S1015にて、UA.2に対して上記選択された機能情報を取得するためのリクエストを発行し、上記選択した機能情報を取得する(S10115~S1016)。
【0074】
以下、S1015~S1016について
図12(a)を用いて詳細に説明する。
図12(a)に示すように、S1015にて、UA.1は、インテントの「pick」を用いて取得対象の機能情報を指定し、インテントの仕組みを利用して、UA.2に対して取得要求を発行する。この取得要求に応じて、UA.2は、S1016にて、上記1015のインテントの応答として、上記指定された機能情報を送信する。ここで送信される機能情報は、
図13のように、機能情報が定義されている定義ファイルである。
【0075】
図13は、S1016でUA.2から送信される機能情報の定義ファイルを例示する図である。
図13に示すように、機能情報の定義ファイルには、提供機能の名称と、提供機能を受け付けるURI、また、提供機能を提供する際のアクション(action)とデータの型(type)が記されている。
【0076】
以下、
図9のシーケンス図の説明に戻る。
UA.1は、上記S1016で機能情報を登録するために必要な情報を取得すると、S1017にて、自身に、上記取得した機能情報を登録する。即ち、UA.1の中央処理部907は、サービス情報入出力部910を介して、上記S1016で取得した機能情報をサービス情報格納部911へ格納する。その後、S1018にて、UA.1は、自身に登録されている機能情報のリストを再び
図10(b)のような選択画面を表示してユーザに提示する。UA.1は、S1019にて、ユーザにより、上記S1018で表示した機能情報リストの中から、ある機能情報を選択されたことを検知すると、S1020に処理を進める。S1020では、UA.1は、上記選択された機能情報に対応するサービス(ここではサービス103)に対して、「share」を処理するためのHTTP要求(Web Intent処理要求)を送信する。
【0077】
以下、S1020~S1021について
図12(b)を用いて詳細に説明する。
図12(b)に示すように、S1020にて、UA.1は、サービス103に対して、データ型「image/jpeg」、アクション「share」のWeb Intents処理要求を発行する。このWeb Intents処理要求に応じて、サービス103は、S1021にて、該Web Intents処理要求に対する処理を実行し、実行結果を応答としてUA.1に返す。そして、UA.1は、上記S1021の応答を受信する。
【0078】
<実施例1のUAの処理フローチャートの例>
図14は、UAがクライアントからECMAScriptを受信してから、機能情報を外部から取得し、サービスにリクエストを発行するまでのソフトウェアの処理を例示するフローチャートである。なお、このフローチャートの処理は、
図7に示す情報処理端末501内のソフトウェアの処理の一部を示したものである。このフローチャートの処理は、情報処理端末501のCPU802が、ROM803、記憶装置809等に記憶されたプログラムを必要に応じてRAM804に展開して実行することにより実現される。
【0079】
S1701にて、情報処理端末501のネットワーク制御部906は、クライアント101からWeb Intentsリクエストを発行するためのECMAScriptを含むHTMLを受信すると、処理をS1702へ進める。
【0080】
S1702では、中央処理部907は、受信したHTML情報に基づいて画面を構成し、ユーザ入出力部903を介して
図10(a)のような画面を表示し、ユーザに受信情報を提示し、処理をS1703へ進める。S1703では、中央処理部907は、画面操作でユーザからWeb Intentsリクエストの発行指示を受け取ったか否かを判断する。なお、中央処理部907は、「share」ボタン1101の押下を検知した場合に、Web Intentsリクエストの発行指示を受け取ったと判断する。
【0081】
Web Intentsリクエストの発行指示を受け取っていないと判定した場合(S1703でNoの場合)、中央処理部907は、S1703の処理を返し、ユーザからの発行指示を待つ。なお、図示しないが、ユーザの指示によりその他のWebページへ移動するリクエストを受けると、中央処理部907は、本フローチャートの処理から外れ、リクエストに応じた処理を行う。
【0082】
一方、Web Intentsリクエストの発行指示を受け取ったと判定した場合(S1703でYesの場合)、中央処理部907は、S1704に処理を進める。S1704では、中央処理部907は、サービス情報入出力部910に対して、上記Web Intentsリクエストに対応する機能情報の登録を問い合わせる。ここで該当する機能情報の登録があれば、中央処理部907は、ユーザ入出力部903を介して、
図10(b)で示したような機能情報のリスト1102を表示し、ユーザに提示する。そして、処理をS1705へ進める。
【0083】
S1705では、中央処理部907は、
図10(b)に示した画面において「サービス・インポート」リンクボタン1103が押下されたか否かを判定する。そして、「サービス・インポート」リンクボタン1103が押下されたと判定した場合(S1705でYesの場合)、中央処理部907は、S1706に処理を進める。S1706では、機能情報リスト取得・登録処理を実行する。なお、実施例1におけるS1706の詳細は、後述する
図15に示す。そして、上記S1706の処理を終了すると、中央処理部907は、S1704に処理を進め、上記S1706で取得した情報を含む機能情報のリストの選択画面(
図10(b)のような画面)を表示する。
【0084】
一方、「サービス・インポート」リンクボタン1103が押下されなかったと判定した場合(S1705でNoの場合)、中央処理部907は、S1707に処理を進める。S1707では、中央処理部907は、ユーザによる機能情報の選択を検知すると、処理をS1708へ進める。S1708では、中央処理部907は、上記S1703で発行指示を出したコンテンツ情報を利用してWeb Intentsリクエストを作成し、S1709に処理を進める。S1709では、中央処理部907は、上記S1708にて作成したWeb Intentsリクエストを、上記S1705で選択検知された機能情報に対応するサービスに対して発行し、本フローチャートの処理を終了する。
【0085】
<機能情報リスト取得・登録処理のフローチャート>
図15は、実施例1における機能情報リスト取得・登録処理(
図14のS1706)の詳細を示すフローチャートである。このフローチャートの処理は、情報処理端末501のCPU802が、ROM803、記憶装置809等に記憶されたプログラムを必要に応じてRAM804に展開して実行することにより実現される。
【0086】
図14のS1706に示した機能情報リスト取得・登録処理を開始すると(S1721)、中央処理部907は、S1722へ処理を進める。S1722では、中央処理部907は、OS部901に対してアクションを「pick」、データ型を「Web Intents Service」としてインテントのリクエストを発行し、S1723に処理を進める。
【0087】
S1723では、中央処理部907は、OS部901からインテントにてリクエストした応答として、アプリケーションのリストを受信したか否かを判定する。そして、OS部901からアプリケーションのリストを受信できなかったと判定した場合(S1723でNoの場合)、中央処理部907は、S1724に処理を進める。S1724では、インテントで対応するアプリケーションを探したがデバイス内に対応するアプリケーションが存在しないことをユーザに通知し(例えばメッセージを表示し)、本機能情報リスト取得・登録処理を終了する(S1735)。
【0088】
一方、OS部901からアプリケーションのリストを受信したと判定した場合(S1723でYesの場合)、中央処理部907は、S1725に処理を進める。S1725では、中央処理部907は、ユーザ入出力903を介してディスプレイ814に、上記S1723にて取得したアプリケーションのリストを表示し、ユーザへ提示する。そして、S1726に処理を進める。
【0089】
S1726では、中央処理部907は、上記S1725にて表示したアプリケーションのリストの中から1つのアプリケーションがユーザにより選択されたことを検知すると、処理をS1727へ進める。S1727では、中央処理部907は、上記S1726にて選択されたアプリケーションに対して、インテントを利用し、アクション「pick」、データ型「Web IntentsService」に対応する機能情報のリストを要求する。そして、処理をS1728へ進める。
【0090】
S1728では、中央処理部907は、上記S1727にて要求した機能情報のリストを受信し、処理をS1729へ進める。S1729では、中央処理部907は、上記S1728で受信した機能情報のリストと、既にサービス情報格納部911にて登録済みの機能情報を比較する。該比較の結果、中央処理部907は、既に登録済みの機能情報を除外し、処理をS1730へ進める。
【0091】
S1730では、中央処理部907は、ユーザ入出力部903を介して受信した機能情報のリストをディスプレイ814に表示する。ここで表示する画面は、
図10(c)のような画面となる。
【0092】
図10(c)の例では、中央処理部907は、上記S1726にて、「browserB」と「browserC」からなるアプリケーションのリストを表示する。ユーザは、「browserB」に登録されている機能情報リストを取得する場合、「browserB」をタッチする。すると、中央処理部907は、S1730にて、ディレクトリ構造を示す画面左側の三角形を1108のように傾け、「browserB」に登録されている機能情報リスト1106を表示する。この機能情報リスト1106から、ユーザはアプリケーションに取り込みたい機能情報を1つ又は複数選択をする。
【0093】
以下、
図15のフローチャートの説明に戻る。
上記S1730で表示された画面での操作を検知すると、中央処理部907は、S1731に処理を進める。S1731では、中央処理部907は、上記S1730で表示した機能情報リストの中から取り込むべき機能情報が選択されたことを検知したか否かを判定する。そして、機能情報が選択されずアプリケーション(例えば「browserC」)が選択されたことを検知したと判定した場合(S1731でNoの場合)、中央処理部907は、S1726へ処理を進める。
【0094】
一方、上記S1730で表示した機能情報リストの中から取り込むべき機能情報が選択されたことを検知したと判定した場合(S1731でYesの場合)、中央処理部907は、処理をS1732へ進める。S1732では、中央処理部907は、上記選択された機能情報を管理しているアプリケーションに対して、該選択された機能情報を、インテントを利用して要求し、処理をS1733へ進める。
【0095】
S1733では、中央処理部907は、上記対象のアプリケーションから上記選択した機能情報を受信し、処理をS1734へ進める。S1734では、中央処理部907は、サービス情報入出力部910を介してサービス情報格納部911へ受信した機能情報を登録する。そして、機能情報の取得・登録処理を終了する(S1735)。
【0096】
以上示したように、同じ情報処理端末内に複数のUAが存在する場合に、インテントの仕組みを用いて、他のUAから、他のUAに登録されるサービスの機能情報を取得して使用することができる。よって、同じ情報処理端末内に複数のUAが存在する場合、それぞれのUAで別々に登録されたサービスの機能情報を共有することが可能となる。
【実施例2】
【0097】
上記実施例1では、例えばandroid(登録商標)系プラットフォームのインテントを利用して他のUAが管理する機能情報を取得する構成について説明した。これに対し、実施例2では、インテントを利用せず、W3CのWeb Intentsを利用して他のUAから機能情報を取得する構成について説明する。
【0098】
図7に示したアプリケーション部902のサービス情報管理部908は、HTTPクライアントの機能を有する。サービス情報管理部908は、外部のアプリケーションへ機能情報の取得依頼を発行する。さらに、サービス情報管理部908は、該取得依頼に応じて、外部のアプリケーションから機能情報を受け取ると、中央処理部907を介してサービス情報入出力部910へWebIntentsサービス情報の保管依頼を発行する。
【0099】
また、サービス情報管理部908は、Web Intentsサービスの機能を有する。サービス情報管理部908は、Web Intentsの仕組みを利用して外部アプリケーションからアクションおよびデータのタイプ情報とともに機能情報の取得依頼を受け付けると、中央処理部907、サービス情報入出力910を介してサービス情報格納部911から機能情報を取得し、該取得した機能情報を依頼元に提供する。
【0100】
<機能情報の相互利用に関する他のシーケンス図の例>
図16は、実施例2において他のWebブラウザが管理する機能情報のリストを参照して利用する他の動作を例示するシーケンス図である。なお、
図9と同一のステップには同一のステップ番号を付してある。以下、
図9と異なる部分のみ説明する。
なお、
図17は、
図16のシーケンスの一部の詳細シーケンス図である。
【0101】
S1001~S1005の処理は、
図9と同様であるので説明を省略する。実施例2の情報処理端末501では、サービス情報格納部911から取得した機能情報の一覧の中に、ユーザの利用したい機能に対応する機能情報がない場合、ローカルエリアネットワーク(Local Network)1501から機能情報を提供可能なアプリケーションまたはサービス(以下、単にサービスという)を探索する。具体的には、S1005にて、UA.1は、ユーザが「サービス・インポート」リンクボタン1103(
図10(b))の押下を検知すると、S1601にて、Local Network1501に対してサービスの探索を実行する。このネットワーク探索に関して、以下、
図17を用いて詳細に説明する。
【0102】
図17に示すように、UA.1は、S1601にて、Local Network1501に対してサービスの探索を行う。ここでは、例えば、Apple社のゼロ・コンフィギュレーション技術であるBonjourにおけるMulticastDNSなどの技術を用いてリンクローカル内のネットワークサービスを探索する。
S1602にて、UA.1は、各サービスから応答を受ける。本実施例では、Local Network1501内で探索を行うので、同じ情報処理端末内のサービスから応答を受けることの他に、ネットワークの届く範囲にあるサービスからも応答を受けることができる。
【0103】
次に、UA.1は、S1603にて、上記S1602で応答を受けたサービスから、データ型に「application/Web IntentsService」、アクションに「pick」を提供するサービスを検出してリスト化する。なお、この際、検出に必要な情報が不足している場合には、上記S1602で応答を受けた各サービスにアクセスして取得してもよい。このような処理により、ローカルエリアネットワーク内に存在する機能情報を提供可能なサービスを探索することができる。
次に、S1604にて、UA.1は、上記S1603で検出したサービスのリストを表示してユーザへ提示し、S1009に処理を進める。その後の処理は、
図9と同様であるので説明を省略する。
【0104】
<実施例2の機能情報リスト取得・登録処理のフローチャート>
図18は、実施例2における機能情報リスト取得・登録処理(
図14のS1706)の詳細を示すフローチャートである。このフローチャートの処理は、情報処理端末501のCPU802が、ROM803、記憶装置809等に記憶されたプログラムを必要に応じてRAM804に展開して実行することにより実現される。
【0105】
図14のS1706に示した機能情報リスト取得・登録処理を開始すると(S1741)、中央処理部907は、サービス情報管理部908に指示し、S1742の処理を実行させる。S1742では、サービス情報管理部908は、Local Network1501に対して、Web Intentsの仕組みを利用した機能を提供しているアプリケーションまたはサービス(以下、単にサービス)を探索する(
図16及び
図17のS1601~S1604に対応)。探索対象は、アクションを「pick」、データ型「Web IntentsService」としているサービスである。探索のリクエストは、Apple社のbonjourなどで利用しているmulticastDNSなどのサービス探索用のプロトコルを利用してリクエストを発行する。
【0106】
次に、S1743において、サービス情報管理部908は、上記S1742の探索の結果、対応する1以上のサービスを発見したか否かを判定する。そして、サービス情報管理部908は、対応するサービスを発見できなかったと判定した場合(S1743でNoの場合)、処理をS1744へ進める。S1744では、サービス情報管理部908は、中央処理部907を介して、サービスを探した結果として、ネットワーク探索範囲内に対応するサービスが存在しないことをユーザに通知し(例えばメッセージを表示し)、機能情報リスト取得・登録処理を終了する(S1755)。
【0107】
一方、サービス情報管理部908は、対応する1以上のサービスを発見したと判定した場合(S1743でYesの場合)、処理をS1745へ進める。S1745では、サービス情報管理部908は、中央処理部907を介して、上記S1743にてユーザ入出力903を介して取得したサービスのリストを表示し、処理をS1746へ進める。
【0108】
S1746では、サービス情報管理部908は、中央処理部907を介して、上記S1745にて表示したサービスのリストの中から1つのサービスがユーザにより選択されたことを検知すると、処理をS1747へ進める。S1747では、サービス情報管理部908は、上記S1746にて選択されたサービスに対して、Web Intentsを利用して、アクション「pick」、データ型を「Web IntentsService」とした機能情報のリストを要求する。そして、処理をS1748へ進める。
【0109】
S1748では、サービス情報管理部908は、上記S1747にて要求した機能情報リストを受信すると、処理をS1749へ進める。S1749では、サービス情報管理部908は、中央処理部907を介して、上記S1748で受信した機能情報のリストと、既にサービス情報格納部911にて登録済みの機能情報とを比較する。該比較した結果、既に登録済みの機能情報を除外し、処理をS1750へ進める。
【0110】
S1750では、サービス情報管理部908は、中央処理部907、ユーザ入出力部903を介して、上記機能情報のリストを表示する。ここでは、例えば
図10(c)のような画面を表示する。ユーザは、あるアプリケーションに登録されている機能情報のリストを取得する場合、「browserB」をタッチする。すると、ディレクトリ構造を示す画面左側の三角形が1108のように傾き、S1750にて示している機能情報リスト1106を表示した状態となる。この機能情報リスト1106から、ユーザはアプリケーションに取り込みたい機能情報を1つ又は複数選択をする。
【0111】
以下、フローチャートの説明に戻る。
上記S1750で表示された画面での操作を検知すると、サービス情報管理部908は、S1751に処理を進める。S1751では、サービス情報管理部908は、中央処理部907を介して、上記S1750で表示した機能情報リストの中から取り込むべき機能情報が選択されたことを検知したか否かを判定する。そして、機能情報が選択されずアプリケーション(例えば「browserC」)が選択されたことを検知したと判定した場合(S1751でNoの場合)、サービス情報管理部908は、S1746へ処理を進める。
【0112】
一方、上記S1750で表示した機能情報リストの中から取り込むべき機能情報が選択されたことを検知したと判定した場合(S1751でYesの場合)、サービス情報管理部908は、S1752に処理を進める。S1752では、サービス情報管理部908は、上記選択された機能情報を管理しているサービスに対して、機能情報をWeb intentsを利用して要求し、処理をS1753へ進める。
【0113】
S1753では、サービス情報管理部908は、上記対象のサービスから上記選択した機能情報を受信し、処理をS1754へ進める。S1754では、サービス情報管理部908は、中央処理部907、サービス情報入出力部910を介してサービス情報格納部911へ受信した機能情報を登録する。そして、機能情報の取得・登録処理を終了する(S1755)。
【0114】
以上示したように、同じ情報処理端末に複数のUAが存在する場合に、Web intentsの仕組みを用いて、UAごとに別々に登録されたサービスの機能情報を取得して使用することが可能となる。
【実施例3】
【0115】
実施例1では、インテントを利用して、情報処理端末501の内部のアプリケーション間でサービスが提供する機能の機能情報を相互利用する例を示した。また、実施例2では、Web Intentsを利用して、ローカルネットワーク上のアプリケーションと機能情報を相互利用する例を示した。
【0116】
しかし、ユーザが機能情報を取得しようとしたときには、必ずしも相互利用の相手が内部又はローカルネットワーク上のアプリケーションまたはサービスである必要はなく、インターネット上のサービスであってもよい。例えば、UAとしてのWebブラウザに機能情報を登録する際、インターネット上の機能情報リストを管理するサービスにも上記機能情報を登録しておく。次に、ユーザは他のWebブラウザでサービスの利用を考え、
図10(b)の「サービス・インポート」リンクボタン1103を押下する。すると、Webブラウザは、インターネット上の機能情報リストを管理するサービスに接続し、機能情報リストの取得要求を発行する。このようにすることで、機能情報リストの相互利用先はローカルネットワーク内のアプリケーション同士でなくても可能となり、実施例1や実施例2と同様の効果を得ることができる。
【実施例4】
【0117】
実施例2に示したように、機能情報リストをWeb Intentsを利用して取得しようとした場合、あるWebブラウザで利用可能な機能情報が、自Webブラウザでは利用できないケースがある。例えば、情報処理端末501内に存在するサービスが提供する機能のURLが、ローカルループバックアドレス(http://127.0.0.1/~)を示すURLであったとする。このようなURLを含む機能情報を、要求元のWebブラウザに提供したとしても、提供されたWebブラウザ(要求元のWebブラウザ)では、ネットワークを介して該機能情報に対応するサービスの提供機能を利用することができない。
【0118】
このような場合には、提供する側のWebブラウザは、機能情報を要求している側(要求側)の条件に応じて、利用可能な機能情報のみを提供するように構成する。また、サービスが提供する機能では、URLだけでなく、特別なactionやtypeを規定して利用する場合がある。よって、提供側は、要求側が要求するactionやtypeに応じて要求側の利用可能な機能情報のみを提供するように構成する。以上のような構成により、上述したように要求元で利用できない機能情報が無駄に登録されてしまうことを防止することができ、利用者の利便性を向上させることができる。
【0119】
また、機能情報の提供を受けたWebブラウザが、機能情報を取得した場合に自身で利用可能か判別し、利用不可能な機能情報であった場合には、該機能情報をユーザに選択肢として表示しないといった回避方法も考えられる。この構成でも、同様に、要求元で利用できない機能情報が無駄に登録されてしまうこと等を防止することができ、利用者の利便性を向上させることができる。
【0120】
以上説明したように、本発明によれば、現在、提案されているWeb Intentsなどの新しい連携の仕組みについて、ユーザビリティを向上させることができる。例えば、Web Intentsなどの新しいウェブサービスの連携の仕組みを提供するのに必要な中継機能を1の情報処理端末内に複数備える場合、それら中継機能の間で機能情報の少なくとも一部を適切に共有することを可能とする。この結果、ユーザは中継機能毎に同一の提供機能の登録を繰り返す必要もなくなり、ユーザの利便性が向上する。
【0121】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【0122】
(他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。