Monday Feb 28, 2005

The Real Value of Service-Oriented Architecture

Many software architects seem to want to perpetuate the giddy 'buzzword escalation' of the 90's long after the decline of dot-bomb thinking has enabled customers to return the focus to hard measurable quantities like ROI. One of the terms that on the surface seems over-hyped is Service-Oriented Architecture or SOA. The methods and benefits of SOA sound like a late night repeat of what the software industry was aiming for over 15 years ago when it started focussing on object-orientation, and then again about 10-13 years ago when developers and deployers realised that a packaged component under middleware such as COM, DCOM and CORBA could have useful 'physical' properties like ease of deployment, discovery and replacement.

A web service is simply a remote-addressable component interface. A service-oriented architecture is achieved when the following are true:

  1. there is a common platform-neutral middleware

  2. there is a means to discover both types and instances of service interfaces at runtime, and additional information is available to help both people and software to select among them

  3. the caller and the service interface are unrelated (loosely coupled and location independent)

  4. each service interface is sufficiently well defined, high-level and abstract that (in combination with 3) an alternate implementation is not merely possible but practical

  5. service implementations implement their interface specification correctly (but not necessarily in the same way)

It is quite easy to write web services that meet the technology requirements (1, 2 and 3) but it takes specific effort and knowledge to also meet the service definition and implementation requirements (4 and 5).

A further critical goal of SOA is to achieve reuse. Object-orientation alone failed to deliver this, but developers who focus on high-level interfaces and use HTTP/SOAP/WSDL/UDDI as a common protocol backbone will be able to easily reuse functionality exposed via RMI, Jini and CORBA as well as UNO and XPCOM, and with care and some more effort, even non-OO functionality can be adapted as a service.

Then we have folks like John Seely Brown and John Hagel III who talk at a high level about 'the service concept' and 'radical incrementalism'. Everyone understands what a service is, but for a developer it is nothing more than good old fashioned object-orientation with emphasis on loose-coupling and the addition of location independence. The latter concept (RI) is nothing more than kaizen (continuous improvement through time-boxed reflection and change), with a nod to techniques from agile development methodologies (frequent applied change, customer orientation and use of appropriate metrics to guide decisions) applied to the business arena.

What then is SOA ultimately about? It's not simply about one or two technologies, despite the heavy focus on web services. For businesses, it's about ROI. It's simply too damn expensive to have to throw away versions/iterations of a service (or a set of interacting services) just because it was imperfect or incomplete. And its about choice, especially vendor-independence. SOA done properly will enable you to avoid the 'hairball', which is Scott McNealy's term for a bunch of inter-locking features which don't let you replace an unsatisfactory component with a better value one from another vendor. Ultimately SOA is about integrate-ability, choice and evolution.

How will you know what to avoid to achieve the evolution-enabling nirvana of SOA? Here are a few key roadblocks:

  1. proprietary stacks and containers - if multiple software services depend on the same specific database or a particular vendor's platform, your ability to evolve your architecture is seriously limited

  2. behind-the-scenes dependencies - if your services interact appropriately via web service protocols but in their internals they are are exchanging information in common configuration files, directories, databases or filesystems, then you don't have an SOA; even worse, some web services require you to pass information parameters that must first be obtained from one of these backend data sources

  3. proprietary data formats - if you are restricted to a single tool to create certain data or documents, or if the format is subject to arbitrary change by a vendor, then your web services won't help you avoid lock-in to specific vendor's software and even specific versions of software

  4. proprietary enhancements - vendors add extensions not just to satisfy customer requirements that the current standard does not meet, but also to limit their customers' ability to switch to another vendor's products; businesses should leverage proprietary features to meet their short-term goals, but they need to insist that vendors evolve the open standard to meet these extended requirements

