Sunday, December 12, 2004

Seven deadly sins of distributed systems

A paper by Steve Muir at the Usenix Workshop on Real, Large Distributed Systems (WORLDS'04) caught my eye: The Seven Deadly Sins of Distributed Systems catalogues a number of real problems that arose during the development of PlanetLab. PlanetLab is a very large distributed computing environment (I think we're supposed to call them Grids these days), allowed large scale distribution and virtualisation of apps. Muir's paper describes some very practical problems they encountered, and describes what they did about them. For example:

There’s No Such Thing as “One-in-a-Million”
In a distributed system with hundreds of nodes running 24/7, even the most improbable events start to occur on a not-too-infrequent basis. It’s no longer acceptable to ignore corner cases that probably never occur—those corner cases will occur and will break your application.

Very salient stuff. I'm currently adding web-services capability to Nuin. I have some facilities for handling errors, but it's nowhere near as robust or complete as I would like. After reading Muir's paper, I think that I ought to worry about this more than I already do. Much more!

WORLDS'04 workshop proceedings via Hack the planet

Monday, December 06, 2004

The Law of Standards applied to the semantic web?

Sean McGrath points to an interesting piece by John Sowa (he of conceptual graphs fame) on The Law of Standards. Sowa's hypothesis is that successful standards are codifications of existing practice, whereas unsuccessful standards are by and large attempts to create new technology. He illustrates the point by reference to programming language design, such as the design of Ada resulting in the widespread adoption of C.

I'm not sure I entirely agree with the characterisation. Firstly, there are successful new standards for novel technologies. Consider CDROM and DVD formats, for example. It seems to me that a more significant difference is that it is obvious with the successful standards what they are for. Nor does ratifying an existing practice always make a decent standard - by the time ISO had finished standardising Prolog the developer community had by-and-large forgotten that the langauge existed.

However, if we take as a starting point that complex technical standards without a really obvious application are often replaced by a simpler de facto standard, it rather begs the question what, if anything, will do this for the semantic web. We see a roughly bi-modal distribution of users on the Jena list: some just want really simple taxonomies and properties, while others want complex DL reasoning with persistent data, or else want to do funky things with all the freedom inherent in OWL Full. Sowa claims that the complexity of OS/2 drove the adoption of the Windows API. The other school of thought is that Microsoft have always tried hardest to woo developers with the best tools. So, maybe the answer to the complexity of the semantic web is even more, even better semantic web tools.

Most Hated Advertising Techniques

I agree with about 80% of what Jakob Neilsen says, and 100% with the latest AlertBox on the Most Hated Advertising Techniques. Should be required reading for all web advertisers and ad agencies.

Amtrak's customer-facing AI system

Interesting collection of AI Alert topics this time, including Amtrak's "Julie" - an automated front-end to their ticketing process.

Thursday, November 25, 2004

Usability webzine

I've long had an interest in usability issues. So, it's always nice to come across a new resource: user instinct was mentioned in an article on Slashdot. Looks fairly low volume, but there is an rss feed, so it's easy to keep track of.

Friday, November 19, 2004

Google rolls out search for scholars

New Google beta service: scholarly search. Seems to work very well indeed, and to provide at least as good a citation search capability as CiteSeer. And quickly too! Impressive.

Thursday, November 18, 2004

Metamorphosing robot

A report from New Scientist on a shape-shifting robot that consists of a chain of reconfigurable components. It looks pretty cool:

ATRON robot picture from New Scientist site

I couldn't find a video anywhere though (with only a quick search, admittedly). Trawling for a video, I did, however, stumble across RobotHaven, which looks like a great source if you like robots and mechanical beasties. Shame it doesn't have a syndication feed though.

Monday, November 15, 2004

What future for FIPA?

