JP6355341B2 - 情報処理端末、情報処理端末の制御方法およびプログラム - Google Patents

情報処理端末、情報処理端末の制御方法およびプログラム Download PDF

Info

Publication number
JP6355341B2
JP6355341B2 JP2014009385A JP2014009385A JP6355341B2 JP 6355341 B2 JP6355341 B2 JP 6355341B2 JP 2014009385 A JP2014009385 A JP 2014009385A JP 2014009385 A JP2014009385 A JP 2014009385A JP 6355341 B2 JP6355341 B2 JP 6355341B2
Authority
JP
Japan
Prior art keywords
application
information
processing terminal
function
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014009385A
Other languages
English (en)
Other versions
JP2015138376A (ja
Inventor
五十嵐 敏明
敏明 五十嵐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014009385A priority Critical patent/JP6355341B2/ja
Priority to US14/600,843 priority patent/US20150207867A1/en
Priority to CN201510028804.7A priority patent/CN104796453B/zh
Priority to EP15152002.0A priority patent/EP2902904A1/en
Priority to KR1020150010331A priority patent/KR101730339B1/ko
Publication of JP2015138376A publication Critical patent/JP2015138376A/ja
Application granted granted Critical
Publication of JP6355341B2 publication Critical patent/JP6355341B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Description

本発明は、ネットワーク上のサービスと情報処理端末内のアプリケーションが連携する際の技術に関する。
近年、いわゆるスマートフォンと呼ばれる情報処理端末の普及に伴い、複数のアプリケーションの間で連携を図り、より高度なサービスをユーザに提供する仕組みが実現されてきている。
例えば、特許文献1には、第1のアプリケーションが第2のアプリケーションに画像識別子を引き渡すことにより、第2のアプリケーションが、第1のアプリケーションより解像度の高い画像を表示することが可能となる技術が開示されている。
また、インターネット上では、Webサーバ機能を持つWebサイト内のWebアプリケーション同士の連携を実現する仕組みが提案されており、Web Intents(ウェブインテンツ)はその一例である。
特開2013−96969号公報
しかし、上記特許文献1の技術は、情報処置端末内の2つのアプリケーションが連携することを可能とするが、インターネット上のWebアプリケーションとの連携については考慮されていない。
また、Web Intentsなどの新たな連携の仕組みは、Webアプリケーション同士が連携することを可能とするが、Webサーバ機能を持たない、情報処理端末内の一般的なアプリケーションとの連携を実現することはできない。
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、情報処理端末内で実行されるアプリケーションとWebアプリケーションを容易に連携可能な仕組みを提供することである。
本発明は、インターネット上でウェブサイトを提供し、データを管理するクライアントと、当該クライアントで管理されるデータを利用して機能を提供するサービスとを、中継するウェブブラウザを備える情報処理端末であって、前記情報処理端末では、該情報処理端末内で動作する複数のアプリケーションの間でデータを受け渡すためのインテンツを用いた仕組みを有しているオペレーティングシステムが実行され、前記情報処理端末内で動作する前記インテンツとして登録されている複数のアプリケーションを、前記ウェブブラウザを介して前記サービスとして呼び出すために、当該複数のアプリケーションのそれぞれに関する定義情報を、前記ウェブブラウザで扱える機能情報の形式に変換する変換手段と、前記クライアントが提供する前記ウェブサイト上に用意された、前記サービスを呼び出すためのボタンの押下に応じて、ユーザに対して、前記機能情報に従う複数のサービスの中から1つのサービスを選択できる一覧を表示する画面を提供するための提供手段と、前記ボタンの押下に応じて、前記クライアントが管理する該ボタンに対応するデータを受け取る受け取り手段と、を有し、前記画面に対するユーザの選択指示に応じて、前記受け取られたデータを該選択指示に対応するアプリケーションで処理させるための前記機能の呼び出しが行われることを特徴とする。
本発明によれば、情報処理端末内のアプリケーションとインターネット上のWebアプリケーションを容易に連携することが可能となる。
Web Intentsの基本的なシステム構成を例示する図。 Web Intentsの基本的な動作の概要を例示するシーケンス図。 Web Intentsの登録用マークアップ及びWeb Intentsの基本的なWeb Intent処理要求の一例を示す図。 Local Intentsの全体構成を例示する図。 Local Intentsの基本的な動作の概要を例示するシーケンス図。 Local Intentsの登録用マークアップおよびLocal Intentsの基本的なLocal Intent処理要求の一例を示す図。 本発明の一実施例を示すシステム構成図。 情報処理端末のハードウェア構成を例示する図。 サーバおよび情報処理端末のソフトウェア構成を例示する図。 実施例1のテーブル構成を例示する図。 実施例1のプロキシーアプリケーションのイントール時の動作を例示するシーケンス図。 実施例1のクライアントと連携先アプリケーションの連携の動作を例示するシーケンス図。 実施例1の情報処置端末のUIを例示する図。 実施例2のプロキシーアプリケーションのマニフェストファイルとソースコードを例示する図。 実施例3のテーブル構成を例示する図。 実施例3のプロキシーアプリケーションのインストール時の動作を例示するシーケンス図。 実施例3のクライアントと連携先アプリケーションの連携の動作を例示するシーケンス図。 実施例3の情報処置端末のUIを例示する図。 実施例4のプロキシーアプリケーションのマニフェストファイルを例示する図。 実施例4の情報処置端末のUIを例示する図。
以下、本発明を実施するための形態について図面を用いて説明する。
<Web Intentsの基本的な仕組み>
まず、専用のAPIを用いずに任意のWebサービス(または、Webアプリケーション)と連携するための仕組みの一例であるWeb Intentsに関する基本的な仕組みについて図1乃至図3(a)を用いて説明する。本発明では、具体例として、Web Intentsを挙げるが、任意のウェブサービス(または、Webアプリケーション)と連携する技術として、他の同様の仕組みを適用することも可能である。
図1は、Web Intentsの全体構成を示す図である。
図1において、103は、Web Intents技術を利用してサービスや機能を提供するWeb Intentsサービス(以下、サービス)である。101は、サービス103を利用するWeb Intentsクライアント(以下、クライアント)である。106は、クライアント101からの要求をサービス103に渡し、サービス103からの結果をクライアントに渡す役割をするUA(ユーザエージェント)である。UA106は、クライアント101及びサービス103の間で要求を実行したり、データを受け渡したりするための中継機能といえる。また、UA106には、サービス103の提供機能を呼び出すための機能情報であるWeb Intentが登録される。
本仕組みにおいては、例えば、クライアント101はデータを管理し、サービスを呼び出すボタンなどを配置しているウェブサイトであり、UA106は該ウェブサイトを表示するWebブラウザ(ウェブブラウザ)である。また、サービス103は、UA106を介してクライアント101が管理するデータを受け付けて、処理するクライアント101の連携先のウェブサイトである。
例えば、本仕組みをSNS(ソーシャル・ネットワーキング・サービス)に適用した場合には、サービス103はクライアントで管理する写真やコメントの投稿を受け付けて閲覧サイトを構成する投稿先サービスとなる。SNSサイトの「いいね」「チェック」「シェア」といったソーシャルボタンをWeb Intentsの仕組みで例えると、クライアント101はボタンを配置しているサイトになり、UA106はWebブラウザになり、サービス103は「いいね」などの投稿先サービスになる。なお、サービス103が機能を提供するにあたって、ユーザ認証やユーザによる操作が必要な場合、UA106上でユーザが操作を行う。
なお、UA106は、後述するサービスと連携するための機能を持つのであれば、Webブラウザ以外にも、情報処理端末で動作するオペレーティングシステム(OS)やアプリケーションなどで実現することも可能である。ここで、情報処理端末の例としては、パーソナルコンピュータ、スマートフォン、タブレット型コンピュータ、カーナビなどが挙げられる。
また、サービス103については、上述した投稿先サービスのような、インターネット上のサービス提供者以外にも、例えば情報処理端末が内蔵するカメラ、プリンタ、スキャナなどといったデバイスもサービス提供者になり得る。また、サービス103については、ネットワークで接続されるプリンタ、スキャナ、ネットワークカメラなどの周辺機器や、冷蔵庫やテレビといった家電製品などもサービス提供者になり得る。クライアント101とUA106とサービス103は、これらの任意の組み合わせが、同一システム内で稼働することもある。具体的には、ウェブブラウザの同等の機能を有する文書編集アプリケーションなどが、クライアント101とUA106とを含む構成として動作するといったことが考えられる。また、クライアント101、UA106、サービス103のいずれかが、同じ装置上で動作する機能であってもよい。
図2は、Web Intentsを利用したサービス提供に関する基本動作を説明するためのシーケンス図である。本シーケンス図は、S201〜S207のサービス登録部と、S208〜S222のサービス実行部から成る。
まず、サービス登録部について説明する。
S201で、UA106は、ユーザの操作によりサービス103にアクセスする。S202にて、サービス103は、自身が提供する機能をUA106に登録してもらうための登録用マークアップを含むHTML応答を作成し、S203でUA106に返信する。
図3(a)は、S203にてサービス103からUA106に返信されるHTML文書を例示する図である。以下、図3(a)の例を用いて、サービス103からUA106に返信されるHTML文書の中身について説明する。
<intent>タグには、提供機能を特定し、サービス103が提供する機能を呼び出すための機能情報が記載されている。action属性は、提供機能の分類情報(カテゴリ)を示す。すなわち、actionは、提供機能がどのような機能、サービスを提供するものであるかの分類情報を示す。なお、提供機能の分類情報には、例えば、データを共有する機能に対応する分類情報「Share」、データを編集する機能に対応する分類情報「Edit」、データを閲覧する機能に対応する分類情報「View」、データを取得する機能に対応する分類情報「Pick」、データを保存する機能に対応する分類情報「Save」等が含まれる。即ち、上記機能情報には、分類情報として、例えばShare、Edit、View、Pick、Saveのいずれかの分類情報が記載されている。
type属性は、提供機能が扱えるデータなどの種類を示す。すなわち、typeは、actionに対して扱えるデータ型などを示す。href属性は、提供機能の接続先(URL)を示す。title属性は、提供機能のタイトルを示す。また、disposition属性は、呼び出された提供機能がどのように表示されるかを示す。
図3の例では、提供機能のカテゴリが"share(共有)"であり、扱えるデータ等の種類が"あらゆるフォーマット(*)の画像データ"であり、接続先は"share.html"である。また、タイトルは"Share image using e−mail"である。さらに、この機能がUA106を介して別ウィンドウで表示されることを示している。
UA106は、上記S204でのHTML応答を受信し解析すると、S205で、ユーザに対してサービス103の提供機能をUA106に登録するか否か確認する。例えば、UA106がWebブラウザであれば、ポップアップウィンドウを表示させユーザに登録の可否の選択を促す(S206)。S206で、ユーザがこの提供機能をWeb Intentとして登録することを選択すると、UA106は、上記S204で受信した情報を内部に記憶する登録処理を実行する(S207)。具体的には、上記S204で受信した情報はUA106が動作する情報処理端末の記憶領域に記憶され、UA106にWeb Intentsとして登録される。一方、上記S206で、ユーザが登録しないことを選択すると、UA106は、Web Intentsの登録を行わない。
次に、サービス実行部について説明する。
S208で、UA106は、ユーザの操作によりクライアント101にアクセスする。S209で、クライアント101は、サービス103の提供機能(Web Intent)を利用することが記載されたHTML文書を作成し、S210で、UA106へ返信する。例えば、クライアント101としてのWebサイトで、画像と「共有」ボタンが表示される場合に、該Webサイトは、Web Intentの処理要求である図3(b)で示すようなECMAScriptを含むHTML文書をUA106へ返す。
図3(b)は、S210にてクライアント101からUA106に返信されるHTML文書を例示する図である。以下、図3(b)の例を用いて、クライアント101からUA106に返信されるHTML文書の中身について説明する。
ECMAScriptは、HTML内のID「share―photo」を持つボタンがクリックされると指定された無名関数を実行することを示している。無名関数は、まず、新規のIntentオブジェクトを作成し、これを引数にしてstartActivety()関数を呼び出す。この関数を実行すると、UA106は自身に登録されているWeb Intentsの中から、指定されたWeb Intentオブジェクトのactionとtypeが一致するものを抽出し、一覧表示させることでユーザに選択を要求する。また、UA106は、無名関数内で呼び出しているgetImageFrom()関数を実行することにより、クライアント101が持つ画像データを取得する。
S211にて、UA106は、クライアント101から送信されるHTML文書を受け取り、該HTML文書に基づく画面を表示する。S212にて、UA106は、ユーザによる画面上の「共有」ボタンの押下を検出すると、上述したようにWeb Intents起動用のECMAScriptを実行し、クライアント101に対して画像データ取得要求を発行する。上記S212の画像データ取得要求を受信すると、クライアント101は、画像データを準備し(S213)、該準備した画像データを返信する(S214)。UA106は、クライアント101が持つ画像データを受信する。
また、UA106は、上記S212での「共有」ボタン押下により、自身に登録されているWeb Intentの一覧を表示する(S215,S216)。なお、Web Intentの一覧の中に提供機能が登録されていない場合は、S221に進み、処理が失敗した旨をクライアント101へ返信する。
UA106は、Web Intentの一覧からユーザがサービス103の提供機能を示すWeb Intentを選択したことを検出すると、S217にて、該選択された提供機能を提供するサービス103へHTTP要求(Web Intent処理要求)を送信する。その際、UA106は、送信データに、図3(b)のECMAScriptが作成したWeb Intentオブジェクトの内容を含める。
S218で、サービス103は、UA106から受信したHTTP要求(Web Intent処理要求)からWeb Intentオブジェクトを取り出し、UA106を介してユーザと相互作用しながら、選択された提供機能(ここではクライアント101の画像データの「共有」)の利用を実現する。
サービス103は、提供機能に関する処理が終了すると、S219にて、処理結果をクライアント101に伝えるECMAScriptを含む応答をUA106に返す。S220にて、UA106は、該応答中に含まれるECMAScriptを実行し、上記S211のstartActivety()関数の引数で指定されたコールバック関数onSuccess()を呼び出す。S221にて、UA106は、コールバック関数onSuccess()によってクライアント101へ処理結果を返す。最後にS222で、クライアント101は、前記処理結果を受信する。
ここで、図2のシーケンスにより、Webメール機能を利用する例について説明する。まず、ユーザがWebブラウザ(UA106)で、写真データを管理するウェブストレージ(クライアント101)のWeb Intentsの呼び出しボタンが用意されたサイトに訪れ、当該ボタンを押下する。すると、Webブラウザ(UA106)が登録サービス一覧を含むポップアップウィンドウを表示する。そのポップアップウィンドウで、ユーザがサービスとしてWebメール機能を選択したとすると、該機能を提供するサイトが別ウィンドウで表示され、処理結果として、そのウィンドウ上では写真データを添付した新規メールが作成される。なお、以上のように、Web Intent処理要求からWeb Intentオブジェクトを取り出し、解析して処理することを、以降ではWeb Intentを処理すると記載する。
以上の処理により、クライアント101は、UA106を介して、サービス103が提供するWeb Intentsの機能(この例では画像の「共有」)を呼び出すことが可能となる。
<モバイル端末内でのアプリケーション同士の連携に関する基本的な仕組み>
次に、図4乃至図5を用いて、情報処理端末の一例であるモバイル端末内で動作するアプリケーション同士の連携に関する基本的な仕組みについて説明する。なお、本実施例ではモバイル端末内ではオペレーティングシステム(OS)としてAndroid(登録商標)などが動作する場合の例を説明する。
Android(登録商標) OSでは、Intentsで、複数のアプリケーションの間でデータを受け渡しするなどの連携を行う。ここで、AndroidにおけるIntentsとは、アプリケーション同士の連携に際してサービスの呼び出しに用いる登録情報やそれを用いた仕組みのことを示す。また、以降、本明細書ではWeb Intentsと区別するため、AndroidなどのOSが行う端末内で動作するアプリケーション同士の機能の呼び出しのための登録情報の一例であるIntentsを、Local Intentsと記載する。なお、本発明は、このような端末内で動作するアプリケーション間でデータを受け渡す、乃至はサービス連携を実現するための同様の仕組みを有していれば、OSとしてAndroid以外のものが動作する場合も適用可能である。
図4は、Local Intentsの全体構成を示す図である。
図4において、102は、情報処理端末である。情報処理端末102において、503は、Local Intents技術を利用して機能を提供する連携先アプリケーションである。501は、上記連携先アプリケーションの機能を利用する連携元アプリケーションである。502は、連携元アプリケーション501からの要求を連携先アプリケーション503に渡し、連携先アプリケーション503からの結果を連携元アプリケーション501に渡す役割をする制御部である。なお、制御部502は、例えばオペレーティングシステム(OS)などによって実現することが可能である。
図5は、Local Intentsを利用した機能提供に関する基本動作を説明するためのシーケンス図である。本シーケンス図は、S601〜S602のアプリケーション登録部と、S603〜S612のアプリケーション実行部から成る。
まず、アプリケーション登録部について説明する。
ユーザ操作等により情報処理端末102にインストールされた後、連携先アプリケーション503は、S601にて、制御部502に、連携先アプリケーション503が提供する機能の情報を送付する。制御部502は、上記連携先アプリケーション503の情報を受信し、S602にて、該受信した連携先アプリケーション503が提供する機能の情報を自身に登録する。
図6(a)は、S601において、連携先アプリケーション503がインストールされるときに連携先アプリケーション503が提供する機能を制御部502に登録するためのマニフェストファイルの一部を例示する図である。
マニフェストファイル700には、<application>タグが記載されている。<application>タグには、連携先アプリケーション503が提供する機能の定義情報等を記載する。<activity>タグには、連携先アプリケーション503が提供する1つの機能に関する情報を記載する。連携先アプリケーション503が複数の機能を提供する場合は、<activity>タグを、提供する機能の数だけ記載する。
<intent−filer>タグには、本機能がどのようなLocal Intentsの要求を受け付けることができ、どのようなデータを扱えるかを制御部502に伝えるための情報を記載する。具体的には、<intent−filer>タグ内には、<action>、<category>、<data>タグを記載する。
actionは、本機能がどのようなLocal Intentの要求を受け付けることができるかを示す。また、categoryは、本機能の種類を表す付加的な情報を示す。dataは、本機能が扱うことが可能なデータなどの種類を示す。すなわち、dataは、actionに対して扱えるデータ型などを示す。本例のでは、acitivityの名前が「SendAcitivity」である機能が、データを送信する(intent.action.SEND)ためのLocal Intentの要求を受け付けることが示されている。また、<data>タグの記載によって、扱えるデータは、あらゆるフォーマット(*)の画像データであることを示されている。
次に、アプリケーション実行部について説明する。
S603で、連携元アプリケーション501は、ボタン押下などのユーザ操作を受け付けると、他のアプリケーションと連携するため、制御部502に対してアプリケーション連携処理要求として、Local Intentの処理要求を送付する。S604にて、制御部502は、上記S603の要求を受信する。S605にて、制御部502は、連携元アプリケーション501と連携可能なアプリケーションの一覧を表示する。ここで、S603で連携元アプリケーション501が、ボタン押下の操作を受け付けるためのソースコードの例、及び、S603,S604の動作について図6(b)を用いて詳細に説明する。
図6(b)は、S603で、連携元アプリケーション501がボタン押下の操作を受け付けるためのソースコードの一部を例示する図である。
ソースコード800は、ソースコード800は、onClick()とonActivityResult()の2つの関数から成る。onClick()は、連携元アプリケーション501がボタン押下を受け付けた際に実行する関数である。onActivityResult()は、連携元アプリケーション501が制御部502からLocal Intentの処理要求に対する結果を受信した際に実行する関数である。
連携元アプリケーション501は、UIに表示するボタンが押下されると、onClick()関数を実行する。onClick()関数では、新規のLocal Intentオブジェクトを作成し、これを引数にして、制御部502のstartActivityForResult()関数を呼び出す(S603)。この関数が実行されると、制御部502はアプリケーション連携処理要求として、Local Intentの処理要求を受信する(S604)。次に、制御部502は、自身に登録されているアプリケーションの提供機能の中から、指定されたLocal IntentのActionとTypeが一致する提供機能を提供するアプリケーションを抽出し、一覧表示する。その後、ユーザによる、連携するアプリケーションの選択を受け付ける(S605)。図6(b)の例であれば、ActionがACTION_SENDであり、あらゆるフォーマット(*)の画像データを処理可能なアプリケーションが一覧表示される。つまり、連携先アプリケーション503も一覧表示される。
再び、図5の説明に戻る。
ユーザにより一覧から連携先アプリケーション503が選択されると、S606で、制御部502は、選択された連携先アプリケーション503へアプリケーション処理要求を送付する。より具体的には、制御部502は選択された連携先アプリケーション503へLocal Intentの処理要求を渡す。この際、制御部502は、該処理要求に、Local Intentオブジェクトの内容を含める。
S607で、連携先アプリケーション503は、Local Intentの処理要求を受信する。S608では、連携先アプリケーション503は、上記S607で受信したLocal Intentの処理要求からLocal Intentのオブジェクトを取り出し、提供する機能(連携元アプリケーション501が要求した機能)を実現する。例えば、連携先アプリケーション503は、Local Intentのオブジェクトから画像データを取り出し、自身の管理する領域に画像データを保存する、などの処理を行う。以上のように、Local Intent処理要求からLocal Intentオブジェクトを取り出し、解析して処理することを、以降ではLocal Intentを処理すると記載する。
連携先アプリケーション503は、Local Intentの処理が終了すると、S609で、処理結果を制御部502に通知する。制御部502は、S610にて、前記処理結果を受信すると、S611で、連携元アプリケーション501に処理結果を送付するために、図5(b)に記載したコールバック関数onActivityResult()を呼び出す。連携元アプリケーション501は、S612にて、前記処理結果を受信する。
以上の処理により、連携元アプリケーション501は、制御部502を介して、連携先アプリケーション503が提供する機能を呼び出すことが可能となる。
<本発明の実施例におけるシステム構成>
図7は、本発明を実施したWeb Intentsの仕組みを適用したネットワークシステムの構成例を示す図である。
図7において、情報処理端末102上では、Web Intentsのユーザエージェント(UA)として機能するWebブラウザ106、制御部502、連携先アプリケーション503が動作する。また、情報処理端末102上では、後述する図9(b)に示すプロキシーアプリケーション901も動作する。サーバ104上では、Web Intentsのクライアント101が動作する。
情報処理端末102、サーバ104は、ネットワーク105を介して相互に通信可能である。また、ネットワーク105としては、LANやインターネットやその組み合わせなどが想定される。接続形態としては、有線や無線を問わない。
<本実施例の情報処理端末102のハードウェア構成例>
図8は、UA106、連携先アプリケーション503、プロキシーアプリケーション901として機能するプログラムが実行される情報処理端末102のハードウェア構成を示すブロック図である。また、クライアント101として機能するプログラム(ウェブサイトなど)が動作するサーバ104も同様のハードウェア構成を取ることができる。
図8において、情報処理端末102は、CPU1002、RAM1003、ROM1004、外部記憶装置1009を備える。CPU1002は、ROM1004や外部記憶装置1009に記憶されたプログラム、或いはLANやインターネットなどのネットワーク105よりダウンロードしたプログラムを実行し、システムバス1011に接続された各デバイスを総括的に制御する。
RAM1003は、CPU1002の主メモリあるいはワークエリアなどとして機能する。外部記憶装置1009は、ハードディスク(HD)、メモリーカード(MC)等からなる。外部記憶装置1009は、ブートプログラム、オペレーティングシステム、認証サーバ、認証クライアントを含む各種のアプリケーション、データベースデータ、ユーザファイル等を記憶する。
1006はキーボードコントローラ(KBDC)であり、キーボード(KBD)1005や図示しないポインティングデバイスからの入力情報をCPU1002に送る。なお、情報処理端末102がモバイル端末の場合、キーボード1005はソフトウェアで実現されるのが一般的である。
1008はビデオコントローラ(VC)であり、CRTやLCD等からなる表示装置1007の表示を制御する。1010はディスクコントローラ(DKC)であり、外部記憶装置1009とのアクセスを制御する。1012は通信コントローラ(COMM I/F)であり、これを介してネットワーク105に接続される。
<本実施例のサーバ104のソフトウェア構成例>
図9(a)は、サーバ104のソフトウェア(処理部)の構成の一例を示す図である。
サーバ104において、クライアント101および各処理部は、サーバ104の外部記憶装置1009に保存されたファイルとして存在する。これらは、実行時に、OSやその各処理部を利用する他の処理部(即ちサーバ104のCPU1002)によって、サーバ104のRAM1003にロードされ実行されるプログラムモジュールである。
クライアント101は、例えば画像データや文書データの保管などのストレージサービスを提供するアプリケーションである。クライアント101は、HTTPリクエストに応答して処理を実行するプログラムとして実装される。クライアント101は、Intent処理要求作成部1102、プレゼンテーション部1103、および、データ管理部1105を有する。
Intent処理要求作成部1102は、Intentの処理要求であるECMAScriptを作成するソフトウェアモジュールである。プレゼンテーション部1103は、通信部1101を介して受け取ったページ取得要求などに応じてHTML文書を作成するソフトウェアモジュールである。データ管理部1105は、プレゼンテーション部1103からの要求に応じてクライアントデータ格納部1106から画像等のデータを取得したり、格納したりするソフトウェアモジュールである。
クライアントデータ格納部1106は、データを記憶管理し、他の処理部からの要求に応じてデータの格納と取り出しを行う。クライアントデータ格納部1106では、後述する図10(a)に示すような、画像データ管理テーブル1210及び画像データ等のデータを記憶管理する。なお、クライアントデータ格納部1106は、サーバ104とは別の機器上にあってもよい。
通信部1101は、外部機器からのHTTPリクエストメッセージを受信し、プレゼンテーション部1103にリクエストの内容を通知するソフトウェアモジュールである。また、通信部1101は、プレゼンテーション部1103からの要求を受けて、HTTPのレスポンスメッセージを外部機器に送信する。
<本実施例の情報処理端末102のソフトウェア構成例>
図9(b)は、情報処理端末102のソフトウェア(処理部)の構成の一例を示す図である。
情報処理端末102において、制御部502、UA106、連携先アプリケーション503、プロキシーアプリケーション901、および各処理部は、情報処理端末102の外部記憶装置1009に保存されたファイルとして存在する。これらは実行時にOSやその各処理部を利用する他の処理部(即ち、情報処理端末102のCPU1002)によって情報処理端末102のRAM1003にロードされ実行されるプログラムモジュールである。
制御部502には、アプリケーション情報格納部1121が接続されている。例えば、図5のS601が実行されると、S602にて、制御部502は、図6(a)に例示したマニフェストファイルに記載されている情報を、アプリケーション情報格納部1121に登録する。アプリケーション情報格納部1121では、後述する図10(b)に示すような、登録済アプリケーション管理テーブル1220を記憶管理する。
UA106は、表示部1142、解析部1143、および、サービス管理部1144を有する。表示部1142は、HTML文書をレンダリングするソフトウェアモジュールである。また、表示部1142は、他の処理部の要求に応じて、サービスの選択を受け付ける画面を表示する。
解析部1143は、HTML文書を解析するソフトウェアモジュールである。また、解析部1143は、Intent処理要求であるECMAScriptも解析する。サービス管理部1144は、後述のサービス格納部1145から登録済みの提供機能を特定する情報を取得したり、格納したりするソフトウェアモジュールである。サービス格納部1145は、図1に示したサービス103や後述のプロキシーアプリケーション901が提供する機能を含むWeb Intentsの提供機能を一覧管理し、サービス管理部1144からの要求に応じてデータの格納と取り出しを行う。サービス格納部1145は、後述する図10(c)に示すような、登録済Web Intentsサービステーブル1230を記憶管理する。なお、サービス格納部1145は、情報処理端末102の外部記憶装置1009内に設けられてもよいし、情報処理端末102とは別の機器上にあってもよい。
プロキシーアプリケーション901は、プレゼンテーション部1111、Intent変換部1112、変換テーブル管理部1113、Intent処理部1114を有する。プレゼンテーション部1111は、連携先アプリケーション503の情報を制御部502に登録するための要求などに応じて、HTML文書を作成するソフトウェアモジュールである。なお、連携先アプリケーション503が提供する機能は、UA106による登録処理のための形式(Web Intentsの形式)に未対応である。
Intent変換部1112は、Web Intents形式の情報とLocal Intents形式の情報の変換を行うソフトウェアモジュールである。変換テーブル管理部1113は、後述の変換テーブル格納部1115からIntent変換部1112が情報の変換を行う際に使用する変換テーブルを取得したり、格納したりするソフトウェアモジュールである。Intent処理部1114は、Local Intents情報の取得など、Local Intentsに関する処理を司るソフトウェアモジュールである。
変換テーブル格納部1115は、Web Intents形式の情報とLocal Intents形式の情報の変換を行うテーブルを管理し、変換テーブル管理部1113からの要求に応じてデータの格納と取り出しを行う。変換テーブル格納部1115は、後述する図10(d)に示すような、Action変換テーブル1240、アプリケーション情報変換テーブル1250、登録済アプリケーション管理テーブル1260を記憶管理する。なお、変換テーブル格納部1115は、情報処理端末102の外部記憶装置1009内に設けられてもよいし、情報処理端末102とは別の機器上にあってもよい。
通信部1150は、他の処理部からの要求を受けてHTTPのリクエストメッセージを外部機器やプロキシーアプリケーション901に送信する。また、通信部1150は、外部機器やプロキシーアプリケーション901からのHTTPレスポンスメッセージを受信し、解析部1143にレスポンスの内容を通知するソフトウェアモジュールである。
図10は、実施例1のテーブル構成を例示する図である。
図10(a)は、サーバ104のクライアント101が管理する画像データ管理テーブル1210の構成の一例である。なお、図10(a)のテーブル構成は一例であり、本例とは異なるテーブル構成であってもよい。
画像データ管理テーブル1210は、クライアント101が扱う画像データを管理するテーブルである。画像データ管理テーブル1210が管理する情報は、ImageID、File等である。ImageIDは、クライアント101内で各種データを一意に識別するためのIDである。Fileは、各種データのファイル名を表している。つまり、画像データ管理テーブル1210の例では、「image125.jpg」と「image435.jpg」の2つの画像データファイルを管理していることになる。
図10(b)は、情報処理端末102の制御部502が管理する登録済アプリケーション管理テーブル1220の構成の一例である。なお、図10(b)のテーブル構成は一例であり、本例とは異なるテーブル構成であってもよい。
登録済アプリケーション管理テーブル1220は、情報処理端末102に登録されているアプリケーションの提供機能を一覧管理するテーブルである。登録済アプリケーション管理テーブル1220が管理する情報は、App ID、アプリ名、action、mime type等である。App IDは、制御部502内で各アプリケーションの提供機能を一意に識別するためのIDである。アプリ名は、アプリケーションの名称を表している。actionは、それぞれのアプリケーションが提供可能な機能のカテゴリを表す。mime typeは、アプリケーションが扱えるデータなどの種類を表す。
図10(c)は、情報処理端末102のUA106が管理する登録済Web Intentsサービステーブル1230の構成の一例である。なお、図10(c)のテーブル構成は一例であり、本例とは異なるテーブル構成であってもよい。
登録済Web Intentsサービステーブル1230は、UA106が仲介することができるWeb Intentsの提供機能に関する情報を管理するテーブルである。登録済Web Intentsサービステーブル1230で管理する情報は、ID、action、type、href、title、base URL等である。これらは、図3(a)で説明した<intent>タグが示す情報に対応している。
IDは、UA106内でWeb Intentsの提供機能を一意に識別するIDである。actionは、提供機能のカテゴリを示す。typeは、提供機能が扱えるデータなどの種類を示す。hrefは、提供機能の接続先(URL)を示す。titleは、提供機能のタイトルを示す。base URLは、提供機能を提供するサイトの基準となるURLを示す。
図10(d)は、情報処理端末102のプロキシーアプリケーション901が管理する各テーブルの構成の一例である。なお、図10(d)のテーブル構成は一例であり、本例とは異なるテーブル構成であってもよい。
プロキシーアプリケーション901は、Action変換テーブル1240、アプリケーション情報変換テーブル1250、登録済アプリケーション管理テーブル1260を管理する。
Action変換テーブル1240は、Web IntentsのactionとLocal Intentsのactionの変換方法を管理するテーブルである。アプリケーション情報変換テーブル1250は、情報処理端末102内のアプリケーションの情報をWeb Intents形式の情報に変換した結果を管理するテーブルである。登録済アプリケーション管理テーブル1260は、図10(b)の登録済アプリケーション管理テーブル1220と同様である。
Action変換テーブル1240で管理する情報は、ID、Web Intents action、Local Intents action等である。IDは、プロキシーアプリケーション901内で変換方法を一意に識別するIDである。Web Intents actionは、Web Intentsのaction情報を示す。Local Intents actionは、Local Intentsのaction情報を示す。
アプリケーション情報変換テーブル1250で管理する情報は、ID、App ID、action、type、href、title、base URL等である。IDは、変換されたWeb Intents情報を一意に識別するIDである。App IDは、本テーブルで情報変換されるアプリケーションを一意に識別するIDである。本例では、登録済アプリケーション管理テーブル1260のApp IDに対応したIDが格納されている。action、type、href、title、base URLは、登録済アプリケーション管理テーブル1260のアプリ名、action、mime typeから生成された情報が格納される。生成のルールは後述する。
登録済アプリケーション管理テーブル1260は、図10(b)の登録済アプリケーション管理テーブル1220と同様のテーブルであるため、説明を省略する。
次に、図11、図12を用いて、クライアント101と情報処理端末102内の連携先アプリケーション503が連携する際の動作について説明する。
まず、図11のシーケンス図を用いて、情報処理端末102にプロキシーアプリケーション901がインストールされ、UA106にWeb Intentsの情報が格納されるまでの動作について説明する。
図11は、実施例1における情報処理端末102にプロキシーアプリケーション901がインストールされ、UA106にWeb Intentsの情報が格納されるまでの動作を示すシーケンス図である。ここでは、連携先アプリケーション503の情報は、図5のS601、S602と同様の手段で制御部502に事前登録され、登録済アプリケーション管理テーブル1220にて管理されているものとする。
S1301では、ユーザ操作等を受け付けて、制御部502が、情報処理端末102にプロキシーアプリケーション901をインストールする。ファイルコピーなど、インストールに伴う処理が完了し、プロキシーアプリケーション901が起動されると、S1302にて、プロキシーアプリケーション901は、制御部502へのアプリケーション情報の登録など、インストールに伴う処理を実行する。
S1303では、プロキシーアプリケーション901のIntent処理部1114は、制御部502に対して、登録済アプリケーション情報の取得要求を送付する。例えば、Android OSでは、PackageManagerクラスのgetInstalledApplications()など、各種関数を呼び出すことによって本要求の発行が可能である。
制御部502は、S1304で、上記S1303の取得要求を受信すると、アプリケーション情報格納部1121から図10(b)で示したような登録済アプリケーション管理テーブル1220を取得する。その後、制御部502は、S1305にて、上記取得した登録済アプリケーション管理テーブル1220の情報を、登録済アプリケーション情報の収集結果として、プロキシーアプリケーション901に返却する。
S1306にて、プロキシーアプリケーション901は、上記S1305の収集結果を受信し、そのコピーを、変換テーブル管理部1113経由で変換テーブル格納部1115内の登録済アプリケーション管理テーブル1260に格納する。
S1307にて、プロキシーアプリケーション901は、登録済アプリケーション管理テーブル1260とAction変換テーブル1240を使って、アプリケーション情報変換テーブル1250を、変換テーブル格納部1115内に作成する。
例えば、アプリケーション情報変換テーブル1250のIDが「1」のエントリーの情報を作成する場合、App IDには、登録済アプリケーション管理テーブル1260のApp ID(本例では「1」)を格納する。
actionには、登録済アプリケーション管理テーブル1260のactionの値を、Action変換テーブル1240を用いて変換した値を格納する。本例では、登録済アプリケーション管理テーブル1260のactionの値が「ACTION_SEND」である。これをAction変換テーブル1240を用いて変換すると、アプリケーション情報変換テーブル1250のactionの値は「http://Web Intents.org/share」となる。本実施例では、これを「share」と省略する。
また、アプリケーション情報変換テーブル1250のtypeは、登録済アプリケーション管理テーブル1260のmime typeの値を格納する。hrefは、相対的な接続先(URL)として、プロキシーアプリケーション901が識別可能な接続先が登録される。ここでは、登録済アプリケーション管理テーブル1260のactionの値から生成した文字列(ACTION_SEND.html)を登録している。
アプリケーション情報変換テーブル1250のtitleは、登録済アプリケーション管理テーブル1260のアプリ名の値を格納する。アプリケーション情報変換テーブル1250のbase URIには、「http://localhost/proxy/」に、アプリ名「aaa App」を付加した、「http://localhost/proxy/aaa_App」を登録する。ここで、「http://localhost/proxy/」は、プロキシーアプリケーション901自身の基準URLである。上記hrefとbese URIを組み合わせることによってWeb Intentsの公開ページを生成することが可能となる。
なお、ここではtype、titleは、mime type、アプリ名の値をそのまま格納したが、別途変換テーブルを持つように構成してもよい。また、href、base URIも別の生成ルールで生成されたものを登録してもよい。以上のように、プロキシーアプリケーション901のIntent変換部1112は、情報処理端末102内のアプリケーションの定義情報に含まれる分類を、Web Intentsの機能情報に含まれる分類情報の形式に合わせて変換する。
S1308では、プロキシーアプリケーション901のIntent処理部1114がUA106を起動するためのLocal Intentの処理要求を作成し、制御部502に送付する。この際、UA106がアクセスするURLとして、プロキシーアプリケーション901が公開する、Web Intentsサービスを登録するためのページを指定する。指定するURLは、ここでは「http://localhost/proxy/」となる。
制御部502は、S1309にて、通信部1150経由で、上記S1308のLocal Intent処理要求を受信すると、S1310にて、上記S1308で指定されたURLにアクセスするように、UA106を起動する。
UA106は、制御部502によって起動されると、S1311にて、上記S1310で指定されたURLに対して、HTTPリクエストとしてHTMLの取得要求を送信する。つまり、UA106は、上記S1308で指定された、プロキシーアプリケーション901が公開するページにアクセスする。この際、具体的には、UA106からのHTTPリクエストは、通信部1150を介してプロキシーアプリケーション901に渡る。
S1312にて、公開ページへのアクセスを検出すると、プロキシーアプリケーション901のプレゼンテーション部1111は、S1313にて、Web Intentsサービスの登録用マークアップを作成する。なお、本例で作成するWeb Intentsサービスの登録用マークアップは、上記S1307で作成したアプリケーション情報変換テーブル1250に登録されている、Web Intents形式の情報を登録するためのものである。
S1314にて、プロキシーアプリケーション901のプレゼンテーション部1111は、上記S1313で作成した登録用マークアップを含むHTML文書をHTTPレスポンスとして、UA106に送信する。S1315にて、UA106が、上記S1313のHTTPレスポンスを受信すると、UA106の解析部1143は、S1316にて、上記S1315で受信したHTML文書に含まれる登録用マークアップを解析し、Web Intentsサービスを登録する。具体的には、解析部1143が登録用マークアップの解析を行い、Web Intentsサービスの特定を行う。その後、UA106のサービス管理部1144が、必要な情報をサービス格納部1145の登録済Web Intentsサービステーブル1230に登録する。
以上示したように、本シーケンスが実行されることによって登録されるWeb Intentsサービスは、登録済Web Intentsサービステーブル1230のIDの値が「4」、「5」、「6」の項目である。
以上で、図11のシーケンス図の説明を終了する。
次に、図12のシーケンス図を用いて、クライアント101と連携先アプリケーション503が連携する動作について説明する。
図12は、クライアント101と連携先アプリケーション503が連携する動作について説明するシーケンス図である。なお、図12のS1401〜S1409の処理は、図2のS208〜S216の処理と同様である。以下、図13のUI例を用いて、上記ステップの処理を補う。なお、図13は、クライアント101と連携先アプリケーション503が連携する場合に情報処理端末102の表示装置1007に表示されるUI画面を例示する図である。
図13(a)は、S1404にて、UA106がクライアント101から受信したHTMLを表示したUI例である。図13(a)は、クライアント101が「image125.jpg」1502を他のサービスに送信するためのUIに対応する。図13(a)のUIにおいて、「送信する」ボタン1501の押下を受け付けると(S1405)、UA106は、Web Intents起動用のECMAScriptを実行し、クライアント101に対して画像データ取得要求を発行する。
ここで、図3(b)のECMAScript400が実行されたと仮定すると、「送信する」ボタンの押下によって、actionが「http://Web Intents.org/share」であるWeb Intentsが実行される。UA106は、クライアント101から画像データとして「image125.jpg」を受け取り、UA106自身に登録されているWeb Intentsサービスの提供機能の一覧を表示する(S1408、S1409)。具体的には、図10(c)の登録済Web Intentsサービステーブル1230に登録されているWeb Intents情報から、actionが「share」のものを抽出して、選択肢として一覧表示する。このUI例を、図13(b)に示す。図13(b)の例では、選択肢として、1511〜1514が一覧表示されている。
以下、図12に戻って、説明を続ける。
S1410では、図2のS217と同様に、UA106は、上記UI画面に対するユーザの選択指示に応じて、選択された提供機能の接続先となるサービスへHTTP要求を送信する。その際、UA106が、送信データに図3(b)のECMAScript400が作成したIntentオブジェクトの内容を含める点も、図2のS217と同様である。なお、ここでは、ユーザによってプロキシーアプリケーション901が提供する提供機能(「aaa App」1513又は「bbb App」1514)が選択されたことにする。この場合、プロキシーアプリケーション901が、上記S1410のHTTP要求を受信する。
S1411では、プロキシーアプリケーション901は、上記S1410で受信したHTTP要求からWeb Intentのオブジェクトを取り出し、これをLocal Intents形式に変更する。具体的には、図10(d)のAction変換テーブル1240を用いながら、Web IntentオブジェクトのactionをLocal Intentのactionに変換する。また、プロキシーアプリケーション901で定められたルールに従って、typeをmime typeに変更する。同様に、UA106によって呼び出されたURLから連携先アプリケーションの情報を切り出す。
S1412では、プロキシーアプリケーション901は、上記S1411で変換された情報を用いて、連携元アプリケーション501として、連携先アプリケーション503を明示的に指定して、Local Intent処理要求を、制御部502に送付する(図5のS603に対応)。制御部502は、上記Local Intent処理要求に基づき連携先アプリケーション503を選択し、該連携先アプリケーション503へアプリケーション処理要求を送付する(図5のS604〜S606に対応)。連携先アプリケーション503は、要求された処理を実行し、結果を、制御部502を介して、連携元アプリケーション501としてのプロキシーアプリケーション901に返却する(図5のS607〜S613に対応)。本ステップは、図5のS603〜S612と同様であるため、詳細は省略する。
次に、S1413で、プロキシーアプリケーション901は、連携先アプリケーション503から受信したLocal Intent処理の結果を、Web Intents形式の処理結果に変換する。具体的には、プロキシーアプリケーション901のIntent処理部1114は、図5(b)に記載したコールバック関数onActivityResult()によって連携先アプリケーションでのLocal Intent処理の結果(成功/失敗など)を受信する。次に、プロキシーアプリケーション901のIntent変換部1112は、前記受信した処理結果からクライアント101に伝えるECMAScriptを含む応答を作成する。
次に、S1414で、プロキシーアプリケーション901は、サービス103として、上記S1413で作成した応答を、UA106に返信する。S1415〜S1417は、図2のS220〜S222と同様であるため、説明を省略する。
以上で、図12のシーケンス図の説明を終了する。
以上で、実施例1の説明を終了する。
以上示したように、実施例1では、プロキシーアプリケーション901が、Webアプリケーションからの処理実行要求を情報処理端末内のアプリケーションが処理可能な処理実行要求に変換し、仲介する(インテンツ解釈やデータ転送を行う)。これにより、インターネット上のWebアプリケーション(クライアント101)からの処理要求を、情報処理端末内のアプリケーション(連携先アプリケーション503)で処理させることができる。即ち、ネットワーク上のサービス(インターネット上のWebアプリケーション)と情報処理端末内のアプリケーションとを容易に連携することができる。
上記実施例1では、プロキシーアプリケーション901がインストールされる際に、既に存在しているアプリケーションの情報をUA106に登録する例を説明した。実施例2では、プロキシーアプリケーション901がインストールされた後に、情報処理端末102に新たにインストールされたアプリケーションの情報を、UA106に登録する例を説明する。
図14は、実施例2のマニフェストファイルおよびプロキシーアプリケーション901のソースコードの一部を例示する図である。
図14(a)は、実施例2のプロキシーアプリケーション901が持つマニフェストファイルの一部を例示する。
図14(a)に示すように、プロキシーアプリケーション901が持つマニフェストファイル1600には、<receiver>タグが記載されている。<receiver>タグには、プロキシーアプリケーション901が受信するブロードキャストインテントの情報を記載する。
図14(a)に示す例では、プロキシーアプリケーション901が受信するブロードキャストインテントとして、「PACKAGE_ADDED(新しいアプリケーションが情報処理端末にインストールされた)」を記載している。なお、ブロードキャストインテントは、情報処理端末102の状態に何らかの変化が起こった際に、制御部502がブロードキャストで送付するIntentである。
図14(b)は、実施例2のプロキシーアプリケーション901のソースコードの一部を例示する。
プロキシーアプリケーション901のソースコード1700には、onReceive()関数が記載されている。onReceive()は、制御部502から送付されたブロードキャストインテントを、プロキシーアプリケーション901が受信した際に実行する関数である。
プロキシーアプリケーション901がインストールされた後に、情報処理端末102に、他のアプリケーションがインストールされると、制御部502によって、ブロードキャストインテントが送付され、上記onReceive()が呼び出される。プロキシーアプリケーション901は、上記onReceive()が呼び出されたことを検知すると、図11のS1303を実行する。即ち、プロキシーアプリケーション901は、制御部502に対して、登録済アプリケーション情報の取得要求を送付する。その結果、UA106の登録済Web Intentsサービステーブル1230に前記アプリケーションの情報が、Web Intentsの情報に変換されて登録される(図11のS1304〜S1316)。これ以降のクライアント101と連携先アプリケーション503が連携する手順は、実施例1の図12と同様である。
以上で、実施例2の説明を終了する。
以上示したように、実施例2によれば、実施例1の効果に加えて、プロキシーアプリケーション901がインストールされた後に、情報処理端末102にアプリケーションがインストールされた場合にも、クライアント101と連携先アプリケーション503が連携することが可能となる。
なお、実施例1及び実施例2では、情報処理端末102にアプリケーションがインストールされたタイミングで、プロキシーアプリケーション901が制御部502を介して、アプリケーションの提供する機能の情報をWeb Intentsの形式に変換してUA106に登録する例を示した。しかし、制御部502又はプロキシーアプリケーション901又はUA106等が定期的に情報処理端末102内を検索し、該定期的な検索で新たに登録すべきアプリケーションの提供する機能の情報を検出したタイミング、該情報をWeb Intentsの形式に変換してUA106に登録するようにしてもよい。また、UA106を起動されたときに新たに登録すべきアプリケーションの提供する機能の情報を検索し、該検索で新たに登録すべきアプリケーションの提供する機能の情報を検出した場合に、該情報をWeb Intentsの形式に変換してUA106に登録するようにしてもよい。
実施例3では、UA106に登録するサービスの情報は、プロキシーアプリケーション901の提供機能の情報のみとする。そして、ユーザがWeb Intentの処理要求先として、プロキシーアプリケーション901の提供機能を選択した際に、プロキシーアプリケーション901の公開ページに連携可能なアプリケーションを列挙する例を説明する。
図15は、実施例3のテーブル構成を例示する図である。
図15(a)〜(c)は、図10(b)〜(d)で説明したテーブルに、実施例3に適合したデータを格納した例を示している。
次に、図16、図17を用いて、実施例3におけるクライアント101と情報処理端末102内の連携先アプリケーション503が連携する際の動作について説明する。
まず、図16のシーケンス図を用いて、情報処理端末102にプロキシーアプリケーション901がインストールされ、UA106にプロキシーアプリケーション901のWeb Intentsの情報が格納されるまでの動作について説明する。
図16は、実施例3において情報処理端末102にプロキシーアプリケーション901がインストールされ、UA106にWeb Intentsの情報が格納されるまでの動作を示すシーケンス図である。
図11のS1301,S1302と同様の処理によりプロキシーアプリケーション901がインストールされ、起動されると、プロキシーアプリケーション901は、S1901の処理を実行する。S1901では、プロキシーアプリケーション901は、図15(c)に示したAction変換テーブル1240を使って、図15(c)に示したアプリケーション情報変換テーブル1250を作成する。
この際、アプリケーション情報変換テーブル1250のApp IDは、実施例3では使用しないため空欄とする。actionには、Action変換テーブル1240のWeb Intents actionに格納されている値のうち、異なる値のもののみを格納する。本例では、ID=4、ID=6のWeb Intents actionの値は、それぞれID=3、ID=5と同一であるため、アプリケーション情報変換テーブル1250のactionには格納されない。即ち、連携先アプリケーションが提供し得る全ての機能のカテゴリに対する情報を列挙するようにアプリケーション情報変換テーブル1250を作成する。
typeは、すべてのタイプを意味する「*」を格納する。hrefの値の格納方法はS1307で説明した方法と同様であるため、説明を省略する。titleには、プロキシーアプリケーション901自身のアプリ名である「Proxy Application」を格納する。base URIには、プロキシーアプリケーション901の基準URLである「http://localhost/proxy/」を登録する。上記hrefとbese URIを組み合わせることによってプロキシーアプリケーション901のWeb Intentsの公開ページを生成することが可能となる。
S1902は、図11のS1308〜S1316までの処理と同様であるため、説明を省略する。なお、S1901を実行する前に、図11のS1303〜S1306で示したアプリケーション情報収集処理を実行し、事前に、図15(c)に例示した登録済アプリケーション管理テーブル1260を生成しておいてもよい。この場合、後述の図17に示すS2003の処理は、登録済アプリケーション管理テーブル1260の値を更新する処理となる。
以上で、本シーケンス図の説明を終了する。
次に、図17のシーケンス図を用いて、クライアント101と連携先アプリケーション503が連携する動作について説明する。
図17は、実施例3においてクライアント101と連携先アプリケーション503が連携する動作を例示するシーケンス図である。
S2001の処理は、図12のS1401〜S1409の処理と同様であるため、説明を省略する。ここでは、クライアント101は、actionが「share」であるWeb Intents要求を発行する。この際、UA106は、図18(a)に例示するようなUIを表示して、ユーザによるWeb Intentsの処理先の選択を受け付ける。
クライアント101は、actionが「share」であるWeb Intents要求を発行したので、UA106は、図15(b)の登録済Web Intentsサービステーブル1230からactionが「share」であるサービスを抽出して、1801〜1803のように選択肢として、一覧表示する。
S2002では、上記S2001の一覧表示に基づくWeb Intentsの選択を受ける。ここで、Web Intentsの処理先として、1803のプロキシーアプリケーション901が選択されたと仮定する。UA106は、プロキシーアプリケーション901へWeb Intentsを処理するためのHTTP要求を送信する。
S2003では、プロキシーアプリケーション901は、アプリケーション情報収集処理を実行し、図15(c)に示した登録済アプリケーション管理テーブル1260に値を格納する。なお、S2003の処理は、図11のS1303〜S1306と同様であるため、説明を省略する。
S2004では、プロキシーアプリケーション901は、クライアント101で要求されたaction(本例では「share」)と一致する機能を提供可能なアプリケーションを抽出して、一覧表示する。なお、上記抽出を実現するために、プロキシーアプリケーション901は、Action変換テーブル1240と登録済アプリケーション管理テーブル1260を用いる。
具体的には、Action変換テーブル1240を使って、Web Intentsのaction(http://Web Intents.org/share)をLocal Intentのaction(ACTION_SEND)に変換する。次に、登録済アプリケーション管理テーブル1260を使って、actionに「ACTION_SEND」を持つ提供機能のアプリケーション(アプリ名)を抽出する。
図18(b)は、S2004の実行後に表示されるUI例である。図18(b)のUI例では、「aaa App」1811と「bbb App」1812が、選択肢として一覧表示されている。
なお、一覧表示すべき項目が1つのみであった場合、プロキシーアプリケーション901は図18(b)に示すようなUI画面を表示させず、その1つの項目が選択されたものとして、S2005を実行せず、S2006に処理を進めてもよい。また、一致するものがない場合は、図12のS1414と同様の方法で、処理が失敗した旨をクライアント101に返信する。
S2005では、連携元アプリケーションとしてのプロキシーアプリケーション901は、ユーザによる連携先アプリケーションの選択を受け付ける。具体的には、図18(b)のUI例において、「aaa App」1811または「bbb App」1812の選択を受け付ける。そして、「aaa App」1811または「bbb App」1812の選択を検知すると、連携元アプリケーションとしてのプロキシーアプリケーション901は、S2006に処理を進める。
S2006は、図12のS1412〜S1417の処理と同様であるため、説明を省略する。以上で、図17のシーケンス図の説明を終了する。また、以上で、実施例3の説明を終了する。
以上示したように、実施例3によれば、実施例1の効果に加えて、情報処理端末上でアプリケーションの追加・削除が発生した場合であっても、Web Intents要求が有った場合にアプリケーションの情報を更新することにより、適切にウェブアプリケーションと当該アプリケーションの連携を動的に構築することができる。
実施例4では、UA106のUI上からプロキシーアプリケーション901に対して連携先アプリケーション情報の更新処理を発行する例を説明する。
図19は、実施例4のプロキシーアプリケーション901が持つマニフェストファイルの一部を例示する図である。
図19のマニフェストファイル2200と、マニフェストファイル700との差分は、<intent−filer>タグ内の<action>タグにてUA106からの更新処理を受け付けるための「intent.action.SYNC」というactionが記載されている点である。
図12のS1401〜S1409と同様の処理が行われ、UA106により、ユーザがWeb Intentsの処理先の選択するための一覧が表示される。この際、実施例4のUA106は、図20に示すようなUIを表示して、ユーザによる選択を受け付ける。
図20は、実施例4を実現するUIを例示する図である。
図20において、「更新」ボタン2301は、連携先アプリケーションの情報を更新するためのものである。
ユーザによる図20のUIの「更新」ボタン2301の押下を検知すると、UA106は、プロキシーアプリケーション901に対して、連携先アプリケーションの情報を更新するためのLocal Intents処理(actionが「intent.action.SYNC」)を発行する。これにより、プロキシーアプリケーション901は、「intent.action.SYNC」機能に対応する処理を実行する。この際、プロキシーアプリケーション901、制御部502、UA106は、図11のS1303〜S1316と同等の処理を実行し、登録済アプリケーション管理テーブル1220を更新する。
即ち、実施例4では、Web Intentsの一覧を表示する画面での「更新」ボタン2301の押下による更新指示に応じて、プロキシーアプリケーション901が制御部502を介して新たに登録すべきアプリケーションが提供する機能の情報を検索し、該検索により新たに登録すべきアプリケーションが提供する機能の情報を検出したタイミングで、該情報をWeb Intentsの形式に変換してUA106に登録する。
以上で、実施例4の説明を終了する。
以上示したように、実施例4によれば、実施例1の効果に加えて、また、情報処理端末上でアプリケーションの追加・削除が発生した場合であっても、ユーザの指示に応じてアプリケーションの情報を更新でき、適切にウェブアプリケーションと当該アプリケーションの連携を動的に構築することができる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
(他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。

Claims (6)

  1. インターネット上でウェブサイトを提供し、データを管理するクライアントと、当該クライアントで管理されるデータを利用して機能を提供するサービスとを、中継するウェブブラウザを備える情報処理端末であって、
    前記情報処理端末では、該情報処理端末内で動作する複数のアプリケーションの間でデータを受け渡すためのインテンツを用いた仕組みを有しているオペレーティングシステムが実行され、
    前記情報処理端末内で動作する前記インテンツとして登録されている複数のアプリケーションを、前記ウェブブラウザを介して前記サービスとして呼び出すために、当該複数のアプリケーションのそれぞれに関する定義情報を、前記ウェブブラウザで扱える機能情報の形式に変換する変換手段と、
    前記クライアントが提供する前記ウェブサイト上に用意された、前記サービスを呼び出すためのボタンの押下に応じて、ユーザに対して、前記機能情報に従う複数のサービスの中から1つのサービスを選択できる一覧を表示する画面を提供するための提供手段と、
    前記ボタンの押下に応じて、前記クライアントが管理する該ボタンに対応するデータを受け取る受け取り手段と、を有し、
    前記画面に対するユーザの選択指示に応じて、前記受け取られたデータを該選択指示に対応するアプリケーションで処理させるための前記機能の呼び出しが行われる
    ことを特徴とする情報処理端末。
  2. 前記変換手段は、前記アプリケーションの定義情報に含まれる分類を、前記機能情報に含まれる分類情報の形式に合わせて変換することを特徴とする請求項1に記載の情報処理端末。
  3. 前記変換手段による変換は、前記情報処理端末にアプリケーションがインストールされたタイミング、定期的な検索で新たに登録すべき情報を検出したタイミング、前記ウェブブラウザを起動されたときに新たに登録すべき情報を検出した場合、の少なくともいずれかで実行されることを特徴とする請求項1又は2に記載の情報処理端末。
  4. 前記クライアントが提供する前記ウェブサイト上に用意された前記ボタンは、前記クライアントが管理する前記データを前記情報処理端末内で動作するアプリケーションに共有するための共有ボタンであり、
    前記提供手段は、前記共有ボタンの押下に応じて、ユーザに対して、前記機能情報の中のデータを共有する機能に対応する分類情報に対応する複数のサービスの中から1つのサービスを選択できる一覧を表示する画面を提供することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理端末。
  5. インターネット上でウェブサイトを提供し、データを管理するクライアントと、当該クライアントで管理されるデータを利用して機能を提供するサービスとを、中継するウェブブラウザを備える情報処理端末の制御方法であって、
    前記情報処理端末では、該情報処理端末内で動作する複数のアプリケーションの間でデータを受け渡すためのインテンツを用いた仕組みを有しているオペレーティングシステムが実行され、
    前記情報処理端末内で動作する前記インテンツとして登録されている複数のアプリケーションを、前記ウェブブラウザを介して前記サービスとして呼び出すために、当該複数のアプリケーションのそれぞれに関する定義情報を、前記ウェブブラウザで扱える機能情報の形式に変換する変換ステップと、
    前記クライアントが提供する前記ウェブサイト上に用意された、前記サービスを呼び出すためのボタンの押下に応じて、ユーザに対して、前記機能情報に従う複数のサービスの中から1つのサービスを選択できる一覧を表示する画面を提供するための提供ステップと、
    前記ボタンの押下に応じて、前記クライアントが管理する該ボタンに対応するデータを受け取る受け取りステップと、を有し、
    前記画面に対するユーザの選択指示に応じて、前記受け取られたデータを該選択指示に対応するアプリケーションで処理させるための前記機能の呼び出しが行われる
    ことを特徴とする情報処理端末の制御方法。
  6. コンピュータを、請求項1乃至のいずれか1項に記載された手段として機能させるためのプログラム。
JP2014009385A 2014-01-22 2014-01-22 情報処理端末、情報処理端末の制御方法およびプログラム Expired - Fee Related JP6355341B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2014009385A JP6355341B2 (ja) 2014-01-22 2014-01-22 情報処理端末、情報処理端末の制御方法およびプログラム
US14/600,843 US20150207867A1 (en) 2014-01-22 2015-01-20 Information processing terminal and control method
CN201510028804.7A CN104796453B (zh) 2014-01-22 2015-01-20 信息处理终端及控制方法
EP15152002.0A EP2902904A1 (en) 2014-01-22 2015-01-21 Information processing terminal and control method
KR1020150010331A KR101730339B1 (ko) 2014-01-22 2015-01-22 정보 처리 단말 및 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014009385A JP6355341B2 (ja) 2014-01-22 2014-01-22 情報処理端末、情報処理端末の制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2015138376A JP2015138376A (ja) 2015-07-30
JP6355341B2 true JP6355341B2 (ja) 2018-07-11

Family

ID=52396500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014009385A Expired - Fee Related JP6355341B2 (ja) 2014-01-22 2014-01-22 情報処理端末、情報処理端末の制御方法およびプログラム

Country Status (5)

Country Link
US (1) US20150207867A1 (ja)
EP (1) EP2902904A1 (ja)
JP (1) JP6355341B2 (ja)
KR (1) KR101730339B1 (ja)
CN (1) CN104796453B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8825814B1 (en) * 2013-05-23 2014-09-02 Vonage Network Llc Method and apparatus for minimizing application delay by pushing application notifications
CN105825851B (zh) * 2016-05-17 2020-07-21 Tcl科技集团股份有限公司 一种基于Android系统的语音控制方法及系统
CN106648871B (zh) * 2016-12-28 2020-04-03 北京奇艺世纪科技有限公司 一种资源管理方法及系统
CN109151591A (zh) * 2018-11-20 2019-01-04 四川长虹电器股份有限公司 智能电视应用启动的方法
CN110309005B (zh) * 2019-06-28 2022-03-25 百度在线网络技术(北京)有限公司 一种功能调用方法、装置、终端设备及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1211861A1 (en) * 2000-12-04 2002-06-05 Alcatel Browser environment for accessing local and remote services on a phone
JP2003303103A (ja) * 2002-04-08 2003-10-24 Kawasaki Steel Systems R & D Corp アプリケーション管理システム、アプリケーション連携プログラム及びファイル自動作成プログラム
US8693998B2 (en) * 2011-01-26 2014-04-08 Nice-Systems Ltd. System and method for managing a customer service session
JP5551141B2 (ja) * 2011-11-05 2014-07-16 京セラドキュメントソリューションズ株式会社 クライアントサイドWebサービスインターフェイス及びこれを備えたソフトウェア開発キット並びにこの開発キットを用いたソフトウェア開発方法
JP2013096969A (ja) 2011-11-07 2013-05-20 Zenrin Datacom Co Ltd 情報処理装置及び制御方法
US9448700B2 (en) * 2012-02-03 2016-09-20 Apple Inc. Sharing services
US20130226688A1 (en) * 2012-02-23 2013-08-29 Annie Harvilicz Crowd funding system
US20140026067A1 (en) 2012-07-23 2014-01-23 Korea Advanced Institute Of Science And Technology Method and apparatus for processing movement of web object based on intent
KR102038962B1 (ko) * 2012-08-13 2019-10-31 삼성전자주식회사 클라우드 서버를 이용하여 단말 장치에서 웹 인텐트 메시지 및 이벤트를 처리하는 방법 및 장치
CN103518360B (zh) * 2012-10-26 2017-04-19 华为终端有限公司 多个服务处理方法和浏览器
US20140380142A1 (en) * 2013-06-20 2014-12-25 Microsoft Corporation Capturing website content through capture services
US20150156149A1 (en) * 2013-12-04 2015-06-04 At&T Mobility Ii Llc Method and apparatus for sharing content from third party websites via messaging

Also Published As

Publication number Publication date
EP2902904A1 (en) 2015-08-05
KR101730339B1 (ko) 2017-04-27
JP2015138376A (ja) 2015-07-30
US20150207867A1 (en) 2015-07-23
KR20150087815A (ko) 2015-07-30
CN104796453A (zh) 2015-07-22
CN104796453B (zh) 2018-11-30

Similar Documents

Publication Publication Date Title
JP6296813B2 (ja) 情報処理端末、情報処理端末の制御方法およびプログラム
JP6355341B2 (ja) 情報処理端末、情報処理端末の制御方法およびプログラム
US20150067173A1 (en) Information processing terminal and control method therefor, system and control method therefor, and non-transitory computer-readable medium
US9769246B2 (en) Information processing terminal and control method
JP6168839B2 (ja) 情報処理装置、その制御方法、プログラム
JP2009211278A (ja) 携帯端末を利用した検索システムおよびその検索方法
US9753903B2 (en) Information processing terminal, processing apparatus, and control method
JP6351275B2 (ja) 情報処理端末、情報処理端末の制御方法およびプログラム
JP7199755B1 (ja) 投稿連携装置、投稿連携方法及び投稿連携プログラム
JP6786656B2 (ja) 情報処理端末、情報処理端末の制御方法およびプログラム
JP6513244B2 (ja) 情報処理端末、制御方法及びプログラム
JP2022179670A (ja) 情報処理端末、制御方法、およびオペレーティングシステム
JP2023039568A (ja) 帳票作成システムおよびプログラム
KR101401236B1 (ko) 인텐트에 기반하여 이동된 웹 객체를 처리하는 방법 및 장치
KR20230148649A (ko) 개인 데이터 통합 관리 방법
KR20230148644A (ko) 개인 데이터 통합 관리 방법
KR20230148642A (ko) 개인 데이터 통합 관리 방법
KR101414900B1 (ko) 인텐트에 기반하여 웹 객체를 이동시키는 방법 및 장치
JP2009093391A (ja) Webサーバ連携方法、Webサーバ連携プログラム、および、Webサーバ連携システム
JP2018116403A (ja) 情報処理システム、情報処理方法及びプログラム
JP2013246697A (ja) 情報処理装置、情報処理方法及びプログラム
KR20140017716A (ko) 푸쉬를 사용하여 웹 객체를 이동시키는 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170105

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20170105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171214

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180612

R151 Written notification of patent or utility model registration

Ref document number: 6355341

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees