Thanks to everyone that’s chimed in on my seemingly random questions over the past week I have the ability to create a dynamically clustered network of PCs and FEZ devices.
Vault-Link not only networks the little buggers together, but with the addition of SBASIC 1.0 you can perform distributed computing!
I’m still running internal tests and adding more commands but I wanted to put out some feelers and see if anyone is willing to put together a coordinated effort to stress test the system by having as many FEZ devices as possible connect to my clustered network via the web at a predefined date & time.
@ Brett - Yeah it’s going to be tricky if we manage more people in the UK. Managing a 6hr time difference isn’t so bad, a 16hr difference can actually be easier, but managing both will be tricky. Hence wanting to work out the time in advance. It’d probably be a Sunday morning or a very very late Saturday night, so if there’s any times that work for you let me know.
@ HughB - Every connection helps. I even have a windows app so if it comes to it everyone could double up connections (you can’t open multiple connections from the same device, the Vault-Link doesn’t allow it).
@ Architect - Awesome
Is everyone in at 1 connected device each or do any of you have multiples you can connect? I can only get 2 on at once for now (1 ethernet port and 1 w/ WiFi), 3 if my Cobra II arrives in advance of the test date.
@ LouisCpro - your timezone will be pretty easy to deal with as long a you don’t mind getting up early on a weekend
@ Architect - Sweet!
The tests will be pretty simple. Load the app and run. Your device should automatically grab a seat on the network and be informed of every other device already there or that joins/leaves after. The server will ping the device at regular intervals. If I have time to add a GUI you’ll be able to select commands to send to any device on the network.
@ LouisCpro - there is a loop in the program to keep attempting connection…we could always just set yours to wait until a specific time before starting to try or give it a really long wait between attempts (like an hour) and you could just turn it on before bed and leave it.
Part of the PIP project Vault-Link allows devices (NETMF, PCs, Mac, Linux) to create their own clustered network to communicate with nodes. Each node is configurable and can optionally allow File IO, Hardware IO, SQLite, Distributed Computing (SBASIC, Skewworks Apps & EXEs on the PC side), Messaging, etc.
The network can be setup in multiple ways. The default method is UDP + TCP. When a device boots up in this mode it first checks UDP (for up to 5 seconds) to see if a server is broadcasting ident. If one is found the device will become a node if set to allow, otherwise it will drop off and report it couldn’t be a server. If no server is found, however, the device will assume the server role (again if allowed by config) and start broadcasting its ident.
As nodes join all other nodes are informed of the new addition and the joining node is given a list of available peers. The server regularly pings nodes for health checks and removes failed nodes (which is broadcast to all healthy nodes). Note health monitoring will NOT be present for this run since a failed connect hangs forever in the current framework.
Key features are the ability to dynamically set the server, share files easily between systems, and distribute work load by calling SBASIC or Skewworks Apps on other devices. Devices currently processing are flagged as busy until completion. You can also create distribution lists so the server can update every single device without actually having to ping them all (each device hands off the commands, updates, etc, down the line and then reports back to the main server with success/failure data).