{"id":2786,"date":"2018-12-01T18:51:04","date_gmt":"2018-12-01T13:21:04","guid":{"rendered":"http:\/\/navveenbalani.dev\/?p=2786"},"modified":"2019-12-18T19:21:55","modified_gmt":"2019-12-18T13:51:55","slug":"internet-of-things-application-protocols","status":"publish","type":"post","link":"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/","title":{"rendered":"Internet of Things &#8211; Application Protocols"},"content":{"rendered":"\n<p>In the <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-communication-layer\/\">previous article<\/a>, we went through the communication protocols. In this article, we would go over the IoT application protocols.<\/p>\n\n\n\n<h4><a>Application protocols<\/a><\/h4>\n\n\n\n<p>Application protocols sit on top of TCP\nlayer. They use TCP as a transport layer to communicate application specific\nmessages. This section discusses some of the application protocols that can be used with embedded devices.<\/p>\n\n\n\n<p><strong>MQTT<\/strong><\/p>\n\n\n\n<p>MQ Telemetry Transport (MQTT) is a\nlightweight message-oriented middleware\n(MOM) that is based on publish\/subscribe\nmodel. The protocol is designed to be used\nfor machine-to-machine communication that involves small data footprint. It works on the basis of hub\/spoke topology. IoT devices are clients that\nconnect to MQTT broker over the TCP protocol. The client devices subscribe to the\nmessages published on a single or multiple topics. Topics itself can be\nstructured hierarchically allowing to design an appropriate taxonomy specific\nto a particular domain, say home automation. MQTT broker supports multiple\nconcurrent connections involving a large number\nof devices. This protocol is widely used in resource-constrained devices and networks\nwhere high bandwidth is an issue. Another variant is MQTT-SN that is designed\nto be used with sensor networks. It is\napplicable where data packet loss during transmission is not an issue. MQTT-SN\nworks on a UDP transport.<\/p>\n\n\n\n<p><strong>CoAP<\/strong> <\/p>\n\n\n\n<p>The Constrained Application Protocol (CoAP), as the name suggests it is a protocol used with resource constrained devices and networks. The protocol is design to be used with machine-to-machine communication  applications. It is modeled on the concept of HTTP (request\/response) but uses low data\nfootprint. Unlike HTTP, CoAP runs over UDP transport with broadcast and\nmulticast feature. The protocol\nis used in a client-server model and\nsupports REST style commands like GET,\nPOST, PUT, and DELETE. There also\nexists HTTP-CoAP mapping that can be leveraged to communicate to CoAP devices\nusing HTTP protocol. CoAP also supports asynchronous model involving message\ncommunication.<\/p>\n\n\n\n<p><strong>AMQP<\/strong><\/p>\n\n\n\n<p>Advanced Message Queuing Protocol (AMQP) is\nanother popular message-oriented\nmiddleware that has slowly made its place in the world of IoT. The protocol\nsupports both queue based and pub\/sub messaging model. The messages can be processed in a transactional context. The AMQP\nprotocol operates on TCP transport and ensures reliable message delivery. Apart\nfrom reliability, AMQP is also interoperable. Disparate client systems with\ndifferent software languages can interoperate with AMQ servers. From the IoT perspective, sensor\ndevices that generate loads of data are streamed to AMQ servers (either in a\nraw or processed form), which is then consumed by receivers to perform\nmonitoring and analytics.<\/p>\n\n\n\n<p><strong>WebSocket<\/strong><\/p>\n\n\n\n<p>WebSocket protocol supports a persistent\nconnection between a client and the server over a single TCP connection.\nWebSocket protocol is used to facilitate near real-time communication and data\ntransfer from and to the server without the client\/server polling for data\nupdates and transmitting relevant updates without an explicit request between client and server. In the context of IoT, WebSocket provides one of the\nalternative ways to provide real-time\ncommunication between devices and Cloud applications as compared to protocols\nlike MQTT and AMQP. <\/p>\n\n\n\n<p><strong>AllJoyn<\/strong> AllJoyn is a collaborative open-source software framework that makes it easy for devices to discover, publish\/broadcast itself and communicate  with each other.&nbsp; AllJoyn was created to promote\ninteroperability and seamless integration between devices and application\nthrough a set of core features. AllJoyn&nbsp;<a href=\"https:\/\/allseenalliance.org\/developer-resources\/alljoyn\/docsdownloads\" target=\"_blank\" rel=\"noreferrer noopener\">works across platforms<\/a> that range\nfrom Android to iOS, Linux, OpenWRT Windows, OS X and embedded systems having\nlimited memory and processing power capability. <\/p>\n\n\n\n<p>Interoperability between devices and\napplications is the key to adoption and realization of a connected world and in\nfuture standards like AllJoyn would help bridge the interoperability&nbsp;gap.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><em>Note\n&#8211; The AllSeen Alliance manages the&nbsp;<\/em><a href=\"https:\/\/allseenalliance.org\/source-code\"><em>AllJoyn\nopen source project<\/em><\/a><em>&nbsp;with\nsoftware code using open standards to enable all the \u2018things\u2019 in the Internet\nof Things to work together. The initiative includes more than&nbsp;<\/em><a href=\"https:\/\/allseenalliance.org\/about\/members\" target=\"_blank\" rel=\"noreferrer noopener\"><em>170&nbsp;member companies<\/em><\/a><em>&nbsp;including&nbsp;leading consumer\nelectronics manufacturers, home appliance makers, automotive companies,\nInternet of Things cloud providers, enterprise technology companies, innovative\nstart-ups, chipset manufacturers, service providers, retailers and software\ndevelopers<\/em><em>.<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><strong>DDS<\/strong><\/p>\n\n\n\n<p>DDS (Data Connectivity Standard) is part of OMG IoT standards, which enables network interoperability for connected machines, enterprise systems, and mobile device. DDS is a not a new protocol specification and was initially adopted for real-time communications. The DDS specification is available at <a href=\"http:\/\/portals.omg.org\/dds\/\">http:\/\/portals.omg.org\/dds\/<\/a>. DDS is used by many industries where real-time communication is required between systems.&nbsp; You can find the set of case studies at this link &#8211; <a href=\"http:\/\/portals.omg.org\/dds\/who-is-using-dds-2\/\">http:\/\/portals.omg.org\/dds\/who-is-using-dds-2\/<\/a><\/p>\n\n\n\n<h4><a>Industry Protocols<\/a><\/h4>\n\n\n\n<p>Industry protocols are designed to implement\na connected solution specific to that industry. The protocols are proprietary\nin nature and enables industrial automation of some sorts. The section will\ndescribe some of the popular industry specific protocols.<\/p>\n\n\n\n<p><strong>BACnet<\/strong><\/p>\n\n\n\n<p>BACnet is a communication protocol used to\ncreate smart buildings. It enables building automation by providing\ninfrastructure for applications to monitor and control network of BACnet\ndevices. It facilitates the exchange of\ninformation between building automation devices that aids in application\nmanagement building functions. The communications between devices are handled in three areas: objects, services, and transport. Objects represent\ninformation about the device. Services are actions initiated by devices. These\nservices are classified in 5 categories:\nobject access, device management, alarm and event, file transfer and virtual\nterminal. Transport represents the communication channel and the messaging\nprotocol. BACnet supports seven\ntransport layers that include the transport over Ethernet, ZigBee, Telephone line, etc. The typical use case\napplication would be to remotely monitor\nheat, lighting, ventilation, elevators and other aspects of building systems\ncontrolled by BACnet.<\/p>\n\n\n\n<p><strong>SCADA<\/strong> <\/p>\n\n\n\n<p>Supervisory Control and Data Acquisition (SCADA) is a system that enables remote control and monitoring of industrial devices. SCADA solution is a network of systems that work together to provide industrial automation. A typical SCADA set up will have an industrial device like gas measurement sensors that will emit measurement signals and send it to specialized processing unit called as Remote Terminal Units (RTU) or Programmable Logic Controller (PLC). The processing unit reads the signal and processes it into digital format to be transmitted to Human Machine Interface (HMI) panels or control room workstations for the end user to control and monitor the industrial process flow. There is also a supervisory system that acts as a server and sits between PLCs and HMI workstations. There will be another workstation that will act as a communication gateway responsible for sending the data to the cloud or internet where it can be processed and analyzed using data processing platforms and visualization tools. SCADA network transport operates on a wide variety of communication media (both wired and wireless) that uses TCP and UDP protocols (like Modbus TCP) with cellular, radio or satellite networks. SCADA applications are widely used in industries like manufacturing, transportation, oil and gas, electric power, distribution and utilities, process industries, water and waste control, agriculture\/irrigation, etc.<\/p>\n\n\n\n<p><strong>Modbus<\/strong><\/p>\n\n\n\n<p>Modbus is a serial communication protocol widely used in industrial automation applications. It uses standard RS-485 and RS-232 serial port for communication. In a typical SCADA network, many sensors are connected to PLCs. The communication is achieved through the use of Modbus protocol. Popular Modbus protocols include Modbus RTU and Modbus TCP. Modbus RTU is a serial protocol conceptualized on the master\/slave model. It is the most popular and widely used protocol in industries like building automation. Modbus TCP also known as Modbus Ethernet protocol is a modern approach towards industrial automation. It works exactly like Modbus RTU but with greater throughput. Modbus TCP can be used to connect industrial devices to the outside Internet world.<\/p>\n\n\n\n<p><a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-core-platform-layer\/\">In the next article, we would go over the Core Platform Layer<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the previous article, we went through the communication protocols. In this article, we would go over the IoT application protocols. Application protocols Application protocols sit on top of TCP layer. They use TCP as a transport layer to communicate application specific messages. This section discusses some of the application protocols that can be used [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2126,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,156],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.0.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Internet of Things - Application Protocols - Current and Future Technology Trends by Navveen Balani<\/title>\n<meta name=\"description\" content=\"Internet of Things - Application Protocols - Articles\" \/>\n<link rel=\"canonical\" href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Internet of Things - Application Protocols - Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"og:description\" content=\"Internet of Things - Application Protocols - Articles\" \/>\n<meta property=\"og:url\" content=\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/\" \/>\n<meta property=\"og:site_name\" content=\"Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-01T13:21:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-12-18T13:51:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2016\/09\/bk4.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" \/>\n\t<meta property=\"og:image:height\" content=\"281\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"6 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/navveenbalani.dev\/#website\",\"url\":\"https:\/\/navveenbalani.dev\/\",\"name\":\"Current and Future Technology Trends by Navveen Balani\",\"description\":\"Current and Future Technology Trends by Navveen Balani\",\"publisher\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/navveenbalani.dev\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2016\/09\/bk4.jpg\",\"width\":450,\"height\":281},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/#webpage\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/\",\"name\":\"Internet of Things - Application Protocols - Current and Future Technology Trends by Navveen Balani\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/#primaryimage\"},\"datePublished\":\"2018-12-01T13:21:04+00:00\",\"dateModified\":\"2019-12-18T13:51:55+00:00\",\"description\":\"Internet of Things - Application Protocols - Articles\",\"breadcrumb\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/\",\"url\":\"https:\/\/navveenbalani.dev\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/\",\"name\":\"Internet of Things &#8211; Application Protocols\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/#webpage\"},\"author\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"headline\":\"Internet of Things &#8211; Application Protocols\",\"datePublished\":\"2018-12-01T13:21:04+00:00\",\"dateModified\":\"2019-12-18T13:51:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"image\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-application-protocols\/#primaryimage\"},\"articleSection\":\"Articles,IOT\",\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\",\"name\":\"Navveen\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/navveenbalani.dev\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/07\/navveen_balani.jpeg\",\"width\":200,\"height\":200,\"caption\":\"Navveen\"},\"logo\":{\"@id\":\"https:\/\/navveenbalani.dev\/#personlogo\"},\"sameAs\":[\"http:\/\/naveenbalani.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2786"}],"collection":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/comments?post=2786"}],"version-history":[{"count":4,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2786\/revisions"}],"predecessor-version":[{"id":2807,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2786\/revisions\/2807"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/media\/2126"}],"wp:attachment":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/media?parent=2786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/categories?post=2786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/tags?post=2786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}