We will be talking about a unique library called VAST, a spatial publish/subscribe (SPS) library developed as a cost effective and highly scalable alternative to the existing publish/subscribe architectures. Unlike a standard pub/sub architecture that deals with topics/channels, SPS is a scheme whereby subscriptions and publications are associated with a point, area or volume in a spatial environment. This is made possible thanks to more and more modern devices being developed with some form of spatial functionality. By building VAST on a peer-to-peer infrastructure, a Voronoi overlay network (VON) and a forwarding alrogithm, VAST is able to leverage spatial data to perform robustly efficient and highly scalable communication. It is also an open-source library!
The world has seen an explosion in growth of communication devices, with the IoT space being an example, with projhections of over 30 billion IoT nodes in the next few years. One of the most widely used communication protocol for IoT networks is MQTT (Message Queue Telemetry Transport) (https://mqtt.org/). MQTT is a system that uses a standardized topic/channel based pub/sub protocol, designed for use in constrained environments where small code footprints are required and network bandwidth is limited.
To alllow for seamless integration, we have extended an existing an open-source javascript implementation of a MQTT architecture to support VAST spatial publish/subscribe. By including special formatting in the topic of the message, a client can indicate that the subscription/publication is spatial in nature. The channel becomes a spatial message. To send spatial messages a special formatting must be used in the topic of the MQTT message, i.e.: <sp: [x-coordinate], [y-coordinate], [radius], [channel]>
This modified MQTT broker can be used in the standard centralized server/client configuration, where the publishers and subscribers act as clients and the modified MQTT broker acts as a centralized server. We have also added additional functionality to the modified MQTT broker that can be used in a decentralized configuration. This additional functionality is made possible through the use of the VAST library, which allows for peer-to-peer communication between multiple modified MQTT brokers. The subscribers and publishers assume the role of clients, but they now communicate with the closest modified MQTT broker.
This session If you are interested in scalable infrastructure, some spatial forwarding/routing algorithms or some geospatial application that requires some form of communication, this talk is definitely for you.
At the end of this session, you would have learnt about:
- spatial publish/subscribe architecture, how it works, it potential
- how the idea and algorithm can be adapted to fit your existing infrastructure
- how it can be easily integrated into your existing publish/subscribe systems
- how you can be a part of this revolution that we call the NEXT.BIG.THING. How you can contribute to the edge project