[zeromq-dev] zyre and upw/limited platform

Osiris Pedroso opedroso at gmail.com
Sun Feb 26 13:30:30 CET 2017


Hi Doron,

Update:

   1. I read the ZTMP specs and understood what I have to do on a message
   by message.

   2. I rebuilt my machine by installing Windows 10 Anniversary edition and
   enabling the Linux subsystem on it (
   https://msdn.microsoft.com/en-us/commandline/wsl/about)

   3. I cloned and successfully built the following projects in Linux:
   1. zeromq\libzmq
      2. zeromq\czmq
      3. zeromq\libzmtp
      4. zeromq\zmtp

      4. I cloned and attempted to build the following projects in Windows:
      1. zeromq\ZMTP.NET (success)
      2. zeromq\NETMQ  (failed to compile using Dev2015)

I looked at the code existing in zeromq\ZMTP.NET.
There seems to be a NetMQ program.cs that is in no way related to the
ZMTP.NET implementation as far as I see. Please correct me if I am wrong.

My plan was using the zeromq\zmtp (C) implementation that Pieter did to
test the zeromq\ZMTP.NET existing code, since he has ZMTP v1.0, v2.0 and
v3.0 implementations there.
Then I would do something like add support to multiple frame messages.
Current implementation only supports single frame messages.

It would be really helpful to have a sample of two nodes (client & server?)
talking to each other using todays ZMTP.NET implementation in C# for me to
get further.

Appreciate your guidance,
Osiris


On Thu, Feb 23, 2017 at 10:17 AM Osiris Pedroso <opedroso at gmail.com> wrote:

Ok, I will do my research and start adding a socket type.
Then make it a nugget.

On Thu, Feb 23, 2017 at 10:01 AM Doron Somech <somdoron at gmail.com> wrote:

We can, v2 is  simpler to implement. Also NetMQ only support v2.
However, I'm fine with v3 as well, NetMQ will catch along.

On Thu, Feb 23, 2017 at 5:47 PM, Osiris Pedroso <opedroso at gmail.com> wrote:

Oops, just realized that are seven ZMTP protocol versions:
stable: 23 (24 and 25)
draft: 37 (and 38)
deprecated: 13 and 15

Doron, I like the incremental approach and the two first tasks.
I will start working on them and post questions if I get stuck.

But should we not be following at least the stable (23/ZMTP) protocol? I
hate to write throwaway code.
It seems that all further protocols depend on 23, so why not implement it
since the work is not done yet?
The extensions depend on it.

https://rfc.zeromq.org/spec:23/ZMTP/

   1. This document describes ZMTP 3.0. The major change in this version is
   the addition of security mechanisms and the removal of hard-coded
   connection metadata (socket type and identity) from the greeting.

24/ZMTP-PLAIN and 25 ZMTP-CURVE seem variations to add encryption.

https://rfc.zeromq.org/spec:37/ZMTP/

   - This document describes ZMTP 3.1. This version adds SUBSCRIBE, CANCEL,
   PING and PONG commands, and endpoint resources.

38/ZMTP-GSSAPI  is an addon to 23/ZMTP to add security as specified by
rfc2743 <https://tools.ietf.org/html/rfc2743>

   1. The ZMTP GSSAPI mechanism provides secure authentication and
   confidentiality for ZMTP 3.0. This mechanism utilizes the Generic Security
   Service Application Interface, which provides security services to callers
   in a generic fashion.



On Thu, Feb 23, 2017 at 9:09 AM Osiris Pedroso <opedroso at gmail.com> wrote:

Under the subtitle "The Socket-Type Property" in the protocol
<https://rfc.zeromq.org/spec:23/ZMTP/>shows that all your needs would be
covered in the ZMTP implementation.


On Thu, Feb 23, 2017 at 9:01 AM brunobodin . <brunobodin at gmail.com> wrote:

For my project, I need REQ, PUB, SUB, (all connected, no bind), but also
polling (in a LVC pattern), and PAIR for thread communication... I do not
have a clear view but it seems it exceed ZMTP ?
where does signalling interfere with this ? polling ? (I already have the
REQ working in a native zmq compiled over uwp)

Bruno


On Thu, Feb 23, 2017 at 3:49 PM, Osiris Pedroso <opedroso at gmail.com> wrote:

Doron,

What is needed next on it?
I see that there is a Dealer type socket only implemented. Implement other
socket types?

What would actually be the ultimate goal/API surface for a ZMTP compatible
library for UWP in C#?

Is it implementing the ZMTP protocol <https://rfc.zeromq.org/spec:23/ZMTP/>
in .NET?

Osiris



On Thu, Feb 23, 2017 at 7:31 AM Doron Somech <somdoron at gmail.com> wrote:

UWP is problematic, you just cannot run zeromq or netmq on it.

I started working on zmtp compatible library for UWP (in C#), you can find
it here:

https://github.com/somdoron/ZMTP.NET

There is a lot of demand lately for zmtp/zeromq/netmq compatible library
for UWP.

Someone just need to lead the project, ZMTP.NET is good beginning, which I
actually think will work on your case (can you use C# in your project?),
but it is not a complete library yet and in need of a maintainer.

On Thu, Feb 23, 2017 at 3:18 PM, brunobodin . <brunobodin at gmail.com> wrote:

Doron,

thanks for the heads up. The point I do not understand then is how I could
run a test on uwp platform, using a connected REQ socket on uwp side and a
bound REP on a server side ?

Thanks

Bruno

On Thu, Feb 23, 2017 at 11:08 AM, Doron Somech <somdoron at gmail.com> wrote:

Zeromq internally use socket (for signaling) and binds it (at least on
windows). Zyre also requires bind, as you already figure out.
Bottom line I don't think you can use zyre or zeromq on UWP, or at least
until bind is supported on UWP.


On Thu, Feb 23, 2017 at 10:59 AM, brunobodin . <brunobodin at gmail.com> wrote:

Hi,

I would like to leverage zyre in my application, but some nodes of the
application will have to run on uwp platform :-( (not my choice)

>From my first tests I am able to build and run zmq, and czmq on uwp
plaform, using slighly modified
dll, see  https://github.com/bbdb68/czmq/tree/uwp and
https://github.com/bbdb68/libzmq/tree/uwp,
but it seems (even if winsock is said to run on uwp platform...) that I
cannot bind sockets.
Zyre builds nicely on uwp.

For now this is not an issue in my design, since only the client nodes are
supposed to run on the uwp node.

Regarding zyre, I made some experimentation and :
* discovery step can work thanks to the gossip mode. UDP mode fails
* but communication fails, most probably because the node's router socket
cannot bind.

So my question is : do you think it is possible to design a "limited" zyre
node that could run on such a platform, without performing any bind, while
connecting to an existing network of zyre nodes ?

I suppose this would require some kind of proxy node that would be bound
and used as a intermediate between the "limited" nodes and the regular
node, at least for socket setup.

Any ideas ?

Regards

Bruno

_______________________________________________
zeromq-dev mailing list
zeromq-dev at lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev



_______________________________________________
zeromq-dev mailing list
zeromq-dev at lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev



_______________________________________________
zeromq-dev mailing list
zeromq-dev at lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev


_______________________________________________
zeromq-dev mailing list
zeromq-dev at lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev


_______________________________________________
zeromq-dev mailing list
zeromq-dev at lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev


_______________________________________________
zeromq-dev mailing list
zeromq-dev at lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev


_______________________________________________
zeromq-dev mailing list
zeromq-dev at lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev


_______________________________________________
zeromq-dev mailing list
zeromq-dev at lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20170226/d4f874cd/attachment.htm>


More information about the zeromq-dev mailing list