Friday Mar 11, 2005

Microsoft runs Sun's Servers

In the last 6 months, I've seen a serious up-tick in the number of folks who spontaneously tell me about their renewed love affair with Sun servers, and this is in Dublin Ireland where there is intense awareness of IT costs and where Dell's local presence is particularly strong due to a local manufacturing facility. But at a global level, it's even nicer to see large companies like Microsoft not only acknowledging but talking jubilantly about their reliance on Sun's servers - one of Microsoft's bloggers says more about this.

It makes my day to hear a customer talk passionately about Sun's products; you know that the hard work has been worth it when you see that you've made that kind of connection. I'm confident that StarOffice 8 is going to evoke the same kind of excitement; this time, we really listened hard to what customers were telling us. The existing evangelists out there will be able to point their colleagues to the product and demonstrate that it's now easier to use than Microsoft Office, and it has near perfect interoperability with 10 years of different MS Office product versions, not just the recent releases. The StarOffice 8 Beta release will give a flavour of what's to come. StarOffice and already lead the market on Linux and Solaris, but I think StarOffice 8 will give even entrenched Windows deployments a high value upgrade for MS Office 2000 and earlier, while opening up the option to reduce costs through incremental deployments of low TCO Linux traditional desktops or Solaris SunRay consolidated desktops.

On a related note, it surprises me that some analysts haven't really grasped the essence of Sun's strategy, even though it's surprisingly simple.

  • Java (J2SE, J2EE, J2ME) has enabled a level playing field for products to be deployed across different hardware and software platforms.
  • Sun competes within this benign ecology by delivering high value implementations of hardware and software, and by focussing innovation at the core of solving real customer problems, rather than just expanding the edge with unused immature features
  • The existence of alternate implementations of hardware, applications, tools and middlware throughout the entire stack enables customers to choose and prevents a mono-culture of pyramid products that are inextricably bound to one vendor's stack

Following this thought, I would be very interested in seeing Sun and Microsoft co-operate not just at the level of services within a web services standards-based SOA, but at the container level (J2EE and .NET). That would further expand choice and enable customers to achieve more fine-grained sharing of critical resources (servers, load-balancing, clusters, grids) and unify the security models (role-based access control and authentication) of their IT architecture. Technologies like UNO and open-source implementations of the .NET CLR such as Mono can today enable early implementations of several architectures (container peers, hub-and-spoke, dispatcher, etc.), but such a bi-lingual container needs Microsoft and Sun to define common standards in order for this model to become a reality.

While you consider these entirely practical solutions, here's a slightly wilder thought - many people think of Wine (the Windows emulation available on Linux and Solaris) as a solution for running desktop applications, but it could also be an option for running Windows server-based applications and containers say on Solaris 10!

Ah yes - the future's so bright, you've to to wear shades ;)

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

Saturday Feb 26, 2005

Open-Source Developing Using Java

Unlike Elvis, Colm has not left the building (yet) but I have been busy preparing to make some life-enhancing changes ;) so my blog has entered hibernation like so many other things. But I wanted to share something very cool with you - JetBrains are offering the Intellij IDE cost-free for use by open-source project developers. This exceptionally cool IDE has a darned decent Swing UI builder and since I work on open-source Java projects, I may just start using it for real instead of just getting nostalgic about the evaluation period.

It's a shame that each IDE has it's own extension framework; wouldn't it be nice if you could write a common extension for Eclipse, Netbeans and Intellij say? I must take a closer look one of these days and see if it would be possible to create a single common IDE extension SPI with adaptors to each of the IDEs...

Tuesday Jan 04, 2005

Speculation about Apple... and Sun

