Sunday, October 26, 2008

Digsby - The new legend in multiprotocol IM


IM has probably become the most sought after communication medium in today’s internet driven communication paradigm. There has been a monopoly of IMs among MSN, Yahoo and GTalk along with their own client applications. However, by now the trend has been to go for multi-protcol IMs rather than having different clients running on your desktop which can be extremely cumbersome with all the switching in between them. It is true that when each IM provider comes up with its own client, it can come up with a set of features that are optimized for the underlying protocols, security implementations, QoS etc. However, if you look at these hallmark IM clients, you'd see that most of the features are just gimmicks rather than actually useful features. For an example, the yahoo messenger has a load of additional features, which would at times overwhelm the resources and affect availability of the basic feature - the chat. MSN Messenger and GTalk client are simpler on comparative terms. However according to my experience the GTalk client consumes a lot of resources compared to the domain of functionality it addresses. I really admire all the technology that is used behind these IMs, but the extensive richness itself devalues the experience of a layman user at times.


So, multiprotocol IMs! What are the options we have? Recently, Meebo has come forward as the dominant web based multiprotocol IM, and it stands as the lone wolf in that arena. In addition, in the standalone application series, Pidgin and Digsby have become prominent. So, I thought of sharing my experience on Digsby which has caught up hype quite recently.


Pidgin, which was born as 'Gaim' is currently leading the race in the multiprotocol IMs. However, Digsby is giving a good fight to it, mainly through its gimmicky equation, IM + E-mail + Social Networking = Digsby. So, additional features on a chat client! If I start favouring Digsby, you might say that I am contradicting what I mentioned earlier about other feature rich chat clients. However, Digsby is different. It has ensured to offer only the features that cover a specific domain. Chat is obviously the key feature, and in today's context, e-mail goes very closely with it. Probably that's why we have chat modules integrated to the web-based e-mail portals. And social networking is supported big time in today's world, and it is also all about communication. Therefore, Digsby seems a very effective all in one package as an IM client. Even the latest Pidgin also has facebook chat integrated. But, Digsby takes it to another different level by having updates, notifications etc from the Social Networking applications such as Facebook, LinkedIn, MySpace and Twitter.


On the face of the Buddy List, Digsby is nearly identical to pidgin apart from the difference images used here and there. Therefore, this interface ends up in rather a tie among Pidgin and Digsby. The listing of different IM accounts in a sequential manner and the sorting methods available in both are the same. However, Digsby has more advance sorting mechanisms which allows to sort in a multilevel filtering process. Digsby's buddy list generally stabilizes faster than Pidgin, and the customizability seems greater.


However, what really swings for me in Digsby is its simplicity in configuration. Pidgin's interface is rather tech oriented, and a generic user would get confused seeing the protocol preferences, server choices etc. Digsby also has these. But they are quite hidden under the hood and during the creation of an account only the username password combo is expected in the UI, which can turn out to be rather comfortable to a layman user who consequently would not have to waste time trying to figure out whether to ignore certain settings or not. Even the preferences are really simplistic with a traditional left navigation menu and relevant components opening in the right.


Another cool feature is the pop-up that appears on the screen for chats, mail updates and various notifications if Digsby is out of focus. This is very noticeable, and the chances of missing out on something even for a short while are minimized. Apart from that, you can reply on the pop-up itself. This can be extremely convenient if you are multitasking. In addition, the snapshot view of mails becomes highly handy to get a quick idea. The chat window is simple and has all the basic operations visible. Pidgin follows the Firefox extensibility style and is extended using plug-ins. This is an important feature, and Digsby does it by widgets. Moreover, the ability for Audio/Video chat puts Digsby in front of Pidgin in that aspect.


