UPnP Scanner Architecture Junichi Ota Ricoh Corporation Office Solution and Development Group
アジェンダ ユーザ使用例 アーキテクチャ デバイス サービス シーケンス ダイアグラム 簡単な1ページスキャン フィーダ 外部アクティビティ シーケンス ダイアグラム 簡単な1ページスキャン Push型 Pull型 フィーダからの複数ページスキャン
ユーザ使用例 スキャン to コントロール ポイント スキャン to プリント スキャン to URL イメージをスキャンし、コントロール ポイントに送る (プッシュ型) イメージをスキャンし、コントロール ポイントが取り出す (プル型) スキャン to プリント イメージをスキャンし、プリンタのURLに送って印刷する JPEGイメージをXHTML-Print フォーマットに変換後、転送 スキャン to URL イメージをスキャンし、指定されたURLに送る HTTP/POSTで転送する
UPnP v1 スキャナ アーキテクチャ スキャナ コントローラ UPnP デバイス アーキテクチャ V1 ホーム ネットワーク スキャン ディスクリプション ディスカバリ アドレッシング コントロール イベンティング プレゼンテーション V1 ホーム ネットワーク スキャン フィーダ 外部アクティビティ デバイス ディスクリプ ション ドキュメント HTML ドキュメント サービス コントロール プロトコル ドキュメント スキャナ コントローラ ベンダー独自API
スキャナ デバイス UPnP アーキテクチャ v1.0 ベース 3種類のサービスの組み合わせ “urn:schemas-upnp-org:device:Scanner:1 “ 3種類のサービスの組み合わせ スキャン サービス (必須) スキャナを操作し、イメージをスキャンする フィーダ サービス (オプション) ドキュメント フィーダを制御する 外部アクティビティ サービス (オプション) ユーザに起因するイベントの自動通知設定と、それに関連付けたジョブの登録 例) 「スキャン」ボタンを押すことにより、スキャンを開始する
スキャナ デバイス ディスクリプション スキャン サービス デバイス情報 フィーダ サービス 外部アクティビティ サービス <?xml version="1.0"?> <root xmlns="urn:schemas-upnp-org:device-1-0"> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <URLBase> base URL for all relative URLs </URLBase> <device> <deviceType>urn:schemas-upnp-org:device:Scanner:1</deviceType> <friendlyName>short user-friendly title</friendlyName> <manufacturer>manufacturer name</manufacturer> <manufacturerURL>URL to manufacturer site</manufacturerURL> <modelDescription>long user-friendly title</modelDescription> <modelName>model name</modelName> <modelNumber>model number</modelNumber> <modelURL>URL to model site</modelURL> <serialNumber>manufacturer's serial number</serialNumber> <UDN>uuid:UUID</UDN> <UPC>Universal Product Code</UPC> <iconList> <icon> <mimetype>image/format</mimetype> <width>horizontal pixels</width> <height>vertical pixels</height> <depth>color depth</depth> <url>URL to icon</url> </icon> </iconList> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:Scan:1</serviceType> <serviceId>urn:upnp-org:serviceId:Scan:0.92</serviceId> <SCPDURL>URL to service description</SCPDURL> <controlURL>URL for control</controlURL> <eventSubURL>URL for eventing</eventSubURL> </service> <serviceType>urn:schemas-upnp-org:service:Feeder:1</serviceType> <serviceId>urn:upnp-org:serviceId:Feeder:0.92</serviceId> <serviceType>urn:schemas-upnp-org:service:ExternalActivity:1</serviceType> <serviceId>urn:upnp-org:serviceId:ExternalActivity:0.91</serviceId> </serviceList> <presentationURL>URL for presentation</presentationURL> </device> </root> スキャン サービス デバイス情報 フィーダ サービス 外部アクティビティ サービス デバイス アイコン プレゼンテーションWebページURL
スキャン サービス サービス名 “Scan:1” SOAP アクション StartScan Start Stop Abort SetConfiguration GetConfiguration GetSideInformation GetDestination GetState
スキャン サービス 状態変数 (自動通知) 状態変数 State (状態) FailureCode SideNumber Idle/Scanning/Pending FailureCode No Error/Jammed/Timeout SideNumber Scanned side number ScanLength Scanned line number DestinationID Notice that the destination has changed 状態変数 Resolution ImageFormat ImageType BitDepth ColorType CompressionFactor ColorSpace UseFeeder HeightLimit WidthLimit XValueLimit YValueLimit Destination JobID …..etc.
フィーダ サービス サービス名 “Feeder:1” SOAP アクション 状態変数 Load Eject Reset GetState SetFeederMode GetFeederMode 状態変数 MorePages (自動通知) FeederMode Simplex/Duplex StateFailureCode SheetWidth SheetHeight InputJustification EntireDocument Model JobID Timeout
外部アクティビティ サービス サービス名 “ExternalActivity:1” SOAPアクション 状態変数 Activity Register Renew Unregister 状態変数 Activity AvailableRegistrations (読み取りアクセスのみ) DisplayString DisplayStringSize ButtonName Duration RegistrationID
シーケンス ダイアグラム (1) 簡単な 1 ページ スキャン (プッシュ型) イベントの自動通知登録 アクション: StartScan() Destination=クライアントURL 画像データ: HTTP/POST イベント: ScanLength イベント: ScanLength
シーケンス ダイアグラム (2) 簡単な 1 ページ スキャン (プル型) イベントの自動通知登録 アクション: StartScan() Destination=“pull-absolute” イベント: DestinationID アクション: GetDestination() 画像データ: HTTP/GET イベント: ScanLength イベント: ScanLength
シーケンス ダイアグラム (3) フィーダからの複数ページスキャン (プル型) イベントの自動通知登録 アクション: StartScan() UseFeeder=TRUE Destination=“pull-absolute” イベント: DestinationID アクション: GetDestination() 1ページ目スキャン 画像データ: HTTP/GET イベント: Feeder:MorePages イベント: DestinationID 2ページ目スキャン アクション: GetDestination() 画像データ: HTTP/GET
For the interconnected lifestyle