2009-04-09

A new way to look at networking.

Link: http://video.google.com/videoplay?docid=-6972678839686672840

I find this video incredibly interesting. It's talking about the phase transition that occurred between telecoms networks and packet switched networks, and questioning whether the same can happen between packets and data.

In a routed telecom network, your number 1234 meant move first switch 1, second switch 2 and so on - it described a path between two endpoints. In TCP your packet has an address, and each node in the mesh routes in to the node it thinks is closer to the endpoint with the target address.

Currently I have two or three home machines (netbook, desktop and file server) where data lives locally, plus data 'in the cloud' on gmail.com and assembla.com, or on my site here at tincancamera.com . Though as far as I'm concerned, that data isn't in the cloud - it's on whatever server at those addresses resolve to. If instead I google for 'pete kirkham', about half the hits are me. If I put a UUID on a public site, then once indexed I could find that document by that ID by putting it into a web server.

In the semantic web, there's been a bit of evolution from triples without provenance to quads - triples and either an id or some other means of associating that id with the URI of the origin which asserts it. It's considered good form to have the URI for an object resolvable to some representation of that object, so there's a mix of identifier and address. The URI for kin is http://purl.oclc.org/net/kin, which uses HTTP redirection to point it to the current kin site. This depends on OCLC's generous provision of the persistent uniform resource locator service, and maps an address to another address rather than quite mapping an identifier to an address.

There isn't an obvious analogous mechanism for data to the TCP nodes routing the request to a node which might be closer to having the data, though is some ways a caching scheme with strong names might meet many of the requirements. It sort of brings to mind the pub-sub systems I've built in the past, but with a stronger form of authentication. Pub-sub replication isn't caching, as in a distributed system there isn't a master copy which the cached version is a copy of.

There's also a bit of discussion between broadcast and end-to-end messages; I've got to work out how to do zero-config messaging sometime, which again sort of makes sense in such systems - first reach your neighbours, then ask them for the either the data, or the address of a node which might have the data. But there still isn't an obvious mapping of the data space without the sort of hierarchy that TCP addresses have. (although pub-sub topics are often hierarchic, that hierarchy doesn't reflect the network topology even to the limited extent that TCP addresses do.) It also has some relation to p2p networks such as bit-torrent, and by the time you're talking about accessing my mail account in the cloud, to webs of trust. A paper on unique object references in support of large messages in distributed systems just popped up on LtU, which I'll add to my reading list this weekend.

I've also started reading Enterprise Integration Patterns. There's a bit of dissonance between the cocept of channel in these patterns, and I guess in the systems they are implemented in, and the concept of channel in pi-calculus. In EIP, a channel is a buffered pipe for messages, and is a static entity created as part of the system configuration, in pi-calculus a channel is not buffered, and the normal mechanism for a request/response pair is to create a new channel, sent that channel to the server of the request, and receive the response on the channel. The pi-calculus model is the pattern for communication I'm intending for inter-process communication in kin (though I'm not quite sure whether giving explicit support to other parts of pi-calculus is something I want). I'm not sure that having to mark request messages with an ID (as in XMPP IRQ) rather than having cheap channels is a good programming model; though there are reasons that pretending that an unreliable connection isn't a pi-calculus channel is a good idea. I'll see what I think after I've tried coding the channels. Certainly returning a channel from a query given a strong name which lets the requester communicate with an endpoint which has the named data could be a model worth pursuing. REST is a bit different in that the response channel is assumed by the protocol, but the URLs returned by the application are channels for further messages to be sent to, and of course can be addresses anywhere allowing the server for the next request to be chosen to be the one best suited to handle that request (eg, a list of the devices in a home SCADA system could list the URIs of the embedded servers on the sensor net rather than requiring the client to know the topology prior to making the initial request).

Labels: , , ,

2007-09-08

Misc Admin - Laptop PCI, Bubba Static IP, More Disks

Laptop PCI Conflict

