Embedded systems are fun, relatively simple to create and becoming more popular. With the IoT bringing more and more opportunities for more and more markets, the ideas are – to use a flip cliche – finite. We see an opportunity for bringing in a standard platform, regardless of the device being interfaced or the infrastructure being used. Regardless if you are tracking assets via satellite, controlling vending machines via the Web or dispensing drinks and golf balls via a network, there can be a universal and extensible platform to allow you to build these systems and realize the little dream your dream a little.

sHARDs is our proposal to the need for a standard client-server-client arrangement:

A Device Client that relays self-information and user manipulation to a
Server that manages the allowed interactions between device and user, recording those interactions for and using settings from an
Admin Client that sets the access parameters for all users, the available functions for all devices for all instances and users, records and reports on those interactions and acts as the configuration tool.

Your Device Client can be any device you can imagine and stick a network into and your Admin Client can be made on any platform with any technology, LAMP, UWP, Lazarus.. You could create a vending machine MDB purchase control unit with a web administration or a golf ball dispenser relay control with a WPF administration system. Your server may also be any technology stack you dream. All your stacks can be different (but probably shouldn’t be unless the platforms offer compelling reasons for such a decision).

Our vision is to design a reference implementation: server in .NET, the device client in C# and administration clients in UWP and ASP.NET. Then, we’ll release the specifications AND the reference implementations. We hope to see a variety of technologies opened up for use in sHARDs, so all of us can happily thingify the networks.