My exams are over, they went pretty well I think, generally. Quickly after I finished I was in Holland for two weeks to rest. I came back with a cold, but by now I'm back on my feet and ready for the second half of my studies here at Trinity College in Dublin: my dissertation. I have about 5-6 months to write it. The working title is "Middleware for advertising, discovery and invocation of semantic services on ad-hoc networks", a title that made quite some jaws drop.
Let me quickly dissect it for you. First, ad-hoc networks. The 802.11 standard for wireless networks has two modes: infrastructure mode and ad-hoc mode. Infrastructure mode is what most people use, you buy an access point and let your computer(s) connect to that, all the traffic is routed through the access point. Ad-hoc allows you to set-up a wireless network without any infrastructure in place, no AP is needed, you just directly connect one or more laptops wirelessly. This already works and if you have wireless on your laptop you too can set up such an ad-hoc network.
Ad-hoc networks have some interesting properties:
- They change rapidly, as people walk in and out of the range of an ad-hoc network they either join or leave it. This means that nodes may sometimes be only in the network for minutes.
- No centralisation, because of this, you cannot centrally store information; it's very much like a peer-to-peer network.
- Resources are scarse, ad-hoc network are built from wireless devices generally running on battery power. They may be laptops, they may be PDA, they may be mobile phones. It's therefore important that its limited power is used efficiently.
Then the semantic service part. By now you must have heard about web services. They are an easy way to make remote calls to to other servers, for example to Google Calendar to add an event, flickr to retrieve pictures with a certain tag, or to do credit payments for example. However sometimes you don't really know where to find a certain service (you don't know the URL) but just needs a service that can do picture retrieval, whether that's flickr, Yahoo albums or BubbleShare. For this UDDI exists, which is a directory of web services that you can query. However UDDI works with keywords and doesn't contain a computer-understandable description of what a service does and expects as inputs and gives as outputs. That's where semantic web services come in.
I'm not going to explain all about semantic web services. If you're interested you can read up on RDF, OWL and OWL-S. The basic idea is that you find services based on what they mean, their interface or name doesn't matter, just what they do. Basically what it comes down to is that you want ask for, say, "services that you can give a price and will return a list of cars you can buy from them for that price or less".
What my middleware (middleware is basically like a framework that a developer uses to more quickly develop applications in some way, they abstract away from details that a develop shouldn't care about) will do is allow developers to easily define semantic services and advertise them on an ad-hoc network. Advertising means making them findable for other network nodes. I will also develop means to find such services and when you found some, to actually use (invoke) them.
It's going to be a long journey (until begin september), but so far I'm quite happy with how it goes. Today I've started doing some simple prototype implementation and it's going quite well. I'm implementing it in Python.