JP2016018537A - 情報処理端末、情報処理端末の制御方法、及びプログラム - Google Patents
情報処理端末、情報処理端末の制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2016018537A JP2016018537A JP2014143237A JP2014143237A JP2016018537A JP 2016018537 A JP2016018537 A JP 2016018537A JP 2014143237 A JP2014143237 A JP 2014143237A JP 2014143237 A JP2014143237 A JP 2014143237A JP 2016018537 A JP2016018537 A JP 2016018537A
- Authority
- JP
- Japan
- Prior art keywords
- service
- information
- function information
- processing terminal
- search
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】ネットワーク機器が提供する各種サービスについてユーザに最適なサービス一覧を提供し、ユーザが容易に選択・利用すること。
【解決手段】UAとしての情報処理端末530のWebブラウザは、探索により取得されたローカルサーバ(プリンタ)521等が提供するローカルサービスの機能情報、及び、サーバ520が提供するサイトを介して取得されたサービスの機能情報を登録可能であり、Web IntentsのInvocationを受信した際に、登録された機能情報の一覧を表示し、ユーザに使用するサービスの選択を促す。なお、探索により既に登録されている機能情報が見つかった場合には、当該探索の結果に従い機能情報の一覧の表示を更新する。
【選択図】図5
【解決手段】UAとしての情報処理端末530のWebブラウザは、探索により取得されたローカルサーバ(プリンタ)521等が提供するローカルサービスの機能情報、及び、サーバ520が提供するサイトを介して取得されたサービスの機能情報を登録可能であり、Web IntentsのInvocationを受信した際に、登録された機能情報の一覧を表示し、ユーザに使用するサービスの選択を促す。なお、探索により既に登録されている機能情報が見つかった場合には、当該探索の結果に従い機能情報の一覧の表示を更新する。
【選択図】図5
Description
本発明は、ネットワーク機器が提供するサービスを利用する技術に関する。
従来、Webサイト間で処理を委譲する場合、機能を呼び出す側は、機能を提供する側のAPI(Application Program Interface)やREST(REpresentational State Transfer)インタフェース等の機能の呼び出し方を、知っている必要があった。従って、異なるWebサイトとの連携を実現するためには、機能の呼び出し側は、それぞれの呼び出し規約に従って呼び出し側の処理を行う必要があった。
専用のAPIを用いずに任意のWebサービス(または、Webアプリケーション)と連携する仕組みも存在する。一例として、実行時遅延バインディングによりサービス受け側と提供側とを疎結合とし、それらの連携を実現するWeb Intents(ウェブインテンツ)という仕組みが提案されている。
Web Intentsでは、インターネットのWebページで提供されるサービスをユーザに提示する。このため、ユーザがLANに接続したプリンタなどをインターネットのWebページで提供されるサービスと同様に選択することはできなかった。
この課題を解決する技術として、特許文献1に記載されるような技術がある。特許文献1は、UPnPなどによりLAN内のローカルサービス探索を行うことで、ユーザに情報処理サービスの選択肢をより幅広く提示して各種の機器を利用することを可能にする。
特許文献1の技術では、ローカルサービスの探索について、SSDP(Simple Service Discovery Protocol)をWeb Intents拡張することでWeb Intentsサービスの探索を行っている。探索結果は、UA(ユーザエージェント)に登録されないため、Web IntentsのInvocationを受信した際に毎回ローカルサービスの探索を行う必要がある。なお、環境によっては多くのローカルサービスが存在し、探索結果に、ユーザにとって不要なローカルサービスが多く含まれてしまうことがある。このような環境では、毎回、ユーザにとって不要なローカルサービスが探索により発見されて、サービス一覧に表示されてしまう。このため、ユーザは、サービス一覧から自分の利用したいサービスを見つけにくくなってしまうことがある。
このため、インターネット上のサービスやローカルサービス等の、ネットワーク機器が提供する各種サービスを、ユーザが容易に選択・利用することができる仕組みの提案が望まれていた。
なお、ローカルサービスは、インターネットを介して提供されているサービスとは異なり、サービスの提供状態が変動することがある。例えば、ローカルサービスを提供する機器の電源がOFFであるために通信エラーになる場合や、消耗品が不足してサービスを実行できない等、サービスが提供できない場合がある。このため、ローカルサービスをUAに登録しても、ユーザによりサービス一覧から選択された際には、該サービスの提供状態が変わっていて使用できない可能性がある。
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ネットワーク機器が提供する各種サービスについてユーザに最適なサービス一覧を提供し、ユーザが容易に選択・利用することを可能にする仕組みを提供することである。
本発明は、データを管理するクライアントと、当該クライアントで管理されるデータを利用して機能を提供するサービスとを中継する中継機能を備える情報処理端末であって、所定のネットワークプロトコルを用いて、ネットワークを介してサービスを探索することで、当該ネットワークに接続されたネットワーク機器が提供する第1のサービスを要求するための第1の機能情報を取得する第1の取得手段と、第2のサービスを提供するネットワーク機器のサイトを介して、当該第2のサービスを要求するための第2の機能情報を取得する第2の取得手段と、前記中継機能による前記第1の取得手段及び前記第2の取得手段により取得された前記第1の機能情報及び前記第2の機能情報の登録処理を実行する登録手段と、前記登録処理に従い登録された前記第1の機能情報及び前記第2の機能情報を含む機能情報の一覧の表示を制御する制御手段と、を有し、前記制御手段は、前記所定のネットワークプロトコルを用いた前記ネットワークを介したサービスの探索により、前記登録処理に従い既に登録された機能情報が見つかった場合には、当該探索の結果に従い前記一覧の表示を更新することを特徴とする。
本発明によれば、ネットワーク機器が提供する各種サービスについてユーザに最適なサービス一覧を提供し、ユーザが容易に選択・利用することを可能にできる。
以下、本発明を実施するための形態について図面を用いて説明する。
<基本全体概念図>
図1は、専用のAPIを用いることなく任意のウェブサービス(または、ウェブアプリケーション)等と連携する仕組みの一例であるWeb Intents(ウェブインテンツ)を実現するための全体構成の一例を示す図である。
図1は、専用のAPIを用いることなく任意のウェブサービス(または、ウェブアプリケーション)等と連携する仕組みの一例であるWeb Intents(ウェブインテンツ)を実現するための全体構成の一例を示す図である。
103はWeb Intentsサービス(以下、サービス)で、Intents技術を利用してサービスや機能を提供する。101はWeb Intentsクライアント(以下、クライアント)で、サービス103を利用する。106はUserAgent(ユーザエージェント、以下、UA)で、クライアント101からの要求をサービス103に渡し、サービスからの結果をクライアント101に渡す役割をする。UA106は、クライアント101及びサービス103の間で要求を実行したり、データを受け渡したりするための中継機能といえる。また、UA106には、サービス103の提供機能を呼び出すための機能情報がWeb Intentsとして登録される。
例えば、クライアント101は、データを管理し、サービスを呼び出すボタンなどを配置しているウェブサイトであり、ウェブサーバ上で動作する。また、UA106は、該ウェブサイトを表示するWebブラウザ(ウェブブラウザ)であり、パーソナルコンピュータ等の情報処理端末上で動作する。また、サービス103は、UA106を介してクライアント101が管理するデータを受け付けて処理するクライアント101の連携先のウェブサイトであり、ウェブサーバ上で動作する。
具体例として、Web Intentsの仕組みをSNS(ソーシャル・ネットワーキング・サービス)に適用した場合には、次のようになる。クライアント101は、「いいね」「チェック」「シェア」といったソーシャルボタンを配置しているWebサイトとなる。また、UA106は、該ウェブサイトを表示するWebブラウザとなる。さらに、サービス103は、上記ソーシャルボタンの押下により、クライアント101で管理する写真やコメントの投稿を受け付けて閲覧サイトを構成する投稿先のWebサイトとなる。ここで、サービス103が機能を提供するにあたって、ユーザ認証やユーザによる操作が必要な場合、UA106上でユーザが操作を行う。
なお、UA106は、後述するサービスと連携するための機能を持つものであれば、Webブラウザ以外にも、情報処理端末で動作するオペレーティングシステム(OS)や任意のアプリケーションなどで実現することも可能である。ここで、情報処理端末の例としては、パーソナルコンピュータ、スマートフォン、タブレット型コンピュータ、カーナビゲーション装置などが挙げられる。
また、サービス103については、上述した投稿先サービスのようなインターネット上のサービス提供者以外にも、例えば情報処理端末が内蔵するカメラ、画像形成装置、スキャナなどといったデバイスもサービス提供者になり得る。また、UA106とネットワークで接続される画像形成装置、スキャナ、ネットワークカメラなどの周辺機器や、冷蔵庫やテレビといった家電製品などが提供するウェブサービスもサービス103に対応するサービス提供者になり得る。
また、クライアント101についても同様に、情報処理端末が内蔵するさまざまなデバイスやアプリケーション、その他にネットワーク上の周辺機器や家電製品、その上で動くプログラムなどもサービスを呼び出す利用者となり得る。
クライアント101とUA106とサービス103は、これらの任意の組み合わせが、同一システム内で稼働することもある。具体的には、Webブラウザの同等の機能を有する文書編集アプリケーションなどが、クライアント101とUA106とを含む構成として動作するといったことが考えられる。
なお、クライアント101、UA106、サービス103の機能を提供する各装置のハードウェア構成については、後述する図6に例示する。
<Web Intentsシーケンス図、および、データの例>
図2は、Web Intentsを利用したサービス提供に関する基本動作を説明するためのシーケンス図である。
図2は、Web Intentsを利用したサービス提供に関する基本動作を説明するためのシーケンス図である。
S201において、UA106は、ユーザの操作に応じてサービス103にアクセスする。S202において、サービス103は、提供する機能をUA106に登録してもらうための登録用マークアップを含むHTML応答をUA106に返信する。ここで、図3の例を用いて、サービス103からUA106に返信されるHTML応答の中身について説明する。
図3は、Web Intentsの機能登録用のHTML文書を説明する図である。
図3において、<intent>タグには、提供機能を特定する情報が記載されている。Actionは、提供機能のカテゴリを示している。Typeは、提供機能が扱えるデータなどの種類を示している。hrefは、提供機能の接続先(URL)を示している。titleは、提供機能のタイトルを示している。また、dispositionは呼び出された提供機能がどのように表示されるかを示す。
図3において、<intent>タグには、提供機能を特定する情報が記載されている。Actionは、提供機能のカテゴリを示している。Typeは、提供機能が扱えるデータなどの種類を示している。hrefは、提供機能の接続先(URL)を示している。titleは、提供機能のタイトルを示している。また、dispositionは呼び出された提供機能がどのように表示されるかを示す。
図3の例では、提供機能のカテゴリが"share(共有)"であり、扱えるデータなどの種類が"あらゆるフォーマット(*)の画像データ(image)"である。また、接続先は"share.html"であり、タイトルは"Share image using e−mail"である。さらに、この機能が、UA106を介して別ウィンドウ(Window)で表示されることを示している。
なお、提供機能のカテゴリには、例えば、Share、Edit、View、Pick、Subscribe、Save、Browser、Print等がある。Shareはデータの共有、Editはデータの編集、Viewはデータの閲覧、Pickはデータを外部サービスから取得、Subscribeはデータの購読、Saveはデータの保存、Printはデータの印刷を示す。
UA106は、S202の応答を受信すると、ユーザに対してサービス103の提供機能をUA106に登録するか否か確認する。例えば、UA106がWebブラウザであれば、ポップアップウィンドウを表示させユーザに登録の可否の選択を促す。ユーザがこの提供機能をWeb Intentsとして登録することを選択すると、UA106は、S202で受信した情報を内部に記憶する登録処理を実行する。具体的には、この情報は、UA106が動作する情報処理端末の記憶領域に記憶され、UA106にWeb Intentsとして登録される。
S203において、UA106は、ユーザの操作に応じて、クライアント101にアクセスする。S204において、クライアント101は、サービス103の提供機能(Web Intents)を利用することが記載されたHTML文書を、UA106へ返信する。例えば、クライアント101としてのWebサイトで、画像と「共有」ボタンが表示されている場合に、該Webサイトは、図4に示すようなECMAScriptを含むHTML文書をUA106へ返す。ここで、図4の例を用いて、クライアント101からUA106に返信されるHTML文書の中身について説明する。
図4は、クライアント101からUA106に返信されるHTML文書を説明する図である。
図4に示すように、ECMAScriptは、HTML内のID「share−photo」を持つボタンがクリックされると指定された無名関数を実行することを示している。無名関数は、まず、新規のIntentオブジェクトを作成し、これを引数にしてstartActivety()関数を呼び出す。この関数を実行すると、UA106は、自身に登録されているWeb Intentsの中から、指定されたIntentオブジェクトのActionとTypeが一致するものを抽出し、一覧表示させることでユーザに選択を要求する。また、無名関数内で呼び出しているgetImageFrom()関数を実行することにより、クライアント101が持つ画像データを取得する。
図4に示すように、ECMAScriptは、HTML内のID「share−photo」を持つボタンがクリックされると指定された無名関数を実行することを示している。無名関数は、まず、新規のIntentオブジェクトを作成し、これを引数にしてstartActivety()関数を呼び出す。この関数を実行すると、UA106は、自身に登録されているWeb Intentsの中から、指定されたIntentオブジェクトのActionとTypeが一致するものを抽出し、一覧表示させることでユーザに選択を要求する。また、無名関数内で呼び出しているgetImageFrom()関数を実行することにより、クライアント101が持つ画像データを取得する。
クライアント101は、S204にて、例えば、画像と「共有」ボタンと、図4に示すECMAScriptを含むHTML文書をUA106に返信する。UA106は、クライアント101からHTML応答を受け取ると、ユーザへ受信した内容を表示する。S205において、UA106は、ユーザによる表示画面上の「共有」ボタンの押下を検出すると、上述したようにWeb Intents起動用のECMAScriptを実行し、S206において、クライアント101が持つ画像データを取得する。また、上記S205で「共有」ボタン押下を検出した際に、UA106は、自身に登録されているWeb Intentsの一覧を表示する。この一覧からユーザによるサービス103の提供機能を示すWeb Intentsの選択を検出すると、S207において、UA106は、該選択されたサービス103へHTTP要求を送信する。その際、UA106は、送信データに、図4に示したECMAScriptが作成したIntentオブジェクトの内容を含める。
S208において、サービス103は、上記S207のHTTP要求からIntentオブジェクトを取り出し、UA106を介してユーザと相互作用しながら、選択された提供機能(ここではクライアント101の画像データの「共有」)の利用を実現する。例えば、ユーザが画像、共有ボタンがあるWebサイトに訪れ、共有ボタンを押下すると、ポップアップウィンドウにサービス一覧が表示される。そこで、Webメールサービスを選択したとすると、画像データを添付した新規メールが作成され、ユーザにより電子メールを送信することが出来る。
サービス103は、処理が終了すると、S209において、処理結果をクライアント101に伝えるECMAScriptを含む応答を返す。S210において、UA106は、S209の応答中に含まれるECMAScriptを実行し、S205のstartActivety()関数の引数で指定されたコールバック関数onSuccess()を呼び出す。S211において、UA106は、コールバック関数onSuccess()によってクライアント101へ処理結果を返す。
図2のシーケンスにより、Webメール機能を利用する例について説明する。まず、ユーザがWebブラウザ(UA106)で、写真データを管理するウェブストレージ(クライアント101)のWeb Intentsの呼び出しボタンが用意されたサイトに訪れ、当該ボタンを押下する。すると、Webブラウザ(UA106)が登録サービス一覧を含むポップアップウィンドウを表示する。そこで、ユーザがWebメール機能を選択したとすると、該機能を提供するWebサイト(サービス103)が別ウィンドウで表示され、処理結果として、そのウィンドウ上では写真データを添付した新規メールが作成されている。
以上の処理により、クライアント101は、UA106を介して、サービス103が提供するWeb Intentsの機能(この例では画像の「共有」)を呼び出すことが可能となる。
<本実施形態のネットワーク、周辺機器、及び、ネットワークサービスの構成例>
図5は、本発明の一実施例を示すシステムの構成の一例を示す図である。
図5に示すように、本システムでは、LAN508で接続された情報処理端末530と、ローカルサーバ521であるプリンタが、ルータ507越しにWAN506に接続されている。さらに、本システムは、インターネット505に接続される、1台以上のクライアント101の機能を提供するサーバ510、および、1台以上のサービス103を提供するサーバ520を有する。サーバ520とサーバ510は、インターネット505経由でサービスを提供している。情報処理端末530は、ルータ507越しにWAN506、インターネット505を介してサーバ510、およびサーバ520と接続される。
図5は、本発明の一実施例を示すシステムの構成の一例を示す図である。
図5に示すように、本システムでは、LAN508で接続された情報処理端末530と、ローカルサーバ521であるプリンタが、ルータ507越しにWAN506に接続されている。さらに、本システムは、インターネット505に接続される、1台以上のクライアント101の機能を提供するサーバ510、および、1台以上のサービス103を提供するサーバ520を有する。サーバ520とサーバ510は、インターネット505経由でサービスを提供している。情報処理端末530は、ルータ507越しにWAN506、インターネット505を介してサーバ510、およびサーバ520と接続される。
なお、本実施例において、先に説明したサービス103に対応するサービス(サービス、ローカルサービス)を、サーバ520、ローカルサーバ521等で提供している。しかし、3台以上のサーバでサービス機能を提供する場合においても、本発明は適用可能である。
サーバ510は、先に説明したクライアント101の機能を提供するものであり、サービス、ローカルサービスへの処理要求を作成する。サーバ520、ローカルサーバ521は、それぞれ先に説明したサービス103にあたるサービス、ローカルサービス(LAN)の機能を提供するWebアプリケーションを備えており、Web Intents技術を利用してサービスや機能を提供する。
上述したように、ローカルサーバ521は、LAN508に接続されたサーバである。本実施例においてローカルサーバ521がプリンタである例を示したが、Web Intentsサービス機能を有する他の形態、例えば汎用コンピュータや、情報家電等でもよい。また、LAN508は、有線であっても無線であってもよい。
情報処理端末530は、先に説明したUA106の機能を提供するWebブラウザがインストールされているコンピュータである。さらに、情報処理端末530は、機器内にローカルサービスの機能を提供するWebアプリケーションを備えるものとする(後述する図7B(d)のローカルサービス(機器内サービス)参照)。なお、サーバ510、サーバ520、情報処理端末530は、汎用コンピュータの構成を有する。
本実施例では、情報処理端末530を汎用コンピュータとして示したが、他の形態の情報処理端末、タブレット型コンピュータ、スマートフォンなどで処理された場合も、同様に本発明を適用可能である。
図6は、本実施例のシステムを構成する機器のハードウェアブロック図である。
図6(A)は、サーバ510、520及び情報処理端末530のハードウェア構成の一例を示すブロック図である。
図6(A)は、サーバ510、520及び情報処理端末530のハードウェア構成の一例を示すブロック図である。
図6(A)に示すように、CPU601、RAM602、ROM603、ネットワークインタフェース(Network I/F)605、ハードディスクドライブ(HDD)606がシステムバス609を介して互いに通信可能に接続されている。また、LCD等の表示装置607、キーボード等の入力装置604、及びマウスやタッチパネル等のポインティングデバイス608も、システムバス609を介して互いに通信可能に接続されている。
ROM603或いはHDD606には、オペレーティングシステムや各種アプリケーションプログラム等の制御プログラムが格納されている。CPU601は、前記制御プログラムを必要に応じてROM603或いはHDD606からRAM602上へ読み出して実行することで、コンピュータとしての機能を発揮する。また、CPU601は、表示装置607を介して各種情報の表示を行うと共に、入力装置604やポインティングデバイス608からユーザ指示等を受け付ける。更に、CPU601は、ネットワークインタフェース605を介して他の装置との通信を行う。
図6(B)は、ローカルサーバ521のハードウェア構成の一例を示すブロック図である。図6(B)では一例として複合機(MFP;MultiFunction Peripheral)の構成を示す。
図6(B)に示すように、CPU611、RAM612、R1M603、ネットワークインタフェース(Network I/F)615、ハードディスクドライブ(HDD)616がシステムバス619を介して互いに通信可能に接続されている。また、操作部614、スキャナ部617、及びプリンタ部618も、システムバス619を介して互いに通信可能に接続されている。
ROM613或いはHDD616には、オペレーティングシステムや各種アプリケーションプログラム等の制御プログラムが格納されている。CPU611は、前記制御プログラムを必要に応じてROM613或いはHDD616からRAM612上へ読み出して実行することで、複合機としての機能を発揮する。また、CPU611は、操作部614を介して各種情報の表示を行うと共に、操作部614からユーザ指示等を受け付ける。更に、CPU611は、ネットワークインタフェース615を介して他の装置との通信を行う。
操作部614は、ボタン及び表示装置、或いは、タッチパネル入力付き液晶表示画面、或いはその組み合わせにより、611からのユーザへの情報表示や、ユーザの入力をCPU611へと通知する。
スキャナ部617は、原稿の画像を読み取り、ユーザからの指示により、その原稿画像に応じた画像データを、プリンタ部618に出力する、或いは、HDD616等に保存する。さらに、スキャナ部617は、ネットワークI/F615を介してネットワークに接続された外部装置に画像データを送信することも可能である。
プリンタ部618は、スキャナ部617により読み取られた原稿や、HDD616に格納された画像データを印刷する。さらに、プリンタ部618は、ネットワークに接続された外部装置からの印刷ジョブを印刷する。
また、CPU611が、ネットワーク上の他の情報機器とネットワークI/F615を介して相互通信し、ウェブプリント機能などのローカルサービス(LAN)の提供を制御する。なお、装置内に、サービスを提供するハードウェア構成として、もう1つのCPUなどを用いる設計も可能である。
図7A、図7Bは、サーバ510、520、ローカルサーバ521及び情報処理端末530のソフトウェア構成の一例を示すブロック図である。
図7A(a)は、クライアント101の機能を提供するサーバ510のソフトウェアの構成の一例を示す。
サーバ510において、Webアプリケーション700および各処理部は、サーバ510のHDD606に保存されたファイルとして存在する。これらは、実行時にOSやその各処理部を利用する他の処理部によってRAM602にロードされ実行されるプログラムモジュールである。
サーバ510において、Webアプリケーション700および各処理部は、サーバ510のHDD606に保存されたファイルとして存在する。これらは、実行時にOSやその各処理部を利用する他の処理部によってRAM602にロードされ実行されるプログラムモジュールである。
Webアプリケーション700は、例えば画像データの保管などのストレージサービスを提供するアプリケーションである。Webアプリケーション700は、HTTP(HyperText Transfer Protocol)リクエストに応答して処理を実行するプログラムとして実装される。Webアプリケーション700は、Intent処理要求作成部702、プレゼンテーション部703、コンテンツ管理部704を有する。
Intent処理要求作成部702は、Intentの処理要求であるECMAScriptを作成するソフトウェアモジュールである。プレゼンテーション部703は、通信部701を介して受け取ったページ取得要求などに応じてHTML文書を作成するソフトウェアモジュールである。コンテンツ管理部704は、プレゼンテーション部703からの要求に応じてデータベースサービス部705によりHDD606からコンテンツを取得したり、格納したりするソフトウェアモジュールである。
データベースサービス部705は、他の処理部からの要求に応じて、HDD606へのコンテンツの格納と取り出しを行うソフトウェアモジュールである。また、データベースサービス部705は、後述する図8(C)に示すようなコンテンツ管理テーブル820を管理する。また、データベースサービス部705は、サーバ510と別の機器上にあってもよい。以上示したような、Webアプリケーション700は、サーバ510のCPU601が、HDD606等からプログラムをRAM602上へ読み出して実行することにより実現されるものである。
図7A(b)は、サービス103に対応するサービスを提供するサーバ520のソフトウェアの構成の一例を示す。
サーバ520において、Webアプリケーション730および各処理部は、サーバ520のHDD606に保存されたファイルとして存在する。これらは、実行時にOSやその各処理部を利用する他の処理部によってRAM602にロードされ実行されるプログラムモジュールである。
サーバ520において、Webアプリケーション730および各処理部は、サーバ520のHDD606に保存されたファイルとして存在する。これらは、実行時にOSやその各処理部を利用する他の処理部によってRAM602にロードされ実行されるプログラムモジュールである。
Webアプリケーション730は、画像データの保管などのストレージサービスを提供するアプリケーションである。また、Webアプリケーション730は、Intents技術を利用してサービスを提供する機能を有する。さらに、Webアプリケーション730は、HTTPリクエストに応答して処理を実行するプログラムとして実装される。Webアプリケーション730は、Intent処理部732、プレゼンテーション部733、コンテンツ処理部734を有する。
Intent処理部732は、Intentオブジェクトを解析し、処理するソフトウェアモジュールである。プレゼンテーション部733は、通信部731を介して受け取ったページ取得要求などに応じてHTML文書を作成するソフトウェアモジュールである。コンテンツ処理部734は、Intent処理部732からの指示を受けて、コンテンツに対して処理をするソフトウェアモジュールである。例えば、画像データを編集したり、要求に応じてデータベースサービス部735を介してHDD606へコンテンツを格納したりするソフトウェアモジュールである。
データベースサービス部735は、他の処理部からの要求に応じて、データの格納と取り出しを行う。また、データベースサービス部735は、サーバ520と別の機器上にあってもよい。以上示したような、Webアプリケーション730は、サーバ520のCPU601が、HDD606等からプログラムをRAM602上へ読み出して実行することにより実現されるものである。
図7A(c)は、サービス103に対応するローカルサービス(LAN)を提供するローカルサーバ521のソフトウェアの構成の一例を示す。
ローカルサーバ521において、Webアプリケーション740および各処理部は、ローカルサーバ521のHDD616に保存されたファイルとして存在する。これらは、実行時にOSやその各処理部を利用する他の処理部によってRAM612にロードされ実行されるプログラムモジュールである。
ローカルサーバ521において、Webアプリケーション740および各処理部は、ローカルサーバ521のHDD616に保存されたファイルとして存在する。これらは、実行時にOSやその各処理部を利用する他の処理部によってRAM612にロードされ実行されるプログラムモジュールである。
Webアプリケーション740は、画像データの印刷サービスを提供するアプリケーションである。また、Webアプリケーション740は、Intents技術を利用してサービスを提供する機能を有する。さらに、Webアプリケーション740は、HTTPリクエストに応答して処理を実行するプログラムとして実装される。Webアプリケーション740は、Intent処理部742、プレゼンテーション部743、コンテンツ処理部744、探索処理部746を有する。
Intent処理部742は、Intentオブジェクトを解析し、処理するソフトウェアモジュールである。プレゼンテーション部743は、通信部741を介して受け取ったページ取得要求などに応じてHTML文書を作成するソフトウェアモジュールである。コンテンツ処理部744は、Intent処理部742からの指示を受けて、コンテンツに対して処理をするソフトウェアモジュールである。例えば、コンテンツ処理部744は、画像の印刷要求に応じて印刷サービス部(不図示)を介してコンテンツを印刷するソフトウェアモジュールである。
データベースサービス部745は、他の処理部からの要求に応じて、データの格納と取り出しを行う。また、データベースサービス部745は、ローカルサーバ521と別の機器上にあってもよい。探索処理部746は、後述する情報処理端末530の探索部759からのSSDP(Simple Service Discovery Protocol)などの所定のネットワークプロトコルを用いた探索要求を処理する。なお、探索処理に用いるネットワークプロトコルは、SSDPに限定されるものではない。
以上示したような、Webアプリケーション740は、ローカルサーバ521のCPU611が、HDD616等からプログラムをRAM612上へ読み出して実行することにより実現されるものである。
図7B(d)は、UA106の機能を提供する情報処理端末530のソフトウェアの構成の一例を示す。
情報処理端末530において、Webブラウザ750、Webアプリケーション760および各処理部は、情報処理端末530のHDD606に保存されたファイルとして存在する。これらは、実行時にOSやその各処理部を利用する他の処理部によってRAM602にロードされ実行されるプログラムモジュールである。
情報処理端末530において、Webブラウザ750、Webアプリケーション760および各処理部は、情報処理端末530のHDD606に保存されたファイルとして存在する。これらは、実行時にOSやその各処理部を利用する他の処理部によってRAM602にロードされ実行されるプログラムモジュールである。
Webブラウザ750は、通信部751、解析部752、表示部753、サービス情報入出力部754、サービス情報管理部755、サービス判定部756、スクリプト処理部757、サービス情報記憶部758を有する。
通信部751は、他の処理部からの要求を受けてHTTPのリクエストメッセージを外部機器に送信する。また、通信部751は、外部機器からのHTTPレスポンスメッセージを受信し、解析部752にレスポンスの内容を通知するソフトウェアモジュールである。
解析部752は、HTML文書を解析するソフトウェアモジュールである。また、解析部752は、Intent処理要求であるECMAScriptも解析する。表示部753は、HTML文書をレンダリングするソフトウェアモジュールである。また、表示部753は、他の処理部の要求に応じて、サービスの選択を受け付ける画面を表示する。
サービス情報入出力部754は、解析部752で解析されたECMAScriptから、Web Intentsスクリプトの「アクション(Action)」やデータタイプを示す「タイプ(Type)」の受信解析や送信データの生成を行う。サービス情報管理部755は、後述のサービス情報記憶部758から登録済みのサービスを特定する情報を取得したり、格納したりするソフトウェアモジュールである。
サービス判定部756は、実行中のWeb Intents処理において、Intentsスクリプトの「アクション(Action)」および「タイプ(Type)」から探索の必要等を判定する。該判定の際、サービス判定部756は、図8(D)に示すようなWeb Intents設定を用いる(詳細は後述する)。スクリプト処理部757がサービス判定部756で探索が必要だと判定した場合には、探索部759が探索処理を行う。
サービス情報記憶部758は、データを管理し、サービス情報管理部755からの要求に応じてデータの格納と取り出しを行う。また、サービス情報記憶部758は、後述する図8(A)や図8(B)に示すようなサービステーブル800を保持する。探索部759は、スクリプト処理部757からの探索要求を受け付け、LAN508上のローカルサービスの探索を行う。
なお、情報処理端末530は、ローカルサービスの機能を提供するWebアプリケーション760を有する(ローカルサービス(機器内サービス))。Webアプリケーション760は、Webアプリケーション730と同様である。即ち、Intent処理部742、プレゼンテーション部743、コンテンツ処理部744、探索処理部746、データベースサービス部745は、それぞれ、Intent処理部762、プレゼンテーション部763、コンテンツ処理部764、探索処理部766、データベースサービス部765と同様である。なお、コンテンツ処理部764は、例えば、画像データを編集したり、要求に応じてデータベースサービス部765を介してHDD606へコンテンツを格納したりするソフトウェアモジュールである。
以上示したような、Webブラウザ750、Webアプリケーション760は、情報処理端末530のCPU601が、HDD606等からプログラムをRAM602上へ読み出して実行することにより実現されるものである。
図8は、サービステーブル800、コンテンツ管理テーブル820、Web Intents設定830の一例を示す図である。
図8(A)、図8(B)は、情報処理端末530のWebブラウザ750が自身に登録されたサービスを管理するためにサービス情報記憶部758に保持するサービステーブル800の一例である。図8(A)と図8(B)は、サービステーブル800の別の登録例を示している。
図8(A)、図8(B)は、情報処理端末530のWebブラウザ750が自身に登録されたサービスを管理するためにサービス情報記憶部758に保持するサービステーブル800の一例である。図8(A)と図8(B)は、サービステーブル800の別の登録例を示している。
図8(A)、図8(B)に示す、サービステーブル(サービステーブル)800は、情報処理端末530のサービス情報記憶部758で保持され、サービス情報管理部755によって管理される。サービステーブル800には、サービスが提供する機能を呼び出すための機能情報(801〜805)、及び、本実施例の特徴的な情報806〜807が登録されている。以下、詳細に説明する。
801はServiceIDであり、Webブラウザ750内でサービスを一意に識別するためのIDである。802はActionであり、サービス、ローカルサービスが提供する提供機能のカテゴリ(サービスがどのような機能、サービスを提供するか)を示す。803はTypeであり、Action802で扱えるデータなどの種類(データの形式)を示す。804はhrefであり、サービス、ローカルサービスのURLを示す。805はtitleであり、サービス、ローカルサービスのタイトルを示す。
また、806はローカルサービスFlagであり、図2のS201〜S202に示したようにサーバから登録(Registration)されたサービスと、探索されたサービスを識別するための情報である。ローカルサービスFlag806がONのサービスは、探索されたサービスに対応する。なお、LAN上で探索されたローカルサービスのローカルサービスFlag806には「ON(LAN)」が格納される。また、情報処理端末530の機器内で探索されたローカルサービスのローカルサービスFlag806には「ON(機器内サービス)」が格納される。また、ユーザにより手動で登録されたローカルサービスのローカルサービスFlag806には「ON(マニュアル設定サービス)が格納される。
807は、探索時に探索応答情報、または、探索後にWeb Intents拡張情報などで取得したサービス拡張情報を示す。なお、ユーザにより手動で登録されたローカルサービスの場合、登録時にユーザにより入力された情報が格納される。
情報処理端末530は、Webブラウザ750を介して、上述したようなサービステーブル800を参照することで、各サービス、ローカルサービスへIntentの処理要求を出すことが可能である。
図8(C)は、サーバ510のWebアプリケーション700が扱う画像データを管理するコンテンツ管理テーブル820の一例である。
コンテンツ管理テーブル820は、サーバ510内のHDD606で保持され、データベースサービス部705によって管理される。821はImageIDであり、Webアプリケーション700内で画像データを一意に識別するためのIDである。822はFileであり、画像データのファイル名を表している。サーバ510は、本テーブル参照することでコンテンツ管理部704により、画像データをHDD606から取得することが可能となる。
コンテンツ管理テーブル820は、サーバ510内のHDD606で保持され、データベースサービス部705によって管理される。821はImageIDであり、Webアプリケーション700内で画像データを一意に識別するためのIDである。822はFileであり、画像データのファイル名を表している。サーバ510は、本テーブル参照することでコンテンツ管理部704により、画像データをHDD606から取得することが可能となる。
図8(D)は、Web Intents設定の一例である。
831は設定IDであり、Webブラウザ750のサービス判定部756が判定条件を一意に決定するためのIDである。832はActionであり、サービス、ローカルサービスが提供する提供機能のカテゴリ(サービスがどのような機能、サービスを提供するか)を示す。833はTypeであり、Action832で扱えるデータなどの種類(データの形式)を示す。Typeの仕様は、RFC5322、RFC822、RFC2822のContent−Typeで表される。834はローカルサービスFlagであり、ローカルサービスFlag806と同じFlagを表す。
831は設定IDであり、Webブラウザ750のサービス判定部756が判定条件を一意に決定するためのIDである。832はActionであり、サービス、ローカルサービスが提供する提供機能のカテゴリ(サービスがどのような機能、サービスを提供するか)を示す。833はTypeであり、Action832で扱えるデータなどの種類(データの形式)を示す。Typeの仕様は、RFC5322、RFC822、RFC2822のContent−Typeで表される。834はローカルサービスFlagであり、ローカルサービスFlag806と同じFlagを表す。
サービステーブル800に、Action832、Type833、及びローカルサービスFlag834が一致するサービスが登録されている場合、サービス判定部756は、後述するローカルサービス探索処理836、ローカルサービス登録処理837、ローカルサービス更新処理838を設定に従って行う。
なお、Action832、Type833が同一の設定が複数登録されている場合は、サービス判定部756は、該Action832、Type833が同一の設定のうち、同一Action,Typeでの優先度835の優先順位が最も高い設定に基づいて、処理(探索、登録、更新)の実行の有無を判定する。即ち、同一Action,Typeでの優先度835の値は、同一のAction832,Type833の設定がWeb Intents設定830に複数登録されている場合に、どの設定を優先するかを示す。
836はローカルサービス探索処理であり、Action832、Type833、ローカルサービスFlag834が一致するサービスが、サービステーブル800に登録済みの場合に、ローカルサービス探索処理を行うか、行わないかを判定する設定を示す。837はローカルサービス登録処理であり、ローカルサービス探索処理を行った場合に、探索結果をサービステーブル800に登録するか、しないかを判定する設定を示す。838はローカルサービス更新処理であり、ローカルサービス探索処理を行わなかった場合に、ローカルサービスの拡張探索処理を行うか、行わないかを判定するための設定を示す。なお、ローカルサービス更新処理838の詳細は実施例2で説明する。
即ち、図8(D)に示すWeb Intents設定では、サービステーブル800へのローカルサービスの登録状態を上限として、"ローカルサービス探索を行う"又は"ローカルサービス探索を行わない"ことを設定可能である。また、Web Intents設定では、ローカルサービス探索を行う場合における、探索結果のサービステーブル800への登録の有無を設定可能である。さらに、Web Intents設定では、ローカルサービス探索を行わない場合における、ローカルサービスの状態を含むサービス拡張情報の更新処理の実行の有無を設定可能である。
これらWeb Intents設定の設定値は、全ての項目が含まれている必要は無い。設定値がある項目のみサービス判定部756での判定処理で利用される(後述する図13のS1305参照)。
なお、リクエストを処理可能なサービスがサービステーブル800に1つも登録されていない場合や、リクエストに対応するWeb Intents設定が存在しない場合には、サービス判定部756は、ローカルサービスを探索し、該探索されたローカルサービスを登録すると判定するものとする。
なお、リクエストを処理可能なサービスがサービステーブル800に1つも登録されていない場合や、リクエストに対応するWeb Intents設定が存在しない場合には、サービス判定部756は、ローカルサービスを探索し、該探索されたローカルサービスを登録すると判定するものとする。
以下、図9のシーケンス図を用いて、情報処理端末530がサーバ510により提供されるWebサイトにアクセスして、ローカルサーバ521により提供されるローカルサービスに、Intentの処理要求を仲介する動作について説明する。
図9は、実施例1におけるWeb Intentsを利用したサービス提供に関する動作の一例を示すシーケンス図である。なお、図9では、ローカルサービス(LAN)を探索し、処理を依頼するシーケンスのみを図示しているが、ローカルサービス(機器内サービス)についても同様である。
図9は、実施例1におけるWeb Intentsを利用したサービス提供に関する動作の一例を示すシーケンス図である。なお、図9では、ローカルサービス(LAN)を探索し、処理を依頼するシーケンスのみを図示しているが、ローカルサービス(機器内サービス)についても同様である。
情報処理端末530のWebブラウザ750は、S900で、サーバ520のWebアプリケーション730からRegistrationされたサービスを、サービス情報記憶部758に登録する。例えば、この時点のサービステーブル800を図8(B)に示した状態として以下を説明する。
情報処理端末530のWebブラウザ750は、アドレスバーなどにサーバ510(クライアント)のWebアプリケーション700のURLを入力する等のユーザ操作を受け付けることで、S901の処理を実行する。S901において、Webブラウザ750は、通信部751を介して、クライアント101として機能するサーバ510に、HTTPのリクエストメッセージとしてページの要求を送信する。
サーバ510のWebアプリケーション700は、情報処理端末530から送信された上記ページの要求を受信すると、S902の処理を実行する。S902において、サーバ510のWebアプリケーション700は、ページの作成を行う。S903において、サーバ510のWebアプリケーション700は、上記S902で作成したページを、情報処理端末530のWebブラウザ750へHTTPのレスポンスメッセージとして応答する(Invocation処理)。
情報処理端末530のWebブラウザ750は、サーバ510から応答された上記ページを受信すると、S904の処理を実行する。S904において、情報処理端末530のWebブラウザ750の表示部753は、上記受信したページを表示する。具体的には、解析部752が、上記ページに対応するHTML文書を解析し、表示部753がレンダリングすることで上記受信したページを表示する。ここで、S904で表示する画面について、図10を用いて説明する。
図10は、図9のS904で表示する画面を説明するための図である。
図10(A)は、S902でサーバ510のWebアプリケーション700によって作成され、S904で情報処理端末530のWebブラウザ750が表示するHTML内に記述されたECMAScriptの一例を示す。なお、図10(A)の内容は、図4で説明したものと同様のため、詳細な説明は省略する。
図10(A)は、S902でサーバ510のWebアプリケーション700によって作成され、S904で情報処理端末530のWebブラウザ750が表示するHTML内に記述されたECMAScriptの一例を示す。なお、図10(A)の内容は、図4で説明したものと同様のため、詳細な説明は省略する。
図10(B)は、S904で情報処理端末530のWebブラウザ750が表示する画面の一例を示す。
画面1000は、Webブラウザ750の表示部753が表示する画面である。1001〜1002は"image001.png"〜"image002.png"の画像データであり、1003〜1004はこれらの画像を選択するためのラジオボタンである。
画面1000は、Webブラウザ750の表示部753が表示する画面である。1001〜1002は"image001.png"〜"image002.png"の画像データであり、1003〜1004はこれらの画像を選択するためのラジオボタンである。
1005は「印刷する」ボタンであり、ラジオボタン1003〜1004で選択されている画像データを、サービスへ渡し印刷するためのボタンである。ここでは、「印刷する」ボタン1005には、HTML内のID「Print―photo」が割り当てられているものとする。情報処理端末530のWebブラウザ750は、「印刷する」ボタン1005が押下されたことを検知すると、図10(A)のECMAScriptを実行する。
以下、図9のシーケンス図の説明に戻る。
上記S904で表示された画面において、ユーザにより「印刷する」ボタン1005(図10(B))が押下されたことを検知すると、UA106である情報処理端末530のWebブラウザ750は、S905の処理を実行する。S905において、情報処理端末530のWebブラウザ750は、表示部753に表示するサービスの探索実行判定処理を行う。
上記S904で表示された画面において、ユーザにより「印刷する」ボタン1005(図10(B))が押下されたことを検知すると、UA106である情報処理端末530のWebブラウザ750は、S905の処理を実行する。S905において、情報処理端末530のWebブラウザ750は、表示部753に表示するサービスの探索実行判定処理を行う。
サービスの探索実行判定処理では、まず、情報処理端末530のWebブラウザ750は、サービステーブル800(ここでは図8(B)の状態)内の登録済みのサービスと、Web Intents設定(例えば図8(D))を参照し、表示部753に一覧表示する、上記押下された「印刷する」ボタン1005に対応するActionの処理が可能なローカルサービスを探索するか否かを判定する。このS905の処理は、「印刷」などS904で指定されたWeb IntentsのActionの処理が可能なサービスの探索を行うか否かを判定するためのものである。ここで、図13を参照して、S905の処理を含む情報処理端末530のWebブラウザ750の処理について詳細に説明する。
図13は、実施例1におけるUA106である情報処理端末530のWebブラウザ750の処理の一例を示すフローチャートである。この処理は、情報処理端末530のWebブラウザ750が実行する処理に対応し、図9のS904で指定されたWeb IntentsのActionの処理が可能なサービスを探索して表示するための処理を含む。
S1301において、情報処理端末530のWebブラウザ750は、クライアント101としてのサーバ510のWebアプリケーション700が図9のS902で作成し、S903で応答したページ情報を、HTTPのレスポンスメッセージとして受信する。さらに、情報処理端末530のWebブラウザ750は、解析部752で受信データを解析し、Web IntentsリクエストのEMCAScriptを含むデータをスクリプト処理部757で処理する。
次に、S1302において、情報処理端末530のWebブラウザ750は、上記S1301で取得したHTMLを表示部753に表示する(図9のS904に対応)。
次に、S1303において、情報処理端末530のWebブラウザ750は、上記S1302で表示部753に表示した画面から、ユーザによるWeb Intentsリクエストの発行指示の受信を待つ。例えば、Web Intentsリクエストの発行指示は、本実施例では、画像ファイルType803が「png」の「image001.png」が選択され、「印刷する」ボタン1005が押下されたことにより発行されるものとする。
次に、S1303において、情報処理端末530のWebブラウザ750は、上記S1302で表示部753に表示した画面から、ユーザによるWeb Intentsリクエストの発行指示の受信を待つ。例えば、Web Intentsリクエストの発行指示は、本実施例では、画像ファイルType803が「png」の「image001.png」が選択され、「印刷する」ボタン1005が押下されたことにより発行されるものとする。
そして、上記S1303において、Web Intentsリクエストの発行指示を受信したと判定した場合(S1303でYesの場合)、情報処理端末530のWebブラウザ750は、S1304に処理を進める。
S1304では、情報処理端末530のWebブラウザ750は、サービス情報管理部755を経由して、サービス情報記憶部758からサービステーブル800(Web Intentsリスト)および、Web Intents設定830を取得する。ここでは、例えば、サービステーブル800を図8(B)、Web Intents設定を図8の830に示した設定として説明する。
Web Intents設定としては、Action802やType803、及びローカルサービスFlag806が「On」のサービスの登録に応じて、探索を行うか否かを判断するための情報を含む。図8(D)に示す例では、Action802=「print」については、ローカルサービスFlagが「ON」のサービスを優先する設定(優先順位を高くする設定)となっている。また、Action802=「Share」については、ローカルサービスFlag806による判断は行わない設定となっている。
すなわち、図8(D)に示す例では、Action802が「print」の設定の場合、従来のWeb IntentsのRegistrationがなされたサービス(図9のS900のように登録されたサービス)よりも、ローカルサービスFlagが「On」のサービス(探索されたサービス)を優先的に利用する設定である。また、サービステーブル800に、ローカルサービスFlagがON設定されたサービスが存在せず、且つ、従来のサーバからRegistrationされたサービスが存在する場合は、探索処理を行う設定である。また、Action802=「Share」については、ローカルサービスFlagの優先設定がされていないために、サービステーブル800に、従来のサーバからRegistrationされたサービスが存在する場合は探索処理を行わない設定である。また、Action802が「print」、「Share」以外の設定はないため、「print」、「Share」以外の場合(例えば「Edit」、「Save」等)、探索処理を行う設定である。
S1305において、情報処理端末530のWebブラウザ750は、上記S1303で受信したWeb Intentsリクエストの発行指示、及び、上記S1304で取得したサービステーブル800、Web Intents設定に基づいて、探索(ローカルサービス探索処理)を行うか否かを判定する。
以下、S1305の判定について具体例を用いて説明する。
まず、情報処理端末530のWebブラウザ750のサービス判定部756は、登録済みのWeb Intentsに、リクエストされたActionの処理が可能なサービスが存在するか否かを判定する。この判定では、サーバ510からのリクエストのデータTypeおよびActionを処理できるサービスが存在するか否かを判定する。
まず、情報処理端末530のWebブラウザ750のサービス判定部756は、登録済みのWeb Intentsに、リクエストされたActionの処理が可能なサービスが存在するか否かを判定する。この判定では、サーバ510からのリクエストのデータTypeおよびActionを処理できるサービスが存在するか否かを判定する。
ここでは、画像ファイルType803がpngの「image001.png」が選択され、「印刷する」ボタン1005が押下された場合を例に具体的に説明する。ここでサービステーブル800(図8(B)の状態とする)に登録されているサービスは、ServiceID801="1"のサービスのみである。ServiceID801="1"はAction802="print"且つType803="image/*"であるため、リクエストされたActionを処理できるサービスと判定される。なお、このサービスは、ローカルサービスFlag806≠"ON"のため、従来のサーバからRegistrationされたサービスとなる。一方、Web Intents設定では、設定ID831="1"の設定がAction832="print"、Type833="image/*"、ローカルサービスFlag834≠"ON"のため、上記ServiceID801="1"のサービスと一致する。設定ID831="1"の設定は、ローカルサービス探索処理836="ローカルサービス探索を行う"、且つ、ローカルサービス登録処理837="ローカルサービスを登録する"の設定である。よって、この場合、サービス判定部756は、ローカルサービスを探索し、該探索されたローカルサービスを登録すると判定する。
上記S1305において、探索を行うと判定した場合(S1305でYesの場合)、情報処理端末530のWebブラウザ750は、S1306に処理を進める。S1306では、情報処理端末530のWebブラウザ750は、探索部759により、探索を実行する(図9のS906に対応)。上述の例では、Action="print"でTypeが"png"を含むローカルサービスを探索する。これにより、例えば、ローカルサーバ521が提供するローカルサービス(LAN)等が探索される。
探索部759が探索処理の際に送信する探索要求パケット例を図11(A)に示す。
図11(A)は、探索要求パケットを例示する図である。
上記S1306の探索の結果、例えば、ローカルサーバ(プリンタ)521が提供するローカルサービス(LAN)や、情報処理端末530内のローカルサービス(機器内サービス)等が探索応答する(S907、S908)。
図11(A)は、探索要求パケットを例示する図である。
上記S1306の探索の結果、例えば、ローカルサーバ(プリンタ)521が提供するローカルサービス(LAN)や、情報処理端末530内のローカルサービス(機器内サービス)等が探索応答する(S907、S908)。
探索要求パケットに対する探索応答パケット例を図11(B)に示す。
図11(B)は、探索応答パケットを例示する図である。
本実施例では、SSDPのマルチキャスト探索例を示したが、他の探索パケットにおいても上述の探索処理は実現可能である。
図11(B)は、探索応答パケットを例示する図である。
本実施例では、SSDPのマルチキャスト探索例を示したが、他の探索パケットにおいても上述の探索処理は実現可能である。
なお、サービスの探索処理では、Action、Typeを指定することなく探索を行い、応答のあったサービスに対して、Action、Type等のWeb Intentsの機能情報でフィルタリングして、所望のAction、Typeを処理可能なサービスを探索する構成でもよいし、初めからAction、Typeを指定して探索を行ってもよい。また、探索されたサービスに対してサービス拡張情報807を要求して取得する構成でもよいし、探索応答パケットにサービス拡張情報807が含まれていてもよい。さらに、探索応答パケットにはWeb Intentsの機能情報が含まず、応答のあったサービスに対して、Web Intentsの機能情報を要求し、Action、Type等を含むWeb Intentsの機能情報を取得するように構成してもよい。
上記S1306の探索処理の後、S1307において、情報処理端末530のWebブラウザ750は、探索されたサービスの情報をサービステーブル800に保存する登録処理を行う。この登録処理では、探索結果としてローカルサービスFlag806も合わせて保存する。この際、LAN508内のサービスについてはローカルサービスFlag806に"ON(LAN)"、localhostのサービスについてはローカルサービスFlag806に"ON(機器内サービス)"と登録するものとする。なお、登録処理の際、既にサービステーブル800に登録されているが、上記S1306の探索で発見されなかったローカルサービスについては、サービステーブル800から削除するものとする。
なお、図13には示していないが、上記S1305の判定で用いたWeb Intents設定においてローカルサービス登録処理837="ローカルサービスを登録しない"と設定されていた場合には、S1307の処理をスキップしてS1308に処理を進めるものとする。
ここで、図14を用いて、上記S1307の登録処理について説明する。
図14は、Web Intents設定830のローカルサービス登録処理におけるUI画面を例示する図である。
サービス判定部756が探索されたローカルサービスを登録すると判定した場合、のWebブラウザ750は、Web Intents設定ダイアログ1401を表示する。ここでは、Web IntentsのActionとして"Print"の例を示し、プリンタ設定ダイアログを示す。Web Intents設定ダイアログ1401には、探索されたローカルサービスが表示される。図14の例では、ローカルサービス探索処理の結果、3台のプリンタ(ローカルサービス)が探索された場合を示している。
図14は、Web Intents設定830のローカルサービス登録処理におけるUI画面を例示する図である。
サービス判定部756が探索されたローカルサービスを登録すると判定した場合、のWebブラウザ750は、Web Intents設定ダイアログ1401を表示する。ここでは、Web IntentsのActionとして"Print"の例を示し、プリンタ設定ダイアログを示す。Web Intents設定ダイアログ1401には、探索されたローカルサービスが表示される。図14の例では、ローカルサービス探索処理の結果、3台のプリンタ(ローカルサービス)が探索された場合を示している。
1402はWeb Intents設定メニューである。図14に示す例では、"MyPrinter"に対して"Web Intentsへ登録"を選択することで、MyPrinter"の機能情報をサービス情報記憶部758(サービステーブル800)に登録する場合を示している。
なお、探索による登録以外でも、ユーザが明示的にWeb Intents設定ダイアログ1401を使用して、ローカルサービスの登録や設定変更を行うことが可能である。
例えば、Web Intents設定ダイアログ1401から"ネットワークデバイスの追加"等を行い、該追加したネットワークデバイスが提供するサービスを、Web Intents設定メニュー1402から、Web Intentsに登録することができる。この場合、登録されたローカルサービスは、図8(A)のServiceID801が"3"のように、ローカルサービスFlag806="ON(マニュアル設定サービス)"のように登録される。
例えば、Web Intents設定ダイアログ1401から"ネットワークデバイスの追加"等を行い、該追加したネットワークデバイスが提供するサービスを、Web Intents設定メニュー1402から、Web Intentsに登録することができる。この場合、登録されたローカルサービスは、図8(A)のServiceID801が"3"のように、ローカルサービスFlag806="ON(マニュアル設定サービス)"のように登録される。
上述したローカルサービスの探索処理では、LAN508上の不特定のローカルサービスを検出する必要があるために、マルチキャスト探索を行う。マルチキャスト探索では、マルチキャストパケット(例えば図11(A))で指定したLAN508上の探索要求に応答できるローカルサービス全てが応答を返信する(例えば図11(B))。このため、ユーザが利用を希望しない不要なローカルサービスが存在する場合は、不要なサービスが探索される。探索されたサービスを全て登録してしまうと不要なサービスがサービス情報記憶部758に保存されてしまう可能性がある。しかし、図14に示したようなUIでユーザが明示的に登録指示を行うことで、ユーザが所望のサービスを選択的にサービス情報記憶部758へ登録することが可能となる。
以下、図13のフローチャートの説明に戻る。
上記S1307の登録処理後のサービステーブルの状態を、例えば図8(A)に示した状態として以下を説明する。
上記S1307の登録処理後、情報処理端末530のWebブラウザ750は、S1308に処理を進める
また、上記S1305において、探索を行わないと判定した場合(S1305でNoの場合)、情報処理端末530のWebブラウザ750は、そのままS1308に処理を進める。
上記S1307の登録処理後のサービステーブルの状態を、例えば図8(A)に示した状態として以下を説明する。
上記S1307の登録処理後、情報処理端末530のWebブラウザ750は、S1308に処理を進める
また、上記S1305において、探索を行わないと判定した場合(S1305でNoの場合)、情報処理端末530のWebブラウザ750は、そのままS1308に処理を進める。
S1308では、情報処理端末530のWebブラウザ750は、サービスのリスト(サービス一覧)を作成する。詳細には、Webブラウザ750は、サービステーブルに基づいて、リクエストとAction,Typeが一致するサービスのリストを作成し(S909)、該作成したサービスのリストを表示する(S910)。ここで、表示されるサービスのリスト(一覧)は、探索の結果に従い更新されたものである。例えば、Webブラウザ750は、探索の結果、サービステーブル800から機能情報の登録が削除されたサービスについては、一覧に含まないように作成、表示する。また、探索の結果、サービス拡張情報807(即ち、サービスの状態)からサービスを提供できない状態のサービスについても、一覧に含まないように作成、表示するものとする。
図12は、実施例1におけるWebブラウザ750で表示するサービスリストを例示する図である。
1200は、「印刷する」ボタン1005(図10)が押下されることで、情報処理端末530のWebブラウザ750が表示するポップアップ画面例である。1201は、ユーザが行ったリクエスト(ここでは「印刷する」ボタン1005押下)に対応するサービスのリスト(一覧)である。
1200は、「印刷する」ボタン1005(図10)が押下されることで、情報処理端末530のWebブラウザ750が表示するポップアップ画面例である。1201は、ユーザが行ったリクエスト(ここでは「印刷する」ボタン1005押下)に対応するサービスのリスト(一覧)である。
サービスのリスト1201からユーザがいずれかのサービスを選択すると、Webブラウザ750は、S1309に処理を遷移する。
S1309では、Webブラウザ750は、ユーザが選択したサービスを特定し、サービス情報記憶部758からサーバビスの情報を取得する。
次に、S1310において、Webブラウザ750のスクリプト処理部757は、Web Intentsリクエストを作成する。
さらに、S1311において、スクリプト処理部757は、対象のWeb Intentsサービスにリクエストを発行する。
S1309では、Webブラウザ750は、ユーザが選択したサービスを特定し、サービス情報記憶部758からサーバビスの情報を取得する。
次に、S1310において、Webブラウザ750のスクリプト処理部757は、Web Intentsリクエストを作成する。
さらに、S1311において、スクリプト処理部757は、対象のWeb Intentsサービスにリクエストを発行する。
上記S1310、S1311について、図9を用いてより具体的に説明する。
まず、情報処理端末530のWebブラウザ750の解析部752は、通信部751を介して、サーバ510に対して画像データの取得要求をHTTPリクエストメッセージとして送信する。なお、これはECMAScript図10(A)内の無名関数内で呼び出しているgetImageFrom()関数を実行することで実現する。例えば、図10に示したUI1000でラジオボタン1003が選択されていれば、"image001.png"の取得要求を行う。本実施例では、サーバ510に対して取得要求を行っているが、取得要求を行わずに、既にWebブラウザ750が取得しているHTML文書内の画像データを使用するように構成してもよい。
まず、情報処理端末530のWebブラウザ750の解析部752は、通信部751を介して、サーバ510に対して画像データの取得要求をHTTPリクエストメッセージとして送信する。なお、これはECMAScript図10(A)内の無名関数内で呼び出しているgetImageFrom()関数を実行することで実現する。例えば、図10に示したUI1000でラジオボタン1003が選択されていれば、"image001.png"の取得要求を行う。本実施例では、サーバ510に対して取得要求を行っているが、取得要求を行わずに、既にWebブラウザ750が取得しているHTML文書内の画像データを使用するように構成してもよい。
上記S911の取得要求に応じて、サーバ510のコンテンツ管理部704は、S912において、データベースサービス部705のコンテンツ管理テーブル820から、上記S911の処理ステップで受信した画像データの取得要求で指定された画像データを取得する。例えば、画像データの取得要求で指定された画像データのファイル名が"image001.png"であれば、コンテンツ管理テーブル820の最初のレコードの画像データを取得する。
次に、S913において、サーバ510のプレゼンテーション部703は、通信部701を介して、S912の処理ステップで取得した画像データをHTTPレスポンスメッセージとして、情報処理端末530に送信する。そして、情報処理端末530のWebブラウザ750は、上記S912で送信されたメッセージを受信し、S914に処理を進める。
S914では、情報処理端末530のスクリプト処理部757は、Web Intentsリクエストを作成し、例えば、ローカルサーバ(プリンタ)521が提供するローカルサービス(LAN)の呼び出し処理を行う。この処理では、上記S913で取得した"image001.png"をローカルサービス(LAN)の呼び出しパラメータとして利用する。そして、S915において、情報処理端末530のWebブラウザ750は、上記S910で表示し、ユーザに選択されたサービスへ要求を送信する。例えば、ローカルサーバ521のWebアプリケーション740に対して要求を送信する。
上記S915の要求に応じて、ローカルサーバ521のWebアプリケーション740のIntent処理部742は、S916において、上記S915で受信した要求からIntentオブジェクトを取り出して解析する。続けて、解析したIntentの処理を開始する。例えば、ローカルサーバ521のWebアプリケーション740は、情報処理端末530のWebブラウザ750を介してユーザと相互作用しながら、Intentオブジェクトに含まれる画像データを印刷する「Print」サービスを提供する。例えば、ローカルサーバ521のWebアプリケーション740は、画像データのファイル名の入力と保存する操作を受け付けるためのHTML文書を作成し、情報処理端末530に送信する。情報処理端末530のWebブラウザ750は、HTML文書を受信し、UIを表示する。そして、情報処理端末530のWebブラウザ750は、ユーザによる"Print"操作を検知すると、ローカルサーバ521のWebアプリケーション740に、画像データの印刷要求を送信する。ローカルサーバ521のWebアプリケーション740は、画像データの印刷要求を受信すると、コンテンツ処理部734がデータベースサービス部735のコンテンツ管理テーブル820に、ユーザに指定された画像データを印刷する。
ローカルサーバ521のWebアプリケーション740は、Intentの処理が終了すると、S917において、処理結果をサーバ510に伝えるECMAScriptを含む応答を返す。
S918において、情報処理端末530のWebブラウザ750は、上記S917の応答中に含まれるECMAScriptを実行し、上記S904で表示したページに含まれるstartActivety()関数の引数で指定されたコールバック関数を呼び出す。例えば、ECMAScriptが図10(A)であれば、コールバック関数onSuccess()を実行する。
S918において、情報処理端末530のWebブラウザ750は、上記S917の応答中に含まれるECMAScriptを実行し、上記S904で表示したページに含まれるstartActivety()関数の引数で指定されたコールバック関数を呼び出す。例えば、ECMAScriptが図10(A)であれば、コールバック関数onSuccess()を実行する。
次に、S919において、情報処理端末530のWebブラウザ750はコールバック関数によってサーバ510のWebアプリケーション700へWeb Intents処理結果を返す。
上記S919で返送されたWeb Intents処理結果を受信すると、サーバ510のWebアプリケーション700のプレゼンテーション部703は、S920において、Intentの処理が終了したことを通知するためのページである終了ページをHTML文書で作成する。さらに、S921において、サーバ510のWebアプリケーション700のプレゼンテーション部703は、通信部701を介して、上記S920で作成した終了ページを情報処理端末530に送信する。
S922において、情報処理端末530のWebブラウザ750は、上記S921で受信したWeb Intents処理の終了ページを表示する。
S922において、情報処理端末530のWebブラウザ750は、上記S921で受信したWeb Intents処理の終了ページを表示する。
以上示したS900〜S922のステップを行うと、ローカルWeb Intentsの探索結果がサービス情報記憶部758に保存される。例えば、この時点のサービステーブル800を図8(A)に示した状態として以下を説明する。
上記S907の探索応答処理により、ローカルサーバ521が提供するローカルサービス(LAN)の情報が、例えば、図8(A)のServiceID801が"2"の行に"LBP−100 Print Service"記録される。また同様に探索応答処理により、ServiceID801が"3"で示される情報処理端末530の機器内で提供される"Print to File Service"が登録される。なお、図9のS906〜S907では、ローカルサービス(LAN)の探索・応答のみを図示しているが、ローカルサービス(機器内サービス)についても同様である。さらに、ServiceID801が"4"で示される手動でアドレスなどのWeb Intents情報が入力された"LBP−300 Print Service(手動入力)"が登録される。この状態で、情報処理端末530のWebブラウザ750は、アドレスバーなどにサーバ510(クライアント)のWebアプリケーション700のURLを入力する等のユーザ操作を受け付けることで、以降の処理を開始する。
本実施例では、Webアプリケーション730のURLの例を示すが、上記S901と同様のURLである必要はない。Webアプリケーション730以外のURLを指定しても、情報処理端末530のWebブラウザ750において、次のステップに続くWeb IntentsのInvocation処理が行えれば良い。
S923において、Webブラウザ750は、通信部751を介してサーバ510にHTTPのリクエストメッセージとしてページの要求を送信する(上記S901と同様)。
サーバ510のWebアプリケーション700は、情報処理端末530から送信された上記ページの要求を受信すると、S924の処理を実行する。S924において、サーバ510のWebアプリケーション700は、ページの作成を行う(上記S902と同様)。S925において、サーバ510のWebアプリケーション700は、上記S924で作成したページを、情報処理端末530のWebブラウザ750へHTTPのレスポンスメッセージとして応答する(Invocation処理)(上記S903と同様)。
サーバ510のWebアプリケーション700は、情報処理端末530から送信された上記ページの要求を受信すると、S924の処理を実行する。S924において、サーバ510のWebアプリケーション700は、ページの作成を行う(上記S902と同様)。S925において、サーバ510のWebアプリケーション700は、上記S924で作成したページを、情報処理端末530のWebブラウザ750へHTTPのレスポンスメッセージとして応答する(Invocation処理)(上記S903と同様)。
情報処理端末530のWebブラウザ750は、サーバ510から応答された上記ページを受信すると、S926の処理を実行する。S926において、情報処理端末530のWebブラウザ750の表示部753は、上記受信したページを表示する(上記S904と同様)。具体的には、解析部752が、上記ページに対応するHTML文書を解析し、表示部753がレンダリングすることで上記受信したページを表示する。
上記S926で表示された画面において、ユーザにより「印刷する」ボタンが押下されたことを検知すると、UA106である情報処理端末530のWebブラウザ750は、S927の処理を実行する。S927において、情報処理端末530のWebブラウザ750は、表示部753に表示するサービスの探索実行判定処理を行う。
S927の処理は、「印刷」などS926で指定されたWeb IntentsのActionの処理が可能なサービスの探索を行うか否かを判定するためのものである。具体的には、情報処理端末530のWebブラウザ750は、サービス情報記憶部758からサービステーブル800および、Web Intents設定830を取得する(図13のS1304)。続いて、情報処理端末530のWebブラウザ750は、S1303で受信したWeb Intentsリクエストの発行指示、及び、上記S1304で取得したサービステーブル800、Web Intents設定に基づいて、探索(ローカルサービス探索処理)を行うか否かを判定する。S927の場合、上記S906〜S908で探索されたローカルサービスが、ServiceID801の"2"に既に登録されている。よって、サービス判定部756は、Action802が"Print"でTypeが"image/*"のデータを処理する場合、設定ID831が"2"の設定でローカルサービス探索処理の判定を行う。設定ID831が"2"のローカルサービス探索処理836="ローカルサービス探索を行わない"であるため、探索は行わないと判定される。このため、ローカルサービス探索を行わず、サービス情報管理部755は、S928において、サービス情報記憶部758に登録済みのサービスからサービス一覧を作成し、表示する(図13のS1308)。
S928以降の処理は、上述したS910〜S922と同様のステップで処理を実現できる。以上のように、既に探索済みのローカルサービスが、探索情報と共にサービス情報記憶部758に記録されることで、不要な探索を行わないでローカルサービスを利用できるようになる。
上述したように、本実施例では、情報処理端末530のWebブラウザ750が、従来からのWeb IntentsのRegistrationされたUAに保存、管理されているサービスと、探索されたローカルサービスとを識別(区別)して管理する。
また、Web IntentsのInvocation受信時に毎回ローカルサービスの探索を行わず、Web Intents設定に基づいて、以前に登録したローカルサービスを利用する構成を説明した。この構成により、Invocation受信毎に探索が行われてユーザの不要なサービスが登録されてしまうことを防止でき、ユーザは自分の利用したいサービスを見つけやすくなる。また、探索によるネットワークトラフィックの増加を抑えることができる。
このように本実施例によれば、ローカルサービスを利用する時に、最適なローカルサービスの探索制御を行うことができ、不要な探索の繰り返しや、利用できないサービスの登録/表示を抑制し、ユーザに最適なサービス一覧を提供することが可能となる。このように、インターネット上のサービス及びローカルサービス等のネットワーク機器が提供する各種サービスを、ユーザが容易に選択・利用することを可能にできるサービス実行環境を構築可能となる。
実施例1では、情報処理端末530のWebブラウザ750がリクエストを処理可能なサービスがサービス情報記憶部758に存在する場合、Web Intents設定(特にローカルサービス探索処理836の設定)に応じて、ローカルサービス探索の実行の有無を制御する構成について説明した。
実施例2では、情報処理端末530のWebブラウザ750がローカルサービス探索を行わない場合に、Web Intents設定(特にローカルサービス更新処理838の設定)に応じて、登録済みのローカルサービスを更新する構成について説明する。なお、実施例1と同等の構成や処理については説明を省略する。
以下、図15のシーケンス図、および、図17のフローチャートを用いて、情報処理端末530のWebブラウザ750がローカルサービス探索を行わない場合に、登録済みのローカルサービスを更新する処理について説明する。
図15は、実施例2におけるWeb Intentsを利用したサービス提供に関する動作の一例を示すシーケンス図である。なお、図15では、ローカルサービス(LAN)の拡張情報を更新するシーケンスのみを図示しているが、ローカルサービス(機器内サービス)についても同様である。また、図9と同一のステップには同一のステップ番号を付してある。
図17は、実施例2におけるUA106である情報処理端末530のWebブラウザ750の処理の一例を示すフローチャートである。なお、図13と同一のステップには同一のステップ番号を付してある。
S1306において、情報処理端末530のWebブラウザ750は、探索部759により、探索を実行する(S906に対応)。上述の例では、Action="print"でTypeが"png"を含むローカルサービスを探索する。これにより、例えば、ローカルサーバ521が提供するローカルサービス(LAN)等が探索される。具体的には、探索部759が送信を行う探索要求パケット例を図11(A)に示す。この実施例では、SSDPのマルチキャスト探索例を示す。この結果、例えば、ローカルサーバ(プリンタ)521が提供するローカルサービス(LAN)や、情報処理端末530内のローカルサービス(機器内サービス)等が探索応答する(S907、S908)。探索応答パケット例を図11(B)に示す。
上記S1306の探索処理の後、S1307において、情報処理端末530のWebブラウザ750は、探索されたサービスの情報をサービステーブル800に保存する登録処理を行う。この登録処理では、探索結果としてローカルサービスFlag806も合わせて保存する。この際、LAN508内のサービスについてはローカルサービスFlag806に"ON(LAN)"、localhostのサービスについてはローカルサービスFlag806に"ON(機器内サービス)"と登録するものとする。上記S1307の登録処理後のサービステーブルの状態を、例えば図8(A)に示した状態として以下を説明する。なお、S909〜S922の説明は省略する。
続いて、この状態で、S923以降の処理を行う。
S923において、Webブラウザ750は、通信部751を介してサーバ510にHTTPのリクエストメッセージとしてページの要求を送信する(上記S901と同様)。なお、S924〜S926の説明は省略する。
その後、上記S926で表示された画面において、ユーザは「印刷する」ボタンを押下し、サービス情報記憶部758に記憶されている登録済みサービスを一覧から選択することが可能となる。
S923において、Webブラウザ750は、通信部751を介してサーバ510にHTTPのリクエストメッセージとしてページの要求を送信する(上記S901と同様)。なお、S924〜S926の説明は省略する。
その後、上記S926で表示された画面において、ユーザは「印刷する」ボタンを押下し、サービス情報記憶部758に記憶されている登録済みサービスを一覧から選択することが可能となる。
しかし、ローカルサービスは、Internet505を介して提供されているサービスと違い、サービスの提供状態が登録時から変わっている可能性がある。例えば、ローカルサーバ521(プリンタ)が提供するローカルサービス(LAN)を提供できない場合がある。例えば、ローカルサーバ521(プリンタ)の電源がOFFであるために通信エラーになる場合や、ローカルサーバ521(プリンタ)において、トナーやインク、紙などの消耗品が不足して印刷ができない等、サービスが提供できない場合がある。このように、ローカルサービスがサービス情報記憶部758に記憶されている場合、利用できないサービスをユーザが選択してしまう可能性がある。
しかし、Invocationを受信した際に毎回、ローカルサービスの探索処理を行うと、環境によっては、ユーザの利用しない複数のローカルサービスが発見され、このようなサービスが一覧に含まれてしまい、ユーザが所望のサービスを選択し辛くなる可能性がある。本実施例では、ローカルサービスFlag834を利用することで、効率的にサービス情報記憶部758に記憶されているローカルサービスの状態を更新することが可能となる。
S927において、情報処理端末530のWebブラウザ750は、サービス情報記憶部758からサービステーブル800および、Web Intents設定830に基づいて、探索(ローカルサービス探索処理)を行うか否かを判定する。S927の場合、上記S906〜S908で探索されたローカルサービスが、ServiceID801の"2"に既に登録されている。よって、サービス判定部756は、Action802が"Print"でTypeが"image/*"のデータを処理する場合、設定ID831が"2"の設定でローカルサービス探索処理の判定を行う。設定ID831が"2"のローカルサービス探索処理836="ローカルサービス探索を行わない"であるため、探索は行わないと判定される。しかし、設定ID831が"2"のローカルサービス更新処理838="ローカルサービス情報更新する"設定のため、情報処理端末530のWebブラウザ750は、ローカルサービス探索を行わず、ローカルサービス更新処理のみ行うと判定する。
S1701において、情報処理端末530のWebブラウザ750は、登録済みのWeb Intentsサービスの更新を行う。このローカルサービス更新処理は、上述したSSDPのマルチキャスト探索によるローカルサービス探索処理とは異なり、サービス情報記憶部758に記憶されているサービスへのユニキャスト情報取得により、登録済みのローカルサービスの状態のみを更新することが可能となる。
なお、図17には示していないが、上記S1305の判定で用いたWeb Intents設定においてローカルサービス更新処理838="ローカルサービス情報更新しない"と設定されていた場合には、S1701の処理をスキップしてS1308に処理を進めるものとする。
以下、ローカルサービス更新処理(S1701)について具体的に説明する。
まず、S1501において、Webブラウザ750は、サービス情報記憶部758に記憶されているローカルサービス(ローカルサービスFlag=806"ON"のサービス)のhref804アドレスへ、HTMLのGetリクエスト(不図示)を送信する。
まず、S1501において、Webブラウザ750は、サービス情報記憶部758に記憶されているローカルサービス(ローカルサービスFlag=806"ON"のサービス)のhref804アドレスへ、HTMLのGetリクエスト(不図示)を送信する。
上記S1501のリクエストに応じて、ローカルサーバ521のWebアプリケーション740は、S1502において、HTMLのGetリクエストの返信データを作成する。続いて、S1503において、ローカルサーバ521のWebアプリケーション740は、Webブラウザ750に対して、Web Intentsの登録用マークアップに、Web Intents拡張情報を含んだ応答を返信する。この返信の例を図16に示す。
図16(A)は、ローカルサーバ521のWebアプリケーション740が返信する、Web Intents拡張情報に、機器の状態「state="Ready"」を含んだ応答パケット例に対応する。
図16(B)は、ローカルサーバ521のWebアプリケーション740が返信する、Web Intents拡張情報に、Type803の異なる複数のサービスの状態を含んだ応答パケット例に対応する。なお、図16(B)では、Type803が異なる複数のサービスの状態を含んだ応答パケット例を示したが、Action802が異なる複数のサービスの状態を含んだ場合などにも同様に適用できる。
また、応答パケットに、拡張情報として、動的に変動する可能性がある消耗品情報等を含めることも可能であり、これらの動的情報を元にサービス判定部756がサービスの状態を判定することができる。例えば、「State=A4−paperlow」などの消耗品情報等を含めることも可能であり、そのサービスを提供するプリンタに収納されたA4用紙の残量が少なくなっていることを判定できる。
Webブラウザ750のサービス情報管理部755は、ローカルサービスからの応答結果に基づいて、サービス情報記憶部758(サービステーブル800)に登録されているサービスの情報を更新する。なお、応答パケットを受け取る前にタイムアウトしたサービスについては、サービス情報記憶部758(サービステーブル800)から削除するものとする。続いて、S1308において、情報処理端末530のWebブラウザ750は、サービスのリスト(サービス一覧)を作成し表示する(S928)。ここで、表示されるサービスのリスト(一覧)は、更新処理(S1701)の結果に従い更新されたものである。例えば、Webブラウザ750は、更新処理の結果、サービステーブル800から機能情報の登録が削除されたサービスについては、一覧に含まないように作成、表示する。また、更新処理の結果、サービス拡張情報807(即ち、サービスの状態)からサービスを提供できない状態のサービスについても、一覧に含まないように作成、表示するものとする。
以降の処理は、実施例1と同様なため省略する。
以降の処理は、実施例1と同様なため省略する。
なお、ここでは、サービステーブル800のServiceID801="2"のサービスに対して、S1501でWebブラウザ750が送信したHTTPリクエストがタイムアウトした場合の例を示す。この場合、ローカルサーバ521のWebアプリケーション740は、S1503の返信処理を行わないため、Webブラウザ750のサービス判定部756は、サービス情報記憶部758(サービステーブル800)に記憶されているServiceID801="2"の情報を図18(A)に示すように更新する。
図18は、図17のS1701の登録済みサービスの更新後のサービステーブル800を例示する図である。
図18(A)に示す例では、ServiceID801="2"のローカルサービスから応答がなかったため、該ローカルサービスが存在しなくなったと判定され、削除されている。
図18(A)に示す例では、ServiceID801="2"のローカルサービスから応答がなかったため、該ローカルサービスが存在しなくなったと判定され、削除されている。
また別の例として、サービステーブル800のServiceID801="2"のサービスが、Web Intents拡張情報として「State=A4−paperlow,colorprint」を含む応答パケットを返した場合の例を示す。この場合、Webブラウザ750のサービス判定部756は、サービス情報記憶部758(サービステーブル800)に記憶されているServiceID801="2"の情報を図18(B)に示すように更新する。
図18(B)に示す例では、ServiceID801="2"のローカルサービスのサービス拡張情報(extend)807が"State=A4−paperlow,colorprint"のように更新されている。
図19は、実施例2におけるWebブラウザ750で表示するサービスリストを例示する図である。なお、図12と同一のものには同一の符号を付してある。
図19では、ローカルサービスのサービス情報をサービス情報記憶部758(サービステーブル800)に登録する場合に、Web Intents情報の登録UIを表示しないで自動で更新を行う設定UI例を示す。
図19では、ローカルサービスのサービス情報をサービス情報記憶部758(サービステーブル800)に登録する場合に、Web Intents情報の登録UIを表示しないで自動で更新を行う設定UI例を示す。
1901は、「ローカルサービスの更新を自動で行う」ためのチェックボックスを示す。このチェックボックスが設定されている(チェックされている)場合、サービス情報更新時に、ユーザに通知を表示しないで更新を行う。
具体的には、S1701で情報処理端末530のWebブラウザ750は、登録済みのWeb Intentsサービスの更新を行う場合に、S1503で受信したWeb Intents拡張情報を、サービス情報記憶部758(サービステーブル800)に登録する時に、ユーザに登録する情報の確認表示は行わず登録する。このため、ユーザは、更新の度に確認表示が表示されなくなり情報更新時の利便性が向上する。
本実施例では、情報処理端末530のWebブラウザ750が、効率的にサービス情報記憶部758に記憶されているローカルサービスの状態を更新することが可能となり、ユーザに最適なサービス一覧を提供することが可能となる。また、ローカルサービスの探索(不要な探索の繰り返し等)を減らし、また利用できないサービスの登録/表示を抑制することでユーザ操作性の向上や、ネットワークトラフィックを低減することができる。さらに、更新の度に確認表示が表示されることもなく、情報更新時の利便性が向上する。よって、インターネット上のサービス及びローカルサービス等のネットワーク機器が提供する各種サービスを、ユーザが容易に選択・利用することを可能にする。
なお、前述の各実施例においては、専用のAPIを用いずに任意のWebサービス(または、Webアプリケーション)と連携する技術として、Web Intentsを利用した場合の説明を行っている。しかし、Web Intentsを用いての説明はあくまでも一例であり、同様な中継機能を介したクライアントとサービスを連携するための他の仕組みを利用してもよい。例えば、Web Activities(Mozilla社)と呼ばれる技術を利用してもよいし、同様の独自仕様を用いて本発明を実現することが可能である。この場合、「action」、「type」、「href」、「title」等に相当する情報が、異なる名称で定義される場合がある。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
(他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
以上示したように、ネットワーク機器が提供する各種サービスについてユーザに最適なサービス一覧を提供し、ユーザが容易に選択・利用することを可能にする。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
以上示したように、ネットワーク機器が提供する各種サービスについてユーザに最適なサービス一覧を提供し、ユーザが容易に選択・利用することを可能にする。
Claims (12)
- データを管理するクライアントと、当該クライアントで管理されるデータを利用して機能を提供するサービスとを中継する中継機能を備える情報処理端末であって、
所定のネットワークプロトコルを用いて、ネットワークを介してサービスを探索することで、当該ネットワークに接続されたネットワーク機器が提供する第1のサービスを要求するための第1の機能情報を取得する第1の取得手段と、
第2のサービスを提供するネットワーク機器のサイトを介して、当該第2のサービスを要求するための第2の機能情報を取得する第2の取得手段と、
前記中継機能による、前記第1の取得手段により取得された前記第1の機能情報、及び、前記第2の取得手段により取得された前記第2の機能情報の登録処理を実行する登録手段と、
前記登録処理に従い登録された前記第1の機能情報及び前記第2の機能情報を含む機能情報の一覧の表示を制御する制御手段と、を有し、
前記制御手段は、前記所定のネットワークプロトコルを用いた前記ネットワークを介したサービスの探索により、前記登録処理に従い既に登録された機能情報が見つかった場合には、当該探索の結果に従い前記一覧の表示を更新することを特徴とする情報処理端末。 - 前記探索の結果には、既に登録された機能情報に対応するサービスの状態が含まれることを特徴とする請求項1に記載の情報処理端末。
- 前記探索の結果に含まれるサービスの状態に従い既に登録された機能情報の登録が削除された場合には、前記制御手段は、該削除された機能情報を含めないように前記一覧の表示を更新することを特徴とする請求項2に記載の情報処理端末。
- 前記第2の取得手段により取得された第2の機能情報に対応する第2のサービスに対しては、状態の取得のための探索は行われないことを特徴とする請求項2又は3に記載の情報処理端末。
- 前記登録処理に従い登録された機能情報について、第1の取得手段により取得された第1の機能情報と、第2の取得手段により取得された第2の機能情報と、を区別して管理する管理手段をさらに有することを特徴とする請求項2乃至4のいずれか1項に記載の情報処理端末。
- 前記管理手段は、前記第1の機能情報の拡張情報として、前記所定のネットワークプロトコルを用いて取得されるサービスの状態をさらに管理することを特徴とする請求項5に記載の情報処理端末。
- 前記登録手段への前記第1の機能情報の登録状態を条件として前記探索を行うか否かを設定する設定手段と、
前記第1の取得手段は、前記登録手段への前記第1の機能情報の登録状態および前記設定手段の設定に基づいて、前記探索の実行を制御することを特徴とする請求項2乃至6のいずれか1項に記載の情報処理端末。 - 前記第1の取得手段は、前記探索を行わない場合、前記既に登録されている機能情報を提供するネットワーク機器から該機能情報に対応するサービスの状態を取得する更新処理を行うことを特徴とする請求項7に記載の情報処理端末。
- 前記設定手段は、前記更新処理を行うか否かを設定可能であり、
前記第1の取得手段は、前記探索を行わない場合、前記設定手段の設定に基づいて、前記更新処理の実行を制御することを特徴とする請求項8に記載の情報処理端末。 - 前記第1の取得手段は、ネットワークを介して接続されたネットワーク機器を探索し、ネットワーク機器が提供する第1のサービスを要求するための第1の機能情報を取得するものであり、
前記登録手段は、前記第1の取得手段によるネットワーク機器の探索結果を示す画面を介して、ユーザにより選択されたネットワーク機器が提供するサービスを要求するための機能情報の登録の指示があった場合に、該登録の指示があったネットワーク機器が提供する第1のサービスを要求するための第1の機能情報を登録することを特徴とする請求項1乃至9のいずれか1項に記載の情報処理端末。 - データを管理するクライアントと、当該クライアントで管理されるデータを利用して機能を提供するサービスとを中継する中継機能を備える情報処理端末の制御方法であって、
所定のネットワークプロトコルを用いて、ネットワークを介してサービスを探索することで、当該ネットワークに接続されたネットワーク機器が提供する第1のサービスを要求するための第1の機能情報を取得する第1の取得ステップと、
第2のサービスを提供するネットワーク機器のサイトを介して、当該第2のサービスを要求するための第2の機能情報を取得する第2の取得ステップと、
前記中継機能による、前記第1の取得ステップにより取得された前記第1の機能情報、及び、前記第2の取得ステップにより取得された前記第2の機能情報の登録処理を実行する登録ステップと、
前記登録処理に従い登録された前記第1の機能情報及び前記第2の機能情報を含む機能情報の一覧の表示を制御する制御ステップと、を有し、
前記制御ステップでは、前記所定のネットワークプロトコルを用いた前記ネットワークを介したサービスの探索により、前記登録処理に従い既に登録された機能情報が見つかった場合には、当該探索の結果に従い前記一覧の表示を更新することを特徴とする情報処理端末の制御方法。 - コンピュータを、請求項1乃至10のいずれか1項に記載された手段として機能させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014143237A JP2016018537A (ja) | 2014-07-11 | 2014-07-11 | 情報処理端末、情報処理端末の制御方法、及びプログラム |
US14/793,611 US10044814B2 (en) | 2014-07-11 | 2015-07-07 | Information processing terminal and control method for processing both service searched on network and service provided via site |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014143237A JP2016018537A (ja) | 2014-07-11 | 2014-07-11 | 情報処理端末、情報処理端末の制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016018537A true JP2016018537A (ja) | 2016-02-01 |
Family
ID=55068475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014143237A Pending JP2016018537A (ja) | 2014-07-11 | 2014-07-11 | 情報処理端末、情報処理端末の制御方法、及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10044814B2 (ja) |
JP (1) | JP2016018537A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111010380A (zh) * | 2019-12-06 | 2020-04-14 | 杭州视洞科技有限公司 | 一种跨区域服务一体化方案 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109617979A (zh) * | 2018-12-24 | 2019-04-12 | 珠海豹趣科技有限公司 | 一种数据访问方法及相关设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007052285A2 (en) * | 2005-07-22 | 2007-05-10 | Yogesh Chunilal Rathod | Universal knowledge management and desktop search system |
US7827275B2 (en) * | 2006-06-08 | 2010-11-02 | Samsung Electronics Co., Ltd. | Method and system for remotely accessing devices in a network |
US20110107225A1 (en) * | 2009-10-30 | 2011-05-05 | Nokia Corporation | Method and apparatus for presenting an embedded content object |
US20110131180A1 (en) * | 2009-11-27 | 2011-06-02 | Nokia Corporation | Method and apparatus for configuring a content object |
JP2013196356A (ja) | 2012-03-19 | 2013-09-30 | Sony Corp | 情報処理装置および方法、並びにプログラム |
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 |
US9442687B2 (en) * | 2012-07-23 | 2016-09-13 | Korea Advanced Institute Of Science And Technology | Method and apparatus for moving web object based on intent |
US20140047360A1 (en) * | 2012-08-09 | 2014-02-13 | Google Inc. | Background application page architecture for web applications |
US9009741B2 (en) * | 2013-02-04 | 2015-04-14 | Futurewei Technologies, Inc. | Mechanism to initiate calls between browsers without predefined call signaling protocol |
JP5867448B2 (ja) * | 2013-04-26 | 2016-02-24 | コニカミノルタ株式会社 | ネットワークシステム、アクセス支援サーバ、処理装置、通信代行装置、およびコンピュータプログラム |
JP2015012561A (ja) * | 2013-07-02 | 2015-01-19 | ソニー株式会社 | 表示装置、情報取得方法及び情報提供方法 |
JP6238610B2 (ja) * | 2013-07-18 | 2017-11-29 | キヤノン株式会社 | 情報処理端末、制御方法、及びプログラム |
KR101560470B1 (ko) * | 2014-01-07 | 2015-10-16 | 한국과학기술원 | 스마트 연결 장치 및 스마트 연결 장치를 활용하여 IoT 장치를 제어하기 위한 방법 |
KR20160136321A (ko) * | 2014-03-26 | 2016-11-29 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 통합 검색 환경에서의 클라이언트 의도 파악 기법 |
-
2014
- 2014-07-11 JP JP2014143237A patent/JP2016018537A/ja active Pending
-
2015
- 2015-07-07 US US14/793,611 patent/US10044814B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111010380A (zh) * | 2019-12-06 | 2020-04-14 | 杭州视洞科技有限公司 | 一种跨区域服务一体化方案 |
Also Published As
Publication number | Publication date |
---|---|
US10044814B2 (en) | 2018-08-07 |
US20160014217A1 (en) | 2016-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240168616A1 (en) | Information processing terminal and control method | |
JP6524896B2 (ja) | プログラム | |
JP6370033B2 (ja) | 情報処理装置、情報処理方法、プログラム | |
JP5754128B2 (ja) | 画像形成装置、情報処理システム、情報処理方法、及びプログラム | |
US9400621B2 (en) | Information providing apparatus, terminal device, information providing system, and computer readable medium | |
EP2393275B1 (en) | Information processing system, information processing apparatus, control method thereof, and program | |
JP2017168028A (ja) | 情報処理装置、印刷プラグイン、印刷システム及び制御方法 | |
US20150026233A1 (en) | Information processing terminal and control method therefor | |
JP6192433B2 (ja) | 情報処理端末、情報処理端末の制御方法およびプログラム | |
JP2015233268A (ja) | 情報処理装置、情報処理装置の制御方法、及び、プログラム | |
JP2016018537A (ja) | 情報処理端末、情報処理端末の制御方法、及びプログラム | |
JP6202137B2 (ja) | 画像形成装置、情報処理方法、及びプログラム | |
JP5939336B2 (ja) | 情報処理装置、情報処理システム、情報処理方法、及びプログラム | |
JP6265745B2 (ja) | 情報処理端末 | |
US10142193B2 (en) | Information processing terminal, method therefor, and storage medium | |
JP6786656B2 (ja) | 情報処理端末、情報処理端末の制御方法およびプログラム | |
JP6325796B2 (ja) | 情報処理端末およびその制御方法、並びにプログラム | |
JP6351275B2 (ja) | 情報処理端末、情報処理端末の制御方法およびプログラム | |
JP2021005427A (ja) | 情報処理端末、情報処理端末の制御方法およびプログラム | |
JP2020173828A (ja) | プログラム | |
KR20150105159A (ko) | 모바일 어플리케이션을 이용한 클라우드 프린트 서비스의 제공 방법, 이를 수행하기 위한 클라우드 프린트 서버 및 시스템 |