It’s been a really good couple of days with respect to my Ph.D work. Today I finished debugging the wide-area half of my service discovery protocol. It’s all working very nicely, which is kind of exciting. However, I’ve changed a few of the classes that were being shared by the local-area part of the protocol, so I have to go back and touch up the Ants stuff. Shouldn’t be a big problem. So here’s what I’ve accomplished so far with respect to my prototype, and the order in which I accomplished them:
- Query/Advertisement parser
- Expression scanner/parser/matcher
- Ant-based service discovery protocol for small, dynamic environments
- Chord implementation (Distributed Hash Table layer)
- Wide-area service discovery protocol, including distributed query/advertisement parsing with scoping
The scoping function allows queries to relax their requirements so that, for example, if the query tries to find a printer a particular room on a particular floor in a particular building and so on, but there is no matching printer in the specified room, then the query backs off and returns any matching printer on the specified floor. If there is still no match, it backs off even further until the scope boundary is reached. Scoping is not automatic. A scope needs to be specified in the query, just in case the user would prefer no match rather than a partial match.
So it’s been a good week. Furthermore, Jaga has started questioning the importance of implementing the reputation management functionality that I was previously expected to implement in my prototype. The only reason we were going to implement it was to get performance figures for a paper we were writing. We’ve since submitted a shortened version of that paper, and we are unsure exactly what performance figures will tell us anyway. It’s obvious that my service discovery protocol will incur a performance cost if reputation management is added, and there’s no other similar reputation management system to compare it to. So I think we’ve decided that I might implement it if I have time to spare. But the way things are looking at the moment, my thesis could well be finished soon after August. I might not opt to submit my thesis until January in order to take advantage of the six month extension scholarship (yes, I’m scheming), which means that I’ll have near on five months to "spare". I might use that time to convert my thesis into a few papers so that I have more publications listed when it comes time to submit. It would also be cool to set up a few really cool case study/scenario type things to test my protocol on (in addition to whatever testing I do in the next few months). I think we have enough devices of various sorts to do a really neat demo. The PACE group at the DSTC will probably want to integrate my protocol with their system as well, which might require a bit of work. Anyway, I’m really happy at the moment!
I also spent part of today finishing off the assignment 2 handout for the Distributed Computing subject. That didn’t take long. It pretty much amounted to taking the first assignment handout and changing the word "Elvin" to "CORBA". Well okay, not quite, but you get the idea.
Easter was pretty good. Lots of Easter eggs and chocolate rabbits from various sources. I’ve still got heaps left. Maybe I’ll go and eat some now.