Showing posts with label nodes. Show all posts
Showing posts with label nodes. Show all posts

Friday, November 20, 2009

Erlang Version of Jingle Nodes Services is Working!

We are moving very fast with the Erlang version of the Jingle Nodes Services API, after 2 weeks of finishing the Pure Java Version, with great help from contributors, we have a working Erlang Version.
I invite you to check the code at: Jingle Nodes Source
It is based on the excellent exmpp library which besides being rich featured, is also pretty straight forward to use and reliable.

The current version can provide fully working relay channels, but still lacking some features:

  • Detect Inactive Channels
  • Purge Inactive Channels
  • Tracker Services Provider
And indeed we have some bugs to be catch.

Contributions are really welcome!


How to Contribute?
Check the current opened issues: Jingle Node Issues
Send me an email with your intentions or if you wanna go one step ahead, patches are also accepted.

Monday, October 26, 2009

Jingle Nodes in Practice - Sea Beyond




Jingle Nodes will have a experimenting session and a presentation on Sea Beyond, which is a new technical event that explores the future of real-time communication technology. It is organized by ProcessOne, an authority in XMPP and real-time communication software.


During the development sandbox portion of the event, we will have coding sessions of:
  • Adding Jingle Nodes Services to an ejabberd server
  • Placing Jingle Calls using the created service
For the presentation session, I will be showing what is XMPP Jingle and how it is dropping the Voice Over IP complexity, making XMPP Multi-Media Sessions a reality.


The first Sea Beyond event will take place on December 17, 2009 in Paris, France, from 9:30. The formal program will conclude at 19:00, but will be followed by an opportunity to share a drink and talk with other guests and speakers.





Monday, October 19, 2009

Java and Jingle Nodes


For a couple of months, I was wondering if Java would be suitable to provide relay services, in case of a Java Jingle Client wanted to enable it.
Of course Java is perfectly suitable for using a Relay Service, no doubt about the trivial statement. But is Java suitable to be used on providing it?
Researching on Internet I found nothing but rumors and assumptions. So I decided to try it myself. I agreed with a Jingle Node Project Contributor to provide a Java Relay Channel Class just like we have the C++ version using Boost. And I would provide the UnitTest Cases in order to measure added latency. This weekend with the code in our hands we ran the tests.

All the tests were conducted using loopback interface in order to prevent real network to influence in the results.
You can find the Test Case in Jingle Nodes Repository:

Results running 10 simultaneous channels processing and relaying 30 packets, the overall average values after 100 tests, for Latency was:
  • Max: 52ms
  • Min: 7ms
  • Avg: 10.0ms
Surprisingly the results are very satisfactory for Client Side Relaying. And I have to admit that the Java Code is by far more elegant and simple.

This means that SIP Communicator is not only a good candidate for Jingle Nodes usage, but also a great candidate to also provide Jingle Nodes relaying features.
For comparison criteria I created an extra test case based on a single Relay Channel using a C++ and a Java Channel measuring the added latency by using a Relay, instead of direct traffic. The results were the following:

C++/Boost-ASIO Latency:
Max: 16ms, Min: 2ms, Avg: 3.0ms

Java NIO Latency:
Max: 90ms, Min: 2ms, Avg: 5.0ms

I strongly encourage Java and C++ Developers to do a try out and spicy the discussion.