However, with all the might, it has some shortcomings. The most obvious one is the memory consumption. It is understandable with the feature set. But, still with GTalk and Yahoo chats logged in while Gmail is active, 25MB seems pretty expensive in terms of memory. Although it did not matter me much with my 2GB memory, it can be an issue and Pidgin can easily handle the above two IM accounts well under 15MB or memory in the same kind of test scenario. In addition, Digsby requires an account to be created upfront, and this central account has access to all the credentials of our accounts. Therefore, a security threat can be a possibility unless extra care is taken by the Digsby community. In addition, it does not provide support for some protocols supported by Pidgin such as IRC, Gadu Gadu, GroupWise, SILC etc. Since I installed Digsby, Firefox has crashed few times without even having the ability to restore. I wonder whether this is a direct consequence of Digsby. However, if it is, a patch better come out soon :) Apart from all these, still it does not have a native Linux version out yet, although they've announced that a Linux and Mac version will be coming soon. So, Pidgin is still going to keep ruling the Linux domain.


Simply put, my conclusion is, for a person who values convenience over other techy things like performance, extensibility etc, Digsby is the ultimate choice. With all due respect to Pidgin as the leading multiprotocol IM client, I believe Digsby will start a legend of its own.


Thursday, October 23, 2008

MOINC - A new epoch of Web Services


Web Services has become the ultimate choice for modern organisations to harness the power of network based computing. However, the the original Web Services model faces two inherent shortcomings despite all the good things it has to offer. Firstly, the traditional implementation finds it hard to scale up with the rising number of service requests, and thus 'scalability' is at stake. Therefore, the service providers are forced to go for more hardware oriented solutions to facilitate high scalability, investing fortunes in most of the cases. In addition, when the requests overwhelm the service provider, he is forced to reject further requests. This results in the decline of 'availability'. Web Services and SOA have definitely created hype, and have already become dominating technologies in the enterprise arena. But, when scalability and availability are threatened, how is the paradigm of WS going to survive?


The answer lies in the field of distributed computing which also has become prominent and interesting technological breakthrough. Projects like SETI@Home, Folding@Home and middleware technologies like BOINC have become hallmark technologies in this respect, especially in the field of Volunteer Computing. Therefore, a novel idea is to integrate a touch of the above techniques to enhance the availability and scalability of Web Services by distributing the load subjected to Web Service geared service providers over a cluster of computers. This innovative idea was given by Dr.Sanjiva Weerawarana, Chairman & CEO of WSO2, when we were in the quest for a problem to solve as our final year project of the Computer Science & Engineering course of the University of Moratuwa.


So, here we are! A group of ten comprising myself and nine of my friends at CSE are currently in the development stage of the platform which would solve the above two issues in the days to come by. Our project named MOINC (Mora Open Infrastructure for Network Computing) tries to give a solution by creating a cluster of computers made of volunteer computers which are connected to the World Wide Web, and distributing the load among all these nodes to get the processing done. Simply put, if things go well (which we are very keen to see happen :) ), a single application of this would give rise to a fully cranked up distributed super computer facilitating Web Services with high availability and scalability. The extremely generic nature of this project would give the users of this platform the capability to implement virtually any Web Services based application on top of it - even systems like SETI@Home.


The magic happens with the fine blend of the following four components.
- MOINC Server - The core component which is a self contained entity that manages the cluster, accept service requests, perform default WS processing etc.
- MOINC Client Agent - The component that will run in each and every node computer in the cluster, which will communicate with the Server and take care of all the activities in the node end.
- MOINC Server Manager - The component which gives a range of additional features to the MOINC platform for improved Quality of Service with features like credit management, trend analysis, social networking etc.
- Thisara Communication Framework - The Apache MINA based communication protocol which will be used for internal communications of the MOINC platform.


So, we claim that it solves two issues in the Web Service paradigm. But, the problem solving does not end there! This becomes a solution to make good use of idling computer power and electricity wasted during the time that computers are up and not doing any productive work. Hence, two birds are killed with one stone!


All the necessary information is available in the official project web site, and we have already done an alpha release of the Thisara Communication Framework. The source code can be checked out from our SVN repository as well. The team is high spirited, MOINC is rapidly progressing and the world of future Web Services seems a highly scalable and available place :)