MacNewsWorld hosts an article that is always interesting, sometimes insightful and occasionally a little wrong in my view, but well worth reading just the same. Paul Murphy offers a broad analysis that spans hardware and software. Here's my play-by-play feedback and 2 cents...

  • Paul's comments on Sun's throughput computing capability are right on; but don't forget Sun's x86 capability with Solaris x86 for high performance on low-end servers and (most definitely along with Linux) especially for desktops (via Java Desktop System); also, SunRay runs JDS extremely well - startup performance is even better than a standalone desktop (because application binaries are almost always already in memory) and the shared SunRay CPUs give you extra desktop power when you need it, not to mention better security, reliability and the downright damn beautiful experience of connecting to your desktop by just putting a card into any SunRay desktop in an office or on a campus - I never get tired of that, nor the delighted amazement when a new employee at our office experiences it for the first time
  • Paul speculates about IBM's evolution path for PowerPC which Apple depends on; I think porting the Mac OS shell is not the key issue (any properly layered software stack is pretty portable), but maintaining 100% compatibility with the Mac OS platform API's and the porting impact on ISV's developing applications for Mac OS might be more of an issue; I note that IBM do have a desktop/portal hyrbrid product (Workplace, based incidentally on (an old version of) so Apple's boxes don't only compete in the server space
  • He also raises the old chestnut of Mac OS desktop running on Sun hardware, especially SunRay; Mac OS certainly has cool coming out of its pixels, but don't overlook the importance of a user experience that facilitates migration from Windows (JDS has this in spades)
  • He also speculates on the value of a Mac OS graphics porting layer to allow say GNOME-based apps to run on it; this certainly makes sense as it gives ISVs a broader platform to target and the Gtk-Win32 port shows that this is not only possible but practical (though it would need more vendor commitment which Gtk-Win32 does not yet have enough of)

I hope you've enjoyed this cocktail of thoughts and speculations from Paul Murphy and I - but what do you think?

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.

Monday Dec 27, 2004

Earthquake Aid Is Not Enough

I'm shocked to see the minimal amounts of aid being provided so far for the regions affected by the devastating tsunami arising from the earthquake in south-east Asia; Ireland provided only 1m Euro, but even that looks good compared to the European Union's promise of 3m Euro. And the 25 tons of aid from Russia or the provision of plastic sheeting and tenting from the UK - sorry but that is shamefully pathetic. Please harass your politicians to give more aid and consider making personal donations.

Thursday Dec 23, 2004

Dutch Government Ditches Microsoft

The Dutch government has decided to cancel it's deal with Microsoft after all, following a wave of stern queries and rebukes for apparently going back on it's earlier commitments. This should now proceed to become a significant win for open source and open standards.

Monday Dec 20, 2004

Java in your hands

I've been giving some serious thought about buying a decent mobile phone (US: cellphone) with current Java capabilities. First of all, I started by looking at my local vendor pages and then looking for more detailed information about specific phones. It can be a lengthy process. However, since I knew I wanted Java capabilities, I wondered if the J2ME pages had more information and sure enough, they do. Here are some pointers I found useful that might get you started if you are thinking of developing for the increasingly powerful small devices via Java:

  • J2ME package names, across all of the profiles of J2ME
  • Combined with the J2ME survey article, you can orient on the different options (the graphic below comes from this)
  • The J2ME Device registry is a great way to search for devices that offer the profile you need
  • The J2ME FAQ - pretty darned useful
  • The main Java Mobility page has all the other pointers you might need
  • After you get an idea what you want to do and which profile you want to target, then you need some decent tools to get productive: NetBeans 4.0 includes the NetBeans Mobility Pack with support for J2ME development (MIDP 2.0 and CLDC 1.1, including code obfuscation, and it integrates with the J2ME Wireless Toolkit 2.2) - perfect

Image of J2ME Profiles

Sunday Dec 19, 2004

Getting the Internet on a hand-held device

One of those seemingly incredible predictions is that we will be able to store the contents of the Internet on a hand-held device in about 20 years. That kind of storage would require incredible bandwidth, data indexing and synchronisation capability. So there are two further steps towards that dream:

Technology advances so fast, if you don't keep up you get left so far behind what is possible. Combine this kind of storage and bandwidth in a hand-held device, add a fast CPU and bus, mix in short-range wireless communication, and you've got an astonishing opportunity to create software and services that no-one has ever seen before. Just imagine it; you'll be able to do a lot more than jot a few notes, save some contacts and track your tasks on that class of PDA.

Saturday Dec 18, 2004

'Artificial' Life - Potential Bio Upgrade?

The BBC article 'Artificial life' comes step closer describes how scientists at the Rockefeller University have "created" a cell using soft cell walls made of fat molecules taken from egg white, while the cell contents are an extract of the common gut bug E. coli with its genetic material replaced. The cell fluid makes a flourescent kind of protein.

