Annotation of wikisrc/projects/project/pubsub-sockets.mdwn, revision 1.1

1.1     ! dholland    1: [[!template id=project
        !             2: 
        !             3: title="Publish-subscribe Unix sockets"
        !             4: 
        !             5: contact="""
        !             6: [tech-kern](mailto:tech-kern@NetBSD.org),
        !             7: [tech-net](mailto:tech-net@NetBSD.org),
        !             8: [David Holland](mailto:dholland@NetBSD.org)
        !             9: """
        !            10: 
        !            11: category="net"
        !            12: difficulty="hard"
        !            13: 
        !            14: description="""
        !            15: Add publish-subscribe sockets to AF_UNIX (filesystem sockets).
        !            16: 
        !            17: The idea of a publish-subscribe socket (as opposed to a traditional
        !            18: socket) is that anything written to one end is read out by _all_
        !            19: processes reading from the other end.
        !            20: 
        !            21: This raises some issues that need attention; most notably, if a
        !            22: process doesn't read data sent to it, how long do we wait (or how much
        !            23: data do we allow to accumulate) before dropping the data or
        !            24: disconnecting that process?
        !            25: 
        !            26: It seems that one would want to be able to have both SOCK_STREAM and
        !            27: SOCK_DGRAM publish/subscribe channels, so it isn't entirely clear yet
        !            28: how best to graft this functionality into the socket API.
        !            29: Or the socket code.
        !            30: It might end up needing to be its own thing instead, or needing to
        !            31: extend the socket API, which would be unfortunate but perhaps
        !            32: unavoidable.
        !            33: 
        !            34: The goal for these sockets is to provide a principled and robust
        !            35: scheme for passing notices around.
        !            36: This will allow replacing multiple existing ad hoc callback schemes
        !            37: (such as for notices of device insertions) and also to allow various
        !            38: signaling schemes among user processes that have never been very
        !            39: workable in Unix.
        !            40: Those who remember AREXX will recognize the potential; but of course
        !            41: it will take time before anything like that can be orchestrated.
        !            42: 
        !            43: For this reason it's important that it be reasonably easy for one of
        !            44: the endpoints to be inside the kernel; but it's also important that
        !            45: peer credentials and permissions work.
        !            46: 
        !            47: Another goal is to be able to use publish/subscribe sockets to provide
        !            48: a compatibility library for Linux desktop software that wants to use
        !            49: dbus or any successor to dbus.
        !            50: 
        !            51: I'm marking this project hard as it's still only about half baked.
        !            52: """
        !            53: ]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb