JP2008181487A - 装置とファシリティマネージャ内のディスカバリ機能の統合 - Google Patents

装置とファシリティマネージャ内のディスカバリ機能の統合 Download PDF

Info

Publication number
JP2008181487A
JP2008181487A JP2007311606A JP2007311606A JP2008181487A JP 2008181487 A JP2008181487 A JP 2008181487A JP 2007311606 A JP2007311606 A JP 2007311606A JP 2007311606 A JP2007311606 A JP 2007311606A JP 2008181487 A JP2008181487 A JP 2008181487A
Authority
JP
Japan
Prior art keywords
thread
network
threads
web service
message
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
Application number
JP2007311606A
Other languages
English (en)
Inventor
Alain Regnier
レニエ アラン
Tian Lifen
ティエヌ リフェヌ
Yao-Tian Wang
ワン ヤオティエヌ
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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
Priority claimed from US11/644,181 external-priority patent/US8112766B2/en
Priority claimed from US11/652,179 external-priority patent/US8321546B2/en
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JP2008181487A publication Critical patent/JP2008181487A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0273Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP]
    • 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/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0273Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP]
    • H04L41/0286Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP] for search or classification or discovery of web services providing management functionalities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Facsimiles In General (AREA)
  • Multi Processors (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】多機能機(MFP、Multi-Function Peripheral)において実行されるマルチスレッドプロセスとしてWS装置プロファイル規格の実施に関する。
【解決手段】ウェブサービス装置プロファイル仕様を実装する、コンピュータにより実行される方法である。該方法は、ウェブサービス装置プロファイル仕様が規定する機能を集合的に実装する並列実行される複数のスレッドを装置上で実行する段階を有する。この装置は、(a)画像スキャンウェブサービスアプリケーション、(b)印刷ウェブサービスアプリケーション、(c)ファックスウェブサービスアプリケーションのうちの少なくとも2つを有する。
【選択図】図4

Description

本発明はウェブサービスの提供に関し、具体的には多機能機(MFP、Multi-Function Peripheral)において実行されるマルチスレッドプロセスとしてWS装置プロファイル規格の実施に関する。
このセクションで説明するアプローチは、達成しようとすることができるものであるが、必ずしも以前に思いついたものや達成しようと試みたものではない。それゆえ、特に注意しない限り、このセクションに記載したアプローチはいずれもこのセクションに記載したことをもって先行技術であると考えるべきではない。
ワールドワイドウェブ(WWW)はグローバルな読み出し書き込み情報スペース(global, read-write information space)である。テキスト文書、画像、マルチメディア、その他の多数の情報アイテムは、リソース(resources)と呼ばれ、URL(Uniform Resource Identifiers)と呼ばれる短い位置知的なグローバルな識別子により特定され、非常に簡単な方法で各リソースを探し、アクセスし、相互参照することができる。W3C(World Wide Web Consortium)は、メンバー組織とフルタイムのスタッフと一般市民とが共に働きWWWの標準規格を開発している。W3Cは、ネットワーク上で相互利用可能なマシン・ツー・マシン・インターラクションをサポートするように設計されたソフトウェアシステムとして、「ウェブサービス」を規定している。この規定は相異なる多数のシステムを包含するが、一般的な使用においては、この用語はSOAPフォーマットのXML(Extensible Markup Language)エンベロープを使用する、WSDL(Web Services Description Language)により記述されたインターフェイスを有するサービスを意味している。ウェブサービスにより、人間の介入なしに装置とアプリケーションがネットワークを介して相互に通信できるようになり、かかる装置やアプリケーションと人間がネットワークを介して通信するプロトコルスイート(suite of protocols)(例えば、HTTP)と同じものを用いることができる。
ウェブサービスを規定している仕様書は意図的にモジュール式になっており、結果として、ウェブサービスのすべてを規定している文書はない。その代わりに、少数のコアとなる仕様書があり、状況と技術的な選択に応じて他の仕様書により補足されている。最も一般的なコアとなる仕様書はSOAP、WSDL、WS−Security、及びWS−ReliableExchangeである。仕様書ごとに異なるタスクと機能が記載されている。
SOAPはXMLベースの拡張可能なメッセージエンベロープのフォーマットであり、基礎となるプロトコル(例えば、HTTPとSMTP)と結びついている。XMLを用いて、SOAPはメッセージをどのようにフォーマットすべきか規定している。これらのメッセージは、その受信者(装置やアプリケーション)がメッセージを理解できるようにフォーマットされる。SOAPは、例えば、リモートプロシージャコールを実行する。
WSDLは、特定のプロトコルに結びついたインターフェイスの詳細に沿ってサービスインターフェイスを記述することができるXMLフォーマットである。WSDLは典型的にはサーバとクライアントコードを生成し、設定するために使用される。WS−Securityは、メッセージ交換を確保するためにXML暗号化とXMLシグネチャをどのように使用するかを規定している。WS−ReliableExchangeは2つのウェブサービス間の信頼性の高いメッセージ交換のためのプロトコルである。
本発明の第1の態様による実施形態は、WS装置プロファイル仕様(WS-DeviceProfile specification)の実装を含む。具体的な実装はWSデバイスプロファイル(WS-DeviceProfile)仕様に従う。具体的な実施には、WSデバイスプロファイル仕様に明示的に規定されていない装置及びファシリティマネージャ(DFM、Device and Facility Manager)を含む。DFMは様々なウェブサービス(例えば、WSアドレッシング、WSディスカバリ、WSセキュリティ等)を使用し、これらのウェブサービスをどのように仕様して様々なタスクを実行するか記載している。DFMはネットワーク上の装置とサービスのディスカバリ(discovery)を処理する。DFMはファシリティマネージャとしても動作する。DFMは単一のコンポーネントに様々なウェブサービスを実装し、プリケーションはそれを使用したり再使用したりできる。DFMは、DFMが実施するウェブサービスのより複雑な詳細の一部からこれらのアプリケーションを遮蔽(insulate)する。
本発明の一実施形態では、DFMは多機能機(「MFP」)内に実装される。MFPは相異なる複数のアプリケーションを有し、各アプリケーションは異なる特別な機能(例えば、印刷、スキャン、ファックス等)を有する。各アプリケーションはDFMが提供するウェブサービスを使用する。後でMFPに動的に追加される追加的アプリケーションもDFMが提供するウェブサービスを使用できる。最も一般的に使用されているウェブサービスはDFMにより提供される。これらのウェブサービスは各アプリケーションに別々に実装する必要はない。
本発明の一実施形態では、DFMは複数の実行スレッドとして実施される。DFMのマルチスレッド化(multi-threaded nature)により効率が高くなる。DFMが複数のスレッドを有するとき、各スレッドは並行してタスクを処理することができる。例えば、1つのスレッドはMFP外部のプロセス、アプリケーション、及び装置との通信を処理でき、他のスレッドはMFP内部のプロセスとアプリケーションとの通信を同時に処理できる。また、DFMをマルチスレッド化して実装することにより、DFMの機能の一部を一時的にシャットダウンし、更新し、及び/またはデバッグしつつ、DFMのその他の機能は動作し続けさせることができる。エラーが発生したスレッドを終了、リスタートしても、その他のスレッドはそのエラーの影響を受けない。このように、マルチスレッドDFMは単一スレッドDFMよりもロバスト(robust)である。
本発明の第2の態様による実施形態は、WS装置プロファイル仕様(WS-DeviceProfile specification)の実装を含む。本発明の実施形態は、WSデバイスプロファイル仕様に明示的に規定されていない装置及びファシリティマネージャ(DFM、Device and Facility Manager)を含む。DFMは様々なウェブサービス(例えば、WSアドレッシング、WSディスカバリ、WSセキュリティ等)を使用し、これらのウェブサービスをどのように仕様して様々なタスクを実行するか記載している。DFMはネットワーク上の装置とサービスのディスカバリ(discovery)を行う。DFMはファシリティマネージャとしても動作する。DFMは単一のコンポーネントに様々なウェブサービスを実装し、プリケーションはそれを使用したり再使用したりできる。DFMは、DFMが実施するウェブサービスの詳細からこれらのアプリケーションを遮蔽(insulate)する。
本発明の一実施形態では、DFMは装置に実装される。装置には、これに限定はされないが、多機能機(MFP、Multi-Function Peripheral)が含まれる。例えば、MFPは相異なる複数のアプリケーションを有し、各アプリケーションは異なる機能(例えば、印刷、スキャン、ファックス等)を有する。各アプリケーションはDFMが提供するウェブサービスを使用できる。後でMFPに動的に追加される追加的アプリケーションもDFMが提供するウェブサービスを使用できる。最も一般的に使用されているウェブサービス(WSディスカバリ等)はDFMにより提供される。これらのウェブサービスは各アプリケーションが別々に実装する必要はない。
本発明の一実施形態では、DFMは複数の実行スレッドとして実施される。DFMのマルチスレッド化(multi-threaded nature)により効率が高くなる。DFMが複数のスレッドを有するとき、各スレッドは並行してタスクを処理することができる。例えば、装置上で実行されている1つのスレッドはWS装置プロファイルプロトコルが規定する機能の第1の組を実行することができる。例えば、そのスレッドは装置が提供するウェブサービスの管理に関するタスクを実行する。装置上で実行されている他のスレッドは、WSディスカバリプロトコルが規定する機能の第2の組を実行することができる。例えば、そのスレッドは他の装置と通信して、その装置が利用可能であり、その装置にどんな能力があるかを通信した他の装置に知らせる。
本発明の実施形態により、DFMが他のアプローチを使用する効率を高くすることができる。例えば、DFMのスレッドはフラグの設定と読み出しにより互いに通信でき、1つのスレッドが他のスレッドを待つ時間を最小化できる。また、DFMの一部をスタティッククラスを用いて実装して、インスタンス化したオブジェクトへのポインタを管理する複雑性を避けることができる。
[関連出願との相互参照]
本願は次の米国特許出願に関連し、各出願の内容をあたかもここに開示したように参照援用する:米国特許出願第11/265,835号(発明の名称「APPROACH FOR DISCOVERING NETWORK RESOURCES」;米国特許出願第11/497,000号(発明の名称「ADVANCED WEB SERVICES ON A LEGACY PLATFORM」);米国特許出願第XX/XXX,XXX号(代理人事件整理番号第49986−0606号)(発明の名称「Multi-threaded device and Facility Manager」、出願日XXXX)。
本発明は、添付した図面において実施例によって示すが、本発明を限定するものではない。同じ参照数字は同じ要素を示す。
以下の詳細な説明では、説明を目的として、本発明を完全に理解してもらうために、具体的な詳細事項を開示した実施形態例を記載する。しかし、言うまでもなく、本発明はこれらの詳細がなくても実施することができる。他の場合において、ブロック図として周知の構造やデバイスを示すが、これは本発明が不明瞭になることを避けるためである。
以下に示したセクションに沿って説明する。
1.0 アーキテクチャの概要
1.1 クライアント
1.2 ネットワーク
1.3 装置ファシリティマネージャ
1.4 WSDマネージャ
1.4.1 一般的API
1.4.2 一般的APIの実装
1.5 ウェブサービスアプリケーション
1.5.1 抽象API
1.5.2 抽象APIの実装
2.0 マルチスレッドDFM
3.0 マルチスレッドDFMへのWS−Discovery機能の組込
4.0 実施メカニズム
1.0 アーキテクチャの概要
図1は、本発明の一実施形態による、ネットワーク環境にある装置の一例を示すブロック図である。図1に示した例において、装置は多機能機(MFP)である。MFPは複数のモジュールを有し、各モジュールが異なる機能を実行する。かかる機能には、例えば、印刷、コピー、ファックス、スキャン、アーカイブ(archiving)、文書提供(document-serving)等がある。リコーAficioColor5560はMFPの一例である。このMFPは、他の用途もあるが、プリンタ、スキャナ、コピー機等として動作する。
図1はMFPである装置を示しているが、本発明の他の実施形態では、MFP102は、例えばプリンタ、コピー機、ファクシミリ機、画像形成装置、デジタルカメラ、スキャナ等であるMFP以外の装置であってもよい。このように、本発明の実施形態ではDFMをMFP以外の装置で実施してもよい。しかし、ここでは説明を容易にするため、主としてMFPで実施されたDFMについて説明する。結果として、本発明の実施形態はDFMが実施される装置の種類には制限されず、例えば、DFMは自動販売機、キッチン機器、パーソナルコンピュータ、組み込みコンピュータ等で実施されてもよい。
図1は、MFP102、ローカルエリアネットワーク(LAN)104、ファイアウォール106、インターネット108を示している。MFP102はLAN104と通信可能に結合されている。LAN104はファイアウォール106と通信可能に結合されている。ファイアウォール106はインターネット108と通信可能に結合されている。このように、MFP102はLAN104、ファイアウォール106、及びインターネット108を介して他の装置と通信することができる。
MFP102は、相異なる複数のモジュールを有し、各モジュールは異なる機能を提供する。これらのモジュールには、中央処理ユニット(CPU)110、ネットワークインターフェイス(例えば、イーサネット(登録商標)カード)112、メモリ(例えば、ランダムアクセスメモリ(RAM))114、記憶装置(例えば、ハードディスクドライブ)116、ディスプレイ(例えば、液晶ディスプレイ)118、フロントパネル入力装置(例えば、キーパッド)120、ファックスエンジン122、スキャンエンジン124、プリントエンジン126等が含まれる。本発明の様々な実施形態では、MFPが有するモジュールは図1に示したよりも多くても、少なくても、異なっていてもよい。
図2は、本発明の一実施形態による、MFPのウェブサービスアプリケーションの一例を示すブロック図である。図2には、(図1のMFP102に相当する)MFP202と、ネットワーク204と、ウェブサービスクライアント218と、DFM220とが示されている。本発明の一実施形態では、DFM220はWS−DeviceProfile仕様の実装である。MFP202とウェブサービスクライアント218はネットワーク204に通信可能に結合され、相互に通信する。
MFP202はウェブサービスアプリケーション206を有する。そのウェブサービスアプリケーション206はMFP202上で実行される。ウェブサービスアプリケーション206は、ネットワーク204とDFM220を介してウェブサービスクライアント218と通信する。MFP202はさらにSOAPソフトウェアデベロップメントキット(SDK)208とウェブサービスプロトコル210とを有する。MFP202は相異なる任意数のプラットフォーム216A−216Nを有していてもよい。各プラットフォームは、例えば、異なるオペレーティングシステムや異なるハードウェア(set of hardware)であってもよい。図2は複数のプラットフォーム216A−216Nを示しているが、本発明の一実施形態では、MFP202のプラットフォームは1つだけでもよく、プラットフォーム216A−216Nのうちのどれか1つでもよい。
図3は、本発明の一実施形態による、MFP上で実行される相異なる複数のウェブサービスアプリケーションとDFMの一例を示すブロック図である。図3は、ネットワーク304と通信可能に結合された(図2のMFP202に相当する)MFP302を示している。MFP302はウェブサービスアプリケーション306Aと306Bを有する。各ウェブサービスアプリケーションはMFP302の特定の機能の処理に特化していてもよい。例えば、ウェブサービスアプリケーション306Aは特に印刷のタスクを処理するアプリケーションであり、ウェブサービスアプリケーション306Bは特にスキャンのタスクを処理するアプリケーションである。ウェブサービスアプリケーション306Aと306Bは「装置制御プロトコル(DCP、device control protocols)」とも呼ばれる。MFP302はSOAP SDK308とウェブサービスプロトコル310も有する。ウェブサービスアプリケーション306Aと306Bは両方ともSOAP SDK308とウェブサービスプロトコル310とを使用する。
MFP302は相異なる任意数のプラットフォーム316A−316Nを有していてもよい。各プラットフォームは、例えば、異なるオペレーティングシステムや異なるハードウェア(set of hardware)であってもよい。図3は複数のプラットフォーム316A−316Nを示しているが、本発明の一実施形態では、MFP302のプラットフォームは1つだけでもよく、プラットフォーム316A−316Nのうちのどれか1つでもよい。
各プラットフォーム316A−Nには、各ウェブサービスアプリケーション306Aと306Bに対して、プラットフォームとウェブサービスアプリケーションごとに別々のAPI実装がある。各抽象API実装314AA−NAはプラットフォームに対して抽象API312Aを実装する。同様に、各抽象API実装314AB−NBはプラットフォームに対して抽象API312Bを実装する。このように、抽象API実装314AAはプラットフォーム316Aの抽象API312Aのプラットフォーム個別の実装(platform-specific implementation)であり、抽象API実装314BAはプラットフォーム316Bの抽象API312Aのプラットフォーム個別の実装である。どうように、抽象API実装314ABはプラットフォーム316Aの抽象API312Bのプラットフォーム個別の実装(platform-specific implementation)であり、抽象API実装314BBはプラットフォーム316Bの抽象API312Bのプラットフォーム個別の実装である。ウェブサービスアプリケーション306Aはプラットフォーム316A−Nとその対応する抽象API実装314AA−NAを介して通信し、ウェブサービスアプリケーション306Bはプラットフォーム316A−Nとその対応する抽象API実装314AB−NBを介して通信する。
MFP302はDFM320も有する。本発明の一実施形態では、MFD320はWS−DeviceProfile使用の実装である。各プラットフォーム316A−Nには、それに固有の別々の一般API実装がある。各一般API実装318A−Nは個別プラットフォームの一般API322を実装する。このように、一般API実装318Aはプラットフォーム316Aの一般API322のプラットフォーム個別の実装(platform-specific implementation)であり、一般API実装318Bはプラットフォーム316Bの一般API322のプラットフォーム個別の実装である。DFM320はプラットフォーム316A−Nと、対応する一般API実装318A−Nを介して通信する。
図4は、本発明の一実施形態による、マルチスレッドDFMを有するMFPのアーキテクチャ400の一例を示すブロック図である。アーキテクチャ400はクライアント402とアドミニストレータ404とMFPとを含む。このMFPは、MFP上で実行されている装置ファシリティマネージャ(DFM)406と、複数のウェブサービスアプリケーション(WSA)とを有する。
MFPは、図4に示したように、プラットフォーム(例えば、レガシープラットフォーム430、リナックスベースプラットフォーム440、VxWorksベースプラットフォーム450等)を有し、各プラットフォーム上ではWSA408が実行されている。図4に示したプラットフォームは単なる例であり、このアプローチはいかなる種類のプラットフォーム(platform)にも適用できる。
DFM406は、ディスカバリ要求、クライアント402からのメタデータ要求、管理者(装置)404からの設定その他のMFP管理要求に応答することによりMFPを代表する。DFM406は、WS−Discovery412とWS−MeX(すなわち、WS−MetadataExchange)416等である複数のウェブサービス仕様を実装したリポジトリとして機能する。
クライアント402はMFPにサービスを要求する。MFPで実行されているウェブサービスアプリケーション(WSA)408は、(例えば、SOAPプロトコルを用いて)クライアントにサービスを提供する。各WSA408は、目標プラットフォームとは独立した抽象API424等であるサービス固有の抽象APIを利用することができる。各WSA408はWS−Eventing422を利用してもよい。
クライアント402は、ディスカバリ要求またはディスカバリHELLO(すなわち、同一ネットワーク上の装置に対してMFPが発行するブロードキャストまたはマルチキャストメッセージ)によりMFPがあることを発見(discover)する。クライアント402は、MFPがあることを知ると、(例えば、WS−MetadataExchangeにより)装置メタデータ交換要求を送信し、そのMFPが提供するすべてのサービスを発見する。DFM406は、すべての装置に対して、要求を受信し、MFPが提供する様々なサービスを記述したメタデータを返す。クライアント402は、ウェブサービスアプリケーション(WSA)408等であるMFP上で実行されている具体的なウェブサービスアプリケーションにサービスメタデータを要求する。WSA408は、ウェブサービス装置(WSD)マネージャ410にサービスメタデータを要求する。WSDマネージャ410はWSA408にサービスメタデータを返す。WSA408はクライアント402にサービスメタデータを転送する。
あるいは、MFPの装置メタデータ及びWSAのサービスメタデータは、同一の応答でクライアント402に送信してもよい。
サービスメタデータに基づき、クライアント402は、WSA408が提供するサービスに対応するSOAP要求を生成して送信する。WSA408はSOAP要求を受信して処理する。受信した要求に基づき、WSA408は抽象API424を使用して、抽象API実装(abstract API implementation)444等の抽象API424にプラットフォーム固有のコール(call)を行う。ウェブサービスアプリケーション(例えば、WSA408)の開発者は、ウェブサービス自体の開発に集中でき、ウェブサービスが実行される基礎となるプラットフォームに関する複雑な知識を有する必要はない。それゆえ、目標プラットフォーム(target platform)の知識を有する人が、ウェブサービスアプリケーションの開発者でなくても、対応する抽象APIの実装を規定(define)することができる。
1.1 クライアント
クライアント402は、MFPが提供するサービスを要求するプロセスに関連したアプリケーションである。クライアント402は、典型的には、初期要求プロセスをサポートするオペレーティングシステムに関連したアプリケーションである。クライアント402の目的は、要求プロセスからのプラットフォーム固有なプロシージャ(procedure)を、SOAPを理解できるアプリケーションが処理できるSOAP要求に変換することである。
例えば、要求プロセスはマイクロソフト社のWordアプリケーションと関連するものである。WSA408は印刷サービスを提供できる。クライアント402は、初期要求プロセスをサポートするオペレーティングシステムに関連したアプリケーションであり得る。クライアント402は、要求プロセスから送信されたプラットフォーム固有な「印刷データ」要求を受信する。クライアント402は、その印刷データ要求を、WSA408が処理できるSOAPメッセージにエンコードする。
1.2 ネットワーク
クライアント402とMFPとの間のSOAP通信は、ネットワーク(図示せず)を介して行うことができる。ネットワークは、そのネットワーク中のいろいろなノード間におけるデータの交換を提供する媒体またはメカニズムにより実装される。かかるネットワークの例としては、これに限定されないが、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イーサネット(登録商標)、インターネット等のネットワークや、地上波、衛星波、または無線リンク等が含まれる。ネットワークは、ここに説明したようなネットワークを組み合わせたものを含んでいてもよい。ネットワークは、例えば、TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)、及び/またはIP(Internet Protocol)によりデータを伝送することができる。
1.3 装置ファシリティマネージャ
DFM406は、MFPを代表して、ディスカバリ要求、ロギング情報要求、設定命令を受け取る。本発明の一実施形態では、DFM406は複数のウェブサービス仕様の実装したリポジトリ(repository)としても機能する。このように、DFM406は、それぞれがウェブサービス仕様により規定された機能を実装するルーチンを含む共有ライブラリを含んでいてもよい。このように、複数のウェブサービス仕様を実装して、MFP上で実行されている(WSA408等の)複数のウェブサービスアプリケーションのそれぞれで共有してもよい。結果として、ウェブサービスアプリケーションの開発者は、MFPに実装されたウェブサービス仕様を使用してこれに依存することができ、これらの使用の詳細を知る必要はない。DFM406上に実装されたウェブサービス仕様には、これに限定はされないが、WS−Discovery412、WS−Transfer414、WS−MeX(すなわち、WS−MetadataExchange)416、WS−Security418が含まれる。
本発明の一実施形態では、DFM406はSOAPプロトコルに対応するライブラリルーチンを含む。各SOAPライブラリルーチンは、(1つ以上の)SOAP仕様により規定された(1つ以上の)機能を実装する。SOAPライブラリルーチンを使用してSOAP要求を分析し、SOAPメッセージをパッケージする。SOAPプロトコル規格の複数のバージョンをサポートすることもできる。SOAPプロトコル規格の新しいバージョンに更新しても、WSA408への修正はほとんどまたはまったくない。
本発明の一実施形態では、DFM406はブロードキャストメッセージを送信して、MFP上の(1つ以上の)WSAに更新されたことを知らせる。本発明の一実施形態では、クライアント402はかかる更新イベントをサブスクライブ(subscribe)する必要はない。しかし、本発明の一実施形態では、クライアント402は、MFP上の(1つ以上の)WSAへの更新通知を受信するよう登録する。本発明のかかる実施形態では、DFM406があるアプリケーションの更新に関する更新情報を受信し、クライアント402がかかる更新通知を受信するように登録されていると、DFM406はクライアントアプリケーションに更新通知を送信する。
本発明の一実施形態では、DFM406はWSAに関する更新情報を受信する。例えば、WSA408はファックスサービスを提供できる。MFPはファックスラインが切断されていることを検知できる。ファックスサービスが利用できない時、DFM406は、その後のメタデータ要求に対してMFPがファックスサービスを提供することを示す装置メタデータで応答すべきではない。それゆえ、WSA408から更新情報を受信するとそれに応じて、DFM406はWSA408に関連した装置メタデータ及び/またはサービスメタデータを更新する。
本発明の一実施形態では、DFM406は管理者(装置)404から設定要求を受信する。設定要求は設定及び/または更新すべき(1つ以上の)WSAを示している。DFM406は設定要求を処理して、適当なWSAに対して設定または更新命令を実行する、または実行させる。あるいは、DFM406はWSDマネージャ410に命令してかかる設定要求を処理させてもよい。
本発明の一実施形態では、DFM406は管理者(装置)404からログ要求を受信して応答する。DFM406は、MFPで実行されている(1つ以上の)WSAに関するロギング(logging)情報を読み出す。DFM406はロギング情報を管理者(装置)404に送信する。WSDマネージャ410はロギング情報を読み出し、DFM406に提供する。
1.4 WSDマネージャ
本発明の一実施形態では、DFM406はWSDマネージャ410も有する。WSDマネージャ410は、MFPのロギング情報、状態問い合わせ、外部管理の中心点(central point)を提供する。本発明の一実施形態では、管理者(装置)404はMFPに関する情報をWSDマネージャ410を通して読み出すように構成されたアプリケーションである。例えば、WSDマネージャ410は、すべてのWSA408と、WSA408が実行されている様々なプラットフォームとから内部的に来るすべてのロギング情報を集中する。管理者(装置)404は、WSDマネージャ410を用いてWSA408を設定、更新、またはディスエーブル(disable)してもよい。
本発明の一実施形態では、WSDマネージャ410は全体的な状態情報を持っている。その全体的な状態情報とは、例えば、MFPがどこに配置されているか、MFPにどのWSAがインストールされているか、WSAが正しく実行されているか等である。
本発明の一実施形態では、WSDマネージャ410はMFPのメタデータを持っている。本発明の一実施形態では、WSDマネージャ410はMFPで実行されている各WSA408に関するサービスメタデータを持っている。
1.4.1 一般API
本発明の一実施形態では、WSDマネージャ410は、一般API420を通して、MFPのIPアドレスやモデルナンバ等であるそのMFPに関する一般情報を読み出す。一般API420は、DFM406がMFPの各プラットフォームに固有の情報を受信するインターフェイスを規定(define)する。結果として、DFMの開発者は、特定のプラットフォームについて詳細を知る必要はなく、その開発者が作っているDFMの詳細を知っていればよい。図4中の点線は、APIからしかるべきAPI実装へのAPIコールを表している。
1.4.2 一般API実装
一般API420がDFM406に対して規定されていれば、一般API420のプラットフォーム固有の実装が規定されている。例えば、一般API実装432はレガシー(legacy)プラットフォーム430上の一般API420に対して規定されている。同様に、一般API実装442はリナックスベースプラットフォーム440上の一般API420に対して規定されている。一般API実装は、装置固有の要求で指定されてMFP上に実装される関数(functions)を規定(define)する。DFM406の開発者が一般API実装を規定してもよい。あるいは、目標プラットフォームに関する知識を有する人が一般API実装を規定してもよい。
1.5 ウェブサービスアプリケーション
ウェブサービスアプリケーション(WSA)408は(1つ以上の)ウェブサービスを提供するモジュールであり、DFM406が提供するプロトコル等であるウェブサービスプロトコルと技術に依存している。WSA408は、SOPA要求を解析するロジックを含まない場合、SOAP要求を解析するために別のSOAPモジュール(図示せず)にも依存する。上記の通り、別のSOAPモジュールをDFM406に設けて、すべてのWSA408で共有してもよい。
一実施形態では、WSA408はクライアント402からのイベント要求に応答するWS−Eventingモジュール422も有する。クライアント402は、WSA408が提供するサービスに関連するイベントをサブスクライブ(subscribe)してもよい。例えば、WSA408は印刷アプリケーションであり得る。クライアント402がサブスクライブするイベントは、MFPの印刷ジョブの完了であってもよい。かかる状況では、イベントの完了時にWSA408はクライアント402にイベントメッセージを送信する。イベントメッセージは印刷ジョブが完了したことを示す。
1.5.1 抽象API
WSA408は、装置固有のコール(device-specific calls)を発生する抽象API(例えば、抽象API424)も含む。抽象APIは、関連するWSA408がMFP上の(1つ以上の)機能を起動するインターフェイスを規定する。それゆえ、ウェブサービスアプリケーションの開発者は、目標プラットフォームについての複雑な知識を知る必要はなく、提供しようとする新しいサービスに関する知識があればよい。
1.5.2 抽象API実装
抽象APIがウェブサービスアプリケーションの開発者により規定されると、プラットフォームに対する抽象APIの実装が規定される。例えば、図4に示したように、抽象API実装434はレガシープラットフォーム430上の抽象API424に対して規定される。同様に、抽象API実装454はVxWorksベースプラットフォーム450上の抽象API424に対して規定されている。抽象API実装は、装置固有の要求で指定されてMFP上に実装される関数(functions)を規定(define)する。ウェブサービスアプリケーションの開発者は実装を規定してもよい。あるいは、目標プラットフォームに関する知識を有する人が実装を規定してもよい。
2.0 マルチスレッドDFM
上記の通り、本発明の一実施形態では、DFM(例えば、DFM320)は、複数の同時実行スレッド(multiple concurrently executing threads)により実装される。一実施形態では、少なくとも4つのスレッドがあり、(1)WSDマネージャスレッド、(2)WS−Discoveryスレッド、(3)内部ディスパッチャスレッド、(4)外部要求処理スレッドが含まれる。
本発明の一実施形態では、MFPの電源がオンにされた時、メインスレッドが初期化され、複数のコンポーネントを立ち上げる(start up)。メインスレッドが他のスレッドを立ち上げると、メインスレッドは制御をWSDマネージャスレッドに渡す(または、WSDマネージャスレッドとして動作を開始する)。WSDマネージャスレッドはウェブサービスアプリケーション(例えば、ウェブサービスアプリケーション306Aと306B)の登録(registration)と非登録(un-registration)を監視する。また、WSDマネージャスレッドは、抽象レイヤ(例えば、一般API322/一般API実装318A)を介してMFPから来る変化を監視する。かかる変化が起こるとそれに応じて、WSDマネージャスレッドは、(1)MFPに記憶されている装置メタデータのバージョンを更新し、(2)MFPの外部にあるその他の装置に装置メタデータの変化を(例えば、ネットワーク304を介して)ブロードキャストするようにWS−Discoveryスレッドに命令する。
本発明の一実施形態では、WS−DiscoveryスレッドはWSDマネージャの「Hello」メッセージを送信する承認を待つ。WS−Discoveryスレッドは、WSDマネージャのスレッドからかかる承認を取得するとそれに応じて、他の装置に「Hello」メッセージを(例えば、ネットワーク304を介して)ブロードキャストして、MFPがあることを示す。かかる「Hello」メッセージを送信した後、WS−Discoveryスレッドは入来する「Probe」メッセージ及び「Resolve」メッセージを待ち受ける(listen)。「Probe」または「Resolve」メッセージを受信すると、それに応じてWS−Discoveryスレッドは適宜応答する。この応答はWS−Discoveryの仕様で規定されている。
また、本発明の一実施形態では、MFPの装置メタデータが更新されたことを示す通知をWSDマネージャスレッドから受信すると、WS−Discoveryスレッドは装置メタデータの変化を(例えば、ネットワーク304上に)ブロードキャストする。例えば、このメッセージは、他の装置に対して、追加のウェブサービス(例えば、印刷、スキャン等)がMFPで利用できること、または以前はMFP上で利用可能であったウェブサービスが今は利用できないことを示す。
本発明の一実施形態では、内部ディスパッチャスレッドは、DFM320とウェブサービスアプリケーション306A/306B、及び/またはMFP上で実行されているその他のアプリケーションとの間のメッセージ交換を処理する。これらのメッセージは指定されたフォーマットに従うように構成されている。内部ディスパッチャスレッドは受信したメッセージを解析(parse)する。内部ディスパッチャスレッドは、これらのメッセージをDFMの適当なコンポーネントに送る(dispatch)。内部ディスパッチャスレッドは、これらのメッセージに対するDFMコンポーネントの応答を適当な構成要素(entity)に中継する。
一実施形態では、外部要求処理スレッドはMFPの外部にある装置やプロセスから発せられた要求メッセージを監視する。例えば、外部要求処理スレッドは、ウェブサービスクライアントがネットワーク304を介してMFPに送信するメッセージを監視してもよい。このように、一実施形態では、内部ディスパッチャスレッドはMFP内から発信されたメッセージのみを処理し、外部要求処理スレッドはMFPの外部から発信されたメッセージのみを処理する。有益にも、内部ディスパッチャスレッドと外部要求処理スレッドとはメッセージを並行して処理でき、MFPは内部と外部からの要求に(順次的ではなく)並行して反応することができる。外部メッセージディスパッチャスレッドは、入来するメッセージの種類を判断し、それらのメッセージの種類に基づいて適当なDFMにメッセージを送り、そのメッセージを送ったDFMコンポーネントからのそのメッセージに対する応答を受け取り、そのメッセージを発信した外部の構成要素(entities)にその応答を(例えば、ネットワーク304を介して)送信する。
有益にも、マルチスレッドDFMにより、外部要求を待ち行列に入れ、先着順で処理しても、MFPのその他の部分への影響はない。また、マルチスレッドDFMにより、ウェブサービスアプリケーションをMFPに動的に登録(registered)したり非登録(un-registered)にしたりしても、DFMのその他のタスクには影響がない。さらに、マルチスレッドDFMにより、MFPプラットフォームとの通信を処理しても、DFMが実行している作業に制約を設ける必要はない。また、マルチスレッドDFMにより、1つのスレッドをDFMのビジネスロジック(business logic)に集中させても、MFPプラットフォームやウェブサービスアプリケーションやMFP外部の構成要素との通信に関しては何もする必要がない。プログラムの観点から、DFMをマルチスレッドとすることにより、DFMをより一層モジュール化でき、フレキシブルかつロバスト(robust)にできる。
図5は、本発明の一実施形態による、並列実行されたDFMの複数のスレッドを示すシーケンス図である。メインスレッドは、(後でWSDマネージャスレッドとして機能するが)、本発明の一実施形態では、「CreateThread()」メソッドを起動して他のスレッドをスタートさせる。このように生成されるスレッドには、WS−Discoveryスレッド、内部ディスパッチャスレッド、及び外部要求処理スレッドが含まれる。WSディスカバリスレッドはWSディスカバリ仕様を実施し、ディスカバリ要求と応答を処理する。内部ディスパッチャスレッドはMFP内部の構成要素(例えば、ウェブサービスアプリケーション)との通信を処理する。外部要求処理スレッドは、(1)DFMのビジネスロジック(business logic)と、(2)MFPの外部にある構成要素(例えば、ネットワークを介してMFPにアクセスするウェブサービスクライアント)との通信とを処理する。本発明の一実施形態では、この他のスレッドを生成してから、メインスレッドがWSDマネージャスレッドになり、上で説明したWSDマネージャの動作(例えば、MFPのメタデータの管理)を実行する。
外部要求処理スレッドは内部ディスパッチャスレッドとは別のものなので、DFMはMFP内部の構成要素との通信とMFP外部の構成要素との通信とを同時に処理できる。DFMはMFP内部の構成要素との通信が完了するのを待って、MFP外部の構成要素との通信を開始する必要、またはその逆の必要はない。図示した本発明の実施形態には4つのスレッドを示したが、本発明の別の実施形態ではスレッドの数はこれより多くても少なくてもよい。例えば、MFP上の各ウェブサービスアプリケーションでは、別のスレッドをスタートして、そのウェブサービスアプリケーションに係わるが他のウェブサービスアプリケーションには係わらない通信を処理してもよい。しかし、スレッドの数が増えるにつれて、スレッドを維持するのに要するオーバーヘッド(overhead)も増加する。
本発明の別の実施形態では、並行して実行されるスレッドは2つしかない:WSディスカバリスレッドはWSディスカバリ仕様で指定されたすべての通信を処理し、もう1つのスレッドがWSディスカバリスレッドが実行しない動作を実行する。
本発明の一実施形態では、メインメソッドが「DFMCleanUp()」メソッドを起動すると、その他のスレッドはすべてすぐに(in a graceful manner)閉じられる。
図6は、本発明の一実施形態によるDFMの並列実行されたスレッドのいくつかにより実行されるステップを示すフロー図である。図6に示したステップの一部を図6に示したステップのその他のものと並列的に実行することもできる。
ステップ602−628はメインスレッドにより実行される。ブロック602において、WSDマネージャが初期化される。ブロック604において、WSDマネージャから外部及び内部のIP(Internet Protocol)アドレスとポートを読み出す。ブロック606において、WSDディスカバリスレッドが初期化される。WSディスカバリスレッドはステップ630−646の実行を開始し、並行してメインスレッドがステップ602−628を実行する。ブロック608において、内部ディスパッチャスレッドを初期化する。内部ディスカバリスレッドはステップ648−658の実行を開始し、並行してメインスレッドがステップ602−628を実行する。ブロック610において、外部要求処理スレッドを初期化する。外部要求処理スレッドはメインスレッド及びその他のスレッドと並行して実行される。
ブロック612において、WSDマネージャがスタートする。ブロック614において、WSDマネージャはウェブサービスアプリケーションの登録または登録のタイムアウト(timeout)を待つ。ブロック616において、WSDマネージャはWSディスカバリにスタートするように命令する。ブロック618において、WSDマネージャはウェブサービスアプリケーションの登録(registration)またはメタデータの変更をチェックする。ブロック620において、終了信号を受信したか判断する。終了信号を受信したとき、制御がブロック622に渡る。そうでないときは、制御がブロック618に渡る。
ブロック622において、内部ディスパッチャスレッドを停止する。ブロック624において、外部要求処理スレッドを停止する。ブロック626において、WSDディスカバリスレッドを非初期化(un-initialized)する。ブロック628において、WSDマネージャを非初期化する。
WSディスカバリスレッドはその他のスレッドと並行して実行される。ブロック630において、フラグ(信号)をチェックする。ブロック632において、(例えば、WSDマネージャによりブロック616で)「スタート」信号は設定されているか判断する。「スタート」信号が設定されているとき、制御がブロック634に渡る。そうでないときは、制御がブロック630に渡る。
ブロック634において、「Hello」メッセージを送信する。ブロック636において、ディスカバリ開始フラグ(discovery starting flag)をクリアする。ブロック638において、WSDディスカバリスレッドがネットワークを監視(listening)し始める。ブロック640において、(例えば、ネットワークから)入来する「Probe」及び「Resolve」メッセージが処理され、それに応じて必要に応じて、「ProbeMatch」及び「ResolveMatch」メッセージが(例えば、ネットワークを介して)送信される。ブロック642において、他の信号をチェックして、必要に応じて処理する。ブロック644において、終了信号(termination signal)を受信したか判断する。終了信号を受信したとき、制御がブロック646に渡る。そうでないときは、制御がブロック640に渡る。
ブロック646において、WSDディスカバリスレッドが終了する。
内部ディスパッチャスレッドはメインスレッド及びその他のスレッドと並行して実行される。ブロック648において、内部ディスパッチャスレッドはモジュール間通信(IMC)メッセージを待つ。IMCメッセージはMFP内におけるDFMとWSA間の通信である。IMCメッセージは内部ディスパッチャスレッドにより処理される。ブロック650において、IMCメッセージを処理する。ブロック652において、内部ディスパッチャスレッドは(1つ以上の)IMCメッセージに対する(1つ以上の)応答を取得する。ブロック654において、内部ディスパッチャスレッドその(1つ以上の)応答を、IMCメッセージを受け取った構成要素に返送する。ブロック656において、終了信号(termination signal)を受信したか判断する。終了信号を受信したとき、制御がブロック658に渡る。そうでないときは、制御がブロック648に渡る。
ブロック658において、内部ディスパッチャスレッドが終了する。
外部要求処理スレッドはメインスレッド及びその他のスレッドと並行して実行される。ブロック660において、外部要求処理スレッドはMFPの外部にあるクライアント(例えば、ウェブサービスクライアント218)からの要求メッセージを待つ。ブロック662において、メッセージタイプをチェックする。ブロック664において、メッセージは、そのタイプに応じて他のモジュールまたはスレッド(例えば、WSDマネージャ及び/または内部ディスパッチャスレッド)に送られる。ブロック666において、外部ディスパッチャスレッドは、メッセージが送られたモジュールまたはスレッドからメッセージに対する応答を取得する。ブロック668において、その応答を、メッセージを受け取ったクライアントに返送する。ブロック670において、終了信号(termination signal)を受信したか判断する。終了信号を受信したとき、制御がブロック672に渡る。そうでないときは、制御がブロック660に渡る。
ブロック672において、外部要求処理スレッドを終了する。
3.0 マルチスレッドDFMのディスカバリ機能の統合
一実施形態では、DFM320等のDFMは並行して実行されている複数のスレッド(threads)により実施される。上記の通り、マルチスレッドDFM(multi-threaded DFM)は少なくとも4つのスレッドを含む。すなわち、(1)WSDマネージャスレッド、(2)ディスカバリスレッド、(3)内部ディスパッチャスレッド、(4)外部要求処理スレッドを含む。
本発明の一実施形態では、マルチスレッドDFMにはDFM信号ハンドラスレッドも含まれる。一実施形態では、DFM信号ハンドラスレッドは、特定の信号を検出したとき、マルチスレッドDFMの他のスレッドに通知する役割を果たす。かかる信号には、マルチスレッドDFMが実施されている装置のパワーを切るコマンドに関連する信号や、失われていたネットワーク接続が再確立されたとの判断に関連する信号等が含まれる。
一実施形態では、ディスカバリスレッドはディスカバリ機能の大部分を実行する。例えば、HelloメッセージやByeメッセージの送信、ProbeメッセージやResolveメッセージの監視(listening)、ProbeMatchメッセージやResolveMatchメッセージによるProbeメッセージやResolveメッセージに対する回答を実行する。ディスカバリスレッドが実行する動作をWSディスカバリプロトコルによるディスカバリ機能の実行と関連してここでは主に説明するが、考えられることとして、本発明の他の実施形態では、WSディスカバリプロトコルの他に(1つ以上の)ディスカバリプロトコルによるディスカバリ機能を実行するディスカバリスレッドを利用してもよいし、他の実施形態では、WSディスカバリプロトコル以外の(1つ以上の)ディスカバリによるディスカバリ機能を実行するディスカバリスレッドを利用してもよい。
一実施形態では、マルチスレッドDFMのスレッドは一組のフラグを監視(monitor)してもよい。スレッドは、フラグが設定されたことを検出すると、応答動作を実行する。例えば、あるフラグがDFMを実施する装置の能力の変化に関連し、そのフラグが設定されると、ディスカバリスレッドが、その装置のその新しい能力を反映した新しいHelloメッセージをネットワークを介して送信する。このように、DFMのスレッドはフラグの設定と読み出しにより互いに通信でき、1つのスレッドが他のスレッドを待つ時間を最小化できる。DFMのスレッドがフラグの設定と読み出しをするプロセスは、図8と図9とを参照して以下に詳しく説明する。
装置メタデータをMFPに格納するか、またはMFPにアクセス可能にする。装置メタデータはMFPを識別する情報を表すデータを含む。例えば、装置メタデータはMFPのシリアルナンバやモデルに関する情報を含む。装置メタデータはMFPの現在の能力を表す情報(「能力情報」)も含む。例えば、能力情報はMFPが現在提供しているサービスに関する情報を含む。
本発明の一実施形態では、ディスカバリスレッドは、MFP202の装置メタデータが変更されたことを示す通知を受信すると、それに応答してMFP202の装置メタデータが変更されたことを示すメッセージを(例えば、ネットワーク204を介して)ブロードキャストする。ディスカバリスレッドが送信したブロードキャストメッセージは、装置ディスカバリデータを全部または一部含んでいる。
一実施形態では、装置ディスカバリデータはMFPの装置タイプと範囲(scope)に関する情報を含む。また、装置ディスカバリデータは、構成要素がMFPといかに通信すべきかを示すアドレス情報を含む。例えば、アドレス情報はMFPのIPアドレスを示すものである。また、装置ディスカバリデータはMFPの装置メタデータと関連するメタデータバージョンを識別してもよい。例えば、メタデータバージョンは装置メタデータが変更されるたびにインクリメントされる。装置ディスカバリデータの受信者(装置)は、それが有するメタデータが装置ディスカバリデータにより識別されたメタデータバージョンより低いとき、装置メタデータが変更されたことを通知され、適当な動作をすることができる。一実施形態では、ディスカバリスレッドが送信するブロードキャストメッセージは、メタデータのバージョンを特定するものであり、他のタイプの装置ディスカバリデータは含まない。MFPの装置メタデータが変更されたことを構成要素に知らせるこの知らせ方は例示であり、他のアプローチを使うこともできる。
一実施形態では、マルチスレッドDFMの動作は、DFM中のディスカバリ機能の実行を統合することにより、より効率的になる。ディスカバリスレッドはWSDマネージャスレッドとインターラクト(interact)する。WSDマネージャスレッドはディスカバリスレッドに装置ディスカバリデータと装置メタデータの変化の通知を提供する。このように、ディスカバリスレッドは、MFP202に変化があったときに通知を受け、MFP202の新しい能力(capabilities)を反映した装置ディスカバリを取得する。WSDマネージャスレッドとディスカバリスレッドとの間の通信により、ディスカバリスレッドに送られる情報は最新のものとなる。
一実施形態では、WSDマネージャスレッドは、ディスカバリスレッドのスタートと停止も制御する。WSDマネージャスレッドのディスカバリスレッドに対するこの制御は、フラグを用いて実施でき、2つのスレッド間の通信を効率的にして、ディスカバリスレッドと通信するためにフラグを設定するためになされたAPIコールからWSDマネージャスレッドを素早く戻らせる。
一実施形態では、ディスカバリスレッドはDFM信号ハンドラスレッドともインターラクトできる。かかるインターラクション(interaction)はDFM信号ハンドラスレッドが適当なフラグを設定し、ディスカバリスレッドがそれを監視することにより達成できる。ディスカバリスレッドは、フラグが設定されたことを検知すると、適当な動作を行う。例えば、WSディスカバリHelloメッセージを送信したり、ディスカバリスレッドを終了させたりする。
一実施形態では、ディスカバリスレッドは、インスタンスメンバデータやメンバー関数を持たないスタティック(static)クラスを用いて実施できる。かかるアプローチは有利であるが、それはインスタンス化されたオブジェクトへのポインタを管理する複雑性を回避できるからである。
マルチスレッドDFMのスレッド間のインターラクションをさらに例示するために、図8と図9を検討する。図8は、本発明の一実施形態による、DFMのモジュール間の通信を示す第1のシーケンス図である。説明を容易にするため、例示したマルチスレッドDFMのスレッドの説明では、図1のMFP102上での実装を参照する。
図8に示したように、DFMメインスレッドはディスカバリスレッドを初期化する。一実施形態では、DFMメインスレッドはスタティック(static)クラスを使用してディスカバリスレッドを初期化する。DFMメインスレッドは、ディスカバリスレッドを初期化する時、DFMが実装されている装置のネットワークアドレス等の情報をそのスタティッククラスに提供する。
ディスカバリスレッドを生成すると、DFMメインスレッドはWSDマネージャスレッドにスタートするように命令する。それに応答して、WSDマネージャはDFM202の装置メタデータをフェッチ(fetch)する。装置データを読み出すと、WSDマネージャスレッドはディスカバリスレッドに装置ディスカバリデータを提供する。ディスカバリスレッドは、次に、装置ディスカバリデータを格納する。装置ディスカバリデータを格納する前に、ディスカバリスレッドはその装置ディスカバリデータを解析し、確認し、またはさらに処理して、その正しさを確認する。
ディスカバリスレッドが装置ディスカバリデータを格納すると、WSDマネージャスレッドはAPIをコールして、ディスカバリスレッドにその仕事を開始させる命令に関連するフラグ(「スタートフラグ」)を設定する。一実施形態では、ディスカバリスレッドは、生成されるとこのフラグを監視する。結果として、スタートフラグが設定されると、ディスカバリスレッドはそのスタートフラグが設定されたことを検知して、そのスタートフラグをクリアし、ディスカバリスレッドの仕事(duties)の実行を開始する。例えば、ディスカバリスレッドの仕事には、ProbeメッセージやResolveメッセージの監視(listening)、他のスレッドとの通信に使用するフラグの監視、Helloメッセージの送信、必要に応じてProbeMatchメッセージやResolveMatchメッセージの送信等がある。ディスカバリスレッドが送信するメッセージ(Helloメッセージ、ProbeMatchメッセージ、ResolveMatchメッセージ等)には、DFMを実施している装置が何のサービスをサポートしているかに関する情報が含まれる。例えば、HelloメッセージはDFM202においてどのDCPがアクティブであるか示している。
一実施形態では、WSDマネージャスレッドは後で装置メタデータ及び/または装置ディスカバリデータの変更を検知する。例えば、1つのDCPが利用できなくなったことやMFPのIPアドレスが変更されたことをWSDマネージャスレッドが検知する。WSDマネージャスレッドは、装置メタデータ及び/または装置ディスカバリデータの変化を検知すると、それに応答してディスカバリスレッドにその変化を通知し、ディスカバリスレッドにその変更を反映して更新されたディスカバリデータを提供する。ディスカバリスレッドは、次に、装置ディスカバリデータを格納する。前述のように、装置ディスカバリデータを格納する前に、ディスカバリスレッドはその装置ディスカバリデータを解析し、確認し、またはさらに処理して、その正しさを確認する。
一実施形態では、WSDマネージャスレッドは、ディスカバリスレッドにメタデータが更新されたことを通知するためのフラグ(「変更フラグ」)を設定する。ディスカバリスレッドはこのフラグを監視する。結果として、変更フラグが設定されると、ディスカバリスレッドはその変更フラグをクリアし、ネットワーク204を介して新しいHelloメッセージを送信し、MFPの装置メタデータが変更されたことを構成要素(listening entities)に通知し、構成要素に更新された装置ディスカバリデータを通知する。こうして、MFPにおける変更が効率的かつ即時的に広報され、MFPの装置メタデータにおける変更が関係者(interested parties)にすみやかに通知される。
図9は、本発明の一実施形態による、マルチスレッドDFMのスレッド間の通信を示す第2のシーケンス図である。図9の実施形態に示したように、DFM信号ハンドラスレッドは後で「ネットワークリセット」が生じたことを検知する。ネットワークリセットが生じるのは、ネットワークに対する装置の接続が失われたり再取得されたりした時である。例えば、MFP102がネットワークリセットを経験するのは、ローカルエリアネットワーク104のルータがリブートされた時や、MFP102が失っていたネットワーク接続を再取得した時である。
DFM信号ハンドラスレッドは、「ネットワークリセット」が生じたことを検知すると、ディスカバリスレッドに再接続処理をするように命令する。一実施形態では、DFM信号ハンドラスレッドはディスカバリスレッドがアクセスできるフラグ(「ネットワークリセットフラグ」)を設定して、ディスカバリスレッドに再接続処理をする(to handle the reconnection)ように命令する。ディスカバリスレッドは、ネットワークリセットフラグが設定されたことを検知すると、そのネットワークリセットフラグをクリアして、ネットワーク204上に新しいHelloメッセージを送信する。このように、ネットワーク上の他の装置(図2のウェブサービスクライアント218等)にMFP202がオンラインで利用可能であることを通知する。ディスカバリスレッドは、その新しいHelloメッセージを送信すると、継続的にProbeメッセージとResolveメッセージを監視(listen)するとともに、他のスレッドとの通信に使用するフラグを監視(monitor)する。
図9の実施形態に示したように、DFM信号ハンドラスレッドはいつかの時点で「装置シャットダウン信号」の受信を検知する。装置シャットダウン信号はMFPをシャットダウンすることを命じるそのMFPが受け取ったコマンドに対応するものである。例えば、管理者(装置)は図2のMFP202に装置シャットダウン信号を送信して、MFP202をパワーダウンさせる。
DFM信号ハンドラスレッドは、装置シャットダウン信号を受信すると、WSDマネージャスレッドに停止を命じる。WSDマネージャスレッドは、次に、ディスカバリスレッドに停止を命じる。図8に示した実施形態では、WSDマネージャスレッドはスタートフラグを設定してディスカバリスレッドに処理の開始を命じる。同様に、図9に示した実施形態では、WSDマネージャスレッドはストップフラグを設定してディスカバリスレッドに処理の停止を命じる。このように、WSDマネージャスレッドは、ディスカバリスレッドの処理の開始と終了を制御できる。
ディスカバリスレッドは、ストップフラグが設定されたことを検知すると、そのストップフラグをクリアして処理を停止する。例えば、ディスカバリスレッドはネットワーク204上にByeメッセージを送信して処理を停止し、MFP202がもう利用できないことをすべてのウェブサービスクライアントに通知し、その後、メッセージの監視(listening)を停止する。
DFM信号ハンドラスレッドは、WSDマネージャスレッドにストップコマンドを送信した後いつかの時点において、DFMメインスレッドにストップコマンドを送信する。DFMメインスレッドは、DFM信号ハンドラスレッドからストップコマンドを受信すると、ディスカバリスレッドに非初期化コマンド(un-initialize command)を送信する。一実施形態では、DFMメインスレッドは、ディスカバリスレッドがアクセスできるクリーンアップフラグ(clean up flag)を設定して非初期化コマンドを送る。
一実施形態では、ディスカバリスレッドは、クリーンアップフラグが設定されたことを検知すると、そのクリーンアップコマンドをクリアして、クリーンアップ機能を実行する。ディスカバリスレッドが実行するクリーンアップ機能には、ディスカバリスレッドに関連するすべてのデータ構造のクリーンアップや割り当て解除が含まれる。
一実施形態では、MFPは、それが提供していたウェブサービスに変更があることを検知すると、ネットワーク上に新しいHelloメッセージを送信する。しかし、その変更が一時的なものであり、例えばスキャナサービスが一時的に停止しているような場合であれば、MFPはネットワーク上に新しいHelloメッセージを送信する必要はないと判断してもよい。かかる実施形態において、サービスの変更が一時的なものではないとMFPが判断すると、ディスカバリスレッドはネットワーク204上にHelloメッセージ(WSディスカバリHelloメッセージ等)を送信させる。サービスの変更が一時的なものであるとMFPが判断すると、ディスカバリスレッドはネットワーク204上にHelloメッセージを送信すべきでないと判断する。
4.0 実施メカニズム
図7は、本発明の一実施形態を実装するコンピュータシステム700を示すブロック図である。コンピュータシステム700は、情報をやりとりするバス702その他の通信メカニズムと、バス702に結合した情報を処理するプロセッサ704とを有する。コンピュータシステム700は、さらに、ランダムアクセスメモリ(RAM)またはその他のダイナミック記憶デバイス等のメインメモリ706を含む。このメインメモリは、バス702に結合しており、情報と、プロセッサ704により実行される命令とを格納する。メインメモリ706は、プロセッサ704による命令の実行中に、一時的変数やその他の中間情報を記憶するために使用することもできる。コンピュータシステム700は、さらに、読み出し専用メモリ(ROM)708その他の静的記憶デバイスを含む。この読出専用メモリは、バス702に結合されており、静的な情報とプロセッサ704の命令とを格納する。記憶装置710(磁気ディスクや光ディスク等)が設けられ、バス702に結合されており、情報と命令を格納する。
コンピュータシステム700は、バス702を介して、ディスプレイ712(陰極線管(CRT)等)に結合されており、コンピュータユーザに情報を表示する。入力装置714は、英数字その他のキーを含み、バス702に結合されており、情報とコマンド選択をプロセッサ704に伝送する。他のタイプのユーザ入力装置はカーソル制御部716であり、マウス、トラックボール、またはカーソル方向キー等である。これらは、プロセッサ704に方向情報とコマンド選択を伝送し、ディスプレイ712上のカーソルの動きを制御する。この入力装置は典型的には2つの軸、すなわち第1の軸(例えばx軸)と第2の軸(例えばy軸)で2自由度を有し、これによりデバイスが平面内の点を特定することができる。
本発明は、ここに説明した方法を実施するためのコンピュータシステム700の使用方法にも関する。本発明の一実施形態によると、これらの方法のコンピュータシステム700による実行は、メインメモリ706に含まれる1つ以上の命令の1つ以上のシーケンスをプロセッサ704が実行することにより行われる。かかる命令は、他の機械読み取り可能媒体(記憶装置710等)からメインメモリ706に読み込まれる。メインメモリ706に含まれる命令シーケンスの実行により、プロセッサ704はここに説明したプロセスステップを実行する。他の実施形態では、ソフトウェア命令に替えて、またはソフトウェア命令と組み合わせて、ハードワイヤー回路(hard-wired circuitry)を使用して本発明を実施することもできる。このように、本発明の実施形態は、ハードウェア回路とソフトウェアの特定の組み合わせに限定はされない。
ここで、「機械読み取り可能媒体」との用語は、機械に特定のやり方で動作させるデータを提供するいかなる媒体も指す。コンピュータシステム700を用いて実施する一実施形態では、様々な機械読み取り可能媒体を使用して、例えば、プロセッサ704が実行する命令を提供する。かかる媒体は、多数の形式をとることができ、例えば、不揮発性媒体、揮発性媒体、伝送媒体等を含むが、これらに限定はされない。不揮発媒体は、例えば光ディスクまたは磁気ディスクを含み、記憶装置710等である。揮発性媒体は、ダイナミックメモリを含み、メインメモリ706等である。伝送媒体は、同軸ケーブル、銅線、光ファイバを含み、バス702を含むワイヤも含む。伝送媒体は、音波や光波であって、無線通信や赤外線データ通信で生成されるものの形態を取ることもできる。
機械読み取り可能媒体の一般的な形態には次のものが含まれる。例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁気媒体、CD−ROMその他の光媒体、パンチカード、紙テープ、その他の穴のパターンを有する物理媒体、RAM、PROM、EPROM、フラッシュEPROM、その他のメモリチップまたはカートリッジ、以下に説明する搬送波、コンピュータが読み取れるその他のいかなる媒体。
機械読み取り可能媒体の様々な形態を使用して、1つ以上の命令の1つ以上のシーケンスをプロセッサ704に搬送し、実行させる。例えば、命令は最初にリモートコンピュータの磁気ディスク上にあってもよい。リモートコンピュータは、その命令をそのダイナミックメモリにロードして、モデムを用いて電話回線を介してその命令を送信することができる。コンピュータシステム700にあるモデムが、電話回線上のデータを受信し、赤外トランスミッタを用いてそのデータを赤外信号に変換することができる。赤外検出器が赤外信号で搬送されたそのデータを受信して、適当な回路がそのデータをバス702に載せることができる。バス702はそのデータをメインメモリ706に送り、プロセッサ704はその命令を読み出して実行する。メインメモリ706が受け取った命令は、任意的に記憶装置710に記憶され、その前または後にプロセッサ704により実行される。
コンピュータシステム700は、バス702に結合した通信インターフェイス718も含む。通信インターフェイス718は、ネットワークリンク720との双方向データ通信カップリングを提供する。ネットワークリンクはローカルネットワーク722に接続されている。例えば、通信インターフェイス718は、統合デジタルサービスネットワーク(ISDN)カードまたはモデムであって、対応するタイプの電話回線へのデータ通信接続を提供する。他の例として、通信インターフェイス718は、ローカルエリアネットワーク(LAN)カードであって、互換性のあるLANへのデータ通信接続を提供してもよい。無線リンクを実施してもよい。かかる実施では、通信インターフェイス718は、いろいろなタイプの情報を表すデジタルデータストリームを搬送する電気的、電磁気的、または光学的信号を送受信する。
ネットワークリンク720は、一般的には、1つ以上のネットワークを介して他のデータデバイスとのデータ通信を提供する。例えば、ネットワークリンク720は、ローカルネットワーク722により、ホストコンピュータ724またはインターネットサービスプロバイダ(ISP)726により運営されているデータ機器への通信を提供する。ISP726は、これに対して、現在は一般的に「インターネット」728と呼ばれている、世界規模のパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク722とインターネット728は、両方とも、デジタルデータストリームを担う電気的、電磁気的、または光学的信号を使用する。様々なネットワーク中の信号やネットワークリンク720と通信インターフェイス718上の信号は、コンピュータシステム700との間でデジタルデータを担い、情報を伝送する搬送波の例である。
コンピュータシステム700は、ネットワーク、ネットワークリンク720、及び通信インターフェイス718により、メッセージを送信しプログラムコードを含むデータを受信することができる。インターネットの例では、サーバ730は、インターネット728、ISP726、ローカルネットワーク722、及び通信インターフェイス718を介して、要求されたアプリケーションプログラムのコードを送信してもよい。
受信するコードは、受信しつつプロセッサ704により実行されてもよいし、後で実行するために記憶装置710またはその他の不揮発性記憶装置に記憶されてもよい。このように、コンピュータシステム700は、搬送波の形態でアプリケーションコードを取得してもよい。
上記の通り明細書では、実施ごとに変わり得る多数の詳細を参照して本発明の実施形態を説明した。このように、本発明であり、出願人が本発明であると考えているものを示すのは、願書に添付した特許請求の範囲であり、特許後の訂正も含め特許された請求項である。かかる請求項に含まれる用語についてここで明示的に記載した定義は、請求項で使用されるかかる用語の意味を司るものである。よって、請求項中に明示的に含まれていない限定、要素、特性、特徴、利益、または属性は、いかなる方法によっても、かかる請求項の範囲を限定するものではない。したがって、明細書と図面は例示であって限定ではないと考えるべきである。
本発明の一実施形態による、ネットワーク環境にある多機能機(MFP)の一例を示すブロック図である。 本発明の一実施形態による、MFPのウェブサービスアプリケーションの一例を示すブロック図である。 本発明の一実施形態による、MFP上で実行される相異なる複数のウェブサービスアプリケーションとDFMの一例を示すブロック図である。 本発明の一実施形態による、マルチスレッドDFMを有するMFPのアーキテクチャの一例を示すブロック図である。 本発明の一実施形態による、並列実行されたDFMの複数のスレッドを示すシーケンス図である。 本発明の一実施形態によるDFMの並列実行されたスレッドのいくつかにより実行されるステップを示すフロー図である。 本発明の一実施形態を実施するコンピュータシステムを示すブロック図である。 本発明の一実施形態による、DFMの複数のスレッド間の通信を示す第1のシーケンス図である。 本発明の一実施形態による、DFMの複数のスレッド間の通信を示す第2のシーケンス図である。
符号の説明
102 MFP
104 ローカルエリアネットワーク
106 ファイアウォール
108 インターネット
110 CPU
112 ネットワークインターフェイス
114 メモリ
116 記憶装置
118 ディスプレイ
120 フロントパネル入力装置
122 ファックスエンジン
124 スキャンエンジン
126 印刷エンジン
202 MFP
204 ネットワーク
206 ウェブサービスアプリケーション
208 SOAP SDK
210 ウェブサービスプロトコル
216 プラットフォーム
218 ウェブサービスクライアント
220 DFM
302 MFP
304 ネットワーク
306 ウェブサービスアプリケーション
308 SOAP SDK
310 ウェブサービスプロトコル
312 抽象API
320 DFM
322 一般API
314 抽象API実装
316 プラットフォーム
318 一般API実装
400 アーキテクチャ
402 クライアント
404 管理者
406 装置ファシリティマネージャ
408 ウェブサービスアプリケーション
410 WSDマネージャ
412 WSディスカバリ
414 WSトランスファ
416 WS−MeX
418 WSセキュリティ
420 一般API
422 WSイベンティング
424 抽象API
430 レガシープラットフォーム
432 一般API実装
434 抽象API実装
440 リナックスベースプラットフォーム
442 一般API実装
444 抽象API実装
450 VxWorksベースプラットフォーム
452 一般API実装
454 抽象API実装
702 バス
704 プロセッサ
706 メインメモリ
708 ROM
710 記憶装置
712 ディスプレイ
714 入力装置
716 カーソル制御
718 通信インターフェイス
720 ネットワークリンク
722 ローカルネットワーク
724 ホスト
726 ISP
728 インターネット
730 サーバ

Claims (38)

  1. ウェブサービス装置プロファイル仕様を実装する、コンピュータにより実行される方法であって、
    ウェブサービス装置プロファイル仕様が規定する機能を集合的に実装する並列実行される複数のスレッドを装置上で実行する段階を有し、
    前記装置は、(a)画像スキャンウェブサービスアプリケーション、(b)印刷ウェブサービスアプリケーション、(c)ファックスウェブサービスアプリケーションのうちの少なくとも2つを有する方法。
  2. 前記装置はコピー機及びプリンタの両方として機能する、請求項1に記載の方法。
  3. 前記複数のスレッドはWSディスカバリプロトコルが規定したタスクのみを実行する、請求項1に記載の方法。
  4. 前記複数のスレッドの少なくとも1つは前記装置内で実行されているプロセスからの通信を処理するが、前記装置外で実行されるどのプロセスからのどの通信も処理しない、請求項1に記載の方法。
  5. 前記複数のスレッドの少なくとも1つは前記装置外で実行される、ネットワークを介して前記装置と通信するプロセスからの通信を処理するが、前記装置内で実行されるどのプロセスからのどの通信も処理しない、請求項1に記載の方法。
  6. 前記スレッドの少なくとも1つが前記装置外で実行されるプロセスからの通信を処理し、前記スレッドの他の1つが前記装置内で実行されるプロセスからの通信を処理する、請求項1に記載の方法。
  7. 前記スレッドの少なくとも1つが(1)前記装置に関するメタ情報の変更を検知し、(2)前記複数のスレッドのうちの他のスレッドに、ネットワーク上で、他の装置に前記メタデータへの変更を示す更新情報をブロードキャストするように命じる、請求項1に記載の方法。
  8. 前記スレッドの少なくとも1つは、前記複数のスレッドのうちの他のスレッドを初期化する、請求項1に記載の方法。
  9. 前記複数のスレッドのうちのどれを終了しても前記複数のスレッドのうちの他のスレッドはどれも終了しない、請求項1に記載の方法。
  10. 前記複数のスレッドのうちの各スレッドは前記装置の同一のマルチスレッド装置及びファシリティマネージャの一部である、請求項1に記載の方法。
  11. 前記装置及びファシリティマネージャは前記装置にあるウェブサービスプロトコルを管理する、請求項10に記載の方法。
  12. 前記装置上で実行される前記少なくとも1つのウェブサービスは、(a)前記装置及びファシリティマネージャにより実施され、(b)前記少なくとも1つのウェブサービスアプリケーションにより実施されないウェブサービスプロトコルの実装を使用する、請求項10に記載の方法。
  13. 前記複数のスレッドのうちの1つ以上のスレッドはSOAPとWSDLとに基づきフォーマットされたメッセージで通信する、請求項1に記載の方法。
  14. 前記複数のスレッドの少なくとも1つのスレッドは、前記装置上で前には利用できなかったウェブサービスが前記装置上で現在は利用可能であることを示す情報を、ネットワーク上にブロードキャストする、請求項1に記載の方法。
  15. 前記複数のスレッドの少なくとも1つのスレッドは、前記装置上で前には利用できたウェブサービスが前記装置上で今は利用可能でないことを示す情報を、ネットワーク上にブロードキャストする、請求項1に記載の方法。
  16. 2つ以上の並列実行されるスレッドを含むマルチスレッドプロセスを一装置上で実行する段階を有する、コンピュータにより実行される方法であって、
    前記スレッドは、
    ネットワーク上に前記一装置があることを示す情報を前記ネットワーク上にブロードキャストする少なくとも1つのスレッドと、
    前記ネットワーク上に他の装置があることを示す情報を前記ネットワーク上で監視する少なくとも1つのスレッドと、
    前記一装置で実行されたプロセスとの通信は処理するが、前記一装置上で実行されていないどのプロセスのどの通信も処理しない少なくとも1つのスレッドと、
    前記一装置で実行されていないプロセスとの通信は処理するが、前記一装置上で実行されているどのプロセスのどの通信も処理しない少なくとも1つのスレッドと、
    前記一装置の変更を検知し、それに応じて、前記一装置がオファーするサービスを示すメタデータを更新する少なくとも1つのスレッドと、
    前記一装置が前にはオファーしていなかったウェブサービスを前記一装置が今はオファーしていることを示す情報を、前記ネットワーク上にブロードキャストする少なくとも1つのスレッドと、
    前記一装置が前にオファーしていたウェブサービスを前記一装置がもうオファーしていないことを示す情報を、前記ネットワーク上にブロードキャストする少なくとも1つのスレッドとを含む方法。
  17. 前記一装置は画像形成装置である、請求項16に記載の方法。
  18. 前記一装置はコピー機及びプリンタの両方として機能する多機能機である、請求項16に記載の方法。
  19. プロセッサにより処理された時、前記プロセッサに、ウェブサービス装置プロファイル仕様が規定する機能を集合的に実装する並列実行される複数のスレッドを装置上で実行する段階を実行させる命令を格納した機械読み取り可能媒体であって、
    前記装置は、(a)画像スキャンモジュール、(b)印刷モジュール、(c)ファックスモジュールのうちの少なくとも2つを有する機械読み取り可能媒体。
  20. マルチスレッドプロセスを実行する装置であって、前記装置は一組の動作のうちの動作を互いに同時に実行する2つ以上のメカニズムを含み、前記一組の動作には、
    ネットワーク上に前記一装置があることを示す情報を前記ネットワーク上にブロードキャストすることと、
    前記ネットワーク上に他の装置があることを示す情報を前記ネットワーク上で監視することと、
    前記一装置上で実行されたプロセスとの通信を処理することと、
    前記一装置上で実行されたプロセスとの通信を処理しないことと、
    前記一装置の変更を検知し、それに応じて、前記一装置がオファーするサービスを示すメタデータを更新することと、
    前記一装置が前にはオファーしていなかったウェブサービスを前記一装置が今はオファーしていることを示す情報を、前記ネットワーク上にブロードキャストすることと、
    前記一装置が前にオファーしていたウェブサービスを前記一装置がもうオファーしていないことを示す情報を、前記ネットワーク上にブロードキャストすることと、を含む装置。
  21. ネットワーク上で装置をアドバタイズする、コンピュータにより実行される方法であって、
    前記装置において並列実行される複数のスレッドを実行する段階を有し、前記並列実行される複数のスレッドのうちの第1のスレッドがウェブサービス装置プロファイル仕様で規定された第1の機能の組を実行し、
    前記並列実行される複数のスレッドのうち第2のスレッドがウェブサービスディスカバリ仕様で規定された第2の機能の組を実行する方法。
  22. 前記装置は、多機能機、プリンタ、コピー機、ファクシミリ装置、及びスキャナのうちの1つである、請求項21に記載の方法。
  23. 前記第2のスレッドはスタティッククラスを用いて実装される、請求項21に記載の方法。
  24. 前記第1のスレッドは前記第2のスレッドがアクセスできるフラグを設定して前記第2のスレッドと通信する、請求項21に記載の方法。
  25. 第1のフラグが設定されていることを検知すると、前記第2のスレッドが前記ネットワーク上に前記装置の装置メタデータが変更されたことを示す第1のメッセージを送信させる段階をさらに有する、請求項21に記載の方法。
  26. 前記並列実行される複数のスレッドのうちの第1のスレッドが前記並列実行される複数スレッドのうちの第2のスレッドにフラグを用いて第1のメッセージを送信する段階をさらに有し、
    前記第1のメッセージは、
    前記第2のスレッドが前記ネットワーク上での監視をスタートすべきこと、
    前記第2のスレッドが前記ネットワーク上での監視を停止すべきこと、
    前記第2のスレッドが終了すべきこと、
    前記第2のスレッドが前記ネットワーク上に第2のメッセージを送信させ、前記第2のメッセージの受信者に前記装置の装置メタデータが変更されたことを知らせるべきこと、
    前記第2のスレッドが前記ネットワーク上に第2のメッセージを送信させ、前記第2のメッセージの受信者に前記装置が提供するサービスが利用可能であることを知らせるべきこととのうち1つを示す、請求項21に記載の方法。
  27. ネットワーク上で装置をアドバタイズする命令を格納したコンピュータ読み取り可能媒体であって、プロセッサにより前記命令を実行することにより、
    並列実行される複数のスレッドを前記装置上で実行し、
    前記並列実行される複数のスレッドのうち第1のスレッドがウェブサービス装置プロファイル仕様で規定された第1の機能の組を実行し、
    前記並列実行される複数のスレッドのうち第2のスレッドがウェブサービスディスカバリ仕様で規定された第2の機能の組を実行するコンピュータ読み取り可能媒体。
  28. 前記装置は、多機能機、プリンタ、コピー機、ファクシミリ装置、及びスキャナのうちの1つである、請求項27に記載のコンピュータ読み取り可能媒体。
  29. 前記第2のスレッドはスタティッククラスを用いて実装される、請求項27に記載のコンピュータ読み取り可能媒体。
  30. 前記第1のスレッドは前記第2のスレッドがアクセスできるフラグを設定して前記第2のスレッドと通信する、請求項27に記載のコンピュータ読み取り可能媒体。
  31. 前記プロセッサによる前記命令の実行により、さらに、
    フラグが設定されていることを検知すると、前記第2のスレッドが前記装置の装置メタデータが変更されたことを示す第1のメッセージを前記ネットワーク上に送信させる、請求項27に記載のコンピュータ読み取り可能媒体。
  32. 前記プロセッサによる前記命令の実行により、さらに、
    前記並列実行される複数のスレッドのうちの第1のスレッドが前記並列実行される複数スレッドのうちの第2のスレッドにフラグを用いて第1のメッセージを送信し、前記第1のメッセージは、
    前記第2のスレッドが前記ネットワーク上での監視をスタートすべきこと、
    前記第2のスレッドが前記ネットワーク上での監視を停止すべきこと、
    前記第2のスレッドが終了すべきこと、
    前記第2のスレッドが前記ネットワーク上に第2のメッセージを送信させ、前記第2のメッセージの受信者に前記装置の装置メタデータが変更されたことを知らせるべきこと、
    前記第2のスレッドが前記ネットワーク上に第2のメッセージを送信させ、前記第2のメッセージの受信者に前記装置が提供するサービスが利用可能であることを知らせるべきこと、のうち1つを示す、請求項27に記載のコンピュータ読み取り可能媒体。
  33. ネットワーク上で装置をアドバタイズするシステムであって、
    プロセッサと、
    命令を格納したコンピュータ読み取り可能媒体であって、前記プロセッサにより実行されると、
    並列実行される複数のスレッドを前記装置上で実行し、
    前記並列実行される複数のスレッドのうち第1のスレッドがウェブサービスディスカバリ仕様で規定された第1の機能の組を実行し、
    前記並列実行される複数のスレッドのうち第2のスレッドがウェブサービスディスカバリ仕様で規定された第2の機能の組を実行させるコンピュータ読み取り可能媒体とを有するシステム。
  34. 前記装置は、多機能機、プリンタ、コピー機、ファクシミリ装置、及びスキャナのうちの1つである、請求項33に記載のシステム。
  35. 前記第2のスレッドはスタティッククラスを用いて実装される、請求項33に記載のシステム。
  36. 前記第1のスレッドは前記第2のスレッドがアクセスできるフラグを設定して前記第2のスレッドと通信する、請求項33に記載のシステム。
  37. 前記プロセッサによる前記命令の実行により、さらに、
    フラグが設定されていることを検知すると、前記第2のスレッドが前記装置の装置メタデータが変更されたことを示す第1のメッセージを前記ネットワーク上に送信させる、請求項33に記載のシステム。
  38. 前記プロセッサによる前記命令の実行により、さらに、
    前記並列実行される複数のスレッドのうちの第1のスレッドが前記並列実行される複数スレッドのうちの第2のスレッドにフラグを用いて第1のメッセージを送信する段階を有し、前記第1のメッセージは、
    前記第2のスレッドが前記ネットワーク上での監視をスタートすべきことと、
    前記第2のスレッドが前記ネットワーク上での監視を停止すべきことと、
    前記第2のスレッドが終了すべきことと、
    前記第2のスレッドが前記ネットワーク上に第2のメッセージを送信させ、前記第2のメッセージの受信者に前記装置の装置メタデータが変更されたことを知らせるべきことと、
    前記第2のスレッドが前記ネットワーク上に第2のメッセージを送信させ、前記第2のメッセージの受信者に前記装置が提供するサービスが利用可能であることを知らせるべきこととのうち1つを示す、請求項33に記載のシステム。
JP2007311606A 2006-12-21 2007-11-30 装置とファシリティマネージャ内のディスカバリ機能の統合 Pending JP2008181487A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/644,181 US8112766B2 (en) 2006-12-21 2006-12-21 Multi-threaded device and facility manager
US11/652,179 US8321546B2 (en) 2007-01-10 2007-01-10 Integrating discovery functionality within a device and facility manager

Publications (1)

Publication Number Publication Date
JP2008181487A true JP2008181487A (ja) 2008-08-07

Family

ID=39509608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007311606A Pending JP2008181487A (ja) 2006-12-21 2007-11-30 装置とファシリティマネージャ内のディスカバリ機能の統合

Country Status (3)

Country Link
EP (1) EP1959638B9 (ja)
JP (1) JP2008181487A (ja)
ES (1) ES2582384T3 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7804823B2 (en) * 2007-09-09 2010-09-28 Xpedite Systems, Llc Systems and methods for communicating documents via an autonomous multiple-function peripheral device
CN106921688B (zh) * 2015-12-24 2020-10-02 阿里巴巴集团控股有限公司 分布式系统的服务提供方法及分布式系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005503A (ja) * 2002-03-25 2004-01-08 Ricoh Co Ltd Webサービス機能を有する画像形成装置
JP2006236034A (ja) * 2005-02-25 2006-09-07 Canon Inc 画像形成装置及び画像形成方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002054184A2 (en) * 2001-01-04 2002-07-11 Roy-G-Biv Corporation Systems and methods for transmitting motion control data
JP4645164B2 (ja) * 2004-11-12 2011-03-09 セイコーエプソン株式会社 ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005503A (ja) * 2002-03-25 2004-01-08 Ricoh Co Ltd Webサービス機能を有する画像形成装置
JP2006236034A (ja) * 2005-02-25 2006-09-07 Canon Inc 画像形成装置及び画像形成方法

Also Published As

Publication number Publication date
EP1959638B9 (en) 2016-09-28
EP1959638A3 (en) 2008-08-27
ES2582384T3 (es) 2016-09-12
EP1959638B1 (en) 2016-04-27
EP1959638A2 (en) 2008-08-20

Similar Documents

Publication Publication Date Title
US8321546B2 (en) Integrating discovery functionality within a device and facility manager
US7987278B2 (en) Web services device profile on a multi-service device: dynamic addition of services
JP5434282B2 (ja) ウェブ・サービスを用いたmfpソフトウェアの更新
US7624182B2 (en) Supporting multiple service discovery protocols on a device
JP2007188505A (ja) ネットワーク対応デバイスの管理方法及び媒体
US20090150789A1 (en) Dynamic multi-platform monitoring client for WSD-enabled devices
US8935708B2 (en) Communication system and communication apparatus and control method thereof
JP5444652B2 (ja) ネットワーク装置、処理方法及びコンピュータプログラム
US8711396B2 (en) Managing multiple web services on a single device
US20080148287A1 (en) Integrating eventing in a web service application of a multi-functional peripheral
US8676967B2 (en) Event proxy notification apparatus and method of controlling the same and program
JP2009087344A (ja) 多機能周辺機器のウェブサービスアプリケーションにおけるイベント通知減少のための方法及び装置
JP2009289041A (ja) 情報処理装置、情報処理装置の制御方法、及びコンピュータプログラム
JP2008282406A (ja) 複数のws動作可能装置からのイベントの報告
US8112766B2 (en) Multi-threaded device and facility manager
US7873647B2 (en) Web services device profile on a multi-service device: device and facility manager
US7680877B2 (en) Implementing a web service application on a device with multiple threads
JP2008181487A (ja) 装置とファシリティマネージャ内のディスカバリ機能の統合
EP1956798B1 (en) Integrating Eventing in a Web Service Application of a Multi-Functional Peripheral
EP1936922B1 (en) Discovery and addition of services in a multi-service device
JP2010108214A (ja) 画像形成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120403