[sane-devel] Is there any plan to support Web Devices Services (WDS) protocol?

Patrick Roncagliolo ronca.pat at gmail.com
Sat Feb 24 17:23:54 UTC 2018

I just wrote the same a minute ago in the other email :) A server-side WSD
library would enable the possibility you mentioned, of course.

Il sab 24 feb 2018, 18:22 Steven Santos <steven at simplycircus.com> ha

> One other thought here:
> If it were possible to implement a WDS server in SANE, it would open up
> SANE to be used as a single central scan server for windows as well.  Set
> up all of your scanners on a SANE server, then let youw windows and linux
> boxes connect to that.  That would make life easier for sure...
> On Sat, Feb 24, 2018 at 12:08 PM, Steven Santos <steven at simplycircus.com>
> wrote:
>> This is a great project.  If it is successful, you will open up a ton of
>> scanners for use with SANE
>> More importantly, it gives a path for supporting just about ANY
>> windows-only scanner in SANE, as seems windows 10 can export any local
>> scanner via WSD
>> I am assuming you found this documentation?
>> https://docs.microsoft.com/en-us/windows-hardware/design/whitepapers/implementing-web-services-on-devices-for-printing
>> On Tue, Feb 6, 2018 at 11:10 AM, Patrick Roncagliolo <ronca.pat at gmail.com
>> > wrote:
>>> Hi all,
>>> I found http://ws4d.org/dpws-explorer/ . It has a linux version, it can
>>> help a bit with device detection and browse properties while developing a
>>> proper scan software.
>>> Here <https://sourceforge.net/projects/ws4d-javame/> is a java
>>> implementation of the DPWS standard, and here
>>> <http://trac.e-technik.uni-rostock.de/projects/ws4d-gsoap> a C/C++ one.
>>> However, I found another batch of documentation of the standard, so
>>> developing a simple working implementation targeted mainly to scan
>>> capabilities isn't going to be difficult.
>>> The C/C++ library posted above might be not suitable for sane backend
>>> implementation, I don't think sane devs would allow adding such a large
>>> gen-purpose dependency to codebase, and a lightweight implementation is
>>> better IMHO.
>>> Il giorno mar 6 feb 2018 alle ore 00:05 Patrick Roncagliolo <
>>> ronca.pat at gmail.com> ha scritto:
>>>> Hi,
>>>> you can find a basic implementation of a WSD discovery scanner here:
>>>> https://github.com/roncapat/WSD-python
>>>> Here is a sample output (it detects a response from my MB2350):
>>>> EndPoint Reference Address:
>>>> urn:uuid:00000000-0000-1000-8000-f4813944662e
>>>> Implemented Types:
>>>> wsdp:Device
>>>> wprt:PrintDeviceType
>>>> wscn:ScanDeviceType
>>>> Transport addresses:
>>>> Basically, it retrieves an unique identifier, the capabilities of the
>>>> devices (MB2350 is both printer and scanner), and an HTTP address for later
>>>> use.
>>>> More coming. Understanding the protocol with an easy language as Python
>>>> with no API constraints helps to bootstrap a working implementation, but
>>>> ideally the next step would be a true backend implementation.
>>>> Patrick Roncagliolo
>>>> Il giorno lun 5 feb 2018 alle ore 16:25 Patrick Roncagliolo <
>>>> ronca.pat at gmail.com> ha scritto:
>>>>> Hi Till,
>>>>> WSD came in with Windows Vista IIRC.
>>>>> It is HTTP/XML based, so yeah, it works only on network, in fact my
>>>>> canon maxify uses an entirely different protocol on USB (similar, if not
>>>>> equal, to the BJNP network protocol used by Canon for basic Linux LAN
>>>>> support).
>>>>> It defines a discovery protocol, a scan service, a print service, but
>>>>> probably there are more, unrelated with the printer/multifunction/scanner
>>>>> world (I started today to dig the docs).
>>>>> By the way, I managed to fix the script found in the github repo I
>>>>> linked, and maybe the first step for me to get comfortable with the
>>>>> protocol will be to play a bit more from python, extending as much as I can
>>>>> the short script as a more complete CLI tool with discovery support and all
>>>>> the possible options. Then, I could manage to reimplement the protocol as a
>>>>> sane backend, which I think is a bit more hard (I need to study sane api
>>>>> first).
>>>>> Beware I'm a student with not-so-much spare time, but I'm interested
>>>>> in learning something new and get my canon working at best, and obviously
>>>>> contribute as much as I can. I'd like to add or expand wireshark dissectors
>>>>> for WSD and BJNP too. We'll see how much I can do.
>>>>> NB. if in the coming days I start a github repo for a WSD python
>>>>> playground, I'll share here the link.
>>>>> Here are a few links:
>>>>> -WS-Discovery (full spec)
>>>>> http://specs.xmlsoap.org/ws/2005/04/discovery/ws-discovery.pdf
>>>>> -WS-Print (at the bottom of the page there are links to all print &
>>>>> scan XML schemas and tech specifications)
>>>>> https://docs.microsoft.com/en-us/windows-hardware/drivers/print/ws-print-v1-1
>>>>> -WS-Print 2.0 (only printing? 3d printers? have no time to check)
>>>>> http://go.microsoft.com/fwlink/p/?LinkId=534008
>>>>> Il giorno lun 5 feb 2018 alle ore 15:54 Till Kamppeter <
>>>>> till.kamppeter at gmail.com> ha scritto:
>>>>>> On 02/05/2018 01:32 PM, Patrick Roncagliolo wrote:
>>>>>> > WDS is a protocol based on http connection with devices such as
>>>>>> > scanners, printers and so on. Most of the work is based on a bunch
>>>>>> of
>>>>>> > XML schemas, that are publicly available on MSDN. Searched a lot,
>>>>>> but
>>>>>> > for Linux I only found this (https://github.com/al42and/WSDolefuls
>>>>>> ),
>>>>>> > that fails to parse the scanner response, but succeeds to start the
>>>>>> scan
>>>>>> > job.
>>>>>> > I tried to search around SANE for WDS support, but I understood
>>>>>> there
>>>>>> > isn't.
>>>>>> >
>>>>>> > Is there a technical motivation behind the lack of support for WDS?
>>>>>> or
>>>>>> > it's just not the top priority? Could it be possible to create a
>>>>>> backend
>>>>>> > for this protocol? A lot of Canon printers would work like a charm
>>>>>> with
>>>>>> > a single good implementation, and I think it would be the same with
>>>>>> a
>>>>>> > lot of modern hardware. I could try to start a simple
>>>>>> implementation if
>>>>>> > someone instructs me with the basics of the SANE internal API for
>>>>>> > backends and working principles, I'm a student with (not much) free
>>>>>> time
>>>>>> > and it could be great to help a bit (and learn something) if
>>>>>> possible.
>>>>>> >
>>>>>> This looks like a second driverless (meaning no device/model-specific
>>>>>> software or data (aka driver) required) scanning method after PWG's
>>>>>> (Printer Working Group, http://www.pwg.org/) IPP Scanning which I
>>>>>> mentioned in another post on this list.
>>>>>> It seems that WDS exists already for longer time and is already
>>>>>> established, so that there are actually several scanners using it. Am
>>>>>> I
>>>>>> right? Which manufacturers are participating? Does it only work on
>>>>>> network devices? Or only on USB? Does it only work on printer/scanner
>>>>>> MF
>>>>>> devices or also on stand-alone scanners?
>>>>>> Patrick, it would be great if you could make a SANE module for that.
>>>>>> Another step to making a scanner as easy to connect under Linux as a
>>>>>> USB
>>>>>> stick. Also great for MF devices which happily print with PWG's
>>>>>> driverless IPP printing but do not support IPP scanning.
>>>>>>     Till
>>>>>> --
>>>>>> sane-devel mailing list: sane-devel at lists.alioth.debian.org
>>>>>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel
>>>>>> Unsubscribe: Send mail with subject "unsubscribe your_password"
>>>>>>              to sane-devel-request at lists.alioth.debian.org
>>> --
>>> sane-devel mailing list: sane-devel at lists.alioth.debian.org
>>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel
>>> Unsubscribe: Send mail with subject "unsubscribe your_password"
>>>              to sane-devel-request at lists.alioth.debian.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20180224/dfb908f8/attachment.html>

More information about the sane-devel mailing list