Hi all,

Tonight's meeting was attended by Adam, Alan, Tijoy and myself. You can find a 
transcript of the meeting here:
http://miragroupware.org/wiki/doku.php/development/communication/archives/101216_message_center

I shall address the topics in the order in which they were discussed. Please 
use this mailing list thread to discuss these topics: many of the issues raised 
in the meeting were still not decided at the end of it, so this is the place to 
debate them before our next meeting.

For the Message Center, do we implement a custom messaging system or use a 
"standard" backend?
Adam said that this depends on what we want to do. For example, if we want to 
be able to send emails to other systems, we should use the "standard" 
SMTP/Exchange with IMAP/POP3/Exchange. Alternatively, if we do not want this 
functionality, it is easier to keep the messaging system contained and build it 
ourselves.
I said that our aim is not to replace the user's email client; so we should 
start with a contained system. We want to support rich text and attachments, 
but we do not want to interact with alternative systems. 
The best option, which was agreed on, is to implement our own custom messaging 
system with a "framework" approach so that, in the future, if we wish to 
support the other "standard" backends, we can extend the framework to support 
them.

What to use for network message structure and content (including serialization)?
A few options were suggested: 
Adam said that using XML might make it easier to validate messages. It is 
easier to understand and debug. 
Tijoy proposed JSON as an option because of its benefits in low-bandwidth 
scenarios. Alan said that we might need something more verbose than JSON for a 
mailing system of this kind.
If bandwidth is a concern, Adam suggested we look in to using protocol buffers, 
such as Google Protocol Buffers, for a very efficient data serialization 
format. Tijoy added that, if we use protocol buffers, we don't have to worry 
about object→XML/JSON and XML/JSON→object conversion because the protocol 
buffer generates the stubs itself. However, he also expressed a concern that 
protocol buffers would give us more than we need, e.g. different langage 
bindings (we don't use Java or Python).
Adam has used a message passing broker system in the past: QPID (an AMQP 
broker), with Qt. He found that it served all his requirements.

It was suggested that if Adam started to work on the Message Center, Tijoy 
could then join in once he is more familiar with Mira's code. The tasks for 
this feature could then be divided accordingly.

Alan raised the point that the Network layer is not binary-friendly, in that 
every "\r\n" or "\n" is treated as the beginning of a new message.
In order to support the Message Center, the Network layer will have to be 
modified to support binary data. As Alan wrote the existing Network layer code, 
he suggested that the three of them could work on restructuring this Layer 
together, at least at the beginning, to upgrade it in line with the 
requirements of the Message Center.
The existing network messages that we use could be "upgraded" for compatibility 
with the new network system with little difficulty. Adam said that we could 
encode their information with any of the proposed data serialization methods. 
Alan said that our existing messages can easily be adapted to the way messages 
are defined in protocol buffers.
Adam proposed that one field within the network message could be designated as 
the message type. That message type would then allow the code to interpret the 
rest of the fields appropriately.

Adam is going to prepare some code examples and submit them to the group for 
discussion. I asked him to publish them to a personal branch on Launchpad. He 
says he might be able to do some of it this weekend.

At the end of the meeting, Tijoy said that we should consider using HTTP, 
because TCP on a non-standard port (as we currently use) is often blocked in an 
enterprise environment. A problem put forward by Adam is that it might conflict 
with normal web traffic.

Discuss. :)

Regards,

Max Bossino
Project Manager
http://miragroupware.org


------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Mira-development mailing list
Mira-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mira-development

Reply via email to