Skip to main content

Posts

Safe and effective software

Someone recently asked me why I was working on the particular topics that I was interested in. I am afraid that in the heat of the moment I had a reasonable but ultimately lame answer (something about reducing friction in the marketplace). In fact, the true answer is simpler and much more powerful. I want to be part of a 'professional' industry, and I believe that we are not really there yet. It is a constant source of amazement to me that there have not been any class action lawsuits against certain high profile software companies. I like the phrase safe and effective , which describes the basic requirements for medicines of course, but should be equally applicable to software. What would the benefits of being able to label a system safe and effective? Primarily it means that someone using the system has some assurance that the software will do what it is supposed to do, and that it wont lead you into trouble. Of course, if you take too many aspirin, or if you misuse a softwar...

A Semantic Engagement

When someone says something to the effect “We will add Semantics and all your problems will be solved” the image that that conjures up for me is salt: “Let us sprinkle some Semantics and it will taste better”. And, yes, somehow, Semantics always seems to be capitalized. Needless to say, I do not buy this for a couple of reasons: Everything has some kind of semantics. It just may not be all that useful. Any explicit representation of the semantic relationships becomes syntactical. Processing therefore becomes processing of structures; you are still writing regular code to do that processing. There is no such thing as two people or agents having the same interpretation of a term. Oops, there goes all that Ontology stuff :) What a chair means to me is overlapping, but different to what it means to you. Even for me, the meaning depends on what I am trying to do (arrange them for dinner, sit on one, ship it and so on.). Luckily, agreement on the meaning of a term is neither poss...

What's yours is mine, what's mine is mine own

Try to take a teddy bear from a toddler and you will learn at first hand what ownership means to people. Ownership is clearly important to us all; but most distributed architectures fail to learn the lesson; most DC architectures assume that there is “someone in charge”, who implicitly own everything. The SIC assumption is clearly not true for the Internet. I personally think that it is not all that true even within a single corporation. (Try to get a sales person to give you their Rolodex; toddlers are no competition.) This, for me, is the true reason to be excited about Service Oriented Architecture. Finally, we are beginning to understand that a computer architecture that respects people's desire to maintain ownership is clearly more likely to be functional than one that does not.

Face to face

Last week we had a three day Face to Face meeting of the group working on the SOA Reference Architecture. On the whole it was a very civilized affair, no voices were heard raised in anger. Although some pretty hard decisions and comments went down. Personally, I think that, if we can keep the momentum going, this architecture is going to be one that we are proud of. Of particular interest to me is making sure that human actions are properly represented. This is not yet another IT architecture. To do this, I think that you need to embrace the fact that the overwhelming majority of action will be directed by people, at people, and involving people. On a technical note, I am pretty convinced that we need to incorporate norms and institutions. A norm is just a rule about how people should behave and what the meaning of that behavior is. An institution is just a fancy name for a social structure -- it can include everything from a fishing club, a company, through to the US government as def...

Reference Architecture

This week we are going full blast at the SOA Reference Architecture. The key to getting this right (IMO) is to make sure that the actions that people take in 'real life' are properly taken into account in the context of SOA. I.e., SOA is a means for people to act 'at-a-distance', at least indirectly. So, we are looking at the roles that people play, the authority that a role brings and so on. Pretty interesting stuff. The other intriguing thing is that I (at least) am learning more about UML. In particular, views and viewpoints. A little scary to think that the entire RA might be captured as a series of views and viewpoints.

A Policy Reference Model

We had such fun doing the SOA reference model (we have just had a successful vote to go to Committee Specification status) that I thought we might be able to repeat the exercise in a different domain. The primary benefit of the RM4SOA was that it establishes a common technology-neutral way of talking about Service Oriented Architecture. Precisely because we didn't take a stand on the technology meant that it was less useful to potential SOA vendors (who want to know what to implement) and more useful to everyone else (who want to know what all the fuss is about). I see a similar need and potential for Policy. Policies are becoming more and more visibly important; specifically declaratively stated policies. The reason is clear enough: who do you want to be setting the policy in your organization: you (or another relevant stakeholder) or the programmer who built the system that you are trying to use. Explicit, declaratively written policies are a key technique for putting decisio...