An interesting aspect of SOA is how it is beginning to impact on IT vendors. Some vendors think that 'proprietary' is the only way to sustain revenues. This view is declining as businesses are demanding the ability to choose and evolve the components in their IT environments as a right, not a privilege, a view that Sun has notably held and acted on for many years. As CTO's and CIOs use the goal of SOA and the metric of short-term and future ROI to determine how they select and deploy software, vendors will have to compete on value, not on how much their products are mutually inter-dependent. This will facilitate competition among vendors and force a focus on delivering maximum value in a few key areas rather than trying to create a web of inter-locking inadequate products around a few popular ones. This in turn supports the businesses need to maximise ROI.

Finally, does open-source have a connection to SOA? Not at all. To businesses, open-source is just another licensing model and says nothing about their ability to choose, to evolve and to maximise value received from their IT architecture.

  1. For software developers and vendors, SOA is about using a common service delivery technology to provide software components (possibly based on reuse of existing functionality) as discrete services that may be deployed independently.
  2. For businesses, SOA is about the ability to choose independently sourced software components and to integrate them as part of an evolving IT architecture focussed on maximising ROI

Monday Jan 03, 2005

Proposal for Google to adopt OASIS OpenDocument Format

Sam Hiser has an interesting proposal for Google - adopt the OASIS OpenDocument format and use it to store and publish the works of several valuable libraries. It would also be a cinch to make Google index this document format, opening up content that can be created by the folks who have downloaded 50 million times already, as well as users of the commercial derivatives of (StarOffice and other branded versions), not to mention KOffice. Makes sense really, especially as the format is 1) an open standard and 2) a compressed XML format that is very easy to parse, search and index.

Saturday Dec 18, 2004

Linux kernel has 1000 bugs

An extensive review of the Linux kernel revealed 1000 bugs - this is meant to be good? The kernel is the smallest and most important part of an operating system, yet this figure is considered to be good by virtue of it's low rate compared to "commercial software". Sorry guys, but this doesn't fly; the base of any long-lived software stack has fewer bugs, and a rate of 1.7 per 10k lines of code in an OS kernel is pretty good but not great. But hey, soon you'll be able to compare that rate with the open source code of Solaris 10. I think you'll be impressed!

Thursday Dec 09, 2004

Sun - Evolution of a company

Dave Brillhart asks and partly answers a key question: do industry conditions favour Sun's ongoing success, and is Sun equipped to evolve within the changing environment?

My answer to both questions is also yes, but I take a slightly different view to Dave; I think a company's DNA does not reside primarily in a concept of technology like Networked Computing: it resides in deeper concepts that are ultimately about people. That said, here is what I think Sun is fundamentally about:

  • Sun' big idea is: 1) make compute technology simple and effective, 2) solve big problems - these qualities are measured by people
  • Sun's core DNA resides in it's culture: an environment that favours freedom of thought, enabling innovation and really different ideas to be considered and (if they are good) to flourish; from NFS to Java to Solaris 10, Sun successfully creates an ongoing series of innovations that are so successful, they become almost invisible; this is a measure of both their simplicity and their seamless adoption into the mainstream
  • This open culture naturally promotes two-way permeability - ideas and technology from Sun (such as Java) are released to the public, many are open-sourced (such as, soon Solaris); conversely, Sun works with many external groups to mature technologies (such as Linux, X11, Mozilla, GNOME) that Sun also imports, and releases as added value to customers

I believe it is these qualities - especially diversity and permeability - looking forward and outward - that enable Sun to evolve. I think Sun has evolved significantly even in the last few short years; in my view, the biggest change is that we have accepted, deep down, that simplicity resides not only within the technology itself, but it has to reach up through layers of software right up to the user interface. Simplicity is not just for system administrators and developers; it is also for end-users. Customers of our products are beginning to notice this seismic change, but you've just seen the start of the first wave.

So to the heart of the question: do industry conditions favour Sun? Here's my take: as long as end-to-end computing remains a hard problem, and as long as innovation is about participating in a global network of talented people inside and outside of Sun - then conditions require Sun - as a firestarter, as a solver of the hardest problems, and as a company that can bring real solutions based on continuous innovation to customers.

