Misadventures in Concurrent and Parallel programming, plus random comments on software performance and various OSS contributions.
Friday, 9 May 2008
Service Oriented UIs and MS Architecture Insight
I gave a talk at the Architecture Insight conference held by Microsoft a couple of weeks ago. The talk was on Service Oriented UIs, a term I stole from an InfoQ article from November last year. Some times referred to as Service Oriented - Front End Architecture, it was about how to build light weight (generally web-based) UIs and some of the traps and pitfalls involved. You can see the slide deck from my talk on the Insight Conference web site.
Friday, 18 April 2008
System.Messaging for Mono
Currently there is no implementation for the System.Messaging namespace in Mono. Judging from the mailing lists there appears to be couple of attempts to add an implementation, but no results as yet, so I decided to have a go myself.
I have just released on Google Code a 0.0.1 release of a bridge between Mono's System.Messaging and Apache QPid. Apache QPid is an implementation of the AMQP protocol. AMQP is an open protocol designed to provide a standard wire protocol for asynchronous messaging buses. There are a number of other open source implementations of AMQP floating about too. RabbitMQ looks like another interesting implementation, built on Erlang.
I used the QPid client libraries to provide the client-side networking implementation. Unfortunately that requires linking to 8 different assemblies. Forcing users of Mono's System.Messaging to link to these at compile time seemed excessive, so I wanted to decouple the QPid implementation from System.Messaging. Unlike JMS, Microsoft's System.Messaging API was never designed to have multiple implementations. Therefore, in order to decouple the 2 I had to add a provider layer into the Mono code base. This is available in the form of a patch on the same Google code site.
The current version only provide basic sending and receiving. XML and Binary message formatting are also supported, however that is implemented inside of the Mono code base. I haven't looked into performance yet. It currently runs all requests over a single socket connection (multiplexing using AMQP's channel feature), which probably not the optimal approach.
I'll see how far I get before I head off on my big trip.
I have just released on Google Code a 0.0.1 release of a bridge between Mono's System.Messaging and Apache QPid. Apache QPid is an implementation of the AMQP protocol. AMQP is an open protocol designed to provide a standard wire protocol for asynchronous messaging buses. There are a number of other open source implementations of AMQP floating about too. RabbitMQ looks like another interesting implementation, built on Erlang.
I used the QPid client libraries to provide the client-side networking implementation. Unfortunately that requires linking to 8 different assemblies. Forcing users of Mono's System.Messaging to link to these at compile time seemed excessive, so I wanted to decouple the QPid implementation from System.Messaging. Unlike JMS, Microsoft's System.Messaging API was never designed to have multiple implementations. Therefore, in order to decouple the 2 I had to add a provider layer into the Mono code base. This is available in the form of a patch on the same Google code site.
The current version only provide basic sending and receiving. XML and Binary message formatting are also supported, however that is implemented inside of the Mono code base. I haven't looked into performance yet. It currently runs all requests over a single socket connection (multiplexing using AMQP's channel feature), which probably not the optimal approach.
I'll see how far I get before I head off on my big trip.
Thursday, 15 November 2007
First Post
Welcome my new Blog, where I hope to dump my thoughts on technology (mostly software development).
Subscribe to:
Posts (Atom)