For a while, my laptop BIOS had been sporadically reporting a PCI conflict on boot, with no other symptoms.
It's dual boot Windows XP Home and Ubuntu, and after the latest Window Update it lost its on-board network adapter, both in XP and Ubuntu. Rolling back the update fixed Windows, but somewhere some persistent state made the PCI conflict happen around half the time, and if it did happen Ubuntu would not see the card, or be able to recover.
The logs said 'try pci=assign-busses', so I did (in GRUB use e to try it once, edit /boot/grub/menu.lst to make it permanent), and the adapter reappeared and (so far) there have been no conflicts on rebooting. In addition, Ubuntu can now see the SD card, (presumably that is what it was conflicting with) which means I don't have to boot into XP to snarf the photos from my camera.
Now if only the wifi button was broken enough to appear in the logs and explain how to fix it...

Bubba and Static IP

On Friday my new excito Bubba home server arrived. I plugged it in, switched it on and all was good.

Mounting Bubba Shares

There was a little playing around to get Ubuntu to see the Samba shares, which I also put on the excito forum thread which gave some clues:
The server appears in Nautilus when you choose Places > Network, as ftp, sftp and is also under Windows network.
Browsing into the server, it requests user and password as expected, adds them to the keychain, then shows the files.
For a one-off mount:
fortinbras# mount -t smbfs //bubba/home /net/bubba/home -o username=*****,password=***** 

Following the instructions at justlinux.com for adding to /etc/fstab, the following works with mount -a when run as root:

//bubba/home    /net/bubba/home     smbfs credentials=/home/pete/.sambacreds,uid=pete 0 0
//bubba/storage /net/bubba/storage  smbfs credentials=/home/pete/.sambacreds,uid=pete 0 0
On next reboot, the mount points appear in Nautilus, but you can't mount them as a user.
To get mount working for users, you need to set suid root on smbmnt and ensure that the mount point is owned by the user doing the mounting.
I haven't tried enabling mounts for more than one account; if you add lines to fstab for each user, it adds icons for the mount points to everyone's accounts; trying to use ~ for the mount point and credentials doesn't seem to work either.

Backup of tincancamera.com

I couldn't find a recursive authenticated ftp client for the Bubba - its version of wget doesn't accept the --ftp-user arguments - so I've used wget with htpp to crawl the site, which gets everything except the access logs. I hadn't read the access logs, and they were putting me over the hosting's quota (they just grow rather than rotating as I'd expect them to), so I got them and deleted them off the server, so I'm using 3MB of the 5 I'm paying for rather than 11.

Static IP

I'd like the Bubba to be on the net, but I don't have a static IP. I'm with Pipex, who are fast and reliable if not the cheapest at the moment, but in addition to their stated charge of £1.25 a month require that my existing service be upgraded to a current plan (the current plans are 8MB instead of 1MB for the price I'm on), but would mean a new 12 month contract. I'm moving in three months, so that would mean paying for nine months I'm not here at £26.24 a month, which is silly - it would make adding a static IP for three months cost £79.97 a month, 1p less than twice what Pipex charge for a dedicated server. I've mailed them to see if they'll give me a static IP on my current £24.99 a month for a reasonable set-up fee, but haven't heard back yet.

More Disks

I'd bought three more 18.4GB disks for my Netras off ebay (Seagate ST318437LC x 3 for £29.89 including p+p), which arrived this morning. After popping down the road to AJM Micro for two dozen mounting screws, they are now installed and (following the guide here - docs.sun.com is nearly as slow as del.icio.us) each give a 16.7G zfs file system for use as a data area for mucking around with:
tercel-1# zpool create data c0t1d0
tercel-1# zfs create data/fs
tercel-1# zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 104K 16.7G 24.5K /data
data/fs 24.5K 16.7G 24.5K /data/fs
tercel-1# df -h /data/fs/
Filesystem size used avail capacity Mounted on
data/fs 17G 24K 17G 1% /data/fs


TME

Labels: , , , ,