Our Cloud Services support a plethora of protocols to carry Plegma API messages, which aids communication between yodiwo-aware nodes and our servers.
Currently available industry-standard protocols:
- Web Sockets
- YPC (Yodiwo Protocol Channel), a custom, flexible, layered, protocol designed and implemented by Yodiwo that supports:
- multiple payload serialization (currently MSGPACK or JSON)
- multiple transports (currently pure TCP Sockets or AMQP/RabbitMQ)
- asynchronous or synchronous (blocking RPC) message passing between nodes
- automatic packing/unpacking both of pre-agreed message types and of unknown members (C# / Java only)
- throttling, flow control
- extensible via IEs
In the future we plan to support more methods for developers to reach the Yodiwo Cloud, such as RabbitMQ (a powerful AMQP based protocol) and Google Cloud Messaging.
The messages in Plegma roughly fall into the following categories (further analyzed in the following pages):
- Message & event passing which carry event triggers from points (Ports of Things in Nodes) to the Yodiwo servers and vice-versa, or between points themselves
- Things management & control via which Nodes present and manage the Things they encapsulate
- Node info & discovery where Nodes present themselves and their capabilites and learn about other Yodiwo-aware Nodes
- Messages that relate to the automatic graph splitting and inter-node synchronization and discovery (currently out of scope for these pages)
- Messages that aid the Application Agnostic Smart End Devices (currently out of scope for these pages)
All messages in the Plegma API inherit from the same base class, offering uniformity and ease in message entry and parsing.