Ok, so here's a wild idea - would it be possible to make an artificial human organ comprising a collection of such artificial cells which could create the 20 amino acids? This would mean we could be less dependent on certain types of food sources which provide vitamins that are normally an essential part of our diet. This could in turn enable life in less habitable conditions (such as in a long running space mission) .

My wild ideas aside, it's clear that techniques like nano-needles make this kind of manipulation (or creation) of living cells easier, including the possibility to alter stem cells to control their function and operation as progenitor cells, allowing the creation of different kinds of specific cells.

All of this reminds me of Voltaire's comment: if God did not exist, it would be necessary to invent him; what (or perhaps who) will we be able to invent tomorrow?

Perspectives from Ireland

The roller page shows four diverse bloggers in Ireland (but not all from Ireland) right now: Calum Benson, Ghee Teo, Fintan Ryan and Brian Nitz. Blog on guys!

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!

Bad Science Is Good For Us (Not)

Seth Godin has started a list of 1000 things everyone should know; item 26 is "How to read the media for spin and for insight"; after reading his other blog, I think Seth needs to read Michael Crichton's Caltech Michelin lecture again with this in mind.

In this lecture, Crichton critically attacks concepts such as the Drake Equation (a series of (mostly) unknowns which compute the likelihood of alien life) and Nuclear Winter (where a suspension of material in the atmosphere blocks light reaching the Earth's surface) as part of a litany of scientific "errors". But the punchline comes when Crichton finally talks about Global Warming, leaving the reader in no doubt that it will similarly be revealed as pseudo-science. However Crichton does not discuss any specific counter-evidence; he simply alludes to similarities in the growth of belief in global warming to that in the nuclear winter scenario. And when you view this part in the context of the lecture's title "Aliens Cause Global Warming", the whole thing comes across as a sponsored frame, and quite a good one at that.

Crichton ends the talk with a suggestion that scientists attempt to disprove scientific experiments or theories, in a manner which is similar to the practice of quality assurance in software development where engineers look for faults or flaws in software before it is released. This thought is so common-sensible (but so meaningless since for the most part this is already how scientists work) that I have to wonder why this kind of talk was permitted at Caltech. It's actually a shame that the practice of quality assurance does not apply to lectures by high profile authors of pseudo-scientific novels. Disclosure? Nope, zero cool.

Meanwhile the debate and analysis of global warming rages on, but it seems to me that only the pro-warming scientists offer credible evidence.

NetBeans 4.0 kicks!

NetBeans 4.0 has gone live. If you are a Java developer, you need to give yourself some time to take a serious look at it. I just did and the uninstall for Eclipse is running as I write this.

Why? Because NetBeans 4 is a major release in every sense. The features summary tells the full story; 4.0 gives the demanding Java developer (and who isn't demanding?) a complete and current IDE...

  • Serious usability enhancements - this is definitely not the NetBeans UI I used to know back in the 3.0 days
  • Full Java 5 (Tiger) support - now I can really use all those productivity features
  • Support for Java Mobiilty platforms - MIDP 2.0 and CLDC 1.1
  • Refactoring capabilities (of course), but with real visibility and control

It still has the other features I want like CVS support and a Swing GUI builder, but one innovation I really like is the use of Ant to store and represent all project configuration. This means that as a developer, I can use the NetBeans IDE to create and build projects, but a release engineer can use the standard Ant command-line tool to build my project exactly the same way.

And it's nice to know that NetBeans 4.1 is already in EA1 quality with the final release due in April next year bringing full-featured J2EE support.

Sunday Dec 12, 2004

Tablets or Desktops?

I haven't yet seen let alone used a tablet PC but I know I want one; PDA's offer so many new usage opportunities but their limited screen size, slower CPU and lack of a hard disk or keyboard makes them inflexible. A full-on PDA or tablet-format desktop is the best of both worlds. My ideal tablet would run Mac OS or JDS and have a 1200x1024 resolution with a fairly decent compact keyboard.

An enthusiast has published details on an iBook hardware hack that lets Mac users get the tablet experience.

If I peer a little deeper in the crystal ball, my ideal PDA/desktop would also be Sun Ray capable, able to use both WiFi and 3G data, and provide offline file, mail and calendar sync capabilites. Not to mention that it would make a really powerful remote control for a home entertainment system. Kill-er.




« June 2016