Design and implementation of a hardware versatile publish-subscribe architecture for the internet of things
A variety of contemporary technologies are being framed within the Internet of Things (IoT) architecture, including publish/subscribe (pub/sub) systems. In IoT, things, such as objects, machines, vehicles, and wireless sensors, have to communicate with other things or humans and exchange information based on Internet connectivity. With the integration of pub/sub mechanism with IoT, these things can ''publish'' their presence to a specific node, which can be named a broker or router, while things that ''subscribe'' to that node are able to receive information based on publishers' content. In order to perceive a sound and efficient pub/sub structure in IoT, high performance processing and interoperability are valid requirements. This paper presents a versatile architecture of a broker, named X2CBBR, that can operate in IoT with different pub/sub systems. X2CBBR: 1) adopts XML-based publication data and XPath-based subscription data to yield interoperability; 2) processes both XML data and XPath queries in hardware (instead of software) to boost processing performance; 3) employs a hardware-based matching mechanism that exploits subscription commonalities; and 4) makes use of four different operation modes as a method for accepting or limiting acceptance of either publications or subscriptions. While maintaining the total decoupling feature between publishers and subscribers, the broker switches from an operation mode to another to keep traffic under control. Moreover, its content-based routing mechanism avoids redundant subscription and notification data. Finally, the broker can effectively operate in either centralized or distributed systems. The results obtained through a prototype hardware implementation targeting an FPGA demonstrate the high-efficiency of the broker/router in multiple scenarios.