Saturday, March 26, 2005

I want a T-Shirt

I don't go in for themed T-Shirts but in this case I would be willing to make an exception. I want one with the phrase:-
    Cure call-stack mentality.
written on the back.

Gregor Hohpe has a nice piece about the whole area (replete with useful pictures) here.

If you start distributed systems design with experience in OO and Web Page apps in your head, assymetrical thinking is very natural. After all HTTP is request/response which is caller/callee, therefore...method/function calls are the fundamental particles of Web based system design.

Unfortunately, as practitioners of distributed systems know, the tight temporal coupling between the caller and the callee is the root cause of fantastically tall mountains of both engineering complexity and organisational complexity.

It will come as no surprise that I agree with Gregor that asynch. messaging is the right abstraction. It is the fundamental abstraction of the PSB integration infrastructure for example.

Even in a pure asynch messaging system however, asynchrony between caller and callee is an issue. In process-to-process integration, messages need to "hop" in a realiable and auditable way across organisational boundaries. The question inevitably arises - "who instigates a hop?".

  • Does the ultimate reciever for a message attempt to get one? (PULL Model)

  • Does the sender attempt to send one? (PUSH Model)


Finding a solution in any particular system is much more than just flicking a coin. There are many issues at play here ranging from technical to organisational.

The issues, as experienced in the design of the PSB, are fleshed out here.

I am a strong advocate of pull-based asynch messaging. When asked why, I point to the world-wide e-mail system and ask the question : which is easier, (a) accessing your e-mail from with a simple POP3/IMAP4 account or (b) setting up an SMTP server and then talking to it?

Now there are absolutely cases where the SMTP server analogy is the right one, but in my experience, a lot of folk who should be thinking of asynch. XML messaging in POP3 terms, think of it in SMTP terms. At the root of the issue is how the question of the choreography of messaging hopping has been conceptualised.

Friday, March 25, 2005

Jython on Sun's SJS App Server

David Ogren has documented the tweaks needed to the installation instructions in my Jython servlets tutorial for Sun's SJS App Server.

Tuesday, March 22, 2005

Pessimistic locking impractical? - yup.

Gordon Luk says about resource locking on the internet (you know "transactions" and all that stuff):
    "...that people trying to work around this problem with complex WS algorithms are certainly expending a lot of time and effort chasing an impractical goal."

+1

Songs, presentations and analyst briefings

Songs, presentations and analyst briefings. This week's ITWorld article is about words on MP3's. Specifically, it is about how audio interfaces are tuned to music (pun, ugh!) and thus less then stellar when you are "browsing" lots of words captured on audio.