But there's one more thing, maybe more important than all of that - we're not perfect, we're just striving to be. And the key part about evolution is that it does not happen without a context, and that context is our customers and their ongoing evolution. When it comes to listening to our customers there are so many questions that as an engineer I would like to ask so I'll just ask one - what do you want to achieve that you can't today because of cost or complexity? Because Sun wants to help your (r)evolution.

And if part of your (r)evolution is related to individual and team productivity, I really want to hear from you, because together we're putting the "open" into

Patenting Aggregation of Notifications

When I saw the title of a blog Patent Pending: Centralized alert and notifications repository, manager, and viewer, I thought I must be misreading it. I mean you just need to do a Google search for "aggregation of notifications" to know that this has been done before. The open-source Glow project had this openly on the radar even before we had implemented IM and integrated mail. And there is prior art for a notification user interface in the form of icons and tooltips on desktop toolbars, and modern communication clients are expected to provide a unified user interface to content, including "notifications". Not to mention Jabber's framework for notifications or RSS feeds for notification of new addressable content.

With patents, the devil is in the details so maybe there is some innovation in there somewhere but it doesn't bode well from that blog title (I can't read further because according to patent law, triple damages are applicable for prior knowledge infringement as soon as the patent issues, and for this reason Sun requires it's engineers not to look at patents, even if they seem to be bunkum). Maybe somebody less constrained can take a closer look and see if it needs debunking.

Update: My subconscious sent an interrupt to my forebrain with another possible Google search: "federating notifications" which throws up a Citeseer page with a list of probably relevant references using the synonym "event".

Monday Dec 06, 2004

Thunderbirds are go! Confessions of a former Mozilla Mail user

I switched from Mozilla Mail (1.7.3) to Thunderbird 1.0 over lunch; I can't say I've plumbed it's depths but I wanted to offer you some first impressions.


  • flawless install and upgrade experience; perfect import of configuration settings from Mozilla (Outlook Express also supported)
  • very pretty default look-and-feel (nice skin with toolbar buttons, icons); consistent to Firefox
  • Mozilla mail was already fast, but Thunderbird feels subjectively even faster: message display seems about 30% faster
  • the search toolbar allows searches to be on subject, sender or message body; it also uses the edit area to show the current search type
  • searches can be saved as folders; a saved search can span one or more folders and include multiple criteria
  • much clearer layout for several dialogs, such as Junk Mail Controls
  • the preferences menu item follows Firefox's example by moving to Tools/Options, in line with applications like Internet Explorer and StarOffice/


  • The toolbar button colours seem slightly out-of-sync with Firefox's palette (especially the reds and blues)
  • the search folder uses a close toolbar button to return the view to un-filtered mode; I think a checkbox would be clearer
  • I'd like to see search folders appear under a standard top-level Searches folder for ease of access and to clarify their operation (a delete on a search folder impacts the message in the actual containing folder)

Between Firefox and Thunderbird, the only thing that may keep some users from abandoning Mozilla is Composer; clearly the mail composer includes a HTML editor, but if you want to edit a longer document, you can use

Firefox, Thunderbird and - now that's a killer suite.

Oh, and here are the other Thunderbirds.

Out-searching Google? No Worries

A new search company funded by the Chinese government claims they will find more relevant results than Google by using artifical intelligence. I wonder if they plan to use weighted semantic networks?

Interestingly they chose the name Accoona from the Swahili translation of the phrase "no worries"; BTW, now has a localisation project for Swahili - cool.

Monday Nov 29, 2004

The Future of UNIX

Jonathan clarifies on OSNews that Solaris does not compete with open-source operating systems such as Linux or BSD that are based on open standards; it competes with proprietary operating systems (or distributions) from companies like Red Hat and Microsoft.

Eric Schrock also knocks some misperceptions about OpenSolaris firmly on the head; read his lips: Is there anything preventing [Sun] from making all of Solaris open-source? Nothing at all. And let me repeat that. Nothing at all.

