Wednesday, May 20, 2009

SoftwareArchitekTOUR Podcast

I just wanted to let you know about a new (german language) podcast on software architecture called SoftwareArchitekTOUR. It is hosted at heise.developer, supported by Microsoft, IBM, itemis, innoQ and Siemens.

The shows are hosted by Stefan Tilkov, Michael Stal, Christian Weyer and myself.

In contrast to SE Radio, we won't do many interviews, but we'll try to build a real community by encouraging feedback and audience interaction.

Go, give it a try and let me know what you think!
Tuesday, May 19, 2009

Microsoft Axum: "Erlang for .NET"

Microsoft has just started talking about a new .NET language called Axum. People have described it as "Erlang for .NET". To stick with this classification, one could also call it "Erlang with a more mainstream syntax".

It is an agent based language, which means that communication is asynchronous and message-based, and agents (cf, the Actors model) are considered active, i.e. they have their own thread or process. Data in messages is typed and can be (deeply) serialized to make remote message sending (i.e. agent distribution) possible and more or less transparent. Axum comes with integration into WCF.

Communication between agents happens via Channels. A channel is a kind of "asynchronous interface", i.e. channels define which messages can be sent into it and received from it. Agents "implement" Channels as a way of defining the kinds of messages it can handle.

Since the timing and sequencing in asynchronous applications can be hard to understand, Axum supports the definition of protocol state machines (yeah!!) for channels. So if you send something in the wrong order, you don't get a strange crash or a deadlock, but rather a meaningful error message. I *love* that part!

Axum comes with powerful operators to define dataflow networks. You can say things like: "wait until a message arrives in this channel and in that other channel, then combine the two messages in an array, forward them to the agent xyz and forward the result to these other two channels, in an alternating way". You can define things like that with concise expressions. Very cool!

Axum has a controlled way of handling side effects. Specifically, the "units of functionality" can be declared as functions, which means they have no way of accessing state (this is checked by the compiler). The point of this is, of course, to be able to run parts of dataflow networks in parallel. This is where the big benefit of agent-based/dataflow-oriented systems comes in.

I have to say, this stuff looks *really* interesting! Because it is based on the .NET platform you get interop with other .NET stuff more or less for free. There's also an integration with VisualStudio. It is really interesting to see how Microsoft, after "renovating" and "mainstreaming" Haskell to F# they now adress Erlang and pimp it up to Axum. Very cool!
Sunday, May 10, 2009

Afrikanische Ostern

(sorry for the German language...) An Ostern 2009 war segelfliegerisch das absolute Hammerwetter. Das kam so unerwartet und hat mich derart begeistert, dass is beschlossen habe, mal ein paar Eindrücke zu Papier zu bringen. Das 9 Megabyte PDF ist jetzt fertig. Viel Spass beim Lesen :-)
Tuesday, May 05, 2009

Cool Customers, Part 2

More work with interesting customers. Recently I was working with the folks at Schlumberger. They develop and operate oil drilling equipment, specifically directional drills. It's amazing what goes into such seeminly simple devices...

Today I am returning from DFS, the German air traffic management organization. I did some MDSD and PLE consulting with their R&D branch. Since I am a pilot myself, and consequently a "DFS customer" (a little bit, at least...) it was very interesting to talk to the people there and the future challenges of air traffic control. I also did an interview for omega tau.

back to

This is Markus Voelter's Blog. It is not intended as a replacement for my regular web site, but rather as a companion that contains ideas, thoughts and loose ends.

December 2005 / January 2006 / February 2006 / March 2006 / April 2006 / May 2006 / June 2006 / July 2006 / August 2006 / September 2006 / October 2006 / November 2006 / December 2006 / February 2007 / March 2007 / April 2007 / May 2007 / June 2007 / July 2007 / September 2007 / October 2007 / November 2007 / December 2007 / January 2008 / February 2008 / March 2008 / April 2008 / May 2008 / June 2008 / July 2008 / August 2008 / September 2008 / October 2008 / November 2008 / December 2008 / January 2009 / February 2009 / March 2009 / April 2009 / May 2009 / June 2009 / July 2009 / August 2009 / September 2009 / October 2009 / November 2009 / December 2009 / January 2010 / February 2010 / April 2010 / May 2010 / June 2010 / July 2010 / August 2010 / September 2010 / October 2010 / November 2010 / December 2010 / January 2011 / March 2011 / April 2011 / May 2011 / June 2011 / July 2011 / October 2011 / November 2011 / December 2011 / January 2012 / February 2012 / October 2012 / January 2013 /

You can get an atom feed for this blog.