{"id":2833,"date":"2018-12-01T21:39:49","date_gmt":"2018-12-01T16:09:49","guid":{"rendered":"http:\/\/navveenbalani.dev\/?p=2833"},"modified":"2019-12-18T21:58:00","modified_gmt":"2019-12-18T16:28:00","slug":"building-application-with-ibm-iot-platform","status":"publish","type":"post","link":"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/","title":{"rendered":"Building application with IBM IoT Platform"},"content":{"rendered":"\n<p>This article is part of IoT Architecture Series &#8211; <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/\">https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/<\/a><\/p>\n\n\n\n<p>In this article, we would look at how to realize the IoT use case using IBM IoT platform.&nbsp; IBM provides the Watson IoT Platform, which is a fully managed, cloud-hosted service that makes it simple to derive value from Internet of Things (IoT) devices. Together with IBM PaaS platform (Bluemix), you can rapidly build IoT applications from the catalog of services available in Bluemix. The catalog of services for an IoT application typically includes \u2013 storage services, rules, analytics services, stream analytics and machine learning. We went through this earlier when we talked about Microsoft IoT stack in detail. The strategy adopted by Microsoft and IBM is pretty much the same.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><em>Note \u2013\nIBM <\/em><em>Bluemix is an implementation of IBM&#8217;s Open\nCloud Architecture based on Cloud Foundry. Cloud Foundry is an open source\nindustry standard platform for building cloud applications in a vendor neutral\nway.<\/em><em>\n\n\n\n<\/em><\/p>\n\n\n\n<p>In the first article, we had discussed about a generic Enterprise IoT stack. The following shows our representation on how the IBM IoT services can be mapped to our generic Enterprise IoT stack. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"737\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution1-1024x737.jpg\" alt=\"\" class=\"wp-image-2834\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution1-1024x737.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution1-300x216.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution1-768x553.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution1.jpg 1598w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Let\u2019s go through the components in details<\/p>\n\n\n\n<p><strong>Watson\nIoT Platform Device Client Library<\/strong><\/p>\n\n\n\n<p>These are client libraries, which make it easier to connect devices to the Watson\nIoT Platform. The Watson IoT Platform provides client library in Python, Java,\nEmbedded C, Node.js, and C#. For details\non the client library API, please look at https:\/\/docs.internetofthings.ibmcloud.com\/index.html<\/p>\n\n\n\n<p>IBM Watson IoT Platform also offers device recipes, which provide code and detail steps to connect various devices to IBM Watson IoT Platform using MQTT protocol. (IBM Watson IoT Platform currently provides support for only MQTT protocol.). The device recipe is contributed by IBM, third party vendors, and the community. <\/p>\n\n\n\n<p>You can also build your own device recipe using the open source Eclipse-based Paho\nlibrary (http:\/\/www.eclipse.org\/paho\/), which provides client implementations\nof MQTT and MQTT-SN protocol for required devices. You need to pick up a\nsupported Paho library, like a Net for Windows 10 devices or C client for\ndevices supporting C programming language.&nbsp;\n<\/p>\n\n\n\n<p>Following is the code snippet that can be used by devices to connect to IBM Watson IoT Platform using Watson IoT Platform Node.js library:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var Client = require(\"ibmIoTF\").IoTFDevice;\nvar config ={\n\"org\":\"organization\",\n\"id\":\"deviceId\",\n\"type\":\"deviceType\",\n\"auth-method\":\"token\",\n\"auth-token\":\"authToken\"\n};\n\nvar deviceClient =new Client(config);\ndeviceClient.connect();\n\ndeviceClient.on(\"connect\",function(){\n\nvar myQosLevel=2\/\/ QOS, message is delivered exactly once \nclient.publish(\"status\",\"json\",'{\"d\" : { \"cpu\" : 60, \"mem\" : 50 }}', myQosLevel);\n});\n\n<\/code><\/pre>\n\n\n\n<p><strong>Watson\nIoT Platform<\/strong><\/p>\n\n\n\n<p>IBM Watson IoT Platform lets you connect a\nwide variety of devices securely and collect and manage data in time series. Watson\nIoT Platform follows the pub-sub model, where you create topics for\ncommunication between publishers (like devices) and subscribers. Watson IoT\nPlatform also addresses security by providing a secure\nchannel for devices to connect to Watson IoT Platform using MQTT over TLS. It\nprovides device management infrastructure like web dashboards for managing and\nmonitoring the data usage, providing a set\nof APIs for registering the devices, getting a list\nof connected devices, events generated by devices and device diagnostic logs.\nThe APIs can be accessed at: https:\/\/docs.internetofthings.ibmcloud.com\/devices\/mqtt.html<\/p>\n\n\n\n<p>To get started with Watson IoT Platform, you select the Internet of Things Platform service (i.e. available at <a href=\"https:\/\/console.ng.bluemix.net\/catalog\/services\/internet-of-things-platform\/\">https:\/\/console.ng.bluemix.net\/catalog\/services\/internet-of-things-platform\/<\/a>) in Bluemix and create an instance. This will assign an organization unit and ID, which is a unique ID provided by the Watson IoT Platform. Organizations act like a domain where data is only accessible from devices and applications in that domain. Once devices are registered, devices and API keys are bound to that organization. When an application connects to the Watson IoT Platform service using an API key, it registers with the organization that \u201cowns\u201d the API key. Using this combination, it makes it impossible for other devices and applications which are not part of the same organization to communicate with each other. Watson IoT Platform also provides storage of device data based on terms specified (in months). The following image shows a snapshot of Watson IoT Platform dashboard, depicting one registered device. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"642\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution2-1024x642.jpg\" alt=\"\" class=\"wp-image-2836\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution2-1024x642.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution2-300x188.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution2-768x481.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution2.jpg 1656w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Once you register\nthe device, you get an authorization code, which is used, for connecting the\ndevice to the Watson IoT Platform. As part of device registration process, you\ncan also store the device metadata like serial number, firmware or custom\nattributes in JSON, which can be used further for device management activities.<\/p>\n\n\n\n<p>Watson IoT Platform allows for firmware\nupdates, reboot, and factory reset commands,\nwhich need to be supported and executed by the device. Think of this as a set of device commands, which a device agent runs on the device when it receives the\ncommand input from Watson IoT Platform dashboard. You specify the command\nactions through the Action tab in the dashboard or\nthe device command APIs. The APIs supported by Watson IoT Platform and sample\nmessage formats are listed at the URL &#8211; https:\/\/docs.internetofthings.ibmcloud.com\/devices\/device_mgmt\/requests.html.<\/p>\n\n\n\n<p>The IBM Watson IoT\nPlatform platform is powered by IBM\u2019s core products and services which includes\nMessageSight (rapid bi-directional messaging), Informix TimeSeries (time series\ndatabase), Data Power Gateway (secure gateway and integration), Cloudant (NoSQL\nfor storing device metadata), WebSphere Application Server Liberty Core (runtime\nfor Watson IoT Platform dashboard\/web apps) and a host of other open source\nprojects.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><em>Tip &#8211;\nTo try a one-minute quick demo to see\nMQTT accelerometer events from your phone to Watson IoT Platform, visit http:\/\/www.ibm.com\/cloud-computing\/bluemix\/internet-of-things\/(look\nfor play now button in &#8216;Try it out now with our cool sample app&#8217; section.)<\/em><em>\n\n\n\n<\/em><\/p>\n\n\n\n<p><strong>Storage<\/strong><\/p>\n\n\n\n<p>Watson IoT Platform by default provides\ndata storage capability and time series view of the data from devices. But it\u2019s\nbetter to use a separate storage for storing, accessing and analyzing volumes\nof historical data, which can be used by services and applications that need to consume or augment the data with other\ndata sources. For the choice of storage, Bluemix\noffers a variety of scalable database storage options like MongoDB, PostgreSQL,\nCloudant NoSQL, IBM DB2, ObjectStorage and Informix Time Series data. The\nchoice of using a specific database depends on the use case requirements, the volume of data that needs to be stored and what kind of processing needs to be executed. Typically MongoDB is widely used, and you can define the schema (document\ndesign), which is tuned for better performance, especially when you are dealing\nwith time series domain.<\/p>\n\n\n\n<p><strong>Node-RED<\/strong><\/p>\n\n\n\n<p>Node-RED is a tool for wiring together\nhardware devices, APIs, and online\nservices in new and interesting ways. Bluemix provides a Node-RED visual editor for creating a flow for\nyour IoT application. For instance, you can create a flow, which would listen\nto messages (topics from Watson IoT Platform), create rules in JavaScript,\nexecute various other Bluemix services or invoke external services. Every\nfunctionality is available as a node and can be dragged in the visual editor to create flows by assembling\nvarious services and rules for triggering actions. You can even add a custom\nnode to provide custom functionality. This feature is very useful when you want\nto quickly build a small proof-of-concept (POC)\nof an IoT application.<\/p>\n\n\n\n<p>You can use the starter template \u2013 &#8216;Watson IoT Platform Starter&#8217; in the Bluemix catalog to get started quickly with Watson IoT Platform and Node-RED. The starter template includes a sample flow that processes temperature readings from a simulated device. The image below shows the Watson IoT Platform Starter Kit in the catalog:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"524\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution3-1024x524.jpg\" alt=\"\" class=\"wp-image-2837\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution3-1024x524.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution3-300x153.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution3-768x393.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution3.jpg 1666w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The following image shows the sample Node-RED workflow that receives data from the device through the input connector and throws an alert if the temperature is greater than some value. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"612\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution4-1024x612.jpg\" alt=\"\" class=\"wp-image-2838\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution4-1024x612.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution4-300x179.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution4-768x459.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution4.jpg 1718w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>IoT Real-Time Insights<\/strong> The IoT Real-time Insights is a recent addition to IBM IoT offerings, which works in conjunction with Watson IoT Platform to monitor and contextualize data from devices, and apply rules to trigger action. The offering allows you to combine existing master data available from asset management products (like Maximo from IBM) with runtime data from devices for triggering automated action (like an SMS or creating a work order in Maximo). We had discussed the use of asset management and how the data can be leveraged, in the manufacturing use case in  <a href=\"https:\/\/navveenbalani.dev\/index.php\/applications\/internet-of-things-application-of-iot-in-manufacturing\/\">earlier article.<\/a><\/p>\n\n\n\n<p><em>Note &#8211; The problem of integrating asset management solutions, IoT devices, workflow, etc. needs to be looked at holistically starting from how you design a connected product to the realization of the end product. In future, we could see a tight end to end integration between asset management products and IoT platforms.<\/em><\/p>\n\n\n\n<p><strong>IBM\nStreaming Analytics<\/strong><\/p>\n\n\n\n<p>IBM Streaming Analytics service provides\nanalyzing in-flight data in real-time. For those who are familiar with IBM\nInfoSphere Stream product, the IBM Streaming Analytics is the same technology\nnow available on Bluemix. IBM Streaming Analytics service can analyze millions\nof events per second and perform analysis with predictable low latency, which\nis a key requirement for IoT application dealing with millions of connected\ndevices. The service allows you to ingest, analyze and correlate information\ncoming from thousands of real-time sources. In\norder to build stream applications, you need to download Streams Studio\n(an eclipse based environment) separately to build streams and deploy via the\nStreaming Analytics dashboard. At the time of writing this book, we could not\nfind seamless integration of IBM\nStreaming Analytics with Watson IoT Platform.&nbsp;\nOne approach is to use compatible toolkit and adapters (MQTTSource from\ncom.ibm.streamsx.messaging toolkit) in Streams Studio to integrate with Watson\nIoT Platform. With this approach, the stream flow gets invoked when a message arrives at the MQTT topic defined in Watson IoT Platform, and you can execute the\nrequired logic using streamflow\ncomponents. Once the stream is deployed\nin Bluemix, you can invoke the stream as part of the Node-RED flow or in any application using the Stream REST API.<em>\n\n\n\n<\/em><\/p>\n\n\n\n<p><em>Note\n\u2013 When we talk about seamless integration in the above context, what we really mean is the ability of components like\nStreaming Analytics or any components like Apache Spark Streaming to consume\ndata directly from Watson IoT Platform without the need to build custom\nadapters or Node-RED flows. We assume this could be simplified through declarative configurations between Watson IoT\nPlatform and streaming (or any other) components that need to consume data from Watson IoT Platform.<\/em><em>\n\n\n\n<\/em><\/p>\n\n\n\n<p><strong>Apache\nSpark and Apache Spark Streaming<\/strong><\/p>\n\n\n\n<p>Apache Spark is a fast and general purpose\nengine for big data processing, with built-in modules for streaming, SQL, machine learning and graph processing. Bluemix\nprovides Apache Spark cluster service. Apache Spark is used for aggregating and transforming large volumes of data,\nbuilding analytics solution using Scala and Python, streaming and analyzing\ndata in real-time and even building machine learning models using Spark-MLlib module.\n<\/p>\n\n\n\n<p>The Apache Spark streaming component\nprovides analyzing streaming data in real-time. This\nprovides one more option for real-time streaming other than IBM\nStreaming Analytics. The choice of picking up one technology as opposed to\nother depends on use case requirements, flexibility, the maturity of the product,\navailability of skills and various other factors (and having doubts, you can reach out to us through the\nforum at http:\/\/<a href=\"http:\/\/www.entrpriseiotbook.com\">enterpriseiotbook.com<\/a>).<\/p>\n\n\n\n<p>Currently, there is no integration provided for Apache Spark streaming service\nto consume data directly from Watson IoT Platform, but it could be just a\nmatter of building connectivity adapters,\nand it\u2019s a point in time statement. There are alternate options, like storing\nthe data from Watson IoT Platform into one of the storage database (like\nObjectStorage or MongoDB) and apply the Spark\nprogramming model. For example, using Python or Scala to create RDD (Resilient\nData sources, abstract data model) to aggregate, transform and analyze data.\nPlease note that this is just our approach or one way to integrate Apache Spark\nservice with Watson IoT Platform. We may see an integrated\nstandard solution in the future.<\/p>\n\n\n\n<p><strong>Machine\nLearning<\/strong><\/p>\n\n\n\n<p>IBM provides the predictive analytics\nservice on Bluemix. To build predictive models, you use IBM SPSS Modeler and\ndeploy the model using the administration dashboard of the predictive analytics\nservice. Currently, SPSS Modeler is not\navailable with Bluemix; you need to\npurchase it separately or get an evaluation copy. The IBM SPSS Modeler is used\nto build and test the predictive model and then the model needs to be exported and\ndeployed as part of predictive analytics service. To access the model at runtime,\nyou can use the REST API from your application (from the Node-RED flow) or web\napplication.<\/p>\n\n\n\n<p><strong>Custom\nSolutions<\/strong><\/p>\n\n\n\n<p>These are end-to-end\nIoT solutions developed using Watson IoT Platform and Bluemix services. Apart\nfrom the above services, Bluemix provides a bunch\nof other services that can be used for\nbuilding IoT applications like \u2013 Geospatial Analytics to track when devices\nenter or leave the designated boundaries or mobile push services to send an\nalert based on the analysis and Embeddable Reporting service to include\ndashboards in your applications.&nbsp; You can\nfind all the services in the catalog view of Bluemix at https:\/\/console.ng.Bluemix.net\/catalog\/.<\/p>\n\n\n\n<p>As part of Watson IoT Platform Recipes page, you could also find Application Recipes, which are end-to-end examples that can be used as a starting point for building IoT applications. The example application recipes include machine condition monitoring, geospatial analysis, track and trace, real-time dashboards for wearable and many more. These application recipes use Watson IoT Platform and various Bluemix services and are contributed by IBM and the open source community.<\/p>\n\n\n\n<p>In the <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/\">next article<\/a>, we will implement the  the connected elevator solution  that we had discussed in <a href=\"https:\/\/navveenbalani.dev\/index.php\/applications\/internet-of-things-application-of-iot-in-manufacturing\/\">earlier article<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is part of IoT Architecture Series &#8211; https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/ In this article, we would look at how to realize the IoT use case using IBM IoT platform.&nbsp; IBM provides the Watson IoT Platform, which is a fully managed, cloud-hosted service that makes it simple to derive value from Internet of Things (IoT) devices. Together [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2834,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,156],"tags":[287],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.0.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Building application with IBM IoT Platform - Current and Future Technology Trends by Navveen Balani<\/title>\n<meta name=\"description\" content=\"Building application with IBM IoT Platform - Articles\" \/>\n<link rel=\"canonical\" href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building application with IBM IoT Platform - Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"og:description\" content=\"Building application with IBM IoT Platform - Articles\" \/>\n<meta property=\"og:url\" content=\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/\" \/>\n<meta property=\"og:site_name\" content=\"Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-01T16:09:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-12-18T16:28:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1598\" \/>\n\t<meta property=\"og:image:height\" content=\"1150\" \/>\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=\"11 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\/building-application-with-ibm-iot-platform\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution1.jpg\",\"width\":1598,\"height\":1150},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/#webpage\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/\",\"name\":\"Building application with IBM IoT Platform - Current and Future Technology Trends by Navveen Balani\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/#primaryimage\"},\"datePublished\":\"2018-12-01T16:09:49+00:00\",\"dateModified\":\"2019-12-18T16:28:00+00:00\",\"description\":\"Building application with IBM IoT Platform - Articles\",\"breadcrumb\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/#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\/building-application-with-ibm-iot-platform\/\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/\",\"name\":\"Building application with IBM IoT Platform\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/#webpage\"},\"author\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"headline\":\"Building application with IBM IoT Platform\",\"datePublished\":\"2018-12-01T16:09:49+00:00\",\"dateModified\":\"2019-12-18T16:28:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"image\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/#primaryimage\"},\"keywords\":\"iot-guide\",\"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\/2833"}],"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=2833"}],"version-history":[{"count":3,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2833\/revisions"}],"predecessor-version":[{"id":2844,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2833\/revisions\/2844"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/media\/2834"}],"wp:attachment":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/media?parent=2833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/categories?post=2833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/tags?post=2833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}