Sunday Nov 28, 2004

"Bazaar" - how useful is the right to fork?

Compared with the days of his work on The Cathedral and the Bazaar, it's a shame to see Eric Raymond commenting in the media today; he seldom seems to get the point anymore, or maybe it's just that his ideas seem to be distorted under the glare of publicity.

He states in effect that the cornerstone of open-source is the right to fork. However for a project of any real size, this issue is bunkum. Forks of projects like Linux or are doomed to failure because of lack of momentum and contribution, and because they run the very real risk of falling out of touch with the standards that the original project supports. If a fork becomes non-interoperable with the main-line, a few core hackers may be happy with their independence but everyone else loses:

  • there are fewer effective core developers working on the project - their efforts are divided with each fork
  • the project is a less attractive platform to application software developers because they have to build and test for each fork
  • it is also less attractive to deployers because they run the risk of running a fork that falls out of favour and ceases to be supported
  • users lose confidence because they are presented with the difficult choice of choosing which fork to run; service and support offerings have to try to target variant versions

For the reasons above, forking must be the last resort, like weapons of mass destruction. The optimal path is to steer the main-line in the right direction, and this is exactly what the JCP or's super-reviewer approach enables in a far more effective way than Linux's benevolent dictatorship with the right to petition Linus for desired changes.

And if Raymond is right that IBM really plan to release their own JRE and class libraries within a year (and is not merely himself the subject of smoke-blowing), then this is further evidence that the right to fork the source is secondary to the right to implement software according to a standard; standards enable interoperability, which means that software built against the standard preserves the momentum and importance of the platform, which is ultimately what benefits developers, deployers and users.

So what is the fundamental basis of the bazaar? I would argue that it is the common currency which enables trade, or the common standards which enable substitution as a basis for true competition.

Update: there are some comments coming in which I'd like to respond to.

  • I talk here about the right to fork, which is what Eric Raymond talked about in his response to Jonathan's comments (and which he retrospectively says is the core of the bazaar); I think that this right is often illusory and that exercising this right on larger projects is often destructive
  • The right to fork is useful (or even essential) for smaller (and a few rare medium sized) projects where there is a real possibility of useful innovation in a fork and a later re-merge
  • GNOME and KDE are not forks; each has a completely independent code base (aside from X11 and a few libraries); similarly Solaris and Linux are not forks
  • I definitely support the need for competition (see this for example)

J2SE does have some TCK's and it is based on the JRE which is completely specified, however I agree it is not trivial to create a 100% compatible clean-room implementation. I think it has also become easier for developers to contribute code (patches) to Java libraries (on Bug Parade) which avoids the need for a fork; I hope more people take advantage of this as a way to improve Java where you need it.

Thursday Nov 25, 2004

Buy software as a service - from your corner store

El Reg nearly always has a fair amount of insight into what's going on but their article Napster nips into newsagents misses the point entirely. Of course Napster requires familiarity with the internet, but the new vouchers (which grant 2-4 months of Napster access) are not going to be bought by the user; they'll be presents from the uncle or granny who are already buying telephone cards and gift vouchers.

Interesting to see two emerging software trends in one day - both driven by mainstream consumer products targetted (primarily) at younger customers. Also related to software licensing, Microsoft are offering an amnesty for purchasers of pirate copies of Windows XP, provided they give full details of where and how they purchased it.

Half-Life 2 - aggressive anti-piracy techniques successful

Valve, who have just released Half-Life 2, validate installations of the game via their on-line Steam service. This is likely to increase user acceptance of more aggressive online checking of software licenses rather than relying on security tricks in the media (CD, DVD) which can cause problems with custom software or drivers, and which prevent legitimate users from backing up their media.

Even more innovative is the fact that software installations bought using stolen credit cards have been retrospectively deactivated.

So this is all good news for the software industry and legitimate licensees.

Saturday Nov 20, 2004

StarOffice 7 is too cheap

