Uploaded image for project: 'Etch'
  1. Etch
  2. ETCH-157

UDP implementation for Java, C# and C binding

    XMLWordPrintableJSON

Details

    Description

      Hi,

      attached are a series of patches, which add UDP support to Etch for the Java, C# and C bindings. It can be used in place of TCP by replacing the url scheme with UDP. The UDP transport support has been extended with a configurable single session mode, which can be used to run leightweight servers. Please see the attached file "Leightweight_Etch_Server.txt" for a more detailed description of this mode. It has been written in the confluence wiki style syntax and together with the attached images it's suitable for creating a new etch documentation page. The single session mode has been extended further with a support for one-way method calls from the server to multiple clients. For more information, please look at the "Signals" section and the attached patch files.

      The UDP implementation for the C binding is limited to single session mode. It limits the ability of etch servers to call methods of more than one remote client. The signal extension can be used to avoid this limitation.

      Below a short description of the attached patches is listed. They can be applied using the following GIT command: "git am -k --keep-cr --whitespace=nowarn <path>/.patch" or can be applied to a clean SVN checkout: "patch -p1 -i <path>/.patch".

      • Add property to skip building of the examples:
        0001-build-add-skip.examples-property.patch
      • Bump dependency to .NET 4.0 and NUnit 2.5.9. The C# UDP implementation is based on features available in .NET 4.0.
        0002-binding-csharp-bump-dependencies-to-.NET-4.0-and-NUn.patch
      • Add runtime and build support for the Mono framework (Mono >= 2.10.1, C#).
        0003-binding-csharp-add-mono-support.patch
      • Make UDP and TCP protocols seamlessly interchangable in Etch (UDP support for C# and Java).
        0004-binding-csharp-add-udp-transport-support.patch
        0005-binding-java-add-udp-transport-support.patch
      • Add configurable server single session mode. URL parameter: UdpConnection.singleSession=true
        0006-binding-csharp-add-udp-single-session-support.patch
        0007-binding-java-add-udp-single-session-support.patch
      • Add inet_who object to track remote etch clients. Required by the C UDP implementation.
        0008-binding-c-add-inet_who-object.patch
      • Add UDP transport support to the C binding (single session only). The "UdpConnection.singleSession" url parameter is not supported and ignored. A patched version of APR (test with version 1.4.2) is required to send broadcast messages under Linux. The patch has been submitted, but is currently not integrated (see https://issues.apache.org/bugzilla/show_bug.cgi?id=46389).
        0009-binding-c-add-UDP-single-session-transport.patch
      • Add signal support for single session mode. See the attached "Leightweight_Etch_Server.txt" document.
        0010-compiler-add-Signal-annotation-support.patch
        0011-binding-csharp-add-Signal-support.patch
        0012-binding-java-add-Signal-support.patch
        0013-binding-c-extend-send-sendex-for-etch_who.patch
        0014-binding-c-add-Signal-support.patch
      • Add signal examples for the C#, Java and C binding.
        0015-examples-add-signals-example-for-csharp-java-and-c.patch

      Authors:
      Armin Müller <mueller@itestra.com> (itestra GmbH by order of BMW Group Research and Technology)
      Aleksandar Kanchev <kanchev@itestra.com> (itestra GmbH by order of BMW Group Research and Technology)

      Attachments

        1. 0001-build-add-skip.examples-property.patch
          1 kB
          Armin Müller
        2. 0002-binding-csharp-bump-dependencies-to-.NET-4.0-and-NUn.patch
          37 kB
          Armin Müller
        3. 0003-binding-csharp-add-mono-support.patch
          24 kB
          Armin Müller
        4. 0004-binding-csharp-add-udp-transport-support.patch
          32 kB
          Armin Müller
        5. 0005-binding-java-add-udp-transport-support.patch
          29 kB
          Armin Müller
        6. 0006-binding-csharp-add-udp-single-session-support.patch
          7 kB
          Armin Müller
        7. 0007-binding-java-add-udp-single-session-support.patch
          5 kB
          Armin Müller
        8. 0008-binding-c-add-inet_who-object.patch
          8 kB
          Armin Müller
        9. 0009-binding-c-add-udp-single-session-transport.patch
          153 kB
          Armin Müller
        10. 0010-compiler-add-Signal-annotation-support.patch
          12 kB
          Armin Müller
        11. 0011-binding-csharp-add-Signal-support.patch
          13 kB
          Armin Müller
        12. 0012-binding-java-add-Signal-support.patch
          14 kB
          Armin Müller
        13. 0013-binding-c-extend-send-sendex-for-etch_who.patch
          9 kB
          Armin Müller
        14. 0014-binding-c-add-Signal-support.patch
          20 kB
          Armin Müller
        15. 0015-examples-add-signals-example-for-csharp-java-and-c.patch
          95 kB
          Armin Müller
        16. Etch_UDP_Multi_Session.png
          78 kB
          Armin Müller
        17. Etch_UDP_Single_Session.png
          49 kB
          Armin Müller
        18. Leightweight_Etch_UDP_Server.txt
          5 kB
          Armin Müller

        Activity

          People

            Unassigned Unassigned
            armin.mueller Armin Müller
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: