Thursday 21 June 2007

Starting...

This is a diary for the design of scribble, a language for describing application-level interactions among distributed agents. A major part of this language will be designed over this summer --- the summer of 2007.

The immediate purpose of this language is to describe business protocols, in particular financial protocols, especially those in the public domain. Once described we wish to implement that protocol and execute it. Financial protocols can get complex and can incorporate any kinds of high-level communication actions among participants. So this language is also for all these application-level protocols.

You may write a simple script just you write a Ajax-based java script which uses other sites and services and combine them and does something nice with them. Those other sites and services will also be doing the same for yet other sites and services.

Or you are an EU official and should publish the description of a protocol, together with a message format, so that huge/large/small businesses can use them to maintain interoperability of their applications and machines in Euro area. Your protocol description should be able to be used for checking whether an endpoint application really conforms to that protocol, given an appropriate tool. Your description should be understandable, and should be able to be presented in multiple ways. And in future, as the needs and technologies change, we should be able to adapt and extend the description.

All in all it needs be a general-purpose language for describing application-level protocols. We wish to easily scribble interactions --- and execute them.

The language is co-designed with Gary Brown with inputs from our other dear colleagues whose names you will encounter as we proceed (surely you can help, Marco and Ray!). It will be based on a preceding language with the same name. But we shall re-examine the key design elements from their foundations.

This blog records the design evolution of this language. My objectives are:

(1) It will reflect design ideas real-time, with as immediate responses to any new ideas, contemplations, inputs from various sources, .. as possible.

(2) The corollary of (1) is we shall not mind updating the design decisions even if they have been recorded. A summary will be posted in some intervals.

(3) It will record the design philosophy, different design alternatives and their trade-offs: writing these down is a central objective of having this blog.

Discussions on concrete design elements begins in the next post.

Let's have a fun together...