Designing Service Oriented Architecture (SOA): Latency & Re-Use, what you must get right and what you can afford to get wrong

In designing a SOA based system I believe the number one concern should be latency. As I discuss in my article on RPCs and Protocols, getting latency right is extraordinarily hard. So my advice to people designing SOA systems is – worry about latency. If you manage to get past latency then you can spare a thought for re-use, this is where loose coupling and versioning come in. But in my opinion most people can safely ignore both issues. After all, even if you try to tackle them you're likely to get it wrong (and no, that's not an insult, the 'experts' who design nothing but protocols and protocol implementations screw it up all the time) so why waste time and energy when you could be focused on shipping your service?

Continue reading Designing Service Oriented Architecture (SOA): Latency &
Re-Use, what you must get right and what you can afford to get
wrong

Does Anyone Know of a Good Quality USB KVM?

And now, dear readers, I ask a favor. I have a PC (for work) and a Mac (for life) in my home and they share the same keyboard, mouse and monitor. I have an old PS/2 KVM box that works really well so when I bought the Mac I wanted to hook it in to the KVM. The problem is that the Mac only uses USB peripherals. So I made the mistake of buying the Y-Mouse, an adapter that converts PS/2 connections into USB connections. As I explain here, the Y-Mouse does not work very well for me. So what I'd really like to do is buy a USB KVM. I actually don't care about the "M" (e.g. Monitor) part, I have a HP 2335 and use its built in monitor switch (which guarantees me the absolute best image possible). So what I really need is a USB Keyboard/Mouse switch.

I did some research and all I could find were complaints about USB KVMs, the main issue being switching time. It seems that switching between machines can take several seconds. Does anyone know of a good quality USB KVM that can switch really fast? If so please drop a comment on this article. Thanks!

N.B. I am aware of Synergy. But Synergy has never worked very well on Mac's and my PC is actually running a VPN which ends up meaning that the keyboard and mouse commands would have to be routed over the open Internet, this is both a security and a performance nightmare.

Sharing Printers Between OS X Boxes in a Screwed Up Local Network

One of the reasons I bought a Mac for myself and my wife is that I could never get printer sharing working between Linux and Windows. I figured if Marina and I both had Macs then the problem would be solved. Unfortunately, I was wrong. While Apple has mostly embraced Bonjour technology there is still one major area that is left out – Apple's Printer Server (e.g. the open source CUPS) which uses its own multicast based discovery solution. When I hooked my USB printer to my OS X box and turned on printer sharing I couldn't get my wife's Mac to see the printer! The problem turned out to be that both my wife and I's computers have unique IP addresses that we get from our ISP's DHCP server. Unfortunately the ISP's DHCP server gave us addresses in different subnets! CUPS default configuration does not allow printer sharing between machines that are not on the same subnet. The CUPS configuration can be overridden fairly trivially but I don't want to because it would either mean hard coding in my wife's IP address (which changes) or allowing the whole world to print on my printer (which I'd rather not). Thankfully there was a really trivial solution to the problem that was pointed out to me by Stuart Cheshire, the father of Bonjour.

Continue reading Sharing Printers Between OS X Boxes in a Screwed Up Local
Network

Web Services Choreography Description Language (WS-CDL)

WS-CDL is in my opinion an example of premature standardization. WS-CDL provides multiple layers of abstraction, an enormous set of features and a simulation based design. Personally I think a purely declarative approach with little or no abstraction that focuses on making it easy to describe basic stuff would have been better. I don't know which position, mine or WS-CDL's, or which mid-point between the positions is right but I'm pretty sure that no one else does either. We just don't have enough industry experience to standardize choreography descriptions. Unfortunately the potential standardization of WS-CDL can do real harm as it will likely freeze the experimentation and learning that the industry so badly needs.

Continue reading Web Services Choreography Description Language (WS-CDL)

Software Development Tools – Declaring Maturity

My job requires me to figure out road maps for software technologies. One of the key heuristics I use in figuring out where a software technology is likely to go is mapping out that technologies transition from a procedural to a declarative design environment. This technique is proving a big help for my work on utility computing.

Continue reading Software Development Tools – Declaring Maturity

Ode to Apple – The iMac Rocks!

Atoning for my mistake of buying my wife a Dell laptop running XP that has more or less been a constant nightmare over the years we've owned it I decided to give her a birthday present a bit early – a new iMac. My wife is no technophobe but similarly she is not a technophile. To her a computer is a way to get things done. But her attitude changed when I get her the iMac.

Continue reading Ode to Apple – The iMac Rocks!

Utility Computing – It's management, stupid.

All this talk of computing as a fungible utility is very nifty but it wouldn't be the first 'sounds great, adds nothing' technology to come down the pike (repeat after me – "I mostly just need XML and HTTP."). So as I embark on my new job of helping to figure out BEA's utility computing strategy I want to make sure that there is some value in "them thar hills". Which means that before I worry about what utility computing is or what it should do I want to first know what the problem is.

Continue reading Utility Computing – It's management, stupid.

Rights Not Exercised are Lost – Tibco, BPEL & Rendezvous

Our rights only exist to the extent that we defend them in our daily lives. The right to free speech, for example, would quickly drain away if we didn't frequently exercise it and by so doing kept the knowledge of the rights importance and the mechanisms to protect it alive and well. But too often people believe that the need to defend our rights doesn't apply to them because they are just a single individual. Who cares what a single person does? But when each individual believes their actions don't matter then they significantly reduce the work required by those who would take our rights away.

Continue reading Rights Not Exercised are Lost – Tibco, BPEL &
Rendezvous