A discussion is going on on the FIPA lists about what future that body should adopt for itself. There has been a vote to de-incorporate (if that's a word) from Switzerland, due to the high fees of doing business there. The FIPA board has been soliciting opinions as to what to do next. Below is a message I posted to the FIPA list, which, since it is moderated may not be accepted (because, to my knowledge, HP is no longer a paid-up FIPA member).

I'm not clear that I should really participate in this discussion, since I'm not sure that HP is a FIPA member any longer. Still, for as long as such a hard-to-ignore discussion keeps depositing itself in my mailbox...
It would seem to me that asking where should FIPA re-incorporate itself, or which parent organization it should join, is in danger of putting the cart before the horse. Surely there first needs to be a period of re-evaluation: what is FIPA really for? What are the success criteria? And has FIPA had as significant an impact it originally hoped? If not (and I would say that it hasn't), why not?
I was involved in the early days of FIPA, and one of the things that was explicitly and deliberately ruled "out of court" was a discussion of what an agent was. It was easy to see why that decision was made - the endless discussions of "by that definition, would a thermostat be an agent?" on software-agents list were seen as counter-productive to achieving practical progress. That decision was interpreted as meaning that anything is, or could be, an agent. This then effectively lead to FIPA's mission being congruent with "standardising distributed programming", which was far too broad to be useful. The recent discussion on this list about what an agent is means that this issue is still alive. FIPA cannot hope to settle the question of what defines an agent; indeed there probably isn't an answer. But it might make more progress in its work if it were to say "for the purposes of this effort, we circumscribe the kinds of agents we are talking about as ...".
Moreover, the original decision to "standardise" _applications_ of agents, as well as agent component technologies (such as the ACL), historically lead to a further dilution of effort (at least in the period to FIPA97, which was when I was most involved). However, while it is perhaps hard to see that the standards documents for agent applications have been directly beneficial to those industries, many useful discussions have taken place among the partipants. Perhaps that indicates one element of a future role for FIPA - as a body that fosters discussion and collaboration among researchers, rather than a standards body per se. Either way, some slimming-down of FIPA's activities might lead to greater energy going into the remaining projects.
Any discussion of the future of FIPA should also recognise that the world today is very different than that of 1995 (which I think is when FIPA started). Today, many of the infrastructure issues with which FIPA concerns itself are perceived very differently. XML is ubiquitous. HTTP is probably the most commonly utilised communications protocol. Architectures layering on top this foundation, such as web services, cover much of the same ground as the core FIPA specs. Moreover, the increasing use of semantic web technologies - RDF, OWL, SWRL etc - means that even the encoding issues covered by FIPA's SL are being overtaken. For example, how much more data is there available to agents in RDF or OWL, compared to data published in SL0?
I can't pretend to have answers to these questions, nor really any idea of whether and how such discussion should precede any decision made by the board. But it seems to me that a decision about OMG-FIPA vs IEEE-FIPA or whatever is rather crucially dependent on what kind of FIPA is desired by the members.

Saturday, November 06, 2004

Accessorise your lair

If you have an island lair or creepy old house, you simply have to have hidden doors. There must be plenty of lair-dwellers left in the world ... enough to provide business for an entire company. Sadly no folding palm trees though.

Thursday, October 28, 2004

S5: A Simple Standards-Based Slide Show System

Eric Meyer and friends have a way of producing slide shows (a la PowerPoint) that is lightweigh, standards based (the content is xhtml, for example) and way cool. You can see examples in action: S5: A Simple Standards-Based Slide Show System. No dynamic content as yet, but presumably it's only a matter of time before someone integrates SVG with S5 to recreate those horrid little animations you see in all too many PowerPoint presentations.

Tuesday, October 26, 2004

In memoriam

Not really technology or semantic web related, but farewell John Peel. How many hours of homework and formative hacking on early kit computers did you help me through John? Too many to count. You'll be much missed.

'Facetop' Blends Screen and Video Images

Interesting novel approach to video conferencing and remote collaboration: 'Facetop' Blends Screen and Video Images (via Nova Spivack). Suppose the overlaid image was software rendered, instead of just being a video stream of the remote collaborator? Seems like an interesting paradigm for game UI's, and for certain human-agent interaction scenarios. Computer-assisted education seems an obvious one, but I can imagine other human-agent collaborations that would be possible, if the objects on the shared desktop had enough meta-data attached to them.

Saturday, October 23, 2004

SIMILE Longwell 1.0 Released

The Simile folks have released Longwell, their RDF browser suite. Looks good. It's a web application, but it's not clear that there's a web-services access point. Clearly, for a tool that's primarily user-facing, having a web-service endpoint is less relevant. But from first impressions, I would guess that some of Longwell's reasoning and storage capabilities would be useful components in a more general loosely-coupled semantic web application.

Wednesday, October 20, 2004

Web services competition

Tim Finin forwarded a link to this competition to the FIPA chat list. There are two parts to the competition: Part A is about choosing a service to invoke, based on some required input and output messages, and given a collection of WSDL service descriptions. I don't know all the details, and sample problems are not yet available, but it sounds like some fairly straightforward XML crunching and therefore rather uninteresting. Part B sounds a little more interesting: again given input and output messages, the requirement is to construct a web-service composition that gets as close as possible to the desired service. Since the only service descriptions are WSDL, it seems complex reasoning about the services themselves is not required. So, it could be that a simple A* solution is all that's needed, which would be a shame.

Something to revisit when the details of the sample problems are available.

Kids' typing tutor

As someone who learned to "type" with two fingers, hunt-and-peck style, and then unlearn that to develop proper typing skills, I've always been keen that my children should learn to type properly. We used to use Knowledge Adventure's Jump Ahead Typing, which is good but which died horribly when we switched to Windows XP. We've now replaced Jump Ahead Typing with Grass Software's GS Typing Tutor. It's very good: simple, effective and fun (or so the kids assure me) ... and it works on all recent flavours of Windows. Recommended.

Sunday, October 17, 2004

How to embed a web-service category in WSDL?

Something I've been wondering about, but don't have an answer for yet. Suppose an agent or service is notified of the address of a service, or is given the service end-point as a WSDL document. How does the agent discover the category information about the given service? I haven't yet come across an agreed way of embedding that information in the WSDL document (I suppose it could be seen as an application of ws-policy). Of course if you discover the WSDL by querying a UDDI registry you know the category because it's in the registry (and was probably part of the initial query). But if you already have the WSDL end-point, it seems inefficient and potentially non-deterministic to query the registry to do a reverse lookup on the service category, always assuming that the service is published in an accessible UDDI registry in the first place.

Saturday, October 16, 2004

More RDF-returning web services

Addendum to the previous collection:

Wednesday, October 13, 2004

RDF-returning web services

Bob DuCharme asked on the RDF interest list what web services are publicly available that return RDF. A summary of replies and pointers:

As a nice example of reverse lookup, given that I know my nearest airport (BRS), I could determine a very approximate location for myself: latitude 51.4, longitude -2.7 .... something I probably ought to have known but didn't!

Interestingly, the various developers of these services have provided HTTP GET interfaces to the services, but no-one has (so far) volunteered WSDL description of the services.

Friday, October 08, 2004

NASA agents in space

One of the more impressive papers I attended at AAMAS'04 was presented by Steve Chien on the Earth Observing One satellite mission. The agent system on EO-1 has been allowed to control the satellite, run the scientific data capture instruments, and decide which data to discard and which to transmit back to the ground - fully closed loop. During his presentation, Steve said they had even more ambitious goals for the mission, including being able to run fully autonomously for days or weeks at a time. A NASA press release today indicates further progress to this goal. What makes this work really impressive is that the computer system running the satellite subsystems, planning missions and performing fault diagnosis and repair is significantly less powerful than the laptop I'm using at the moment.

[via KurzweilAI.net]

Thursday, October 07, 2004

Validating wsdl

I'm learning about web services, so that I can add WS- interfaces to Nuin. There is a heck of a lot to grok, more or less all-at-once, but I'm concentrating on soap, wsdl, and uddi to begin with. In particular, getting a good grip on wsdl seems key, because there are various other tools, like apache axis that have automated tools that use the wsdl description to deploy web services or create Java stubs and skeletons automatically.

The problem is that wsdl is horrible. You can see how each piece belongs in the spec, but when you put all of the ports, messages, pieces, bindings, etc etc together it just becomes a complex mess. For RDF coding, the online RDF validators are very helpful for spotting errors buried in complex documents. So, I googled in hope for wsdl validators. There aren't many hits, and most of those are now defunct or useless. Salvation however, came with the wsvt plugin for Eclipse. Wonderful! Does good validation, with the results integrated into the Eclipse problem reports tab. Recommended.

This posting was copied from my former blog at 20six.co.uk

An alternative to Tomcat

I've been slowly building up my web-service knowledge by building a web-service endpoint into Nuin, using Apache Axis as the web-service tool. The Axis documentation presumes that you are using Tomcat as the servlet container (though it doesn't require Tomcat, I would stress). I've had several different attempts at using Tomcat over the past few years, and I've never really got on with it. It just seems so darned complicated! I've found Jetty to be a much better alternative. Jetty is much simpler than Tomcat, so there are probably some things it doesn't do that Tomcat or the other big players do do. On the other hand, Jetty is small and efficient and, best of all, launches easily from inside Eclipse so you can debug servlets easily using the Eclipse debugger. There are even Eclipse plugins to support deploying services to Jetty. I've never deployed Jetty for production use, so I can't comment on that, but I find it ideal for personal development prototypes and experimental use.

Note: this post was copied from my former blog at 20six.co.uk

A little Axis tip

This article by Kevin Jones, linked from the Apache site, shows how to get Axis to return the given WSDL file for a service, rather than rely on Axis to auto-generate new WSDL from a deployed service. Kevin's tip essentially is to add:
<wsdlFile>your wsdl file here</wsdlFile>

to the server-config.wsdd file. It turns out that you can put the same element in the service's own deploy.wsdd file, and it will be copied from there to server-config - saving you the trouble of finding and tweaking the server configuration. The ony gotcha is that if you re-generate the depoy.wsdd (via wsdl2java), the wsdlFile element will be overwritten. I guess it would be nice if wsdl2java acquired a new command line option to generate the wsdlFile element.

Note: this entry was copied from my former blog at 20six.co.uk

Back again ...

Like an itinerant tinker, I don't seem to be able to find a good place to settle my blog. So: I'm going to give it another shot here at blogger.com. The last place I tried to host my blog had very weird rss behaviour, and the editing tools were rather buggy. That shouldn't be a problem here, I'm guessing.