Archive for January, 2009

Open Source Wireless Village IMPS

Thursday, January 22nd, 2009

The question of whether to open source the wireless village code on onesoup came up before, but I thought I should revisit it now to gather more feedback, and open the conversation.

As I have blogged about in the past, I am fully re-writing the system to move to XMPP. All the code, obviously, is now written in Python. The new architecture consists of a twisted HTTP server and TCP server (for CIR) together with client interfaces to XMPP. Actually, in retrospective, the architecture is not very dissimilar to the one I would expect for a BOSH Connection Manager.

I am considering the pros/cons of opening the project under an open source license. The obvious consequence of opening up would be that anybody could setup their own onesoup server, i.e. a Wireless Village Connection Manager against XMPP backend(s). In other words, any XMPP admin could install onesoup and get their mobile users to access XMPP through the built-in IMPS client on the phones.

But there is a much more important aspect to be considered: interoperability between WV domains. Today, the Wireless Village Server to Server Protocol (SSP) is fairly useless. But if onesoup became a common software gateway for the mobile world to access the XMPP federation, we’d then be able to use the XMPP S2S to replace the IMPS SSP, and then achieve true mobile instant messaging interoperability. And, the thing is, one the key reasons, or perhaps the key reason, SMS triumphed as a disruptive messaging technology was interoperability. You can send and receive messages to your friends, regardless of their operator. Interoperability is the quintessential property for open communications.

But there are other reasons I can think as of why to open source something like onesoup. First, there are number of players competing with proprietary mobile instant messaging technologies, and a really great way to compete effectively with them is through openness. Then, there are also pure technological advantages in IMPS for the mobile world vs raw-XMPP or HTTP-XMPP (BOSH), such as transactional message acknowledgements, binary XML and CIR (SUDP, that is). So in a way, an IMPS CSP HTTP connection manager like onesoup, could be the key for spreading XMPP to the mobile world.

Obviously, there are the financial aspects to be considered too. Open sourcing needs to make financial sense, not only to me, but to any other party that could potentially become a contributor. Sure, there are personal reputation, consulting, contractor, support, etc. opportunities associated, but let’s face it, it’s very hard to make a living out of writing open source software.

Because that’s really the trade off, moving from being a service provider, to being a software provider. I believe Jabber did not get acquired by CISCO because of their service (under the jabber.org domain), but because of their software, talent and responsibility for the standard. On the other hand, the success of Jabber Inc. can be largely attributed to the success of the jabber.org domain.

At this point I’d like to open the conversation, both with end-users and potential contributors alike. Do you think there is space, interest and returns for creating an open source wireless village server to interface to the XMPP federation?

Reliability matters

Monday, January 12th, 2009

I spent some time last night reviewing the logs for the last weeks. I wanted to share with you some numbers about onesoup’s usage so far:

  • 513 registered users
  • 3,398 chat sessions
  • 1,105 upstream login errors (MSN, Yahoo, Gtalk, etc.)
  • 401 login errors
  • 59,305 messages sent and received

So, while this is good news, it’s also surprising to see so many errors. Almost half the attempts to connect to the service ended up in failure. There is a combination of factors going on here, which I ‘ll take the opportunity to explain.

I consciously decided not to require active registration, but rather to pass on credentials to 3rd party networks. This makes it simpler to use the service, and also avoids me having to store passwords for 3rd party services. I know this is a security feature important for many users.

But passing on credentials has a down-side: not all phones support PWD authentication scheme, and insist on using MD5 (or extremely rarely SHA1). Possibly up to 1/3 of all phones don’t support PWD. That’s a large proportion of users.

I have been thinking how to address this, at the same time that I consider the  move to XMPP. Here’s what I am planning:

  • In order to chat through onesoup, users will have to register and pick a username and password. This will allow me to move to support all phones.
  • Signing into onesoup will connect you to the onesoup mobile community, on onesoup’s XMPP server.
  • As with any XMPP server, users will be able to add XMPP contacts on other servers that are supporting the server-to-server (XMPP federation). Gtalk is allowing it.

By taking these steps, users will be able to chat with other onesoup users, and with any other friends on XMPP. This includes all native XMPP servers with s-2-s enabled, as well as Gtalk and AIM/ICQ.

However, this also means that Yahoo and MSN support will disappear. Yahoo and MSN account today for 284 out of the 513 total users. Even though it’s a difficult decision to make, for me having a reliable service is more important that serving 513 users 50% of the time only. Unfortunately, that means switching off Yahoo and MSN.

Now, these changes won’t happen immediately. I am literally starting to code the new XMPP-powered onesoup IMPS CSP chat service, and it will take weeks until I release anything that works reliably.