I've been using StarOfffice for about 9 years (I started about 2 years before I joined Sun), mainly on Windows and Solaris, but more recently on Linux (Java Desktop System). It's always been a great office suite, very reliable, especially on longer documents where Word let me down a lot - anything over 3 pages seemed to make Word unstable.

Currently I use StarOffice 7 and it's rock solid with great interoperability with Microsoft Office (the documents within Sun tend to be almost all created within StarOffice, but I read documents (mainly Word and PowerPoint) posted on the web (for example, I've been looking at Tom Peter's PowerPoint deck - wow!) and occasionally I use templates from the for inspiration (I was actually using some nice Excel ones earlier).

So it's with amazement that I see Sun's promotion of StarOffice 7 for $39.95 (I don't even want to calculate what that is in Euro; well actually I do - I just used an exchange rate calculator and it works out at 30.60 Euro). That is an incredible price for a full office suite; I guess Sun must really want to get this product out to the market but in my view that is just too cheap; the templates and dictionary alone must be worth more than that, and it's got more applications in it than the Microsoft Office Standard Edition (oh my god, I just checked Microsoft's site - retail price is $399, I don't even have to use an exchange rate calculator for that because it's an even 10 times the price of StarOffice - 306 Euro).

I guess the only thing to do is take advantage of it while it lasts, so I've just figured out what I'm getting my sister for Christmas! She's started a home business making arts and crafts (like runs of 100 or less of really unique cards for busineses to send out to customers) and although she has a really nice PC, she's been using Microsoft Works up to now. She needs a real office suite though, for things like designing cards (StarOffice Draw), writing up invoices (StarOffice Writer) and doing her accounts (StarOffice Calc)). I can get her the current issue of Computer Arts magazine too - it has a Start Your Own Design Business topic (setting up a business, branding, logos, business card design) - just the right thing. Alright, that's one gift down (and just 33 shopping days to go!)

Solaris 10 - A Blog Anthology

A lot has been (and is being) written about Solaris 10 but it's hard to know where to start. This blog serves the same purpose as a book anthology - as an introduction and to give you a chance to sample some of the most interesting writing from some of the key Solaris engineering authors.

I plan to write a new edition of the Solaris 10 Anthology about once a month; expect a Java 5 (Tiger) Anthology soon.

Service Management Facility (SMF)
Town Criers & Photo Journals

Like any anthology, this is a personal view but if I've missed something you think is important, I'd be delighted to hear from you.

Friday Nov 19, 2004

This IsNot Serious

Some days, Slashdot rules: the follow-ups to MS has patented BASIC's IsNot operator" are laugh-out-loud funny [the first link in the initial post will take you to the patent].

Some times, patents != intellectual property; patents := joke.

BTW, if you are really curious, you can find out the "rationale" for IsNot; it's actually syntactic sugar to accompany some syntactic sugar to work around some syntactic sugar in VBA; I kid you not...

Wednesday Nov 17, 2004

Interoperability - some Microsoft folks "get" Firefox

You can begin to see some signs that folks at Microsoft are getting more serious about tackling interoperability with open standards.

First off, a senior developer working on the MSDN Subscriber Downloads site (codenamed Xena) wants to make it more compatible with Firefox and Opera; here's the key quote: As we started work on Xena 3.0 about a year ago, one of my priority 1 requirements was to make the site fully cross-browser compatible. Funnily enough, the operations team (who tend to be pretty focused) told me that losing Deeptree wasn't required, because 99.5% of our client browsers were IE. I was able, however, to make the point that this could possibly be the case because we only support IE (after explaining that "support" is different from "can be accessed") and so that might possibly be a factor. The net-net of this is that cross-browser compatibility for Firefox, Opera, and IE will be included in the update for all major site functions. Check out the Xena blog for the context. This looks promising for better browser support from in future.

Also related to interoperability - it was nice to see another MSDN post, this time about JWSDP 1.5; the author is checking it out to allow him to update his article on WS-Security interoperability.

Looks good guys, keep it going.




« June 2016