So What’s Going on Here? Goal: Type-safe network that supports arbitrary functionality and message types o Nodes can send, receive, or do both. o Node operation is completely undefined o Receivers make sure they are able to receive all of the sender’s data types Potential uses for this kind of network: o Data Pipeline o Multiplexing/Demultiplexing o Parallel Computation Engine o And so much more!
Example Use Case Temperature Sensor Is the temperature too high? > 100 °F Is the temperature too high? > 100 °F If yes, SOUND THE ALARM!
Example Use Case Temperature Sensor Is the temperature too low? < -10 °F Is the temperature too low? < -10 °F If yes, SOUND THE ALARM!
Design Phase ◦The Network Team ◦Developed underlying technology for node connection ◦The Node API Team ◦Decided what a node could access within the network ◦The Message Team ◦Created messages to send data and commands over the network ◦Focus was implementation specific to demonstrate our technology
Implementation Phase ◦The Shared Library Team ◦Coded the API + network backbone ◦The Message Library Team ◦Standardized serialization/deserialization mechanism ◦The Expert Implementation Team ◦ Implemented more complicated node behaviors for the demo ◦The Demo & Presentation Team ◦Planned the demo network ◦Created the presentation of network capabilities
Motivation for the Network Library Our Goal: ◦Provide reliable and convenient data transfer mechanism Our Solution ◦Used tcp/ip C# socket ◦Alternatives: WCF. Added unneeded complexity ◦Network library is decoupled
Motivation for the Message Library Our Goal: ◦Handle new, arbitrary data types in both information and commands Our Solution ◦Shared Message Library with packaging/serialization tools that can be expanded for any information type/command.
A Shared Extendable Message Library Commands, information types, all treated similarly ◦Information/command stored in a message object ◦Message is JSON-serialized and then sent. The string is arbitrary, so the message types can be extended arbitrarily